13937891274
2022-08-08 dfcccc080d5b24572a11d234a8065a6753bbd91c
src/components/equipmentDailog/Dailog.vue
@@ -1,7 +1,7 @@
<template>
   <el-dialog v-model="dialogVisible" :fullscreen="full" draggable :title="titles" width="60%">
   <el-dialog v-model="dialogVisible" :fullscreen="full" :before-close="resetForm" draggable :title="titles" width="60%">
      <el-button @click="toggleFullscreen" size="small" class="pot" :icon="FullScreen"></el-button>
      <el-form :model="form" :disabled="disabled" label-width="120px" class="formType">
      <el-form :model="form" ref="ruleFormRef" :rules="rules" :disabled="disabled" label-width="120px" class="formType">
         <el-form-item label="装置设施名称" size="default">
            <el-input v-model="form.qName" placeholder="请填写装置设施名称" />
         </el-form-item>
@@ -29,30 +29,22 @@
            </el-input>
         </el-form-item> -->
         <el-form-item label="单位部门" size="default">
            <el-select v-model="form.departmentId" placeholder="请选择" style="width: 100%">
               <el-option label="Zone one" value="shanghai" />
               <el-option label="Zone two" value="beijing" />
            </el-select>
            <el-tree-select v-model="form.departmentId" :data="data" check-strictly="true" class="w100" :props="propse" placeholder="请选择" />
         </el-form-item>
         <el-form-item label="设置部位" size="default">
            <el-input v-model="form.setPart" placeholder="请填写设置部位" />
         </el-form-item>
         <el-form-item label="生产日期" size="default">
            <el-date-picker
               v-model="form.produceTime"
               format="YYYY-MM-DD HH:mm:ss"
               type="datetime"
               placeholder="选择日期时间"
               style="width: 100%"
            />
            <el-date-picker v-model="form.produceTime" format="YYYY-MM-DD HH:mm:ss" type="datetime" placeholder="选择日期时间" style="width: 100%" />
         </el-form-item>
         <el-form-item label="使用期限(天)" size="default">
            <el-input v-model="form.useEndDay" placeholder="请填写使用期限" />
         </el-form-item>
         <el-form-item label="生命周期" size="default">
            <el-select v-model="form.lifeCycle" placeholder="请选择" style="width: 100%">
               <el-option label="Zone one" value="shanghai" />
               <el-option label="Zone two" value="beijing" />
               <el-option label="已投用" value="1" />
               <el-option label="库存中" value="2" />
               <el-option label="报废" value="3" />
            </el-select>
         </el-form-item>
         <el-form-item label="投用日期" size="default">
@@ -60,14 +52,16 @@
         </el-form-item>
         <el-form-item label="维修状态" size="default">
            <el-select v-model="form.repairStatus" placeholder="请选择" style="width: 100%">
               <el-option label="Zone one" value="shanghai" />
               <el-option label="Zone two" value="beijing" />
               <el-option label="维修中" value="1" />
               <el-option label="已修好" value="2" />
            </el-select>
         </el-form-item>
         <el-form-item label="停用状态" size="default">
            <el-select v-model="form.stopStatus" placeholder="请选择" style="width: 100%">
               <el-option label="Zone one" value="0" />
               <el-option label="Zone two" value="1" />
               <el-option label="停用" value="1" />
               <el-option label="在用" value="2" />
               <el-option label="维修" value="3" />
               <el-option label="报废" value="4" />
            </el-select>
         </el-form-item>
         <el-form-item label="上次检查日期" size="default">
@@ -101,17 +95,21 @@
            <el-date-picker v-model="form.nextTakecareDate" format="YYYY-MM-DD HH:mm:ss" type="datetime" placeholder="选择日期时间" style="width: 100%" />
         </el-form-item>
         <el-form-item label="负责人" size="default">
            <el-input v-model="form.leadingPersonId" placeholder="请选择">
            <el-input v-model="form.leadingPersonName" placeholder="请选择">
               <template #append>
                  <el-button :icon="Search" @click="openUser"></el-button>
                  <el-button :icon="Search" @click="openUser(1)"></el-button>
               </template>
            </el-input>
         </el-form-item>
         <el-form-item label="负责人部门" size="default">
            <el-select v-model="form.leadingPersonDepartmentId" placeholder="请选择" style="width: 100%">
               <el-option label="Zone one" value="shanghai" />
               <el-option label="Zone two" value="beijing" />
            </el-select>
            <el-tree-select
               v-model="form.leadingPersonDepartmentId"
               :data="data"
               check-strictly="true"
               class="w100"
               :props="propse"
               placeholder="请选择"
            />
         </el-form-item>
         <el-form-item label="供应商" size="default">
            <el-input v-model="form.supplyName" placeholder="请填写供应商" />
