13937891274
2022-08-02 db75c6a59acad51cb17577c522e6a4debf72b3b6
src/components/equipmentDailog/DailogS.vue
@@ -1,11 +1,11 @@
<template>
   <el-dialog :fullscreen="full" v-model="dialogVisible" title="新建仪器仪表" width="60%">
         <el-button @click="toggleFullscreen" size="small" class="pot" :icon="FullScreen"></el-button>
      <el-form :model="form" label-width="130px">
   <el-dialog :fullscreen="full" v-model="dialogVisible" draggable :title="titles" width="60%">
      <el-button @click="toggleFullscreen" size="small" class="pot" :icon="FullScreen"></el-button>
      <el-form :model="form" label-width="130px" :disabled="disabled">
         <el-row>
            <el-col :span="11">
               <el-form-item label="类型/类别外键" size="default">
                  <el-input v-model="form.name" placeholder="请选择">
                  <el-input v-model="form.equipmentTypeId" placeholder="请选择">
                     <template #append>
                        <el-button :icon="Search" @click="opencategory"></el-button>
                     </template>
@@ -21,7 +21,7 @@
         <el-row>
            <el-col :span="11">
               <el-form-item label="所属部门" size="default">
                  <el-select v-model="form.region" placeholder="请选择" style="width: 100%">
                  <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>
@@ -29,7 +29,7 @@
            </el-col>
            <el-col :span="11" :offset="2">
               <el-form-item label="具体位置" size="default">
                  <el-input v-model="form.name" placeholder="请填写具体位置" />
                  <el-input v-model="form.position" placeholder="请填写具体位置" />
               </el-form-item>
            </el-col>
         </el-row>
@@ -37,12 +37,12 @@
         <el-row>
            <el-col :span="11">
               <el-form-item label="负责人姓名" size="default">
                  <el-input v-model="form.name" placeholder="请填写负责人姓名" />
                  <el-input v-model="form.leadingPersonName" placeholder="请填写负责人姓名" />
               </el-form-item>
            </el-col>
            <el-col :span="11" :offset="2">
               <el-form-item label="联系人" size="default">
                  <el-input v-model="form.name" placeholder="请选择">
                  <el-input v-model="form.connectPersonId" placeholder="请选择">
                     <template #append>
                        <el-button :icon="Search" @click="openUser"></el-button>
                     </template>
@@ -53,7 +53,7 @@
         <el-row>
            <el-col :span="11">
               <el-form-item label="录入人" size="default">
                  <el-input v-model="form.name" placeholder="请选择">
                  <el-input v-model="form.inputPersonId" placeholder="请选择">
                     <template #append>
                        <el-button :icon="Search" @click="openUser"></el-button>
                     </template>
@@ -62,7 +62,7 @@
            </el-col>
            <el-col :span="11" :offset="2">
               <el-form-item label="责任人" size="default">
                  <el-input v-model="form.name" placeholder="请选择">
                  <el-input v-model="form.responsibilityPersonId" placeholder="请选择">
                     <template #append>
                        <el-button :icon="Search" @click="openUser"></el-button>
                     </template>
@@ -73,7 +73,7 @@
         <el-row>
            <el-col :span="11">
               <el-form-item label="装置部位分类" size="default">
                  <el-select v-model="form.region" placeholder="请选择" style="width: 100%">
                  <el-select v-model="form.partType" placeholder="请选择" style="width: 100%">
                     <el-option label="Zone one" value="shanghai" />
                     <el-option label="Zone two" value="beijing" />
                  </el-select>
@@ -81,14 +81,14 @@
            </el-col>
            <el-col :span="11" :offset="2">
               <el-form-item label="检查周期" size="default">
                  <el-input v-model="form.name" placeholder="请选择检查周期" />
                  <el-input v-model="form.checkCycle" placeholder="请选择检查周期" />
               </el-form-item>
            </el-col>
         </el-row>
         <el-row>
            <el-col :span="11">
               <el-form-item label="相关应急预案" size="default">
                  <el-input v-model="form.name" placeholder="请选择">
                  <el-input v-model="form.emergencePlanId" placeholder="请选择">
                     <template #append>
                        <el-button :icon="Search" @click="openPlan"></el-button>
                     </template>
@@ -97,7 +97,7 @@
            </el-col>
            <el-col :span="11" :offset="2">
               <el-form-item label="主要危险有害因素" size="default">
                  <el-input v-model="form.name" placeholder="请选择" />
                  <el-input v-model="form.dangerousElement" placeholder="请选择" />
               </el-form-item>
            </el-col>
         </el-row>
