From bbc0f06f17c9c3c9ed325af581dfdfc9b9dcaa82 Mon Sep 17 00:00:00 2001 From: licp <lichunping@guanfang.com.cn> Date: 星期一, 18 三月 2024 15:16:03 +0800 Subject: [PATCH] 完成检验下单模板功能 --- src/components/do/b1-ins-order/add.vue | 110 ++++++++++++------ src/components/view/b1-report-preparation.vue | 221 ++++++++++++++++++++++++++++++++++++ static/js/menu.js | 2 src/assets/api/controller.js | 4 4 files changed, 299 insertions(+), 38 deletions(-) diff --git a/src/assets/api/controller.js b/src/assets/api/controller.js index 7d1ec86..4871473 100644 --- a/src/assets/api/controller.js +++ b/src/assets/api/controller.js @@ -120,6 +120,10 @@ upInsOrder: "/insOrder/upInsOrder", //妫�楠屼笅鍙� getInsOrder: "/insOrder/getInsOrder", //鏌ヨ妫�楠屼笅鍗曞唴瀹硅鎯� upInsOrderOfState: "/insOrder/upInsOrderOfState", //瀹℃牳妫�楠屽崟鏈鸿繘琛岀姸鎬佷慨鏀� + addInsOrderTemplate: "/insOrder/addInsOrderTemplate", //娣诲姞妫�楠屽崟妯℃澘 + selectInsOrderTemplate: "/insOrder/selectInsOrderTemplate", //鏌ヨ妫�楠屽崟妯℃澘 + selectInsOrderTemplateById: "/insOrder/selectInsOrderTemplateById", //閫氳繃妫�楠屽崟妯℃澘id鑾峰彇妫�楠屽崟妯℃澘鍐呭 + delInsOrderTemplate: "/insOrder/delInsOrderTemplate", //鍒犻櫎妫�楠屽崟妯℃澘 } const sampleOrder = { diff --git a/src/components/do/b1-ins-order/add.vue b/src/components/do/b1-ins-order/add.vue index 23d27c7..063abfc 100644 --- a/src/components/do/b1-ins-order/add.vue +++ b/src/components/do/b1-ins-order/add.vue @@ -88,10 +88,10 @@ <el-row class="title"> <el-col :span="6" style="padding-left: 20px;">濮旀墭鍗曚俊鎭�</el-col> <el-col :span="18" style="text-align: right;"> - <el-select v-model="template" size="medium" placeholder="涓嬪崟妯℃澘" style="margin-right: 10px;" v-show="active==1"> - <el-option v-for="(a, ai) in templates" :key="ai" :value="a.value" :label="a.label"> - <span style="float: left">{{ a.label }}</span> - <i class="el-icon-delete" style="float: right; color: #66b1ff; font-size: 16px" @click.stop="handleDelete"></i> + <el-select v-model="template" size="medium" placeholder="涓嬪崟妯℃澘" style="margin-right: 10px;" v-show="active==1" @change="selectInsOrderTemplateById"> + <el-option v-for="(a, ai) in templates" :key="ai" :value="a.id" :label="a.name"> + <span style="float: left">{{ a.name }}</span> + <i class="el-icon-delete" style="float: right; color: #66b1ff; font-size: 16px" @click.stop="handleDelete(a)"></i> </el-option> </el-select> <el-button size="medium" @click="templateDia=true" v-show="active==1"> @@ -383,12 +383,7 @@ data() { return { template: null, - templates: [ - { - label:'0000', - value:1 - } - ], + templates: [], addObj: { entrustCode: null, custom: null, @@ -462,6 +457,7 @@ this.selectEnumByCategoryForType() this.getUserNow() this.selectStandardTreeList() + this.selectInsOrderTemplate() if(this.active==1){ // 涓嬪崟娴佺▼ }else { @@ -503,20 +499,30 @@ this.selectUserDia = false }, save() { - this.saveLoad = true - this.$axios.post(this.$api.insOrder.addInsOrder,{ - insOrder: this.addObj, - list: this.sampleList - },{ - headers: { - 'Content-Type': 'application/json' - } - }).then(res=>{ - this.saveLoad = false - if(res.code==201)return - this.$message.success('宸叉彁浜�') - this.$parent.playOrder(0) - }) + if(!this.addObj.custom){ + this.$message.error('鏈�夋嫨涓嬪崟瀹㈡埛') + }else if(!this.addObj.type){ + this.$message.error('鏈�夋嫨绱ф�ョ▼搴�') + }else if(this.sampleList.length<1){ + this.$message.error('璇锋坊鍔犱竴涓牱鍝�') + }else if(!this.sampleList.every(m=>m.sampleCode)){ + this.$message.error('杈撳叆鏍峰搧缂栧彿') + }else{ + this.saveLoad = true + this.$axios.post(this.$api.insOrder.addInsOrder,{ + insOrder: this.addObj, + list: this.sampleList + },{ + headers: { + 'Content-Type': 'application/json' + } + }).then(res=>{ + this.saveLoad = false + if(res.code==201)return + this.$message.success('宸叉彁浜�') + this.$parent.playOrder(0) + }) + } }, upInsOrderOfState(state){ this.saveLoad = true @@ -692,34 +698,64 @@ } return ''; }, + selectInsOrderTemplate(){ + this.$axios.get(this.$api.insOrder.selectInsOrderTemplate).then(res=>{ + if(res.code==201)return + this.templates = res.data + }) + }, // 鍒犻櫎妯℃澘--璋冪敤鎺ュ彛 - handleDelete(){ + handleDelete(row){ this.$confirm('鏄惁鍒犻櫎褰撳墠鏁版嵁?', "璀﹀憡", { confirmButtonText: "纭畾", cancelButtonText: "鍙栨秷", type: "warning" }).then(() => { - // this.$axios.post(this.delUrl, { - // id: row.id - // }).then(res => { - // if (res.code === 201) { - // return - // } - // this.$message.success('鍒犻櫎鎴愬姛') - // this.selectList() - // }).catch(e => { - // this.$message.error('鍒犻櫎澶辫触') - // }) + this.$axios.post(this.$api.insOrder.delInsOrderTemplate, { + id: row.id + }).then(res => { + if (res.code === 201) { + return + } + this.$message.success('鍒犻櫎鎴愬姛') + this.selectInsOrderTemplate() + }).catch(e => { + this.$message.error('鍒犻櫎澶辫触') + }) }).catch(() => {}) }, // 淇濆瓨妯℃澘 addTemplateDia(){ if(this.templateName){ this.templateLoading = true; + this.$axios.post(this.$api.insOrder.addInsOrderTemplate,{ + name:this.templateName, + thing:JSON.stringify({addObj:this.addObj,sampleList:this.sampleList}) + },{ + headers: { + 'Content-Type': 'application/json' + } + }).then(res=>{ + if(res.code==201)return + this.templateLoading = false; + this.templateDia = false; + this.$message.success('淇濆瓨鎴愬姛') + this.selectInsOrderTemplate() + this.templateName = '' + }) }else{ this.$message.error('璇峰~鍐欐ā鏉垮悕绉�') } - } + }, + // 鏌ヨ妯℃澘 + selectInsOrderTemplateById(e){ + this.$axios.post(this.$api.insOrder.selectInsOrderTemplateById+'?id='+e).then(res=>{ + if(res.code==201)return + let obj = JSON.parse(res.data) + this.addObj = obj.addObj; + this.sampleList = obj.sampleList; + }) + }, } } </script> diff --git a/src/components/view/b1-report-preparation.vue b/src/components/view/b1-report-preparation.vue new file mode 100644 index 0000000..b38230a --- /dev/null +++ b/src/components/view/b1-report-preparation.vue @@ -0,0 +1,221 @@ +<style scoped> + .title { + height: 60px; + line-height: 60px; + } + + .search { + background-color: #fff; + height: 80px; + display: flex; + align-items: center; + } + + .search_thing { + display: flex; + align-items: center; + height: 50px; + } + + .search_label { + width: 120px; + font-size: 14px; + text-align: right; + } + + .search_input { + width: calc(100% - 120px); + } + + .table { + margin-top: 10px; + background-color: #fff; + width: calc(100% - 40px); + height: calc(100% - 60px - 80px - 10px - 40px); + padding: 20px; + } + + .el-form-item { + margin-bottom: 16px; + } +</style> + +<template> + <div class="inspection_order"> + <div style="width: 100%;height: 100%;"> + <div> + <el-row class="title"> + <el-col :span="12" style="padding-left: 20px;">鎶ュ憡缂栧埗</el-col> + </el-row> + </div> + <div class="search"> + <div class="search_thing"> + <div class="search_label">鏍峰搧鍚嶇О锛�</div> + <div class="search_input"><el-input size="small" placeholder="璇疯緭鍏�" clearable + v-model="componentData.entity.sample" @keyup.enter.native="refreshTable()"></el-input></div> + </div> + <div class="search_thing"> + <div class="search_label">鐘舵�侊細</div> + <div class="search_input"> + <el-select v-model="componentData.entity.status" placeholder="鍏ㄩ儴"> + <el-option + v-for="item in statusList" + :key="item.value" + :label="item.label" + :value="item.value"> + </el-option> + </el-select> + </div> + </div> + <div class="search_thing" style="padding-left: 30px;"> + <el-button size="small" @click="refresh()">閲� 缃�</el-button> + <el-button size="small" type="primary" @click="refreshTable()">鏌� 璇�</el-button> + </div> + </div> + <div class="table"> + <ValueTable ref="ValueTable" :url="$api.insOrder.selectInsOrderParameter" :componentData="componentData" + :key="upIndex" @handleWeave="handleWeave"/> + </div> + </div> + </div> +</template> + +<script> + import ValueTable from '../tool/value-table.vue' + export default { + components: { + ValueTable + }, + data() { + return { + componentData: { + entity: { + entrustCode: null, + sample: null, + state: 1, + orderBy: { + field: 'id', + order: 'asc' + } + }, + isIndex: true, + showSelect: false, + select: false, + do: [{ + id: 'handleWeave', + font: '鍦ㄧ嚎缂栧埗', + type: 'text', + method: 'handleWeave', + disabFun: (row, index) => { + return row.state != 1 + } + }, { + id: 'download', + font: '涓嬭浇', + type: 'text', + method: 'download', + disabFun: (row, index) => { + return row.state != 1 + } + }, { + id: 'handleUpload', + font: '涓婁紶', + type: 'text', + method: 'handleUpload', + disabFun: (row, index) => { + return row.state != 0 + } + }, { + id: 'handlRestore', + font: '杩樺師', + type: 'text', + method: 'handleRestore' + }, { + id: 'handleIssued', + font: '瀹℃牳', + type: 'text', + method: 'handleIssued', + disabFun: (row, index) => { + return row.state != 1 || row.sendTime != null + } + }, { + id: 'handleApprove', + font: '鎵瑰噯', + type: 'text', + method: 'handleApprove', + disabFun: (row, index) => { + return row.state != 1 || row.sendTime != null + } + }], + linkEvent:{ + entrustCode:{ + method:'selectAllByOne' + } + }, + tagField: { + type: { + select: [{ + value: 0, + type: 'success', + label: '鏅��' + }, { + value: 1, + type: 'warning', + label: '浼樺厛' + }, { + value: 2, + type: 'danger', + label: '绱ф��' + }] + }, + createUser: { + select: [] + } + }, + selectField: {}, + requiredAdd: [], + requiredUp: [] + }, + entityCopy: {}, + upIndex: 0, + statusList:[] + } + }, + mounted() { + this.entityCopy = this.HaveJson(this.componentData.entity) + this.getPower() + }, + methods: { + refreshTable() { + this.$refs['ValueTable'].selectList() + }, + refresh() { + this.componentData.entity = this.HaveJson(this.entityCopy) + this.upIndex++ + }, + handleWeave(){}, + // 鏉冮檺鍒嗛厤 + getPower(radio) { + let power = JSON.parse(sessionStorage.getItem('power')) + let up = false + let del = false + let add = false + for (var i = 0; i < power.length; i++) { + if (power[i].menuMethod == 'upInsOrder') { + up = true + } + if (power[i].menuMethod == 'addInsOrder') { + add = true + } + } + if (!up) { + this.componentData.do.splice(4, 1) + } + }, + handleClose() { + + this.upLoad = false; + }, + } + } +</script> diff --git a/static/js/menu.js b/static/js/menu.js index d24b3a4..6e89662 100644 --- a/static/js/menu.js +++ b/static/js/menu.js @@ -27,7 +27,7 @@ }, { v: "鎶ュ憡缂栧埗", i: "font icon-erjidaohang", - u: "", + u: "b1-report-preparation", p: "" }, { v: "璐圭敤缁熻", -- Gitblit v1.9.3