Browse Source

Merge remote-tracking branch 'origin/master'

zhangcl 4 tuần trước cách đây
mục cha
commit
94186a640c

+ 4 - 0
src/api/pms/failure/index.ts

@@ -36,6 +36,10 @@ export const IotFailureReportApi = {
     return await request.get({ url: `/rq/iot-failure-report/get?id=` + id })
   },
 
+  getApproval: async () => {
+    return await request.get({ url: `/rq/iot-failure-report/get/approval`})
+  },
+
   // 新增故障上报
   createIotFailureReport: async (data: IotFailureReportVO) => {
     return await request.post({ url: `/rq/iot-failure-report/create`, data })

+ 7 - 0
src/api/pms/maintain/index.ts

@@ -35,6 +35,13 @@ export const IotMaintainApi = {
     return await request.get({ url: `/rq/iot-maintain/get?id=` + id })
   },
 
+  // 查询委外申请人
+  getApplyUsers: async (id:number) => {
+    return await request.get({ url: `/rq/iot-maintain/maintain/applyusers?id=` + id })
+  },
+  getProjectUsers: async (id:number) => {
+    return await request.get({ url: `/rq/iot-maintain/maintain/project?id=` + id })
+  },
   // 新增维修工单
   createIotMaintain: async (data: IotMaintainVO) => {
     return await request.post({ url: `/rq/iot-maintain/create`, data })

+ 15 - 1
src/locales/en.ts

@@ -805,7 +805,9 @@ export default {
     choose:'Please select',
     ok: 'Confirm',
     cancel: 'cancel',
-    deptId:'DeptID'
+    deptId:'DeptID',
+    approvalId:'approver',
+    approvalHolder:'Please select approver'
   },
   deviceList:{
     selectDevice:'SelectDevice',
@@ -890,6 +892,18 @@ export default {
     cancel: 'Cancel',
     BOMNodeID:'BOMNodeID',
     ok: 'Confirm',
+    address:'RepairAddress',
+    maintainClassify:'RepairClassify',
+    maintainClassifyHolder:'Please select repairClassify',
+    applyPerson:'applyPerson',
+    applyDept:'applyDept',
+    applyPersonHolder:'Please select applyDept',
+    projectManager:'ProjectManager',
+    projectManagerHolder:'Please select projectManager',
+    maintainItem:'Please enter maintainItem',
+    kmHour: 'operating km/hour',
+    kmHourHolder:'please enter operating km/hour',
+    oaFlowNo:'oaFlowNo'
   },
   workOrderMaterial:{
     materialCode:'MaterialCode',

+ 15 - 1
src/locales/zh-CN.ts

@@ -802,7 +802,9 @@ export default {
     choose:'请选择',
     ok: '确定',
     cancel: '取消',
-    deptId:'部门ID'
+    deptId:'部门ID',
+    approvalId:'审批人',
+    approvalHolder:'请选择审批人'
   },
   deviceList:{
     selectDevice:'选择设备',
@@ -886,6 +888,18 @@ export default {
     cancel: '取消',
     BOMNodeID:'BOM节点ID',
     ok: '确定',
+    address:'维修地点',
+    maintainClassify:'维修类别',
+    maintainClassifyHolder:'请选择维修类别',
+    applyPerson:'申请人',
+    applyDept:'申请部门',
+    applyPersonHolder:'请选择申请人',
+    projectManager:'项目经理',
+    projectManagerHolder:'请选择项目经理',
+    maintainItem:'维修项目',
+    kmHour: '运行公里/小时',
+    kmHourHolder:'请输入运转公里/小时',
+    oaFlowNo:'oa流程号'
   },
   workOrderMaterial:{
     materialCode:'物料编码',

+ 1 - 0
src/utils/dict.ts

@@ -115,6 +115,7 @@ export enum DICT_TYPE {
   PMS_MAIN_STATUS_NO = 'pms_maintain_status_no',
   PMS_MAIN_STATUS = 'pms_maintain_status',
   PMS_MAIN_TYPE = "pms_main_type",
+  PMS_MAIN_CLASSIFY = "pms_maintain_classify",
   PMS_BOOLEAN = "pms_boolean",
   PMS_FAILURE_STATUS = 'pms_failure_status',
   PMS_FILE_TYPE = 'pms_file_type',

+ 26 - 1
src/views/pms/failure/IotFailureReportForm.vue

@@ -99,6 +99,18 @@
             <UploadImg v-model="formData.pic" height="60px" :disabled="disabled" />
           </el-form-item>
         </el-col>
+        <el-col :span="12" v-if="!formData.ifDeal">
+          <el-form-item :label="t('faultForm.approvalId')" prop="approvalId" :rules="!formData.ifDeal?approvalRule:[]">
+            <el-select multiple v-model="formData.approvalId" :placeholder="t('faultForm.approvalHolder')" filterable clearable :disabled="disabled">
+              <el-option
+                v-for="ap in approver"
+                :key="ap.id"
+                :label="ap.nickname"
+                :value="ap.id"
+              />
+            </el-select>
+          </el-form-item>
+        </el-col>
         <el-col :span="24">
           <el-form-item :label="t('faultForm.faultImpact')" prop="failureInfluence">
             <el-input type="textarea" v-model="formData.failureInfluence" :placeholder="t('faultForm.faultImpactHolder')" :disabled="disabled" />
@@ -145,7 +157,9 @@ const dialogTitle = ref('') // 弹窗的标题
 const formLoading = ref(false) // 表单的加载中:1)修改时的数据加载;2)提交的按钮禁用
 const formType = ref('') // 表单的类型:create - 新增;update - 修改
 const deviceLabel = ref('') // 表单的类型:create - 新增;update - 修改
+const approver = ref([])
 const formData = ref({
+  approvalId:undefined,
   id: undefined,
   failureCode: undefined,
   failureName: undefined,
@@ -169,6 +183,11 @@ const formData = ref({
 const dealChange = () => {
   console.log(formData.value.ifDeal)
   formData.value.needHelp = !formData.value.ifDeal
+  if (!formData.value.ifDeal){
+    IotFailureReportApi.getApproval().then(res=>{
+      approver.value = res
+    })
+  }
 }
 const helpChange = () => {
   formData.value.ifDeal = !formData.value.needHelp
@@ -214,6 +233,9 @@ const formRules = ref({
 const solutionRule = [
   { required: true, message: '解决办法不能为空', trigger: 'blur' }
 ];
+const approvalRule = [
+  { required: true, message: '审批人不能为空', trigger: 'blur' }
+];
 const formRef = ref() // 表单 Ref
 const disabled = ref(false)
 /** 打开弹窗 */
@@ -247,7 +269,10 @@ const submitForm = async () => {
   try {
     // formData.value.pic = formData.value.pic.path;
     const data = formData.value as unknown as IotFailureReportVO
-
+    if (!formData.value.ifDeal){
+      debugger
+      formData.value.approvalId = formData.value.ifDeal.join(',')
+    }
     if (formType.value === 'create') {
       await IotFailureReportApi.createIotFailureReport(data)
       message.success(t('common.createSuccess'))

+ 110 - 9
src/views/pms/maintain/IotMaintain.vue

@@ -24,7 +24,7 @@
             </el-col>
             <el-col :span="8">
               <el-form-item :label="t('iotMaintain.repairType')" prop="type">
-                <el-select v-model="formData.type" :placeholder="t('iotMaintain.repairTypeHolder')" clearable>
+                <el-select v-model="formData.type" :placeholder="t('iotMaintain.repairTypeHolder')" clearable @change="typeChange">
                   <el-option
                     v-for="dict in getStrDictOptions(DICT_TYPE.PMS_MAIN_TYPE)"
                     :key="dict.value"
@@ -106,17 +106,64 @@
               </el-form-item>
             </el-col>
             <el-col :span="8" v-if="formData.type === 'out'">
-              <el-form-item :label="t('iotMaintain.supplier')" prop="supplier" :rules="formData.type==='out'?supplierRules:[]">
-                <el-select
+              <el-form-item :label="t('iotMaintain.applyPerson')" prop="applyPersonId" :rules="formData.type==='out'?classifyRules:[]">
+                <el-select v-model="formData.applyPersonId" :placeholder="t('iotMaintain.applyPersonHolder')" clearable>
+                  <el-option
+                    v-for="person in applyPeoPle"
+                    :key="person.oaId"
+                    :label="person.lastname"
+                    :value="person.oaId"
+                  />
+                </el-select>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8" v-if="formData.type === 'out'">
+              <el-form-item :label="t('iotMaintain.maintainClassify')" prop="maintainClassify" :rules="formData.type==='out'?classifyRules:[]">
+                <el-select v-model="formData.maintainClassify" :placeholder="t('iotMaintain.maintainClassifyHolder')" clearable>
+                  <el-option
+                    v-for="dict in getStrDictOptions(DICT_TYPE.PMS_MAIN_CLASSIFY)"
+                    :key="dict.value"
+                    :label="dict.label"
+                    :value="dict.value"
+                  />
+                </el-select>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8" v-if="formData.type === 'out'">
+              <el-form-item :label="t('iotMaintain.kmHour')" prop="kmHour">
+                <el-input v-model="formData.kmHour" :placeholder="t('iotMaintain.kmHourHolder')" />
+              </el-form-item>
+            </el-col>
+            <el-col :span="8" v-if="formData.type === 'out'">
+              <el-form-item :label="t('deviceForm.model')" prop="model" :rules="formData.type==='out'?modelRules:[]">
+                <el-input v-model="formData.model" :placeholder="t('deviceForm.modelHolder')" />
+              </el-form-item>
+            </el-col>
+            <el-col :span="8" v-if="formData.type === 'out'">
+              <el-form-item :label="t('deviceForm.enable')" prop="enableDate" :rules="formData.type==='out'?modelRules:[]">
+                <el-date-picker
+                  style="width: 150%"
+                  v-model="formData.enableDate"
+                  type="date"
+                  value-format="YYYY-MM-DD"
+                  :placeholder="t('deviceForm.enableHolder')"
+                />
+              </el-form-item>
+            </el-col>
+            <el-col :span="8" v-if="formData.type === 'out'">
+              <div style="display: flex;flex-direction: row">
+              <el-form-item :label="t('iotMaintain.supplier')" prop="supplier" style="width: 86%" :rules="formData.type==='out'?supplierRules:[]">
+                <el-input
+                  clearable
                   v-model="formData.supplier"
                   :placeholder="t('iotMaintain.suppHolder')"
-                  :model-value="supplierLabel"
-                  @click="openCustomer('supplier')"
                 />
               </el-form-item>
+              <el-button type="info" @click="openCustomer('supplier')">请选择</el-button>
+              </div>
             </el-col>
             <el-col :span="8" >
-              <el-form-item :label="t('iotMaintain.repairCosts')" prop="maintainFee">
+              <el-form-item :label="t('iotMaintain.repairCosts')" prop="maintainFee" :rules="formData.type==='out'?feeRules:[]">
                 <el-input-number
                   :disabled="formData.type==='in'"
                   v-model="formData.maintainFee"
@@ -127,18 +174,40 @@
                 />
               </el-form-item>
             </el-col>
+            <el-col :span="8" v-if="formData.type === 'out'">
+              <el-form-item :label="t('iotMaintain.projectManager')" prop="projectManager" :rules="formData.type==='out'?projectRules:[]">
+                <el-select v-model="formData.projectManager" :placeholder="t('iotMaintain.projectManagerHolder')" clearable filterable>
+                  <el-option
+                    v-for="person in projectManager"
+                    :key="person.oaId"
+                    :label="person.lastname"
+                    :value="person.oaId"
+                  />
+                </el-select>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8"  v-if="formData.type === 'out'">
+              <el-form-item :label="t('iotMaintain.address')" prop="address">
+                <el-input  v-model="formData.address"/>
+              </el-form-item>
+            </el-col>
             <el-col :span="8" v-if="formData.type === 'out'">
               <el-form-item :label="t('iotMaintain.attachment')" prop="outFiles">
                 <UploadFile v-model="formData.outFiles" :is-show-tip="false" class="min-w-80px" multiple :limit="2" />
               </el-form-item>
             </el-col>
+            <el-col :span="16"  v-if="formData.type === 'out'" >
+              <el-form-item :label="t('iotMaintain.maintainItem')" prop="maintainItem" :rules="formData.type==='out'?itemRules:[]">
+                <el-input type="textarea" v-model="formData.maintainItem"/>
+              </el-form-item>
+            </el-col>
             <el-col :span="16">
               <el-form-item :label="t('iotMaintain.faultDescription')" prop="description">
                 <el-input type="textarea" v-model="formData.description"/>
               </el-form-item>
             </el-col>
             <el-col :span="12">
-              <el-form-item :label="t('iotMaintain.repairDescription')" :rules="formData.type === 'in' ? descriptionRule : []" prop="maintainDescription">
+              <el-form-item :label="t('iotMaintain.repairDescription')" prop="maintainDescription">
                 <el-input type="textarea" v-model="formData.maintainDescription" />
               </el-form-item>
             </el-col>
@@ -303,6 +372,8 @@ const { params, name } = useRoute() // 查询参数
 const id = params.id
 const supplierLabel = ref('') // 表单的类型:create - 新增;update - 修改
 const totalFee = ref(0)
+const applyPeoPle = ref([])
+const projectManager = ref([])
 const { wsCache } = useCache()
 const addFormData = ref({
   name: '',
@@ -311,6 +382,14 @@ const addFormData = ref({
   bomNodeId: '',
 })
 const formData = ref({
+  kmHour:undefined,
+  maintainItem:undefined,
+  enableDate: undefined,
+  projectManager:undefined,
+  applyPersonId:undefined,
+  maintainClassify: undefined,
+  address:undefined,
+  model:undefined,
   id: undefined,
   failureCode: undefined,
   failureName: undefined,
@@ -343,6 +422,11 @@ const formData = ref({
 })
 const failureTimeRule = [{ required: true, message: '故障时间不能为空', trigger: 'blur' }]
 const supplierRules = [{ required: true, message: '供应商不能为空', trigger: 'blur' }]
+const projectRules = [{ required: true, message: '项目经理不能为空', trigger: 'blur' }]
+const itemRules = [{ required: true, message: '维修项目不能为空', trigger: 'blur' }]
+const classifyRules = [{ required: true, message: '维修类别不能为空', trigger: 'blur' }]
+const feeRules = [{ required: true, message: '维修费用不能为空', trigger: 'blur' }]
+const modelRules = [{ required: true, message: '规格型号不能为空', trigger: 'blur' }]
 const startRule = [{ required: true, message: '维修开始时间不能为空', trigger: 'blur' }]
 const descriptionRule = [{required: true, message:'维修描述不能为空', trigger: 'blur' }]
 const endRule = [{ required: true, message: '维修结束时间不能为空', trigger: 'blur' }]
@@ -352,6 +436,8 @@ const formRules = reactive({
   type: [{ required: true, message: '维修类型不能为空', trigger: 'blur' }],
   ifStop: [{ required: true, message: '是否停机不能为空', trigger: 'blur' }],
   failureName: [{ required: true, message: '故障名称不能为空', trigger: 'blur' }],
+  description: [{ required: true, message: '故障描述不能为空', trigger: 'blur' }],
+  maintainDescription: [{ required: true, message: '维修描述不能为空', trigger: 'blur' }],
   // failureTime: [{ required: true, message: '故障时间不能为空', trigger: 'blur' }],
   // maintainStartTime: [{ required: true, message: '维修开始时间不能为空', trigger: 'blur' }],
   // maintainEndTime: [{ required: true, message: '维修结束时间不能为空', trigger: 'blur' }],
@@ -364,6 +450,19 @@ const formRules = reactive({
 const addFormRules = reactive({
   name: [{ required: true, message: '维修项不能为空', trigger: 'blur' }]
 })
+
+const typeChange = async () =>{
+  if (formData.value.type === 'out') {
+    await IotMaintainApi.getApplyUsers("").then((res) => {
+      applyPeoPle.value = res
+    })
+    await IotMaintainApi.getProjectUsers("").then((res) => {
+      debugger
+      projectManager.value = res
+    })
+  }
+}
+
 const handleConfirm = () => {
   addFormData.value.bomNodeId = Math.floor(100000 + Math.random() * 900000)
 
@@ -377,8 +476,8 @@ const handleConfirm = () => {
   addItemVisible.value = false
 }
 const customerChoose = (row) => {
-  formData.value.supplier = row.id
-  supplierLabel.value = row.name
+  formData.value.supplier = row.name
+  // supplierLabel.value = row.name
 }
 
 const customerFormRef = ref()
@@ -388,6 +487,8 @@ const openCustomer = (type) => {
 const formRef = ref() // 表单 Ref
 const addFormRef = ref()
 const deviceChoose = (row) => {
+  formData.value.model = row.model
+  formData.value.enableDate = row.enableDate
   formData.value.deviceId = row.id
   formData.value.deviceName = row.deviceName
   formData.value.deviceCode = row.deviceCode

+ 127 - 35
src/views/pms/maintain/IotMaintainDetail.vue

@@ -125,39 +125,103 @@
               <UploadImgs v-model="formData.pics" :disabled="true" height="55px" />
             </el-form-item>
           </el-col>
-<!--          <el-col :span="8">-->
-<!--            <el-form-item label="维修费用" prop="maintainFee">-->
-<!--              <el-input v-model="formData.maintainFee" :disabled="true" />-->
-<!--            </el-form-item>-->
-<!--          </el-col>-->
-                    <el-col :span="8" v-if="formData.type === 'out'">
-                      <el-form-item :label="t('iotMaintain.supplier')" prop="supplier">
-                        <el-select
-                          disabled
-                          v-model="formData.supplierName"
-                          :placeholder="t('iotMaintain.suppHolder')"
-                          :model-value="supplierLabel"
-                        />
-                      </el-form-item>
-                    </el-col>
-                    <el-col :span="8">
-                      <el-form-item :label="t('iotMaintain.repairCosts')" prop="maintainFee">
-                        <el-input-number
-                          disabled
-                          v-model="formData.maintainFee"
-                          :min="0"
-                          :precision="2"
-                          :step="0.1"
-                          :placeholder="t('iotMaintain.costHolder')"
-                          style="width: 100%"
-                        />
-                      </el-form-item>
-                    </el-col>
-                    <el-col :span="8" v-if="formData.type === 'out'">
-                      <el-form-item :label="t('iotMaintain.attachment')" prop="outFiles">
-                        <UploadFile disabled="" v-model="formData.outFiles" class="min-w-80px" />
-                      </el-form-item>
-                    </el-col>
+          <el-col :span="8" v-if="formData.type === 'out'">
+            <el-form-item :label="t('iotMaintain.applyPerson')" prop="applyPersonId" :rules="formData.type==='out'?classifyRules:[]">
+              <el-select v-model="formData.applyPersonId" :placeholder="t('iotMaintain.applyPersonHolder')" disabled clearable>
+                <el-option
+                  v-for="person in applyPeoPle"
+                  :key="person.oaId"
+                  :label="person.lastname"
+                  :value="person.oaId"
+                />
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="8" v-if="formData.type === 'out'">
+            <el-form-item :label="t('iotMaintain.maintainClassify')" prop="maintainClassify" :rules="formData.type==='out'?classifyRules:[]">
+              <el-select v-model="formData.maintainClassify" :placeholder="t('iotMaintain.maintainClassifyHolder')" disabled clearable>
+                <el-option
+                  v-for="dict in getStrDictOptions(DICT_TYPE.PMS_MAIN_CLASSIFY)"
+                  :key="dict.value"
+                  :label="dict.label"
+                  :value="dict.value"
+                />
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="8" v-if="formData.type === 'out'">
+            <el-form-item :label="t('iotMaintain.kmHour')" prop="kmHour">
+              <el-input v-model="formData.kmHour" :placeholder="t('iotMaintain.kmHourHolder')" disabled/>
+            </el-form-item>
+          </el-col>
+          <el-col :span="8" v-if="formData.type === 'out'">
+            <el-form-item :label="t('deviceForm.model')" prop="model" :rules="formData.type==='out'?modelRules:[]">
+              <el-input v-model="formData.model" :placeholder="t('deviceForm.modelHolder')" disabled/>
+            </el-form-item>
+          </el-col>
+          <el-col :span="8" v-if="formData.type === 'out'">
+            <el-form-item :label="t('deviceForm.enable')" prop="enableDate" :rules="formData.type==='out'?modelRules:[]">
+              <el-date-picker
+                disabled
+                style="width: 150%"
+                v-model="formData.enableDate"
+                type="date"
+                value-format="YYYY-MM-DD"
+                :placeholder="t('deviceForm.enableHolder')"
+              />
+            </el-form-item>
+          </el-col>
+          <el-col :span="8" v-if="formData.type === 'out'">
+            <div style="display: flex;flex-direction: row">
+              <el-form-item :label="t('iotMaintain.supplier')" prop="supplier" style="width: 86%" :rules="formData.type==='out'?supplierRules:[]">
+                <el-input
+                  disabled
+                  clearable
+                  v-model="formData.supplier"
+                  :placeholder="t('iotMaintain.suppHolder')"
+                />
+              </el-form-item>
+            </div>
+          </el-col>
+          <el-col :span="8" >
+            <el-form-item :label="t('iotMaintain.repairCosts')" prop="maintainFee" :rules="formData.type==='out'?feeRules:[]">
+              <el-input-number
+                disabled
+                v-model="formData.maintainFee"
+                :min="0"
+                :precision="2"
+                :step="0.1"
+                style="width: 100%"
+              />
+            </el-form-item>
+          </el-col>
+          <el-col :span="8" v-if="formData.type === 'out'">
+            <el-form-item :label="t('iotMaintain.projectManager')" prop="projectManager" :rules="formData.type==='out'?projectRules:[]">
+              <el-select v-model="formData.projectManager" :placeholder="t('iotMaintain.projectManagerHolder')" disabled clearable filterable>
+                <el-option
+                  v-for="person in projectManager"
+                  :key="person.oaId"
+                  :label="person.lastname"
+                  :value="person.oaId"
+                />
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="8"  v-if="formData.type === 'out'">
+            <el-form-item :label="t('iotMaintain.address')" prop="address">
+              <el-input  v-model="formData.address" disabled/>
+            </el-form-item>
+          </el-col>
+          <el-col :span="8" v-if="formData.type === 'out'">
+            <el-form-item :label="t('iotMaintain.attachment')" prop="outFiles">
+              <UploadFile v-model="formData.outFiles" :is-show-tip="false" class="min-w-80px" multiple :limit="2" disabled />
+            </el-form-item>
+          </el-col>
+          <el-col :span="16"  v-if="formData.type === 'out'" >
+            <el-form-item :label="t('iotMaintain.maintainItem')" prop="maintainItem" :rules="formData.type==='out'?itemRules:[]">
+              <el-input type="textarea" v-model="formData.maintainItem" disabled/>
+            </el-form-item>
+          </el-col>
           <el-col :span="8">
             <el-form-item :label="t('iotMaintain.faultDescription')" prop="description">
               <el-input type="textarea" v-model="formData.description" disabled />
@@ -238,6 +302,17 @@ import {CACHE_KEY, useCache} from "@/hooks/web/useCache";
 defineOptions({ name: 'IotMaintainDetail' })
 
 const { t } = useI18n() // 国际化
+
+const projectRules = [{ required: true, message: '项目经理不能为空', trigger: 'blur' }]
+const itemRules = [{ required: true, message: '维修项目不能为空', trigger: 'blur' }]
+const classifyRules = [{ required: true, message: '维修类别不能为空', trigger: 'blur' }]
+const feeRules = [{ required: true, message: '维修费用不能为空', trigger: 'blur' }]
+const modelRules = [{ required: true, message: '规格型号不能为空', trigger: 'blur' }]
+const supplierRules = [{ required: true, message: '供应商不能为空', trigger: 'blur' }]
+
+const applyPeoPle = ref([])
+const projectManager = ref([])
+
 const props = defineProps<{ id?: number }>()
 const message = useMessage() // 消息弹窗
 const { delView } = useTagsViewStore() // 视图操作
@@ -255,6 +330,14 @@ const materialList = ref<any[]>([]) // 保养工单bom关联物料列表
 const { wsCache } = useCache()
 const currentBomNodeId = ref<string>()
 const formData = ref({
+  kmHour:undefined,
+  maintainItem:undefined,
+  enableDate: undefined,
+  projectManager:undefined,
+  applyPersonId:undefined,
+  maintainClassify: undefined,
+  address:undefined,
+  model:undefined,
   id: undefined,
   failureCode: undefined,
   failureName: undefined,
@@ -351,10 +434,19 @@ onMounted(async () => {
       item.deviceName = res.deviceName
       item.deviceCode = res.deviceCode
     })
-    UserApi.getUser(formData.value.maintainPerson).then((res) => {
-      formData.value.maintainPerson = res.nickname
+    UserApi.getUser(formData.value.maintainPerson).then((ress) => {
+      formData.value.maintainPerson = ress.nickname
     })
     IotMaintainMaterialApi.getMaterialsByDeviceId()
+    if (formData.value.type === 'out') {
+      IotMaintainApi.getApplyUsers(res.creator).then((resss) => {
+        applyPeoPle.value = resss
+      })
+      IotMaintainApi.getProjectUsers(res.creator).then((ressss) => {
+        debugger
+        projectManager.value = ressss
+      })
+    }
   })
 })
 </script>

+ 9 - 13
src/views/pms/maintain/index.vue

@@ -140,17 +140,12 @@
           </el-table-column>
           <el-table-column :label="t('iotDevice.code')" align="center" prop="deviceCode" min-width="180" />
           <el-table-column :label="t('maintain.deviceName')" align="center" prop="deviceName" min-width="280" />
-          <el-table-column :label="t('maintain.status')" align="center" prop="status" min-width="85" >
+          <el-table-column :label="t('maintain.status')" align="center" prop="status" min-width="95" >
             <template #default="scope">
               <dict-tag :type="DICT_TYPE.PMS_MAIN_STATUS" :value="scope.row.status" />
             </template>
           </el-table-column>
           <el-table-column :label="t('maintain.source')" align="center" prop="maintainType" min-width="135"/>
-<!--          <el-table-column :label="t('maintain.audit')" align="center" prop="auditStatus" width="135">-->
-<!--            <template #default="scope">-->
-<!--              <dict-tag :type="DICT_TYPE.CRM_AUDIT_STATUS" :value="scope.row.auditStatus" />-->
-<!--            </template>-->
-<!--          </el-table-column>-->
           <el-table-column :label="t('iotMaintain.repairType')" align="center" prop="type" min-width="135">
             <template #default="scope">
               <dict-tag :type="DICT_TYPE.PMS_MAIN_TYPE" :value="scope.row.type" />
@@ -161,13 +156,14 @@
               <dict-tag :type="DICT_TYPE.INFRA_BOOLEAN_STRING" :value="scope.row.ifStop" />
             </template>
           </el-table-column>
-                    <el-table-column
-                      label="执行时间"
-                      align="center"
-                      prop="executeDate"
-                      :formatter="dateFormatter"
-                      min-width="180px"
-                    />
+          <el-table-column
+            label="执行时间"
+            align="center"
+            prop="executeDate"
+            :formatter="dateFormatter"
+            min-width="180px"
+          />
+          <el-table-column :label="t('iotMaintain.oaFlowNo')" align="center" prop="oaFlowNo" min-width="250" />
           <el-table-column :label="t('maintain.dept')" align="center" prop="deptName" min-width="135"/>
           <el-table-column :label="t('inspect.createName')" align="center" prop="createName" min-width="130"/>
           <el-table-column