Ver Fonte

Merge branch 'qingban' of http://192.168.101.4:3000/jiaxiaoqiang/JG-ADMIN-TEMP into qingban

dengrui há 10 meses atrás
pai
commit
f32b451d7f

+ 3 - 3
src/api/order/index.ts

@@ -242,10 +242,10 @@ export function refreshPrepareCheckInfo(
     method: "get",
   });
 }
-export function zipWorkOrder(data: object): AxiosPromise<any> {
+export function excelWorkOrder(data: object): AxiosPromise<any> {
   return request({
-    url: "/api/v1/workOrder/data/zip",
+    url: "/api/v1/ProcessFormData/workOrderExcel/add",
     method: "post",
-    data:data,
+    data: data,
   });
 }

+ 2 - 0
src/common/configs/dictDataUtil.ts

@@ -66,6 +66,8 @@ const DictDataUtil = {
     escalation_fault_state: "escalation_fault_state",
     //报故追踪状态状态
     fault_current_state: "fault_current_state",
+    //报故追踪状态状态
+    produce_type: "produce_type",
   },
   EXPAND_FIELD_TABLE: {
     //字段类型

+ 195 - 143
src/views/base/information/index.vue

@@ -1,74 +1,72 @@
 <template>
   <div class="mainContentBox">
     <avue-crud
-        ref="crudRef"
-        v-model:search="search"
-        v-model="form"
-        :data="data"
-        :option="option"
-        v-model:page="page"
-        @row-save="createRow"
-        @row-update="updateRow"
-        @row-del="deleteRow"
-        @search-change="searchChange"
-        @search-reset="resetChange"
-        @size-change="dataList"
-        @current-change="dataList"
-        @selection-change="selectionChange"
+      ref="crudRef"
+      v-model:search="search"
+      v-model="form"
+      :data="data"
+      :option="option"
+      v-model:page="page"
+      @row-save="createRow"
+      @row-update="updateRow"
+      @row-del="deleteRow"
+      @search-change="searchChange"
+      @search-reset="resetChange"
+      @size-change="dataList"
+      @current-change="dataList"
+      @selection-change="selectionChange"
     >
       <template #drawingPath-form="scope">
-<!--        <single-upload v-model="form.drawingPath" :generatePdf="true"/>-->
+        <!--        <single-upload v-model="form.drawingPath" :generatePdf="true"/>-->
         <FilesUpload
-            v-model:src-list="srcList"
-            v-model:pdf-list="pdfUrlList"
-            v-model:file-name-list="fileNameList"
-            :limit="10"
-            :generate-pdf="true"
-            @finished="testFiles"
+          v-model:src-list="srcList"
+          v-model:pdf-list="pdfUrlList"
+          v-model:file-name-list="fileNameList"
+          :limit="10"
+          :generate-pdf="true"
+          @finished="testFiles"
         />
       </template>
       <template #enable="scope">
         <el-switch
-            active-value="1"
-            inactive-value="0"
-            inline-prompt
-            active-text="启用"
-            inactive-text="禁用"
-            v-model="scope.row.enable"
-            @click="changeItem(scope.row)"
-            class="ml-2"
-            style="--el-switch-on-color: #13ce66; --el-switch-off-color: #ff4949"
+          active-value="1"
+          inactive-value="0"
+          inline-prompt
+          active-text="启用"
+          inactive-text="禁用"
+          v-model="scope.row.enable"
+          @click="changeItem(scope.row)"
+          class="ml-2"
+          style="--el-switch-on-color: #13ce66; --el-switch-off-color: #ff4949"
         />
       </template>
-      <template #menu="{row,index,type}">
+      <template #menu="{ row, index, type }">
         <PDFView
-            :need-to-show-pdf="true"
-            content-type="button"
-            :is-link="true"
-            :pdf-source="filePath + row.pdfPath"
+          :need-to-show-pdf="true"
+          content-type="button"
+          :is-link="true"
+          :pdf-source="filePath + row.pdfPath"
         />
-        <el-button @click="deleteRecord(row,index,done)"
-                   text
-                   type="primary"
-        >删除</el-button>
+        <el-button @click="deleteRecord(row, index, done)" text type="primary"
+          >删除</el-button
+        >
       </template>
     </avue-crud>
 
-
     <ExcelUpload ref="uploadRef" @finished="uploadFinished" />
   </div>
   <CommonTable
-      ref="ctableRef"
-      tableTitle="BOM添加"
-      tableType="MARTERIAL"
-      @selected-sure="onSelectedFinish"
+    ref="ctableRef"
+    tableTitle="BOM添加"
+    tableType="MARTERIAL"
+    @selected-sure="onSelectedFinish"
   />
 </template>
 <script setup lang="ts">
 import { ref, getCurrentInstance } from "vue";
 import { useCrud } from "@/hooks/userCrud";
 import { useCommonStoreHook, useDictionaryStore } from "@/store";
-import {updateDrawaing} from "@/api/drawing";
+import { updateDrawaing } from "@/api/drawing";
 import dictDataUtil from "@/common/configs/dictDataUtil";
 import PDFView from "@/components/PDFView/index.vue";
 const { isShowTable, tableType } = toRefs(useCommonStoreHook());
@@ -78,34 +76,39 @@ const fileUrl = ref(""); //单文件
 const pdfUrlList = ref([]);
 const srcList = ref([]);
 const fileNameList = ref([]);
-const testFiles =()=>{
+const testFiles = () => {
   form.value.pdfPathList = pdfUrlList.value;
   form.value.drawingPathList = srcList.value;
   form.value.drawingPath = srcList.value[0];
-  form.value.fileNameList=fileNameList.value;
-}
+  form.value.fileNameList = fileNameList.value;
+};
 const filePath = import.meta.env.VITE_APP_UPLOAD_URL;
 const test = () => {
   isShowTable.value = true;
   tableType.value = tableType.value == 1 ? 2 : 1;
 };
-const ctableRef=ref(null);
-const changeItem = (row)=>{
-  updateDrawaing(row).then(
-      ()=>{
-        ElMessage.success("操作成功")
-        dataList()
-      }
-  );
-}
+const ctableRef = ref(null);
+const changeItem = (row) => {
+  updateDrawaing(row).then(() => {
+    ElMessage.success("操作成功");
+    dataList();
+  });
+};
 
 // 传入一个url,后面不带/
 const { form, data, option, search, page, toDeleteIds, Methords, Utils } =
-    useCrud({
-      src: "/api/v1/base/drawing",
-    });
-const { dataEditList, createRow, updateRow, deleteRow, searchChange, dataList,resetChange } =
-    Methords; //增删改查
+  useCrud({
+    src: "/api/v1/base/drawing",
+  });
+const {
+  dataEditList,
+  createRow,
+  updateRow,
+  deleteRow,
+  searchChange,
+  dataList,
+  resetChange,
+} = Methords; //增删改查
 const { selectionChange, multipleDelete } = Methords; //选中和批量删除事件
 const { checkBtnPerm, downloadTemplate, exportData } = Utils; //按钮权限等工具
 // checkBtnPerm(ButtonPermKeys.PLAN.BTNS.order_add) :permission="permission"
@@ -125,12 +128,11 @@ onMounted?.(() => {
 });
 
 const onSelectedFinish = (selectedValue) => {
-  form.value.associationCode=selectedValue.materialCode;
-  form.value.associationName=selectedValue.materialCode;
-  form.value.materialCode=selectedValue.materialCode;
+  form.value.associationCode = selectedValue.materialCode;
+  form.value.associationName = selectedValue.materialName;
+  form.value.materialCode = selectedValue.materialCode;
 };
 
-
 /**
  * 上传excel相关
  */
@@ -141,98 +143,147 @@ const uploadFinished = () => {
   dataEditList();
 };
 
-
 // 设置表格列或者其他自定义的option
 option.value = Object.assign(option.value, {
   selection: false,
-  viewBtn:false,
-  editBtn:false,
-  delBtn:false,
-  menu:true,
+  viewBtn: false,
+  editBtn: false,
+  delBtn: false,
+  menu: true,
   column: [
-    { label: "图纸编号", prop: "drawingCode", width: 150,search: true,overHidden: true ,rules: [{
-        required: true,
-        message: "请填写图纸编号",
-        trigger: "blur"
-      }],},
-    { label: "图纸名称", prop: "drawingTitle", width: 150,overHidden: true,search: true ,rules: [{
-        required: true,
-        message: "请填写图纸名称",
-        trigger: "blur"
-      }],},
-    { label: "物料编号", prop: "associationCode", width: 150,search: true,overHidden: true ,editDisplay: false,addDisplay: false,
-      rules: [{
-        required: true,
-        message: "请填写物料编号",
-        trigger: "blur"
-      }],
-     },
+    {
+      label: "图纸编号",
+      prop: "drawingCode",
+      width: 150,
+      search: true,
+      overHidden: true,
+      rules: [
+        {
+          required: true,
+          message: "请填写图纸编号",
+          trigger: "blur",
+        },
+      ],
+    },
+    {
+      label: "图纸名称",
+      prop: "drawingTitle",
+      width: 150,
+      overHidden: true,
+      search: true,
+      rules: [
+        {
+          required: true,
+          message: "请填写图纸名称",
+          trigger: "blur",
+        },
+      ],
+    },
+    {
+      label: "物料编号",
+      prop: "associationCode",
+      width: 150,
+      search: true,
+      overHidden: true,
+      editDisplay: false,
+      addDisplay: false,
+      rules: [
+        {
+          required: true,
+          message: "请填写物料编号",
+          trigger: "blur",
+        },
+      ],
+    },
 
-    { label: "物料编号", prop: "materialCode", width: 150,overHidden: true ,editDisplay: false,hide:true,
-      rules: [{
-        required: true,
-        message: "请填写物料编号",
-        trigger: "blur"
-      }],
-      click(){
+    {
+      label: "物料编号",
+      prop: "materialCode",
+      width: 150,
+      overHidden: true,
+      editDisplay: false,
+      hide: true,
+      rules: [
+        {
+          required: true,
+          message: "请填写物料编号",
+          trigger: "blur",
+        },
+      ],
+      click() {
         if (ctableRef.value) {
           ctableRef.value.startSelect();
         }
-      }},
-    { label: "物料名称", prop: "associationName", width: 180,search: true,overHidden: true ,disabled:true,rules: [{
-        required: true,
-        message: "请填写物料名称",
-        trigger: "blur"
-      }] },
+      },
+    },
+    {
+      label: "物料名称",
+      prop: "associationName",
+      width: 180,
+      search: true,
+      overHidden: true,
+      disabled: true,
+      rules: [
+        {
+          required: true,
+          message: "请填写物料名称",
+          trigger: "blur",
+        },
+      ],
+    },
     {
       label: "图纸类型",
       prop: "drawingDictValue",
       search: true,
       filterable: true,
-      type: 'select',
-      width: 100,overHidden: true,
+      type: "select",
+      width: 100,
+      overHidden: true,
       dicUrl: dictDataUtil.request_url + "drawing_type",
       props: { label: "dictLabel", value: "dictValue" },
-      rules: [{
-        required: true,
-        message: "请选择物料属性",
-        trigger: "blur"
-      }],
+      rules: [
+        {
+          required: true,
+          message: "请选择物料属性",
+          trigger: "blur",
+        },
+      ],
     },
     {
       label: "文件",
       prop: "drawingPath",
       span: 24,
       slot: true,
-      hide:true,
-      rules: [{
-        required: true,
-        message: "请选择文件",
-        trigger: "blur"
-      }],
+      hide: true,
+      rules: [
+        {
+          required: true,
+          message: "请选择文件",
+          trigger: "blur",
+        },
+      ],
     },
     {
       label: "文件名称",
       prop: "fileName",
       span: 24,
-      width:120,
-      overHidden:true,
-      display:false,
+      width: 120,
+      overHidden: true,
+      display: false,
     },
     {
       label: "文件数组",
       prop: "drawingPathList",
       span: 24,
-      hide:true,
-      display:false,
+      hide: true,
+      display: false,
     },
     {
       label: "pdf数组",
       prop: "pdfPathList",
       span: 24,
-      hide:true,
-      display:false,
-
+      hide: true,
+      display: false,
     },
 
     {
@@ -240,8 +291,8 @@ option.value = Object.assign(option.value, {
       prop: "fileNameList",
       span: 24,
       slot: true,
-      hide:true,
-      display:false,
+      hide: true,
+      display: false,
     },
     /*{ label: "文件",
       prop: "drawing",
@@ -254,35 +305,36 @@ option.value = Object.assign(option.value, {
     {
       label: "版本",
       prop: "drawingVersion",
-      type:"number",
-      precision:1,
-      rules: [{
-        required: true,
-        message: "版本号不能为空",
-        trigger: "blur"
-      }]
-
-
+      type: "number",
+      precision: 1,
+      rules: [
+        {
+          required: true,
+          message: "版本号不能为空",
+          trigger: "blur",
+        },
+      ],
     },
     {
       label: "创建时间",
       prop: "created",
-      width:120,
-      overHidden:true,
-      display:false,
+      width: 120,
+      overHidden: true,
+      display: false,
     },
-    { label: "启用状态",
-      slot:true,
-      headerAlign: 'center',
+    {
+      label: "启用状态",
+      slot: true,
+      headerAlign: "center",
       prop: "enable",
       width: 100,
-      addDisplay: false
+      addDisplay: false,
     },
   ],
 });
 
-const deleteRecord=(row,index,done)=>{
-  deleteRow(row,index,done);
+const deleteRecord = (row, index, done) => {
+  deleteRow(row, index, done);
   dataEditList();
-}
+};
 </script>

+ 445 - 309
src/views/device/disable/index.vue

@@ -23,136 +23,268 @@
           icon="el-icon-delete"
           :size="size"
           @click="multipleDelete"
-        >删除</el-button
+          >删除</el-button
+        >
+      </template>
+      <template #menu="{ size, row, index }">
+        <el-button
+          @click="maintenance(row)"
+          icon="el-icon-check"
+          text
+          v-hasPerm="[ButtonPermKeys.DEVICE.BTNS.disable_process]"
+          type="primary"
+          :size="size"
+          >流程</el-button
+        >
+        <el-button
+          v-if="row.state === 6"
+          @click="deleteRow(row)"
+          icon="el-icon-delete"
+          type="danger"
+          size="small"
+          >删除</el-button
         >
       </template>
-        <template #menu="{size,row,index}">
-            <el-button @click="maintenance(row)"
-                       icon="el-icon-check"
-                       text
-                       v-hasPerm="[ButtonPermKeys.DEVICE.BTNS.disable_process]"
-                       type="primary"
-                       :size="size">流程</el-button>
-        </template>
     </avue-crud>
 
-      <el-dialog
-              v-model="dialog1.visible"
-              :title="dialog1.title"
-              width="750px"
-              height="80%"
-              @close="dialog1.visible = false">
-          <el-timeline style="max-width: 500px;margin-left: 100px">
-              <el-timeline-item center type="success" placement="top">
-                  <el-card>
-                      <h4>设备停用申请</h4>
-                      <p>统一编码: {{maintenanceInfo.deviceNo}}</p>
-                      <p>设备名称: {{maintenanceInfo.deviceName}}</p>
-                      <p>使用年限: {{maintenanceInfo.deviceLife}}</p>
-                      <p>停用时间: {{maintenanceInfo.disableTime}}</p>
-
-                      <!--            <p>调拨周期: {{maintenanceInfo.allocateCycle}}天</p>-->
-                      <p>停用理由: {{maintenanceInfo.remark}}</p>
-                      <p>申请人员: {{maintenanceInfo.creator}}</p>
-                      <p>申请时间: {{maintenanceInfo.created}}</p>
-                  </el-card>
-              </el-timeline-item>
-              <el-timeline-item center placement="top"  :type="maintenanceInfo.state === 0 ? 'primary' : maintenanceInfo.state === 0 ? 'info' : 'success'">
-                  <el-card v-if="viewPage">
-                      <h4>使用经办人</h4>
-                      <p>审批人员: {{maintenanceInfo.auditUser}}</p>
-                      <p>审批结果: {{maintenanceInfo.auditUser ? (maintenanceInfo.auditResult === 1 ? '通过' : '不通过') : ''}}</p>
-                      <p>审批时间: {{maintenanceInfo.auditTime}}</p>
-                  </el-card>
-                  <el-card v-if="!viewPage">
-                      <h4>使用经办人</h4>
-                      <el-form ref="maintenanceInfoForm"  :model="maintenanceInfo" label-width="auto" style="max-width: 400px" :rules="rules">
-                          <el-form-item label="审批意见" prop="auditOpinion">
-                              <el-input :disabled="maintenanceInfo.state !== 0" type="textarea" :rows="2" v-model="maintenanceInfo.auditOpinion" />
-                          </el-form-item>
-                          <el-form-item label="审批人员" prop="auditUser">
-                              <el-input :disabled="maintenanceInfo.state !== 0" v-model="maintenanceInfo.auditUser" />
-                          </el-form-item>
-                          <el-form-item label="审批结果">
-                              <el-radio-group :disabled="maintenanceInfo.state !== 0" v-model="maintenanceInfo.auditResult" class="ml-4">
-                                  <el-radio :value=0>通过</el-radio>
-                                  <el-radio :value=1>驳回</el-radio>
-                              </el-radio-group>
-                          </el-form-item>
-                          <el-form-item style="margin-left: 45%">
-                              <el-button type="primary" v-if="maintenanceInfo.state === 0" @click="maintenanceSubmit">保存</el-button>
-                          </el-form-item>
-                      </el-form>
-                  </el-card>
-              </el-timeline-item>
-
-
-              <el-timeline-item center placement="top"  :type="maintenanceInfo.state === 2 ? 'primary' : maintenanceInfo.state < 2 ? 'info' : 'success'">
-                  <el-card v-if="viewPage">
-                      <h4>使用部门负责人</h4>
-                      <p>审批人员: {{maintenanceInfo.auditUser1}}</p>
-                      <p>审批结果: {{maintenanceInfo.auditUser1 ? (maintenanceInfo.auditResult1 === 1 ? '通过' : '不通过') : ''}}</p>
-                      <p>审批时间: {{maintenanceInfo.auditTime1}}</p>
-                  </el-card>
-                  <el-card v-if="!viewPage">
-                      <h4>使用部门负责人</h4>
-                      <el-form ref="maintenanceInfoForm1" v-if="maintenanceInfo.state >= 2" :model="maintenanceInfo" label-width="auto" style="max-width: 400px" :rules="rules">
-                          <el-form-item label="审批意见" prop="auditOpinion1">
-                              <el-input :disabled="maintenanceInfo.state !== 2" type="textarea" :rows="2" v-model="maintenanceInfo.auditOpinion1" />
-                          </el-form-item>
-                          <el-form-item label="审批人员" prop="auditUser1">
-                              <el-input :disabled="maintenanceInfo.state !== 2" v-model="maintenanceInfo.auditUser1" />
-                          </el-form-item>
-                          <el-form-item label="审批结果">
-                              <el-radio-group :disabled="maintenanceInfo.state !== 2" v-model="maintenanceInfo.auditResult1" class="ml-4">
-                                  <el-radio :value=0>通过</el-radio>
-                                  <el-radio :value=1>驳回</el-radio>
-                              </el-radio-group>
-                          </el-form-item>
-                          <el-form-item style="margin-left: 45%">
-                              <el-button type="primary" v-if="maintenanceInfo.state === 2" @click="maintenanceSubmit1">保存</el-button>
-                          </el-form-item>
-                      </el-form>
-                  </el-card>
-              </el-timeline-item>
-
-              <el-timeline-item center placement="top"  :type="maintenanceInfo.state === 4 ? 'primary' : maintenanceInfo.state < 4 ? 'info' : 'success'">
-                  <el-card v-if="viewPage">
-                      <h4>科研生产部</h4>
-                      <p>审批人员: {{maintenanceInfo.auditUser1}}</p>
-                      <p>审批结果: {{maintenanceInfo.auditUser1 ? (maintenanceInfo.auditResult1 === 1 ? '通过' : '不通过') : ''}}</p>
-                      <p>审批时间: {{maintenanceInfo.auditTime1}}</p>
-                  </el-card>
-                  <el-card v-if="!viewPage">
-                      <h4>科研生产部</h4>
-                      <el-form ref="maintenanceInfoForm2" v-if="maintenanceInfo.state >= 4" :model="maintenanceInfo" label-width="auto" style="max-width: 400px" :rules="rules">
-                          <el-form-item label="审批意见" prop="auditOpinion2">
-                              <el-input :disabled="maintenanceInfo.state !== 4" type="textarea" :rows="2" v-model="maintenanceInfo.auditOpinion2" />
-                          </el-form-item>
-                          <el-form-item label="审批人员" prop="auditUser2">
-                              <el-input :disabled="maintenanceInfo.state !== 4" v-model="maintenanceInfo.auditUser2" />
-                          </el-form-item>
-                          <el-form-item label="审批结果">
-                              <el-radio-group :disabled="maintenanceInfo.state !== 4" v-model="maintenanceInfo.auditResult2" class="ml-4">
-                                  <el-radio :value=0>通过</el-radio>
-                                  <el-radio :value=1>驳回</el-radio>
-                              </el-radio-group>
-                          </el-form-item>
-                          <el-form-item style="margin-left: 45%">
-                              <el-button type="primary" v-if="maintenanceInfo.state === 4" @click="maintenanceSubmit2">保存</el-button>
-                          </el-form-item>
-                      </el-form>
-                  </el-card>
-              </el-timeline-item>
-
-
-
-
+    <el-dialog
+      v-model="dialog1.visible"
+      :title="dialog1.title"
+      width="750px"
+      height="80%"
+      @close="dialog1.visible = false"
+    >
+      <el-timeline style="max-width: 500px; margin-left: 100px">
+        <el-timeline-item center type="success" placement="top">
+          <el-card>
+            <h4>设备停用申请</h4>
+            <p>统一编码: {{ maintenanceInfo.deviceNo }}</p>
+            <p>设备名称: {{ maintenanceInfo.deviceName }}</p>
+            <p>使用年限: {{ maintenanceInfo.deviceLife }}</p>
+            <p>停用时间: {{ maintenanceInfo.disableTime }}</p>
 
+            <!--            <p>调拨周期: {{maintenanceInfo.allocateCycle}}天</p>-->
+            <p>停用理由: {{ maintenanceInfo.remark }}</p>
+            <p>申请人员: {{ maintenanceInfo.creator }}</p>
+            <p>申请时间: {{ maintenanceInfo.created }}</p>
+          </el-card>
+        </el-timeline-item>
+        <el-timeline-item
+          center
+          placement="top"
+          :type="
+            maintenanceInfo.state === 0
+              ? 'primary'
+              : maintenanceInfo.state === 0
+                ? 'info'
+                : 'success'
+          "
+        >
+          <el-card v-if="viewPage">
+            <h4>使用经办人</h4>
+            <p>审批人员: {{ maintenanceInfo.auditUser }}</p>
+            <p>
+              审批结果:
+              {{
+                maintenanceInfo.auditUser
+                  ? maintenanceInfo.auditResult === 1
+                    ? "通过"
+                    : "不通过"
+                  : ""
+              }}
+            </p>
+            <p>审批时间: {{ maintenanceInfo.auditTime }}</p>
+          </el-card>
+          <el-card v-if="!viewPage">
+            <h4>使用经办人</h4>
+            <el-form
+              ref="maintenanceInfoForm"
+              :model="maintenanceInfo"
+              label-width="auto"
+              style="max-width: 400px"
+              :rules="rules"
+            >
+              <el-form-item label="审批意见" prop="auditOpinion">
+                <el-input
+                  :disabled="maintenanceInfo.state !== 0"
+                  type="textarea"
+                  :rows="2"
+                  v-model="maintenanceInfo.auditOpinion"
+                />
+              </el-form-item>
+              <el-form-item label="审批人员" prop="auditUser">
+                <el-input
+                  :disabled="maintenanceInfo.state !== 0"
+                  v-model="maintenanceInfo.auditUser"
+                />
+              </el-form-item>
+              <el-form-item label="审批结果">
+                <el-radio-group
+                  :disabled="maintenanceInfo.state !== 0"
+                  v-model="maintenanceInfo.auditResult"
+                  class="ml-4"
+                >
+                  <el-radio :value="0">通过</el-radio>
+                  <el-radio :value="1">驳回</el-radio>
+                </el-radio-group>
+              </el-form-item>
+              <el-form-item style="margin-left: 45%">
+                <el-button
+                  type="primary"
+                  v-if="maintenanceInfo.state === 0"
+                  @click="maintenanceSubmit"
+                  >保存</el-button
+                >
+              </el-form-item>
+            </el-form>
+          </el-card>
+        </el-timeline-item>
 
-          </el-timeline>
-      </el-dialog>
+        <el-timeline-item
+          center
+          placement="top"
+          :type="
+            maintenanceInfo.state === 2
+              ? 'primary'
+              : maintenanceInfo.state < 2
+                ? 'info'
+                : 'success'
+          "
+        >
+          <el-card v-if="viewPage">
+            <h4>使用部门负责人</h4>
+            <p>审批人员: {{ maintenanceInfo.auditUser1 }}</p>
+            <p>
+              审批结果:
+              {{
+                maintenanceInfo.auditUser1
+                  ? maintenanceInfo.auditResult1 === 1
+                    ? "通过"
+                    : "不通过"
+                  : ""
+              }}
+            </p>
+            <p>审批时间: {{ maintenanceInfo.auditTime1 }}</p>
+          </el-card>
+          <el-card v-if="!viewPage">
+            <h4>使用部门负责人</h4>
+            <el-form
+              ref="maintenanceInfoForm1"
+              v-if="maintenanceInfo.state >= 2"
+              :model="maintenanceInfo"
+              label-width="auto"
+              style="max-width: 400px"
+              :rules="rules"
+            >
+              <el-form-item label="审批意见" prop="auditOpinion1">
+                <el-input
+                  :disabled="maintenanceInfo.state !== 2"
+                  type="textarea"
+                  :rows="2"
+                  v-model="maintenanceInfo.auditOpinion1"
+                />
+              </el-form-item>
+              <el-form-item label="审批人员" prop="auditUser1">
+                <el-input
+                  :disabled="maintenanceInfo.state !== 2"
+                  v-model="maintenanceInfo.auditUser1"
+                />
+              </el-form-item>
+              <el-form-item label="审批结果">
+                <el-radio-group
+                  :disabled="maintenanceInfo.state !== 2"
+                  v-model="maintenanceInfo.auditResult1"
+                  class="ml-4"
+                >
+                  <el-radio :value="0">通过</el-radio>
+                  <el-radio :value="1">驳回</el-radio>
+                </el-radio-group>
+              </el-form-item>
+              <el-form-item style="margin-left: 45%">
+                <el-button
+                  type="primary"
+                  v-if="maintenanceInfo.state === 2"
+                  @click="maintenanceSubmit1"
+                  >保存</el-button
+                >
+              </el-form-item>
+            </el-form>
+          </el-card>
+        </el-timeline-item>
 
+        <el-timeline-item
+          center
+          placement="top"
+          :type="
+            maintenanceInfo.state === 4
+              ? 'primary'
+              : maintenanceInfo.state < 4
+                ? 'info'
+                : 'success'
+          "
+        >
+          <el-card v-if="viewPage">
+            <h4>科研生产部</h4>
+            <p>审批人员: {{ maintenanceInfo.auditUser1 }}</p>
+            <p>
+              审批结果:
+              {{
+                maintenanceInfo.auditUser1
+                  ? maintenanceInfo.auditResult1 === 1
+                    ? "通过"
+                    : "不通过"
+                  : ""
+              }}
+            </p>
+            <p>审批时间: {{ maintenanceInfo.auditTime1 }}</p>
+          </el-card>
+          <el-card v-if="!viewPage">
+            <h4>科研生产部</h4>
+            <el-form
+              ref="maintenanceInfoForm2"
+              v-if="maintenanceInfo.state >= 4"
+              :model="maintenanceInfo"
+              label-width="auto"
+              style="max-width: 400px"
+              :rules="rules"
+            >
+              <el-form-item label="审批意见" prop="auditOpinion2">
+                <el-input
+                  :disabled="maintenanceInfo.state !== 4"
+                  type="textarea"
+                  :rows="2"
+                  v-model="maintenanceInfo.auditOpinion2"
+                />
+              </el-form-item>
+              <el-form-item label="审批人员" prop="auditUser2">
+                <el-input
+                  :disabled="maintenanceInfo.state !== 4"
+                  v-model="maintenanceInfo.auditUser2"
+                />
+              </el-form-item>
+              <el-form-item label="审批结果">
+                <el-radio-group
+                  :disabled="maintenanceInfo.state !== 4"
+                  v-model="maintenanceInfo.auditResult2"
+                  class="ml-4"
+                >
+                  <el-radio :value="0">通过</el-radio>
+                  <el-radio :value="1">驳回</el-radio>
+                </el-radio-group>
+              </el-form-item>
+              <el-form-item style="margin-left: 45%">
+                <el-button
+                  type="primary"
+                  v-if="maintenanceInfo.state === 4"
+                  @click="maintenanceSubmit2"
+                  >保存</el-button
+                >
+              </el-form-item>
+            </el-form>
+          </el-card>
+        </el-timeline-item>
+      </el-timeline>
+    </el-dialog>
   </div>
   <CommonTable
     ref="ctableRef"
@@ -162,138 +294,138 @@
   />
 </template>
 <script setup>
-  import { ref, getCurrentInstance } from "vue";
-  import { useCrud } from "@/hooks/userCrud";
-  import ButtonPermKeys from "@/common/configs/buttonPermission";
-  import { useCommonStoreHook } from "@/store";
-  import {disableAudit} from "@/api/device";
-  const { isShowTable, tableType } = toRefs(useCommonStoreHook());
-  const dialog1 = reactive({
-      title: "设备停用申请",
-      visible: false,
-  });
-  const test = () => {
-    isShowTable.value = true;
-    tableType.value = tableType.value == 1 ? 2 : 1;
-  };
+import { ref, getCurrentInstance } from "vue";
+import { useCrud } from "@/hooks/userCrud";
+import ButtonPermKeys from "@/common/configs/buttonPermission";
+import { useCommonStoreHook } from "@/store";
+import { disableAudit } from "@/api/device";
+const { isShowTable, tableType } = toRefs(useCommonStoreHook());
+const dialog1 = reactive({
+  title: "设备停用申请",
+  visible: false,
+});
+const test = () => {
+  isShowTable.value = true;
+  tableType.value = tableType.value == 1 ? 2 : 1;
+};
 
-  // 传入一个url,后面不带/
-  const { form, data, option, search, page, toDeleteIds, Methords, Utils } =
-    useCrud({
-      src: "/api/v1/device/disable",
-    });
-  const { dataList, createRow, updateRow, deleteRow, searchChange, resetChange } =
-    Methords; //增删改查
-  const { selectionChange, multipleDelete } = Methords; //选中和批量删除事件
-  const { checkBtnPerm, downloadTemplate, exportData } = Utils; //按钮权限等工具
+// 传入一个url,后面不带/
+const { form, data, option, search, page, toDeleteIds, Methords, Utils } =
+  useCrud({
+    src: "/api/v1/device/disable",
+  });
+const { dataList, createRow, updateRow, deleteRow, searchChange, resetChange } =
+  Methords; //增删改查
+const { selectionChange, multipleDelete } = Methords; //选中和批量删除事件
+const { checkBtnPerm, downloadTemplate, exportData } = Utils; //按钮权限等工具
 
-  const maintenanceInfoForm = ref('maintenanceInfoForm')
-  const maintenanceInfoForm1 = ref('maintenanceInfoForm1')
-  const maintenanceInfoForm2 = ref('maintenanceInfoForm2')
-  const crudRef = ref(null); //crudRef.value 获取avue-crud对象
+const maintenanceInfoForm = ref("maintenanceInfoForm");
+const maintenanceInfoForm1 = ref("maintenanceInfoForm1");
+const maintenanceInfoForm2 = ref("maintenanceInfoForm2");
+const crudRef = ref(null); //crudRef.value 获取avue-crud对象
 
-  onMounted(() => {
-    // console.log("crudRef", crudRef)
-    dataList();
-  });
-  const ctableRef=ref(null);
-  const onSelectedFinish=(selectedValue)=>{
-      form.value.deviceName=selectedValue.deviceName;
-      form.value.deviceNo=selectedValue.deviceNo;
-      form.value.specifications=selectedValue.specifications;
-      form.value.manufacturer=selectedValue.manufacturer;
-      form.value.originalValue=selectedValue.originalValue;
+onMounted(() => {
+  // console.log("crudRef", crudRef)
+  dataList();
+});
+const ctableRef = ref(null);
+const onSelectedFinish = (selectedValue) => {
+  form.value.deviceName = selectedValue.deviceName;
+  form.value.deviceNo = selectedValue.deviceNo;
+  form.value.specifications = selectedValue.specifications;
+  form.value.manufacturer = selectedValue.manufacturer;
+  form.value.originalValue = selectedValue.originalValue;
+};
+const maintenanceInfo = ref({});
+const maintenance = (row) => {
+  maintenanceInfo.value = row;
+  if (null == maintenanceInfo.value.auditResult) {
+    maintenanceInfo.value.auditResult = 0;
   }
-  const maintenanceInfo = ref({});
-  const maintenance = (row) =>{
-      maintenanceInfo.value=row;
-      if(null==maintenanceInfo.value.auditResult){
-          maintenanceInfo.value.auditResult = 0
-      }
-      if(null==maintenanceInfo.value.auditResult1){
-          maintenanceInfo.value.auditResult1 = 0
-      }
-      if(null==maintenanceInfo.value.auditResult2){
-          maintenanceInfo.value.auditResult2 = 0
-      }
-      dialog1.visible=true;
-
+  if (null == maintenanceInfo.value.auditResult1) {
+    maintenanceInfo.value.auditResult1 = 0;
   }
-  const maintenanceSubmit =()=>{
-      //alert(JSON.stringify(maintenanceInfo.value))
-      maintenanceInfoForm.value.validate((isValid, invalidFields) => {
-          if (isValid) {
-              disableAudit(maintenanceInfo.value).then((data)=>{
-                  ElMessage({
-                      message: data.msg,
-                      type: "success",
-                  });
-                  dialog1.visible = false
-                  dataList()
-              })
-          }
-      })
+  if (null == maintenanceInfo.value.auditResult2) {
+    maintenanceInfo.value.auditResult2 = 0;
   }
+  dialog1.visible = true;
+};
+const maintenanceSubmit = () => {
+  //alert(JSON.stringify(maintenanceInfo.value))
+  maintenanceInfoForm.value.validate((isValid, invalidFields) => {
+    if (isValid) {
+      disableAudit(maintenanceInfo.value).then((data) => {
+        ElMessage({
+          message: data.msg,
+          type: "success",
+        });
+        dialog1.visible = false;
+        dataList();
+      });
+    }
+  });
+};
 
-  const maintenanceSubmit1 =()=>{
-      //alert(JSON.stringify(maintenanceInfo.value))
-      maintenanceInfoForm1.value.validate((isValid, invalidFields) => {
-          if (isValid) {
-              maintenanceInfo.value.auditResult = maintenanceInfo.value.auditResult1;
-              maintenanceInfo.value.auditOpinion = maintenanceInfo.value.auditOpinion1;
-              maintenanceInfo.value.auditUser = maintenanceInfo.value.auditUser1;
-              maintenanceInfo.value.auditOpinion = maintenanceInfo.value.auditOpinion1;
-              disableAudit(maintenanceInfo.value).then((data)=>{
-                  ElMessage({
-                      message: data.msg,
-                      type: "success",
-                  });
-                  dialog1.visible = false
-                  dataList()
-              })
-          }
-      })
-  }
+const maintenanceSubmit1 = () => {
+  //alert(JSON.stringify(maintenanceInfo.value))
+  maintenanceInfoForm1.value.validate((isValid, invalidFields) => {
+    if (isValid) {
+      maintenanceInfo.value.auditResult = maintenanceInfo.value.auditResult1;
+      maintenanceInfo.value.auditOpinion = maintenanceInfo.value.auditOpinion1;
+      maintenanceInfo.value.auditUser = maintenanceInfo.value.auditUser1;
+      maintenanceInfo.value.auditOpinion = maintenanceInfo.value.auditOpinion1;
+      disableAudit(maintenanceInfo.value).then((data) => {
+        ElMessage({
+          message: data.msg,
+          type: "success",
+        });
+        dialog1.visible = false;
+        dataList();
+      });
+    }
+  });
+};
 
-  const maintenanceSubmit2 =()=>{
-      //alert(JSON.stringify(maintenanceInfo.value))
-      maintenanceInfoForm2.value.validate((isValid, invalidFields) => {
-          if (isValid) {
-              maintenanceInfo.value.auditResult = maintenanceInfo.value.auditResult2;
-              maintenanceInfo.value.auditOpinion = maintenanceInfo.value.auditOpinion2;
-              maintenanceInfo.value.auditUser = maintenanceInfo.value.auditUser2;
-              maintenanceInfo.value.auditOpinion = maintenanceInfo.value.auditOpinion2;
-              disableAudit(maintenanceInfo.value).then((data)=>{
-                  ElMessage({
-                      message: data.msg,
-                      type: "success",
-                  });
-                  dialog1.visible = false
-                  dataList()
-              })
-          }
-      })
-  }
-  // 设置表格列或者其他自定义的option
-  option.value = Object.assign(option.value, {
-    selection: true,
-    column: [
-      {
-        label: "名称",
-        prop: "deviceName",
-        search: true,
-        overHidden: true,
-        rules: [
-          {
+const maintenanceSubmit2 = () => {
+  //alert(JSON.stringify(maintenanceInfo.value))
+  maintenanceInfoForm2.value.validate((isValid, invalidFields) => {
+    if (isValid) {
+      maintenanceInfo.value.auditResult = maintenanceInfo.value.auditResult2;
+      maintenanceInfo.value.auditOpinion = maintenanceInfo.value.auditOpinion2;
+      maintenanceInfo.value.auditUser = maintenanceInfo.value.auditUser2;
+      maintenanceInfo.value.auditOpinion = maintenanceInfo.value.auditOpinion2;
+      disableAudit(maintenanceInfo.value).then((data) => {
+        ElMessage({
+          message: data.msg,
+          type: "success",
+        });
+        dialog1.visible = false;
+        dataList();
+      });
+    }
+  });
+};
+// 设置表格列或者其他自定义的option
+option.value = Object.assign(option.value, {
+  selection: true,
+  delBtn: false,
+  column: [
+    {
+      label: "名称",
+      prop: "deviceName",
+      search: true,
+      overHidden: true,
+      rules: [
+        {
           required: true,
           message: "请输入名称",
           trigger: "blur",
-          },
-        ],
-          click: () => {
-              ctableRef.value.startSelect();
-          },
+        },
+      ],
+      click: () => {
+        ctableRef.value.startSelect();
       },
+    },
     {
       label: "统一编码",
       prop: "deviceNo",
@@ -301,72 +433,76 @@
       disabled: true,
       overHidden: true,
     },
-      {
-        label: "型号",
-        prop: "specifications",
-        disabled: true,
-        overHidden: true,
-      },
-      {
-        label: "使用年限",
-        prop: "deviceLife",
-        overHidden: true,
-      },
-      {
-        label: "厂家",
-        prop: "manufacturer",
-        disabled: true,
-        overHidden: true,
-      },
-       {
-        label: "原值",
-        prop: "originalValue",
-        disabled: true,
-         overHidden: true,
-       },
-        {
-            label: "停用时间",
-            prop: "disableTime",
-        },
-        {
-            label: "停用理由",
-            prop: "remark",
-            span:24,
-            type:"textarea",
-            overHidden: true,
-            rules: [
-                {
-                    required: true,
-                    message: "请输入停用理由",
-                    trigger: "blur",
-                },
-            ],
-        },
-      {
-        label: "申请人",
-        prop: "creator",
-        overHidden: true,
-        display:false
-      },
-      {
-        label: "申请时间",
-        prop: "created",
-        overHidden:true,
-        display:false
-      },
+    {
+      label: "型号",
+      prop: "specifications",
+      disabled: true,
+      overHidden: true,
+    },
+    {
+      label: "使用年限",
+      prop: "deviceLife",
+      overHidden: true,
+    },
+    {
+      label: "厂家",
+      prop: "manufacturer",
+      disabled: true,
+      overHidden: true,
+    },
+    {
+      label: "原值",
+      prop: "originalValue",
+      disabled: true,
+      overHidden: true,
+    },
+    {
+      label: "停用时间",
+      prop: "disableTime",
+    },
+    {
+      label: "停用理由",
+      prop: "remark",
+      span: 24,
+      type: "textarea",
+      overHidden: true,
+      rules: [
         {
-            label: "状态",
-            prop: "state",
-            display: false,
-            overHidden: true,
-            width : 160,
-            type: "select",
-            dicData: [{label: '待使用部门经办人审核',value:0},{label: '驳回',value:1},{label: '待使用部门负责人审核',value:2}
-                ,{label: '驳回',value:3},{label: '待科研生产部审核',value:4},{label: '驳回',value:5}
-                ,{label: '已完成',value:6}
-
-            ],
+          required: true,
+          message: "请输入停用理由",
+          trigger: "blur",
         },
-    ],
-  });
+      ],
+    },
+    {
+      label: "申请人",
+      prop: "creator",
+      overHidden: true,
+      display: false,
+    },
+    {
+      label: "申请时间",
+      prop: "created",
+      overHidden: true,
+      display: false,
+    },
+    {
+      label: "状态",
+      prop: "state",
+      display: false,
+      overHidden: true,
+      width: 160,
+      type: "select",
+      dicData: [
+        { label: "待使用部门经办人审核", value: 0 },
+        { label: "驳回", value: 1 },
+        { label: "待使用部门负责人审核", value: 2 },
+        { label: "驳回", value: 3 },
+        { label: "待科研生产部审核", value: 4 },
+        { label: "驳回", value: 5 },
+        { label: "已完成", value: 6 },
+      ],
+    },
+  ],
+});
 </script>

+ 19 - 0
src/views/plan/order/index.vue

@@ -554,6 +554,25 @@ option.value = {
       value: 0,
     },
     {
+      label: "生产类型",
+      prop: "produceType",
+      width: 100,
+      overHidden: true,
+      type: "select", //类型为下拉选择框
+      dicUrl: dictDataUtil.request_url + dictDataUtil.TYPE_CODE.produce_type,
+      props: {
+        label: "dictLabel",
+        value: "dictValue",
+      },
+      rules: [
+        {
+          required: true,
+          message: "请选择生产类型",
+          trigger: "trigger",
+        },
+      ],
+    },
+    {
       label: "备注",
       prop: "remark",
       width: 100,

+ 44 - 9
src/views/plan/schedule/index.vue

@@ -20,12 +20,21 @@
         <el-button
           icon="el-icon-edit"
           text
-          v-if="row.state === '-1' || row.state === '0' || row.state === '1'"
+          v-if="row.state === '-1' || row.state === '0'"
           @click="handleEdit(row, index)"
           type="primary"
           :size="size"
           >编辑</el-button
         >
+        <el-button
+          icon="el-icon-right"
+          text
+          v-if="row.state === '-1' || row.state === '0' || row.state === '1'"
+          @click="doEdit(row, index)"
+          type="primary"
+          :size="size"
+          >派工</el-button
+        >
       </template>
       <template #menu-left>
         <div id="charts"></div>
@@ -64,14 +73,40 @@ const handleEdit = (row, index) => {
   queryStationByLineId(row.productLineId).then((data) => {
     stationList.value = data.data;
   });
+  option.value.column[0].display = true;
+  option.value.column[2].display = true;
+  option.value.column[3].display = false;
+  option.value.column[9].display = true;
+  option.value.column[4].display = true;
+  option.value.column[5].display = true;
+  option.value.column[6].display = true;
+  option.value.column[7].display = true;
+  option.value.column[8].display = true;
+  option.value.column[10].display = true;
+  option.value.column[11].display = true;
+  option.value.column[12].display = true;
+  option.value.column[13].display = true;
+  crudRef.value && crudRef.value.rowEdit(row, index);
+};
+
+const doEdit = (row, index) => {
   getUserList({}).then((data) => {
     userList.value = data.data;
   });
-  if (row.state === "1") {
-    option.value.column[2].editDisabled = true;
-    option.value.column[12].editDisabled = true;
-    option.value.column[13].editDisabled = true;
-  }
+  option.value.column[0].display = false;
+  option.value.column[1].display = false;
+  option.value.column[2].display = false;
+  option.value.column[3].display = true;
+  option.value.column[9].display = true;
+  option.value.column[4].display = false;
+  option.value.column[5].display = false;
+  option.value.column[6].display = false;
+  option.value.column[7].display = false;
+  option.value.column[8].display = false;
+  option.value.column[10].display = false;
+  option.value.column[11].display = false;
+  option.value.column[12].display = false;
+  option.value.column[13].display = false;
   crudRef.value && crudRef.value.rowEdit(row, index);
 };
 onMounted(() => {
@@ -116,7 +151,7 @@ onMounted(() => {
 option.value = Object.assign(option.value, {
   selection: true,
   menu: true,
-  menuWidth: 100,
+  menuWidth: 160,
   addBtn: false,
   filterBtn: false,
   searchShowBtn: false,
@@ -156,13 +191,13 @@ option.value = Object.assign(option.value, {
       ],
     },
     {
-      label: "分配人员",
+      label: "派工人员",
       editDisabled: false,
       type: "select",
+      display: false,
       dicData: userList,
       filterable: true,
       prop: "allocationUser",
-      dicMethod: "post",
       props: { label: "userName", value: "userName" },
     },
     {

+ 12 - 10
src/views/plan/workOrder/index.vue

@@ -136,15 +136,17 @@
           :size="size"
           >生产随工单</el-button
         >
-        <!-- <el-button
+        <el-button
           icon="el-icon-notebook"
           text
-          v-if="row.workOrderState === '6'&&row.packageUrl==='0'"
-          @click="zipData(row.workOrderCode)"
+          v-if="row.workOrderState === '6' && row.isExcel == 0"
+          @click="workOrderData(row.id)"
           type="primary"
           v-hasPerm="[buttonPermission.PLAN.BTNS.work_order_data]"
-          :size="size">生成数据包</el-button>
-        <el-button
+          :size="size"
+          >生成生产随工单</el-button
+        >
+        <!--        <el-button
           icon="el-icon-download"
           text
           v-if="row.workOrderState === '6'&&row.packageUrl!=='0'"
@@ -296,7 +298,7 @@ import {
   distributeWorkOrder,
   revokeWorkOrder,
   lockWorkOrder,
-  zipWorkOrder,
+  excelWorkOrder,
 } from "@/api/order";
 import { useCommonStoreHook } from "@/store";
 import dictDataUtil from "@/common/configs/dictDataUtil";
@@ -423,11 +425,11 @@ const lockOrUnLockWorkOrder = (id, status) => {
     });
 };
 const loading = ref(false);
-const zipWork = ref({});
-const zipData = (workOrderCode) => {
+const excelWork = ref({});
+const workOrderData = (id) => {
   loading.value = true;
-  zipWork.value.workOrderCode = workOrderCode;
-  zipWorkOrder(zipWork.value).then((data) => {
+  excelWork.value.workOrderId = id;
+  excelWorkOrder(excelWork.value).then((data) => {
     if (data.code === "200") {
       loading.value = false;
       ElMessage.success(data.msg);

+ 2 - 0
src/views/pro/traceability/index.vue

@@ -11,6 +11,8 @@
           v-model:page="page"
           @cell-click="handleCellClick"
           @search-change="searchChange"
+          @current-change="dataList"
+          @selection-change="selectionChange"
         >
           <template #seqNo="{ row }">
             <el-tag :type="chooseTagType(row.seqNo, 'css')">{{

+ 34 - 35
src/views/system/post/index.vue

@@ -1,27 +1,25 @@
 <template>
   <div class="mainContentBox">
     <avue-crud
-        ref="crudRef"
-        v-model:search="search"
-        v-model="form"
-        :data="data"
-        :option="option"
-        v-model:page="page"
-        @row-save="createRow"
-        @row-update="updateRow"
-        @row-del="deleteRow"
-        @search-change="searchChange"
-        @search-reset="resetChange"
-        @size-change="dataList"
-        @current-change="dataList"
-        @selection-change="selectionChange"
+      ref="crudRef"
+      v-model:search="search"
+      v-model="form"
+      :data="data"
+      :option="option"
+      v-model:page="page"
+      @row-save="createRow"
+      @row-update="updateRow"
+      @row-del="deleteRow"
+      @search-change="searchChange"
+      @search-reset="resetChange"
+      @size-change="dataList"
+      @current-change="dataList"
+      @selection-change="selectionChange"
     >
-      <template #menu="{row,index,type}">
-        <el-button @click="binding(row)"
-                   icon="el-icon-link"
-                   text
-                   type="primary"
-        >技能</el-button>
+      <template #menu="{ row, index, type }">
+        <el-button @click="binding(row)" icon="el-icon-link" text type="primary"
+          >技能</el-button
+        >
       </template>
       <template #menu-left="{ size }">
         <el-button
@@ -41,7 +39,7 @@
       @close="dialog.visible = false"
       :destroy-on-close="true"
     >
-      <post-skill  :postId="post.id" :dialog="dialog"/>
+      <post-skill :postId="post.id" :dialog="dialog" />
     </el-dialog>
     <ExcelUpload ref="uploadRef" @finished="uploadFinished" />
   </div>
@@ -58,17 +56,18 @@ const test = () => {
   isShowTable.value = true;
   tableType.value = tableType.value == 1 ? 2 : 1;
 };
-const post=ref(null);
-const binding=(row)=>{
-  post.value=row;
-  dialog.visible=true;
-}
+const post = ref(null);
+const binding = (row) => {
+  post.value = row;
+  dialog.visible = true;
+};
 // 传入一个url,后面不带/
 const { form, data, option, search, page, toDeleteIds, Methords, Utils } =
   useCrud({
     src: "/api/v1/sys/post",
   });
-const { dataList, createRow, updateRow, deleteRow, searchChange, resetChange } = Methords; //增删改查
+const { dataList, createRow, updateRow, deleteRow, searchChange, resetChange } =
+  Methords; //增删改查
 const { selectionChange, multipleDelete } = Methords; //选中和批量删除事件
 const { checkBtnPerm, downloadTemplate, exportData } = Utils; //按钮权限等工具
 
@@ -87,9 +86,7 @@ option.value = Object.assign(option.value, {
       prop: "postGroup",
       type: "select",
       search: true,
-      dicUrl:
-          dictDataUtil.request_url +
-          dictDataUtil.TYPE_CODE.post_group,
+      dicUrl: dictDataUtil.request_url + dictDataUtil.TYPE_CODE.post_group,
       props: {
         label: "dictLabel",
         value: "dictValue",
@@ -107,9 +104,7 @@ option.value = Object.assign(option.value, {
       prop: "postType",
       type: "select",
       search: true,
-      dicUrl:
-          dictDataUtil.request_url +
-          dictDataUtil.TYPE_CODE.post_type,
+      dicUrl: dictDataUtil.request_url + dictDataUtil.TYPE_CODE.post_type,
       props: {
         label: "dictLabel",
         value: "dictValue",
@@ -149,7 +144,10 @@ option.value = Object.assign(option.value, {
       label: "状态",
       prop: "state",
       type: "select",
-      dicData: [{label: '正常' , value: 0},{label: '禁用' , value: 1}],
+      dicData: [
+        { label: "正常", value: 0 },
+        { label: "禁用", value: 1 },
+      ],
       html: true,
       formatter: (val) => {
         if (val.state === 0) {
@@ -170,6 +168,7 @@ option.value = Object.assign(option.value, {
       label: "备注",
       prop: "remark",
       width: "100",
+      showOverflowTooltip: true,
       minRows: 2, //最小行/最小值
       type: "textarea", //类型为多行文本域框
       maxlength: 512, //最大输入长度
@@ -177,7 +176,7 @@ option.value = Object.assign(option.value, {
     {
       label: "创建时间",
       prop: "created",
-      display: false
+      display: false,
     },
   ],
 });