| | |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-form-item prop="formTime" label="来料日期"> |
| | | <el-date-picker |
| | | <el-date-picker |
| | | style="width:100%" |
| | | v-model="dataForm.formTime" |
| | | type="datetime" |
| | |
| | | </div> |
| | | |
| | | |
| | | |
| | | |
| | | <div class="rawMaterial-detail"> |
| | | <el-row style="width:100%;z-index: 10;height:50px;"> |
| | | <el-col :span="18">检验项目</el-col> |
| | | <el-col :span="6"> |
| | | <div style="width:100%;text-align: right;"> |
| | | <el-button v-if="dataForm.id==null" size="small" @click="clickAddLine()">添加检验项目</el-button> |
| | | <el-button v-if="resultVal==null || dataForm.id==null" size="small" @click="addTeatValueColumn()">添加检测值列</el-button> |
| | | <el-button v-if="resultVal==null || dataForm.id==null" size="small" @click="delTeatValueColumn()">删除检测值列</el-button> |
| | | </div> |
| | | <el-col :span="2"> |
| | | <el-button style="width:90%" v-if="dataForm.id==null" size="small" @click="clickAddLine()">添加检验项目</el-button> |
| | | </el-col> |
| | | <el-col :span="2"> |
| | | <el-button style="width:90%" v-if="resultVal==null || dataForm.id==null" size="small" @click="addTeatValueColumn()">添加检测值列</el-button> |
| | | </el-col> |
| | | <el-col :span="2"> |
| | | <el-button style="width:90%" v-if="resultVal==null || dataForm.id==null" size="small" @click="delTeatValueColumn()">删除检测值列</el-button> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row style="width:100%;"> |
| | | <el-col :span="24"> |
| | | <el-table |
| | | :header-cell-style="{textAlign:'center',color:'black',backgroundColor:'#fafafa'}" |
| | | <el-table |
| | | :header-cell-style="{textAlign:'center',color:'black',backgroundColor:'#fafafa'}" |
| | | :cell-style="{textAlign:'center'}" |
| | | ref="table" |
| | | :data="list" |
| | | border |
| | | :data="list" |
| | | border |
| | | style="width: 100%;" |
| | | height="400" |
| | | row-key="iid" |
| | | default-expand-all |
| | | row-key="iid" |
| | | default-expand-all |
| | | :tree-props="{children: 'children', hasChildren: 'hasChildren'}"> |
| | | <el-table-column type="index" label="序号" width="60"> |
| | | </el-table-column> |
| | |
| | | <el-input :disabled="dataForm.id != null" v-model="scope.row.unit" placeholder="请输入单位"></el-input> |
| | | </div> |
| | | </template> |
| | | |
| | | |
| | | </el-table-column> |
| | | <el-table-column prop="required" label="标准值" width="260"> |
| | | <template slot-scope="scope"> |
| | |
| | | <el-table-column prop="testValue" label="检测值" min-width="260" v-for="(item,index) in empiricalValueAdd" :key="index"> |
| | | <template slot-scope="scope"> |
| | | <div v-if="!scope.row.children"> |
| | | <el-tooltip :disabled="scope.row.deviceId != null" class="item" effect="dark" content="请先选择设备!" |
| | | placement="top-start"> |
| | | <el-col v-if="scope.row.itype === '1'"> |
| | | <el-input :disabled="scope.row.deviceId == '' || (dataForm.id!=null&&resultVal!=null)" |
| | | v-model="scope.row.testValueList[index]" |
| | | placeholder="请输入检测值"></el-input> |
| | | </el-col> |
| | | <el-col v-else> |
| | | <el-select style="width: 100%;" |
| | | :disabled="scope.row.deviceId == null || (dataForm.id!=null&&resultVal!=null)" |
| | | v-model="scope.row.testValueList[index]" placeholder="请选择"> |
| | | <el-option v-for="item in dataVal" :key="item.value" :label="item.label" |
| | | :value="item.value"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-col> |
| | | <el-tooltip :disabled="scope.row.deviceId != null" class="item" effect="dark" content="请先选择设备!" placement="top-start"> |
| | | <el-select @blur="changeState(scope.row, index)" style="width:100%" allow-create filterable default-first-option |
| | | :disabled="scope.row.deviceId == null || (dataForm.id!=null&&resultVal!=null)" |
| | | v-model="scope.row.testValueList[index]" |
| | | placeholder="请输入或选择检测值" @change="updateTestValue(scope.row,scope.$index)"> |
| | | <el-option label="是" value="是"/> |
| | | <el-option label="否" value="否"/> |
| | | </el-select> |
| | | </el-tooltip> |
| | | </div> |
| | | </template> |
| | |
| | | <el-table-column prop="deviceName" label="试验设备" min-width="260"> |
| | | <template slot-scope="scope"> |
| | | <div v-if="!scope.row.children"> |
| | | <el-select :disabled="dataForm!=null && resultVal!=null" style="width:100%" |
| | | <el-select :disabled="dataForm!=null && resultVal!=null" style="width:100%" |
| | | v-model="scope.row.deviceId" filterable @change="updateDevice(scope.row,scope.$index)"> |
| | | <el-option v-for="(item,index) in deviceList" |
| | | <el-option v-for="(item,index) in deviceList" |
| | | :key="index" :value="item.id" :label="item.code +'-'+ item.name"></el-option> |
| | | </el-select> |
| | | </div> |
| | |
| | | <el-table-column prop="note" label="检验描述" width="260" > |
| | | <template slot-scope="scope"> |
| | | <div v-if="!scope.row.children"> |
| | | <el-input :disabled="scope.row.deviceId == null || (dataForm.id!=null&&resultVal!=null)" v-model="scope.row.note" placeholder="检验描述"></el-input> |
| | | </div> |
| | | <el-input @blur="changeState(scope.row, note)" :disabled="scope.row.deviceId == null || (dataForm.id!=null&&resultVal!=null)" v-model="scope.row.note" placeholder="检验描述"></el-input> |
| | | </div> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column fixed="right" v-if="dataForm.id != null" prop="testState" label="结论" min-width="150"> |
| | |
| | | </el-table-column> |
| | | <el-table-column fixed="right" style="background-color: white;" v-if="dataForm.id == null" label="操作" width="150"> |
| | | <template slot-scope="scope"> |
| | | <div> |
| | | <el-button v-if="scope.row.father!=null" type="text" @click="addChildren(scope.row)">添加项目</el-button> |
| | | <el-button v-else type="text" @click="delChildren(scope,scope.$index)">取消</el-button> |
| | | <div v-if="scope.row.fId!=null"> |
| | | <el-button type="text" @click="addChildren(scope.row)">添加项目</el-button> |
| | | <el-button type="text" @click="delChildren(scope.row,scope.$index,true)">删除行</el-button> |
| | | </div> |
| | | <el-button v-else type="text" @click="delChildren(scope.row,scope.$index,false)">取消</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | </el-col> |
| | | </el-row> |
| | | </div> |
| | | |
| | | |
| | | |
| | | <div class="rawMaterial-result"> |
| | | <el-row> |
| | |
| | | <el-row style="width:100%"> |
| | | <el-col :span="24"> |
| | | <el-table border height="90" :data="conclusionTable" ref="conclusion" v-model="conclusion" |
| | | :header-cell-style="{textAlign:'center',color:'black',backgroundColor:'#fafafa'}" |
| | | :header-cell-style="{textAlign:'center',color:'black',backgroundColor:'#fafafa'}" |
| | | :cell-style="{textAlign:'center'}"> |
| | | <el-table-column prop="code" label="物料编号"></el-table-column> |
| | | <el-table-column prop="name" label="物料名称"></el-table-column> |
| | |
| | | </template> |
| | | |
| | | <script> |
| | | import { |
| | | import { |
| | | selectDevice, |
| | | addRawInspects, |
| | | getObj, |
| | |
| | | updateDeviceById, } from '@/api/quality/rawMaterial' |
| | | import rawMaterialPartDialog from '@/views/common/rawMaterial-part' |
| | | export default { |
| | | // props:['currentRow'], |
| | | computed:{}, |
| | | components:{ |
| | | rawMaterialPartDialog |
| | | }, |
| | | data(){ |
| | | return{ |
| | | dataVal: [{ |
| | | label: '是', |
| | | value: '是' |
| | | }, { |
| | | label: '否', |
| | | value: '否' |
| | | }], |
| | | // componentData:{}, |
| | | userdata:[], |
| | | currentRow:[], |
| | | userlist:[], |
| | |
| | | }], |
| | | dataRule: {}, |
| | | deviceList: [], |
| | | restaurants:[], |
| | | } |
| | | }, |
| | | beforeUpdate(){ |
| | |
| | | } |
| | | this.init() |
| | | this.getDeviceList() |
| | | this.restaurants = this.loadAll(); |
| | | }, |
| | | watch:{ |
| | | dialogVisible(newVal){ |
| | |
| | | }, |
| | | }, |
| | | methods:{ |
| | | querySearch(queryString, cb) { |
| | | var restaurants = this.restaurants; |
| | | var results = queryString ? restaurants.filter(this.createFilter(queryString)) : restaurants; |
| | | cb(results); |
| | | }, |
| | | // createFilter(queryString) { |
| | | // return (restaurant) => { |
| | | // return (restaurant.value.toLowerCase().indexOf(queryString.toLowerCase()) === 0); |
| | | // }; |
| | | // }, |
| | | // loadAll(){ |
| | | // return [ |
| | | // {"value":"是"}, |
| | | // {"value":"否"} |
| | | // ];}, |
| | | // handleSelect(item) { |
| | | // console.log(item); |
| | | // }, |
| | | changeName(index,row){ |
| | | this.projectList.forEach(item=>{ |
| | | if(row.name == item.name){ |
| | |
| | | }, |
| | | // 确认回调 |
| | | selectPart(param, nodePart, index) { |
| | | console.log(param) |
| | | if (typeof param !== 'undefined') { |
| | | this.dataForm.code = param.code |
| | | this.dataForm.name = param.name |
| | |
| | | } |
| | | this.showPart = true |
| | | }, |
| | | updateDevice(row,index){ |
| | | if(this.dataForm.id != null){ |
| | | updateDeviceById({deviceId:row.deviceId,rpId:row.rpId}).then(res=>{ |
| | | this.list[index].testValue = '' |
| | | this.list[index].testState = null |
| | | this.list[index].testValueList = [] |
| | | }).catch(error=>{ |
| | | console.log(error) |
| | | }) |
| | | } |
| | | }, |
| | | |
| | | updateDevice(row, index) { |
| | | let rowId=JSON.stringify(row.rpId) |
| | | updateDeviceById({ deviceId: row.deviceId, rpId: row.rpId }).then(res => { |
| | | this.list.forEach(obj => { |
| | | obj.children.forEach(c=>{ |
| | | if(c.rpId==rowId){ |
| | | c.testValue = '' |
| | | c.testState = null |
| | | c.testValueList = [] |
| | | c.note='' |
| | | } |
| | | }) |
| | | }) |
| | | }).catch(error => { |
| | | console.log(error) |
| | | }) |
| | | }, |
| | | |
| | | // updateDevice(row,index){ |
| | | // if(this.dataForm.id != null){ |
| | | // updateDeviceById({deviceId:row.deviceId,rpId:row.rpId}).then(res=>{ |
| | | // this.inspectionItems.forEach(obj => { |
| | | // this.list[index-1].testValue = '' |
| | | // this.list[index-1].testState = null |
| | | // this.list[index-1].testValueList = [] |
| | | // this.list[index-1].note = '' |
| | | |
| | | // }) |
| | | // }).catch(error=>{ |
| | | // console.log(error) |
| | | // }) |
| | | // } |
| | | // }, |
| | | checkTestState(){ |
| | | let resultVal = '1' |
| | | this.list.forEach(item=>{ |
| | |
| | | sessionStorage.setItem("raw-resultVal-"+this.dataForm.id,resultVal) |
| | | }, |
| | | showDialog(){ |
| | | let pro = this.list.filter(item => { |
| | | return item.testState == 0; |
| | | let size = 0 //不合格项目数量 |
| | | this.list.forEach(item=>{ |
| | | if(item.children){ |
| | | let num = item.children.filter(e=>{ |
| | | return e.testState == 0 |
| | | }).length |
| | | size+=num |
| | | } |
| | | }) |
| | | if (pro.length > 0) { |
| | | if (size > 0) { |
| | | this.dialogVisible = true |
| | | }else{ |
| | | this.submitSave() |
| | |
| | | let data = { |
| | | id: this.dataForm.id, |
| | | number: this.unqualifiedNum, |
| | | // toLocationNo: this.fiedNum |
| | | } |
| | | updateRawInspectsById(data).then(res => { |
| | | if(res.data.code == 0){ |
| | | sessionStorage.setItem("raw-resultVal-"+this.dataForm.id,res.data.data) |
| | | this.$message.success("上报成功"); |
| | | this.dialogVisible = false |
| | | this.checkTestState() |
| | | } |
| | | }); |
| | | this.checkTestState() |
| | | }, |
| | | addTeatValueColumn(){ |
| | | this.empiricalValueAdd = this.empiricalValueAdd + 1; |
| | | }, |
| | | // 添加行 |
| | | clickAddLine(row) { |
| | | let ele = { |
| | | fId: Math.random(), |
| | | father: null, |
| | | iid: Math.random(), |
| | | children:[] |
| | | } |
| | | if(row){ |
| | | let userNameList = [] |
| | | ele.father = row.father?row.father:null |
| | | row.children.forEach(item => { |
| | | item.iid = Math.random() |
| | | ele.children.push({ |
| | | deviceId: null, |
| | | deviceName: null, |
| | | iid: Math.random(), |
| | | required: item.required?item.required:null, |
| | | rpId: null, |
| | | name: item.name?item.name:null, |
| | | unit: item.unit?item.unit:null, |
| | | userName: null, |
| | | testValue: null, |
| | | testValueList: [], |
| | | note: null, |
| | | testState: null |
| | | }) |
| | | let arr = [] |
| | | item.testValue = '' |
| | | item.testValueList= [] |
| | | if (item.userName) { |
| | | userNameList.push(item.userName) |
| | | } |
| | | if (item.inspectionValue) { |
| | | arr = item.inspectionValue.split(",") |
| | | } |
| | | item.empiricalValueAddss = arr |
| | | if (arr.length > this.empiricalValueAdd) { |
| | | this.empiricalValueAdd = arr.length |
| | | } |
| | | this.list.push(row) |
| | | this.list.push(ele) |
| | | }) |
| | | }else{ |
| | | let ele = { |
| | | father: '', |
| | | iid: Math.random(), |
| | | children:[{ |
| | | ele.children.push({ |
| | | deviceId: null, |
| | | deviceName: null, |
| | | iid: Math.random(), |
| | |
| | | name: null, |
| | | unit: null, |
| | | userName: null, |
| | | testValue: null, |
| | | testValue: '', |
| | | testValueList: [], |
| | | note: null, |
| | | testState: null |
| | | }] |
| | | } |
| | | note: '', |
| | | testState: '' |
| | | }) |
| | | this.list.push(ele) |
| | | } |
| | | |
| | |
| | | } |
| | | } |
| | | }, |
| | | |
| | | updateTestValue(row,index){ |
| | | if(row.rpId == null || row.testValueList[index]==null){ |
| | | console.log(row); |
| | | if(row.rpId == null){ |
| | | |
| | | |
| | | return |
| | | } |
| | | let val = row.testValueList.join(","); |
| | | let obj = { |
| | | deviceId: row.deviceId, |
| | | rpId: row.rpId, |
| | | testValue: row.testValueList.join(",") |
| | | testValue: val, |
| | | note: row.note |
| | | } |
| | | updateRawInsProduct(obj).then(res=>{ |
| | | if(res.data.code === 0){ |
| | |
| | | this.$message.error(error) |
| | | }) |
| | | }, |
| | | |
| | | |
| | | init(){ |
| | | if(this.dataForm.id){ |
| | | getObj(this.dataForm.id).then(res=>{ |
| | | console.log(res); |
| | | let data = res.data.data |
| | | this.dataForm.name = data.name |
| | | this.dataForm.formTime = data.formTime |
| | |
| | | ele.iid = Math.random() |
| | | ele.father = item.rpFather |
| | | item.children.forEach(obj => { |
| | | console.log(obj); |
| | | if(obj.userName){ |
| | | userNameList.push(obj.userName) |
| | | } |
| | | let arr= [] |
| | | |
| | | if(obj.testValue){ |
| | | arr = obj.testValue.split(",") |
| | | } |
| | | |
| | | let o = { |
| | | deviceId: obj.deviceId, |
| | | deviceName: obj.deviceName, |
| | |
| | | }) |
| | | this.list.push(ele) |
| | | } |
| | | }) |
| | | }) |
| | | this.conclusionTable = [{ |
| | | code: data.code, |
| | | name: data.name, |
| | |
| | | this.conclusionTable = [] |
| | | } |
| | | }, |
| | | // 删除子项目 |
| | | delChildren(scope,index) { |
| | | console.log(scope,index); |
| | | |
| | | changeState(row, index) { |
| | | console.log(row) |
| | | if (row.rpId != null && row.rpId != '') { |
| | | let val = "" |
| | | row.testValueList.forEach(e => { |
| | | val += e + "," |
| | | }) |
| | | |
| | | // if (note === undefined || note === '' || note === null) { |
| | | // return |
| | | // } |
| | | console.log(val) |
| | | val = val.slice(0, -1); |
| | | if (val === undefined || val === '' || val === null) { |
| | | return |
| | | } |
| | | |
| | | |
| | | let obj = { |
| | | deviceId: row.deviceId, |
| | | rpId: row.rpId, |
| | | testValue: val, |
| | | note: row.note |
| | | |
| | | } |
| | | console.log(obj) |
| | | updateRawInsProduct(obj).then(res => { |
| | | if (res.data.code == 0) { |
| | | this.$message.success("更新成功") |
| | | } else { |
| | | this.$message.error("更新失败") |
| | | } |
| | | this.init() |
| | | }) |
| | | } |
| | | }, |
| | | |
| | | |
| | | |
| | | // 删除子项目 |
| | | delChildren(row,index,isParent) { |
| | | if(isParent){ |
| | | let parentIndex = this.list.findIndex(el =>{ |
| | | return el.iid == row.iid |
| | | }) |
| | | this.list.splice(parentIndex,1) |
| | | }else{ |
| | | let i = this.list.findIndex(el =>{ |
| | | return el.children.find(ele => ele.iid == row.iid) |
| | | }) |
| | | let childrenIndex = this.list[i].children.findIndex(el =>{ |
| | | return el.iid == row.iid |
| | | }) |
| | | this.list[i].children.splice(childrenIndex,1) |
| | | } |
| | | }, |
| | | //添加子项目 |
| | | addChildren(row){ |
| | |
| | | row.children.push(obj) |
| | | }, |
| | | save(){ |
| | | console.log(this.dataForm); |
| | | |
| | | let data = this.dataForm |
| | | console.log(data); |
| | | console.log(this.list); |
| | | console.log('--------',data); |
| | | console.log("-----",this.list); |
| | | this.list.forEach(item=>{ |
| | | item.children.forEach(c=>{ |
| | | let arr=c.testValueList |
| | | let val='' |
| | | arr.forEach(a=>{ |
| | | val+=a+"," |
| | | }) |
| | | let end=val.substring(0,val.length-1) |
| | | c.testValue=end |
| | | }) |
| | | }) |
| | | data.rawInsProducts = this.list |
| | | console.log('=====>'); |
| | | addRawInspects(data).then(res=>{ |
| | | this.$message.success("保存成功") |
| | | this.$router.go(-1) |