<template>
|
<GlobalWindow
|
:title="title"
|
:visible.sync="visible"
|
:confirm-working="isWorking"
|
@confirm="confirm"
|
>
|
<el-form :model="form" ref="form" :rules="rules">
|
<el-form-item label="设置范围" prop="isMember" :required="true">
|
<el-radio-group v-model="form.isMember">
|
<el-radio :label="0">选择部门</el-radio>
|
<!-- <el-radio :label="1">部门及其下级部门员工</el-radio>-->
|
<el-radio :label="2">指定人员</el-radio>
|
</el-radio-group>
|
</el-form-item>
|
<el-form-item label="所属组织" prop="companyIds" v-if="form.isMember==0 || form.isMember==1" :required="true">
|
<!-- <treeselect
|
v-model="form.companyId"
|
placeholder="请选择"
|
:options="companyTree"
|
:normalizer="normalizeOptions"
|
:default-expand-level="1"
|
noChildrenText="没有子选项"
|
noOptionsText="没有可选项"
|
noResultsText="没有匹配的结果" />-->
|
<el-tree
|
ref="tree"
|
:data="companyTree"
|
show-checkbox
|
node-key="id"
|
default-expand-all
|
@check-change="changeTree"
|
:expand-on-click-node="false"
|
:check-on-click-node="true"
|
:props="{children: 'childList',label: 'name'}">
|
</el-tree>
|
</el-form-item>
|
<el-form-item label="选择负责人:" prop="memberIds" v-if="form.isMember==2" :required="true">
|
<el-select v-model="form.memberIds" filterable :multiple="true" :loading="loading" placeholder="可输入姓名 | 手机号 | 部门名称进行搜索">
|
<el-option
|
v-for="item in memberList"
|
:key="item.id"
|
:label="item.name +' | '+(item.phone||'无')+' | '+ item.companyName"
|
:value="item.id">
|
</el-option>
|
</el-select>
|
</el-form-item>
|
<el-form-item v-if="form.type==3" label="是否企微通知" prop="isQw" class="form-item-switch" >
|
<el-switch v-model="form.isQw" :active-value="1" :inactive-value="0"/>
|
<span class="switch-text"> </span>
|
</el-form-item>
|
<el-form-item v-if="form.type==3" label="是否邮件通知" prop="isEmail" class="form-item-switch" >
|
<el-switch v-model="form.isEmail" :active-value="1" :inactive-value="0"/>
|
<span class="switch-text"></span>
|
</el-form-item>
|
<el-form-item label="备注" prop="remark">
|
<el-input v-model="form.remark" placeholder="请输入备注" v-trim/>
|
</el-form-item>
|
</el-form>
|
</GlobalWindow>
|
</template>
|
|
<script>
|
import BaseOpera from '@/components/base/BaseOpera'
|
import GlobalWindow from '@/components/common/GlobalWindow'
|
import { allList } from '@/api/business/member'
|
import { treeList } from '@/api/business/company'
|
import { createRoleMenu } from '@/api/system/role'
|
import { create } from '@/api/business/managers'
|
|
export default {
|
name: 'OperaManagersWindow',
|
extends: BaseOpera,
|
components: { GlobalWindow },
|
data () {
|
return {
|
// 表单数据
|
form: {
|
type: '',
|
companyId: null,
|
memberId: '',
|
memberIds: [],
|
companyIds: [],
|
remark: '',
|
isQw: 0,
|
isEmail: 0,
|
isMember: 0
|
},
|
companyTree: [],
|
loading: false,
|
memberList: [],
|
// 验证规则
|
rules: {
|
memberIds: [
|
{ required: true, message: '请选择负责人' }
|
],
|
companyIds: [
|
{ required: true, message: '请选择部门' }
|
],
|
isMember: [
|
{ required: true, message: '选择设置范围' }
|
]
|
}
|
}
|
},
|
created () {
|
this.config({
|
api: '/business/managers',
|
'field.id': 'id'
|
})
|
},
|
methods: {
|
changeTree(){
|
const selectedMenus = this.$refs.tree.getCheckedNodes(false, true)
|
this.form.companyIds = selectedMenus.map(menu => menu.id)
|
console.log(this.form.companyIds)
|
},
|
getfindCompanyTreePage () {
|
treeList({})
|
.then(res => {
|
if (res && res.length > 0) {
|
res[0].fsStatus = 1
|
this.companyTree = res
|
// 找出叶节点
|
this.companyTree = this.companyTree.filter(menu => this.companyTree .findIndex(m => m.parentId === menu.id) === -1)
|
console.log(res)
|
// this.searchForm.erpOrgId = res[0].erpId
|
}
|
})
|
},
|
|
// 规范化选项数据的方法
|
normalizeOptions (node) {
|
if (node.childList && !node.childList.length) {
|
delete node.childList
|
}
|
return {
|
id: node.id,
|
label: node.name,
|
children: node.childList
|
}
|
},
|
loadMember (query) {
|
this.memberList = []
|
console.log(query)
|
if (!query || query == '') {
|
// return
|
}
|
this.loading = true
|
allList({
|
keyword: query
|
})
|
.then(res => {
|
this.memberList = res
|
})
|
.catch(e => {
|
})
|
.finally(() => {
|
this.loading = false
|
})
|
},
|
open (title, target) {
|
this.title = title
|
this.visible = true
|
// 新建
|
this.$nextTick(() => {
|
this.$refs.form.resetFields()
|
this.form.type = target != null ? target.type : null
|
this.form[this.configData['field.id']] = null
|
})
|
this.memberList = []
|
this.getfindCompanyTreePage()
|
this.loadMember()
|
}
|
}
|
}
|
</script>
|