shj
2022-08-10 01b6b200bedf57900a88bbd982cf25889e13dc49
对接
已修改2个文件
1514 ■■■■ 文件已修改
src/components/equipmentDailog/Dailog.vue 1496 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/facilityManagement/deviceType/component/Dailog.vue 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/equipmentDailog/Dailog.vue
@@ -1,346 +1,346 @@
<template>
  <el-dialog v-model="dialogVisible" :fullscreen="full" @close="resetForm(ruleFormRef)" draggable :title="titles" width="60%">
    <el-button @click="toggleFullscreen" size="small" class="pot" :icon="FullScreen"></el-button>
    <el-form :model="form" ref="ruleFormRef" :rules="rules" :disabled="disabled" label-width="120px" class="formType">
      <el-form-item label="装置设施名称" size="default" prop="qName">
        <el-input v-model="form.qName" placeholder="请填写装置设施名称" />
      </el-form-item>
      <el-form-item label="装置设施位号" size="default" prop="positionNum">
        <el-input disabled v-model="form.positionNum" placeholder="请填写装置设施位号" />
      </el-form-item>
      <el-form-item label="装置设施用途" size="default" prop="qUsage">
        <el-input v-model="form.qUsage" placeholder="请填写装置设施用途" />
      </el-form-item>
      <el-form-item label="装置设施型号" size="default" prop="model">
        <el-input v-model="form.model" placeholder="请填写装置设施型号" />
      </el-form-item>
          <el-form-item label="类型/类别外键" size="default" prop="equipmentTypeName">
            <el-input v-model="form.equipmentTypeName" placeholder="请选择">
              <template #append>
                <el-button :icon="Search" @click="opencategory"></el-button>
              </template>
            </el-input>
          </el-form-item>
          <!-- <el-form-item label="区域名称" size="default">
    <el-dialog v-model="dialogVisible" :fullscreen="full" @close="resetForm(ruleFormRef)" draggable :title="titles" width="60%">
        <el-button @click="toggleFullscreen" size="small" class="pot" :icon="FullScreen"></el-button>
        <el-form :model="form" ref="ruleFormRef" :rules="rules" :disabled="disabled" label-width="120px" class="formType">
            <el-form-item label="装置设施名称" size="default" prop="qName">
                <el-input v-model="form.qName" placeholder="请填写装置设施名称" />
            </el-form-item>
            <el-form-item label="装置设施位号" size="default" prop="positionNum">
                <el-input disabled v-model="form.positionNum" placeholder="请填写装置设施位号" />
            </el-form-item>
            <el-form-item label="装置设施用途" size="default" prop="qUsage">
                <el-input v-model="form.qUsage" placeholder="请填写装置设施用途" />
            </el-form-item>
            <el-form-item label="装置设施型号" size="default" prop="model">
                <el-input v-model="form.model" placeholder="请填写装置设施型号" />
            </el-form-item>
            <el-form-item label="类型/类别外键" size="default" prop="equipmentTypeName">
                <el-input v-model="form.equipmentTypeName" placeholder="请选择">
                    <template #append>
                        <el-button :icon="Search" @click="opencategory"></el-button>
                    </template>
                </el-input>
            </el-form-item>
            <!-- <el-form-item label="区域名称" size="default">
            <el-input v-model="form.name" placeholder="请选择">
              <template #append>
                <el-button :icon="Search" @click="openRegion"></el-button>
              </template>
            </el-input>
          </el-form-item> -->
          <el-form-item label="单位部门" size="default" prop="departmentId">
            <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" prop="setPart">
            <el-input v-model="form.setPart" placeholder="请填写设置部位" />
          </el-form-item>
          <el-form-item label="生产日期" size="default" prop="produceTime">
            <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" prop="useEndDay">
            <el-input v-model="form.useEndDay" placeholder="请填写使用期限" />
          </el-form-item>
          <el-form-item label="生命周期" size="default" prop="lifeCycle">
            <el-select v-model="form.lifeCycle" placeholder="请选择" style="width: 100%">
              <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" prop="useDate">
            <el-date-picker v-model="form.useDate" format="YYYY-MM-DD HH:mm:ss" type="datetime" placeholder="选择日期时间" style="width: 100%" />
          </el-form-item>
          <el-form-item label="维修状态" size="default" prop="repairStatus">
            <el-select v-model="form.repairStatus" placeholder="请选择" style="width: 100%">
              <el-option label="维修中" :value="1" />
              <el-option label="已修好" :value="2" />
            </el-select>
          </el-form-item>
          <el-form-item label="停用状态" size="default" prop="stopStatus">
            <el-select v-model="form.stopStatus" placeholder="请选择" style="width: 100%">
              <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" prop="previousCheckDate">
            <el-date-picker
                v-model="form.previousCheckDate"
                format="YYYY-MM-DD HH:mm:ss"
                type="datetime"
                placeholder="选择日期时间"
                style="width: 100%"
            />
          </el-form-item>
          <el-form-item label="上次检测日期" size="default" prop="previousTestDate">
            <el-date-picker v-model="form.previousTestDate" format="YYYY-MM-DD HH:mm:ss" type="datetime" placeholder="选择日期时间" style="width: 100%" />
          </el-form-item>
          <el-form-item label="上次保养日期" size="default" prop="previousTakecareDate">
            <el-date-picker
                v-model="form.previousTakecareDate"
                format="YYYY-MM-DD HH:mm:ss"
                type="datetime"
                placeholder="选择日期时间"
                style="width: 100%"
            />
          </el-form-item>
          <el-form-item label="下次检查日期" size="default" prop="nextCheckDate">
            <el-date-picker v-model="form.nextCheckDate" format="YYYY-MM-DD HH:mm:ss" type="datetime" placeholder="选择日期时间" style="width: 100%" />
          </el-form-item>
          <el-form-item label="下次检测日期" size="default" prop="nextTestDate">
            <el-date-picker v-model="form.nextTestDate" format="YYYY-MM-DD HH:mm:ss" type="datetime" placeholder="选择日期时间" style="width: 100%" />
          </el-form-item>
          <el-form-item label="下次保养日期" size="default" prop="nextTakecareDate">
            <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" prop="leadingPersonName">
            <el-input v-model="form.leadingPersonName" placeholder="请选择">
              <template #append>
                <el-button :icon="Search" @click="openUser(1)"></el-button>
              </template>
            </el-input>
          </el-form-item>
          <el-form-item label="负责人部门" size="default" prop="leadingPersonDepartmentId">
            <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" prop="supplyName">
            <el-input v-model="form.supplyName" placeholder="请填写供应商" />
          </el-form-item>
          <el-form-item label="使用说明" size="default" prop="useMemo">
            <el-input v-model="form.useMemo" placeholder="请填写使用说明" />
          </el-form-item>
          <el-form-item label="是否检查" size="default" prop="isNeedCheck">
            <el-select v-model="form.isNeedCheck" placeholder="请选择" style="width: 100%">
              <el-option label="是" :value="1" />
              <el-option label="否" :value="2" />
            </el-select>
          </el-form-item>
          <el-form-item label="检查周期" size="default" prop="checkCycle">
            <el-input v-model="form.checkCycle" placeholder="请填写检查周期" />
          </el-form-item>
          <el-form-item label="检查提前提醒" size="default" prop="checkWarn">
            <el-input v-model="form.checkWarn" placeholder="请填写检查提前提醒" />
          </el-form-item>
          <el-form-item label="是否检测" size="default" prop="isNeedTest">
            <el-select v-model="form.isNeedTest" placeholder="请选择" style="width: 100%">
              <el-option label="是" :value="1" />
              <el-option label="否" :value="2" />
            </el-select>
          </el-form-item>
          <el-form-item label="检测周期" size="default" prop="testCycle">
            <el-input v-model="form.testCycle" placeholder="请填写检测周期" />
          </el-form-item>
          <el-form-item label="检测提前提醒" size="default" prop="testWarn">
            <el-input v-model="form.testWarn" placeholder="请填写检测提前提醒" />
          </el-form-item>
          <el-form-item label="是否保养" size="default" prop="isNeedTakecare">
            <el-select v-model="form.isNeedTakecare" placeholder="请选择" style="width: 100%">
              <el-option label="是" :value="1" />
              <el-option label="否" :value="2" />
            </el-select>
          </el-form-item>
          <el-form-item label="检查内容" size="default" prop="checkContent">
            <el-input v-model="form.checkContent" placeholder="请填写检查内容" />
          </el-form-item>
          <el-form-item label="负责部门" size="default" prop="leadingDepartmentId">
            <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" prop="checkPoint">
            <el-input v-model="form.checkPoint" placeholder="请填写检查指标" />
          </el-form-item>
          <el-form-item label="预警值" size="default" prop="alertNum">
            <el-input v-model="form.alertNum" placeholder="请填写预警值" />
          </el-form-item>
          <el-form-item label="联锁值" size="default" prop="lockNum">
            <el-input v-model="form.lockNum" placeholder="请填写联锁值" />
          </el-form-item>
          <el-form-item label="停用理由" size="default" prop="stopReason">
            <el-input v-model="form.stopReason" placeholder="请填写停用理由" />
          </el-form-item>
          <el-form-item label="停用后措施" size="default" prop="afterStopStep">
            <el-input v-model="form.afterStopStep" placeholder="请填写停用后措施" />
          </el-form-item>
          <el-form-item label="实际停用日期" size="default" prop="actualStopDate">
            <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" prop="stopSubmitPersonName">
            <el-input v-model="form.stopSubmitPersonName" placeholder="请选择">
              <template #append>
                <el-button :icon="Search" @click="openUser(2)"></el-button>
              </template>
            </el-input>
          </el-form-item>
          <el-form-item label="停用提交日期" size="default" prop="stopSubmitDate">
            <el-date-picker v-model="form.stopSubmitDate" format="YYYY-MM-DD HH:mm:ss" type="datetime" placeholder="选择日期时间" style="width: 100%" />
          </el-form-item>
          <el-form-item label="恢复理由" size="default" prop="recoveryReason">
            <el-input v-model="form.recoveryReason" placeholder="请填写恢复理由" />
          </el-form-item>
          <el-form-item label="恢复填报日期" size="default" prop="recoverySubmitDate">
            <el-date-picker
                v-model="form.recoverySubmitDate"
                format="YYYY-MM-DD HH:mm:ss"
                type="datetime"
                placeholder="选择日期时间"
                style="width: 100%"
            />
          </el-form-item>
          <el-form-item label="实际恢复日期" size="default" prop="actualRecoveryDate">
            <el-date-picker
                v-model="form.actualRecoveryDate"
                format="YYYY-MM-DD HH:mm:ss"
                type="datetime"
                placeholder="选择日期时间"
                style="width: 100%"
            />
          </el-form-item>
          <el-form-item label="报废理由" size="default" prop="destoryReason">
            <el-input v-model="form.destoryReason" placeholder="请填写报废理由" />
          </el-form-item>
          <el-form-item label="报废填报日期" size="default" prop="destorySubmitDate">
            <el-date-picker
                v-model="form.destorySubmitDate"
                format="YYYY-MM-DD HH:mm:ss"
                type="datetime"
                placeholder="选择日期时间"
                style="width: 100%"
            />
          </el-form-item>
          <el-form-item label="实际报废日期" size="default" prop="actualDestoryDate">
            <el-date-picker
                v-model="form.actualDestoryDate"
                format="YYYY-MM-DD HH:mm:ss"
                type="datetime"
                placeholder="选择日期时间"
                style="width: 100%"
            />
          </el-form-item>
    </el-form>
    <el-tabs v-model="activeName" class="demo-tabs">
      <el-tab-pane label="设备保养" name="first">
        <el-button type="primary" size="default" :disabled="disabled" @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="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">
              <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" size="default" :disabled="disabled" @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" :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="检测结果" />
          <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" size="default" :disabled="disabled" @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" :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>
              <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" size="default" :disabled="disabled" @click="openStandard('新增', '')">新增</el-button>
        <el-table :data="form.checkStandardeDetailList" style="width: 100%">
          <el-table-column align="center" prop="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="巡检记录" size="default" name="five">
        <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="任务名称" />
          <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>
      <el-tab-pane label="保养维修标准" name="six" v-if="Dailogtype">
        <el-upload
            v-model:file-list="fileList"
            class="upload-demo"
            action="https://run.mocky.io/v3/9d059bf9-4660-45f2-925d-ce80ad6c4d15"
            multiple
            :on-preview="handlePreview"
            :on-remove="handleRemove"
            :before-remove="beforeRemove"
            :limit="3"
            :on-exceed="handleExceed"
        >
          <el-button type="primary">点击上传</el-button>
          <template #tip>
            <div class="el-upload__tip"></div>
          </template>
        </el-upload>
      </el-tab-pane>
    </el-tabs>
    <template #footer>
            <el-form-item label="单位部门" size="default" prop="departmentId">
                <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" prop="setPart">
                <el-input v-model="form.setPart" placeholder="请填写设置部位" />
            </el-form-item>
            <el-form-item label="生产日期" size="default" prop="produceTime">
                <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" prop="useEndDay">
                <el-input v-model="form.useEndDay" placeholder="请填写使用期限" />
            </el-form-item>
            <el-form-item label="生命周期" size="default" prop="lifeCycle">
                <el-select v-model="form.lifeCycle" placeholder="请选择" style="width: 100%">
                    <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" prop="useDate">
                <el-date-picker v-model="form.useDate" format="YYYY-MM-DD HH:mm:ss" type="datetime" placeholder="选择日期时间" style="width: 100%" />
            </el-form-item>
            <el-form-item label="维修状态" size="default" prop="repairStatus">
                <el-select v-model="form.repairStatus" placeholder="请选择" style="width: 100%">
                    <el-option label="维修中" :value="1" />
                    <el-option label="已修好" :value="2" />
                </el-select>
            </el-form-item>
            <el-form-item label="停用状态" size="default" prop="stopStatus">
                <el-select v-model="form.stopStatus" placeholder="请选择" style="width: 100%">
                    <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" prop="previousCheckDate">
                <el-date-picker
                    v-model="form.previousCheckDate"
                    format="YYYY-MM-DD HH:mm:ss"
                    type="datetime"
                    placeholder="选择日期时间"
                    style="width: 100%"
                />
            </el-form-item>
            <el-form-item label="上次检测日期" size="default" prop="previousTestDate">
                <el-date-picker v-model="form.previousTestDate" format="YYYY-MM-DD HH:mm:ss" type="datetime" placeholder="选择日期时间" style="width: 100%" />
            </el-form-item>
            <el-form-item label="上次保养日期" size="default" prop="previousTakecareDate">
                <el-date-picker
                    v-model="form.previousTakecareDate"
                    format="YYYY-MM-DD HH:mm:ss"
                    type="datetime"
                    placeholder="选择日期时间"
                    style="width: 100%"
                />
            </el-form-item>
            <el-form-item label="下次检查日期" size="default" prop="nextCheckDate">
                <el-date-picker v-model="form.nextCheckDate" format="YYYY-MM-DD HH:mm:ss" type="datetime" placeholder="选择日期时间" style="width: 100%" />
            </el-form-item>
            <el-form-item label="下次检测日期" size="default" prop="nextTestDate">
                <el-date-picker v-model="form.nextTestDate" format="YYYY-MM-DD HH:mm:ss" type="datetime" placeholder="选择日期时间" style="width: 100%" />
            </el-form-item>
            <el-form-item label="下次保养日期" size="default" prop="nextTakecareDate">
                <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" prop="leadingPersonName">
                <el-input v-model="form.leadingPersonName" placeholder="请选择">
                    <template #append>
                        <el-button :icon="Search" @click="openUser(1)"></el-button>
                    </template>
                </el-input>
            </el-form-item>
            <el-form-item label="负责人部门" size="default" prop="leadingPersonDepartmentId">
                <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" prop="supplyName">
                <el-input v-model="form.supplyName" placeholder="请填写供应商" />
            </el-form-item>
            <el-form-item label="使用说明" size="default" prop="useMemo">
                <el-input v-model="form.useMemo" placeholder="请填写使用说明" />
            </el-form-item>
            <el-form-item label="是否检查" size="default" prop="isNeedCheck">
                <el-select v-model="form.isNeedCheck" placeholder="请选择" style="width: 100%">
                    <el-option label="是" :value="1" />
                    <el-option label="否" :value="2" />
                </el-select>
            </el-form-item>
            <el-form-item label="检查周期" size="default" prop="checkCycle">
                <el-input v-model="form.checkCycle" placeholder="请填写检查周期" />
            </el-form-item>
            <el-form-item label="检查提前提醒" size="default" prop="checkWarn">
                <el-input v-model="form.checkWarn" placeholder="请填写检查提前提醒" />
            </el-form-item>
            <el-form-item label="是否检测" size="default" prop="isNeedTest">
                <el-select v-model="form.isNeedTest" placeholder="请选择" style="width: 100%">
                    <el-option label="是" :value="1" />
                    <el-option label="否" :value="2" />
                </el-select>
            </el-form-item>
            <el-form-item label="检测周期" size="default" prop="testCycle">
                <el-input v-model="form.testCycle" placeholder="请填写检测周期" />
            </el-form-item>
            <el-form-item label="检测提前提醒" size="default" prop="testWarn">
                <el-input v-model="form.testWarn" placeholder="请填写检测提前提醒" />
            </el-form-item>
            <el-form-item label="是否保养" size="default" prop="isNeedTakecare">
                <el-select v-model="form.isNeedTakecare" placeholder="请选择" style="width: 100%">
                    <el-option label="是" :value="1" />
                    <el-option label="否" :value="2" />
                </el-select>
            </el-form-item>
            <el-form-item label="检查内容" size="default" prop="checkContent">
                <el-input v-model="form.checkContent" placeholder="请填写检查内容" />
            </el-form-item>
            <el-form-item label="负责部门" size="default" prop="leadingDepartmentId">
                <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" prop="checkPoint">
                <el-input v-model="form.checkPoint" placeholder="请填写检查指标" />
            </el-form-item>
            <el-form-item label="预警值" size="default" prop="alertNum">
                <el-input v-model="form.alertNum" placeholder="请填写预警值" />
            </el-form-item>
            <el-form-item label="联锁值" size="default" prop="lockNum">
                <el-input v-model="form.lockNum" placeholder="请填写联锁值" />
            </el-form-item>
            <el-form-item label="停用理由" size="default" prop="stopReason">
                <el-input v-model="form.stopReason" placeholder="请填写停用理由" />
            </el-form-item>
            <el-form-item label="停用后措施" size="default" prop="afterStopStep">
                <el-input v-model="form.afterStopStep" placeholder="请填写停用后措施" />
            </el-form-item>
            <el-form-item label="实际停用日期" size="default" prop="actualStopDate">
                <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" prop="stopSubmitPersonName">
                <el-input v-model="form.stopSubmitPersonName" placeholder="请选择">
                    <template #append>
                        <el-button :icon="Search" @click="openUser(2)"></el-button>
                    </template>
                </el-input>
            </el-form-item>
            <el-form-item label="停用提交日期" size="default" prop="stopSubmitDate">
                <el-date-picker v-model="form.stopSubmitDate" format="YYYY-MM-DD HH:mm:ss" type="datetime" placeholder="选择日期时间" style="width: 100%" />
            </el-form-item>
            <el-form-item label="恢复理由" size="default" prop="recoveryReason">
                <el-input v-model="form.recoveryReason" placeholder="请填写恢复理由" />
            </el-form-item>
            <el-form-item label="恢复填报日期" size="default" prop="recoverySubmitDate">
                <el-date-picker
                    v-model="form.recoverySubmitDate"
                    format="YYYY-MM-DD HH:mm:ss"
                    type="datetime"
                    placeholder="选择日期时间"
                    style="width: 100%"
                />
            </el-form-item>
            <el-form-item label="实际恢复日期" size="default" prop="actualRecoveryDate">
                <el-date-picker
                    v-model="form.actualRecoveryDate"
                    format="YYYY-MM-DD HH:mm:ss"
                    type="datetime"
                    placeholder="选择日期时间"
                    style="width: 100%"
                />
            </el-form-item>
            <el-form-item label="报废理由" size="default" prop="destoryReason">
                <el-input v-model="form.destoryReason" placeholder="请填写报废理由" />
            </el-form-item>
            <el-form-item label="报废填报日期" size="default" prop="destorySubmitDate">
                <el-date-picker
                    v-model="form.destorySubmitDate"
                    format="YYYY-MM-DD HH:mm:ss"
                    type="datetime"
                    placeholder="选择日期时间"
                    style="width: 100%"
                />
            </el-form-item>
            <el-form-item label="实际报废日期" size="default" prop="actualDestoryDate">
                <el-date-picker
                    v-model="form.actualDestoryDate"
                    format="YYYY-MM-DD HH:mm:ss"
                    type="datetime"
                    placeholder="选择日期时间"
                    style="width: 100%"
                />
            </el-form-item>
        </el-form>
        <el-tabs v-model="activeName" class="demo-tabs">
            <el-tab-pane label="设备保养" name="first">
                <el-button type="primary" size="default" :disabled="disabled" @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="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">
                            <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" size="default" :disabled="disabled" @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" :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="检测结果" />
                    <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" size="default" :disabled="disabled" @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" :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>
                            <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" size="default" :disabled="disabled" @click="openStandard('新增', '')">新增</el-button>
                <el-table :data="form.checkStandardeDetailList" style="width: 100%">
                    <el-table-column align="center" prop="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="巡检记录" size="default" name="five">
                <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="任务名称" />
                    <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>
            <el-tab-pane label="保养维修标准" name="six" v-if="Dailogtype">
                <el-upload
                    v-model:file-list="fileList"
                    class="upload-demo"
                    action="https://run.mocky.io/v3/9d059bf9-4660-45f2-925d-ce80ad6c4d15"
                    multiple
                    :on-preview="handlePreview"
                    :on-remove="handleRemove"
                    :before-remove="beforeRemove"
                    :limit="3"
                    :on-exceed="handleExceed"
                >
                    <el-button type="primary">点击上传</el-button>
                    <template #tip>
                        <div class="el-upload__tip"></div>
                    </template>
                </el-upload>
            </el-tab-pane>
        </el-tabs>
        <template #footer>
            <span class="dialog-footer">
                <el-button @click="resetForm(ruleFormRef)">关闭</el-button>
                <el-button type="primary" @click="submitForm(ruleFormRef)">确定</el-button>
            </span>
    </template>
  </el-dialog>
  <categoryDailog ref="categoryShow"></categoryDailog>
  <categoryDailog ref="categoryShow" @typeId="Tid"></categoryDailog>
  <regionDailog ref="regionShow"></regionDailog>
  <DailogSearchUser ref="UserShow" @SearchUser="userId"></DailogSearchUser>
  <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>
    </el-dialog>
    <categoryDailog ref="categoryShow"></categoryDailog>
    <categoryDailog ref="categoryShow" @typeId="Tid"></categoryDailog>
    <regionDailog ref="regionShow"></regionDailog>
    <DailogSearchUser ref="UserShow" @SearchUser="userId"></DailogSearchUser>
    <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';
