diff --git a/jnpf-java-boot/jnpf-example/jnpf-example-biz/src/main/java/jnpf/service/SupplierService.java b/jnpf-java-boot/jnpf-example/jnpf-example-biz/src/main/java/jnpf/service/SupplierService.java index 416d27a..df58e0b 100644 --- a/jnpf-java-boot/jnpf-example/jnpf-example-biz/src/main/java/jnpf/service/SupplierService.java +++ b/jnpf-java-boot/jnpf-example/jnpf-example-biz/src/main/java/jnpf/service/SupplierService.java @@ -21,4 +21,7 @@ public interface SupplierService extends IService { String checkForm(SupplierForm form, int i); void saveOrUpdate(SupplierForm supplierForm, String id, boolean isSave) throws Exception; + + List getSelectList(); + } diff --git a/jnpf-java-boot/jnpf-example/jnpf-example-biz/src/main/java/jnpf/service/impl/SupplierServiceImpl.java b/jnpf-java-boot/jnpf-example/jnpf-example-biz/src/main/java/jnpf/service/impl/SupplierServiceImpl.java index 77dfe03..3582613 100644 --- a/jnpf-java-boot/jnpf-example/jnpf-example-biz/src/main/java/jnpf/service/impl/SupplierServiceImpl.java +++ b/jnpf-java-boot/jnpf-example/jnpf-example-biz/src/main/java/jnpf/service/impl/SupplierServiceImpl.java @@ -120,4 +120,15 @@ public class SupplierServiceImpl extends ServiceImpl getSelectList() { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(SupplierEntity::getDeleteMark, 0); + wrapper.eq(SupplierEntity::getEnabledStatus, 1); + wrapper.orderByDesc(SupplierEntity::getId); + return this.list(wrapper); + + + } } diff --git a/jnpf-java-boot/jnpf-example/jnpf-example-controller/src/main/java/jnpf/controller/SupplierController.java b/jnpf-java-boot/jnpf-example/jnpf-example-controller/src/main/java/jnpf/controller/SupplierController.java index d621f2a..c09bb90 100644 --- a/jnpf-java-boot/jnpf-example/jnpf-example-controller/src/main/java/jnpf/controller/SupplierController.java +++ b/jnpf-java-boot/jnpf-example/jnpf-example-controller/src/main/java/jnpf/controller/SupplierController.java @@ -102,4 +102,20 @@ public class SupplierController { } return ActionResult.fail("删除失败,数据不存在"); } + + @Operation(summary = "获取产线下拉列表") + @GetMapping("/getSelectList") + public ActionResult getSelectList() { + List list = supplierService.getSelectList(); + List> result = list.stream() + .map(entity -> { + Map map = JsonUtil.entityToMap(entity); + map.put("id", entity.getId()); + map.put("name", entity.getSupplierName()); + return map; + }) + .collect(Collectors.toList()); + return ActionResult.success(result); + } + } diff --git a/jnpf-java-boot/jnpf-web/src/views/example/equipment/equipment.js b/jnpf-java-boot/jnpf-web/src/views/example/equipment/equipment.js index 4884bac..673d247 100644 --- a/jnpf-java-boot/jnpf-web/src/views/example/equipment/equipment.js +++ b/jnpf-java-boot/jnpf-web/src/views/example/equipment/equipment.js @@ -67,6 +67,14 @@ export function getLineList() { }) } +// 获取供应商列表 +export function getSupplierList() { + return request({ + url: '/api/scm/supplier/getSelectList', + method: 'get' + }) +} + // 客户管理字典映射配置(id -> 名称) export const equipmentMaps = { diff --git a/jnpf-java-boot/jnpf-web/src/views/example/equipment/form.vue b/jnpf-java-boot/jnpf-web/src/views/example/equipment/form.vue index e8af8af..b7d085f 100644 --- a/jnpf-java-boot/jnpf-web/src/views/example/equipment/form.vue +++ b/jnpf-java-boot/jnpf-web/src/views/example/equipment/form.vue @@ -53,8 +53,9 @@ - - + + + @@ -138,6 +139,10 @@ export default { lineList: { type: Array, default: () => [] + }, + supplierList: { + type: Array, + default: () => [] } }, data() { @@ -248,6 +253,9 @@ export default { if (this.dataForm.buyDate && typeof this.dataForm.buyDate === 'string') { this.dataForm.buyDate = new Date(this.dataForm.buyDate).getTime(); } + if (this.dataForm.supplier) { + this.dataForm.supplier = String(this.dataForm.supplier); + } this.loading = false; }).catch(() => { this.loading = false; @@ -288,6 +296,7 @@ export default { const line = this.lineList.find(item => item.id === lineId); this.dataForm.lineName = line ? (line.name || line.lineName) : undefined; }, + dataFormSubmit() { this.$refs.formRef.validate((valid) => { if (valid) { diff --git a/jnpf-java-boot/jnpf-web/src/views/example/equipment/index.vue b/jnpf-java-boot/jnpf-web/src/views/example/equipment/index.vue index 61163bb..0b0712f 100644 --- a/jnpf-java-boot/jnpf-web/src/views/example/equipment/index.vue +++ b/jnpf-java-boot/jnpf-web/src/views/example/equipment/index.vue @@ -87,7 +87,11 @@ - + + + @@ -116,12 +120,12 @@ @pagination="initData"/> - + diff --git a/jnpf-java-boot/jnpf-web/src/views/example/supplier/form.vue b/jnpf-java-boot/jnpf-web/src/views/example/supplier/form.vue index 35c3f62..645f69a 100644 --- a/jnpf-java-boot/jnpf-web/src/views/example/supplier/form.vue +++ b/jnpf-java-boot/jnpf-web/src/views/example/supplier/form.vue @@ -235,4 +235,4 @@ export default { }, }, }; - + \ No newline at end of file diff --git a/jnpf-java-boot/jnpf-web/src/views/example/techproc/form.vue b/jnpf-java-boot/jnpf-web/src/views/example/techproc/form.vue index d17bddf..33559df 100644 --- a/jnpf-java-boot/jnpf-web/src/views/example/techproc/form.vue +++ b/jnpf-java-boot/jnpf-web/src/views/example/techproc/form.vue @@ -60,6 +60,8 @@ export default { props: [], data() { return { + // 统一分割符号定义 + PROC_SEPARATOR: '-', dialogVisible: false, loading: false, btnLoading: false, @@ -137,9 +139,12 @@ export default { this.dataForm = res.data // 将存储的编码拼接转换为名称拼接显示 this.techProcDisplay = this.convertCodeToName(res.data.techProc) - // 自动选中表格中的工序 - this.setSelectedRows(res.data.procList || res.data.techProc) + // 先设置 loading = false 让表格渲染 this.loading = false + // 等待表格渲染完成后再设置选中行 + this.$nextTick(() => { + this.setSelectedRows(res.data.procList || res.data.techProc) + }) }) } else { this.loading = false @@ -164,37 +169,49 @@ export default { if (!codeStr) { return '' } - const codes = codeStr.split('_') + const codes = codeStr.split(this.PROC_SEPARATOR) const names = codes.map(code => { const proc = this.procList.find(item => item.procCd === code) return proc ? proc.procName : code }) - return names.join('_') + return names.join(this.PROC_SEPARATOR) }, // 设置表格选中行 setSelectedRows(procCodes) { - if (!procCodes || !this.$refs.procTable) { + if (!procCodes || !this.$refs.procTable || this.procList.length === 0) { return } let codes = [] if (Array.isArray(procCodes)) { - // 如果是数组 - codes = procCodes + // 如果是数组,提取编码(可能是对象数组或编码数组) + if (procCodes.length > 0 && typeof procCodes[0] === 'object') { + // 对象数组,提取 procCd 字段 + codes = procCodes.map(item => item.procCd || item.id || item) + } else { + // 编码数组 + codes = procCodes + } } else if (typeof procCodes === 'string') { // 如果是编码拼接字符串 - codes = procCodes.split('_') + codes = procCodes.split(this.PROC_SEPARATOR) } + // 先清除所有选中状态 + this.$refs.procTable.clearSelection() + if (codes.length > 0) { - const selectedRows = this.procList.filter(item => codes.includes(item.procCd)) + // 使用字符串比较,确保类型一致 + const codeSet = new Set(codes.map(c => String(c))) + const selectedRows = this.procList.filter(item => codeSet.has(String(item.procCd))) this.selectedProcs = selectedRows - // 延迟执行以确保表格已渲染 - setTimeout(() => { + + // 使用 nextTick 确保表格已渲染 + this.$nextTick(() => { selectedRows.forEach(row => { this.$refs.procTable.toggleRowSelection(row, true) }) - }, 100) + }) } }, // 工序选择变化处理 - 按列表顺序排列 @@ -205,9 +222,9 @@ export default { // 按列表顺序过滤选中的工序 const sortedSelected = this.procList.filter(item => selectedCodes.has(item.procCd)); // 显示用:工序名称拼接(按列表顺序) - this.techProcDisplay = sortedSelected.map(item => item.procName).join('_'); + this.techProcDisplay = sortedSelected.map(item => item.procName).join(this.PROC_SEPARATOR); // 存储用:工序编码拼接(按列表顺序) - this.dataForm.techProc = sortedSelected.map(item => item.procCd).join('_'); + this.dataForm.techProc = sortedSelected.map(item => item.procCd).join(this.PROC_SEPARATOR); // 保存选中的工序编码列表(按列表顺序) this.dataForm.procList = sortedSelected.map(item => item.procCd); }, diff --git a/jnpf-java-boot/jnpf-web/src/views/example/techproc/index.vue b/jnpf-java-boot/jnpf-web/src/views/example/techproc/index.vue index 559f841..df1737b 100644 --- a/jnpf-java-boot/jnpf-web/src/views/example/techproc/index.vue +++ b/jnpf-java-boot/jnpf-web/src/views/example/techproc/index.vue @@ -73,6 +73,8 @@ export default { }, data() { return { + // 统一分割符号定义 + PROC_SEPARATOR: '-', keyword: "", query: { techProc: undefined, @@ -127,12 +129,12 @@ export default { // 将编码拼接转换为名称拼接 convertCodeToName(codeStr) { if (!codeStr) return ''; - const codes = codeStr.split('_'); + const codes = codeStr.split(this.PROC_SEPARATOR); const names = codes.map(code => { const proc = this.procList.find(item => item.procCd === code); return proc ? proc.procName : code; }); - return names.join('_'); + return names.join(this.PROC_SEPARATOR); }, initData() { this.listLoading = true;