Parcourir la source

fix:流程修改

lupeng il y a 11 mois
Parent
commit
6807f550ff

+ 9 - 0
src/api/device/index.ts

@@ -124,3 +124,12 @@ export function meteringUpdate(params: any) {
 }
 
 
+export function meteringUpdateFile(params: any) {
+  return request({
+    url: "/api/v1/device/metering/update",
+    method: "post",
+    data: params,
+  });
+}
+
+

+ 3 - 0
src/common/configs/buttonPermission.ts

@@ -77,6 +77,9 @@ const ButtonPermKeys = {
       repair_edit: "device:repair:edit",
       repair_del: "device:repair:del",
       repair_audit: "device:repair:audit",
+      repair_audit1: "device:repair:audit1",
+      repair_audit2: "device:repair:audit2",
+      repair_audit3: "device:repair:audit3",
       allocate_add: "device:allocate:add",
       allocate_edit: "device:allocate:edit",
       allocate_del: "device:allocate:del",

+ 24 - 4
src/components/CommonTable/configs/tableConfig.ts

@@ -356,7 +356,7 @@ export const tableConfig = {
     url: "/api/v1/device",
     column: [
       {
-        label: "设备编号",
+        label: "资产编号",
         prop: "deviceNo",
         search: true,
         rules: [
@@ -384,6 +384,7 @@ export const tableConfig = {
         prop: "deviceType",
         type: "select",
         search: true,
+        hide: true,
         dicData: dicts.device_type,
         props: {
           label: "dictLabel",
@@ -395,17 +396,36 @@ export const tableConfig = {
         prop: "head",
       },
       {
-        label: "设备位置",
+        label: "存放位置",
         prop: "devicePosition",
       },
       {
-        label: "规格",
+        label: "型号",
         prop: "specifications",
       },
       {
-        label: "品牌",
+        label: "制造厂",
         prop: "brand",
       },
+      {
+        label: "所属部门",
+        prop: "deptId",
+        width: 100,
+        overHidden: true,
+        type: "tree",
+        dicUrl: dictDataUtil.dept_tree_url,
+        props: {
+          label: "deptName",
+          value: "id",
+        },
+        rules: [
+          {
+            required: true,
+            message: "所属部门不能为空",
+            trigger: "trigger",
+          },
+        ],
+      },
     ],
   },
 

+ 222 - 8
src/views/device/allocate/index.vue

@@ -70,22 +70,30 @@
             <p>设备名称: {{maintenanceInfo.deviceName}}</p>
             <p>申请部门: {{maintenanceInfo.creator}}</p>
             <p>申请人员: {{maintenanceInfo.creator}}</p>
-            <p>调拨周期: {{maintenanceInfo.allocateCycle}}天</p>
+<!--            <p>调拨周期: {{maintenanceInfo.allocateCycle}}天</p>-->
             <p>调拨目标位置: {{maintenanceInfo.deviceToPosition}}</p>
             <p>申请时间: {{maintenanceInfo.created}}</p>
+            <el-form-item label="是否需要公司分管领导审批">
+              <el-radio-group  v-model="maintenanceInfo.isApprove" class="ml-4" @change="showCard">
+                <el-radio :value=0>否</el-radio>
+                <el-radio :value=1>是</el-radio>
+              </el-radio-group>
+            </el-form-item>
           </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>
+            <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>
+            <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>
@@ -101,6 +109,125 @@
             </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="auditOpinion">
+                <el-input :disabled="maintenanceInfo.state !== 2" type="textarea" :rows="2" v-model="maintenanceInfo.auditOpinion1" />
+              </el-form-item>
+              <el-form-item label="审批人员" prop="auditUser">
+                <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=1>通过</el-radio>
+                  <el-radio :value=2>驳回</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="auditOpinion">
+                <el-input :disabled="maintenanceInfo.state !== 4" type="textarea" :rows="2" v-model="maintenanceInfo.auditOpinion2" />
+              </el-form-item>
+              <el-form-item label="审批人员" prop="auditUser">
+                <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=1>通过</el-radio>
+                  <el-radio :value=2>驳回</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-item center placement="top"  :type="maintenanceInfo.state === 6 ? 'primary' : maintenanceInfo.state < 6 ? '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="maintenanceInfoForm3"  v-if="maintenanceInfo.state >= 6" :model="maintenanceInfo" label-width="auto" style="max-width: 400px" :rules="rules">
+              <el-form-item label="审批意见" prop="auditOpinion">
+                <el-input :disabled="maintenanceInfo.state !== 6" type="textarea" :rows="2" v-model="maintenanceInfo.auditOpinion3" />
+              </el-form-item>
+              <el-form-item label="审批人员" prop="auditUser">
+                <el-input :disabled="maintenanceInfo.state !== 6" v-model="maintenanceInfo.auditUser2" />
+              </el-form-item>
+              <el-form-item label="审批结果">
+                <el-radio-group :disabled="maintenanceInfo.state !== 6" v-model="maintenanceInfo.auditResult2" class="ml-4">
+                  <el-radio :value=1>通过</el-radio>
+                  <el-radio :value=2>驳回</el-radio>
+                </el-radio-group>
+              </el-form-item>
+              <el-form-item style="margin-left: 45%">
+                <el-button type="primary" v-if="maintenanceInfo.state === 6" @click="maintenanceSubmit3">保存</el-button>
+              </el-form-item>
+            </el-form>
+          </el-card>
+        </el-timeline-item>
+
+        <el-timeline-item center placement="top"   v-show="showItem"  :type="maintenanceInfo.state === 8 ? 'primary' : maintenanceInfo.state < 8 ? '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="maintenanceInfoForm4" v-if="maintenanceInfo.state >= 8" :model="maintenanceInfo" label-width="auto" style="max-width: 400px" :rules="rules">
+              <el-form-item label="审批意见" prop="auditOpinion">
+                <el-input :disabled="maintenanceInfo.state !== 8" type="textarea" :rows="2" v-model="maintenanceInfo.auditOpinion4" />
+              </el-form-item>
+              <el-form-item label="审批人员" prop="auditUser">
+                <el-input :disabled="maintenanceInfo.state !== 8" v-model="maintenanceInfo.auditUser2" />
+              </el-form-item>
+              <el-form-item label="审批结果">
+                <el-radio-group :disabled="maintenanceInfo.state !== 8" v-model="maintenanceInfo.auditResult2" class="ml-4">
+                  <el-radio :value=1>通过</el-radio>
+                  <el-radio :value=2>驳回</el-radio>
+                </el-radio-group>
+              </el-form-item>
+              <el-form-item style="margin-left: 45%">
+                <el-button type="primary" v-if="maintenanceInfo.state === 8" @click="maintenanceSubmit3">保存</el-button>
+              </el-form-item>
+            </el-form>
+          </el-card>
+        </el-timeline-item>
+
+
       </el-timeline>
     </el-dialog>
   </div>
@@ -115,6 +242,8 @@ import {allocateAudit,allocateExport} from "@/api/device/index";
 import { useCommonStoreHook } from "@/store";
 import dictDataUtil from "@/common/configs/dictDataUtil";
 const { isShowTable, tableType } = toRefs(useCommonStoreHook());
+
+const showItem = ref(false);
 const test = () => {
   isShowTable.value = true;
   tableType.value = tableType.value == 1 ? 2 : 1;
@@ -153,13 +282,27 @@ const deviceInfo = (value) => {
   form.value.oldHead = value.head
   form.value.devicePosition = value.devicePosition
   form.value.oldDept = value.deptId
-  dialog.visible = false
+  dialog.visible = false;
+  form.value.serialNumber = value.serialNumber
+    form.value.originalValue = value.originalValue
+    form.value.specifications = value.specifications
+
+}
+
+const showCard = () =>{
+  if(maintenanceInfo.value.isApprove===1){
+    showItem.value = true;
+  }
+  if(maintenanceInfo.value.isApprove===0){
+    showItem.value = false;
+  }
 }
 const maintenanceInfo = ref(null)
 const maintenance = (row,type)=>{
   viewPage.value = type === 0 ? false : true
   maintenanceInfo.value = row
   maintenanceInfo.value.auditResult = 1
+  maintenanceInfo.value.isApprove = 0
   dialog1.visible = true
 }
 const queryUserList = ()=>{
@@ -191,6 +334,11 @@ const downFile = (response) => {
   window.URL.revokeObjectURL(downloadUrl);
 }
 const maintenanceInfoForm = ref('maintenanceInfoForm')
+const maintenanceInfoForms = ref('maintenanceInfoForms')
+const maintenanceInfoForm1 = ref('maintenanceInfoForm1')
+const maintenanceInfoForm2 = ref('maintenanceInfoForm2')
+const maintenanceInfoForm3 = ref('maintenanceInfoForm3')
+const maintenanceInfoForm4 = ref('maintenanceInfoForm4')
 const maintenanceSubmit =()=>{
   //alert(JSON.stringify(maintenanceInfo.value))
   maintenanceInfoForm.value.validate((isValid, invalidFields) => {
@@ -206,12 +354,72 @@ const maintenanceSubmit =()=>{
     }
   })
 }
+const maintenanceSubmit1 =()=>{
+  //alert(JSON.stringify(maintenanceInfo.value))
+  maintenanceInfoForm1.value.validate((isValid, invalidFields) => {
+    if (isValid) {
+      allocateAudit(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) {
+      allocateAudit(maintenanceInfo.value).then((data)=>{
+        ElMessage({
+          message: data.msg,
+          type: "success",
+        });
+        dialog1.visible = false
+        dataList()
+      })
+    }
+  })
+}
+const maintenanceSubmit3 =()=>{
+  //alert(JSON.stringify(maintenanceInfo.value))
+  maintenanceInfoForm3.value.validate((isValid, invalidFields) => {
+    if (isValid) {
+      allocateAudit(maintenanceInfo.value).then((data)=>{
+        ElMessage({
+          message: data.msg,
+          type: "success",
+        });
+        dialog1.visible = false
+        dataList()
+      })
+    }
+  })
+}
+const maintenanceSubmit4 =()=>{
+  //alert(JSON.stringify(maintenanceInfo.value))
+  maintenanceInfoForm4.value.validate((isValid, invalidFields) => {
+    if (isValid) {
+      allocateAudit(maintenanceInfo.value).then((data)=>{
+        ElMessage({
+          message: data.msg,
+          type: "success",
+        });
+        dialog1.visible = false
+        dataList()
+      })
+    }
+  })
+}
 const rules = reactive({
   auditUser: [
     { required: true, message: '审核人员不能为空', trigger: 'blur' }
   ],
-  handleContent: [
-    { required: true, message: '维修内容不能为空', trigger: 'blur' }
+  auditOpinion: [
+    { required: true, message: '审批意见不能为空', trigger: 'blur' }
   ]
 })
 // 设置表格列或者其他自定义的option
@@ -400,8 +608,14 @@ option.value = Object.assign(option.value, {
       label: "状态",
       prop: "state",
       display: false,
+      overHidden: true,
+      width : 160,
       type: "select",
-      dicData: [{label: '待审核',value:0},{label: '通过',value:1},{label: '驳回',value:2}],
+      dicData: [{label: '待调出部门领导审核',value:0},{label: '驳回',value:1},{label: '待调入部门领导审核',value:2}
+        ,{label: '驳回',value:3},{label: '待设备管理员审核',value:4},{label: '驳回',value:5}
+        ,{label: '待科研生产部负责人审核',value:6},{label: '驳回',value:7},{label: '待公司分管领导审核',value:8},{label: '已完成',value:9}
+
+      ],
     },
     {
       label: "申请人",

+ 31 - 18
src/views/device/instance/components/device-page.vue

@@ -53,7 +53,7 @@ option.value = Object.assign(option.value, {
   menu: false,
   column: [
     {
-      label: "设备编号",
+      label: "资产编号",
       prop: "deviceNo",
       search: true,
       width: '120',
@@ -78,40 +78,53 @@ option.value = Object.assign(option.value, {
         },
       ],
     },
-    {
-      label: "设备类型",
-      prop: "deviceType",
-      type: "select",
-      search: true,
-      width: '100',
-      dicUrl:
-        dictDataUtil.request_url +
-        dictDataUtil.TYPE_CODE.device_type,
-      props: {
-        label: "dictLabel",
-        value: "dictValue",
-      },
-    },
+
     {
       label: "负责人",
       width: '100',
       prop: "head",
     },
     {
-      label: "设备位置",
+      label: "存放位置",
       width: '150',
       prop: "devicePosition",
     },
     {
-      label: "规格",
+      label: "型号",
       width: '150',
       prop: "specifications",
     },
     {
-      label: "品牌",
+      label: "制造厂",
       width: '150',
       prop: "brand",
     },
+      {
+          label: "原值",
+          prop: "originalValue",
+          width: 100,
+          overHidden: true,
+      },
+      {
+          label: "出厂编号",
+          prop: "serialNumber",
+          width: 100,
+          overHidden: true,
+      },
+    {
+      label: "设备类型",
+      prop: "deviceType",
+      type: "select",
+      search: true,
+      width: '100',
+      dicUrl:
+        dictDataUtil.request_url +
+        dictDataUtil.TYPE_CODE.device_type,
+      props: {
+        label: "dictLabel",
+        value: "dictValue",
+      },
+    },
   ],
 });
 

+ 0 - 122
src/views/device/instance/components/device-page.vue~

@@ -1,122 +0,0 @@
-<template>
-  <div class="mainContentBox">
-    <avue-crud
-        ref="crudRef"
-        v-model:search="search"
-        v-model="form"
-        :data="data"
-        :option="option"
-        v-model:page="page"
-        @row-click="rowClick"
-        @search-change="searchChange"
-        @search-reset="resetChange"
-        @size-change="dataList"
-        @current-change="dataList"
-    >
-    </avue-crud>
-  </div>
-</template>
-<script setup>
-import { ref, getCurrentInstance } from "vue";
-import { useCrud } from "@/hooks/userCrud";
-import ButtonPermKeys from "@/common/configs/buttonPermission";
-
-import { useCommonStoreHook } from "@/store";
-import dictDataUtil from "@/common/configs/dictDataUtil";
-const { isShowTable, tableType } = toRefs(useCommonStoreHook());
-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",
-  });
-const { dataList, createRow, updateRow, deleteRow, searchChange, resetChange } = Methords; //增删改查
-const { selectionChange, multipleDelete } = Methords; //选中和批量删除事件
-const { checkBtnPerm, downloadTemplate } = Utils; //按钮权限等工具
-
-const crudRef = ref(null); //crudRef.value 获取avue-crud对象
-const emit = defineEmits(["deviceInfo"])
-const rowClick = (row)=>{
-  emit("deviceInfo", row)
-}
-
-// 设置表格列或者其他自定义的option
-option.value = Object.assign(option.value, {
-  delBtn: false,
-  selection: false,
-  search: false,
-  editBtn: false,
-  addBtn: false,
-  viewBtn: false,
-  menu: false,
-  column: [
-    {
-      label: "设备编号",
-      prop: "deviceNo",
-      search: true,
-      width: '120',
-      rules: [
-        {
-          required: true,
-          message: "设备编号不能为空",
-          trigger: "trigger",
-        },
-      ],
-    },
-    {
-      label: "设备名称",
-      prop: "deviceName",
-      search: true,
-      width: '120',
-      rules: [
-        {
-          required: true,
-          message: "设备名称不能为空",
-          trigger: "trigger",
-        },
-      ],
-    },
-    {
-      label: "设备类型",
-      prop: "deviceType",
-      type: "select",
-      search: true,
-      width: '100',
-      dicUrl:
-        dictDataUtil.request_url +
-        dictDataUtil.TYPE_CODE.device_type,
-      props: {
-        label: "dictLabel",
-        value: "dictValue",
-      },
-    },
-    {
-      label: "负责人",
-      width: '100',
-      prop: "head",
-    },
-    {
-      label: "设备位置",
-      width: '150',
-      prop: "devicePosition",
-    },
-    {
-      label: "规格",
-      width: '150',
-      prop: "specifications",
-    },
-    {
-      label: "品牌",
-      width: '150',
-      prop: "brand",
-    },
-  ],
-});
-
-onMounted(() => {
-  dataList();
-});
-</script>

+ 38 - 31
src/views/device/maintenance/components/record-page.vue

@@ -65,30 +65,6 @@ const handleOption =()=>{
     viewBtn: false,
     menu: false,
     column: [
-      {
-        label: "设备编号",
-        prop: "deviceNo",
-        width: '120',
-        rules: [
-          {
-            required: true,
-            message: "设备编号不能为空",
-            trigger: "trigger",
-          },
-        ],
-      },
-      {
-        label: "设备名称",
-        prop: "deviceName",
-        width: '120',
-        rules: [
-          {
-            required: true,
-            message: "设备名称不能为空",
-            trigger: "trigger",
-          },
-        ],
-      },
       /*{
         label: "设备类型",
         prop: "deviceType",
@@ -115,17 +91,52 @@ const handleOption =()=>{
         dicData: [{label: '点检',value:'0'},{label: '保养',value:'1'}]
       },*/
       {
-        label: mType.value === "1" ? "维护内容" : "点检内容",
+        label: mType.value === "1" ? "保养日期" : "点检时间",
+        width: '180',
+        format: 'YYYY-MM-DD',
+        valueFormat: 'YYYY-MM-DD',
+        prop: "maintenanceTime",
+      },
+      {
+        label: mType.value === "1" ? "保养项目" : "点检内容",
         prop: "maintenanceContent",
         minRows: 2, //最小行/最小值
         maxlength: 512, //最大输入长度
         overHidden: true
       },
       {
-        label: mType.value === "1" ? "维护人员" : "点检人员",
+        label: mType.value === "1" ? "维护人" : "点检人员",
         prop: "maintenanceUser",
       },
       {
+        label: "确认人",
+        prop: "confirmUser",
+      },
+      {
+        label: "设备编号",
+        prop: "deviceNo",
+        width: '120',
+        rules: [
+          {
+            required: true,
+            message: "设备编号不能为空",
+            trigger: "trigger",
+          },
+        ],
+      },
+      {
+        label: "设备名称",
+        prop: "deviceName",
+        width: '120',
+        rules: [
+          {
+            required: true,
+            message: "设备名称不能为空",
+            trigger: "trigger",
+          },
+        ],
+      },
+      {
         label: mType.value === "1" ? "维护结果" : "点检结果",
         prop: "result",
         search: true,
@@ -133,11 +144,7 @@ const handleOption =()=>{
         editDisplay: false,
         dicData: mType.value === "1" ? [{label: '正常',value:"0"},{label: '报故',value:"1"}] : [{label: '合格',value:"0"},{label: '不合格',value:"1"}]
       },
-      {
-        label: mType.value === "1" ? "维护时间" : "点检时间",
-        width: '180',
-        prop: "maintenanceTime",
-      },
+
     ],
   })
 }

+ 99 - 3
src/views/device/metering/index.vue

@@ -39,7 +39,7 @@
                   :pdf-source="filePath + row.pdfPath"
                   v-if="radio1=='2'&&row.pdfPath!=''"
           />
-          <el-button @click="maintenance(row)"
+          <el-button @click="maintenance1(row)"
                      icon="el-icon-setting"
                      text
                      type="primary"
@@ -180,7 +180,59 @@
 <!--        </el-timeline-item>-->
       </el-timeline>
     </el-dialog>
+    <el-dialog
+      v-model="dialog3.visible"
+      :title="dialog3.title"
+      width="750px"
+      height="80%"
+      @close="dialog1.visible = false">
+      <el-timeline style="max-width: 500px;margin-left: 100px">
+        <!--        <el-timeline-item center color="#0bbd87" type="success" placement="top">
+                  <el-card>
+                    <h4>维护计划</h4>
+                    <p>设备编号: {{maintenanceInfo.deviceNo}}</p>
+                    <p>设备名称:{{maintenanceInfo.deviceName}}</p>
+                    <p>维护内容:{{maintenanceInfo.remark}}</p>
+                    <p>计划时间:{{maintenanceInfo.nextTime}}</p>
+                  </el-card>
+                </el-timeline-item>-->
+        <!--        <el-timeline-item center placement="top" :type="maintenanceInfo.state === 0 ? 'primary' : 'success'">-->
+        <el-card>
+          <h4>更改附件</h4>
+          <el-form ref="maintenanceInfoForm1" :model="maintenanceInfo1" label-width="auto" style="max-width: 400px" :rules="rules">
+
+
+
+            <!--        <single-upload v-model="form.drawingPath" :generatePdf="true"/>-->
+
+
+            <!--              <el-form-item v-if="maintenanceInfo.result === 1" label="报故内容">
+                            <el-input v-model="maintenanceInfo.maintenanceContent" />
+                          </el-form-item>-->
+            <el-form-item label="附件上传">
+              <el-radio-group v-model="maintenanceInfo1.upload" class="ml-4">
+                <FilesUpload
+                  v-model:src="fileUrl1"
+                  v-model:pdf-list="pdfUrlList1"
+                  v-model:file-name-list="fileNameList1"
+                  :generate-pdf="true"
+                  @finished="testFiles1"
+                />
+              </el-radio-group>
+            </el-form-item>
+
 
+            <!--              <el-form-item v-if="maintenanceInfo.result === 0" label="下次维护内容">
+                            <el-input v-model="maintenanceInfo.maintenanceContent" />
+                          </el-form-item>-->
+            <el-form-item style="margin-left: 45%">
+              <el-button type="primary" @click="maintenanceSubmit1">保存</el-button>
+            </el-form-item>
+          </el-form>
+        </el-card>
+        <!--        </el-timeline-item>-->
+      </el-timeline>
+    </el-dialog>
     <el-dialog
         v-model="dialog2.visible"
         :title="dialog2.title"
@@ -198,7 +250,7 @@ import { useCrud } from "@/hooks/userCrud";
 import ButtonPermKeys from "@/common/configs/buttonPermission";
 import {getUserList} from "@/api/system/user";
 import { queryDictDataByType } from "@/api/system/dict";
-import {maintenanceUpdate,meteringUpdate} from "@/api/device/index";
+import {maintenanceUpdate, meteringUpdate, meteringUpdateFile} from "@/api/device/index";
 import { useCommonStoreHook } from "@/store";
 import dictDataUtil from "@/common/configs/dictDataUtil";
 import RecordPage from "./components/metering-record.vue";
@@ -207,6 +259,9 @@ const { isShowTable, tableType } = toRefs(useCommonStoreHook());
 const pdfUrlList = ref([]);
 const fileUrl = ref();
 const fileNameList = ref([]);
+const pdfUrlList1 = ref([]);
+const fileUrl1 = ref();
+const fileNameList1 = ref([]);
 const typeList = ref([]);
 const filePath = import.meta.env.VITE_APP_UPLOAD_URL;
 const test = () => {
@@ -242,6 +297,10 @@ const dialog2 = reactive({
   title: "设备计量记录",
   visible: false,
 });
+const dialog3 = reactive({
+    title: "更新附件",
+    visible: false,
+});
 const userList = ref([]);
 const unitList = ref([]);
 const abc = ref([]);
@@ -259,17 +318,30 @@ const deviceInfo = (value) => {
   dialog.visible = false
 }
 const maintenanceInfo = ref(null)
+const maintenanceInfo1 = ref({})
 const maintenance = (row)=>{
   maintenanceInfo.value = row
   maintenanceInfo.value.deviceId = row.id
   maintenanceInfo.value.result = 0
   dialog1.visible = true
 };
+const maintenance1 = (row)=>{
+
+  maintenanceInfo1.value.id = row.id
+    dialog3.visible = true
+
+};
 const testFiles =()=>{
     maintenanceInfo.value.pdfPath = pdfUrlList.value[0];
     maintenanceInfo.value.filePath = fileUrl.value;
     maintenanceInfo.value.fileName=fileNameList.value[0];
 }
+const testFiles1 =()=>{
+  maintenanceInfo1.value.pdfPath = pdfUrlList1.value[0];
+  maintenanceInfo1.value.filePath = fileUrl1.value;
+  maintenanceInfo1.value.fileName = fileNameList1.value[0];
+  maintenanceInfo1.value.upload = fileUrl1.value;
+}
 const maintenanceList = (row)=>{
   maintenanceInfo.value = row
   dialog2.visible = true
@@ -291,6 +363,7 @@ const queryAbc = () => {
     })
 }
 const maintenanceInfoForm = ref('maintenanceInfoForm')
+const maintenanceInfoForm1 = ref('maintenanceInfoForm1')
 const maintenanceSubmit =()=>{
   //alert(JSON.stringify(maintenanceInfo.value))
   maintenanceInfoForm.value.validate((isValid, invalidFields) => {
@@ -300,13 +373,36 @@ const maintenanceSubmit =()=>{
           message: data.msg,
           type: "success",
         });
-        maintenanceInfo.value = null
+        maintenanceInfo.value = {}
+        pdfUrlList.value = [];
+        fileUrl.value = {};
+        fileNameList.value = [];
         dialog1.visible = false
         dataList()
       })
     }
   })
 }
+const maintenanceSubmit1 =()=>{
+  //alert(JSON.stringify(maintenanceInfo.value))
+  maintenanceInfoForm1.value.validate((isValid, invalidFields) => {
+    if (isValid) {
+      meteringUpdateFile(maintenanceInfo1.value).then((data)=>{
+        ElMessage({
+          message: data.msg,
+          type: "success",
+        });
+        maintenanceInfo1.value = {}
+        dialog3.visible = false
+        pdfUrlList1.value = [];
+        fileUrl1.value = {};
+        fileNameList1.value = [];
+        search.value.needMetering = "2";
+        dataList()
+      })
+    }
+  })
+}
 const rules = reactive({
     meteringUnit: [
     // required是否必填,message不符合此规则时的提示信息,

+ 256 - 18
src/views/device/repair/index.vue

@@ -69,15 +69,28 @@
         <el-timeline-item center placement="top"  :type="maintenanceInfo.state === 0 ? 'primary' : 'success'">
           <el-card v-if="viewPage">
             <h4>维修情况说明</h4>
-            <p>维修人员: {{maintenanceInfo.handleUser}}</p>
-            <p>维修内容: {{maintenanceInfo.handleContent}}</p>
+            <p>故障确认: {{maintenanceInfo.faultRemark}}</p>
+            <p>维修记录: {{maintenanceInfo.handleContent}}</p>
+            <p>预计费用: {{maintenanceInfo.handleContent}}</p>
+            <p>维修人: {{maintenanceInfo.handleUser}}</p>
+            <p>日期: {{maintenanceInfo.handleTime}}</p>
             <p>处理结果: {{maintenanceInfo.handleUser ? (maintenanceInfo.handleResult === 0 ? '可正常运行' : '报废') : ''}}</p>
           </el-card>
           <el-card v-if="!viewPage">
-            <h4>设备维修</h4>
+            <h4>维修情况说明</h4>
             <el-form ref="maintenanceInfoForm1" :model="maintenanceInfo" label-width="auto" style="max-width: 400px" :rules="rules1">
+
+              <el-form-item label="故障确认" prop="faultRemark">
+                <el-input :disabled="maintenanceInfo.state !== 0" type="textarea" :rows="2" v-model="maintenanceInfo.faultRemark" />
+              </el-form-item>
+              <el-form-item label="维修记录" prop="handleContent">
+                <el-input :disabled="maintenanceInfo.state !== 0" type="textarea" :rows="2" v-model="maintenanceInfo.handleContent" />
+              </el-form-item>
+              <el-form-item label="预计费用" prop="cost">
+                <el-input :disabled="maintenanceInfo.state !== 0"  v-model="maintenanceInfo.cost" />
+              </el-form-item>
               <el-form-item label="维修人员" prop="handleUser">
-<!--                <el-input :disabled="maintenanceInfo.state !== 0" v-model="maintenanceInfo.handleUser" />-->
+                <!--                <el-input :disabled="maintenanceInfo.state !== 0" v-model="maintenanceInfo.handleUser" />-->
                 <el-select
                     v-model="maintenanceInfo.handleUser"
                     placeholder="维修人员"
@@ -92,8 +105,8 @@
                   />
                 </el-select>
               </el-form-item>
-              <el-form-item label="维修记录" prop="handleContent">
-                <el-input :disabled="maintenanceInfo.state !== 0" type="textarea" :rows="2" v-model="maintenanceInfo.handleContent" />
+              <el-form-item label="日期" prop="handleTime" v-if="maintenanceInfo.state!==0">
+                <el-input :disabled="maintenanceInfo.state !== 0"   v-model="maintenanceInfo.handleTime" />
               </el-form-item>
               <el-form-item label="处理结果">
                 <el-radio-group :disabled="maintenanceInfo.state !== 0" v-model="maintenanceInfo.handleResult" class="ml-4">
@@ -107,20 +120,29 @@
             </el-form>
           </el-card>
         </el-timeline-item>
-<!--        <el-timeline-item center placement="top"  :type="maintenanceInfo.state === 1 ? 'primary' : maintenanceInfo.state === 0 ? 'info' : 'success'">
+        <el-timeline-item center placement="top"  :type="maintenanceInfo.state === 1 ? 'primary' : maintenanceInfo.state === 0 ? 'info' : 'success'">
           <el-card v-if="viewPage">
-            <h4>设备审批</h4>
+            <h4>科研生产部设备管理员计量意见</h4>
             <p>审批人员: {{maintenanceInfo.auditUser}}</p>
             <p>审批结果: {{maintenanceInfo.auditUser ? (maintenanceInfo.auditResult === 0 ? '通过' : '不通过') : ''}}</p>
           </el-card>
           <el-card v-if="!viewPage">
-            <h4>设备审批</h4>
+            <h4>科研生产部设备管理员意见</h4>
             <el-form ref="maintenanceInfoForm2" v-if="maintenanceInfo.state >= 1" :model="maintenanceInfo" label-width="auto" style="max-width: 400px" :rules="rules2">
-              <el-form-item label="审批人员" prop="auditUser">
-&lt;!&ndash;                <el-input :disabled="maintenanceInfo.state !== 1 && readonly"  v-model="maintenanceInfo.auditUser" />&ndash;&gt;
+              <el-form-item label="计量意见" prop="auditOpinion">
+                <el-input :disabled="maintenanceInfo.state !== 1" type="textarea" :rows="2" v-model="maintenanceInfo.auditOpinion" />
+              </el-form-item>
+              <el-form-item label="审批结果">
+                <el-radio-group :disabled="maintenanceInfo.state !== 1 && readonly" 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 label="设备管理员" prop="auditUser">
+                <!--                <el-input :disabled="maintenanceInfo.state !== 1 && readonly"  v-model="maintenanceInfo.auditUser" />-->
                 <el-select
                     v-model="maintenanceInfo.auditUser"
-                    placeholder="审批人员"
+                    placeholder="设备管理员"
                     :disabled="maintenanceInfo.state !== 1 && readonly"
                     size="large"
                     filterable>
@@ -132,18 +154,138 @@
                   />
                 </el-select>
               </el-form-item>
+              <el-form-item style="margin-left: 45%">
+                <el-button type="primary" v-if="maintenanceInfo.state ===1" v-hasPerm="[ButtonPermKeys.DEVICE.BTNS.repair_audit]" :disabled="maintenanceInfo.state !== 1" @click="maintenanceSubmit2">审批</el-button>
+              </el-form-item>
+            </el-form>
+          </el-card>
+        </el-timeline-item>
+
+        <el-timeline-item center placement="top"  :type="maintenanceInfo.state === 3 ? 'primary' : maintenanceInfo.state < 3 ? 'info' : 'success'">
+          <el-card v-if="viewPage">
+            <h4>科研生产部负责人计量意见</h4>
+            <p>审批人员: {{maintenanceInfo.auditUser}}</p>
+            <p>审批结果: {{maintenanceInfo.auditUser ? (maintenanceInfo.auditResult === 0 ? '通过' : '不通过') : ''}}</p>
+          </el-card>
+          <el-card v-if="!viewPage">
+            <h4>科研生产部负责人意见</h4>
+            <el-form ref="maintenanceInfoForm3" v-if="maintenanceInfo.state >= 3" :model="maintenanceInfo" label-width="auto" style="max-width: 400px" :rules="rules3">
+              <el-form-item label="计量意见" prop="auditOpinion1">
+                <el-input :disabled="maintenanceInfo.state !== 3" type="textarea" :rows="2" v-model="maintenanceInfo.auditOpinion1" />
+              </el-form-item>
               <el-form-item label="审批结果">
-                <el-radio-group :disabled="maintenanceInfo.state !== 1 && readonly" v-model="maintenanceInfo.auditResult" class="ml-4">
+                <el-radio-group :disabled="maintenanceInfo.state !== 3 && readonly" 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 label="负责人" prop="auditUser1">
+                <!--                <el-input :disabled="maintenanceInfo.state !== 1 && readonly"  v-model="maintenanceInfo.auditUser" />-->
+                <el-select
+                    v-model="maintenanceInfo.auditUser1"
+                    placeholder="负责人"
+                    :disabled="maintenanceInfo.state !== 3 && readonly"
+                    size="large"
+                    filterable>
+                  <el-option
+                      v-for="item in userList"
+                      :key="item.userName"
+                      :label="item.userName"
+                      :value="item.userName"
+                  />
+                </el-select>
+              </el-form-item>
               <el-form-item style="margin-left: 45%">
-                <el-button type="primary" v-if="maintenanceInfo.state ===1" v-hasPerm="[ButtonPermKeys.DEVICE.BTNS.repair_audit]" :disabled="maintenanceInfo.state !== 1" @click="maintenanceSubmit2">审批</el-button>
+                <el-button type="primary" v-if="maintenanceInfo.state ===3" v-hasPerm="[ButtonPermKeys.DEVICE.BTNS.repair_audit1]" :disabled="maintenanceInfo.state !== 3" @click="maintenanceSubmit3">审批</el-button>
               </el-form-item>
             </el-form>
           </el-card>
-        </el-timeline-item>-->
+        </el-timeline-item>
+            <el-timeline-item center placement="top"  :type="maintenanceInfo.state === 5 ? 'primary' : maintenanceInfo.state < 5 ? 'info' : 'success'">
+              <el-card v-if="viewPage">
+                <h4>使用人验收意见</h4>
+                <p>审批人员: {{maintenanceInfo.auditUser}}</p>
+                <p>审批结果: {{maintenanceInfo.auditUser ? (maintenanceInfo.auditResult === 0 ? '通过' : '不通过') : ''}}</p>
+              </el-card>
+              <el-card v-if="!viewPage">
+                <h4>使用人验收意见</h4>
+                <el-form ref="maintenanceInfoForm4" v-if="maintenanceInfo.state >= 5" :model="maintenanceInfo" label-width="auto" style="max-width: 400px" :rules="rules3">
+                  <el-form-item label="验收意见" prop="auditOpinion2">
+                    <el-input :disabled="maintenanceInfo.state !== 5" type="textarea" :rows="2" v-model="maintenanceInfo.auditOpinion2" />
+                  </el-form-item>
+                  <el-form-item label="审批结果">
+                    <el-radio-group :disabled="maintenanceInfo.state !== 5 && readonly" 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 label="使用人" prop="auditUser1">
+                    <!--                <el-input :disabled="maintenanceInfo.state !== 1 && readonly"  v-model="maintenanceInfo.auditUser" />-->
+                    <el-select
+                        v-model="maintenanceInfo.auditUser2"
+                        placeholder="使用人"
+                        :disabled="maintenanceInfo.state !== 5 && readonly"
+                        size="large"
+                        filterable>
+                      <el-option
+                          v-for="item in userList"
+                          :key="item.userName"
+                          :label="item.userName"
+                          :value="item.userName"
+                      />
+                    </el-select>
+                  </el-form-item>
+                  <el-form-item style="margin-left: 45%">
+                    <el-button type="primary" v-if="maintenanceInfo.state ===5" v-hasPerm="[ButtonPermKeys.DEVICE.BTNS.repair_audit2]" :disabled="maintenanceInfo.state !== 5" @click="maintenanceSubmit4">审批</el-button>
+                  </el-form-item>
+                </el-form>
+              </el-card>
+            </el-timeline-item>
+                <el-timeline-item center placement="top"  :type="maintenanceInfo.state === 7 ? 'primary' : maintenanceInfo.state < 7 ? 'info' : 'success'">
+                  <el-card v-if="viewPage">
+                    <h4>使用部门负责人验收意见</h4>
+                    <p>审批人员: {{maintenanceInfo.auditUser}}</p>
+                    <p>审批结果: {{maintenanceInfo.auditUser ? (maintenanceInfo.auditResult === 0 ? '通过' : '不通过') : ''}}</p>
+                  </el-card>
+                  <el-card v-if="!viewPage">
+                    <h4>使用部门负责人验收意见</h4>
+                    <el-form ref="maintenanceInfoForm5" v-if="maintenanceInfo.state >= 7" :model="maintenanceInfo" label-width="auto" style="max-width: 400px" :rules="rules3">
+                      <el-form-item label="计量意见" prop="auditOpinion3">
+                        <el-input :disabled="maintenanceInfo.state !== 7" type="textarea" :rows="2" v-model="maintenanceInfo.auditOpinion3" />
+                      </el-form-item>
+                      <el-form-item label="审批结果">
+                        <el-radio-group :disabled="maintenanceInfo.state !== 7 && readonly" v-model="maintenanceInfo.auditResult3" class="ml-4">
+                          <el-radio :value="0">通过</el-radio>
+                          <el-radio :value="1">不通过</el-radio>
+                        </el-radio-group>
+                      </el-form-item>
+                      <el-form-item label="部门负责人" prop="auditUser1">
+                        <!--                <el-input :disabled="maintenanceInfo.state !== 1 && readonly"  v-model="maintenanceInfo.auditUser" />-->
+                        <el-select
+                            v-model="maintenanceInfo.auditUser3"
+                            placeholder="部门负责人"
+                            :disabled="maintenanceInfo.state !== 7 && readonly"
+                            size="large"
+                            filterable>
+                          <el-option
+                              v-for="item in userList"
+                              :key="item.userName"
+                              :label="item.userName"
+                              :value="item.userName"
+                          />
+                        </el-select>
+                      </el-form-item>
+                      <el-form-item style="margin-left: 45%">
+                        <el-button type="primary" v-if="maintenanceInfo.state ===7" v-hasPerm="[ButtonPermKeys.DEVICE.BTNS.repair_audit3]" :disabled="maintenanceInfo.state !== 7" @click="maintenanceSubmit5">审批</el-button>
+                      </el-form-item>
+                    </el-form>
+
+
+
+
+
+                  </el-card>
+        </el-timeline-item>
       </el-timeline>
     </el-dialog>
   </div>
@@ -210,6 +352,9 @@ const queryUserList = ()=>{
 }
 const maintenanceInfoForm1 = ref('maintenanceInfoForm1')
 const maintenanceInfoForm2 = ref('maintenanceInfoForm2')
+const maintenanceInfoForm3 = ref('maintenanceInfoForm3')
+const maintenanceInfoForm4 = ref('maintenanceInfoForm4')
+const maintenanceInfoForm5 = ref('maintenanceInfoForm5')
 const maintenanceSubmit1 =()=>{
   //alert(JSON.stringify(maintenanceInfo.value))
   maintenanceInfoForm1.value.validate((isValid, invalidFields) => {
@@ -229,6 +374,83 @@ const maintenanceSubmit2 =()=>{
   //alert(JSON.stringify(maintenanceInfo.value))
   maintenanceInfoForm2.value.validate((isValid, invalidFields) => {
     if (isValid) {
+      if(maintenanceInfo.value.auditResult=='0'){
+        maintenanceInfo.value.state = 3;
+      }else{
+        maintenanceInfo.value.state = 2;
+      }
+      audit(maintenanceInfo.value).then((data)=>{
+        ElMessage({
+          message: data.msg,
+          type: "success",
+        });
+        dialog1.visible = false
+        dataList()
+      })
+    }
+  })
+}
+
+const maintenanceSubmit3 =()=>{
+  //alert(JSON.stringify(maintenanceInfo.value))
+  maintenanceInfoForm3.value.validate((isValid, invalidFields) => {
+    if (isValid) {
+      if(maintenanceInfo.value.auditResult1=='0'){
+        maintenanceInfo.value.state = 5;
+      }else{
+        maintenanceInfo.value.state = 4;
+      }
+      maintenanceInfo.value.auditResult = maintenanceInfo.value.auditResult1;
+      maintenanceInfo.value.auditOpinion = maintenanceInfo.value.auditOpinion1;
+      maintenanceInfo.value.auditUser = maintenanceInfo.value.auditUser1;
+      audit(maintenanceInfo.value).then((data)=>{
+        ElMessage({
+          message: data.msg,
+          type: "success",
+        });
+        dialog1.visible = false
+        dataList()
+      })
+    }
+  })
+}
+
+const maintenanceSubmit4 =()=>{
+  //alert(JSON.stringify(maintenanceInfo.value))
+  maintenanceInfoForm4.value.validate((isValid, invalidFields) => {
+    if (isValid) {
+      if(maintenanceInfo.value.auditResult2=='0'){
+        maintenanceInfo.value.state = 7;
+      }else{
+        maintenanceInfo.value.state = 6;
+      }
+      maintenanceInfo.value.auditResult = maintenanceInfo.value.auditResult2;
+      maintenanceInfo.value.auditOpinion = maintenanceInfo.value.auditOpinion2;
+      maintenanceInfo.value.auditUser = maintenanceInfo.value.auditUser2;
+      audit(maintenanceInfo.value).then((data)=>{
+        ElMessage({
+          message: data.msg,
+          type: "success",
+        });
+        dialog1.visible = false
+        dataList()
+      })
+    }
+  })
+}
+
+const maintenanceSubmit5 =()=>{
+  //alert(JSON.stringify(maintenanceInfo.value))
+  maintenanceInfoForm5.value.validate((isValid, invalidFields) => {
+    if (isValid) {
+      if(maintenanceInfo.value.auditResult3=='0'){
+        maintenanceInfo.value.state = 9;
+      }else{
+        maintenanceInfo.value.state = 8;
+      }
+      maintenanceInfo.value.auditResult = maintenanceInfo.value.auditResult3;
+      maintenanceInfo.value.auditOpinion = maintenanceInfo.value.auditOpinion3;
+      maintenanceInfo.value.auditUser = maintenanceInfo.value.auditUser3;
       audit(maintenanceInfo.value).then((data)=>{
         ElMessage({
           message: data.msg,
@@ -244,13 +466,27 @@ const rules1 = reactive({
   handleUser: [
     { required: true, message: '维修人员不能为空', trigger: 'blur' }
   ],
+  faultRemark: [
+    { required: true, message: '故障确认不能为空', trigger: 'blur' }
+  ],
   handleContent: [
-    { required: true, message: '维修内容不能为空', trigger: 'blur' }
+    { required: true, message: '维修记录不能为空', trigger: 'blur' }
   ]
 })
 const rules2 = reactive({
   auditUser: [
-    { required: true, message: '审批人员不能为空', trigger: 'blur' }
+    { required: true, message: '设备管理员不能为空', trigger: 'blur' }
+  ],
+  auditOpinion: [
+    { required: true, message: '计量意见不能为空', trigger: 'blur' }
+  ]
+})
+const rules3 = reactive({
+  auditUser1: [
+    { required: true, message: '负责人不能为空', trigger: 'blur' }
+  ],
+  auditOpinion1: [
+    { required: true, message: '计量意见不能为空', trigger: 'blur' }
   ]
 })
 // 设置表格列或者其他自定义的option
@@ -346,7 +582,9 @@ option.value = Object.assign(option.value, {
       prop: "state",
       type: "select",
       display: false,
-      dicData:[{label: '待维修',value: 0},{label: '待审批 ',value: 1},{label: '已完成',value: 2}],
+      overHidden: true,
+      dicData:[{label: '待维修',value: 0},{label: '待科研生产部设备管理员审批 ',value: 1},{label: '审核不通过',value: 2},{label: '待科研生产部负责人审批',value: 3},
+        {label: '审核不通过',value: 4},{label: '待使用人审核',value: 5},{label: '审核不通过',value: 6},{label: '待使用部门负责人审核',value: 7},{label: '审核不通过',value: 8},{label: '已完成',value: 9}],
     },
 
   ],