From c09788e3955241f7b87d89108fb778457d5c5c62 Mon Sep 17 00:00:00 2001 From: luwenlong Date: Mon, 29 Dec 2025 14:54:46 +0800 Subject: [PATCH] gcs_ph1_1229 --- .env.prod | 1 + .env.production | 1 + .env.sit | 1 + .env.uat | 1 + .env.ver | 1 + src/config/router.config.js | 6 + src/mixins/JeecgListMixin.js | 4 +- src/views/excel/ExcelExportTaskList.vue | 14 -- src/views/excel/ExcelImportTaskList.vue | 13 - .../ProductionOrderConfigList.vue | 183 ++++++++++++++ .../modules/ProductionOrderConfigListForm.vue | 124 ++++++++++ .../ProductionOrderConfigListModal.vue | 61 +++++ .../merger/mergerapply/MaterialMaster.vue | 2 +- src/views/merger/mergerapply/MergerReqs.vue | 35 +-- .../merger/mergerapply/MergerReqsAction.js | 39 +++ .../modules/MaterialMasterModal.vue | 4 +- .../modules/MaterialMasterModalForm.vue | 224 +++++++++++++++--- .../mergerapply/modules/MergerReqsModal.vue | 47 ++-- .../modules/MergerReqsModalBody.vue | 67 +++++- .../modules/MergerReqsModalBodyForm.vue | 3 - .../modules/MergerReqsModalForm.vue | 2 + .../modules/devClassifyAttr/config.js | 37 +++ .../modules/devClassifyAttr/index.vue | 217 +++++++++++++++++ .../mergerapply/modules/flowListConfig.js | 59 +++++ .../mergerapply/modules/flowListDialog.vue | 108 +++++++++ .../modules/materialRemarkDialog.vue | 91 +++++++ .../mergeredConfig/productClassify/index.vue | 153 +++++++++++- .../modules/CNregulatoryConditions.vue | 8 + .../modules/MergerGoodsForm.vue | 84 ++++++- .../productClassify/modules/additionCode.js | 42 ++++ .../modules/additionCodeDialog.vue | 158 ++++++++++++ .../modules/batchAuditPassDialog.vue | 66 ++++++ .../modules/batchAuditUserDialog.vue | 78 ++++++ 33 files changed, 1811 insertions(+), 123 deletions(-) create mode 100644 src/views/merger/ProductionOrderConfig/ProductionOrderConfigList.vue create mode 100644 src/views/merger/ProductionOrderConfig/modules/ProductionOrderConfigListForm.vue create mode 100644 src/views/merger/ProductionOrderConfig/modules/ProductionOrderConfigListModal.vue create mode 100644 src/views/merger/mergerapply/MergerReqsAction.js create mode 100644 src/views/merger/mergerapply/modules/devClassifyAttr/config.js create mode 100644 src/views/merger/mergerapply/modules/devClassifyAttr/index.vue create mode 100644 src/views/merger/mergerapply/modules/flowListConfig.js create mode 100644 src/views/merger/mergerapply/modules/flowListDialog.vue create mode 100644 src/views/merger/mergerapply/modules/materialRemarkDialog.vue create mode 100644 src/views/merger/mergeredConfig/productClassify/modules/additionCode.js create mode 100644 src/views/merger/mergeredConfig/productClassify/modules/additionCodeDialog.vue create mode 100644 src/views/merger/mergeredConfig/productClassify/modules/batchAuditPassDialog.vue create mode 100644 src/views/merger/mergeredConfig/productClassify/modules/batchAuditUserDialog.vue diff --git a/.env.prod b/.env.prod index c578e08..81d84ad 100644 --- a/.env.prod +++ b/.env.prod @@ -1,5 +1,6 @@ NODE_ENV=prod VUE_APP_API_BASE_URL=https://lcapi.midea.com/api-iems-cn/gcs +VUE_APP_API_BASE_DOMAIN=https://lcapi.midea.com VUE_APP_API_BASE_SITE=https://lcapi.midea.com/api-iems-cn/gcs VUE_APP_CAS_BASE_URL=https://signin.midea.com/login VUE_APP_ONLINE_BASE_URL= diff --git a/.env.production b/.env.production index 390a4e7..c266333 100644 --- a/.env.production +++ b/.env.production @@ -1,5 +1,6 @@ NODE_ENV=production VUE_APP_API_BASE_URL=https://lcapi.midea.com/api-iems-cn/gcs +VUE_APP_API_BASE_DOMAIN=https://lcapi.midea.com VUE_APP_API_BASE_SITE=https://lcapi.midea.com/api-iems-cn/gcs VUE_APP_CAS_BASE_URL=https://signin.midea.com/login VUE_APP_ONLINE_BASE_URL= diff --git a/.env.sit b/.env.sit index 57170b4..5abc9a7 100644 --- a/.env.sit +++ b/.env.sit @@ -1,5 +1,6 @@ NODE_ENV=sit VUE_APP_API_BASE_URL=https://lsitapi.midea.com/api-iems-cn/gcs +VUE_APP_API_BASE_DOMAIN=https://lsitapi.midea.com VUE_APP_API_BASE_SITE=http://localhost:9000 VUE_APP_CAS_BASE_URL=https://signinuat.midea.com/login VUE_APP_ONLINE_BASE_URL= diff --git a/.env.uat b/.env.uat index 2075e5a..d16e9f6 100644 --- a/.env.uat +++ b/.env.uat @@ -1,5 +1,6 @@ NODE_ENV=uat VUE_APP_API_BASE_URL=https://luatapi.midea.com/api-iems-cn/gcs +VUE_APP_API_BASE_DOMAIN=https://luatapi.midea.com VUE_APP_API_BASE_SITE=http://localhost:9000 VUE_APP_CAS_BASE_URL=https://signinuat.midea.com/login VUE_APP_ONLINE_BASE_URL= diff --git a/.env.ver b/.env.ver index df80897..5987d40 100644 --- a/.env.ver +++ b/.env.ver @@ -1,5 +1,6 @@ NODE_ENV=ver VUE_APP_API_BASE_URL=https://lverapi.midea.com/api-iems-cn/gcs +VUE_APP_API_BASE_DOMAIN=https://lverapi.midea.com VUE_APP_API_BASE_SITE=http://localhost:9000 VUE_APP_CAS_BASE_URL=https://signinuat.midea.com/login VUE_APP_ONLINE_BASE_URL=http://fileview.jeecg.com/onlinePreview diff --git a/src/config/router.config.js b/src/config/router.config.js index 39085cb..6f1fdb3 100644 --- a/src/config/router.config.js +++ b/src/config/router.config.js @@ -388,6 +388,12 @@ export const asyncRouterMap = [ component: () => import('@/views/merger/mergerapply/MergerTimeValidity'), meta: { title: '归类时效配置', permission: 438 }, }, + { + name: 'ProductionOrderConfigList', + path: 'ProductionOrderConfigList', + component: () => import('@/views/merger/ProductionOrderConfig/ProductionOrderConfigList'), + meta: { title: '生产单归类规则配置', permission: 438 }, + }, { name: 'MergerReqs', path: '/merger/mergerapply/MergerReqs', diff --git a/src/mixins/JeecgListMixin.js b/src/mixins/JeecgListMixin.js index 9da4edb..77740b1 100644 --- a/src/mixins/JeecgListMixin.js +++ b/src/mixins/JeecgListMixin.js @@ -549,11 +549,11 @@ export const JeecgListMixin = { this.$router.push(record); }, //子组件edit、add方法最后执行,可在子组件中重新自定义title、disableSubmit属性 - handleEdit: function (record) { + handleEdit: function (record,customParams = {}) { this.visible = false; this.$refs.modalForm.title = '编辑'; this.$refs.modalForm.disableSubmit = false; - this.$refs.modalForm.edit(record); + this.$refs.modalForm.edit(record,customParams); }, handleAdd: function () { this.visible = false; diff --git a/src/views/excel/ExcelExportTaskList.vue b/src/views/excel/ExcelExportTaskList.vue index 307f30d..50312ef 100644 --- a/src/views/excel/ExcelExportTaskList.vue +++ b/src/views/excel/ExcelExportTaskList.vue @@ -60,8 +60,6 @@ 批量操作 --> - - 导出执行 @@ -106,7 +104,6 @@ import { JeecgListMixin, WGridResizeByCssMixin } from '@/mixins/JeecgListMixin' import { mixinDevice } from '@/utils/mixin' -import { getAction } from '@/api/manage' import ExcelExportModel from './modules/ExcelExportModel.vue' export default { name: 'ExcelExportTaskList', @@ -257,7 +254,6 @@ export default { delete: '/sys/excel/export/task/delete', deleteBatch: '/sys/excel/export/task/deleteBatch', downloadUrl: '/sys/excel/download', - executeExportTask: '/sys/excel/export/task/executeExportTask', }, dictOptions: {}, superFieldList: [], @@ -290,16 +286,6 @@ export default { this.createTime = [] this.searchReset() }, - execute() { - getAction(this.url.executeExportTask).then((res) => { - if (res.success) { - this.$message.success('导出执行成功') - this.loadData(1) - } else { - this.$message.warning(res.message) - } - }) - }, }, } diff --git a/src/views/excel/ExcelImportTaskList.vue b/src/views/excel/ExcelImportTaskList.vue index 9bee12f..085939d 100644 --- a/src/views/excel/ExcelImportTaskList.vue +++ b/src/views/excel/ExcelImportTaskList.vue @@ -43,7 +43,6 @@
- 导入执行
@@ -94,7 +93,6 @@ import { JeecgListMixin, WGridResizeByCssMixin } from '@/mixins/JeecgListMixin' import { mixinDevice } from '@/utils/mixin' import ExcelImportTaskModal from './modules/ExcelImportTaskModal' -import { getAction } from '@/api/manage' export default { name: 'ExcelImportTaskList', @@ -255,7 +253,6 @@ export default { exportXlsUrl: '/sys/excel/import/task/exportXls', importExcelUrl: '/sys/excel/import/task/importExcel', downloadUrl: '/sys/excel/download', - executeImportTask: '/sys/excel/import/task/executeImportTask', }, dictOptions: {}, superFieldList: [], @@ -288,16 +285,6 @@ export default { this.createTime = [] this.searchReset() }, - execute() { - getAction(this.url.executeImportTask).then((res) => { - if (res.success) { - this.$message.success('导入执行成功') - this.loadData(1) - } else { - this.$message.warning(res.message) - } - }) - }, }, } diff --git a/src/views/merger/ProductionOrderConfig/ProductionOrderConfigList.vue b/src/views/merger/ProductionOrderConfig/ProductionOrderConfigList.vue new file mode 100644 index 0000000..bb11a4d --- /dev/null +++ b/src/views/merger/ProductionOrderConfig/ProductionOrderConfigList.vue @@ -0,0 +1,183 @@ + + + diff --git a/src/views/merger/ProductionOrderConfig/modules/ProductionOrderConfigListForm.vue b/src/views/merger/ProductionOrderConfig/modules/ProductionOrderConfigListForm.vue new file mode 100644 index 0000000..fbbd1f9 --- /dev/null +++ b/src/views/merger/ProductionOrderConfig/modules/ProductionOrderConfigListForm.vue @@ -0,0 +1,124 @@ + + + + diff --git a/src/views/merger/ProductionOrderConfig/modules/ProductionOrderConfigListModal.vue b/src/views/merger/ProductionOrderConfig/modules/ProductionOrderConfigListModal.vue new file mode 100644 index 0000000..2b1298e --- /dev/null +++ b/src/views/merger/ProductionOrderConfig/modules/ProductionOrderConfigListModal.vue @@ -0,0 +1,61 @@ + + + + diff --git a/src/views/merger/mergerapply/MaterialMaster.vue b/src/views/merger/mergerapply/MaterialMaster.vue index 9bc7c09..e73fde9 100644 --- a/src/views/merger/mergerapply/MaterialMaster.vue +++ b/src/views/merger/mergerapply/MaterialMaster.vue @@ -492,7 +492,7 @@ export default { // 邮件链接跳转 if (this.$route.query?.id) { this.$nextTick(() => { - this.handleEdit({ id: this.$route.query.id }); + this.handleEdit({ id: this.$route.query.id }, { isFromMip: true }); }); } this.queryParam = { diff --git a/src/views/merger/mergerapply/MergerReqs.vue b/src/views/merger/mergerapply/MergerReqs.vue index b988226..4fe7141 100644 --- a/src/views/merger/mergerapply/MergerReqs.vue +++ b/src/views/merger/mergerapply/MergerReqs.vue @@ -85,9 +85,6 @@ 要素批量导入 要素批量导出 转派 - - - @@ -173,6 +170,7 @@ import { filterDictTextByFormatCache, initeCusDictItemsFrom } from '@comp/dict/J import MergerReqsModal from './modules/MergerReqsModal.vue'; import MergerReqsModalTransfer from './modules/MergerReqsModalTransfer.vue'; import AppprovalUserSelect from '@/components/AppprovalUserSelect/index'; +import { submitClassify } from './MergerReqsAction'; import { mapGetters } from 'vuex'; export default { @@ -559,28 +557,17 @@ export default { }, /* 提交归类 */ handleGrouping(record) { - // if (this.selectedRowKeys.length === 0) { - // this.$message.warning('请选择至少一条数据进行操作!') - // return - // } const that = this; - that.$confirm({ - content: '是否确认提交归类?', - onOk: function () { - that.loading = true; - getAction(that.url.submitMerge, { ids: record.id }) - .then((res) => { - if (res.success) { - that.$message.success(res.message); - that.loadData(); - } else { - that.$message.warning(res.message); - } - }) - .finally(() => { - that.loading = false; - }); - }, + that.loading = true; + submitClassify(that, { id: record.id }).then(res => { + if (res.success) { + that.$message.success(res.message); + that.loadData(); + } else { + that.$message.warning(res.message); + } + }).finally(() => { + that.loading = false; }); }, /* 归类驳回 */ diff --git a/src/views/merger/mergerapply/MergerReqsAction.js b/src/views/merger/mergerapply/MergerReqsAction.js new file mode 100644 index 0000000..65db2b7 --- /dev/null +++ b/src/views/merger/mergerapply/MergerReqsAction.js @@ -0,0 +1,39 @@ +import { postAction } from '@/api/manage'; +import lodash from 'lodash'; + +export const submitClassify = (that, params) => { + return new Promise((resolve, reject) => { + that.$confirm({ + content: '是否确认提交归类?', + onOk: function () { + postAction('/merger/mergerReqsHead/submitMergeAndSplitOrder', { ...params, splitFlag: 0 }).then((res) => { + if (res.success) { + if (!lodash.isEmpty(res.result)) { + that.$confirm({ + content: '是否拆分需求单,并提交已维护完整的料号?', + onOk: function () { + postAction('/merger/mergerReqsHead/submitMergeAndSplitOrder', { ...params, splitFlag: 1 }).then((resData) => { + resolve(resData); + }) + }, + onCancel: function () { + reject(); + } + }); + } else { + resolve(res); + } + } else { + that.$message.warning(res.message); + reject(); + } + }).catch(() => { + reject(); + }) + }, + onCancel: function () { + reject(); + } + }); + }); +}; \ No newline at end of file diff --git a/src/views/merger/mergerapply/modules/MaterialMasterModal.vue b/src/views/merger/mergerapply/modules/MaterialMasterModal.vue index 5493217..5ee1d27 100644 --- a/src/views/merger/mergerapply/modules/MaterialMasterModal.vue +++ b/src/views/merger/mergerapply/modules/MaterialMasterModal.vue @@ -34,11 +34,11 @@ export default { this.$refs.realForm.add() }) }, - edit (record) { + edit (record,customParams) { this.modalVisible = true this.head = record this.$nextTick(() => { - this.$refs.realForm.edit(record) + this.$refs.realForm.edit(record,customParams) }) }, submitForm () { diff --git a/src/views/merger/mergerapply/modules/MaterialMasterModalForm.vue b/src/views/merger/mergerapply/modules/MaterialMasterModalForm.vue index 31bfba4..0841f91 100644 --- a/src/views/merger/mergerapply/modules/MaterialMasterModalForm.vue +++ b/src/views/merger/mergerapply/modules/MaterialMasterModalForm.vue @@ -3,6 +3,7 @@
保存 + 要素采集 - + + - + @@ -87,8 +89,8 @@ - + + \ No newline at end of file diff --git a/src/views/merger/mergerapply/modules/flowListConfig.js b/src/views/merger/mergerapply/modules/flowListConfig.js new file mode 100644 index 0000000..2238242 --- /dev/null +++ b/src/views/merger/mergerapply/modules/flowListConfig.js @@ -0,0 +1,59 @@ +/** + * 流程记录弹窗表格配置 + */ + +// 表格列配置 +export const flowListColumns = [ + { + title: '#', + dataIndex: '', + key: 'rowIndex', + width: 60, + align: 'center', + customRender: function (t, r, index) { + return parseInt(index) + 1 + } + }, + { + title: '流程活动', + align: 'center', + dataIndex: 'actionName', + ellipsis: true, + width: 100 + }, + { + title: '执行人', + align: 'center', + dataIndex: 'createName', + ellipsis: true, + width: 100 + }, + { + title: '待执行人', + align: 'center', + dataIndex: 'actorId', + ellipsis: true, + width: 100, + }, + { + title: '执行时间', + align: 'center', + dataIndex: 'createTime', + ellipsis: true, + width: 100 + }, + { + title: '状态', + align: 'center', + dataIndex: 'taskName', + ellipsis: true, + width: 100 + }, + { + title: '备注', + align: 'center', + dataIndex: 'remark', + ellipsis: true, + width: 100 + } +] diff --git a/src/views/merger/mergerapply/modules/flowListDialog.vue b/src/views/merger/mergerapply/modules/flowListDialog.vue new file mode 100644 index 0000000..9202813 --- /dev/null +++ b/src/views/merger/mergerapply/modules/flowListDialog.vue @@ -0,0 +1,108 @@ + + + \ No newline at end of file diff --git a/src/views/merger/mergerapply/modules/materialRemarkDialog.vue b/src/views/merger/mergerapply/modules/materialRemarkDialog.vue new file mode 100644 index 0000000..d2e66a3 --- /dev/null +++ b/src/views/merger/mergerapply/modules/materialRemarkDialog.vue @@ -0,0 +1,91 @@ + + + diff --git a/src/views/merger/mergeredConfig/productClassify/index.vue b/src/views/merger/mergeredConfig/productClassify/index.vue index 0f126f1..08ae17d 100644 --- a/src/views/merger/mergeredConfig/productClassify/index.vue +++ b/src/views/merger/mergeredConfig/productClassify/index.vue @@ -154,6 +154,24 @@ > 要素批量导出 + + 批量提交审核 + + + 批量审核通过 +
@@ -357,6 +375,8 @@ + + @@ -369,15 +389,20 @@ import ExcelExportPage from '@/views/excel/modules/ExcelExportPage.vue'; import ExcelImportModel from '@/views/excel/modules/ExcelImportModel.vue'; import ExcelImportPage from '@/views/excel/modules/ExcelImportPage.vue'; import MergerGoodsModal from './modules/MergerGoodsModal'; +import batchAuditPassDialog from './modules/batchAuditPassDialog'; +import batchAuditUserDialog from './modules/batchAuditUserDialog'; import FlowListModal from './modules/FlowListModal'; import { mapGetters } from 'vuex'; import AppprovalUserSelect from '@/components/AppprovalUserSelect/index'; import { getAction, postAction } from '@/api/manage'; +import lodash from 'lodash'; export default { name: 'productClassify', mixins: [JeecgListMixin, mixinDevice, WGridResizeByCssMixin], components: { + batchAuditPassDialog, + batchAuditUserDialog, MergerGoodsModal, ExcelExportModel, ExcelImportModel, @@ -694,6 +719,8 @@ export default { preAuditVerification: '/merger/mergerGoods/preAuditVerification', regulationValid: '/interfaces/hscode/desc/regulationExpand', exportXlsEleUrl: 'merger/mergerReqsRdElem/exportXls', + batchAuditPass: '/flow/common/batch-approve-pass', + batchAuditSubmit: '/flow/common/batch-submit' }, flowStatusCode: '', dictOptions: {}, @@ -705,6 +732,9 @@ export default { record: null, country: '', hiddenColumns: false, + handlersData: [], + batchAuditSubmitLoading: false, + batchAuditPassLoading: false }; }, created() { @@ -922,8 +952,8 @@ export default { // 商品归类的转派 和审核提交 if (this.flag === 'productClassify') { const obj = this.selectionRows[0]; - if (!['010', '070', '030'].includes(obj.classifyStatus) || obj.globalLock === 'Y') { - this.$warning({ title: '提示', content: '请选择全球锁为N且归类状态为商品归类、审核退回或重新归类的数据!' }); + if (!['010', '070', '030', '090'].includes(obj.classifyStatus)) { + this.$warning({ title: '提示', content: '请选择归类状态为商品归类、审核退回或重新归类的数据!' }); return; } } @@ -1192,6 +1222,125 @@ export default { 'MIDEA_MERGER_REQS_RD_ELEM' ); }, + selectionRowsVerify (max,msg){ + if (this.selectionRows.length === 0) { + this.$message.warning('请选择至少一条数据进行操作!'); + return false; + } + if (max && this.selectionRows.length > max) { + this.$message.warning(msg || `最多选择${max}条数据进行操作!`); + return false; + } + return true; + }, + passHandleOk(data) { + if (data.type === 'submit') { + this.submitPostHandle(data); + } else { + this.passPostHandle(data); + } + }, + passPostHandle(data) { + const that = this; + this.batchAuditPassLoading = true; + postAction(that.url.batchAuditPass, { + mergerGoodsIds: that.selectedRowKeys, + auditNote: data.remark, + handlers: [], + fdTemplateCode: 'mergerApply', + }).then(res => { + if (res && res.success) { + that.batchNoticeHandle(res, 'pass'); + } + }).finally(() => { + that.batchAuditPassLoading = false; + }); + }, + submitPostHandle(data) { + const that = this; + this.batchAuditSubmitLoading = true; + postAction(that.url.batchAuditSubmit, { + mergerGoodsIds: that.selectedRowKeys, + auditNote: data.remark, + handlers: this.handlersData, + fdTemplateCode: 'mergerApply', + }).then(res => { + if (res && res.success) { + that.batchNoticeHandle(res); + } + }).finally(() => { + that.batchAuditSubmitLoading = false; + }); + }, + userHandleOk(data) { + this.handlersData = lodash.isEmpty(data) ? [] : [ + { + unmodifiable: true, + name: data.operatorName, + id: data.operator, + type: 'USER' + } + ]; + this.$refs.batchAuditPassDialogRef.show({ + title: '批量提交审核', + type: 'submit' + }); + }, + batchAuditPassHandle() { + if (!this.selectionRowsVerify(50)) { + return; + } + this.$refs.batchAuditPassDialogRef.show({ + title: '批量审核通过', + type: 'pass' + }); + }, + batchAuditSubmitHandle() { + const that = this; + if (!this.selectionRowsVerify(50)) { + return; + } + if (this.selectionRows.some(i => i.classifyStatus === '090')) { + this.$message.warning('不能勾选状态为090-归类驳回的数据进行操作!'); + return; + } + this.$confirm({ + content: `是否修改审批人?`, + okText: '是', + cancelText: '否', + onOk: function () { + that.$refs.batchAuditUserDialogRef.show({}); + }, + onCancel: function () { + that.handlersData = []; + that.$refs.batchAuditPassDialogRef.show({ + title: '批量提交审核', + type: 'submit' + }); + } + }); + }, + batchNoticeHandle(res, type = 'submit') { + let msg = '' + if (res.result && res.result.fail > 0) { + if (type === 'pass') { + msg = '(' + res.result.approveFailMsg + ')'; + } else { + msg = '(料号:' + res.result.partNo + ')'; + } + } + this.$MdAlert( + `
成功:${res.result.success}条
` + + `失败:${res.result.fail}条 ${msg}
`, + '处理结果', { + showClose: false, + confirmButtonText: '确定', + dangerouslyUseHTMLString: true, + callback: () => { + this.loadData(); + }, + }); + } }, }; diff --git a/src/views/merger/mergeredConfig/productClassify/modules/CNregulatoryConditions.vue b/src/views/merger/mergeredConfig/productClassify/modules/CNregulatoryConditions.vue index d06f435..f1475e8 100644 --- a/src/views/merger/mergeredConfig/productClassify/modules/CNregulatoryConditions.vue +++ b/src/views/merger/mergeredConfig/productClassify/modules/CNregulatoryConditions.vue @@ -18,6 +18,14 @@ 重置 + + + + + +
diff --git a/src/views/merger/mergeredConfig/productClassify/modules/MergerGoodsForm.vue b/src/views/merger/mergeredConfig/productClassify/modules/MergerGoodsForm.vue index 99ec6c7..ad521ac 100644 --- a/src/views/merger/mergeredConfig/productClassify/modules/MergerGoodsForm.vue +++ b/src/views/merger/mergeredConfig/productClassify/modules/MergerGoodsForm.vue @@ -161,7 +161,7 @@
{{ model.country + '-' + model.countryName }}
- + @@ -396,6 +396,7 @@ >
+ + +
+ +
+ +
+
+ +
+
@@ -559,6 +574,7 @@ + @@ -576,10 +592,12 @@ import CNattachmentCode from './CNattachmentCode'; import CNregulatoryConditions from './CNregulatoryConditions'; import CNtaxrateDesc from './CNtaxrateDesc'; import ApprovalProgressTemplate from '@/components/ApprovalProgressTemplate/index'; +import additionCodeDialog from './additionCodeDialog'; export default { name: 'MideaMergerGoodsForm', components: { + additionCodeDialog, WorkflowList, ModifyRecord, devClassify, @@ -624,6 +642,7 @@ export default { }, confirmLoading: false, validatorRules: { + additionalCode: [{ required: true, message: '请选择附加编码!', trigger: 'blur' }], hsCode: [{ required: true, message: '请输入HSCode!', trigger: 'blur' }], gname: [{ required: true, message: '请输入商品名称!', trigger: 'blur' }], }, @@ -694,6 +713,10 @@ export default { formDisabled() { return this.disabled; }, + showAdditionCode() { + // 国家为泰国才展示附加编码 + return this.model.country && this.model.country === 'TH'; + }, controlMaQuanType() { if (this.model.controlMa && this.model.quanType) { return this.model.controlMa + ',' + this.model.quanType; @@ -711,6 +734,13 @@ export default { this.modelDefault = JSON.parse(JSON.stringify(this.model)); }, methods: { + showAdditionCodeHandle() { + this.$refs.additionCodeDialogRef.show({ data: this.model }); + }, + confirmAdditionCode(data) { + this.model.additionalCode = data.additionalCode; + this.getOtherCountry(); + }, timestampToDate(timestamp) { if (!timestamp) { return ''; @@ -733,7 +763,7 @@ export default { return; // 直接return,不执行后续代码 } } else if (!['GC', 'CN'].includes(this.model.country)) { - if (this.model.hsCode.length < 6) { + if (this.model.hsCode && this.model.hsCode.length < 6) { this.$message.error('国家为海外时,HSCode必须大于等于6位'); return; // 直接return,不执行后续代码 } @@ -783,7 +813,7 @@ export default { id: this.model.id, }); if (resp.success) { - if (this.model.country === 'ID') { + if (this.model.country === 'ID' || this.model.country === 'TH') { this.SubmitValid(); } else { this.$refs.ApprovalProgressTemplate.show({ @@ -820,11 +850,15 @@ export default { } }, async auditFlow() { - if (this.model.country === 'ID') { - const valid = await getAction(this.url.regulationValid, { + if (this.model.country === 'ID' || this.model.country === 'TH') { + const data = { countryCode: this.model.country, - hscode: this.model.hsCode, - }); + hscode: this.model.hsCode + }; + if ( this.model.country === 'TH' ) { + data.additionalCode = this.model.additionalCode; + } + const valid = await getAction(this.url.regulationValid, data); if (valid.success) { this.$refs.ApprovalProgressTemplate.show({ id: this.model.id, @@ -888,6 +922,9 @@ export default { flag: this.flag, }); } + if (this.model.country === 'TH' && value) { + this.initAdditionalCode(); + } }, filterOption(input, option) { return option.componentOptions.children[0].text.indexOf(input) !== -1; @@ -895,10 +932,20 @@ export default { closeModal(record) { if (record) { this.model.hsCode = record.codeTS || record.hscode; + if (this.model.country === 'TH') { + this.initAdditionalCode(); + } this.queryByIdHscode('enter'); } this.CNhSCodeModalShow = false; }, + initAdditionalCode(){ + this.model.additionalCode = ''; + this.regulatoryConditionsDataSource = []; + if (this.activeKeyBottom === 'regulatoryConditions') { + this.$refs.CNregulatoryConditions.show(this.regulatoryConditionsDataSource); + } + }, // 展示HSCode showHsCode() { if (this.formDisabled) { @@ -1087,6 +1134,7 @@ export default { const resp = await getAction(this.url.hscodDetail, { hscode: this.model.hsCode, countryCode: this.model.country, + additionalCode: this.model.country === 'TH' ? this.model.additionalCode : undefined }); if (resp.success) { const result = JSON.parse(resp.result); @@ -1251,6 +1299,8 @@ export default { } } }); + } else { + that.$message.warning('请检查必填项'); } }); }, @@ -1358,10 +1408,14 @@ export default { }); }, async SubmitValid() { - const valid = await getAction(this.url.regulationValid, { + const data = { countryCode: this.model.country, - hscode: this.model.hsCode, - }); + hscode: this.model.hsCode + }; + if ( this.model.country === 'TH' ) { + data.additionalCode = this.model.additionalCode; + } + const valid = await getAction(this.url.regulationValid, data); if (valid.success) { this.$refs.ApprovalProgressTemplate.show({ id: this.model.id, @@ -1435,7 +1489,15 @@ export default { } } } - +.merger-good-form-box { + .plus-box { + width: 26px; + height: 26px; + background-color: #0f69ff; + line-height: 26px; + text-align: center; + } +} /deep/ .md-form-item__label { width: 120px; } diff --git a/src/views/merger/mergeredConfig/productClassify/modules/additionCode.js b/src/views/merger/mergeredConfig/productClassify/modules/additionCode.js new file mode 100644 index 0000000..17f2162 --- /dev/null +++ b/src/views/merger/mergeredConfig/productClassify/modules/additionCode.js @@ -0,0 +1,42 @@ +export default { + searchFields: [ + { + name: '附加编码', + value: 'additionalCode', + type: 'input', + isFixed: true, + span: 3 + }, + { + name: '语言类别', + value: 'cultureCode', + type: 'select', + optionsKey: 'GLOBAL_TARIFF_LANGUAGE_TYPE', + isFixed: true, + span: 3 + } + ], + columns:[ + { + label: '附加编码', + prop: 'additionalCode', + 'width': 130, + }, + { + label: '附加编码类型', + prop: 'additionalCodeType', + 'width': 130, + }, + { + label: '附加编码说明', + prop: 'codeDescription', + 'min-width': 160, + }, + { + label: '语言类别', + prop: 'cultureCode', + 'width': 130, + }, + ] + +} \ No newline at end of file diff --git a/src/views/merger/mergeredConfig/productClassify/modules/additionCodeDialog.vue b/src/views/merger/mergeredConfig/productClassify/modules/additionCodeDialog.vue new file mode 100644 index 0000000..38e701a --- /dev/null +++ b/src/views/merger/mergeredConfig/productClassify/modules/additionCodeDialog.vue @@ -0,0 +1,158 @@ + + + \ No newline at end of file diff --git a/src/views/merger/mergeredConfig/productClassify/modules/batchAuditPassDialog.vue b/src/views/merger/mergeredConfig/productClassify/modules/batchAuditPassDialog.vue new file mode 100644 index 0000000..3a14b82 --- /dev/null +++ b/src/views/merger/mergeredConfig/productClassify/modules/batchAuditPassDialog.vue @@ -0,0 +1,66 @@ + + + + + diff --git a/src/views/merger/mergeredConfig/productClassify/modules/batchAuditUserDialog.vue b/src/views/merger/mergeredConfig/productClassify/modules/batchAuditUserDialog.vue new file mode 100644 index 0000000..d047338 --- /dev/null +++ b/src/views/merger/mergeredConfig/productClassify/modules/batchAuditUserDialog.vue @@ -0,0 +1,78 @@ + + + + +