@@ -121,8 +119,8 @@
         </el-form-item>
         <el-form-item label="是否检查" size="default">
            <el-select v-model="form.isNeedCheck" placeholder="请选择" style="width: 100%">
               <el-option label="Zone one" value="shanghai" />
               <el-option label="Zone two" value="beijing" />
               <el-option label="是" value="1" />
               <el-option label="否" value="2" />
            </el-select>
         </el-form-item>
         <el-form-item label="检查周期" size="default">
@@ -133,8 +131,8 @@
         </el-form-item>
         <el-form-item label="是否检测" size="default">
            <el-select v-model="form.isNeedTest" placeholder="请选择" style="width: 100%">
               <el-option label="Zone one" value="shanghai" />
               <el-option label="Zone two" value="beijing" />
               <el-option label="是" value="1" />
               <el-option label="否" value="2" />
            </el-select>
         </el-form-item>
         <el-form-item label="检测周期" size="default">
@@ -145,18 +143,15 @@
         </el-form-item>
         <el-form-item label="是否保养" size="default">
            <el-select v-model="form.isNeedTakecare" placeholder="请选择" style="width: 100%">
               <el-option label="Zone one" value="shanghai" />
               <el-option label="Zone two" value="beijing" />
               <el-option label="是" value="1" />
               <el-option label="否" value="2" />
            </el-select>
         </el-form-item>
         <el-form-item label="检查内容" size="default">
            <el-input v-model="form.checkContent" placeholder="请填写检查内容" />
         </el-form-item>
         <el-form-item label="负责部门" size="default">
            <el-select v-model="form.leadingDepartmentId" placeholder="请选择" style="width: 100%">
               <el-option label="Zone one" value="shanghai" />
               <el-option label="Zone two" value="beijing" />
            </el-select>
            <el-tree-select v-model="form.leadingDepartmentId" :data="data" check-strictly="true" class="w100" :props="propse" placeholder="请选择" />
         </el-form-item>
         <el-form-item label="检查指标" size="default">
            <el-input v-model="form.checkPoint" placeholder="请填写检查指标" />
@@ -177,9 +172,9 @@
            <el-date-picker v-model="form.actualStopDate" format="YYYY-MM-DD HH:mm:ss" type="datetime" placeholder="选择日期时间" style="width: 100%" />
         </el-form-item>
         <el-form-item label="停用提交人" size="default">
            <el-input v-model="form.stopSubmitPersonId" placeholder="请选择">
            <el-input v-model="form.stopSubmitPersonName" placeholder="请选择">
               <template #append>
                  <el-button :icon="Search" @click="openUser"></el-button>
                  <el-button :icon="Search" @click="openUser(2)"></el-button>
               </template>
            </el-input>
         </el-form-item>
@@ -234,8 +229,8 @@
            <el-button type="primary" size="default" @click="openMaintenance('新增', '')">新增</el-button>
            <el-table :data="form.takecareDetailList" style="width: 100%">
               <el-table-column align="center" prop="takecareMemo" label="保养情况" />
               <el-table-column align="center" prop="leadingPersonId" label="保养负责人" />
               <el-table-column align="center" prop="takecareDate" label="保养日期" />
               <el-table-column align="center" prop="leadingPersonName" label="保养负责人" />
               <el-table-column align="center" prop="takecareDate" :formatter="timeDate" label="保养日期" />
               <el-table-column align="center" prop="leadingPersonDepartmentId" label="保养负责人单位" />
               <el-table-column align="center" label="操作">
                  <template #default="scope">
@@ -250,7 +245,7 @@
            <el-button type="primary" size="default" @click="openDetect('新增', '')">新增</el-button>
            <el-table :data="form.testDetailList" style="width: 100%">
               <el-table-column align="center" prop="testPersonId" label="检测人" />
               <el-table-column align="center" prop="testDate" label="检测日期" />
               <el-table-column align="center" prop="testDate" :formatter="timeDate" label="检测日期" />
               <el-table-column align="center" prop="testPersonDepartmentId" label="检测人单位" />
               <el-table-column align="center" prop="testMemo" label="检测内容" />
               <el-table-column align="center" prop="testResult" label="检测结果" />
@@ -272,8 +267,8 @@
               <el-table-column align="center" prop="repairMemo" label="维修情况" />
               <el-table-column align="center" prop="repairPersonId" label="维修负责人" />
               <el-table-column align="center" prop="repairPersonDepartmentId" label="维修负责人单位" />
               <el-table-column align="center" prop="repairStartDate" label="维修开始日期" />
               <el-table-column align="center" prop="repairEndDate" label="维修结束日期" />
               <el-table-column align="center" prop="repairStartDate" :formatter="timeDate" label="维修开始日期" />
               <el-table-column align="center" prop="repairEndDate" :formatter="timeDate" label="维修结束日期" />
               <el-table-column align="center" label="操作">
                  <template #default="scope">
                     <el-button link type="primary" @click="openRepair('查看', scope.row)" size="small">查看</el-button>
