From 5c357cd927e74cc57531bd0a95338635e39be9af Mon Sep 17 00:00:00 2001
From: 马宇豪 <978517621@qq.com>
Date: Mon, 29 Jan 2024 09:45:06 +0800
Subject: [PATCH] 修改强密码
---
src/views/safetyReview/projectManage/components/evaluatePlan.vue | 271 ++++++++++++++++++++++++++++++------------------------
1 files changed, 151 insertions(+), 120 deletions(-)
diff --git a/src/views/safetyReview/projectManage/components/evaluatePlan.vue b/src/views/safetyReview/projectManage/components/evaluatePlan.vue
index 13876a2..2f62a3d 100644
--- a/src/views/safetyReview/projectManage/components/evaluatePlan.vue
+++ b/src/views/safetyReview/projectManage/components/evaluatePlan.vue
@@ -32,6 +32,7 @@
v-model="state.formData.auser.name"
size="large"
placeholder="请选择机构评价负责人"
+ @focus="openExperts('机构评价负责人')"
>
<template #append>
<el-button :icon="Search" @click="openExperts('机构评价负责人')"/>
@@ -39,19 +40,6 @@
</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>-->
</el-row>
<el-row>
<el-col :span="18">
@@ -92,38 +80,30 @@
</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>
+ <el-button type="primary" icon="Plus" @click="openWorksDialog('add',{})">添加成员</el-button>
</div>
</el-col>
</el-row>
- <el-table :data="state.formData.planPersons" :border="true" style="margin: 20px 0">
+ <el-table :data="state.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">
+ <el-table-column label="专业能力/资格证书" prop="person.certificateNo" header-align="center" :show-overflow-tooltip="true">
<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>
+ {{ getCertNo(scope.row) }}
</template>
</el-table-column>
- <el-table-column label="承诺后期前往现场勘验" header-align="center" class-name="small-padding fixed-width">
+<!-- <el-table-column label="专业能力" header-align="center" :show-overflow-tooltip="true"></el-table-column>-->
+ <el-table-column label="承担工作" prop="work" header-align="center" class-name="small-padding fixed-width"></el-table-column>
+ <el-table-column label="承诺后期前往现场勘验" prop="laterPromise" 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>
+ {{(scope.row.laterPromise==1 || scope.row.laterPromise==true)?'是':'否'}}
</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="未到现场勘验原因" prop="reason" header-align="center" class-name="small-padding fixed-width"></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>
+ <el-button link @click="openWorksDialog('edit',scope.row)">修改</el-button>
+ <el-button link type="danger" @click="delMember(scope.row)">删除</el-button>
</template>
</el-table-column>
</el-table>
@@ -133,63 +113,52 @@
</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>
+ <el-button type="primary" icon="Plus" @click="openDeviceDialog('add',{})">添加设备</el-button>
</div>
</el-col>
</el-row>
- <el-table :data="state.formData.devices" :border="true" style="margin: 20px 0">
+ <el-table :data="state.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">
+ <el-table-column label="设备名称" prop="deviceName" header-align="center" class-name="small-padding fixed-width"/>
+ <el-table-column label="开始时间" prop="startDate" 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"/>
+ {{scope.row.startDate.substring(0,10)}}
</template>
</el-table-column>
- <el-table-column label="开始时间" header-align="center" class-name="small-padding fixed-width">
+ <el-table-column label="结束时间" prop="endDate" 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"
- />
+ {{scope.row.endDate.substring(0,10)}}
</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>
+ <el-button link @click="openDeviceDialog('edit',scope.row)">修改</el-button>
+ <el-button link type="danger" @click="delDeviceItem(scope.row)">删除</el-button>
</template>
</el-table-column>
</el-table>
</el-form>
<experts-list ref="expertsListRef" @getName="getSelected"></experts-list>
+ <works-dialog ref="worksRef" @getList="getWorksList" :workList="state.workList" :typeList="state.jobTypeList"></works-dialog>
+ <device-dialog ref="deviceRef" @getList="getDeviceList"></device-dialog>
</div>
</template>
<script setup>
-import {defineEmits, onMounted, reactive, ref} from "vue"
-import {ElMessage} from "element-plus"
+import {defineEmits, defineProps, onMounted, reactive, ref} from "vue"
+import {ElMessage, ElMessageBox} from "element-plus"
import {Search} from '@element-plus/icons-vue'
-import {addRisk, editRisk, getRiskDetail} from "@/api/projectManage/riskAnalysis"
+import {addRecord, editRecord, getDetail, getWorks, getDevice, delWorks, delDevice} from "@/api/projectManage/evaPlan"
import Cookies from "js-cookie"
import ExpertsList from "./expertsList"
+import WorksDialog from './worksDialog'
+import DeviceDialog from './deviceDialog'
+const props = defineProps(['projectId'])
const emit = defineEmits(["getNextStatus"])
const state = reactive({
formData: {
+ id: null,
projectId: null,
auser: {
name: ''
@@ -198,69 +167,87 @@
estimateSchedules: [
{
id: 1,
+ sort: 1,
name: '勘验准备',
startDate: '',
endDate: '',
- scheduleType: 1
+ scheduleType: 1,
+ projectId: null
},
{
id: 2,
+ sort: 2,
name: '现场勘验',
startDate: '',
endDate: '',
- scheduleType: 2
+ scheduleType: 2,
+ projectId: null
},
{
id: 3,
+ sort: 3,
name: '材料分析整理',
startDate: '',
endDate: '',
- scheduleType: 3
+ scheduleType: 3,
+ projectId: null
},
{
id: 4,
+ sort: 4,
name: '评价报告编写',
startDate: '',
endDate: '',
- scheduleType: 4
+ scheduleType: 4,
+ projectId: null
},
{
id: 5,
+ sort: 5,
name: '整改情况现场确认',
startDate: '',
endDate: '',
- scheduleType: 5
+ scheduleType: 5,
+ projectId: null
},
{
id: 6,
+ sort: 6,
name: '整理评价报告',
startDate: '',
endDate: '',
- scheduleType: 6
+ scheduleType: 6,
+ projectId: null
},
{
id: 7,
+ sort: 7,
name: '报告审核',
startDate: '',
endDate: '',
- scheduleType: 7
+ scheduleType: 7,
+ projectId: null
},
{
id: 8,
+ sort: 8,
name: '报告修改',
startDate: '',
endDate: '',
- scheduleType: 8
+ scheduleType: 8,
+ projectId: null
},
],
planPersons: [],
devices: [],
startDate: '',
- endDate: '',
- id: ''
+ endDate: ''
},
+ projectId: null,
+ planPersons: [],
+ devices: [],
rules: {
- "auser.name": [{required: true, message: '请填写机构评价负责人', trigger: 'blur'}],
+ "auser.name": [{required: true, message: '请填写机构评价负责人', trigger: 'change'}],
startDate: [{required: true, message: '请选择评价开始时间', trigger: 'blur'}],
endDate: [{required: true, message: '请选择评价结束时间', trigger: 'blur'}]
},
@@ -269,31 +256,37 @@
{value: '文字校对',label: '文字校对'},
{value: '现场勘验',label: '现场勘验'},
{value: '资料收集整理',label: '资料收集整理'}
+ ],
+ jobTypeList: [
+ {value: 1,label: '普通人员'},
+ {value: 2,label: '组长'},
]
})
-const props = {
- expandTrigger: 'hover',
- value: 'name',
- label: 'name'
-}
+
const isAmin = ref(false)
const formRef = ref()
const expertsListRef = ref()
+const worksRef = ref()
+const deviceRef = ref()
onMounted(() => {
const userInfo = JSON.parse(Cookies.get('userInfo'))
if(userInfo.identity === 0){
- isAmin.value = true;
+ isAmin.value = true
}
-});
+})
const riskOpen = async (type,val) => {
- console.log("type",type,val)
+ state.formData.projectId = val
+ state.projectId = val
+ for(let i of state.formData.estimateSchedules){
+ i.projectId = val
+ }
+ await getWorksList(val)
+ await getDeviceList(val)
if(type === 'detail' || type === 'edit' ){
- const res = await getRiskDetail({projectId: val});
+ const res = await getDetail({projectId: val})
if(res.code == 200){
- 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.formData = JSON.parse(JSON.stringify(res.data))
}else {
ElMessage.warning(res.message)
}
@@ -307,10 +300,8 @@
}
if(type === 'add'){
const {id, ...data} = JSON.parse(JSON.stringify(state.formData))
- delete data.project.area;
- delete data.project.id;
- console.log('data', data)
- const res = await addRisk(data);
+ console.log(data)
+ const res = await addRecord(data);
if (res.code == 200) {
ElMessage.success('保存成功')
formRef.value.clearValidate();
@@ -321,9 +312,7 @@
}
}else if(type === 'clickEdit'){
const { ...data} = JSON.parse(JSON.stringify(state.formData))
- delete data.project.area;
- console.log('data', data)
- const res = await editRisk(data);
+ const res = await editRecord(data);
if (res.code == 200) {
ElMessage.success('变更成功')
formRef.value.clearValidate();
@@ -336,46 +325,88 @@
}
}
+const getWorksList = async (id) =>{
+ const works = await getWorks({projectId: id ? id : props.projectId})
+ if(works.code == 200){
+ state.planPersons = works.data
+ }else {
+ ElMessage.warning(works.message)
+ }
+}
+
+const getDeviceList = async (id) =>{
+ const device = await getDevice({projectId: id ? id : props.projectId})
+ if(device.code == 200){
+ state.devices = device.data
+ }else {
+ ElMessage.warning(device.message)
+ }
+}
+
+const getCertNo = (row)=>{
+ const obj = JSON.parse(row.person.certificateNo)
+ const noArr = Object.values(obj)
+ return row.person.majorNames.map((item,index)=>{
+ return item + '(' + noArr[index] + ')'
+ }).join(',')
+}
+
const openExperts = (type) =>{
expertsListRef.value.openDialog(type)
}
const getSelected = (type,obj)=>{
- if(type == '项目负责人'){
- 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)
- }
+ state.formData.auser.name = obj.name
+ state.formData.auserId = obj.id
}
-const delMember = (index)=>{
- state.formData.planPersons.splice(index,1)
+const openWorksDialog = (type,data)=>{
+ worksRef.value.openDialog(type,data,props.projectId)
}
-const addDevice = ()=>{
- let device = {
- projectId: null,
- deviceName: '',
- startDate: '',
- endDate: ''
- }
- state.formData.devices.push(device)
+const openDeviceDialog = (type,data)=>{
+ deviceRef.value.openDialog(type,data,props.projectId)
}
-const delDevice = (index)=>{
- state.formData.devices.splice(index,1)
+const delMember = (row)=>{
+ ElMessageBox.confirm(
+ '确定删除此条数据?',
+ '提示',
+ {
+ confirmButtonText: '确定',
+ cancelButtonText: '取消',
+ type: 'warning',
+ })
+ .then( async() => {
+ const res = await delWorks(row.id)
+ if(res.code == 200){
+ ElMessage.success('数据删除成功')
+ await getWorksList()
+ }else{
+ ElMessage.warning(res.message)
+ }
+ })
+}
+
+const delDeviceItem = (row)=>{
+ console.log(row,'row')
+ ElMessageBox.confirm(
+ '确定删除此条数据?',
+ '提示',
+ {
+ confirmButtonText: '确定',
+ cancelButtonText: '取消',
+ type: 'warning',
+ })
+ .then( async() => {
+ const res = await delDevice(row.id)
+ if(res.code == 200){
+ ElMessage.success('数据删除成功')
+ await getDeviceList()
+ }else{
+ ElMessage.warning(res.message)
+ }
+ })
}
defineExpose({
--
Gitblit v1.9.2