<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 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>
|
<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>
|
<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>
|
<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>
|
<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>
|
</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, 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,
|
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.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 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) => {
|
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
|
})
|
</script>
|
|
<style scoped>
|
|
</style>
|