From b3864cd6756453e29fbce8bc83756a29948d1e71 Mon Sep 17 00:00:00 2001 From: qiankanghui <11284155+qian-kanghui@user.noreply.gitee.com> Date: Thu, 8 Jan 2026 15:31:48 +0800 Subject: [PATCH] =?UTF-8?q?feat(srm):=20=E9=87=8D=E6=9E=84=E4=BE=9B?= =?UTF-8?q?=E5=BA=94=E5=95=86=E5=9C=B0=E5=9D=80=E7=AE=A1=E7=90=86=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=E5=B9=B6=E6=9B=B4=E6=96=B0=E7=8A=B6=E6=80=81=E9=80=89?= =?UTF-8?q?=E9=A1=B9=E5=9B=BD=E9=99=85=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 将供应商地址组件从 srmBaseInformation 模块迁移至 srmSupplier 模块 - 重构供应商地址页面,添加完整的增删改查功能和表单验证 - 实现供应商地址的搜索、分页、导出功能 - 添加供应商地址API接口,包括查询、创建、更新、删除操作 - 将所有状态选择项从中文"启用/禁用"改为英文"Yes/No"选项 - 更新供应商列表页面的状态字段和API调用 - 完善权限控制和错误处理机制 --- .../srmSupplier/com_srmSupplier_Address.vue | 601 ++++++++++++++++++ .../srmSupplier/srmSupplierAddress.vue | 16 +- .../modules/srmSupplier/supplierList.vue | 75 ++- 3 files changed, 655 insertions(+), 37 deletions(-) create mode 100644 src/views/modules/srmSupplier/com_srmSupplier_Address.vue diff --git a/src/views/modules/srmSupplier/com_srmSupplier_Address.vue b/src/views/modules/srmSupplier/com_srmSupplier_Address.vue new file mode 100644 index 0000000..5b329a8 --- /dev/null +++ b/src/views/modules/srmSupplier/com_srmSupplier_Address.vue @@ -0,0 +1,601 @@ + + + + + diff --git a/src/views/modules/srmSupplier/srmSupplierAddress.vue b/src/views/modules/srmSupplier/srmSupplierAddress.vue index a716015..eab7bf7 100644 --- a/src/views/modules/srmSupplier/srmSupplierAddress.vue +++ b/src/views/modules/srmSupplier/srmSupplierAddress.vue @@ -79,7 +79,7 @@ - + @@ -377,21 +377,15 @@ export default { supplierId: [ { required: true, - validator: this.validateField, - trigger: 'blur' - } - ], - site: [ - { - required: true, - validator: this.validateField, + message: '供应商ID不能为空', trigger: 'blur' } ], + addressId: [ { required: true, - validator: this.validateField, + message: '地址ID不能为空', trigger: 'blur' } ], @@ -573,7 +567,7 @@ export default { updateBy: this.$store.state.user.name, flag: '2' } - this.modalDisableFlag = true + this.modalDisableFlag = true // 这将使整个表单中的字段(包括site)变为只读 this.modalFlag = true this.$nextTick(() => { // 清除表单验证 diff --git a/src/views/modules/srmSupplier/supplierList.vue b/src/views/modules/srmSupplier/supplierList.vue index 4d17d77..e1d3064 100644 --- a/src/views/modules/srmSupplier/supplierList.vue +++ b/src/views/modules/srmSupplier/supplierList.vue @@ -27,14 +27,14 @@ + :height="height" + :data="mainDataList" + border + ref="mainTable" + highlight-current-row + @row-click="changeData" + v-loading="dataListLoading" + style="margin-top: 0px; width: 100%;"> - - - + + + @@ -121,6 +121,9 @@ + + + @@ -364,6 +367,7 @@ import Chooselist from '@/views/modules/common/Chooselist_eam' import contract from './com_srmSupplier_Contract' import share from './com_srmSupplier_share' import documents from './com_srmSupplier_DocumentDefinition' +import AddressTab from './com_srmSupplier_Address' export default { data () { return { @@ -1079,7 +1083,8 @@ export default { Chooselist, contract, documents, - share + share, + AddressTab }, mounted () { @@ -1172,6 +1177,9 @@ export default { if (this.activeName === 'documents') { this.refreshDocumentsTable() } + if (this.activeName === 'AddressTab') { + this.refreshAddressTable() + } }, async exportExcel () { this.searchData.limit = -1 @@ -1206,9 +1214,24 @@ export default { objectType: 'supplier', height: Number(this.height) - 20 } + this.$refs.documents.init(inData) }, - refreshShareTable () { + refreshAddressTable () { + let inData = { + supplierId: this.currentRow.supplierNo, // 使用实际的供应商编码作为supplierId + site: this.currentRow.site, + supplierNo: this.currentRow.supplierNo, + height: Number(this.height) - 20 + } + this.$nextTick(() => { + const addressComp = this.$refs.AddressTab + if (addressComp && typeof addressComp.init === 'function') { + addressComp.init(inData) + } + }) + }, + refreshShareTable() { let inData = { site: this.currentRow.site, supplierNo: this.currentRow.supplierNo, @@ -1218,7 +1241,7 @@ export default { this.$refs.share.init(inData) }, // 新增供应商 - addSupplier () { + addSupplier() { this.isAdd = true this.currentSupplier = { site: this.$store.state.user.site, @@ -1227,17 +1250,17 @@ export default { this.supplierDialogVisible = true }, // 编辑供应商 - editSupplier () { + editSupplier() { if (!this.currentRow) { this.$message.warning('Please select a supplier to edit') return } this.isAdd = false - this.currentSupplier = { ...this.currentRow } + this.currentSupplier = {...this.currentRow} this.supplierDialogVisible = true }, // 保存供应商 - saveSupplier () { + saveSupplier() { this.$refs.supplierForm.validate((valid) => { if (valid) { const apiCall = this.isAdd ? createSrmSupplier(this.currentSupplier) : updateSrmSupplier(this.currentSupplier) @@ -1260,7 +1283,7 @@ export default { }, // 删除供应商 - deleteSupplier (row) { + deleteSupplier(row) { this.$confirm('Are you sure you want to delete this supplier?', 'Confirm Delete', { confirmButtonText: 'Confirm', cancelButtonText: 'Cancel', @@ -1279,7 +1302,7 @@ export default { }) } }, - created () { + created() { // 查询报表的类型 this.getMainData() }