plm前端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

809 lines
25 KiB

3 years ago
2 years ago
2 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
2 years ago
3 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
3 years ago
2 years ago
2 years ago
3 years ago
3 years ago
3 years ago
2 years ago
3 years ago
2 years ago
3 years ago
2 years ago
3 years ago
2 years ago
2 years ago
3 years ago
2 years ago
3 years ago
2 years ago
3 years ago
2 years ago
2 years ago
2 years ago
3 years ago
2 years ago
3 years ago
  1. <template>
  2. <div class="mod-user">
  3. <el-form :inline="true" :model="dataForm" @keyup.enter.native="getDataList()">
  4. <el-form-item>
  5. <el-input v-model="dataForm.userName" placeholder="用户账号" clearable></el-input>
  6. </el-form-item>
  7. <el-form-item>
  8. <el-button @click="getDataList()" type="primary">{{ buttons.search || '查询' }}</el-button>
  9. <el-button v-if="isAuth('sys:user:save')" type="primary" @click="addOrUpdateHandle()">
  10. {{ buttons.add || '新增' }}
  11. </el-button>
  12. <el-button v-if="isAuth('sys:user:save')" :disabled="this.showButton" type="primary"
  13. @click="specialAuthorize()"
  14. >{{ buttons.specialCompetencies || '特殊权限' }}
  15. </el-button>
  16. <el-button v-if="isAuth('sys:user:save')" :disabled="this.showButton" type="primary"
  17. @click="siteAuthorize()"
  18. > {{ buttons.factoryAuthorization || '工厂授权' }}
  19. </el-button>
  20. <el-button v-if="isAuth('sys:user:save')" :disabled="this.showButton" type="primary"
  21. @click="buAuthorize()"
  22. > {{ buttons.buAuthorization || 'BU授权' }}
  23. </el-button>
  24. <el-button v-if="isAuth('sys:user:save')" :disabled="this.showButton" type="primary"
  25. @click="projectModel()"
  26. > {{ buttons.projectAuthorization || '项目授权' }}
  27. </el-button>
  28. </el-form-item>
  29. </el-form>
  30. <el-table
  31. :data="dataList"
  32. border
  33. :height="height"
  34. v-loading="dataListLoading"
  35. @selection-change="selectionChangeHandle"
  36. highlight-current-row
  37. @current-change="handleCurrentChange"
  38. style="width: 100%;">
  39. <el-table-column
  40. prop="username"
  41. header-align="center"
  42. align="center"
  43. :label="buttons.username||'用户账号'">
  44. </el-table-column>
  45. <el-table-column
  46. prop="userDisplay"
  47. header-align="center"
  48. align="center"
  49. :label="buttons.userDisplay||'用户名'">
  50. </el-table-column>
  51. <el-table-column
  52. prop="email"
  53. header-align="center"
  54. align="center"
  55. :label="buttons.email||'邮箱'">
  56. </el-table-column>
  57. <el-table-column
  58. prop="mobile"
  59. header-align="center"
  60. align="center"
  61. :label="buttons.mobile||'手机号'">
  62. </el-table-column>
  63. <el-table-column
  64. prop="status"
  65. header-align="center"
  66. align="center"
  67. :label="buttons.status||'状态'">
  68. <template slot-scope="scope">
  69. <el-link v-if="scope.row.status === 0" type="success">{{ buttons.disable || '禁用' }}</el-link>
  70. <el-link v-else type="danger">{{ buttons.normal || '正常' }}</el-link>
  71. </template>
  72. </el-table-column>
  73. <el-table-column
  74. prop="createTime"
  75. header-align="center"
  76. align="center"
  77. width="180"
  78. :label="buttons.createTime||'创建时间'">
  79. </el-table-column>
  80. <el-table-column
  81. fixed="right"
  82. header-align="center"
  83. align="center"
  84. width="150"
  85. :label="buttons.cz||'操作'">
  86. <template slot-scope="scope">
  87. <!-- <a type="text" size="small" @click="generateData(scope.row)">{{ buttons.auth || '审核' }}</a>-->
  88. <a v-if="isAuth('sys:user:update')" type="text" size="small"
  89. @click="addOrUpdateHandle(scope.row.userId)">{{ buttons.edit || '修改' }}</a>
  90. <a v-if="isAuth('sys:user:delete')" type="text" size="small"
  91. @click="deleteHandle(scope.row.userId)">{{ buttons.delete || '删除' }}</a>
  92. </template>
  93. </el-table-column>
  94. </el-table>
  95. <el-pagination
  96. @size-change="sizeChangeHandle"
  97. @current-change="currentChangeHandle"
  98. :current-page="pageIndex"
  99. :page-sizes="[20, 50, 100, 200, 500]"
  100. :page-size="pageSize"
  101. :total="totalPage"
  102. layout="total, sizes, prev, pager, next, jumper">
  103. </el-pagination>
  104. <!-- 弹窗, 新增 / 修改 -->
  105. <add-or-update v-if="addOrUpdateVisible" ref="addOrUpdate" @refreshDataList="getDataList"></add-or-update>
  106. <!-- 审核权限 -->
  107. <el-dialog :close-on-click-modal="false" :close-on-press-escape="false" v-drag :title="inputSearch1"
  108. :visible.sync="setUp.reviewFlag" width="518px">
  109. <template>
  110. <el-transfer v-model="checked" :data="transferData"
  111. :titles="[buttons.allAuth || '所有权限', buttons.currentAuth || '当前权限']"></el-transfer>
  112. </template>
  113. <span slot="footer" class="dialog-footer">
  114. <div style="margin-top: 5px">
  115. <el-button type="primary" :disabled="setUp.saveButton" @click="saveUserRoleFlag()">确定</el-button>
  116. <el-button type="primary" @click="setUp.reviewFlag = false">取消</el-button>
  117. </div>
  118. </span>
  119. </el-dialog>
  120. <!-- 特殊权限 -->
  121. <el-dialog
  122. v-drag
  123. :title="'特殊性权限'"
  124. :visible.sync="specialVisible"
  125. width="820px"
  126. :append-to-body="true">
  127. <el-table
  128. :data="securityList"
  129. border
  130. :height="securityHeight"
  131. v-loading="dataListLoading"
  132. style="width: 100%;">
  133. <el-table-column
  134. v-for="(item,index) in columnList" :key="index"
  135. :sortable="item.columnSortable"
  136. :prop="item.columnProp"
  137. :header-align="item.headerAlign"
  138. :show-overflow-tooltip="item.showOverflowTooltip"
  139. :align="item.align"
  140. :fixed="item.fixed==''?false:item.fixed"
  141. :min-width="item.columnWidth"
  142. :label="item.columnLabel">
  143. <template slot-scope="scope">
  144. <span v-if="!item.columnHidden"> {{ scope.row[item.columnProp] }}</span>
  145. <span v-if="item.columnHidden">
  146. <el-checkbox v-model="scope.row[item.columnProp] "></el-checkbox>
  147. </span>
  148. <span v-if="item.columnImage"><img :src="scope.row[item.columnProp]"
  149. style="width: 100px; height: 80px"/></span>
  150. </template>
  151. </el-table-column>
  152. </el-table>
  153. <span slot="footer" class="dialog-footer">
  154. <el-button type="primary" @click="saveUserSecurity()">确定</el-button>
  155. <el-button @click="specialVisible = false" type="primary">取消</el-button>
  156. </span>
  157. </el-dialog>
  158. <!-- 工厂授权 -->
  159. <el-dialog
  160. style="font-size: 12px"
  161. v-drag
  162. :title="'工厂授权'"
  163. :visible.sync="siteVisible"
  164. width="518px"
  165. :append-to-body="true">
  166. <el-transfer class="rq" filterable v-model="selectSitList" :data="siteList" :titles="['未授权工厂', '已授权工厂']"></el-transfer>
  167. <span slot="footer" class="dialog-footer">
  168. <div style="margin-top: 5px">
  169. <el-button type="primary" @click="saveUserAssessSite()">确定</el-button>
  170. <el-button @click="siteVisible = false" type="primary">取消</el-button>
  171. </div>
  172. </span>
  173. </el-dialog>
  174. <!-- BU授权 -->
  175. <el-dialog
  176. style="font-size: 12px"
  177. v-drag
  178. :title="'BU授权'"
  179. :visible.sync="buVisible"
  180. width="518px"
  181. :append-to-body="true">
  182. <el-transfer class="rq" filterable v-model="selectBUList" :props="{
  183. key: 'buNo',
  184. label: 'buDesc'
  185. }" :data="buList" :titles="['未授权BU', '已授权BU']"></el-transfer>
  186. <span slot="footer" class="dialog-footer">
  187. <div style="margin-top: 5px">
  188. <el-button type="primary" @click="saveBuAssessSite()">确定</el-button>
  189. <el-button @click="buVisible = false" type="primary">取消</el-button>
  190. </div>
  191. </span>
  192. </el-dialog>
  193. <el-dialog
  194. width="600px"
  195. title="项目权限"
  196. :close-on-click-modal="false"
  197. :visible.sync="projectRoleFlag">
  198. <el-table
  199. :data="projectRoleList"
  200. border
  201. :height="400"
  202. v-loading="false"
  203. style="width: 100%;">
  204. <el-table-column
  205. prop="projectId"
  206. header-align="center"
  207. align="center"
  208. min-width="50"
  209. label="项目号">
  210. </el-table-column>
  211. <el-table-column
  212. prop="projectDesc"
  213. header-align="center"
  214. align="center"
  215. min-width="100"
  216. label="项目描述">
  217. </el-table-column>
  218. <el-table-column
  219. prop=""
  220. header-align="center"
  221. align="center"
  222. min-width="25"
  223. label="">
  224. <template slot-scope="scope">
  225. <!-- 如果数据为Y显示勾选框否则不勾选 -->
  226. <el-checkbox v-model="scope.row.checkAll" @change="changeAll(scope.row)"></el-checkbox>
  227. </template>
  228. </el-table-column>
  229. <el-table-column
  230. prop=""
  231. header-align="center"
  232. align="center"
  233. min-width="25"
  234. label="查询">
  235. <template slot-scope="scope">
  236. <!-- 如果数据为Y显示勾选框否则不勾选 -->
  237. <el-checkbox v-model="scope.row.searchCheck" @change="changeCheck(scope.row,1)"></el-checkbox>
  238. </template>
  239. </el-table-column>
  240. <el-table-column
  241. prop=""
  242. header-align="center"
  243. align="center"
  244. min-width="25"
  245. label="修改">
  246. <template slot-scope="scope">
  247. <!-- 如果数据为Y显示勾选框否则不勾选 -->
  248. <el-checkbox v-model="scope.row.updateCheck" @change="changeCheck(scope.row,2)"></el-checkbox>
  249. </template>
  250. </el-table-column>
  251. <el-table-column
  252. prop=""
  253. header-align="center"
  254. align="center"
  255. min-width="25"
  256. label="下载">
  257. <template slot-scope="scope">
  258. <!-- 如果数据为Y显示勾选框否则不勾选 -->
  259. <el-checkbox v-model="scope.row.downCheck" @change="changeCheck(scope.row,3)"></el-checkbox>
  260. </template>
  261. </el-table-column>
  262. <el-table-column
  263. prop=""
  264. header-align="center"
  265. align="center"
  266. min-width="25"
  267. label="删除">
  268. <template slot-scope="scope">
  269. <!-- 如果数据为Y显示勾选框否则不勾选 -->
  270. <el-checkbox v-model="scope.row.deleteCheck" @change="changeCheck(scope.row,4)"></el-checkbox>
  271. </template>
  272. </el-table-column>
  273. </el-table>
  274. <span slot="footer" class="dialog-footer">
  275. <div style="margin-top: 5px">
  276. <el-button type="primary" @click="saveAccessProject()">确定</el-button>
  277. <el-button @click="projectRoleFlag = false" type="primary">取消</el-button>
  278. </div>
  279. </span>
  280. </el-dialog>
  281. </div>
  282. </template>
  283. <script>
  284. import {getUserAccessSiteList, saveUserAccessSiteList} from '@/api/factory/accessSite.js'
  285. import {getSiteList} from '@/api/factory/site.js'
  286. import {searchAccessBuList,saveAccessBU,searchAccessProjectForUser,saveAccessProject} from '@/api/base/site.js'
  287. import AddOrUpdate from './user-add-or-update'
  288. import {getUserBusinessRoleList, saveUserBusinessRole,} from '@/api/auditManagement/auditType.js'
  289. import {
  290. getUserSpecialSecurity,
  291. saveUserSpecialSecurity,
  292. updateUserSpecialSecurity
  293. } from '@/api/factory/userSpecialSecurity.js'
  294. import {debounce, throttle} from "../../../utils/common";
  295. import {
  296. searchFunctionButtonList,
  297. } from "@/api/sysLanguage.js"
  298. export default {
  299. data() {
  300. return {
  301. projectRoleFlag:false,
  302. projectRoleList:[],
  303. showButton: true,
  304. height: 200,
  305. securityHeight: 300,
  306. specialVisible: false,
  307. siteVisible: false,
  308. buVisible: false,
  309. currentData: {},
  310. userId: this.$store.state.user.name,
  311. transferData: [],
  312. checked: [],
  313. selectBUList:[],
  314. buList:[],
  315. inputSearch1: '审核权限',
  316. //设置
  317. setUp: {
  318. reviewFlag: false,
  319. saveButton: false,
  320. },
  321. dataForm: {
  322. userName: ''
  323. },
  324. columnList: [
  325. {
  326. userId: this.$store.state.user.name,
  327. serialNumber: 'security' + this.$route.meta.menuId + 'securitydesc',
  328. tableId: this.$route.meta.menuId + 'security',
  329. tableName: "securityTable",
  330. columnProp: "securitydesc",
  331. headerAlign: "center",
  332. align: "left",
  333. columnLabel: "参数描述",
  334. columnHidden: false,
  335. columnImage: false,
  336. columnWidth: 70,
  337. columnSortable: false,
  338. sortLv: 0,
  339. status: true,
  340. fixed: '',
  341. },
  342. {
  343. userId: this.$store.state.user.name,
  344. serialNumber: 'security' + this.$route.meta.menuId + 'securitydesc',
  345. tableId: this.$route.meta.menuId + 'security',
  346. tableName: "securityTable",
  347. columnProp: "module",
  348. headerAlign: "center",
  349. align: "left",
  350. columnLabel: "模块",
  351. columnHidden: false,
  352. columnImage: false,
  353. columnSortable: false,
  354. columnWidth: 20,
  355. sortLv: 0,
  356. status: true,
  357. fixed: '',
  358. },
  359. {
  360. userId: this.$store.state.user.name,
  361. serialNumber: 'security' + this.$route.meta.menuId + 'securitydesc',
  362. tableId: this.$route.meta.menuId + 'security',
  363. tableName: "securityTable",
  364. columnProp: "itemvalue",
  365. headerAlign: "center",
  366. align: "center",
  367. columnLabel: "参数值",
  368. columnHidden: true,
  369. columnImage: false,
  370. columnSortable: false,
  371. columnWidth: 10,
  372. sortLv: 0,
  373. status: true,
  374. fixed: '',
  375. },
  376. ],
  377. buttons: {
  378. cz: '操作',
  379. search: '查询',
  380. add: '添加',
  381. edit: '编辑',
  382. delete: '删除',
  383. specialCompetencies: '特殊权限',
  384. factoryAuthorization: '工厂授权',
  385. buAuthorization: 'BU授权',
  386. projectAuthorization: '项目授权',
  387. createTime: '创建时间',
  388. username: '用户账号',
  389. userDisplay: '用户名',
  390. email: '邮箱',
  391. mobile: '手机号',
  392. status: '状态',
  393. disable: '禁用',
  394. normal: '正常',
  395. auth: '审核',
  396. allAuth: '所有权限',
  397. currentAuth: '当前权限'
  398. },
  399. dataList: [],
  400. securityList: [],
  401. selectSpecialList: [],
  402. siteList: [],
  403. selectSitList: [],
  404. selectUser: {},
  405. pageIndex: 1,
  406. pageSize: 20,
  407. totalPage: 0,
  408. dataListLoading: false,
  409. dataListSelections: [],
  410. addOrUpdateVisible: false
  411. }
  412. },
  413. components: {
  414. AddOrUpdate
  415. },
  416. activated() {
  417. this.getDataList()
  418. },
  419. mounted() {
  420. this.$nextTick(() => {
  421. this.securityHeight = window.innerHeight - 300;
  422. this.height = window.innerHeight - 200;
  423. })
  424. },
  425. methods: {
  426. // 获取button的词典
  427. getFunctionButtonList() {
  428. let queryButton = {
  429. functionId: this.$route.meta.menuId,
  430. tableId: '*',
  431. languageCode: this.$i18n.locale,
  432. objectType: 'button'
  433. }
  434. searchFunctionButtonList(queryButton).then(({data}) => {
  435. if (data.code == 0 && data.data) {
  436. this.buttons = data.data
  437. }
  438. })
  439. },
  440. // 特殊权限
  441. specialAuthorize() {
  442. this.specialVisible = true
  443. this.searchUserSpecialSecurity()
  444. },
  445. // 获取特殊权限
  446. searchUserSpecialSecurity() {
  447. saveUserSpecialSecurity({userid: this.selectUser.username}).then(({data}) => {
  448. if (data.code === 0) {
  449. getUserSpecialSecurity(this.selectUser.username).then(({data}) => {
  450. if (data.code === 0) {
  451. this.securityList = data.dataList.map(item => {
  452. item.itemvalue = item.itemvalue == 'Y' ? true : false;
  453. return item;
  454. })
  455. }
  456. })
  457. }
  458. })
  459. },
  460. // 保存用户权限
  461. saveUserSecurity() {
  462. let securityList = JSON.parse(JSON.stringify(this.securityList)).map(item => {
  463. item.itemvalue = item.itemvalue === true ? 'Y' : 'N';
  464. return item;
  465. })
  466. updateUserSpecialSecurity(securityList).then(({data}) => {
  467. if (data.code === 0) {
  468. this.$message.success(data.msg)
  469. this.specialVisible = false
  470. } else {
  471. this.$message.success(data.msg)
  472. }
  473. })
  474. },
  475. // 授权工厂
  476. siteAuthorize() {
  477. this.siteVisible = true
  478. this.searchSiteList()
  479. },
  480. buAuthorize() {
  481. this.buVisible = true
  482. this.searchBuList()
  483. },
  484. //授权项目start
  485. projectModel(){
  486. let inData={
  487. site:this.$store.state.user.site,
  488. username:this.selectUser.username,
  489. }
  490. searchAccessProjectForUser(inData).then(({data}) => {
  491. this.projectRoleList=data.rows
  492. })
  493. this.projectRoleFlag=true
  494. },
  495. changeAll(row){
  496. if(row.checkAll){
  497. row.searchCheck=true;
  498. row.updateCheck=true;
  499. row.downCheck=true;
  500. row.deleteCheck=true;
  501. row.searchFlag='Y'
  502. row.updateFlag='Y'
  503. row.downFlag='Y'
  504. row.deleteFlag='Y'
  505. }else {
  506. row.searchCheck=false;
  507. row.updateCheck=false;
  508. row.downCheck=false;
  509. row.deleteCheck=false;
  510. row.searchFlag='N'
  511. row.updateFlag='N'
  512. row.downFlag='N'
  513. row.deleteFlag='N'
  514. }
  515. },
  516. changeCheck(row,type){
  517. if(type==1){
  518. if(row.searchCheck){
  519. row.searchFlag='Y'
  520. }else {
  521. row.searchFlag='N'
  522. }
  523. }
  524. if(type==2){
  525. if(row.updateCheck){
  526. row.updateFlag='Y'
  527. }else {
  528. row.updateFlag='N'
  529. }
  530. }
  531. if(type==3){
  532. if(row.downCheck){
  533. row.downFlag='Y'
  534. }else {
  535. row.downFlag='N'
  536. }
  537. }
  538. if(type==4){
  539. if(row.deleteCheck){
  540. row.deleteFlag='Y'
  541. }else {
  542. row.deleteFlag='N'
  543. }
  544. }
  545. if(row.searchCheck&&row.updateCheck&&row.downCheck&&row.deleteCheck){
  546. row.checkAll=true
  547. }else{
  548. row.checkAll=false
  549. }
  550. this.$forceUpdate();
  551. },
  552. saveAccessProject(){
  553. let inData={
  554. site:this.$store.state.user.site,
  555. username:this.selectUser.username,
  556. accessProjectList:this.projectRoleList
  557. }
  558. saveAccessProject(inData).then(({data}) => {
  559. if (data && data.code === 0) {
  560. this.$message.success( '操作成功')
  561. this.projectRoleFlag = false
  562. } else {
  563. this.$message.error(data.msg)
  564. }
  565. })
  566. },
  567. //授权项目end
  568. // 保存选中的授权工厂
  569. saveUserAssessSite() {
  570. let accessSiteList = this.selectSitList.map(item => {
  571. let itemSite = {
  572. userid: this.selectUser.username,
  573. site: item
  574. }
  575. return itemSite;
  576. })
  577. let accessSite = {
  578. userid: this.selectUser.username,
  579. accessSiteList: accessSiteList
  580. }
  581. saveUserAccessSiteList(accessSite).then(({data}) => {
  582. if (data.code === 0) {
  583. this.$message.success(data.msg)
  584. this.siteList = []
  585. this.selectSitList = []
  586. this.siteVisible = false
  587. } else {
  588. this.$message.warning(data.msg)
  589. }
  590. })
  591. },
  592. saveBuAssessSite(){
  593. if(this.selectBUList.length==0){
  594. this.$message.warning("请选择BU")
  595. return false;
  596. }
  597. let inList=[];
  598. for (let i = 0; i < this.selectBUList.length; i++) {
  599. let inData={
  600. site:this.$store.state.user.site,
  601. username:this.selectUser.username,
  602. buNo:this.selectBUList[i]
  603. }
  604. inList.push(inData)
  605. }
  606. saveAccessBU(inList).then(({data}) => {
  607. if (data && data.code === 0) {
  608. this.$message.success( '操作成功')
  609. this.buVisible = false
  610. } else {
  611. this.$message.error(data.msg)
  612. }
  613. })
  614. },
  615. // 获取用户已授权的工厂列表
  616. searchUserAccessSiteList() {
  617. getUserAccessSiteList({userid: this.selectUser.username}).then(({data}) => {
  618. this.selectSitList = data.dataList
  619. })
  620. },
  621. // 获取所有可用工厂
  622. searchSiteList() {
  623. getSiteList({active: 'Y'}).then(({data}) => {
  624. if (data.code == 0) {
  625. this.siteList = data.dataList
  626. this.searchUserAccessSiteList()
  627. }
  628. })
  629. },
  630. searchBuList(){
  631. searchAccessBuList({site:this.$store.state.user.site,
  632. username: this.selectUser.username,
  633. active:'Y'}).then(({data}) => {
  634. this.selectBUList = data.selectBUList
  635. this.buList=data.buList
  636. })
  637. },
  638. // 选中行
  639. handleCurrentChange(val) {
  640. this.selectUser = val
  641. this.showButton = false
  642. },
  643. saveUserRoleFlag() {
  644. let saveList = []
  645. let currentList = this.checked
  646. // 当前未选择记录
  647. if (currentList.length == 0) {
  648. this.$confirm("当前未选择记录,是否继续?", '删除提示', {
  649. confirmButtonText: '确定',
  650. cancelButtonText: '取消',
  651. }).then(() => {
  652. let data = {
  653. userId: this.currentData.userId,
  654. }
  655. saveList.push(data);
  656. this.saveUserBusinessRole(saveList)
  657. }).catch(() => {
  658. return
  659. })
  660. } else {
  661. for (let i = 0; i < currentList.length; i++) {
  662. let data = {
  663. userId: this.currentData.userId,
  664. roleItemNo: currentList[i],
  665. selectFlag: 'Y',
  666. }
  667. saveList.push(data);
  668. }
  669. this.saveUserBusinessRole(saveList)
  670. }
  671. },
  672. saveUserBusinessRole(saveList) {
  673. saveUserBusinessRole(saveList).then(({data}) => {
  674. this.$alert(data.msg, '操作提示', {
  675. confirmButtonText: '确定',
  676. callback: action => {
  677. if (data.code == 0) {
  678. this.setUp.reviewFlag = false
  679. }
  680. this.setUp.saveButton = false
  681. }
  682. });
  683. })
  684. },
  685. generateData(row) {
  686. this.currentData = row
  687. let queryData = {
  688. active: 'Y',
  689. userId: this.currentData.userId,
  690. }
  691. getUserBusinessRoleList(queryData).then(({data}) => {
  692. let rows1Data = data.map.rows1
  693. let rows2Data = data.map.rows2
  694. let forData = []
  695. let checkedList = []
  696. for (let i = 0; i < rows1Data.length; i++) {
  697. forData.push({
  698. key: rows1Data[i].roleItemNo,
  699. label: rows1Data[i].roleDesc,
  700. });
  701. }
  702. for (let j = 0; j < rows2Data.length; j++) {
  703. checkedList.push(rows2Data[j].roleItemNo)
  704. }
  705. this.transferData = forData;
  706. this.checked = checkedList
  707. this.setUp.reviewFlag = true
  708. })
  709. },
  710. // 获取数据列表
  711. getDataList: throttle(function () {
  712. this.dataListLoading = true
  713. this.$http({
  714. url: this.$http.adornUrl('/sys/user/list'),
  715. method: 'get',
  716. params: this.$http.adornParams({
  717. 'page': this.pageIndex,
  718. 'limit': this.pageSize,
  719. 'username': this.dataForm.userName
  720. })
  721. }).then(({data}) => {
  722. if (data && data.code === 0) {
  723. this.dataList = data.page.list
  724. this.totalPage = data.page.totalCount
  725. } else {
  726. this.dataList = []
  727. this.totalPage = 0
  728. }
  729. this.dataListLoading = false
  730. })
  731. }, 1000),
  732. // 每页数
  733. sizeChangeHandle(val) {
  734. this.pageSize = val
  735. this.pageIndex = 1
  736. this.getDataList()
  737. },
  738. // 当前页
  739. currentChangeHandle(val) {
  740. this.pageIndex = val
  741. this.getDataList()
  742. },
  743. // 多选
  744. selectionChangeHandle(val) {
  745. this.dataListSelections = val
  746. },
  747. // 新增 / 修改
  748. addOrUpdateHandle(id) {
  749. this.addOrUpdateVisible = true
  750. this.$nextTick(() => {
  751. this.$refs.addOrUpdate.init(id)
  752. })
  753. },
  754. // 删除
  755. deleteHandle(id) {
  756. var userIds = id ? [id] : this.dataListSelections.map(item => {
  757. return item.userId
  758. })
  759. this.$confirm(`确定对[id=${userIds.join(',')}]进行[${id ? '删除' : '批量删除'}]操作?`, '提示', {
  760. confirmButtonText: '确定',
  761. cancelButtonText: '取消',
  762. type: 'warning'
  763. }).then(() => {
  764. this.$http({
  765. url: this.$http.adornUrl('/sys/user/delete'),
  766. method: 'post',
  767. data: this.$http.adornData(userIds, false)
  768. }).then(({data}) => {
  769. if (data && data.code === 0) {
  770. this.$message.success('操作成功')
  771. this.getDataList()
  772. } else {
  773. this.$message.error(data.msg)
  774. }
  775. })
  776. }).catch(() => {
  777. })
  778. }
  779. },
  780. created() {
  781. this.getFunctionButtonList()
  782. }
  783. }
  784. </script>
  785. <style>
  786. .el-dialog__title {
  787. line-height: 24px;
  788. font-size: 16px;
  789. color: #303133;
  790. }
  791. </style>