|
|
|
|
@ -27,35 +27,56 @@
|
|
|
|
|
</a-radio-group>
|
|
|
|
|
<div v-if="menuType == 'role'">
|
|
|
|
|
<a-menu :selectedKeys="selectedKeys" class="bgf" mode="inline" :class="'leftMenu'" style="overflow-y:scroll;height:calc(100%);overflow-x:hidden;">
|
|
|
|
|
<a-menu-item key="all" class="fsa showdot bb_after fw500" @click="selectGroup('all')">全部角色(19人)</a-menu-item>
|
|
|
|
|
<a-menu-item key="all" class="fsa bb_after fw500" @click="selectGroup('all')">
|
|
|
|
|
全部角色
|
|
|
|
|
<i class="the_num f14 tac" style="min-width:12px" @click.stop>19</i>
|
|
|
|
|
</a-menu-item>
|
|
|
|
|
</a-menu>
|
|
|
|
|
<div class="bb1 ml12 mr12 mt4 mb4" style="wdith:calc(100% - 24px)"></div>
|
|
|
|
|
<div class="f12 c9 ml24 mb8">默认角色(11人)</div>
|
|
|
|
|
<!-- <div class="bb1 ml12 mr12 mt4 mb4" style="wdith:calc(100% - 24px)"></div> -->
|
|
|
|
|
<!-- <div class="f12 c9 ml24 mb8">默认角色(11人)</div> -->
|
|
|
|
|
<a-menu :selectedKeys="selectedKeys" class="bgf" mode="inline" :class="'leftMenu'" style="overflow-y:scroll;height:calc(100%);overflow-x:hidden;">
|
|
|
|
|
<template v-for="(item, index) in ['创建人(1人)','管理员(3人)','成员(12人)']">
|
|
|
|
|
<a-menu-item :key="item" class="fsa showdot" @click="selectGroup(item)">{{item}}</a-menu-item>
|
|
|
|
|
<template v-for="(item, index) in ['创建人','管理员','成员']">
|
|
|
|
|
<a-menu-item :key="item" class="fsa" @click="selectGroup(item)">
|
|
|
|
|
<span>
|
|
|
|
|
{{item}}
|
|
|
|
|
<svg class="svg f20 ml4 mb2" aria-hidden="true">
|
|
|
|
|
<use xlink:href="#icon-xitong" />
|
|
|
|
|
</svg>
|
|
|
|
|
</span>
|
|
|
|
|
<i class="the_num tac" style="min-width:12px" @click.stop>3</i>
|
|
|
|
|
</a-menu-item>
|
|
|
|
|
</template>
|
|
|
|
|
</a-menu>
|
|
|
|
|
<div class="bb1 ml12 mr12 mt4 mb4" style="wdith:calc(100% - 24px)"></div>
|
|
|
|
|
<div class="f12 c9 ml24 mb8">自定义角色(8人)</div>
|
|
|
|
|
<!-- <div class="bb1 ml12 mr12 mt4 mb4" style="wdith:calc(100% - 24px)"></div> -->
|
|
|
|
|
<!-- <div class="f12 c9 ml24 mb8">自定义角色(8人)</div> -->
|
|
|
|
|
<a-menu :selectedKeys="selectedKeys" class="bgf" mode="inline" :class="'leftMenu'" style="overflow-y:scroll;height:calc(100%);overflow-x:hidden;">
|
|
|
|
|
<!-- <template v-for="(item, index) in groupList"> -->
|
|
|
|
|
<a-menu-item key="角色1(8人)" class="fsa showdot" @click="selectGroup('角色1(8人)')">{{'角色1(8人)'}}</a-menu-item>
|
|
|
|
|
<a-menu-item key="角色2(8人)" class="fsa showdot" @click="selectGroup('角色2(8人)')">{{'角色2(8人)'}}</a-menu-item>
|
|
|
|
|
<!-- </template> -->
|
|
|
|
|
<template v-for="(item, index) in ['角色1','角色2']">
|
|
|
|
|
<a-menu-item :key="item" class="fsa" @click="selectGroup(item)">
|
|
|
|
|
<span>
|
|
|
|
|
{{item}}
|
|
|
|
|
<svg class="svg f26 ml4 mb2" aria-hidden="true">
|
|
|
|
|
<use xlink:href="#icon-zidingyi" />
|
|
|
|
|
</svg>
|
|
|
|
|
</span>
|
|
|
|
|
<span class="the_num tac" style="min-width:12px">1</span>
|
|
|
|
|
</a-menu-item>
|
|
|
|
|
</template>
|
|
|
|
|
</a-menu>
|
|
|
|
|
</div>
|
|
|
|
|
<div v-else>
|
|
|
|
|
<a-menu :selectedKeys="selectedKeys" class="bgf" mode="inline" :class="'leftMenu'" style="overflow-y:scroll;height:calc(100%);overflow-x:hidden;">
|
|
|
|
|
<a-menu-item key="all" class="fsa showdot bb_after fw500" @click="selectGroup('all')">全部部门(19人)</a-menu-item>
|
|
|
|
|
<a-menu-item key="all" class="fsa bb_after fw500" @click="selectGroup('all')">
|
|
|
|
|
全部部门
|
|
|
|
|
<i class="the_num f14" @click.stop>18</i>
|
|
|
|
|
</a-menu-item>
|
|
|
|
|
</a-menu>
|
|
|
|
|
<div class="bb1 ml12 mr12 mt4 mb4" style="wdith:calc(100% - 24px)"></div>
|
|
|
|
|
<!-- <div class="bb1 ml12 mr12 mt4 mb4" style="wdith:calc(100% - 24px)"></div> -->
|
|
|
|
|
<a-menu :selectedKeys="selectedKeys" class="bgf" mode="inline" :class="'leftMenu'" style="overflow-y:scroll;height:calc(100%);overflow-x:hidden;">
|
|
|
|
|
<template v-for="(item, index) in groupList">
|
|
|
|
|
<a-menu-item :key="item.teamName" class="fsa showdot" @click="selectGroup(item)">
|
|
|
|
|
{{item.teamName + '(8人)'}}
|
|
|
|
|
{{item.teamName}}
|
|
|
|
|
<a-dropdown overlayClassName="groupdropdown" :trigger="['click']" placement="bottomRight">
|
|
|
|
|
<i class="iconfont icon-gengduo3 thedot f12" @click.stop></i>
|
|
|
|
|
<i class="iconfont icon-gengduo3 thedot f14" @click.stop></i>
|
|
|
|
|
<div class="groupdropdownbox backTable" slot="overlay">
|
|
|
|
|
<div @click="[addGroupShow = true,isEdit = true,recordId = item.id,groupName=item.teamName]">修改名称</div>
|
|
|
|
|
<div @click="delGroup(item)">删除</div>
|
|
|
|
|
@ -63,6 +84,7 @@
|
|
|
|
|
<div @click="index + 1 < groupList.length?moveList(item,'down'):null" :class="index + 1 == groupList.length? 'unactive':''">下移</div>
|
|
|
|
|
</div>
|
|
|
|
|
</a-dropdown>
|
|
|
|
|
<div class="the_num f14 tac" style="min-width:12px" @click.stop>6</div>
|
|
|
|
|
</a-menu-item>
|
|
|
|
|
</template>
|
|
|
|
|
</a-menu>
|
|
|
|
|
@ -89,11 +111,11 @@
|
|
|
|
|
<a-table :columns="columns" :scroll="{x:currWidth}" :data-source="memberList" :pagination="false" @change="onChange" :loading="{spinning: isspinning,tip: '加载中',wrapperClassName: 'spinstyle'}" :rowKey="(record) => record.id" :locale="tablenodata">
|
|
|
|
|
<!-- <a slot="index" slot-scope="record, text, index">{{ index + 1 }}</a> -->
|
|
|
|
|
<span slot="nickName" slot-scope="text, record">{{ record.aliasName || record.userName }}</span>
|
|
|
|
|
<div slot="join" slot-scope="text, record">
|
|
|
|
|
<a-switch default-checked :checked="record.join" @change="showChange(record,'join')" />
|
|
|
|
|
<div slot="inAgencyStatistics" slot-scope="text, record">
|
|
|
|
|
<a-switch :checked="text" @change="showChange(record,'inAgencyStatistics')" />
|
|
|
|
|
</div>
|
|
|
|
|
<div slot="bigScreen" slot-scope="text, record">
|
|
|
|
|
<a-switch default-checked :checked="record.bigScreen" @change="showChange(record,'bigScreen')" />
|
|
|
|
|
<div slot="showAgencyScreen" slot-scope="text, record">
|
|
|
|
|
<a-switch :checked="text" @change="showChange(record,'showAgencyScreen')" />
|
|
|
|
|
</div>
|
|
|
|
|
<div slot="setting" v-if="!record.children" class="setting" slot-scope="text, record" style="color: #1890FF">
|
|
|
|
|
<!-- <a @click="showDetail('detail', record)">详情</a> -->
|
|
|
|
|
@ -219,39 +241,38 @@
|
|
|
|
|
<a-input placeholder="请输入备注名" v-decorator="[ 'aliasName', { rules: [{ required: true, message: '请输入备注名' }] }, ]" />
|
|
|
|
|
</a-form-item>
|
|
|
|
|
<a-form-item label="手机号">
|
|
|
|
|
<a-input placeholder="请输入手机号" v-decorator="['tel', {rules: [{ required: true, message: '请输入手机号' },{ type: 'regexp', validator: validateServiceName, message: '请输入正确的手机号', }, ], validateTrigger: 'submit', }, ]" :max-length="11" />
|
|
|
|
|
<a-input placeholder="请输入手机号" v-decorator="['tel', {rules: [{ required: true, message: '请输入手机号' },{ type: 'regexp', validator: validateServiceName, message: '请输入正确的手机号', }, ], validateTrigger: 'submit',validateFirst:true }, ]" :max-length="11" />
|
|
|
|
|
</a-form-item>
|
|
|
|
|
<a-form-item label="部门选择">
|
|
|
|
|
<a-select default-value="lucy" placeholder="请选择部门" v-decorator="['agencyTeamId',{ rules: [{ required: false, message: '请选择部门' }] },]" dropdownClassName="groupSelectDrop">
|
|
|
|
|
<div slot="dropdownRender" slot-scope="menu">
|
|
|
|
|
<a-select placeholder="请选择部门" v-decorator="['agencyTeamId',{ rules: [{ required: false, message: '请选择部门' }] },]" dropdownClassName="groupSelectDrop">
|
|
|
|
|
<a-select-option v-for="(item,index) in groupList" :value="item.id" class="groupSelectSub fsa" :key="index">
|
|
|
|
|
<div>{{item.teamName}}</div>
|
|
|
|
|
</a-select-option>
|
|
|
|
|
<!-- <div slot="dropdownRender" slot-scope="menu">
|
|
|
|
|
<div v-for="(item,index) in groupList" @click="choiceGroup(item)" class="groupSelectSub fsa" :key="index">
|
|
|
|
|
<div>{{item.teamName}}</div>
|
|
|
|
|
</div>
|
|
|
|
|
<!-- <div class="bt1" style="padding: 9px 16px; cursor: pointer;" @mousedown="e => e.preventDefault()" @click="[addGroupShow = true,isEdit = false]">添加新部门</div> -->
|
|
|
|
|
</div>
|
|
|
|
|
</div>-->
|
|
|
|
|
</a-select>
|
|
|
|
|
</a-form-item>
|
|
|
|
|
<a-form-item label="角色">
|
|
|
|
|
<a-select default-value="lucy" placeholder="请选择角色" v-decorator="['role',{ rules: [{ required: true, message: '请选择角色' }] },]" dropdownClassName="groupSelectDrop">
|
|
|
|
|
<div slot="dropdownRender" slot-scope="menu">
|
|
|
|
|
<div v-for="(item,index) in groupList" @click="choiceGroup(item)" class="groupSelectSub fsa" :key="index">
|
|
|
|
|
<div>{{item.teamName}}</div>
|
|
|
|
|
</div>
|
|
|
|
|
<!-- <div class="bt1" style="padding: 9px 16px; cursor: pointer;" @mousedown="e => e.preventDefault()" @click="[addGroupShow = true,isEdit = false]">添加新部门</div> -->
|
|
|
|
|
</div>
|
|
|
|
|
<a-select placeholder="请选择角色" :defaultActiveFirstOption="false" v-decorator="['agencyRole',{ rules: [{ required: true, message: '请选择角色' }] },]" dropdownClassName="groupSelectDrop">
|
|
|
|
|
<a-select-option v-for="(item,index) in roleOptions" :value="item.value" class="groupSelectSub fsa" :key="index">
|
|
|
|
|
<div>{{item.label}}</div>
|
|
|
|
|
</a-select-option>
|
|
|
|
|
</a-select>
|
|
|
|
|
</a-form-item>
|
|
|
|
|
<a-form-item label="角色" class="dn">
|
|
|
|
|
<!-- <a-form-item label="角色" class="dn">
|
|
|
|
|
<a-radio-group v-decorator="[
|
|
|
|
|
'agencyRole',
|
|
|
|
|
{ rules: [{ required: true, message: '请选择角色' }] },
|
|
|
|
|
]" :options="options" @change="groupChange" />
|
|
|
|
|
</a-form-item>
|
|
|
|
|
]" :options="roleOptions" @change="groupChange" />
|
|
|
|
|
</a-form-item>-->
|
|
|
|
|
<a-form-item label="参与统计">
|
|
|
|
|
<a-switch default-checked @change="onChange" />
|
|
|
|
|
<a-switch v-decorator="['inAgencyStatistics',{ valuePropName: 'checked' }]" />
|
|
|
|
|
</a-form-item>
|
|
|
|
|
<a-form-item label="大屏显示">
|
|
|
|
|
<a-switch default-checked @change="onChange" />
|
|
|
|
|
<a-switch v-decorator="['showAgencyScreen',{ valuePropName: 'checked' }]" />
|
|
|
|
|
</a-form-item>
|
|
|
|
|
<!-- <a-row>
|
|
|
|
|
<a-col :span="4">权限:</a-col>
|
|
|
|
|
@ -283,7 +304,7 @@
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
<script>
|
|
|
|
|
import { getMemberListApi, deleteMemberApi, addMemberApi, getMemberGroupApi, addMemberGroupApi, updateMemberGroupApi, delMemberGroupApi, updateMemberApi, moveGroupNextApi, moveGroupPrevApi } from '../../api/userinfo'
|
|
|
|
|
import { getMemberListApi, deleteMemberApi, addMemberApi, getMemberGroupApi, addMemberGroupApi, updateMemberGroupApi, delMemberGroupApi, updateMemberApi, moveGroupNextApi, moveGroupPrevApi, memberShowScreenApi, memberJoinDataApi } from '../../api/userinfo'
|
|
|
|
|
import { formatDateYMD, getUserApplyOrderStatusById, getAgencyRoleTypeById, getAgencyPermissionNameById, getAgencyPermissionsByRole, tableWidth } from '../../utils/commonUtil'
|
|
|
|
|
|
|
|
|
|
export default {
|
|
|
|
|
@ -336,7 +357,7 @@ export default {
|
|
|
|
|
visible: false,
|
|
|
|
|
currentMember: {},
|
|
|
|
|
modalTitle: '',
|
|
|
|
|
options: [
|
|
|
|
|
roleOptions: [
|
|
|
|
|
// { label: "创建人", value: "1" },
|
|
|
|
|
{ label: '管理员', value: '2' },
|
|
|
|
|
{ label: '成员', value: '3' },
|
|
|
|
|
@ -436,17 +457,19 @@ export default {
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
title: '参与统计',
|
|
|
|
|
dataIndex: 'join',
|
|
|
|
|
key: 'join',
|
|
|
|
|
scopedSlots: { customRender: 'join' },
|
|
|
|
|
dataIndex: 'inAgencyStatistics',
|
|
|
|
|
key: 'inAgencyStatistics',
|
|
|
|
|
scopedSlots: { customRender: 'inAgencyStatistics' },
|
|
|
|
|
|
|
|
|
|
ellipsis: true,
|
|
|
|
|
width: 80,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
title: '大屏显示',
|
|
|
|
|
dataIndex: 'bigScreen',
|
|
|
|
|
key: 'bigScreen',
|
|
|
|
|
scopedSlots: { customRender: 'bigScreen' },
|
|
|
|
|
dataIndex: 'showAgencyScreen',
|
|
|
|
|
key: 'showAgencyScreen',
|
|
|
|
|
scopedSlots: { customRender: 'showAgencyScreen' },
|
|
|
|
|
|
|
|
|
|
ellipsis: true,
|
|
|
|
|
width: 80,
|
|
|
|
|
},
|
|
|
|
|
@ -546,12 +569,13 @@ export default {
|
|
|
|
|
this.memberList.forEach((item, index) => {
|
|
|
|
|
// item.group = '部门' + ((index % 5) + 1)
|
|
|
|
|
// item1.children.forEach((item) => {
|
|
|
|
|
item.join = false
|
|
|
|
|
item.bigScreen = false
|
|
|
|
|
item.inAgencyStatistics = item.inAgencyStatistics == 0 ? true : false
|
|
|
|
|
item.showAgencyScreen = item.showAgencyScreen == 0 ? true : false
|
|
|
|
|
item.role = getAgencyRoleTypeById(item.agencyRole)
|
|
|
|
|
item.permission = getAgencyPermissionNameById(item.agencyPermissions)
|
|
|
|
|
// })
|
|
|
|
|
})
|
|
|
|
|
console.log(this.memberList)
|
|
|
|
|
// this.memberList.sort((a, b) => {
|
|
|
|
|
// return a.agencyRole - b.agencyRole
|
|
|
|
|
// })
|
|
|
|
|
@ -709,6 +733,8 @@ export default {
|
|
|
|
|
tel: this.currentMember.tel,
|
|
|
|
|
group: this.currentMember.group,
|
|
|
|
|
agencyTeamId: this.currentMember.agencyTeamName,
|
|
|
|
|
showAgencyScreen: this.currentMember.showAgencyScreen,
|
|
|
|
|
inAgencyStatistics: this.currentMember.inAgencyStatistics,
|
|
|
|
|
})
|
|
|
|
|
}, 200)
|
|
|
|
|
} else if (type == 'detail') {
|
|
|
|
|
@ -721,7 +747,7 @@ export default {
|
|
|
|
|
this.$nextTick(() => {
|
|
|
|
|
console.log(123)
|
|
|
|
|
that.form.setFieldsValue({
|
|
|
|
|
agencyRole: '2',
|
|
|
|
|
agencyRole: '3',
|
|
|
|
|
})
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
@ -766,6 +792,8 @@ export default {
|
|
|
|
|
handleSubmit() {
|
|
|
|
|
console.log('issubmit')
|
|
|
|
|
console.log(this.currentMember)
|
|
|
|
|
console.log(this.form.getFieldsValue())
|
|
|
|
|
let formData = this.form.getFieldsValue()
|
|
|
|
|
this.form.validateFields(async (err) => {
|
|
|
|
|
console.log(err)
|
|
|
|
|
if (err == null) {
|
|
|
|
|
@ -774,7 +802,9 @@ export default {
|
|
|
|
|
let { data } = await updateMemberApi({
|
|
|
|
|
...this.form.getFieldsValue(),
|
|
|
|
|
agencyPermissions: this.permission,
|
|
|
|
|
agencyTeamId: this.agencyTeamId,
|
|
|
|
|
inAgencyStatistics: formData.inAgencyStatistics == true ? 0 : 1,
|
|
|
|
|
showAgencyScreen: formData.showAgencyScreen == true ? 0 : 1,
|
|
|
|
|
// agencyTeamId: this.agencyTeamId,
|
|
|
|
|
id: this.currentMember.id,
|
|
|
|
|
})
|
|
|
|
|
console.log(data)
|
|
|
|
|
@ -797,7 +827,9 @@ export default {
|
|
|
|
|
let { data } = await addMemberApi({
|
|
|
|
|
...this.form.getFieldsValue(),
|
|
|
|
|
agencyPermissions: this.permission,
|
|
|
|
|
agencyTeamId: this.agencyTeamId,
|
|
|
|
|
inAgencyStatistics: formData.inAgencyStatistics == true ? 0 : 1,
|
|
|
|
|
showAgencyScreen: formData.showAgencyScreen == true ? 0 : 1,
|
|
|
|
|
// agencyTeamId: this.agencyTeamId,
|
|
|
|
|
})
|
|
|
|
|
console.log(data)
|
|
|
|
|
if (data.status == 200) {
|
|
|
|
|
@ -827,14 +859,22 @@ export default {
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
},
|
|
|
|
|
choiceGroup(e) {
|
|
|
|
|
console.log(e)
|
|
|
|
|
this.form.setFieldsValue({
|
|
|
|
|
agencyTeamId: e.teamName,
|
|
|
|
|
})
|
|
|
|
|
this.agencyTeamId = e.id
|
|
|
|
|
console.log(this.agencyTeamId)
|
|
|
|
|
},
|
|
|
|
|
// choiceGroup(e) {
|
|
|
|
|
// console.log(e)
|
|
|
|
|
// this.form.setFieldsValue({
|
|
|
|
|
// agencyTeamId: e.teamName,
|
|
|
|
|
// })
|
|
|
|
|
// this.agencyTeamId = e.id
|
|
|
|
|
// console.log(this.agencyTeamId)
|
|
|
|
|
// },
|
|
|
|
|
// choiceRole(e) {
|
|
|
|
|
// console.log(e)
|
|
|
|
|
// this.form.setFieldsValue({
|
|
|
|
|
// agencyRole: e.teamName,
|
|
|
|
|
// })
|
|
|
|
|
// this.agencyTeamId = e.id
|
|
|
|
|
// console.log(this.agencyTeamId)
|
|
|
|
|
// },
|
|
|
|
|
groupChange(e) {
|
|
|
|
|
console.log(e)
|
|
|
|
|
this.form.setFieldsValue({
|
|
|
|
|
@ -874,10 +914,10 @@ export default {
|
|
|
|
|
if (item.id == e.id) {
|
|
|
|
|
item[type] = !item[type]
|
|
|
|
|
console.log(item[type])
|
|
|
|
|
if (type == 'bigScreen' && item['bigScreen'] == true) {
|
|
|
|
|
item['join'] = true
|
|
|
|
|
} else if (type == 'join' && item['join'] == false) {
|
|
|
|
|
item['bigScreen'] = false
|
|
|
|
|
if (type == 'showAgencyScreen' && item['showAgencyScreen'] == true) {
|
|
|
|
|
item['inAgencyStatistics'] = true
|
|
|
|
|
} else if (type == 'inAgencyStatistics' && item['inAgencyStatistics'] == false) {
|
|
|
|
|
item['showAgencyScreen'] = false
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
console.log(item)
|
|
|
|
|
@ -887,6 +927,18 @@ export default {
|
|
|
|
|
that.$forceUpdate()
|
|
|
|
|
}, 10)
|
|
|
|
|
},
|
|
|
|
|
/**
|
|
|
|
|
* 大屏显示
|
|
|
|
|
*/
|
|
|
|
|
memberShowScreen(val) {
|
|
|
|
|
memberShowScreenApi().then(({ data }) => {})
|
|
|
|
|
},
|
|
|
|
|
/**
|
|
|
|
|
* 参与统计
|
|
|
|
|
*/
|
|
|
|
|
memberJoinData(val) {
|
|
|
|
|
memberJoinDataApi().then(({ data }) => {})
|
|
|
|
|
},
|
|
|
|
|
moveList(item, type) {
|
|
|
|
|
console.log(item)
|
|
|
|
|
if (type == 'up') {
|
|
|
|
|
@ -1033,9 +1085,14 @@ export default {
|
|
|
|
|
.thedot {
|
|
|
|
|
display: none;
|
|
|
|
|
}
|
|
|
|
|
.showdot:hover .thedot {
|
|
|
|
|
.showdot:hover {
|
|
|
|
|
.thedot {
|
|
|
|
|
display: block;
|
|
|
|
|
}
|
|
|
|
|
.the_num {
|
|
|
|
|
display: none;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
.rightContainer {
|
|
|
|
|
flex: 1;
|
|
|
|
|
|