icCard.vue 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845
  1. <template>
  2. <div class="content-box">
  3. <div class="left">
  4. <!-- <el-icon :size="23" class="camera"><VideoCameraFilled /></el-icon> -->
  5. <span class="cameratxt">IC卡管理</span>
  6. </div>
  7. <div class="middle">
  8. <div class="filter">
  9. <div class="condition">
  10. <span>关键字 : </span>
  11. <el-input clearable v-model="searchInput.adminName" @clear="searchBtn" class="w-50 m-2"
  12. placeholder="请输入用户名" style="width: 150px" />
  13. </div>
  14. <el-button style="margin-left: 20px" color="rgba(9, 101, 98, 1)" type="primary" class="search"
  15. @click="searchBtn"><el-icon>
  16. <Search />
  17. </el-icon> <span>查询</span></el-button>
  18. </div>
  19. <!-- 按钮列表 -->
  20. <div class="gongneng">
  21. <el-button type="primary" color="rgba(9, 101, 98, 1)" @click="addlist"><el-icon>
  22. <CirclePlus />
  23. </el-icon><span>新增账号</span></el-button>
  24. </div>
  25. </div>
  26. <div class="footer" v-loading="loading">
  27. <el-table :row-class-name="tableRowClassName" :data="tableData.list" @selection-change="handleSelectionChange"
  28. style="width: 100%" :header-cell-style="{
  29. background: 'rgba(240, 243, 247, 1)',
  30. height: '50px',
  31. border: 0,
  32. }">
  33. <!-- <el-table-column align="center" type="selection" width="80" /> -->
  34. <el-table-column width="150" align="center" label="序号" type="index" index="1" />
  35. <el-table-column align="center" prop="corpnPhone" label="手机" />
  36. <el-table-column align="center" prop="adminName" label="用户名" />
  37. <el-table-column align="center" prop="corpnName" label="姓名" />
  38. <el-table-column align="center" label="角色">
  39. <template #default="{ row }">
  40. {{ row.level == 1 ? "管理员" : "超级管理员" }}
  41. </template>
  42. </el-table-column>
  43. <el-table-column align="center" prop="remark" label="备注" />
  44. <el-table-column align="center" label="操作" width="220">
  45. <template #default="scope">
  46. <div class="options">
  47. <div class="reset" @click="reset(scope.row)">密码重置</div>
  48. <div class="look" @click="edit(scope.row)">修改</div>
  49. <el-popconfirm width="220" confirm-button-text="确认" cancel-button-text="取消" :icon="InfoFilled"
  50. icon-color="#f89626" title="是否删除此账号?" @confirm="del(scope.row)" @cancel="cancelEvent">
  51. <template #reference>
  52. <div class="del">删除</div>
  53. </template>
  54. </el-popconfirm>
  55. </div>
  56. </template>
  57. </el-table-column>
  58. </el-table>
  59. <!-- 添加车辆弹窗 -->
  60. <el-dialog class="addStaff" v-model="addDialogVisible" :close-on-click-modal="false"
  61. :close-on-press-escape="false" :title="dialongTitle" align-center width="609" :before-close="cancelAdd">
  62. <el-form ref="ruleFormRef" :model="ruleForm" :rules="rules" label-width="100px" class="demo-ruleForm"
  63. :size="formSize" label-position="left" status-icon>
  64. <el-form-item label="用户名 :" prop="adminName">
  65. <el-input v-model="ruleForm.adminName" placeholder="请输入用户名" clearable />
  66. </el-form-item>
  67. <el-form-item label="姓名 :" prop="corpnName">
  68. <el-input v-model="ruleForm.corpnName" placeholder="请输入姓名" clearable />
  69. </el-form-item>
  70. <el-form-item label="手机号码 :" prop="corpnPhone">
  71. <el-input v-model="ruleForm.corpnPhone" placeholder="请输入手机号码" clearable />
  72. </el-form-item>
  73. <el-form-item label="密码 :" prop="password">
  74. <el-input v-model="ruleForm.password" placeholder="请输入密码" clearable />
  75. </el-form-item>
  76. <el-form-item label="确认密码 :" prop="againPass">
  77. <el-input v-model="ruleForm.againPass" placeholder="请再一次输入密码" clearable />
  78. </el-form-item>
  79. <el-form-item label="角色 :" prop="level">
  80. <el-radio-group v-model="ruleForm.level">
  81. <el-radio :label="1" v-if="ruleForm.level == 1">管理员</el-radio>
  82. <el-radio :label="2" v-if="ruleForm.level == 2">超级管理员</el-radio>
  83. </el-radio-group>
  84. </el-form-item>
  85. <el-form-item label="简介 :" prop="remark">
  86. <el-input v-model="ruleForm.remark" :rows="3" type="textarea" placeholder="请输入民宿简介信息" />
  87. </el-form-item>
  88. <el-form-item class="options">
  89. <el-button color="rgba(9, 101, 98, 1)" class="queding" type="primary"
  90. @click="submitAdd(ruleFormRef)">
  91. 确定
  92. </el-button>
  93. <el-button @click="cancelAdd(ruleFormRef)">取消</el-button>
  94. </el-form-item>
  95. </el-form>
  96. </el-dialog>
  97. </div>
  98. <!-- 分页组件 -->
  99. <el-pagination background :current-page="currentPage" :page-size="pageSize"
  100. layout="total, prev, pager, next, jumper, slot" :total="total" @update:current-page="handleCurrentChange" />
  101. </div>
  102. </template>
  103. <script setup>
  104. import { ref, reactive, nextTick, onBeforeMount, onUnmounted } from "vue";
  105. import { useRouter } from "vue-router";
  106. import { ElMessage, ElMessageBox } from "element-plus";
  107. import { Calendar } from "@element-plus/icons-vue";
  108. import { dayjs } from "element-plus";
  109. import lodash, { reduce } from "lodash";
  110. import axios from "axios";
  111. import { useStore } from "vuex";
  112. const store = useStore();
  113. const router = useRouter();
  114. // 表格数据
  115. const loading = ref(false);
  116. const tableData = reactive({
  117. list: [
  118. // {
  119. // phone: 1234,
  120. // adminName: "admin",
  121. // userName: "张三",
  122. // level: 1,
  123. // remark: "测试",
  124. // },
  125. // {
  126. // phone: 1234,
  127. // adminName: "test",
  128. // userName: "李四",
  129. // level: 1,
  130. // remark: "测试11",
  131. // },
  132. // {
  133. // phone: 1234,
  134. // adminName: "admin1",
  135. // userName: "张三",
  136. // level: 1,
  137. // remark: "测试",
  138. // },
  139. // {
  140. // phone: 1234,
  141. // adminName: "admin2",
  142. // userName: "张三",
  143. // level: 1,
  144. // remark: "测试",
  145. // },
  146. ],
  147. });
  148. const activeIndex = ref(); // 默认跳转路由
  149. const dialongTitle = ref("新增账号"); // 弹窗标题
  150. const searchInput = reactive({
  151. adminName: "",
  152. }); // 搜索按钮数据
  153. 5;
  154. const currentPage = ref(1); // 当前页
  155. const pageSize = ref(10);
  156. const total = ref(); // 当前总数
  157. const selectData = reactive({
  158. list: [],
  159. }); // 多选框选择的数据
  160. const api = ref("");
  161. const addDialogVisible = ref(false); // 控制添加员工弹窗
  162. // 表单数据
  163. const formSize = ref("default");
  164. const ruleFormRef = ref();
  165. const ruleForm = reactive({
  166. corpnPhone: "",
  167. adminName: "",
  168. corpnName: "",
  169. level: 1,
  170. remark: "",
  171. password: "",
  172. againPass: "",
  173. id: "",
  174. });
  175. var checkUserName = (rule, value, callback) => {
  176. if (!value) {
  177. return callback(new Error("请输入用户名)"));
  178. }
  179. var reg = /^[a-zA-Z0-9]{6,16}$/;
  180. if (!reg.test(value)) {
  181. callback(new Error("必须为6-16个数字或字母!"));
  182. } else {
  183. callback();
  184. }
  185. };
  186. var checkFullName = (rule, value, callback) => {
  187. if (!value) {
  188. return callback(new Error("请输入姓名"));
  189. }
  190. var reg = /^[\u4e00-\u9fa5]{2,6}$/;
  191. if (!reg.test(value)) {
  192. callback(new Error("必须为2-6个汉字!"));
  193. } else {
  194. callback();
  195. }
  196. };
  197. var checkPhone = (rule, value, callback) => {
  198. if (!value) {
  199. return callback(new Error("请输入手机号"));
  200. }
  201. setTimeout(() => {
  202. var reg = /^1[3456789]\d{9}$/;
  203. if (!reg.test(value)) {
  204. callback(new Error("手机号格式不对"));
  205. } else {
  206. callback();
  207. }
  208. }, 100);
  209. };
  210. // 表单验证
  211. const rules = reactive({
  212. corpnName: [
  213. { required: true, message: "姓名不能为空", trigger: "blur" },
  214. { validator: checkFullName, trigger: "blur" },
  215. ],
  216. adminName: [
  217. { required: true, message: "用户名不能为空", trigger: "blur" },
  218. { validator: checkUserName, trigger: "blur" },
  219. ],
  220. // ^(?=.*[0-9])(?=.*[A-Z])(?=.*[a-z])(?=.*[!@#$%^&*,\._\+(){}])[0-9a-zA-Z!@#$%^&*,\\._\+(){}]{8,20}$
  221. password: [
  222. {
  223. required: true,
  224. message: "密码不能为空",
  225. trigger: "blur",
  226. },
  227. {
  228. min: 8,
  229. max: 20,
  230. pattern:
  231. /^(?=.*[0-9])(?=.*[A-Z])(?=.*[a-z])(?=.*[!@#$%^&*,\._\+(){}])[0-9a-zA-Z!@#$%^&*,\\._\+(){}]{8,20}$/,
  232. message: "请输入8-20位正确密码(大小写字母·字符·数字)",
  233. trigger: "blur",
  234. },
  235. ],
  236. againPass: [
  237. {
  238. required: true,
  239. message: "确认密码不能为空",
  240. trigger: "blur",
  241. },
  242. {
  243. min: 8,
  244. max: 20,
  245. pattern:
  246. /^(?=.*[0-9])(?=.*[A-Z])(?=.*[a-z])(?=.*[!@#$%^&*,\._\+(){}])[0-9a-zA-Z!@#$%^&*,\\._\+(){}]{8,20}$/,
  247. message: "请输入8-20位正确密码(大小写字母·字符·数字)",
  248. trigger: "blur",
  249. },
  250. ],
  251. level: [
  252. {
  253. required: true,
  254. message: "角色不能为空",
  255. trigger: "blur",
  256. },
  257. ],
  258. remark: [
  259. {
  260. required: true,
  261. message: "备注不能为空",
  262. trigger: "blur",
  263. },
  264. ],
  265. corpnPhone: [
  266. {
  267. required: true,
  268. message: "电话号码不能为空",
  269. trigger: "blur",
  270. },
  271. { validator: checkPhone, trigger: "blur" },
  272. ],
  273. // desc: [{ required: true, message: "Please input activity form", trigger: "blur" }],
  274. });
  275. // 获取账户列表
  276. const getList = async () => {
  277. // if (searchInput.account) {
  278. // data.adminName = searchInput.adminName;
  279. // }
  280. loading.value = true;
  281. let data = {
  282. page: currentPage.value, // 当前页
  283. rows: pageSize.value, // 一页数据条数
  284. adminName: searchInput.adminName, //用户名
  285. managerId: sessionStorage.getItem("token"),
  286. };
  287. let res = await axios({
  288. method: "get",
  289. url: api.value + "/mhotel/managerAdminqueryPage.action",
  290. headers: {
  291. // token: sessionStorage.getItem("token"),
  292. },
  293. params: data,
  294. });
  295. console.log(res, "账号信息");
  296. if (res.data.code == 200) {
  297. tableData.list = res.data.data.pageList;
  298. total.value = res.data.data.total;
  299. loading.value = false;
  300. // ElMessage({
  301. // type: "success",
  302. // showClose: true,
  303. // message: res.data.message,
  304. // center: true,
  305. // });
  306. } else {
  307. loading.value = false;
  308. ElMessage({
  309. type: "error",
  310. showClose: true,
  311. message: res.data.message,
  312. center: true,
  313. });
  314. }
  315. };
  316. // 搜索功能
  317. const searchBtn = lodash.debounce(async () => {
  318. getList();
  319. }, 300);
  320. // 添加员工
  321. const addlist = () => {
  322. dialongTitle.value = "新增账号";
  323. addDialogVisible.value = true;
  324. ruleForm.corpnPhone = "";
  325. ruleForm.adminName = "";
  326. ruleForm.corpnName = "";
  327. ruleForm.level = 1;
  328. ruleForm.remake = "";
  329. ruleForm.password = "";
  330. ruleForm.againPass = "";
  331. ruleForm.reamark = "";
  332. };
  333. // 取消添加员工
  334. const cancelAdd = () => {
  335. addDialogVisible.value = false;
  336. ruleFormRef.value.resetFields();
  337. };
  338. //编辑按钮
  339. const edit = (row) => {
  340. dialongTitle.value = "编辑信息";
  341. addDialogVisible.value = true;
  342. ruleForm.adminName = row.adminName;
  343. ruleForm.corpnName = row.corpnName;
  344. ruleForm.level = Number(row.level);
  345. ruleForm.remark = row.remark;
  346. ruleForm.password = row.password;
  347. ruleForm.againPass = row.password;
  348. ruleForm.corpnPhone = row.corpnPhone;
  349. ruleForm.id = row.id;
  350. };
  351. // 确认添加员工
  352. const submitAdd = lodash.debounce(async (formEl) => {
  353. if (!formEl) return;
  354. await formEl.validate(async (valid, fields) => {
  355. if (valid) {
  356. if (dialongTitle.value == "新增账号") {
  357. if (ruleForm.password == ruleForm.againPass) {
  358. let data = {
  359. adminName: ruleForm.adminName,
  360. corpnName: ruleForm.corpnName,
  361. level: ruleForm.level,
  362. remark: ruleForm.remark,
  363. password: ruleForm.password,
  364. corpnPhone: ruleForm.corpnPhone,
  365. managerId: sessionStorage.getItem("token"),
  366. };
  367. let res = await axios({
  368. method: "post",
  369. url: api.value + "/mhotel/managerAdmininsertAdminManager.action",
  370. headers: {
  371. // token: sessionStorage.getItem("token"),
  372. },
  373. params: data,
  374. });
  375. console.log(res, "添加账号");
  376. if (res.data.code == 200) {
  377. getList();
  378. ElMessage({
  379. type: "success",
  380. showClose: true,
  381. message: res.data.message,
  382. center: true,
  383. });
  384. addDialogVisible.value = false;
  385. ruleFormRef.value.resetFields();
  386. } else {
  387. ElMessage({
  388. type: "error",
  389. showClose: true,
  390. message: res.data.message,
  391. center: true,
  392. });
  393. }
  394. } else {
  395. ElMessage({
  396. type: "error",
  397. showClose: true,
  398. message: "两次密码输入不一致",
  399. center: true,
  400. });
  401. }
  402. } else {
  403. if (ruleForm.password == ruleForm.againPass) {
  404. let data = {
  405. adminName: ruleForm.adminName,
  406. corpnName: ruleForm.corpnName,
  407. level: ruleForm.level,
  408. remark: ruleForm.remark,
  409. password: ruleForm.password,
  410. corpnPhone: ruleForm.corpnPhone,
  411. id: ruleForm.id,
  412. };
  413. let res = await axios({
  414. method: "post",
  415. url: api.value + "/mhotel/managerAdminupdateAdminManager.action",
  416. headers: {
  417. // token: sessionStorage.getItem("token"),
  418. // user_head: sessionStorage.getItem("userhead"),
  419. },
  420. params: data,
  421. });
  422. // console.log(res, "修改账号");
  423. if (res.data.code == 200) {
  424. getList();
  425. ElMessage({
  426. type: "success",
  427. showClose: true,
  428. message: res.data.message,
  429. center: true,
  430. });
  431. addDialogVisible.value = false;
  432. ruleFormRef.value.resetFields();
  433. } else {
  434. ElMessage({
  435. type: "error",
  436. showClose: true,
  437. message: res.data.message,
  438. center: true,
  439. });
  440. }
  441. } else {
  442. ElMessage({
  443. type: "error",
  444. showClose: true,
  445. message: "两次密码输入不一致",
  446. center: true,
  447. });
  448. }
  449. }
  450. } else {
  451. console.log("error submit!", fields);
  452. }
  453. });
  454. }, 1000);
  455. //删除按钮
  456. const del = async (row) => {
  457. // console.log(row);
  458. let data = {
  459. id: row.id,
  460. };
  461. let res = await axios({
  462. method: "post",
  463. url: api.value + "/mhotel/managerAdmindelAdmin.action",
  464. headers: {
  465. // token: sessionStorage.getItem("token"),
  466. // user_head: sessionStorage.getItem("userhead"),
  467. },
  468. params: data,
  469. });
  470. if (res.data.code == 200) {
  471. if (tableData.list.length == 1 && currentPage.value != 1) {
  472. currentPage.value = currentPage.value - 1;
  473. }
  474. getList();
  475. ElMessage({
  476. type: "success",
  477. showClose: true,
  478. message: res.data.message,
  479. center: true,
  480. });
  481. } else {
  482. ElMessage({
  483. type: "error",
  484. showClose: true,
  485. message: res.data.message,
  486. center: true,
  487. });
  488. }
  489. // console.log(res);
  490. };
  491. // 取消删除
  492. const cancelEvent = () => {
  493. ElMessage({
  494. type: "info",
  495. showClose: true,
  496. message: "取消删除",
  497. center: true,
  498. });
  499. };
  500. // 重置密码
  501. const reset = async (row) => {
  502. // console.log(row);
  503. let data = {
  504. id: row.id,
  505. };
  506. let res = await axios({
  507. method: "post",
  508. url: api.value + "/mhotel/managerAdminremovePwd.action",
  509. headers: {
  510. // token: sessionStorage.getItem("token"),
  511. // user_head: sessionStorage.getItem("userhead"),
  512. },
  513. params: data,
  514. });
  515. if (res.data.code == 200) {
  516. getList();
  517. ElMessage({
  518. type: "success",
  519. showClose: true,
  520. message: res.data.message,
  521. center: true,
  522. });
  523. } else {
  524. ElMessage({
  525. type: "error",
  526. showClose: true,
  527. message: res.data.message,
  528. center: true,
  529. });
  530. }
  531. };
  532. // 多选框功能
  533. // const handleSelectionChange = (val) => {
  534. // console.log(val);
  535. // selectData.list = val;
  536. // };
  537. // 表格斑马纹颜色修改
  538. const tableRowClassName = ({ row, rowIndex }) => {
  539. if (rowIndex % 2 === 0) {
  540. return "even";
  541. } else if (rowIndex % 2 !== 0) {
  542. return "odd";
  543. }
  544. return "";
  545. };
  546. // 分页
  547. const handleCurrentChange = (value) => {
  548. // console.log(value);
  549. currentPage.value = value;
  550. getList();
  551. };
  552. onBeforeMount(() => {
  553. api.value = store.state.user.api;
  554. getList();
  555. });
  556. onUnmounted(() => {
  557. // document.removeEventListener("keyup", Enters);
  558. });
  559. </script>
  560. <style scoped lang="scss">
  561. .content-box {
  562. width: 97.5%;
  563. height: 89%;
  564. margin: 20px auto;
  565. background-color: #fff;
  566. color: #fff;
  567. display: flex;
  568. flex-direction: column;
  569. box-shadow: 0px 3px 10px rgba(0, 97, 255, 0.2);
  570. .left {
  571. // width: calc(100wh - 40px);
  572. display: flex;
  573. align-items: center;
  574. height: 60px;
  575. margin: 0 30px;
  576. border-bottom: 1px solid #ccc;
  577. color: #000;
  578. font-size: 18px;
  579. font-weight: 600;
  580. .camera {
  581. margin-right: 15px;
  582. color: #4392f7;
  583. }
  584. }
  585. .middle {
  586. width: 96%;
  587. margin: 0 auto;
  588. color: #000;
  589. // border-bottom: 1px solid rgb(231, 231, 231);
  590. .filter {
  591. display: flex;
  592. flex-wrap: wrap;
  593. align-items: center;
  594. margin: 10px 0 0 0;
  595. .search {
  596. margin-left: 0 !important;
  597. color: #fff;
  598. }
  599. .condition {
  600. display: flex;
  601. align-items: center;
  602. margin: 10px 30px 10px 0;
  603. :deep(.el-input .el-input__inner) {
  604. font-size: 14px;
  605. }
  606. span {
  607. margin: 0 10px 0 0;
  608. }
  609. }
  610. }
  611. .gongneng {
  612. margin: 10px 0;
  613. .el-button {
  614. color: #fff;
  615. }
  616. }
  617. :deep(.cont) {
  618. width: 60%;
  619. margin: 20px auto;
  620. }
  621. :deep(.download) {
  622. display: flex;
  623. align-items: center;
  624. margin: 10px;
  625. }
  626. :deep(.download span) {
  627. font-size: 16px;
  628. margin-left: 20px;
  629. }
  630. :deep(.cont .el-button) {
  631. margin-left: 60px;
  632. margin-bottom: 30px;
  633. }
  634. :deep(.cont .accomplish) {
  635. width: 100%;
  636. display: flex;
  637. justify-content: center;
  638. }
  639. :deep(.cont .accomplish .el-button) {
  640. width: 50%;
  641. margin: 0;
  642. }
  643. }
  644. .footer {
  645. width: 96%;
  646. height: 550px;
  647. margin: 10px auto 10px;
  648. .el-table--fit {
  649. height: 100%;
  650. :deep(.el-table__header-wrapper) {
  651. background-color: #000;
  652. font-size: 15px;
  653. color: #000;
  654. .cell {
  655. color: #000;
  656. }
  657. }
  658. :deep(.el-table__row) {
  659. height: 50px;
  660. font-size: 15px;
  661. color: #000;
  662. }
  663. :deep(.el-table__row td) {
  664. padding: 0;
  665. border: 0;
  666. }
  667. .el-button--primary {
  668. margin-left: 5px;
  669. }
  670. :deep(.el-table__body .even) {
  671. background-color: #fff;
  672. }
  673. :deep(.el-table__body .odd) {
  674. background-color: rgba(240, 243, 247, 1);
  675. }
  676. :deep(.options) {
  677. display: flex;
  678. justify-content: center;
  679. align-items: center;
  680. .reset {
  681. color: rgba(9, 101, 98, 1);
  682. cursor: pointer;
  683. }
  684. .look {
  685. margin: 0 15px;
  686. color: rgba(30, 125, 251, 1);
  687. cursor: pointer;
  688. }
  689. .del {
  690. color: rgba(212, 48, 48, 1);
  691. cursor: pointer;
  692. }
  693. }
  694. }
  695. // 添加员工弹窗样式
  696. :deep(.addStaff) {
  697. // height: 420px;
  698. border-radius: 11px;
  699. .el-dialog__header {
  700. border-radius: 11px 11px 0 0;
  701. background: rgba(237, 241, 245, 1);
  702. font-weight: 600;
  703. margin: 0;
  704. .el-dialog__headerbtn {
  705. outline: none;
  706. }
  707. }
  708. .el-dialog__body {
  709. padding: 30px 20px 10px 20px;
  710. .el-input {
  711. width: 200px;
  712. .el-input__suffix-inner {
  713. color: rgba(61, 81, 232, 1);
  714. }
  715. }
  716. .options {
  717. margin: 10px 20px 20px 0;
  718. width: 100%;
  719. .el-form-item__content {
  720. display: flex;
  721. flex-direction: row-reverse;
  722. }
  723. .queding {
  724. color: #fff;
  725. margin-left: 15px;
  726. }
  727. }
  728. }
  729. }
  730. }
  731. .el-pagination {
  732. // width: 1600px;
  733. width: 96%;
  734. margin: 20px auto 18px;
  735. justify-content: flex-end;
  736. :deep(.el-pagination__total) {
  737. color: #000;
  738. }
  739. :deep(.el-pagination__goto) {
  740. color: #000;
  741. }
  742. :deep(.el-pagination__classifier) {
  743. color: #000;
  744. }
  745. :deep(.el-input__wrapper) {
  746. border: 1px solid rgba(0, 0, 0, 1);
  747. border-radius: 5px;
  748. box-shadow: none;
  749. }
  750. :deep(.el-pager li) {
  751. margin: 0 5px;
  752. border: 1px solid rgba(0, 0, 0, 1);
  753. border-radius: 5px;
  754. background-color: transparent;
  755. }
  756. :deep(.el-pager li.is-active) {
  757. background-color: rgba(111, 182, 184, 1);
  758. }
  759. :deep(.btn-prev) {
  760. margin-right: 5px;
  761. border: 1px solid rgba(0, 0, 0, 1);
  762. border-radius: 5px;
  763. background-color: transparent;
  764. }
  765. :deep(.btn-next) {
  766. margin-left: 5px;
  767. border: 1px solid rgba(0, 0, 0, 1);
  768. border-radius: 5px;
  769. background-color: transparent;
  770. }
  771. }
  772. }
  773. .el-input {
  774. width: 192px;
  775. }
  776. </style>