|
@@ -1,53 +1,39 @@
|
|
|
<template>
|
|
<template>
|
|
|
- <van-popup
|
|
|
|
|
- :duration="0.2"
|
|
|
|
|
- :overlay="false"
|
|
|
|
|
- class="employee_selector_popup"
|
|
|
|
|
- v-model="visible_"
|
|
|
|
|
- :position="position"
|
|
|
|
|
- :style="'height:'+com_height"
|
|
|
|
|
- >
|
|
|
|
|
|
|
+ <van-popup @open="openPopup" :duration="0.2" :overlay="false" class="employee_selector_popup" v-model="visible_" :position="position" :style="'height:' + com_height">
|
|
|
<slot name="nav"></slot>
|
|
<slot name="nav"></slot>
|
|
|
<van-nav-bar v-if="!$slots.nav" :title="title" left-text="取消" @click-left="close"></van-nav-bar>
|
|
<van-nav-bar v-if="!$slots.nav" :title="title" left-text="取消" @click-left="close"></van-nav-bar>
|
|
|
- <!-- <van-search v-model="keyword" v-if="can_select_employee" placeholder="请输入姓名搜索" />
|
|
|
|
|
- <van-search v-model="keyword" v-else placeholder="请输入部门名称搜索" /> -->
|
|
|
|
|
- <van-search v-model="keyword" style="margin-top: .2rem;" v-if="!can_select_employee" placeholder="请输入部门名称搜索" />
|
|
|
|
|
- <div class="dept_path" v-show="pid_list_arr.length > 0">
|
|
|
|
|
- <a href="javascript:void(0);" @click="back_by_index(0)">全公司</a>
|
|
|
|
|
- <a
|
|
|
|
|
- v-for="(item, index) in pid_list_arr"
|
|
|
|
|
- :key="index"
|
|
|
|
|
- href="javascript:void(0);"
|
|
|
|
|
- @click="back_by_index(index + 1)"
|
|
|
|
|
- >
|
|
|
|
|
- <van-icon name="arrow" />
|
|
|
|
|
- <Wxopendata type="departmentName" :openid="item.name"></Wxopendata>
|
|
|
|
|
- </a>
|
|
|
|
|
- </div>
|
|
|
|
|
- <div class="body_com" :class="{show_dept_path:pid_list_arr.length > 0}">
|
|
|
|
|
- <scroller :on-refresh="get_user_list" ref="scroller_com">
|
|
|
|
|
|
|
+ <van-search v-model="keyword" v-if="can_select_employee" placeholder="请输入姓名搜索" />
|
|
|
|
|
+ <van-search v-model="keyword" v-else placeholder="请输入部门名称搜索" />
|
|
|
|
|
+ <template v-if="isShowDeptsAll">
|
|
|
|
|
+ <div @click="isShowDeptSelect()" class="sax">部门筛选 <van-icon style="position: relative;top: 2px;" :name="!isShowDept? 'arrow-down':'arrow-up'" color="#909399" /></div>
|
|
|
|
|
+ <div class="dept_path" v-show="pid_list_arr.length > 0&&isShowDept">
|
|
|
|
|
+ <a href="javascript:void(0);" @click="back_by_index(0)">全公司</a>
|
|
|
|
|
+ <a v-for="(item, index) in pid_list_arr" :key="index" href="javascript:void(0);" @click="back_by_index(index+1,item)">
|
|
|
|
|
+ <van-icon name="arrow"/>
|
|
|
|
|
+ <Wxopendata type="departmentName" :openid="item.name"></Wxopendata>
|
|
|
|
|
+ </a>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </template>
|
|
|
|
|
+ <div class="body_com" :class="{ show_dept_path: pid_list_arr.length > 0 }">
|
|
|
|
|
+ <scroller ref="scroller_com">
|
|
|
|
|
+ <!-- <scroller :on-refresh="get_user_list" ref="scroller_com"> -->
|
|
|
<!-- can_select_dept 选择部门传值 -->
|
|
<!-- can_select_dept 选择部门传值 -->
|
|
|
- <van-cell
|
|
|
|
|
- :is-link="!can_select_dept"
|
|
|
|
|
- v-for="(item,index) in dept_list"
|
|
|
|
|
- :key="index"
|
|
|
|
|
- :title="item.name"
|
|
|
|
|
- v-show="item.pid == pid && item.name.indexOf(keyword) >= 0 && dept_not_select.indexOf(item.id) < 0"
|
|
|
|
|
- class="employee_cell"
|
|
|
|
|
- @click="select_dept(item)"
|
|
|
|
|
- >
|
|
|
|
|
|
|
+ <van-cell :is-link="!can_select_dept"
|
|
|
|
|
+ v-for="(item, index) in dept_list" :key="index" :title="item.name"
|
|
|
|
|
+ v-show="isShowDept && dept_not_select.indexOf(item.id) < 0"
|
|
|
|
|
+ class="employee_cell"
|
|
|
|
|
+ @click="select_dept(item)">
|
|
|
<template slot="icon">
|
|
<template slot="icon">
|
|
|
<van-checkbox v-if="can_select_dept" v-model="item.checked"></van-checkbox>
|
|
<van-checkbox v-if="can_select_dept" v-model="item.checked"></van-checkbox>
|
|
|
<img v-if="can_select_dept" src="static/images/e66f.jpg" class="employee_cell_head_img" />
|
|
<img v-if="can_select_dept" src="static/images/e66f.jpg" class="employee_cell_head_img" />
|
|
|
- <!-- <userImage :id="item.id" width="0.8rem" height="0.8rem" ></userImage> -->
|
|
|
|
|
</template>
|
|
</template>
|
|
|
<template slot="title">
|
|
<template slot="title">
|
|
|
<Wxopendata type="departmentName" :openid="item.name"></Wxopendata>
|
|
<Wxopendata type="departmentName" :openid="item.name"></Wxopendata>
|
|
|
</template>
|
|
</template>
|
|
|
- <template slot="right-icon" v-if="(can_select_dept && item.child.length > 0) || (!can_select_dept && can_select_employee && item.count > 0)">
|
|
|
|
|
|
|
+ <template slot="right-icon" v-if="item.children.length>0">
|
|
|
<a href="javascript:void(0);" class="child_btn" @click.stop="show_child(item)">| 下级</a>
|
|
<a href="javascript:void(0);" class="child_btn" @click.stop="show_child(item)">| 下级</a>
|
|
|
</template>
|
|
</template>
|
|
|
- </van-cell>
|
|
|
|
|
|
|
+ </van-cell>
|
|
|
|
|
|
|
|
<div style="height: .4rem; background: rgb(245, 245, 245);" v-show="selected_all"></div>
|
|
<div style="height: .4rem; background: rgb(245, 245, 245);" v-show="selected_all"></div>
|
|
|
<van-cell v-show="selected_all">
|
|
<van-cell v-show="selected_all">
|
|
@@ -55,65 +41,42 @@
|
|
|
<van-checkbox v-model="checked_btn" @change="checked_change">全选</van-checkbox>
|
|
<van-checkbox v-model="checked_btn" @change="checked_change">全选</van-checkbox>
|
|
|
</template>
|
|
</template>
|
|
|
</van-cell>
|
|
</van-cell>
|
|
|
- <div v-for="(item,index) in list" :key="index" v-if="can_select_employee" v-show="item.name.indexOf(keyword) >= 0">
|
|
|
|
|
- <div
|
|
|
|
|
- v-if="index == 0"
|
|
|
|
|
- :data-pageindex="item.letter_index"
|
|
|
|
|
- class="pageIndexBtn"
|
|
|
|
|
- >{{item.letter_index}}</div>
|
|
|
|
|
- <div
|
|
|
|
|
- v-if="index > 0 && list[index-1].letter_index != item.letter_index"
|
|
|
|
|
- :data-pageindex="item.letter_index"
|
|
|
|
|
- class="pageIndexBtn"
|
|
|
|
|
- >{{item.letter_index}}</div>
|
|
|
|
|
|
|
+ <div v-for="(item, index) in list" :key="index" v-if="can_select_employee">
|
|
|
|
|
+ <!-- <div v-if="index == 0" :data-pageindex="item.letter_index" class="pageIndexBtn">{{ item.letter_index }}</div>
|
|
|
|
|
+ <div v-if="index > 0 && list[index - 1].letter_index != item.letter_index" :data-pageindex="item.letter_index" class="pageIndexBtn">{{ item.letter_index }}</div> -->
|
|
|
<van-cell
|
|
<van-cell
|
|
|
- :class="{'letter-first': index == 0 || (index > 0 && list[index-1].letter_index != item.letter_index)}"
|
|
|
|
|
|
|
+ :class="{ 'letter-first': index == 0 || (index > 0 && list[index - 1].letter_index != item.letter_index) }"
|
|
|
v-if="can_select_employee"
|
|
v-if="can_select_employee"
|
|
|
- :title="item.name+(item.identification?'(直属上级)':'')"
|
|
|
|
|
|
|
+ :title="item.name + (item.identification ? '(直属上级)' : '')"
|
|
|
class="employee_cell"
|
|
class="employee_cell"
|
|
|
@click="select_employee(item)"
|
|
@click="select_employee(item)"
|
|
|
>
|
|
>
|
|
|
<template slot="icon">
|
|
<template slot="icon">
|
|
|
- <van-checkbox
|
|
|
|
|
- v-if="selectedQuitEmployee"
|
|
|
|
|
- :style="item.status > 1 || employee_not_select.indexOf(item.id) >= 0?'opacity: 0':'opacity: 1'"
|
|
|
|
|
- v-model="item.checked"
|
|
|
|
|
- ></van-checkbox>
|
|
|
|
|
- <van-checkbox
|
|
|
|
|
- v-if="!selectedQuitEmployee"
|
|
|
|
|
- :style="employee_not_select.indexOf(item.id) > 0?'opacity: 0':'opacity: 1'"
|
|
|
|
|
- v-model="item.checked"
|
|
|
|
|
- ></van-checkbox>
|
|
|
|
|
-
|
|
|
|
|
- <!-- {opacity: item.status < 2 || employee_not_select.indexOf(item.id) < 0 ? 1 :0} -->
|
|
|
|
|
- <userImage
|
|
|
|
|
- class="employee_cell_head_img"
|
|
|
|
|
- :img_url ="item.img_url"
|
|
|
|
|
- :user_name="item.name"
|
|
|
|
|
- width="0.8rem"
|
|
|
|
|
- height="0.8rem"
|
|
|
|
|
- fontSize="0.2"
|
|
|
|
|
- ></userImage>
|
|
|
|
|
- <!-- <img :src="item.img_url"class="employee_cell_head_img"/> -->
|
|
|
|
|
|
|
+ <van-checkbox v-if="selectedQuitEmployee" :style="item.status > 1 || employee_not_select.indexOf(item.id) >= 0 ? 'opacity: 0' : 'opacity: 1'" v-model="item.checked"></van-checkbox>
|
|
|
|
|
+ <van-checkbox v-if="!selectedQuitEmployee" :style="employee_not_select.indexOf(item.id) > 0 ? 'opacity: 0' : 'opacity: 1'" v-model="item.checked"></van-checkbox>
|
|
|
|
|
+ <userImage class="employee_cell_head_img" :img_url="item.img_url" :user_name="item.name" width="0.8rem" height="0.8rem" fontSize="0.2"></userImage>
|
|
|
</template>
|
|
</template>
|
|
|
<template slot="title">
|
|
<template slot="title">
|
|
|
<Wxopendata type="userName" :openid="item.name"></Wxopendata>{{item.identification?'(直属上级)':''}}
|
|
<Wxopendata type="userName" :openid="item.name"></Wxopendata>{{item.identification?'(直属上级)':''}}
|
|
|
</template>
|
|
</template>
|
|
|
- <template slot="right-icon" v-if="typeof(item.status) != 'undefined'">
|
|
|
|
|
- <van-tag plain v-show="item.status == 0 || item.status == 2">{{item.status == 0 ?'未加入':'离职'}}</van-tag>
|
|
|
|
|
|
|
+ <template slot="right-icon" v-if="typeof item.status != 'undefined'">
|
|
|
|
|
+ <van-tag plain v-show="item.status == 0 || item.status == 2">{{ item.status == 0 ? '未加入' : '离职' }}</van-tag>
|
|
|
</template>
|
|
</template>
|
|
|
</van-cell>
|
|
</van-cell>
|
|
|
|
|
+
|
|
|
</div>
|
|
</div>
|
|
|
|
|
+ <van-empty v-if="list.length==0" description="暂无数据..."/>
|
|
|
|
|
+ <div style="height: 1rem;"></div>
|
|
|
</scroller>
|
|
</scroller>
|
|
|
</div>
|
|
</div>
|
|
|
<slot name="footer"></slot>
|
|
<slot name="footer"></slot>
|
|
|
- <div class="bottom_menu flex-box flex-v-ce" :class="{isIos:isIos}">
|
|
|
|
|
|
|
+ <div class="bottom_menu flex-box flex-v-ce" :class="{ isIos: isIos }">
|
|
|
<div class="selected_box flex-1">
|
|
<div class="selected_box flex-1">
|
|
|
- <div class="flex-box flex-v-ce ul" :style="'width:'+selected_box_width">
|
|
|
|
|
- <div v-for="(item,index) in employee_selected_list" :key="index" @click="employee_cancel(item)" class="li">
|
|
|
|
|
- <userImage :img_url ="item.img_url" :user_name="item.name" width="0.9rem" height="0.9rem" fontSize="0.2"></userImage>
|
|
|
|
|
|
|
+ <div class="flex-box flex-v-ce ul" :style="'width:' + selected_box_width">
|
|
|
|
|
+ <div v-for="(item, index) in employee_selected_list" :key="index" @click="employee_cancel(item)" class="li">
|
|
|
|
|
+ <userImage :img_url="item.img_url" :user_name="item.name" width="0.9rem" height="0.9rem" fontSize="0.2"></userImage>
|
|
|
</div>
|
|
</div>
|
|
|
- <div v-for="(item,index) in dept_selected_list" :key="index" @click="dept_cancel(item)" class="fb">
|
|
|
|
|
|
|
+ <div v-for="(item, index) in dept_selected_list" :key="index" @click="dept_cancel(item)" class="fb">
|
|
|
<img src="static/images/e66f.jpg" />
|
|
<img src="static/images/e66f.jpg" />
|
|
|
<div class="name_mini"><Wxopendata type="departmentName" :openid="item.dept_name"></Wxopendata></div>
|
|
<div class="name_mini"><Wxopendata type="departmentName" :openid="item.dept_name"></Wxopendata></div>
|
|
|
</div>
|
|
</div>
|
|
@@ -121,8 +84,11 @@
|
|
|
</div>
|
|
</div>
|
|
|
<div class="selected_btn" ref="selected_btn">
|
|
<div class="selected_btn" ref="selected_btn">
|
|
|
<van-button ref="selected_button" style="height: 0.7rem; line-height: 0.7rem;" type="info" @click="confirm">
|
|
<van-button ref="selected_button" style="height: 0.7rem; line-height: 0.7rem;" type="info" @click="confirm">
|
|
|
- 确定<template v-if="multi && max*1 > 0">({{employee_selected_list.length}}/{{max}})</template>
|
|
|
|
|
- </van-button>
|
|
|
|
|
|
|
+ 确定
|
|
|
|
|
+ <template v-if="multi && max * 1 > 0">
|
|
|
|
|
+ ({{ employee_selected_list.length }}/{{ max }})
|
|
|
|
|
+ </template>
|
|
|
|
|
+ </van-button>
|
|
|
</div>
|
|
</div>
|
|
|
</div>
|
|
</div>
|
|
|
</van-popup>
|
|
</van-popup>
|
|
@@ -140,53 +106,68 @@ Vue.use(ActionSheet)
|
|
|
Vue.use(Search)
|
|
Vue.use(Search)
|
|
|
export default {
|
|
export default {
|
|
|
props: {
|
|
props: {
|
|
|
- position: {// 弹窗从哪里出来
|
|
|
|
|
|
|
+ position: {
|
|
|
|
|
+ // 弹窗从哪里出来
|
|
|
type: String,
|
|
type: String,
|
|
|
default: 'bottom'
|
|
default: 'bottom'
|
|
|
},
|
|
},
|
|
|
- append_body: {// 销毁组件时清空标题的作用
|
|
|
|
|
|
|
+ append_body: {
|
|
|
|
|
+ // 销毁组件时清空标题的作用
|
|
|
type: Boolean,
|
|
type: Boolean,
|
|
|
default: false
|
|
default: false
|
|
|
},
|
|
},
|
|
|
- visible: { // 是否显示组件
|
|
|
|
|
|
|
+ visible: {
|
|
|
|
|
+ // 是否显示组件
|
|
|
type: Boolean,
|
|
type: Boolean,
|
|
|
default: false
|
|
default: false
|
|
|
},
|
|
},
|
|
|
- can_select_dept: { // 指定是否能选择部门
|
|
|
|
|
|
|
+ can_select_dept: {
|
|
|
|
|
+ // 指定是否能选择部门
|
|
|
type: Boolean,
|
|
type: Boolean,
|
|
|
default: true
|
|
default: true
|
|
|
},
|
|
},
|
|
|
- can_select_employee: { // 指定是否能选择员工
|
|
|
|
|
|
|
+ can_select_employee: {
|
|
|
|
|
+ // 指定是否能选择员工
|
|
|
type: Boolean,
|
|
type: Boolean,
|
|
|
default: true
|
|
default: true
|
|
|
},
|
|
},
|
|
|
- employee_not_select: { // 排除员工的ID,包含ID时不出现在选择列表中
|
|
|
|
|
|
|
+ employee_not_select: {
|
|
|
|
|
+ // 排除员工的ID,包含ID时不出现在选择列表中
|
|
|
type: Array,
|
|
type: Array,
|
|
|
- default: () => { return [] }
|
|
|
|
|
|
|
+ default: () => {
|
|
|
|
|
+ return []
|
|
|
|
|
+ }
|
|
|
},
|
|
},
|
|
|
- dept_not_select: { // dept_not_select
|
|
|
|
|
|
|
+ dept_not_select: {// 不选择的部门
|
|
|
type: Array,
|
|
type: Array,
|
|
|
- default: () => { return [] }
|
|
|
|
|
|
|
+ default: () => {
|
|
|
|
|
+ return []
|
|
|
|
|
+ }
|
|
|
},
|
|
},
|
|
|
- selected: { // 已经选择的员工和部门
|
|
|
|
|
|
|
+ selected: {
|
|
|
|
|
+ // 已经选择的员工和部门
|
|
|
type: Object,
|
|
type: Object,
|
|
|
default: () => {
|
|
default: () => {
|
|
|
return { employee: [], dept: [] }
|
|
return { employee: [], dept: [] }
|
|
|
}
|
|
}
|
|
|
},
|
|
},
|
|
|
- multi: { // 指定员工是否能多选
|
|
|
|
|
|
|
+ multi: {
|
|
|
|
|
+ // 指定员工是否能多选
|
|
|
type: Boolean,
|
|
type: Boolean,
|
|
|
default: true
|
|
default: true
|
|
|
},
|
|
},
|
|
|
- dept_multi: { // dept_multi
|
|
|
|
|
|
|
+ dept_multi: {// 部门能否多选
|
|
|
type: Boolean,
|
|
type: Boolean,
|
|
|
default: true
|
|
default: true
|
|
|
},
|
|
},
|
|
|
- employee_list: { // 指定显示的员工列表,注意:传值后组件的员工数据将不是统一向服务器获取的,而是指定的员工列表,格式是:[{id: 1, name: “张三”, img_url: “”}]
|
|
|
|
|
|
|
+ employee_list: {
|
|
|
|
|
+ // 指定显示的员工列表,注意:传值后组件的员工数据将不是统一向服务器获取的,而是指定的员工列表,格式是:[{id: 1, name: “张三”, img_url: “”}]
|
|
|
type: Array,
|
|
type: Array,
|
|
|
- default: null
|
|
|
|
|
|
|
+ default: () => {
|
|
|
|
|
+ return []
|
|
|
|
|
+ }
|
|
|
},
|
|
},
|
|
|
- use_employee_list: { // 为true时,employee_list才生效
|
|
|
|
|
|
|
+ use_employee_list: {// 为true时,employee_list才生效
|
|
|
type: Boolean,
|
|
type: Boolean,
|
|
|
default: false
|
|
default: false
|
|
|
},
|
|
},
|
|
@@ -194,33 +175,51 @@ export default {
|
|
|
type: Boolean,
|
|
type: Boolean,
|
|
|
default: true
|
|
default: true
|
|
|
},
|
|
},
|
|
|
- max: { // 当multi为true时,用来限制选择人数,0不生效
|
|
|
|
|
|
|
+ max: {
|
|
|
|
|
+ // 当multi为true时,用来限制选择人数,0不生效
|
|
|
type: Number,
|
|
type: Number,
|
|
|
default: 0
|
|
default: 0
|
|
|
},
|
|
},
|
|
|
- include_self: { // 是否显示当前登录的员工信息
|
|
|
|
|
|
|
+ include_self: {// 是否显示当前登录的员工信息
|
|
|
type: Boolean,
|
|
type: Boolean,
|
|
|
default: true
|
|
default: true
|
|
|
},
|
|
},
|
|
|
- show_manager_only: { // 是否只显示管理者列表
|
|
|
|
|
|
|
+ show_manager_only: {
|
|
|
|
|
+ // 是否只显示管理者列表
|
|
|
type: Boolean,
|
|
type: Boolean,
|
|
|
default: false
|
|
default: false
|
|
|
},
|
|
},
|
|
|
- title: { // cell的显示名称
|
|
|
|
|
|
|
+ title: {// cell的显示名称
|
|
|
type: String,
|
|
type: String,
|
|
|
default: ''
|
|
default: ''
|
|
|
},
|
|
},
|
|
|
- selected_all: { // 是否选择全部
|
|
|
|
|
|
|
+ selected_all: {
|
|
|
|
|
+ // 是否选择全部
|
|
|
type: Boolean,
|
|
type: Boolean,
|
|
|
default: false
|
|
default: false
|
|
|
},
|
|
},
|
|
|
- selectedQuitEmployee: {//
|
|
|
|
|
|
|
+ selectedQuitEmployee: {
|
|
|
|
|
+ //
|
|
|
type: Boolean,
|
|
type: Boolean,
|
|
|
default: true
|
|
default: true
|
|
|
},
|
|
},
|
|
|
- is_filtration_creator: {// 是否过滤掉创始人
|
|
|
|
|
|
|
+ is_filtration_creator: {
|
|
|
|
|
+ // 是否过滤掉创始人
|
|
|
|
|
+ type: Boolean,
|
|
|
|
|
+ default: false
|
|
|
|
|
+ },
|
|
|
|
|
+ isShowDepts: {
|
|
|
|
|
+ // 默认是否显示部门
|
|
|
type: Boolean,
|
|
type: Boolean,
|
|
|
default: false
|
|
default: false
|
|
|
|
|
+ },
|
|
|
|
|
+ deptId: {// 指定显示某部门的人员,(这是部门ID)
|
|
|
|
|
+ type: Number,
|
|
|
|
|
+ default: 0
|
|
|
|
|
+ },
|
|
|
|
|
+ isShowDeptsAll: {// 是否不可看部门选择
|
|
|
|
|
+ type: Boolean,
|
|
|
|
|
+ default: true
|
|
|
}
|
|
}
|
|
|
},
|
|
},
|
|
|
name: 'EmployeeSelector',
|
|
name: 'EmployeeSelector',
|
|
@@ -233,42 +232,25 @@ export default {
|
|
|
employee_selected: [],
|
|
employee_selected: [],
|
|
|
dept_selected: [],
|
|
dept_selected: [],
|
|
|
com_height: '100%',
|
|
com_height: '100%',
|
|
|
- company_info: {},
|
|
|
|
|
- actions_show: false,
|
|
|
|
|
- dept_name: '',
|
|
|
|
|
- dept_id: 0,
|
|
|
|
|
- list: [],
|
|
|
|
|
- dept_list: [],
|
|
|
|
|
- keyword: '',
|
|
|
|
|
- owner_id: 0,
|
|
|
|
|
- user_info: this.$store.getters.user_info,
|
|
|
|
|
|
|
+ dept_name: '', // 公司名称
|
|
|
|
|
+ dept_id: 0, // 公司ID
|
|
|
|
|
+ list: [], // 人员列表
|
|
|
|
|
+ dept_list: [], // 部门列表
|
|
|
|
|
+ dept_list_all: [], // 备用
|
|
|
|
|
+ keyword: '', // 关键字
|
|
|
pid: 0,
|
|
pid: 0,
|
|
|
- pid_list: [],
|
|
|
|
|
selected_box_width: '0',
|
|
selected_box_width: '0',
|
|
|
- pid_list_arr: [],
|
|
|
|
|
- visible_: false,
|
|
|
|
|
|
|
+ pid_list_arr: [], // 选择的公司,顶部显示
|
|
|
|
|
+ visible_: false, // 是否显示组件
|
|
|
cache_list: [],
|
|
cache_list: [],
|
|
|
checked_btn: false,
|
|
checked_btn: false,
|
|
|
- isIos: false // 是否需要兼容IOS X以上
|
|
|
|
|
|
|
+ isIos: false, // 是否需要兼容IOS X以上
|
|
|
|
|
+ isShowDept: false// 控制显示部门选择
|
|
|
}
|
|
}
|
|
|
},
|
|
},
|
|
|
watch: {
|
|
watch: {
|
|
|
- max (val) {
|
|
|
|
|
- this.set_button_width()
|
|
|
|
|
- },
|
|
|
|
|
selected (val) {
|
|
selected (val) {
|
|
|
- let selected = JSON.parse(JSON.stringify(val))
|
|
|
|
|
- this.employee_selected = []
|
|
|
|
|
- this.dept_selected = []
|
|
|
|
|
- this.employee_selected_list = selected.employee
|
|
|
|
|
- this.dept_selected_list = selected.dept
|
|
|
|
|
- for (let i in selected.employee) {
|
|
|
|
|
- this.employee_selected.push(selected.employee[i].id)
|
|
|
|
|
- }
|
|
|
|
|
- for (let i in selected.dept) {
|
|
|
|
|
- this.dept_selected.push(selected.dept[i].dept_id)
|
|
|
|
|
- }
|
|
|
|
|
- this.set_button_width()
|
|
|
|
|
|
|
+ this.setSelected(val)
|
|
|
},
|
|
},
|
|
|
// 显示组件并调用初始化数据接口
|
|
// 显示组件并调用初始化数据接口
|
|
|
visible (val) {
|
|
visible (val) {
|
|
@@ -278,33 +260,53 @@ export default {
|
|
|
if (this.$route.query.pid) {
|
|
if (this.$route.query.pid) {
|
|
|
this.pid = this.$route.query.pid
|
|
this.pid = this.$route.query.pid
|
|
|
}
|
|
}
|
|
|
|
|
+ if (this.deptId != 0) {
|
|
|
|
|
+ this.pid = this.deptId
|
|
|
|
|
+ }
|
|
|
this.get_user_list(function () {})
|
|
this.get_user_list(function () {})
|
|
|
this.get_dept_list()
|
|
this.get_dept_list()
|
|
|
}, 200)
|
|
}, 200)
|
|
|
}
|
|
}
|
|
|
- this.set_button_width()
|
|
|
|
|
},
|
|
},
|
|
|
employee_selected_list () {
|
|
employee_selected_list () {
|
|
|
let l = this.employee_selected_list.length + this.dept_selected_list.length
|
|
let l = this.employee_selected_list.length + this.dept_selected_list.length
|
|
|
let width = 1 * l
|
|
let width = 1 * l
|
|
|
this.selected_box_width = width + 'rem'
|
|
this.selected_box_width = width + 'rem'
|
|
|
- this.set_button_width()
|
|
|
|
|
},
|
|
},
|
|
|
dept_selected_list () {
|
|
dept_selected_list () {
|
|
|
let l = this.employee_selected_list.length + this.dept_selected_list.length
|
|
let l = this.employee_selected_list.length + this.dept_selected_list.length
|
|
|
let width = 1 * l
|
|
let width = 1 * l
|
|
|
this.selected_box_width = width + 'rem'
|
|
this.selected_box_width = width + 'rem'
|
|
|
- this.set_button_width()
|
|
|
|
|
- },
|
|
|
|
|
- keyword () {
|
|
|
|
|
- this.get_user_list(function () {})
|
|
|
|
|
}
|
|
}
|
|
|
|
|
+ // keyword () {
|
|
|
|
|
+ // this.get_user_list(function () {})
|
|
|
|
|
+ // }
|
|
|
},
|
|
},
|
|
|
mounted () {
|
|
mounted () {
|
|
|
- // console.log(this.is_filtration_creator)
|
|
|
|
|
- // console.log(this.employee_list)
|
|
|
|
|
|
|
+ this.isShowDept = this.isShowDepts
|
|
|
},
|
|
},
|
|
|
methods: {
|
|
methods: {
|
|
|
|
|
+ setSelected (val) {
|
|
|
|
|
+ let selected = JSON.parse(JSON.stringify(val))
|
|
|
|
|
+ this.employee_selected = []
|
|
|
|
|
+ this.dept_selected = []
|
|
|
|
|
+ this.employee_selected_list = selected.employee
|
|
|
|
|
+ this.dept_selected_list = selected.dept
|
|
|
|
|
+ for (let i in selected.employee) {
|
|
|
|
|
+ this.employee_selected.push(selected.employee[i].id)
|
|
|
|
|
+ }
|
|
|
|
|
+ for (let i in selected.dept) {
|
|
|
|
|
+ this.dept_selected.push(selected.dept[i].dept_id)
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ // 打开时触发
|
|
|
|
|
+ openPopup () {
|
|
|
|
|
+ this.setSelected(this.selected)
|
|
|
|
|
+ },
|
|
|
|
|
+ // 控制部门显示隐藏
|
|
|
|
|
+ isShowDeptSelect () {
|
|
|
|
|
+ this.isShowDept = !this.isShowDept
|
|
|
|
|
+ },
|
|
|
checked_change (val) {
|
|
checked_change (val) {
|
|
|
if (val) {
|
|
if (val) {
|
|
|
for (let i in this.list) {
|
|
for (let i in this.list) {
|
|
@@ -317,11 +319,13 @@ export default {
|
|
|
employeeSelectedIds.push(element.id)
|
|
employeeSelectedIds.push(element.id)
|
|
|
})
|
|
})
|
|
|
for (const i in this.list) {
|
|
for (const i in this.list) {
|
|
|
- this.$set(this.list[i], 'checked', true)
|
|
|
|
|
- if (employeeSelectedIds.includes(this.list[i].id)) {
|
|
|
|
|
- total += 1
|
|
|
|
|
- } else {
|
|
|
|
|
- this.employee_selected_list.push(this.list[i])
|
|
|
|
|
|
|
+ if (this.employee_not_select.indexOf(this.list[i].id) < 0) {
|
|
|
|
|
+ this.$set(this.list[i], 'checked', true)
|
|
|
|
|
+ if (employeeSelectedIds.includes(this.list[i].id)) {
|
|
|
|
|
+ total += 1
|
|
|
|
|
+ } else {
|
|
|
|
|
+ this.employee_selected_list.push(this.list[i])
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
})
|
|
})
|
|
@@ -331,39 +335,31 @@ export default {
|
|
|
for (let i in this.list) {
|
|
for (let i in this.list) {
|
|
|
this.$set(this.list[i], 'checked', false)
|
|
this.$set(this.list[i], 'checked', false)
|
|
|
}
|
|
}
|
|
|
- // this.clear_data()
|
|
|
|
|
}
|
|
}
|
|
|
},
|
|
},
|
|
|
- set_button_width () {
|
|
|
|
|
- this.$nextTick(() => {})
|
|
|
|
|
- },
|
|
|
|
|
- back () {
|
|
|
|
|
- this.pid = this.pid_list[this.pid_list.length - 1]
|
|
|
|
|
- this.pid_list.splice(this.pid_list.length - 1)
|
|
|
|
|
- this.pid_list_arr.splice(this.pid_list_arr.length - 1)
|
|
|
|
|
- this.get_user_list(function () {
|
|
|
|
|
-
|
|
|
|
|
- })
|
|
|
|
|
- },
|
|
|
|
|
- back_by_index (index) {
|
|
|
|
|
- if (index == this.pid_list.length) {
|
|
|
|
|
- return false
|
|
|
|
|
- }
|
|
|
|
|
- this.pid = this.pid_list[index]
|
|
|
|
|
- this.pid_list.splice(index, 100)
|
|
|
|
|
|
|
+ back_by_index (index, item) {
|
|
|
this.pid_list_arr.splice(index, 100)
|
|
this.pid_list_arr.splice(index, 100)
|
|
|
- this.get_user_list(function () {
|
|
|
|
|
-
|
|
|
|
|
- })
|
|
|
|
|
|
|
+ if (index == 0) { // 点击全部
|
|
|
|
|
+ this.dept_list = this.dept_list_all
|
|
|
|
|
+ this.pid_list_arr = []
|
|
|
|
|
+ this.pid = 0
|
|
|
|
|
+ }
|
|
|
|
|
+ if (item) {
|
|
|
|
|
+ if (item.children) {
|
|
|
|
|
+ this.dept_list = item.children
|
|
|
|
|
+ this.pid = item.id
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ this.get_user_list(function () {})
|
|
|
},
|
|
},
|
|
|
show_child (item) {
|
|
show_child (item) {
|
|
|
- this.pid_list.push(this.pid)
|
|
|
|
|
|
|
+ if (item.children) {
|
|
|
|
|
+ this.dept_list = item.children
|
|
|
|
|
+ }
|
|
|
this.pid_list_arr.push(item)
|
|
this.pid_list_arr.push(item)
|
|
|
this.pid = item.id
|
|
this.pid = item.id
|
|
|
this.list = []
|
|
this.list = []
|
|
|
- this.get_user_list(function () {
|
|
|
|
|
-
|
|
|
|
|
- })
|
|
|
|
|
|
|
+ this.get_user_list(function () {})
|
|
|
},
|
|
},
|
|
|
employee_cancel (item) {
|
|
employee_cancel (item) {
|
|
|
this.employee_selected.splice(this.employee_selected.indexOf(item.id), 1)
|
|
this.employee_selected.splice(this.employee_selected.indexOf(item.id), 1)
|
|
@@ -409,7 +405,6 @@ export default {
|
|
|
return false
|
|
return false
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
if (item.checked) {
|
|
if (item.checked) {
|
|
|
item.checked = false
|
|
item.checked = false
|
|
|
this.employee_cancel(item)
|
|
this.employee_cancel(item)
|
|
@@ -476,46 +471,24 @@ export default {
|
|
|
},
|
|
},
|
|
|
// 获取部门数据
|
|
// 获取部门数据
|
|
|
get_dept_list () {
|
|
get_dept_list () {
|
|
|
- // 当只显示管理者列表或者 use_employee_list为True
|
|
|
|
|
- if (this.use_employee_list || this.show_manager_only) {
|
|
|
|
|
- return
|
|
|
|
|
- }
|
|
|
|
|
this.dept_map = {}
|
|
this.dept_map = {}
|
|
|
- request('get', '/api/department/index', { pid: this.pid, keyword: this.keyword }).then((res) => {
|
|
|
|
|
|
|
+ request('get', '/api/department/tree', '').then(res => {
|
|
|
var userList = res.data.data.list || []
|
|
var userList = res.data.data.list || []
|
|
|
for (let i in userList) {
|
|
for (let i in userList) {
|
|
|
userList[i]['checked'] = false
|
|
userList[i]['checked'] = false
|
|
|
if (this.dept_selected.indexOf(userList[i].id) >= 0) {
|
|
if (this.dept_selected.indexOf(userList[i].id) >= 0) {
|
|
|
userList[i]['checked'] = true
|
|
userList[i]['checked'] = true
|
|
|
}
|
|
}
|
|
|
- for (let k in userList) {
|
|
|
|
|
- if (!userList[i]['child']) {
|
|
|
|
|
- userList[i]['child'] = []
|
|
|
|
|
- }
|
|
|
|
|
- if (userList[k].pid == i) {
|
|
|
|
|
- userList[i]['child'].push(userList[k])
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
}
|
|
}
|
|
|
this.dept_list = userList
|
|
this.dept_list = userList
|
|
|
- this.owner_id = res.data.data.owner_id
|
|
|
|
|
- this.company_info = res.data.data.company_info
|
|
|
|
|
- if (res.data.data.dept_info == null) {
|
|
|
|
|
- this.dept_name = JSON.parse(JSON.stringify(res.data.data.company_info.name))
|
|
|
|
|
- this.dept_id = 0
|
|
|
|
|
- } else {
|
|
|
|
|
- this.dept_name = JSON.parse(JSON.stringify(res.data.data.dept_info.name))
|
|
|
|
|
- this.dept_id = res.data.data.dept_info.id
|
|
|
|
|
- }
|
|
|
|
|
- this.$toast.clear()
|
|
|
|
|
- }).catch((e) => {
|
|
|
|
|
|
|
+ this.dept_list_all = userList
|
|
|
|
|
+ }).finally(() => {
|
|
|
this.$toast.clear()
|
|
this.$toast.clear()
|
|
|
})
|
|
})
|
|
|
},
|
|
},
|
|
|
// 选择部门来筛选人,默认选择中的人勾上
|
|
// 选择部门来筛选人,默认选择中的人勾上
|
|
|
parse_list (data) {
|
|
parse_list (data) {
|
|
|
this.list = []
|
|
this.list = []
|
|
|
- let _list = []
|
|
|
|
|
for (let i in data) {
|
|
for (let i in data) {
|
|
|
data[i]['checked'] = false
|
|
data[i]['checked'] = false
|
|
|
if (this.employee_selected.indexOf(data[i].id) >= 0) {
|
|
if (this.employee_selected.indexOf(data[i].id) >= 0) {
|
|
@@ -524,12 +497,6 @@ export default {
|
|
|
if (data[i].img_url == '') {
|
|
if (data[i].img_url == '') {
|
|
|
data[i].img_url = ''
|
|
data[i].img_url = ''
|
|
|
}
|
|
}
|
|
|
- // 过滤创始人
|
|
|
|
|
- if (this.is_filtration_creator) {
|
|
|
|
|
- if (data[i].is_creator == 1) {
|
|
|
|
|
- data.splice(i, 1)
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
}
|
|
}
|
|
|
this.list = data
|
|
this.list = data
|
|
|
this.$nextTick(() => {
|
|
this.$nextTick(() => {
|
|
@@ -540,85 +507,87 @@ export default {
|
|
|
},
|
|
},
|
|
|
// 获取人员数据
|
|
// 获取人员数据
|
|
|
get_user_list (done) {
|
|
get_user_list (done) {
|
|
|
- let employeeMap = window.plus ? JSON.parse(plus.storage.getItem('SET_EMPLOYEE_MAP')) : JSON.parse(localStorage.getItem('SET_EMPLOYEE_MAP'))
|
|
|
|
|
- // 当有指定显示列表时
|
|
|
|
|
- if (this.use_employee_list) {
|
|
|
|
|
- let list = this.employee_list
|
|
|
|
|
- for (let i in list) {
|
|
|
|
|
- list[i]['letter_index'] = '#'
|
|
|
|
|
- if (employeeMap[list[i].id]) {
|
|
|
|
|
- list[i]['letter_index'] = employeeMap[list[i].id].letter_index
|
|
|
|
|
- if (employeeMap[list[i].id].img_url == '') {
|
|
|
|
|
- list[i]['img_url'] = ''
|
|
|
|
|
- } else {
|
|
|
|
|
- list[i]['img_url'] = employeeMap[list[i].id].img_url
|
|
|
|
|
- }
|
|
|
|
|
- list[i]['status'] = employeeMap[list[i].id].status
|
|
|
|
|
- }
|
|
|
|
|
- list[i]['checked'] = false
|
|
|
|
|
- if (this.employee_selected.indexOf(list[i].id) >= 0) {
|
|
|
|
|
- list[i]['checked'] = true
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ if (this.loadingUserList) { return }
|
|
|
|
|
+ this.loadingUserList = true
|
|
|
|
|
+ request('get', '/api/employee/index', { dept_id: this.pid, keywords: this.keyword, page: 0, page_size: 2000, is_official: 1 }).then(res => {
|
|
|
|
|
+ var list = this.filtration(res.data.data.list)// 过滤各种条件
|
|
|
|
|
+ // 当有指定显示列表时
|
|
|
|
|
+ console.log(this.use_employee_list)
|
|
|
|
|
+ console.log(this.employee_list)
|
|
|
|
|
+ console.log(list)
|
|
|
|
|
+ if (this.use_employee_list) {
|
|
|
|
|
+ var employeeList = this.employee_list
|
|
|
|
|
+ var userData = []
|
|
|
|
|
+ list.map((item) => { // 列表数据是否是自己的管理范围
|
|
|
|
|
+ employeeList.map((item2) => {
|
|
|
|
|
+ if (item.id == item2.id) {
|
|
|
|
|
+ userData.push(item)
|
|
|
|
|
+ }
|
|
|
|
|
+ })
|
|
|
|
|
+ })
|
|
|
|
|
+ console.log(userData)
|
|
|
|
|
+ this.parse_list(userData)
|
|
|
|
|
+ } else { // 没有指定人员列表
|
|
|
|
|
+ this.cache_list[this.pid] = list
|
|
|
|
|
+ this.parse_list(list)
|
|
|
}
|
|
}
|
|
|
- this.list = list.sort((a, b) => {
|
|
|
|
|
- return a.letter_index.charCodeAt(0) - b.letter_index.charCodeAt(0)
|
|
|
|
|
- })
|
|
|
|
|
|
|
+ }).finally(() => {
|
|
|
done()
|
|
done()
|
|
|
- this.$nextTick(() => {
|
|
|
|
|
- if (this.visible && this.can_select_employee) {
|
|
|
|
|
- this.$refs['scroller_com'].createPageIndex()
|
|
|
|
|
- }
|
|
|
|
|
- })
|
|
|
|
|
|
|
+ this.$toast.clear()
|
|
|
|
|
+ this.loadingUserList = false
|
|
|
|
|
+ })
|
|
|
|
|
|
|
|
- this.removeSelf(list)
|
|
|
|
|
- this.dept_list = []
|
|
|
|
|
- return false
|
|
|
|
|
- }
|
|
|
|
|
// 当点击选择部门时,传入部门ID过去出符合人员
|
|
// 当点击选择部门时,传入部门ID过去出符合人员
|
|
|
if (this.cache_list[this.pid]) {
|
|
if (this.cache_list[this.pid]) {
|
|
|
this.parse_list(this.cache_list[this.pid])
|
|
this.parse_list(this.cache_list[this.pid])
|
|
|
done()
|
|
done()
|
|
|
}
|
|
}
|
|
|
- // 避免多次请求
|
|
|
|
|
- if (this.loadingUserList) { return }
|
|
|
|
|
- this.loadingUserList = true
|
|
|
|
|
-
|
|
|
|
|
- request('get', '/api/employee/list', { dept_id: this.pid, keywords: this.keyword, page: 0, page_size: 2000 }).then((res) => {
|
|
|
|
|
- let _list = []
|
|
|
|
|
- // 把管理者过滤掉
|
|
|
|
|
- if (this.show_manager_only) {
|
|
|
|
|
- for (let i in res.data.data.list) {
|
|
|
|
|
- let is_manager = false
|
|
|
|
|
- for (let j in res.data.data.list[i].role_list) {
|
|
|
|
|
- if (res.data.data.list[i].role_list[j].name == 'creator' || res.data.data.list[i].role_list[j].name == 'point_manager' || res.data.data.list[i].role_list[j].name == 'dept_manager' || res.data.data.list[i].role_list[j].name == 'admin') {
|
|
|
|
|
- is_manager = true
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- if (is_manager) {
|
|
|
|
|
- _list.push(res.data.data.list[i])
|
|
|
|
|
|
|
+ },
|
|
|
|
|
+ // 过滤各种条件:如:自己,创始人,只显示管理者等。。。
|
|
|
|
|
+ filtration (data) {
|
|
|
|
|
+ var list = data
|
|
|
|
|
+ // 去除已经离职的人
|
|
|
|
|
+ for (let i = 0; i < list.length; i++) {
|
|
|
|
|
+ if (list[i].status == 2) {
|
|
|
|
|
+ list.splice(i, 1)
|
|
|
|
|
+ i--
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ var managerList = [] // 管理者列表
|
|
|
|
|
+ // 只显示管理者
|
|
|
|
|
+ if (this.show_manager_only) {
|
|
|
|
|
+ var isManager
|
|
|
|
|
+ list.map(item => {
|
|
|
|
|
+ isManager = false
|
|
|
|
|
+ item.employee_detail.role_list.map(item2 => {
|
|
|
|
|
+ if (item2.name == 'creator' || item2.name == 'point_manager' || item2.name == 'dept_manager' || item2.name == 'admin') {
|
|
|
|
|
+ isManager = true
|
|
|
}
|
|
}
|
|
|
|
|
+ })
|
|
|
|
|
+ if (isManager) {
|
|
|
|
|
+ managerList.push(item)
|
|
|
}
|
|
}
|
|
|
- } else {
|
|
|
|
|
- _list = res.data.data.list
|
|
|
|
|
- }
|
|
|
|
|
- // 正常进行
|
|
|
|
|
- const list = _list
|
|
|
|
|
- this.cache_list[this.pid] = this.removeSelf(list)
|
|
|
|
|
- this.parse_list(list)
|
|
|
|
|
- done()
|
|
|
|
|
- this.$toast.clear()
|
|
|
|
|
- }).catch((e) => {
|
|
|
|
|
- done()
|
|
|
|
|
- this.$toast.clear()
|
|
|
|
|
- }).finally(() => this.loadingUserList = false)
|
|
|
|
|
- },
|
|
|
|
|
- // 删除自己
|
|
|
|
|
- removeSelf (list) {
|
|
|
|
|
|
|
+ })
|
|
|
|
|
+ list = managerList
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // 过滤自己
|
|
|
if (!this.include_self) {
|
|
if (!this.include_self) {
|
|
|
- const currUserId = this.$store.getters.user_info.id
|
|
|
|
|
- const index = list.findIndex(o => o.id === currUserId)
|
|
|
|
|
- if (index > -1) {
|
|
|
|
|
- list.splice(index, 1)
|
|
|
|
|
|
|
+ const currUserId = this.$userInfo().id
|
|
|
|
|
+ for (let i = 0; i < list.length; i++) {
|
|
|
|
|
+ if (list[i].id == currUserId) {
|
|
|
|
|
+ list.splice(i, 1)
|
|
|
|
|
+ i--
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ // 过滤创始人
|
|
|
|
|
+ if (this.is_filtration_creator) {
|
|
|
|
|
+ for (let i = 0; i < list.length; i++) {
|
|
|
|
|
+ if (list[i].is_creator == 1) {
|
|
|
|
|
+ list.splice(i, 1)
|
|
|
|
|
+ i--
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
return list
|
|
return list
|
|
@@ -629,14 +598,17 @@ export default {
|
|
|
this.com_height = document.documentElement.style.height
|
|
this.com_height = document.documentElement.style.height
|
|
|
}
|
|
}
|
|
|
if (window.plus) {
|
|
if (window.plus) {
|
|
|
- this.isIos = window.plus.storage.getItem('iPhone')
|
|
|
|
|
|
|
+ this.isIos =(plus.storage.getItem('iPhone')=='false')? false:true;
|
|
|
}
|
|
}
|
|
|
- this.pid = this.$route.query.pid || 0
|
|
|
|
|
},
|
|
},
|
|
|
// 组件生命周期销毁时调用
|
|
// 组件生命周期销毁时调用
|
|
|
beforeDestroy () {
|
|
beforeDestroy () {
|
|
|
if (this.append_body) {
|
|
if (this.append_body) {
|
|
|
- document.body.removeChild(this.$el)
|
|
|
|
|
|
|
+ this.$nextTick(()=>{
|
|
|
|
|
+ if(document.body.contains(this.$el)){//判断有无在body中
|
|
|
|
|
+ document.body.removeChild(this.$el)
|
|
|
|
|
+ }
|
|
|
|
|
+ })
|
|
|
}
|
|
}
|
|
|
this.close()
|
|
this.close()
|
|
|
}
|
|
}
|
|
@@ -644,12 +616,18 @@ export default {
|
|
|
</script>
|
|
</script>
|
|
|
|
|
|
|
|
<style scoped>
|
|
<style scoped>
|
|
|
|
|
+ .sax{
|
|
|
|
|
+ text-align: center;
|
|
|
|
|
+ font-size: 0.32rem;
|
|
|
|
|
+ padding-bottom: 0.2rem;
|
|
|
|
|
+ border-bottom: 1px solid #f1f1f1;
|
|
|
|
|
+ }
|
|
|
.body_com {
|
|
.body_com {
|
|
|
height: calc(100% - 3.2rem);
|
|
height: calc(100% - 3.2rem);
|
|
|
position: relative;
|
|
position: relative;
|
|
|
}
|
|
}
|
|
|
-.isIos{
|
|
|
|
|
- padding-bottom: 0.4rem !important;
|
|
|
|
|
|
|
+.isIos {
|
|
|
|
|
+ padding-bottom: 0.4rem !important;
|
|
|
}
|
|
}
|
|
|
.body_com.show_dept_path {
|
|
.body_com.show_dept_path {
|
|
|
height: calc(100% - 3.48rem);
|
|
height: calc(100% - 3.48rem);
|
|
@@ -657,7 +635,7 @@ export default {
|
|
|
.bottom_menu {
|
|
.bottom_menu {
|
|
|
text-align: center;
|
|
text-align: center;
|
|
|
position: fixed;
|
|
position: fixed;
|
|
|
- padding:0.1rem 0.16rem;
|
|
|
|
|
|
|
+ padding: 0.1rem 0.16rem;
|
|
|
min-height: 0.9rem;
|
|
min-height: 0.9rem;
|
|
|
left: 0;
|
|
left: 0;
|
|
|
right: 0;
|
|
right: 0;
|
|
@@ -686,6 +664,7 @@ export default {
|
|
|
-moz-border-radius: 0.1rem;
|
|
-moz-border-radius: 0.1rem;
|
|
|
border-radius: 0.1rem;
|
|
border-radius: 0.1rem;
|
|
|
margin-right: 0.15rem;
|
|
margin-right: 0.15rem;
|
|
|
|
|
+ transition: all 1s;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
.employee_cell {
|
|
.employee_cell {
|
|
@@ -730,13 +709,13 @@ export default {
|
|
|
.selected_btn {
|
|
.selected_btn {
|
|
|
text-align: center;
|
|
text-align: center;
|
|
|
}
|
|
}
|
|
|
-.selected_box{
|
|
|
|
|
- overflow-x: scroll;
|
|
|
|
|
- margin-right: 0.16rem;
|
|
|
|
|
|
|
+.selected_box {
|
|
|
|
|
+ overflow-x: scroll;
|
|
|
|
|
+ margin-right: 0.16rem;
|
|
|
}
|
|
}
|
|
|
.ul .li {
|
|
.ul .li {
|
|
|
- width:0.9rem;
|
|
|
|
|
- height:0.9rem;
|
|
|
|
|
|
|
+ width: 0.9rem;
|
|
|
|
|
+ height: 0.9rem;
|
|
|
margin-right: 0.1rem;
|
|
margin-right: 0.1rem;
|
|
|
}
|
|
}
|
|
|
.ul .li img {
|
|
.ul .li img {
|
|
@@ -749,8 +728,8 @@ export default {
|
|
|
border-radius: 0.1rem;
|
|
border-radius: 0.1rem;
|
|
|
}
|
|
}
|
|
|
.ul .fb {
|
|
.ul .fb {
|
|
|
- width:0.9rem;
|
|
|
|
|
- height:0.9rem;
|
|
|
|
|
|
|
+ width: 0.9rem;
|
|
|
|
|
+ height: 0.9rem;
|
|
|
margin-right: 0.1rem;
|
|
margin-right: 0.1rem;
|
|
|
position: relative;
|
|
position: relative;
|
|
|
}
|
|
}
|
|
@@ -793,7 +772,7 @@ export default {
|
|
|
height: 0.6rem;
|
|
height: 0.6rem;
|
|
|
position: relative;
|
|
position: relative;
|
|
|
font-size: 0.32rem;
|
|
font-size: 0.32rem;
|
|
|
- line-height: 0.4rem;
|
|
|
|
|
|
|
+ line-height: 0.5rem;
|
|
|
overflow-x: scroll;
|
|
overflow-x: scroll;
|
|
|
padding: 0 0.32rem;
|
|
padding: 0 0.32rem;
|
|
|
}
|
|
}
|
|
@@ -815,7 +794,7 @@ export default {
|
|
|
background: rgb(245, 245, 245);
|
|
background: rgb(245, 245, 245);
|
|
|
font-size: 0.24rem;
|
|
font-size: 0.24rem;
|
|
|
}
|
|
}
|
|
|
-.employee_cell .van-tag{
|
|
|
|
|
|
|
+.employee_cell .van-tag {
|
|
|
display: inline-table;
|
|
display: inline-table;
|
|
|
margin-top: 0.16rem;
|
|
margin-top: 0.16rem;
|
|
|
}
|
|
}
|