| | |
| | | </view> |
| | | </view> |
| | | |
| | | <!-- 操作按钮 --> |
| | | <view class="action-buttons"> |
| | | <button class="action-btn primary" v-if="isUpdate && !isShowTable" @click="getItem">创建检验单并生成部分默认值</button> |
| | | <button class="action-btn secondary" v-if="!isUpdate && !isShowTable" @click="toImage">上传/查看图片</button> |
| | | <button class="action-btn danger" v-if="!isUpdate && !formData.fcheckResu && !isShowTable" @click="removeXJ">删除单据</button> |
| | | <button class="action-btn warning" v-if="!isUpdate && !isShowTable" @click="saveRemarks">添加不合格描述</button> |
| | | <button class="action-btn primary" v-if="isShowTable" @click="getTable">获取检验项目</button> |
| | | <button class="action-btn primary" v-if="isShowTable && isUpdate" @click="saveTable">生成检验项目</button> |
| | | <button class="action-btn success" v-if="!isUpdate && !isShowTable" @click="getGenUpdate">获取检验项目</button> |
| | | <button class="action-btn success" v-if="!isUpdate && !isShowTable" @click="submitInspection">提交检验</button> |
| | | </view> |
| | | <!-- 操作按钮 --> |
| | | <view class="action-buttons"> |
| | | <!-- 新建单据时的创建按钮 --> |
| | | <button class="action-btn primary" v-if="isUpdate && !isShowTable" @click="save"> |
| | | 创建检验单并生成部分默认值 |
| | | </button> |
| | | |
| | | <!-- 已有单据的操作按钮 --> |
| | | <button class="action-btn secondary" v-if="!isUpdate && !isShowTable" @click="toImage">上传/查看图片</button> |
| | | <button class="action-btn danger" v-if="!isUpdate && !formData.fcheckResu && !isShowTable && formData.fsubmit !== 1" @click="removeXJ">删除单据</button> |
| | | <button class="action-btn warning" v-if="!isUpdate && !isShowTable && formData.fsubmit !== 1" @click="saveRemarks">添加不合格描述</button> |
| | | |
| | | <!-- 检验项目管理按钮 --> |
| | | <button class="action-btn primary" v-if="isShowTable" @click="getTable">获取检验项目</button> |
| | | <button class="action-btn primary" v-if="isShowTable && isUpdate" @click="saveTable">生成检验项目</button> |
| | | <button class="action-btn success" v-if="!isUpdate && !isShowTable && formData.fsubmit !== 1" @click="getGenUpdate">获取检验项目</button> |
| | | <button class="action-btn success" v-if="!isUpdate && !isShowTable && formData.fsubmit !== 1" @click="submitInspection">提交检验</button> |
| | | </view> |
| | | <!-- 修改不合格描述弹出框 --> |
| | | <view v-if="remarksPopup" class="overlay"> |
| | | <view class="popup"> |
| | |
| | | export default { |
| | | data() { |
| | | return { |
| | | formData: { |
| | | id: "", |
| | | releaseNo: "", |
| | | createBy: "", |
| | | createDate: "", |
| | | daa020: "", |
| | | itemNo: "", |
| | | billNo: "", |
| | | catQty: "", |
| | | detailMem: "", |
| | | taskNo: "", |
| | | fcheckResu: "", |
| | | boardModel: "", |
| | | planQty: "", |
| | | mocode: "", |
| | | boardStyle: "" |
| | | }, |
| | | formData: { |
| | | id: "", |
| | | releaseNo: "", |
| | | createBy: "", |
| | | createDate: "", |
| | | daa020: "", |
| | | daa002: "", // 添加产品ID字段 |
| | | itemNo: "", |
| | | itemName: "", // 添加物料名称 |
| | | itemModel: "", // 添加规格型号 |
| | | billNo: "", |
| | | catQty: "", |
| | | detailMem: "", |
| | | taskNo: "", |
| | | fcheckResu: "", |
| | | fsubmit: 0, // 添加提交状态字段 |
| | | boardModel: "", |
| | | planQty: "", |
| | | mocode: "", |
| | | boardStyle: "" |
| | | }, |
| | | |
| | | DAA020List: [], |
| | | DAA020Index: -1, |
| | |
| | | this.$showMessage("请先选择检验单号"); |
| | | } |
| | | }, |
| | | getItem() { |
| | | |
| | | save() { |
| | | // 验证必填字段 - 借鉴SJ的验证逻辑,但保持XJ的字段验证 |
| | | if (!this.formData.billNo) { |
| | | this.$showMessage("请选择工单单号"); |
| | | return; |
| | | } |
| | | |
| | | if (!this.formData.itemNo) { |
| | | this.$showMessage("物料信息获取失败,请重新选择工单"); |
| | | return; |
| | | } |
| | | |
| | | if (!this.tableData || this.tableData.length === 0) { |
| | | this.$showMessage("此物料没有启用的检验项目,请维护!"); |
| | | return; |
| | | } |
| | | |
| | | |
| | | if (!this.formData.billNo) { |
| | | this.$showMessage("请选择工单单号"); |
| | | return; |
| | | } |
| | | |
| | | this.$post({ |
| | | url: "/XJ/save", |
| | | data: { |
| | | from: this.formData, |
| | | userNo: this.$loginInfo.account, |
| | | items: this.tableData |
| | | } |
| | | }).then(res => { |
| | | this.formData.id = res.data.tbBillList; |
| | | this.$showMessage("生成检验项目成功"); |
| | | this.init(); |
| | | this.isUpdate = false; |
| | | }); |
| | | }, |
| | | const saveData = { |
| | | ReleaseNo: this.formData.releaseNo, |
| | | ItemNo: this.formData.itemNo, |
| | | BillNo: this.formData.billNo, |
| | | DepartmentId: this.selectedDepartment, // 只使用部门ID |
| | | WorkShop: null, // 明确设置为null,避免数据库字段错误 |
| | | ItemId: this.formData.daa002, // 使用工单中的产品ID |
| | | PlanQty: this.formData.planQty, |
| | | CreateBy: this.formData.createBy, |
| | | CreateDate: this.formData.createDate, |
| | | FcheckDate: new Date(), |
| | | Remarks: this.formData.remarks || "" |
| | | }; |
| | | |
| | | // 调试信息 |
| | | console.log("创建检验单数据:", { |
| | | formData: this.formData, |
| | | selectedDepartment: this.selectedDepartment, |
| | | WORKSHOP: this.WORKSHOP, |
| | | saveData: saveData, |
| | | tableData: this.tableData |
| | | }); |
| | | |
| | | this.$post({ |
| | | url: "/XJ/save", |
| | | data: { |
| | | from: saveData, |
| | | userNo: this.$loginInfo.account, |
| | | items: this.tableData |
| | | } |
| | | }).then(res => { |
| | | if (res.data.tbBillList) { |
| | | this.formData.id = res.data.tbBillList; |
| | | |
| | | // 如果返回了完整的检验项目信息,更新tableData |
| | | if (res.data.xjDto && res.data.xjDto.items) { |
| | | this.tableData = res.data.xjDto.items; |
| | | } |
| | | |
| | | this.$showMessage("创建检验单并生成默认值成功"); |
| | | this.isUpdate = false; |
| | | |
| | | // 更新formData的其他字段 |
| | | this.formData = { ...this.formData, ...saveData }; |
| | | } else { |
| | | this.$showMessage("创建检验单失败,请检查数据"); |
| | | } |
| | | }).catch(err => { |
| | | console.error("创建检验单错误:", err); |
| | | this.$showMessage("创建检验单失败:" + (err.message || "未知错误")); |
| | | }); |
| | | }, |
| | | |
| | | // 加载部门列表 |
| | | loadDepartments() { |
| | |
| | | this.DAA020Index = event.mp.detail.value; |
| | | |
| | | this.lineNo = this.lineList[this.DAA020Index].lineNo; |
| | | // 设置线体编号到formData |
| | | this.formData.daa020 = this.lineList[this.DAA020Index].lineName; |
| | | |
| | | this.$post({ |
| | | url: "/XJ/getDaa001", |
| | | url: "/XJ/getWorkOrderWithItem", // 调用新的API获取工单详细信息 |
| | | data: { |
| | | daa020: this.lineNo |
| | | } |
| | | }).then(res => { |
| | | //填充工单号的数据源 |
| | | this.schemeResult = res.data.tbBillList; |
| | | this.DAA001List = this.schemeResult.map(s => s.Daa001); |
| | | this.DAA001List = this.schemeResult.map(s => s.daa001); // 修改为小写 |
| | | //变为默认空值的状态 |
| | | this.DAA001Index = -1; |
| | | |
| | | this.formData.billNo = ""; |
| | | // 清空物料信息 |
| | | this.formData.itemNo = ""; |
| | | this.formData.itemName = ""; |
| | | this.formData.itemModel = ""; |
| | | this.formData.planQty = ""; |
| | | this.tableData = []; |
| | | }) |
| | | |
| | | }, |
| | |
| | | onDaa001Change(event) { |
| | | this.DAA001Index = event.mp.detail.value; |
| | | const selectedWorkOrder = this.schemeResult[this.DAA001Index]; |
| | | this.formData.billNo = selectedWorkOrder.Daa001; |
| | | this.formData.planQty = selectedWorkOrder.Daa008; |
| | | |
| | | // 设置工单信息 |
| | | this.formData.billNo = selectedWorkOrder.daa001; // 修改为小写 |
| | | this.formData.planQty = selectedWorkOrder.daa008; // 修改为小写 |
| | | this.formData.daa002 = selectedWorkOrder.daa002; // 设置产品ID |
| | | |
| | | // 从工单数据中获取物料信息 |
| | | this.formData.itemNo = selectedWorkOrder.ItemNo; // 物料编码 |
| | | this.formData.itemName = selectedWorkOrder.ItemName; // 物料名称 |
| | | this.formData.itemModel = selectedWorkOrder.ItemModel; // 规格型号 |
| | | this.formData.itemNo = selectedWorkOrder.itemNo; // 修改为小写 |
| | | this.formData.itemName = selectedWorkOrder.itemName; // 修改为小写 |
| | | this.formData.itemModel = selectedWorkOrder.itemModel; // 修改为小写 |
| | | |
| | | // 获取检验项目 |
| | | this.$post({ |
| | |
| | | this.isSubmit = true; |
| | | this.tableData = []; |
| | | } |
| | | }).catch(err => { |
| | | console.error("获取检验项目错误:", err); |
| | | this.$showMessage("获取检验项目失败"); |
| | | this.tableData = []; |
| | | }); |
| | | }, |
| | | init() { |
| | | this.$post({ |
| | | url: "/XJ/getPage", |
| | | data: { |
| | | id: this.formData.id, |
| | | pageIndex: 1, |
| | | limit: 1, |
| | | } |
| | | }).then(res => { |
| | | let data = res.data.tbBillList[0]; |
| | | if (data) { |
| | | this.formData = data; |
| | | |
| | | this.$post({ |
| | | url: "/XJ/getJYItem", |
| | | data: { |
| | | pid: this.formData.id |
| | | } |
| | | }).then(res1 => { |
| | | let tableData = res1.data.tbBillList |
| | | //当已检验个数都不为空时按照检测结构排序 |
| | | tableData.sort((a, b) => { |
| | | if (a.result === '未完成' && b.result === '合格') { |
| | | return -1; |
| | | } else if (a.result === '合格' && b.result === '未完成') { |
| | | return 1; |
| | | } else { |
| | | return 0; |
| | | } |
| | | }); |
| | | this.tableData = tableData; |
| | | if (this.tableData.length === 0) { |
| | | this.isShowTable = true; |
| | | } |
| | | }) |
| | | } |
| | | }); |
| | | }, |
| | | init() { |
| | | this.$post({ |
| | | url: "/XJ/getPage", |
| | | data: { |
| | | id: this.formData.id, |
| | | pageIndex: 1, |
| | | limit: 1, |
| | | } |
| | | }).then(res => { |
| | | let data = res.data.tbBillList[0]; |
| | | if (data) { |
| | | this.formData = data; |
| | | |
| | | // 不再根据fsubmit字段修改isUpdate状态 |
| | | // 而是通过按钮的v-if条件来控制显示 |
| | | |
| | | this.$post({ |
| | | url: "/XJ/getJYItem", |
| | | data: { |
| | | pid: this.formData.id |
| | | } |
| | | }).then(res1 => { |
| | | let tableData = res1.data.tbBillList |
| | | //当已检验个数都不为空时按照检测结构排序 |
| | | tableData.sort((a, b) => { |
| | | if (a.result === '未完成' && b.result === '合格') { |
| | | return -1; |
| | | } else if (a.result === '合格' && b.result === '未完成') { |
| | | return 1; |
| | | } else { |
| | | return 0; |
| | | } |
| | | }); |
| | | this.tableData = tableData; |
| | | if (this.tableData.length === 0) { |
| | | this.isShowTable = true; |
| | | } |
| | | }) |
| | | } |
| | | }); |
| | | }, |
| | | toDetail(item) { |
| | | if (this.isUpdate) { |
| | | uni.showToast({ |