| | |
| | | <el-dialog |
| | | v-model="dialogVisible" |
| | | :title="title" |
| | | width="850px" |
| | | width="1200px" |
| | | :before-close="handleClose" |
| | | :close-on-press-escape="false" |
| | | :close-on-click-modal="false" |
| | |
| | | </el-row> |
| | | <el-row :gutter="24"> |
| | | <el-col :span="24"> |
| | | <el-form-item label="记录名称:" prop="year" > |
| | | <el-input :disabled="title === '查看'" v-model="state.form.name" placeholder="记录名称"></el-input> |
| | | <el-form-item label="记录名称:" prop="recordName" > |
| | | <el-input :disabled="title === '查看'" v-model="state.form.recordName" placeholder="记录名称"></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row :gutter="24"> |
| | | <el-col :span="24"> |
| | | <el-form-item label="月度检查记录:" prop="expectContents" > |
| | | <el-form-item label="月度检查记录:" prop="inspectionMesses" > |
| | | <el-button |
| | | :disabled="title === '查看'" |
| | | type="primary" |
| | |
| | | style="margin-left: 10px;margin-bottom: 10px" |
| | | >新增</el-button> |
| | | <div style="display: flex;width: 100%;"> |
| | | <el-table :data="state.form.expectContents" :border="true" > |
| | | <el-table :data="state.form.inspectionMesses" :border="true" > |
| | | <el-table-column type="index" label="序号" align="center"></el-table-column> |
| | | <el-table-column label="时间" prop="name" align="center" width="150"> |
| | | <el-table-column label="时间" prop="monthlyTime" align="center" width="140"> |
| | | <template #default="{row,$index}"> |
| | | <el-form-item :prop="'expectContents.' + '[' + $index + ']' + 'name'" :rules="state.rules.name"> |
| | | <el-input style="margin-top: 10px" :disabled="title === '查看'" type="textarea" :rows="2" v-model="row.name" placeholder="请输入"></el-input> |
| | | <el-form-item :prop="'inspectionMesses.' + '[' + $index + ']' + 'monthlyTime'" :rules="state.rules.monthlyTime"> |
| | | <el-date-picker |
| | | :disabled="title === '查看'" |
| | | v-model="row.monthlyTime" |
| | | type="date" |
| | | value-format="YYYY-MM-DD" |
| | | placeholder="请选择日期" |
| | | style="width: 100%" |
| | | /> |
| | | </el-form-item> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="检查人" prop="name" align="center" width="150"> |
| | | <el-table-column label="检查人" prop="checkUser" align="center" width="100"> |
| | | <template #default="{row,$index}"> |
| | | <el-form-item :prop="'expectContents.' + '[' + $index + ']' + 'name'" :rules="state.rules.name"> |
| | | <el-input style="margin-top: 10px" :disabled="title === '查看'" type="textarea" :rows="2" v-model="row.name" placeholder="请输入"></el-input> |
| | | <el-form-item :prop="'inspectionMesses.' + '[' + $index + ']' + 'checkUser'" :rules="state.rules.checkUser"> |
| | | <el-input style="margin-top: 10px" :disabled="title === '查看'" type="textarea" :rows="2" v-model="row.checkUser" placeholder="请输入"></el-input> |
| | | </el-form-item> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="防护" prop="name" align="center" width="150"> |
| | | <el-table-column label="防护" prop="entrench" align="center" width="100"> |
| | | <template #default="{row,$index}"> |
| | | <el-form-item :prop="'expectContents.' + '[' + $index + ']' + 'name'" :rules="state.rules.name"> |
| | | <el-input style="margin-top: 10px" :disabled="title === '查看'" type="textarea" :rows="2" v-model="row.name" placeholder="请输入"></el-input> |
| | | <el-form-item :prop="'inspectionMesses.' + '[' + $index + ']' + 'entrench'" :rules="state.rules.entrench"> |
| | | <el-input style="margin-top: 10px" :disabled="title === '查看'" type="textarea" :rows="2" v-model="row.entrench" placeholder="请输入"></el-input> |
| | | </el-form-item> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="标识" prop="name" align="center" width="150"> |
| | | <el-table-column label="标识" prop="identification" align="center" width="100"> |
| | | <template #default="{row,$index}"> |
| | | <el-form-item :prop="'expectContents.' + '[' + $index + ']' + 'name'" :rules="state.rules.name"> |
| | | <el-input style="margin-top: 10px" :disabled="title === '查看'" type="textarea" :rows="2" v-model="row.name" placeholder="请输入"></el-input> |
| | | <el-form-item :prop="'inspectionMesses.' + '[' + $index + ']' + 'identification'" :rules="state.rules.identification"> |
| | | <el-input style="margin-top: 10px" :disabled="title === '查看'" type="textarea" :rows="2" v-model="row.identification" placeholder="请输入"></el-input> |
| | | </el-form-item> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="摆放" prop="name" align="center" width="150"> |
| | | <el-table-column label="摆放" prop="place" align="center" width="100"> |
| | | <template #default="{row,$index}"> |
| | | <el-form-item :prop="'expectContents.' + '[' + $index + ']' + 'name'" :rules="state.rules.name"> |
| | | <el-input style="margin-top: 10px" :disabled="title === '查看'" type="textarea" :rows="2" v-model="row.name" placeholder="请输入"></el-input> |
| | | <el-form-item :prop="'inspectionMesses.' + '[' + $index + ']' + 'place'" :rules="state.rules.place"> |
| | | <el-input style="margin-top: 10px" :disabled="title === '查看'" type="textarea" :rows="2" v-model="row.place" placeholder="请输入"></el-input> |
| | | </el-form-item> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="清洁" prop="name" align="center" width="150"> |
| | | <el-table-column label="清洁" prop="clean" align="center" width="100"> |
| | | <template #default="{row,$index}"> |
| | | <el-form-item :prop="'expectContents.' + '[' + $index + ']' + 'name'" :rules="state.rules.name"> |
| | | <el-input style="margin-top: 10px" :disabled="title === '查看'" type="textarea" :rows="2" v-model="row.name" placeholder="请输入"></el-input> |
| | | <el-form-item :prop="'inspectionMesses.' + '[' + $index + ']' + 'clean'" :rules="state.rules.clean"> |
| | | <el-input style="margin-top: 10px" :disabled="title === '查看'" type="textarea" :rows="2" v-model="row.clean" placeholder="请输入"></el-input> |
| | | </el-form-item> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="安全" prop="name" align="center" width="150"> |
| | | <el-table-column label="安全" prop="safety" align="center" width="100"> |
| | | <template #default="{row,$index}"> |
| | | <el-form-item :prop="'expectContents.' + '[' + $index + ']' + 'name'" :rules="state.rules.name"> |
| | | <el-input style="margin-top: 10px" :disabled="title === '查看'" type="textarea" :rows="2" v-model="row.name" placeholder="请输入"></el-input> |
| | | <el-form-item :prop="'inspectionMesses.' + '[' + $index + ']' + 'safety'" :rules="state.rules.safety"> |
| | | <el-input style="margin-top: 10px" :disabled="title === '查看'" type="textarea" :rows="2" v-model="row.safety" placeholder="请输入"></el-input> |
| | | </el-form-item> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="环境" prop="name" align="center" width="150"> |
| | | <el-table-column label="环境" prop="environment" align="center" width="100"> |
| | | <template #default="{row,$index}"> |
| | | <el-form-item :prop="'expectContents.' + '[' + $index + ']' + 'name'" :rules="state.rules.name"> |
| | | <el-input style="margin-top: 10px" :disabled="title === '查看'" type="textarea" :rows="2" v-model="row.name" placeholder="请输入"></el-input> |
| | | <el-form-item :prop="'inspectionMesses.' + '[' + $index + ']' + 'environment'" :rules="state.rules.environment"> |
| | | <el-input style="margin-top: 10px" :disabled="title === '查看'" type="textarea" :rows="2" v-model="row.environment" placeholder="请输入"></el-input> |
| | | </el-form-item> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="帐务卡一致性" prop="name" align="center" width="150"> |
| | | <el-table-column label="帐务卡一致性" prop="consistency" align="center" width="100"> |
| | | <template #default="{row,$index}"> |
| | | <el-form-item :prop="'expectContents.' + '[' + $index + ']' + 'name'" :rules="state.rules.name"> |
| | | <el-input style="margin-top: 10px" :disabled="title === '查看'" type="textarea" :rows="2" v-model="row.name" placeholder="请输入"></el-input> |
| | | <el-form-item :prop="'inspectionMesses.' + '[' + $index + ']' + 'consistency'" :rules="state.rules.consistency"> |
| | | <el-input style="margin-top: 10px" :disabled="title === '查看'" type="textarea" :rows="2" v-model="row.consistency" placeholder="请输入"></el-input> |
| | | </el-form-item> |
| | | </template> |
| | | </el-table-column> |
| | |
| | | import {getDept, getObject, getObjectPage} from "@/api/qualityObjectives/object"; |
| | | import {addTable, editTable, getTargetById} from "@/api/qualityObjectives/table"; |
| | | import {addNeedDiscren, editNeedDiscren} from "@/api/need/need"; |
| | | import {addMonthlyRecord, editMonthlyRecord, getMonthlyRecordById} from "@/api/monthlyInspectionRecord"; |
| | | import {getQualityTemplateById} from "@/api/standardSys/standardSys"; |
| | | |
| | | const dialogVisible = ref(false); |
| | | const title = ref(""); |
| | |
| | | form: { |
| | | id: '', |
| | | companyId: null, |
| | | deptId: null, |
| | | year: '', |
| | | fictionId: null, |
| | | checkId: null, |
| | | ratifyId: null, |
| | | fictionTime: null, |
| | | frequency: '', |
| | | expectContents:[], |
| | | recordName: '', |
| | | inspectionMesses: [] |
| | | }, |
| | | rules: { |
| | | companyId: [{ required: true, message: '请选择企业', trigger: 'blur' }], |
| | | deptId: [{ required: true, message: '请选择部门', trigger: 'blur' }], |
| | | year: [{ required: true, message: '请选择年份', trigger: 'blur' }], |
| | | fictionId: [{ required: true, message: '请选择编制人', trigger: 'blur' }], |
| | | ratifyId: [{ required: true, message: '请选择批准人', trigger: 'blur' }], |
| | | checkId: [{ required: true, message: '请选择审核人', trigger: 'blur' }], |
| | | fictionTime: [{ required: true, message: '请选择日期', trigger: 'blur' }], |
| | | frequency: [{ required: true, message: '请输入监测频率', trigger: 'blur' }], |
| | | stakeholder: [{required: true, message: "", trigger: "blur"}], |
| | | expectation: [{required: true, message: "", trigger: "blur"}], |
| | | solutions: [{required: true, message: "", trigger: "blur"}], |
| | | expectContents:[{ required: true, message: '请填写相关方期望或要求识别表', trigger: 'blur' }], |
| | | recordName: [{ required: true, message: '请输入记录名称', trigger: 'blur' }], |
| | | monthlyTime: [{required: true, message: "", trigger: "blur"}], |
| | | checkUser: [{required: true, message: "", trigger: "blur"}], |
| | | entrench: [{required: true, message: "", trigger: "blur"}], |
| | | identification: [{required: true, message: "", trigger: "blur"}], |
| | | place: [{required: true, message: "", trigger: "blur"}], |
| | | clean: [{required: true, message: "", trigger: "blur"}], |
| | | safety: [{required: true, message: "", trigger: "blur"}], |
| | | environment: [{required: true, message: "", trigger: "blur"}], |
| | | consistency: [{required: true, message: "", trigger: "blur"}], |
| | | inspectionMesses:[{ required: true, message: '请填写月度检查记录表', trigger: 'blur' }], |
| | | }, |
| | | peopleList: [], |
| | | isAdmin: false, |
| | | companyList: [], |
| | | deptList: [], |
| | | }) |
| | | |
| | | onMounted(() => { |
| | |
| | | } |
| | | title.value = type === 'add' ? '新增' : type ==='edit' ? '编辑' : '查看' ; |
| | | if(type === 'edit' || type === 'review') { |
| | | state.form = JSON.parse(JSON.stringify(value)); |
| | | if(state.isAdmin){ |
| | | state.form.companyId = value.companyId |
| | | state.form.companyName = value.companyName |
| | | const res = await getMonthlyRecordById({monthlyId: value.id}) |
| | | if(res.code === 200){ |
| | | state.form = res.data |
| | | |
| | | }else{ |
| | | ElMessage.warning(res.message) |
| | | } |
| | | if(state.isAdmin){ |
| | | state.form.companyId = res.data.companyId |
| | | state.form.companyName = res.data.companyName |
| | | } |
| | | // state.form = JSON.parse(JSON.stringify(value)); |
| | | // if(state.isAdmin){ |
| | | // state.form.companyId = value.companyId |
| | | // state.form.companyName = value.companyName |
| | | // } |
| | | } |
| | | await getDeptList() |
| | | await getPeopleList() |
| | | dialogVisible.value = true; |
| | | } |
| | |
| | | const valid = await busRef.value.validate(); |
| | | if(valid){ |
| | | if(title.value === '新增'){ |
| | | // console.log('sta',state.form) |
| | | // const {id, ...data} = JSON.parse(JSON.stringify(state.form)) |
| | | // const res = await addNeedDiscren(data) |
| | | // if(res.code === 200){ |
| | | // ElMessage({ |
| | | // type: 'success', |
| | | // message: '新增成功' |
| | | // }); |
| | | // }else{ |
| | | // ElMessage.warning(res.message) |
| | | // } |
| | | // emit("getList") |
| | | // busRef.value.clearValidate(); |
| | | // reset(); |
| | | // dialogVisible.value = false; |
| | | console.log('sta',state.form) |
| | | const {id, ...data} = JSON.parse(JSON.stringify(state.form)) |
| | | const res = await addMonthlyRecord(data) |
| | | if(res.code === 200){ |
| | | ElMessage({ |
| | | type: 'success', |
| | | message: '新增成功' |
| | | }); |
| | | }else{ |
| | | ElMessage.warning(res.message) |
| | | } |
| | | emit("getList") |
| | | busRef.value.clearValidate(); |
| | | reset(); |
| | | dialogVisible.value = false; |
| | | }else if(title.value === '编辑'){ |
| | | const {...data} = JSON.parse(JSON.stringify(state.form)) |
| | | const res = await editNeedDiscren(data) |
| | | data.inspectionMesses.forEach(item => { |
| | | item.monthlyId = data.id |
| | | }) |
| | | const res = await editMonthlyRecord(data) |
| | | if(res.code === 200){ |
| | | ElMessage({ |
| | | type: 'success', |
| | |
| | | } |
| | | } |
| | | } |
| | | const getDeptList = async () => { |
| | | if(state.isAdmin && (state.form.companyId == 0 || state.form.companyId == null)){ |
| | | return |
| | | } |
| | | const param = { |
| | | pageNum: 1, |
| | | pageSize: 999, |
| | | companyId: state.form.companyId |
| | | } |
| | | const res = await getDept(param) |
| | | if(res.code === 200){ |
| | | state.deptList = res.data |
| | | } |
| | | } |
| | | |
| | | const getPeopleList = async ()=> { |
| | | if(state.isAdmin && (state.form.companyId == 0 || state.form.companyId == null)){ |
| | | return |
| | |
| | | state.form = { |
| | | id: '', |
| | | companyId: null, |
| | | deptId: null, |
| | | year: '', |
| | | fictionId: null, |
| | | checkId: null, |
| | | ratifyId: null, |
| | | fictionTime: null, |
| | | frequency: '', |
| | | expectContents:[], |
| | | recordName: '', |
| | | inspectionMesses: [] |
| | | } |
| | | state.companyList = [] |
| | | } |
| | |
| | | |
| | | |
| | | const selectValueCom = (val) => { |
| | | state.form.fictionId = null |
| | | state.form.checkId = null |
| | | state.form.ratifyId = null |
| | | state.form.deptId = null |
| | | state.companyList.forEach(item => { |
| | | if(item.name === val){ |
| | | state.form.companyId = item.id |
| | | } |
| | | }) |
| | | getDeptList() |
| | | getPeopleList() |
| | | } |
| | | |
| | | |
| | | const addTableData = () => { |
| | | state.form.expectContents.push({expectContentMesses: [{}]}) |
| | | state.form.inspectionMesses.push({}) |
| | | } |
| | | const addObject = (val,itemIndex) => { |
| | | state.form.expectContents.forEach((item,index) => { |
| | | state.form.inspectionMesses.forEach((item,index) => { |
| | | if(index == itemIndex){ |
| | | item.expectContentMesses.push({}) |
| | | } |
| | | }) |
| | | } |
| | | const delObject = (val,itemIndex) => { |
| | | state.form.expectContents.forEach((item,index) => { |
| | | state.form.inspectionMesses.forEach((item,index) => { |
| | | if(index == itemIndex){ |
| | | if(item.expectContentMesses.length == 1){ |
| | | state.form.expectContents.splice(index,1) |
| | | }else { |
| | | item.expectContentMesses.pop() |
| | | } |
| | | state.form.inspectionMesses.splice(index,1) |
| | | } |
| | | }) |
| | | } |