From 6566ae250ee4a89613a36953c7a42a212c33125f Mon Sep 17 00:00:00 2001
From: licp <lichunping@guanfang.com.cn>
Date: 星期四, 26 十二月 2024 14:33:06 +0800
Subject: [PATCH] 完成7.7质量监督计划
---
src/components/do/a7-quality-control-plan/recordsDialog.vue | 423 +++++++++++
src/components/do/a7-quality-control-plan/rectifyDialog.vue | 421 +++++++++++
src/components/do/a7-quality-control-plan/processingSheet.vue | 512 +++++++++++++
src/components/do/a7-quality-control-plan/detailFormDialog.vue | 163 ++++
src/components/view/a7-quality-control-plan.vue | 676 ++++++++++++++++++
5 files changed, 2,195 insertions(+), 0 deletions(-)
diff --git a/src/components/do/a7-quality-control-plan/detailFormDialog.vue b/src/components/do/a7-quality-control-plan/detailFormDialog.vue
new file mode 100644
index 0000000..68218a1
--- /dev/null
+++ b/src/components/do/a7-quality-control-plan/detailFormDialog.vue
@@ -0,0 +1,163 @@
+<template>
+ <div>
+ <el-dialog :close-on-click-modal="false" :close-on-press-escape="false"
+ :title="operationType === 'edit'? '缂栬緫' : '鏂板'"
+ :visible.sync="formDia"
+ width="80%" @close="closeDia">
+ <el-form ref="form" :model="form" :rules="rules" label-width="140px">
+ <el-col :span="12">
+ <el-form-item label="鐩戠潱鏃ユ湡" prop="superviseTime">
+ <el-date-picker
+ v-model="form.superviseTime"
+ clearable
+ format="yyyy-MM-dd"
+ placeholder="閫夋嫨鏃ユ湡"
+ size="small"
+ style="width: 100%"
+ type="date"
+ value-format="yyyy-MM-dd">
+ </el-date-picker>
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="鐩戠潱鐩殑" prop="supervisePurpose">
+ <el-input v-model="form.supervisePurpose" clearable size="small"></el-input>
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="鐩戞帶椤圭洰" prop="superviseProject">
+ <el-input v-model="form.superviseProject" clearable size="small"></el-input>
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="琚洃鐫d汉鍛�" prop="supervisee">
+ <el-input v-model="form.supervisee" clearable size="small"></el-input>
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="鐩戠潱鍘熷洜" prop="superviseReason">
+ <el-input v-model="form.superviseReason" clearable size="small"></el-input>
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="澶囨敞" prop="remark">
+ <el-input v-model="form.remark" clearable size="small"></el-input>
+ </el-form-item>
+ </el-col>
+ </el-form>
+ <span slot="footer" class="dialog-footer">
+ <el-button @click="closeDia">鍙� 娑�</el-button>
+ <el-button :loading="upLoad" type="primary" @click="submitForm">纭� 瀹�</el-button>
+ </span>
+ </el-dialog>
+ </div>
+</template>
+
+<script>
+export default {
+ name: 'detailFormDialog',
+ // import 寮曞叆鐨勭粍浠堕渶瑕佹敞鍏ュ埌瀵硅薄涓墠鑳戒娇鐢�
+ components: {},
+ props: ['superviseId'],
+ data() {
+ // 杩欓噷瀛樻斁鏁版嵁
+ return {
+ formDia: false,
+ form: {
+ qualityMonitorDetailsId: '',
+ superviseTime: '',
+ supervisePurpose: '',
+ superviseProject: '',
+ supervisee: '',
+ superviseReason: '',
+ remark: '',
+ superviseDetailsId: '',
+ },
+ rules: {
+ superviseTime: [{ required: true, message: '璇疯緭鍏ョ洃鐫f棩鏈�', trigger: 'blur' }],
+ supervisePurpose: [{ required: true, message: '璇疯緭鍏ョ洃鐫g洰鐨�', trigger: 'blur' }],
+ superviseProject: [{ required: true, message: '璇疯緭鍏ョ洃鎺ч」鐩�', trigger: 'blur' }],
+ },
+ upLoad: false,
+ operationType: '',
+ };
+ },
+ // 鏂规硶闆嗗悎
+ methods: {
+ openDia(type, row) {
+ this.formDia = true
+ this.operationType = type
+ if (type === 'edit') {
+ this.searchInfo(row)
+ }
+ },
+ searchInfo (row) {
+ this.form = {...row}
+ },
+ // 鎻愪氦琛ㄥ崟
+ submitForm () {
+ this.$refs['form'].validate((valid) => {
+ if (valid) {
+ if (this.operationType === 'add') {
+ this.handleAdd()
+ } else {
+ this.handleEdit()
+ }
+ }
+ })
+ },
+ // 鎻愪氦鏂板
+ handleAdd () {
+ let entity = this.HaveJson(this.form)
+ entity.superviseId = this.superviseId
+ this.upLoad = true
+ this.$axios.post(this.$api.qualitySupervise.addQualitySuperviseDetail, entity, {
+ headers: {
+ "Content-Type": "application/json"
+ },
+ noQs: true
+ }).then(res => {
+ this.upLoad = false
+ if (res.code === 201) return
+ this.$message.success('鏂板鎴愬姛')
+ this.closeDia()
+ }).catch(err => {
+ console.log('err---', err);
+ this.upLoad = false
+ })
+ },
+ // 鎻愪氦淇敼
+ handleEdit () {
+ const entity = this.HaveJson(this.form)
+ this.upLoad = true
+ this.$axios.post(this.$api.qualitySupervise.updateQualitySuperviseDetail, entity, {
+ headers: {
+ "Content-Type": "application/json"
+ },
+ noQs: true
+ }).then(res => {
+ this.upLoad = false
+ if (res.code === 201) return
+ this.$message.success('淇敼鎴愬姛')
+ this.closeDia()
+ }).catch(err => {
+ console.log('err---', err);
+ this.upLoad = false
+ })
+ },
+ // 鍏抽棴寮规
+ closeDia () {
+ this.$refs.form.resetFields();
+ this.formDia = false
+ this.$emit('closeDia')
+ },
+ }
+};
+</script>
+
+<style scoped>
+>>>.el-dialog__body {
+ max-height: 720px;
+ overflow-y: auto;
+}
+</style>
diff --git a/src/components/do/a7-quality-control-plan/processingSheet.vue b/src/components/do/a7-quality-control-plan/processingSheet.vue
new file mode 100644
index 0000000..383cd8c
--- /dev/null
+++ b/src/components/do/a7-quality-control-plan/processingSheet.vue
@@ -0,0 +1,512 @@
+<template>
+ <div>
+ <el-dialog :close-on-click-modal="false" :close-on-press-escape="false"
+ :visible.sync="formDia"
+ title="涓嶇鍚堝伐浣滄帶鍒跺崟"
+ width="60%" @close="closeProcessingDia">
+ <el-steps :active="currentStep" align-center finish-status="success">
+ <el-step title="涓嶇鍚堝伐浣滄儏鍐佃褰�" @click.native="setStep(0)"></el-step>
+ <el-step title="澶勭悊鎺柦" @click.native="setStep(1)"></el-step>
+ <el-step title="绾犳鎺柦" @click.native="setStep(2)"></el-step>
+ <el-step title="鏄惁閫氱煡瀹㈡埛鍙婂彲鎭㈠宸ヤ綔" @click.native="setStep(3)"></el-step>
+ </el-steps>
+ <div>
+ <table border="1" cellspacing="10" class="tables">
+ <tr v-if="showStep === 0">
+ <td class="td-title">
+ <p>鍙戠敓閮ㄩ棬锛�</p>
+ </td>
+ <td class="td-info">
+ <el-input v-if="showStep === 0 && currentStep === 0" v-model="form.occurrenceDepartment"
+ placeholder="璇疯緭鍏ュ唴瀹�"
+ size="small">
+ </el-input>
+ <span v-if="showStep === 0 && currentStep !== 0" class="td-info1"> {{ form.occurrenceDepartment }}</span>
+ </td>
+ <td class="td-title">
+ <p>閮ㄩ棬璐熻矗浜猴細</p>
+ </td>
+ <td class="td-info">
+ <el-input v-if="showStep === 0 && currentStep === 0" v-model="form.headDepartment"
+ placeholder="璇疯緭鍏ュ唴瀹�"
+ size="small">
+ </el-input>
+ <span v-if="showStep === 0 && currentStep !== 0" class="td-info1"> {{ form.headDepartment }}</span>
+ </td>
+ </tr>
+ <tr v-if="showStep === 0">
+ <td class="td-title">
+ <p><span class="required-span">* </span>涓嶇鍚堝伐浣滃彂鐜伴�斿緞锛�</p>
+ </td>
+ <td class="td-info" colspan="3">
+ <el-radio-group v-model="form.findWay" v-removeAriaHidden :disabled="showStep === 0 && currentStep !== 0">
+ <el-radio :label="0">绠$悊璇勫</el-radio>
+ <el-radio :label="1">鍐呴儴瀹℃牳</el-radio>
+ <el-radio :label="2">妫�娴嬭繃绋嬫帶鍒�</el-radio>
+ <el-radio :label="3">鍐呴儴璐ㄩ噺鎺у埗</el-radio>
+ <el-radio :label="4">鍐呴儴鐩戠潱</el-radio>
+ <el-radio :label="5">澶栭儴璇勫</el-radio>
+ <el-radio :label="6">澶栭儴鎶曡瘔</el-radio>
+ <el-radio :label="7">鍏朵粬</el-radio>
+ </el-radio-group>
+ </td>
+ </tr>
+ <tr v-if="showStep === 0">
+ <td class="td-title">
+ <p>涓嶇鍚堝伐浣滅殑璇︾粏璁板綍锛�</p>
+ </td>
+ <td class="td-info" colspan="3">
+ <el-input v-if="showStep === 0 && currentStep === 0" v-model="form.recordDetail"
+ :rows="4"
+ placeholder="璇疯緭鍏ュ唴瀹�"
+ size="small"
+ type="textarea">
+ </el-input>
+ <span v-if="showStep === 0 && currentStep !== 0" class="td-info1"> {{ form.recordDetail }}</span>
+ </td>
+ </tr>
+ <tr v-if="showStep === 0">
+ <td class="td-title">
+ <p>涓嶇鍚堝伐浣滅殑浠ュ強鍙婃潯娆惧彿锛�</p>
+ </td>
+ <td class="td-info" colspan="3">
+ <el-input v-if="showStep === 0 && currentStep === 0" v-model="form.recordAccording"
+ :rows="4"
+ placeholder="璇疯緭鍏ュ唴瀹�"
+ size="small"
+ type="textarea">
+ </el-input>
+ <span v-if="showStep === 0 && currentStep !== 0" class="td-info1"> {{ form.recordAccording }}</span>
+ </td>
+ </tr>
+ <tr v-if="showStep === 0">
+ <td class="td-title">
+ <p><span class="required-span">* </span>琚洃鐫d汉锛�</p>
+ </td>
+ <td class="td-info">
+ <el-select v-if="showStep === 0 && currentStep === 0" v-model="form.supervisedUserId" clearable
+ filterable
+ placeholder="璇烽�夋嫨" size="small">
+ <el-option v-for="(item,i) in supervisedUserList" :key="i" :label="item.label" :value="item.value">
+ </el-option>
+ </el-select>
+ <span v-if="showStep === 0 && currentStep !== 0" class="td-info1"> {{ form.supervisedUserName }}</span>
+ </td>
+ <td class="td-title">
+ <p><span class="required-span">* </span>琚洃鐫f椂闂达細</p>
+ </td>
+ <td class="td-info">
+ <el-date-picker
+ v-if="showStep === 0 && currentStep === 0"
+ v-model="form.supervisedTime"
+ format="yyyy-MM-dd"
+ placeholder="閫夋嫨鏃ユ湡"
+ size="small"
+ style="width: 80%"
+ type="date"
+ value-format="yyyy-MM-dd">
+ </el-date-picker>
+ <span v-if="showStep === 0 && currentStep !== 0" class="td-info1"> {{ form.supervisedTime }}</span>
+ </td>
+ </tr>
+ <tr v-if="showStep === 0">
+ <td v-if="currentStep === 0" class="td-title">
+ <p><span class="required-span">* </span>璇烽�夋嫨涓嬩竴姝ヨ礋璐d汉锛�</p>
+ </td>
+ <td v-if="currentStep === 0" class="td-info">
+ <el-select v-model="form.actionsUserId" clearable filterable
+ placeholder="璇烽�夋嫨" size="small">
+ <el-option v-for="(item,i) in personList" :key="i" :label="item.label" :value="item.value">
+ </el-option>
+ </el-select>
+ </td>
+ </tr>
+ <tr v-if="showStep === 0 && currentStep !== 0">
+ <td class="td-title">
+ <p>鍙戠幇閮ㄩ棬锛�</p>
+ </td>
+ <td class="td-info">
+ {{form.foundDepartment}}
+ </td>
+ <td class="td-title">
+ <p>鏃堕棿锛�</p>
+ </td>
+ <td class="td-info">
+ {{form.recordTime}}
+ </td>
+ </tr>
+ <tr v-if="showStep === 0 && currentStep !== 0">
+ <td class="td-title">
+ <p>璁板綍浜猴細</p>
+ </td>
+ <td class="td-info">
+ {{form.recordUserName}}
+ </td>
+ <td class="td-title">
+ <p>璁板綍鏃堕棿锛�</p>
+ </td>
+ <td class="td-info">
+ {{form.recordTime}}
+ </td>
+ </tr>
+ <tr v-if="showStep === 1">
+ <td class="td-title">
+ <p><span class="required-span">* </span>娑堥櫎涓嶇鍚堝伐浣滄墍閲囧彇鐨勬帾鏂斤細</p>
+ </td>
+ <td class="td-info" colspan="3">
+ <el-input v-if="showStep === 1 && currentStep === 1" v-model="form.eliminateMeasure"
+ :rows="5"
+ placeholder="璇疯緭鍏ュ唴瀹�"
+ size="small"
+ type="textarea">
+ </el-input>
+ <span v-if="showStep === 1 && currentStep !== 1" class="td-info1"> {{ form.eliminateMeasure }}</span>
+ </td>
+ </tr>
+ <tr v-if="showStep === 1">
+ <td class="td-title">
+ <p>褰撳墠璐熻矗浜猴細</p>
+ </td>
+ <td class="td-info">
+ {{form.actionsUserName}}
+ </td>
+ <td class="td-title">
+ <p>澶勭悊鏃堕棿锛�</p>
+ </td>
+ <td class="td-info">
+ {{form.actionsTime}}
+ </td>
+ </tr>
+ <tr v-if="showStep === 1">
+ <td v-if="currentStep === 1" class="td-title">
+ <p><span class="required-span">* </span>璇烽�夋嫨涓嬩竴姝ヨ礋璐d汉锛�</p>
+ </td>
+ <td v-if="currentStep === 1" class="td-info" colspan="3">
+ <el-select v-model="form.correctUserId" clearable filterable
+ placeholder="璇烽�夋嫨" size="small">
+ <el-option v-for="(item,i) in personList" :key="i" :label="item.label" :value="item.value">
+ </el-option>
+ </el-select>
+ </td>
+ </tr>
+ <tr v-if="showStep === 2">
+ <td class="td-title">
+ <p><span class="required-span">* </span>鏄惁闇�瑕侀噰鍙栫籂姝f帾鏂斤細</p>
+ </td>
+ <td class="td-info" colspan="3">
+ <el-radio-group v-model="form.isCorrect" v-removeAriaHidden :disabled="showStep === 2 && currentStep !== 2">
+ <el-radio :label="0">鍚�</el-radio>
+ <el-radio :label="1">鏄�</el-radio>
+ </el-radio-group>
+ </td>
+ </tr>
+ <tr v-if="showStep === 2">
+ <td class="td-title">
+ <p>绾犳鎺柦澶勭悊鍗曡窡韪細</p>
+ </td>
+ <td class="td-info" colspan="3">
+ <el-input v-if="showStep === 2 && currentStep === 2" v-model="form.correctContent"
+ :rows="5"
+ placeholder="璇疯緭鍏ュ唴瀹�"
+ size="small"
+ type="textarea">
+ </el-input>
+ <span v-if="showStep === 2 && currentStep !== 2" class="td-info1"> {{ form.correctContent }}</span>
+ </td>
+ </tr>
+ <tr v-if="showStep === 2">
+ <td class="td-title">
+ <p>褰撳墠璐熻矗浜猴細</p>
+ </td>
+ <td class="td-info">
+ {{form.correctUserName}}
+ </td>
+ <td v-if="showStep === 2 && currentStep !== 2" class="td-title">
+ <p>澶勭悊鏃堕棿锛�</p>
+ </td>
+ <td v-if="showStep === 2 && currentStep !== 2" class="td-info">
+ {{form.correctTime}}
+ </td>
+ <td v-if="currentStep === 2" class="td-title">
+ <p><span class="required-span">* </span>璇烽�夋嫨涓嬩竴姝ヨ礋璐d汉锛�</p>
+ </td>
+ <td v-if="currentStep === 2" class="td-info">
+ <el-select v-model="form.qualityManagerUserId" clearable filterable
+ placeholder="璇烽�夋嫨" size="small">
+ <el-option v-for="(item,i) in personList" :key="i" :label="item.label" :value="item.value">
+ </el-option>
+ </el-select>
+ </td>
+ </tr>
+ <tr v-if="showStep === 3">
+ <td rowspan="3">
+ <p>鏄惁閫氱煡瀹㈡埛鍙婂彲鎭㈠宸ヤ綔</p>
+ </td>
+ </tr>
+ <tr v-if="showStep === 3">
+ <td class="td-title">
+ <p><span class="required-span">* </span>閫氱煡瀹㈡埛锛�</p>
+ </td>
+ <td class="td-info" colspan="2">
+ <el-radio-group v-model="form.notifyCustomer" v-removeAriaHidden :disabled="showStep === 3 && currentStep !== 3">
+ <el-radio :label="0">鍚�</el-radio>
+ <el-radio :label="1">鏄�</el-radio>
+ </el-radio-group>
+ </td>
+ </tr>
+ <tr v-if="showStep === 3">
+ <td class="td-title">
+ <p><span class="required-span">* </span>鎭㈠宸ヤ綔锛�</p>
+ </td>
+ <td class="td-info" colspan="2">
+ <el-radio-group v-model="form.backToWork" v-removeAriaHidden :disabled="showStep === 3 && currentStep !== 3">
+ <el-radio :label="0">鍚�</el-radio>
+ <el-radio :label="1">鏄�</el-radio>
+ </el-radio-group>
+ </td>
+ </tr>
+ <tr v-if="showStep === 3">
+ <td class="td-title">
+ <p>褰撳墠璐熻矗浜猴細</p>
+ </td>
+ <td class="td-info">
+ {{form.qualityManagerUserName}}
+ </td>
+ <td v-if="showStep === 3 && currentStep !== 3" class="td-title">
+ <p>澶勭悊鏃堕棿锛�</p>
+ </td>
+ <td v-if="showStep === 3 && currentStep !== 2" class="td-info">
+ {{form.qualityManagerTime}}
+ </td>
+ </tr>
+ </table>
+ </div>
+ <span slot="footer" class="dialog-footer">
+ <el-button @click="closeProcessingDia">鍙� 娑�</el-button>
+ <el-button v-if="currentStep !== 4" :loading="editLoad" type="primary" @click="handleEdit">鎻� 浜�</el-button>
+ </span>
+ </el-dialog>
+ </div>
+</template>
+
+<script>
+export default {
+ name: 'processingSheet',
+ // import 寮曞叆鐨勭粍浠堕渶瑕佹敞鍏ュ埌瀵硅薄涓墠鑳戒娇鐢�
+ components: {},
+ data() {
+ // 杩欓噷瀛樻斁鏁版嵁
+ return {
+ formDia: false,
+ currentStep: 0,
+ showStep: 0,
+ form: {
+ occurrenceDepartment: '',
+ headDepartment: '',
+ findWay: '',
+ recordDetail: '',
+ recordAccording: '',
+ supervisedUserId: '',
+ supervisedUserName: '',
+ supervisedTime: '',
+ actionsUserId: '',
+ actionsUserName: '',
+ eliminateMeasure: '',
+ correctUserId: '',
+ correctUserName: '',
+ isCorrect: '',
+ qualityManagerUserId: '',
+ correctContent: '',
+ superviseDetailsId: '',
+ superviseDetailsAccordingId: '',
+ flowType: '',
+ recordUserName: '',
+ recordTime: '',
+ foundDepartment: '',
+ actionsTime: '',
+ correctTime: '',
+ notifyCustomer: '',
+ backToWork: '',
+ qualityManagerUserName: '',
+ qualityManagerTime: '',
+ },
+ editLoad: false,
+ personList: [],
+ supervisedUserList: [],
+ };
+ },
+ // 鏂规硶闆嗗悎
+ methods: {
+ openDia (row) {
+ this.formDia = true
+ this.searchInfo(row)
+ this.form.superviseDetailsId = row.superviseDetailsId
+ this.getAuthorizedPerson() // 鑾峰彇浜哄憳鍒楄〃
+ this.getSupervisedUserList() // 鑾峰彇褰撳墠閮ㄩ棬浜哄憳
+ },
+ // 鏌ヨ鐩戞帶璁″垝璇︽儏瀹炴柦淇℃伅
+ searchInfo (row) {
+ this.form.qualityMonitorDetailsId = row.qualityMonitorDetailsId
+ this.$axios.get(this.$api.qualitySupervise.getSuperviseDetailAccording + '?superviseDetailsId=' + row.superviseDetailsId).then(res => {
+ if (res.code === 201) return
+ if (res.data.superviseDetailsAccordingId === null) {
+ this.showStep = 0
+ this.currentStep = 0
+ } else {
+ this.form = res.data
+ if (res.data.isFinish === 0) {
+ if (res.data.actionsUserId) {
+ this.showStep = 1
+ this.currentStep = 1
+ }
+ if (res.data.correctUserId) {
+ this.showStep = 2
+ this.currentStep = 2
+ }
+ if (res.data.qualityManagerUserId) {
+ this.showStep = 3
+ this.currentStep = 3
+ }
+ } else {
+ this.currentStep = 4
+ this.showStep = 3
+ }
+ }
+ }).catch(err => {
+ console.log('err---', err);
+ })
+ },
+ // 鎻愪氦
+ handleEdit () {
+ if (this.currentStep === 0) {
+ if (this.form.findWay === null) {
+ this.$message.warning('璇烽�夋嫨涓嶇鍚堝伐浣滃彂鐜伴�斿緞')
+ return
+ }
+ if (!this.form.supervisedUserId) {
+ this.$message.warning('璇烽�夋嫨琚洃鐫d汉')
+ return
+ }
+ if (!this.form.supervisedTime) {
+ this.$message.warning('璇烽�夋嫨琚洃鐫f椂闂�')
+ return
+ }
+ if (!this.form.actionsUserId) {
+ this.$message.warning('璇烽�夋嫨涓嬩竴姝ヨ礋璐d汉')
+ return
+ }
+ } else if (this.currentStep === 1) {
+ if (!this.form.supervisedUserId) {
+ this.$message.warning('璇峰~鍐欐秷闄や笉绗﹀悎宸ヤ綔鎵�閲囧彇鐨勬帾鏂�')
+ return
+ }
+ if (!this.form.correctUserId) {
+ this.$message.warning('璇烽�夋嫨涓嬩竴姝ヨ礋璐d汉')
+ return
+ }
+ } else if (this.currentStep === 2) {
+ if (this.form.isCorrect === null) {
+ this.$message.warning('璇烽�夋嫨鏄惁闇�瑕侀噰鍙栫籂姝f帾鏂�')
+ return
+ }
+ if (!this.form.qualityManagerUserId) {
+ this.$message.warning('璇烽�夋嫨涓嬩竴姝ヨ礋璐d汉')
+ return
+ }
+ } else if (this.currentStep === 3) {
+ if (this.form.notifyCustomer === null) {
+ this.$message.warning('璇烽�夋嫨鏄惁閫氱煡瀹㈡埛')
+ return
+ }
+ if (this.form.backToWork === null) {
+ this.$message.warning('璇烽�夋嫨鏄惁鎭㈠宸ヤ綔')
+ return
+ }
+ }
+ this.editLoad = true
+ this.form.supervisedTime = ''
+ this.form.flowType = this.currentStep
+ delete this.form.recordTime
+ delete this.form.actionsTime
+ delete this.form.correctTime
+ this.$axios.post(this.$api.qualitySupervise.addSuperviseDetailAccording, this.form, {
+ headers: {
+ "Content-Type": "application/json"
+ },
+ noQs: true
+ }).then(res => {
+ this.editLoad = false
+ if (res.code === 201) return
+ this.$message.success('鎻愪氦鎴愬姛')
+ this.closeProcessingDia()
+ }).catch(err => {
+ console.log('err---', err);
+ this.editLoad = false
+ })
+ },
+ // 鍏抽棴寮规
+ closeProcessingDia () {
+ this.formDia = false
+ this.$emit('closeProcessingDia')
+ },
+ setStep (step) {
+ this.showStep = step
+ },
+ getAuthorizedPerson() {
+ this.$axios.get(this.$api.user.getUserMenu).then(res => {
+ let data = []
+ res.data.forEach(a => {
+ data.push({
+ label: a.name,
+ value: a.id
+ })
+ })
+ this.personList = data
+ })
+ },
+ getSupervisedUserList () {
+ this.$axios.get(this.$api.user.selectDepartmentLimsUserList).then(res => {
+ let data = []
+ res.data.forEach(a => {
+ data.push({
+ label: a.name,
+ value: a.id
+ })
+ })
+ this.supervisedUserList = data
+ })
+ },
+ }
+};
+</script>
+
+<style scoped>
+>>>.el-dialog {
+ margin: 10vh auto 50px !important;
+}
+.tables {
+ table-layout: fixed;
+ width: 100%;
+ margin-top: 10px;
+}
+.td-title {
+ height: 40px;
+ width: 170px;
+ text-align: center;
+ font-size: 14px;
+ word-wrap: break-word;
+ white-space: normal;
+ padding: 6px;
+}
+.td-info {
+ padding: 6px;
+}
+.td-info1 {
+ display: inline-block;
+ width: 100%;
+ text-align: left;
+ font-size: 14px;
+ word-wrap: break-word;
+ white-space: normal;
+}
+</style>
diff --git a/src/components/do/a7-quality-control-plan/recordsDialog.vue b/src/components/do/a7-quality-control-plan/recordsDialog.vue
new file mode 100644
index 0000000..ddd6e39
--- /dev/null
+++ b/src/components/do/a7-quality-control-plan/recordsDialog.vue
@@ -0,0 +1,423 @@
+<template>
+ <div>
+ <el-dialog :close-on-click-modal="false" :close-on-press-escape="false"
+ :visible.sync="formDia"
+ title="妫�娴嬪伐浣滅洃鐫h褰曡〃"
+ width="70%" @close="closeRecordsDia">
+ <el-steps :active="currentStep" align-center finish-status="success">
+ <el-step title="瀹炴柦"></el-step>
+ <el-step title="鎵瑰噯"></el-step>
+ </el-steps>
+ <div style="height: 65vh;overflow-y: auto">
+ <table border="1" cellspacing="10" class="tables">
+ <tr>
+ <td class="td-title">
+ <p><span class="required-span">* </span>妫�娴嬩汉鍛橈細</p>
+ </td>
+ <td colspan="2">
+ <el-input v-if="currentStep === 0" v-model="form.testMember"
+ placeholder="璇疯緭鍏ュ唴瀹�"
+ size="small">
+ </el-input>
+ <span v-else class="td-info"> {{ form.testMember }}</span>
+ </td>
+ <td class="td-title">
+ <p><span class="required-span">* </span>鐩戠潱鍛橈細</p>
+ </td>
+ <td colspan="2">
+ <el-input v-if="currentStep === 0" v-model="form.supervisor"
+ placeholder="璇疯緭鍏ュ唴瀹�"
+ size="small">
+ </el-input>
+ <span v-else class="td-info"> {{ form.supervisor }}</span>
+ </td>
+ </tr>
+ <tr>
+ <td class="td-title">
+ <p><span class="required-span">* </span>妫�娴嬮」鐩細</p>
+ </td>
+ <td>
+ <el-input v-if="currentStep === 0" v-model="form.testItem"
+ placeholder="璇疯緭鍏ュ唴瀹�"
+ size="small">
+ </el-input>
+ <span v-else class="td-info"> {{ form.testItem }}</span>
+ </td>
+ <td class="td-title">
+ <p><span class="required-span">* </span>鏍峰搧缂栧彿锛�</p>
+ </td>
+ <td>
+ <el-input v-if="currentStep === 0" v-model="form.sampleNumber"
+ placeholder="璇疯緭鍏ュ唴瀹�"
+ size="small">
+ </el-input>
+ <span v-else class="td-info"> {{ form.sampleNumber }}</span>
+ </td>
+ <td class="td-title">
+ <p><span class="required-span">* </span>妫�娴嬫棩鏈燂細</p>
+ </td>
+ <td>
+ <el-input v-if="currentStep === 0" v-model="form.testDate"
+ placeholder="璇疯緭鍏ュ唴瀹�"
+ size="small">
+ </el-input>
+ <span v-else class="td-info"> {{ form.testDate }}</span>
+ </td>
+ </tr>
+ <tr>
+ <td class="td-title">
+ <p><span class="required-span">* </span>浜哄憳锛�</p>
+ </td>
+ <td colspan="5">
+ <el-input v-if="currentStep === 0" v-model="form.personnel"
+ placeholder="璇疯緭鍏ュ唴瀹�"
+ size="small">
+ </el-input>
+ <span v-else class="td-info"> {{ form.personnel }}</span>
+ </td>
+ </tr>
+ <tr>
+ <td class="td-title">
+ <p><span class="required-span">* </span>浠櫒璁惧锛�</p>
+ </td>
+ <td colspan="5">
+ <el-input v-if="currentStep === 0" v-model="form.device"
+ placeholder="璇疯緭鍏ュ唴瀹�"
+ size="small">
+ </el-input>
+ <span v-else class="td-info"> {{ form.device }}</span>
+ </td>
+ </tr>
+ <tr>
+ <td class="td-title">
+ <p><span class="required-span">* </span>宸ヤ綔鐜锛�</p>
+ </td>
+ <td colspan="5">
+ <el-input v-if="currentStep === 0" v-model="form.environment"
+ placeholder="璇疯緭鍏ュ唴瀹�"
+ size="small">
+ </el-input>
+ <span v-else class="td-info"> {{ form.environment }}</span>
+ </td>
+ </tr>
+ <tr>
+ <td class="td-title">
+ <p><span class="required-span">* </span>鏍峰搧閲囬泦锛�</p>
+ </td>
+ <td colspan="5">
+ <el-input v-if="currentStep === 0" v-model="form.sampleCollection"
+ placeholder="璇疯緭鍏ュ唴瀹�"
+ size="small">
+ </el-input>
+ <span v-else class="td-info"> {{ form.sampleCollection }}</span>
+ </td>
+ </tr>
+ <tr>
+ <td class="td-title">
+ <p><span class="required-span">* </span>鏍峰搧鐨勫噯澶囷細</p>
+ </td>
+ <td colspan="5">
+ <el-input v-if="currentStep === 0" v-model="form.samplePreparation"
+ placeholder="璇疯緭鍏ュ唴瀹�"
+ size="small">
+ </el-input>
+ <span v-else class="td-info"> {{ form.samplePreparation }}</span>
+ </td>
+ </tr>
+ <tr>
+ <td class="td-title">
+ <p><span class="required-span">* </span>妫�娴嬫柟娉曪細</p>
+ </td>
+ <td colspan="5">
+ <el-input v-if="currentStep === 0" v-model="form.detectionMethod"
+ placeholder="璇疯緭鍏ュ唴瀹�"
+ size="small">
+ </el-input>
+ <span v-else class="td-info"> {{ form.detectionMethod }}</span>
+ </td>
+ </tr>
+ <tr>
+ <td class="td-title">
+ <p><span class="required-span">* </span>妫�娴嬭褰曪細</p>
+ </td>
+ <td colspan="5">
+ <el-input v-if="currentStep === 0" v-model="form.inspectionRecord"
+ placeholder="璇疯緭鍏ュ唴瀹�"
+ size="small">
+ </el-input>
+ <span v-else class="td-info"> {{ form.inspectionRecord }}</span>
+ </td>
+ </tr>
+ <tr>
+ <td class="td-title">
+ <p><span class="required-span">* </span>妫�娴嬫姤鍛婏細</p>
+ </td>
+ <td colspan="5">
+ <el-input v-if="currentStep === 0" v-model="form.examiningReport"
+ placeholder="璇疯緭鍏ュ唴瀹�"
+ size="small">
+ </el-input>
+ <span v-else class="td-info"> {{ form.examiningReport }}</span>
+ </td>
+ </tr>
+ <tr>
+ <td class="td-title">
+ <p><span class="required-span">* </span>鐩戠潱鎯呭喌璇勪环锛�</p>
+ </td>
+ <td colspan="5">
+ <el-input v-if="currentStep === 0" v-model="form.supervisionEvaluation"
+ :rows="4"
+ placeholder="璇疯緭鍏ュ唴瀹�"
+ size="small"
+ type="textarea">
+ </el-input>
+ <span v-else class="td-info"> {{ form.supervisionEvaluation }}</span>
+ </td>
+ </tr>
+ <tr>
+ <td class="td-title">
+ <p><span class="required-span">* </span>涓嶇鍚堝鐞嗘剰瑙侊細</p>
+ </td>
+ <td colspan="5">
+ <el-input v-if="currentStep === 0" v-model="form.handlingAdvice"
+ :rows="4"
+ placeholder="璇疯緭鍏ュ唴瀹�"
+ size="small"
+ type="textarea">
+ </el-input>
+ <span v-else class="td-info"> {{ form.handlingAdvice }}</span>
+ </td>
+ </tr>
+ <tr>
+ <td v-if="currentStep === 0" class="td-title">
+ <p><span class="required-span">* </span>璇烽�夋嫨涓嬩竴姝ユ壒鍑嗕汉锛�</p>
+ </td>
+ <td v-if="currentStep === 0" colspan="5">
+ <el-select v-model="form.ratifyUserId" clearable filterable
+ placeholder="璇烽�夋嫨" size="small">
+ <el-option v-for="(item,i) in personList" :key="i" :label="item.label" :value="item.value">
+ </el-option>
+ </el-select>
+ </td>
+ <td v-if="currentStep === 1" class="td-title">
+ <p>鎵瑰噯璐熻矗浜猴細</p>
+ </td>
+ <td v-if="currentStep === 1" class="td-info" colspan="5">
+ {{form.ratifyUserName}}
+ </td>
+ </tr>
+ <tr v-if="currentStep === 1 || currentStep === 2">
+ <td class="td-title">
+ <p><span class="required-span">* </span>瀹℃壒缁撹锛�</p>
+ </td>
+ <td colspan="2">
+ <el-input v-if="currentStep === 1"
+ v-model="form.ratifyOpinion"
+ :rows="4"
+ placeholder="璇疯緭鍏ュ唴瀹�"
+ size="small"
+ type="textarea">
+ </el-input>
+ <span v-if="currentStep === 2" class="td-info"> {{ form.ratifyOpinion }}</span>
+ </td>
+ <td class="td-title">
+ <p v-if="currentStep === 1">璇烽�夋嫨鏄惁绗﹀悎锛�</p>
+ <p v-if="currentStep === 2">鏄惁绗﹀悎锛�</p>
+ </td>
+ <td colspan="2">
+ <el-radio-group v-if="currentStep === 1" v-model="form.isAccording">
+ <el-radio :label="0">涓嶇鍚�</el-radio>
+ <el-radio :label="1">绗﹀悎</el-radio>
+ </el-radio-group>
+ <span v-if="currentStep === 2" class="td-info"> {{ form.isAccording === 0 ? '涓嶇鍚�' : '绗﹀悎' }}</span>
+ </td>
+ </tr>
+ </table>
+ </div>
+ <span slot="footer" class="dialog-footer">
+ <el-button @click="closeRecordsDia">鍙� 娑�</el-button>
+ <el-button v-if="currentStep !== 2" :loading="editLoad" type="primary" @click="handleEdit">鎻� 浜�</el-button>
+ </span>
+ </el-dialog>
+ </div>
+</template>
+
+<script>
+export default {
+ name: 'recordsDialog',
+ // import 寮曞叆鐨勭粍浠堕渶瑕佹敞鍏ュ埌瀵硅薄涓墠鑳戒娇鐢�
+ components: {},
+ data() {
+ // 杩欓噷瀛樻斁鏁版嵁
+ return {
+ formDia: false,
+ form: {
+ superviseDetailsId: '',
+ superviseDetailsRecordId: '',
+ testMember: '',
+ supervisor: '',
+ testItem: '',
+ sampleNumber: '',
+ testDate: '',
+ personnel: '',
+ device: '',
+ environment: '',
+ sampleCollection: '',
+ samplePreparation: '',
+ detectionMethod: '',
+ inspectionRecord: '',
+ examiningReport: '',
+ supervisionEvaluation: '',
+ handlingAdvice: '',
+ ratifyUserId: '',
+ ratifyUserName: '',
+ ratifyOpinion: '',
+ isAccording: '',
+ },
+ currentStep: 0,
+ editLoad: false,
+ personList: [],
+ };
+ },
+ // 鏂规硶闆嗗悎
+ methods: {
+ openDia(row) {
+ this.formDia = true
+ this.searchInfo(row)
+ this.getAuthorizedPerson()
+ },
+ // 鏌ヨ鐩戠潱璁″垝璇︽儏璁板綍娴佺▼淇℃伅
+ searchInfo (row) {
+ this.$axios.get(this.$api.qualitySupervise.getSuperviseDetailRecord + '?superviseDetailsId=' + row.superviseDetailsId).then(res => {
+ if (res.code === 201) return
+ // 鏈塻uperviseDetailsRecordId璇存槑鎻愪氦杩囪褰�
+ if (res.data.superviseDetailsRecordId) {
+ // 鏄惁缁撴潫0:鏈粨鏉�, 1:宸茬粨鏉�
+ if (res.data.isFinish === 0) {
+ this.currentStep = 1
+ } else if (res.data.isFinish === 1) {
+ this.currentStep = 2
+ }
+ } else {
+ this.currentStep = 0
+ }
+ this.form = res.data
+ this.form.superviseDetailsId = row.superviseDetailsId
+ }).catch(err => {
+ console.log('err---', err);
+ })
+ },
+ // 鎻愪氦娴佺▼
+ handleEdit () {
+ if (!this.form.testMember || !this.form.supervisor || !this.form.testItem || !this.form.sampleNumber
+ || !this.form.testDate) {
+ this.$message.warning('璇峰~鍐欏畬鏁�')
+ return
+ }
+ if (this.currentStep === 0) {
+ this.addInfo()
+ } else {
+ this.editInfo()
+ }
+ },
+ // 鎻愪氦璁板綍
+ addInfo () {
+ if (!this.form.ratifyUserId) {
+ this.$message.warning('璇烽�夋嫨涓嬩竴姝ユ壒鍑嗕汉')
+ return
+ }
+ this.editLoad = true
+ this.$axios.post(this.$api.qualitySupervise.addSuperviseDetailRecord, this.form, {
+ headers: {
+ "Content-Type": "application/json"
+ },
+ noQs: true
+ }).then(res => {
+ this.editLoad = false
+ if (res.code === 201) return
+ this.$message.success('鎿嶄綔鎴愬姛')
+ this.closeRecordsDia()
+ }).catch(err => {
+ console.log('err---', err);
+ this.editLoad = false
+ })
+ },
+ // 鎻愪氦鎵瑰噯
+ editInfo () {
+ if (!this.form.ratifyOpinion) {
+ this.$message.warning('璇峰~鍐欏鎵规剰瑙�')
+ return
+ }
+ console.log('this.form.isAccording---', this.form.isAccording);
+ if (this.form.isAccording === null) {
+ this.$message.warning('璇烽�夋嫨鏄惁绗﹀悎')
+ return
+ }
+ this.editLoad = true
+ this.$axios.post(this.$api.qualitySupervise.addSuperviseRecordOpinion, this.form, {
+ headers: {
+ "Content-Type": "application/json"
+ },
+ noQs: true
+ }).then(res => {
+ this.editLoad = false
+ if (res.code === 201) return
+ this.$message.success('鎿嶄綔鎴愬姛')
+ this.closeRecordsDia()
+ }).catch(err => {
+ console.log('err---', err);
+ this.editLoad = false
+ })
+ },
+ // 鍏抽棴寮规
+ closeRecordsDia () {
+ this.formDia = false
+ this.$emit('closeRecordsDia')
+ },
+ getAuthorizedPerson() {
+ this.$axios.get(this.$api.user.getUserMenu).then(res => {
+ let data = []
+ res.data.forEach(a => {
+ data.push({
+ label: a.name,
+ value: a.id
+ })
+ })
+ this.personList = data
+ })
+ },
+ }
+};
+</script>
+
+<style scoped>
+>>>.el-dialog {
+ margin: 20px auto 50px !important;
+}
+.tables {
+ table-layout: fixed;
+ width: 100%;
+ margin-top: 10px;
+}
+.td-title {
+ height: 40px;
+ text-align: center;
+ font-size: 14px;
+ word-wrap: break-word;
+ white-space: normal;
+ padding: 6px;
+}
+.td-info {
+ text-align: center;
+ font-size: 14px;
+ word-wrap: break-word;
+ white-space: normal;
+}
+.tables td {
+ height: 40px;
+ font-size: 14px;
+ word-wrap: break-word;
+ white-space: normal;
+ padding: 6px;
+}
+</style>
diff --git a/src/components/do/a7-quality-control-plan/rectifyDialog.vue b/src/components/do/a7-quality-control-plan/rectifyDialog.vue
new file mode 100644
index 0000000..591f7c6
--- /dev/null
+++ b/src/components/do/a7-quality-control-plan/rectifyDialog.vue
@@ -0,0 +1,421 @@
+<template>
+ <div>
+ <el-dialog :close-on-click-modal="false" :close-on-press-escape="false"
+ :visible.sync="formDia"
+ title="绾犳鎺柦澶勭悊鍗�"
+ width="60%" @close="closeRectifyDia">
+ <el-steps :active="currentStep" align-center finish-status="success">
+ <el-step title="涓嶅悎鏍兼垨鍋忕浜嬪疄鐨勬弿杩�" @click.native="setStep(0)"></el-step>
+ <el-step title="鍘熷洜鍒嗘瀽" @click.native="setStep(1)"></el-step>
+ <el-step title="绾犳鎺柦" @click.native="setStep(2)"></el-step>
+ <el-step title="瀹炴柦楠岃瘉缁撴灉" @click.native="setStep(3)"></el-step>
+ </el-steps>
+ <div style="height: 65vh;overflow-y: auto;">
+ <table border="1" cellspacing="10" class="tables">
+ <tr v-if="showStep === 0">
+ <td class="td-title">
+ <p><span class="required-span">* </span>涓嶅悎鏍兼垨鍋忕浜嬪疄鐨勬弿杩帮細</p>
+ </td>
+ <td class="td-info" colspan="3">
+ <el-input v-if="showStep === 0 && currentStep === 0" v-model="form.raiseResult"
+ :rows="4"
+ placeholder="璇疯緭鍏ュ唴瀹�"
+ size="small"
+ type="textarea">
+ </el-input>
+ <span v-if="showStep === 0 && currentStep !== 0" class="td-info1"> {{ form.raiseResult }}</span>
+ </td>
+ </tr>
+ <tr v-if="showStep === 0">
+ <td v-if="currentStep === 0" class="td-title">
+ <p><span class="required-span">* </span>璇烽�夋嫨涓嬩竴姝ヨ礋璐d汉锛�</p>
+ </td>
+ <td v-if="currentStep === 0" class="td-info" colspan="3">
+ <el-select v-model="form.causeUserId" clearable filterable
+ placeholder="璇烽�夋嫨" size="small">
+ <el-option v-for="(item,i) in personList" :key="i" :label="item.label" :value="item.value">
+ </el-option>
+ </el-select>
+ </td>
+ </tr>
+ <tr v-if="showStep === 0 && currentStep !== 0">
+ <td class="td-title">
+ <p>鎻愬嚭浜猴細</p>
+ </td>
+ <td class="td-info">
+ {{form.raiseUserName}}
+ </td>
+ <td class="td-title">
+ <p>鎻愬嚭閮ㄩ棬锛�</p>
+ </td>
+ <td class="td-info">
+ {{form.raiseDepartment}}
+ </td>
+ </tr>
+ <tr v-if="showStep === 0 && currentStep !== 0">
+ <td class="td-title">
+ <p>鏃ユ湡锛�</p>
+ </td>
+ <td class="td-info" colspan="3">
+ {{form.raiseTime}}
+ </td>
+ </tr>
+ <tr v-if="showStep === 1">
+ <td class="td-title">
+ <p><span class="required-span">* </span>鍘熷洜鍒嗘瀽锛�</p>
+ </td>
+ <td class="td-info" colspan="3">
+ <el-input v-if="showStep === 1 && currentStep === 1" v-model="form.causeResult"
+ :rows="5"
+ placeholder="璇疯緭鍏ュ唴瀹�"
+ size="small"
+ type="textarea">
+ </el-input>
+ <span v-if="showStep === 1 && currentStep !== 1" class="td-info1"> {{ form.causeResult }}</span>
+ </td>
+ </tr>
+ <tr v-if="showStep === 1 && currentStep !== 1">
+ <td class="td-title">
+ <p>鍘熷洜鍒嗘瀽浜猴細</p>
+ </td>
+ <td class="td-info">
+ {{form.causeUserName}}
+ </td>
+ <td class="td-title">
+ <p>璐d换閮ㄩ棬锛�</p>
+ </td>
+ <td class="td-info">
+ {{form.causeDepartment}}
+ </td>
+ </tr>
+ <tr v-if="showStep === 1 && currentStep !== 1">
+ <td class="td-title">
+ <p>鍘熷洜鍒嗘瀽鏃ユ湡锛�</p>
+ </td>
+ <td class="td-info" colspan="3">
+ {{form.causeTime}}
+ </td>
+ </tr>
+ <tr v-if="showStep === 1">
+ <td v-if="currentStep === 1" class="td-title">
+ <p><span class="required-span">* </span>璇烽�夋嫨涓嬩竴姝ヨ礋璐d汉锛�</p>
+ </td>
+ <td v-if="currentStep === 1" class="td-info" colspan="3">
+ <el-select v-model="form.correctUserId" clearable filterable
+ placeholder="璇烽�夋嫨" size="small">
+ <el-option v-for="(item,i) in personList" :key="i" :label="item.label" :value="item.value">
+ </el-option>
+ </el-select>
+ </td>
+ </tr>
+ <tr v-if="showStep === 2">
+ <td class="td-title">
+ <p><span class="required-span">* </span>绾犳鎺柦锛�</p>
+ </td>
+ <td class="td-info" colspan="3">
+ <el-input v-if="showStep === 2 && currentStep === 2" v-model="form.correctResult"
+ :rows="5"
+ placeholder="璇疯緭鍏ュ唴瀹�"
+ size="small"
+ type="textarea">
+ </el-input>
+ <span v-if="showStep === 2 && currentStep !== 2" class="td-info1"> {{ form.correctResult }}</span>
+ </td>
+ </tr>
+ <tr v-if="showStep === 2">
+ <td class="td-title">
+ <p>鎻愬嚭瑕佹眰閮ㄩ棬纭锛�</p>
+ </td>
+ <td class="td-info" colspan="3">
+ <el-input v-if="showStep === 2 && currentStep === 2" v-model="form.raiseDepartmentAffirm"
+ :rows="5"
+ placeholder="璇疯緭鍏ュ唴瀹�"
+ size="small"
+ type="textarea">
+ </el-input>
+ <span v-if="showStep === 2 && currentStep !== 2" class="td-info1"> {{ form.raiseDepartmentAffirm }}</span>
+ </td>
+ </tr>
+ <tr v-if="showStep === 2 && currentStep !== 2">
+ <td class="td-title">
+ <p>绾犳浜猴細</p>
+ </td>
+ <td class="td-info">
+ {{form.correctUserName}}
+ </td>
+ <td class="td-title">
+ <p>璐d换閮ㄩ棬锛�</p>
+ </td>
+ <td class="td-info">
+ {{form.correctDepartment}}
+ </td>
+ </tr>
+ <tr v-if="showStep === 2 && currentStep !== 2">
+ <td class="td-title">
+ <p>绾犳鏃ユ湡锛�</p>
+ </td>
+ <td class="td-info" colspan="3">
+ {{form.correctTime}}
+ </td>
+ </tr>
+ <tr v-if="showStep === 2">
+ <td v-if="currentStep === 2" class="td-title">
+ <p><span class="required-span">* </span>璇烽�夋嫨涓嬩竴姝ヨ礋璐d汉锛�</p>
+ </td>
+ <td v-if="currentStep === 2" class="td-info" colspan="3">
+ <el-select v-model="form.validationUserId" clearable filterable
+ placeholder="璇烽�夋嫨" size="small">
+ <el-option v-for="(item,i) in personList" :key="i" :label="item.label" :value="item.value">
+ </el-option>
+ </el-select>
+ </td>
+ </tr>
+ <tr v-if="showStep === 3">
+ <td class="td-title">
+ <p><span class="required-span">* </span>瀹炴柦楠岃瘉缁撴灉锛�</p>
+ </td>
+ <td class="td-info" colspan="3">
+ <el-input v-if="showStep === 3 && currentStep === 3" v-model="form.validationResult"
+ :rows="5"
+ placeholder="璇疯緭鍏ュ唴瀹�"
+ size="small"
+ type="textarea">
+ </el-input>
+ <span v-if="showStep === 3 && currentStep !== 3" class="td-info1"> {{ form.validationResult }}</span>
+ </td>
+ </tr>
+ <tr v-if="showStep === 3 && currentStep !== 3">
+ <td class="td-title">
+ <p>楠岃瘉浜猴細</p>
+ </td>
+ <td class="td-info">
+ {{form.validationUserName}}
+ </td>
+ <td class="td-title">
+ <p>璐d换閮ㄩ棬锛�</p>
+ </td>
+ <td class="td-info">
+ {{form.validationDepartment}}
+ </td>
+ </tr>
+ <tr v-if="showStep === 3 && currentStep !== 3">
+ <td class="td-title">
+ <p>楠岃瘉鏃ユ湡锛�</p>
+ </td>
+ <td class="td-info" colspan="3">
+ {{form.validationTime}}
+ </td>
+ </tr>
+ </table>
+ </div>
+ <span slot="footer" class="dialog-footer">
+ <el-button @click="closeRectifyDia">鍙� 娑�</el-button>
+ <el-button v-if="currentStep !== 4" :loading="editLoad" type="primary" @click="handleEdit">鎻� 浜�</el-button>
+ </span>
+ </el-dialog>
+ </div>
+</template>
+
+<script>
+export default {
+ name: 'rectifyDialog',
+ // import 寮曞叆鐨勭粍浠堕渶瑕佹敞鍏ュ埌瀵硅薄涓墠鑳戒娇鐢�
+ components: {},
+ data() {
+ // 杩欓噷瀛樻斁鏁版嵁
+ return {
+ formDia: false,
+ currentStep: 0,
+ showStep: 0,
+ form: {
+ superviseDetailsId: '',
+ raiseResult: '',
+ vdeRaiseResult: '',
+ causeUserId: '',
+ raiseUserName: '',
+ raiseDepartment: '',
+ raiseTime: '',
+ causeResult: '',
+ causeUserName: '',
+ causeDepartment: '',
+ causeTime: '',
+ correctUserId: '',
+ correctResult: '',
+ raiseDepartmentAffirm: '',
+ correctUserName: '',
+ correctDepartment: '',
+ correctTime: '',
+ validationUserId: '',
+ validationResult: '',
+ validationUserName: '',
+ validationDepartment: '',
+ validationTime: '',
+ },
+ editLoad: false,
+ personList: [],
+ supervisedUserList: [],
+ };
+ },
+ // 鏂规硶闆嗗悎
+ methods: {
+ openDia (row) {
+ this.formDia = true
+ this.searchInfo(row)
+ this.form.superviseDetailsId = row.superviseDetailsId
+ this.getAuthorizedPerson() // 鑾峰彇浜哄憳鍒楄〃
+ this.getSupervisedUserList() // 鑾峰彇褰撳墠閮ㄩ棬浜哄憳
+ },
+ // 鏌ヨ鐩戞帶璁″垝璇︽儏瀹炴柦淇℃伅
+ searchInfo (row) {
+ this.form.qualityMonitorDetailsId = row.qualityMonitorDetailsId
+ this.$axios.get(this.$api.qualitySupervise.getSuperviseDetailCorrect + '?superviseDetailsId=' + row.superviseDetailsId).then(res => {
+ if (res.code === 201) return
+ if (res.data.superviseDetailsCorrectId === null) {
+ this.showStep = 0
+ this.currentStep = 0
+ } else {
+ this.form = res.data
+ if (res.data.isFinish === 0) {
+ if (res.data.causeUserId) {
+ this.showStep = 1
+ this.currentStep = 1
+ }
+ if (res.data.correctUserId) {
+ this.showStep = 2
+ this.currentStep = 2
+ }
+ if (res.data.validationUserId) {
+ this.showStep = 3
+ this.currentStep = 3
+ }
+ } else {
+ this.currentStep = 4
+ this.showStep = 3
+ }
+ }
+ }).catch(err => {
+ console.log('err---', err);
+ })
+ },
+ // 鎻愪氦
+ handleEdit () {
+ if (this.currentStep === 0) {
+ if (!this.form.raiseResult) {
+ this.$message.warning('璇峰~鍐欎笉鍚堟牸鎻忚堪')
+ return
+ }
+ if (!this.form.causeUserId) {
+ this.$message.warning('璇烽�夋嫨涓嬩竴姝ヨ礋璐d汉')
+ return
+ }
+ } else if (this.currentStep === 1) {
+ if (!this.form.causeResult) {
+ this.$message.warning('璇峰~鍐欏師鍥犲垎鏋�')
+ return
+ }
+ if (!this.form.correctUserId) {
+ this.$message.warning('璇烽�夋嫨涓嬩竴姝ヨ礋璐d汉')
+ return
+ }
+ } else if (this.currentStep === 2) {
+ if (!this.form.correctResult) {
+ this.$message.warning('璇峰~鍐欑籂姝f帾鏂�')
+ return
+ }
+ if (!this.form.validationUserId) {
+ this.$message.warning('璇烽�夋嫨涓嬩竴姝ヨ礋璐d汉')
+ return
+ }
+ } else if (this.currentStep === 3) {
+ if (!this.form.validationResult) {
+ this.$message.warning('璇峰~鍐欏疄鏂介獙璇佺粨鏋�')
+ return
+ }
+ }
+ this.editLoad = true
+ this.form.supervisedTime = ''
+ this.form.flowType = this.currentStep
+ delete this.form.recordTime
+ delete this.form.actionsTime
+ delete this.form.correctTime
+ this.$axios.post(this.$api.qualitySupervise.addSuperviseDetailCorrect, this.form, {
+ headers: {
+ "Content-Type": "application/json"
+ },
+ noQs: true
+ }).then(res => {
+ this.editLoad = false
+ if (res.code === 201) return
+ this.$message.success('鎻愪氦鎴愬姛')
+ this.closeRectifyDia()
+ }).catch(err => {
+ console.log('err---', err);
+ this.editLoad = false
+ })
+ },
+ // 鍏抽棴寮规
+ closeRectifyDia () {
+ this.formDia = false
+ this.$emit('closeRectifyDia')
+ },
+ setStep (step) {
+ this.showStep = step
+ },
+ getAuthorizedPerson() {
+ this.$axios.get(this.$api.user.getUserMenu).then(res => {
+ let data = []
+ res.data.forEach(a => {
+ data.push({
+ label: a.name,
+ value: a.id
+ })
+ })
+ this.personList = data
+ })
+ },
+ getSupervisedUserList () {
+ this.$axios.get(this.$api.user.selectDepartmentLimsUserList).then(res => {
+ let data = []
+ res.data.forEach(a => {
+ data.push({
+ label: a.name,
+ value: a.id
+ })
+ })
+ this.supervisedUserList = data
+ })
+ },
+ }
+};
+</script>
+
+<style scoped>
+>>>.el-dialog {
+ margin: 10vh auto 50px !important;
+}
+.tables {
+ table-layout: fixed;
+ width: 100%;
+ margin-top: 10px;
+}
+.td-title {
+ height: 40px;
+ width: 170px;
+ text-align: center;
+ font-size: 14px;
+ word-wrap: break-word;
+ white-space: normal;
+ padding: 6px;
+}
+.td-info {
+ padding: 6px;
+}
+.td-info1 {
+ display: inline-block;
+ width: 100%;
+ text-align: left;
+ font-size: 14px;
+ word-wrap: break-word;
+ white-space: normal;
+}
+</style>
diff --git a/src/components/view/a7-quality-control-plan.vue b/src/components/view/a7-quality-control-plan.vue
new file mode 100644
index 0000000..491b737
--- /dev/null
+++ b/src/components/view/a7-quality-control-plan.vue
@@ -0,0 +1,676 @@
+<template>
+<!-- 7.7璐ㄩ噺鐩戠潱璁″垝-->
+ <div>
+ <div class="table-card">
+ <TableCard title="骞村害璁″垝琛�">
+ <template v-slot:form>
+ <div class="items_center">
+ <span>璁″垝鍚嶇О锛�</span>
+ <el-input v-model="yearForm.superviseName" class="search" placeholder="璇疯緭鍏�"
+ size="small"></el-input>
+ <el-button size="small" type="primary" @click="getYearPlanList">鏌ヨ</el-button>
+ <el-button size="small" @click="clearYear">閲嶇疆</el-button>
+ </div>
+ <div>
+ <el-upload ref='upload' :action="action"
+ :before-upload="beforeUpload" :headers="headers" :on-error="onError"
+ :on-success="handleSuccessUp" :show-file-list="false" accept='.jpg,.jpeg,.png,.gif,.doc,.docx,.xls,.xlsx,.ppt,.pptx,.pdf,.zip,.rar'>
+ <el-button :loading="upLoading" size="small" type="primary">瀵煎叆</el-button>
+ </el-upload>
+ </div>
+ </template>
+ <template v-slot:table>
+ <ZTTable
+ ref="yearTable"
+ :column="yearColumnData"
+ :height="'25vh'"
+ :highlightCurrentRow="true"
+ :rowClick="rowClick"
+ :table-data="yearTableData"
+ :table-loading="yearLoading"
+ style="margin-top: 0.5em;padding: 0 15px;"
+ >
+ </ZTTable>
+ <el-divider></el-divider>
+ <!-- 鍒嗛〉 -->
+ <div class="pagination">
+ <div></div>
+ <el-pagination :page-size="yearPage.size" :page-sizes="[10, 20, 30, 40]"
+ :total="yearPage.total" layout="total, sizes, prev, pager, next, jumper"
+ @current-change="handleYearCurrent" @size-change="handleYearSizeChange">
+ </el-pagination>
+ </div>
+ </template>
+ </TableCard>
+ </div>
+ <div class="table-card">
+ <TableCard title="骞村害璁″垝鏄庣粏琛�">
+ <template v-slot:form>
+ <div class="items_center">
+ <span>鐩戠潱鐩殑锛�</span>
+ <el-input v-model="yearDetailForm.supervisePurpose" class="search" placeholder="璇疯緭鍏�" size="small"></el-input>
+ <span>鐩戠潱椤圭洰锛�</span>
+ <el-input v-model="yearDetailForm.superviseProject" class="search" placeholder="璇疯緭鍏�" size="small"></el-input>
+ <el-button size="small" type="primary" @click="getYearDetailPlanList">鏌ヨ</el-button>
+ <el-button size="small" @click="clearDetail">閲嶇疆</el-button>
+ </div>
+ <div>
+ <el-button size="small" type="primary" @click="showDialog('add')">鏂板</el-button>
+ </div>
+ </template>
+ <template v-slot:table>
+ <ZTTable :column="yearDetailColumnData" :height="'25vh'" :table-data="yearDetailTableData"
+ :table-loading="yearDetailLoading" style="margin-top: 18px; padding: 0 15px;">
+ </ZTTable>
+ <el-divider></el-divider>
+ <!-- 鍒嗛〉 -->
+ <div class="pagination">
+ <div></div>
+ <el-pagination :page-size="yearDetailPage.size" :page-sizes="[10, 20, 30, 40]"
+ :total="yearDetailPage.total" layout="total, sizes, prev, pager, next, jumper"
+ @current-change="handleYearDetailCurrent" @size-change="handleYearDetailSizeChange">
+ </el-pagination>
+ </div>
+ </template>
+ </TableCard>
+ </div>
+ <!--鏂板淇敼寮规-->
+ <detail-form-dialog v-if="formDia" ref="formDia" :superviseId="superviseId" @closeDia="closeDia"></detail-form-dialog>
+ <!--璁板綍娴佺▼寮规-->
+ <records-dialog v-if="recordsDia" ref="recordsDia" :superviseId="superviseId" @closeRecordsDia="closeRecordsDia"></records-dialog>
+ <!--涓嶇鍚堝鐞嗘祦绋嬪脊妗�-->
+ <processing-sheet v-if="processingDia" ref="processingDia" :superviseId="superviseId" @closeProcessingDia="closeProcessingDia"></processing-sheet>
+ <!--绾犳澶勭悊娴佺▼寮规-->
+ <rectify-dialog v-if="rectifyDia" ref="rectifyDia" :superviseId="superviseId" @closeProcessingDia="closeRectifyDia"></rectify-dialog>
+ <el-dialog :visible.sync="ratifyDialog" title="鎵瑰噯" width="30%" @close="closeRatifyDia">
+ <span>
+ 鎵瑰噯澶囨敞锛�
+ <el-input v-model="ratifyInfo.ratifyRemark" type="textarea"></el-input>
+ </span>
+ <span slot="footer" class="dialog-footer">
+ <el-button :loading="ratifyLoading" @click="handleRatify(0)">涓嶆壒鍑�</el-button>
+ <el-button :loading="ratifyLoading" type="primary" @click="handleRatify(1)">鎵� 鍑�</el-button>
+ </span>
+ </el-dialog>
+ <el-dialog
+ :visible.sync="downloadDialog"
+ title="瀵煎嚭"
+ width="600px">
+ <span>
+ <el-button plain type="primary" @click="controlDown">璁板綍鍗曞鍑�</el-button>
+ <el-button plain type="primary" @click="processingDown">澶勭悊鍗曞鍑�</el-button>
+ <el-button plain type="primary" @click="supervisoryDown">绾犳鍗曞鍑�</el-button>
+ </span>
+ <span slot="footer" class="dialog-footer">
+ <el-button @click="downloadDialog = false">鍙� 娑�</el-button>
+ </span>
+ </el-dialog>
+ </div>
+</template>
+
+<script>
+import ZTTable from '../caorui/ZTTable/index.vue';
+import TableCard from '../caorui/TableCard/index.vue';
+import DetailFormDialog from '../do/a7-quality-control-plan/detailFormDialog.vue';
+import RecordsDialog from '../do/a7-quality-control-plan/recordsDialog.vue';
+import ProcessingSheet from '../do/a7-quality-control-plan/processingSheet.vue';
+import RectifyDialog from '../do/a7-quality-control-plan/rectifyDialog.vue';
+
+export default {
+ name: 'a7-quality-control-plan',
+ // import 寮曞叆鐨勭粍浠堕渶瑕佹敞鍏ュ埌瀵硅薄涓墠鑳戒娇鐢�
+ components: { RectifyDialog, ProcessingSheet, RecordsDialog, DetailFormDialog, TableCard, ZTTable },
+ data() {
+ // 杩欓噷瀛樻斁鏁版嵁
+ return {
+ yearForm: {
+ superviseName: '',
+ },
+ yearPage: {
+ current: 1,
+ size: 20,
+ total: 0
+ },
+ yearColumnData: [
+ {
+ label: '璁″垝鍚嶇О',
+ prop: 'superviseName',
+ minWidth: '150px'
+ }, {
+ label: '缂栧埗浜�',
+ prop: 'writeUserName',
+ minWidth: '100'
+ }, {
+ label: '缂栧埗鏃ユ湡',
+ prop: 'writeTime',
+ minWidth: '160'
+ }, {
+ dataType: 'tag',
+ label: '鎵瑰噯鐘舵��',
+ prop: 'ratifyStatus',
+ minWidth: '100',
+ formatData: (params) => {
+ if (params === 0) {
+ return '涓嶆壒鍑�';
+ } else if (params === 1) {
+ return '鎵瑰噯';
+ } else {
+ return null;
+ }
+ },
+ formatType: (params) => {
+ if (params === 0) {
+ return 'danger';
+ } else if (params === 1) {
+ return 'success';
+ } else {
+ return null;
+ }
+ }
+ },{
+ label: '鎵瑰噯鍐呭',
+ prop: 'ratifyRemark',
+ minWidth: '100'
+ },{
+ label: '鎵瑰噯浜�',
+ prop: 'ratifyUserName',
+ minWidth: '100'
+ },{
+ label: '鎵瑰噯鏃ユ湡',
+ prop: 'ratifyTime',
+ minWidth: '160'
+ }, {
+ label: '鍒涘缓鏃ユ湡',
+ prop: 'createTime',
+ minWidth: '160'
+ }, {
+ label: '鍒涘缓浜�',
+ prop: 'createUser',
+ minWidth: '100'
+ }, {
+ dataType: 'action',
+ minWidth: '170',
+ label: '鎿嶄綔',
+ fixed: 'right',
+ operation: [
+ {
+ name: '鎵瑰噯',
+ type: 'text',
+ disabled: (row) => {
+ if (row.ratifyStatus === 1) {
+ return true
+ } else {
+ return false
+ }
+ },
+ clickFun: (row) => {
+ this.approvalPlan(row)
+ }
+ },
+ {
+ name: '瀵煎嚭',
+ type: 'text',
+ clickFun: (row) => {
+ this.handleDown(row)
+ }
+ },
+ {
+ name: '鍒犻櫎',
+ type: 'text',
+ color: '#f56c6c',
+ clickFun: (row) => {
+ this.delPlan(row)
+ }
+ }
+ ]
+ }],
+ yearTableData: [], // 骞磋〃
+ yearLoading: false,
+ yearDetailForm: {
+ supervisePurpose: '',
+ superviseProject: ''
+ },
+ yearDetailColumnData: [
+ {
+ label: '鐩戠潱鏃ユ湡',
+ prop: 'superviseTime',
+ minWidth: '150px'
+ }, {
+ label: '鐩戠潱鐩殑',
+ prop: 'supervisePurpose',
+ minWidth: '150px',
+ showOverflowTooltip: true,
+ }, {
+ label: '鐩戞帶椤圭洰',
+ prop: 'superviseProject',
+ minWidth: '150px'
+ }, {
+ label: '琚洃鐫d汉鍛�',
+ prop: 'supervisee',
+ minWidth: '150px'
+ }, {
+ label: '鐩戠潱鍘熷洜',
+ prop: 'superviseReason',
+ minWidth: '150px'
+ },{
+ label: '澶囨敞',
+ prop: 'remark',
+ minWidth: '150px'
+ },{
+ dataType: 'action',
+ width: '260',
+ label: '鎿嶄綔',
+ fixed: 'right',
+ operation: [
+ {
+ name: '缂栬緫',
+ type: 'text',
+ clickFun: (row) => {
+ this.showDialog('edit', row)
+ }
+ },
+ {
+ name: '璁板綍',
+ type: 'text',
+ clickFun: (row) => {
+ this.records(row)
+ }
+ },
+ {
+ name: '澶勭悊',
+ type: 'text',
+ clickFun: (row) => {
+ this.processing(row)
+ },
+ disabled: (row) => {
+ if (row.isAccording === 1 || row.isAccording === null) {
+ return true
+ } else {
+ return false
+ }
+ },
+ },
+ {
+ name: '绾犳',
+ type: 'text',
+ clickFun: (row) => {
+ this.rectify(row)
+ },
+ disabled: (row) => {
+ if (row.isAccording === 1 || row.isAccording === null || row.isCorrect === null || row.isCorrect === 0) {
+ return true
+ } else {
+ return false
+ }
+ },
+ },
+ {
+ name: '瀵煎嚭',
+ type: 'text',
+ clickFun: (row) => {
+ this.openDownloadDia(row);
+ },
+ },
+ {
+ name: '鍒犻櫎',
+ type: 'text',
+ color: '#f56c6c',
+ clickFun: (row) => {
+ this.delYearPlanDetail(row)
+ }
+ }
+ ]
+ }
+ ],
+ yearDetailTableData: [], // 骞存槑缁嗚〃
+ yearDetailLoading: false,
+ yearDetailPage: {
+ current: 1,
+ size: 20,
+ total: 0
+ },
+ superviseId: '',
+ formDia: false,
+ recordsDia: false,
+ processingDia: false,
+ rectifyDia: false,
+ ratifyDialog: false,
+ ratifyLoading: false,
+ ratifyInfo: {},
+ upLoading: false,
+ downloadDialog: false,
+ download: {},
+ };
+ },
+ mounted() {
+ this.getYearPlanList()
+ },
+ // 鏂规硶闆嗗悎
+ methods: {
+ // 鏌ヨ骞村害璁″垝琛�
+ getYearPlanList () {
+ const entity = {
+ superviseName: this.yearForm.superviseName,
+ }
+ const page = this.yearPage
+ this.yearLoading = true
+ this.$axios.post(this.$api.qualitySupervise.pageQualitySupervise, { entity, page }, {
+ headers: {
+ "Content-Type": "application/json"
+ },
+ noQs: true
+ }).then(res => {
+ this.yearLoading = false
+ if (res.code === 201) return
+ this.yearTableData = res.data.records
+ this.yearPage.total = res.data.total
+ if (this.yearTableData.length > 0) {
+ this.rowClick(this.yearTableData[0])
+ }
+ }).catch(err => {
+ console.log('err---', err);
+ this.yearLoading = false
+ })
+ },
+ clearYear () {
+ this.yearForm.superviseName = ''
+ this.getYearPlanList()
+ },
+ // 瀵煎叆娴佺▼
+ beforeUpload(file) {
+ if (file.size > 1024 * 1024 * 10) {
+ this.$message.error('涓婁紶鏂囦欢涓嶈秴杩�10M');
+ this.$refs.upload.clearFiles()
+ return false;
+ } else {
+ this.upLoading = true;
+ return true;
+ }
+ },
+ onError(err, file, fileList) {
+ this.$message.error('涓婁紶澶辫触')
+ this.$refs.upload.clearFiles()
+ },
+ handleSuccessUp(response) {
+ this.upLoading = false;
+ if (response.code == 200) {
+ this.$message.success('涓婁紶鎴愬姛');
+ this.getYearPlanList()
+ }
+ },
+ // 鎵瑰噯
+ approvalPlan (row) {
+ this.ratifyDialog = true
+ this.ratifyInfo = row
+ },
+ handleRatify (ratifyStatus) {
+ // 鎵瑰噯鐘舵�� , 0 涓嶉�氳繃, 1閫氳繃
+ this.ratifyInfo.ratifyStatus = ratifyStatus
+ this.ratifyLoading = true
+ this.$axios.post(this.$api.qualitySupervise.ratifyQualitySupervise, this.ratifyInfo, {
+ headers: {
+ "Content-Type": "application/json"
+ },
+ noQs: true
+ }).then(res => {
+ this.ratifyLoading = false
+ if (res.code === 201) return
+ this.$message.success('鎿嶄綔鎴愬姛')
+ this.closeRatifyDia()
+ }).catch(err => {
+ console.log('err---', err);
+ this.ratifyLoading = false
+ })
+ },
+ closeRatifyDia () {
+ this.ratifyDialog = false
+ this.ratifyInfo.ratifyRemark = ''
+ this.getYearPlanList()
+ },
+ // 瀵煎嚭
+ handleDown (row) {
+ this.$axios.get(this.$api.qualitySupervise.exportQualitySupervise + '?superviseId=' + row.superviseId,{responseType: "blob"}).then(res => {
+ this.outLoading = false
+ this.$message.success('瀵煎嚭鎴愬姛')
+ const blob = new Blob([res],{ type: 'application/msword' });
+ const url = URL.createObjectURL(blob);
+ const link = document.createElement('a');
+ link.href = url;
+ link.download = row.superviseName + '.docx';
+ link.click();
+ })
+ },
+ // 鍒犻櫎杩涘害璁″垝琛�
+ delPlan (row) {
+ this.$confirm('姝ゆ搷浣滃皢姘镐箙鍒犻櫎璇ユ暟鎹�, 鏄惁缁х画?', '鎻愮ず', {
+ confirmButtonText: '纭畾',
+ cancelButtonText: '鍙栨秷',
+ type: 'warning'
+ }).then(() => {
+ this.yearLoading = true
+ this.$axios.get(this.$api.qualitySupervise.delQualitySupervise + '?superviseId=' + row.superviseId).then(res => {
+ this.yearLoading = false
+ if (res.code === 201) return
+ this.$message.success('鍒犻櫎鎴愬姛')
+ this.getYearPlanList()
+ }).catch(err => {
+ this.yearLoading = false
+ console.log('err---', err);
+ })
+ }).catch(() => {
+ this.$message({
+ type: 'info',
+ message: '宸插彇娑堝垹闄�'
+ });
+ });
+ },
+ // 骞村害璁″垝琛ㄦ牸锛岀偣鍑昏鏁版嵁鍚庡埛鏂拌鎯�
+ rowClick(row) {
+ this.superviseId = row.superviseId
+ this.getYearDetailPlanList()
+ },
+ // 鑾峰彇骞村害鏄庣粏琛�
+ getYearDetailPlanList () {
+ const entity = {
+ superviseId: this.superviseId,
+ supervisePurpose: this.yearDetailForm.supervisePurpose,
+ superviseProject: this.yearDetailForm.superviseProject,
+ }
+ const page = this.yearDetailPage
+ this.yearDetailLoading = true
+ this.$axios.post(this.$api.qualitySupervise.pageQualitySuperviseDetail, { entity, page }, {
+ headers: {
+ "Content-Type": "application/json"
+ },
+ noQs: true
+ }).then(res => {
+ this.yearDetailLoading = false
+ if (res.code === 201) return
+ this.yearDetailTableData = res.data.records
+ this.yearDetailPage.total = res.data.total
+ }).catch(err => {
+ console.log('err---', err);
+ this.yearDetailLoading = false
+ })
+ },
+ // 閲嶇疆鏄庣粏琛�
+ clearDetail () {
+ this.yearDetailForm = {
+ supervisePurpose: '',
+ superviseProject: ''
+ }
+ this.getYearDetailPlanList()
+ },
+ // 鎵撳紑骞村害鏄庣粏鏂板銆佷慨鏀瑰脊妗�
+ showDialog (type, row) {
+ this.formDia = true
+ this.$nextTick(() => {
+ this.$refs.formDia.openDia(type, row)
+ })
+ },
+ closeDia () {
+ this.formDia = false
+ this.getYearDetailPlanList()
+ },
+ // 璁板綍娴佺▼
+ records (row) {
+ this.recordsDia = true
+ this.$nextTick(() => {
+ this.$refs.recordsDia.openDia(row)
+ })
+ },
+ closeRecordsDia () {
+ this.recordsDia = false
+ this.getYearDetailPlanList()
+ },
+ // 涓嶇鍚堟祦绋嬪脊妗�
+ processing (row) {
+ this.processingDia = true
+ this.$nextTick(() => {
+ this.$refs.processingDia.openDia(row)
+ })
+ },
+ closeProcessingDia () {
+ this.processingDia = false
+ this.getYearDetailPlanList()
+ },
+ // 绾犳娴佺▼寮规
+ rectify (row) {
+ this.rectifyDia = true
+ this.$nextTick(() => {
+ this.$refs.rectifyDia.openDia(row)
+ })
+ },
+ closeRectifyDia () {
+ this.rectifyDia = false
+ this.getYearDetailPlanList()
+ },
+ // 鎵撳紑瀵煎嚭寮规
+ openDownloadDia (row) {
+ this.downloadDialog = true
+ this.download = row
+ },
+ // 瀵煎嚭璁板綍
+ controlDown () {
+ this.$axios.get( this.$api.qualitySupervise.exportSuperviseDetailRecord+ '?superviseDetailsId=' + this.download.superviseDetailsId,{responseType: "blob"}).then(res => {
+ this.$message.success('瀵煎嚭鎴愬姛')
+ const blob = new Blob([res],{ type: 'application/msword' });
+ const url = URL.createObjectURL(blob);
+ const link = document.createElement('a');
+ link.href = url;
+ link.download = '璁板綍瀵煎嚭' + '.docx';
+ link.click();
+ }).catch(err => {
+ console.log('err---', err);
+ })
+ },
+ // 澶勭悊鍗曞鍑�
+ processingDown () {
+ this.$axios.get( this.$api.qualitySupervise.superviseDetailAccordingExport+ '?superviseDetailsId=' + this.download.superviseDetailsId,{responseType: "blob"}).then(res => {
+ this.$message.success('瀵煎嚭鎴愬姛')
+ const blob = new Blob([res],{ type: 'application/msword' });
+ const url = URL.createObjectURL(blob);
+ const link = document.createElement('a');
+ link.href = url;
+ link.download = '涓嶇鍚堥」瀵煎嚭' + '.docx';
+ link.click();
+ }).catch(err => {
+ console.log('err---', err);
+ })
+ },
+ // 绾犳鍗曞鍑�
+ supervisoryDown () {
+ this.$axios.get(this.$api.qualitySupervise.exportSuperviseDetaillCorrect + '?superviseDetailsCorrectId=' + this.download.superviseDetailsCorrectId,{responseType: "blob"}).then(res => {
+ this.outLoading = false
+ this.$message.success('瀵煎嚭鎴愬姛')
+ const blob = new Blob([res],{ type: 'application/msword' });
+ const url = URL.createObjectURL(blob);
+ const link = document.createElement('a');
+ link.href = url;
+ link.download = '鐩戠潱绾犳鎺柦' + '.docx';
+ link.click();
+ })
+ },
+ // 鍒犻櫎骞村害璇︽儏鍒楄〃
+ delYearPlanDetail (row) {
+ this.$confirm('姝ゆ搷浣滃皢姘镐箙鍒犻櫎璇ユ暟鎹�, 鏄惁缁х画?', '鎻愮ず', {
+ confirmButtonText: '纭畾',
+ cancelButtonText: '鍙栨秷',
+ type: 'warning'
+ }).then(() => {
+ this.yearDetailLoading = true
+ this.$axios.get(this.$api.qualitySupervise.delQualitySuperviseDetail + '?superviseDetailsId=' + row.superviseDetailsId).then(res => {
+ this.yearDetailLoading = false
+ if (res.code === 201) return
+ this.$message.success('鍒犻櫎鎴愬姛')
+ this.getYearDetailPlanList()
+ }).catch(err => {
+ this.yearDetailLoading = false
+ console.log('err---', err);
+ })
+ })
+ },
+ // 骞磋鍒掑垎椤�
+ handleYearCurrent(page) {
+ this.yearPage.current = page
+ this.getYearPlanList()
+ },
+ handleYearSizeChange(size) {
+ this.yearPage.size = size
+ this.getYearPlanList()
+ },
+ // 骞存槑缁嗚鍒掑垎椤�
+ handleYearDetailCurrent(page) {
+ this.yearDetailPage.current = page
+ this.getYearDetailPlanList()
+ },
+ handleYearDetailSizeChange(size) {
+ this.yearDetailPage.size = size
+ this.getYearDetailPlanList()
+ },
+ },
+ // 鐢ㄤ簬涓婁紶鏂囦欢鐨勪俊鎭�
+ computed: {
+ headers() {
+ return {
+ 'token': sessionStorage.getItem('token')
+ }
+ },
+ action() {
+ return this.javaApi + this.$api.qualitySupervise.importQualitySupervise
+ }
+ },
+};
+</script>
+
+<style scoped>
+.table-card {
+ background-color: #ffffff;
+}
+.flex_column {
+ display: flex;
+ height: 80vh;
+ flex-direction: column;
+ overflow: auto;
+ justify-content: space-between;
+}
+
+.pagination {
+ display: flex;
+ justify-content: space-between
+}
+
+.items_center {
+ display: flex;
+ align-items: center;
+}
+
+.date_box {
+ margin: 0 5px;
+}
+
+.search {
+ width: 150px;
+ padding: 0 16px;
+}
+</style>
--
Gitblit v1.9.3