accountGroupHome.vue 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744
  1. <!--
  2. * @Author: your name
  3. * @Date: 2022-01-08 09:27:43
  4. * @LastEditTime: 2022-03-21 03:17:37
  5. * @LastEditors: your name
  6. * @Description: 用户组管理
  7. * @FilePath: \Foshan4A2.0\src\views\accountGroupManagement\components\home.vue
  8. -->
  9. <template>
  10. <div class="accountGroup-home">
  11. <!--状态和搜索-->
  12. <div class="accountGroup-head flex">
  13. <div class="status flex-wrap"></div>
  14. <Search @getSearchData="getSearchData" @clearSearchData="clearSearchData" />
  15. </div>
  16. <!--账号树-->
  17. <div class="accountGroup-content">
  18. <!-- <OrgTree :dataList="dataList" :renderContent="renderContent" /> -->
  19. <el-row :gutter="24" class="bodyContent">
  20. <el-col :span="6" class="bodyPart">
  21. <div class="grid-content">
  22. <div class="title">{{ accountGroupType }}树</div>
  23. <div class="contentTree">
  24. <el-tree ref="tree" :data="dataListTree" :props="defaultProps" node-key="GroupId" :filter-node-method="filterNode" highlight-current :default-expanded-keys="expandedKeys" :current-node-key="currentKey" @node-expand="handleExpand" @node-collapse="handleCollapse" @node-click="handleNodeClick">
  25. </el-tree>
  26. </div>
  27. </div>
  28. </el-col>
  29. <el-col :span="18" class="bodyPart">
  30. <div class="grid-contentTop">
  31. <div class="title" style="margin-bottom: 15px">当前{{ accountGroupType }}</div>
  32. <div class="content">
  33. <el-empty :image-size="100" style="padding: 0" v-if="currDataArr.length < 1"></el-empty>
  34. <el-row>
  35. <el-col :span="8" v-for="data in currDataArr" :key="data.GroupId">
  36. <div class="itemBox">
  37. <el-row :gutter="24">
  38. <el-col :span="12">
  39. <div class="itemTitle">{{ data.GroupName }}</div>
  40. </el-col>
  41. <el-col :span="12">
  42. <div class="flex info">
  43. <div class="icon">
  44. <el-tooltip v-is="['grouptree_btn_update_group']" effect="dark" :content="`编辑${accountGroupType}`" placement="bottom">
  45. <span class="cap cap-edit" @click="renderEdit(data)" v-if="data.GroupId != -1"></span>
  46. </el-tooltip>
  47. <el-tooltip v-is="['grouptree_btn_add_group']" effect="dark" :content="`新增${accountGroupType}`" placement="bottom">
  48. <span class="cap cap-sub" @click="renderAdd(data)"></span>
  49. </el-tooltip>
  50. </div>
  51. </div>
  52. </el-col>
  53. <!-- <el-col :span="8" v-if="data.GroupId != -1">
  54. <span class="msg">岗位:</span>
  55. <span>{{ data.JobCount }}</span>
  56. </el-col> -->
  57. <!-- <el-col :span="8" v-if="data.GroupId != -1">
  58. <span class="msg">职员:</span>
  59. <span>{{ data.OfficerCount }}</span>
  60. </el-col> -->
  61. <el-col :span="24" v-if="data.GroupId != -1">
  62. <el-row>
  63. <el-col :span="12">
  64. <span class="msg">账号数:</span>
  65. <span>{{ data.UserCount }}</span>
  66. </el-col>
  67. <el-col :span="12">
  68. <span class="msg">权限数:</span>
  69. <span>{{ data.AuthCount }}</span>
  70. </el-col>
  71. </el-row>
  72. </el-col>
  73. <el-col :span="12" v-if="data.GroupId != -1">
  74. <span class="msg">状态:</span>
  75. <span class="use" v-if="data.Status == '1'">启用</span>
  76. <span class="unUse" v-if="data.Status != '1'">禁用</span>
  77. </el-col>
  78. <el-col v-is="['grouptree_btn_state_swatch']" :span="12" v-if="data.GroupId != -1">
  79. <el-switch active-color="#6F81BC" v-model="data.flag" @change="renderChange(data)"></el-switch>
  80. </el-col>
  81. </el-row>
  82. </div>
  83. </el-col>
  84. </el-row>
  85. </div>
  86. </div>
  87. <div class="grid-contentBottom">
  88. <div class="title">下级{{ accountGroupType }}</div>
  89. <div class="content">
  90. <el-empty :image-size="150" v-if="childrenData.length < 1"></el-empty>
  91. <el-row :gutter="24">
  92. <el-col :span="6" v-for="(data, index) in childrenData" :key="data.GroupId">
  93. <div v-is="['grouptree_btn_del_group']" class="info-close" @click="onNodeClick(data, index)">
  94. <i class="el-icon-close"></i>
  95. </div>
  96. <div class="itemBox" @click.stop="childrenClick(data)">
  97. <!-- <div class="status" v-if="data.OrganType == 1"></div>
  98. <div class="status2" v-if="data.OrganType != 1"></div> -->
  99. <el-row>
  100. <el-col :span="12">
  101. <div class="itemTitle">{{ data.GroupName }}</div>
  102. </el-col>
  103. <el-col :span="12">
  104. <div class="flex info">
  105. <div class="icon">
  106. <!-- <el-tooltip
  107. effect="dark"
  108. content="新增岗位"
  109. placement="bottom"
  110. >
  111. <span
  112. title="新增岗位"
  113. class="cap cap-job"
  114. @click.stop="renderJob(data)"
  115. v-if="data.GroupId != -1"
  116. ></span
  117. ></el-tooltip> -->
  118. <!-- <el-tooltip
  119. effect="dark"
  120. content="新增职员"
  121. placement="bottom"
  122. >
  123. <span
  124. title="新增职员"
  125. v-if="data.GroupId != -1"
  126. class="cap cap-member"
  127. @click.stop="renderMember(data)"
  128. ></span
  129. ></el-tooltip> -->
  130. <el-tooltip v-is="['grouptree_btn_update_group']" effect="dark" :content="`编辑${accountGroupType}`" placement="bottom">
  131. <span class="cap cap-edit" @click.stop="renderEdit(data)" v-if="data.GroupId != -1"></span>
  132. </el-tooltip>
  133. <el-tooltip v-is="['grouptree_btn_add_group']" effect="dark" :content="`新增${accountGroupType}`" placement="bottom">
  134. <span class="cap cap-sub" @click.stop="renderAdd(data)"></span>
  135. </el-tooltip>
  136. </div>
  137. </div>
  138. </el-col>
  139. <el-col :span="24" v-if="data.GroupId != -1">
  140. <el-row>
  141. <el-col :span="12">
  142. <span class="msg">账号数:</span>
  143. <span>{{ data.UserCount }}</span>
  144. </el-col>
  145. <el-col :span="12">
  146. <span class="msg">权限数:</span>
  147. <span>{{ data.AuthCount }}</span>
  148. </el-col>
  149. </el-row>
  150. </el-col>
  151. <el-col :span="12" v-if="data.GroupId != -1">
  152. <span class="msg">状态:</span>
  153. <span class="use" v-if="data.Status == '1'">启用</span>
  154. <span class="unUse" v-if="data.Status != '1'">禁用</span>
  155. </el-col>
  156. <el-col v-is="['grouptree_btn_state_swatch']" :span="12" v-if="data.GroupId != -1">
  157. <el-switch active-color="#6F81BC" v-model="data.flag" @click.stop.native @change="childrenRenderChange(data, index)"></el-switch>
  158. </el-col>
  159. </el-row>
  160. </div>
  161. </el-col>
  162. </el-row>
  163. </div>
  164. </div>
  165. </el-col>
  166. </el-row>
  167. </div>
  168. <!--删除弹框-->
  169. <Dialog :flag="flag">
  170. <div class="airportInfoDialog">
  171. <div class="title">删除{{ accountGroupType }}</div>
  172. <div class="content">是否确认删除{{ title }}?</div>
  173. <div class="foot right t30">
  174. <el-button size="medium" class="r24" @click="remove" type="danger">删除</el-button>
  175. <el-button size="medium" @click="flag = false">取消</el-button>
  176. </div>
  177. </div>
  178. </Dialog>
  179. </div>
  180. </template>
  181. <script>
  182. // import OrgTree from '@/layout/components/OrgTree'
  183. import Search from '@/layout/components/Search'
  184. import Dialog from '@/layout/components/Dialog'
  185. import { DeleteGroup, ChangeGroupStatus } from '@/api/AccountGroup'
  186. import treeData from '../mixins/treeData'
  187. export default {
  188. name: 'accountGroup',
  189. components: { Search, Dialog },
  190. mixins: [treeData],
  191. data () {
  192. return {
  193. dataIndex: 1,
  194. dataNum: 0,
  195. dataArr: [],
  196. type: null,
  197. title: '', // 弹框title
  198. flag: false, // 弹框开关
  199. dataId: null, // tree数据id
  200. defaultProps: {
  201. children: 'children',
  202. label: 'GroupName'
  203. },
  204. currDataArr: [],
  205. childrenData: [],
  206. dataListTree: [],
  207. currentKey: -1,
  208. expandedKeys: [-1],
  209. delIndex: 0
  210. }
  211. },
  212. created () {
  213. let keyWords = ''
  214. const treeEx = sessionStorage.getItem('accountTreeDatas');
  215. if (this.$route.query.keyWords) {
  216. keyWords = this.$route.query.keyWords
  217. }
  218. if (treeEx) {
  219. this.expandedKeys = JSON.parse(treeEx);
  220. }
  221. this.getGroupTree(keyWords)
  222. },
  223. watch: {
  224. dataList: {
  225. handler: function (val) {
  226. this.dataListTree = []
  227. this.dataListTree.push(_.cloneDeep(val))
  228. },
  229. deep: true
  230. },
  231. currentKey: {
  232. handler (val) {
  233. this.$nextTick(() => {
  234. this.$refs.tree.setCurrentKey(val)
  235. })
  236. }
  237. }
  238. },
  239. methods: {
  240. filterNode (value, data) {
  241. if (!value) return true
  242. return data.GroupName.indexOf(value) !== -1
  243. },
  244. // 添加组织
  245. renderAdd (data) {
  246. this.$router.push({
  247. path: '/accountGroup/Add',
  248. query: { GroupUpId: data.GroupId }
  249. })
  250. },
  251. // 修改组织
  252. renderEdit (data) {
  253. this.$router.push({
  254. path: '/accountGroup/Edit',
  255. query: { GroupUpId: data.GroupUpid, GroupId: data.GroupId }
  256. })
  257. },
  258. // 新增职员
  259. renderMember (data) {
  260. this.$message.warning('功能开发中')
  261. },
  262. // 切换状态
  263. renderChange (data) {
  264. const { GroupId, flag } = data
  265. this.handleChange(GroupId, flag)
  266. },
  267. // 下级切换状态
  268. async childrenRenderChange (data, index) {
  269. const { GroupId, flag } = data
  270. const isChildren = true
  271. this.handleChange(GroupId, flag, index, isChildren)
  272. // try {
  273. // const res = await ChangeGroupStatus({
  274. // GroupId: GroupId,
  275. // Status: Status
  276. // })
  277. // if (res.code === 0) {
  278. // this.$message.success(res.message)
  279. // this.childrenData[index].Status = Status
  280. // if (flag) {
  281. // this.dataArr.find(data => {
  282. // if (data.GroupId === GroupId) {
  283. // data.Status = 1
  284. // data.flag = true
  285. // return true
  286. // }
  287. // })
  288. // } else {
  289. // this.dataArr.find(data => {
  290. // if (data.GroupId === GroupId) {
  291. // data.Status = 0
  292. // data.flag = false
  293. // return true
  294. // }
  295. // })
  296. // this.setChildrenStatus(GroupId)
  297. // }
  298. // // this.getOrganTree();
  299. // } else {
  300. // this.$message.error(res.message)
  301. // this.childrenData[index].flag = !flag
  302. // }
  303. // } catch (error) {
  304. // console.log('出错了', error)
  305. // this.childrenData[index].flag = !flag
  306. // }
  307. },
  308. // 删除组织
  309. remove () {
  310. this.deleteOrg(this.dataId)
  311. },
  312. // 查询
  313. getSearchData (val) {
  314. if (val) {
  315. this.$router.replace({ path: '/accountGroup', query: { keyWords: val } })
  316. } else if (this.$route.query) {
  317. this.$router.replace('/accountGroup')
  318. }
  319. this.$refs.tree.filter(val)
  320. },
  321. // 清除查询
  322. clearSearchData () {
  323. this.$router.replace('/accountGroup')
  324. this.getGroupTree()
  325. },
  326. // 节点关闭按钮点击
  327. onNodeClick (data, index) {
  328. this.delIndex = index
  329. this.flag = true
  330. this.dataId = data.GroupId
  331. this.title = data.GroupName
  332. },
  333. // 获取指定数据
  334. decompose (value, key, id) {
  335. let data = _.cloneDeep(value)
  336. let arr = []
  337. for (let i = 0; i < data.length; i++) {
  338. if (data[i][key] == id) {
  339. arr.push(data[i])
  340. }
  341. }
  342. return arr
  343. },
  344. // 更改下级状态
  345. setChildrenStatus (id, flag) {
  346. this.dataArr.forEach(data => {
  347. if (data.GroupUpid === id) {
  348. data.Status = flag ? 1 : 0
  349. data.flag = flag
  350. this.setChildrenStatus(data.GroupId, flag)
  351. }
  352. })
  353. },
  354. // -----------获取数据------------
  355. // 状态变更
  356. async handleChange (id, flag, index, isChildren = false) {
  357. const Status = flag ? 1 : 0
  358. try {
  359. const res = await ChangeGroupStatus({
  360. GroupId: id,
  361. Status: Status
  362. })
  363. if (res.code === 0) {
  364. this.$message.success(res.message)
  365. if (!isChildren) {
  366. this.currDataArr[0].Status = Status
  367. } else {
  368. this.childrenData[index].Status = Status
  369. }
  370. this.dataArr.find(data => {
  371. if (data.GroupId === id) {
  372. data.Status = Status
  373. data.flag = flag
  374. return true
  375. }
  376. })
  377. if (!isChildren) {
  378. this.childrenData.forEach(data => {
  379. data.Status = Status
  380. data.flag = flag
  381. })
  382. }
  383. this.setChildrenStatus(id, flag)
  384. } else {
  385. this.$message.error(res.message)
  386. if (!isChildren) {
  387. this.currDataArr[0].flag = !flag
  388. } else {
  389. this.childrenData[index].flag = !flag
  390. }
  391. }
  392. } catch (error) {
  393. console.log('出错了', error)
  394. if (!isChildren) {
  395. this.currDataArr[0].flag = !flag
  396. } else {
  397. this.childrenData[index].flag = !flag
  398. }
  399. }
  400. this.$nextTick(() => {
  401. this.$refs.tree.setCurrentKey(this.currentKey)
  402. })
  403. },
  404. // 删除
  405. async deleteOrg (id) {
  406. try {
  407. const res = await DeleteGroup({
  408. GroupId: id
  409. })
  410. if (res.code === 0) {
  411. this.$message.success(res.message)
  412. this.flag = false
  413. this.getGroupTree()
  414. this.childrenData.splice(this.delIndex, 1)
  415. } else {
  416. this.flag = false
  417. this.$message.error(res.message)
  418. }
  419. } catch (error) {
  420. this.flag = false
  421. console.log('DeleteGroup')
  422. console.log('error')
  423. }
  424. },
  425. // 树点击
  426. handleNodeClick (data) {
  427. const dataNew = _.cloneDeep(data)
  428. this.currentKey = dataNew.GroupId
  429. this.currDataArr = []
  430. this.childrenData = []
  431. this.currDataArr = this.decompose(this.dataArr, 'GroupId', this.currentKey)
  432. this.childrenData = this.decompose(this.dataArr, 'GroupUpid', this.currentKey)
  433. },
  434. // 下级卡片点击
  435. childrenClick (data) {
  436. const dataNew = _.cloneDeep(data)
  437. this.currentKey = dataNew.GroupId
  438. this.currDataArr = []
  439. this.childrenData = []
  440. this.currDataArr = this.decompose(this.dataArr, 'GroupId', this.currentKey)
  441. this.childrenData = this.decompose(this.dataArr, 'GroupUpid', this.currentKey)
  442. if (!this.expandedKeys.includes(this.currentKey)) {
  443. this.expandedKeys.push(this.currentKey)
  444. }
  445. },
  446. // 节点展开
  447. handleExpand (obj) {
  448. this.expandedKeys.push(obj.GroupId)
  449. sessionStorage.setItem('accountTreeDatas', JSON.stringify(this.expandedKeys))
  450. },
  451. // 节点收起
  452. handleCollapse (obj) {
  453. const { GroupId, children } = obj
  454. children.length && this.collapseChilren(children)
  455. this.expandedKeys = this.expandedKeys.filter(key => key !== GroupId)
  456. sessionStorage.setItem('accountTreeDatas', JSON.stringify(this.expandedKeys))
  457. },
  458. // 收起子节点
  459. collapseChilren (children) {
  460. children.forEach(child => {
  461. const { GroupId, children } = child
  462. children.length && this.collapseChilren(children)
  463. this.expandedKeys = this.expandedKeys.filter(key => key !== GroupId)
  464. })
  465. }
  466. }
  467. }
  468. </script>
  469. <style lang="scss" scoped>
  470. .accountGroup-home {
  471. padding: 0 64px;
  472. // .accountGroup-head {
  473. // line-height: 48px;
  474. // display: flex;
  475. // justify-content: flex-end;
  476. // }
  477. .accountGroup-head {
  478. position: fixed;
  479. width: 100%;
  480. padding: 30px 64px;
  481. padding-left: 156px;
  482. left: 0;
  483. display: flex;
  484. flex-direction: row;
  485. justify-content: space-between;
  486. background: #f5f7fa;
  487. z-index: 100;
  488. .status {
  489. & > div {
  490. margin-right: 28px;
  491. .icon {
  492. width: 16px;
  493. height: 16px;
  494. background: #6f81bc;
  495. border-radius: 2px;
  496. display: inline-block;
  497. vertical-align: middle;
  498. margin-right: 10px;
  499. position: relative;
  500. top: -2px;
  501. }
  502. &:last-child {
  503. margin-right: 0;
  504. }
  505. }
  506. .status2 {
  507. .icon {
  508. background: #de4799;
  509. }
  510. }
  511. }
  512. }
  513. .accountGroup-content {
  514. padding-top: 110px;
  515. height: calc(100vh - 166px);
  516. box-sizing: border-box;
  517. .bodyContent {
  518. height: 100%;
  519. .bodyPart {
  520. height: 100%;
  521. display: flex;
  522. flex-direction: column;
  523. justify-content: space-between;
  524. }
  525. }
  526. .grid-content {
  527. width: 100%;
  528. height: 100%;
  529. background: #ffffff;
  530. border-radius: 16px;
  531. .title {
  532. font-size: 18px;
  533. font-family: Microsoft YaHei;
  534. font-weight: bold;
  535. color: #303133;
  536. height: 40px;
  537. padding: 30px;
  538. }
  539. .contentTree {
  540. height: calc(100% - 60px);
  541. overflow: auto;
  542. padding: 20px;
  543. }
  544. }
  545. .grid-contentTop {
  546. width: 100%;
  547. height: 240px;
  548. background: #ffffff;
  549. border-radius: 16px;
  550. .title {
  551. font-size: 18px;
  552. font-family: Microsoft YaHei;
  553. font-weight: bold;
  554. color: #303133;
  555. height: 40px;
  556. padding: 30px;
  557. }
  558. .content {
  559. width: 100%;
  560. height: calc(100% - 60px);
  561. padding: 0 20px;
  562. }
  563. }
  564. .grid-contentBottom {
  565. width: 100%;
  566. height: calc(100% - 240px - 24px);
  567. background: #ffffff;
  568. border-radius: 16px;
  569. .title {
  570. font-size: 18px;
  571. font-family: Microsoft YaHei;
  572. font-weight: bold;
  573. color: #303133;
  574. height: 40px;
  575. padding: 30px;
  576. }
  577. .content {
  578. width: 100%;
  579. height: calc(100% - 60px);
  580. padding: 20px 20px;
  581. overflow-y: auto;
  582. }
  583. }
  584. .el-col {
  585. position: relative;
  586. .info-close {
  587. position: absolute;
  588. width: 24px;
  589. height: 24px;
  590. line-height: 24px;
  591. text-align: center;
  592. background: #000000;
  593. border-radius: 50%;
  594. top: -10px;
  595. right: 23px;
  596. z-index: 15;
  597. color: #fff;
  598. cursor: pointer;
  599. .icon {
  600. color: #fff;
  601. font-weight: 600;
  602. }
  603. }
  604. }
  605. .itemBox {
  606. width: 292px;
  607. padding: 24px;
  608. position: relative;
  609. background: #f5f7fa;
  610. box-shadow: 0px 6px 7px 0px rgba(0, 0, 0, 0.06);
  611. border-radius: 16px;
  612. padding: 10px 20px;
  613. overflow: hidden;
  614. min-height: 130px;
  615. margin-bottom: 24px;
  616. .status {
  617. width: 100%;
  618. height: 4px;
  619. background: #6f80bc;
  620. position: absolute;
  621. top: 0;
  622. left: 0;
  623. z-index: 1;
  624. border-radius: 80px;
  625. }
  626. .status2 {
  627. width: 100%;
  628. height: 4px;
  629. position: absolute;
  630. top: 0;
  631. left: 0;
  632. z-index: 1;
  633. background: #de4799;
  634. }
  635. .el-col {
  636. padding: 10px 0;
  637. > .el-row > .el-col {
  638. padding: 0;
  639. }
  640. }
  641. .itemTitle {
  642. font-size: 16px;
  643. font-family: Microsoft YaHei;
  644. font-weight: bold;
  645. color: #303133;
  646. overflow: hidden;
  647. white-space: nowrap;
  648. text-overflow: ellipsis;
  649. }
  650. .info {
  651. line-height: normal;
  652. justify-content: flex-end;
  653. .name {
  654. font-size: 16px;
  655. font-weight: bold;
  656. }
  657. .cap {
  658. width: 24px;
  659. height: 24px;
  660. display: inline-block;
  661. background-repeat: no-repeat;
  662. background-size: cover;
  663. transition: all 0.3s;
  664. margin-left: 10px;
  665. &:first-child {
  666. margin-right: 0;
  667. }
  668. }
  669. .cap-plus {
  670. background-image: url("../../../assets/status/ic_plus.png");
  671. &:hover {
  672. background-image: url("../../../assets/status/ic_plus_hovar.png");
  673. }
  674. }
  675. .cap-edit {
  676. background-image: url("../../../assets/status/ic_edit.png");
  677. &:hover {
  678. background-image: url("../../../assets/status/ic_edit_hovar.png");
  679. }
  680. }
  681. .cap-sub {
  682. background-image: url("../../../assets/status/ic_subordinate.png");
  683. &:hover {
  684. background-image: url("../../../assets/status/ic_subordinate_hovar.png");
  685. }
  686. }
  687. .cap-job {
  688. background-image: url("../../../assets/status/ic_jobs.png");
  689. &:hover {
  690. background-image: url("../../../assets/status/ic_jobs_hovar.png");
  691. }
  692. }
  693. .cap-member {
  694. background-image: url("../../../assets/status/ic_member.png");
  695. &:hover {
  696. background-image: url("../../../assets/status/ic_member_hovar.png");
  697. }
  698. }
  699. }
  700. span {
  701. font-size: 16px;
  702. font-family: Microsoft YaHei;
  703. font-weight: 400;
  704. color: #909399;
  705. display: inline-block;
  706. }
  707. .msg {
  708. color: #303133;
  709. }
  710. .use {
  711. color: #6f80bc;
  712. }
  713. .unUse {
  714. color: #f56c6c;
  715. }
  716. .el-switch {
  717. float: right;
  718. }
  719. }
  720. }
  721. }
  722. ::-webkit-scrollbar-track-piece {
  723. background: #d3dce6;
  724. }
  725. ::-webkit-scrollbar {
  726. width: 6px;
  727. }
  728. ::-webkit-scrollbar-thumb {
  729. background: #99a9bf;
  730. border-radius: 20px;
  731. }
  732. </style>