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