diff --git a/src/views/modules/order/com_poOrderDetail.vue b/src/views/modules/order/com_poOrderDetail.vue index 841b32c..6ef8704 100644 --- a/src/views/modules/order/com_poOrderDetail.vue +++ b/src/views/modules/order/com_poOrderDetail.vue @@ -37,7 +37,7 @@ - + diff --git a/src/views/modules/order/poOrder.vue b/src/views/modules/order/poOrder.vue index 4a13748..c6a624e 100644 --- a/src/views/modules/order/poOrder.vue +++ b/src/views/modules/order/poOrder.vue @@ -14,7 +14,7 @@ - 物料编号 + Part No @@ -322,7 +322,7 @@ - + @@ -331,12 +331,13 @@ + - + @@ -499,7 +500,7 @@ export default { /** Chooselist 弹窗选择列(editAble 可为 false,如供应商/物料) */ chooserEditColumnProps: ['supplierName', 'partNo', 'departure', 'destination', 'shipVia'], /** 联表展示、不写入 PO 的列 */ - displayOnlyColumnProps: ['shortOffice', 'shortNpc', 'categoryName', 'sku'], + displayOnlyColumnProps: ['shortOffice', 'shortNpc', 'item', 'categoryName', 'sku'], customEditColumnProps: [], // 上传相关 @@ -728,7 +729,7 @@ export default { columnProp: 'partNo', headerAlign: 'center', align: 'center', - columnLabel: 'Item', + columnLabel: 'Part No', columnHidden: false, columnImage: false, columnSortable: false, @@ -742,6 +743,29 @@ export default { selectOptionsKey: 'poPartNoOptions', selectOptions: null }, + { + userId: this.$store.state.user.name, + functionId: 812003, + serialNumber: '812003Table1Item', + tableId: '812003Table1', + tableName: 'PO Order', + columnProp: 'item', + headerAlign: 'center', + align: 'center', + columnLabel: 'Item', + columnHidden: false, + columnImage: false, + columnSortable: false, + sortLv: 0, + status: true, + fixed: '', + columnWidth: 120, + showOverflowTooltip: true, + editAble: false, + editType: 'text', + selectOptionsKey: '', + selectOptions: null + }, { userId: this.$store.state.user.name, functionId: 812003, @@ -1543,7 +1567,7 @@ export default { }, /** - * 当前行该列是否可编辑:列配置 editAble + 状态限制(Item/partNo、Vendor Name、Customer、Buyer、PO_No 仅已下达) + * 当前行该列是否可编辑:列配置 editAble + 状态限制(Part No、Vendor Name、Customer、Buyer、PO_No 仅已下达) */ canEditCell (row, item) { if (!this.editMode || !item) return false @@ -1844,7 +1868,8 @@ export default { if (selectedOption) { // 更新物料相关信息 - this.$set(row, 'partNo', selectedOption.label) + this.$set(row, 'partNo', selectedOption.value) + this.$set(row, 'item', selectedOption.item || '') //同时更新 category 和 sku this.$set(row, 'category', selectedOption.category || '') this.$set(row, 'categoryName', selectedOption.categoryName || '') @@ -1964,6 +1989,7 @@ export default { this.poPartNoOptions = (data.rows || []).map(item => ({ label: item.partNo, value: item.partNo, + item: item.item, category: item.category, categoryName: item.categoryName, sku: item.sku @@ -2047,6 +2073,7 @@ export default { enquiry: row.enquiry, confirmed: row.confirmed, partNo: row.partNo, + item: row.item, status: row.status, qty: row.qty === '' ? null : Number(row.qty), price: row.price === '' ? null : Number(row.price), @@ -2252,19 +2279,20 @@ export default { fillPartCategorySku (partNo, target) { if (!partNo || !target) return - const apply = (category, categoryName, sku) => { + const apply = (item, category, categoryName, sku) => { + this.$set(target, 'item', item) this.$set(target, 'category', category) this.$set(target, 'categoryName', categoryName) this.$set(target, 'sku', sku) } const fromList = this.poPartNoOptions.find(opt => opt.value === partNo) if (fromList) { - apply(fromList.category || '', fromList.categoryName || '', fromList.sku || '') + apply(fromList.item || '', fromList.category || '', fromList.categoryName || '', fromList.sku || '') return } searchPartInfo({ site: this.$store.state.user.site, partNo }).then(({ data }) => { if (data && data.code === 0 && data.data) { - apply(data.data.category || '', data.data.categoryName || '', data.data.sku || '') + apply(data.data.item || '', data.data.category || '', data.data.categoryName || '', data.data.sku || '') } }).catch(() => {}) }, @@ -2294,6 +2322,7 @@ export default { poNo: '', orderType: '采购订单', partNo: '', + item: '', category: '', categoryName: '', sku: '', @@ -2345,7 +2374,7 @@ export default { saveAddPoOrder () { if (!this.addForm.poNo || !this.addForm.supplierName || !this.addForm.partNo) { - this.$message.warning('请填写 PO No、Vendor Name、Item') + this.$message.warning('请填写 PO No、Vendor Name、Part No') return } if (!this.validatePriceAndQty(this.addForm.price, this.addForm.qty)) { diff --git a/src/views/modules/order/poOrderAdvancedQueryConfig.js b/src/views/modules/order/poOrderAdvancedQueryConfig.js index 1df2e99..4ad7594 100644 --- a/src/views/modules/order/poOrderAdvancedQueryConfig.js +++ b/src/views/modules/order/poOrderAdvancedQueryConfig.js @@ -53,38 +53,39 @@ export const PO_ADVANCED_QUERY_FIELD_CONFIG = [ { sortOrder: 5, field: 'supplierName', label: 'Vendor Name', sqlColumn: 'ss.supplier_name', dataType: 'string' }, { sortOrder: 6, field: 'shortOffice', label: 'V_Short_Office', sqlColumn: 'ss.c_short_office', dataType: 'string' }, { sortOrder: 7, field: 'shortNpc', label: 'V_Short_NPC', sqlColumn: 'ss.c_short_npc', dataType: 'string' }, - { sortOrder: 8, field: 'partNo', label: 'Item', sqlColumn: 'pod.part_no', dataType: 'string' }, - { sortOrder: 9, field: 'categoryName', label: 'Category', sqlColumn: 'pf1.family_name', dataType: 'string' }, - { sortOrder: 10, field: 'sku', label: 'SKU', sqlColumn: 'p.sku', dataType: 'string' }, - { sortOrder: 11, field: 'price', label: 'Unit Price', sqlColumn: 'pod.price', dataType: 'number' }, - { sortOrder: 12, field: 'qty', label: 'PO Qty', sqlColumn: 'pod.qty', dataType: 'number' }, - { sortOrder: 13, field: 'value', label: 'PO Value', sqlColumn: 'pod.c_value', dataType: 'number' }, - { sortOrder: 14, field: 'shipQty', label: 'A-Qty', sqlColumn: 'pod.c_ship_qty', dataType: 'number' }, - { sortOrder: 15, field: 'sumPrice', label: 'A-Value', sqlColumn: 'pod.c_sum_price', dataType: 'number' }, - { sortOrder: 16, field: 'departure', label: 'Departure Port', sqlColumn: 'poh.c_departure', dataType: 'string' }, - { sortOrder: 17, field: 'destination', label: 'Destination Port', sqlColumn: 'poh.c_destination', dataType: 'string' }, - { sortOrder: 18, field: 'shipVia', label: 'Method', sqlColumn: 'poh.ship_via', dataType: 'string' }, - { sortOrder: 19, field: 'orderDate', label: 'Buyer Release Date', sqlColumn: 'poh.order_date', dataType: 'date' }, - { sortOrder: 20, field: 'enquiry', label: 'Planner Release Date', sqlColumn: 'poh.c_enquiry', dataType: 'date' }, - { sortOrder: 21, field: 'status', label: 'Status', sqlColumn: 'pod.status', dataType: 'string' }, - { sortOrder: 22, field: 'confirmed', label: 'PI Confirmed Date', sqlColumn: 'poh.c_confirmed', dataType: 'date' }, - { sortOrder: 23, field: 'wantReceiveDate', label: 'Original Arrival Date', sqlColumn: 'pod.want_receive_date', dataType: 'date' }, - { sortOrder: 24, field: 'narrival', label: 'Final Confirmed Arrival Date', sqlColumn: 'pod.c_narrival', dataType: 'date' }, - { sortOrder: 25, field: 'crd', label: 'PI Confirmed CRD', sqlColumn: 'pod.c_crd', dataType: 'date' }, - { sortOrder: 26, field: 'inspection', label: 'Inspection Date', sqlColumn: 'pod.c_inspection', dataType: 'date' }, - { sortOrder: 27, field: 'realCrd', label: 'Actual Completion Date', sqlColumn: 'pod.c_real_crd', dataType: 'date' }, - { sortOrder: 28, field: 'eta', label: 'ETA', sqlColumn: 'pod.c_eta', dataType: 'date' }, - { sortOrder: 29, field: 'flexid', label: 'Flexport Id', sqlColumn: 'pod.c_flexid', dataType: 'string' }, - { sortOrder: 30, field: 'obd', label: 'On Board Date', sqlColumn: 'pod.c_obd', dataType: 'date' }, - { sortOrder: 31, field: 'docSent', label: 'Doc Sent', sqlColumn: 'pod.c_doc_sent', dataType: 'string' }, - { sortOrder: 32, field: 'telexRelease', label: 'Telex Release', sqlColumn: 'pod.c_telex_release', dataType: 'string' }, - { sortOrder: 33, field: 'advancePayment', label: 'Advance Payment', sqlColumn: 'pod.c_advance_payment', dataType: 'string' }, - { sortOrder: 34, field: 'advancePaid', label: 'Advanc Paid', sqlColumn: 'pod.c_advance_paid', dataType: 'string' }, - { sortOrder: 35, field: 'createTime', label: 'Create Date', sqlColumn: 'pod.create_time', dataType: 'date' }, - { sortOrder: 36, field: 'planner', label: 'M-Planner', sqlColumn: 'pod.c_planner', dataType: 'string' }, - { sortOrder: 37, field: 'edit', label: 'Edit Date', sqlColumn: 'pod.c_edit', dataType: 'string' }, - { sortOrder: 38, field: 'endPlanner', label: 'Last Editor', sqlColumn: 'pod.c_end_planner', dataType: 'string' }, - { sortOrder: 39, field: 'remarkDelay', label: 'Remark Delay', sqlColumn: 'pod.c_remark_delay', dataType: 'string' }, - { sortOrder: 40, field: 'remark', label: 'Comments', sqlColumn: 'pod.remark', dataType: 'string' }, - { sortOrder: 41, field: 'inspectionCompletedQty', label: 'Inspection Completed Qty', sqlColumn: 'COALESCE(pod.inspect_approve_qty, 0)', dataType: 'number' } + { sortOrder: 8, field: 'partNo', label: 'Part No', sqlColumn: 'pod.part_no', dataType: 'string' }, + { sortOrder: 9, field: 'item', label: 'Item', sqlColumn: 'COALESCE(p.item, pod.item)', dataType: 'string' }, + { sortOrder: 10, field: 'categoryName', label: 'Category', sqlColumn: 'pf1.family_name', dataType: 'string' }, + { sortOrder: 11, field: 'sku', label: 'SKU', sqlColumn: 'p.sku', dataType: 'string' }, + { sortOrder: 12, field: 'price', label: 'Unit Price', sqlColumn: 'pod.price', dataType: 'number' }, + { sortOrder: 13, field: 'qty', label: 'PO Qty', sqlColumn: 'pod.qty', dataType: 'number' }, + { sortOrder: 14, field: 'value', label: 'PO Value', sqlColumn: 'pod.c_value', dataType: 'number' }, + { sortOrder: 15, field: 'shipQty', label: 'A-Qty', sqlColumn: 'pod.c_ship_qty', dataType: 'number' }, + { sortOrder: 16, field: 'sumPrice', label: 'A-Value', sqlColumn: 'pod.c_sum_price', dataType: 'number' }, + { sortOrder: 17, field: 'departure', label: 'Departure Port', sqlColumn: 'poh.c_departure', dataType: 'string' }, + { sortOrder: 18, field: 'destination', label: 'Destination Port', sqlColumn: 'poh.c_destination', dataType: 'string' }, + { sortOrder: 19, field: 'shipVia', label: 'Method', sqlColumn: 'poh.ship_via', dataType: 'string' }, + { sortOrder: 20, field: 'orderDate', label: 'Buyer Release Date', sqlColumn: 'poh.order_date', dataType: 'date' }, + { sortOrder: 21, field: 'enquiry', label: 'Planner Release Date', sqlColumn: 'poh.c_enquiry', dataType: 'date' }, + { sortOrder: 22, field: 'status', label: 'Status', sqlColumn: 'pod.status', dataType: 'string' }, + { sortOrder: 23, field: 'confirmed', label: 'PI Confirmed Date', sqlColumn: 'poh.c_confirmed', dataType: 'date' }, + { sortOrder: 24, field: 'wantReceiveDate', label: 'Original Arrival Date', sqlColumn: 'pod.want_receive_date', dataType: 'date' }, + { sortOrder: 25, field: 'narrival', label: 'Final Confirmed Arrival Date', sqlColumn: 'pod.c_narrival', dataType: 'date' }, + { sortOrder: 26, field: 'crd', label: 'PI Confirmed CRD', sqlColumn: 'pod.c_crd', dataType: 'date' }, + { sortOrder: 27, field: 'inspection', label: 'Inspection Date', sqlColumn: 'pod.c_inspection', dataType: 'date' }, + { sortOrder: 28, field: 'realCrd', label: 'Actual Completion Date', sqlColumn: 'pod.c_real_crd', dataType: 'date' }, + { sortOrder: 29, field: 'eta', label: 'ETA', sqlColumn: 'pod.c_eta', dataType: 'date' }, + { sortOrder: 30, field: 'flexid', label: 'Flexport Id', sqlColumn: 'pod.c_flexid', dataType: 'string' }, + { sortOrder: 31, field: 'obd', label: 'On Board Date', sqlColumn: 'pod.c_obd', dataType: 'date' }, + { sortOrder: 32, field: 'docSent', label: 'Doc Sent', sqlColumn: 'pod.c_doc_sent', dataType: 'string' }, + { sortOrder: 33, field: 'telexRelease', label: 'Telex Release', sqlColumn: 'pod.c_telex_release', dataType: 'string' }, + { sortOrder: 34, field: 'advancePayment', label: 'Advance Payment', sqlColumn: 'pod.c_advance_payment', dataType: 'string' }, + { sortOrder: 35, field: 'advancePaid', label: 'Advanc Paid', sqlColumn: 'pod.c_advance_paid', dataType: 'string' }, + { sortOrder: 36, field: 'createTime', label: 'Create Date', sqlColumn: 'pod.create_time', dataType: 'date' }, + { sortOrder: 37, field: 'planner', label: 'M-Planner', sqlColumn: 'pod.c_planner', dataType: 'string' }, + { sortOrder: 38, field: 'edit', label: 'Edit Date', sqlColumn: 'pod.c_edit', dataType: 'string' }, + { sortOrder: 39, field: 'endPlanner', label: 'Last Editor', sqlColumn: 'pod.c_end_planner', dataType: 'string' }, + { sortOrder: 40, field: 'remarkDelay', label: 'Remark Delay', sqlColumn: 'pod.c_remark_delay', dataType: 'string' }, + { sortOrder: 41, field: 'remark', label: 'Comments', sqlColumn: 'pod.remark', dataType: 'string' }, + { sortOrder: 42, field: 'inspectionCompletedQty', label: 'Inspection Completed Qty', sqlColumn: 'COALESCE(pod.inspect_approve_qty, 0)', dataType: 'number' } ] diff --git a/src/views/modules/order/poOrder_search.vue b/src/views/modules/order/poOrder_search.vue index 148298f..8063a26 100644 --- a/src/views/modules/order/poOrder_search.vue +++ b/src/views/modules/order/poOrder_search.vue @@ -15,7 +15,7 @@ - 物料编号 + Part No @@ -224,6 +224,14 @@ export default { }, { columnProp: 'partNo', + columnLabel: 'Part No', + align: 'center', + columnWidth: 120, + showOverflowTooltip: true, + headerAlign: 'center' + }, + { + columnProp: 'item', columnLabel: 'Item', align: 'center', columnWidth: 120,