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

925 lines
25 KiB

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