From 5ddfad2d3dcbcf79c829bf2f99bfd7af6ba3fd5f Mon Sep 17 00:00:00 2001 From: shenzhouyu Date: Mon, 1 Jun 2026 14:31:35 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E7=89=A9=E6=96=99=E5=90=8C?= =?UTF-8?q?=E6=AD=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cclqms-vue/src/api/qc/qc.js | 1 + cclqms-vue/src/i18n/locales/qc.cn.js | 4 ++ cclqms-vue/src/i18n/locales/qc.en.js | 4 ++ .../src/views/modules/qc/qcPartAttribute.vue | 41 +++++++++++++++++++ 4 files changed, 50 insertions(+) diff --git a/cclqms-vue/src/api/qc/qc.js b/cclqms-vue/src/api/qc/qc.js index c2addaa..456faad 100644 --- a/cclqms-vue/src/api/qc/qc.js +++ b/cclqms-vue/src/api/qc/qc.js @@ -77,6 +77,7 @@ export const getOperationDescList = data => createAPI(`/pms/qc/getOperationDescL export const getManufacturerList = data => createAPI(`/pms/qc/getManufacturerList`,'post',data) export const getPartTemplateLists = data => createAPI(`/pms/qc/getPartTemplateLists`,'post',data) export const qcPartAttributeEdit = data => createAPI(`/pms/qc/qcPartAttributeEdit`,'post',data) +export const qcPartCatalogSync = () => createAPI(`/pms/qc/qcPartCatalogSync`,'post') // ===================================== 检验标准维护 ===================================== export const qcSpecSearch = data => createAPI(`/pms/qc/qcSpecSearch`,'post',data) diff --git a/cclqms-vue/src/i18n/locales/qc.cn.js b/cclqms-vue/src/i18n/locales/qc.cn.js index 1aa59ac..ffa2763 100644 --- a/cclqms-vue/src/i18n/locales/qc.cn.js +++ b/cclqms-vue/src/i18n/locales/qc.cn.js @@ -899,6 +899,10 @@ module.exports = { open: '打开' }, partAttributePage: { + dataSync: '数据同步', + dataSyncConfirm: '确认执行物料目录数据同步?', + dataSyncSuccess: '数据同步成功', + dataSyncFail: '数据同步失败', exportPrefix: '根据物料设置检验模板', exportHeader: '根据物料设置检验模板', tableNameMain: '物料属性设置表', diff --git a/cclqms-vue/src/i18n/locales/qc.en.js b/cclqms-vue/src/i18n/locales/qc.en.js index 69e3142..1ab478f 100644 --- a/cclqms-vue/src/i18n/locales/qc.en.js +++ b/cclqms-vue/src/i18n/locales/qc.en.js @@ -900,6 +900,10 @@ module.exports = { open: 'Open' }, partAttributePage: { + dataSync: 'Data sync', + dataSyncConfirm: 'Run material catalog data sync?', + dataSyncSuccess: 'Data sync completed', + dataSyncFail: 'Data sync failed', exportPrefix: 'Inspection template by material', exportHeader: 'Inspection template by material', tableNameMain: 'Material attribute settings', diff --git a/cclqms-vue/src/views/modules/qc/qcPartAttribute.vue b/cclqms-vue/src/views/modules/qc/qcPartAttribute.vue index 73eb4f2..d086255 100644 --- a/cclqms-vue/src/views/modules/qc/qcPartAttribute.vue +++ b/cclqms-vue/src/views/modules/qc/qcPartAttribute.vue @@ -37,6 +37,10 @@ {{ $t('qc.common.export') }} + + {{ $t('qc.partAttributePage.dataSync') }} + @@ -1686,6 +1690,7 @@ import { qcPartAttributeSearch, // 查询物料属性 qcPartAttributeEdit, // 修改物料属性 + qcPartCatalogSync, // 物料目录数据同步 searchPartAttributeDetails, // 查询物料属性模板 savePartAttributeDetails, // 新增物料属性模板 deletePartAttributeDetails, // 删除物料属性模板 @@ -2630,6 +2635,8 @@ export default { authDelete: false, authDetail: false, authFile: false, + authSync: false, + syncLoading: false, menuId: this.$route.meta.menuId, activeTable: 'qcSpec', partCurrentRow: {}, @@ -5725,6 +5732,7 @@ export default { let deleteFlag = this.isAuth(this.menuId + ':delete') let detailFlag = this.isAuth(this.menuId + ':detail') let fileFlag = this.isAuth(this.menuId + ':file') + let syncFlag = this.isAuth(this.menuId + ':sync') //处理页面的权限数据 this.authSearch = !searchFlag this.authSave = !saveFlag @@ -5732,6 +5740,39 @@ export default { this.authDelete = !deleteFlag this.authDetail = !detailFlag this.authFile = !fileFlag + this.authSync = !syncFlag + }, + + syncPartCatalog() { + this.$confirm( + this.$t('qc.partAttributePage.dataSyncConfirm'), + this.$t('qc.common.tip'), + { + confirmButtonText: this.$t('qc.common.confirm'), + cancelButtonText: this.$t('qc.common.cancel'), + type: 'warning', + } + ) + .then(() => { + this.syncLoading = true + return qcPartCatalogSync() + }) + .then(({ data }) => { + this.syncLoading = false + if (data && data.code === 0) { + this.$message.success(this.$t('qc.partAttributePage.dataSyncSuccess')) + if (!this.authSearch) { + this.getDataList() + } + } else { + this.$message.error( + (data && data.msg) || this.$t('qc.partAttributePage.dataSyncFail') + ) + } + }) + .catch(() => { + this.syncLoading = false + }) }, }, }