yyzone
Version:
yyzone vue components and utils
208 lines (206 loc) • 5.9 kB
Markdown
```vue
<template>
<div class="article">
<YYButton @click="handleOpen">显示选择人员</YYButton>
<YYButton @click="handleOpenOrg">显示选择范围</YYButton>
<YYSelectMember
qzId="64"
host="http://ezone.imp-test.pub.caep"
:defineTabs="['out', 'outMember']"
:deptList="[]"
:haveSelected="haveSelected"
:chooseDeptType="0"
:enableContainChild="true"
:keep-alive="false"
token="asdasdqweqeasdadasasd"
closable
:customTabs="customTabs"
v-model="showSelectMember"
@on-search="handleSearch"
@on-ok="handleOk"/>
<YYSelectMember
qzId="64"
host="http://ezone.imp-test.pub.caep"
:enableContainChild="true"
:defineTabs="['dept', 'member']"
:customTabs="customTabs"
v-model="showSelectMemberOrg"
@on-ok="handleOkOrg"/>
</div>
</template>
<script>
let count = 1
let dept = {
deptId: 2,
deptName: '用友',
}
let member = {
memberId: 1,
userName: '倪占军',
type: 0,
}
export default {
data() {
return {
showSelectMember: false,
showSelectMemberOrg: false,
haveSelected: {
dept: {},
group: {},
team: {},
member: {
}
},
customTabs: [
{
title: 'List Demo',
key: 'list',
type: 'list',
data: [
{
id: 123,
name: '岗位',
checked: true
}
]
},
{
title: '单据相关人员',
key: 'cooperation',
type: 'member',
data: [
{
id: 123,
name: '岗位'
}
]
},
{
title: '单据相关组织',
key: 'cooperation-dept',
type: 'dept',
onLoad: this.onLoadDept,
data: []
},
{
title: '单据相关组织成员',
key: 'cooperation-dept-member',
type: 'dept',
onLoad: this.onLoadDeptMember,
withMembers: true,
data: [
{
deptId: 123,
deptName: 'nizhja1',
checked: true
},
{
deptId: 789,
deptName: 'nizhja2',
checked: true
},
]
},
],
// customTabs: [
// {
// title: '0',
// key: '0',
// sort: '0',
// type: 'dept',
// data: [
// {
// deptId: 501,
// deptName: 501
// }
// ]
// }
// ],
deptList: [
{
deptId: 182980,
deptName: "用友股份"
}
]
}
},
methods: {
onLoadDept({
deptId,
callback
}) {
dept.deptId += count
dept.deptName += count
count++
return new Promise((resolve)=>{
resolve([dept])
}).then((res)=>{
setTimeout(()=> {
callback && callback(res)
}, 500)
})
},
onLoadDeptMember({
deptId,
callback
}) {
let data
if(count % 2) {
member.memberId += count
member.memberName += count
data = member
} else {
dept.deptId += count
dept.deptName += count
data = dept
}
count++
return new Promise((resolve)=>{
resolve([data])
}).then((res)=>{
setTimeout(()=> {
callback && callback(res)
}, 500)
})
},
onLoad(call) {
return new Promise((resolve)=>{
resolve([{
id: 123,
name: '岗位',
checked: true
}])
}).then((res)=>{
call && call(res)
})
},
handleOpen() {
this.showSelectMember = true
},
handleOk(res) {
console.log(res)
this.haveSelected = res
// YYRenderSelectMember({
// el: this.$refs.YYRenderSelectMember,
// showSelectMember: true,
// qzId: 917,
// host: 'http://ezone.yyuap.com:6058'
// })
},
handleOpenOrg() {
// this.deptList.push({
// deptId: 0,
// deptName: "用友股份"
// })
this.showSelectMemberOrg = true
},
handleOkOrg(res) {
console.log(res)
},
handleSearch(value) {
console.log(value)
}
}
}
</script>
```