path.vue 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835
  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">路线管理</span>
  6. </div>
  7. <div class="middle">
  8. <div class="filter">
  9. <div class="condition">
  10. <span>地点 : </span>
  11. <el-select
  12. v-model="searchInput.phone"
  13. multiple
  14. collapse-tags
  15. collapse-tags-tooltip
  16. :max-collapse-tags="3"
  17. placeholder="请选择地点"
  18. style="width: 240px"
  19. >
  20. <el-option label="全部" value="全部" />
  21. <el-option label="待审核" value="待审核" />
  22. <el-option label="审核成功" value="审核成功" />
  23. <el-option label="拒绝" value="拒绝" />
  24. </el-select>
  25. </div>
  26. <div class="condition">
  27. <span>状态 : </span>
  28. <el-select
  29. style="width: 180px"
  30. v-model="searchInput.car_number"
  31. class="m-2"
  32. placeholder="请选择状态"
  33. :clearable="true"
  34. >
  35. <el-option label="全部" value="全部" />
  36. <el-option label="待审核" value="待审核" />
  37. <el-option label="审核成功" value="审核成功" />
  38. <el-option label="拒绝" value="拒绝" />
  39. </el-select>
  40. </div>
  41. <div class="condition">
  42. <span>出发地 : </span>
  43. <el-select
  44. style="width: 180px"
  45. v-model="searchInput.car_number"
  46. class="m-2"
  47. placeholder="请选择出发地"
  48. :clearable="true"
  49. >
  50. <el-option label="全部" value="全部" />
  51. <el-option label="待审核" value="待审核" />
  52. <el-option label="审核成功" value="审核成功" />
  53. <el-option label="拒绝" value="拒绝" />
  54. </el-select>
  55. </div>
  56. <div class="condition">
  57. <span>目的地 : </span>
  58. <el-select
  59. style="width: 180px"
  60. v-model="searchInput.car_number"
  61. class="m-2"
  62. placeholder="请选择目的地"
  63. :clearable="true"
  64. >
  65. <el-option label="全部" value="全部" />
  66. <el-option label="待审核" value="待审核" />
  67. <el-option label="审核成功" value="审核成功" />
  68. <el-option label="拒绝" value="拒绝" />
  69. </el-select>
  70. </div>
  71. <div class="condition">
  72. <span>创建时间 : </span>
  73. <el-date-picker
  74. v-model="searchInput.createTime"
  75. type="date"
  76. format="YYYY-MM-DD"
  77. value-format="YYYY-MM-DD"
  78. :prefix-icon="Calendar"
  79. placeholder="请选择日期"
  80. />
  81. </div>
  82. </div>
  83. <!-- 按钮列表 -->
  84. <div class="gongneng">
  85. <el-button
  86. color="rgba(61, 81, 232, 1)"
  87. type="primary"
  88. class="search"
  89. @click="searchBtn"
  90. ><el-icon><Search /></el-icon> <span>查询</span></el-button
  91. >
  92. <el-button
  93. style="margin-left: 10px !important"
  94. color="rgba(61, 81, 232, 1)"
  95. type="primary"
  96. class="search"
  97. @click="searchRefresh"
  98. ><el-icon><Refresh /></el-icon><span>重置</span></el-button
  99. >
  100. <el-button
  101. color="rgba(61, 81, 232, 1)"
  102. class="import"
  103. type="primary"
  104. @click="importExcel"
  105. ><img
  106. src="@/assets/import.png"
  107. style="width: 14px; height: 14px; margin-right: 4px"
  108. alt=""
  109. />
  110. <span>导出表单</span></el-button
  111. >
  112. <el-button
  113. style="margin-left: 10px !important"
  114. type="primary"
  115. color="rgba(61, 81, 232, 1)"
  116. @click="addlist"
  117. ><el-icon><CirclePlus /></el-icon><span>新增路线</span></el-button
  118. >
  119. </div>
  120. </div>
  121. <div class="footer">
  122. <el-table
  123. :row-class-name="tableRowClassName"
  124. :data="tableData.list"
  125. @selection-change="handleSelectionChange"
  126. style="width: 100%"
  127. :header-cell-style="{
  128. background: 'rgba(240, 243, 247, 1)',
  129. height: '50px',
  130. border: 0,
  131. }"
  132. >
  133. <!-- <el-table-column align="center" type="selection" width="80" /> -->
  134. <el-table-column
  135. type="index"
  136. width="100"
  137. align="center"
  138. label="序号"
  139. index="1"
  140. />
  141. <el-table-column align="center" prop="user_name" label="出发地" />
  142. <el-table-column align="center" prop="user_zz" label="目的地" />
  143. <el-table-column align="center" prop="user_phone" label="每人车费" />
  144. <el-table-column align="center" prop="create_time" label="创建时间" />
  145. <el-table-column align="center" label="操作" width="220">
  146. <template #default="scope">
  147. <el-button link type="primary" @click="edit(scope.row)"
  148. ><div class="look">编辑</div></el-button
  149. >
  150. <el-button link type="danger" @click="del(scope.row)"
  151. ><div class="looks">删除</div></el-button
  152. >
  153. </template>
  154. </el-table-column>
  155. </el-table>
  156. <!-- 添加员工弹窗 -->
  157. <el-dialog
  158. class="addStaff"
  159. v-model="addDialogVisible"
  160. :close-on-click-modal="false"
  161. :close-on-press-escape="false"
  162. :title="dialongTitle"
  163. align-center
  164. width="509"
  165. :before-close="cancelAdd"
  166. >
  167. <el-form
  168. ref="ruleFormRef"
  169. :model="ruleForm"
  170. :rules="rules"
  171. label-width="100px"
  172. class="demo-ruleForm"
  173. :size="formSize"
  174. label-position="left"
  175. status-icon
  176. >
  177. <el-form-item label="出发地 :" prop="name">
  178. <el-select
  179. style="width: 180px"
  180. v-model="searchInput.car_number"
  181. class="m-2"
  182. placeholder="请选择出发地"
  183. :clearable="true"
  184. >
  185. <el-option label="全部" value="全部" />
  186. <el-option label="待审核" value="待审核" />
  187. <el-option label="审核成功" value="审核成功" />
  188. <el-option label="拒绝" value="拒绝" />
  189. </el-select>
  190. </el-form-item>
  191. <el-form-item label="目的地 :" prop="cardnumber">
  192. <el-select
  193. style="width: 180px"
  194. v-model="searchInput.car_number"
  195. class="m-2"
  196. placeholder="请选择目的地"
  197. :clearable="true"
  198. >
  199. <el-option label="全部" value="全部" />
  200. <el-option label="待审核" value="待审核" />
  201. <el-option label="审核成功" value="审核成功" />
  202. <el-option label="拒绝" value="拒绝" />
  203. </el-select>
  204. </el-form-item>
  205. <el-form-item label="每人车费 :">
  206. <el-input
  207. v-model="ruleForm.phone"
  208. placeholder="请输入每人车费"
  209. clearable
  210. />
  211. </el-form-item>
  212. <el-form-item class="options">
  213. <el-button
  214. color="rgba(61, 81, 232, 1)"
  215. class="queding"
  216. type="primary"
  217. @click="submitAdd(ruleFormRef)"
  218. >
  219. 确定
  220. </el-button>
  221. <el-button class="congzhi" @click="cancelAdd(ruleFormRef)"
  222. >取消</el-button
  223. >
  224. </el-form-item>
  225. </el-form>
  226. </el-dialog>
  227. </div>
  228. <!-- 分页组件 -->
  229. <el-pagination
  230. background
  231. :current-page="currentPage"
  232. :page-size="pageSize"
  233. layout="total, prev, pager, next, jumper, slot"
  234. :total="total"
  235. @update:current-page="handleCurrentChange"
  236. />
  237. </div>
  238. </template>
  239. <script setup>
  240. import { ref, reactive, nextTick, onBeforeMount, onUnmounted } from "vue";
  241. import { useRouter } from "vue-router";
  242. import { ElMessage, ElMessageBox } from "element-plus";
  243. import { Calendar } from "@element-plus/icons-vue";
  244. import vidiconsApi from "@/api/vidicons.js";
  245. import { dayjs } from "element-plus";
  246. import lodash from "lodash";
  247. import axios from "axios";
  248. import { useStore } from "vuex";
  249. const store = useStore();
  250. const router = useRouter();
  251. // 表格数据
  252. const tableData = reactive({ list: [] });
  253. const activeIndex = ref(); // 默认跳转路由
  254. const dialongTitle = ref("新增驾驶员"); // 弹窗标题
  255. const api = ref("");
  256. const searchInput = reactive({
  257. name: "",
  258. phone: "",
  259. createTime: "",
  260. }); // 搜索按钮数据
  261. const currentPage = ref(1); // 当前页
  262. const pageSize = ref(10);
  263. const total = ref(); // 当前总数
  264. const selectData = reactive({ list: [] }); // 多选框选择的数据
  265. const addDialogVisible = ref(false); // 控制添加员工弹窗
  266. // 表单数据
  267. const formSize = ref("default");
  268. const ruleFormRef = ref();
  269. const ruleForm = reactive({
  270. name: "",
  271. phone: "",
  272. post: "0",
  273. cardnumber: "",
  274. id: "",
  275. });
  276. // 表单验证
  277. const rules = reactive({
  278. name: [
  279. { required: true, message: "姓名不能为空", trigger: "blur" },
  280. {
  281. pattern: /[\u4e00-\u9fa5]$/,
  282. message: "请输入正确姓名",
  283. trigger: "blur",
  284. },
  285. ],
  286. // /^[\u4E00-\u9FA5]$/
  287. cardnumber: [
  288. { required: true, message: "卡号不能为空", trigger: "blur" },
  289. // {
  290. // // pattern: /^((0\d{2,3}-\d{7,8})|(1[3584]\d{9}))$/,
  291. // // pattern: /^[0-9]*$/,
  292. // message: "请输入正确卡号(数字类型)",
  293. // trigger: "blur",
  294. // },
  295. ],
  296. phone: [
  297. { required: true, message: "请输入手机号", trigger: "blur" },
  298. {
  299. // pattern: /^((0\d{2,3}-\d{7,8})|(1[3584]\d{9}))$/,
  300. pattern: /^((\(\+86\))|(\(86\)))?[1][3456789][0-9]{9}$/,
  301. message: "请输入合法手机号/电话号",
  302. trigger: "blur",
  303. },
  304. ],
  305. post: [
  306. {
  307. required: true,
  308. message: "职位不能为空",
  309. trigger: "blur",
  310. },
  311. ],
  312. // desc: [{ required: true, message: "Please input activity form", trigger: "blur" }],
  313. });
  314. // 获取摄像头列表
  315. const getList = async (message) => {
  316. let data = new FormData();
  317. if (searchInput.createTime == null) {
  318. searchInput.createTime = "";
  319. }
  320. data.set("user_name", searchInput.name);
  321. data.set("user_phone", searchInput.phone);
  322. data.set("create_time", searchInput.createTime); //前面的key记得对应!
  323. data.set("page", currentPage.value);
  324. data.set("rows", pageSize.value); //前面的key记得对应!
  325. // let res = await adminApi.adminLogin(data);
  326. let res = await axios({
  327. method: "post",
  328. url: api.value + "/carBook/userlist.action",
  329. headers: {
  330. token: sessionStorage.getItem("token"),
  331. },
  332. data: data,
  333. });
  334. console.log(res);
  335. if (res.status == 200) {
  336. if (message) {
  337. ElMessage({
  338. type: "success",
  339. showClose: true,
  340. message: message,
  341. center: true,
  342. });
  343. }
  344. // ElMessage({
  345. // type: "success",
  346. // showClose: true,
  347. // message: res.data.message,
  348. // center: true,
  349. // });
  350. tableData.list = res.data.rows;
  351. // currentPage.value = res.data.currentPage;
  352. total.value = res.data.total;
  353. } else {
  354. tableData.list = res.data.rows;
  355. currentPage.value = 1;
  356. total.value = res.data.total;
  357. ElMessage({
  358. type: "error",
  359. showClose: true,
  360. message: res.data.message,
  361. center: true,
  362. });
  363. if (res.data.message == "token错误") {
  364. router.push({
  365. path: `/login`,
  366. });
  367. }
  368. }
  369. // console.log(res);
  370. };
  371. // 搜索功能
  372. const searchBtn = lodash.debounce(async () => {
  373. getList("查询成功");
  374. }, 300);
  375. // 重置搜索
  376. const searchRefresh = lodash.debounce(async () => {
  377. searchInput.name = "";
  378. searchInput.phone = "";
  379. searchInput.createTime = "";
  380. currentPage.value = 1;
  381. getList();
  382. }, 300);
  383. // 添加员工
  384. const addlist = () => {
  385. dialongTitle.value = "新增路线";
  386. addDialogVisible.value = true;
  387. ruleForm.name = "";
  388. ruleForm.phone = "";
  389. ruleForm.post = "";
  390. ruleForm.cardnumber = "";
  391. };
  392. //编辑按钮
  393. const edit = (row) => {
  394. dialongTitle.value = "编辑驾驶员";
  395. addDialogVisible.value = true;
  396. console.log(row);
  397. ruleForm.name = row.user_name;
  398. ruleForm.phone = row.user_phone;
  399. ruleForm.post = row.user_zz;
  400. ruleForm.id = row.id;
  401. };
  402. // 取消添加员工
  403. const cancelAdd = () => {
  404. addDialogVisible.value = false;
  405. ruleFormRef.value.resetFields();
  406. };
  407. // 确认添加员工
  408. const submitAdd = async (formEl) => {
  409. if (!formEl) return;
  410. await formEl.validate(async (valid, fields) => {
  411. if (valid) {
  412. if (dialongTitle.value == "新增驾驶员") {
  413. let data = {
  414. user_name: ruleForm.name,
  415. user_phone: ruleForm.phone,
  416. user_zz: ruleForm.post,
  417. card_number: ruleForm.cardnumber,
  418. };
  419. // let res = await admin.adminAdd(data);
  420. let res = await axios({
  421. method: "post",
  422. url: api.value + "/carBook/userinsert.action",
  423. headers: {
  424. "Content-Type": "application/json;charset=utf-8",
  425. token: sessionStorage.getItem("token"),
  426. },
  427. data: data,
  428. });
  429. // console.log(res, "添加账号");
  430. if (res.data.code == 200) {
  431. getList();
  432. ElMessage({
  433. type: "success",
  434. showClose: true,
  435. message: res.data.message,
  436. center: true,
  437. });
  438. addDialogVisible.value = false;
  439. ruleFormRef.value.resetFields();
  440. } else {
  441. ElMessage({
  442. type: "error",
  443. showClose: true,
  444. message: res.data.message,
  445. center: true,
  446. });
  447. }
  448. } else {
  449. let data = {
  450. user_name: ruleForm.name,
  451. user_phone: ruleForm.phone,
  452. user_zz: ruleForm.post,
  453. id: ruleForm.id,
  454. };
  455. // let res = await admin.adminAdd(data);
  456. let res = await axios({
  457. method: "post",
  458. url: api.value + "/carBook/userupdate.action",
  459. headers: {
  460. "Content-Type": "application/json;charset=utf-8",
  461. token: sessionStorage.getItem("token"),
  462. },
  463. data: data,
  464. });
  465. // console.log(res, "修改账号");
  466. if (res.data.code == 200) {
  467. getList();
  468. ElMessage({
  469. type: "success",
  470. showClose: true,
  471. message: res.data.message,
  472. center: true,
  473. });
  474. addDialogVisible.value = false;
  475. ruleFormRef.value.resetFields();
  476. } else {
  477. ElMessage({
  478. type: "error",
  479. showClose: true,
  480. message: res.data.message,
  481. center: true,
  482. });
  483. }
  484. }
  485. } else {
  486. console.log("error submit!", fields);
  487. }
  488. });
  489. };
  490. //删除按钮
  491. const del = (row) => {
  492. ElMessageBox.confirm(`是否删除 ${row.user_name} 驾驶员?`, "提示", {
  493. confirmButtonText: "确认",
  494. cancelButtonText: "取消",
  495. type: "warning",
  496. })
  497. .then(async () => {
  498. let data = new FormData();
  499. data.set("id", row.id);
  500. // let res = await adminApi.adminLogin(data);
  501. let res = await axios({
  502. method: "post",
  503. url: api.value + "/carBook/userdel.action",
  504. headers: {
  505. token: sessionStorage.getItem("token"),
  506. },
  507. data: data,
  508. });
  509. if (res.data.code == 200) {
  510. if (tableData.list.length == 1 && currentPage.value != 1) {
  511. currentPage.value = currentPage.value - 1;
  512. }
  513. getList();
  514. ElMessage({
  515. type: "success",
  516. showClose: true,
  517. message: res.data.message,
  518. center: true,
  519. });
  520. } else {
  521. ElMessage({
  522. type: "error",
  523. showClose: true,
  524. message: res.data.message,
  525. center: true,
  526. });
  527. }
  528. console.log(res);
  529. })
  530. .catch(() => {
  531. ElMessage({
  532. type: "info",
  533. message: "已取消删除",
  534. });
  535. });
  536. };
  537. //导出功能
  538. const importExcel = async () => {
  539. if (searchInput.createTime == null) {
  540. searchInput.createTime = "";
  541. }
  542. let data = new FormData();
  543. data.set("user_name", searchInput.name);
  544. data.set("user_phone", searchInput.phone);
  545. data.set("create_time", searchInput.createTime);
  546. let res = await axios({
  547. method: "post",
  548. url: api.value + "/carBook/usertoExcel.action",
  549. headers: {
  550. token: sessionStorage.getItem("token"),
  551. },
  552. data: data,
  553. });
  554. // console.log(res, "导出账号");
  555. if (res.data.code == 200) {
  556. // const elt = document.createElement("a");
  557. // elt.setAttribute(
  558. // "href",
  559. // "https://car.meiyishuoo.com/ride-sharing" + res.data.downurl
  560. // );
  561. // // elt.setAttribute("download", "file.xlsx");
  562. // // elt.style.display = "none";
  563. // document.body.appendChild(elt);
  564. // elt.click();
  565. var downloadPath = "https://car.meiyishuoo.com/ride-sharing" + res.data.downurl;
  566. console.log("获得地址数据:", downloadPath);
  567. var downloadLink = document.createElement("a");
  568. downloadLink.style.display = "none"; // 使其隐藏
  569. downloadLink.href = downloadPath;
  570. downloadLink.download = "";
  571. downloadLink.click();
  572. document.body.appendChild(downloadLink);
  573. document.body.removeChild(downloadLink);
  574. ElMessage({
  575. type: "success",
  576. showClose: true,
  577. message: res.data.message,
  578. center: true,
  579. });
  580. } else {
  581. ElMessage({
  582. type: "error",
  583. showClose: true,
  584. message: res.data.message,
  585. center: true,
  586. });
  587. }
  588. };
  589. // 多选框功能
  590. const handleSelectionChange = (val) => {
  591. console.log(val);
  592. selectData.list = val;
  593. };
  594. // 表格斑马纹颜色修改
  595. const tableRowClassName = ({ row, rowIndex }) => {
  596. if (rowIndex % 2 === 0) {
  597. return "even";
  598. } else if (rowIndex % 2 !== 0) {
  599. return "odd";
  600. }
  601. return "";
  602. };
  603. // 分页
  604. const handleCurrentChange = (value) => {
  605. // console.log(value);
  606. currentPage.value = value;
  607. getList();
  608. };
  609. onBeforeMount(() => {
  610. api.value = store.state.user.api;
  611. getList();
  612. });
  613. onUnmounted(() => {
  614. // document.removeEventListener("keyup", Enters);
  615. });
  616. </script>
  617. <style scoped lang="scss">
  618. .content-box {
  619. width: calc(100% - 40px);
  620. height: calc(100% - 105px);
  621. margin: 20px auto;
  622. background-color: #fff;
  623. color: #fff;
  624. display: flex;
  625. flex-direction: column;
  626. .left {
  627. width: calc(100% - 60px);
  628. display: flex;
  629. align-items: center;
  630. height: 60px;
  631. margin: 0 30px;
  632. border-bottom: 1px solid #ccc;
  633. color: #000;
  634. font-size: 18px;
  635. font-weight: 600;
  636. .camera {
  637. margin-right: 15px;
  638. color: #4392f7;
  639. }
  640. }
  641. .middle {
  642. width: calc(100% - 60px);
  643. margin: 0 auto;
  644. color: #000;
  645. // border-bottom: 1px solid rgb(231, 231, 231);
  646. .filter {
  647. display: flex;
  648. flex-wrap: wrap;
  649. align-items: center;
  650. margin: 10px 0 0 0;
  651. .search {
  652. margin-left: 0 !important;
  653. }
  654. .condition {
  655. display: flex;
  656. align-items: center;
  657. margin: 10px 30px 10px 0;
  658. :deep(.el-input .el-input__inner) {
  659. font-size: 16px;
  660. }
  661. span {
  662. margin: 0 10px 0 0;
  663. }
  664. }
  665. }
  666. .gongneng {
  667. margin: 10px 0;
  668. }
  669. :deep(.cont) {
  670. width: 60%;
  671. margin: 20px auto;
  672. }
  673. :deep(.download) {
  674. display: flex;
  675. align-items: center;
  676. margin: 10px;
  677. }
  678. :deep(.download span) {
  679. font-size: 16px;
  680. margin-left: 20px;
  681. }
  682. :deep(.cont .el-button) {
  683. margin-left: 60px;
  684. margin-bottom: 30px;
  685. }
  686. :deep(.cont .accomplish) {
  687. width: 100%;
  688. display: flex;
  689. justify-content: center;
  690. }
  691. :deep(.cont .accomplish .el-button) {
  692. width: 50%;
  693. margin: 0;
  694. }
  695. }
  696. .footer {
  697. width: calc(100% - 60px);
  698. flex: 1;
  699. margin: 10px auto;
  700. overflow: auto;
  701. .el-table--fit {
  702. height: 100%;
  703. :deep(.el-table__header-wrapper) {
  704. background-color: #000;
  705. font-size: 16px;
  706. color: #000;
  707. }
  708. :deep(.el-table__row) {
  709. height: 50px;
  710. font-size: 16px;
  711. color: #000;
  712. }
  713. :deep(.el-table__row td) {
  714. padding: 0;
  715. border: 0;
  716. }
  717. .el-button--primary {
  718. margin-left: 5px;
  719. }
  720. :deep(.el-table__body .even) {
  721. background-color: #fff;
  722. }
  723. :deep(.el-table__body .odd) {
  724. background-color: rgba(240, 243, 247, 1);
  725. }
  726. :deep(.look) {
  727. padding: 5px 10px;
  728. border-radius: 45px;
  729. border: 0.74px solid rgba(30, 125, 251, 1);
  730. }
  731. :deep(.looks) {
  732. padding: 5px 10px;
  733. border-radius: 45px;
  734. border: 0.74px solid #f56c6c;
  735. }
  736. }
  737. // 添加员工弹窗样式
  738. :deep(.addStaff) {
  739. // height: 420px;
  740. border-radius: 11px;
  741. .el-dialog__header {
  742. border-radius: 11px 11px 0 0;
  743. background: rgba(237, 241, 245, 1);
  744. font-weight: 600;
  745. margin: 0;
  746. .el-dialog__headerbtn {
  747. outline: none;
  748. }
  749. }
  750. .el-dialog__body {
  751. padding: 30px 20px 10px 20px;
  752. .el-input {
  753. width: 200px;
  754. }
  755. .options {
  756. .el-form-item__content {
  757. margin: 0 !important;
  758. display: flex;
  759. flex-direction: row-reverse;
  760. .queding {
  761. margin-left: 10px;
  762. }
  763. }
  764. }
  765. }
  766. }
  767. }
  768. .el-pagination {
  769. width: calc(100% - 60px);
  770. height: 60px;
  771. margin: 0 auto;
  772. justify-content: flex-end;
  773. :deep(.el-pagination__total) {
  774. color: #000;
  775. }
  776. :deep(.el-pagination__goto) {
  777. color: #000;
  778. }
  779. :deep(.el-pagination__classifier) {
  780. color: #000;
  781. }
  782. :deep(.el-input__wrapper) {
  783. border: 1px solid rgba(0, 0, 0, 1);
  784. border-radius: 5px;
  785. box-shadow: none;
  786. }
  787. :deep(.el-pager li) {
  788. margin: 0 5px;
  789. border: 1px solid rgba(0, 0, 0, 1);
  790. border-radius: 5px;
  791. background-color: transparent;
  792. }
  793. :deep(.el-pager li.is-active) {
  794. background-color: rgba(30, 125, 251, 1);
  795. }
  796. :deep(.btn-prev) {
  797. margin-right: 5px;
  798. border: 1px solid rgba(0, 0, 0, 1);
  799. border-radius: 5px;
  800. background-color: transparent;
  801. }
  802. :deep(.btn-next) {
  803. margin-left: 5px;
  804. border: 1px solid rgba(0, 0, 0, 1);
  805. border-radius: 5px;
  806. background-color: transparent;
  807. }
  808. }
  809. }
  810. .el-input {
  811. width: 192px;
  812. }
  813. </style>