Browse Source

更新

master
常熟吴彦祖 4 weeks ago
parent
commit
a17676bca2
  1. 2
      src/views/modules/order/com_poOrderDetail.vue
  2. 51
      src/views/modules/order/poOrder.vue
  3. 69
      src/views/modules/order/poOrderAdvancedQueryConfig.js
  4. 10
      src/views/modules/order/poOrder_search.vue

2
src/views/modules/order/com_poOrderDetail.vue

@ -37,7 +37,7 @@
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item label="Item">
<el-form-item label="Part No">
<el-input v-model="detailData.partNo" disabled />
</el-form-item>
</el-col>

51
src/views/modules/order/poOrder.vue

@ -14,7 +14,7 @@
</el-select>
</el-form-item>
<el-form-item>
<span style="cursor: pointer" slot="label" @click="openSearchBaseList(2017)"><a href="javascript:void(0)">物料编号</a></span>
<span style="cursor: pointer" slot="label" @click="openSearchBaseList(2017)"><a href="javascript:void(0)">Part No</a></span>
<el-input v-model="searchData.partNo" clearable style="width: 120px" @keyup.enter.native="handleSearch"></el-input>
</el-form-item>
<el-form-item>
@ -322,7 +322,7 @@
<el-col :span="6"><el-form-item label="V_Short_Office"><el-input v-model="addForm.shortOffice" disabled /></el-form-item></el-col>
<el-col :span="6"><el-form-item label="V_Short_NPC"><el-input v-model="addForm.shortNpc" disabled /></el-form-item></el-col>
<el-col :span="6">
<el-form-item label="Item" required>
<el-form-item label="Part No" required>
<el-input v-model="addForm.partNo" readonly placeholder="请选择物料"
@click.native="openAddPartNoSelect">
<i slot="suffix" class="el-icon-search" style="cursor:pointer" @click.stop="openAddPartNoSelect"></i>
@ -331,12 +331,13 @@
</el-col>
</el-row>
<el-row :gutter="12">
<el-col :span="6"><el-form-item label="Item"><el-input v-model="addForm.item" disabled /></el-form-item></el-col>
<el-col :span="6"><el-form-item label="Category"><el-input v-model="addForm.categoryName" disabled /></el-form-item></el-col>
<el-col :span="6"><el-form-item label="SKU"><el-input v-model="addForm.sku" disabled /></el-form-item></el-col>
<el-col :span="6"><el-form-item label="Unit Price" required><el-input v-model="addForm.price" type="number" @input="recalcAddFormValue" /></el-form-item></el-col>
<el-col :span="6"><el-form-item label="PO Qty" required><el-input v-model="addForm.qty" type="number" @input="recalcAddFormValue" /></el-form-item></el-col>
</el-row>
<el-row :gutter="12">
<el-col :span="6"><el-form-item label="PO Qty" required><el-input v-model="addForm.qty" type="number" @input="recalcAddFormValue" /></el-form-item></el-col>
<el-col :span="6"><el-form-item label="PO Value"><el-input v-model="addForm.value" disabled /></el-form-item></el-col>
</el-row>
<el-row :gutter="12">
@ -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/partNoVendor NameCustomerBuyerPO_No 仅已下达
* 当前行该列是否可编辑列配置 editAble + 状态限制Part NoVendor NameCustomerBuyerPO_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)) {

69
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' }
]

10
src/views/modules/order/poOrder_search.vue

@ -15,7 +15,7 @@
</el-select>
</el-form-item>
<el-form-item>
<span style="cursor: pointer" slot="label" @click="openSearchBaseList(2017)"><a href="javascript:void(0)">物料编号</a></span>
<span style="cursor: pointer" slot="label" @click="openSearchBaseList(2017)"><a href="javascript:void(0)">Part No</a></span>
<el-input v-model="searchData.partNo" clearable style="width: 120px" @keyup.enter.native="handleSearch"></el-input>
</el-form-item>
<el-form-item>
@ -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,

Loading…
Cancel
Save