fetch:新增工作危害分析评价

kongyeqing
kongyeqing 2023-06-27 17:08:38 +08:00
parent 2e07bad9cd
commit c15160e682
3 changed files with 450 additions and 1612 deletions

View File

@ -36,10 +36,6 @@ export default class JobHazardService extends BaseService<any>{
// 存草稿 // 存草稿
public addOrDraft(params: any, add: boolean,showLoading?:boolean): Promise<AxiosResponse<ActionResult<any>>>{ public addOrDraft(params: any, add: boolean,showLoading?:boolean): Promise<AxiosResponse<ActionResult<any>>>{
const url = this.prefix.prevention+'/job/anal/addDraft'; const url = this.prefix.prevention+'/job/anal/addDraft';
if(add){ return this.post(url,params,{},showLoading)
return this.post(url,params,{},showLoading)
}else{
return this.put(url,params,{},showLoading)
}
} }
} }

View File

@ -11,14 +11,19 @@
<TableComponent :tableData="tableData" :tableColumn="tableColumn" @tabCallback="callback($event)" <TableComponent :tableData="tableData" :tableColumn="tableColumn" @tabCallback="callback($event)"
@actionCallback="callback($event)" @pageNumberChange="callback($event)" @actionCallback="callback($event)" @pageNumberChange="callback($event)"
@pageSizeChange="callback($event)" :footerActions="footerActions" :actions="tableActions"> @pageSizeChange="callback($event)" :footerActions="footerActions" :actions="tableActions">
<el-table ref="multipleTable" :data="tableData.datas" height="100%" border row-key="checked" <el-table ref="multipleTable" :data="tableData.datas" height="100%" border row-key="checked"
@selection-change="handleSelectionChange" style="width: 100%"> @selection-change="handleSelectionChange" style="width: 100%">
<el-table-column type="selection" label="全选" width="40"> <el-table-column type="selection" label="全选" width="40">
</el-table-column> </el-table-column>
<el-table-column label="序号" width="60">
<template slot-scope="scope">
{{scope.$index+1}}
</template>
</el-table-column>
<template v-for="item in tableColumn"> <template v-for="item in tableColumn">
<el-table-column v-if="item.render" :label="item.name" :width="item.width" :key="item.key"> <el-table-column v-if="item.render" :label="item.name" :width="item.width" :key="item.key">
<div slot-scope="scope" v-html="item.render(scope.row)"></div> <div slot-scope="scope" v-html="item.render(scope.row)" @click="showPros($event,scope.row)">
</div>
</el-table-column> </el-table-column>
<el-table-column v-else :prop="item.key" :label="item.name" :width="item.width" :key="item.key"> <el-table-column v-else :prop="item.key" :label="item.name" :width="item.width" :key="item.key">
</el-table-column> </el-table-column>
@ -46,13 +51,14 @@
:showFooter="false" style="margin-bottom: 20px;"> :showFooter="false" style="margin-bottom: 20px;">
<el-table ref="multipleTable" :data="updateParams.steps" tooltip-effect="dark" height="250" border <el-table ref="multipleTable" :data="updateParams.steps" tooltip-effect="dark" height="250" border
row-key="checked" @selection-change="handleSelectionChange" style="width: 100%"> row-key="checked" @selection-change="handleSubSelectionChange" style="width: 100%">
<el-table-column type="selection" label="全选" width="40"> <el-table-column type="selection" label="全选" width="40">
</el-table-column> </el-table-column>
<template v-for="item in subTableColumn"> <template v-for="item in subTableColumn">
<el-table-column v-if="item.render" :show-overflow-tooltip="item.showTip" :label="item.name" <el-table-column v-if="item.render" :show-overflow-tooltip="item.showTip" :label="item.name"
:width="item.width" :key="item.key"> :width="item.width" :key="item.key">
<div slot-scope="scope" v-html="item.render(scope.row)"></div> <div slot-scope="scope" v-html="item.render(scope.row)">
</div>
</el-table-column> </el-table-column>
<el-table-column v-else :prop="item.key" :show-overflow-tooltip="item.showTip" <el-table-column v-else :prop="item.key" :show-overflow-tooltip="item.showTip"
:label="item.name" :width="item.width" :key="item.key"> :label="item.name" :width="item.width" :key="item.key">
@ -63,8 +69,7 @@
<el-button v-if="isReadonly" type="text" <el-button v-if="isReadonly" type="text"
@click="showSubModel(scope.row,isReadonly)">查看</el-button> @click="showSubModel(scope.row,isReadonly)">查看</el-button>
<el-button v-if="isModifyonly" type="text" @click="showSubModel(scope.row)">修改</el-button> <el-button v-if="isModifyonly" type="text" @click="showSubModel(scope.row)">修改</el-button>
<el-button v-if="!isReadonly && !isModifyonly" type="text" <el-button v-if="!isReadonly" type="text" @click="showSubModel(scope.row)">评价</el-button>
@click="showSubModel(scope.row)">评价</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
@ -77,135 +82,35 @@
</el-dialog> </el-dialog>
<!-- 评估矩阵 --> <!-- 评估矩阵 -->
<el-dialog :close-on-click-modal="false" :visible.sync="showMatrixModal" :title="'区域风险等级判定准则'"> <el-dialog :close-on-click-modal="false" :visible.sync="showMatrixModal" width="500px" :title="'区域风险等级判定准则'">
<img style="width:100%" src="../../../../assets/images/5.png" alt=""> <img style="width:100%" src="../../../../assets/images/5.png" alt="">
</el-dialog> </el-dialog>
<!-- 危害分析评价 --> <!-- 危害分析评价 -->
<el-dialog :close-on-click-modal="false" :visible.sync="showSubUpdate" width="880px" <el-dialog :close-on-click-modal="false" :visible.sync="showSubUpdate" width="880px"
:before-close="handleAnalyClose"> :before-close="handleAnalyClose">
<div class="sub-title">基本信息</div> <AnalEvaluationComponent :isReadonly="analyIsReadonly" :data.sync="analysisUpdateParams"
<FormComponent :options="subBasicOptions" labelWidth="110px" labelAlign="right" :show.sync="showSubUpdate" @actionCallback="analyCallback" :tabledata.sync="updateParams"
:data.sync="analysisUpdateParams" @actionCallback="callback" :isReadonly="analyIsReadonly"> :areaList="areaList" :type="'work'"></AnalEvaluationComponent>
</FormComponent>
<div class="sub-title">风险评估</div>
<FormComponent :options="subRiskOptions" labelWidth="110px" labelAlign="right" :data.sync="analysisUpdateParams"
@actionCallback="callback" @change="handleRiskChange" :isReadonly="analyIsReadonly">
</FormComponent>
<div class="sub-title">管控措施</div>
<FormComponent labelWidth="110px" labelAlign="right" :data.sync="analysisUpdateParams"
@actionCallback="measureCallback" :isReadonly="analyIsReadonly">
<TableComponent :tableData="currentMeasureData.datas" :tableColumn="triTableColumn"
@actionCallback="measureCallback($event)" :actions="analyIsReadonly ? []:triTableActions"
actionPosition="flex-start" :showFooter="false" style="margin-bottom: 20px;">
<el-table ref="multipleTable" :data="currentMeasureData.datas" tooltip-effect="dark" height="250" border
row-key="checked" @selection-change="handleSelectionChange" style="width: 100%">
<el-table-column type="selection" label="全选" width="40">
</el-table-column>
<template v-for="item in triTableColumn">
<el-table-column v-if="item.render" :show-overflow-tooltip="item.showTip" :label="item.name"
:width="item.width" :key="item.key">
<div slot-scope="scope" v-html="item.render(scope.row)"></div>
</el-table-column>
<el-table-column v-else :prop="item.key" :show-overflow-tooltip="item.showTip"
:label="item.name" :width="item.width" :key="item.key">
</el-table-column>
</template>
<el-table-column label="操作" width="150">
<template slot-scope="scope">
<el-button type="text" @click="showMeasureModel(scope.row,true)">查看</el-button>
<el-button type="text" @click="showMeasureModel(scope.row)">编辑</el-button>
<el-button type="text" @click="deleteMeasure(scope.row)">删除</el-button>
</template>
</el-table-column>
</el-table>
</TableComponent>
</FormComponent>
<div class="sub-title">残余风险评估</div>
<FormComponent :options="subRemnantsOptions" labelWidth="110px" labelAlign="right"
:data.sync="analysisUpdateParams" @actionCallback="analyCallback" :actions="analyIsReadonly ? []:triActions"
:full-btn="true" btnPosition="center" @change="handleSubRiskChange" :isReadonly="analyIsReadonly">
</FormComponent>
</el-dialog> </el-dialog>
<!-- 风险评估方法 --> <!-- 检查项目 -->
<el-dialog :close-on-click-modal="false" :visible.sync="showRiskUpdate" width="800px" :before-close="handleClose"> <el-dialog :close-on-click-modal="false" title="检查项目" :show-close="false" :visible.sync="showProtable"
<FormComponent :options="riskType === 'ls'? riskLSUpdateOptions:riskLECUpdateOptions " labelWidth="110px" width="940px">
labelAlign="right" :data.sync="methodUpdateParams" @actionCallback="methodCallback" :actions="triActions" <FormComponent labelWidth="110px" labelAlign="right" :actions="proActions" @actionCallback="proCallback"
:full-btn="true" btnPosition="center"> :full-btn="true" btnPosition="center">
</FormComponent> <TableComponent :tableData="currentProTableData" :tableColumn="proTableColumn" :showFooter="false"
<div v-if="riskType === 'ls'"> style="margin-bottom: 20px;">
<img style="width:90%" src="../../../../assets/images/3.png" alt=""> <el-table ref="multipleTable" :data="currentProTableData.datas" tooltip-effect="dark" height="250"
<img style="width:80%" src="../../../../assets/images/2.png" alt=""> border style="width: 100%">
</div> <template v-for="item in proTableColumn">
<div v-if="riskType === 'lec'">
<img style="width:100%" src="../../../../assets/images/6.png" alt="">
</div>
</el-dialog>
<!-- 风险评估取值 -->
<div v-if="showRiskValueUpdate">
<el-dialog :close-on-click-modal="false" :title="riskTitle" :visible.sync="showRiskValueUpdate" width="750px"
:before-close="handleClose" :show-close="false">
<TableComponent :tableData="riskTableData" :tableColumn="riskTableColumn" @tabCallback="popCallback($event)"
actionPosition="flex-start" :showFooter="false" style="margin-bottom: 20px;"
:data.sync="methodUpdateParams">
<el-table ref="singleTable" :data="riskTableData" tooltip-effect="dark" border row-key="checked"
highlight-current-row @current-change="handleCurrentChange" style="width: 100%">
<template v-for="item in riskTableColumn">
<el-table-column v-if="item.render" :label="item.name" :width="item.width" :key="item.key"> <el-table-column v-if="item.render" :label="item.name" :width="item.width" :key="item.key">
<div slot-scope="scope" style="pointer-events: none;" @click="addVal($event,scope.row)" <div slot-scope="scope" v-html="item.render(scope.row)" @click="showPros($event,scope.row)">
v-html="item.render(scope.row)"></div> </div>
</el-table-column> </el-table-column>
<el-table-column v-else :prop="item.key" :label="item.name" :width="item.width" :key="item.key"> <el-table-column v-else :prop="item.key" :label="item.name" :width="item.width" :key="item.key">
</el-table-column> </el-table-column>
</template> </template>
</el-table> </el-table>
</TableComponent> </TableComponent>
<ButtonListComponent :actions="triActions" @callback="popCallback" btn-position="center" :full-btn="true">
</ButtonListComponent>
</el-dialog>
</div>
<!--管控措施-->
<el-dialog :close-on-click-modal="false" :title="'管控措施制定'" :visible.sync="showTriUpdate" width="750px"
:before-close="handleMeasureClose">
<FormComponent :options="triUpdateOptions" labelWidth="110px" labelAlign="right"
:data.sync="measureUpdataParams" :isReadonly="measureIsReadonly" :actions="subActions"
@actionCallback="measureCallback($event)" :full-btn="true" btnPosition="center" @change="measureChange">
<div class="sub-title">排查任务制定</div>
<TableComponent :tableData="currentTaskData.datas" :tableColumn="taskTableColumn"
@actionCallback="measureCallback($event)" :actions="!measureIsReadonly?fourTableActions:[]"
actionPosition="flex-start" :showFooter="false" style="margin-bottom: 20px;">
<el-table ref="multipleTable" :data="currentTaskData.datas" tooltip-effect="dark" height="250" border
row-key="checked" @selection-change="handleSelectionChange" style="width: 100%">
<template v-for="item in taskTableColumn">
<el-table-column v-if="item.render" :show-overflow-tooltip="item.showTip" :label="item.name"
:width="item.width" :key="item.key">
<div slot-scope="scope" v-html="item.render(scope.row)"></div>
</el-table-column>
<el-table-column v-else :prop="item.key" :show-overflow-tooltip="item.showTip"
:label="item.name" :width="item.width" :key="item.key">
</el-table-column>
</template>
<el-table-column label="操作" width="150">
<template slot-scope="scope">
<el-button type="text" @click="showTaskModel(scope.row,true)">查看</el-button>
<el-button :v-if="!measureIsReadonly" type="text"
@click="showTaskModel(scope.row)">编辑</el-button>
<el-button :v-if="!measureIsReadonly" type="text"
@click="deleteTask(scope.row)">删除</el-button>
</template>
</el-table-column>
</el-table>
</TableComponent>
</FormComponent>
</el-dialog>
<!-- 排查任务 -->
<el-dialog :close-on-click-modal="false" :title="taskCurrentId === -1 ? '新增':taskIsReadonly?'详情':'编辑'"
:visible.sync="showFourUpdate" width="700px" :before-close="handleCloseTask">
<FormComponent :options="taskUpdateOptions" :isReadonly="taskIsReadonly" labelWidth="110px" labelAlign="right"
:data.sync="taskUpdataParams" :actions="subActions" :full-btn="true" btnPosition="center"
@actionCallback="taskCallback" @change="taskSelectChange">
</FormComponent> </FormComponent>
</el-dialog> </el-dialog>
</div> </div>

File diff suppressed because it is too large Load Diff