From a1a287b479b0039c17c2fabdb7988a93ce7b25e3 Mon Sep 17 00:00:00 2001 From: licp <lichunping@guanfang.com.cn> Date: 星期四, 26 十二月 2024 14:33:04 +0800 Subject: [PATCH] 完成7.2标准方法的变更 --- src/components/do/a7-method-verification/ViewDeviceDialog.vue | 136 ++++ src/components/do/a7-method-verification/ViewTestRecord.vue | 172 +++++ src/components/view/a7-changes-standard-methods.vue | 221 +++++++ src/components/do/a7-method-verification/formDIa.vue | 463 +++++++++++++++ src/components/do/a7-method-verification/viewWorkPermitDia.vue | 118 ++++ src/assets/api/controller.js | 15 src/components/do/a7-changes-standard-methods/formDIaChange.vue | 464 ++++++++++++++++ src/components/do/a7-method-verification/calibrationsFileDia.vue | 123 ++++ 8 files changed, 1,712 insertions(+), 0 deletions(-) diff --git a/src/assets/api/controller.js b/src/assets/api/controller.js index 7929dfe..d3115c7 100644 --- a/src/assets/api/controller.js +++ b/src/assets/api/controller.js @@ -55,6 +55,7 @@ qualitySupervise, processOrder, processMethodSearchNew, + processMethodVerify, } } @@ -185,6 +186,7 @@ temDataAcquisition: "/deviceScope/temDataAcquisition", // PK8000鏁伴噰 temDataAcquisition2: "/deviceScope/temDataAcquisition2", // PK8000鏁伴噰--澶氭潯 formulaCalculation: "/deviceScope/formulaCalculation", // 鏁伴噰-鍏紡璁$畻 + deviceScopeSearch: "/deviceScope/search", //閫氳繃璁惧鍒嗙被鑾峰彇璁惧鍒楄〃 } const insOrder = { @@ -710,3 +712,16 @@ exportMethodSearchNew:'/processMethodSearchNew/exportMethodSearchNew', // 瀵煎嚭鏍囧噯鏌ユ柊 importMethodSearchNew:'/processMethodSearchNew/importMethodSearchNew', // 瀵煎叆鏍囧噯鏌ユ柊 } + +// 7.2鏍囧噯鏂规硶楠岃瘉 +const processMethodVerify = { + pagesMethodVerify:'/processMethodVerify/pagesMethodVerify', // 鏍囧噯鏂规硶鏇存柊楠岃瘉鍒楄〃 + addMethodVerify:'/processMethodVerify/addMethodVerify', // 鏂板鏍囧噯鏂规硶楠岃瘉 + getMethodVerifyOne:'/processMethodVerify/getMethodVerifyOne', // 鏌ヨ鏍囧噯鏂规硶楠岃瘉璇︽儏 + updateMethodVerify:'/processMethodVerify/updateMethodVerify', // 淇敼鏍囧噯鏂规硶楠岃瘉 + methodVerifyAffirm:'/processMethodVerify/methodVerifyAffirm', // 楠岃瘉纭 + uploadVerifyMethodFile:'/processMethodVerify/uploadVerifyMethodFile', // 鏂板鍘熷璁板綍 + getVerifyMethodFileList:'/processMethodVerify/getVerifyMethodFileList', // 鍘熷璁板綍鍒楄〃 + delVerifyMethodFileList:'/processMethodVerify/delVerifyMethodFileList', // 鍒犻櫎楠岃瘉鍘熷璁板綍鍒楄〃 + delMethodVerify:'/processMethodVerify/delMethodVerify', // 鍒犻櫎鏍囧噯鏂规硶鏇存柊楠岃瘉 +} diff --git a/src/components/do/a7-changes-standard-methods/formDIaChange.vue b/src/components/do/a7-changes-standard-methods/formDIaChange.vue new file mode 100644 index 0000000..23ffef9 --- /dev/null +++ b/src/components/do/a7-changes-standard-methods/formDIaChange.vue @@ -0,0 +1,464 @@ +<template> + <div> + <el-dialog :close-on-click-modal="false" :close-on-press-escape="false" + :title="operationType === 'edit' ? '缂栬緫' : '鏂板'" + :visible.sync="formDia" + width="90%" @close="closeDia"> + <div v-if="operationType === 'edit'" style="text-align: right"> + <el-button :disabled="form.confirmDate !== '' && form.confirmDate !== null && form.confirmDate !== undefined" size="medium" type="primary" @click="validation">楠岃瘉纭</el-button> + </div> + <table border="1" cellspacing="10" class="tables"> + <tr> + <td> + <p>鏍囧噯鏂规硶</p> + </td> + <td> + <p>楠岃瘉鍘熷洜</p> + </td> + <td> + <p>涓昏鎶�鏈彉鍖�</p> + </td> + <td> + <p>娑夊強鏂归潰</p> + </td> + <td> + <p>鏍囧噯瑕佹眰</p> + </td> + <td> + <p>鍑嗗鎯呭喌</p> + </td> + <td> + <p>鏄惁婊¤冻</p> + </td> + <td> + <p>澶囨敞</p> + </td> + </tr> + <tr> + <td rowspan="9"> + <el-input v-model="form.methodName" :rows="6" + placeholder="璇疯緭鍏ュ唴瀹�" + size="small" + type="textarea"> + </el-input> + </td> + <td rowspan="9"> + <el-input v-model="form.verifyReason" :rows="6" + placeholder="璇疯緭鍏ュ唴瀹�" + size="small" + type="textarea"> + </el-input> + </td> + <td rowspan="9"> + <el-input v-model="form.technologyChange" :rows="6" + placeholder="璇疯緭鍏ュ唴瀹�" + size="small" + type="textarea"> + </el-input> + </td> + </tr> + <tr> + <td>浜猴細</td> + <td> + <el-input v-model="form.personRequirements" size="small" type="textarea"></el-input> + </td> + <td> + <el-input v-model="form.personReadiness" size="small" type="textarea"></el-input> + </td> + <td> + <el-radio-group v-model="form.personIsSatisfied" v-removeAriaHidden> + <el-radio :label="0">鍚�</el-radio> + <el-radio :label="1">鏄�</el-radio> + </el-radio-group> + </td> + <td> + <el-link type="primary" @click="viewWorkPermit">鏌ョ湅涓婂矖璇�</el-link> + </td> + </tr> + <tr> + <td>鏈猴細</td> + <td> + <el-input v-model="form.machineRequirements" size="small" type="textarea"></el-input> + </td> + <td> + <el-input v-model="form.machineReadiness" size="small" type="textarea"></el-input> + </td> + <td> + <el-radio-group v-model="form.machineIsSatisfied" v-removeAriaHidden> + <el-radio :label="0">鍚�</el-radio> + <el-radio :label="1">鏄�</el-radio> + </el-radio-group> + </td> + <td> + <el-link type="primary" @click="viewDevice">鏌ョ湅璁惧</el-link> + </td> + </tr> + <tr> + <td>鏂欙細</td> + <td> + <el-input v-model="form.materialRequirements" size="small" type="textarea"></el-input> + </td> + <td> + <el-input v-model="form.materialReadiness" size="small" type="textarea"></el-input> + </td> + <td> + <el-radio-group v-model="form.materialIsSatisfied" v-removeAriaHidden> + <el-radio :label="0">鍚�</el-radio> + <el-radio :label="1">鏄�</el-radio> + </el-radio-group> + </td> + <td> + <el-input v-model="form.materialRemark" size="small"></el-input> + </td> + </tr> + <tr> + <td>娉曪細</td> + <td> + <el-input v-model="form.methodRequirements" size="small" type="textarea"></el-input> + </td> + <td> + <el-input v-model="form.methodReadiness" size="small" type="textarea"></el-input> + </td> + <td> + <el-radio-group v-model="form.methodIsSatisfied" v-removeAriaHidden> + <el-radio :label="0">鍚�</el-radio> + <el-radio :label="1">鏄�</el-radio> + </el-radio-group> + </td> + <td> + <el-link type="primary" @click="viewTestRecord">鏌ョ湅妫�娴嬭褰�</el-link> + </td> + </tr> + <tr> + <td>鐜細</td> + <td> + <el-input v-model="form.environmentRequirements" size="small" type="textarea"></el-input> + </td> + <td> + <el-input v-model="form.environmentReadiness" size="small" type="textarea"></el-input> + </td> + <td> + <el-radio-group v-model="form.environmentIsSatisfied" v-removeAriaHidden> + <el-radio :label="0">鍚�</el-radio> + <el-radio :label="1">鏄�</el-radio> + </el-radio-group> + </td> + <td> + <el-input v-model="form.traceabilityRemark" size="small"></el-input> + </td> + </tr> + <tr> + <td>娴嬮噺婧簮鎬э細</td> + <td> + <el-input v-model="form.traceabilityRequirements" size="small" type="textarea"></el-input> + </td> + <td> + <el-input v-model="form.traceabilityReadiness" size="small" type="textarea"></el-input> + </td> + <td> + <el-radio-group v-model="form.traceabilityIsSatisfied" v-removeAriaHidden> + <el-radio :label="0">鍚�</el-radio> + <el-radio :label="1">鏄�</el-radio> + </el-radio-group> + </td> + <td> + <el-link type="primary" @click="viewCalibrationsFileDia">鏌ョ湅鏍″噯璇佷功</el-link> + </td> + </tr> + <tr> + <td>鏍峰搧绠$悊闇�姹傦細</td> + <td> + <el-input v-model="form.managementRequirements" size="small" type="textarea"></el-input> + </td> + <td> + <el-input v-model="form.managementReadiness" size="small" type="textarea"></el-input> + </td> + <td> + <el-radio-group v-model="form.managementIsSatisfied" v-removeAriaHidden> + <el-radio :label="0">鍚�</el-radio> + <el-radio :label="1">鏄�</el-radio> + </el-radio-group> + </td> + <td> + <el-input v-model="form.managementRemark" size="small"></el-input> + </td> + </tr> + <tr> + <td>鍏朵粬锛�</td> + <td> + <el-input v-model="form.otherRequirements" size="small" type="textarea"></el-input> + </td> + <td> + <el-input v-model="form.otherReadiness" size="small" type="textarea"></el-input> + </td> + <td> + <el-radio-group v-model="form.otherIsSatisfied" v-removeAriaHidden> + <el-radio :label="0">鍚�</el-radio> + <el-radio :label="1">鏄�</el-radio> + </el-radio-group> + </td> + <td> + <el-input v-model="form.otherRemark" size="small"></el-input> + </td> + </tr> + <tr> + <td colspan="3"> + <p>鏄惁寮曠敤姝ゆ爣鍑嗗紑灞曟娴�:</p> + </td> + <td colspan="3">鍙互寮曠敤姝ゆ爣鍑嗗紑灞曟娴�</td> + <td> + <p>纭鏃堕棿:</p> + </td> + <td>{{form.confirmDate}}</td> + </tr> + <tr> + <td colspan="3"> + <p>鍙傚姞纭浜虹鍚�:</p> + </td> + <td colspan="5"> + <el-select v-model="form.confirmUser" multiple placeholder="璇烽�夋嫨" size="small" style="width: 100%"> + <el-option v-for="item in userList" :key="item.id" :label="item.name" :value="item.id"></el-option> + </el-select> + </td> + </tr> + </table> + <span slot="footer" class="dialog-footer"> + <el-button @click="closeDia">鍙� 娑�</el-button> + <el-button :loading="editLoad" type="primary" @click="handleEdit">鎻� 浜�</el-button> + </span> + </el-dialog> + <ViewDeviceDialog v-if="viewDeviceDialog" ref="viewDeviceDialog" @closDeviceDia="closDeviceDia" @handleDeviceInfo="handleDeviceInfo"></ViewDeviceDialog> + <ViewTestRecord v-if="viewTestRecordDialog" ref="viewTestRecordDialog"></ViewTestRecord> + <ViewWorkPermitDia v-if="viewWorkPermitDia" ref="viewWorkPermitDia"></ViewWorkPermitDia> + <calibrations-file-dia v-if="calibrationsFileDia" ref="calibrationsFileDia"></calibrations-file-dia> + </div> +</template> + +<script> +import { dateFormat } from '../../../util/date' +import ViewTestRecord from '../a7-method-verification/ViewTestRecord.vue'; +import ViewDeviceDialog from '../a7-method-verification/ViewDeviceDialog.vue'; +import ViewWorkPermitDia from '../a7-method-verification/viewWorkPermitDia.vue'; +import CalibrationsFileDia from '../a7-method-verification/calibrationsFileDia.vue'; + +export default { + name: 'formDIaChange', + // import 寮曞叆鐨勭粍浠堕渶瑕佹敞鍏ュ埌瀵硅薄涓墠鑳戒娇鐢� + components: { CalibrationsFileDia, ViewWorkPermitDia, ViewDeviceDialog, ViewTestRecord }, + props: { + operationType: { + type: String, + default: () => '' + } + }, + data() { + // 杩欓噷瀛樻斁鏁版嵁 + return { + formDia: false, + form: { + methodName: '', + verifyReason: '', + technologyChange: '', + personRequirements: '', + personReadiness: '', + personIsSatisfied: '', + personRemark: '', + machineRequirements: '', + machineReadiness: '', + machineIsSatisfied: '', + materialRequirements: '', + materialReadiness: '', + materialIsSatisfied: '', + materialRemark: '', + methodRequirements: '', + methodReadiness: '', + methodIsSatisfied: '', + environmentRequirements: '', + environmentReadiness: '', + environmentIsSatisfied: '', + traceabilityRequirements: '', + traceabilityReadiness: '', + traceabilityIsSatisfied: '', + traceabilityRemark: '', + managementRequirements: '', + managementReadiness: '', + managementIsSatisfied: '', + managementRemark: '', + otherRequirements: '', + otherReadiness: '', + otherIsSatisfied: '', + otherRemark: '', + machineAttachmentList: [] + }, + editLoad: false, + info: { + methodVerifyId: '' + }, + userList: [], + viewDeviceDialog: false, + viewTestRecordDialog: false, + viewWorkPermitDia: false, + calibrationsFileDia: false, + }; + }, + // 鏂规硶闆嗗悎 + methods: { + openDia(row) { + this.formDia = true + this.info = row + this.getUserList() + if (this.operationType === 'edit') { + this.searchInfo(row) + } + }, + // 鏌ヨ璇︽儏淇℃伅 + searchInfo (row) { + this.$axios.get(this.$api.processMethodVerify.getMethodVerifyOne + '?methodVerifyId=' + row.methodVerifyId).then(res => { + if (res.code === 201) return + this.form = {...res.data} + if (this.form.confirmUser) { + this.form.confirmUser = this.form.confirmUser.split(',').map(Number) + } + }).catch(err => { + console.log('err---', err); + }) + }, + // 鎻愪氦 + handleEdit() { + this.editLoad = true + const processMethodSearchNews = this.HaveJson(this.form) + processMethodSearchNews.confirmUser = processMethodSearchNews.confirmUser && processMethodSearchNews.confirmUser.join(',') + processMethodSearchNews.operationType = 0 + if (this.operationType === 'edit') { + this.editInfo(processMethodSearchNews) + } else { + this.addInfo(processMethodSearchNews) + } + }, + // 鏌ョ湅涓婂矖璇� + viewWorkPermit () { + this.viewWorkPermitDia = true + this.$nextTick(() => { + this.$refs.viewWorkPermitDia.openDia(this.form) + }) + }, + // 鏌ョ湅鏍″噯璇佷功 + viewCalibrationsFileDia () { + this.calibrationsFileDia = true + this.$nextTick(() => { + this.$refs.calibrationsFileDia.openDia(this.form) + }) + }, + // 鏌ョ湅璁惧 + viewDevice () { + this.viewDeviceDialog = true + this.$nextTick(() => { + this.$refs.viewDeviceDialog.openDia(this.form) + }) + }, + // 鍏抽棴璁惧寮规 + closDeviceDia () { + this.viewDeviceDialog = false + }, + // 鎻愪氦璁惧淇℃伅 + handleDeviceInfo (machineAttachmentList) { + this.viewDeviceDialog = false + this.form.machineAttachmentList = machineAttachmentList + }, + // 鏌ョ湅妫�娴嬭褰� + viewTestRecord () { + this.viewTestRecordDialog = true + this.$nextTick(() => { + this.$refs.viewTestRecordDialog.openDia(this.info) + }) + }, + // 鎻愪氦缂栬緫 + editInfo (processMethodSearchNews) { + this.$axios.post(this.$api.processMethodVerify.updateMethodVerify, processMethodSearchNews, { + headers: { + "Content-Type": "application/json" + }, + noQs: true + }).then(res => { + this.editLoad = false + if (res.code === 201) return + this.$message.success('鎿嶄綔鎴愬姛') + this.closeDia() + }).catch(err => { + console.log('err---', err); + this.editLoad = false + }) + }, + // 鎻愪氦鏂板 + addInfo (processMethodSearchNews) { + this.$axios.post(this.$api.processMethodVerify.addMethodVerify, processMethodSearchNews, { + headers: { + "Content-Type": "application/json" + }, + noQs: true + }).then(res => { + this.editLoad = false + if (res.code === 201) return + this.$message.success('鎿嶄綔鎴愬姛') + this.closeDia() + }).catch(err => { + console.log('err---', err); + this.editLoad = false + }) + }, + // 楠岃瘉纭 + validation () { + this.$axios.get(this.$api.processMethodVerify.methodVerifyAffirm + '?methodVerifyId=' + this.info.methodVerifyId).then(res => { + if (res.code === 201) return + this.form.confirmDate = dateFormat(new Date()) + }).catch(err => { + console.log('err---', err); + }) + }, + // 鍏抽棴寮规 + closeDia() { + this.formDia = false + this.$emit('closeDia'); + }, + getUserList(){ + this.$axios.post(this.$api.user.selectUserList, { + page: {current: -1, size: -1,}, + entity: {name: null} + }, { + headers: { + 'Content-Type': 'application/json' + } + }).then(res => { + if (res.code === 201) { + return + } + this.userList = res.data.body.records + }) + }, + } +}; +</script> + +<style scoped> +>>>.el-dialog { + margin-top: 2vh !important; +} +>>>.el-dialog__body { + max-height: 75vh; + overflow-y: auto; +} +.tables { + table-layout: fixed; + width: 100%; + margin-top: 10px; +} +.tables td { + height: 34px; + width: 100px; + text-align: center; + font-size: 14px; + word-wrap: break-word; + white-space: normal; + padding: 4px; +} +</style> diff --git a/src/components/do/a7-method-verification/ViewDeviceDialog.vue b/src/components/do/a7-method-verification/ViewDeviceDialog.vue new file mode 100644 index 0000000..6370a50 --- /dev/null +++ b/src/components/do/a7-method-verification/ViewDeviceDialog.vue @@ -0,0 +1,136 @@ +<template> + <div> + <el-dialog :close-on-click-modal="false" :close-on-press-escape="false" :visible.sync="viewDeviceDialog" title="鏌ョ湅璁惧" width="80%" @close="closeDia"> + <div style="text-align: right;margin-bottom: 10px"> + <el-button size="small" type="primary" @click="addRow">娣诲姞</el-button> + <el-button size="small" type="danger" @click="clearTable">娓呯┖</el-button> + </div> + <div> + <el-table :data="machineAttachmentList" border height="500" style="width: 100%"> + <el-table-column header-align="center" label="鍚嶇О" prop="machineName" width="200"> + <template slot="header" slot-scope="scope"> + <p>鍚嶇О</p> + </template> + <template slot-scope="scope"> + <el-select v-model="scope.row.machineName" + class="table_input" + clearable + filterable + placeholder="璁惧鍚嶇О" + size="small" @change="(val)=>changeMachineName(val, scope.$index)"> + <el-option v-for="item in equipOptions" :key="item.value" :label="item.label" :value="item.value"> + {{item.label + item.value}} + </el-option> + </el-select> + </template> + </el-table-column> + <el-table-column header-align="center" label="鍨嬪彿瑙勬牸" prop="machineSpecification" width="180"> + <template slot="header" slot-scope="scope"> + <p>鍨嬪彿瑙勬牸</p> + </template> + <template slot-scope="{row}"> + <el-input v-model="row.machineSpecification" size="small"/> + </template> + </el-table-column> + <el-table-column header-align="center" label="娴嬮噺鑼冨洿" prop="machineMeasuringRange"> + <template slot="header" slot-scope="scope"> + <p>娴嬮噺鑼冨洿</p> + </template> + <template slot-scope="{row}"> + <el-input v-model="row.machineMeasuringRange" size="small" type="textarea"/> + </template> + </el-table-column> + <el-table-column header-align="center" label="鈶犳墿灞曚笉纭畾搴︹憽鏈�澶у厑宸憿鍑嗙‘搴︾瓑绾�" prop="other"> + <template slot="header" slot-scope="scope"> + <p>鈶犳墿灞曚笉纭畾搴︹憽鏈�澶у厑宸憿鍑嗙‘搴︾瓑绾�</p> + </template> + <template slot-scope="{row}"> + <el-input v-model="row.other" size="small" type="textarea"/> + </template> + </el-table-column> + </el-table> + </div> + <span slot="footer" class="dialog-footer"> + <el-button @click="closeDia">鍙� 娑�</el-button> + <el-button type="primary" @click="handleDeviceInfo">纭� 瀹�</el-button> + </span> + </el-dialog> + </div> +</template> + +<script> +export default { + name: 'ViewDeviceDialog', + // import 寮曞叆鐨勭粍浠堕渶瑕佹敞鍏ュ埌瀵硅薄涓墠鑳戒娇鐢� + components: {}, + data() { + // 杩欓噷瀛樻斁鏁版嵁 + return { + viewDeviceDialog: false, + machineAttachmentList: [], + equipOptions: [], + }; + }, + // 鏂规硶闆嗗悎 + methods: { + openDia(info) { + this.viewDeviceDialog = true + this.machineAttachmentList = info.machineAttachmentList + this.getEquipOptions() + }, + // 澧炲姞琛ㄦ牸琛屾暟鎹� + addRow () { + this.machineAttachmentList.push({ + machineName: '', + machineSpecification: '', + machineMeasuringRange: '', + other: '', + }) + }, + // 娓呯┖琛ㄦ牸鏁版嵁 + clearTable () { + this.machineAttachmentList = [] + }, + // 閫夋嫨璁惧鐨勫洖璋� + changeMachineName (val, index) { + const index1 = this.equipOptions.findIndex(item => item.value === val); + if (index1 !== -1) { + this.machineAttachmentList[index].deviceId = this.equipOptions[index1].id; + this.machineAttachmentList[index].machineName = this.equipOptions[index1].deviceName; + } + this.machineAttachmentList[index].machineSpecification = val + }, + // 鎻愪氦璁惧淇℃伅 + handleDeviceInfo () { + if (this.machineAttachmentList.length === 0) { + this.$message.warning('璇锋坊鍔犱俊鎭�') + return + } + this.viewDeviceDialog = false + this.$emit('handleDeviceInfo', this.machineAttachmentList) + }, + closeDia () { + this.viewDeviceDialog = false + this.$emit('closDeviceDia') + }, + // 鑾峰彇鎵�鏈夎澶� + getEquipOptions() { + this.equipOptions = [] + this.$axios.get(this.$api.deviceScope.deviceScopeSearch+'?status=0').then(res => { + if (res.code === 200 && res.data) { + this.equipOptions = res.data.map(m => { + m.value = m.managementNumber + m.label = m.deviceName + return m + }) + } + }).catch(error => { + console.error(error) + }) + }, + } +}; +</script> + +<style scoped> +</style> diff --git a/src/components/do/a7-method-verification/ViewTestRecord.vue b/src/components/do/a7-method-verification/ViewTestRecord.vue new file mode 100644 index 0000000..7d7b89f --- /dev/null +++ b/src/components/do/a7-method-verification/ViewTestRecord.vue @@ -0,0 +1,172 @@ +<template> + <div> + <el-dialog :visible.sync="filesDialogVisible" title="闄勪欢涓婁紶" width="80%" @closed="closeFilesLook"> + <div style="display: flex;justify-content: space-between;"> + <el-upload ref='upload' + :action="fileAction" + :auto-upload="true" + :before-upload="fileBeforeUpload" :data="{methodVerifyId: info.methodVerifyId}" + :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' style="width: 80px !important;"> + <el-button size="small" style="height: 38px" type="primary">闄勪欢涓婁紶</el-button> + </el-upload> + </div> + <div> + <ZTTable + ref="yearTable" + :column="columnData" + :height="'60vh'" + :highlightCurrentRow="true" + :table-data="tableData" + :table-loading="tableLoading" + style="margin-top: 0.5em;"> + </ZTTable> + </div> + </el-dialog> + </div> +</template> + +<script> +import ZTTable from '../../caorui/ZTTable/index.vue'; +import file from "../../../util/file"; + +export default { + name: 'ViewTestRecord', + // import 寮曞叆鐨勭粍浠堕渶瑕佹敞鍏ュ埌瀵硅薄涓墠鑳戒娇鐢� + components: { ZTTable }, + data() { + // 杩欓噷瀛樻斁鏁版嵁 + return { + filesDialogVisible: false, + tableLoading: false, + filesLookInfo: {}, + columnData: [ + { + label: '鏂囦欢鍚嶇О', + prop: 'fileName', + minWidth: '150px' + }, + { + dataType: 'action', + minWidth: '100', + label: '鎿嶄綔', + fixed: 'right', + operation: [ + { + name: '涓嬭浇', + type: 'text', + clickFun: (row) => { + this.upload(row) + } + }, + { + name: '鍒犻櫎', + type: 'text', + color: '#f56c6c', + clickFun: (row) => { + this.delete(row) + } + } + ] + } + ], + tableData: [], + info: {} + }; + }, + // 鏂规硶闆嗗悎 + methods: { + openDia(row) { + this.filesDialogVisible = true + this.info = row + if (this.info === undefined) { + this.info = { + methodVerifyId: '' + } + } + this.searchTableList() + }, + // 鏌ヨ闄勪欢鍒楄〃 + searchTableList () { + this.tableLoading = true + this.$axios.get(this.$api.processMethodVerify.getVerifyMethodFileList + '?methodVerifyId=' + this.info.methodVerifyId).then(res => { + this.tableLoading = false + if (res.code === 201) return + this.tableData = res.data + }).catch(err => { + this.tableLoading = false + console.log('err---', err); + }) + }, + closeFilesLook () { + this.filesDialogVisible = false + }, + // 涓嬭浇 + upload (row) { + let url = ''; + if(row.type==1){ + url = this.javaApi+'/img/'+row.fileUrl + file.downloadIamge(url,row.fileName) + }else{ + url = this.javaApi+'/word/'+row.fileUrl + const link = document.createElement('a'); + link.href = url; + link.download = row.fileName; + link.click(); + } + }, + // 鍒犻櫎 + delete (row) { + this.tableLoading = true + this.$axios.get(this.$api.processMethodVerify.delVerifyMethodFileList + '?methodFileId=' + row.methodFileId).then(res => { + this.tableLoading = false + if (res.code === 201) return + this.$message.success('鍒犻櫎鎴愬姛') + this.searchTableList() + }).catch(err => { + this.tableLoading = false + console.log('err---', err); + }) + }, + // 涓婁紶楠岃瘉 + fileBeforeUpload(file) { + let flag = true + if (file.size > 1024 * 1024 * 10) { + this.$message.error('涓婁紶鏂囦欢涓嶈秴杩�10M'); + this.$refs.upload.clearFiles() + flag = false + } + if (!flag) { + return Promise.reject(flag); //姝g‘鐨勭粓姝� + } + }, + onError(err, file, fileList,type) { + this.$message.error('涓婁紶澶辫触') + this.$refs.upload.clearFiles() + }, + handleSuccessUp(response, ) { + this.upLoading = false; + if (response.code == 200) { + this.$message.success('涓婁紶鎴愬姛'); + this.searchTableList() + } + }, + }, + computed: { + headers() { + return { + 'token': sessionStorage.getItem('token') + } + }, + fileAction() { + return this.javaApi + this.$api.processMethodVerify.uploadVerifyMethodFile + + } + }, +}; +</script> + +<style scoped> +</style> diff --git a/src/components/do/a7-method-verification/calibrationsFileDia.vue b/src/components/do/a7-method-verification/calibrationsFileDia.vue new file mode 100644 index 0000000..793c269 --- /dev/null +++ b/src/components/do/a7-method-verification/calibrationsFileDia.vue @@ -0,0 +1,123 @@ +<template> + <div> + <el-dialog :visible.sync="filesDialogVisible" title="鏌ョ湅鏍″噯璇佷功" width="80%" @closed="closeFilesLook"> + <div> + <ZTTable + ref="yearTable" + :column="columnData" + :height="'60vh'" + :highlightCurrentRow="true" + :table-data="tableData" + :table-loading="tableLoading" + style="margin-top: 0.5em;"> + </ZTTable> + </div> + </el-dialog> + <el-dialog + :visible.sync="lookDialogVisible" + fullscreen + title="鏌ョ湅闄勪欢" top="5vh" width="800px"> + <filePreview v-if="lookDialogVisible" :currentFile="{}" + :fileUrl="javaApi+'/img/'+currentInfo.fileUrl" style="max-height: 90vh;overflow-y: auto;"/> + </el-dialog> + </div> +</template> + +<script> +import filePreview from '../../tool/file-preview.vue'; +import ZTTable from '../../caorui/ZTTable/index.vue'; +import file from '../../../util/file'; + +export default { + name: 'calibrationsFileDia', + // import 寮曞叆鐨勭粍浠堕渶瑕佹敞鍏ュ埌瀵硅薄涓墠鑳戒娇鐢� + components: { ZTTable, filePreview }, + data() { + // 杩欓噷瀛樻斁鏁版嵁 + return { + filesDialogVisible: false, + tableLoading: false, + filesLookInfo: {}, + columnData: [ + { + label: '鏂囦欢鍚嶇О', + prop: 'fileName', + minWidth: '150px' + }, + { + label: '璁惧鍚嶇О', + prop: 'deviceName', + minWidth: '150px' + }, + { + label: '璁惧缂栧彿', + prop: 'managementNumber', + minWidth: '150px' + }, + { + dataType: 'action', + minWidth: '100', + label: '鎿嶄綔', + fixed: 'right', + operation: [ + { + name: '棰勮', + type: 'text', + clickFun: (row) => { + this.handleLook(row) + } + }, + { + name: '涓嬭浇', + type: 'text', + clickFun: (row) => { + this.upload(row) + } + }, + ] + } + ], + tableData: [], + info: {}, + currentInfo:{}, + lookDialogVisible: false, + }; + }, + mounted() { + + }, + // 鏂规硶闆嗗悎 + methods: { + openDia(row) { + this.filesDialogVisible = true + this.info = row + this.tableData = this.info.calibrationsFileList + }, + closeFilesLook () { + this.filesDialogVisible = false + }, + // 鏌ョ湅鏂囦欢 + handleLook(row){ + this.currentInfo = row + this.lookDialogVisible = true + }, + // 涓嬭浇 + upload (row) { + let url = ''; + if(row.type==1){ + url = this.javaApi+'/img/'+row.fileUrl + file.downloadIamge(url,row.fileName) + }else{ + url = this.javaApi+'/word/'+row.fileUrl + const link = document.createElement('a'); + link.href = url; + link.download = row.fileName; + link.click(); + } + }, + } +}; +</script> + +<style scoped> +</style> diff --git a/src/components/do/a7-method-verification/formDIa.vue b/src/components/do/a7-method-verification/formDIa.vue new file mode 100644 index 0000000..ced40e5 --- /dev/null +++ b/src/components/do/a7-method-verification/formDIa.vue @@ -0,0 +1,463 @@ +<template> + <div> + <el-dialog :close-on-click-modal="false" :close-on-press-escape="false" + :title="operationType === 'edit' ? '缂栬緫' : '鏂板'" + :visible.sync="formDia" + width="90%" @close="closeDia"> + <div v-if="operationType === 'edit'" style="text-align: right"> + <el-button :disabled="form.confirmDate" size="medium" type="primary" @click="validation">楠岃瘉纭</el-button> + </div> + <table border="1" cellspacing="10" class="tables"> + <tr> + <td> + <p>鏍囧噯鏂规硶</p> + </td> + <td> + <p>楠岃瘉鍘熷洜</p> + </td> + <td> + <p>涓昏鎶�鏈彉鍖�</p> + </td> + <td> + <p>娑夊強鏂归潰</p> + </td> + <td> + <p>鏍囧噯瑕佹眰</p> + </td> + <td> + <p>鍑嗗鎯呭喌</p> + </td> + <td> + <p>鏄惁婊¤冻</p> + </td> + <td> + <p>澶囨敞</p> + </td> + </tr> + <tr> + <td rowspan="9"> + <el-input v-model="form.methodName" :rows="6" + placeholder="璇疯緭鍏ュ唴瀹�" + size="small" + type="textarea"> + </el-input> + </td> + <td rowspan="9"> + <el-input v-model="form.verifyReason" :rows="6" + placeholder="璇疯緭鍏ュ唴瀹�" + size="small" + type="textarea"> + </el-input> + </td> + <td rowspan="9"> + <el-input v-model="form.technologyChange" :rows="6" + placeholder="璇疯緭鍏ュ唴瀹�" + size="small" + type="textarea"> + </el-input> + </td> + </tr> + <tr> + <td>浜猴細</td> + <td> + <el-input v-model="form.personRequirements" size="small" type="textarea"></el-input> + </td> + <td> + <el-input v-model="form.personReadiness" size="small" type="textarea"></el-input> + </td> + <td> + <el-radio-group v-model="form.personIsSatisfied" v-removeAriaHidden> + <el-radio :label="0">鍚�</el-radio> + <el-radio :label="1">鏄�</el-radio> + </el-radio-group> + </td> + <td> + <el-link type="primary" @click="viewWorkPermit">鏌ョ湅涓婂矖璇�</el-link> + </td> + </tr> + <tr> + <td>鏈猴細</td> + <td> + <el-input v-model="form.machineRequirements" size="small" type="textarea"></el-input> + </td> + <td> + <el-input v-model="form.machineReadiness" size="small" type="textarea"></el-input> + </td> + <td> + <el-radio-group v-model="form.machineIsSatisfied" v-removeAriaHidden> + <el-radio :label="0">鍚�</el-radio> + <el-radio :label="1">鏄�</el-radio> + </el-radio-group> + </td> + <td> + <el-link type="primary" @click="viewDevice">鏌ョ湅璁惧</el-link> + </td> + </tr> + <tr> + <td>鏂欙細</td> + <td> + <el-input v-model="form.materialRequirements" size="small" type="textarea"></el-input> + </td> + <td> + <el-input v-model="form.materialReadiness" size="small" type="textarea"></el-input> + </td> + <td> + <el-radio-group v-model="form.materialIsSatisfied" v-removeAriaHidden> + <el-radio :label="0">鍚�</el-radio> + <el-radio :label="1">鏄�</el-radio> + </el-radio-group> + </td> + <td> + <el-input v-model="form.materialRemark" size="small"></el-input> + </td> + </tr> + <tr> + <td>娉曪細</td> + <td> + <el-input v-model="form.methodRequirements" size="small" type="textarea"></el-input> + </td> + <td> + <el-input v-model="form.methodReadiness" size="small" type="textarea"></el-input> + </td> + <td> + <el-radio-group v-model="form.methodIsSatisfied" v-removeAriaHidden> + <el-radio :label="0">鍚�</el-radio> + <el-radio :label="1">鏄�</el-radio> + </el-radio-group> + </td> + <td> + <el-link type="primary" @click="viewTestRecord">鏌ョ湅妫�娴嬭褰�</el-link> + </td> + </tr> + <tr> + <td>鐜細</td> + <td> + <el-input v-model="form.environmentRequirements" size="small" type="textarea"></el-input> + </td> + <td> + <el-input v-model="form.environmentReadiness" size="small" type="textarea"></el-input> + </td> + <td> + <el-radio-group v-model="form.environmentIsSatisfied" v-removeAriaHidden> + <el-radio :label="0">鍚�</el-radio> + <el-radio :label="1">鏄�</el-radio> + </el-radio-group> + </td> + <td> + <el-input v-model="form.traceabilityRemark" size="small"></el-input> + </td> + </tr> + <tr> + <td>娴嬮噺婧簮鎬э細</td> + <td> + <el-input v-model="form.traceabilityRequirements" size="small" type="textarea"></el-input> + </td> + <td> + <el-input v-model="form.traceabilityReadiness" size="small" type="textarea"></el-input> + </td> + <td> + <el-radio-group v-model="form.traceabilityIsSatisfied" v-removeAriaHidden> + <el-radio :label="0">鍚�</el-radio> + <el-radio :label="1">鏄�</el-radio> + </el-radio-group> + </td> + <td> + <el-link type="primary" @click="viewCalibrationsFileDia">鏌ョ湅鏍″噯璇佷功</el-link> + </td> + </tr> + <tr> + <td>鏍峰搧绠$悊闇�姹傦細</td> + <td> + <el-input v-model="form.managementRequirements" size="small" type="textarea"></el-input> + </td> + <td> + <el-input v-model="form.managementReadiness" size="small" type="textarea"></el-input> + </td> + <td> + <el-radio-group v-model="form.managementIsSatisfied" v-removeAriaHidden> + <el-radio :label="0">鍚�</el-radio> + <el-radio :label="1">鏄�</el-radio> + </el-radio-group> + </td> + <td> + <el-input v-model="form.managementRemark" size="small"></el-input> + </td> + </tr> + <tr> + <td>鍏朵粬锛�</td> + <td> + <el-input v-model="form.otherRequirements" size="small" type="textarea"></el-input> + </td> + <td> + <el-input v-model="form.otherReadiness" size="small" type="textarea"></el-input> + </td> + <td> + <el-radio-group v-model="form.otherIsSatisfied" v-removeAriaHidden> + <el-radio :label="0">鍚�</el-radio> + <el-radio :label="1">鏄�</el-radio> + </el-radio-group> + </td> + <td> + <el-input v-model="form.otherRemark" size="small"></el-input> + </td> + </tr> + <tr> + <td colspan="3"> + <p>鏄惁寮曠敤姝ゆ爣鍑嗗紑灞曟娴�:</p> + </td> + <td colspan="3">鍙互寮曠敤姝ゆ爣鍑嗗紑灞曟娴�</td> + <td> + <p>纭鏃堕棿:</p> + </td> + <td>{{form.confirmDate}}</td> + </tr> + <tr> + <td colspan="3"> + <p>鍙傚姞纭浜虹鍚�:</p> + </td> + <td colspan="5"> + <el-select v-model="form.confirmUser" multiple placeholder="璇烽�夋嫨" size="small" style="width: 100%"> + <el-option v-for="item in userList" :key="item.id" :label="item.name" :value="item.id"></el-option> + </el-select> + </td> + </tr> + </table> + <span slot="footer" class="dialog-footer"> + <el-button @click="closeDia">鍙� 娑�</el-button> + <el-button :loading="editLoad" type="primary" @click="handleEdit">鎻� 浜�</el-button> + </span> + </el-dialog> + <ViewDeviceDialog v-if="viewDeviceDialog" ref="viewDeviceDialog" @closDeviceDia="closDeviceDia" @handleDeviceInfo="handleDeviceInfo"></ViewDeviceDialog> + <ViewTestRecord v-if="viewTestRecordDialog" ref="viewTestRecordDialog"></ViewTestRecord> + <ViewWorkPermitDia v-if="viewWorkPermitDia" ref="viewWorkPermitDia"></ViewWorkPermitDia> + <calibrations-file-dia v-if="calibrationsFileDia" ref="calibrationsFileDia"></calibrations-file-dia> + </div> +</template> + +<script> +import { dateFormat } from '../../../util/date' +import ViewDeviceDialog from './ViewDeviceDialog.vue'; +import ViewTestRecord from './ViewTestRecord.vue'; +import ViewWorkPermitDia from './viewWorkPermitDia.vue'; +import CalibrationsFileDia from './calibrationsFileDia.vue'; +export default { + name: 'formDIa', + // import 寮曞叆鐨勭粍浠堕渶瑕佹敞鍏ュ埌瀵硅薄涓墠鑳戒娇鐢� + components: { CalibrationsFileDia, ViewWorkPermitDia, ViewTestRecord, ViewDeviceDialog }, + props: { + operationType: { + type: String, + default: () => '' + } + }, + data() { + // 杩欓噷瀛樻斁鏁版嵁 + return { + formDia: false, + form: { + methodName: '', + verifyReason: '', + technologyChange: '', + personRequirements: '', + personReadiness: '', + personIsSatisfied: '', + personRemark: '', + machineRequirements: '', + machineReadiness: '', + machineIsSatisfied: '', + materialRequirements: '', + materialReadiness: '', + materialIsSatisfied: '', + materialRemark: '', + methodRequirements: '', + methodReadiness: '', + methodIsSatisfied: '', + environmentRequirements: '', + environmentReadiness: '', + environmentIsSatisfied: '', + traceabilityRequirements: '', + traceabilityReadiness: '', + traceabilityIsSatisfied: '', + traceabilityRemark: '', + managementRequirements: '', + managementReadiness: '', + managementIsSatisfied: '', + managementRemark: '', + otherRequirements: '', + otherReadiness: '', + otherIsSatisfied: '', + otherRemark: '', + machineAttachmentList: [] + }, + editLoad: false, + info: { + methodVerifyId: '' + }, + userList: [], + viewDeviceDialog: false, + viewTestRecordDialog: false, + viewWorkPermitDia: false, + calibrationsFileDia: false, + }; + }, + // 鏂规硶闆嗗悎 + methods: { + openDia(row) { + this.formDia = true + this.info = row + this.getUserList() + if (this.operationType === 'edit') { + this.searchInfo(row) + } + }, + // 鏌ヨ璇︽儏淇℃伅 + searchInfo (row) { + this.$axios.get(this.$api.processMethodVerify.getMethodVerifyOne + '?methodVerifyId=' + row.methodVerifyId).then(res => { + if (res.code === 201) return + this.form = {...res.data} + if (this.form.confirmUser) { + this.form.confirmUser = this.form.confirmUser.split(',').map(Number) + } + }).catch(err => { + console.log('err---', err); + }) + }, + // 鎻愪氦 + handleEdit() { + this.editLoad = true + const processMethodSearchNews = this.HaveJson(this.form) + processMethodSearchNews.confirmUser = processMethodSearchNews.confirmUser && processMethodSearchNews.confirmUser.join(',') + processMethodSearchNews.operationType = 1 + if (this.operationType === 'edit') { + this.editInfo(processMethodSearchNews) + } else { + this.addInfo(processMethodSearchNews) + } + }, + // 鏌ョ湅涓婂矖璇� + viewWorkPermit () { + this.viewWorkPermitDia = true + this.$nextTick(() => { + this.$refs.viewWorkPermitDia.openDia(this.form) + }) + }, + // 鏌ョ湅鏍″噯璇佷功 + viewCalibrationsFileDia () { + this.calibrationsFileDia = true + this.$nextTick(() => { + this.$refs.calibrationsFileDia.openDia(this.form) + }) + }, + // 鏌ョ湅璁惧 + viewDevice () { + this.viewDeviceDialog = true + this.$nextTick(() => { + this.$refs.viewDeviceDialog.openDia(this.form) + }) + }, + // 鍏抽棴璁惧寮规 + closDeviceDia () { + this.viewDeviceDialog = false + }, + // 鎻愪氦璁惧淇℃伅 + handleDeviceInfo (machineAttachmentList) { + this.viewDeviceDialog = false + this.form.machineAttachmentList = machineAttachmentList + }, + // 鏌ョ湅妫�娴嬭褰� + viewTestRecord () { + this.viewTestRecordDialog = true + this.$nextTick(() => { + this.$refs.viewTestRecordDialog.openDia(this.info) + }) + }, + // 鎻愪氦缂栬緫 + editInfo (processMethodSearchNews) { + this.$axios.post(this.$api.processMethodVerify.updateMethodVerify, processMethodSearchNews, { + headers: { + "Content-Type": "application/json" + }, + noQs: true + }).then(res => { + this.editLoad = false + if (res.code === 201) return + this.$message.success('鎿嶄綔鎴愬姛') + this.closeDia() + }).catch(err => { + console.log('err---', err); + this.editLoad = false + }) + }, + // 鎻愪氦鏂板 + addInfo (processMethodSearchNews) { + this.$axios.post(this.$api.processMethodVerify.addMethodVerify, processMethodSearchNews, { + headers: { + "Content-Type": "application/json" + }, + noQs: true + }).then(res => { + this.editLoad = false + if (res.code === 201) return + this.$message.success('鎿嶄綔鎴愬姛') + this.closeDia() + }).catch(err => { + console.log('err---', err); + this.editLoad = false + }) + }, + // 楠岃瘉纭 + validation () { + this.$axios.get(this.$api.processMethodVerify.methodVerifyAffirm + '?methodVerifyId=' + this.info.methodVerifyId).then(res => { + if (res.code === 201) return + this.form.confirmDate = dateFormat(new Date()) + }).catch(err => { + console.log('err---', err); + }) + }, + // 鍏抽棴寮规 + closeDia() { + this.formDia = false + this.$emit('closeDia'); + }, + getUserList(){ + this.$axios.post(this.$api.user.selectUserList, { + page: {current: -1, size: -1,}, + entity: {name: null} + }, { + headers: { + 'Content-Type': 'application/json' + } + }).then(res => { + if (res.code === 201) { + return + } + this.userList = res.data.body.records + }) + }, + } +}; +</script> + +<style scoped> +>>>.el-dialog { + margin-top: 2vh !important; +} +>>>.el-dialog__body { + max-height: 720px; + overflow-y: auto; +} +.tables { + table-layout: fixed; + width: 100%; + margin-top: 10px; +} +.tables td { + height: 34px; + width: 100px; + text-align: center; + font-size: 14px; + word-wrap: break-word; + white-space: normal; + padding: 4px; +} +</style> diff --git a/src/components/do/a7-method-verification/viewWorkPermitDia.vue b/src/components/do/a7-method-verification/viewWorkPermitDia.vue new file mode 100644 index 0000000..cf39f1e --- /dev/null +++ b/src/components/do/a7-method-verification/viewWorkPermitDia.vue @@ -0,0 +1,118 @@ +<template> + <div> + <el-dialog :visible.sync="filesDialogVisible" title="鏌ョ湅涓婂矖璇�" width="80%" @closed="closeFilesLook"> + <div> + <ZTTable + ref="yearTable" + :column="columnData" + :height="'calc(100vh - 400px)'" + :highlightCurrentRow="true" + :table-data="tableData" + :table-loading="tableLoading" + style="margin-top: 0.5em;"> + </ZTTable> + </div> + </el-dialog> + <el-dialog + :visible.sync="lookDialogVisible" + fullscreen + title="鏌ョ湅闄勪欢" top="5vh" width="800px"> + <filePreview v-if="lookDialogVisible" :currentFile="{}" + :fileUrl="javaApi+'/img/'+currentInfo.fileUrl" style="max-height: 90vh;overflow-y: auto;"/> + </el-dialog> + </div> +</template> + +<script> +import ZTTable from '../../caorui/ZTTable/index.vue'; +import file from '../../../util/file'; +import filePreview from '../../tool/file-preview.vue'; + +export default { + name: 'viewWorkPermitDia', + // import 寮曞叆鐨勭粍浠堕渶瑕佹敞鍏ュ埌瀵硅薄涓墠鑳戒娇鐢� + components: { filePreview, ZTTable }, + data() { + // 杩欓噷瀛樻斁鏁版嵁 + return { + filesDialogVisible: false, + tableLoading: false, + filesLookInfo: {}, + columnData: [ + { + label: '鏂囦欢鍚嶇О', + prop: 'fileName', + minWidth: '150px' + }, + { + label: '鎸佹湁浜�', + prop: 'userName', + minWidth: '150px' + }, + { + dataType: 'action', + minWidth: '100', + label: '鎿嶄綔', + fixed: 'right', + operation: [ + { + name: '棰勮', + type: 'text', + clickFun: (row) => { + this.handleLook(row) + } + }, + { + name: '涓嬭浇', + type: 'text', + clickFun: (row) => { + this.upload(row) + } + }, + ] + } + ], + tableData: [], + info: {}, + currentInfo:{}, + lookDialogVisible: false, + }; + }, + mounted() { + + }, + // 鏂规硶闆嗗悎 + methods: { + openDia(row) { + this.filesDialogVisible = true + this.info = row + this.tableData = this.info.workFileList + }, + closeFilesLook () { + this.filesDialogVisible = false + }, + // 鏌ョ湅鏂囦欢 + handleLook(row){ + this.currentInfo = row + this.lookDialogVisible = true + }, + // 涓嬭浇 + upload (row) { + let url = ''; + if(row.type==1){ + url = this.javaApi+'/img/'+row.fileUrl + file.downloadIamge(url,row.fileName) + }else{ + url = this.javaApi+'/word/'+row.fileUrl + const link = document.createElement('a'); + link.href = url; + link.download = row.fileName; + link.click(); + } + }, + }, +}; +</script> + +<style scoped> +</style> diff --git a/src/components/view/a7-changes-standard-methods.vue b/src/components/view/a7-changes-standard-methods.vue new file mode 100644 index 0000000..ae0ea31 --- /dev/null +++ b/src/components/view/a7-changes-standard-methods.vue @@ -0,0 +1,221 @@ +<template> + <div> + <div> + <div class="view-title"> + <span>鏍囧噯鏂规硶鐨勫彉鏇�</span> + <span> + <el-button size="medium" type="primary" @click="openFormDia('add')">鏂� 澧�</el-button> + </span> + </div> + <div class="search-background"> + <span class="search-group"> + <span style="width: 120px">鏍囧噯鏂规硶锛�</span> + <el-input size="small" v-model="searchForm.methodName" clearable></el-input> + </span> + <span class="search-group"> + <el-button size="medium" @click="resetSearchForm">閲� 缃�</el-button> + <el-button size="medium" type="primary" @click="searchList">鏌� 璇�</el-button> + </span> + </div> + <div class="table"> + <div> + <TableCard :showForm="false" :showTitle="false"> + <template v-slot:table> + <ZTTable + :column="tableColumn" + :table-data="tableData" + :table-loading="tableLoading" + :height="'calc(100vh - 23em)'" + style="padding: 0 15px;margin-bottom: 16px"> + </ZTTable> + </template> + </TableCard> + <el-pagination :current-page="1" :page-size="page.size" :page-sizes="[10, 20, 30, 50, 100]" + :total="total" layout="->,total, sizes, prev, pager, next, jumper" + @size-change="handleSizeChange" + @current-change="handleCurrentChange"> + </el-pagination> + </div> + </div> + </div> + <formDIaChange ref="formDIa" v-if="formDIa" :operationType="operationType" @closeDia="closeDia"></formDIaChange> + </div> +</template> + +<script> +import ZTTable from '../caorui/ZTTable/index.vue'; +import TableCard from '../caorui/TableCard/index.vue'; +import formDIaChange from '../do/a7-changes-standard-methods/formDIaChange.vue'; + +export default { + name: 'a7-changes-standard-methods', + // import 寮曞叆鐨勭粍浠堕渶瑕佹敞鍏ュ埌瀵硅薄涓墠鑳戒娇鐢� + components: { formDIaChange, TableCard, ZTTable }, + data() { + // 杩欓噷瀛樻斁鏁版嵁 + return { + searchForm: { + methodName: '', + operationType: 0, + }, + options: [ + { label: '涓婂崐骞�', value: '1' }, + { label: '涓嬪崐骞�', value: '2' }, + ], + tableColumn: [ + { + label: '鏍囧噯鏂规硶', + prop: 'methodName', + minWidth: '100' + }, + { + label: '楠岃瘉鍘熷洜', + prop: 'verifyReason', + minWidth: '100' + }, + { + label: '涓昏鎶�鏈彉鍖�', + prop: 'technologyChange', + minWidth: '100' + }, + { + dataType: 'action', + minWidth: '60', + label: '鎿嶄綔', + operation: [ + { + name: '缂栬緫', + type: 'text', + clickFun: (row) => { + this.openFormDia('edit', row); + }, + }, + { + name: '鍒犻櫎', + type: 'text', + color: '#f56c6c', + clickFun: (row) => { + this.deleteRow(row); + }, + } + + ] + } + ], + tableData: [], + tableLoading: false, + page: { + size: 20, + current: 1, + }, + total: 0, + formDIa: false, + operationType: '', + }; + }, + mounted() { + this.searchList() + }, + // 鏂规硶闆嗗悎 + methods: { + // 鏌ヨ鍒楄〃 + searchList() { + const entity = { + methodName: this.searchForm.methodName, + operationType: this.searchForm.operationType, + } + const page = this.page + this.tableLoading = true + this.$axios.post(this.$api.processMethodVerify.pagesMethodVerify, { entity, page }, { + headers: { + "Content-Type": "application/json" + }, + noQs: true + }).then(res => { + this.tableLoading = false + if (res.code === 201) return + this.tableData = res.data.records + this.total = res.data.total + }).catch(err => { + console.log('err---', err); + this.tableLoading = false + }) + }, + // 鍒犻櫎 + deleteRow (row) { + this.$confirm('姝ゆ搷浣滃皢姘镐箙鍒犻櫎璇ユ暟鎹�, 鏄惁缁х画?', '鎻愮ず', { + confirmButtonText: '纭畾', + cancelButtonText: '鍙栨秷', + type: 'warning' + }).then(() => { + this.tableLoading = true + this.$axios.get(this.$api.processMethodVerify.delMethodVerify + '?methodVerifyId=' + row.methodVerifyId).then(res => { + this.tableLoading = false + if (res.code === 201) return + this.$message.success('鍒犻櫎鎴愬姛') + this.searchList() + }).catch(err => { + this.tableLoading = false + console.log('err---', err); + }) + }) + }, + // 閲嶇疆鏌ヨ鏉′欢 + resetSearchForm() { + this.searchForm.methodName = ''; + this.searchList() + }, + openFormDia (type, row) { + this.formDIa = true + this.operationType = type + this.$nextTick(() => { + this.$refs.formDIa.openDia(row) + }) + }, + // 鍏抽棴寮规 + closeDia () { + this.formDIa = false + this.searchList() + }, + // 鍒嗛〉 + handleSizeChange(val) { + this.page.size = val; + this.searchList(); + }, + handleCurrentChange(val) { + this.page.current = val; + this.searchList(); + }, + } +}; +</script> + +<style scoped> +.view-title { + display: flex; + justify-content: space-between; + align-items: center; + height: 60px; + padding-left: 20px; +} + +.search-background { + width: 100%; + height: 80px; + line-height: 80px; + background-color: #ffffff; + display: flex; +} + +.search-group { + display: flex; + align-items: center; + margin: 0 20px; +} + +.table { + margin-top: 20px; + background-color: #ffffff; + padding-top: 20px; +} +</style> -- Gitblit v1.9.3