diff --git a/src/i18n/locales/labelSetting/cnLabelSetting.js b/src/i18n/locales/labelSetting/cnLabelSetting.js
index 0fa1fc5..8c0c56f 100644
--- a/src/i18n/locales/labelSetting/cnLabelSetting.js
+++ b/src/i18n/locales/labelSetting/cnLabelSetting.js
@@ -376,6 +376,8 @@ export default {
showDecimalPlaces: '整数显示小数位',
thousandsSeparator: '千位分隔符',
roundHalfUp: '四舍五入',
+ fixedDigits: '固定位数',
+ fixedDigitsPlaceholder: '例如 6 -> 000200',
dataSource: '数据源',
fieldValue: '字段值',
currentDate: '当前日期',
diff --git a/src/i18n/locales/labelSetting/enLabelSetting.js b/src/i18n/locales/labelSetting/enLabelSetting.js
index 4b1998e..1b7d3c8 100644
--- a/src/i18n/locales/labelSetting/enLabelSetting.js
+++ b/src/i18n/locales/labelSetting/enLabelSetting.js
@@ -133,6 +133,7 @@ export default {
bold: 'Bold', autoWrap: 'Auto wrap', italic: 'Italic', underline: 'Underline', characterSpacing: 'Character spacing:',
textWidthMm: 'Text width (mm)', textLines: 'Text lines', decimalPlaces: 'Decimal places',
showDecimalPlaces: 'Show decimals for integers', thousandsSeparator: 'Thousands separator', roundHalfUp: 'Round half up',
+ fixedDigits: 'Fixed digits', fixedDigitsPlaceholder: 'Leave empty to disable, e.g. 6 -> 000200',
dataSource: 'Data source', fieldValue: 'Field value', currentDate: 'Current date', extractType: 'Extraction type',
fullDate: 'Full date', extractYear: 'Year', extractMonth: 'Month', extractDay: 'Day', extractWeek: 'Week',
extractWeekday: 'Weekday', dateOffset: 'Day offset', firstDayOfWeek: 'First day of week', firstDayWeekday: 'Weekday of first day',
diff --git a/src/views/modules/haianWarehouse/shopOrderIssueNotify/ShopOrderIssueNotify54.vue b/src/views/modules/haianWarehouse/shopOrderIssueNotify/ShopOrderIssueNotify54.vue
index a4934e8..7d30f47 100644
--- a/src/views/modules/haianWarehouse/shopOrderIssueNotify/ShopOrderIssueNotify54.vue
+++ b/src/views/modules/haianWarehouse/shopOrderIssueNotify/ShopOrderIssueNotify54.vue
@@ -167,6 +167,27 @@
关闭
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 选择
+
+
+
+
+ 关闭
+
+
@@ -734,7 +755,7 @@ export default {
fixed: false,
columnWidth: 100,
},
- /* {
+ {
userId: this.$store.state.user.name,
functionId: 555001,
serialNumber: '555001Table2ReleaseNo',
@@ -769,7 +790,7 @@ export default {
status: true,
fixed: false,
columnWidth: 80,
- }, */
+ },
{
userId: this.$store.state.user.name,
functionId: 555001,
@@ -788,16 +809,16 @@ export default {
fixed: false,
columnWidth: 70,
},
- /* {
+ {
userId: this.$store.state.user.name,
functionId: 555001,
- serialNumber: '555001Table2Contract',
+ serialNumber: '555001Table2SubSite',
tableId: '555001Table2',
tableName: '查询工单及物料',
- columnProp: 'contract',
+ columnProp: 'subSite',
headerAlign: 'center',
align: 'center',
- columnLabel: '合同',
+ columnLabel: 'Site',
columnHidden: false,
columnImage: false,
columnSortable: false,
@@ -805,7 +826,7 @@ export default {
status: true,
fixed: false,
columnWidth: 100,
- }, */
+ },
{
userId: this.$store.state.user.name,
functionId: 555001,
@@ -1433,6 +1454,9 @@ export default {
chooseLoading: false,
seqNoModalLoading: false,
saveNewLoading: false,
+ // 多site工单候选列表(contract区分)- rqrq
+ shopOrderSiteSelectFlag: false,
+ shopOrderCandidateList: [],
}
},
@@ -1771,7 +1795,7 @@ export default {
chooseSOSModal() {
this.seqNoData = {
- site: this.$store.state.user.site,
+ site: this.$store.state.user.site+'%',
orderNo: '',
releaseNo: '*',
sequenceNo: '*',
@@ -1784,9 +1808,11 @@ export default {
endDate: this.dayjs().format('YYYY-MM-DD'),
}
this.seqNoList = []
+ this.shopOrderCandidateList = []
+ this.shopOrderSiteSelectFlag = false
this.seqNoModalFlag = true
},
- // 海安工单物料拉取:IFS回传contract映射为subSite并透传到后续保存 - rqrq
+ // 先按site%查ShopOrder;唯一则用contract查物料,多site则弹窗选择 - rqrq
searchSOSRouting() {
if (!this.seqNoData.orderNo || !this.seqNoData.releaseNo || !this.seqNoData.sequenceNo) {
this.$message.warning('请输入完整的OrderNo/ReleaseNo/SequenceNo!')
@@ -1796,7 +1822,66 @@ export default {
return false
}
this.seqNoModalLoading = true
- haiAnGetShopOrderAndMaterialByShoporder(this.seqNoData)
+ let materialFetchStarted = false
+ const shopOrderQuery = {
+ ...this.seqNoData,
+ site: (this.$store.state.user.site || '') + '%',
+ }
+ haiAnGetShopOrderFromIFSWithOrderNo(shopOrderQuery)
+ .then(({ data }) => {
+ if (!(data && data.code === 0 && data.rows && data.rows.length > 0)) {
+ this.$message.error((data && data.msg) || '未查询到工单')
+ return
+ }
+ const allowedStatuses = ['Released', 'Reserved', 'Started']
+ const validOrders = data.rows.filter(item => allowedStatuses.includes(item.objstate))
+ if (data.rows.length > 0 && validOrders.length === 0) {
+ this.$message.error('生产订单' + this.seqNoData.orderNo + '状态不允许发料,请检查!')
+ return
+ }
+ if (validOrders.length === 1) {
+ // 唯一工单:loading交由物料查询方法接管 - rqrq
+ materialFetchStarted = true
+ return this.fetchShopOrderMaterial(validOrders[0])
+ }
+ // 多site:展示contract供用户选择后再查物料 - rqrq
+ this.shopOrderCandidateList = validOrders
+ this.shopOrderSiteSelectFlag = true
+ })
+ .catch((e) => {
+ this.$message.error((e && e.msg) || '查询工单失败')
+ })
+ .finally(() => {
+ if (!materialFetchStarted) {
+ this.seqNoModalLoading = false
+ }
+ })
+ },
+ // 用户选定具体site(contract)后拉取物料 - rqrq
+ confirmShopOrderSite(row) {
+ if (!row) {
+ return
+ }
+ this.shopOrderSiteSelectFlag = false
+ this.fetchShopOrderMaterial(row)
+ },
+ // 使用精确site(contract)调用ShopOrderMaterial链路,并映射subSite - rqrq
+ fetchShopOrderMaterial(shopOrder) {
+ const contract = (shopOrder && (shopOrder.contract || shopOrder.site)) || ''
+ if (!contract) {
+ this.seqNoModalLoading = false
+ this.$message.error('工单缺少Site(contract)信息,无法查询物料')
+ return Promise.resolve()
+ }
+ this.seqNoModalLoading = true
+ const materialQuery = {
+ ...this.seqNoData,
+ site: contract,
+ orderNo: (shopOrder && shopOrder.orderNo) || this.seqNoData.orderNo,
+ releaseNo: (shopOrder && shopOrder.releaseNo) || this.seqNoData.releaseNo,
+ sequenceNo: (shopOrder && shopOrder.sequenceNo) || this.seqNoData.sequenceNo,
+ }
+ return haiAnGetShopOrderAndMaterialByShoporder(materialQuery)
.then(({ data }) => {
if (data && data.code === 0 && data.rows && data.rows.length > 0) {
data.rows.forEach(newRow => {
@@ -1805,8 +1890,8 @@ export default {
const qtyReserved = parseFloat(newRow.qtyReserved) || 0
const applyQty = qtyRequired - qtyIssued - qtyReserved
this.$set(newRow, 'applyQty', applyQty > 0 ? applyQty : 0)
- // 明确subSite来源:IFS回传contract/site均视为subsite - rqrq
- this.$set(newRow, 'subSite', newRow.subSite || newRow.contract || newRow.site || '')
+ // 明确subSite来源:优先接口回传,其次选定工单的contract - rqrq
+ this.$set(newRow, 'subSite', newRow.subSite || newRow.contract || contract || newRow.site || '')
this.seqNoList.push(newRow)
})
this.$message.success(`成功添加 ${data.rows.length} 条数据`)
@@ -1815,7 +1900,7 @@ export default {
}
})
.catch((e) => {
- this.$message.error(e.msg || '查询失败')
+ this.$message.error((e && e.msg) || '查询失败')
})
.finally(() => {
this.seqNoModalLoading = false
diff --git a/src/views/modules/labelSetting/LabelDesigner.vue b/src/views/modules/labelSetting/LabelDesigner.vue
index 9edd8c7..9c7be44 100644
--- a/src/views/modules/labelSetting/LabelDesigner.vue
+++ b/src/views/modules/labelSetting/LabelDesigner.vue
@@ -463,7 +463,7 @@ export default {
const defaultElement = {reportId: '',
type: '', x: 0, y: 0, data: '', fontSize: 30, bold: false, newline: false, lineRows: 2,
lineWidth: 200, digits: 2, step: 1, width: 100, height: 30, previewUrl: '', barcodeType: '', showContent: true, showElement: true, showSerialNumber: false,
- showMainSeq: false,parentSerialLabelNo:'', seqName: '', isChecked: false, decimalPlaces: '', showDecimalPlaces: false, thousandsSeparator: false, roundHalfUp: true, dateOffsetDays: 0,
+ showMainSeq: false,parentSerialLabelNo:'', seqName: '', isChecked: false, decimalPlaces: '', showDecimalPlaces: false, thousandsSeparator: false, roundHalfUp: true, fixedDigits: '', dateOffsetDays: 0,
// 字体相关属性
fontFamily: 'default', textAlign: 'left', letterSpacing: 0, fontItalic: false, fontUnderline: false
};
@@ -537,6 +537,7 @@ export default {
newline: false,
lineRows: 2,
lineWidth: 200,
+ fixedDigits: '',
digits: 2,
step: 1,
showSerialNumber: false
diff --git a/src/views/modules/labelSetting/components/PropertyForm.vue b/src/views/modules/labelSetting/components/PropertyForm.vue
index 2fd433e..468a328 100644
--- a/src/views/modules/labelSetting/components/PropertyForm.vue
+++ b/src/views/modules/labelSetting/components/PropertyForm.vue
@@ -149,6 +149,14 @@
{{ $t('labelSetting.property.roundHalfUp') }}
+
+
+
@@ -766,6 +774,7 @@ export default {
this.setElementDefault('step', 1)
} else if (this.element.dataType === 'number') {
this.setElementDefault('roundHalfUp', true)
+ this.setElementDefault('fixedDigits', '')
} else if (this.element.dataType === 'string') {
this.setElementDefault('stringProcessType', 'none')
this.setElementDefault('substringStartLength', '')
@@ -821,6 +830,7 @@ export default {
this.$set(this.element, 'step', 1)
} else if (newType === 'number') {
this.$set(this.element, 'roundHalfUp', true)
+ this.$set(this.element, 'fixedDigits', '')
} else if (newType === 'string') {
this.$set(this.element, 'stringProcessType', 'none')
this.$set(this.element, 'substringStartLength', '')