Merge branch 'master' of http://114.132.189.42:9002/r/mes-ocea-before
| | |
| | | |
| | | export function updateFinishedInspectById(obj) { |
| | | return request({ |
| | | url: '/mes/qualityFinishedInspect/updateFinishedInspectById', |
| | | url: '/mes/qualityFinishedInspect/updateFinishedInspectById2', |
| | | method: 'post', |
| | | params: obj |
| | | }) |
| | |
| | | |
| | | export function updateProcessInspectsById(query) { |
| | | return request({ |
| | | url: '/mes/qualityProcessInspect/updateProcessInspectsById', |
| | | url: '/mes/qualityProcessInspect/updateProcessInspectsById2', |
| | | method: 'post', |
| | | params: query |
| | | }) |
| | |
| | | |
| | | export function updateRawInspectsById(data) { |
| | | return request({ |
| | | url: '/mes/rawInspect/updateRawInspectsById/'+data.id, |
| | | url: '/mes/rawInspect/updateRawInspectsById2/'+data.id, |
| | | method: 'post', |
| | | params: data |
| | | }) |
| | |
| | | delBtn: false, |
| | | align: 'center', |
| | | addBtn: false, |
| | | addBtnText: '添加行', |
| | | addRowBtn: true, |
| | | refreshBtn: false, // 是否显示刷新按钮 |
| | | columnBtn: false, // 是否显示显影按钮H |
| | |
| | | <div class="app-container calendar-list-container"> |
| | | <basic-container> |
| | | <template> |
| | | <el-tabs @tab-click="switchTab"> |
| | | <el-tabs v-model="switchStatus" @tab-click="switchTab" style="padding-left:20px"> |
| | | <el-tab-pane label="信息管理" name="userManager"/> |
| | | <el-tab-pane label="密码管理" name="passwordManager"/> |
| | | </el-tabs> |
| | |
| | | <i v-else class="el-icon-plus avatar-uploader-icon"/> |
| | | </el-upload> |
| | | </el-form-item> |
| | | <el-form-item |
| | | <!-- <el-form-item |
| | | label="社交登录" |
| | | prop="social"> |
| | | <a |
| | |
| | | href="#" |
| | | style="color: blue" |
| | | @click="handleClick('osc')">开源中国</a> |
| | | </el-form-item> |
| | | </el-form-item> --> |
| | | <el-form-item> |
| | | <el-button |
| | | type="primary" |
| | |
| | | <el-input v-model="dataForm.specs" placeholder="规格型号"></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="检验员" prop="examiner"> |
| | | <!-- <el-col :span="12"> --> |
| | | <!-- <el-form-item label="检验员" prop="examiner"> |
| | | <el-select |
| | | v-model="dataForm.examiner" |
| | | placeholder="请选择" |
| | |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-form-item> --> |
| | | <!-- <el-form-item label="检验规则" prop="testRuleId"> |
| | | <el-select |
| | | v-model="dataForm.testRuleId" |
| | |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> --> |
| | | </el-col> |
| | | <!-- </el-col> --> |
| | | <!-- <el-col :span="12"> |
| | | <el-form-item label="图号" prop="drawingNumber"> |
| | | <el-input |
| | |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> --> |
| | | </el-row> |
| | | <el-row> |
| | | <!-- </el-row> |
| | | <el-row> --> |
| | | <!-- <el-col :span="12"> |
| | | <el-form-item label="电压等级" prop="voltageLevel"> |
| | | <el-input |
| | |
| | | placeholder="电压等级" |
| | | ></el-input> </el-form-item |
| | | ></el-col> --> |
| | | </el-row> |
| | | <el-row> |
| | | <!-- </el-row> |
| | | <el-row> --> |
| | | <el-col :span="12" |
| | | ><el-form-item label="重量" prop="weight"> |
| | | <el-input v-model="dataForm.weight" placeholder="重量"></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <el-form-item label="版本号" prop="engChgLevel"> |
| | | <el-input |
| | |
| | | ></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="零件属性" prop="materialAttribute"> |
| | | <el-select v-model="dataForm.materialAttribute" style="width: 100%"> |
| | | <el-option |
| | | v-for="(item, index) in materialAttributeOptions" |
| | | :key="index" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <!-- <el-col :span="12"> |
| | | <el-form-item label="IFS启用批次管理" prop="lotTrackingIfs"> |
| | | <el-select |
| | |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> --> |
| | | </el-row> |
| | | <!-- </el-row> --> |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <el-form-item |
| | |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <!-- <el-row> --> |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <el-form-item label="零件属性" prop="materialAttribute"> |
| | | <el-select v-model="dataForm.materialAttribute" style="width: 100%"> |
| | | <el-option |
| | | v-for="(item, index) in materialAttributeOptions" |
| | | :key="index" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="备注" prop="description"> |
| | | <el-input |
| | |
| | | // this.dataForm.partName = this.routingList.partName |
| | | // this.dataForm.partId = this.routingList.partId |
| | | // 制造订单form创建的,自动带出工序 |
| | | console.log(this.routingOptions); |
| | | if (param.selectedRoutingOperationId && this.routingOptions) { |
| | | const option = this.routingOptions.find( |
| | | (e) => e.id === param.selectedRoutingOperationId |
| | |
| | | break |
| | | } |
| | | } |
| | | // console.log(this.operationTasks) |
| | | // 若当前工单在工单列表未被找到且当前工单状态为已完成或已取消时,则将当前工单重置为空并抛出事件,否则不管 |
| | | if (isResetCurrOpertionTaskFlag) { |
| | | getOperationTaskById(taskId).then((res) => { |
| | |
| | | // 给弹出框产量列表productList赋值 |
| | | this.productList = [] |
| | | const product = {} |
| | | console.log('userInfo', this.userInfo) |
| | | const currStaff = this.personBoardList.find((item) => { |
| | | return item.staffId == this.userInfo.staffId |
| | | }) |
| | |
| | | currOperateTask: { |
| | | handler(newValue, oldValue) { |
| | | if (newValue.id) { |
| | | console.log( |
| | | 'currOperateTask', |
| | | this.currOperateTask.routingOperationRemark |
| | | ) |
| | | this.opTask.statusDesc = newValue.statusDesc |
| | | // 查询paramDatas |
| | | this.getTechnologyRoutingParam(newValue) |
| | |
| | | }, |
| | | createLodopPrintIze(data) { |
| | | const currYearAndMonth = getYearAndMonth() |
| | | console.log(data) |
| | | const qr = { |
| | | part_no: data.partNo, |
| | | lot_batch_no: data.ifsBatchNo, |
| | |
| | | this.LODOP.PRINT() |
| | | }, |
| | | createLodopPrint(data) { |
| | | console.log(data) |
| | | const qr = { |
| | | part_no: data.partNo, |
| | | lot_batch_no: data.ifsBatchNo, |
| | |
| | | }, |
| | | saveList() { |
| | | const list = JSON.parse(JSON.stringify(this.productOutputList)) |
| | | console.log(`output->list`, list) |
| | | const data = [] |
| | | list.forEach((el) => { |
| | | if (el.isEdit) { |
| | |
| | | // ...mapGetters(['permissions']) |
| | | }, |
| | | created() { |
| | | this.getParamType() |
| | | // this.getParamType() |
| | | }, |
| | | methods: { |
| | | // 获取数据列表 |
| | |
| | | <h2 v-else>编辑-产品检验单</h2> |
| | | </div> |
| | | <div class="btn-group header-right"> |
| | | <el-button @click="addTestProject" v-if="processInspectVo.id==null">生成检验项目</el-button> |
| | | <el-button type="primary" @click="addTestProject" v-if="processInspectVo.id==null">生成检验项目</el-button> |
| | | </div> |
| | | </div> |
| | | <div class="page-main"> |
| | |
| | | <el-col :span="6"> |
| | | <el-form-item label="订单号:"> |
| | | <el-input @blur="selectInfoByOrderId" :disabled="processInspectVo.id != null" |
| | | v-model="processInspectVo.orderNumber" placeholder="请输入订单号" autocomplete="off" /> |
| | | v-model="processInspectVo.orderNumber" autocomplete="off" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-form-item label="报工单号:"> |
| | | <el-input disabled v-model="processInspectVo.productNo" |
| | | placeholder="请输入报工单号:" autocomplete="off" /> |
| | | <el-input disabled v-model="processInspectVo.productNo" autocomplete="off" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-form-item label="客户名称:"> |
| | | <el-input disabled v-model="processInspectVo.prname" |
| | | placeholder="请输入客户名称" autocomplete="off" /> |
| | | <el-input disabled v-model="processInspectVo.prname" autocomplete="off" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="6"> |
| | | <el-form-item label="工程名称:"> |
| | | <el-input disabled v-model="processInspectVo.sname" |
| | | placeholder="请输入工程名称" autocomplete="off" /> |
| | | <el-input disabled v-model="processInspectVo.sname" autocomplete="off" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-form-item label="产品编码:"> |
| | | <el-input disabled v-model="processInspectVo.mcode" |
| | | placeholder="请输入产品编码" autocomplete="off" /> |
| | | <el-form-item label="产品编号:"> |
| | | <el-input disabled v-model="processInspectVo.mcode" autocomplete="off" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-form-item label="规格型号:"> |
| | | <el-input disabled v-model="processInspectVo.specificationsModel" |
| | | placeholder="请输入规格型号" autocomplete="off" /> |
| | | <el-input disabled v-model="processInspectVo.specificationsModel" autocomplete="off" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | |
| | | </div> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="inspectionValue"> |
| | | <el-table-column prop="inspectionValue" |
| | | label="检验描述" width="240" style="text-align: center;"> |
| | | <template slot-scope="scope"> |
| | | <el-col v-if="scope.row.itype === '1'"> |
| | |
| | | pro+=arr.length |
| | | } |
| | | }) |
| | | let obj = { |
| | | id: this.processInspectVo.id, |
| | | number: 0, |
| | | result: this.inspectionResultForm[0].result |
| | | } |
| | | if (pro > 0) { |
| | | this.$prompt('请输入不合格数量', '不合格数量', { |
| | | confirmButtonText: '确定', |
| | |
| | | inputPattern: /^\d+$/, |
| | | inputErrorMessage: '请输入正确数字格式' |
| | | }).then(({ value }) => { |
| | | let data = { |
| | | id: this.processInspectVo.id, |
| | | number: value |
| | | } |
| | | updateFinishedInspectById(data).then(res => { |
| | | obj.number = value |
| | | updateFinishedInspectById(obj).then(res => { |
| | | if(res.data.data.indexOf("成功") > 0){ |
| | | this.$message.success("上报成功"); |
| | | this.checkTestState() |
| | |
| | | }); |
| | | }).catch(() => {}); |
| | | }else{ |
| | | updateFinishedInspectById({id:this.processInspectVo.id,number:0}).then(res => { |
| | | updateFinishedInspectById(obj).then(res => { |
| | | if(res.data.data.indexOf("成功") > 0){ |
| | | this.$message.success("上报成功"); |
| | | this.checkTestState() |
| | |
| | | } |
| | | }) |
| | | }, |
| | | changeRowResult(){ |
| | | if(this.inspectionItems){ |
| | | this.inspectionItems.forEach(e=>{ |
| | | if(e.children){ |
| | | e.children.forEach(i=>{ |
| | | if(i.empiricalValueAddss.length>1){ |
| | | let arr = i.inspectionValue.split(",") |
| | | arr.splice((arr.length-1),1) |
| | | let obj = { |
| | | devideId: i.eId, |
| | | fpid: row.iid, |
| | | inspectionValue: arr.join(","), |
| | | note : i.inote |
| | | } |
| | | updateFinishedInsProduct(obj).then(res => { |
| | | if (res.data.code == 0) { |
| | | this.init() |
| | | } |
| | | }) |
| | | } |
| | | }) |
| | | } |
| | | }) |
| | | } |
| | | }, |
| | | // 删除检验值列 |
| | | clickDeleteInspectionColumn() { |
| | | if (this.empiricalValueAdd - 1 === 0) { |
| | | } else { |
| | | if (this.empiricalValueAddMaxNumber != this.empiricalValueAdd - 1) { |
| | | this.empiricalValueAdd = this.empiricalValueAdd - 1; |
| | | this.changeRowResult() |
| | | this.inspectionItems.forEach(i => { |
| | | i.empiricalValueAddss.splice(this.empiricalValueAdd, 1); |
| | | }); |
| | |
| | | { |
| | | minWidth: '120', |
| | | prop: 'materialCode', |
| | | label: '产品编码', |
| | | label: '产品编号', |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'text' |
| | |
| | | }, |
| | | data: requireData, |
| | | success: function(response) { |
| | | console.log('response', response) |
| | | const resJson = JSON.parse( |
| | | response |
| | | .replace(/\r/g, '') |
| | | .replace(/\n/g, '') |
| | | .replace(/\s*/g, '') |
| | | ) |
| | | console.log('resJson', resJson) |
| | | // TODO |
| | | if (resJson.message) { |
| | | const resData = resJson.data |
| | |
| | | _than.confirmSubmit(_than.submitData,true) |
| | | } |
| | | }).catch(error=>{ |
| | | console.log("输入行号"); |
| | | _than.dialogVisible = true |
| | | }) |
| | | |
| | |
| | | }) |
| | | this.list[i].children.splice(childrenIndex,1) |
| | | } |
| | | this.changeResult() |
| | | }, |
| | | //保存检查项 |
| | | savePackIns(){ |
| | |
| | | updatePackageInsProduct(dataList).then(res=>{ |
| | | if(res.status===200){ |
| | | this.$message.success("保存成功") |
| | | this.init() |
| | | } |
| | | }).catch(error=>{ |
| | | console.log(error); |
| | |
| | | }, |
| | | { |
| | | minWidth: '120', |
| | | prop: 'materialCode', |
| | | label: '产品编号', |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'text' |
| | | }, |
| | | { |
| | | minWidth: '120', |
| | | prop: 'material', |
| | | label: '产品名称', |
| | | isTrue: true, |
| | |
| | | addOrUpdateHandle(row) { |
| | | this.$router.push({ |
| | | name: 'processInspectForm', |
| | | query: { id: row == null ? null : row.id,resultVal : row == null ? null : row.result }, |
| | | }) |
| | | query: { id: row == null ? null : row.id }, |
| | | params: { resultVal : row == null ? null : row.result } |
| | | }) |
| | | }, |
| | | formatResult(row, column, cellValue){ |
| | | if(cellValue != undefined || cellValue != null){ |
| | |
| | | <h2 v-else>编辑-过程检验单</h2> |
| | | </div> |
| | | <div class="btn-group header-right"> |
| | | <el-button @click="addTestProject" v-if="processInspectVo.id == null">生成检验项目</el-button> |
| | | <el-button type="primary" @click="addTestProject" v-if="processInspectVo.id == null">生成检验项目</el-button> |
| | | </div> |
| | | </div> |
| | | <div class="page-main"> |
| | | <div class="finishedProduct-basic"> |
| | | <el-form :model="processInspectVo" ref="addInspectionform" class="l-mes" label-position="right" |
| | | label-width="120px" style="width: 100%" size="small"> |
| | | label-width="120px" style="width: 100%" size="small" :rules="rules"> |
| | | <div class="formwrapper"> |
| | | <el-row> |
| | | <el-col :span="6"> |
| | |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-form-item label="订单号:"> |
| | | <el-form-item label="订单号:" prop="orderNumber"> |
| | | <el-input @blur="selectInfoByOrderId" :disabled="processInspectVo.id != null" |
| | | v-model="processInspectVo.orderNumber" placeholder="请输入订单号" autocomplete="off" /> |
| | | </el-form-item> |
| | |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-form-item label="产品编码:"> |
| | | <el-input disabled v-model="processInspectVo.materialCode" placeholder="请输入产品编码" |
| | | <el-form-item label="产品编号:"> |
| | | <el-input disabled v-model="processInspectVo.materialCode" placeholder="请输入产品编号" |
| | | autocomplete="off" /> |
| | | </el-form-item> |
| | | </el-col> |
| | |
| | | <el-row> |
| | | <el-col :span="6"> |
| | | <el-form-item label="规格型号:"> |
| | | <el-input disabled v-model="processInspectVo.specs" placeholder="请输入规格型号" |
| | | <el-input disabled v-model="processInspectVo.specs" |
| | | autocomplete="off" /> |
| | | </el-form-item> |
| | | </el-col> |
| | |
| | | class="item" effect="dark" content="请先选择设备!" placement="top-start"> |
| | | <el-input :disabled="scope.row.eId == null" |
| | | v-model="scope.row.empiricalValueAddss[index]" |
| | | @blur="changeState(scope.row, index)" placeholder="请输入检测值"></el-input> |
| | | @blur="changeState(scope.row,true)" placeholder="请输入检测值"></el-input> |
| | | <span v-if="resultVal != null && processInspectVo.id != null" |
| | | v-text="scope.row.empiricalValueAddss[index]"></span> |
| | | </el-tooltip> |
| | |
| | | <el-col v-else> |
| | | <el-tooltip v-if="scope.row.iname != null" :disabled="scope.row.eId != null" |
| | | class="item" effect="dark" content="请先选择设备!" placement="top-start"> |
| | | <!-- <el-input :disabled="scope.row.eId == null" |
| | | v-model="scope.row.empiricalValueAddss[index]" |
| | | @blur="changeState(scope.row, index)" placeholder="请输入检测值"></el-input> --> |
| | | <el-select style="width: 100%;" @change="changeState(scope.row, index)" :disabled="scope.row.eId == null" v-model="scope.row.empiricalValueAddss[index]" placeholder="请选择"> |
| | | <el-select style="width: 100%;" @change="changeState(scope.row)" :disabled="scope.row.eId == null" v-model="scope.row.empiricalValueAddss[index]" placeholder="请选择"> |
| | | <el-option v-for="item in dataVal" :key="item.value" :label="item.label" |
| | | :value="item.value"> |
| | | </el-option> |
| | |
| | | <el-table-column |
| | | label="检验描述" width="240" style="text-align: center;"> |
| | | <template slot-scope="scope"> |
| | | <el-col v-if="scope.row.itype === '1'"> |
| | | <el-col> |
| | | <el-tooltip v-if="scope.row.iname != null" :disabled="scope.row.eId != null" |
| | | class="item" effect="dark" content="请先选择设备!" placement="top-start"> |
| | | <el-input :disabled="scope.row.eId == null" |
| | | v-model="scope.row.inote" |
| | | @blur="changeState(scope.row, inote)" placeholder="请输入检验描述"></el-input> |
| | | @blur="changeState(scope.row)" placeholder="请输入检验描述"></el-input> |
| | | <span v-if="resultVal != null && processInspectVo.id != null" |
| | | v-text="scope.row.inote"></span> |
| | | </el-tooltip> |
| | | </el-col> |
| | | <el-col v-else> |
| | | <el-tooltip v-if="scope.row.iname != null" :disabled="scope.row.eId != null" |
| | | class="item" effect="dark" content="请先选择设备!" placement="top-start"> |
| | | <el-input :disabled="scope.row.eId == null" |
| | | v-model="scope.row.inote" |
| | | @blur="changeState(scope.row, inote)" placeholder="请输入检测值"></el-input> |
| | | <!-- <el-select style="width: 100%;" @change="changeState(scope.row, inote)" :disabled="scope.row.eId == null" v-model="scope.row.inote" placeholder="请选择"> |
| | | <el-option v-for="item in dataVal" :key="item.value" :label="item.label" |
| | | :value="item.value"> |
| | | </el-option> |
| | | </el-select> --> |
| | | <span v-if="resultVal != null && processInspectVo.id != null" |
| | | v-text="scope.row.inote"></span> |
| | | </el-tooltip> |
| | | </el-col> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="结论" fixed="right" min-width="100"> |
| | |
| | | export default { |
| | | data() { |
| | | return { |
| | | rules: { |
| | | orderNumber: [{required:true,message:'订单号不能为空',trigger:'blur'}] |
| | | }, |
| | | dataVal: [{ |
| | | label: '是', |
| | | value: '是' |
| | |
| | | proInsNo: null, |
| | | material: null, |
| | | materialCode: null, |
| | | orderNumber: "ZTTIC20230001", |
| | | orderNumber: null, |
| | | quantity: null, |
| | | specs: null, |
| | | unit: null, |
| | |
| | | mounted() { |
| | | this.getDeviceList() |
| | | this.processInspectVo.id = this.$route.query.id |
| | | this.resultVal = this.$route.query.resultVal |
| | | this.resultVal = this.$route.params.resultVal |
| | | if (this.resultVal == null) { |
| | | let val = sessionStorage.getItem("process-resultVal-" + this.processInspectVo.id); |
| | | val == undefined ? this.resultVal = null : this.resultVal = val |
| | | } |
| | | console.log(this.resultVal); |
| | | this.init() |
| | | }, |
| | | methods: { |
| | |
| | | pro += arr.length |
| | | } |
| | | }) |
| | | let obj = { |
| | | id: this.processInspectVo.id, |
| | | number: 0, |
| | | result: this.inspectionResultForm[0].result |
| | | } |
| | | if (pro > 0) { |
| | | this.$prompt('请输入不合格数量', '不合格数量', { |
| | | confirmButtonText: '确定', |
| | |
| | | inputPattern: /^\d+$/, |
| | | inputErrorMessage: '请输入正确数字格式' |
| | | }).then(({ value }) => { |
| | | let data = { |
| | | id: this.processInspectVo.id, |
| | | number: value |
| | | } |
| | | updateProcessInspectsById(data).then(res => { |
| | | obj.number = value |
| | | updateProcessInspectsById(obj).then(res => { |
| | | let data = res.data.data |
| | | if (data) { |
| | | if (data.indexOf("成功") > 0) { |
| | |
| | | }); |
| | | }).catch(() => { }); |
| | | } else { |
| | | updateProcessInspectsById({ id: this.processInspectVo.id, number: 0 }).then(res => { |
| | | updateProcessInspectsById(obj).then(res => { |
| | | let data = res.data.data |
| | | if (data) { |
| | | if (data.indexOf("成功") > 0) { |
| | |
| | | arr = obj.inspectionValue.split(",") |
| | | } |
| | | obj.empiricalValueAddss = arr |
| | | if(obj.note){ |
| | | snote=obj.inote |
| | | } |
| | | if(!obj.inote){ |
| | | obj.inote = null |
| | | } |
| | | if (arr.length > this.empiricalValueAdd) { |
| | | this.empiricalValueAdd = arr.length |
| | | } |
| | |
| | | } |
| | | }) |
| | | this.inspectionItems = result.children |
| | | let rVal = '1' |
| | | this.inspectionItems.forEach(item => { |
| | | if (item.children) { |
| | | item.children.forEach(obj => { |
| | | if (obj.iresult == 0) { |
| | | rVal = '0' |
| | | } |
| | | }) |
| | | } |
| | | }) |
| | | this.inspectionResultForm = [{ |
| | | materialCode: result.materialCode, |
| | | material: result.material, |
| | | userName: Array.from(new Set(userList)).join(","), |
| | | result: this.resultVal == null ? '' : this.resultVal, |
| | | result: this.resultVal == null ? rVal : this.resultVal, |
| | | }] |
| | | }).catch(error => { |
| | | console.log(error) |
| | |
| | | this.processInspectVo.material = sample.material |
| | | this.technologyList = sample.children |
| | | }, |
| | | changeState(row, index) { |
| | | changeState(row,isChecked) { |
| | | const _than = this |
| | | if(isChecked){ |
| | | let isNumber = true |
| | | for(var i=0;i<row.empiricalValueAddss.length;i++){ |
| | | let val = row.empiricalValueAddss[i] |
| | | if(!/^[0-9]*[1-9][0-9]*$/.test(val)){ |
| | | row.empiricalValueAddss[i] = null |
| | | _than.$message.error("请输入数字") |
| | | isNumber = false |
| | | } |
| | | } |
| | | if(!isNumber){ |
| | | return |
| | | } |
| | | } |
| | | if (row.iid != null && row.iid != '') { |
| | | let str = "" |
| | | row.empiricalValueAddss.forEach(e => { |
| | |
| | | if (str === undefined || str === '' || str === null) { |
| | | return |
| | | } |
| | | |
| | | let obj = { |
| | | devideId: row.eId, |
| | | ppid: row.iid, |
| | | inspectionValue: str, |
| | | note : row.inote |
| | | |
| | | } |
| | | updateProcessInsProduct(obj).then(res => { |
| | | if (res.data.code == 0) { |
| | |
| | | }, |
| | | addTestProject() { |
| | | let val = this.processInspectVo |
| | | const _than = this |
| | | addProcess(val).then(res => { |
| | | let id = res.data.data |
| | | if (id != null) { |
| | | _than.processInspectVo.id = id |
| | | queryById(id).then(response => { |
| | | let proList = response.data.data.children |
| | | proList.forEach(item => { |
| | | item.iid = Math.random(); |
| | | if (item.children != undefined) { |
| | | item.children.forEach(obj => { |
| | | obj.inote = null |
| | | obj.empiricalValueAddss = [] |
| | | }) |
| | | } |
| | | }) |
| | | this.inspectionItems = proList |
| | | _than.inspectionItems = proList |
| | | }).catch(error => { |
| | | console.log(error); |
| | | }) |
| | |
| | | }) |
| | | }, |
| | | selectInfoByOrderId() { |
| | | chooseMater({ |
| | | orderNumber: this.processInspectVo.orderNumber |
| | | }).then(res => { |
| | | if (res.data.data != null) { |
| | | this.optionsSamplename = res.data.data.children |
| | | } else { |
| | | this.$message({ |
| | | message: '没有该订单号!', |
| | | type: 'warning' |
| | | }); |
| | | this.optionsSamplename = [] |
| | | this.processInspectVo.materialCode = null |
| | | this.processInspectVo.material = null |
| | | this.processInspectVo.specs = null |
| | | this.processInspectVo.unit = null |
| | | this.$refs.addInspectionform.validate(valid=>{ |
| | | if(valid){ |
| | | chooseMater({ |
| | | orderNumber: this.processInspectVo.orderNumber |
| | | }).then(res => { |
| | | if (res.data.data != null) { |
| | | this.optionsSamplename = res.data.data.children |
| | | } else { |
| | | this.$message({ |
| | | message: '没有该订单号!', |
| | | type: 'warning' |
| | | }); |
| | | this.optionsSamplename = [] |
| | | this.processInspectVo.materialCode = null |
| | | this.processInspectVo.material = null |
| | | this.processInspectVo.specs = null |
| | | this.processInspectVo.unit = null |
| | | } |
| | | }) |
| | | } |
| | | }) |
| | | }, |
| | | changeRowResult(){ |
| | | if(this.inspectionItems){ |
| | | this.inspectionItems.forEach(e=>{ |
| | | if(e.children){ |
| | | e.children.forEach(i=>{ |
| | | if(i.empiricalValueAddss.length>1){ |
| | | let arr = i.inspectionValue.split(",") |
| | | arr.splice((arr.length-1),1) |
| | | let obj = { |
| | | devideId: i.eId, |
| | | ppid: i.iid, |
| | | inspectionValue: arr.join(","), |
| | | note : i.inote |
| | | } |
| | | updateProcessInsProduct(obj).then(res => { |
| | | if (res.data.code == 0) { |
| | | this.init() |
| | | } |
| | | }) |
| | | } |
| | | }) |
| | | } |
| | | }) |
| | | } |
| | | }, |
| | | // 删除检验值列 |
| | | clickDeleteInspectionColumn() { |
| | | if (this.empiricalValueAdd - 1 === 0) { |
| | | const _than = this |
| | | if (_than.empiricalValueAdd - 1 === 0) { |
| | | } else { |
| | | if (this.empiricalValueAddMaxNumber != this.empiricalValueAdd - 1) { |
| | | this.empiricalValueAdd = this.empiricalValueAdd - 1; |
| | | this.inspectionItems.forEach(i => { |
| | | i.empiricalValueAddss.splice(this.empiricalValueAdd, 1); |
| | | if (_than.empiricalValueAddMaxNumber != _than.empiricalValueAdd - 1) { |
| | | _than.empiricalValueAdd = _than.empiricalValueAdd - 1; |
| | | _than.changeRowResult() |
| | | _than.inspectionItems.forEach(i => { |
| | | if(i.children){ |
| | | i.children.forEach(ele=>{ |
| | | ele.empiricalValueAddss.splice(_than.empiricalValueAdd, 1); |
| | | }) |
| | | } |
| | | }); |
| | | } |
| | | } |
| | |
| | | <h2 v-else>编辑-原材料检验</h2> |
| | | </div> |
| | | <div class="btn-group header-right"> |
| | | <el-button @click="save()" v-if="this.dataForm.id==null">保存</el-button> |
| | | <el-button @click="save()" type="primary" v-if="this.dataForm.id==null">保存</el-button> |
| | | </div> |
| | | </div> |
| | | <div class="page-main"> |
| | |
| | | <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-select @blur="changeState(scope.row, index)" style="width:100%" allow-create filterable default-first-option |
| | | <el-select 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)"> |
| | | placeholder="请输入或选择检测值" |
| | | @change="changeState(scope.row,scope.$index)"> |
| | | <el-option label="是" value="是"/> |
| | | <el-option label="否" value="否"/> |
| | | </el-select> |
| | |
| | | let data = { |
| | | id: this.dataForm.id, |
| | | number: this.unqualifiedNum, |
| | | result: this.conclusionTable[0].testState |
| | | } |
| | | updateRawInspectsById(data).then(res => { |
| | | if(res.data.code == 0 && (res.data.data=='1'|| res.data.data=='0')){ |
| | |
| | | } |
| | | |
| | | }, |
| | | changeRowResult(){ |
| | | if(this.list){ |
| | | this.list.forEach(e=>{ |
| | | if(e.children){ |
| | | e.children.forEach(i=>{ |
| | | if(i.testValueList.length>1){ |
| | | let arr = i.testValue.split(",") |
| | | arr.splice((arr.length-1),1) |
| | | let obj = { |
| | | deviceId: i.deviceId, |
| | | rpId: i.rpId, |
| | | testValue: arr.join(","), |
| | | note: i.note |
| | | } |
| | | updateRawInsProduct(obj).then(res=>{ |
| | | if(res.data.code === 0){ |
| | | this.init() |
| | | } |
| | | }) |
| | | } |
| | | }) |
| | | } |
| | | }) |
| | | } |
| | | }, |
| | | delTeatValueColumn(){ |
| | | if (this.empiricalValueAdd - 1 > 0) { |
| | | if (this.empiricalValueAddMaxNumber != this.empiricalValueAdd - 1) { |
| | | this.empiricalValueAdd = this.empiricalValueAdd - 1; |
| | | this.changeRowResult() |
| | | this.list.forEach(i => { |
| | | i.testValueList.splice(this.empiricalValueAdd, 1); |
| | | if(i.children){ |
| | | i.children.forEach(ele=>{ |
| | | ele.testValueList.splice(this.empiricalValueAdd, 1); |
| | | }) |
| | | } |
| | | }); |
| | | } |
| | | } |
| | | }, |
| | | updateTestValue(row,index){ |
| | | if(row.rpId == null){ |
| | | return |
| | | } |
| | | let val = row.testValueList.join(","); |
| | | let obj = { |
| | | deviceId: row.deviceId, |
| | | rpId: row.rpId, |
| | | testValue: val, |
| | | note: row.note |
| | | } |
| | | updateRawInsProduct(obj).then(res=>{ |
| | | if(res.data.code === 0){ |
| | | this.$message.success("更新成功") |
| | | this.init() |
| | | }else{ |
| | | this.$message.success("更新失败") |
| | | } |
| | | }).catch(error=>{ |
| | | this.$message.error(error) |
| | | }) |
| | | }, |
| | | init(){ |
| | | if(this.dataForm.id){ |
| | |
| | | this.list.push(ele) |
| | | }} |
| | | }) |
| | | let rVal = '1' |
| | | this.list.forEach(item=>{ |
| | | if(item.children){ |
| | | item.children.forEach(ele=>{ |
| | | if(ele.testState == 0){ |
| | | rVal = '0' |
| | | } |
| | | }) |
| | | } |
| | | }) |
| | | this.conclusionTable = [{ |
| | | code: data.code, |
| | | name: data.name, |
| | | userName: Array.from(new Set(userNameList)).join(','), |
| | | testState: this.resultVal==null?null:this.resultVal |
| | | testState: this.resultVal==null?rVal:this.resultVal |
| | | }] |
| | | }).catch(error=>{ |
| | | this.$message.error("获取失败",error) |
| | |
| | | } |
| | | }, |
| | | changeState(row, index) { |
| | | if(row){ |
| | | let isTrue = true |
| | | for(var i=0;i<row.testValueList.length;i++){ |
| | | let val = row.testValueList[i] |
| | | let reg = /^[0-9]*[1-9][0-9]*$/ |
| | | console.log(['是','否'].includes(val)); |
| | | if(!reg.test(val) && !['是','否'].includes(val)){ |
| | | this.$message.error("请输入数字或选择是否") |
| | | row.testValueList[i] = null |
| | | isTrue = false |
| | | } |
| | | } |
| | | if(!isTrue){ |
| | | return |
| | | } |
| | | } |
| | | if (row.rpId != null && row.rpId != '') { |
| | | let val = row.testValueList.join(",") |
| | | if (val === undefined || val === '' || val === null) { |
| | |
| | | this.visible = false |
| | | this.isSubmit = false |
| | | this.$emit('refreshDataList') |
| | | }).catch(error=>{ |
| | | console.error(error); |
| | | this.isSubmit = false |
| | | }) |
| | | } else { |
| | | addTestStandard(this.dataForm).then((data) => { |
| | |
| | | this.visible = false |
| | | this.isSubmit = false |
| | | this.$emit('refreshDataList') |
| | | }).catch(error=>{ |
| | | console.error(error); |
| | | this.isSubmit = false |
| | | }) |
| | | } |
| | | } else { |
| | |
| | | <h2 v-if="!editable">查看-完整产品结构</h2> |
| | | </div> |
| | | <div class="btn-group header-right" v-if="editable"> |
| | | <el-button :disabled="isSubmit" v-thinclick="`dataFormSubmit`" |
| | | <el-button type="primary" :disabled="isSubmit" v-thinclick="`dataFormSubmit`" |
| | | >保存</el-button |
| | | > |
| | | </div> |
| | |
| | | <h2 v-if="!editable">查看-工艺文件</h2> |
| | | </div> |
| | | <div class="btn-group header-right" v-if="editable"> |
| | | <el-button @click="save()">保存</el-button> |
| | | <el-button type="primary" @click="save()">保存</el-button> |
| | | </div> |
| | | </div> |
| | | <div class="page-main"> |
| | |
| | | <h2>编辑-工序</h2> |
| | | </div> |
| | | <div class="btn-group header-right"> |
| | | <el-button :disabled="isSubmit" v-thinclick="`dataFormSubmit`" |
| | | <el-button type="primary" :disabled="isSubmit" v-thinclick="`dataFormSubmit`" |
| | | >保存</el-button |
| | | > |
| | | </div> |
| | |
| | | <div class="page-main"> |
| | | <div class="operation-basic"> |
| | | <el-form |
| | | :inline="true" |
| | | style="width:100%" |
| | | :model="dataForm" |
| | | :rules="dataRule" |
| | | ref="dataForm" |
| | | label-width="100px" |
| | | class="l-mes form-content" |
| | | > |
| | | class="l-mes"> |
| | | <el-row class="first-row"> |
| | | <el-col :span="24"> |
| | | <el-col :span="6"> |
| | | <el-form-item label="工序名称" prop="name"> |
| | | <el-input |
| | | style="width:100%" |
| | | v-model="dataForm.name" |
| | | placeholder="工序名称" |
| | | ></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-form-item label="工序编号" prop="operationNo"> |
| | | <el-input |
| | | style="width:100%" |
| | | v-model="dataForm.operationNo" |
| | | placeholder="工序编号" |
| | | ></el-input> |
| | | </el-form-item> |
| | | <!-- <el-form-item label="零件族" prop="partFamilyId"> |
| | | <el-select |
| | | v-model="dataForm.partFamilyId" |
| | | filterable |
| | | placeholder="请选择" |
| | | style="width: 100%;" |
| | | > |
| | | <el-option |
| | | v-for="(item, index) in this.partFamilyOptions" |
| | | :key="index" |
| | | :label="item.partFamilyName" |
| | | :value="item.id" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> --> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-form-item label="工作中心" prop="workCenter"> |
| | | <el-select |
| | | v-model="dataForm.workCenter" |
| | | placeholder="工作中心" |
| | | style="width: 100%" |
| | | filterable |
| | | > |
| | | filterable > |
| | | <el-option |
| | | v-for="item in workCenterOptions" |
| | | :key="item.id" |
| | |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <!-- <el-form-item label="机器运转因素" prop="machRunFactor"> |
| | | <el-input |
| | | v-model="dataForm.machRunFactor" |
| | | placeholder="机器运转因素" |
| | | ></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="机器设置时间" prop="machSetupTime"> |
| | | <el-input |
| | | v-model="dataForm.machSetupTime" |
| | | placeholder="机器设置时间" |
| | | ></el-input> |
| | | </el-form-item> --> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-form-item label="人工类别" prop="laborClassNo"> |
| | | <el-select |
| | | v-model="dataForm.laborClassNo" |
| | |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <!-- <el-form-item label="劳力运转因素" prop="laborRunFactor"> |
| | | <el-input |
| | | v-model="dataForm.laborRunFactor" |
| | | placeholder="劳力运转因素" |
| | | ></el-input> |
| | | </el-form-item> --> |
| | | <!-- <el-form-item label="劳力设置时间" prop="laborSetupTime"> |
| | | <el-input |
| | | v-model="dataForm.laborSetupTime" |
| | | placeholder="劳力设置时间" |
| | | ></el-input> |
| | | </el-form-item> --> |
| | | <!-- <el-form-item label="因素单位" prop="runTimeCodeDb"> |
| | | <el-select |
| | | v-model="dataForm.runTimeCodeDb" |
| | | placeholder="因素单位" |
| | | style="width: 100%" |
| | | > |
| | | <el-option |
| | | v-for="item in runTimeCodeDbOptions" |
| | | :key="item.id" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | /> |
| | | </el-select> |
| | | </el-form-item> --> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="6"> |
| | | <el-form-item label="班组人员" prop="crewSize"> |
| | | <el-input |
| | | style="width:100%" |
| | | v-model="dataForm.crewSize" |
| | | placeholder="班组人员" |
| | | ></el-input> |
| | | </el-form-item> |
| | | <!-- <el-form-item label="外部工序项目" prop="outsideOpItem"> |
| | | <el-select |
| | | v-model="dataForm.outsideOpItem" |
| | | placeholder="外部工序项目" |
| | | style="width: 170px" |
| | | clearable |
| | | > |
| | | <el-option |
| | | v-for="item in outsideOpItemOptions" |
| | | :key="item.id" |
| | | :label='item.value + "-" + item.label ' |
| | | :value="item.value" |
| | | /> |
| | | </el-select> |
| | | </el-form-item> --> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="备注" prop="remark"> |
| | | <el-input |
| | | v-model="dataForm.remark" |
| | | placeholder="备注" |
| | | style="width: 280px" |
| | | style="width: 100%" |
| | | ></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <!-- <el-row style="padding-top: 10px"> |
| | | <el-col :span="24"> |
| | | <el-form-item label="配置项"> |
| | | <el-checkbox-group |
| | | v-model="checkboxGroup" |
| | | @change="checkboxGroupChange()" |
| | | > |
| | | <el-checkbox-button |
| | | label="productionCounting" |
| | | key="productionCounting" |
| | | >报工</el-checkbox-button |
| | | > |
| | | <el-checkbox-button label="daq" key="daq" |
| | | >采集</el-checkbox-button |
| | | > |
| | | <el-checkbox-button label="inspection" key="inspection" |
| | | >检验</el-checkbox-button |
| | | > |
| | | <el-checkbox-button |
| | | label="autoInspection" |
| | | key="autoInspection" |
| | | >自动报检</el-checkbox-button |
| | | > |
| | | <el-checkbox-button label="semiFinished" key="semiFinished" |
| | | >半成品</el-checkbox-button |
| | | > |
| | | <el-checkbox-button label="materialCost" key="materialCost" |
| | | >投料</el-checkbox-button |
| | | > |
| | | </el-checkbox-group> |
| | | </el-form-item> |
| | | <el-col :span="6"> |
| | | </el-col> |
| | | </el-row> --> |
| | | </el-row> |
| | | </el-form> |
| | | </div> |
| | | |
| | |
| | | <style> |
| | | .operation-basic { |
| | | background-color: #fff; |
| | | height: 200px; |
| | | height: 130px; |
| | | display: flex; |
| | | padding: 20px 30px; |
| | | border: 1px solid #ddd; |
| | |
| | | <h2 v-if="!editable">查看-工艺路线</h2> |
| | | </div> |
| | | <div class="btn-group header-right" v-if="editable"> |
| | | <el-button :disabled="isSubmit" v-thinclick="`allSave`">保存</el-button> |
| | | <el-button :disabled="isSubmit" type="primary" v-thinclick="`allSave`">保存</el-button> |
| | | </div> |
| | | </div> |
| | | <div class="page-main"> |
| | | <div class="routing-basic"> |
| | | <el-form |
| | | :inline="true" |
| | | :model="dataForm" |
| | | :rules="dataRule" |
| | | ref="dataForm" |
| | | label-width="100px" |
| | | style="width: 100%" |
| | | class="l-mes" |
| | | :disabled="!editable" |
| | | > |
| | | <el-row> |
| | | <el-col :span="24"> |
| | | <el-form-item prop="routingNo" label="工艺编号"> |
| | | <el-col :span="6"> |
| | | <el-form-item style="width:100%" prop="routingNo" label="工艺编号"> |
| | | <el-input |
| | | style="width:100%" |
| | | v-model="dataForm.routingNo" |
| | | placeholder="工艺编号" |
| | | disabled |
| | | ></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-form-item prop="partNo" label="零件号"> |
| | | <el-input |
| | | style="width:100%" |
| | | v-model="dataForm.partNo" |
| | | placeholder="零件号" |
| | | disabled |
| | |
| | | ></el-button> |
| | | </el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-form-item prop="partName" label="零件名称"> |
| | | <el-input |
| | | v-model="dataForm.partName" |
| | | placeholder="零件名称" |
| | | readonly |
| | | style="width: 300px" |
| | | style="width: 100%" |
| | | ></el-input> |
| | | </el-form-item> |
| | | <el-form-item prop="description" label="描述"> |
| | | <el-input |
| | | v-model="dataForm.description" |
| | | placeholder="描述" |
| | | style="width: 280px" |
| | | ></el-input> |
| | | </el-form-item> |
| | | <!-- <el-form-item prop="wireCore" label="线芯"> |
| | | <el-input |
| | | v-model="dataForm.wireCore" |
| | | placeholder="线芯" |
| | | style="width: 60px" |
| | | ></el-input> |
| | | </el-form-item> --> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-form-item label="BOM" prop="bomId"> |
| | | <el-select :disabled="dataForm.id != null" v-model="dataForm.bomId" placeholder="" filterable> |
| | | <el-select style="width:100%" :disabled="dataForm.id != null" v-model="dataForm.bomId" placeholder="" filterable> |
| | | <el-option |
| | | v-for="item in bomList" |
| | | :key="item.id" |
| | | :label="item.number" |
| | | :value="item.id" |
| | | /> |
| | | :value="item.id" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <!-- <el-form-item prop="version" label="工艺版本"> |
| | | <el-input |
| | | v-model="dataForm.version" |
| | | placeholder="工艺版本" |
| | | ></el-input> |
| | | </el-form-item> --> |
| | | <!-- <el-form-item label="工艺类型" prop="bomTypeDb"> |
| | | <el-select |
| | | v-model="dataForm.bomTypeDb" |
| | | placeholder="请选择工艺类型" |
| | | style="width:100%" |
| | | @change="bomTypeDbChange" |
| | | > |
| | | <el-option |
| | | v-for="(item, index) in bomTypeDbOptions" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | :key="index" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> --> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="6"> |
| | | <el-form-item label="逐步采用日期" prop="phaseInDate"> |
| | | <el-date-picker |
| | | v-model="dataForm.phaseInDate" |
| | |
| | | > |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-form-item label="逐步淘汰日期" prop="phaseOutDate"> |
| | | <el-date-picker |
| | | v-model="dataForm.phaseOutDate" |
| | |
| | | > |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <!-- <el-form-item prop="alternativeNo" label="替代"> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-form-item prop="description" label="描述"> |
| | | <el-input |
| | | v-model="dataForm.alternativeNo" |
| | | placeholder="替代" |
| | | v-model="dataForm.description" |
| | | placeholder="描述" |
| | | style="width: 100%" |
| | | ></el-input> |
| | | </el-form-item> --> |
| | | <!-- <el-form-item prop="alternativeDesc" label="替代描述"> |
| | | <el-input |
| | | v-model="dataForm.alternativeDesc" |
| | | placeholder="替代描述" |
| | | ></el-input> |
| | | </el-form-item> --> |
| | | <!-- <el-form-item label="已同步至IFS" prop="ifsSync"> |
| | | <span |
| | | style="width: 146px;display: inline-block;font-size:12px;font-weight:bold;" |
| | | >{{ dataForm.ifsSync ? '是' : '否' }}</span |
| | | > |
| | | </el-form-item> --> |
| | | <!-- <el-form-item label="主工艺" prop="master"> |
| | | <el-switch v-model="dataForm.master"> </el-switch> |
| | | </el-form-item> --> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | </el-col> |
| | | </el-row> |
| | | </el-form> |
| | |
| | | wireCore: null |
| | | }, |
| | | dataRule: { |
| | | partName: [ |
| | | partNo: [ |
| | | { required: true, message: '零件不能为空', trigger: 'change' } |
| | | ], |
| | | bomTypeDb: [ |
| | |
| | | <div class="mod-config"> |
| | | <basic-container> |
| | | <div style="margin-left: 15px;"> |
| | | <el-row> |
| | | <el-col :span="1"> |
| | | <div> |
| | | <el-divider direction="vertical"></el-divider> |
| | | <div |
| | | style="float: left;height: 18px;font-size: 14px;line-height: 18px;font-weight: bold" |
| | | > |
| | | <span>零件</span> |
| | | </div> |
| | | </div> |
| | | </el-col> |
| | | <el-col :span="3"> |
| | | <div> |
| | | <el-input |
| | | class="change-stock-input" |
| | | v-model="partNoStock" |
| | | placeholder="零件" |
| | | style="width: 100%" |
| | | disabled |
| | | > |
| | | <el-button |
| | | slot="append" |
| | | icon="el-icon-search" |
| | | @click="openPartDialog()" |
| | | ></el-button> |
| | | </el-input> |
| | | </div> |
| | | </el-col> |
| | | <el-col :span="1" :offset="1"> |
| | | <div> |
| | | <el-divider direction="vertical"></el-divider> |
| | | <div |
| | | style="float: left;height: 18px;font-size: 14px;line-height: 18px;font-weight: bold" |
| | | > |
| | | <span>库位</span> |
| | | </div> |
| | | </div> |
| | | </el-col> |
| | | <el-col :span="3"> |
| | | <div> |
| | | <el-input |
| | | class="change-stock-input" |
| | | v-model="locationNoStock" |
| | | placeholder="库位号" |
| | | @focus="openPicker(locationNoStock)" |
| | | style="width: 100%" |
| | | disabled |
| | | > |
| | | <i |
| | | slot="suffix" |
| | | v-show="locationNoStock" |
| | | @click="clearForm(locationNoStock)" |
| | | class="el-input__icon el-icon-error err-style" |
| | | ></i> |
| | | <el-button |
| | | slot="append" |
| | | icon="el-icon-search" |
| | | @click="openLocationDialog()" |
| | | ></el-button> |
| | | </el-input> |
| | | </div> |
| | | </el-col> |
| | | <el-col :span="2"> |
| | | <div style="display:flex;justify-content:flex-end;"> |
| | | <div |
| | | style="height: 18px;font-size: 14px;line-height: 18px;font-weight: bold;width:60px;" |
| | | > |
| | | <span>批次号</span> |
| | | </div> |
| | | <div> |
| | | <el-divider direction="vertical"></el-divider> |
| | | </div> |
| | | </div> |
| | | </el-col> |
| | | <el-col :span="3"> |
| | | <div> |
| | | <el-input |
| | | class="change-stock-input" |
| | | v-model="partBatchNoStock" |
| | | placeholder="批次号" |
| | | @focus="openPicker(partBatchNoStock)" |
| | | style="width: 100%" |
| | | disabled |
| | | > |
| | | <i |
| | | slot="suffix" |
| | | v-show="partBatchNoStock" |
| | | @click="clearStock(partBatchNoStock)" |
| | | class="el-input__icon el-icon-error err-style" |
| | | ></i> |
| | | <el-button |
| | | slot="append" |
| | | icon="el-icon-search" |
| | | @click="openStockDialog()" |
| | | ></el-button> |
| | | </el-input> |
| | | </div> |
| | | </el-col> |
| | | <el-col :span="2"> |
| | | <div style="display:flex;justify-content:flex-end;"> |
| | | <div |
| | | style="height: 18px;font-size: 14px;line-height: 18px;font-weight: bold;width:60px;" |
| | | > |
| | | <span>可用数量</span> |
| | | </div> |
| | | <div> |
| | | <el-divider direction="vertical"></el-divider> |
| | | </div> |
| | | </div> |
| | | </el-col> |
| | | <el-col :span="3"> |
| | | <div> |
| | | <el-select |
| | | v-model="stockList.condition" |
| | | placeholder="请选择" |
| | | @change="conditionChange" |
| | | > |
| | | <el-option |
| | | v-for="item in conditionOptions" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | <el-form class="l-mes" style="width:100%" :model="searchForm" label-width="80px" label-position="right"> |
| | | <el-row> |
| | | <el-col :span="5"> |
| | | <el-form-item label="零件"> |
| | | <el-input |
| | | class="change-stock-input" |
| | | v-model="searchForm.partNoStock" |
| | | placeholder="零件" |
| | | style="width: 100%" |
| | | disabled |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </div> |
| | | </el-col> |
| | | <el-col :span="3"> |
| | | <div style="text-align:center;"> |
| | | <el-button @click="clearConditions">清空</el-button |
| | | ><el-button |
| | | @click="queryByConditions" |
| | | :disabled="isSubmit" |
| | | type="primary" |
| | | >查询</el-button |
| | | > |
| | | </div> |
| | | </el-col> |
| | | </el-row> |
| | | <el-button |
| | | slot="append" |
| | | icon="el-icon-search" |
| | | @click="openPartDialog()" |
| | | ></el-button> |
| | | </el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="5"> |
| | | <el-form-item label="库位"> |
| | | <el-input |
| | | class="change-stock-input" |
| | | v-model="searchForm.locationNoStock" |
| | | placeholder="库位号" |
| | | style="width: 100%" |
| | | disabled |
| | | > |
| | | <el-button |
| | | slot="append" |
| | | icon="el-icon-search" |
| | | @click="openLocationDialog()" |
| | | ></el-button> |
| | | </el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="5"> |
| | | <el-form-item label="批次号"> |
| | | <el-input |
| | | class="change-stock-input" |
| | | v-model="searchForm.partBatchNoStock" |
| | | placeholder="批次号" |
| | | style="width: 100%" |
| | | disabled |
| | | > |
| | | <el-button |
| | | slot="append" |
| | | icon="el-icon-search" |
| | | @click="openStockDialog()" |
| | | ></el-button> |
| | | </el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="5"> |
| | | <el-form-item label="可用数量"> |
| | | <el-select |
| | | style="width:100%" |
| | | v-model="searchForm.condition" |
| | | placeholder="请选择" |
| | | @change="conditionChange" |
| | | > |
| | | <el-option |
| | | v-for="item in conditionOptions" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="3" :offset="1"> |
| | | <div style="text-align:center;"> |
| | | <el-button @click="clearConditions">清空</el-button |
| | | ><el-button |
| | | @click="queryByConditions" |
| | | :disabled="isSubmit" |
| | | type="primary" |
| | | >查询</el-button |
| | | > |
| | | </div> |
| | | </el-col> |
| | | </el-row> |
| | | </el-form> |
| | | <div style="margin-top: 15px;"> |
| | | <el-divider direction="vertical"></el-divider> |
| | | <div |
| | |
| | | > |
| | | <span>实时库存</span> |
| | | </div> |
| | | <el-button type="primary" @click="addOrUpdateHandle()" |
| | | <el-button size="mini" type="primary" @click="addOrUpdateHandle()" |
| | | >新增</el-button |
| | | > |
| | | <el-button type="primary" @click="addStockSubmit()">接收</el-button> |
| | | <el-button type="primary" @click="deleteStockSubmit()" |
| | | <el-button size="mini" type="primary" @click="addStockSubmit()">接收</el-button> |
| | | <el-button size="mini" type="primary" @click="deleteStockSubmit()" |
| | | >发放</el-button |
| | | > |
| | | |
| | |
| | | export default { |
| | | data() { |
| | | return { |
| | | searchForm: { |
| | | partNoStock: null, |
| | | locationNoStock: null, |
| | | partBatchNoStock: null, |
| | | condition: '>0', |
| | | }, |
| | | stockList: { |
| | | condition: '>0', |
| | | locationNo: null, |
| | |
| | | paramObj: {}, |
| | | dataRule: {}, |
| | | addOrUpdateVisible: false, |
| | | partNoStock: null, |
| | | locationNoStock: null, |
| | | partBatchNoStock: null, |
| | | showPart: false, |
| | | showLocation: false, |
| | | showStock: false, |
| | |
| | | } |
| | | }, |
| | | watch: { |
| | | partNoStock: { |
| | | 'searchForm.partNoStock': { |
| | | handler(newValue, oldValue) { |
| | | if (newValue != null && newValue != undefined) { |
| | | // this.getData() |
| | |
| | | deep: true, |
| | | immediate: true |
| | | }, |
| | | locationNoStock: { |
| | | 'searchForm.locationNoStock': { |
| | | handler(newValue, oldValue) { |
| | | if (newValue != null && newValue != undefined) { |
| | | // this.getData() |
| | |
| | | deep: true, |
| | | immediate: true |
| | | }, |
| | | partBatchNoStock: { |
| | | 'searchForm.partBatchNoStock': { |
| | | handler(newValue, oldValue) { |
| | | if (newValue != null && newValue != undefined) { |
| | | // this.getData() |
| | |
| | | methods: { |
| | | // 清空所有查询条件 |
| | | clearConditions() { |
| | | this.partNoStock = null |
| | | this.searchForm.partNoStock = null |
| | | this.stockList.partNo = null |
| | | this.paramObj.partId = null |
| | | this.stockList.partName = null |
| | | this.stockList.partId = null |
| | | this.locationNoStock = null |
| | | this.searchForm.locationNoStock = null |
| | | this.stockList.locationNo = null |
| | | this.stockList.locationId = null |
| | | this.paramObj.locationId = null |
| | | this.partBatchNoStock = null |
| | | this.searchForm.partBatchNoStock = null |
| | | this.stockList.partBatchNo = null |
| | | }, |
| | | // 根据查询条件,搜索 |
| | |
| | | this.getData() |
| | | }, |
| | | // 可用数量条件变更后,触发查询 |
| | | conditionChange() { |
| | | // this.getData() |
| | | conditionChange(val) { |
| | | this.stockList.condition = val |
| | | }, |
| | | // 零件 |
| | | openPartDialog() { |
| | | this.showPart = true |
| | | }, |
| | | getData() { |
| | | if (this.partNoStock != null) { |
| | | if (this.searchForm.partNoStock != null) { |
| | | getStockCount(this.stockList).then((resp) => { |
| | | const respData = resp.data.data |
| | | if (respData && respData > 100) { |
| | |
| | | this.$message.error('请先选择一个零件') |
| | | } |
| | | }, |
| | | openPicker() { |
| | | document.activeElement.blur() // 主动触发onblur事件,是原生的js哟 |
| | | }, |
| | | clearForm() { |
| | | this.locationNoStock = null |
| | | this.stockList.locationNo = this.locationNoStock |
| | | this.stockList.locationId = null |
| | | this.paramObj.locationId = null |
| | | // this.getData() |
| | | }, |
| | | clearStock() { |
| | | this.partBatchNoStock = null |
| | | this.stockList.partBatchNo = this.partBatchNoStock |
| | | this.locationNoStock = null |
| | | this.stockList.locationNo = this.locationNoStock |
| | | this.stockList.locationId = null |
| | | this.paramObj.locationId = null |
| | | // this.getData() |
| | | }, |
| | | selectPart(param) { |
| | | if (param) { |
| | | this.partNoStock = param.partNo |
| | | this.stockList.partNo = this.partNoStock |
| | | this.searchForm.partNoStock = param.partNo |
| | | this.stockList.partNo = this.searchForm.partNoStock |
| | | this.paramObj.partId = param.id |
| | | this.stockList.partName = param.partName |
| | | this.stockList.partId = param.id |
| | |
| | | // } |
| | | }, |
| | | selectLocation(param) { |
| | | console.log(param); |
| | | if (param) { |
| | | this.locationNoStock = param.locNo |
| | | this.stockList.locationNo = this.locationNoStock |
| | | this.searchForm.locationNoStock = param.locNo |
| | | this.stockList.locationNo = this.searchForm.locationNoStock |
| | | this.stockList.locationId = param.id |
| | | this.paramObj.locationId = param.id |
| | | } else { |
| | | this.locationNoStock = null |
| | | this.stockList.locationNo = this.locationNoStock |
| | | this.searchForm.locationNoStock = null |
| | | this.stockList.locationNo = this.searchForm.locationNoStock |
| | | this.stockList.locationId = null |
| | | this.paramObj.locationId = null |
| | | // this.getData() |
| | |
| | | dataFormSubmit() {}, |
| | | selectStock(param) { |
| | | if (param) { |
| | | this.partBatchNoStock = param.partBatchNo |
| | | this.stockList.partBatchNo = this.partBatchNoStock |
| | | this.searchForm.partBatchNoStock = param.partBatchNo |
| | | this.stockList.partBatchNo = this.searchForm.partBatchNoStock |
| | | this.stockList.locationNo = param.locationNo |
| | | this.locationNoStock = param.locationNo |
| | | this.searchForm.locationNoStock = param.locationNo |
| | | this.stockList.locationId = param.locationId |
| | | this.paramObj.locationId = param.locationId |
| | | this.partNoStock = param.partNo |
| | | this.stockList.partNo = this.partNoStock |
| | | this.searchForm.partNoStock = param.partNo |
| | | this.stockList.partNo = this.searchForm.partNoStock |
| | | this.paramObj.partId = param.partId |
| | | this.stockList.partName = param.partName |
| | | this.stockList.partId = param.partId |
| | | } else { |
| | | this.partBatchNoStock = null |
| | | this.stockList.partBatchNo = this.partBatchNoStock |
| | | this.locationNoStock = null |
| | | this.stockList.locationNo = this.locationNoStock |
| | | this.searchForm.partBatchNoStock = null |
| | | this.stockList.partBatchNo = this.searchForm.partBatchNoStock |
| | | this.searchForm.locationNoStock = null |
| | | this.stockList.locationNo = this.searchForm.locationNoStock |
| | | this.stockList.locationId = null |
| | | this.paramObj.locationId = null |
| | | this.partNoStock = null |
| | | this.searchForm.partNoStock = null |
| | | this.stockList.partNo = null |
| | | this.paramObj.partId = null |
| | | this.stockList.partName = null |
| | |
| | | ref="warehouseStockTable" |
| | | > |
| | | <template #toolbar> |
| | | <el-button |
| | | <!-- <el-button |
| | | v-if="permissions.warehouse_stock_scm" |
| | | @click="pushScm()" |
| | | type="primary" |
| | | style="margin-left:10px;" |
| | | >成品推送SCM |
| | | </el-button> |
| | | </el-button> --> |
| | | </template> |
| | | </ttable> |
| | | <!-- 创建主生产计划 --> |
| | |
| | | multipleSelection: [], |
| | | uploadInfo: { |
| | | // 是否展示上传EXCEL以及对应的url |
| | | isShow: true, |
| | | isShow: false, |
| | | url: '/mes/stock/upload' |
| | | }, |
| | | prelang: 'operation', |
| | |
| | | isSearch: true, |
| | | searchInfoType: 'text' |
| | | }, |
| | | { |
| | | /* { |
| | | width: '100', |
| | | minWidth: '100', |
| | | prop: 'partBatchNo', |
| | |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'text' |
| | | }, |
| | | }, */ |
| | | { |
| | | width: '100', |
| | | minWidth: '100', |
| | |
| | | isSearch: true, |
| | | searchInfoType: 'text' |
| | | }, |
| | | { |
| | | /* { |
| | | width: '100', |
| | | minWidth: '100', |
| | | prop: 'reserveQuantity', |
| | |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'text' |
| | | }, |
| | | }, */ |
| | | { |
| | | width: '100', |
| | | minWidth: '120', |
| | |
| | | isSearch: true, |
| | | searchInfoType: 'text' |
| | | }, |
| | | { |
| | | /* { |
| | | width: '100', |
| | | minWidth: '120', |
| | | prop: 'sstockQuantity', |
| | |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'text' |
| | | }, |
| | | { |
| | | }, */ |
| | | /* { |
| | | minWidth: '100', |
| | | prop: 'status', |
| | | label: '状态', |
| | |
| | | isTrue: true, |
| | | isSearch: true, |
| | | searchInfoType: 'text' |
| | | }, |
| | | }, */ |
| | | { |
| | | minWidth: '100', |
| | | prop: 'ifsBatchNo', |
| | |
| | | } |
| | | ], |
| | | toolbar: [ |
| | | { |
| | | /* { |
| | | text: '移库', |
| | | type: 'primary', |
| | | fun: this.moveStock |
| | |
| | | text: '成品标签2', |
| | | type: 'primary', |
| | | fun: this.warehousingSmalllPrint |
| | | } |
| | | } */ |
| | | ] |
| | | }, |
| | | addOrUpdateVisible: false, |
| | |
| | | * 配置参考: |
| | | * https://cli.vuejs.org/zh/config/ |
| | | */ |
| | | |
| | | |
| | | // const url = 'http://192.168.2.7:9999' |
| | | const url = 'http://192.168.32.45:9999' |
| | | //const url = 'http://192.168.2.7:9999' |
| | | //const url = 'http://192.168.32.45:9999' |
| | | // const url = 'http://192.168.0.23:9999' |
| | | |
| | | const url = 'http://localhost:9999' |
| | | // const url = 'http://localhost:9999' |
| | | |
| | | |
| | | const localUrl = 'http://localhost:8089' |