@@ -105,13 +105,13 @@
         <el-row>
            <el-col :span="11">
               <el-form-item label="易导致风险" size="default">
                  <el-input v-model="form.name" placeholder="请选择易导致风险" />
                  <el-input v-model="form.toDangerous" placeholder="请选择易导致风险" />
               </el-form-item>
            </el-col>
            <el-col :span="11" :offset="2">
               <el-form-item label="应急处置措施" size="default">
                  <el-input v-model="form.name" placeholder="请选择应急处置措施" />
                  <el-input v-model="form.treatment" placeholder="请选择应急处置措施" />
               </el-form-item>
            </el-col>
         </el-row>
@@ -120,6 +120,7 @@
            <el-col :span="24">
               <el-form-item label="现场图片">
                  <el-upload
                     v-model="form.scenePic"
                     class="avatar-uploader"
                     action="https://run.mocky.io/v3/9d059bf9-4660-45f2-925d-ce80ad6c4d15"
                     :show-file-list="false"
@@ -140,70 +141,79 @@
      </el-form>
      <el-tabs v-model="activeName" class="demo-tabs">
         <el-tab-pane label="设备保养" name="first">
            <el-button type="primary" @click="openMaintenance">新增</el-button>
            <el-table :data="tableData" style="width: 100%">
               <el-table-column align="center" prop="date" label="保养情况" />
               <el-table-column align="center" prop="name" label="保养负责人" />
               <el-table-column align="center" prop="address" label="保养日期" />
               <el-table-column align="center" prop="address" label="保养负责人单位" />
               <el-table-column align="center" prop="address" label="操作">
                  <template #default>
                     <el-button link type="primary" size="small">查看</el-button>
            <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="leadingPersonDepartmentId" label="保养负责人单位" />
               <el-table-column align="center" label="操作">
                  <template #default="scope">
                     <el-button link type="primary" @click="openMaintenance('查看', scope.row)" size="small">查看</el-button>
              <el-button link type="primary" @click="openMaintenance('修改', scope.row)" size="small">修改</el-button>
              <el-button link type="primary" @click="deleteA(scope.row)" size="small">删除</el-button>
                  </template>
               </el-table-column>
            </el-table>
         </el-tab-pane>
         <el-tab-pane label="设备检测" name="second">
            <el-button type="primary" @click="openDetect">新增</el-button>
            <el-table :data="tableData" style="width: 100%">
               <el-table-column align="center" prop="date" label="检测人" />
               <el-table-column align="center" prop="name" label="检测日期" />
               <el-table-column align="center" prop="address" label="检测人单位" />
               <el-table-column align="center" prop="address" label="检测内容" />
               <el-table-column align="center" prop="address" label="检测结果" />
               <el-table-column align="center" prop="address" label="检测状态" />
               <el-table-column align="center" prop="address" label="操作">
                  <template #default>
                     <el-button link type="primary" size="small">查看</el-button>
            <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="testPersonDepartmentId" label="检测人单位" />
               <el-table-column align="center" prop="testMemo" label="检测内容" />
               <el-table-column align="center" prop="testResult" label="检测结果" />
               <el-table-column align="center" prop="testStatus" label="检测状态" />
               <el-table-column align="center" label="操作">
                  <template #default="scope">
                     <el-button link type="primary" @click="openDetect('查看', scope.row)" size="small">查看</el-button>
              <el-button link type="primary" @click="openDetect('修改', scope.row)" size="small">修改</el-button>
              <el-button link type="primary" @click="deleteB(scope.row)" size="small">删除</el-button>
                  </template>
               </el-table-column>
            </el-table>
         </el-tab-pane>
         <el-tab-pane label="设备维修" name="third">
            <el-button type="primary" @click="openRepair">新增</el-button>
            <el-table :data="tableData" style="width: 100%">
               <el-table-column align="center" prop="date" label="设施异常项" />
               <el-table-column align="center" prop="name" label="维修状态" />
               <el-table-column align="center" prop="address" label="维修情况" />
               <el-table-column align="center" prop="address" label="维修负责人" />
               <el-table-column align="center" prop="address" label="维修负责人单位" />
               <el-table-column align="center" prop="address" label="维修开始日期" />
               <el-table-column align="center" prop="address" label="维修结束日期" />
               <el-table-column align="center" prop="address" label="操作">
                  <template #default>
                     <el-button link type="primary" size="small">查看</el-button>
            <el-button type="primary" size="default" @click="openRepair('新增', '')">新增</el-button>
            <el-table :data="form.repaireDetailList" style="width: 100%">
               <el-table-column align="center" prop="exceptionInfo" label="设施异常项" />
               <el-table-column align="center" prop="repairStatus" label="维修状态" />
               <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" label="操作">
                  <template #default="scope">
                     <el-button link type="primary" @click="openRepair('查看', scope.row)" size="small">查看</el-button>
              <el-button link type="primary" @click="openRepair('修改', scope.row)" size="small">修改</el-button>
              <el-button link type="primary" @click="deleteC(scope.row)" size="small">删除</el-button>
                  </template>
               </el-table-column>
            </el-table>
         </el-tab-pane>
         <el-tab-pane label="检查标准设置" name="fourth">
            <el-button type="primary" @click="openStandard">新增</el-button>
            <el-table :data="tableData" style="width: 100%">
               <el-table-column align="center" type="index" label="序号" width="75" />
               <el-table-column align="center" prop="name" label="检查内容" />
               <el-table-column align="center" prop="address" label="检查指标" />
               <el-table-column align="center" prop="address" label="单位" />
               <el-table-column align="center" prop="address" label="巡检部位" />
               <el-table-column align="center" prop="address" label="频次" />
               <el-table-column align="center" prop="address" label="操作">
                  <template #default>
                     <el-button link type="primary" size="small">查看</el-button>
         <el-tab-pane label="检查标准设置" name="fourth"
            >checkContent
            <el-button type="primary" size="default" @click="openStandard('新增', '')">新增</el-button>
            <el-table :data="form.checkStandardeDetailList" style="width: 100%">
               <el-table-column align="center" type="indexNum" label="序号" width="75" />
               <el-table-column align="center" prop="checkContent" label="检查内容" />
               <el-table-column align="center" prop="checkTarget" label="检查指标" />
               <el-table-column align="center" prop="unit" label="单位" />
               <el-table-column align="center" prop="checkPart" label="巡检部位" />
               <el-table-column align="center" prop="rate" label="频次" />
               <el-table-column align="center" label="操作">
                  <template #default="scope">
                     <el-button link type="primary" @click="openStandard('查看', scope.row)" size="small">查看</el-button>
              <el-button link type="primary" @click="openStandard('修改', scope.row)" size="small">修改</el-button>
              <el-button link type="primary" @click="deleteD(scope.row)" size="small">删除</el-button>
                  </template>
               </el-table-column>
            </el-table>
         </el-tab-pane>
         <el-tab-pane label="巡检记录" name="five">
            <el-table :data="tableData" style="width: 100%">
            <el-table :data="name" style="width: 100%">
               <el-table-column align="center" type="selection" width="75" />
               <el-table-column align="center" sortable prop="name" label="任务编号" />
               <el-table-column align="center" sortable prop="address" label="任务名称" />
