|
@@ -0,0 +1,279 @@
|
|
|
+<template>
|
|
|
+ <!-- 架构主页面 -->
|
|
|
+ <div class="framework">
|
|
|
+
|
|
|
+ <el-container>
|
|
|
+ <el-header>
|
|
|
+ <div>
|
|
|
+ <p style="margin-left: 10px;">产品名称:Header</p>
|
|
|
+ </div>
|
|
|
+ </el-header>
|
|
|
+ <el-container>
|
|
|
+ <el-aside width="380px" style="height: 100%;padding: 10px;">
|
|
|
+ <div style="display:flex;margin-bottom:10px;">
|
|
|
+ <el-input v-model="productName" size="small" placeholder="请输入产品名称" style="margin-right:10px;"></el-input>
|
|
|
+ <el-button type="primary" size="small" @click="handleQuery">查询</el-button>
|
|
|
+ <el-button type="primary" size="small" @click="handleAppend">新增分类节点</el-button>
|
|
|
+ </div>
|
|
|
+ <div>
|
|
|
+ <el-tree :data="treeData" :props="defaultProps" @node-click="handleNodeClick">
|
|
|
+ <!-- <el-tree ref="tree" :data="treeData" :props="treeProps" :current-node-key="parentId" @node-click="handleNodeClick" node-key="id" :default-checked-keys="expandedKeys" :highlight-current="true" :default-expanded-keys="expandedKeys" :expand-on-click-node="false"> -->
|
|
|
+ <span class="custom-tree-node" slot-scope="{ node, data }">
|
|
|
+ <span>{{ node.label }}</span>
|
|
|
+ <span style="padding-left: 10px;">
|
|
|
+ <el-button type="text" size="mini" @click.stop.native="append(data, node)">
|
|
|
+ <el-tooltip class="item" effect="dark" content="添加子级分类节点" placement="bottom-start">
|
|
|
+ <i class="el-icon-plus" style="font-size: 16px;"></i>
|
|
|
+ </el-tooltip>
|
|
|
+ </el-button>
|
|
|
+ </span>
|
|
|
+ <span style="padding-left: 10px;">
|
|
|
+ <el-button type="text" size="mini" @click.stop.native="edit(data, node)">
|
|
|
+ <el-tooltip class="item" effect="dark" content="编辑分类节点" placement="bottom-start">
|
|
|
+ <i class="el-icon-edit-outline" style="font-size: 16px;"></i>
|
|
|
+ </el-tooltip>
|
|
|
+ </el-button>
|
|
|
+ </span>
|
|
|
+ <span style="padding-left: 10px;">
|
|
|
+ <el-button type="text" size="mini" @click.stop.native="remove(data, node)">
|
|
|
+ <el-tooltip class="item" effect="dark" content="删除分类节点" placement="bottom-start">
|
|
|
+ <i class="el-icon-delete" style="font-size: 16px;"></i>
|
|
|
+ </el-tooltip>
|
|
|
+ </el-button>
|
|
|
+ </span>
|
|
|
+ </span>
|
|
|
+ </el-tree>
|
|
|
+ </div>
|
|
|
+ </el-aside>
|
|
|
+ <el-container>
|
|
|
+ <el-main>
|
|
|
+ <component :is="componentType" :tableData="tableData" :queryParams="queryParams" @option="handleOption"></component>
|
|
|
+ </el-main>
|
|
|
+ <el-footer>
|
|
|
+ <el-pagination background layout="total, prev, pager, next, jumper" :current-page.sync="queryParams.current"
|
|
|
+ :page-size.sync="queryParams.size" @current-change="handleCurrentChange" :total="total">
|
|
|
+ </el-pagination>
|
|
|
+ </el-footer>
|
|
|
+ </el-container>
|
|
|
+ </el-container>
|
|
|
+ </el-container>
|
|
|
+
|
|
|
+ <classifyNode ref="classifyNode"></classifyNode>
|
|
|
+ </div>
|
|
|
+</template>
|
|
|
+
|
|
|
+<script>
|
|
|
+import frameworkTable from './view/table.vue'
|
|
|
+import classifyNode from '../dialog/classifyNode.vue';
|
|
|
+export default {
|
|
|
+ components: {
|
|
|
+ frameworkTable,
|
|
|
+ classifyNode
|
|
|
+ },
|
|
|
+ data() {
|
|
|
+ return {
|
|
|
+ // 控制显示哪一种视图
|
|
|
+ componentType: 'frameworkTable',
|
|
|
+ // 查询产品名称数据
|
|
|
+ productName: '',
|
|
|
+ // 树形组件的数据源
|
|
|
+ treeData: [
|
|
|
+
|
|
|
+ {
|
|
|
+ "id": 200,
|
|
|
+ "parentId": 0,
|
|
|
+ "structureName": "测试2",
|
|
|
+ "path": "0,200",
|
|
|
+ "pathName": "测试2/",
|
|
|
+ "productId": 43,
|
|
|
+ "pictures": [],
|
|
|
+ "children": [
|
|
|
+ {
|
|
|
+ "id": 201,
|
|
|
+ "parentId": 200,
|
|
|
+ "structureName": "测试2.1",
|
|
|
+ "path": "0,200,201",
|
|
|
+ "pathName": "测试2/测试2.1/",
|
|
|
+ "productId": 43,
|
|
|
+ "pictures": [
|
|
|
+ {
|
|
|
+ "id": 60,
|
|
|
+ "structureId": 201,
|
|
|
+ "name": "98",
|
|
|
+ "suffix": "jpg",
|
|
|
+ "url": "/20230511/52caccb536774dd49e476a0762acf842.jpg"
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ "children": [
|
|
|
+ {
|
|
|
+ "id": 202,
|
|
|
+ "parentId": 201,
|
|
|
+ "structureName": "测试2.3",
|
|
|
+ "path": "0,200,201,202",
|
|
|
+ "pathName": "测试2/测试2.1/测试2.3/",
|
|
|
+ "productId": 43,
|
|
|
+ "pictures": [],
|
|
|
+ "children": [
|
|
|
+ {
|
|
|
+ "id": 203,
|
|
|
+ "parentId": 202,
|
|
|
+ "structureName": "大伏笔",
|
|
|
+ "path": "0,200,201,202,203",
|
|
|
+ "pathName": "测试2/测试2.1/测试2.3/大伏笔/",
|
|
|
+ "productId": 43,
|
|
|
+ "pictures": [],
|
|
|
+ "children": [],
|
|
|
+ "patentNum": 0,
|
|
|
+ "createPersonName": "测试",
|
|
|
+ "createTime": "2023-05-10 16:27:40"
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ "patentNum": 0,
|
|
|
+ "createPersonName": "测试",
|
|
|
+ "createTime": "2023-05-10 16:27:27"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "id": 225,
|
|
|
+ "parentId": 201,
|
|
|
+ "structureName": "测试3",
|
|
|
+ "path": "0,200,201,225",
|
|
|
+ "pathName": "测试2/测试2.1/测试3/",
|
|
|
+ "productId": 43,
|
|
|
+ "pictures": [],
|
|
|
+ "children": [],
|
|
|
+ "patentNum": 0,
|
|
|
+ "createPersonName": "测试",
|
|
|
+ "createTime": "2023-05-11 17:28:06"
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ "patentNum": 0,
|
|
|
+ "createPersonName": "测试",
|
|
|
+ "createTime": "2023-05-10 16:27:19"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "id": 227,
|
|
|
+ "parentId": 200,
|
|
|
+ "structureName": "新增节点",
|
|
|
+ "path": "0,200,227",
|
|
|
+ "pathName": "测试2/新增节点/",
|
|
|
+ "productId": 43,
|
|
|
+ "pictures": [],
|
|
|
+ "children": [],
|
|
|
+ "patentNum": 0,
|
|
|
+ "createPersonName": "测试",
|
|
|
+ "createTime": "2023-05-12 08:50:37"
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ "patentNum": 0,
|
|
|
+ "createPersonName": "测试",
|
|
|
+ "createTime": "2023-05-10 16:27:12"
|
|
|
+ }
|
|
|
+
|
|
|
+ ],
|
|
|
+ defaultProps: {
|
|
|
+ children: 'children',
|
|
|
+ label: 'structureName'
|
|
|
+ },
|
|
|
+ // 查询架构表格数据字段
|
|
|
+ queryParams: {
|
|
|
+ current: 1,
|
|
|
+ size: 10,
|
|
|
+ },
|
|
|
+ // 架构表格数据总条数
|
|
|
+ total: 0,
|
|
|
+ // 架构表格数据源
|
|
|
+ tableData: [
|
|
|
+ {
|
|
|
+ "id": 202,
|
|
|
+ "parentId": 201,
|
|
|
+ "structureName": "测试2.3",
|
|
|
+ "path": "0,200,201,202",
|
|
|
+ "pathName": "测试2/测试2.1/测试2.3/",
|
|
|
+ "productId": 43,
|
|
|
+ "pictures": [],
|
|
|
+ "patentNum": 0,
|
|
|
+ "createPersonName": "测试",
|
|
|
+ "createTime": "2023-05-10 16:27:27"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "id": 225,
|
|
|
+ "parentId": 201,
|
|
|
+ "structureName": "测试3",
|
|
|
+ "path": "0,200,201,225",
|
|
|
+ "pathName": "测试2/测试2.1/测试3/",
|
|
|
+ "productId": 43,
|
|
|
+ "pictures": [],
|
|
|
+ "children": [],
|
|
|
+ "patentNum": 0,
|
|
|
+ "createPersonName": "测试",
|
|
|
+ "createTime": "2023-05-11 17:28:06"
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ }
|
|
|
+ },
|
|
|
+ mounted() {
|
|
|
+
|
|
|
+ },
|
|
|
+ methods: {
|
|
|
+ // 子组件传来的值
|
|
|
+ handleOption({ val, row }) {
|
|
|
+ console.log(val, row);
|
|
|
+ switch (val) {
|
|
|
+ case '0'://编辑
|
|
|
+ row.isAppend=2
|
|
|
+ this.$refs.classifyNode.open(row)
|
|
|
+ break;
|
|
|
+
|
|
|
+ default:
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ },
|
|
|
+ // 按钮新增分类节点/树节点新增
|
|
|
+ handleAppend() {
|
|
|
+ this.$refs.classifyNode.open({isAppend:1})
|
|
|
+ },
|
|
|
+ // 根据产品名称查询产品
|
|
|
+ handleQuery() {
|
|
|
+
|
|
|
+ },
|
|
|
+ append(data, node) {
|
|
|
+ data.isAppend = 1
|
|
|
+ this.$refs.classifyNode.open(data)
|
|
|
+ // console.log(data, node);
|
|
|
+ },
|
|
|
+ // 树节点编辑
|
|
|
+ edit(data, node) {
|
|
|
+ data.isAppend = 2
|
|
|
+ this.$refs.classifyNode.open(data)
|
|
|
+ // console.log(data, node);
|
|
|
+ },
|
|
|
+ // 树节点删除
|
|
|
+ remove(data, node) {
|
|
|
+ // console.log(data, node);
|
|
|
+ },
|
|
|
+ // 树节点点击事件
|
|
|
+ handleNodeClick(data, node) {
|
|
|
+ // console.log(data, node);
|
|
|
+ if (data.children && data.children.length>0) {
|
|
|
+ this.tableData=data.children
|
|
|
+ }
|
|
|
+ },
|
|
|
+ // 分页
|
|
|
+ handleCurrentChange(val) { },
|
|
|
+ },
|
|
|
+}
|
|
|
+</script>
|
|
|
+
|
|
|
+<style lang="scss">
|
|
|
+.framework {
|
|
|
+ .el-divider--horizontal {
|
|
|
+ margin: 15px 0,
|
|
|
+ }
|
|
|
+
|
|
|
+}
|
|
|
+</style>
|
|
|
+<style lang="scss" scoped>
|
|
|
+.framework {
|
|
|
+
|
|
|
+}
|
|
|
+</style>
|