lupeng před 11 měsíci
rodič
revize
7f359a8eda

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

@@ -132,4 +132,12 @@ export function meteringUpdateFile(params: any) {
   });
 }
 
+export function disableAudit(params: any) {
+  return request({
+    url: "/api/v1/device/disable/update",
+    method: "post",
+    data: params,
+  });
+}
+
 

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

@@ -85,6 +85,7 @@ const ButtonPermKeys = {
       allocate_del: "device:allocate:del",
       allocate_audit: "device:allocate:audit",
       allocate_export: "device:allocate:export",
+      disable_process: "device:disable:process",
     }
   },
 

+ 88 - 30
src/views/device/allocate/index.vue

@@ -68,13 +68,13 @@
             <h4>调拨申请</h4>
             <p>设备编号: {{maintenanceInfo.deviceNo}}</p>
             <p>设备名称: {{maintenanceInfo.deviceName}}</p>
-            <p>申请部门: {{maintenanceInfo.creator}}</p>
-            <p>申请人员: {{maintenanceInfo.creator}}</p>
+            <p>新责任人: {{maintenanceInfo.newHead}}</p>
+              <p>申请人员: {{maintenanceInfo.creator}}</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-group :disabled="maintenanceInfo.state > 8" v-model="maintenanceInfo.isApprove" class="ml-4" @change="showCard" >
                 <el-radio :value=0>否</el-radio>
                 <el-radio :value=1>是</el-radio>
               </el-radio-group>
@@ -99,8 +99,8 @@
               </el-form-item>
               <el-form-item label="审批结果">
                 <el-radio-group :disabled="maintenanceInfo.state !== 0" v-model="maintenanceInfo.auditResult" class="ml-4">
-                  <el-radio :value=1>通过</el-radio>
-                  <el-radio :value=2>驳回</el-radio>
+                  <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%">
@@ -121,16 +121,16 @@
           <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-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="auditUser">
+              <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=1>通过</el-radio>
-                  <el-radio :value=2>驳回</el-radio>
+                  <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%">
@@ -150,16 +150,16 @@
           <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-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="auditUser">
+              <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=1>通过</el-radio>
-                  <el-radio :value=2>驳回</el-radio>
+                  <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%">
@@ -179,16 +179,16 @@
           <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-form-item label="审批意见" prop="auditOpinion3">
                 <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 label="审批人员" prop="auditUser3">
+                <el-input :disabled="maintenanceInfo.state !== 6" v-model="maintenanceInfo.auditUser3" />
               </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 :disabled="maintenanceInfo.state !== 6" 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 style="margin-left: 45%">
@@ -208,20 +208,20 @@
           <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-form-item label="审批意见" prop="auditOpinion4">
                 <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 label="审批人员" prop="auditUser4">
+                <el-input :disabled="maintenanceInfo.state !== 8" v-model="maintenanceInfo.auditUser4" />
               </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 :disabled="maintenanceInfo.state !== 8" v-model="maintenanceInfo.auditResult4" 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 === 8" @click="maintenanceSubmit3">保存</el-button>
+                <el-button type="primary" v-if="maintenanceInfo.state === 8" @click="maintenanceSubmit4">保存</el-button>
               </el-form-item>
             </el-form>
           </el-card>
@@ -297,13 +297,27 @@ const showCard = () =>{
     showItem.value = false;
   }
 }
