马宇豪
2025-03-12 de5e674a5655cd5c8d5457d1be8182519625d265
src/views/analyse/identify/components/identifyDialog.vue
@@ -1,7 +1,8 @@
<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-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">-->
@@ -14,23 +15,31 @@
                    <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-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-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-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 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>
@@ -43,12 +52,14 @@
<!--                      </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-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-group v-model="identifyDialogState.identifyForm.result"
                                :disabled="identifyDialogState.disabled">
                            <el-radio :label="1">有风险</el-radio>
                            <el-radio :label="2">无风险</el-radio>
                          </el-radio-group>
@@ -56,7 +67,28 @@
                      </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-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>
@@ -64,23 +96,31 @@
                    <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-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-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-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 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>
@@ -93,12 +133,14 @@
<!--                      </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-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-group v-model="identifyDialogState.identifyForm.result"
                                :disabled="identifyDialogState.disabled">
                            <el-radio :label="1">有风险</el-radio>
                            <el-radio :label="2">无风险</el-radio>
                          </el-radio-group>
@@ -106,7 +148,28 @@
                      </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-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>
@@ -114,28 +177,38 @@
                    <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-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-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-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-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 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>
@@ -148,12 +221,14 @@
<!--                      </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-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-group v-model="identifyDialogState.identifyForm.result"
                                :disabled="identifyDialogState.disabled">
                            <el-radio :label="1">有风险</el-radio>
                            <el-radio :label="2">无风险</el-radio>
                          </el-radio-group>
@@ -161,7 +236,28 @@
                      </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-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>
@@ -169,43 +265,59 @@
                    <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-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-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-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-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-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-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-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 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>
@@ -218,12 +330,14 @@
<!--                      </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-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-group v-model="identifyDialogState.identifyForm.result"
                                :disabled="identifyDialogState.disabled">
                            <el-radio :label="1">有风险</el-radio>
                            <el-radio :label="2">无风险</el-radio>
                          </el-radio-group>
@@ -231,7 +345,28 @@
                      </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-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>
@@ -239,28 +374,38 @@
                    <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-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-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-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-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 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>
@@ -273,12 +418,14 @@
<!--                      </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-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-group v-model="identifyDialogState.identifyForm.result"
                                :disabled="identifyDialogState.disabled">
                            <el-radio :label="1">有风险</el-radio>
                            <el-radio :label="2">无风险</el-radio>
                          </el-radio-group>
@@ -286,7 +433,28 @@
                      </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-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>
@@ -294,20 +462,31 @@
            </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>
    <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 {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>({
@@ -348,8 +527,19 @@
        jhaId: null,
        phaId: null,
        sclId: null,
        analogyId: 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' }],
@@ -393,6 +583,7 @@
})
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
@@ -435,6 +626,7 @@
            phaId: null,
            sclId: null,
            analogyId: null,
      fileData: ''
        };
    }else if(title === '查看'){
        identifyDialogState.title = '查看';
@@ -444,6 +636,15 @@
                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){
@@ -452,9 +653,74 @@
              }
        }
        identifyDialogState.identifyForm.identificationMethod = identifyQueryForm.identificationMethod
        console.log(identifyDialogState.identifyForm,'identifyDialogState.identifyForm')
    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 showTip = () => {
  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) => {
@@ -469,7 +735,7 @@
                        type: 'success',
                        message: '新增成功'
                    })
          identifyDialogState.fileList = []
                }else{
                    ElMessage({
                        type: 'warning',
@@ -477,6 +743,9 @@
                    });
                }
            }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)
@@ -485,6 +754,7 @@
                        type: 'success',
                        message: '编辑成功'
                    })
          identifyDialogState.fileList = []
                }else{
                    ElMessage({
                        type: 'warning',