@@ -308,7 +303,7 @@
               <el-table-column align="center" sortable prop="address" label="任务名称" />
               <el-table-column align="center" sortable prop="address" label="点位类型" />
               <el-table-column align="center" sortable prop="address" label="检查频次" />
               <el-table-column align="center" sortable prop="address" label="巡检时间" />
               <el-table-column align="center" sortable prop="address" :formatter="timeDate" label="巡检时间" />
               <el-table-column align="center" sortable prop="address" label="巡检人" />
            </el-table>
         </el-tab-pane>
@@ -333,14 +328,14 @@
      </el-tabs>
      <template #footer>
         <span class="dialog-footer">
            <el-button @click="resetForm">关闭</el-button>
            <el-button type="primary" @click="submitForm">确定</el-button>
            <el-button @click="resetForm(ruleFormRef)">关闭</el-button>
            <el-button type="primary" @click="submitForm(ruleFormRef)">确定</el-button>
         </span>
      </template>
   </el-dialog>
   <categoryDailog ref="categoryShow"></categoryDailog>
   <regionDailog ref="regionShow"></regionDailog>
   <DailogSearchUser ref="UserShow"></DailogSearchUser>
   <DailogSearchUser ref="UserShow" @SearchUser="userId"></DailogSearchUser>
   <maintenanceDailog ref="maintenanceShow" @onMain="main"></maintenanceDailog>
   <detectDailog ref="detectShow" @onDelect="delect"></detectDailog>
   <repairDailog ref="repairShow" @onRepair="Repair"></repairDailog>
