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.

909 lines
25 KiB

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