From 20195d0e1cbbf3e8bfd20e2baf53e2115f663da3 Mon Sep 17 00:00:00 2001
From: zhouwenxuan <1175765986@qq.com>
Date: Wed, 24 Jan 2024 16:38:22 +0800
Subject: [PATCH] 评价结论
---
src/views/safetyReview/projectManage/components/evaluatePlan.vue | 306 ++++++++++++++++++++++++++++++++++++--------------
1 files changed, 219 insertions(+), 87 deletions(-)
diff --git a/src/views/safetyReview/projectManage/components/evaluatePlan.vue b/src/views/safetyReview/projectManage/components/evaluatePlan.vue
index 3446e59..13876a2 100644
--- a/src/views/safetyReview/projectManage/components/evaluatePlan.vue
+++ b/src/views/safetyReview/projectManage/components/evaluatePlan.vue
@@ -3,10 +3,10 @@
<el-form ref="formRef" :model="state.formData" :rules="state.rules" class="register-form" label-position="top">
<el-row :gutter="30">
<el-col :span="6">
- <el-form-item prop="evalStartDate" label="评价开始时间">
+ <el-form-item prop="startDate" label="评价开始时间">
<el-date-picker
style="width: 100%"
- v-model="state.formData.evalStartDate"
+ v-model="state.formData.startDate"
type="date"
value-format="YYYY-MM-DD 00:00:00"
placeholder="选择日期"
@@ -15,10 +15,10 @@
</el-form-item>
</el-col>
<el-col :span="6">
- <el-form-item prop="evalEndDate" label="评价结束时间">
+ <el-form-item prop="endDate" label="评价结束时间">
<el-date-picker
style="width: 100%"
- v-model="state.formData.evalEndDate"
+ v-model="state.formData.endDate"
type="date"
value-format="YYYY-MM-DD 00:00:00"
placeholder="选择日期"
@@ -27,9 +27,9 @@
</el-form-item>
</el-col>
<el-col :span="6">
- <el-form-item prop="deliver" label="机构评价负责人">
+ <el-form-item prop="auser.name" label="机构评价负责人">
<el-input
- v-model="state.formData.deliver"
+ v-model="state.formData.auser.name"
size="large"
placeholder="请选择机构评价负责人"
>
@@ -39,23 +39,28 @@
</el-input>
</el-form-item>
</el-col>
- <el-col :span="6">
- <el-form-item prop="deliver" label="技术负责人">
- <el-input
- v-model="state.formData.deliver"
- size="large"
- placeholder="请选择技术负责人"
- >
- <template #append>
- <el-button :icon="Search" @click="openExperts('技术负责人')"/>
- </template>
- </el-input>
- </el-form-item>
+<!-- <el-col :span="6">-->
+<!-- <el-form-item prop="deliver" label="技术负责人">-->
+<!-- <el-input-->
+<!-- v-model="state.formData.deliver"-->
+<!-- size="large"-->
+<!-- placeholder="请选择技术负责人"-->
+<!-- >-->
+<!-- <template #append>-->
+<!-- <el-button :icon="Search" @click="openExperts('技术负责人')"/>-->
+<!-- </template>-->
+<!-- </el-input>-->
+<!-- </el-form-item>-->
+<!-- </el-col>-->
+ </el-row>
+ <el-row>
+ <el-col :span="18">
+ <div style="display: flex;align-items: center">评价日程安排</div>
</el-col>
</el-row>
- <el-table :data="state.tableData" :border="true" style="margin: 20px 0">
+ <el-table :data="state.formData.estimateSchedules" :border="true" style="margin: 20px 0">
<el-table-column label="序号" width="60" align="center" type="index"></el-table-column>
- <el-table-column label="评价日程安排" prop="content" header-align="center" :show-overflow-tooltip="true"/>
+ <el-table-column label="评价日程安排" prop="name" header-align="center" :show-overflow-tooltip="true"/>
<el-table-column label="开始时间" header-align="center" class-name="small-padding fixed-width">
<template #default="scope">
<el-date-picker
@@ -81,6 +86,94 @@
</template>
</el-table-column>
</el-table>
+ <el-row>
+ <el-col :span="18">
+ <div style="display: flex;align-items: center">项目组成员<el-icon style="margin-left: 10px;margin-right: 4px"><InfoFilled /></el-icon><span style="font-size: 13px">金属、非金属矿及其他矿采选业:安全、机械、电气、采矿、通风、地质、水工结构</span></div>
+ </el-col>
+ <el-col :span="6">
+ <div style="width: 100%;display: flex;justify-content: right">
+ <el-button type="primary" icon="Plus" @click="openExperts('项目组成员')">添加成员</el-button>
+ </div>
+ </el-col>
+ </el-row>
+ <el-table :data="state.formData.planPersons" :border="true" style="margin: 20px 0">
+ <el-table-column label="序号" width="60" align="center" type="index"></el-table-column>
+ <el-table-column label="评价组成员" prop="person.name" header-align="center" :show-overflow-tooltip="true"/>
+ <el-table-column label="资格证书" prop="person.certificateNo" header-align="center" :show-overflow-tooltip="true"/>
+ <el-table-column label="专业能力" prop="person.major" header-align="center" :show-overflow-tooltip="true"/>
+ <el-table-column label="承担工作" header-align="center" class-name="small-padding fixed-width">
+ <template #default="scope">
+ <el-select v-model="scope.row.work" multiple placeholder="承担工作" style="width: 100%" size="large">
+ <el-option v-for="item in state.workList" :key="item.value" :label="item.label" :value="item.value"/>
+ </el-select>
+ </template>
+ </el-table-column>
+ <el-table-column label="承诺后期前往现场勘验" header-align="center" class-name="small-padding fixed-width">
+ <template #default="scope">
+ <el-radio-group v-model="scope.row.laterPromise" size="large">
+ <el-radio :label="1" size="large">是</el-radio>
+ <el-radio :label="0" size="large">否</el-radio>
+ </el-radio-group>
+ </template>
+ </el-table-column>
+ <el-table-column label="未到现场勘验原因" header-align="center" class-name="small-padding fixed-width">
+ <template #default="scope">
+ <el-input v-model="scope.row.reason" maxlength="30" show-word-limit type="text" size="large"/>
+ </template>
+ </el-table-column>
+ <el-table-column label="操作" header-align="center" class-name="small-padding fixed-width">
+ <template #default="scope">
+ <el-button link type="danger" @click="delMember(scope.$index)">删除</el-button>
+ </template>
+ </el-table-column>
+ </el-table>
+ <el-row>
+ <el-col :span="18">
+ <div style="display: flex;align-items: center">所需仪器设备</div>
+ </el-col>
+ <el-col :span="6">
+ <div style="width: 100%;display: flex;justify-content: right">
+ <el-button type="primary" icon="Plus" @click="addDevice">添加设备</el-button>
+ </div>
+ </el-col>
+ </el-row>
+ <el-table :data="state.formData.devices" :border="true" style="margin: 20px 0">
+ <el-table-column label="序号" width="60" align="center" type="index"></el-table-column>
+ <el-table-column label="设备名称" header-align="center" class-name="small-padding fixed-width">
+ <template #default="scope">
+ <el-input v-model="scope.row.deviceName" maxlength="30" show-word-limit type="text" size="large"/>
+ </template>
+ </el-table-column>
+ <el-table-column label="开始时间" header-align="center" class-name="small-padding fixed-width">
+ <template #default="scope">
+ <el-date-picker
+ style="width: 100%"
+ v-model="scope.row.startDate"
+ type="date"
+ value-format="YYYY-MM-DD 00:00:00"
+ placeholder="选择日期"
+ size="large"
+ />
+ </template>
+ </el-table-column>
+ <el-table-column label="结束时间" header-align="center" class-name="small-padding fixed-width">
+ <template #default="scope">
+ <el-date-picker
+ style="width: 100%"
+ v-model="scope.row.endDate"
+ type="date"
+ value-format="YYYY-MM-DD 00:00:00"
+ placeholder="选择日期"
+ size="large"
+ />
+ </template>
+ </el-table-column>
+ <el-table-column label="操作" header-align="center" class-name="small-padding fixed-width">
+ <template #default="scope">
+ <el-button link type="danger" @click="delDevice(scope.$index)">删除</el-button>
+ </template>
+ </el-table-column>
+ </el-table>
</el-form>
<experts-list ref="expertsListRef" @getName="getSelected"></experts-list>
</div>
@@ -97,57 +190,85 @@
const state = reactive({
formData: {
- project: {
- id: '',
-
+ projectId: null,
+ auser: {
+ name: ''
},
+ auserId: null,
+ estimateSchedules: [
+ {
+ id: 1,
+ name: '勘验准备',
+ startDate: '',
+ endDate: '',
+ scheduleType: 1
+ },
+ {
+ id: 2,
+ name: '现场勘验',
+ startDate: '',
+ endDate: '',
+ scheduleType: 2
+ },
+ {
+ id: 3,
+ name: '材料分析整理',
+ startDate: '',
+ endDate: '',
+ scheduleType: 3
+ },
+ {
+ id: 4,
+ name: '评价报告编写',
+ startDate: '',
+ endDate: '',
+ scheduleType: 4
+ },
+ {
+ id: 5,
+ name: '整改情况现场确认',
+ startDate: '',
+ endDate: '',
+ scheduleType: 5
+ },
+ {
+ id: 6,
+ name: '整理评价报告',
+ startDate: '',
+ endDate: '',
+ scheduleType: 6
+ },
+ {
+ id: 7,
+ name: '报告审核',
+ startDate: '',
+ endDate: '',
+ scheduleType: 7
+ },
+ {
+ id: 8,
+ name: '报告修改',
+ startDate: '',
+ endDate: '',
+ scheduleType: 8
+ },
+ ],
+ planPersons: [],
+ devices: [],
+ startDate: '',
+ endDate: '',
id: ''
},
rules: {
- "project.name": [{required: true, message: '请填写项目名称', trigger: 'blur'}],
- riskCharacter: [{required: true, message: '请填写行业风险特性', trigger: 'blur'}],
+ "auser.name": [{required: true, message: '请填写机构评价负责人', trigger: 'blur'}],
+ startDate: [{required: true, message: '请选择评价开始时间', trigger: 'blur'}],
+ endDate: [{required: true, message: '请选择评价结束时间', trigger: 'blur'}]
},
- tableData: [
- {
- id: '1',
- content: '勘验准备',
- status: 1
- },
- {
- id: '2',
- content: '现场勘验',
- status: 1
- },
- {
- id: '3',
- content: '材料分析整理',
- status: 1
- },
- {
- id: '4',
- content: '评价报告编写',
- status: 1
- },
- {
- id: '5',
- content: '整改情况现场确认',
- status: 1
- },
- {
- id: '6',
- content: '整理评价报告',
- status: 1
- },
- {
- id: '7',
- content: '报告审核',
- status: 1
- },
- {
- id: '8',
- content: '报告修改',
- status: 1
- },
+ workList: [
+ {value: '报告编制',label: '报告编制'},
+ {value: '文字校对',label: '文字校对'},
+ {value: '现场勘验',label: '现场勘验'},
+ {value: '资料收集整理',label: '资料收集整理'}
]
})
const props = {
@@ -173,12 +294,6 @@
state.formData = res.data;
state.formData.project.business = parseInt(res.data.project.business);
state.formData.project.area = [res.data.project.province,res.data.project.city];
- state.tableData[0].status = res.data.isInBusiness ? 1 : 0;
- state.tableData[1].status = res.data.isSatisfyNeed ? 1 : 0;
- state.tableData[2].status = res.data.isNeedExpert ? 1 : 0;
- state.tableData[3].status = res.data.isFinishReport ? 1 : 0;
- state.tableData[4].status = res.data.isAcceptChargess ? 1 : 0;
- state.tableData[5].status = res.data.isFeasibility ? 1 : 0;
}else {
ElMessage.warning(res.message)
}
@@ -194,12 +309,6 @@
const {id, ...data} = JSON.parse(JSON.stringify(state.formData))
delete data.project.area;
delete data.project.id;
- data.isInBusiness = state.tableData[0].status === 1;
- data.isSatisfyNeed = state.tableData[1].status === 1;
- data.isNeedExpert = state.tableData[2].status === 1;
- data.isFinishReport = state.tableData[3].status === 1;
- data.isAcceptChargess = state.tableData[4].status === 1;
- data.isFeasibility = state.tableData[5].status === 1;
console.log('data', data)
const res = await addRisk(data);
if (res.code == 200) {
@@ -213,12 +322,6 @@
}else if(type === 'clickEdit'){
const { ...data} = JSON.parse(JSON.stringify(state.formData))
delete data.project.area;
- data.isInBusiness = state.tableData[0].status === 1;
- data.isSatisfyNeed = state.tableData[1].status === 1;
- data.isNeedExpert = state.tableData[2].status === 1;
- data.isFinishReport = state.tableData[3].status === 1;
- data.isAcceptChargess = state.tableData[4].status === 1;
- data.isFeasibility = state.tableData[5].status === 1;
console.log('data', data)
const res = await editRisk(data);
if (res.code == 200) {
@@ -239,11 +342,40 @@
const getSelected = (type,obj)=>{
if(type == '项目负责人'){
- state.formData.project.leader = obj.name
+ state.formData.auser.name = obj.name
+ state.formData.auserId = obj.id
+ }else{
+ let member = {
+ person: {
+ name: obj.name,
+ certificateNo: obj.certificateNo?obj.certificateNo:'',
+ major: obj.speciality,
+ },
+ informed: 0,
+ work: '',
+ laterPromise: 0,
+ reason: ''
+ }
+ state.formData.planPersons.push(member)
}
- if(type == '任务下达人'){
- state.formData.deliver = obj.name
+}
+
+const delMember = (index)=>{
+ state.formData.planPersons.splice(index,1)
+}
+
+const addDevice = ()=>{
+ let device = {
+ projectId: null,
+ deviceName: '',
+ startDate: '',
+ endDate: ''
}
+ state.formData.devices.push(device)
+}
+
+const delDevice = (index)=>{
+ state.formData.devices.splice(index,1)
}
defineExpose({
--
Gitblit v1.9.2