@@ -357,489 +357,497 @@
import type { UploadProps, UploadUserFile } from 'element-plus';
import { facilityManagementApi } from '/@/api/facilityManagement';
import { goalManagementApi } from '/@/api/goalManagement';
import {deepClone} from '/@/utils/other'
import { deepClone } from '/@/utils/other';
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: '',
    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: '',
            qUsage: '',
      departmentId: '',
            departmentId: '',
      produceTime: '',
            produceTime: '',
      actualStopDate: '',
            actualStopDate: '',
      takecareDetailList: [],
            takecareDetailList: [],
      infoType: '',
            infoType: '',
      leadingDepartmentId: '',
            leadingDepartmentId: '',
      useEndDay: '',
            useEndDay: '',
      previousTakecareDate: '',
            previousTakecareDate: '',
      previousCheckDate: '',
            previousCheckDate: '',
      model: '',
            model: '',
      stopStatus: '',
            stopStatus: '',
      testWarn: '',
            testWarn: '',
      stopSubmitDate: '',
            stopSubmitDate: '',
      repairStatus: '',
            repairStatus: '',
      takecareStardardeDetailList: [
        {
          filePath: '123',
        },
      ],
            takecareStardardeDetailList: [
                {
                    filePath: '123',
                },
            ],
      nextCheckDate: '',
            nextCheckDate: '',
      checkCycle: '',
            checkCycle: '',
      checkPoint: '',
            checkPoint: '',
      leadingPersonId: '',
      leadingPersonName: '',
            leadingPersonId: '',
            leadingPersonName: '',
      qName: '',
            qName: '',
      nextTakecareDate: '',
            nextTakecareDate: '',
      setPart: '',
            setPart: '',
      checkStandardeDetailList: [],
            checkStandardeDetailList: [],
      actualDestoryDate: '',
            actualDestoryDate: '',
      isNeedTest: '',
            isNeedTest: '',
      alertNum: '',
            alertNum: '',
      checkContent: '',
            checkContent: '',
      useMemo: '',
            useMemo: '',
      previousTestDate: '',
            previousTestDate: '',
      isNeedTakecare: '',
            isNeedTakecare: '',
      destoryReason: '',
            destoryReason: '',
      checkDetailList: [],
            checkDetailList: [],
      positionNum: '',
            positionNum: '',
      testCycle: '',
            testCycle: '',
      recoveryReason: '',
            recoveryReason: '',
      isNeedCheck: '',
            isNeedCheck: '',
      actualRecoveryDate: '',
            actualRecoveryDate: '',
      leadingPersonDepartmentId: '',
            leadingPersonDepartmentId: '',
      stopReason: '',
            stopReason: '',
      destorySubmitDate: '',
            destorySubmitDate: '',
      testDetailList: [],
            testDetailList: [],
      checkWarn: '',
            checkWarn: '',
      repaireDetailList: [],
            repaireDetailList: [],
      equipmentTypeId: "",
      equipmentTypeName:"",
            equipmentTypeId: '',
      useDate: '',
            useDate: '',
      recoverySubmitDate: '',
            recoverySubmitDate: '',
      lockNum: '',
            lockNum: '',
      stopSubmitPersonId: '',
      stopSubmitPersonName: '',
      afterStopStep: '',
            stopSubmitPersonId: '',
            stopSubmitPersonName: '',
            afterStopStep: '',
      lifeCycle: '',
            lifeCycle: '',
      delCheckStandardeDetails: '',
            delCheckStandardeDetails: '',
      delTakecareStardardeDetails: '',
            delTakecareStardardeDetails: '',
      delTakecareDetails: '',
            delTakecareDetails: '',
      delRepaireDetails: '',
            delRepaireDetails: '',
      delTestDetails: '',
    });
    const titles = ref();
    const disabled = ref(false);
    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}仪表信息`;
        form.value.infoType = num;
      } else if (num == 1) {
        titles.value = `${title}设备设施`;
        form.value.infoType = num;
      } else if (num == 2) {
        titles.value = `${title}设备设施`;
        form.value.infoType = num;
      }
            delTestDetails: '',
        });
        const titles = ref();
        const titleT = ref();
        const disabled = ref(false);
        const Dailogtype = ref(false);
        const openDailog = (title: string, type: boolean, id: number, num: any) => {
            dialogVisible.value = true;
            titleT.value = title;
            department();
            Dailogtype.value = type;
            if (num == 0) {
                titles.value = `${title}仪表信息`;
                form.value.infoType = num;
            } else if (num == 1) {
                titles.value = `${title}设备设施`;
                form.value.infoType = num;
            } else if (num == 2) {
                titles.value = `${title}设备设施`;
                form.value.infoType = num;
            }
      disabled.value = title == '查看' ? true : false;
      if (title == '查看' || title == '修改')
        facilityManagementApi()
            .getequipmentInfoDetail(id)
            .then((res) => {
              if (res.data.code == 200) {
                form.value = res.data.data;
              } else {
                ElMessage.error(res.data.msg);
              }
            });
    };
    const rules = reactive<FormRules>({
      qName: [],
      positionNum: [],
      qUsage: [],
      model: [],
      equipmentTypeId: [],
      equipmentTypeName:[],
      departmentId: [],
      setPart: [],
      produceTime: [],
      useEndDay: [],
      lifeCycle: [],
      useDate: [],
      repairStatus: [],
      stopStatus: [],
      previousCheckDate: [],
      previousTestDate: [],
      previousTakecareDate: [],
      nextCheckDate: [],
      nextTestDate: [],
      nextTakecareDate: [],
      leadingPersonName: [],
      leadingPersonDepartmentId: [],
      supplyName: [],
      useMemo: [],
      isNeedCheck: [],
      checkCycle: [],
      checkWarn: [],
      isNeedTest: [],
      testCycle: [],
      testWarn: [],
      isNeedTakecare: [],
      checkContent: [],
      leadingDepartmentId: [],
      checkPoint: [],
      alertNum: [],
      lockNum: [],
      stopReason: [],
      afterStopStep: [],
      actualStopDate: [],
      stopSubmitPersonName: [],
      stopSubmitDate: [],
      recoveryReason: [],
      recoverySubmitDate: [],
      actualRecoveryDate: [],
      destoryReason: [],
      destorySubmitDate: [],
      actualDestoryDate: [],
    });
    // 提交
    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);
                }
              });
        }
      });
      formEl.resetFields();
      form.value.takecareDetailList = [];
      form.value.testDetailList = [];
      form.value.repaireDetailList = [];
      form.value.checkStandardeDetailList = [];
    };
    //   取消
    const resetForm = (formEl: FormInstance | undefined) => {
      if (!formEl) return;
      formEl.resetFields();
      form.value.takecareDetailList = [];
      form.value.testDetailList = [];
      form.value.repaireDetailList = [];
      form.value.checkStandardeDetailList = [];
      dialogVisible.value = false;
    };
    const activeName = ref('first');
    const index = ref<any>();
    const categoryShow = ref();
    const opencategory = () => {
      categoryShow.value.openDailog();
    };
    const regionShow = ref();
    const openRegion = () => {
      regionShow.value.openDailog();
    };
    const UserShow = ref();
    const openUser = (type: any) => {
      UserShow.value.openDailog(type);
    };
    const maintenanceShow = ref();
    const openMaintenance = (title: string, data: any) => {
      index.value = form.value.takecareDetailList.indexOf(data);
      maintenanceShow.value.openDailog(title, data);
    };
    const detectShow = ref();
    const openDetect = (title: string, data: any) => {
      index.value = form.value.testDetailList.indexOf(data);
      detectShow.value.openDailog(title, data);
    };
    const repairShow = ref();
    const openRepair = (title: string, data: any) => {
      index.value = form.value.repaireDetailList.indexOf(data);
      repairShow.value.openDailog(title, data);
    };
    const standardShow = ref();
    const openStandard = (title: string, data: any) => {
      index.value = form.value.checkStandardeDetailList.indexOf(data);
      standardShow.value.openDailog(title, data);
    };
    // 上传
    const fileList = ref<UploadUserFile[]>([
      {
        name: 'element-plus-logo.svg',
        url: 'https://element-plus.org/images/element-plus-logo.svg',
      },
      {
        name: 'element-plus-logo2.svg',
        url: 'https://element-plus.org/images/element-plus-logo.svg',
      },
    ]);
            disabled.value = title == '查看' ? true : false;
            if (title == '查看' || title == '修改')
                facilityManagementApi()
                    .getequipmentInfoDetail(id)
                    .then((res) => {
                        if (res.data.code == 200) {
                            form.value = res.data.data;
                        } else {
                            ElMessage.error(res.data.msg);
                        }
                    });
        };
        const rules = reactive<FormRules>({
            qName: [],
            positionNum: [],
            qUsage: [],
            model: [],
            equipmentTypeId: [],
            equipmentTypeName: [],
            departmentId: [],
            setPart: [],
            produceTime: [],
            useEndDay: [],
            lifeCycle: [],
            useDate: [],
            repairStatus: [],
            stopStatus: [],
            previousCheckDate: [],
            previousTestDate: [],
            previousTakecareDate: [],
            nextCheckDate: [],
            nextTestDate: [],
            nextTakecareDate: [],
            leadingPersonName: [],
            leadingPersonDepartmentId: [],
            supplyName: [],
            useMemo: [],
            isNeedCheck: [],
            checkCycle: [],
            checkWarn: [],
            isNeedTest: [],
            testCycle: [],
            testWarn: [],
            isNeedTakecare: [],
            checkContent: [],
            leadingDepartmentId: [],
            checkPoint: [],
            alertNum: [],
            lockNum: [],
            stopReason: [],
            afterStopStep: [],
            actualStopDate: [],
            stopSubmitPersonName: [],
            stopSubmitDate: [],
            recoveryReason: [],
            recoverySubmitDate: [],
            actualRecoveryDate: [],
            destoryReason: [],
            destorySubmitDate: [],
            actualDestoryDate: [],
        });
        // 提交
        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;
                    delete form.value.equipmentTypeName;
                    delete form.value.departmentName;
                    delete form.value.leadingPersonDepartmentName;
                    delete form.value.leadingDepartmentName;
                    if (titleT.value == '新建') {
                        delete form.value.id;
                    }
                    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);
                            }
                        });
                }
            });
            formEl.resetFields();
            form.value.takecareDetailList = [];
            form.value.testDetailList = [];
            form.value.repaireDetailList = [];
            form.value.checkStandardeDetailList = [];
        };
        //   取消
        const resetForm = (formEl: FormInstance | undefined) => {
            if (!formEl) return;
            formEl.resetFields();
            form.value.takecareDetailList = [];
            form.value.testDetailList = [];
            form.value.repaireDetailList = [];
            form.value.checkStandardeDetailList = [];
            dialogVisible.value = false;
        };
        const activeName = ref('first');
        const index = ref<any>();
        const categoryShow = ref();
        const opencategory = () => {
            categoryShow.value.openDailog();
        };
        const regionShow = ref();
        const openRegion = () => {
            regionShow.value.openDailog();
        };
        const UserShow = ref();
        const openUser = (type: any) => {
            UserShow.value.openDailog(type);
        };
        const maintenanceShow = ref();
        const openMaintenance = (title: string, data: any) => {
            index.value = form.value.takecareDetailList.indexOf(data);
            maintenanceShow.value.openDailog(title, data);
        };
        const detectShow = ref();
        const openDetect = (title: string, data: any) => {
            index.value = form.value.testDetailList.indexOf(data);
            detectShow.value.openDailog(title, data);
        };
        const repairShow = ref();
        const openRepair = (title: string, data: any) => {
            index.value = form.value.repaireDetailList.indexOf(data);
            repairShow.value.openDailog(title, data);
        };
        const standardShow = ref();
        const openStandard = (title: string, data: any) => {
            index.value = form.value.checkStandardeDetailList.indexOf(data);
            standardShow.value.openDailog(title, data);
        };
        // 上传
        const fileList = ref<UploadUserFile[]>([
            {
                name: 'element-plus-logo.svg',
                url: 'https://element-plus.org/images/element-plus-logo.svg',
            },
            {
                name: 'element-plus-logo2.svg',
                url: 'https://element-plus.org/images/element-plus-logo.svg',
            },
        ]);
    const handleRemove: UploadProps['onRemove'] = (file, uploadFiles) => {
      console.log(file, uploadFiles);
    };
        const handleRemove: UploadProps['onRemove'] = (file, uploadFiles) => {
            console.log(file, uploadFiles);
        };
    const handlePreview: UploadProps['onPreview'] = (uploadFile) => {
      console.log(uploadFile);
    };
        const handlePreview: UploadProps['onPreview'] = (uploadFile) => {
            console.log(uploadFile);
        };
    const handleExceed: UploadProps['onExceed'] = (files, uploadFiles) => {
      ElMessage.warning(`The limit is 3, you selected ${files.length} files this time, add up to ${files.length + uploadFiles.length} totally`);
    };
        const handleExceed: UploadProps['onExceed'] = (files, uploadFiles) => {
            ElMessage.warning(`The limit is 3, you selected ${files.length} files this time, add up to ${files.length + uploadFiles.length} totally`);
        };
    const beforeRemove: UploadProps['beforeRemove'] = (uploadFile, uploadFiles) => {
      return ElMessageBox.confirm(`Cancel the transfert of ${uploadFile.name} ?`).then(
          () => true,
          () => 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 = (data: any) => {
      let val=deepClone(data)
      if (index.value == -1) {
        form.value.takecareDetailList.push(val);
      } else {
        form.value.takecareDetailList[index.value] = val;
      }
    };
    const delect = (data: any) => {
      let val=deepClone(data)
      if (index.value == -1) {
        form.value.testDetailList.push(val);
      } else {
        form.value.testDetailList[index.value] = val;
      }
    };
    const Repair = (data: any) => {
      let val=deepClone(data)
      if (index.value == -1) {
        form.value.repaireDetailList.push(val);
      } else {
        form.value.repaireDetailList[index.value] = val;
      }
    };
    const Stand = (data: any) => {
      let val=deepClone(data)
      if (index.value == -1) {
        form.value.checkStandardeDetailList.push(val);
      } else {
        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 Tid=(data:any)=>{
      form.value.equipmentTypeId=data.id
      form.value.equipmentTypeName=data.typeName
      form.value.positionNum=data.sortNum
    }
    //全屏
    const full = ref(false);
    const toggleFullscreen = () => {
      if (full.value == false) {
        full.value = true;
      } else {
        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 {
      Tid,
      deepClone,
      rules,
      userId,
      department,
      propse,
      data,
      deleteAId,
      deleteBId,
      deleteCId,
      deleteDId,
      deleteA,
      deleteB,
      deleteC,
      deleteD,
      main,
      index,
      delect,
      Repair,
      Stand,
      resetForm,
      submitForm,
      titles,
      dialogVisible,
      disabled,
      Dailogtype,
      form,
      openDailog,
      Search,
      activeName,
      categoryShow,
      opencategory,
      regionShow,
      openRegion,
      UserShow,
      openUser,
      maintenanceShow,
      openMaintenance,
      detectShow,
      openDetect,
      repairShow,
      openRepair,
      standardShow,
      openStandard,
      fileList,
      handleRemove,
      handlePreview,
      handleExceed,
      beforeRemove,
      full,
      toggleFullscreen,
      FullScreen,
      timeDate,
      ruleFormRef,
    };
  },
        const beforeRemove: UploadProps['beforeRemove'] = (uploadFile, uploadFiles) => {
            return ElMessageBox.confirm(`Cancel the transfert of ${uploadFile.name} ?`).then(
                () => true,
                () => 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 = (data: any) => {
            let val = deepClone(data);
            if (index.value == -1) {
                form.value.takecareDetailList.push(val);
            } else {
                form.value.takecareDetailList[index.value] = val;
            }
        };
        const delect = (data: any) => {
            let val = deepClone(data);
            if (index.value == -1) {
                form.value.testDetailList.push(val);
            } else {
                form.value.testDetailList[index.value] = val;
            }
        };
        const Repair = (data: any) => {
            let val = deepClone(data);
            if (index.value == -1) {
                form.value.repaireDetailList.push(val);
            } else {
                form.value.repaireDetailList[index.value] = val;
            }
        };
        const Stand = (data: any) => {
            let val = deepClone(data);
            if (index.value == -1) {
                form.value.checkStandardeDetailList.push(val);
            } else {
                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 Tid = (data: any) => {
            form.value.equipmentTypeId = data.id;
            form.value.equipmentTypeName = data.typeName;
            form.value.positionNum = data.sortNum;
        };
        //全屏
        const full = ref(false);
        const toggleFullscreen = () => {
            if (full.value == false) {
                full.value = true;
            } else {
                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 {
            Tid,
            deepClone,
            rules,
            userId,
            department,
            propse,
            data,
            deleteAId,
            deleteBId,
            deleteCId,
            deleteDId,
            deleteA,
            deleteB,
            deleteC,
            deleteD,
            main,
            index,
            delect,
            Repair,
            Stand,
            resetForm,
            submitForm,
            titles,
            dialogVisible,
            disabled,
            Dailogtype,
            form,
            openDailog,
            Search,
            activeName,
            categoryShow,
            opencategory,
            regionShow,
            openRegion,
            UserShow,
            openUser,
            maintenanceShow,
            openMaintenance,
            detectShow,
            openDetect,
            repairShow,
            openRepair,
            standardShow,
            openStandard,
            fileList,
            handleRemove,
            handlePreview,
            handleExceed,
            beforeRemove,
            full,
            toggleFullscreen,
            FullScreen,
            timeDate,
            ruleFormRef,
        };
    },
});
</script>
<style scoped>
.el-form-item {
  width: 400px;
    width: 400px;
}
.formType:after {
  content: '';
  width: 400px;
    content: '';
    width: 400px;
}
.formType {
  padding: 20px 20px;
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
    padding: 20px 20px;
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
}
.el-form .el-form-item:last-of-type {
  margin-bottom: 22px !important;
    margin-bottom: 22px !important;
}
</style>
src/views/facilityManagement/deviceType/component/Dailog.vue
@@ -6,14 +6,14 @@
                <el-col :span="11">
                    <el-form-item label="是否为设备内容" size="default" prop="isContent">
                        <el-select v-model="form.isContent" placeholder="请选择" style="width: 100%">
                            <el-option label="是" value="1" />
                            <el-option label="否" value="2" />
                            <el-option label="是" :value="1" />
                            <el-option label="否" :value="2" />
                        </el-select>
                    </el-form-item>
                </el-col>
                <el-col :span="11" :offset="2">
                    <el-form-item label="父级编号" size="default" prop="parentId">
                        <el-tree-select clearable check-strictly="true" v-model="form.parentId"  :data="data" :props="propst" class="w100" placeholder="请选择" />
                        <el-tree-select clearable check-strictly="true" v-model="form.parentId" :data="data" :props="propst" class="w100" placeholder="请选择" />
                    </el-form-item>
                </el-col>
            </el-row>
@@ -51,16 +51,18 @@
        const form = ref({
            isContent: '', ////是否为设备内容  1:是 2:否
            typeName: '', ////类别名称
            parentId: "", ////父级ID,如果没有父级,为0
            parentId: '', ////父级ID,如果没有父级,为0
            isCheck: 0, ////是否检测  1:是 2:否
            isVisit: 0, ////是否巡检 1:是 2:否
            sortNum: '', //排列序列
            id: '', //设备类型ID ,更新时必填
            // id: '', //设备类型ID ,更新时必填
        });
        const titles = ref();
        const titleT = ref();
        const disabled = ref(false);
        const openDailog = (title: string, id: number) => {
            listApi();
            titleT.value = title;
            dialogVisible.value = true;
            titles.value = `${title}设备设施类型管理`;
            if (title == '查看') {
@@ -69,7 +71,7 @@
            } else if (title == '修改') {
                detail(id);
            } else if (title == '添加') {
                 form.value.parentId=id
                form.value.parentId = id;
            }
        };
        const detail = (id: number) => {
@@ -123,6 +125,9 @@
            if (!formEl) return;
            await formEl.validate((valid, fields) => {
                if (valid) {
                    if (titleT.value == '新建') {
                        delete form.value.id;
                    }
                    facilityManagementApi()
                        .getequipmentTypeMngAddOrUpdate(form.value)
                        .then((res) => {
@@ -163,6 +168,7 @@
            }
        };
        return {
            titleT,
            detail,
            rules,
            ruleFormRef,