-const maintenanceInfo = ref(null)
+const maintenanceInfo = ref({})
 const maintenance = (row,type)=>{
   viewPage.value = type === 0 ? false : true
   maintenanceInfo.value = row
-  maintenanceInfo.value.auditResult = 1
-  maintenanceInfo.value.isApprove = 0
   dialog1.visible = true
+  if(null==maintenanceInfo.value.auditResult){
+    maintenanceInfo.value.auditResult = 0
+  }
+  if(null==maintenanceInfo.value.isApprove){maintenanceInfo.value.isApprove = 0}
+  if(null==maintenanceInfo.value.auditResult1){
+    maintenanceInfo.value.auditResult1 = 0
+  }
+  if(null==maintenanceInfo.value.auditResult2){
+    maintenanceInfo.value.auditResult2 = 0
+  }
+  if(null==maintenanceInfo.value.auditResult3){
+    maintenanceInfo.value.auditResult3 = 0
+  }
+  if(null==maintenanceInfo.value.auditResult4){
+    maintenanceInfo.value.auditResult4 = 0
+  }
 }
 const queryUserList = ()=>{
   getUserList({}).then((data)=>{
@@ -358,6 +372,10 @@ 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;
       allocateAudit(maintenanceInfo.value).then((data)=>{
         ElMessage({
           message: data.msg,
@@ -373,6 +391,10 @@ 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;
       allocateAudit(maintenanceInfo.value).then((data)=>{
         ElMessage({
           message: data.msg,
@@ -388,6 +410,10 @@ const maintenanceSubmit3 =()=>{
   //alert(JSON.stringify(maintenanceInfo.value))
   maintenanceInfoForm3.value.validate((isValid, invalidFields) => {
     if (isValid) {
+      maintenanceInfo.value.auditResult = maintenanceInfo.value.auditResult3;
+      maintenanceInfo.value.auditOpinion = maintenanceInfo.value.auditOpinion3;
+      maintenanceInfo.value.auditUser = maintenanceInfo.value.auditUser3;
+      maintenanceInfo.value.auditOpinion = maintenanceInfo.value.auditOpinion3;
       allocateAudit(maintenanceInfo.value).then((data)=>{
         ElMessage({
           message: data.msg,
@@ -402,7 +428,12 @@ const maintenanceSubmit3 =()=>{
 const maintenanceSubmit4 =()=>{
   //alert(JSON.stringify(maintenanceInfo.value))
   maintenanceInfoForm4.value.validate((isValid, invalidFields) => {
+
     if (isValid) {
+      maintenanceInfo.value.auditResult = maintenanceInfo.value.auditResult4;
+      maintenanceInfo.value.auditOpinion = maintenanceInfo.value.auditOpinion4;
+      maintenanceInfo.value.auditUser = maintenanceInfo.value.auditUser4;
+      maintenanceInfo.value.auditOpinion = maintenanceInfo.value.auditOpinion4;
       allocateAudit(maintenanceInfo.value).then((data)=>{
         ElMessage({
           message: data.msg,
@@ -420,6 +451,32 @@ const rules = reactive({
   ],
   auditOpinion: [
     { required: true, message: '审批意见不能为空', trigger: 'blur' }
+  ],
+  auditUser1: [
+    { required: true, message: '审核人员不能为空', trigger: 'blur' }
+  ],
+  auditOpinion1: [
+    { required: true, message: '审批意见不能为空', trigger: 'blur' }
+  ],
+  auditUser2: [
+    { required: true, message: '审核人员不能为空', trigger: 'blur' }
+  ],
+  auditOpinion2: [
+    { required: true, message: '审批意见不能为空', trigger: 'blur' }
+  ]
+  ,
+  auditUser3: [
+    { required: true, message: '审核人员不能为空', trigger: 'blur' }
+  ],
+  auditOpinion3: [
+    { required: true, message: '审批意见不能为空', trigger: 'blur' }
+  ]
+  ,
+  auditUser4: [
+    { required: true, message: '审核人员不能为空', trigger: 'blur' }
+  ],
+  auditOpinion4: [
+    { required: true, message: '审批意见不能为空', trigger: 'blur' }
   ]
 })
 // 设置表格列或者其他自定义的option
@@ -613,7 +670,7 @@ option.value = Object.assign(option.value, {
       type: "select",
       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: '待科研生产部负责人审核',value:6},{label: '驳回',value:7},{label: '待公司分管领导审核',value:8},{label: '驳回',value:9},{label: '完成',value:10}
 
       ],
     },
@@ -635,6 +692,7 @@ option.value = Object.assign(option.value, {
 });
 
 onMounted(() => {
+
   dataList();
   queryUserList()
 });

+ 214 - 3
src/views/device/disable/index.vue

@@ -26,9 +26,133 @@
         >删除</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-timeline>
+      </el-dialog>
+
   </div>
   <CommonTable
     ref="ctableRef"
@@ -42,8 +166,12 @@
   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;
@@ -59,7 +187,9 @@
   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对象
 
   onMounted(() => {
@@ -74,8 +204,76 @@
       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
+      }
+      if(null==maintenanceInfo.value.auditResult1){
+          maintenanceInfo.value.auditResult1 = 0
+      }
+      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 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,
@@ -156,6 +354,19 @@
         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>

+ 2 - 2
src/views/device/instance/index.vue

@@ -29,7 +29,7 @@
             style="&#45;&#45;el-switch-on-color: #13ce66; &#45;&#45;el-switch-off-color: #ff4949"
         />
       </template>-->
-      <template #menu="{size,row,index}">
+<!--      <template #menu="{size,row,index}">
         <el-button
             v-hasPerm="[buttonPermission.DEVICE.BTNS.maintenance_edit]"
             type="primary"
@@ -38,7 +38,7 @@
             @click="showParamsPage(row)"
         ><i-ep-edit />模型
         </el-button>
-      </template>
+      </template>-->
       <template #menu-left="{ size }">
         <el-button
           :disabled="toDeleteIds.length < 1"

+ 5 - 21
src/views/device/repair/index.vue

@@ -342,7 +342,11 @@ const maintenanceInfo = ref(null)
 const maintenance = (row,type)=>{
   viewPage.value = type === 0 ? false : true
   maintenanceInfo.value = row
-  maintenanceInfo.value.handResult = 0
+  if(null==maintenanceInfo.value.handResult){maintenanceInfo.value.handResult = 0}
+  if(null==maintenanceInfo.value.handResult1){maintenanceInfo.value.handResult1 = 0}
+  if(null==maintenanceInfo.value.handResult2){maintenanceInfo.value.handResult2 = 0}
+  if(null==maintenanceInfo.value.handResult3){maintenanceInfo.value.handResult3 = 0}
+  if(null==maintenanceInfo.value.handResult4){maintenanceInfo.value.handResult4 = 0}
   dialog1.visible = true
 }
 const queryUserList = ()=>{
@@ -374,11 +378,6 @@ 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,
@@ -395,11 +394,6 @@ 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;
@@ -419,11 +413,6 @@ 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;
@@ -443,11 +432,6 @@ 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;

+ 0 - 156
src/views/maintenance/components/record-page.vue

@@ -1,156 +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"
-        @search-change="searchChange"
-        @search-reset="resetChange"
-        @size-change="dataList"
-        @current-change="dataList"
-    >
-    </avue-crud>
-  </div>
-</template>
-<script setup>
-import { ref,defineProps } from "vue";
-import { useCrud } from "@/hooks/userCrud";
-
-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/maintenanceRecord",
-  });
-const { dataList, createRow, updateRow, deleteRow, searchChange, resetChange } = Methords; //增删改查
-const { selectionChange, multipleDelete } = Methords; //选中和批量删除事件
-const { checkBtnPerm, downloadTemplate } = Utils; //按钮权限等工具
-const mType = ref("-1")
-const crudRef = ref(null); //crudRef.value 获取avue-crud对象
-const props = defineProps({
-  maintenance: {
-    type: Object,
-    default: () => {
-      return {};
-    }
-  }
-})
-
-watch?.(
-    () => props.maintenance,
-    (newVal) => {
-      search.value.maintenanceId = newVal.id
-      mType.value = newVal.type
-      handleOption()
-      dataList()
-    }
-);
-const handleOption =()=>{
-  // 设置表格列或者其他自定义的option
-  option.value = Object.assign(option.value, {
-    delBtn: false,
-    selection: false,
-    search: false,
-    editBtn: false,
-    addBtn: false,
-    viewBtn: false,
-    menu: false,
-    column: [
-      /*{
-        label: "设备类型",
-        prop: "deviceType",
-        type: "select",
-        width: '100',
-        dicUrl:
-            dictDataUtil.request_url +
-            dictDataUtil.TYPE_CODE.device_type,
-        props: {
-          label: "dictLabel",
-          value: "dictValue",
-        },
-      },*/
-      /* {
-         label: "设备位置",
-         width: '150',
-         prop: "devicePosition",
-       },*/
-      /*{
-        label: "维护类型",
-        prop: "type",
-        type: "select",
-        editDisplay: false,
-        dicData: [{label: '点检',value:'0'},{label: '保养',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" ? "维护人" : "点检人员",
-        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,
-        type: "select",
-        editDisplay: false,
-        dicData: mType.value === "1" ? [{label: '正常',value:"0"},{label: '报故',value:"1"}] : [{label: '合格',value:"0"},{label: '不合格',value:"1"}]
-      },
-
-    ],
-  })
-}
-onMounted?.(() => {
-  search.value.maintenanceId = props.maintenance.id
-  handleOption()
-  dataList();
-});
-</script>

+ 0 - 425
src/views/maintenance/index.vue

@@ -1,425 +0,0 @@
-<template>
-  <div class="mainContentBox">
-    <avue-crud
-        ref="crudRef"
-        v-model:search="search"
-        v-model="form"
-        :data="data"
-        :option="option"
-        :permission="permission"
-        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-left="{ size }">
-        <el-button
-          :disabled="toDeleteIds.length < 1"
-          type="danger"
-          v-hasPerm="[ButtonPermKeys.DEVICE.BTNS.maintenance_del]"
-          icon="el-icon-delete"
-          :size="size"
-          @click="multipleDelete"
-          >删除</el-button
-        >
-      </template>
-      <template #menu="{size,row,index}">
-        <el-button @click="maintenance(row)"
-                   icon="el-icon-setting"
-                   text
-                   v-hasPerm="[ButtonPermKeys.DEVICE.BTNS.maintenance_handle]"
-                   v-if="row.type === '1' && row.state === 0"
-                   type="primary"
-                   :size="size">维护</el-button>
-        <el-button disabled
-                   icon="el-icon-setting"
-                   text
-                   v-hasPerm="[ButtonPermKeys.DEVICE.BTNS.maintenance_handle]"
-                   v-if="row.type === '1' && row.state === 1"
-                   type="primary"
-                   :size="size">维护</el-button>
-        <el-button @click="maintenanceList(row)"
-                   icon="el-icon-fold"
-                   text
-                   type="primary"
-                   :size="size">记录</el-button>
-      </template>
-    </avue-crud>
-    <el-dialog
-        v-model="dialog.visible"
-        :title="dialog.title"
-        width="850px"
-        @close="dialog.visible = false"
-    >
-      <device-page  @deviceInfo="deviceInfo"/>
-    </el-dialog>
-
-    <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 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="maintenanceInfoForm" :model="maintenanceInfo" label-width="auto" style="max-width: 400px" :rules="rules">
-              <el-form-item v-if="maintenanceInfo.result === 0" label="保养项目" prop="maintenanceContent">
-                <el-input v-model="maintenanceInfo.maintenanceContent" type="textarea" />
-              </el-form-item>
-              <el-form-item label="维护人" prop="userName">
-
-                <el-select
-                    v-model="maintenanceInfo.userName"
-                    placeholder="维护人"
-                    size="large"
-                    style="width: 240px">
-                  <el-option
-                      v-for="item in userList"
-                      :key="item.userName"
-                      :label="item.userName"
-                      :value="item.userName"
-                  />
-                </el-select>
-              </el-form-item>
-              <el-form-item label="确认人" prop="confirmUser">
-
-                <el-select
-                    v-model="maintenanceInfo.confirmUser"
-                    placeholder="确认人"
-                    size="large"
-                    style="width: 240px">
-                  <el-option
-                      v-for="item in userList"
-                      :key="item.userName"
-                      :label="item.userName"
-                      :value="item.userName"
-                  />
-                </el-select>
-              </el-form-item>
-              <el-form-item label="维护结果">
-                <el-radio-group v-model="maintenanceInfo.result" class="ml-4">
-                  <el-radio :value="0">正常</el-radio>
-                  <el-radio :value="1">报故</el-radio>
-                </el-radio-group>
-              </el-form-item>
-              <el-form-item v-if="maintenanceInfo.result === 1" label="报故内容">
-                <el-input v-model="maintenanceInfo.maintenanceContent" />
-              </el-form-item>
-
-
-                <el-form-item v-if="maintenanceInfo.result === 0" label="下次维护日期">
-                    <el-input v-model="maintenanceInfo.nextTime" type="date" format="YYYY-MM-DD" value-format="YYYY-MM-DD"/>
-                </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="maintenanceSubmit">保存</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"
-        width="60%"
-        height="80%"
-        @close="dialog2.visible = false"
-    >
-      <record-page :maintenance="clickRecord"></record-page>
-    </el-dialog>
-  </div>
-</template>
-<script setup>
-import { ref, getCurrentInstance } from "vue";
-import { useCrud } from "@/hooks/userCrud";
-import ButtonPermKeys from "@/common/configs/buttonPermission";
-import {getUserList} from "@/api/system/user"
-import {maintenanceUpdate} from "@/api/device/index";
-import { useCommonStoreHook } from "@/store";
-import dictDataUtil from "@/common/configs/dictDataUtil";
-import RecordPage from "./components/record-page.vue";
-import { checkPerm } from "@/directive/permission";
-const { isShowTable, tableType } = toRefs(useCommonStoreHook());
-const test = () => {
-  isShowTable.value = true;
-  tableType.value = tableType.value == 1 ? 2 : 1;
-};
-const permission = reactive({
-  delBtn: checkPerm(ButtonPermKeys.DEVICE.BTNS.maintenance_del),
-  addBtn: checkPerm(ButtonPermKeys.DEVICE.BTNS.maintenance_add),
-  editBtn: checkPerm(ButtonPermKeys.DEVICE.BTNS.maintenance_edit),
-  menu: true,
-});
-const dialog = reactive({
-  title: "设备选择",
-  visible: false,
-});
-const dialog1 = reactive({
-  title: "设备保养",
-  visible: false,
-});
-const dialog2 = reactive({
-  title: "设备保养记录",
-  visible: false,
-});
-const userList = ref([])
-// 传入一个url,后面不带/
-const { form, data, option, search, page, toDeleteIds, Methords, Utils } =
-  useCrud({
-    src: "/api/v1/device/maintenance",
-  });
-const { dataList, createRow, updateRow, deleteRow, searchChange, resetChange } = Methords; //增删改查
-const { selectionChange, multipleDelete } = Methords; //选中和批量删除事件
-const { checkBtnPerm, downloadTemplate, exportData } = Utils; //按钮权限等工具
-const crudRef = ref(null); //crudRef.value 获取avue-crud对象
-const deviceInfo = (value) => {
-  form.value.deviceNo = value.deviceNo
-  dialog.visible = false
-}
-const maintenanceInfo = ref(null)
-const clickRecord = ref(null)
-const maintenance = (row)=>{
-  maintenanceInfo.value = row
-  maintenanceInfo.value.maintenanceContent = row.remark
-  maintenanceInfo.value.result = 0
-  dialog1.visible = true
-}
-const maintenanceList = (row)=>{
-  clickRecord.value = row
-  dialog2.visible = true
-}
-const queryUserList = ()=>{
-  getUserList({}).then((data)=>{
-    userList.value = data.data
-  })
-}
-const maintenanceInfoForm = ref('maintenanceInfoForm')
-const maintenanceSubmit =()=>{
-  //alert(JSON.stringify(maintenanceInfo.value))
-  maintenanceInfoForm.value.validate((isValid, invalidFields) => {
-    if (isValid) {
-      maintenanceUpdate(maintenanceInfo.value).then((data)=>{
-        ElMessage({
-          message: data.msg,
-          type: "success",
-        });
-        //maintenanceInfo.value = null
-        dialog1.visible = false
-        dataList()
-      })
-    }
-  })
-}
-const rules = reactive({
-  userName: [
-    // required是否必填,message不符合此规则时的提示信息,
-    // trigger触发此条规则校验的时机,有两个值, blur 或 change,默认就是blur和change都会进行校验
-    // min此字段的最小长度,max此字段的最大长度
-    // pattern 正则表达式
-    { required: true, message: '维护人不能为空', trigger: 'blur' }
-  ],
-  confirmUser: [
-    // required是否必填,message不符合此规则时的提示信息,
-    // trigger触发此条规则校验的时机,有两个值, blur 或 change,默认就是blur和change都会进行校验
-    // min此字段的最小长度,max此字段的最大长度
-    // pattern 正则表达式
-    { required: true, message: '确认人不能为空', trigger: 'blur' }
-  ],
-  maintenanceContent: [
-  // required是否必填,message不符合此规则时的提示信息,
-  // trigger触发此条规则校验的时机,有两个值, blur 或 change,默认就是blur和change都会进行校验
-  // min此字段的最小长度,max此字段的最大长度
-  // pattern 正则表达式
-  { required: true, message: '保养项目不能为空', trigger: 'blur' }
-]
-})
-// 设置表格列或者其他自定义的option
-option.value = Object.assign(option.value, {
-  delBtn: false,
-  selection: true,
-  labelWidth: 150,
-  viewBtn: false,
-  column: [
-    {
-      label: "设备名称",
-      prop: "deviceName",
-      display: false,
-      search: true,
-    },
-    {
-      label: "设备类型",
-      prop: "deviceType",
-      type: "select",
-      search: true,
-      hide:true,
-      display: false,
-      dicUrl:
-        dictDataUtil.request_url +
-        dictDataUtil.TYPE_CODE.device_type,
-      props: {
-        label: "dictLabel",
-        value: "dictValue",
-      },
-      rules: [
-        {
-          required: true,
-          message: "设备类型不能为空",
-          trigger: "trigger",
-        },
-      ],
-    },
-    {
-      label: "型号",
-      prop: "specifications",
-      display: false,
-      search: true,
-    },
-    {
-      label: "编号",
-      prop: "deviceNo",
-      search: true,
-      rules: [
-        {
-          required: true,
-          message: "设备编号不能为空",
-          trigger: "trigger",
-        },
-      ],
-      click: ({ value, column }) => {
-        if(column.boxType){
-          dialog.visible = true;
-        }
-      },
-    },
-    {
-      label: "保养维护内容",
-      prop: "remark",
-      minRows: 2, //最小行/最小值
-      type: "textarea", //类型为多行文本域框
-      maxlength: 512, //最大输入长度
-      overHidden: true,
-      rules: [
-        {
-          required: true,
-          message: "保养维护内容不能为空",
-          trigger: "trigger",
-        },
-      ],
-    },
-    {
-      label: "设备位置",
-      prop: "devicePosition",
-      display: false,
-    },
-    {
-      label: "维护类型",
-      prop: "type",
-      search: true,
-      type: "select",
-      editDisplay: false,
-      dicData: [{label: '点检',value:"0"},{label: '保养',value:"1"}],
-      rules: [
-        {
-          required: true,
-          message: "维护类型不能为空",
-          trigger: "trigger",
-        },
-      ],
-    },
-    {
-      label: "维护频次",
-      prop: "cycle",
-      type: "select",
-      dicUrl:
-          dictDataUtil.request_url +
-          dictDataUtil.TYPE_CODE.device_maintenance_cycle,
-      props: {
-        label: "dictLabel",
-        value: "dictValue",
-      },
-      rules: [
-        {
-          required: true,
-          message: "维护频次不能为空",
-          trigger: "trigger",
-        },
-      ],
-    },
-    /*{
-      label: "运行状态",
-      prop: "runState",
-      type: "select",
-      display: false,
-      dicUrl:
-          dictDataUtil.request_url +
-          dictDataUtil.TYPE_CODE.device_run_status,
-      props: {
-        label: "dictLabel",
-        value: "dictValue",
-      },
-      rules: [
-        {
-          required: true,
-          message: "运行状态不能为空",
-          trigger: "trigger",
-        },
-      ],
-    },*/
-    {
-      label: "维护状态",
-      prop: "state",
-      type: "select",
-      addDisplay: false,
-      dicData: [{label: '待维护',value:0},{label: '已维护',value:1}],
-      rules: [
-        {
-          required: true,
-          message: "维护状态不能为空",
-          trigger: "trigger",
-        },
-      ],
-    },
-    {
-      label: "维护日期",
-      prop: "nextTime",
-      type: "date",
-      width: "120",
-      format: "YYYY-MM-DD", //前端展示格式
-      valueFormat: "YYYY-MM-DD", //设置后端接收的日期格式
-      rules: [
-        {
-          required: true,
-          message: "维护日期不能为空",
-          trigger: "trigger",
-        },
-      ],
-    },
-
-  ],
-});
-
-onMounted(() => {
-  dataList();
-  queryUserList()
-});
-</script>