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

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