clay : 任意节点退回完成 #34
|
|
@ -19,7 +19,6 @@
|
||||||
<el-tree :data="dataList" ref="tree" :props="defaultProps" empty-text="" node-key="value"
|
<el-tree :data="dataList" ref="tree" :props="defaultProps" empty-text="" node-key="value"
|
||||||
:default-expanded-keys="expandedKeys"
|
:default-expanded-keys="expandedKeys"
|
||||||
@node-click="handleChange"
|
@node-click="handleChange"
|
||||||
:filter-node-method="filterNode"
|
|
||||||
>
|
>
|
||||||
<div class="tree-node" slot-scope="{ node,data }">
|
<div class="tree-node" slot-scope="{ node,data }">
|
||||||
<div v-if="data.type === 0" style="display: flex;align-items: center">
|
<div v-if="data.type === 0" style="display: flex;align-items: center">
|
||||||
|
|
@ -70,6 +69,12 @@ export default {
|
||||||
return [];
|
return [];
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
selected: {
|
||||||
|
type: Array,
|
||||||
|
default: () => {
|
||||||
|
return [];
|
||||||
|
}
|
||||||
|
},
|
||||||
multiple: { //是否多选
|
multiple: { //是否多选
|
||||||
default: true,
|
default: true,
|
||||||
type: Boolean
|
type: Boolean
|
||||||
|
|
@ -128,32 +133,42 @@ export default {
|
||||||
getList() {
|
getList() {
|
||||||
getUserTree(this.radio, this.chooseId).then(res => {
|
getUserTree(this.radio, this.chooseId).then(res => {
|
||||||
console.log('人员', res.data)
|
console.log('人员', res.data)
|
||||||
if (res.data) {
|
// if (res.data) {
|
||||||
if (this.selectItem.type === -1 || this.selectItem.type === -2) {
|
if (this.selectItem.type === -1 || this.selectItem.type === -2) {
|
||||||
this.dataList = this.setData(res.data)
|
this.dataList = res.data
|
||||||
} else if (this.selectItem.type === 1) {
|
}
|
||||||
|
else if (this.selectItem.type === 1) {
|
||||||
this.selectItem.children = res.data
|
this.selectItem.children = res.data
|
||||||
} else if (this.selectItem.type === 2) {
|
} else if (this.selectItem.type === 2) {
|
||||||
this.selectItem.children = this.setData(res.data)
|
this.selectItem.children = res.data
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
// }
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
setData(source) {
|
setData(source) {
|
||||||
for (let item of source) {
|
// for (let item of source) {
|
||||||
this.$set(item, "value", this.selectItem.value + "-" + item.id)
|
// this.$set(item, "value", this.selectItem.value + "-" + item.id)
|
||||||
}
|
// }
|
||||||
return source;
|
return source;
|
||||||
},
|
},
|
||||||
//通过关键字过滤树节点
|
//通过关键字过滤树节点
|
||||||
filterNode(value, data) {
|
// filterNode(value, data) {
|
||||||
if (!value) return true;
|
// if (!value) return true;
|
||||||
return data.name.indexOf(value) !== -1;
|
// return data.name.indexOf(value) !== -1;
|
||||||
},
|
// },
|
||||||
//用于用户选择
|
//用于用户选择
|
||||||
showUserPicker() {
|
showUserPicker() {
|
||||||
this.getList();
|
this.selectItem = {
|
||||||
|
type: -1,
|
||||||
|
value: '0',
|
||||||
|
}
|
||||||
|
this.dataList = []
|
||||||
|
// this.selectList = []
|
||||||
|
this.chooseId = 0
|
||||||
|
this.radio = 0
|
||||||
this.visible = true;
|
this.visible = true;
|
||||||
|
this.getList();
|
||||||
|
|
||||||
},
|
},
|
||||||
//渲染子节点用户或部门及用户数据
|
//渲染子节点用户或部门及用户数据
|
||||||
handleChange(item, check) {
|
handleChange(item, check) {
|
||||||
|
|
@ -201,6 +216,7 @@ export default {
|
||||||
//确定按钮
|
//确定按钮
|
||||||
selectConfirm() {
|
selectConfirm() {
|
||||||
this.$emit("ok", this.selectList);
|
this.$emit("ok", this.selectList);
|
||||||
|
// this.dataList = []
|
||||||
this.visible = false;
|
this.visible = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@
|
||||||
<el-button icon="el-icon-user" type="primary" size="mini" round @click="$refs.userPicker.showUserPicker()">
|
<el-button icon="el-icon-user" type="primary" size="mini" round @click="$refs.userPicker.showUserPicker()">
|
||||||
选择人员
|
选择人员
|
||||||
</el-button>
|
</el-button>
|
||||||
<user-select type="user" :multiple="multiple" ref="userPicker" :selected="_value" @ok="selected"/>
|
<user-select :multiple="multiple" ref="userPicker" title="请选择系统用户" :v-mode="_value" @ok="selected"/>
|
||||||
<span class="placeholder"> {{ placeholder }}</span>
|
<span class="placeholder"> {{ placeholder }}</span>
|
||||||
<div style="display: flex;">
|
<div style="display: flex;">
|
||||||
<div class="userStyle" v-for="(user, i) in _value" :key="i">
|
<div class="userStyle" v-for="(user, i) in _value" :key="i">
|
||||||
|
|
|
||||||
|
|
@ -42,8 +42,8 @@
|
||||||
@insertNode="type => $emit('insertNode', type)"></insert-button>
|
@insertNode="type => $emit('insertNode', type)"></insert-button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<user-picker v-if="selectUser.show" title="请选择系统角色" :multiple="selectUser.multiple" ref="userPicker"
|
<user-picker v-if="selectUser.show" title="请选择系统用户" :multiple="selectUser.multiple" ref="userPicker"
|
||||||
:v-model="userInfo"
|
:selected="userInfo"
|
||||||
@ok="selectedUser"/>
|
@ok="selectedUser"/>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
@ -137,6 +137,9 @@ export default {
|
||||||
viewer() {
|
viewer() {
|
||||||
return this.$store.state.diagramMode === 'viewer'
|
return this.$store.state.diagramMode === 'viewer'
|
||||||
},
|
},
|
||||||
|
getUserInfo(){
|
||||||
|
return this.userInfo
|
||||||
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
selectedUser(select) {
|
selectedUser(select) {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue