From 1613117ecef22e770443937b188672649bb4fc72 Mon Sep 17 00:00:00 2001 From: liuxy Date: Mon, 5 Sep 2022 15:10:01 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DevicemaintenanceitemsServiceImpl.java | 18 ++++ .../impl/DevicerepairitemsServiceImpl.java | 17 ++++ .../em/wql/QEM_BI_DEVICEMAINTAIN001.wql | 23 ++++-- .../em/wql/QEM_BI_DEVICEREPAIRITEMS01.wql | 19 +++-- .../java/org/nl/wms/basedata/em/wql/em.xls | Bin 311296 -> 309248 bytes .../wms/basedata/em/devicemaintain/index.vue | 77 +++++++++++++++++- .../basedata/em/devicerepairitems/index.vue | 77 +++++++++++++++++- .../sb/repair/devicerepairplan/ItemDialog.vue | 58 ++++++++++++- .../devicemaintenanceplan/DeviceDialog.vue | 5 +- .../devicemaintenanceplan/ItemDialog.vue | 64 ++++++++++++++- 10 files changed, 333 insertions(+), 25 deletions(-) diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/basedata/em/service/impl/DevicemaintenanceitemsServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/basedata/em/service/impl/DevicemaintenanceitemsServiceImpl.java index d98873a6..d60897b5 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/basedata/em/service/impl/DevicemaintenanceitemsServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/basedata/em/service/impl/DevicemaintenanceitemsServiceImpl.java @@ -3,12 +3,14 @@ package org.nl.wms.basedata.em.service.impl; import cn.hutool.core.map.MapUtil; +import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSON; import lombok.RequiredArgsConstructor; import org.nl.exception.BadRequestException; import org.nl.modules.system.util.CodeUtil; import org.nl.wms.basedata.em.service.DevicemaintenanceitemsService; import org.nl.wms.basedata.em.service.dto.DevicemaintenanceitemsDto; +import org.nl.wms.basedata.master.service.ClassstandardService; import org.nl.wql.WQL; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -40,8 +42,13 @@ import cn.hutool.core.util.ObjectUtil; @Slf4j public class DevicemaintenanceitemsServiceImpl implements DevicemaintenanceitemsService { + private final ClassstandardService classstandardService; + @Override public Map queryAll(Map whereJson, Pageable page) { + String material_type_id = MapUtil.getStr(whereJson, "material_type_id"); + String class_idStr = (String) whereJson.get("class_idStr"); + String maint_item_code = MapUtil.getStr(whereJson, "maint_item_code"); String contents = MapUtil.getStr(whereJson, "contents"); String requirement = MapUtil.getStr(whereJson, "requirement"); @@ -54,6 +61,15 @@ public class DevicemaintenanceitemsServiceImpl implements Devicemaintenanceitems if (ObjectUtil.isNotEmpty(contents)) map.put("contents","%"+contents+"%"); if (ObjectUtil.isNotEmpty(requirement)) map.put("requirement","%"+requirement+"%"); + //处理物料当前节点的所有子节点 + if (!StrUtil.isEmpty(material_type_id)) { + map.put("material_type_id", material_type_id); + String classIds = classstandardService.getChildIdStr(material_type_id); + map.put("classIds", classIds); + } else if (ObjectUtil.isNotEmpty(class_idStr)) { + String classIds = classstandardService.getAllChildIdStr(class_idStr); + map.put("classIds", classIds); + } JSONObject json = WQL.getWO("QEM_BI_DEVICEMAINTAIN001").addParamMap(map).pageQuery(WqlUtil.getHttpContext(page), "update_time DESC"); return json; } @@ -97,6 +113,7 @@ public class DevicemaintenanceitemsServiceImpl implements Devicemaintenanceitems json.put("maint_item_id", IdUtil.getSnowflake(1,1).nextId()); json.put("maint_item_code", CodeUtil.getNewCode("MAINT_ITEM_CODE")); json.put("maint_item_name", whereJson.getString("maint_item_name")); + json.put("material_type_id", whereJson.get("material_type_id")); json.put("item_level", whereJson.getString("item_level")); json.put("contents", whereJson.getString("contents")); json.put("requirement", whereJson.getString("requirement")); @@ -121,6 +138,7 @@ public class DevicemaintenanceitemsServiceImpl implements Devicemaintenanceitems JSONObject json = wo.query("maint_item_id = '" + whereJson.getString("maint_item_id") + "'").uniqueResult(0); json.put("maint_item_name", whereJson.getString("maint_item_name")); + json.put("material_type_id", whereJson.get("material_type_id")); json.put("item_level", whereJson.getString("item_level")); json.put("contents", whereJson.getString("contents")); json.put("requirement", whereJson.getString("requirement")); diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/basedata/em/service/impl/DevicerepairitemsServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/basedata/em/service/impl/DevicerepairitemsServiceImpl.java index 61ae4063..34b82787 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/basedata/em/service/impl/DevicerepairitemsServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/basedata/em/service/impl/DevicerepairitemsServiceImpl.java @@ -3,12 +3,14 @@ package org.nl.wms.basedata.em.service.impl; import cn.hutool.core.map.MapUtil; +import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSON; import lombok.RequiredArgsConstructor; import org.nl.exception.BadRequestException; import org.nl.modules.system.util.CodeUtil; import org.nl.wms.basedata.em.service.DevicerepairitemsService; import org.nl.wms.basedata.em.service.dto.DevicerepairitemsDto; +import org.nl.wms.basedata.master.service.ClassstandardService; import org.nl.wql.WQL; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -39,9 +41,12 @@ import cn.hutool.core.util.ObjectUtil; @RequiredArgsConstructor @Slf4j public class DevicerepairitemsServiceImpl implements DevicerepairitemsService { + private final ClassstandardService classstandardService; @Override public Map queryAll(Map whereJson, Pageable page) { + String material_type_id = MapUtil.getStr(whereJson, "material_type_id"); + String class_idStr = (String) whereJson.get("class_idStr"); String repair_item_code = MapUtil.getStr(whereJson, "repair_item_code"); String requirement = MapUtil.getStr(whereJson, "requirement"); @@ -50,6 +55,16 @@ public class DevicerepairitemsServiceImpl implements DevicerepairitemsService { if (ObjectUtil.isNotEmpty(repair_item_code)) map.put("repair_item_code","%"+repair_item_code+"%"); if (ObjectUtil.isNotEmpty(requirement)) map.put("requirement","%"+requirement+"%"); + //处理物料当前节点的所有子节点 + if (!StrUtil.isEmpty(material_type_id)) { + map.put("material_type_id", material_type_id); + String classIds = classstandardService.getChildIdStr(material_type_id); + map.put("classIds", classIds); + } else if (ObjectUtil.isNotEmpty(class_idStr)) { + String classIds = classstandardService.getAllChildIdStr(class_idStr); + map.put("classIds", classIds); + } + JSONObject json = WQL.getWO("QEM_BI_DEVICEREPAIRITEMS01").addParamMap(map).pageQuery(WqlUtil.getHttpContext(page), "update_time DESC"); return json; } @@ -93,6 +108,7 @@ public class DevicerepairitemsServiceImpl implements DevicerepairitemsService { json.put("repair_item_id", IdUtil.getSnowflake(1,1).nextId()); json.put("repair_item_code", CodeUtil.getNewCode("REPAIR_ITEM_CODE")); json.put("repair_item_name", whereJson.getString("repair_item_name")); + json.put("material_type_id", whereJson.get("material_type_id")); json.put("requirement", whereJson.getString("requirement")); json.put("remark", whereJson.getString("remark")); json.put("create_id",currentUserId ); @@ -117,6 +133,7 @@ public class DevicerepairitemsServiceImpl implements DevicerepairitemsService { JSONObject json = wo.query("repair_item_id = '" + whereJson.getString("repair_item_id") + "'").uniqueResult(0); json.put("repair_item_name", whereJson.getString("repair_item_name")); + json.put("material_type_id", whereJson.get("material_type_id")); json.put("requirement", whereJson.getString("requirement")); json.put("remark", whereJson.getString("remark")); json.put("update_optid",currentUserId ); diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/basedata/em/wql/QEM_BI_DEVICEMAINTAIN001.wql b/mes/hd/nladmin-system/src/main/java/org/nl/wms/basedata/em/wql/QEM_BI_DEVICEMAINTAIN001.wql index ae0271e6..e27b22bf 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/basedata/em/wql/QEM_BI_DEVICEMAINTAIN001.wql +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/basedata/em/wql/QEM_BI_DEVICEMAINTAIN001.wql @@ -18,6 +18,7 @@ 输入.contents TYPEAS s_string 输入.requirement TYPEAS s_string 输入.item_level TYPEAS s_string + 输入.classIds TYPEAS f_string [临时表] @@ -45,27 +46,33 @@ IF 输入.flag = "1" PAGEQUERY SELECT - * + item.*, + class.class_name FROM - EM_BI_DeviceMaintenanceItems + EM_BI_DeviceMaintenanceItems item + LEFT JOIN md_pb_classstandard class ON item.material_type_id = class.class_id WHERE - is_delete = '0' + item.is_delete = '0' OPTION 输入.item_level <> "" - item_level = 输入.item_level + item.item_level = 输入.item_level ENDOPTION OPTION 输入.maint_item_code <> "" - (maint_item_code like 输入.maint_item_code or - maint_item_name like 输入.maint_item_code) + (item.maint_item_code like 输入.maint_item_code or + item.maint_item_name like 输入.maint_item_code) ENDOPTION OPTION 输入.contents <> "" - contents like 输入.contents + item.contents like 输入.contents ENDOPTION OPTION 输入.requirement <> "" - requirement like 输入.requirement + item.requirement like 输入.requirement + ENDOPTION + + OPTION 输入.classIds <> "" + class.class_id in 输入.classIds ENDOPTION ENDSELECT diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/basedata/em/wql/QEM_BI_DEVICEREPAIRITEMS01.wql b/mes/hd/nladmin-system/src/main/java/org/nl/wms/basedata/em/wql/QEM_BI_DEVICEREPAIRITEMS01.wql index b628695e..dc1f7599 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/basedata/em/wql/QEM_BI_DEVICEREPAIRITEMS01.wql +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/basedata/em/wql/QEM_BI_DEVICEREPAIRITEMS01.wql @@ -16,6 +16,7 @@ 输入.flag TYPEAS s_string 输入.repair_item_code TYPEAS s_string 输入.requirement TYPEAS s_string + 输入.classIds TYPEAS f_string [临时表] @@ -43,19 +44,25 @@ IF 输入.flag = "1" PAGEQUERY SELECT - * + item.*, + class.class_name FROM - EM_BI_DeviceRepairItems + EM_BI_DeviceRepairItems item + LEFT JOIN md_pb_classstandard class ON item.material_type_id = class.class_id WHERE - is_delete = '0' + item.is_delete = '0' + + OPTION 输入.classIds <> "" + class.class_id in 输入.classIds + ENDOPTION OPTION 输入.requirement <> "" - requirement like 输入.requirement + item.requirement like 输入.requirement ENDOPTION OPTION 输入.repair_item_code <> "" - (repair_item_code like 输入.repair_item_code or - repair_item_name like 输入.repair_item_code) + (item.repair_item_code like 输入.repair_item_code or + item.repair_item_name like 输入.repair_item_code) ENDOPTION ENDSELECT diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/basedata/em/wql/em.xls b/mes/hd/nladmin-system/src/main/java/org/nl/wms/basedata/em/wql/em.xls index bf8dedfc7988b0d16dcb971b858465d5f9714b38..48515aced0b7180117339e32404dd413516bb249 100644 GIT binary patch delta 57695 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 aWEz8TH@T>r=p}zNn&w%5wR&r-B>fLkx>*_k delta 59475 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 + + + + + + + + + + + @@ -124,6 +147,7 @@ + @@ -153,11 +177,15 @@ import rrOperation from '@crud/RR.operation' import crudOperation from '@crud/CRUD.operation' import udOperation from '@crud/UD.operation' import pagination from '@crud/Pagination' +import crudClassstandard from '@/api/wms/basedata/master/classstandard' +import Treeselect, { LOAD_CHILDREN_OPTIONS } from '@riophae/vue-treeselect' +import '@riophae/vue-treeselect/dist/vue-treeselect.css' +import crudMaterialbase from '@/api/wms/basedata/master/materialbase' -const defaultForm = { maint_item_id: null, maint_item_code: null, maint_item_name: null, item_level: null, contents: null, requirement: null, acceptancecriteria: null, create_id: null, create_name: null, create_time: null, update_optid: null, update_optname: null, update_time: null, is_delete: null, remark: null } +const defaultForm = { material_type_id: null, maint_item_id: null, maint_item_code: null, maint_item_name: null, item_level: null, contents: null, requirement: null, acceptancecriteria: null, create_id: null, create_name: null, create_time: null, update_optid: null, update_optname: null, update_time: null, is_delete: null, remark: null } export default { name: 'Devicemaintenanceitems', - components: { pagination, crudOperation, rrOperation, udOperation }, + components: { pagination, crudOperation, rrOperation, udOperation, Treeselect }, mixins: [presenter(), header(), form(defaultForm), crud()], cruds() { return CRUD({ @@ -176,6 +204,9 @@ export default { }, data() { return { + classes: [], + class_idStr: null, + materOpt_code: '23', itemLevelList: [ { 'label': '日常', 'value': '01' }, { 'label': '一级', 'value': '02' }, @@ -198,9 +229,23 @@ export default { ], acceptancecriteria: [ { required: true, message: '验收标准不能为空', trigger: 'blur' } + ], + material_type_id: [ + { required: true, message: '设备类别不能为空', trigger: 'blur' } ] }} }, + created() { + const param = { + 'materOpt_code': this.materOpt_code + } + crudMaterialbase.getMaterOptType(param).then(res => { + this.class_idStr = res.class_idStr + this.crud.query.class_idStr = this.class_idStr + this.crud.toQuery() + this.queryClassId() + }) + }, methods: { // 钩子:在获取表格数据之前执行,false 则代表不获取数据 [CRUD.HOOK.beforeRefresh]() { @@ -217,6 +262,34 @@ export default { } else if (row.item_level === '03') { return '二级' } + }, + loadClass({ action, parentNode, callback }) { + if (action === LOAD_CHILDREN_OPTIONS) { + crudClassstandard.getClass({ pid: parentNode.id }).then(res => { + parentNode.children = res.content.map(function(obj) { + if (obj.hasChildren) { + obj.children = null + } + return obj + }) + setTimeout(() => { + callback() + }, 100) + }) + } + }, + queryClassId() { + const param = { + 'class_idStr': this.class_idStr + } + crudClassstandard.queryClassById(param).then(res => { + this.classes = res.content.map(obj => { + if (obj.hasChildren) { + obj.children = null + } + return obj + }) + }) } } } diff --git a/mes/qd/src/views/wms/basedata/em/devicerepairitems/index.vue b/mes/qd/src/views/wms/basedata/em/devicerepairitems/index.vue index 0c64d6d3..9e6a397d 100644 --- a/mes/qd/src/views/wms/basedata/em/devicerepairitems/index.vue +++ b/mes/qd/src/views/wms/basedata/em/devicerepairitems/index.vue @@ -11,6 +11,15 @@ label-width="80px" label-suffix=":" > + + + + + + + + + + + @@ -77,6 +100,7 @@ + @@ -103,11 +127,15 @@ import rrOperation from '@crud/RR.operation' import crudOperation from '@crud/CRUD.operation' import udOperation from '@crud/UD.operation' import pagination from '@crud/Pagination' +import crudClassstandard from '@/api/wms/basedata/master/classstandard' +import Treeselect, { LOAD_CHILDREN_OPTIONS } from '@riophae/vue-treeselect' +import '@riophae/vue-treeselect/dist/vue-treeselect.css' +import crudMaterialbase from '@/api/wms/basedata/master/materialbase' -const defaultForm = { repair_item_id: null, repair_item_code: null, repair_item_name: null, requirement: null, create_id: null, create_name: null, create_time: null, update_optid: null, update_optname: null, update_time: null, is_delete: null, remark: null } +const defaultForm = { material_type_id: null, repair_item_id: null, repair_item_code: null, repair_item_name: null, requirement: null, create_id: null, create_name: null, create_time: null, update_optid: null, update_optname: null, update_time: null, is_delete: null, remark: null } export default { name: 'Devicerepairitems', - components: { pagination, crudOperation, rrOperation, udOperation }, + components: { pagination, crudOperation, rrOperation, udOperation, Treeselect }, mixins: [presenter(), header(), form(defaultForm), crud()], cruds() { return CRUD({ @@ -126,6 +154,9 @@ export default { }, data() { return { + classes: [], + class_idStr: null, + materOpt_code: '23', permission: { }, rules: { @@ -134,13 +165,55 @@ export default { ], requirement: [ { required: true, message: '维修要求不能为空', trigger: 'blur' } + ], + material_type_id: [ + { required: true, message: '设备类别不能为空', trigger: 'blur' } ] }} }, + created() { + const param = { + 'materOpt_code': this.materOpt_code + } + crudMaterialbase.getMaterOptType(param).then(res => { + this.class_idStr = res.class_idStr + this.crud.query.class_idStr = this.class_idStr + this.crud.toQuery() + this.queryClassId() + }) + }, methods: { // 钩子:在获取表格数据之前执行,false 则代表不获取数据 [CRUD.HOOK.beforeRefresh]() { return true + }, + loadClass({ action, parentNode, callback }) { + if (action === LOAD_CHILDREN_OPTIONS) { + crudClassstandard.getClass({ pid: parentNode.id }).then(res => { + parentNode.children = res.content.map(function(obj) { + if (obj.hasChildren) { + obj.children = null + } + return obj + }) + setTimeout(() => { + callback() + }, 100) + }) + } + }, + queryClassId() { + const param = { + 'class_idStr': this.class_idStr + } + crudClassstandard.queryClassById(param).then(res => { + this.classes = res.content.map(obj => { + if (obj.hasChildren) { + obj.children = null + } + return obj + }) + }) } } } diff --git a/mes/qd/src/views/wms/sb/repair/devicerepairplan/ItemDialog.vue b/mes/qd/src/views/wms/sb/repair/devicerepairplan/ItemDialog.vue index 5a903b3f..ff515715 100644 --- a/mes/qd/src/views/wms/sb/repair/devicerepairplan/ItemDialog.vue +++ b/mes/qd/src/views/wms/sb/repair/devicerepairplan/ItemDialog.vue @@ -14,6 +14,15 @@ label-width="80px" label-suffix=":" > + + + + @@ -73,10 +83,14 @@ import CRUD, { header, presenter } from '@crud/crud' import rrOperation from '@crud/RR.operation' import pagination from '@crud/Pagination' import crudDevicerepairitems from '@/api/wms/basedata/em/devicerepairitems' +import crudClassstandard from '@/api/wms/basedata/master/classstandard' +import Treeselect, { LOAD_CHILDREN_OPTIONS } from '@riophae/vue-treeselect' +import '@riophae/vue-treeselect/dist/vue-treeselect.css' +import crudMaterialbase from '@/api/wms/basedata/master/materialbase' export default { name: 'Item', - components: { rrOperation, pagination }, + components: { rrOperation, pagination, Treeselect }, cruds() { return CRUD({ title: '维修项目', @@ -96,6 +110,9 @@ export default { }, data() { return { + classes: [], + class_idStr: null, + materOpt_code: '23', dialogVisible: false, tableRadio: null, checkrow: null, @@ -109,6 +126,17 @@ export default { } } }, + created() { + const param = { + 'materOpt_code': this.materOpt_code + } + crudMaterialbase.getMaterOptType(param).then(res => { + this.class_idStr = res.class_idStr + this.crud.query.class_idStr = this.class_idStr + this.crud.toQuery() + this.queryClassId() + }) + }, methods: { clickChange(item) { this.tableRadio = item @@ -148,6 +176,34 @@ export default { this.crud.resetQuery(false) this.$emit('update:dialogShow', false) this.$emit('tableChanged1', this.rows) + }, + loadClass({ action, parentNode, callback }) { + if (action === LOAD_CHILDREN_OPTIONS) { + crudClassstandard.getClass({ pid: parentNode.id }).then(res => { + parentNode.children = res.content.map(function(obj) { + if (obj.hasChildren) { + obj.children = null + } + return obj + }) + setTimeout(() => { + callback() + }, 100) + }) + } + }, + queryClassId() { + const param = { + 'class_idStr': this.class_idStr + } + crudClassstandard.queryClassById(param).then(res => { + this.classes = res.content.map(obj => { + if (obj.hasChildren) { + obj.children = null + } + return obj + }) + }) } } } diff --git a/mes/qd/src/views/wms/sb/upkeep/devicemaintenanceplan/DeviceDialog.vue b/mes/qd/src/views/wms/sb/upkeep/devicemaintenanceplan/DeviceDialog.vue index 0cbbda13..a75898cf 100644 --- a/mes/qd/src/views/wms/sb/upkeep/devicemaintenanceplan/DeviceDialog.vue +++ b/mes/qd/src/views/wms/sb/upkeep/devicemaintenanceplan/DeviceDialog.vue @@ -48,10 +48,11 @@ + - - + + diff --git a/mes/qd/src/views/wms/sb/upkeep/devicemaintenanceplan/ItemDialog.vue b/mes/qd/src/views/wms/sb/upkeep/devicemaintenanceplan/ItemDialog.vue index 94dfb348..8381192d 100644 --- a/mes/qd/src/views/wms/sb/upkeep/devicemaintenanceplan/ItemDialog.vue +++ b/mes/qd/src/views/wms/sb/upkeep/devicemaintenanceplan/ItemDialog.vue @@ -14,6 +14,15 @@ label-width="80px" label-suffix=":" > + + + - - + + + - + @@ -95,10 +105,14 @@ import CRUD, { header, presenter } from '@crud/crud' import rrOperation from '@crud/RR.operation' import pagination from '@crud/Pagination' import crudDevicemaintenanceitems from '@/api/wms/basedata/em/devicemaintenanceitems' +import crudClassstandard from '@/api/wms/basedata/master/classstandard' +import Treeselect, { LOAD_CHILDREN_OPTIONS } from '@riophae/vue-treeselect' +import '@riophae/vue-treeselect/dist/vue-treeselect.css' +import crudMaterialbase from '@/api/wms/basedata/master/materialbase' export default { name: 'Item', - components: { rrOperation, pagination }, + components: { rrOperation, pagination, Treeselect }, cruds() { return CRUD({ title: '保养项目', @@ -118,6 +132,9 @@ export default { }, data() { return { + classes: [], + class_idStr: null, + materOpt_code: '23', dialogVisible: false, tableRadio: null, checkrow: null, @@ -137,6 +154,17 @@ export default { } } }, + created() { + const param = { + 'materOpt_code': this.materOpt_code + } + crudMaterialbase.getMaterOptType(param).then(res => { + this.class_idStr = res.class_idStr + this.crud.query.class_idStr = this.class_idStr + this.crud.toQuery() + this.queryClassId() + }) + }, methods: { clickChange(item) { this.tableRadio = item @@ -185,6 +213,34 @@ export default { this.crud.resetQuery(false) this.$emit('update:dialogShow', false) this.$emit('tableChanged1', this.rows) + }, + loadClass({ action, parentNode, callback }) { + if (action === LOAD_CHILDREN_OPTIONS) { + crudClassstandard.getClass({ pid: parentNode.id }).then(res => { + parentNode.children = res.content.map(function(obj) { + if (obj.hasChildren) { + obj.children = null + } + return obj + }) + setTimeout(() => { + callback() + }, 100) + }) + } + }, + queryClassId() { + const param = { + 'class_idStr': this.class_idStr + } + crudClassstandard.queryClassById(param).then(res => { + this.classes = res.content.map(obj => { + if (obj.hasChildren) { + obj.children = null + } + return obj + }) + }) } } }