金币系统前端
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.

910 lines
25 KiB

3 weeks ago
3 weeks ago
1 month ago
1 month ago
3 weeks ago
1 month ago
1 month ago
1 month ago
  1. <script setup>
  2. import { ref, onMounted, reactive, computed } from 'vue'
  3. import ElementPlus from 'element-plus'
  4. import { ElMessage, ElMessageBox } from 'element-plus'
  5. import axios from 'axios'
  6. import moment from 'moment'
  7. import { ta } from 'element-plus/es/locales.mjs'
  8. import API from '../../api/index.js'
  9. import { UserFilled } from '@element-plus/icons-vue'
  10. import _ from 'lodash'
  11. import request from '@/util/http'
  12. // 充值明细表格
  13. const tableData = ref([])
  14. // 搜索===========================================
  15. //分页总条目
  16. const total = ref(100)
  17. // 搜索detailY
  18. const admin = ref({})
  19. // 搜索对象
  20. const getObj = ref({
  21. pageNum: 1,
  22. pageSize: 10
  23. })
  24. // 新增用户权限弹窗
  25. const permissionAddVisible = ref(false)
  26. // 编辑用户权限弹窗
  27. const permissionEditVisible = ref(false)
  28. //选地区
  29. const area = ref([])
  30. // 选部门
  31. const store = ref([])
  32. // 新增用户权限对象
  33. const permissionAddObj = ref({})
  34. // 新增用户权限对象
  35. const addAdmin = ref({})
  36. // 编辑用户权限对象
  37. const permissionEditObj = ref({})
  38. // 删除权限对象
  39. const delObj = ref({})
  40. // 搜索接口
  41. const get = async function (val) {
  42. try {
  43. // 搜索参数页码赋值
  44. if (typeof val === 'number') {
  45. getObj.value.pageNum = val
  46. }
  47. console.log('搜索参数', getObj.value)
  48. // 发送POST请求
  49. const result = await request({
  50. url: '/admin/search',
  51. data: {
  52. ...getObj.value,
  53. admin: { ...admin.value }
  54. }
  55. })
  56. tableData.value = result.data.list
  57. console.log('tableData', tableData.value)
  58. total.value = result.data.total
  59. } catch (error) {
  60. console.log('请求失败', error)
  61. }
  62. }
  63. // 精网号去空格
  64. const trimJwCode = () => {
  65. if (admin.value.jwcode) {
  66. admin.value.jwcode = admin.value.jwcode.replace(/\s/g, '');
  67. }
  68. }
  69. // 搜索
  70. const search = function () {
  71. trimJwCode();
  72. getObj.value.pageNum = 1
  73. get()
  74. }
  75. // 重置
  76. const reset = function () {
  77. admin.value = {}
  78. }
  79. // 获取地区
  80. const getArea = async function () {
  81. try {
  82. const result = await request({
  83. url: '/admin/area',
  84. data: {}
  85. })
  86. area.value = result.data
  87. } catch (error) {
  88. console.log('请求失败', error)
  89. // 在这里可以处理错误逻辑,比如显示错误提示等
  90. }
  91. }
  92. // 获取部门
  93. const getStore = async function () {
  94. try {
  95. const result = await request({
  96. url: '/admin/store',
  97. data: {}
  98. })
  99. store.value = result.data
  100. } catch (error) {
  101. console.log('请求失败', error)
  102. // 在这里可以处理错误逻辑,比如显示错误提示等
  103. }
  104. }
  105. // 验证跳转输入框的数字是否合法
  106. const checkNumber = function () {
  107. if (typeof parseInt(getObj.value.pageNum) === 'number') {
  108. console.log('总共有多少页' + Math.ceil(total.value / getObj.value.pageSize))
  109. if (
  110. getObj.value.pageNum > 0 &&
  111. getObj.value.pageNum <= Math.ceil(total.value / getObj.value.pageSize)
  112. ) {
  113. getObj.value.pageNum = parseInt(getObj.value.pageNum)
  114. console.log('输入的数字合法')
  115. get()
  116. } else {
  117. //提示
  118. ElMessage({
  119. type: 'error',
  120. message: '请检查输入内容'
  121. })
  122. }
  123. } else {
  124. //提示
  125. ElMessage({
  126. type: 'error',
  127. message: '请检查输入内容'
  128. })
  129. }
  130. }
  131. // 打开新增用户权限弹窗
  132. const openPermissionAddVisible = function () {
  133. permissionAddVisible.value = true
  134. }
  135. // 关闭新增用户权限弹窗
  136. const closePermissionAddVisible = function () {
  137. permissionAddVisible.value = false
  138. }
  139. // 新增用户权限初始化
  140. const permissionAddInit = function () {
  141. permissionAddObj.value = {}
  142. openPermissionAddVisible()
  143. }
  144. // 通过精网号查询没有权限的用户
  145. const getAdminByJwcodeWithoutPermission = async function () {
  146. try {
  147. const result = await request({
  148. url: '/admin/selectNo',
  149. data: permissionAddObj.value
  150. })
  151. if (result.code == 200) {
  152. permissionAddObj.value = result.data[0]
  153. ElMessage.success('精网号查询成功')
  154. } else {
  155. ElMessage.error(result.msg)
  156. }
  157. console.log('精网号查询没有权限的用户', permissionAddObj.value)
  158. } catch (error) {
  159. console.log('请求失败', error)
  160. // 在这里可以处理错误逻辑,比如显示错误提示等
  161. }
  162. }
  163. // 新增用户权限提交
  164. // const permissionAdd = async function () {
  165. // try {
  166. // if (
  167. // permissionAddObj.value.jwcode == "" ||
  168. // permissionAddObj.value.jwcode == null ||
  169. // permissionAddObj.value.name == "" ||
  170. // permissionAddObj.value.name == null
  171. // ) {
  172. // ElMessage.error("请选择要添加权限的用户");
  173. // return;
  174. // }
  175. // if (
  176. // permissionAddObj.value.permisson == "" ||
  177. // permissionAddObj.value.permission == null
  178. // ) {
  179. // ElMessage.error("请选择权限");
  180. // return;
  181. // }
  182. // console.log("新增用户权限提交", permissionAddObj.value);
  183. // const result = await request(
  184. // {
  185. // url: "/admin/update",
  186. // data: permissionAddObj.value}
  187. // );
  188. // // 将响应结果存储到响应式数据中
  189. // console.log("请求成功", result);
  190. // ElMessage.success("添加成功");
  191. // get();
  192. // closePermissionAddVisible();
  193. // } catch (error) {
  194. // console.log("新增用户权限失败", error);
  195. // // 在这里可以处理错误逻辑,比如显示错误提示等
  196. // ElMessage.error("新增用户权限失败");
  197. // closePermissionAddVisible();
  198. // }
  199. // };
  200. const permissionAdd = async function () {
  201. Ref.value.validate(async (valid) => {
  202. console.log('valid', valid)
  203. if (valid) {
  204. try {
  205. addAdmin.value.adminFlag = 1
  206. addAdmin.value.status1 = 1
  207. const result = await request({
  208. url: '/admin/add',
  209. data: addAdmin.value
  210. })
  211. if (result.code == 200) {
  212. ElMessage.success('添加成功')
  213. } else {
  214. ElMessage.error(result.msg)
  215. }
  216. addAdmin.value = {}
  217. get()
  218. closePermissionAddVisible()
  219. } catch (error) {
  220. console.log('新增用户权限失败', error)
  221. // 在这里可以处理错误逻辑,比如显示错误提示等
  222. ElMessage.error('新增用户权限失败')
  223. closePermissionAddVisible()
  224. }
  225. } else {
  226. //提示
  227. ElMessage({
  228. type: 'error',
  229. message: '请检查输入内容'
  230. })
  231. }
  232. })
  233. }
  234. // 表格添加的条件
  235. const rules = reactive({
  236. jwcode: [{ required: true, message: '请输入精网号', trigger: 'blur' }],
  237. name: [{ required: true, message: '请输入用户名', trigger: 'blur' }],
  238. store: [{ required: true, message: '请输入职称', trigger: 'blur' }],
  239. machineId: [{ required: true, message: '请输入精网号', trigger: 'blur' }],
  240. area: [{ required: true, message: '请选择所属地区', trigger: 'blur' }],
  241. permission: [{ required: true, message: '请选择权限', trigger: 'blur' }]
  242. })
  243. // 验证表单
  244. // 表单验证ref
  245. const Ref = ref(null)
  246. // 使用 _.throttle 并设置 trailing 为 false 实现严格节流,只执行一次
  247. const throttledPermissionAdd = _.throttle(permissionAdd, 5000, {
  248. trailing: false
  249. })
  250. // 权限类别
  251. const permissionList = [
  252. {
  253. label: '总部',
  254. value: '1'
  255. },
  256. {
  257. label: '地区经理',
  258. value: '5'
  259. },
  260. {
  261. label: '财务',
  262. value: '3'
  263. },
  264. {
  265. label: '客服',
  266. value: '2'
  267. }
  268. ]
  269. // 获取地区
  270. // 获取地区
  271. const areaList = ref([])
  272. const getAreas = async function () {
  273. try {
  274. // 发送POST请求
  275. const result = await request({
  276. url: '/recharge/user/search',
  277. data: {}
  278. })
  279. // 将响应结果存储到响应式数据中
  280. console.log('请求成功', result)
  281. // 存储地区信息
  282. areaList.value = result.data
  283. console.log('地区', area.value)
  284. } catch (error) {
  285. console.log('请求失败', error)
  286. // 在这里可以处理错误逻辑,比如显示错误提示等
  287. }
  288. }
  289. getAreas()
  290. // 打开编辑用户权限弹窗
  291. const openPermissionEditVisible = function () {
  292. permissionEditVisible.value = true
  293. }
  294. // 关闭编辑用户权限弹窗
  295. const closePermissionEditVisible = function () {
  296. permissionEditVisible.value = false
  297. }
  298. // 编辑用户权限初始化
  299. const permissionEditInit = function (row) {
  300. permissionEditObj.value = {}
  301. permissionEditObj.value.jwcode = row.jwcode
  302. permissionEditObj.value.name = row.name
  303. permissionEditObj.value.area = row.area
  304. permissionEditObj.value.store = row.store
  305. permissionEditObj.value.permission = row.permission
  306. console.log('编辑用户权限', permissionEditObj.value)
  307. openPermissionEditVisible()
  308. }
  309. // 编辑用户权限提交
  310. const permissionEdit = async function () {
  311. try {
  312. const result = await request({
  313. url: '/admin/update',
  314. data: permissionEditObj.value
  315. })
  316. // 将响应结果存储到响应式数据中
  317. console.log('请求成功', result)
  318. ElMessage.success('编辑用户权限成功')
  319. get()
  320. closePermissionEditVisible()
  321. } catch (error) {
  322. console.log('编辑用户权限失败', error)
  323. // 在这里可以处理错误逻辑,比如显示错误提示等
  324. ElMessage.error('编辑用户权限失败')
  325. closePermissionEditVisible()
  326. }
  327. }
  328. const throttledPermissionEdit = _.throttle(permissionEdit, 5000, {
  329. trailing: false
  330. })
  331. // 删除初始化
  332. const del = function (row) {
  333. delObj.value = {}
  334. console.log(row, '删除初始化')
  335. delObj.value.jwcode = row.jwcode
  336. }
  337. // 删除权限
  338. const delConfirm = async function () {
  339. try {
  340. delObj.value.permission = '4'
  341. console.log(delObj.value)
  342. const result = await request({
  343. url: '/admin/update',
  344. data: delObj.value
  345. })
  346. // 将响应结果存储到响应式数据中
  347. console.log('请求成功', result)
  348. ElMessage.success('删除权限成功')
  349. delObj.value = {}
  350. get()
  351. } catch (error) {
  352. console.log('删除权限失败', error)
  353. // 在这里可以处理错误逻辑,比如显示错误提示等
  354. ElMessage.error('删除权限失败')
  355. }
  356. }
  357. // 禁用启用用户权限
  358. const editStatus = async function (row) {
  359. try {
  360. console.log(row)
  361. permissionEditObj.value = {}
  362. permissionEditObj.value.jwcode = row.jwcode
  363. permissionEditObj.value.status1 = row.status1
  364. console.log('修改用户权限状态', permissionEditObj.value)
  365. const result = await request({
  366. url: '/admin/update',
  367. data: permissionEditObj.value
  368. })
  369. // 将响应结果存储到响应式数据中
  370. console.log('请求成功', result)
  371. ElMessage.success(
  372. permissionEditObj.value.status1 == 1 ? '启用成功' : '禁用成功'
  373. )
  374. permissionEditObj.value = {}
  375. get()
  376. } catch (error) {
  377. console.log('修改用户权限失败', error)
  378. // 在这里可以处理错误逻辑,比如显示错误提示等
  379. }
  380. }
  381. // 挂载
  382. onMounted(async function () {
  383. await get()
  384. await getArea()
  385. await getStore()
  386. })
  387. const handlePageSizeChange = function (val) {
  388. getObj.value.pageSize = val
  389. get()
  390. }
  391. const handleCurrentChange = function (val) {
  392. getObj.value.pageNum = val
  393. get()
  394. }
  395. </script>
  396. <template>
  397. <el-row>
  398. <el-col>
  399. <el-card style="margin-bottom: 20px">
  400. <div class="head-card">
  401. <div class="head-card-element">
  402. <el-text class="mx-1" size="large">精网号</el-text>
  403. <el-input
  404. v-model="admin.jwcode"
  405. style="width: 240px"
  406. placeholder="请输入精网号"
  407. clearable
  408. />
  409. </div>
  410. <div class="head-card-element" style="margin-left: 50px">
  411. <el-text class="mx-1" size="large">所属地区</el-text>
  412. <el-select
  413. v-model="admin.area"
  414. placeholder="请选择所属地区"
  415. style="width: 240px"
  416. clearable
  417. >
  418. <el-option
  419. v-for="item in area"
  420. :key="item"
  421. :label="item"
  422. :value="item"
  423. />
  424. </el-select>
  425. </div>
  426. <div class="head-card-element" style="margin-left: 50px">
  427. <el-text class="mx-1" size="large">职位名称</el-text>
  428. <el-select
  429. v-model="admin.store"
  430. placeholder="请选择职位名称"
  431. style="width: 240px"
  432. clearable
  433. >
  434. <el-option
  435. v-for="item in store"
  436. :key="item"
  437. :label="item"
  438. :value="item"
  439. />
  440. </el-select>
  441. </div>
  442. <div class="head-card-btn">
  443. <el-button type="success" @click="reset()">重置</el-button>
  444. <el-button type="primary" @click="search()">查询</el-button>
  445. </div>
  446. </div>
  447. </el-card>
  448. </el-col>
  449. </el-row>
  450. <el-row>
  451. <el-col>
  452. <el-card>
  453. <!-- 添加 -->
  454. <div class="add-item">
  455. <el-button
  456. style="color: #048efb; border: 1px solid #048efb"
  457. @click="permissionAddInit()"
  458. >新增用户</el-button
  459. >
  460. </div>
  461. <div>
  462. <el-table :data="tableData" style="width: 100%">
  463. <el-table-column
  464. type="index"
  465. label="序号"
  466. width="100px"
  467. fixed="left"
  468. >
  469. <template #default="scope">
  470. <span>{{
  471. scope.$index + 1 + (getObj.pageNum - 1) * getObj.pageSize
  472. }}</span>
  473. </template>
  474. </el-table-column>
  475. <el-table-column prop="jwcode" label="精网号" />
  476. <el-table-column prop="name" label="姓名" />
  477. <el-table-column prop="area" label="所属地区" />
  478. <el-table-column prop="store" label="职位" />
  479. <el-table-column prop="permission" label="部门权限">
  480. <template #default="scope">
  481. <span v-if="scope.row.permission === '1'"> 总部管理员 </span>
  482. <span v-if="scope.row.permission === '2'"> 分部财务 </span>
  483. <span v-if="scope.row.permission === '3'"> 分部客服 </span>
  484. <span v-if="scope.row.permission === '5'"> 分部经理 </span>
  485. </template>
  486. </el-table-column>
  487. <el-table-column prop="remark" label="备注" />
  488. <el-table-column prop="operation" label="操作" width="200px">
  489. <template #default="scope">
  490. <el-button
  491. type="warning"
  492. text
  493. @click="permissionEditInit(scope.row)"
  494. :disabled="scope.row.status1 === 0"
  495. >
  496. 修改权限
  497. </el-button>
  498. <el-popconfirm
  499. title="确定将此用户删除吗?"
  500. @confirm="delConfirm"
  501. >
  502. <template #reference>
  503. <el-button
  504. type="danger"
  505. text
  506. @click="del(scope.row)"
  507. :disabled="scope.row.status1 === 0"
  508. >
  509. 删除
  510. </el-button>
  511. </template>
  512. <template #actions="{ confirm, cancel }">
  513. <el-button size="small" @click="cancel">取消</el-button>
  514. <el-button type="primary" size="small" @click="confirm">
  515. 确定
  516. </el-button>
  517. </template>
  518. </el-popconfirm>
  519. </template>
  520. </el-table-column>
  521. <el-table-column prop="status1" label="状态">
  522. <template #default="scope">
  523. <el-switch
  524. v-model="scope.row.status1"
  525. :active-value="1"
  526. :inactive-value="0"
  527. size="large"
  528. @change="editStatus(scope.row)"
  529. style="
  530. --el-switch-on-color: #13ce66;
  531. --el-switch-off-color: #ff4949;
  532. "
  533. active-text="启用"
  534. inactive-text="禁用"
  535. inline-prompt
  536. />
  537. </template>
  538. </el-table-column>
  539. </el-table>
  540. </div>
  541. <!-- 分页 -->
  542. <div class="pagination" style="margin-top: 20px">
  543. <el-pagination
  544. background
  545. :page-size="getObj.pageSize"
  546. :page-sizes="[5, 10, 20, 50, 100]"
  547. layout="total, sizes, prev, pager, next, jumper"
  548. :total="total"
  549. @size-change="handlePageSizeChange"
  550. @current-change="handleCurrentChange"
  551. ></el-pagination>
  552. </div>
  553. </el-card>
  554. </el-col>
  555. </el-row>
  556. <!-- 新增用户权限 -->
  557. <el-dialog
  558. v-model="permissionAddVisible"
  559. title="新增用户权限"
  560. width="800px"
  561. :close-on-click-modal="false"
  562. >
  563. <template #footer>
  564. <!-- 居中显示 -->
  565. <el-form
  566. ref="Ref"
  567. :rules="rules"
  568. :model="addAdmin"
  569. label-width="auto"
  570. style="max-width: 600px; align-items: center"
  571. >
  572. <el-form-item prop="jwcode" label="精网号:">
  573. <el-input
  574. v-model="addAdmin.jwcode"
  575. placeholder="请输入精网号"
  576. style="width: 220px"
  577. />
  578. </el-form-item>
  579. <el-form-item prop="name" label="用户名:">
  580. <el-input
  581. v-model="addAdmin.name"
  582. placeholder="请输入用户名"
  583. style="width: 220px"
  584. />
  585. </el-form-item>
  586. <el-form-item prop="area" label="所属地区:">
  587. <el-select
  588. v-model="addAdmin.area"
  589. placeholder="请选择所属地区"
  590. style="width: 220px"
  591. @change="() => Ref.value.validateField('area')"
  592. >
  593. <el-option
  594. v-for="item in areaList"
  595. :key="item"
  596. :label="item"
  597. :value="item"
  598. ></el-option>
  599. </el-select>
  600. </el-form-item>
  601. <el-form-item prop="permission" label="权限类别:">
  602. <el-select
  603. v-model="addAdmin.permission"
  604. placeholder="请选择权限"
  605. style="width: 220px"
  606. @change="() => Ref.value.validateField('permission')"
  607. >
  608. <el-option
  609. v-for="item in permissionList"
  610. :key="item.value"
  611. :label="item.label"
  612. :value="item.value"
  613. ></el-option>
  614. </el-select>
  615. </el-form-item>
  616. <el-form-item prop="store" label="职位:">
  617. <el-input
  618. v-model="addAdmin.store"
  619. placeholder="请输入职称"
  620. style="width: 220px"
  621. />
  622. </el-form-item>
  623. <el-form-item prop="machineId" label="机器码:">
  624. <el-input
  625. v-model="addAdmin.machineId"
  626. placeholder="请输入机器码"
  627. style="width: 220px"
  628. />
  629. </el-form-item>
  630. <el-form-item prop="remark" label="备注">
  631. <el-input
  632. v-model="addAdmin.remark"
  633. style="width: 300px"
  634. :rows="2"
  635. maxlength="100"
  636. show-word-limit
  637. type="textarea"
  638. />
  639. </el-form-item>
  640. </el-form>
  641. <div>
  642. <el-button @click="closePermissionAddVisible()">取消</el-button>
  643. <el-button type="primary" @click="throttledPermissionAdd()">
  644. 提交
  645. </el-button>
  646. </div>
  647. </template>
  648. </el-dialog>
  649. <!-- 这是新增用户权限弹窗
  650. <el-dialog
  651. v-model="permissionAddVisible"
  652. title="新增用户权限"
  653. width="800px"
  654. :close-on-click-modal="false"
  655. >
  656. <div style="display: flex; margin: 20px 0px 20px 0px">
  657. <span class="permissionVisible" style="margin-right: 10px">精网号:</span>
  658. <el-input
  659. placeholder="请输入精网号"
  660. v-model="permissionAddObj.jwcode"
  661. style="width: 240px; margin-right: 10px"
  662. clearable
  663. ></el-input>
  664. <el-button type="primary" @click="getAdminByJwcodeWithoutPermission()"
  665. >查询</el-button
  666. >
  667. </div>
  668. <el-descriptions
  669. class="margin-top"
  670. :column="2"
  671. :size="size"
  672. border
  673. label-width="200px"
  674. >
  675. <el-descriptions-item>
  676. <template #label>
  677. <div class="permissionVisible">
  678. <el-icon>
  679. <UserFilled />
  680. </el-icon>
  681. 员工精网号
  682. </div>
  683. </template>
  684. {{ permissionAddObj.jwcode }}
  685. </el-descriptions-item>
  686. <el-descriptions-item>
  687. <template #label>
  688. <div class="permissionVisible">
  689. <el-icon>
  690. <User />
  691. </el-icon>
  692. 员工姓名
  693. </div>
  694. </template>
  695. {{ permissionAddObj.name }}
  696. </el-descriptions-item>
  697. <el-descriptions-item>
  698. <template #label>
  699. <div class="permissionVisible">
  700. <el-icon :style="iconStyle">
  701. <location />
  702. </el-icon>
  703. 所属地区
  704. </div>
  705. </template>
  706. {{ permissionAddObj.area }}
  707. </el-descriptions-item>
  708. <el-descriptions-item>
  709. <template #label>
  710. <div class="permissionVisible">
  711. <el-icon>
  712. <OfficeBuilding />
  713. </el-icon>
  714. 部门
  715. </div>
  716. </template>
  717. {{ permissionAddObj.store }}
  718. </el-descriptions-item>
  719. </el-descriptions>
  720. <el-divider>
  721. <el-icon><star-filled /></el-icon>
  722. </el-divider>
  723. <div>
  724. <span class="permissionVisible" style="margin-right: 20px"
  725. >权限设置:</span
  726. >
  727. <el-radio-group v-model="permissionAddObj.permission">
  728. <el-radio value="1" border>总部管理员</el-radio>
  729. <el-radio value="5" border>分部经理</el-radio>
  730. <el-radio value="2" border>分部财务</el-radio>
  731. <el-radio value="3" border>分部客服</el-radio>
  732. </el-radio-group>
  733. </div>
  734. <template #footer>
  735. <div>
  736. <el-button @click="closePermissionAddVisible()">取消</el-button>
  737. <el-button type="primary" @click="throttledPermissionAdd()">
  738. 提交
  739. </el-button>
  740. </div>
  741. </template>
  742. </el-dialog> -->
  743. <!-- 这是编辑用户权限弹窗 -->
  744. <el-dialog
  745. v-model="permissionEditVisible"
  746. title="编辑用户权限"
  747. width="800px"
  748. :close-on-click-modal="false"
  749. >
  750. <el-descriptions
  751. class="margin-top"
  752. :column="2"
  753. :size="size"
  754. border
  755. label-width="200px"
  756. >
  757. <el-descriptions-item>
  758. <template #label>
  759. <div class="permissionVisible">
  760. <el-icon>
  761. <UserFilled />
  762. </el-icon>
  763. 员工精网号
  764. </div>
  765. </template>
  766. {{ permissionEditObj.jwcode }}
  767. </el-descriptions-item>
  768. <el-descriptions-item>
  769. <template #label>
  770. <div class="permissionVisible">
  771. <el-icon>
  772. <User />
  773. </el-icon>
  774. 员工姓名
  775. </div>
  776. </template>
  777. {{ permissionEditObj.name }}
  778. </el-descriptions-item>
  779. <el-descriptions-item>
  780. <template #label>
  781. <div class="permissionVisible">
  782. <el-icon :style="iconStyle">
  783. <location />
  784. </el-icon>
  785. 所属地区
  786. </div>
  787. </template>
  788. {{ permissionEditObj.area }}
  789. </el-descriptions-item>
  790. <el-descriptions-item>
  791. <template #label>
  792. <div class="permissionVisible">
  793. <el-icon>
  794. <OfficeBuilding />
  795. </el-icon>
  796. 部门
  797. </div>
  798. </template>
  799. {{ permissionEditObj.store }}
  800. </el-descriptions-item>
  801. </el-descriptions>
  802. <el-divider>
  803. <el-icon><star-filled /></el-icon>
  804. </el-divider>
  805. <div>
  806. <span class="permissionVisible" style="margin-right: 20px"
  807. >权限设置:</span
  808. >
  809. <el-radio-group v-model="permissionEditObj.permission">
  810. <el-radio value="1" border>总部管理员</el-radio>
  811. <el-radio value="5" border>分部经理</el-radio>
  812. <el-radio value="2" border>分部财务</el-radio>
  813. <el-radio value="3" border>分部客服</el-radio>
  814. </el-radio-group>
  815. </div>
  816. <template #footer>
  817. <div>
  818. <el-button @click="closePermissionEditVisible()">取消</el-button>
  819. <el-button type="primary" @click="throttledPermissionEdit()">
  820. 提交
  821. </el-button>
  822. </div>
  823. </template>
  824. </el-dialog>
  825. </template>
  826. <style scoped>
  827. .permissionVisible {
  828. font-size: 16px;
  829. font-weight: bold;
  830. }
  831. .pagination {
  832. display: flex;
  833. }
  834. .status {
  835. display: flex;
  836. }
  837. .head-card {
  838. display: flex;
  839. }
  840. .head-card-element {
  841. margin-right: 20px;
  842. }
  843. .head-card-btn {
  844. margin-left: auto;
  845. }
  846. /* 新增样式让弹窗内容居中 */
  847. .el-dialog__body {
  848. display: flex;
  849. flex-direction: column;
  850. align-items: center;
  851. }
  852. .el-dialog__footer {
  853. display: flex;
  854. flex-direction: column;
  855. align-items: center;
  856. }
  857. </style>