From 4340b1a5b7657d4b9cb994c105ebcd6eb63ab8ba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?lemon=E6=A9=AA?= <17633066053@163.com> Date: Wed, 30 Jun 2021 14:28:50 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E4=BC=98=E5=8C=96=E5=95=86=E5=93=81?= =?UTF-8?q?=E5=88=86=E7=B1=BB=EF=BC=8C=E9=9A=90=E8=97=8F=E6=B2=A1=E7=94=A8?= =?UTF-8?q?=E7=9A=84=E6=A5=BC=E5=B1=82=E8=A3=85=E4=BF=AE=E5=BC=B9=E7=AA=97?= =?UTF-8?q?=E7=9A=84=E6=A0=B7=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/views/goods/goods-manage/category.vue | 117 +++++++++++------- .../src/views/lili-dialog/template/pages.vue | 9 +- 2 files changed, 77 insertions(+), 49 deletions(-) diff --git a/manager/src/views/goods/goods-manage/category.vue b/manager/src/views/goods/goods-manage/category.vue index deacb087..144de5d4 100644 --- a/manager/src/views/goods/goods-manage/category.vue +++ b/manager/src/views/goods/goods-manage/category.vue @@ -2,13 +2,8 @@
- 选择分类: - -
- + - +
@@ -132,19 +127,17 @@ import { saveCategorySpec, getCategoryTree, } from "@/api/goods"; -import TreeTable from "@/views/my-components/tree-table/Table/Table"; + import uploadPicInput from "@/views/my-components/lili/upload-pic-input"; export default { name: "lili-components", components: { - TreeTable, uploadPicInput, }, data() { return { categoryList: [], // 分类列表 - sortCateList: [], //筛选出分类第一级 sortCate: "", //筛选的数据 loading: false, // 加载状态 selectCount: 0, // 选择数量 @@ -184,47 +177,44 @@ export default { { title: "分类名称", key: "name", - minWidth: "120px", + tree: true, }, { title: "状态", key: "deleteFlag", - headerAlign: "center", - type: "template", - template: "deleteFlag", + + slot: "deleteFlag", }, { - title: "佣金(%)", + title: "佣金", key: "commissionRate", - headerAlign: "center", - type: "template", - template: "commissionRate", + + slot: "commissionRate", }, { fixed: "right", title: "操作", key: "action", - align: "left", - headerAlign: "center", - type: "template", - template: "action", + + slot: "action", }, ], tableData: [], categoryIndex: 0, + checkedCategoryChildren: "", //选中的分类子级 }; }, methods: { - changeSortCate(val) { - let way = this.categoryList.find((item, index) => { - if (item.name == val) { - this.categoryIndex = index; - console.log((this.categoryIndex = index)); - return item.name == val; - } - }); - this.tableData = [way]; - }, + // changeSortCate(val) { + // let way = this.categoryList.find((item, index) => { + // if (item.name == val) { + // this.categoryIndex = index; + // console.log((this.categoryIndex = index)); + // return item.name == val; + // } + // }); + // this.tableData = [way]; + // }, init() { this.getAllList(0); this.getBrandList(); @@ -240,7 +230,6 @@ export default { getSpecList() { getSpecificationList().then((res) => { if (res.length != 0) { - this.specifications = res; } }); @@ -379,26 +368,64 @@ export default { }, }); }, + + // 异步手动加载分类名称 + handleLoadData(item, callback) { + console.warn(item); + if (item.level == 0) { + let categoryList = JSON.parse(JSON.stringify(this.categoryList)); + categoryList.forEach((val) => { + if (val.id == item.id) { + val.children.map((child) => { + child._loading = false; + child.children = []; + }); + // 模拟加载 + setTimeout(() => { + callback(val.children); + }, 1000); + } + }); + } else { + this.deepCategoryChildren(item.id, this.categoryList); + console.log(this.checkedCategoryChildren); + setTimeout(() => { + callback(this.checkedCategoryChildren); + }, 1000); + } + }, + + // 通过递归children来实现手动加载数据 + deepCategoryChildren(id, list) { + if (id != "0" && list.length != 0) { + for (let i = 0; i < list.length; i++) { + let item = list[i]; + if (item.id == id) { + this.checkedCategoryChildren = item.children; + return; + } else { + this.deepCategoryChildren(id, item.children); + } + } + } + }, + getAllList(parent_id) { - this.sortCateList = []; this.loading = true; getCategoryTree(parent_id).then((res) => { this.loading = false; if (res.success) { localStorage.setItem("category", JSON.stringify(res.result)); - res.result.forEach((e, index, arr) => { - this.sortCateList.push({ - label: e.name, - value: e.name, - }); - this.sortCate = arr[0].name; + this.categoryList = JSON.parse(JSON.stringify(res.result)); + this.tableData = res.result.map((item) => { + if (item.children.length != 0) { + item.children = []; + item._loading = false; + } + return item; }); - this.categoryList = res.result; - - this.$nextTick(() => { - this.$set(this, "tableData", [res.result[this.categoryIndex]]); - }); + console.log(this.tableData); } }); }, diff --git a/manager/src/views/lili-dialog/template/pages.vue b/manager/src/views/lili-dialog/template/pages.vue index 8a151a3f..659b83cf 100644 --- a/manager/src/views/lili-dialog/template/pages.vue +++ b/manager/src/views/lili-dialog/template/pages.vue @@ -1,10 +1,11 @@