@@ -354,60 +349,52 @@
import maintenanceDailog from './maintenanceDailog.vue';
import detectDailog from './detectDailog.vue';
import repairDailog from './repairDailog.vue';
import { timeDate } from '/@/assets/index.ts';
import standardDailog from './standardDailog.vue';
import DailogSearchUser from '/@/components/DailogSearchUser/index.vue';
import { ElMessage, ElMessageBox } from 'element-plus';
import { ElMessage, ElMessageBox, FormInstance, FormRules } from 'element-plus';
import type { UploadProps, UploadUserFile } from 'element-plus';
import { facilityManagementApi } from '/@/api/facilityManagement';
import { number } from 'echarts';
import { goalManagementApi } from '/@/api/goalManagement';
export default defineComponent({
   components: { categoryDailog, regionDailog, DailogSearchUser, maintenanceDailog, detectDailog, repairDailog, standardDailog },
   setup(props, { emit }) {
      const dialogVisible = ref(false);
      const ruleFormRef = ref<FormInstance>();
      const form = ref({
         supplyName: '',
         nextTestDate: "",
         nextTestDate: '',
         qUsage: '',
         departmentId: "",
         departmentId: '',
         produceTime: "",
         produceTime: '',
         actualStopDate: "",
         actualStopDate: '',
         takecareDetailList: [
            {
               leadingPersonDepartmentId: "",
         takecareDetailList: [],
               takecareDate: "",
         infoType: '',
               leadingPersonId: "",
               takecareMemo: '',
            },
         ],
         infoType: "",
         leadingDepartmentId: "",
         leadingDepartmentId: '',
         useEndDay: '',
         previousTakecareDate: "",
         previousTakecareDate: '',
         previousCheckDate: "",
         previousCheckDate: '',
         model: '',
         stopStatus: "",
         stopStatus: '',
         testWarn: '',
         stopSubmitDate: "",
         stopSubmitDate: '',
         repairStatus: "",
         repairStatus: '',
         takecareStardardeDetailList: [
            {
@@ -415,39 +402,26 @@
            },
         ],
         nextCheckDate: "",
         nextCheckDate: '',
         checkCycle: '',
         checkPoint: '',
         leadingPersonId: "",
         leadingPersonId: '',
         leadingPersonName: '',
         qName: '',
         nextTakecareDate: "",
         nextTakecareDate: '',
         setPart: '',
         checkStandardeDetailList: [
            {
               checkTarget: '',
         checkStandardeDetailList: [],
               checkPart: '',
         actualDestoryDate: '',
               checkContent: '',
               indexNum: '',
               unit: '',
               rate: '',
            },
         ],
         actualDestoryDate: "",
         isNeedTest: "",
         isNeedTest: '',
         alertNum: '',
@@ -455,9 +429,9 @@
         useMemo: '',
         previousTestDate: "",
         previousTestDate: '',
         isNeedTakecare: "",
         isNeedTakecare: '',
         destoryReason: '',
@@ -469,65 +443,35 @@
         recoveryReason: '',
         isNeedCheck: "",
         isNeedCheck: '',
         actualRecoveryDate: "",
         actualRecoveryDate: '',
         leadingPersonDepartmentId: "",
         leadingPersonDepartmentId: '',
         stopReason: '',
         destorySubmitDate: "",
         destorySubmitDate: '',
         testDetailList: [
            {
               testMemo: '',
               testPersonDepartmentId: "",
               testStatus: '',
               testPersonId: "",
               testResult: "",
               testDate: "",
            },
         ],
         testDetailList: [],
         checkWarn: '',
         repaireDetailList: [
            {
               repairStatus: "",
         repaireDetailList: [],
               repairPersonDepartmentId: "",
         equipmentTypeId: 1,
               repairMemo: '',
         useDate: '',
               repairPersonId: "",
               repairEndDate: "",
               repairStartDate: "",
               exceptionInfo: '',
            },
         ],
         equipmentTypeId: "",
         useDate: "",
         recoverySubmitDate: "",
         recoverySubmitDate: '',
         lockNum: '',
         stopSubmitPersonId: "",
         stopSubmitPersonId: '',
         stopSubmitPersonName: '',
         afterStopStep: '',
         lifeCycle: "",
         lifeCycle: '',
         delCheckStandardeDetails: '',
@@ -544,6 +488,7 @@
      const Dailogtype = ref(false);
      const openDailog = (title: string, type: boolean, id: number, num: any) => {
         dialogVisible.value = true;
         department();
         Dailogtype.value = type;
         if (num == 0) {
            titles.value = `${title}仪表信息`;
@@ -568,32 +513,36 @@
                  }
               });
      };
      const rules = reactive<FormRules>({});
      // 提交
      const submitForm = () => {
         form.value.delTakecareDetails =deleteAId.value.toString()
         form.value.delTestDetails =deleteBId.value.toString()
         form.value.delRepaireDetails =deleteCId.value.toString()
         form.value.delCheckStandardeDetails =deleteDId.value.toString()
         dialogVisible.value = false;
         facilityManagementApi()
            .getequipmentInfoAddOrUpdate(form.value)
            .then((res) => {
               if (res.data.code == 200) {
                  ElMessage({
                     message: res.data.msg,
                     type: 'success',
      const submitForm = async (formEl: FormInstance | undefined) => {
         if (!formEl) return;
         await formEl.validate((valid, fields) => {
            if (valid) {
               form.value.delTakecareDetails = deleteAId.value.toString();
               form.value.delTestDetails = deleteBId.value.toString();
               form.value.delRepaireDetails = deleteCId.value.toString();
               form.value.delCheckStandardeDetails = deleteDId.value.toString();
               dialogVisible.value = false;
               facilityManagementApi()
                  .getequipmentInfoAddOrUpdate(form.value)
                  .then((res) => {
                     if (res.data.code == 200) {
                        ElMessage({
                           message: res.data.msg,
                           type: 'success',
                        });
                        emit('navAddorUpdata');
                     } else {
                        ElMessage.error(res.data.msg);
                     }
                  });
                  emit('navAddorUpdata');
               } else {
                  ElMessage.error(res.data.msg);
               }
            });
         // form.value = null;
            }
         });
      };
      //   取消
      const resetForm = () => {
         dialogVisible.value = false;
         // form.value = null;
      };
      const activeName = ref('first');
      const index = ref<any>();
@@ -606,8 +555,8 @@
         regionShow.value.openDailog();
      };
      const UserShow = ref();
      const openUser = () => {
         UserShow.value.openDailog();
      const openUser = (type: any) => {
         UserShow.value.openDailog(type);
      };
      const maintenanceShow = ref();
      const openMaintenance = (title: string, data: any) => {
@@ -709,6 +658,16 @@
            form.value.checkStandardeDetailList[index.value] = val;
         }
      };
      const userId = (val: any, type: number) => {
         console.log(val, type);
         if (type == 1) {
            form.value.leadingPersonId = val.uid;
            form.value.leadingPersonName = val.realName;
         } else if (type == 2) {
            form.value.stopSubmitPersonId = val.uid;
            form.value.stopSubmitPersonName = val.realName;
         }
      };
      //全屏
      const full = ref(false);
      const toggleFullscreen = () => {
@@ -718,7 +677,30 @@
            full.value = false;
         }
      };
      //部门树
      const department = () => {
         goalManagementApi()
            .getTreedepartment()
            .then((res) => {
               if (res.data.code == 200) {
                  data.value = res.data.data;
               } else {
                  ElMessage.error(res.data.msg);
               }
            });
      };
      const propse = {
         label: 'depName',
         children: 'children',
         value: 'depId',
      };
      const data = ref();
      return {
         rules,
         userId,
         department,
         propse,
         data,
         deleteAId,
         deleteBId,
         deleteCId,
@@ -764,6 +746,8 @@
         full,
         toggleFullscreen,
         FullScreen,
         timeDate,
         ruleFormRef,
      };
   },
});