Browse Source

新品流程OK

master
常熟吴彦祖 1 week ago
parent
commit
87cb31cbef
  1. 5
      src/utils/supplierChooselistHelper.js
  2. 71
      src/views/modules/inspection/inspectionRequestList.vue
  3. 19
      src/views/modules/order/poOrder.vue
  4. 78
      src/views/modules/srmSupplier/supplierList.vue
  5. 6
      src/views/modules/sys/user-add-or-update.vue

5
src/utils/supplierChooselistHelper.js

@ -28,10 +28,11 @@ export function fetchSupplierDetail (supplierNo, site) {
export function resolveSupplierShortFieldsFromDetail (detail) {
if (!detail) {
return { shortOffice: '', shortNpc: '' }
return { shortOffice: '', shortNpc: '', planner: '' }
}
return {
shortOffice: detail.cshortOffice || detail.cShortOffice || detail.c_short_office || detail.shortOffice || '',
shortNpc: detail.cshortNpc || detail.cShortNpc || detail.c_short_npc || detail.shortNpc || ''
shortNpc: detail.cshortNpc || detail.cShortNpc || detail.c_short_npc || detail.shortNpc || '',
planner: detail.planner || detail.cPlanner || detail.c_planner || ''
}
}

71
src/views/modules/inspection/inspectionRequestList.vue

@ -10,6 +10,9 @@
<el-form-item label="供应商名称" class="search-item">
<el-input v-model="searchData.supplierName" style="width: 250px" @keyup.enter.native="getMainData"/>
</el-form-item>
<el-form-item label="Planner" class="search-item">
<el-input v-model="searchData.planner" style="width: 120px" @keyup.enter.native="getMainData"/>
</el-form-item>
<el-form-item label="申请日期" class="search-item">
<div class="date-range">
<el-date-picker v-model="searchData.requestDateStart" type="date" value-format="yyyy-MM-dd" placeholder="开始" style="width: 150px"/>
@ -287,6 +290,13 @@
style="width: 100px"
@keyup.enter.native="filterAddPoList"/>
</el-form-item>
<el-form-item label="Planner">
<el-input
v-model="addPoFilter.planner"
clearable
style="width: 100px"
@keyup.enter.native="filterAddPoList"/>
</el-form-item>
<el-form-item label=" ">
<el-button type="primary" size="medium" style="margin-top:13px;" @click="filterAddPoList">查询</el-button>
</el-form-item>
@ -309,6 +319,7 @@
<el-table-column prop="item" label="Item" header-align="center" align="left" min-width="100" show-overflow-tooltip/>
<el-table-column prop="sku" label="SKU" header-align="center" align="left" min-width="120" show-overflow-tooltip/>
<el-table-column prop="partDesc" label="物料名称" header-align="center" align="left" min-width="150" show-overflow-tooltip/>
<el-table-column prop="planner" label="Planner" header-align="center" align="left" min-width="120" show-overflow-tooltip/>
<el-table-column prop="qty" label="订单数量" header-align="center" align="right" width="80"/>
<el-table-column prop="waitInspectQty" label="未验货数量" header-align="center" align="right" width="80"/>
<el-table-column label="此次验货数量" header-align="center" align="center" width="150">
@ -469,6 +480,13 @@
style="width: 200px"
@keyup.enter.native="searchOrderSupplierByPo"/>
</el-form-item>
<el-form-item label="Planner">
<el-input
v-model="orderSupplierSearch.planner"
clearable
style="width: 140px"
@keyup.enter.native="searchOrderSupplierByPo"/>
</el-form-item>
<el-form-item label=" ">
<el-button type="primary" @click="searchOrderSupplierByPo">查询</el-button>
<el-button @click="resetOrderSupplierSearch">重置</el-button>
@ -487,6 +505,7 @@
:default-sort="{ prop: 'crd', order: 'descending' }">
<el-table-column prop="supplierNo" label="供应商编码" header-align="center" align="left" min-width="120" fixed="left" show-overflow-tooltip />
<el-table-column prop="supplierName" label="供应商名称" header-align="center" align="left" min-width="180" fixed="left" show-overflow-tooltip />
<el-table-column prop="planner" label="Planner" header-align="center" align="left" min-width="120" show-overflow-tooltip />
<el-table-column prop="orderRef1" label="PO号" header-align="center" align="center" min-width="120" show-overflow-tooltip />
<el-table-column prop="orderRef2" label="PO行号" header-align="center" align="center" min-width="80" show-overflow-tooltip />
<el-table-column prop="partNo" label="产品编码" header-align="center" align="left" min-width="140" show-overflow-tooltip />
@ -624,7 +643,8 @@ export default {
item: '',
sku: '',
partDesc: '',
supplierName: ''
supplierName: '',
planner: ''
},
selectedPoList: [],
poSupplierDialogVisible: false,
@ -651,7 +671,8 @@ export default {
item: '',
sku: '',
partDesc: '',
supplierName: ''
supplierName: '',
planner: ''
},
pendingAutoSelectPoRow: null,
//
@ -663,6 +684,7 @@ export default {
requestNo: '',
supplierNo: '',
supplierName: '',
planner: '',
status: '',
qcOperator: '',
createBy: '',
@ -771,6 +793,24 @@ export default {
status: true,
fixed: false
},
{
userId: this.$store.state.user.name,
functionId: this.functionId,
serialNumber: 'InspectionTable1Planner',
tableId: 'InspectionTable1',
tableName: '检验申请单',
columnProp: 'planner',
headerAlign: 'center',
align: 'left',
columnLabel: 'Planner',
columnWidth: '120',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: false
},
{
userId: this.$store.state.user.name,
functionId: this.functionId,
@ -1112,7 +1152,8 @@ export default {
item: '',
sku: '',
partDesc: '',
supplierName: ''
supplierName: '',
planner: ''
}
this.poSupplierDialogVisible = false
this.poSupplierLoading = false
@ -1138,7 +1179,8 @@ export default {
item: '',
sku: '',
partDesc: '',
supplierName: ''
supplierName: '',
planner: ''
}
this.pendingAutoSelectPoRow = null
if (this.$refs.addFormData) {
@ -1294,7 +1336,8 @@ export default {
item: '',
sku: '',
partDesc: '',
supplierName: ''
supplierName: '',
planner: ''
}
this.poSupplierDialogVisible = false
this.orderSupplierDialogVisible = false
@ -1357,7 +1400,8 @@ export default {
item: '',
sku: '',
partDesc: '',
supplierName: ''
supplierName: '',
planner: ''
}
this.loadOrderSupplierList()
},
@ -1379,7 +1423,8 @@ export default {
item: this.orderSupplierSearch.item || '',
sku: this.orderSupplierSearch.sku || '',
partDesc: this.orderSupplierSearch.partDesc || '',
supplierName: this.orderSupplierSearch.supplierName || ''
supplierName: this.orderSupplierSearch.supplierName || '',
planner: this.orderSupplierSearch.planner || ''
}
this.orderSupplierLoading = true
queryPoSupplierOrderPage(params).then(({ data }) => {
@ -1388,6 +1433,7 @@ export default {
...item,
supplierNo: item.supplierNo || item.supplier_no || '',
supplierName: item.supplierName || item.supplier_name || '',
planner: item.planner || '',
crd: item.crd ? String(item.crd).split(' ')[0] : ''
}))
this.orderSupplierList = list
@ -1430,7 +1476,8 @@ export default {
item: '',
sku: '',
partDesc: '',
supplierName: ''
supplierName: '',
planner: ''
}
this.orderSupplierPageIndex = 1
this.loadOrderSupplierList()
@ -1509,6 +1556,7 @@ export default {
...item,
supplierNo: item.supplierNo || item.supplier_no || this.addFormData.supplierNo || '',
supplierName: item.supplierName || item.supplier_name || this.addFormData.supplierName || '',
planner: item.planner || '',
inspectQty: item.waitInspectQty || 0, //
shipMethod: item.shipMethod || '',//
crd: item.crd ? item.crd.split(' ')[0] : ''
@ -1544,6 +1592,7 @@ export default {
const skuKeyword = (filter.sku || '').toLowerCase().trim()
const partDescKeyword = (filter.partDesc || '').toLowerCase().trim()
const supplierNameKeyword = (filter.supplierName || '').toLowerCase().trim()
const plannerKeyword = (filter.planner || '').toLowerCase().trim()
if (orderNoKeyword) {
result = result.filter(item => {
@ -1567,6 +1616,9 @@ export default {
if (supplierNameKeyword) {
result = result.filter(item => String(item.supplierName || '').toLowerCase().includes(supplierNameKeyword))
}
if (plannerKeyword) {
result = result.filter(item => String(item.planner || '').toLowerCase().includes(plannerKeyword))
}
this.filteredPoList = result
},
@ -1578,7 +1630,8 @@ export default {
item: '',
sku: '',
partDesc: '',
supplierName: ''
supplierName: '',
planner: ''
}
this.filterAddPoList()
},

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

@ -565,7 +565,7 @@ import ComPoOrderCustomerPicker from './com_poOrder_CustomerPicker.vue'
import ComPoOrderDynamicFieldRenderer from './com_poOrder_DynamicFieldRenderer.vue'
const ADD_CHOOSER_FIELD_CODES = new Set(['supplier_name', 'part_no', 'departure', 'destination', 'ship_via'])
const ADD_DISPLAY_ONLY_FIELD_CODES = new Set(['short_office', 'short_npc', 'item', 'category_name', 'sku', 'value', 'status', 'crd_ori'])
const ADD_DISPLAY_ONLY_FIELD_CODES = new Set(['short_office', 'short_npc', 'item', 'category_name', 'sku', 'value', 'status', 'planner', 'crd_ori'])
const ADD_TEXTAREA_FIELD_CODES = new Set(['remark'])
const ADD_FULL_ROW_FIELD_CODES = new Set(['remark'])
const ADD_NUMBER_FIELD_CODES = new Set(['price', 'qty', 'ship_qty', 'sum_price'])
@ -3266,12 +3266,13 @@ export default {
this.openEamList(SUPPLIER_CHOOSELIST_TAG, '', conSql, 'row', 'supplier')
},
applySupplierSelection (target, supplierNo, supplierName, shortOffice, shortNpc, markChanged) {
applySupplierSelection (target, supplierNo, supplierName, shortOffice, shortNpc, planner, markChanged) {
if (!target) return
this.$set(target, 'supplierName', supplierName)
this.$set(target, 'supplierNo', supplierNo)
this.$set(target, 'shortOffice', shortOffice)
this.$set(target, 'shortNpc', shortNpc)
this.$set(target, 'planner', planner || '')
if (markChanged) {
this.$set(target, 'changeFlag', 1)
}
@ -3281,10 +3282,18 @@ export default {
if (!target || !supplierNo) {
return Promise.resolve()
}
this.applySupplierSelection(target, supplierNo, supplierName, target.shortOffice || '', target.shortNpc || '', markChanged)
this.applySupplierSelection(
target,
supplierNo,
supplierName,
target.shortOffice || '',
target.shortNpc || '',
target.planner || '',
markChanged
)
return fetchSupplierDetail(supplierNo, this.$store.state.user.site).then(detail => {
const { shortOffice, shortNpc } = resolveSupplierShortFieldsFromDetail(detail)
this.applySupplierSelection(target, supplierNo, supplierName, shortOffice, shortNpc, markChanged)
const { shortOffice, shortNpc, planner } = resolveSupplierShortFieldsFromDetail(detail)
this.applySupplierSelection(target, supplierNo, supplierName, shortOffice, shortNpc, planner, markChanged)
}).catch(() => {})
},

78
src/views/modules/srmSupplier/supplierList.vue

@ -17,6 +17,9 @@
<el-option label="N" value="N"></el-option>
</el-select>
</el-form-item>
<el-form-item :label="'Planner:'">
<el-input v-model="searchData.planner" style="width: 130px"></el-input>
</el-form-item>
<el-form-item :label="' '" >
<el-button class="customer-bun-min" type="primary" @click="getMainData" style="">查询</el-button>
<el-button @click="addSupplier()" type="primary" style="margin-left: 2px">新增</el-button>
@ -190,18 +193,7 @@
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="供应商文档清单模板" prop="supplierDocType">
<el-select v-model="currentSupplier.supplierDocType" placeholder="请选择" filterable style="width: 100%">
<el-option
v-for="item in supplierDocTypeOptions"
:key="item"
:label="item"
:value="item">
</el-option>
</el-select>
</el-form-item>
</el-col>
<!-- <el-col :span="6">-->
<!-- <el-form-item label="供应商等级">-->
<!-- <el-input v-model="currentSupplier.abc"></el-input>-->
@ -210,13 +202,19 @@
<el-col :span="6">
<el-form-item>
<span style="cursor: pointer" slot="label" @click="getBaseList(529, 'buyer')"><a href="#">采购员</a></span>
<el-input v-model="currentSupplier.buyer" style="width: 130px"></el-input>
<el-input v-model="currentSupplier.buyer" readonly style="width: 130px"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item>
<span style="cursor: pointer" slot="label" @click="getBaseList(528, 'sourcingStaff')"><a href="#">Sourcing专员</a></span>
<el-input v-model="currentSupplier.sourcingStaff" style="width: 130px"></el-input>
<el-input v-model="currentSupplier.sourcingStaff" readonly style="width: 130px"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item>
<span style="cursor: pointer" slot="label" @click="getBaseList(530, 'planner')"><a href="#">Planner</a></span>
<el-input v-model="currentSupplier.planner" readonly style="width: 130px"></el-input>
</el-form-item>
</el-col>
</el-row>
@ -224,6 +222,18 @@
<div class="form-section">
<el-row :gutter="24">
<el-col :span="6">
<el-form-item label="供应商文档清单模板" prop="supplierDocType">
<el-select v-model="currentSupplier.supplierDocType" placeholder="请选择" filterable style="width: 100%">
<el-option
v-for="item in supplierDocTypeOptions"
:key="item"
:label="item"
:value="item">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item>
<span style="cursor: pointer" slot="label" @click="getBaseList(522)"><a href="#">税率编号</a></span>
@ -392,6 +402,7 @@ export default {
taxCode:'',
paymentTerm:'',
deliveryTerm:'',
planner: '',
site: this.$store.state.user.site,
page: 1,
limit: 10
@ -400,7 +411,7 @@ export default {
pageSize: 50,
totalPage: 0,
tagNo: '',
currentFieldType: '', // 'buyer' 'sourcingStaff'
currentFieldType: '', // 'buyer' / 'sourcingStaff' / 'planner'
mainDataList: [],
supplierGroupRequestList: [],
supplierDocTypeOptions: [],
@ -551,6 +562,24 @@ export default {
status: true,
fixed: false
},
{
userId: this.$store.state.user.name,
functionId: this.functionId,
serialNumber: '811001Table1Planner',
tableId: '811001Table1',
tableName: '供应商信息',
columnProp: 'planner',
headerAlign: 'center',
align: 'left',
columnLabel: 'Planner',
columnWidth: '120',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: false
},
{
userId: this.$store.state.user.name,
functionId: this.functionId,
@ -1181,6 +1210,7 @@ export default {
updateDate: '',
updateBy: '',
memo:'',
planner: '',
site: this.$store.state.user.site,
},
supplierRules: {
@ -1267,6 +1297,11 @@ export default {
// Druid where 1=1
conSql = " and username <> '' "
}
if (val === 530 && type === 'planner'){
strVal = this.currentSupplier.planner || ''
// Druid where 1=1 tagNo=530 SQLCode
conSql = " and username <> '' "
}
console.log('getBaseList调用:', { val, type, strVal, conSql })
this.$refs.baseList.init(val, strVal, conSql)
@ -1314,6 +1349,10 @@ export default {
this.currentSupplier.sourcingStaff = val.UserName
console.log('Sourcing专员赋值:', this.currentSupplier.sourcingStaff)
}
if (this.tagNo === 530 && this.currentFieldType === 'planner') {
this.currentSupplier.planner = val.UserName || val.userName || val.username || ''
console.log('Planner赋值:', this.currentSupplier.planner)
}
},
// - rqrq
loadSupplierDocTypeOptions () {
@ -1549,6 +1588,7 @@ export default {
updateDate: '',
updateBy: '',
memo:'',
planner: '',
site: this.$store.state.user.site,
}
this.loadSupplierDocTypeOptions()
@ -1561,7 +1601,13 @@ export default {
return
}
this.isAdd = false
this.currentSupplier = {...this.currentRow}
this.currentSupplier = {
...this.currentRow,
// 使 user_display
buyer: this.currentRow.buyerAccount || this.currentRow.buyer || '',
sourcingStaff: this.currentRow.sourcingStaffAccount || this.currentRow.sourcingStaff || '',
planner: this.currentRow.plannerAccount || this.currentRow.planner || ''
}
this.loadSupplierDocTypeOptions()
this.supplierDialogVisible = true
},

6
src/views/modules/sys/user-add-or-update.vue

@ -20,7 +20,7 @@
</el-form-item>
</el-form>
<el-form>
<el-form-item :label="buttons.userDisplay||'用户名'" prop="email">
<el-form-item :label="buttons.userDisplay||'用户名'" prop="userDisplay">
<el-input v-model="dataForm.userDisplay" style="width: 150px;" ></el-input>
</el-form-item>
<el-form-item :label="buttons.email||'邮箱'" prop="email">
@ -269,6 +269,10 @@ export default {
this.$message.warning('请选择工厂')
return
}
if (!this.dataForm.userDisplay || !String(this.dataForm.userDisplay).trim()) {
this.$message.warning('用户名不能为空')
return
}
if (this.showSupplierPicker && !this.dataForm.supplierNo) {
this.$message.warning('请选择供应商')
return

Loading…
Cancel
Save