4 changed files with 348 additions and 393 deletions
-
13src/views/mdp/sys/branch/BranchSelect.vue
-
721src/views/mdp/sys/dept/DeptTree.vue
-
4src/views/mdp/sys/user/UserMng.vue
-
3src/views/mdp/sys/user/UsersSelectOnly.vue
@ -1,394 +1,343 @@ |
|||||
<template> |
<template> |
||||
<section> |
|
||||
<el-row> |
|
||||
<el-col :span="24" style="display:inline-block;" > |
|
||||
<el-input style="width:70%;" v-model="deptFilterText" v-if=" showFilter!=false " placeholder="编号、名称过滤" auto-complete="off"></el-input> |
|
||||
<el-button v-if="showConfirm" type="warning" @click.native="confirm">确认</el-button> |
|
||||
<el-popover v-if="!showConfirm && (userInfo.isSuperAdmin==true||userInfo.isPlatformAdmin==true)" |
|
||||
placement="top-start" |
|
||||
title="更多操作" |
|
||||
width="200" |
|
||||
trigger="hover" > |
|
||||
<p> |
|
||||
<el-button type="primary" style="margin-left:10px;margin-top:10px;" icon="el-icon-star-off" v-if="userInfo.isSuperAdmin==true||userInfo.isPlatformAdmin==true" @click.native="showBranchSelect">切换机构</el-button> |
|
||||
<el-button type="warning" style="margin-left:10px;margin-top:10px;" @click.native="goDeptMng" icon="el-icon-setting" title="创建部门、修改部门、设置岗位等">部门管理</el-button> |
|
||||
</p> |
|
||||
<el-button type="warning" icon="el-icon-setting" slot="reference"></el-button> |
|
||||
</el-popover> |
|
||||
<el-button type="warning" v-else @click.native="goDeptMng" icon="el-icon-setting" title="创建部门、修改部门、设置岗位等"></el-button> |
|
||||
|
|
||||
</el-col> |
|
||||
<el-col :span="24"> |
|
||||
<el-tree v-loading="listLoading" |
|
||||
class="filter-tree" |
|
||||
:props="defaultDeptTreeProps" |
|
||||
:filter-node-method="filterDeptNode" |
|
||||
:show-checkbox="showCheckbox" |
|
||||
:expand-on-click-node="expandOnClickNode" |
|
||||
:indent="indent" |
|
||||
:node-key="'deptid'" |
|
||||
:default-expanded-keys="defaultExpandedKeys" |
|
||||
:default-checked-keys="defaultCheckedKeys" |
|
||||
auto-expand-parent |
|
||||
highlight-current |
|
||||
style="min-height:100px;" |
|
||||
@check-change="handleCheckChange" |
|
||||
@current-change="handleCurrentChange" |
|
||||
@node-click="handleNodeClick" |
|
||||
:check-on-click-node="true" |
|
||||
check-strictly |
|
||||
:render-content="renderContent" |
|
||||
lazy |
|
||||
:load="loadNode" |
|
||||
ref="deptTree"> |
|
||||
</el-tree> |
|
||||
</el-col> |
|
||||
<el-dialog title="机构选择" :visible.sync="branchVisible" width="50%" top="20" :close-on-click-modal="false" append-to-body> |
|
||||
<branch-select :visible="branchVisible" @cancel="branchVisible=false" @row-click="branchRowClick"></branch-select> |
|
||||
</el-dialog> |
|
||||
|
|
||||
</el-row> |
|
||||
</section> |
|
||||
</template> |
|
||||
|
|
||||
<script> |
|
||||
import util from '../../../../common/js/util' |
|
||||
import { listTreeDept } from '../../../../api/mdp/sys/dept'; |
|
||||
import BranchSelect from '../branch/BranchSelect';//机构选择 |
|
||||
import { mapGetters } from 'vuex' |
|
||||
|
|
||||
export default { |
|
||||
watch: { |
|
||||
deptFilterText(val) { |
|
||||
this.$refs.deptTree.filter(val); |
|
||||
}, |
|
||||
checkedKeys(val){ |
|
||||
this.$refs.deptTree.setCheckedKeys(val); |
|
||||
}, |
|
||||
refresh(val){ |
|
||||
this.getDeptTreeData(val); |
|
||||
}, |
|
||||
currentKey(val){ |
|
||||
this.$refs.deptTree.setCheckedKeys([val]); |
|
||||
}, |
|
||||
value(val){ |
|
||||
this.deptid=val; |
|
||||
}, |
|
||||
deptid(val){ |
|
||||
this.$emit('input',val); |
|
||||
}, |
|
||||
branchId(val){ |
|
||||
this.getDeptTreeData(true); |
|
||||
} |
|
||||
}, |
|
||||
components: { |
|
||||
'branch-select':BranchSelect |
|
||||
}, |
|
||||
computed:{ |
|
||||
defaultExpandedKeys(){ |
|
||||
return this.expandRowKeys |
|
||||
}, |
|
||||
defaultCheckedKeys(){ |
|
||||
if(this.value){ |
|
||||
return [this.value]; |
|
||||
} |
|
||||
return this.checkedKeys; |
|
||||
}, |
|
||||
...mapGetters([ |
|
||||
'userInfo' |
|
||||
]), |
|
||||
treeData(){ |
|
||||
return this.translateDataToTree(this.depts) |
|
||||
} |
|
||||
}, |
|
||||
props: ['value','branchId','visible', 'showCount','showRoot','countTips','showFilter', 'multiple','checkedKeys','refresh','defaultExpandAll','expandOnClickNode','showCheckbox','indent','showConfirm'], |
|
||||
data() { |
|
||||
return { |
|
||||
deptFilterText: '', |
|
||||
depts:[], |
|
||||
defaultDeptTreeProps:{ |
|
||||
|
|
||||
id:'deptid', |
|
||||
label:'deptName', |
|
||||
children: 'children', |
|
||||
isLeaf:'leaf' |
|
||||
}, |
|
||||
listLoading: false, |
|
||||
deptid:'', |
|
||||
branchVisible: false, |
|
||||
branch:null, |
|
||||
expandRowKeys:[], |
|
||||
} |
|
||||
}, |
|
||||
methods: { |
|
||||
goDeptMng(){ |
|
||||
this.$router.push("/mdp/sys/dept/DeptMng") |
|
||||
|
<section> |
||||
|
<el-row> |
||||
|
<el-col :span="24" style="display:inline-block;" > |
||||
|
<el-input style="width:70%;" v-model="deptFilterText" v-if=" showFilter!=false " placeholder="编号、名称过滤" auto-complete="off"></el-input> |
||||
|
<el-button v-if="showConfirm" type="warning" @click.native="confirm">确认</el-button> |
||||
|
<el-popover v-if="!showConfirm && (userInfo.isSuperAdmin==true||userInfo.isPlatformAdmin==true)" |
||||
|
placement="top-start" |
||||
|
title="更多操作" |
||||
|
width="200" |
||||
|
trigger="hover" > |
||||
|
<p> |
||||
|
<el-button type="primary" style="margin-left:10px;margin-top:10px;" icon="el-icon-star-off" v-if="userInfo.isSuperAdmin==true||userInfo.isPlatformAdmin==true" @click.native="showBranchSelect">切换机构</el-button> |
||||
|
<el-button type="warning" style="margin-left:10px;margin-top:10px;" @click.native="goDeptMng" icon="el-icon-setting" title="创建部门、修改部门、设置岗位等">部门管理</el-button> |
||||
|
</p> |
||||
|
<el-button type="warning" icon="el-icon-setting" slot="reference"></el-button> |
||||
|
</el-popover> |
||||
|
<el-button type="warning" v-else @click.native="goDeptMng" icon="el-icon-setting" title="创建部门、修改部门、设置岗位等"></el-button> |
||||
|
|
||||
|
</el-col> |
||||
|
<el-col :span="24"> |
||||
|
<el-tree v-loading="listLoading" |
||||
|
class="filter-tree" |
||||
|
:props="defaultDeptTreeProps" |
||||
|
:filter-node-method="filterDeptNode" |
||||
|
:show-checkbox="showCheckbox" |
||||
|
:expand-on-click-node="expandOnClickNode" |
||||
|
:indent="indent" |
||||
|
:node-key="'deptid'" |
||||
|
:default-expanded-keys="defaultExpandedKeys" |
||||
|
:default-checked-keys="defaultCheckedKeys" |
||||
|
auto-expand-parent |
||||
|
highlight-current |
||||
|
style="min-height:100px;" |
||||
|
@check-change="handleCheckChange" |
||||
|
@current-change="handleCurrentChange" |
||||
|
@node-click="handleNodeClick" |
||||
|
:check-on-click-node="true" |
||||
|
check-strictly |
||||
|
:render-content="renderContent" |
||||
|
lazy |
||||
|
:load="loadNode" |
||||
|
ref="deptTree"> |
||||
|
</el-tree> |
||||
|
</el-col> |
||||
|
<el-dialog title="机构选择" :visible.sync="branchVisible" width="50%" top="20" :close-on-click-modal="false" append-to-body> |
||||
|
<branch-select :visible="branchVisible" @cancel="branchVisible=false" @row-click="branchRowClick"></branch-select> |
||||
|
</el-dialog> |
||||
|
|
||||
|
</el-row> |
||||
|
</section> |
||||
|
</template> |
||||
|
|
||||
|
<script> |
||||
|
import util from '../../../../common/js/util' |
||||
|
import { listTreeDept } from '../../../../api/mdp/sys/dept'; |
||||
|
import BranchSelect from '../branch/BranchSelect';//机构选择 |
||||
|
import { mapGetters } from 'vuex' |
||||
|
|
||||
|
export default { |
||||
|
watch: { |
||||
|
deptFilterText(val) { |
||||
|
this.$refs.deptTree.filter(val); |
||||
}, |
}, |
||||
handleCheckChange(data, checked, indeterminate) { |
|
||||
let checkedKeys=this.$refs.deptTree.getCheckedKeys(); |
|
||||
|
|
||||
if( this.multiple===undefined || this.multiple===false||this.multiple==='false'){ |
|
||||
if(checked==true){ |
|
||||
if(checkedKeys.length>1){ |
|
||||
this.$refs.deptTree.setCheckedKeys([data['deptid']]); |
|
||||
this.$emit('check-change',data,checked,indeterminate); |
|
||||
this.deptid=data['deptid']; |
|
||||
}else{ |
|
||||
this.$emit('check-change',data,checked,indeterminate); |
|
||||
this.deptid=data['deptid']; |
|
||||
} |
|
||||
}else{ |
|
||||
if(checkedKeys.length==0){ |
|
||||
this.deptid=''; |
|
||||
this.$emit('check-change',data,checked,indeterminate); |
|
||||
} |
|
||||
} |
|
||||
}else{ |
|
||||
this.$emit('check-change',data,checked,indeterminate); |
|
||||
} |
|
||||
}, |
|
||||
handleCurrentChange(data, node) { |
|
||||
this.$emit('current-change',data, node); |
|
||||
}, |
|
||||
handleNodeClick(data, node, comp) { |
|
||||
this.$emit('node-click',data, node, comp); |
|
||||
}, |
|
||||
branchRowClick: function(row, event, column){ |
|
||||
this.branchVisible=false |
|
||||
if(this.branch==null || row.id!=this.branch.id){ |
|
||||
this.branch=row |
|
||||
this.getDeptTreeData(); |
|
||||
|
|
||||
} |
|
||||
this.$emit('branch-row-click',row, event, column);// @branch-row-click="rowClick" |
|
||||
|
checkedKeys(val){ |
||||
|
this.$refs.deptTree.setCheckedKeys(val); |
||||
}, |
}, |
||||
translateDataToTree(data) { |
|
||||
if(!data){ |
|
||||
return []; |
|
||||
} |
|
||||
let parents = data.filter(value =>{ |
|
||||
if(value.childrenNum>0){ |
|
||||
value.leaf=false |
|
||||
}else{ |
|
||||
value.leaf=true |
|
||||
} |
|
||||
//如果我的上级为空,则我是最上级 |
|
||||
if(value.pdeptid == 'undefined' || value.pdeptid == null || value.pdeptid == '' || value.pdeptid == 'A0'){ |
|
||||
return true; |
|
||||
|
|
||||
//如果我的上级不在列表中,我作为最上级 |
|
||||
}else if(data.some(i=>value.pdeptid==i.deptid)){ |
|
||||
return false; |
|
||||
}else { |
|
||||
return true |
|
||||
} |
|
||||
|
|
||||
}) |
|
||||
let children = data.filter(value =>{ |
|
||||
if(data.some(i=>value.pdeptid==i.deptid)){ |
|
||||
return true; |
|
||||
}else{ |
|
||||
return false; |
|
||||
} |
|
||||
}) |
|
||||
let translator = (parents, children) => { |
|
||||
parents.forEach((parent) => { |
|
||||
children.forEach((current, index) => { |
|
||||
if (current.pdeptid === parent.deptid) { |
|
||||
let temp = JSON.parse(JSON.stringify(children)) |
|
||||
temp.splice(index, 1) |
|
||||
translator([current], temp) |
|
||||
typeof parent.children !== 'undefined' ? parent.children.push(current) : parent.children = [current] |
|
||||
} |
|
||||
} |
|
||||
) |
|
||||
} |
|
||||
) |
|
||||
} |
|
||||
|
|
||||
translator(parents, children) |
|
||||
|
|
||||
return parents |
|
||||
|
refresh(val){ |
||||
|
this.getDeptTreeData(val); |
||||
}, |
}, |
||||
//获取分类树列表 |
|
||||
getDeptTreeData(refresh) { |
|
||||
|
|
||||
let params = { |
|
||||
|
|
||||
}; |
|
||||
params.branchId=this.branchId |
|
||||
if(this.userInfo.isSuperAdmin==true || this.userInfo.isPlatformAdmin==true){ |
|
||||
if(this.branch!=null){ |
|
||||
params.branchId=this.branch.id |
|
||||
}else if(params.branchId==null || params.branchId==''){ |
|
||||
params.branchId=this.userInfo.branchId |
|
||||
} |
|
||||
}else{ |
|
||||
if(params.branchId==null || params.branchId==''){ |
|
||||
params.branchId=this.userInfo.branchId |
|
||||
} |
|
||||
// params.autoDetectParentDeptid="1" |
|
||||
} |
|
||||
this.listLoading = true; |
|
||||
listTreeDept(params).then((res) => { |
|
||||
var tips=res.data.tips; |
|
||||
var data=res.data.data; |
|
||||
if(tips.isOk==true){ |
|
||||
if( this.showRoot===undefined || this.showRoot===false||this.showRoot==='false'){ |
|
||||
if(data==null){ |
|
||||
this.depts=[]; |
|
||||
}else{ |
|
||||
if(this.branch!=null){ |
|
||||
res.data.data.branchId=this.branch.id |
|
||||
res.data.data.deptName=this.branch.branchName+'(机构)' |
|
||||
res.data.data.isBranch=true |
|
||||
}else { |
|
||||
res.data.data.branchId=this.userInfo.branchId |
|
||||
res.data.data.deptName=this.userInfo.branchName+'(机构)' |
|
||||
res.data.data.isBranch=true |
|
||||
} |
|
||||
this.depts=data |
|
||||
} |
|
||||
|
|
||||
}else{ |
|
||||
if(this.branch!=null){ |
|
||||
res.data.data.branchId=this.branch.id |
|
||||
res.data.data.deptName=this.branch.branchName+'(机构)' |
|
||||
res.data.data.isBranch=true |
|
||||
}else { |
|
||||
res.data.data.branchId=this.userInfo.branchId |
|
||||
res.data.data.deptName=this.userInfo.branchName+'(机构)' |
|
||||
res.data.data.isBranch=true |
|
||||
} |
|
||||
this.depts=data; |
|
||||
} |
|
||||
|
|
||||
}else{ |
|
||||
this.$notify({ message: tips.msg, type: 'error'}); |
|
||||
} |
|
||||
this.listLoading = false; |
|
||||
}).catch(() => { |
|
||||
this.listLoading = false; |
|
||||
}); |
|
||||
|
currentKey(val){ |
||||
|
this.$refs.deptTree.setCheckedKeys([val]); |
||||
}, |
}, |
||||
filterDeptNode(value, data) { |
|
||||
if (!value) return true; |
|
||||
if( data.deptid.indexOf(value)>=0 || data.deptName.indexOf(value)>=0 ){ |
|
||||
return true; |
|
||||
}else{ |
|
||||
if( data.pdeptid && data.pdeptid.indexOf(value)>=0){ |
|
||||
return true; |
|
||||
} |
|
||||
} |
|
||||
return false; |
|
||||
}, |
|
||||
renderContent(h, { node, data, store }) { |
|
||||
var countMsg=''; |
|
||||
if(this.countTips){ |
|
||||
countMsg=this.countTips; |
|
||||
} |
|
||||
if(this.showCount==true || this.showCount=='true'){ |
|
||||
|
|
||||
|
|
||||
return h('span',node.label+'('+data.childrenNum+')') ; |
|
||||
}else{ |
|
||||
return h('span',node.label+'('+data.childrenNum+')') ; |
|
||||
} |
|
||||
|
|
||||
|
value(val){ |
||||
|
this.deptid=val; |
||||
|
}, |
||||
|
deptid(val){ |
||||
|
this.$emit('input',val); |
||||
|
}, |
||||
|
branchId(val){ |
||||
|
this.getDeptTreeData(true); |
||||
|
} |
||||
|
}, |
||||
|
components: { |
||||
|
'branch-select':BranchSelect |
||||
|
}, |
||||
|
computed:{ |
||||
|
defaultExpandedKeys(){ |
||||
|
return this.expandRowKeys |
||||
}, |
}, |
||||
showBranchSelect: function(){ |
|
||||
this.branchVisible=true |
|
||||
|
defaultCheckedKeys(){ |
||||
|
if(this.value){ |
||||
|
return [this.value]; |
||||
|
} |
||||
|
return this.checkedKeys; |
||||
}, |
}, |
||||
confirm(){ |
|
||||
var nodes= this.$refs.deptTree.getCheckedNodes(false,false) |
|
||||
this.$emit('confirm',nodes) |
|
||||
|
...mapGetters([ |
||||
|
'userInfo' |
||||
|
]), |
||||
|
treeData(){ |
||||
|
return this.translateDataToTree(this.depts) |
||||
|
} |
||||
|
}, |
||||
|
props: ['value','branchId','visible', 'showCount','showRoot','countTips','showFilter', 'multiple','checkedKeys','refresh','defaultExpandAll','expandOnClickNode','showCheckbox','indent','showConfirm'], |
||||
|
data() { |
||||
|
return { |
||||
|
deptFilterText: '', |
||||
|
depts:[], |
||||
|
defaultDeptTreeProps:{ |
||||
|
|
||||
|
id:'deptid', |
||||
|
label:'deptName', |
||||
|
children: 'children', |
||||
|
isLeaf:'leaf' |
||||
|
}, |
||||
|
listLoading: false, |
||||
|
deptid:'', |
||||
|
branchVisible: false, |
||||
|
branch:null, |
||||
|
expandRowKeys:[], |
||||
|
root:null, |
||||
|
resolve:null, |
||||
|
} |
||||
|
}, |
||||
|
methods: { |
||||
|
goDeptMng(){ |
||||
|
this.$router.push("/mdp/sys/dept/DeptMng") |
||||
|
}, |
||||
|
handleCheckChange(data, checked, indeterminate) { |
||||
|
let checkedKeys=this.$refs.deptTree.getCheckedKeys(); |
||||
|
|
||||
|
if( this.multiple===undefined || this.multiple===false||this.multiple==='false'){ |
||||
|
if(checked==true){ |
||||
|
if(checkedKeys.length>1){ |
||||
|
this.$refs.deptTree.setCheckedKeys([data['deptid']]); |
||||
|
this.$emit('check-change',data,checked,indeterminate); |
||||
|
this.deptid=data['deptid']; |
||||
|
}else{ |
||||
|
this.$emit('check-change',data,checked,indeterminate); |
||||
|
this.deptid=data['deptid']; |
||||
|
} |
||||
|
}else{ |
||||
|
if(checkedKeys.length==0){ |
||||
|
this.deptid=''; |
||||
|
this.$emit('check-change',data,checked,indeterminate); |
||||
|
} |
||||
|
} |
||||
|
}else{ |
||||
|
this.$emit('check-change',data,checked,indeterminate); |
||||
|
} |
||||
|
}, |
||||
|
handleCurrentChange(data, node) { |
||||
|
this.$emit('current-change',data, node); |
||||
|
}, |
||||
|
handleNodeClick(data, node, comp) { |
||||
|
this.$emit('node-click',data, node, comp); |
||||
|
}, |
||||
|
branchRowClick: function(row, event, column){ |
||||
|
this.branchVisible=false |
||||
|
if(this.branch==null || row.id!=this.branch.id){ |
||||
|
this.branch=row |
||||
|
this.getDeptTreeData(); |
||||
|
|
||||
|
} |
||||
|
this.$emit('branch-row-click',row, event, column);// @branch-row-click="rowClick" |
||||
|
}, |
||||
|
translateDataToTree(data) { |
||||
|
if(!data){ |
||||
|
return []; |
||||
|
} |
||||
|
let parents = data.filter(value =>{ |
||||
|
if(value.childrenNum>0){ |
||||
|
value.leaf=false |
||||
|
}else{ |
||||
|
value.leaf=true |
||||
|
} |
||||
|
//如果我的上级为空,则我是最上级 |
||||
|
if(value.pdeptid == 'undefined' || value.pdeptid == null || value.pdeptid == '' || value.pdeptid == 'A0'){ |
||||
|
return true; |
||||
|
|
||||
|
//如果我的上级不在列表中,我作为最上级 |
||||
|
}else if(data.some(i=>value.pdeptid==i.deptid)){ |
||||
|
return false; |
||||
|
}else { |
||||
|
return true |
||||
|
} |
||||
|
|
||||
|
}) |
||||
|
let children = data.filter(value =>{ |
||||
|
if(data.some(i=>value.pdeptid==i.deptid)){ |
||||
|
return true; |
||||
|
}else{ |
||||
|
return false; |
||||
|
} |
||||
|
}) |
||||
|
let translator = (parents, children) => { |
||||
|
parents.forEach((parent) => { |
||||
|
children.forEach((current, index) => { |
||||
|
if (current.pdeptid === parent.deptid) { |
||||
|
let temp = JSON.parse(JSON.stringify(children)) |
||||
|
temp.splice(index, 1) |
||||
|
translator([current], temp) |
||||
|
typeof parent.children !== 'undefined' ? parent.children.push(current) : parent.children = [current] |
||||
|
} |
||||
|
} |
||||
|
) |
||||
|
} |
||||
|
) |
||||
|
} |
||||
|
|
||||
|
translator(parents, children) |
||||
|
|
||||
|
return parents |
||||
}, |
}, |
||||
loadNode(node, resolve) { |
|
||||
if (node.level === 0) { |
|
||||
let params = { |
|
||||
levelTypes:['L1'] |
|
||||
}; |
|
||||
params.branchId=this.branchId |
|
||||
if(this.userInfo.isSuperAdmin==true || this.userInfo.isPlatformAdmin==true){ |
|
||||
if(this.branch!=null){ |
|
||||
params.branchId=this.branch.id |
|
||||
}else if(params.branchId==null || params.branchId==''){ |
|
||||
params.branchId=this.userInfo.branchId |
|
||||
} |
|
||||
}else{ |
|
||||
if(params.branchId==null || params.branchId==''){ |
|
||||
params.branchId=this.userInfo.branchId |
|
||||
} |
|
||||
// params.autoDetectParentDeptid="1" |
|
||||
} |
|
||||
this.listLoading = true; |
|
||||
listTreeDept(params).then((res) => { |
|
||||
var tips=res.data.tips; |
|
||||
var data=res.data.data; |
|
||||
this.listLoading = false; |
|
||||
var tempData=this.translateDataToTree(data); |
|
||||
this.expandRowKeys=tempData.map(i=>i.deptid) |
|
||||
return resolve(tempData ) |
|
||||
|
|
||||
}).catch(() => { |
|
||||
this.listLoading = false; |
|
||||
}); |
|
||||
}else { |
|
||||
if(node.data.childrenNum>0 && (!node.data.children||node.data.children.length==0)){ |
|
||||
setTimeout(() => { |
|
||||
let params = { |
|
||||
pdeptid:node.data.deptid |
|
||||
}; |
|
||||
params.branchId=this.branchId |
|
||||
if(this.userInfo.isSuperAdmin==true || this.userInfo.isPlatformAdmin==true){ |
|
||||
if(this.branch!=null){ |
|
||||
params.branchId=this.branch.id |
|
||||
}else if(params.branchId==null || params.branchId==''){ |
|
||||
params.branchId=this.userInfo.branchId |
|
||||
} |
|
||||
}else{ |
|
||||
if(params.branchId==null || params.branchId==''){ |
|
||||
params.branchId=this.userInfo.branchId |
|
||||
} |
|
||||
// params.autoDetectParentDeptid="1" |
|
||||
} |
|
||||
this.listLoading = true; |
|
||||
listTreeDept(params).then((res) => { |
|
||||
var tips=res.data.tips; |
|
||||
var data=res.data.data; |
|
||||
this.listLoading = false; |
|
||||
resolve(this.translateDataToTree(data)) |
|
||||
|
|
||||
}).catch(() => { |
|
||||
this.listLoading = false; |
|
||||
}); |
|
||||
}, 500); |
|
||||
}else if(node.data.childrenNum>0 && (node.data.children&&node.data.children.length>0)){ |
|
||||
return resolve(node.data.children) |
|
||||
}else { |
|
||||
return resolve([]) |
|
||||
} |
|
||||
|
|
||||
} |
|
||||
} |
|
||||
}, |
|
||||
mounted() { |
|
||||
this.deptid=this.value; |
|
||||
//this.getDeptTreeData(); |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
</script> |
|
||||
|
|
||||
<style scoped> |
|
||||
.filter-tree{ |
|
||||
margin-top: 14px; |
|
||||
} |
|
||||
.filter-input-admin{ |
|
||||
width:60%; |
|
||||
} |
|
||||
|
|
||||
.filter-input-common{ |
|
||||
width:100%; |
|
||||
} |
|
||||
</style> |
|
||||
|
//获取分类树列表 |
||||
|
getDeptTreeData(refresh) { |
||||
|
this.root.childNodes=[] |
||||
|
this.loadNode(this.root,this.resolve) |
||||
|
}, |
||||
|
filterDeptNode(value, data) { |
||||
|
if (!value) return true; |
||||
|
if( data.deptid.indexOf(value)>=0 || data.deptName.indexOf(value)>=0 ){ |
||||
|
return true; |
||||
|
}else{ |
||||
|
if( data.pdeptid && data.pdeptid.indexOf(value)>=0){ |
||||
|
return true; |
||||
|
} |
||||
|
} |
||||
|
return false; |
||||
|
}, |
||||
|
renderContent(h, { node, data, store }) { |
||||
|
var countMsg=''; |
||||
|
if(this.countTips){ |
||||
|
countMsg=this.countTips; |
||||
|
} |
||||
|
if(this.showCount==true || this.showCount=='true'){ |
||||
|
|
||||
|
|
||||
|
return h('span',node.label+'('+data.childrenNum+')') ; |
||||
|
}else{ |
||||
|
return h('span',node.label+'('+data.childrenNum+')') ; |
||||
|
} |
||||
|
|
||||
|
}, |
||||
|
showBranchSelect: function(){ |
||||
|
this.branchVisible=true |
||||
|
}, |
||||
|
confirm(){ |
||||
|
var nodes= this.$refs.deptTree.getCheckedNodes(false,false) |
||||
|
this.$emit('confirm',nodes) |
||||
|
}, |
||||
|
loadNode(node, resolve) { |
||||
|
if (node.level === 0) { |
||||
|
this.root=node |
||||
|
this.resolve=resolve |
||||
|
let params = { |
||||
|
levelTypes:['L1'] |
||||
|
}; |
||||
|
params.branchId=this.branchId |
||||
|
if(this.userInfo.isSuperAdmin==true || this.userInfo.isPlatformAdmin==true){ |
||||
|
if(this.branch!=null){ |
||||
|
params.branchId=this.branch.id |
||||
|
}else if(params.branchId==null || params.branchId==''){ |
||||
|
params.branchId=this.userInfo.branchId |
||||
|
} |
||||
|
}else{ |
||||
|
if(params.branchId==null || params.branchId==''){ |
||||
|
params.branchId=this.userInfo.branchId |
||||
|
} |
||||
|
// params.autoDetectParentDeptid="1" |
||||
|
} |
||||
|
this.listLoading = true; |
||||
|
listTreeDept(params).then((res) => { |
||||
|
var tips=res.data.tips; |
||||
|
var data=res.data.data; |
||||
|
this.listLoading = false; |
||||
|
var tempData=this.translateDataToTree(data); |
||||
|
this.expandRowKeys=tempData.map(i=>i.deptid) |
||||
|
return resolve(tempData ) |
||||
|
|
||||
|
}).catch(() => { |
||||
|
this.listLoading = false; |
||||
|
}); |
||||
|
}else { |
||||
|
if(node.data.childrenNum>0 && (!node.data.children||node.data.children.length==0)){ |
||||
|
setTimeout(() => { |
||||
|
let params = { |
||||
|
pdeptid:node.data.deptid |
||||
|
}; |
||||
|
params.branchId=this.branchId |
||||
|
if(this.userInfo.isSuperAdmin==true || this.userInfo.isPlatformAdmin==true){ |
||||
|
if(this.branch!=null){ |
||||
|
params.branchId=this.branch.id |
||||
|
}else if(params.branchId==null || params.branchId==''){ |
||||
|
params.branchId=this.userInfo.branchId |
||||
|
} |
||||
|
}else{ |
||||
|
if(params.branchId==null || params.branchId==''){ |
||||
|
params.branchId=this.userInfo.branchId |
||||
|
} |
||||
|
// params.autoDetectParentDeptid="1" |
||||
|
} |
||||
|
this.listLoading = true; |
||||
|
listTreeDept(params).then((res) => { |
||||
|
var tips=res.data.tips; |
||||
|
var data=res.data.data; |
||||
|
this.listLoading = false; |
||||
|
resolve(this.translateDataToTree(data)) |
||||
|
|
||||
|
}).catch(() => { |
||||
|
this.listLoading = false; |
||||
|
}); |
||||
|
}, 500); |
||||
|
}else if(node.data.childrenNum>0 && (node.data.children&&node.data.children.length>0)){ |
||||
|
return resolve(node.data.children) |
||||
|
}else { |
||||
|
return resolve([]) |
||||
|
} |
||||
|
|
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
mounted() { |
||||
|
this.deptid=this.value; |
||||
|
//this.getDeptTreeData(); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
</script> |
||||
|
|
||||
|
<style scoped> |
||||
|
.filter-tree{ |
||||
|
margin-top: 14px; |
||||
|
} |
||||
|
.filter-input-admin{ |
||||
|
width:60%; |
||||
|
} |
||||
|
|
||||
|
.filter-input-common{ |
||||
|
width:100%; |
||||
|
} |
||||
|
</style> |
||||
|
|
||||
Write
Preview
Loading…
Cancel
Save
Reference in new issue