<template>
|
<div class="ins_order_config">
|
<div>
|
<el-row class="title">
|
<el-col :span="6" style="padding-left: 20px;text-align: left;">电缆配置</el-col>
|
<el-col :span="18" style="text-align: right;">
|
<el-button size="medium" @click="outConfig">
|
<span style="color: #3A7BFA;">返 回</span>
|
</el-button>
|
<el-button size="medium" type="primary" @click="save">保 存</el-button>
|
</el-col>
|
</el-row>
|
</div>
|
<div class="search">
|
<el-radio-group v-model="currentTab" size="small" style="margin-left: 20px;" @input="changeTab">
|
<el-radio-button label="绝缘">绝 缘</el-radio-button>
|
<el-radio-button label="护套">护 套</el-radio-button>
|
</el-radio-group>
|
<div class="search_thing" v-if="currentTab=='绝缘'">
|
<div class="search_label">芯数:</div>
|
<el-input size="small" placeholder="请输入" clearable
|
v-model="insulating.num"></el-input>
|
</div>
|
<div class="search_thing" v-if="currentTab=='绝缘'">
|
<div class="search_label">检验标准:</div>
|
<el-select v-model="insulating.standardMethodListId" placeholder="请选择检验标准" size="small"
|
@change="(value)=>methodChange(value)" multiple>
|
<el-option v-for="item in standards" :key="item.id" :label="item.code" :value="item.id">
|
</el-option>
|
</el-select>
|
</div>
|
<div class="search_thing" v-if="currentTab=='护套'">
|
<div class="search_label">检验标准:</div>
|
<el-select v-model="sheath.standardMethodListId" placeholder="请选择检验标准" size="small"
|
@change="(value)=>methodChange(value)" multiple>
|
<el-option v-for="item in standards" :key="item.id" :label="item.code" :value="item.id">
|
</el-option>
|
</el-select>
|
</div>
|
</div>
|
<div class="table">
|
<el-table class="el-table" ref="productTable" :data="productList" height="100%" tooltip-effect="dark" border
|
@selection-change="selectProduct" style="margin-bottom: 10px;" @select="upProductSelect"
|
:row-class-name="tableRowClassName" @select-all="handleAll">
|
<el-table-column type="selection" width="65" :selectable="selectable"></el-table-column>
|
<el-table-column prop="inspectionItem" 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="子实验室" min-width="130" show-overflow-tooltip></el-table-column>
|
<el-table-column prop="methodS" label="试验方法" min-width="120" 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="section" label="区间" min-width="120" show-overflow-tooltip></el-table-column>
|
<el-table-column prop="ask" label="要求值" min-width="220px">
|
<template slot-scope="scope">
|
<el-input size="small" placeholder="要求值" v-model="scope.row.ask" clearable type="textarea"
|
:autosize="{ minRows: 1, maxRows: 3}" @change="e=>requestChange(e,scope.row)"
|
v-if="active==1"></el-input>
|
<span v-else>{{ scope.row.ask }}</span>
|
</template>
|
</el-table-column>
|
</el-table>
|
</div>
|
</div>
|
</template>
|
|
<script>
|
import { Tree } from 'element-ui'
|
export default {
|
props: {
|
active: {
|
type: Number,
|
default: () => 0
|
},
|
},
|
data(vm) {
|
return {
|
standardList:[],
|
vaule0:'',
|
currentTab:'绝缘',
|
upIndex:0,
|
productList: [],
|
productIds: [],
|
sample: [],
|
tree: '',
|
standards: [],
|
insulating: {
|
standardMethodListId: [],
|
insProduct: [],
|
num: 1
|
},
|
sheath: {
|
standardMethodListId: [],
|
insProduct: []
|
},
|
isAskOnlyRead: false
|
}
|
},
|
mounted() {
|
this.$parent.sampleIds.forEach(a => {
|
for (var i = 0; i < this.$parent.sampleList.length; i++) {
|
if (this.$parent.sampleList[i].id == a) {
|
this.sample.push(this.$parent.sampleList[i])
|
if(this.$parent.sampleList[i].insulating !== undefined && this.$parent.sampleList[i].insulating !== null){
|
this.insulating = this.$parent.sampleList[i].insulating
|
}
|
if(this.$parent.sampleList[i].sheath !== undefined && this.$parent.sampleList[i].sheath !== null){
|
this.sheath = this.$parent.sampleList[i].sheath
|
}
|
break
|
}
|
}
|
})
|
let obj = this.$parent.addObj
|
this.tree = obj.factory + ' - ' + obj.laboratory + ' - ' + obj.sampleType + ' - ' + obj.sample
|
this.selectsStandardMethodByFLSSM2()
|
this.productList = this.insulating.insProduct
|
setTimeout(() => {
|
this.productList.forEach(a => {
|
if (a.state == 1) this.toggleSelection(a)
|
})
|
}, 200)
|
},
|
methods: {
|
outConfig() {
|
this.$parent.cableConfigShow = false
|
},
|
selectProduct(val) {
|
this.productIds = []
|
val.forEach(a => {
|
this.productIds.push(a.id)
|
})
|
},
|
upProductSelect(selection, row) {
|
row.state = row.state == 1 ? 0 : 1
|
},
|
handleAll(e) {
|
if (e.length > 0) {
|
this.productList.map(m => {
|
m.state = 1
|
return m
|
})
|
} else {
|
this.productList.map(m => {
|
m.state = 0
|
return m
|
})
|
}
|
this.$nextTick(() => {
|
this.$refs.productTable.doLayout()
|
})
|
},
|
tableRowClassName({
|
row,
|
rowIndex
|
}) {
|
if (row.state === 0) {
|
return 'warning-row';
|
}
|
return '';
|
},
|
selectable() {
|
if (this.active > 1) {
|
return false
|
} else {
|
return true
|
}
|
},
|
selectsStandardMethodByFLSSM2() {
|
this.standards = []
|
this.$axios.post(this.$api.standardTree.selectsStandardMethodByFLSSM, {
|
tree: this.tree
|
}).then(res => {
|
this.standards = res.data.standardMethodList
|
})
|
},
|
methodChange(val) {
|
if (val === null || val === '') return
|
this.$axios.post(this.$api.standardTree.selectStandardProductList, {
|
model: this.$parent.addObj.model,
|
standardMethodListId: val.join(','),
|
factory: this.tree + ' - '
|
}, {
|
headers: {
|
'Content-Type': 'application/json'
|
}
|
}).then(res => {
|
res.data.forEach(a => {
|
a.state = 0
|
})
|
if(this.currentTab==='绝缘'){
|
this.insulating.insProduct = res.data
|
}else if(this.currentTab==='护套'){
|
this.sheath.insProduct = res.data
|
}
|
this.productList = res.data
|
setTimeout(() => {
|
this.productList.forEach(a => {
|
if (a.state == 1) this.toggleSelection(a)
|
})
|
}, 200)
|
})
|
},
|
toggleSelection(row) {
|
this.$refs.productTable.toggleRowSelection(row, true);
|
},
|
save(){
|
if(this.insulating.insProduct.length === 0 && this.sheath.insProduct.length === 0){
|
this.$message.error('缺少配置无法保存')
|
return
|
}
|
if(this.insulating.insProduct.length !== 0){
|
if(this.insulating.num === null || this.insulating.num === '' || this.insulating.num <= 0){
|
this.$message.error('缺少芯数无法保存')
|
return
|
}
|
}
|
this.sample.forEach(a=>{
|
a.insulating = this.insulating
|
a.sheath = this.sheath
|
})
|
this.$message.success('已保存')
|
},
|
changeTab(val){
|
if(val==='绝缘'){
|
this.productList = this.insulating.insProduct
|
}else if(val==='护套'){
|
this.productList = this.sheath.insProduct
|
}
|
setTimeout(() => {
|
this.productList.forEach(a => {
|
if (a.state == 1) this.toggleSelection(a)
|
})
|
}, 200)
|
}
|
}
|
}
|
</script>
|
|
<style scoped>
|
.ins_order_config {
|
width: 100%;
|
height: 100%;
|
overflow-y: auto;
|
overflow-x: hidden;
|
}
|
|
.ins_order_config::-webkit-scrollbar {
|
width: 0;
|
}
|
|
.title {
|
height: 60px;
|
line-height: 60px;
|
}
|
|
.search {
|
background-color: #fff;
|
height: 80px;
|
display: flex;
|
align-items: center;
|
}
|
|
.search_thing {
|
width: 300px;
|
display: flex;
|
align-items: center;
|
}
|
|
.search_label {
|
width: 100px;
|
font-size: 14px;
|
text-align: right;
|
}
|
|
.search_input {
|
width: calc(100% - 70px);
|
}
|
.table {
|
margin-top: 10px;
|
background-color: #fff;
|
width: calc(100% - 40px);
|
height: calc(100% - 60px - 80px - 26px - 24px);
|
padding: 20px;
|
}
|
</style>
|
<style>
|
.ins_order_config .has-gutter .el-table__cell .cell {
|
line-height: 30px;
|
background-color: #fafafa;
|
}
|
|
.ins_order_config .has-gutter .el-table__cell {
|
background-color: #fafafa !important;
|
}
|
|
.ins_order_config .el-table__row .cell {
|
font-size: 12px;
|
}
|
|
.ins_order_config .el-table .warning-row .cell {
|
color: #bababa;
|
}
|
</style>
|