@@ -234,22 +244,22 @@
      </el-tabs>
      <template #footer>
         <span class="dialog-footer">
            <el-button @click="dialogVisible = false">关闭</el-button>
            <el-button type="primary" @click="dialogVisible = false">确定</el-button>
            <el-button @click="resetForm">关闭</el-button>
            <el-button type="primary" @click="submitForm">确定</el-button>
         </span>
      </template>
   </el-dialog>
   <categoryDailog ref="categoryShow"></categoryDailog>
   <planDailog ref="planShow"></planDailog>
   <DailogSearchUser ref="UserShow"></DailogSearchUser>
   <maintenanceDailog ref="maintenanceShow"></maintenanceDailog>
   <detectDailog ref="detectShow"></detectDailog>
   <repairDailog ref="repairShow"></repairDailog>
   <standardDailog ref="standardShow"></standardDailog>
   <maintenanceDailog ref="maintenanceShow" @onMain="main"></maintenanceDailog>
   <detectDailog ref="detectShow" @onDelect="delect"></detectDailog>
   <repairDailog ref="repairShow" @onRepair="Repair"></repairDailog>
   <standardDailog ref="standardShow" @onStand="Stand"></standardDailog>
</template>
<script lang="ts">
import { defineComponent, ref, reactive } from 'vue';
import { Search,Plus,FullScreen } from '@element-plus/icons-vue';
import { defineComponent, ref } from 'vue';
import { Search, Plus, FullScreen } from '@element-plus/icons-vue';
import categoryDailog from './categoryDailog.vue';
import planDailog from './planDailog.vue';
import maintenanceDailog from './maintenanceDailog.vue';
@@ -259,52 +269,182 @@
import DailogSearchUser from '/@/components/DailogSearchUser/index.vue';
import { ElMessage, ElMessageBox } from 'element-plus';
import type { UploadProps, UploadUserFile } from 'element-plus';
import { facilityManagementApi } from '/@/api/facilityManagement';
export default defineComponent({
   components: { categoryDailog, planDailog, DailogSearchUser, maintenanceDailog, detectDailog, repairDailog, standardDailog },
   setup() {
   setup(props, { emit }) {
      const dialogVisible = ref(false);
      const form = reactive({
         name: '',
         region: '',
         date1: '',
         date2: '',
         delivery: false,
         type: [],
         resource: '',
         desc: '',
      const form = ref({
         equipmentTypeId: '',
         treatment: '',
         inputPersonId: '',
         departmentId: '',
         delRepaireDetailList: [],
         delTestDetailList: [],
         takecareDetailList: [
            {
          leadingPersonDepartmentId: '',
          takecareDate: '',
          equipmentId: '',
          leadingPersonId: '',
          takecareMemo: '',
            },
         ],
      checkDetailList: [],
      responsibilityPersonId: '',
      delTakecareStardardeDetailList: [],
      connectPersonId: '',
      scenePic: '',
      partType: '',
      toDangerous: '',
      dangerousElement: '',
      takecareStardardeDetailList: [
            {
               filePath: '',
            },
         ],
      testDetailList: [
            {
          testMemo: '',
          testPersonDepartmentId: '',
          testStatus: '',
          testPersonId: '',
          testResult: '',
          testDate: '' ,
            },
         ],
      checkCycle: '',
      repaireDetailList: [
            {
          repairStatus: '',
          repairPersonDepartmentId: '',
          repairMemo: '',
          infoTpe: '',
          repairPersonId: '',
          repairEndDate: '',
          repairStartDate: '',
          exceptionInfo: '',
            },
         ],
      delCheckStandardeDetailList: [],
      leadingPersonName: '',
      name: '',
         delTakecareDetailList: [],
      position: '',
      emergencePlanId: 0,
      checkStandardeDetailList: [
            {
          indexNum: '',
          checkTarget: '',
          checkPart: '',
          checkContent: '',
          unit: '',
          rate: '',
            },
         ],
      delCheckStandardeDetails: '',
      delTakecareStardardeDetails: '',
      delTakecareDetails: '',
      delRepaireDetails: '',
      delTestDetails: '',
      });
      const Dailogtype = ref(false);
      const openDailog = (type: boolean) => {
    const titles = ref();
    const disabled = ref(false);
    const Dailogtype = ref(false);
      const openDailog = (title: string, type: boolean, id: number, num: any) => {
         dialogVisible.value = true;
         Dailogtype.value = type;
      if (num == 0) {
        titles.value = `${title}仪表信息`;
      } else if (num == 1) {
        titles.value = `${title}设备设施`;
      } else if (num == 2) {
        titles.value = `${title}设备设施`;
      }
      disabled.value = title == '查看' ? true : false;
      if (title == '查看' || title == '修改')
        facilityManagementApi()
        .getkeypointEquipmentInfoDetail(id)
        .then((res) => {
          if (res.data.code == 200) {
            form.value = res.data.data;
          } else {
            ElMessage.error(res.data.msg);
          }
        });
      };
    // 提交
    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()
          .getkeypointEquipmentInfoAddOrUpdate(form.value)
          .then((res) => {
            if (res.data.code == 200) {
              ElMessage({
                message: res.data.msg,
                type: 'success',
              });
              emit('navAddorUpdata');
            } else {
              ElMessage.error(res.data.msg);
            }
          });
      // form.value = null;
    };
    //   取消
    const resetForm = () => {
      dialogVisible.value = false;
    };
      const activeName = ref('first');
      const tableData = [
         {
            date: '2016-05-03',
            name: 'Tom',
            address: 'No. 189, Grove St, Los Angeles',
         },
         {
            date: '2016-05-02',
            name: 'Tom',
            address: 'No. 189, Grove St, Los Angeles',
         },
         {
            date: '2016-05-04',
            name: 'Tom',
            address: 'No. 189, Grove St, Los Angeles',
         },
         {
            date: '2016-05-01',
            name: 'Tom',
            address: 'No. 189, Grove St, Los Angeles',
         },
      ];
      const categoryShow = ref();
      const opencategory = () => {
         categoryShow.value.openDailog();
      };
    const index = ref<any>();
    const categoryShow = ref();
    const opencategory = () => {
      categoryShow.value.openDailog();
    };
      const planShow = ref();
      const openPlan = () => {
         planShow.value.openDailog();
@@ -314,20 +454,24 @@
         UserShow.value.openDailog();
      };
      const maintenanceShow = ref();
      const openMaintenance = () => {
         maintenanceShow.value.openDailog();
      const openMaintenance = (title: string, data: any) => {
      index.value = form.value.takecareDetailList.indexOf(data);
         maintenanceShow.value.openDailog(title, data);
      };
      const detectShow = ref();
      const openDetect = () => {
         detectShow.value.openDailog();
      const openDetect = (title: string, data: any) => {
      index.value = form.value.testDetailList.indexOf(data);
         detectShow.value.openDailog(title, data);
      };
      const repairShow = ref();
      const openRepair = () => {
         repairShow.value.openDailog();
      const openRepair = (title: string, data: any) => {
      index.value = form.value.repaireDetailList.indexOf(data);
         repairShow.value.openDailog(title, data);
      };
      const standardShow = ref();
      const openStandard = () => {
         standardShow.value.openDailog();
      const openStandard = (title: string, data: any) => {
      index.value = form.value.checkStandardeDetailList.indexOf(data);
         standardShow.value.openDailog(title, data);
      };
      // 上传
      const fileList = ref<UploadUserFile[]>([
@@ -359,6 +503,57 @@
            () => false
         );
      };
    const deleteAId = ref([]);
    const deleteBId = ref([]);
    const deleteCId = ref([]);
    const deleteDId = ref([]);
    // 删除
    const deleteA = (tag: any) => {
      form.value.takecareDetailList.splice(form.value.takecareDetailList.indexOf(tag), 1);
      deleteAId.value.push(tag.id);
    };
    const deleteB = (tag: any) => {
      form.value.testDetailList.splice(form.value.testDetailList.indexOf(tag), 1);
      deleteBId.value.push(tag.id);
    };
    const deleteC = (tag: any) => {
      form.value.repaireDetailList.splice(form.value.repaireDetailList.indexOf(tag), 1);
      deleteCId.value.push(tag.id);
    };
    const deleteD = (tag: any) => {
      form.value.checkStandardeDetailList.splice(form.value.checkStandardeDetailList.indexOf(tag), 1);
      deleteDId.value.push(tag.id);
    };
    // 回传
    const main = (val: any) => {
      if (index.value == -1) {
        form.value.takecareDetailList.push(val);
      } else {
        form.value.takecareDetailList[index.value] = val;
      }
    };
    const delect = (val: any) => {
      if (index.value == -1) {
        form.value.testDetailList.push(val);
      } else {
        form.value.testDetailList[index.value] = val;
      }
    };
    const Repair= (val:any)=>{
      if (index.value == -1) {
        form.value.repaireDetailList.push(val);
      } else {
        form.value.repaireDetailList[index.value] = val;
      }
    }
    const Stand=(val:any)=>{
      if (index.value == -1) {
        form.value.checkStandardeDetailList.push(val);
      } else {
        form.value.checkStandardeDetailList[index.value] = val;
      }
    }
      //图片提交
      const imageUrl = ref('');
@@ -376,23 +571,29 @@
         }
         return true;
      };
         //全屏
      //全屏
      const full = ref(false);
      const toggleFullscreen = () => {
         if (full.value == false) {
            full.value = true;
         }else{
        full.value = false;
      }
         } else {
            full.value = false;
         }
      };
      return {
         submitForm,
         dialogVisible,
         Dailogtype,
         form,
         openDailog,
         Search,
      main,
      delect,
      Repair,
      Stand,
      index,
         activeName,
         tableData,
         categoryShow,
         opencategory,
         planShow,
@@ -411,22 +612,33 @@
         handleRemove,
         handlePreview,
         handleExceed,
      disabled,
      titles,
         beforeRemove,
         imageUrl,
         handleAvatarSuccess,
         beforeAvatarUpload,
         Plus,
            full,
         full,
         toggleFullscreen,
         FullScreen,
         resetForm,
      deleteAId,
      deleteBId,
      deleteCId,
      deleteDId,
      deleteA,
      deleteB,
      deleteC,
      deleteD,
      };
   },
});
</script>
<style scoped>
 .el-row{
    padding: 0 0 20px 0;
 }
.el-row {
   padding: 0 0 20px 0;
}
.avatar-uploader .avatar {
   width: 178px;
   height: 178px;
@@ -434,7 +646,7 @@
}
</style>
<style>
   .avatar-uploader .el-upload {
.avatar-uploader .el-upload {
   border: 1px dashed var(--el-border-color);
   border-radius: 6px;
   cursor: pointer;