马宇豪
2025-03-12 de5e674a5655cd5c8d5457d1be8182519625d265
修改
已修改10个文件
1776 ■■■■■ 文件已修改
src/api/analyse/plan/index.ts 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/analyse/evaluate/index.vue 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/analyse/identify/components/identifyDialog.vue 1226 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/analyse/identify/components/identifyQuery.vue 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/analyse/identify/index.ts 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/analyse/identify/index.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/analyse/plan/components/planDialog.vue 468 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/analyse/plan/index.ts 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/analyse/plan/index.vue 37 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/analyse/record/index.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/analyse/plan/index.ts
@@ -76,7 +76,7 @@
        reSendJob: (params: object)=>{
            return request({
                url: import.meta.env.VITE_API_URL + '/risk/update/appoint',
                url: import.meta.env.VITE_API_URL + '/risk/update/appointNew',
                method: 'post',
                data: params
            });
src/views/analyse/evaluate/index.vue
@@ -109,8 +109,8 @@
                        </el-table-column>
                        <el-table-column label="操作" width="250">
                          <template #default="scope">
                            <el-button size="small" v-if="scope.row.planExecStatus===3 && scope.row.evaluateUserId == evaluateState.user" text type="primary" :icon="DocumentChecked" @click="accessEvaluate(scope.row)">提交</el-button>
                            <el-button size="small" v-if="scope.row.planExecStatus===3 && scope.row.evaluateUserId == evaluateState.user" text type="primary" :icon="Edit" @click="openEvaluate(scope.row)">评价</el-button>
                            <el-button size="small" v-if="scope.row.planExecStatus===3 && scope.row.evaluateUsers?.find(i=>i.evaluateUserId== evaluateState.user)" text type="primary" :icon="DocumentChecked" @click="accessEvaluate(scope.row)">提交</el-button>
                            <el-button size="small" v-if="scope.row.planExecStatus===3 && scope.row.evaluateUsers?.find(i=>i.evaluateUserId== evaluateState.user)" text type="primary" :icon="Edit" @click="openEvaluate(scope.row)">评价</el-button>
                            <el-button size="small" v-if="scope.row.planExecStatus===4" text :icon="View" type="primary" @click="openEvaluate(scope.row)">查看评价</el-button>
                          </template>
                        </el-table-column>
@@ -155,7 +155,7 @@
            <el-table-column v-if="evaluateState.currentEvalute.identificationMethod == 5" prop="analogyResult" label="可能存在后果" show-overflow-tooltip align="center"></el-table-column>
            <el-table-column label="操作">
              <template #default="scope">
                <el-button size="small" v-if="evaluateState.currentEvalute.planExecStatus === 3 && evaluateState.currentEvalute.evaluateUserId == evaluateState.user" text type="primary" :icon="Plus" @click="openEvaluateDialog('评价', scope.row)">评价</el-button>
                <el-button size="small" v-if="evaluateState.currentEvalute.planExecStatus === 3 && evaluateState.currentEvalute.evaluateUsers?.find(i=>i.evaluateUserId== evaluateState.user)" text type="primary" :icon="Plus" @click="openEvaluateDialog('评价', scope.row)">评价</el-button>
                <el-button size="small" v-if="scope.row.riskValue" text type="primary" :icon="View" @click="openEvaluateDialog('查看', scope.row)">查看</el-button>
              </template>
            </el-table-column>
src/views/analyse/identify/components/identifyDialog.vue
@@ -1,510 +1,780 @@
<template>
    <div class="system-menu-dialog-container">
        <el-dialog :title="identifyDialogState.title" v-model="identifyDialogState.identifyDialogVisible" width="600px">
            <el-form ref="identifyFormRef" :rules="identifyDialogState.identifyFormRules" :model="identifyDialogState.identifyForm" size="default" label-width="160px">
                <el-row :gutter="35">
<!--                    <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">-->
<!--                        <el-form-item label="辨识方法" prop="identificationMethod">-->
<!--                            <el-select class="input-length" :disabled="true" v-model="identifyDialogState.identifyForm.identificationMethod" style="width:100%" placeholder="辨识方法" clearable>-->
<!--                                <el-option v-for="item in identifyDialogState.identificationMethodList" :key="item.id" :label="item.name" :value="item.id"></el-option>-->
<!--                            </el-select>-->
<!--                        </el-form-item>-->
<!--                    </el-col>-->
  <div class="system-menu-dialog-container">
    <el-dialog :title="identifyDialogState.title" v-model="identifyDialogState.identifyDialogVisible" width="600px">
      <el-form ref="identifyFormRef" :rules="identifyDialogState.identifyFormRules"
               :model="identifyDialogState.identifyForm" size="default" label-width="160px">
        <el-row :gutter="35">
          <!--                    <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">-->
          <!--                        <el-form-item label="辨识方法" prop="identificationMethod">-->
          <!--                            <el-select class="input-length" :disabled="true" v-model="identifyDialogState.identifyForm.identificationMethod" style="width:100%" placeholder="辨识方法" clearable>-->
          <!--                                <el-option v-for="item in identifyDialogState.identificationMethodList" :key="item.id" :label="item.name" :value="item.id"></el-option>-->
          <!--                            </el-select>-->
          <!--                        </el-form-item>-->
          <!--                    </el-col>-->
                    <div style="width: 100%" v-if="identifyDialogState.method === 1">
                      <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
                        <el-form-item label="PHA_检查项目" prop="phaCheckItem">
                          <el-input class="input-length" :disabled="identifyDialogState.disabled" v-model="identifyDialogState.identifyForm.phaCheckItem" placeholder="检查项目" clearable></el-input>
                        </el-form-item>
                      </el-col>
                      <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
                        <el-form-item label="PHA_存在风险因素" prop="phaRiskFactor">
                          <el-input class="input-length" :disabled="identifyDialogState.disabled" v-model="identifyDialogState.identifyForm.phaRiskFactor" placeholder="存在风险因素" clearable></el-input>
                        </el-form-item>
                      </el-col>
                      <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
                        <el-form-item label="PHA_可能产生的后果" prop="phaResult">
                          <el-input class="input-length" :disabled="identifyDialogState.disabled" v-model="identifyDialogState.identifyForm.phaResult" placeholder="可能产生的后果" clearable></el-input>
                        </el-form-item>
                      </el-col>
                      <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
                        <el-form-item label="分配评价方法">
                          <el-select disabled class="input-length" v-model="identifyDialogState.evaluateMethod" style="width:100%" placeholder="" clearable>
                            <el-option v-for="item in identifyDialogState.evaluateMethodList" :key="item.id" :label="item.name" :value="item.id"></el-option>
                          </el-select>
                        </el-form-item>
                      </el-col>
<!--                      <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">-->
<!--                        <el-form-item label="评价专家" prop="phaEvaluateUser">-->
<!--                          <el-select class="input-length" v-model="identifyDialogState.identifyForm.phaEvaluateUser" style="width:100%" placeholder="" clearable>-->
<!--                            <el-option v-for="item in identifyDialogState.personList" :key="item.id" :label="item.name" :value="item.id"></el-option>-->
<!--                          </el-select>-->
<!--                        </el-form-item>-->
<!--                      </el-col>-->
                      <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
                        <el-form-item label="评价专家">
                          <el-input class="input-length" disabled v-model="identifyDialogState.evaluateUser" placeholder="暂无评价专家" clearable></el-input>
                        </el-form-item>
                      </el-col>
                      <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
                        <el-form-item label="辨识结果" prop="result">
                          <el-radio-group v-model="identifyDialogState.identifyForm.result" :disabled="identifyDialogState.disabled">
                            <el-radio :label="1">有风险</el-radio>
                            <el-radio :label="2">无风险</el-radio>
                          </el-radio-group>
                        </el-form-item>
                      </el-col>
                      <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
                        <el-form-item label="辨识专家建议" prop="identificationDesc">
                          <el-input class="input-length" type="textarea" :autosize="{ minRows: 3}" :disabled="identifyDialogState.disabled" v-model="identifyDialogState.identifyForm.identificationDesc" placeholder="辨识专家建议" clearable></el-input>
                        </el-form-item>
                      </el-col>
                    </div>
          <div style="width: 100%" v-if="identifyDialogState.method === 1">
            <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
              <el-form-item label="PHA_检查项目" prop="phaCheckItem">
                <el-input class="input-length" :disabled="identifyDialogState.disabled"
                          v-model="identifyDialogState.identifyForm.phaCheckItem" placeholder="检查项目"
                          clearable></el-input>
              </el-form-item>
            </el-col>
            <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
              <el-form-item label="PHA_存在风险因素" prop="phaRiskFactor">
                <el-input class="input-length" :disabled="identifyDialogState.disabled"
                          v-model="identifyDialogState.identifyForm.phaRiskFactor" placeholder="存在风险因素"
                          clearable></el-input>
              </el-form-item>
            </el-col>
            <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
              <el-form-item label="PHA_可能产生的后果" prop="phaResult">
                <el-input class="input-length" :disabled="identifyDialogState.disabled"
                          v-model="identifyDialogState.identifyForm.phaResult" placeholder="可能产生的后果"
                          clearable></el-input>
              </el-form-item>
            </el-col>
            <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
              <el-form-item label="分配评价方法">
                <el-select disabled class="input-length" v-model="identifyDialogState.evaluateMethod" style="width:100%"
                           placeholder="" clearable>
                  <el-option v-for="item in identifyDialogState.evaluateMethodList" :key="item.id" :label="item.name"
                             :value="item.id"></el-option>
                </el-select>
              </el-form-item>
            </el-col>
            <!--                      <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">-->
            <!--                        <el-form-item label="评价专家" prop="phaEvaluateUser">-->
            <!--                          <el-select class="input-length" v-model="identifyDialogState.identifyForm.phaEvaluateUser" style="width:100%" placeholder="" clearable>-->
            <!--                            <el-option v-for="item in identifyDialogState.personList" :key="item.id" :label="item.name" :value="item.id"></el-option>-->
            <!--                          </el-select>-->
            <!--                        </el-form-item>-->
            <!--                      </el-col>-->
            <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
              <el-form-item label="评价专家">
                <el-input class="input-length" disabled v-model="identifyDialogState.evaluateUser"
                          placeholder="暂无评价专家" clearable></el-input>
              </el-form-item>
            </el-col>
            <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
              <el-form-item label="辨识结果" prop="result">
                <el-radio-group v-model="identifyDialogState.identifyForm.result"
                                :disabled="identifyDialogState.disabled">
                  <el-radio :label="1">有风险</el-radio>
                  <el-radio :label="2">无风险</el-radio>
                </el-radio-group>
              </el-form-item>
            </el-col>
            <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
              <el-form-item label="辨识专家建议" prop="identificationDesc">
                <el-input class="input-length" type="textarea" :autosize="{ minRows: 3}"
                          :disabled="identifyDialogState.disabled"
                          v-model="identifyDialogState.identifyForm.identificationDesc" placeholder="辨识专家建议"
                          clearable></el-input>
              </el-form-item>
            </el-col>
            <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
              <el-form-item label="附件">
                <el-upload accept="image/*" :action="identifyDialogState.uploadUrl"
                           :disabled="identifyDialogState.disabled"
                           :headers="identifyDialogState.header" method="post" :data="{module: 'identification'}"
                           :on-success="handleAvatarSuccess" :on-exceed="showTip" :on-preview="handlePictureCardPreview"
                           :limit='identifyDialogState.imgLimit' v-model:file-list="identifyDialogState.fileList"
                           list-type="picture-card" :before-upload="picSize" :on-remove="handleRemove"
                           :before-remove="beforeRemove">
                  <el-icon>
                    <Plus/>
                  </el-icon>
                  <template #tip>
                    <div class="el-upload__tip">上传jpg/png图片尺寸小于5M,最多可上传1张</div>
                  </template>
                </el-upload>
              </el-form-item>
            </el-col>
          </div>
                    <div style="width: 100%" v-if="identifyDialogState.method === 2">
                      <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
                        <el-form-item label="JHA_作业步骤" prop="jhaCheckItem">
                          <el-input class="input-length" :disabled="identifyDialogState.disabled" v-model="identifyDialogState.identifyForm.jhaCheckItem" placeholder="作业步骤" clearable></el-input>
                        </el-form-item>
                      </el-col>
                      <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
                        <el-form-item label="JHA_危险源或潜在事件" prop="jhaRiskFactor">
                          <el-input class="input-length" :disabled="identifyDialogState.disabled" v-model="identifyDialogState.identifyForm.jhaRiskFactor" placeholder="危险源或潜在事件" clearable></el-input>
                        </el-form-item>
                      </el-col>
                      <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
                        <el-form-item label="JHA_可能产生的后果" prop="jhaResult">
                          <el-input class="input-length" :disabled="identifyDialogState.disabled" v-model="identifyDialogState.identifyForm.jhaResult" placeholder="可能产生的后果" clearable></el-input>
                        </el-form-item>
                      </el-col>
                      <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
                        <el-form-item label="分配评价方法">
                          <el-select disabled class="input-length" v-model="identifyDialogState.evaluateMethod" style="width:100%" placeholder="" clearable>
                            <el-option v-for="item in identifyDialogState.evaluateMethodList" :key="item.id" :label="item.name" :value="item.id"></el-option>
                          </el-select>
                        </el-form-item>
                      </el-col>
<!--                      <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">-->
<!--                        <el-form-item label="评价专家" prop="jhaEvaluateUser">-->
<!--                          <el-select class="input-length" v-model="identifyDialogState.identifyForm.jhaEvaluateUser" style="width:100%" placeholder="" clearable>-->
<!--                            <el-option v-for="item in identifyDialogState.personList" :key="item.id" :label="item.name" :value="item.id"></el-option>-->
<!--                          </el-select>-->
<!--                        </el-form-item>-->
<!--                      </el-col>-->
                      <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
                        <el-form-item label="评价专家">
                          <el-input class="input-length" disabled v-model="identifyDialogState.evaluateUser" placeholder="暂无评价专家" clearable></el-input>
                        </el-form-item>
                      </el-col>
                      <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
                        <el-form-item label="辨识结果" prop="result">
                          <el-radio-group v-model="identifyDialogState.identifyForm.result" :disabled="identifyDialogState.disabled">
                            <el-radio :label="1">有风险</el-radio>
                            <el-radio :label="2">无风险</el-radio>
                          </el-radio-group>
                        </el-form-item>
                      </el-col>
                      <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
                        <el-form-item label="辨识专家建议" prop="identificationDesc">
                          <el-input class="input-length" type="textarea" :autosize="{ minRows: 3}" :disabled="identifyDialogState.disabled" v-model="identifyDialogState.identifyForm.identificationDesc" placeholder="辨识专家建议" clearable></el-input>
                        </el-form-item>
                      </el-col>
                    </div>
          <div style="width: 100%" v-if="identifyDialogState.method === 2">
            <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
              <el-form-item label="JHA_作业步骤" prop="jhaCheckItem">
                <el-input class="input-length" :disabled="identifyDialogState.disabled"
                          v-model="identifyDialogState.identifyForm.jhaCheckItem" placeholder="作业步骤"
                          clearable></el-input>
              </el-form-item>
            </el-col>
            <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
              <el-form-item label="JHA_危险源或潜在事件" prop="jhaRiskFactor">
                <el-input class="input-length" :disabled="identifyDialogState.disabled"
                          v-model="identifyDialogState.identifyForm.jhaRiskFactor" placeholder="危险源或潜在事件"
                          clearable></el-input>
              </el-form-item>
            </el-col>
            <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
              <el-form-item label="JHA_可能产生的后果" prop="jhaResult">
                <el-input class="input-length" :disabled="identifyDialogState.disabled"
                          v-model="identifyDialogState.identifyForm.jhaResult" placeholder="可能产生的后果"
                          clearable></el-input>
              </el-form-item>
            </el-col>
            <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
              <el-form-item label="分配评价方法">
                <el-select disabled class="input-length" v-model="identifyDialogState.evaluateMethod" style="width:100%"
                           placeholder="" clearable>
                  <el-option v-for="item in identifyDialogState.evaluateMethodList" :key="item.id" :label="item.name"
                             :value="item.id"></el-option>
                </el-select>
              </el-form-item>
            </el-col>
            <!--                      <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">-->
            <!--                        <el-form-item label="评价专家" prop="jhaEvaluateUser">-->
            <!--                          <el-select class="input-length" v-model="identifyDialogState.identifyForm.jhaEvaluateUser" style="width:100%" placeholder="" clearable>-->
            <!--                            <el-option v-for="item in identifyDialogState.personList" :key="item.id" :label="item.name" :value="item.id"></el-option>-->
            <!--                          </el-select>-->
            <!--                        </el-form-item>-->
            <!--                      </el-col>-->
            <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
              <el-form-item label="评价专家">
                <el-input class="input-length" disabled v-model="identifyDialogState.evaluateUser"
                          placeholder="暂无评价专家" clearable></el-input>
              </el-form-item>
            </el-col>
            <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
              <el-form-item label="辨识结果" prop="result">
                <el-radio-group v-model="identifyDialogState.identifyForm.result"
                                :disabled="identifyDialogState.disabled">
                  <el-radio :label="1">有风险</el-radio>
                  <el-radio :label="2">无风险</el-radio>
                </el-radio-group>
              </el-form-item>
            </el-col>
            <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
              <el-form-item label="辨识专家建议" prop="identificationDesc">
                <el-input class="input-length" type="textarea" :autosize="{ minRows: 3}"
                          :disabled="identifyDialogState.disabled"
                          v-model="identifyDialogState.identifyForm.identificationDesc" placeholder="辨识专家建议"
                          clearable></el-input>
              </el-form-item>
            </el-col>
            <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
              <el-form-item label="附件">
                <el-upload accept="image/*" :action="identifyDialogState.uploadUrl"
                           :disabled="identifyDialogState.disabled"
                           :headers="identifyDialogState.header" method="post" :data="{module: 'identification'}"
                           :on-success="handleAvatarSuccess" :on-exceed="showTip" :on-preview="handlePictureCardPreview"
                           :limit='identifyDialogState.imgLimit' v-model:file-list="identifyDialogState.fileList"
                           list-type="picture-card" :before-upload="picSize" :on-remove="handleRemove"
                           :before-remove="beforeRemove">
                  <el-icon>
                    <Plus/>
                  </el-icon>
                  <template #tip>
                    <div class="el-upload__tip">上传jpg/png图片尺寸小于5M,最多可上传1张</div>
                  </template>
                </el-upload>
              </el-form-item>
            </el-col>
          </div>
                    <div style="width: 100%" v-if="identifyDialogState.method === 3">
                      <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
                        <el-form-item label="SCL_检查项目" prop="sclCheckItem">
                          <el-input class="input-length" :disabled="identifyDialogState.disabled" v-model="identifyDialogState.identifyForm.sclCheckItem" placeholder="检查项目" clearable></el-input>
                        </el-form-item>
                      </el-col>
                      <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
                        <el-form-item label="SCL_检查标准" prop="sclCheckStandard">
                          <el-input class="input-length" :disabled="identifyDialogState.disabled" v-model="identifyDialogState.identifyForm.sclCheckStandard" placeholder="检查标准" clearable></el-input>
                        </el-form-item>
                      </el-col>
                      <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
                        <el-form-item label="SCL_不符合标准情况" prop="sclCheckUnstandard">
                          <el-input class="input-length" :disabled="identifyDialogState.disabled" v-model="identifyDialogState.identifyForm.sclCheckUnstandard" placeholder="不符合标准情况" clearable></el-input>
                        </el-form-item>
                      </el-col>
                      <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
                        <el-form-item label="SCL_主要后果" prop="sclCheckResult">
                          <el-input class="input-length" :disabled="identifyDialogState.disabled" v-model="identifyDialogState.identifyForm.sclCheckResult" placeholder="主要后果" clearable></el-input>
                        </el-form-item>
                      </el-col>
                      <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
                        <el-form-item label="分配评价方法">
                          <el-select disabled class="input-length" v-model="identifyDialogState.evaluateMethod" style="width:100%" placeholder="" clearable>
                            <el-option v-for="item in identifyDialogState.evaluateMethodList" :key="item.id" :label="item.name" :value="item.id"></el-option>
                          </el-select>
                        </el-form-item>
                      </el-col>
<!--                      <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">-->
<!--                        <el-form-item label="评价专家" prop="sclEvaluateUser">-->
<!--                          <el-select class="input-length" v-model="identifyDialogState.identifyForm.sclEvaluateUser" style="width:100%" placeholder="" clearable>-->
<!--                            <el-option v-for="item in identifyDialogState.personList" :key="item.id" :label="item.name" :value="item.id"></el-option>-->
<!--                          </el-select>-->
<!--                        </el-form-item>-->
<!--                      </el-col>-->
                      <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
                        <el-form-item label="评价专家">
                          <el-input class="input-length" disabled v-model="identifyDialogState.evaluateUser" placeholder="暂无评价专家" clearable></el-input>
                        </el-form-item>
                      </el-col>
                      <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
                        <el-form-item label="辨识结果" prop="result">
                          <el-radio-group v-model="identifyDialogState.identifyForm.result" :disabled="identifyDialogState.disabled">
                            <el-radio :label="1">有风险</el-radio>
                            <el-radio :label="2">无风险</el-radio>
                          </el-radio-group>
                        </el-form-item>
                      </el-col>
                      <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
                        <el-form-item label="辨识专家建议" prop="identificationDesc">
                          <el-input class="input-length" type="textarea" :autosize="{ minRows: 3}" :disabled="identifyDialogState.disabled" v-model="identifyDialogState.identifyForm.identificationDesc" placeholder="辨识专家建议" clearable></el-input>
                        </el-form-item>
                      </el-col>
                    </div>
          <div style="width: 100%" v-if="identifyDialogState.method === 3">
            <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
              <el-form-item label="SCL_检查项目" prop="sclCheckItem">
                <el-input class="input-length" :disabled="identifyDialogState.disabled"
                          v-model="identifyDialogState.identifyForm.sclCheckItem" placeholder="检查项目"
                          clearable></el-input>
              </el-form-item>
            </el-col>
            <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
              <el-form-item label="SCL_检查标准" prop="sclCheckStandard">
                <el-input class="input-length" :disabled="identifyDialogState.disabled"
                          v-model="identifyDialogState.identifyForm.sclCheckStandard" placeholder="检查标准"
                          clearable></el-input>
              </el-form-item>
            </el-col>
            <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
              <el-form-item label="SCL_不符合标准情况" prop="sclCheckUnstandard">
                <el-input class="input-length" :disabled="identifyDialogState.disabled"
                          v-model="identifyDialogState.identifyForm.sclCheckUnstandard" placeholder="不符合标准情况"
                          clearable></el-input>
              </el-form-item>
            </el-col>
            <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
              <el-form-item label="SCL_主要后果" prop="sclCheckResult">
                <el-input class="input-length" :disabled="identifyDialogState.disabled"
                          v-model="identifyDialogState.identifyForm.sclCheckResult" placeholder="主要后果"
                          clearable></el-input>
              </el-form-item>
            </el-col>
            <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
              <el-form-item label="分配评价方法">
                <el-select disabled class="input-length" v-model="identifyDialogState.evaluateMethod" style="width:100%"
                           placeholder="" clearable>
                  <el-option v-for="item in identifyDialogState.evaluateMethodList" :key="item.id" :label="item.name"
                             :value="item.id"></el-option>
                </el-select>
              </el-form-item>
            </el-col>
            <!--                      <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">-->
            <!--                        <el-form-item label="评价专家" prop="sclEvaluateUser">-->
            <!--                          <el-select class="input-length" v-model="identifyDialogState.identifyForm.sclEvaluateUser" style="width:100%" placeholder="" clearable>-->
            <!--                            <el-option v-for="item in identifyDialogState.personList" :key="item.id" :label="item.name" :value="item.id"></el-option>-->
            <!--                          </el-select>-->
            <!--                        </el-form-item>-->
            <!--                      </el-col>-->
            <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
              <el-form-item label="评价专家">
                <el-input class="input-length" disabled v-model="identifyDialogState.evaluateUser"
                          placeholder="暂无评价专家" clearable></el-input>
              </el-form-item>
            </el-col>
            <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
              <el-form-item label="辨识结果" prop="result">
                <el-radio-group v-model="identifyDialogState.identifyForm.result"
                                :disabled="identifyDialogState.disabled">
                  <el-radio :label="1">有风险</el-radio>
                  <el-radio :label="2">无风险</el-radio>
                </el-radio-group>
              </el-form-item>
            </el-col>
            <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
              <el-form-item label="辨识专家建议" prop="identificationDesc">
                <el-input class="input-length" type="textarea" :autosize="{ minRows: 3}"
                          :disabled="identifyDialogState.disabled"
                          v-model="identifyDialogState.identifyForm.identificationDesc" placeholder="辨识专家建议"
                          clearable></el-input>
              </el-form-item>
            </el-col>
            <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
              <el-form-item label="附件">
                <el-upload accept="image/*" :action="identifyDialogState.uploadUrl"
                           :disabled="identifyDialogState.disabled"
                           :headers="identifyDialogState.header" method="post" :data="{module: 'identification'}"
                           :on-success="handleAvatarSuccess" :on-exceed="showTip" :on-preview="handlePictureCardPreview"
                           :limit='identifyDialogState.imgLimit' v-model:file-list="identifyDialogState.fileList"
                           list-type="picture-card" :before-upload="picSize" :on-remove="handleRemove"
                           :before-remove="beforeRemove">
                  <el-icon>
                    <Plus/>
                  </el-icon>
                  <template #tip>
                    <div class="el-upload__tip">上传jpg/png图片尺寸小于5M,最多可上传1张</div>
                  </template>
                </el-upload>
              </el-form-item>
            </el-col>
          </div>
                    <div style="width: 100%" v-if="identifyDialogState.method === 4">
                      <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
                        <el-form-item label="HAZOP_节点" prop="hazopNode">
                          <el-input class="input-length" :disabled="identifyDialogState.disabled" v-model="identifyDialogState.identifyForm.hazopNode" placeholder="HAZOP_节点" clearable></el-input>
                        </el-form-item>
                      </el-col>
                      <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
                        <el-form-item label="HAZOP_参数" prop="hazopParam">
                          <el-input class="input-length" :disabled="identifyDialogState.disabled" v-model="identifyDialogState.identifyForm.hazopParam" placeholder="HAZOP_参数" clearable></el-input>
                        </el-form-item>
                      </el-col>
                      <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
                        <el-form-item label="HAZOP_参数描述" prop="hazopParamDesc">
                          <el-input class="input-length" :disabled="identifyDialogState.disabled" v-model="identifyDialogState.identifyForm.hazopParamDesc" placeholder="HAZOP_参数描述" clearable></el-input>
                        </el-form-item>
                      </el-col>
                      <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
                        <el-form-item label="HAZOP_引导词" prop="hazopGuide">
                          <el-input class="input-length" :disabled="identifyDialogState.disabled" v-model="identifyDialogState.identifyForm.hazopGuide" placeholder="HAZOP_引导词" clearable></el-input>
                        </el-form-item>
                      </el-col>
                      <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
                        <el-form-item label="HAZOP_偏差" prop="hazopDeviation">
                          <el-input class="input-length" :disabled="identifyDialogState.disabled" v-model="identifyDialogState.identifyForm.hazopDeviation" placeholder="HAZOP_偏差" clearable></el-input>
                        </el-form-item>
                      </el-col>
                      <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
                        <el-form-item label="HAZOP_可能原因" prop="hazopPossibleCauses">
                          <el-input class="input-length" :disabled="identifyDialogState.disabled" v-model="identifyDialogState.identifyForm.hazopPossibleCauses" placeholder="HAZOP_可能原因" clearable></el-input>
                        </el-form-item>
                      </el-col>
                      <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
                        <el-form-item label="HAZOP_主要后果" prop="hazopResult">
                          <el-input class="input-length" :disabled="identifyDialogState.disabled" v-model="identifyDialogState.identifyForm.hazopResult" placeholder="HAZOP_主要后果" clearable></el-input>
                        </el-form-item>
                      </el-col>
                      <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
                        <el-form-item label="分配评价方法">
                          <el-select disabled class="input-length" v-model="identifyDialogState.evaluateMethod" style="width:100%" placeholder="" clearable>
                            <el-option v-for="item in identifyDialogState.evaluateMethodList" :key="item.id" :label="item.name" :value="item.id"></el-option>
                          </el-select>
                        </el-form-item>
                      </el-col>
<!--                      <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">-->
<!--                        <el-form-item label="评价专家" prop="hazopEvaluateUser">-->
<!--                          <el-select class="input-length" v-model="identifyDialogState.identifyForm.hazopEvaluateUser" style="width:100%" placeholder="" clearable>-->
<!--                            <el-option v-for="item in identifyDialogState.personList" :key="item.id" :label="item.name" :value="item.id"></el-option>-->
<!--                          </el-select>-->
<!--                        </el-form-item>-->
<!--                      </el-col>-->
                      <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
                        <el-form-item label="评价专家">
                          <el-input class="input-length" disabled v-model="identifyDialogState.evaluateUser" placeholder="暂无评价专家" clearable></el-input>
                        </el-form-item>
                      </el-col>
                      <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
                        <el-form-item label="辨识结果" prop="result">
                          <el-radio-group v-model="identifyDialogState.identifyForm.result" :disabled="identifyDialogState.disabled">
                            <el-radio :label="1">有风险</el-radio>
                            <el-radio :label="2">无风险</el-radio>
                          </el-radio-group>
                        </el-form-item>
                      </el-col>
                      <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
                        <el-form-item label="辨识专家建议" prop="identificationDesc">
                          <el-input class="input-length" type="textarea" :autosize="{ minRows: 3}" :disabled="identifyDialogState.disabled" v-model="identifyDialogState.identifyForm.identificationDesc" placeholder="辨识专家建议" clearable></el-input>
                        </el-form-item>
                      </el-col>
                    </div>
          <div style="width: 100%" v-if="identifyDialogState.method === 4">
            <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
              <el-form-item label="HAZOP_节点" prop="hazopNode">
                <el-input class="input-length" :disabled="identifyDialogState.disabled"
                          v-model="identifyDialogState.identifyForm.hazopNode" placeholder="HAZOP_节点"
                          clearable></el-input>
              </el-form-item>
            </el-col>
            <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
              <el-form-item label="HAZOP_参数" prop="hazopParam">
                <el-input class="input-length" :disabled="identifyDialogState.disabled"
                          v-model="identifyDialogState.identifyForm.hazopParam" placeholder="HAZOP_参数"
                          clearable></el-input>
              </el-form-item>
            </el-col>
            <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
              <el-form-item label="HAZOP_参数描述" prop="hazopParamDesc">
                <el-input class="input-length" :disabled="identifyDialogState.disabled"
                          v-model="identifyDialogState.identifyForm.hazopParamDesc" placeholder="HAZOP_参数描述"
                          clearable></el-input>
              </el-form-item>
            </el-col>
            <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
              <el-form-item label="HAZOP_引导词" prop="hazopGuide">
                <el-input class="input-length" :disabled="identifyDialogState.disabled"
                          v-model="identifyDialogState.identifyForm.hazopGuide" placeholder="HAZOP_引导词"
                          clearable></el-input>
              </el-form-item>
            </el-col>
            <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
              <el-form-item label="HAZOP_偏差" prop="hazopDeviation">
                <el-input class="input-length" :disabled="identifyDialogState.disabled"
                          v-model="identifyDialogState.identifyForm.hazopDeviation" placeholder="HAZOP_偏差"
                          clearable></el-input>
              </el-form-item>
            </el-col>
            <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
              <el-form-item label="HAZOP_可能原因" prop="hazopPossibleCauses">
                <el-input class="input-length" :disabled="identifyDialogState.disabled"
                          v-model="identifyDialogState.identifyForm.hazopPossibleCauses" placeholder="HAZOP_可能原因"
                          clearable></el-input>
              </el-form-item>
            </el-col>
            <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
              <el-form-item label="HAZOP_主要后果" prop="hazopResult">
                <el-input class="input-length" :disabled="identifyDialogState.disabled"
                          v-model="identifyDialogState.identifyForm.hazopResult" placeholder="HAZOP_主要后果"
                          clearable></el-input>
              </el-form-item>
            </el-col>
            <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
              <el-form-item label="分配评价方法">
                <el-select disabled class="input-length" v-model="identifyDialogState.evaluateMethod" style="width:100%"
                           placeholder="" clearable>
                  <el-option v-for="item in identifyDialogState.evaluateMethodList" :key="item.id" :label="item.name"
                             :value="item.id"></el-option>
                </el-select>
              </el-form-item>
            </el-col>
            <!--                      <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">-->
            <!--                        <el-form-item label="评价专家" prop="hazopEvaluateUser">-->
            <!--                          <el-select class="input-length" v-model="identifyDialogState.identifyForm.hazopEvaluateUser" style="width:100%" placeholder="" clearable>-->
            <!--                            <el-option v-for="item in identifyDialogState.personList" :key="item.id" :label="item.name" :value="item.id"></el-option>-->
            <!--                          </el-select>-->
            <!--                        </el-form-item>-->
            <!--                      </el-col>-->
            <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
              <el-form-item label="评价专家">
                <el-input class="input-length" disabled v-model="identifyDialogState.evaluateUser"
                          placeholder="暂无评价专家" clearable></el-input>
              </el-form-item>
            </el-col>
            <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
              <el-form-item label="辨识结果" prop="result">
                <el-radio-group v-model="identifyDialogState.identifyForm.result"
                                :disabled="identifyDialogState.disabled">
                  <el-radio :label="1">有风险</el-radio>
                  <el-radio :label="2">无风险</el-radio>
                </el-radio-group>
              </el-form-item>
            </el-col>
            <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
              <el-form-item label="辨识专家建议" prop="identificationDesc">
                <el-input class="input-length" type="textarea" :autosize="{ minRows: 3}"
                          :disabled="identifyDialogState.disabled"
                          v-model="identifyDialogState.identifyForm.identificationDesc" placeholder="辨识专家建议"
                          clearable></el-input>
              </el-form-item>
            </el-col>
            <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
              <el-form-item label="附件">
                <el-upload accept="image/*" :action="identifyDialogState.uploadUrl"
                           :disabled="identifyDialogState.disabled"
                           :headers="identifyDialogState.header" method="post" :data="{module: 'identification'}"
                           :on-success="handleAvatarSuccess" :on-exceed="showTip" :on-preview="handlePictureCardPreview"
                           :limit='identifyDialogState.imgLimit' v-model:file-list="identifyDialogState.fileList"
                           list-type="picture-card" :before-upload="picSize" :on-remove="handleRemove"
                           :before-remove="beforeRemove">
                  <el-icon>
                    <Plus/>
                  </el-icon>
                  <template #tip>
                    <div class="el-upload__tip">上传jpg/png图片尺寸小于5M,最多可上传1张</div>
                  </template>
                </el-upload>
              </el-form-item>
            </el-col>
          </div>
                    <div style="width: 100%" v-if="identifyDialogState.method === 5">
                      <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
                        <el-form-item label="类比法_检查项目" prop="analogyCheckItem">
                          <el-input class="input-length" :disabled="identifyDialogState.disabled" v-model="identifyDialogState.identifyForm.analogyCheckItem" placeholder="检查项目" clearable></el-input>
                        </el-form-item>
                      </el-col>
                      <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
                        <el-form-item label="类比法_类比参照" prop="analogyReference">
                          <el-input class="input-length" :disabled="identifyDialogState.disabled" v-model="identifyDialogState.identifyForm.analogyReference" placeholder="类比参照" clearable></el-input>
                        </el-form-item>
                      </el-col>
                      <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
                        <el-form-item label="类比法_存在风险因素" prop="analogyRiskFactor">
                          <el-input class="input-length" :disabled="identifyDialogState.disabled" v-model="identifyDialogState.identifyForm.analogyRiskFactor" placeholder="存在风险因素" clearable></el-input>
                        </el-form-item>
                      </el-col>
                      <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
                        <el-form-item label="类比法_可能产生的后果" prop="analogyResult">
                          <el-input class="input-length" :disabled="identifyDialogState.disabled" v-model="identifyDialogState.identifyForm.analogyResult" placeholder="可能产生的后果" clearable></el-input>
                        </el-form-item>
                      </el-col>
                      <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
                        <el-form-item label="分配评价方法">
                          <el-select disabled class="input-length" v-model="identifyDialogState.evaluateMethod" style="width:100%" placeholder="" clearable>
                            <el-option v-for="item in identifyDialogState.evaluateMethodList" :key="item.id" :label="item.name" :value="item.id"></el-option>
                          </el-select>
                        </el-form-item>
                      </el-col>
<!--                      <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">-->
<!--                        <el-form-item label="评价专家" prop="analogyEvaluateUser">-->
<!--                          <el-select class="input-length" v-model="identifyDialogState.identifyForm.analogyEvaluateUser" style="width:100%" placeholder="" clearable>-->
<!--                            <el-option v-for="item in identifyDialogState.personList" :key="item.id" :label="item.name" :value="item.id"></el-option>-->
<!--                          </el-select>-->
<!--                        </el-form-item>-->
<!--                      </el-col>-->
                      <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
                        <el-form-item label="评价专家">
                          <el-input class="input-length" disabled v-model="identifyDialogState.evaluateUser" placeholder="暂无评价专家" clearable></el-input>
                        </el-form-item>
                      </el-col>
                      <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
                        <el-form-item label="辨识结果" prop="result">
                          <el-radio-group v-model="identifyDialogState.identifyForm.result" :disabled="identifyDialogState.disabled">
                            <el-radio :label="1">有风险</el-radio>
                            <el-radio :label="2">无风险</el-radio>
                          </el-radio-group>
                        </el-form-item>
                      </el-col>
                      <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
                        <el-form-item label="辨识专家建议" prop="identificationDesc">
                          <el-input class="input-length" type="textarea" :autosize="{ minRows: 3}" :disabled="identifyDialogState.disabled" v-model="identifyDialogState.identifyForm.identificationDesc" placeholder="辨识专家建议" clearable></el-input>
                        </el-form-item>
                      </el-col>
                    </div>
                </el-row>
            </el-form>
            <template #footer>
          <div style="width: 100%" v-if="identifyDialogState.method === 5">
            <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
              <el-form-item label="类比法_检查项目" prop="analogyCheckItem">
                <el-input class="input-length" :disabled="identifyDialogState.disabled"
                          v-model="identifyDialogState.identifyForm.analogyCheckItem" placeholder="检查项目"
                          clearable></el-input>
              </el-form-item>
            </el-col>
            <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
              <el-form-item label="类比法_类比参照" prop="analogyReference">
                <el-input class="input-length" :disabled="identifyDialogState.disabled"
                          v-model="identifyDialogState.identifyForm.analogyReference" placeholder="类比参照"
                          clearable></el-input>
              </el-form-item>
            </el-col>
            <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
              <el-form-item label="类比法_存在风险因素" prop="analogyRiskFactor">
                <el-input class="input-length" :disabled="identifyDialogState.disabled"
                          v-model="identifyDialogState.identifyForm.analogyRiskFactor" placeholder="存在风险因素"
                          clearable></el-input>
              </el-form-item>
            </el-col>
            <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
              <el-form-item label="类比法_可能产生的后果" prop="analogyResult">
                <el-input class="input-length" :disabled="identifyDialogState.disabled"
                          v-model="identifyDialogState.identifyForm.analogyResult" placeholder="可能产生的后果"
                          clearable></el-input>
              </el-form-item>
            </el-col>
            <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
              <el-form-item label="分配评价方法">
                <el-select disabled class="input-length" v-model="identifyDialogState.evaluateMethod" style="width:100%"
                           placeholder="" clearable>
                  <el-option v-for="item in identifyDialogState.evaluateMethodList" :key="item.id" :label="item.name"
                             :value="item.id"></el-option>
                </el-select>
              </el-form-item>
            </el-col>
            <!--                      <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">-->
            <!--                        <el-form-item label="评价专家" prop="analogyEvaluateUser">-->
            <!--                          <el-select class="input-length" v-model="identifyDialogState.identifyForm.analogyEvaluateUser" style="width:100%" placeholder="" clearable>-->
            <!--                            <el-option v-for="item in identifyDialogState.personList" :key="item.id" :label="item.name" :value="item.id"></el-option>-->
            <!--                          </el-select>-->
            <!--                        </el-form-item>-->
            <!--                      </el-col>-->
            <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
              <el-form-item label="评价专家">
                <el-input class="input-length" disabled v-model="identifyDialogState.evaluateUser"
                          placeholder="暂无评价专家" clearable></el-input>
              </el-form-item>
            </el-col>
            <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
              <el-form-item label="辨识结果" prop="result">
                <el-radio-group v-model="identifyDialogState.identifyForm.result"
                                :disabled="identifyDialogState.disabled">
                  <el-radio :label="1">有风险</el-radio>
                  <el-radio :label="2">无风险</el-radio>
                </el-radio-group>
              </el-form-item>
            </el-col>
            <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
              <el-form-item label="辨识专家建议" prop="identificationDesc">
                <el-input class="input-length" type="textarea" :autosize="{ minRows: 3}"
                          :disabled="identifyDialogState.disabled"
                          v-model="identifyDialogState.identifyForm.identificationDesc" placeholder="辨识专家建议"
                          clearable></el-input>
              </el-form-item>
            </el-col>
            <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
              <el-form-item label="附件">
                <el-upload accept="image/*" :action="identifyDialogState.uploadUrl"
                           :disabled="identifyDialogState.disabled"
                           :headers="identifyDialogState.header" method="post" :data="{module: 'identification'}"
                           :on-success="handleAvatarSuccess" :on-exceed="showTip" :on-preview="handlePictureCardPreview"
                           :limit='identifyDialogState.imgLimit' v-model:file-list="identifyDialogState.fileList"
                           list-type="picture-card" :before-upload="picSize" :on-remove="handleRemove"
                           :before-remove="beforeRemove">
                  <el-icon>
                    <Plus/>
                  </el-icon>
                  <template #tip>
                    <div class="el-upload__tip">上传jpg/png图片尺寸小于5M,最多可上传1张</div>
                  </template>
                </el-upload>
              </el-form-item>
            </el-col>
          </div>
        </el-row>
      </el-form>
      <template #footer>
                <span class="dialog-footer">
                    <el-button @click="identifyDialogState.identifyDialogVisible = !identifyDialogState.identifyDialogVisible" size="default">取 消</el-button>
                    <el-button v-if="!identifyDialogState.disabled" type="primary" @click="onSubmitIdentify" size="default">确定</el-button>
                    <el-button @click="identifyDialogState.identifyDialogVisible = !identifyDialogState.identifyDialogVisible"
                     size="default">取 消</el-button>
                    <el-button v-if="!identifyDialogState.disabled" type="primary" @click="onSubmitIdentify"
                     size="default">确定</el-button>
                </span>
            </template>
        </el-dialog>
    </div>
      </template>
    </el-dialog>
    <el-dialog v-model="identifyDialogState.dialogVisible">
      <el-image style="width: 100%; height: 100%" :src="identifyDialogState.dialogImageUrl"/>
    </el-dialog>
  </div>
</template>
<script setup lang="ts">
import { reactive, ref } from "vue";
import {ElMessage} from "element-plus";
import {reactive, ref} from "vue";
import {ElMessage, UploadProps} from "element-plus";
import {identifyApi} from "/@/api/analyse/identify";
import {isValidKey} from "/@/utils/methods";
import Cookies from "js-cookie";
import {useUserInfo} from "/@/stores/userInfo";
import {storeToRefs} from "pinia";
import axios from "axios";
const userInfo = useUserInfo();
const {userInfos} = storeToRefs(userInfo);
const identifyFormRef = ref()
const identifyDialogState = reactive<IdentifyDialogType>({
    title: '',
    method: null,
    time:[],
    disabled: false,
    evaluateMethod: null,
    evaluateUser: '',
    identifyDialogVisible: false,
    identifyForm: {
        id: null,
        identificationMethod: null,
        result: null,
        identificationDesc: '',
        analogyCheckItem: '',
        analogyRiskFactor: '',
        analogyResult: '',
        analogyReference: '',
        hazopNode: '',
        hazopParam: '',
        hazopParamDesc: '',
        hazopGuide: '',
        hazopDeviation: '',
        hazopPossibleCauses: '',
        hazopResult: '',
        jhaCheckItem: '',
        jhaRiskFactor: '',
        jhaResult: '',
        phaCheckItem: '',
        phaRiskFactor: '',
        phaResult: '',
        sclCheckItem: '',
        sclCheckStandard: '',
        sclCheckUnstandard: '',
        sclCheckResult: '',
        hazopId: null,
        jhaId: null,
        phaId: null,
        sclId: null,
        analogyId: null
    },
    identifyFormRules: {
        result: [{ required: true, message: '请选择辨识结果', trigger: 'blur' }],
        identificationDesc: [{ required: true, message: '请输入辨识专家建议', trigger: 'blur' }],
        analogyCheckItem: [{ required: true, message: '请输入检查项目', trigger: 'blur' }],
        analogyRiskFactor: [{ required: true, message: '请输入存在风险因素', trigger: 'blur' }],
        analogyResult: [{ required: true, message: '请输入可能产生的后果', trigger: 'blur' }],
        analogyReference: [{ required: true, message: '请输入类比参照', trigger: 'blur' }],
        hazopNode: [{ required: true, message: '请输入节点', trigger: 'blur' }],
        hazopParam: [{ required: true, message: '请输入参数', trigger: 'blur' }],
        hazopParamDesc: [{ required: true, message: '请输入参数描述', trigger: 'blur' }],
        hazopGuide: [{ required: true, message: '请输入引导词', trigger: 'blur' }],
        hazopDeviation: [{ required: true, message: '请输入偏差', trigger: 'blur' }],
        hazopPossibleCauses: [{ required: true, message: '请输入可能原因', trigger: 'blur' }],
        hazopResult: [{ required: true, message: '请输入主要后果', trigger: 'blur' }],
        jhaCheckItem: [{ required: true, message: '请输入作业步骤', trigger: 'blur' }],
        jhaRiskFactor: [{ required: true, message: '请输入危险源或潜在事件', trigger: 'blur' }],
        jhaResult: [{ required: true, message: '请输入可能产生的后果', trigger: 'blur' }],
        phaCheckItem: [{ required: true, message: '请输入检查项目', trigger: 'blur' }],
        phaRiskFactor: [{ required: true, message: '请输入存在风险因素', trigger: 'blur' }],
        phaResult: [{ required: true, message: '请输入可能产生的后果', trigger: 'blur' }],
        sclCheckItem: [{ required: true, message: '请输入检查项目', trigger: 'blur' }],
        sclCheckStandard: [{ required: true, message: '请输入检查标准', trigger: 'blur' }],
        sclCheckUnstandard: [{ required: true, message: '请输入不符合标准情况', trigger: 'blur' }],
        sclCheckResult: [{ required: true, message: '请输入主要后果', trigger: 'blur' }]
    },
    planList: [],
    personList: [],
    identificationMethodList: [
        {id:1, name: 'PHA'},
        {id:2, name: 'JHA'},
        {id:3, name: 'SCL'},
        {id:4, name: 'HAZOP'},
        {id:5, name: '类比法'},
    ],
    evaluateMethodList: [
        {id:1, name: 'LEC'},
        {id:2, name: 'LS'},
        {id:3, name: 'MES'},
        {id:4, name: 'RS'},
    ]
  title: '',
  method: null,
  time: [],
  disabled: false,
  evaluateMethod: null,
  evaluateUser: '',
  identifyDialogVisible: false,
  identifyForm: {
    id: null,
    identificationMethod: null,
    result: null,
    identificationDesc: '',
    analogyCheckItem: '',
    analogyRiskFactor: '',
    analogyResult: '',
    analogyReference: '',
    hazopNode: '',
    hazopParam: '',
    hazopParamDesc: '',
    hazopGuide: '',
    hazopDeviation: '',
    hazopPossibleCauses: '',
    hazopResult: '',
    jhaCheckItem: '',
    jhaRiskFactor: '',
    jhaResult: '',
    phaCheckItem: '',
    phaRiskFactor: '',
    phaResult: '',
    sclCheckItem: '',
    sclCheckStandard: '',
    sclCheckUnstandard: '',
    sclCheckResult: '',
    hazopId: null,
    jhaId: null,
    phaId: null,
    sclId: null,
    analogyId: null,
    fileData: ''
  },
  fileList: [],
  imgLimit: 1,
  uploadUrl: import.meta.env.VITE_API_URL + '/attachment/upload/url',
  isOverSize: false,
  header: {
    uid: Number(userInfos.value.uid),
    tk: Cookies.get('token')
  },
  dialogVisible: false,
  dialogImageUrl: '',
  identifyFormRules: {
    result: [{required: true, message: '请选择辨识结果', trigger: 'blur'}],
    identificationDesc: [{required: true, message: '请输入辨识专家建议', trigger: 'blur'}],
    analogyCheckItem: [{required: true, message: '请输入检查项目', trigger: 'blur'}],
    analogyRiskFactor: [{required: true, message: '请输入存在风险因素', trigger: 'blur'}],
    analogyResult: [{required: true, message: '请输入可能产生的后果', trigger: 'blur'}],
    analogyReference: [{required: true, message: '请输入类比参照', trigger: 'blur'}],
    hazopNode: [{required: true, message: '请输入节点', trigger: 'blur'}],
    hazopParam: [{required: true, message: '请输入参数', trigger: 'blur'}],
    hazopParamDesc: [{required: true, message: '请输入参数描述', trigger: 'blur'}],
    hazopGuide: [{required: true, message: '请输入引导词', trigger: 'blur'}],
    hazopDeviation: [{required: true, message: '请输入偏差', trigger: 'blur'}],
    hazopPossibleCauses: [{required: true, message: '请输入可能原因', trigger: 'blur'}],
    hazopResult: [{required: true, message: '请输入主要后果', trigger: 'blur'}],
    jhaCheckItem: [{required: true, message: '请输入作业步骤', trigger: 'blur'}],
    jhaRiskFactor: [{required: true, message: '请输入危险源或潜在事件', trigger: 'blur'}],
    jhaResult: [{required: true, message: '请输入可能产生的后果', trigger: 'blur'}],
    phaCheckItem: [{required: true, message: '请输入检查项目', trigger: 'blur'}],
    phaRiskFactor: [{required: true, message: '请输入存在风险因素', trigger: 'blur'}],
    phaResult: [{required: true, message: '请输入可能产生的后果', trigger: 'blur'}],
    sclCheckItem: [{required: true, message: '请输入检查项目', trigger: 'blur'}],
    sclCheckStandard: [{required: true, message: '请输入检查标准', trigger: 'blur'}],
    sclCheckUnstandard: [{required: true, message: '请输入不符合标准情况', trigger: 'blur'}],
    sclCheckResult: [{required: true, message: '请输入主要后果', trigger: 'blur'}]
  },
  planList: [],
  personList: [],
  identificationMethodList: [
    {id: 1, name: 'PHA'},
    {id: 2, name: 'JHA'},
    {id: 3, name: 'SCL'},
    {id: 4, name: 'HAZOP'},
    {id: 5, name: '类比法'},
  ],
  evaluateMethodList: [
    {id: 1, name: 'LEC'},
    {id: 2, name: 'LS'},
    {id: 3, name: 'MES'},
    {id: 4, name: 'RS'},
  ]
})
const showIdentifyDialog = (title: string, value: IdentifyType, identifyQueryForm: identifyQueryFormType,idenForm: IdentifyType,personList: Array<NewPersonListType>) => {
    identifyDialogState.method = identifyQueryForm.identificationMethod
    identifyDialogState.identifyDialogVisible = true;
    identifyDialogState.disabled = false
    identifyDialogState.evaluateMethod = idenForm.evaluateMethod
    identifyDialogState.evaluateUser = idenForm.evaluateUser
    identifyDialogState.personList = personList
    setTimeout(() => {
        identifyFormRef.value.clearValidate();
    });
    if(title === '新增'){
        identifyDialogState.title = '新增';
        identifyDialogState.identifyForm = {
            id: identifyQueryForm.id,
            identificationMethod: identifyQueryForm.identificationMethod,
            result: null,
            identificationDesc: '',
            analogyCheckItem: '',
            analogyRiskFactor: '',
            analogyResult: '',
            analogyReference: '',
            hazopNode: '',
            hazopParam: '',
            hazopParamDesc: '',
            hazopGuide: '',
            hazopDeviation: '',
            hazopPossibleCauses: '',
            hazopResult: '',
            jhaCheckItem: '',
            jhaRiskFactor: '',
            jhaResult: '',
            phaCheckItem: '',
            phaRiskFactor: '',
            phaResult: '',
            sclCheckItem: '',
            sclCheckStandard: '',
            sclCheckUnstandard: '',
            sclCheckResult: '',
            hazopId: null,
            jhaId: null,
            phaId: null,
            sclId: null,
            analogyId: null,
        };
    }else if(title === '查看'){
        identifyDialogState.title = '查看';
        identifyDialogState.disabled = true
        for(let i in identifyDialogState.identifyForm){
            if(isValidKey(i, identifyDialogState.identifyForm)){
                identifyDialogState.identifyForm[i] = value[i];
            }
        }
    }else{
        identifyDialogState.title = '编辑';
        for(let i in identifyDialogState.identifyForm){
              if(isValidKey(i, identifyDialogState.identifyForm)){
                  identifyDialogState.identifyForm[i] = value[i];
              }
        }
        identifyDialogState.identifyForm.identificationMethod = identifyQueryForm.identificationMethod
        console.log(identifyDialogState.identifyForm,'identifyDialogState.identifyForm')
const showIdentifyDialog = (title: string, value: IdentifyType, identifyQueryForm: identifyQueryFormType, idenForm: IdentifyType, personList: Array<NewPersonListType>) => {
  identifyDialogState.fileList = []
  identifyDialogState.method = identifyQueryForm.identificationMethod
  identifyDialogState.identifyDialogVisible = true;
  identifyDialogState.disabled = false
  identifyDialogState.evaluateMethod = idenForm.evaluateMethod
  identifyDialogState.evaluateUser = idenForm.evaluateUser
  identifyDialogState.personList = personList
  setTimeout(() => {
    identifyFormRef.value.clearValidate();
  });
  if (title === '新增') {
    identifyDialogState.title = '新增';
    identifyDialogState.identifyForm = {
      id: identifyQueryForm.id,
      identificationMethod: identifyQueryForm.identificationMethod,
      result: null,
      identificationDesc: '',
      analogyCheckItem: '',
      analogyRiskFactor: '',
      analogyResult: '',
      analogyReference: '',
      hazopNode: '',
      hazopParam: '',
      hazopParamDesc: '',
      hazopGuide: '',
      hazopDeviation: '',
      hazopPossibleCauses: '',
      hazopResult: '',
      jhaCheckItem: '',
      jhaRiskFactor: '',
      jhaResult: '',
      phaCheckItem: '',
      phaRiskFactor: '',
      phaResult: '',
      sclCheckItem: '',
      sclCheckStandard: '',
      sclCheckUnstandard: '',
      sclCheckResult: '',
      hazopId: null,
      jhaId: null,
      phaId: null,
      sclId: null,
      analogyId: null,
      fileData: ''
    };
  } else if (title === '查看') {
    identifyDialogState.title = '查看';
    identifyDialogState.disabled = true
    for (let i in identifyDialogState.identifyForm) {
      if (isValidKey(i, identifyDialogState.identifyForm)) {
        identifyDialogState.identifyForm[i] = value[i];
      }
    }
    if(identifyDialogState.identifyForm.fileData && identifyDialogState.identifyForm.fileData !== ''){
      const picList = identifyDialogState.identifyForm.fileData.split(',')
      identifyDialogState.fileList = picList.map((item,index)=>{
        return {
          name: index,
          url: import.meta.env.VITE_API_URL + item
        }
      })
    }
  } else {
    identifyDialogState.title = '编辑';
    for (let i in identifyDialogState.identifyForm) {
      if (isValidKey(i, identifyDialogState.identifyForm)) {
        identifyDialogState.identifyForm[i] = value[i];
      }
    }
    identifyDialogState.identifyForm.identificationMethod = identifyQueryForm.identificationMethod
    if(identifyDialogState.identifyForm.fileData && identifyDialogState.identifyForm.fileData !== ''){
      const picList = identifyDialogState.identifyForm.fileData.split(',')
      identifyDialogState.fileList = picList.map((item,index)=>{
        return {
          name: index,
          url: import.meta.env.VITE_API_URL + item
        }
      })
    }
  }
};
const onSubmitIdentify = () => {
    identifyFormRef.value.validate(async(valid: boolean) => {
        if(valid){
            if(identifyDialogState.title === '新增'){
                let { hazopId, jhaId, phaId, sclId, analogyId, ...data } = identifyDialogState.identifyForm
                let res = await identifyApi().addIdentify(data);
                if(res.data.code === 100){
                    emit('refresh',1,res.data.data)
                    identifyDialogState.identifyDialogVisible = false;
                    ElMessage({
                        type: 'success',
                        message: '新增成功'
                    })
// 图片上传
const showTip = () => {
  ElMessage({
    type: 'warning',
    message: '超出文件上传数量'
  });
}
                }else{
                    ElMessage({
                        type: 'warning',
                        message: res.data.msg,
                    });
                }
            }else{
                let res = await identifyApi().modIdentify(identifyDialogState.identifyForm)
                if(res.data.code === 100){
                    emit('refresh',2,identifyDialogState.identifyForm)
                    identifyDialogState.identifyDialogVisible = false;
                    ElMessage({
                        type: 'success',
                        message: '编辑成功'
                    })
                }else{
                    ElMessage({
                        type: 'warning',
                        message: res.data.msg,
                    });
                }
            }
        }else{
            ElMessage({
                type: 'warning',
                message: '请完善基本信息',
            });
        }
const picSize = async (rawFile: any) => {
  if (rawFile.size / 1024 / 1024 > 5) {
    ElMessage({
      type: 'warning',
      message: '文件大小不能超过5M。'
    });
    return false
  }
};
const handlePictureCardPreview = (uploadFile: { url: string }) => {
  identifyDialogState.dialogImageUrl = uploadFile.url!;
  identifyDialogState.dialogVisible = true;
};
const upload = async (params: any) => {
  // const formData = new FormData();
  // formData.append('file', state.fileList[0].raw);
  let reader = new FileReader();
  reader.readAsArrayBuffer(params.file);
  reader.onload = async () => {
    axios.post(identifyDialogState.uploadUrl, reader.result, {
      headers: {uid: Number(userInfos.value.uid), tk: Cookies.get('token')}
    }).then(res => {
      if (res.data.code === 100) {
        console.log(res.data.data)
      }
    });
  };
};
const handleAvatarSuccess: UploadProps['onSuccess'] = (
    res,
    uploadFile
) => {
  if (res.code == 100) {
    identifyDialogState.identifyForm.fileData = res.data
  }else{
    ElMessage({
      type: 'warning',
      message: res.msg
    })
  }
}
const handleRemove: UploadProps['onRemove'] = (uploadFile, uploadFiles) => {
  console.log(uploadFile, uploadFiles)
}
const onSubmitIdentify = () => {
  identifyFormRef.value.validate(async (valid: boolean) => {
    if (valid) {
      if (identifyDialogState.title === '新增') {
        let {hazopId, jhaId, phaId, sclId, analogyId, ...data} = identifyDialogState.identifyForm
        let res = await identifyApi().addIdentify(data);
        if (res.data.code === 100) {
          emit('refresh', 1, res.data.data)
          identifyDialogState.identifyDialogVisible = false;
          ElMessage({
            type: 'success',
            message: '新增成功'
          })
          identifyDialogState.fileList = []
        } else {
          ElMessage({
            type: 'warning',
            message: res.data.msg,
          });
        }
      } else {
        if(identifyDialogState.fileList.length == 0){
          identifyDialogState.identifyForm.fileData = ''
        }
        let res = await identifyApi().modIdentify(identifyDialogState.identifyForm)
        if (res.data.code === 100) {
          emit('refresh', 2, identifyDialogState.identifyForm)
          identifyDialogState.identifyDialogVisible = false;
          ElMessage({
            type: 'success',
            message: '编辑成功'
          })
          identifyDialogState.fileList = []
        } else {
          ElMessage({
            type: 'warning',
            message: res.data.msg,
          });
        }
      }
    } else {
      ElMessage({
        type: 'warning',
        message: '请完善基本信息',
      });
    }
  })
}
const emit = defineEmits(['refresh'])
defineExpose({
    showIdentifyDialog
  showIdentifyDialog
})
</script>
src/views/analyse/identify/components/identifyQuery.vue
@@ -152,10 +152,9 @@
const showIdentifyQuery = (title: string, value: IdentifyType, planList: PlanType [], personList: AllPersonListType []) => {
    identifyQueryState.identifyQueryVisible = true;
    identifyQueryState.identifyForm = value;
    identifyQueryState.list = value.factorQueryDTOList
    identifyQueryState.planList = planList;
    identifyQueryState.personList = personList
    identifyQueryState.list = value.factorQueryDTOList;
    identifyQueryState.list = value.factorQueryDTOList
    // getAssessInfo(identifyQueryState.identifyQueryForm.id);
    for(let i in identifyQueryState.identifyQueryForm){
        if(isValidKey(i, identifyQueryState.identifyQueryForm)){
src/views/analyse/identify/index.ts
@@ -85,8 +85,18 @@
    id: number,
    name: string,
}
declare interface file {
    url: string;
}
declare interface IdentifyDialogType {
    fileList: Array<file>,
    imgLimit: number,
    uploadUrl: string,
    isOverSize: boolean,
    header:{}
    dialogVisible: Boolean,
    dialogImageUrl: string | null,
    title: string,
    method: null | number,
    evaluateMethod: null | number,
@@ -125,6 +135,7 @@
        sclCheckStandard: string,
        sclCheckUnstandard: string,
        sclCheckResult: string,
        fileData: string
    },
    identifyFormRules: {
src/views/analyse/identify/index.vue
@@ -69,9 +69,9 @@
                        </el-table-column>
                        <el-table-column label="操作" width="250">
                            <template #default="scope">
                                <el-button size="small" text type="primary" v-if="scope.row.planExecStatus === 2 && scope.row.identificationUserId == identifyState.user" @click="accessIdentify(scope.row)">提交</el-button>
                                <el-button size="small" text type="primary" v-if="scope.row.planExecStatus === 2 && scope.row.identityUsers?.find(i=>i.identificationUserId== identifyState.user)" @click="accessIdentify(scope.row)">提交</el-button>
                                <el-button size="small" text type="primary" v-if="scope.row.planExecStatus === 3 || scope.row.planExecStatus === 4" :icon="View" @click="openIdentifyQuery('查看', scope.row)">查看</el-button>
                                <el-button size="small" text type="primary" v-if="scope.row.planExecStatus === 2 && scope.row.identificationUserId == identifyState.user" :icon="Edit" @click="openIdentifyQuery('辨识', scope.row)">辨识</el-button>
                                <el-button size="small" text type="primary" v-if="scope.row.planExecStatus === 2 && scope.row.identityUsers?.find(i=>i.identificationUserId== identifyState.user)" :icon="Edit" @click="openIdentifyQuery('辨识', scope.row)">辨识</el-button>
<!--                                <el-button size="small" text type="primary" v-if="scope.row.planExecStatus === 2" :icon="Edit" @click="openIdentifyQuery('编辑', scope.row)">编辑</el-button>-->
                            </template>
                        </el-table-column>
src/views/analyse/plan/components/planDialog.vue
@@ -1,80 +1,109 @@
<template>
    <div class="system-menu-dialog-container">
        <el-dialog :title="planDialogState.title" v-model="planDialogState.planDialogVisible" width="600px">
            <el-form ref="planFormRef" :rules="planDialogState.planFormRules" :model="planDialogState.planForm" size="default" label-width="120px">
                <el-row :gutter="35">
                    <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
                        <el-form-item label="风险分析单元" prop="riskUnitId">
                            <el-select :disabled="planDialogState.disabled" v-model="planDialogState.planForm.riskUnitId" style="width:100%" placeholder="风险分析单元" clearable>
                                <el-option v-for="item in planDialogState.riskUnitList" :key="item.id" :label="item.riskName" :value="item.id"></el-option>
                            </el-select>
                        </el-form-item>
                    </el-col>
                    <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
                        <el-form-item label="评估计划名称" prop="assessPlanName">
                            <el-input :disabled="planDialogState.disabled" v-model="planDialogState.planForm.assessPlanName" placeholder="评估计划名称" clearable></el-input>
                        </el-form-item>
                    </el-col>
                    <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
                      <el-form-item label="评估时间" prop="assessTime">
                        <el-date-picker
                            :disabled="planDialogState.disabled"
                            type="datetimerange"
                            v-model="planDialogState.planForm.assessTime"
                            start-placeholder="开始时间"
                            end-placeholder="结束时间"
                            format="YYYY-MM-DD HH:mm:ss"
                            value-format="YYYY-MM-DD HH:mm:ss"
                            popper-class="pickTime"
                            @change="formatTime">
                        </el-date-picker>
                      </el-form-item>
                    </el-col>
                    <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
                        <el-form-item label="计划制定人" prop="planUserId">
                            <el-select :disabled="planDialogState.disabled" v-model="planDialogState.planForm.planUserId" style="width:100%"  placeholder="计划制定人" clearable>
                                <el-option v-for="item in planDialogState.personList" :key="item.id" :label="item.realName" :value="item.id"></el-option>
                            </el-select>
                        </el-form-item>
                    </el-col>
                    <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20 valueSelect">
                        <el-form-item label="辨识专家" prop="identificationUserId">
                            <el-select :disabled="planDialogState.disabled" v-model="planDialogState.planForm.identificationUserId" style="width:100%" :teleported="false" placeholder="辨识专家" clearable>
                                <el-option v-for="item in planDialogState.bsExperts" :key="item.id" :label="item.realName" :value="item.id">
                                  <div class="valueTable">
                                    <div><div>姓名:</div><span>{{item.realName}}</span></div>
                                    <div><div>专业:</div><span>{{item.userIdentities?.map(i=>i.userIdentity).join(',')}}</span></div>
                                  </div>
                                </el-option>
                            </el-select>
                        </el-form-item>
                    </el-col>
                    <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20 valueSelect">
                        <el-form-item label="评价专家" prop="evaluateUserId">
                            <el-select :disabled="planDialogState.disabled" v-model="planDialogState.planForm.evaluateUserId" style="width:100%" :teleported="false" placeholder="评价专家" clearable>
                                <el-option v-for="item in planDialogState.pjExperts" :key="item.id" :label="item.realName" :value="item.id">
                                  <div class="valueTable">
                                    <div><div>姓名:</div><span>{{item.realName}}</span></div>
                                    <div><div>专业:</div><span>{{item.userIdentities?.map(i=>i.userIdentity).join(',')}}</span></div>
                                  </div>
                                </el-option>
                            </el-select>
                        </el-form-item>
                    </el-col>
                </el-row>
            </el-form>
            <template #footer>
  <div class="system-menu-dialog-container">
    <el-dialog :title="planDialogState.title" v-model="planDialogState.planDialogVisible" width="600px">
      <el-form ref="planFormRef" :rules="planDialogState.planFormRules" :model="planDialogState.planForm" size="default"
               label-width="120px">
        <el-row :gutter="35">
          <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
            <el-form-item label="风险分析单元" prop="riskUnitId">
              <el-select :disabled="planDialogState.disabled" v-model="planDialogState.planForm.riskUnitId"
                         style="width:100%" placeholder="风险分析单元" clearable>
                <el-option v-for="item in planDialogState.riskUnitList" :key="item.id" :label="item.riskName"
                           :value="item.id"></el-option>
              </el-select>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
            <el-form-item label="评估计划名称" prop="assessPlanName">
              <el-input :disabled="planDialogState.disabled" v-model="planDialogState.planForm.assessPlanName"
                        placeholder="评估计划名称" clearable></el-input>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
            <el-form-item label="评估时间" prop="assessTime">
              <el-date-picker
                  :disabled="planDialogState.disabled"
                  type="datetimerange"
                  v-model="planDialogState.planForm.assessTime"
                  start-placeholder="开始时间"
                  end-placeholder="结束时间"
                  format="YYYY-MM-DD HH:mm:ss"
                  value-format="YYYY-MM-DD HH:mm:ss"
                  popper-class="pickTime"
                  @change="formatTime">
              </el-date-picker>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
            <el-form-item label="计划制定人" prop="planUserId">
              <el-select :disabled="planDialogState.disabled" v-model="planDialogState.planForm.planUserId"
                         style="width:100%" placeholder="计划制定人" clearable>
                <el-option v-for="item in planDialogState.personList" :key="item.id" :label="item.realName"
                           :value="item.id"></el-option>
              </el-select>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
            <el-form-item label="辨识类型" prop="identificationType">
              <el-select :disabled="planDialogState.disabled" v-model="planDialogState.planForm.identificationType"
                         style="width:100%" placeholder="辨识类型" clearable>
                <el-option v-for="item in planDialogState.typeList" :key="item.value" :label="item.name"
                           :value="item.value"></el-option>
              </el-select>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20 valueSelect">
            <el-form-item label="辨识专家" prop="identificationUserInsert">
              <el-select :disabled="planDialogState.disabled" multiple v-model="planDialogState.planForm.identificationUserInsert"
                         style="width:100%" :teleported="false" placeholder="辨识专家" clearable>
                <el-option v-for="item in planDialogState.bsExperts" :key="item.id" :label="item.realName"
                           :value="item.id">
                  <div class="valueTable">
                    <div>
                      <div>姓名:</div>
                      <span>{{ item.realName }}</span></div>
                    <div>
                      <div>专业:</div>
                      <span>{{ item.userIdentities?.map(i => i.userIdentity).join(',') }}</span></div>
                  </div>
                </el-option>
              </el-select>
            </el-form-item>
          </el-col>
          <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20 valueSelect">
            <el-form-item label="评价专家" prop="evaluateUserInsert">
              <el-select :disabled="planDialogState.disabled" multiple v-model="planDialogState.planForm.evaluateUserInsert"
                         style="width:100%" :teleported="false" placeholder="评价专家" clearable>
                <el-option v-for="item in planDialogState.pjExperts" :key="item.id" :label="item.realName"
                           :value="item.id">
                  <div class="valueTable">
                    <div>
                      <div>姓名:</div>
                      <span>{{ item.realName }}</span></div>
                    <div>
                      <div>专业:</div>
                      <span>{{ item.userIdentities?.map(i => i.userIdentity).join(',') }}</span></div>
                  </div>
                </el-option>
              </el-select>
            </el-form-item>
          </el-col>
        </el-row>
      </el-form>
      <template #footer>
                <span class="dialog-footer">
                    <el-button @click="planDialogState.planDialogVisible = !planDialogState.planDialogVisible" size="default">取 消</el-button>
                    <el-button v-if="!planDialogState.disabled" type="primary" @click="onSubmitPlan" size="default">确定</el-button>
                    <el-button @click="planDialogState.planDialogVisible = !planDialogState.planDialogVisible"
                     size="default">取 消</el-button>
                    <el-button v-if="!planDialogState.disabled" type="primary" @click="onSubmitPlan"
                     size="default">确定</el-button>
                </span>
            </template>
        </el-dialog>
    </div>
      </template>
    </el-dialog>
  </div>
</template>
<script setup lang="ts">
import { reactive, ref, getCurrentInstance } from "vue";
import {reactive, ref, getCurrentInstance} from "vue";
import {ElMessage} from "element-plus";
import {planApi} from "/@/api/analyse/plan";
import {isValidKey} from "/@/utils/methods";
@@ -82,174 +111,189 @@
const planFormRef = ref()
const planDialogState = reactive<PlanDialogType>({
    title: '',
    disabled: false,
    planDialogVisible: false,
    planForm: {
        riskUnitId: null,
        planUserId: null,
        assessPlanName: '',
        assessTime: [],
        assessStartTime: '',
        assessEndTime: '',
        identificationUserId: null,
        evaluateUserId: null,
        riskType: 2
  title: '',
  disabled: false,
  planDialogVisible: false,
  planForm: {
    riskUnitId: null,
    planUserId: null,
    assessPlanName: '',
    assessTime: [],
    identificationType: null,
    assessStartTime: '',
    assessEndTime: '',
    identificationUserInsert: [],
    evaluateUserInsert: [],
    riskType: 2
  },
  planFormRules: {
    riskUnitId: [{required: true, message: '请选择风险分析单元', trigger: 'change'}],
    assessPlanName: [{required: true, message: '请填写评估计划名称', trigger: 'blur'}],
    assessTime: [{required: true, message: '请选择评估时间', trigger: 'blur'}],
    planUserId: [{required: true, message: '请选择计划制定人', trigger: 'change'}],
    identificationType: [{required: true, message: '请选择辨识类型', trigger: 'change'}],
    identificationUserInsert: [{required: true, message: '请选择辨识专家', trigger: 'change'}],
    evaluateUserInsert: [{required: true, message: '请选择评价专家', trigger: 'change'}],
  },
  riskUnitList: [],
  personList: [],
  typeList: [
    {
      name: '线上专家',
      value: 1
    },
    planFormRules: {
        riskUnitId: [{ required: true, message: '请选择风险分析单元', trigger: 'change' }],
        assessPlanName: [{ required: true, message: '请填写评估计划名称', trigger: 'blur' }],
        assessTime: [{ required: true, message: '请选择评估时间', trigger: 'blur' }],
        planUserId: [{ required: true, message: '请选择计划制定人', trigger: 'change' }],
        identificationUserId: [{ required: true, message: '请选择辨识专家', trigger: 'change' }],
        evaluateUserId: [{ required: true, message: '请选择评价专家', trigger: 'change' }],
    {
      name: '现场专家',
      value: 2
    },
    riskUnitList: [],
    personList: [],
    bsExperts: [],
    pjExperts: []
    {
      name: '线上+现场',
      value: 3
    }
  ],
  bsExperts: [],
  pjExperts: []
})
const showPlanDialog = (title: string, value: PlanType, riskUnitList: RiskUnitType [], personList: SystemPersonType [],bsExperts:[],pjExperts:[]) => {
    planDialogState.planDialogVisible = true;
    planDialogState.riskUnitList = riskUnitList;
    planDialogState.personList = personList;
    planDialogState.bsExperts = bsExperts;
    planDialogState.pjExperts = pjExperts;
    planDialogState.disabled = false
    setTimeout(() => {
        planFormRef.value.clearValidate();
    });
    if(title === '新增'){
        planDialogState.title = '新增';
        planDialogState.planForm = {
            riskUnitId: null,
            planUserId: null,
            assessPlanName: '',
            assessTime: [],
            assessStartTime: '',
            assessEndTime: '',
            identificationUserId: null,
            evaluateUserId: null,
            riskType: 2
        };
    }else if(title === '查看'){
        planDialogState.title = '查看';
        planDialogState.disabled = true
        for(let i in planDialogState.planForm){
            if(isValidKey(i, planDialogState.planForm)){
                planDialogState.planForm[i] = value[i]
            }
        }
        planDialogState.planForm.assessTime=[value.assessStartTime, value.assessEndTime]
        console.log(value,planDialogState.planForm.assessTime,'time')
    }else{
        planDialogState.title = '编辑';
        planDialogState.planForm.id = value.id
        for(let i in planDialogState.planForm){
            if(isValidKey(i, planDialogState.planForm)){
                planDialogState.planForm[i] = value[i]
            }
        }
        planDialogState.planForm.assessTime=[value.assessStartTime, value.assessEndTime]
const showPlanDialog = (title: string, value: PlanType, riskUnitList: RiskUnitType [], personList: SystemPersonType [], bsExperts: [], pjExperts: []) => {
  planDialogState.planDialogVisible = true;
  planDialogState.riskUnitList = riskUnitList;
  planDialogState.personList = personList;
  planDialogState.bsExperts = bsExperts;
  planDialogState.pjExperts = pjExperts;
  planDialogState.disabled = false
  setTimeout(() => {
    planFormRef.value.clearValidate();
  });
  if (title === '新增') {
    planDialogState.title = '新增';
    planDialogState.planForm = {
      riskUnitId: null,
      planUserId: null,
      assessPlanName: '',
      assessTime: [],
      identificationType: null,
      assessStartTime: '',
      assessEndTime: '',
      identificationUserInsert: [],
      evaluateUserInsert: [],
      riskType: 2
    }
  } else {
    if(title === '查看'){
      planDialogState.title = '查看'
      planDialogState.disabled = true
    }else{
      planDialogState.title = '编辑'
      planDialogState.planForm.id = value.id
    }
    for (let i in planDialogState.planForm) {
      if (isValidKey(i, planDialogState.planForm)) {
        planDialogState.planForm[i] = value[i]
      }
    }
    planDialogState.planForm.identificationUserInsert = value.identityUsers?.map(i=>i.identificationUserId)
    planDialogState.planForm.evaluateUserInsert = value.evaluateUsers?.map(i=>i.evaluateUserId)
    planDialogState.planForm.assessTime = [value.assessStartTime, value.assessEndTime]
  }
};
const formatTime = () => {
    planDialogState.planForm.assessStartTime = planDialogState.planForm.assessTime == [] ? '' : planDialogState.planForm.assessTime[0]
    planDialogState.planForm.assessEndTime = planDialogState.planForm.assessTime == [] ? '' : planDialogState.planForm.assessTime[1]
  planDialogState.planForm.assessStartTime = planDialogState.planForm.assessTime == [] ? '' : planDialogState.planForm.assessTime[0]
  planDialogState.planForm.assessEndTime = planDialogState.planForm.assessTime == [] ? '' : planDialogState.planForm.assessTime[1]
};
const onSubmitPlan = () => {
    planFormRef.value.validate(async(valid: boolean) => {
        if(valid){
            formatTime()
            delete planDialogState.planForm.assessTime
            if(planDialogState.title === '新增'){
                let res = await planApi().addPlan(planDialogState.planForm);
                if(res.data.code === 100){
                    emit('refresh')
                    planDialogState.planDialogVisible = false;
                    ElMessage({
                        type: 'success',
                        message: '新增成功'
                    })
                }else{
                    ElMessage({
                        type: 'warning',
                        message: res.data.msg,
                    });
                }
            }else{
                let res = await planApi().modPlan(planDialogState.planForm)
                if(res.data.code === 100){
                    emit('refresh')
                    planDialogState.planDialogVisible = false;
                    ElMessage({
                        type: 'success',
                        message: '编辑成功'
                    })
                }else{
                    ElMessage({
                        type: 'warning',
                        message: res.data.msg,
                    });
                }
            }
        }else{
            ElMessage({
                type: 'warning',
                message: '请完善基本信息',
            });
  planFormRef.value.validate(async (valid: boolean) => {
    if (valid) {
      formatTime()
      delete planDialogState.planForm.assessTime
      if (planDialogState.title === '新增') {
        let res = await planApi().addPlan(planDialogState.planForm);
        if (res.data.code === 100) {
          emit('refresh')
          planDialogState.planDialogVisible = false;
          ElMessage({
            type: 'success',
            message: '新增成功'
          })
        } else {
          ElMessage({
            type: 'warning',
            message: res.data.msg,
          });
        }
    })
      } else {
        let res = await planApi().modPlan(planDialogState.planForm)
        if (res.data.code === 100) {
          emit('refresh')
          planDialogState.planDialogVisible = false;
          ElMessage({
            type: 'success',
            message: '编辑成功'
          })
        } else {
          ElMessage({
            type: 'warning',
            message: res.data.msg,
          });
        }
      }
    } else {
      ElMessage({
        type: 'warning',
        message: '请完善基本信息',
      });
    }
  })
}
const emit = defineEmits(['refresh'])
defineExpose({
    showPlanDialog
  showPlanDialog
})
</script>
<style lang="scss" scoped>
    ::v-deep(.pickTime){
      position: absolute !important;
      top: 0 !important;
    }
    .valueSelect{
      ::v-deep(.el-popper){
        .el-select-dropdown__item{
          width: 100%;
          height: auto;
          white-space: normal;
          word-break: break-all;
          word-wrap: break-word;
          overflow: auto;
          padding: 10px 25px;
          border-bottom: 1px solid #ccc;
::v-deep(.pickTime) {
  position: absolute !important;
  top: 0 !important;
}
          .valueTable{
            &>div{
              line-height: 1.5;
              margin-bottom: 6px;
              display: flex;
              align-items: center;
.valueSelect {
  ::v-deep(.el-popper) {
    .el-select-dropdown__item {
      width: 100%;
      height: auto;
      white-space: normal;
      word-break: break-all;
      word-wrap: break-word;
      overflow: auto;
      padding: 10px 25px;
      border-bottom: 1px solid #ccc;
              div{
                color: #999;
              }
      .valueTable {
        & > div {
          line-height: 1.5;
          margin-bottom: 6px;
          display: flex;
          align-items: center;
              span{
                font-weight: bolder;
              }
          div {
            color: #999;
          }
              &:last-of-type{
                margin-bottom: 0;
              }
            }
          span {
            font-weight: bolder;
          }
          &:last-of-type {
            margin-bottom: 0;
          }
        }
      }
    }
  }
}
</style>
src/views/analyse/plan/index.ts
@@ -17,16 +17,20 @@
    reSendTitle:string
    reSendDialogVisible: boolean
    reSendForm: {
        id: null | number,
        identificationUserId: null | number,
        evaluateUserId: null | number,
        riskAssessPlanId: null | number,
        userIds: [],
        userType: null | number
    },
    rules: object
}
declare  interface SystemPersonType {
declare interface SystemPersonType {
    id: number,
    realName: string,
}
declare interface TypeListType {
    value: number | null
    name: string
}
declare interface PlanType {
@@ -57,10 +61,11 @@
        planUserId: number | null,
        assessPlanName: string,
        assessTime: string[],
        identificationType: number | null,
        assessStartTime: string,
        assessEndTime: string,
        identificationUserId: number | null,
        evaluateUserId: number | null,
        identificationUserInsert: []
        evaluateUserInsert: []
        riskType: number | null
    },
    planFormRules: {
@@ -68,6 +73,7 @@
    },
    riskUnitList: Array<RiskUnitType>
    personList: Array<SystemPersonType>
    typeList: Array<TypeListType>
    bsExperts: []
    pjExperts: []
}
src/views/analyse/plan/index.vue
@@ -68,11 +68,11 @@
                                <el-button size="small" text type="primary" v-if="scope.row.planSellStatus === 1" @click="accessPlan(scope.row)">派发</el-button>
                                <el-button size="small" text type="primary" :icon="View" @click="openPlanDialog('查看', scope.row)">查看</el-button>
                                <el-button v-if="scope.row.planSellStatus === 1" size="small" text type="primary" :icon="Edit" @click="openPlanDialog('修改', scope.row)">编辑</el-button>
                                <el-button v-if="scope.row.identificationUserId == planState.user" size="small" text type="primary" :icon="Edit" @click="refuseIdentify(scope.row)">拒绝辨识</el-button>
                                <el-button v-if="scope.row.evaluateUserId == planState.user" size="small" text type="primary" :icon="Edit" @click="refuseEvaluate(scope.row)">拒绝评价</el-button>
                                <el-button v-if="scope.row.identityUsers?.find(i=>i.identificationUserId == planState.user)" size="small" text type="primary" :icon="Edit" @click="refuseIdentify(scope.row)">拒绝辨识</el-button>
                                <el-button v-if="scope.row.evaluateUsers?.find(i=>i.evaluateUserId== planState.user)" size="small" text type="primary" :icon="Edit" @click="refuseEvaluate(scope.row)">拒绝评价</el-button>
<!--                                <el-button v-if="scope.row.sceneUserId == planState.user" size="small" text type="primary" :icon="Edit" @click="refuseScene(scope.row)">拒绝现场</el-button>-->
                                <el-button v-if="scope.row.identificationUserId == null" size="small" text type="primary" :icon="Edit" @click="reSendJob(scope.row,'identification')">重新指派辨识</el-button>
                                <el-button v-if="scope.row.evaluateUserId == null" size="small" text type="primary" :icon="Edit" @click="reSendJob(scope.row,'evaluate')">重新指派评价</el-button>
                                <el-button v-if="!scope.row.identityUsers" size="small" text type="primary" :icon="Edit" @click="reSendJob(scope.row,1)">重新指派辨识</el-button>
                                <el-button v-if="!scope.row.evaluateUsers" size="small" text type="primary" :icon="Edit" @click="reSendJob(scope.row,2)">重新指派评价</el-button>
                                <el-button v-if="scope.row.planSellStatus === 1" size="small" text type="danger" :icon="Delete" @click="onDelPlan(scope.row)">删除</el-button>
                            </template>
                        </el-table-column>
@@ -88,7 +88,7 @@
        <el-dialog class="chooseExpert" :title="planState.reSendTitle" v-model="planState.reSendDialogVisible" width="50%">
          <el-form ref="ruleFormRef" :rules="planState.rules" :model="planState.reSendForm" label-width="120px">
            <el-form-item v-if="planState.reSendTitle == '指派辨识专家'" label="选择辨识专家" prop="identificationUserId" class="valueSelect">
              <el-select v-model="planState.reSendForm.identificationUserId" style="width:100%" :teleported="false" placeholder="辨识专家" clearable>
              <el-select v-model="planState.reSendForm.userIds" multiple style="width:100%" :teleported="false" placeholder="辨识专家" clearable>
                <el-option v-for="item in planState.bsExperts" :key="item.id" :label="item.realName" :value="item.id">
                  <div class="valueTable">
                    <div><div>姓名:</div><span>{{item.realName}}</span></div>
@@ -98,7 +98,7 @@
              </el-select>
            </el-form-item>
            <el-form-item v-if="planState.reSendTitle == '指派评价专家'" label="选择评价专家" prop="evaluateUserId" class="valueSelect">
              <el-select v-model="planState.reSendForm.evaluateUserId" style="width:100%" :teleported="false" placeholder="评价专家" clearable>
              <el-select v-model="planState.reSendForm.userIds" multiple style="width:100%" :teleported="false" placeholder="评价专家" clearable>
                <el-option v-for="item in planState.pjExperts" :key="item.id" :label="item.realName" :value="item.id">
                  <div class="valueTable">
                    <div><div>姓名:</div><span>{{item.realName}}</span></div>
@@ -168,13 +168,12 @@
    reSendTitle:'',
    reSendDialogVisible: false,
    reSendForm: {
      id: null,
      identificationUserId: null,
      evaluateUserId: null
      riskAssessPlanId: null,
      userIds: [],
      userType: null
    },
    rules: {
      identificationUserId: [{ required: true, message: '请选择辨识专家', trigger: 'blur' }],
      evaluateUserId: [{ required: true, message: '请选择评价专家', trigger: 'blur' }]
      userIds: [{ required: true, message: '请选择专家', trigger: 'blur' }]
    }
    // deviceUnitList: [
    //     {id:1, name: '台'},
@@ -284,13 +283,13 @@
      });
}
const reSendJob= async(val: PlanType,type:string)=>{
const reSendJob= async(val: PlanType,type:number | null)=>{
  planState.reSendForm = {
    id: val.id,
    identificationUserId: null,
    evaluateUserId: null
    riskAssessPlanId: val.id,
    userIds: [],
    userType: type
  }
  if(type=='identification'){
  if(type==1){
    planState.reSendTitle = '指派辨识专家'
  }else{
    planState.reSendTitle = '指派评价专家'
@@ -316,9 +315,9 @@
      }
      planState.reSendForm = {
        id: null,
        identificationUserId: null,
        evaluateUserId: null
        riskAssessPlanId: null,
        userIds: [],
        userType: null
      },
      planState.reSendDialogVisible = false
      getPlanData()
src/views/analyse/record/index.vue
@@ -112,7 +112,6 @@
import Cookies from "js-cookie";
import {recordApi} from "/@/api/analyse/record";
const recordDialogRef = ref();
const recordState = reactive<RecordStateType>({
    recordData: [],