users.vue 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680
  1. <template>
  2. <view class="column" style="height: calc(100% - 20rpx) ;">
  3. <view class="top " >
  4. <u-search placeholder="输入姓名/昵称搜索" bgColor='#F8F8FC'
  5. v-model="searchContent" @custom="search()" @search="search()"></u-search>
  6. <view class="justify-around fs28">
  7. <view v-for="(item,index) in tabs" :key="index" :class="act==index?'active':'notact'"
  8. @click="tabact(index)" class="flex-1 center ptb20">{{item}}</view>
  9. <view v-show="act==1" @click="selectact=!selectact" :class="selectact?'active':''"
  10. class="flex-1 center ptb20">批量</view>
  11. </view>
  12. </view>
  13. <view v-if='list.length<1' class="center mt60" style="color: #666;">暂无用户</view>
  14. <scroll-view scroll-y class="indexes flex-1 pb60" :scroll-into-view="'indexes-'+ listCurID" :style="[{height:'calc(100vh - 300rpx)'}]"
  15. :scroll-with-animation="true" :enable-back-to-top="true" >
  16. <view v-for="(item,index) in list" :key="index">
  17. <view :class="'indexItem-' + item.firstLetter" :id="'indexes-' + item.firstLetter" :data-index="item.firstLetter" @click.passive.stop>
  18. <view class="zm">{{item.firstLetter}}</view>
  19. <view class="user-list">
  20. <view class="user-item justify-start" v-for="(subitem,indexs) in item.list"
  21. @click="navTo(subitem)" :key="indexs">
  22. <u-checkbox-group @change="changeitem(subitem.userId)" v-if="selectact">
  23. <u-checkbox :checked="subitem.checked" shape="circle" activeColor="#1773ff" :name="subitem.userId"
  24. labelColor="#1773ff" />
  25. </u-checkbox-group>
  26. <view class="bgf p20 radius16 flex-1">
  27. <view class="justify-between align-center">
  28. <view class="justify-start align-center">
  29. <view class="avatar" >
  30. <image class="img" :src="subitem.avatar?(baseUrl+subitem.avatar):avatar" mode="aspectFill"></image>
  31. </view>
  32. <view class="content">
  33. <view class="name">
  34. {{subitem.nickName}}
  35. </view>
  36. <view class="dept justify-start align-center">
  37. <u-icon name="phone"></u-icon><view>{{subitem.phoneNumber}}</view> </view>
  38. <view class="dept">注册时间:{{subitem.registerTime}}</view>
  39. </view>
  40. </view>
  41. <view class="base-color fs24" v-if="subitem.status==0">未禁用</view>
  42. <view class="base-color-red fs24" v-else>禁用</view>
  43. </view>
  44. <view class="justify-between align-center mt10" @click.passive.stop>
  45. <view>
  46. <text class="base-color-9 ml10 fs24">部门:{{subitem.deptName?subitem.deptName:''}}</text>
  47. <view class="fs24 mt10 justify-start align-center" style="color: #115296;">
  48. <text class="base-color-9 ml10">岗位:{{subitem.postname?subitem.postname:''}}</text>
  49. <text class="base-color-9 ml20">角色:{{subitem.rolesname?subitem.rolesname:''}}</text>
  50. </view>
  51. </view>
  52. <!-- <view class="fs24 base-color-red mr10 bor-red
  53. base-bg-false plr20 radius40 ptb4">已禁用</view> -->
  54. <view class="fs24 base-color mr10 bor-blue h52 lh50
  55. base-bg-sure plr20 radius40 " style="width: fit-content;" v-if="subitem.isAudit==1">已审核</view>
  56. <view class="fs24 base-color-red mr10 bor-red h52 lh50
  57. base-bg-false plr20 radius40 " style="width: fit-content;z-index: 999;" @click="getidshen(subitem.userId)"
  58. v-else-if="subitem.isAudit==0&&!selectact">待审核</view>
  59. </view>
  60. </view>
  61. </view>
  62. </view>
  63. </view>
  64. </view>
  65. </scroll-view>
  66. <view class="indexBar" :style="[{height:'calc(100vh - 88rpx)'}]">
  67. <view class="indexBar-box" @touchstart="tStart" @touchend="tEnd" @touchmove.stop="tMove">
  68. <view class="indexBar-item" v-for="(item,index) in list" :key="index" :id="index"
  69. @touchstart="getCur" @touchend="setCur"> {{item.firstLetter}}</view>
  70. </view>
  71. </view>
  72. <view class="justify-between base-bg-f foot-select " v-if="selectact">
  73. <view class="align-center justify-between " v-if="selectact">
  74. <u-checkbox-group @change="selectAll">
  75. <u-checkbox :checked="isSelectAll" shape="circle" activeColor="#1773ff" :name="true"
  76. label="全选" labelColor="#333" />
  77. <text class="fs24 base-color-9 ml12">已选{{ selectedUsers.length }}个</text>
  78. <!-- {{selectedCount}} -->
  79. </u-checkbox-group>
  80. </view>
  81. <view class="justify-center ">
  82. <button class="base-bg-f radius100 base-color-red h62 ml10 fs28 lh60"
  83. style="border: #ef4c50 solid 2rpx;"
  84. @click="batchApprove">通过审核</button>
  85. </view>
  86. </view>
  87. <!--选择显示-->
  88. <view v-show="!hidden" class="indexToast">
  89. {{listCur}}
  90. </view>
  91. <u-popup :show="showcommpany" mode="center" round="16">
  92. <view class="bgf w600 h600 p40 radius16" style="max-height: 600rpx;">
  93. <view class="center bold fs32">设置销售员信息</view>
  94. <view class="justify-center align-center mtb30">
  95. <view class="mr40 fs32 base-color-6">部门:</view>
  96. <u-input
  97. placeholder="选择部门"
  98. border="surround"
  99. v-model="valueb"
  100. @focus="showbumen()"
  101. ></u-input>
  102. </view>
  103. <view class="justify-center align-center mtb30">
  104. <view class="mr40 fs32 base-color-6">岗位:</view>
  105. <view class="flex-1 u-border p16 radius8" @click="showgang=!showgang">
  106. <view class="fs28" style="color: #000;">{{valuea}}</view>
  107. <view class="fs28" style="color: #c0c4cc;" v-if="valueid.length==0">选择岗位</view>
  108. </view>
  109. </view>
  110. <view class="justify-center align-center mtb30">
  111. <view class="mr40 fs32 base-color-6">角色:</view>
  112. <view class="flex-1 u-border p16 radius8" @click="showjuese=!showjuese">
  113. <view class="fs28" style="color: #000;">{{valuej}}</view>
  114. <view class="fs28" style="color: #c0c4cc;" v-if="valuej.length==0">选择角色</view>
  115. </view>
  116. </view>
  117. <view class="justify-around align-center mt50 ">
  118. <view class="quxiao" @click="showcommpany=!showcommpany">取消</view>
  119. <view class="queren" @click="confirmbchange">通过审核</view>
  120. </view>
  121. <tki-tree ref="tkitree" :range="columnb" confirmColor="#4e8af7" :selectParent="true" @confirm="confirmb"/>
  122. <u-popup :show="showgang" @close="showgang=!showgang" :closeOnClickOverlay='true'>
  123. <view class="center bold fs36 pt40">请选择岗位</view>
  124. <view class="justify-start align-center warpbox mt40 p20">
  125. <view v-for="(item,index) in postlist" :key="item.postId" class="mlr10 mt10">
  126. <u-tag :text="item.postName" :plain="!item.checked" :name="index"
  127. @click="choosechangeTag"></u-tag>
  128. </view>
  129. </view>
  130. <view class="justify-around align-center mt50 ">
  131. <view class="quxiao" @click="showgang=!showgang">取消</view>
  132. <view class="queren" @click="postconfirm">确定</view>
  133. </view>
  134. </u-popup>
  135. <u-popup :show="showjuese" @close="showjuese=!showjuese" :closeOnClickOverlay='true'>
  136. <view class="center bold fs36 pt40">请选择角色</view>
  137. <view class="justify-start align-center warpbox mt40 p20">
  138. <view v-for="(item,index) in rolelist" :key="item.roleId" class="mlr10 mt10">
  139. <u-tag :text="item.roleName" :plain="!item.checked" :name="index"
  140. @click="choosechangerole"></u-tag>
  141. </view>
  142. </view>
  143. <view class="justify-around align-center mt50 ">
  144. <view class="quxiao" @click="showjuese=!showjuese">取消</view>
  145. <view class="queren" @click="roleconfirm">确定</view>
  146. </view>
  147. </u-popup>
  148. </view>
  149. </u-popup>
  150. <u-modal :show="showuser" title="提示" content='是否通过销售审核' :showCancelButton='true'
  151. @confirm='subsalesaudits' @cancel="showuser=!showuser"></u-modal>
  152. <u-loading-page :loading="viewload" iconSize="32" loadingColor="#3c9cff" fontSize="20"
  153. :loading-text="loadingtext" ></u-loading-page>
  154. </view>
  155. </template>
  156. <script>
  157. import {getAllUsers,querydepartment,querypost,modifysaleNews,queryrole,subsalesaudit} from '@/api/manageCompany.js';
  158. import tkiTree from "@/pages_managedata/components/tki-tree/tki-tree.vue"
  159. export default {
  160. components: {tkiTree},
  161. data() {
  162. return {
  163. viewload:true,
  164. loadingtext:"数据加载中...",
  165. baseUrl:uni.getStorageSync('requestPath'),
  166. avatar:this.$store.state.imgpath+"/app/images/default.png",
  167. CustomBar: 0,
  168. hidden: true,
  169. listCurID: '',
  170. list: [],
  171. listCur: '',
  172. searchContent:"",
  173. tabs:['已审核','未审核'],
  174. act:0,
  175. selectact:false,
  176. isSelectAll:false,
  177. selectedUsers:[],
  178. isAudits:1,
  179. ids:'',
  180. showcommpany:false,
  181. columnb: [
  182. ['11', '22', '33']
  183. ],
  184. postlist:{},
  185. showgang:false,
  186. showjuese:false,
  187. valuea:'',
  188. valueb:'',
  189. actpost:[],
  190. valueid:'',
  191. valueidbu:'',
  192. xuanid:[],
  193. valuej:'',
  194. rolelist:[],
  195. roleid:[],
  196. seluserids:[],
  197. showuser:false
  198. }
  199. },
  200. onLoad() {
  201. this.getUser();
  202. this.getdepartment()
  203. this.getpostlist()
  204. this.getrolelist()
  205. },
  206. onReady() {
  207. let that = this;
  208. uni.createSelectorQuery().select('.indexBar-box').boundingClientRect(function(res) {
  209. that.boxTop = res.top
  210. }).exec();
  211. uni.createSelectorQuery().select('.indexes').boundingClientRect(function(res) {
  212. that.barTop = res.top
  213. }).exec()
  214. },
  215. methods: {
  216. roleconfirm(){
  217. this.roleid = this.rolelist.filter(item => item.checked).map(v => v.roleId).join(",")
  218. this.valuej = this.rolelist.filter(item => item.checked).map(v => v.roleName).join(',')
  219. this.showjuese=!this.showjuese
  220. },
  221. choosechangerole(i){
  222. this.rolelist[i].checked = !this.rolelist[i].checked
  223. },
  224. showbumen(){
  225. this.$refs.tkitree._show();
  226. },
  227. confirmbchange(){
  228. console.log(this.valueb.length,this.xuanid)
  229. if(this.valueb.length==0){
  230. uni.showToast({
  231. icon: 'none',
  232. title: '请选择部门'
  233. })
  234. return
  235. }
  236. if(this.xuanid.length==0){
  237. uni.showToast({
  238. icon: 'none',
  239. title: '请选择部门'
  240. })
  241. return
  242. }
  243. if(this.valuej.length==0){
  244. uni.showToast({
  245. icon: 'none',
  246. title: '请选择角色'
  247. })
  248. return
  249. }
  250. const data={
  251. companyUserIds:this.ids,
  252. deptId:this.valueidbu,
  253. postIds:this.valueid,
  254. roleIds:this.roleid
  255. }
  256. modifysaleNews(data).then(res=>{
  257. console.log('设置信息',res)
  258. if(res.code==200){
  259. // uni.showToast({
  260. // icon: 'none',
  261. // title: '成功'
  262. // })
  263. this.xuanid=[]
  264. setTimeout(()=>{
  265. this.subsalesaudits()
  266. },100)
  267. }else{
  268. uni.showToast({
  269. title: res.msg,
  270. icon: 'none',
  271. });
  272. }
  273. })
  274. },
  275. getallList(){
  276. this.valueidbu=[]
  277. this.valueid=[]
  278. this.valueb=''
  279. this.valuea=''
  280. this.ids=''
  281. },
  282. postconfirm(){
  283. this.xuanid=this.postlist.filter(item => item.checked).map(v => v.postId)
  284. this.valueid = this.postlist.filter(item => item.checked).map(v => v.postId).join(",")
  285. this.valuea = this.postlist.filter(item => item.checked).map(v => v.postName).join(',')
  286. this.showgang=!this.showgang
  287. },
  288. choosechangeTag(i) {
  289. console.log(this.postlist[i].checked )
  290. this.postlist[i].checked = !this.postlist[i].checked
  291. },
  292. getdepartment(){
  293. querydepartment().then(res=>{
  294. if(res.code==200){
  295. this.columnb=res.data
  296. // console.log('部门',res)
  297. }
  298. })
  299. },
  300. getpostlist(){
  301. querypost().then(res=>{
  302. if(res.code==200){
  303. this.postlist = res.data.map(item => {
  304. return {
  305. ...item,
  306. checked: false,
  307. }
  308. })
  309. console.log('岗位',res)
  310. }
  311. })
  312. },
  313. getrolelist(){
  314. queryrole().then(res=>{
  315. if(res.code==200){
  316. this.rolelist = res.data.map(item => {
  317. return {
  318. ...item,
  319. checked: false,
  320. }
  321. })
  322. // console.log('岗位',res)
  323. }
  324. })
  325. },
  326. confirma(e){
  327. this.showgang = !this.showgang
  328. this.valuea=e.value[0]
  329. console.log(e)
  330. },
  331. confirmb(e){
  332. this.valueb=e[0].label
  333. this.valueidbu=e[0].id
  334. console.log(e[0])
  335. },
  336. getidshen(id){
  337. console.log(id)
  338. this.getallList()
  339. this.ids=id
  340. this.seluserids[0]=id
  341. this.showuser=!this.showuser
  342. // this.showcommpany=!this.showcommpany
  343. },
  344. batchApprove(){
  345. if (this.selectedUsers.length === 0) {
  346. uni.showToast({
  347. title: '请先选择用户',
  348. icon: 'none',
  349. });
  350. return;
  351. }
  352. this.ids=this.selectedUsers.join(',')
  353. this.seluserids=this.selectedUsers
  354. // this.showcommpany=!this.showcommpany
  355. this.showuser=!this.showuser
  356. // this.subsalesaudits()
  357. // this.confirmbchange()
  358. },
  359. subsalesaudits(){
  360. const data={
  361. userIds:this.seluserids
  362. }
  363. subsalesaudit(this.seluserids).then(res=>{
  364. console.log("subsalesaudits=====",res)
  365. if(res.code==200){
  366. uni.showToast({
  367. title: "用户通过审核,成为销售!",
  368. icon: 'none',
  369. });
  370. this.valueidbu=[]
  371. this.valueid=[]
  372. this.valueb=[]
  373. this.valuea=''
  374. this.valuej=''
  375. this.roleid=[]
  376. this.ids=''
  377. this.showuser=!this.showuser
  378. this.seluserids=[]
  379. // this.showcommpany=!this.showcommpany
  380. this.getUser()
  381. }else{
  382. uni.showToast({
  383. title: res.msg,
  384. icon: 'none',
  385. });
  386. }
  387. })
  388. },
  389. // 全选
  390. selectAll() {
  391. this.isSelectAll = !this.isSelectAll;
  392. this.selectedUsers = []; // 清空已选列表
  393. // 遍历所有用户项,更新 checked 状态
  394. this.list = this.list.map(group => {
  395. group.list = group.list.map(user => {
  396. if (this.isSelectAll) {
  397. this.selectedUsers.push(user.userId); // 添加用户ID到选中列表
  398. }
  399. return {
  400. ...user,
  401. checked: this.isSelectAll,
  402. };
  403. });
  404. return group;
  405. });
  406. // 如果取消全选,清空 selectedUsers
  407. if (!this.isSelectAll) {
  408. this.selectedUsers = [];
  409. }
  410. },
  411. // 单选 /反选
  412. changeitem(userId) {
  413. const index = this.selectedUsers.indexOf(userId);
  414. if (index === -1) {
  415. this.selectedUsers.push(userId); // 选中
  416. } else {
  417. this.selectedUsers.splice(index, 1); // 取消选中
  418. }
  419. // 更新全选状态
  420. this.isSelectAll = this.selectedUsers.length === this.getTotalUsers();
  421. },
  422. // 计算总用户数
  423. getTotalUsers() {
  424. return this.list.reduce((total, group) => total + group.list.length, 0);
  425. },
  426. tabact(index){
  427. this.list=[]
  428. this.act=index
  429. if(this.act==0){
  430. this.selectact=false
  431. this.isAudits=1
  432. this.getUser();
  433. }else if(this.act==1){
  434. this.isAudits=0
  435. this.getUser();
  436. }
  437. },
  438. getUser(){
  439. var data = {
  440. searchKey:this.searchContent,
  441. isAudit:this.isAudits
  442. };
  443. var that=this;
  444. getAllUsers(data).then(
  445. res => {
  446. if(res.code==200){
  447. this.viewload=false
  448. that.list=res.users;
  449. this.list=this.list.map(group=>{
  450. group.list = group.list.map(user => {
  451. return {
  452. ...user,
  453. checked: this.isSelectAll,
  454. postname:user.post.map(item=>item.postName).join(","),
  455. rolesname:user.roles.map(item=>item.roleName).join(",")
  456. };
  457. })
  458. return group;
  459. })
  460. }
  461. },
  462. rej => {}
  463. );
  464. },
  465. //获取文字信息
  466. getCur(e) {
  467. this.hidden = false;
  468. this.listCur = this.list[e.target.id].firstLetter;
  469. },
  470. setCur(e) {
  471. this.hidden = true;
  472. this.listCur = this.listCur
  473. },
  474. //滑动选择Item
  475. tMove(e) {
  476. let y = e.touches[0].clientY,
  477. offsettop = this.boxTop,
  478. that = this;
  479. //判断选择区域,只有在选择区才会生效
  480. if (y > offsettop) {
  481. let num = parseInt((y - offsettop) / 20);
  482. console.log(num);
  483. if(num<that.list.length){
  484. this.listCur = that.list[num].firstLetter
  485. }
  486. };
  487. },
  488. //触发全部开始选择
  489. tStart() {
  490. this.hidden = false
  491. },
  492. //触发结束选择
  493. tEnd() {
  494. this.hidden = true;
  495. this.listCurID = this.listCur
  496. },
  497. indexSelect(e) {
  498. let that = this;
  499. let barHeight = this.barHeight;
  500. let list = this.list;
  501. let scrollY = Math.ceil(list.length * e.detail.y / barHeight);
  502. for (let i = 0; i < list.length; i++) {
  503. if (scrollY < i + 1) {
  504. that.listCur = list[i].firstLetter;
  505. that.movableY = i * 20
  506. return false
  507. }
  508. }
  509. },
  510. navTo(subitem){
  511. uni.navigateTo({
  512. url: '/pages_managedata/saleInfo?userId='+subitem.userId
  513. })
  514. },
  515. search(){
  516. this.getUser()
  517. }
  518. }
  519. }
  520. </script>
  521. <style lang="scss">
  522. .quxiao{
  523. width: 40%;
  524. height: 70rpx;
  525. line-height: 70rpx;
  526. text-align: center;
  527. background-color: #F8F8FC;
  528. border: 2rpx solid #cacaca;
  529. color: #999;
  530. border-radius: 50rpx;
  531. }
  532. .queren{
  533. width: 40%;
  534. height: 70rpx;
  535. line-height: 70rpx;
  536. text-align: center;
  537. background-color: #1773ff;
  538. color: #fff;
  539. border-radius: 50rpx;
  540. }
  541. ::v-deep {
  542. .foot-select {
  543. position: fixed;
  544. bottom: 0;
  545. width: 100%;
  546. padding: 20rpx;
  547. background: #fff;
  548. box-shadow: 0 -2rpx 10rpx rgba(0,0,0,0.1);
  549. z-index: 1000;
  550. }
  551. }
  552. .active{
  553. color: #1773ff;
  554. font-weight: bold;
  555. }
  556. .notact{
  557. color: #888;
  558. }
  559. page {
  560. background-color: #F8F8FC;
  561. }
  562. .top{
  563. /* height: 88rpx; */
  564. background-color: #fff;
  565. padding: 0rpx 15rpx;
  566. padding-top: 20rpx;
  567. }
  568. .indexes {
  569. position: relative;
  570. }
  571. .indexBar {
  572. position: fixed;
  573. right: 0px;
  574. bottom: 0px;
  575. padding: 20upx 20upx 20upx 60upx;
  576. display: flex;
  577. align-items: center;
  578. }
  579. .indexBar .indexBar-box {
  580. width: 40upx;
  581. height: auto;
  582. background: #fff;
  583. display: flex;
  584. flex-direction: column;
  585. box-shadow: 0 0 20upx rgba(0, 0, 0, 0.1);
  586. border-radius: 10upx;
  587. }
  588. .indexBar-item {
  589. flex: 1;
  590. width: 40upx;
  591. height: 40upx;
  592. display: flex;
  593. align-items: center;
  594. justify-content: center;
  595. font-size: 24upx;
  596. color: #888;
  597. }
  598. movable-view.indexBar-item {
  599. width: 40upx;
  600. height: 40upx;
  601. z-index: 9;
  602. position: relative;
  603. }
  604. movable-view.indexBar-item::before {
  605. content: "";
  606. display: block;
  607. position: absolute;
  608. left: 0;
  609. top: 10upx;
  610. height: 20upx;
  611. width: 4upx;
  612. background-color: #f37b1d;
  613. }
  614. .indexToast {
  615. position: fixed;
  616. top: 0;
  617. right: 80upx;
  618. bottom: 0;
  619. background: rgba(0, 0, 0, 0.5);
  620. width: 100upx;
  621. height: 100upx;
  622. border-radius: 10upx;
  623. margin: auto;
  624. color: #fff;
  625. line-height: 100upx;
  626. text-align: center;
  627. font-size: 48upx;
  628. }
  629. .zm{
  630. height:30rpx;
  631. padding: 0rpx 20rpx;
  632. font-size: 24rpx;
  633. color: #888;
  634. background: #F8F8FC;
  635. }
  636. .user-list{
  637. margin: 20rpx;
  638. border-radius: 20rpx;
  639. }
  640. .user-item{
  641. width: 100%;
  642. margin: 12rpx 0;
  643. }
  644. .user-item .avatar{
  645. width: 100upx;
  646. height: 100upx;
  647. }
  648. .user-item .avatar .img{
  649. border-radius: 50%;
  650. width: 100%;
  651. height: 100%;
  652. }
  653. .user-item .content{
  654. margin-left: 15rpx;
  655. }
  656. .user-item .content .name{
  657. font-size: 26rpx;
  658. color: #111;
  659. }
  660. .user-item .content .dept{
  661. font-size: 24rpx;
  662. color: #888;
  663. margin-top: 15rpx;
  664. }
  665. </style>