Browse Source

新增treeSelect

shibei_master
YUJT 3 years ago
parent
commit
a2481ad34f
  1. 1
      package.json
  2. 50
      src/utils/treeSelect.js
  3. 0
      src/views/modules/plugins/power/.gitkeep
  4. 109
      src/views/modules/plugins/power/poweraxis.vue

1
package.json

@ -16,6 +16,7 @@
"et:list": "gulp themes" "et:list": "gulp themes"
}, },
"dependencies": { "dependencies": {
"@riophae/vue-treeselect": "^0.4.0",
"@tinymce/tinymce-vue": "^4.0.4", "@tinymce/tinymce-vue": "^4.0.4",
"axios": "^0.19.0", "axios": "^0.19.0",
"babel-eslint": "^8.0.1", "babel-eslint": "^8.0.1",

50
src/utils/treeSelect.js

@ -0,0 +1,50 @@
/**
* 构造树型结构数据
* @param {*} data 数据源
* @param {*} id id字段 默认 'id'
* @param {*} parentId 父节点字段 默认 'parentId'
* @param {*} children 孩子节点字段 默认 'children'
*/
export function handleTree(data, id, parentId, children) {
let config = {
id: id || 'id',
parentId: parentId || 'parentId',
childrenList: children || 'children'
};
var childrenListMap = {};
var nodeIds = {};
var tree = [];
for (let d of data) {
let parentId = d[config.parentId];
if (childrenListMap[parentId] == null) {
childrenListMap[parentId] = [];
}
nodeIds[d[config.id]] = d;
childrenListMap[parentId].push(d);
}
for (let d of data) {
let parentId = d[config.parentId];
if (nodeIds[parentId] == null) {
tree.push(d);
}
}
for (let t of tree) {
adaptToChildrenList(t);
}
function adaptToChildrenList(o) {
if (childrenListMap[o[config.id]] !== null) {
o[config.childrenList] = childrenListMap[o[config.id]];
}
if (o[config.childrenList]) {
for (let c of o[config.childrenList]) {
adaptToChildrenList(c);
}
}
}
return tree;
}

0
src/views/modules/plugins/power/.gitkeep

109
src/views/modules/plugins/power/poweraxis.vue

@ -2,15 +2,10 @@
<div> <div>
<el-form :model="queryParams" ref="queryForm" :inline="true"> <el-form :model="queryParams" ref="queryForm" :inline="true">
<el-form-item label="部门名称" prop="deptName"> <el-form-item label="部门名称" prop="deptName">
<el-input <el-input v-model="queryParams.axisName" placeholder="请输入部门名称" clearable size="small" />
v-model="queryParams.name"
placeholder="请输入部门名称"
clearable
size="small"
/>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="queryByName" <el-button type="primary" icon="el-icon-search" size="mini" @click="initTreeData"
>搜索</el-button >搜索</el-button
> >
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery" >重置</el-button> <el-button icon="el-icon-refresh" size="mini" @click="resetQuery" >重置</el-button>
@ -33,29 +28,21 @@
<!-- 列表表格 --> <!-- 列表表格 -->
<el-table <el-table
height="500px" height="500px"
:data="treeList" :data="powerAxisTreeList"
:default-expand-all="isExpandAll" :default-expand-all="isExpandAll"
v-if="refreshTable" v-if="refreshTable" row-key="id"
row-key="id"
:tree-props="{children: 'children', hasChildren: 'hasChildren'}" :tree-props="{children: 'children', hasChildren: 'hasChildren'}"
> >
<el-table-column prop="name" label="部门名称" width="260"></el-table-column> <el-table-column prop="name" label="动力主轴"></el-table-column>
<el-table-column prop="sort" label="排序" width="260"></el-table-column> <el-table-column prop="sort" label="排序" ></el-table-column>
<el-table-column prop="agencyName" label="组织名称" width="260"></el-table-column> <el-table-column prop="categoryCode" label="类别" ></el-table-column>
<el-table-column prop="leaderName" label="负责人"></el-table-column>
<el-table-column prop="leaderMobile" label="联系方式" ></el-table-column>
<el-table-column prop="sort" label="排序"></el-table-column>
<el-table-column label="操作" align="center"> <el-table-column label="操作" align="center">
<template slot-scope="row"> <template slot-scope="row">
<el-button <el-button size="mini" type="text" icon="el-icon-edit">修改</el-button>
size="mini" <el-button size="mini" type="text" icon="el-icon-edit" @click="del(row)">删除</el-button>
type="text"
icon="el-icon-edit">
修改</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="del(row)">
删除</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
@ -134,7 +121,11 @@
<script> <script>
import { requestPost } from "@/js/dai/request"; import { requestPost } from "@/js/dai/request";
import { handleTree } from "@/utils/treeSelect";
import Treeselect from "@riophae/vue-treeselect";
import "@riophae/vue-treeselect/dist/vue-treeselect.css";
export default { export default {
components: { Treeselect },
data(){ data(){
return{ return{
// //
@ -144,7 +135,12 @@ export default {
agencyId:'', agencyId:'',
// //
queryParams:{ queryParams:{
name:'' // ID
agencyId: '',
//
axisName: '',
//
leaderName: ''
}, },
// //
addOrgForm:{ addOrgForm:{
@ -158,7 +154,7 @@ export default {
sort:'' sort:''
}, },
// //
treeList:[], powerAxisTreeList: [],
// //
listSimple:[], listSimple:[],
// //
@ -179,44 +175,14 @@ export default {
}, },
created(){ created(){
// this.getTreeList() // this.getTreeList()
this.getList4Tree() this.initTreeData()
}, },
mounted(){ mounted(){
this.customerId = localStorage.getItem('customerId') this.customerId = localStorage.getItem('customerId')
this.agencyId = localStorage.getItem('agencyId') this.agencyId = localStorage.getItem('agencyId')
}, },
methods:{ methods:{
//
async queryByName(){
const url = '/pli/power/axisStruct/queryDeptByName'
let params = {
name:this.queryParams.name
}
const { data, code, msg } = await requestPost(url,params)
if(code === 0){
this.treeList = data
} else {
this.$message.error(msg)
}
},
//
// async getTreeList(){
// const url = '/pli/power/axisStruct/getTreeList'
// let params = {}
// const { data,code,msg } = await requestPost(url)
// if(code === 0){
// this.treeList = data
// } else {
// this.$message.error(msg)
// }
// },
// //
async submitAddNewOrg(){ async submitAddNewOrg(){
const url = '/pli/power/axisStruct/addOrg' const url = '/pli/power/axisStruct/addOrg'
@ -237,7 +203,6 @@ export default {
this.$message.success("新增成功") this.$message.success("新增成功")
this.addDialogBox = false this.addDialogBox = false
this.addOrgFormRest() this.addOrgFormRest()
this.getList4Tree()
} else { } else {
this.$message.error(msg) this.$message.error(msg)
} }
@ -273,29 +238,26 @@ export default {
this.$message.error(msg) this.$message.error(msg)
} }
}, },
// //
async getList4Tree(){ async getGridPartyBranchList(){
const url = '/pli/power/axisStruct/list4Tree' const url = '/pli/power/axisStruct/GridPartyBranchList'
let params = {} let params = {}
const { data, code, msg } = await requestPost(url,params) },
//
async initTreeData () {
const url = '/pli/power/axisStruct/list4Tree'
const { data, code, msg } = await requestPost(url, this.queryParams)
if (code === 0) { if (code === 0) {
this.treeList = data this.powerAxisTreeList = handleTree(data, 'id', 'pid');
} else { } else {
this.$message.error(msg) this.$message.error(msg)
} }
}, },
//
async getGridPartyBranchList(){
const url = '/pli/power/axisStruct/GridPartyBranchList'
let params = {}
},
// //
addNewOrg(){ addNewOrg(){
@ -307,7 +269,7 @@ export default {
/** 重置按钮操作 */ /** 重置按钮操作 */
resetQuery() { resetQuery() {
this.queryParams.name = '' this.queryParams.name = ''
this.getList4Tree() this.initTreeData()
}, },
/** 展开/折叠操作 */ /** 展开/折叠操作 */
toggleExpandAll() { toggleExpandAll() {
@ -376,7 +338,6 @@ export default {
if (code === 0) { if (code === 0) {
this.$message.success("删除成功") this.$message.success("删除成功")
this.delWindow = false this.delWindow = false
this.getList4Tree()
} else { } else {
this.$message.error(msg) this.$message.error(msg)
} }

Loading…
Cancel
Save