From 59ef8ccfa6240c5fa3c823d773aab15930af4d41 Mon Sep 17 00:00:00 2001
From: 李林 <z1292839451@163.com>
Date: 星期二, 19 三月 2024 17:13:20 +0800
Subject: [PATCH] 功能调整
---
src/components/view/b2-standard.vue | 162 +++++++++++++++-----
src/components/do/b1-ins-order/add.vue | 13 -
src/components/tool/value-table.vue | 136 ++++++++++------
src/components/view/a5-capacity-scope.vue | 22 ++
package-lock.json | 10 +
static/js/menu.js | 2
src/components/view/b1-inspection-order.vue | 44 ++--
src/components/view/a7-standard-method.vue | 48 ++++-
src/assets/api/controller.js | 4
9 files changed, 301 insertions(+), 140 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index 6b731f8..afa2cbe 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -177,6 +177,11 @@
}
}
},
+ "@tinymce/tinymce-vue": {
+ "version": "3.2.8",
+ "resolved": "https://registry.npmmirror.com/@tinymce/tinymce-vue/-/tinymce-vue-3.2.8.tgz",
+ "integrity": "sha512-jEz+NZ0g+FZFz273OEUWz9QkwPMyjc5AJYyxOgu51O1Y5UaJ/6IUddXTX6A20mwCleEv5ebwNYdalviafx4fnA=="
+ },
"@transloadit/prettier-bytes": {
"version": "0.0.7",
"resolved": "https://registry.npmjs.org/@transloadit/prettier-bytes/-/prettier-bytes-0.0.7.tgz",
@@ -12039,6 +12044,11 @@
"resolved": "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.4.2.tgz",
"integrity": "sha512-vJhccZPs965sV/L2sU4oRQVAos0pQXwsvTLkWYdqJ+a8Q5kPFzJTuOFwy7UniPli44NKQGAglksjvOcpo95aZA=="
},
+ "tinymce": {
+ "version": "5.10.9",
+ "resolved": "https://registry.npmmirror.com/tinymce/-/tinymce-5.10.9.tgz",
+ "integrity": "sha512-5bkrors87X9LhYX2xq8GgPHrIgJYHl87YNs+kBcjQ5I3CiUgzo/vFcGvT3MZQ9QHsEeYMhYO6a5CLGGffR8hMg=="
+ },
"tmp": {
"version": "0.2.3",
"resolved": "https://registry.npmmirror.com/tmp/-/tmp-0.2.3.tgz",
diff --git a/src/assets/api/controller.js b/src/assets/api/controller.js
index 4871473..552fbaa 100644
--- a/src/assets/api/controller.js
+++ b/src/assets/api/controller.js
@@ -150,11 +150,15 @@
addStandardProduct: "/standardTree/addStandardProduct", //鏂板鏍囧噯鏍戜笅鐨勬楠岄」鐩�
delStandardTree: "/standardTree/delStandardTree", //鍒犻櫎鏍囧噯鏍戠殑灞傜骇
selectStandardProductList: "/standardTree/selectStandardProductList", //閫氳繃鏍囧噯鏍戞煡璇㈠搴旂殑妫�楠岄」鐩�
+ selectStandardProductListByMethodId: "/standardTree/selectStandardProductListByMethodId", //閫氳繃妫�楠屾爣鍑嗘煡璇㈡楠岄」鐩�
}
const standardMethod = {
selectStandardMethodList: "/standardMethod/selectStandardMethodList", //鑾峰彇鏍囧噯鏂规硶鍒楄〃
selectStandardMethods: "/standardMethod/selectStandardMethods", //鑾峰彇鏍囧噯鏂规硶鏋氫妇
+ addStandardMethod: "/standardMethod/addStandardMethod", //娣诲姞鏍囧噯鏂规硶
+ upStandardMethod: "/standardMethod/upStandardMethod", //淇敼鏍囧噯鏂规硶
+ delStandardMethod: "/standardMethod/delStandardMethod", //鍒犻櫎鏍囧噯鏂规硶
}
const StandardTemplate = {
diff --git a/src/components/do/b1-ins-order/add.vue b/src/components/do/b1-ins-order/add.vue
index 1758b5a..1dbec6e 100644
--- a/src/components/do/b1-ins-order/add.vue
+++ b/src/components/do/b1-ins-order/add.vue
@@ -98,8 +98,8 @@
<span style="color: #3A7BFA;">淇濆瓨妯℃澘</span>
</el-button>
<el-button size="medium" type="primary" @click="save" :loading="saveLoad" v-show="active==1">鎻愪氦</el-button>
- <el-button size="medium" @click="upInsOrderOfState(2)" :loading="saveLoad" v-show="active==3">瀹℃牳涓嶉�氳繃</el-button>
- <el-button size="medium" type="primary" @click="upInsOrderOfState(1)" :loading="saveLoad" v-show="active==3">瀹℃牳閫氳繃</el-button>
+ <el-button size="medium" @click="upInsOrderOfState(2)" :loading="saveLoad" v-show="active==3">涓嶉�氳繃</el-button>
+ <el-button size="medium" type="primary" @click="upInsOrderOfState(1)" :loading="saveLoad" v-show="active==3">閫氳繃</el-button>
<el-button size="medium" @click="$parent.playOrder(0)">
<span style="color: #3A7BFA;">杩斿洖</span>
</el-button>
@@ -127,13 +127,6 @@
<div class="search_label"><span class="required-span">* </span>涓嬪崟鍗曚綅锛�</div>
<div class="search_input">
<el-input size="small" placeholder="閫夋嫨涓嬪崟瀹㈡埛" clearable disabled v-model="addObj.company"></el-input>
- </div>
- </el-col>
- <el-col class="search_thing" :span="6">
- <div class="search_label">闇�姹傛椂闂达細</div>
- <div class="search_input">
- <el-date-picker type="date" placeholder="閫夋嫨鏃ユ湡" size="small" value-format="yyyy-MM-dd" style="width: 100%;"
- v-model="addObj.appointed"></el-date-picker>
</div>
</el-col>
<el-col class="search_thing" :span="6">
@@ -170,7 +163,7 @@
</div>
<div>
<div style="text-align: right;line-height: 45px;" v-if="active<2">
- <el-button type="primary" size="small" @click="addSampleDia = true" >娣诲姞鏍峰搧</el-button>
+ <el-button type="primary" size="small" @click="addSampleDia = true">娣诲姞鏍峰搧</el-button>
<el-button size="small" @click="delSample">
<span style="color: #3A7BFA;">鍒犻櫎鏍峰搧</span>
</el-button>
diff --git a/src/components/tool/value-table.vue b/src/components/tool/value-table.vue
index 78fa5f5..c8bce0f 100644
--- a/src/components/tool/value-table.vue
+++ b/src/components/tool/value-table.vue
@@ -36,26 +36,32 @@
}
</style>
<style>
- .value-table .highlight-warning-row-border td{
- border-top: 2px solid #ffcd29;
- border-bottom: 2px solid #ffcd29;
- }
- .value-table .highlight-warning-row-border td:first-child{
- border-left: 2px solid #ffcd29;
- }
- .value-table .highlight-warning-row-border td:last-child{
- border-right: 2px solid #ffcd29;
- }
- .value-table .highlight-danger-row-border td{
- border-top: 2px solid red;
- border-bottom: 2px solid red;
- }
- .value-table .highlight-danger-row-border td:first-child{
- border-left: 2px solid red;
- }
- .value-table .highlight-danger-row-border td:last-child{
- border-right: 2px solid red;
- }
+ .value-table .highlight-warning-row-border td {
+ border-top: 2px solid #ffcd29;
+ border-bottom: 2px solid #ffcd29;
+ }
+
+ .value-table .highlight-warning-row-border td:first-child {
+ border-left: 2px solid #ffcd29;
+ }
+
+ .value-table .highlight-warning-row-border td:last-child {
+ border-right: 2px solid #ffcd29;
+ }
+
+ .value-table .highlight-danger-row-border td {
+ border-top: 2px solid red;
+ border-bottom: 2px solid red;
+ }
+
+ .value-table .highlight-danger-row-border td:first-child {
+ border-left: 2px solid red;
+ }
+
+ .value-table .highlight-danger-row-border td:last-child {
+ border-right: 2px solid red;
+ }
+
.value-table .el-upload {
width: 100%;
}
@@ -76,23 +82,31 @@
</el-table-column>
<el-table-column type="index" align="center" label="搴忓彿" width="70" v-if="data.isIndex" :key="Math.random()">
</el-table-column>
- <el-table-column :prop="a.label" :label="a.value" :sortable="data.sort==false?false:'custom'" v-for="(a, ai) in tableHead" :key="ai"
- show-overflow-tooltip min-width="160">
+ <el-table-column :prop="a.label" :label="a.value" :sortable="data.sort==false?false:'custom'"
+ v-for="(a, ai) in tableHead" :key="ai" show-overflow-tooltip min-width="160">
<template slot-scope="scope">
<div v-if="showType(a.label, data.tagField) != null">
- <el-tag v-for="(b, bi) in data.tagField[a.label].select" :key="bi" v-if="b.value == scope.row[a.label]"
- :type="b.type" size="medium">{{b.label}}</el-tag>
+ <template v-if="typeof(scope.row[a.label]) == 'object'">
+ <template v-for="(param, i) in scope.row[a.label]">
+ <el-tag v-for="(b, bi) in data.tagField[a.label].select" :key="bi" v-if="b.value == param"
+ :type="b.type" size="medium" style="margin-right: 5px;">{{b.label}}</el-tag>
+ </template>
+ </template>
+ <template v-else>
+ <el-tag v-for="(b, bi) in data.tagField[a.label].select" :key="bi" v-if="b.value == scope.row[a.label]"
+ :type="b.type" size="medium">{{b.label}}</el-tag>
+ </template>
</div>
- <!-- 鍙搷浣滆杩涜鐐瑰嚮浜嬩欢 -->
- <span v-else-if="data.linkEvent&&showLink(a.label, data.linkEvent)" style="color:#409EFF;cursor: pointer;" @click="handleLinkEvent(scope.row,data.linkEvent[a.label])">{{scope.row[a.label]}}</span>
+ <!-- 鍙搷浣滆杩涜鐐瑰嚮浜嬩欢 -->
+ <span v-else-if="data.linkEvent&&showLink(a.label, data.linkEvent)" style="color:#409EFF;cursor: pointer;"
+ @click="handleLinkEvent(scope.row,data.linkEvent[a.label])">{{scope.row[a.label]}}</span>
<span v-else>{{scope.row[a.label]}}</span>
</template>
</el-table-column>
- <el-table-column fixed="right" align="center" label="鎿嶄綔" :width="getWidth()"
- v-if="data.do.length > 0">
+ <el-table-column fixed="right" align="center" label="鎿嶄綔" :width="getWidth()" v-if="data.do.length > 0">
<template slot-scope="scope">
<el-button v-for="(a, ai) in data.do" :key="ai" :type="a.type"
- :disabled="a.disabFun ? a.disabFun(scope.row,scope.$index) : false"
+ :disabled="a.disabFun ? a.disabFun(scope.row,scope.$index) : false"
@click="main(scope.row, a)">{{a.font}}</el-button>
</template>
</el-table-column>
@@ -105,19 +119,21 @@
</el-pagination>
</div>
<el-dialog title="缂栬緫" :visible.sync="upDia" :width="data.row==1?'500px':500+data.row * 200 + 'px'">
- <div class="body" v-if="upDia" style="max-height: 550px;overflow-y: auto;padding: 5px 0;">
+ <div class="body" v-if="upDia" style="max-height: 550px;overflow-y: auto;padding: 5px 10px 5px 0;">
<div v-if="data.row > 1">
<div v-for="(a, ai) in upHead" :key="ai" style="line-height: 50px;">
- <el-col :span="6/data.row" style="text-align: right;">
+ <el-col :span="6/data.row" style="text-align: right;" :offset="1">
<span class="required-span" v-if="showUpReq(a.label)">* </span>{{a.value}}锛�
</el-col>
- <el-col :span="16/data.row" :offset="1">
+ <el-col :span="16/data.row">
<el-input v-model="upData[a.label]" size="small" clearable :placeholder="`璇疯緭鍏�${a.value}`"
v-if="showType(a.label, data.selectField) == null" :disabled="isDisabled(a.label)"></el-input>
- <el-select v-model="upData[a.label]" size="small" v-if="showType(a.label, data.selectField) != null"
- style="width: 100%;" :disabled="isDisabled(a.label)" clearable>
+ <el-select v-model="upData[a.label]" :multiple="data.selectField[a.label].choose" size="small"
+ v-if="showType(a.label, data.selectField) != null" style="width: 100%;" :disabled="isDisabled(a.label)"
+ clearable>
<el-option v-for="(b, bi) in data.selectField[a.label].select" :key="bi" :value="b.value"
- :label="b.label"></el-option>
+ :label="b.label">
+ </el-option>
</el-select>
</el-col>
</div>
@@ -130,8 +146,9 @@
<el-col :span="16" :offset="1">
<el-input v-model="upData[a.label]" size="small" clearable :placeholder="`璇疯緭鍏�${a.value}`"
v-if="showType(a.label, data.selectField) == null" :disabled="isDisabled(a.label)"></el-input>
- <el-select v-model="upData[a.label]" size="small" v-if="showType(a.label, data.selectField) != null"
- style="width: 100%;" :disabled="isDisabled(a.label)" clearable>
+ <el-select v-model="upData[a.label]" :multiple="data.selectField[a.label].choose" size="small"
+ v-if="showType(a.label, data.selectField) != null" style="width: 100%;" :disabled="isDisabled(a.label)"
+ clearable>
<el-option v-for="(b, bi) in data.selectField[a.label].select" :key="bi" :value="b.value"
:label="b.label"></el-option>
</el-select>
@@ -216,9 +233,9 @@
} from 'iview';
export default {
props: {
- tableRowClassName:{
- type: Function
- },
+ tableRowClassName: {
+ type: Function
+ },
url: {
type: String,
default: () => null
@@ -390,6 +407,15 @@
this.total = res.data.body.total
this.tableHead = res.data.head
this.tableData = res.data.body.records
+ for (var a in this.data.selectField) {
+ if (this.data.selectField[a].choose == true) {
+ this.tableData.map(b => {
+ try {
+ b[a] = JSON.parse(b[a])
+ } catch (e) {}
+ })
+ }
+ }
this.loading = false
}).catch(e => {
this.loading = false
@@ -414,10 +440,10 @@
var str = ob[val]
return str == undefined ? null : ob[val].select
},
- showLink(val, ob){
- var str = ob[val]
+ showLink(val, ob) {
+ var str = ob[val]
return str == undefined ? null : ob[val].method
- },
+ },
showAddReq(label) {
if (this.data.requiredAdd == undefined) {
return
@@ -454,7 +480,7 @@
delete this.upData.createUser
delete this.upData.updateUser
val.field.forEach(a => {
- if (this.upData[a] == undefined) {
+ if (this.upData[a] === undefined) {
this.upHead.push({
value: a.split('=')[0],
label: a.split('=')[1]
@@ -496,7 +522,6 @@
} else {
delete row.orderBy
this.$parent[val.method](row)
- // this.$emit(val.method, row)
}
},
saveUpData() {
@@ -515,6 +540,11 @@
}
}
this.upLoad = true
+ for (var a in this.data.selectField) {
+ if (this.data.selectField[a].choose == true) {
+ this.upData[a] = JSON.stringify(this.upData[a])
+ }
+ }
this.$axios.post(this.upUrl, this.upData, {
headers: {
'Content-Type': 'application/json'
@@ -729,16 +759,16 @@
});
return sums;
},
- handleLinkEvent(row,val){
- if(val.method=='doDiy'){
- this.main(row,val)
- }else{
+ handleLinkEvent(row, val) {
+ if (val.method == 'doDiy') {
+ this.main(row, val)
+ } else {
this.$parent[val.method](row)
- }
- },
- getWidth(){
+ }
+ },
+ getWidth() {
let count = 0
- this.data.do.forEach(a=>{
+ this.data.do.forEach(a => {
count += a.font.length
})
return count * 15 + 60 + 'px'
diff --git a/src/components/view/a5-capacity-scope.vue b/src/components/view/a5-capacity-scope.vue
index fe60bf6..bf6e2dd 100644
--- a/src/components/view/a5-capacity-scope.vue
+++ b/src/components/view/a5-capacity-scope.vue
@@ -162,7 +162,9 @@
templateId:{
select:[]
},
- sonLaboratory: {select:[]}
+ sonLaboratory: {select:[]},
+ unit: {select:[]},
+ sample: {select:[]},
},
selectField: {
inspectionItemType: {
@@ -180,10 +182,11 @@
templateId:{
select:[]
},
- method:{select:[]},
+ method:{select:[],choose: true},
deviceGroup:{select:[]},
sample: {select:[]},
- sonLaboratory: {select:[]}
+ sonLaboratory: {select:[]},
+ unit: {select:[]}
},
requiredAdd: ['sonLaboratory','inspectionItem', 'manHour', 'inspectionItemType','inspectionItemSubclass','inspectionValueType','laboratory','unit','method','price','manDay','deviceGroup','checkoutNumber','sample'],
requiredUp: ['sonLaboratory','inspectionItem', 'manHour', 'inspectionItemType','inspectionItemSubclass','inspectionValueType','laboratory','unit','method','price','manDay','deviceGroup','checkoutNumber','sample']
@@ -237,6 +240,7 @@
this.selectTestObjectByName()
this.getStandardTemplate()
this.selectEnumByCategoryForSLaboratory()
+ this.selectEnumByCategoryForUnit()
this.getPower('0')
},
methods: {
@@ -321,6 +325,14 @@
this.itemParameterData.tagField.sonLaboratory.select = res.data
})
},
+ selectEnumByCategoryForUnit() {
+ this.$axios.post(this.$api.enums.selectEnumByCategory, {
+ category: "鍗曚綅"
+ }).then(res => {
+ this.itemParameterData.selectField.unit.select = res.data
+ this.itemParameterData.tagField.unit.select = res.data
+ })
+ },
obtainItemParameterList() {
this.$axios.get(this.$api.laboratoryScope.obtainItemParameterList).then(res => {
let data = []
@@ -353,10 +365,12 @@
res.data.forEach(a => {
data.push({
label: a.specimenName,
- value: a.specimenName
+ value: a.id,
+ type: 'success'
})
})
this.itemParameterData.selectField.sample.select = data
+ this.itemParameterData.tagField.sample.select = data
})
},
getStandardTemplate() {
diff --git a/src/components/view/standard_method.vue b/src/components/view/a7-standard-method.vue
similarity index 68%
rename from src/components/view/standard_method.vue
rename to src/components/view/a7-standard-method.vue
index 4cb5c7b..2e33e47 100644
--- a/src/components/view/standard_method.vue
+++ b/src/components/view/a7-standard-method.vue
@@ -42,7 +42,7 @@
<el-row class="title">
<el-col :span="12" style="padding-left: 20px;">鏍囧噯鏂规硶</el-col>
<el-col :span="12" style="text-align: right;">
- <!-- <el-button size="medium" type="primary" @click="openAdd" v-if="addPower">鏂板</el-button> -->
+ <el-button size="medium" type="primary" @click="openAdd" v-if="addPower">鏂板</el-button>
</el-col>
</el-row>
</div>
@@ -63,7 +63,8 @@
</div>
</div>
<div class="table">
- <ValueTable ref="ValueTable" :url="$api.standardMethod.selectStandardMethodList" :componentData="componentData" :key="upIndex"/>
+ <ValueTable ref="ValueTable" :url="$api.standardMethod.selectStandardMethodList"
+ :delUrl="$api.standardMethod.delStandardMethod" :upUrl="$api.standardMethod.upStandardMethod" :componentData="componentData" :key="upIndex"/>
</div>
</div>
</template>
@@ -93,17 +94,21 @@
font: '缂栬緫',
type: 'text',
method: 'doDiy',
- field:['createUserName','updateUserName']
+ field:['sampleType','createUserName','updateUserName','妫�楠屽璞�=structureTestObjectId']
},{
id: 'delete',
font: '鍒犻櫎',
type: 'text',
method: 'doDiy'
}],
- tagField: {},
- selectField: {},
- requiredAdd:['code','name'],
- requiredUp:['code','name']
+ tagField: {
+ structureTestObjectId:{select: []}
+ },
+ selectField: {
+ structureTestObjectId:{select: []}
+ },
+ requiredAdd:['code','name','structureTestObjectId'],
+ requiredUp:['code','name','structureTestObjectId']
},
entityCopy: {},
upIndex: 0,
@@ -114,6 +119,7 @@
mounted() {
this.entityCopy = this.HaveJson(this.componentData.entity)
this.getPower()
+ this.selectTestObjectByName()
},
methods: {
refreshTable() {
@@ -130,9 +136,15 @@
let del = false
let add = false
for (var i = 0; i < power.length; i++) {
- /* if(power[i].menuMethod=='addEnum'){
+ if(power[i].menuMethod=='addStandardMethod'){
add = true
- } */
+ }
+ if(power[i].menuMethod=='delStandardMethod'){
+ del = true
+ }
+ if(power[i].menuMethod=='upStandardMethod'){
+ up = true
+ }
}
if(!del){
this.componentData.do.splice(1, 1)
@@ -141,7 +153,23 @@
this.componentData.do.splice(0, 1)
}
this.addPower = add
- }
+ },
+ openAdd(){
+ this.$refs.ValueTable.openAddDia(this.$api.standardMethod.addStandardMethod);
+ },
+ selectTestObjectByName() {
+ this.$axios.get(this.$api.capacityScope.selectTestObjectByName).then(res => {
+ let data = []
+ res.data.forEach(a => {
+ data.push({
+ label: a.specimenName,
+ value: a.id
+ })
+ })
+ this.componentData.selectField.structureTestObjectId.select = data
+ this.componentData.tagField.structureTestObjectId.select = data
+ })
+ },
}
}
</script>
\ No newline at end of file
diff --git a/src/components/view/b1-inspection-order.vue b/src/components/view/b1-inspection-order.vue
index d9a4091..0200bd6 100644
--- a/src/components/view/b1-inspection-order.vue
+++ b/src/components/view/b1-inspection-order.vue
@@ -54,7 +54,7 @@
border-radius: 8px 0 0 8px;
}
- .tab li:nth-child(4) {
+ .tab li:nth-child(5) {
border-radius: 0 8px 8px 0;
}
@@ -218,7 +218,7 @@
entity: {
entrustCode: null,
sample: null,
- state: 1,
+ state: 0,
orderBy: {
field: 'id',
order: 'asc'
@@ -260,17 +260,17 @@
return row.state == 2 || row.state == 3
}
}, {
- font: '涓嬪彂',
+ font: '鍒嗛厤',
type: 'text',
method: 'handleIssued',
disabFun: (row, index) => {
return row.state != 1 || row.sendTime != null
}
}],
- linkEvent:{
- entrustCode:{
- method:'selectAllByOne'
- }
+ linkEvent: {
+ entrustCode: {
+ method: 'selectAllByOne'
+ }
},
tagField: {
type: {
@@ -333,12 +333,15 @@
addPower: true,
upLoad: false,
tabList: [{
- label: '妫�楠屽鐞�',
+ label: '寰呭鏍�',
+ value: 0
+ }, {
+ label: '寰呮楠�',
value: 1
},
{
- label: '寰呭鏍�',
- value: 0
+ label: '宸叉楠�',
+ value: 4
},
{
label: '閫�鍥�',
@@ -350,8 +353,8 @@
},
],
tabIndex: 0,
- active: 0,//1锛氫笅鍗曪紝2锛氭煡鐪嬶紝3锛氬鏍�
- currentId:null
+ active: 0, //1锛氫笅鍗曪紝2锛氭煡鐪嬶紝3锛氬鏍�
+ currentId: null
}
},
mounted() {
@@ -415,27 +418,26 @@
},
// 璇︽儏
selectAllByOne(row) {
- this.active = 2;
+ this.active = 2;
// console.log(row);
// //鎵撳紑寮规
// this.dialogVisible = true;
// //row = 鐐瑰嚮瀵瑰簲琛屽��
// //澶嶅埗缁檉ormData
// this.formData = this.HaveJson(row);
- this.currentId = row.id
+ this.currentId = row.id
},
// 鏁版嵁鏌ョ湅
handleDataLook(row) {
this.dataDialogVisible = true;
},
// 涓嬭浇鎶ュ憡
- download(row) {
- },
+ download(row) {},
// 瀹℃牳
handleVerify(row) {
// this.verifyDialogVisible = true;
- this.active = 3;
- this.currentId = row.id
+ this.active = 3;
+ this.currentId = row.id
},
// 鎾ら攢
handlEquash(row) {
@@ -444,9 +446,9 @@
// 涓嬪彂
handleIssued(row) {
this.issuedDialogVisible = true;
- this.$axios.post(this.$api.insOrder.selectOrderManDay,{
+ this.$axios.post(this.$api.insOrder.selectOrderManDay, {
id: row.sampleId
- }).then(res=>{
+ }).then(res => {
this.distributeData.orderId = row.id
this.distributeData.sampleId = row.sampleId
this.distributeData.appointed = res.data
@@ -454,7 +456,7 @@
})
},
submitForm2() {
- if(this.distributeData.appointed==null||this.distributeData.appointed==''){
+ if (this.distributeData.appointed == null || this.distributeData.appointed == '') {
this.$message.error('绾﹀畾鏃堕棿鏈~鍐�')
return
}
diff --git a/src/components/view/b2-standard.vue b/src/components/view/b2-standard.vue
index 333deea..dcba552 100644
--- a/src/components/view/b2-standard.vue
+++ b/src/components/view/b2-standard.vue
@@ -54,6 +54,7 @@
height: calc(100% - 275px);
margin-top: 5px;
background-color: white;
+ user-select: none;
}
.product_table .el-table {
@@ -83,6 +84,10 @@
.standard .standard_table .el-table__row .cell {
font-size: 14px;
}
+
+ .standard .el-table .warning-row .cell {
+ color: #bababa;
+ }
</style>
<template>
@@ -97,9 +102,10 @@
<el-button type="primary" icon="el-icon-plus" size="mini" circle @click="addDia = true"></el-button>
</el-col>
</el-row>
- <el-tree :data="list" ref="tree" :props="{ children: 'children', label: 'label' }"
- node-key="label" :filter-node-method="filterNode" @node-click="handleNodeClick" highlight-current
- @node-expand="nodeOpen" @node-collapse="nodeClose" v-loading="treeLoad" :expand-on-click-node="true" :default-expanded-keys="expandedKeys">
+ <el-tree :data="list" ref="tree" :props="{ children: 'children', label: 'label' }" node-key="label"
+ :filter-node-method="filterNode" @node-click="handleNodeClick" highlight-current @node-expand="nodeOpen"
+ @node-collapse="nodeClose" v-loading="treeLoad" :expand-on-click-node="false"
+ :default-expanded-keys="expandedKeys">
<div class="custom-tree-node" slot-scope="{ node, data }">
<el-row>
<el-col :span="21">
@@ -120,17 +126,18 @@
<el-row class="title">
<el-col :span="10" style="font-size: 14px;color: #999;">{{selectTree}}</el-col>
<el-col :span="selectTree==''?24:14" style="text-align: right;" v-if="selectTree!=''">
- <el-button size="small" type="primary" @click="addStandardDia = true"
+ <!-- <el-button size="small" type="primary" @click="addStandardDia = true"
v-if="addStandardMethod">鏂板鏍囧噯</el-button>
<el-button size="small" type="primary" @click="addProductDia = true" v-if="addStandardProduct">鏂板椤圭洰</el-button>
<el-button size="small" @click="delStandardProductByIds" v-if="delStandardProduct">
<i class="el-icon-delete" style="color: #3A7BFA;"></i>
<span style="color: #3A7BFA;">鍒犻櫎</span>
- </el-button>
+ </el-button> -->
</el-col>
</el-row>
<el-row class="standard_table" v-loading="tableLoad">
- <el-table class="el-table" :data="standardList" style="width: 100%;" height="220px" tooltip-effect="dark">
+ <el-table class="el-table" :data="standardList" style="width: 100%;" height="220px" tooltip-effect="dark"
+ highlight-current-row @row-click="rowClick">
<el-table-column prop="code" label="鏍囧噯缂栧彿" show-overflow-tooltip>
<template slot-scope="scope">
<span style="color: red;font-size: 14px;">{{scope.row['code']}}</span>
@@ -140,34 +147,45 @@
<el-table-column prop="remark" label="澶囨敞" show-overflow-tooltip></el-table-column>
<el-table-column prop="createUserName" label="鍒涘缓浜�"></el-table-column>
<el-table-column prop="createTime" label="鍒涘缓鏃堕棿" width="250px"></el-table-column>
- <el-table-column label="鎿嶄綔" width="100" align="center" v-if="delStandardMethod">
+ <!-- <el-table-column label="鎿嶄綔" width="100" align="center" v-if="delStandardMethod">
<template slot-scope="scope">
<el-button type="text" size="small" @click="delStandardMethodByFLSSM(scope.row.id)">鍒犻櫎</el-button>
</template>
- </el-table-column>
+ </el-table-column> -->
</el-table>
</el-row>
- <el-row class="product_table" v-loading="tableLoad">
- <el-table :data="productList" style="width: 100%;" height="100%" tooltip-effect="dark" stripe :fit="true" border
- @selection-change="handleSelectionChange">
+ <el-row class="product_table" v-loading="tableLoad2">
+ <el-table :data="productList" ref="productTable" style="width: 100%;" height="100%" tooltip-effect="dark" stripe :fit="true" border
+ @selection-change="handleSelectionChange" :row-class-name="tableRowClassName" @select="upProductSelect">
<el-table-column type="selection" width="65"></el-table-column>
<el-table-column prop="inspectionItem" label="妫�楠岄」" min-width="140" show-overflow-tooltip></el-table-column>
<!-- <el-table-column prop="inspectionItemClassify" label="妫�楠岄」绫诲瀷" width="120" show-overflow-tooltip></el-table-column> -->
- <el-table-column prop="inspectionItemSubclass" label="妫�楠岄」瀛愰」" min-width="140" show-overflow-tooltip></el-table-column>
+ <el-table-column prop="inspectionItemSubclass" label="妫�楠岄」瀛愰」" min-width="140"
+ show-overflow-tooltip></el-table-column>
<el-table-column prop="sonLaboratory" label="瀛愬疄楠屽" width="130" show-overflow-tooltip></el-table-column>
- <el-table-column prop="unit" label="璁¢噺鍗曚綅" width="100" show-overflow-tooltip></el-table-column>
- <el-table-column prop="price" label="鍗曚环" width="100" show-overflow-tooltip></el-table-column>
- <el-table-column prop="manHour" label="宸ユ椂" width="80" show-overflow-tooltip></el-table-column>
- <el-table-column prop="manHourGroup" label="宸ユ椂鍒嗙粍" width="100" show-overflow-tooltip></el-table-column>
- <el-table-column prop="deviceGroup" label="璁惧缁�" width="120" show-overflow-tooltip></el-table-column>
- <el-table-column prop="section" label="鍖洪棿" width="120" show-overflow-tooltip></el-table-column>
- <el-table-column prop="ask" label="瑕佹眰鍊�" min-width="220px">
+ <el-table-column prop="ask" label="瑕佹眰鍊�" min-width="200px">
<template slot-scope="scope">
<el-input size="small" placeholder="瑕佹眰鍊�" v-model="scope.row.ask" clearable
- @change="(value)=>upStandardProductList(value,scope.row.id)" v-if="upStandardProduct" type="textarea" :autosize="{ minRows: 1, maxRows: 3}"></el-input>
+ @change="(value)=>upStandardProductList(value,scope.row.id)" v-if="upStandardProduct" type="textarea"
+ :autosize="{ minRows: 1, maxRows: 3}"></el-input>
<span v-else>{{scope.row.ask}}</span>
</template>
</el-table-column>
+ <el-table-column prop="tell" label="瑕佹眰鎻忚堪" min-width="220px">
+ <template slot-scope="scope">
+ <el-input size="small" placeholder="瑕佹眰鎻忚堪" v-model="scope.row.tell" clearable
+ @change="(value)=>upStandardProductListOfTell(value,scope.row.id)" v-if="upStandardProduct" type="textarea"
+ :autosize="{ minRows: 1, maxRows: 3}"></el-input>
+ <span v-else>{{scope.row.ask}}</span>
+ </template>
+ </el-table-column>
+ <el-table-column prop="method" label="璇曢獙鏂规硶" width="100" show-overflow-tooltip></el-table-column>
+ <el-table-column prop="unit" label="璁¢噺鍗曚綅" width="100" show-overflow-tooltip></el-table-column>
+ <el-table-column prop="price" label="鍗曚环(鍏�)" width="90" show-overflow-tooltip></el-table-column>
+ <el-table-column prop="manHour" label="宸ユ椂(H)" width="90" show-overflow-tooltip></el-table-column>
+ <el-table-column prop="manHourGroup" label="宸ユ椂鍒嗙粍" width="100" show-overflow-tooltip></el-table-column>
+ <el-table-column prop="deviceGroup" label="璁惧缁�" width="120" show-overflow-tooltip></el-table-column>
+ <el-table-column prop="section" label="鍖洪棿" width="120" show-overflow-tooltip></el-table-column>
</el-table>
</el-row>
</div>
@@ -245,7 +263,7 @@
</el-dialog>
<el-dialog title="鏂板椤圭洰" :visible.sync="addProductDia" width="70%">
<div class="body" style="height: 60vh;" v-if="addProductDia">
- <ValueTable ref="ValueTable" :url="$api.capacityScope.selectItemParameterList" :componentData="componentData"/>
+ <ValueTable ref="ValueTable" :url="$api.capacityScope.selectItemParameterList" :componentData="componentData" />
</div>
<span slot="footer" class="dialog-footer">
<el-button @click="addProductDia = false">鍙� 娑�</el-button>
@@ -289,6 +307,7 @@
addLoad2: false,
productList: [],
tableLoad: false,
+ tableLoad2: false,
upStandardProduct: false,
delStandardMethod: false,
selects: [],
@@ -316,17 +335,19 @@
valueType: {
select: []
},
- bsm:{
+ bsm: {
select: []
},
- inspectionValueType:{
- select:[]
+ inspectionValueType: {
+ select: []
},
- deviceGroup:{select:[]}
+ deviceGroup: {
+ select: []
+ }
},
selectField: {},
},
- expandedKeys:[]
+ expandedKeys: []
}
},
mounted() {
@@ -380,7 +401,7 @@
remove(node, data) {
this.$confirm("鏄惁鍒犻櫎璇ュ眰绾�", "鎻愮ず", {
type: "error"
- }).then(()=> {
+ }).then(() => {
this.treeLoad = true
this.selectTree = ''
this.getNodeParent(node)
@@ -394,7 +415,7 @@
this.$axios.post(this.$api.standardTree.delStandardTree, {
tree: this.selectTree
}).then(res => {
- if(res.code==201)return
+ if (res.code == 201) return
this.$message.success('宸插垹闄�')
this.selectStandardTreeList()
this.selectTree = ''
@@ -463,12 +484,12 @@
this.treeLoad = true
this.$axios.get(this.$api.standardTree.selectStandardTreeList).then(res => {
this.list = res.data
- this.list.forEach(a=>{
- a.children.forEach(b=>{
- /* b.children.forEach(c=>{
+ this.list.forEach(a => {
+ a.children.forEach(b => {
+ b.children.forEach(c => {
this.expandedKeys.push(c.label)
- }) */
- this.expandedKeys.push(b.label)
+ })
+ // this.expandedKeys.push(b.label)
})
})
this.treeLoad = false
@@ -628,6 +649,22 @@
this.$message.success('宸蹭繚瀛�')
})
},
+ upStandardProductListOfTell(value, index) {
+ this.$axios.post(this.$api.standardTree.upStandardProductList, {
+ id: index,
+ tell: value
+ }, {
+ headers: {
+ 'Content-Type': 'application/json'
+ }
+ }).then(res => {
+ if (res.code == 201) {
+ this.$message.error('鏈繚瀛�')
+ return
+ }
+ this.$message.success('宸蹭繚瀛�')
+ })
+ },
delStandardMethodByFLSSM(id) {
this.$confirm('鏄惁鍒犻櫎褰撳墠鏁版嵁?', "璀﹀憡", {
confirmButtonText: "纭畾",
@@ -653,11 +690,11 @@
})
},
delStandardProductByIds() {
- if(this.selects.length == 0){
+ if (this.selects.length == 0) {
this.$message.error('鏈�変腑鏁版嵁')
return
}
- this.$confirm('鏄惁鍒犻櫎褰撳墠閫変腑 '+this.selects.length+' 鏉℃暟鎹�?', "璀﹀憡", {
+ this.$confirm('鏄惁鍒犻櫎褰撳墠閫変腑 ' + this.selects.length + ' 鏉℃暟鎹�?', "璀﹀憡", {
confirmButtonText: "纭畾",
cancelButtonText: "鍙栨秷",
type: "warning"
@@ -674,21 +711,21 @@
})
}).catch(() => {})
},
- addStandardProductDo(){
+ addStandardProductDo() {
let selects = this.$refs.ValueTable.multipleSelection
- if(selects.length == 0){
+ if (selects.length == 0) {
this.$message.error('鏈�夋嫨鏁版嵁')
return
}
let select = []
- selects.forEach(a=>{
+ selects.forEach(a => {
select.push(a.id)
})
this.tableLoad = true
- this.$axios.post(this.$api.standardTree.addStandardProduct,{
+ this.$axios.post(this.$api.standardTree.addStandardProduct, {
ids: JSON.stringify(select),
tree: this.selectTree
- }).then(res=>{
+ }).then(res => {
if (res.code == 201) {
return
}
@@ -696,7 +733,50 @@
this.selectsStandardMethodByFLSSM()
})
this.addProductDia = false
- }
+ },
+ rowClick(row, column, event) {
+ this.tableLoad2 = true
+ this.$axios.post(this.$api.standardTree.selectStandardProductListByMethodId, {
+ id: row.id
+ }).then(res => {
+ this.productList = res.data
+ setTimeout(() => {
+ this.productList.forEach(a => {
+ if (a.state == 1) this.toggleSelection(a)
+ })
+ }, 300)
+ this.tableLoad2 = false
+ })
+ },
+ toggleSelection(row) {
+ this.$refs.productTable.toggleRowSelection(row, true);
+ },
+ tableRowClassName({
+ row,
+ rowIndex
+ }) {
+ if (row.state === 0) {
+ return 'warning-row';
+ }
+ return '';
+ },
+ upProductSelect(selection, row) {
+ row.state = row.state == 1 ? 0 : 1
+ this.$axios.post(this.$api.standardTree.upStandardProductList, {
+ id: row.id,
+ state: row.state
+ }, {
+ headers: {
+ 'Content-Type': 'application/json'
+ }
+ }).then(res => {
+ if (res.code == 201) {
+ this.$message.error('鏈繚瀛�')
+ return
+ }
+ this.$message.success('宸蹭繚瀛�')
+ })
+ },
}
}
</script>
diff --git a/static/js/menu.js b/static/js/menu.js
index 6e89662..ee8be33 100644
--- a/static/js/menu.js
+++ b/static/js/menu.js
@@ -543,7 +543,7 @@
}, {
v: "瀹為獙瀹ょ殑妫�娴嬭兘鍔涙。妗�",
i: "font icon-erjidaohang",
- u: "standard_method",
+ u: "a7-standard-method",
g: "7.2 鏂规硶鐨勯�夋嫨銆侀獙璇佸拰纭",
p: "selectStandardMethodList"
}, {
--
Gitblit v1.9.3