student.vue 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881
  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="scroll">
  8. <div class="middle">
  9. <div class="filter">
  10. <div class="condition">
  11. <span>校区名称 :</span>
  12. <el-select
  13. clearable
  14. @change="schoolChange"
  15. v-model="searchInput.schoolId"
  16. placeholder="请选择校区名称"
  17. >
  18. <el-option
  19. v-for="i in schoolData"
  20. :key="i.id"
  21. :label="i.school"
  22. :value="i.id"
  23. />
  24. </el-select>
  25. </div>
  26. <div class="condition">
  27. <span>楼栋名称 :</span>
  28. <el-select
  29. clearable
  30. v-model="searchInput.buildId"
  31. placeholder="请选择楼栋名称"
  32. @change="buildChange"
  33. >
  34. <el-option
  35. v-for="i in buildData"
  36. :key="i.id"
  37. :label="i.build"
  38. :value="i.id"
  39. />
  40. </el-select>
  41. </div>
  42. <div class="condition">
  43. <span>寝室号 :</span>
  44. <el-select
  45. v-model="searchInput.dormitoryId"
  46. placeholder="请选择寝室号"
  47. clearable
  48. >
  49. <el-option
  50. v-for="i in dormitoryData"
  51. :key="i.id"
  52. :label="i.dormitory"
  53. :value="i.id"
  54. />
  55. </el-select>
  56. </div>
  57. <div class="condition">
  58. <span>所属学院 :</span>
  59. <el-select
  60. @change="collegeChange"
  61. v-model="searchInput.collegeId"
  62. placeholder="请选择所属学院"
  63. clearable
  64. >
  65. <el-option
  66. v-for="i in collegeData"
  67. :key="i.id"
  68. :label="i.name"
  69. :value="i.id"
  70. />
  71. </el-select>
  72. </div>
  73. <div class="condition">
  74. <span>专业 :</span>
  75. <el-select
  76. @change="majorChange"
  77. clearable
  78. v-model="searchInput.majorId"
  79. placeholder="请选择专业"
  80. >
  81. <el-option
  82. v-for="i in majorData"
  83. :key="i.id"
  84. :label="i.name"
  85. :value="i.id"
  86. />
  87. </el-select>
  88. </div>
  89. <div class="condition">
  90. <span>所属班级 :</span>
  91. <el-select
  92. clearable
  93. v-model="searchInput.classstrId"
  94. placeholder="请选择所属班级"
  95. >
  96. <el-option
  97. v-for="i in classstrData"
  98. :key="i.id"
  99. :label="i.name"
  100. :value="i.id"
  101. />
  102. </el-select>
  103. </div>
  104. <div class="condition">
  105. <span>学生姓名 :</span>
  106. <el-input
  107. clearable
  108. v-model.trim="searchInput.name"
  109. class="w-50 m-2"
  110. placeholder="请输入学生姓名"
  111. style="width: 180px"
  112. />
  113. </div>
  114. <div class="condition" v-if="store.BtnRole('studentAccommodationSetting3')">
  115. <span>年份 :</span>
  116. <el-select
  117. clearable
  118. v-model="searchInput.yearId"
  119. placeholder="请选择年份"
  120. >
  121. <el-option
  122. v-for="i in yearData"
  123. :key="i.id"
  124. :label="i.name"
  125. :value="i.id"
  126. />
  127. </el-select>
  128. </div>
  129. <div class="condition">
  130. <span>层次 :</span>
  131. <el-select
  132. clearable
  133. v-model="searchInput.batchValue"
  134. placeholder="请选择层次"
  135. >
  136. <el-option label="本科" value="本科" />
  137. <el-option label="专升本" value="专升本" />
  138. <el-option label="专科" value="专科" />
  139. </el-select>
  140. </div>
  141. <el-button
  142. style="margin-left: 20px"
  143. color="rgba(38, 151, 255, 1)"
  144. type="primary"
  145. class="search"
  146. @click="searchBtn"
  147. ><span>查询</span></el-button
  148. >
  149. <el-button @click="resetBtn" plain color="rgba(43, 153, 255, 1)"
  150. >重置</el-button
  151. >
  152. </div>
  153. <!-- 按钮列表 -->
  154. <div class="gongneng">
  155. <el-button
  156. v-if="store.BtnRole('studentAccommodationSetting1')"
  157. type="primary"
  158. style="margin-left: 0"
  159. color="rgba(48, 201, 191, 1)"
  160. @click="buildExportbtn"
  161. >导出</el-button
  162. >
  163. </div>
  164. </div>
  165. <div class="footer" v-loading="loading">
  166. <el-table
  167. :row-class-name="tableRowClassName"
  168. :data="tableData.list"
  169. @selection-change="handleSelectionChange"
  170. style="width: 100%"
  171. :header-cell-style="{
  172. background: 'rgba(240, 243, 247, 1)',
  173. height: '50px',
  174. border: 0,
  175. }"
  176. >
  177. <el-table-column
  178. width="80"
  179. align="center"
  180. label="序号"
  181. type="index"
  182. index="1"
  183. />
  184. <el-table-column
  185. align="center"
  186. prop="cardNum"
  187. width="200"
  188. label="录取号"
  189. />
  190. <el-table-column
  191. align="center"
  192. prop="name"
  193. width="120"
  194. label="学生姓名"
  195. />
  196. <el-table-column
  197. align="center"
  198. prop="school"
  199. width="120"
  200. label="校区名称"
  201. />
  202. <el-table-column
  203. align="center"
  204. prop="build"
  205. width="140"
  206. label="楼栋名称"
  207. />
  208. <el-table-column
  209. align="center"
  210. prop="dormitory"
  211. width="120"
  212. label="寝室号"
  213. />
  214. <el-table-column align="center" prop="number" label="床位号" />
  215. <el-table-column align="center" prop="sex" width="100" label="性别" />
  216. <el-table-column
  217. align="center"
  218. prop="college"
  219. width="160"
  220. label="所属学院"
  221. />
  222. <el-table-column align="center" prop="major" width="220" label="专业">
  223. </el-table-column>
  224. <el-table-column
  225. align="center"
  226. prop="classstr"
  227. width="220"
  228. label="所属班级"
  229. />
  230. <el-table-column
  231. align="center"
  232. prop="instructor"
  233. width="120"
  234. label="辅导员"
  235. />
  236. </el-table>
  237. <!-- 分页组件 -->
  238. <div class="pageSize">
  239. <span></span>
  240. <el-pagination
  241. background
  242. :current-page="currentPage"
  243. :page-size="pageSize"
  244. :page-sizes="[10, 20, 30, 40]"
  245. layout="total,sizes, prev, pager, next, jumper, slot"
  246. :total="total"
  247. @size-change="handleSizeChange"
  248. @update:current-page="handleCurrentChange"
  249. />
  250. </div>
  251. </div>
  252. </div>
  253. </div>
  254. </template>
  255. <script setup>
  256. import {
  257. ref,
  258. watch,
  259. reactive,
  260. nextTick,
  261. onBeforeMount,
  262. onUnmounted,
  263. } from "vue";
  264. import { useRouter } from "vue-router";
  265. import { ElMessage, ElMessageBox } from "element-plus";
  266. import { dayjs } from "element-plus";
  267. import lodash from "lodash";
  268. import { https } from "@/utils/request"; // 绝对路径
  269. import { storeToRefs } from "pinia";
  270. import { useCounterStore } from "@/stores/index";
  271. const router = useRouter();
  272. const store = useCounterStore();
  273. // 为避免解构时失去响应性
  274. const { name, age, isCollapse, realAge, collegeRole } = storeToRefs(store);
  275. // 表格数据
  276. const loading = ref(false);
  277. const tableData = reactive({
  278. list: [],
  279. });
  280. const dialongTitle = ref("新增账号"); // 弹窗标题
  281. const searchInput = reactive({
  282. schoolId: null,
  283. buildId: null,
  284. dormitoryId: null,
  285. name: null,
  286. majorId: null,
  287. collegeId: null,
  288. classstrId: null,
  289. yearId: null,
  290. batchValue:null
  291. }); // 搜索按钮数据
  292. const currentPage = ref(1); // 当前页
  293. const pageSize = ref(10);
  294. const total = ref(); // 当前总数
  295. const selectIds = ref([]);
  296. const addDialogVisible = ref(false); // 控制添加账号弹窗
  297. // 表单数据
  298. const formSize = ref("default");
  299. const ruleFormRef = ref();
  300. const ruleForm = reactive({
  301. school: "男", //校区名称
  302. build: "1", //楼栋名称
  303. dormitory: "", //宿舍名称
  304. sex: "", //床位性别
  305. college: "",
  306. major: "",
  307. classstr: "",
  308. number: "", //床位号
  309. isCheck: "",
  310. cardNum: "",
  311. name: "",
  312. remark: "",
  313. id: "",
  314. });
  315. // 表单验证
  316. const rules = reactive({
  317. school: [{ required: true, message: "校区名称不能为空", trigger: "blur" }],
  318. build: [{ required: true, message: "楼栋名称不能为空", trigger: "blur" }],
  319. dormitory: [{ required: true, message: "寝室号不能为空", trigger: "blur" }],
  320. sex: [{ required: true, message: "床位性别不能为空", trigger: "blur" }],
  321. // college: [{ required: true, message: "所属学院不能为空", trigger: "blur" }],
  322. // major: [{ required: true, message: "专业不能为空", trigger: "blur" }],
  323. // classstr: [{ required: true, message: "所属班级不能为空", trigger: "blur" }],
  324. number: [{ required: true, message: "床位号不能为空", trigger: "blur" }],
  325. });
  326. // 校区数据
  327. const schoolData = ref([]);
  328. // 楼栋数据
  329. const buildData = ref([]);
  330. // 寝室号数据
  331. const dormitoryData = ref([]);
  332. // 学院
  333. const collegeData = ref([]);
  334. // 专业
  335. const majorData = ref([]);
  336. // 班级
  337. const classstrData = ref([]);
  338. // 年份
  339. const yearData = ref([]);
  340. const schoolList = async () => {
  341. let res = await https.get("/welcome/api/welcome-build/schoolGroup", "params");
  342. console.log(res, "校区数据");
  343. if (res.code == 200) {
  344. schoolData.value = res.data;
  345. } else {
  346. ElMessage({
  347. type: "error",
  348. showClose: true,
  349. message: res.message,
  350. center: true,
  351. });
  352. }
  353. };
  354. const buildList = async (flag) => {
  355. let params = {
  356. schoolId: searchInput.schoolId,
  357. accountId: sessionStorage.getItem("accountId"),
  358. };
  359. let res = await https.get(
  360. // "/welcome/api/welcome-build/buildGroup",
  361. "/welcome/api/welcome-dormitory/saveBedBuildGroup",
  362. "params",
  363. params,
  364. );
  365. console.log(res, "楼栋数据");
  366. if (res.code == 200) {
  367. buildData.value = res.data;
  368. } else {
  369. ElMessage({
  370. type: "error",
  371. showClose: true,
  372. message: res.message,
  373. center: true,
  374. });
  375. }
  376. };
  377. const dormitoryList = async (flag) => {
  378. let params = {
  379. schoolId: searchInput.schoolId,
  380. buildId: searchInput.buildId,
  381. };
  382. let res = await https.get(
  383. "/welcome/api/welcome-dormitory/dormitoryGroup",
  384. "params",
  385. params,
  386. );
  387. console.log(res, "寝室号数据");
  388. if (res.code == 200) {
  389. dormitoryData.value = res.data;
  390. } else {
  391. ElMessage({
  392. type: "error",
  393. showClose: true,
  394. message: res.message,
  395. center: true,
  396. });
  397. }
  398. };
  399. const collegeList = async () => {
  400. collegeData.value = collegeRole.value;
  401. // let res = await https.get("/welcome/api/welcomeOrg/getColleges", "params");
  402. // console.log(res, "学院数据");
  403. // if (res.code == 200) {
  404. // collegeData.value = res.data;
  405. // } else {
  406. // ElMessage({
  407. // type: "error",
  408. // showClose: true,
  409. // message: res.message,
  410. // center: true,
  411. // });
  412. // }
  413. };
  414. const majorList = async (flag) => {
  415. let params = {
  416. collegeId: searchInput.collegeId,
  417. };
  418. let res = await https.get(
  419. "/welcome/api/welcomeOrg/getMajors",
  420. "params",
  421. params,
  422. );
  423. console.log(res, "专业数据");
  424. if (res.code == 200) {
  425. majorData.value = res.data;
  426. } else {
  427. ElMessage({
  428. type: "error",
  429. showClose: true,
  430. message: res.message,
  431. center: true,
  432. });
  433. }
  434. };
  435. const classstrList = async (flag) => {
  436. let params = {
  437. majorId: searchInput.majorId,
  438. };
  439. let res = await https.get(
  440. "/welcome/api/welcomeOrg/getClasss",
  441. "params",
  442. params,
  443. );
  444. console.log(res, "班级数据");
  445. if (res.code == 200) {
  446. classstrData.value = res.data;
  447. } else {
  448. ElMessage({
  449. type: "error",
  450. showClose: true,
  451. message: res.message,
  452. center: true,
  453. });
  454. }
  455. };
  456. const yearList = async () => {
  457. let res = await https.get("/welcome/api/systemSetting/yearDatas", "params");
  458. console.log(res, "年份数据");
  459. if (res.code == 200) {
  460. yearData.value = res.data;
  461. } else {
  462. ElMessage({
  463. type: "error",
  464. showClose: true,
  465. message: res.message,
  466. center: true,
  467. });
  468. }
  469. };
  470. const schoolChange = async (val) => {
  471. console.log(val);
  472. searchInput.buildId = null;
  473. searchInput.dormitoryId = null;
  474. if (!val) {
  475. buildData.value = null;
  476. dormitoryData.value = null;
  477. return;
  478. } else {
  479. buildData.value = null;
  480. dormitoryData.value = null;
  481. }
  482. buildList();
  483. };
  484. const buildChange = async (val) => {
  485. searchInput.dormitoryId = null;
  486. if (!val) {
  487. dormitoryData.value = null;
  488. return;
  489. } else {
  490. dormitoryData.value = null;
  491. }
  492. dormitoryList();
  493. };
  494. const collegeChange = async (val) => {
  495. console.log(val);
  496. searchInput.majorId = null;
  497. searchInput.classstrId = null;
  498. if (!val) {
  499. majorData.value = null;
  500. classstrData.value = null;
  501. return;
  502. } else {
  503. majorData.value = null;
  504. classstrData.value = null;
  505. }
  506. majorList();
  507. };
  508. const majorChange = async (val) => {
  509. console.log(val);
  510. searchInput.classstrId = null;
  511. if (!val) {
  512. classstrData.value = null;
  513. return;
  514. } else {
  515. classstrData.value = null;
  516. }
  517. classstrList();
  518. };
  519. // 获取账户列表
  520. const getList = async () => {
  521. loading.value = true;
  522. let params = {
  523. accountId: sessionStorage.getItem("accountId"),
  524. currentPage: currentPage.value, // 当前页
  525. pageCount: pageSize.value, // 一页数据条数
  526. schoolId: searchInput.schoolId,
  527. buildId: searchInput.buildId,
  528. dormitoryId: searchInput.dormitoryId,
  529. collegeId: searchInput.collegeId,
  530. majorId: searchInput.majorId,
  531. classstrId: searchInput.classstrId,
  532. name: searchInput.name,
  533. yearId: searchInput.yearId,
  534. batchValue:searchInput.batchValue
  535. };
  536. let res = await https.get(
  537. "/welcome/api/welcomeBed/studentAccommodationPage",
  538. "params",
  539. params,
  540. );
  541. console.log(res, "床位信息");
  542. if (res.code == 200) {
  543. tableData.list = res.data.list;
  544. total.value = res.data.totalCount;
  545. loading.value = false;
  546. } else {
  547. loading.value = false;
  548. ElMessage({
  549. type: "error",
  550. showClose: true,
  551. message: res.message,
  552. center: true,
  553. });
  554. }
  555. };
  556. // 搜索功能
  557. const searchBtn = lodash.debounce(async () => {
  558. getList();
  559. }, 300);
  560. const resetBtn = lodash.debounce(async () => {
  561. searchInput.schoolId = null;
  562. searchInput.buildId = null;
  563. buildData.value = [];
  564. searchInput.dormitoryId = null;
  565. dormitoryData.value = [];
  566. searchInput.name = null;
  567. searchInput.collegeId = null;
  568. searchInput.majorId = null;
  569. majorData.value = [];
  570. searchInput.classstrId = null;
  571. classstrData.value = [];
  572. searchInput.yearId=null
  573. searchInput.batchValue=null
  574. getList();
  575. }, 300);
  576. // 多选框功能
  577. const handleSelectionChange = (val) => {
  578. console.log(val);
  579. selectIds.value = val.map((i) => i.id);
  580. };
  581. // 表格斑马纹颜色修改
  582. const tableRowClassName = ({ row, rowIndex }) => {
  583. if (rowIndex % 2 === 0) {
  584. return "even";
  585. } else if (rowIndex % 2 !== 0) {
  586. return "odd";
  587. }
  588. return "";
  589. };
  590. // 每页显示条数
  591. const handleSizeChange = (value) => {
  592. console.log(value, "每页显示条数");
  593. pageSize.value = value;
  594. getList();
  595. };
  596. // 分页
  597. const handleCurrentChange = (value) => {
  598. // console.log(value);
  599. currentPage.value = value;
  600. getList();
  601. };
  602. // 楼栋导出
  603. const buildExportbtn = async () => {
  604. let params = {
  605. accountId: sessionStorage.getItem("accountId"),
  606. schoolId: searchInput.schoolId,
  607. buildId: searchInput.buildId,
  608. dormitoryId: searchInput.dormitoryId,
  609. name: searchInput.name,
  610. collegeId: searchInput.collegeId,
  611. majorId: searchInput.majorId,
  612. classstrId: searchInput.classstrId,
  613. yearId: searchInput.yearId,
  614. batchValue: searchInput.batchValue,
  615. };
  616. let res = await https.getBlob(
  617. "/welcome/api/welcomeBed/studentAccommodationListExport",
  618. "params",
  619. params,
  620. );
  621. console.log(res, "学生住宿信息");
  622. let name = `学生住宿信息`;
  623. var content = res;
  624. var datas = new Blob([content]);
  625. var downloadUrl = window.URL.createObjectURL(datas);
  626. var anchor = document.createElement("a");
  627. anchor.href = downloadUrl;
  628. anchor.download = name + ".xlsx";
  629. anchor.click();
  630. window.URL.revokeObjectURL(datas);
  631. ElMessage({
  632. type: "success",
  633. showClose: true,
  634. message: "导出成功",
  635. center: true,
  636. });
  637. };
  638. onBeforeMount(() => {
  639. getList();
  640. schoolList();
  641. collegeList();
  642. yearList()
  643. });
  644. onUnmounted(() => {
  645. // document.removeEventListener("keyup", Enters);
  646. });
  647. </script>
  648. <style scoped lang="scss">
  649. .content-box {
  650. width: calc(100% - 40px);
  651. height: calc(100% - 105px);
  652. margin: 20px auto;
  653. background-color: #fff;
  654. color: #000;
  655. display: flex;
  656. flex-direction: column;
  657. .svg {
  658. width: 22px;
  659. height: 22px;
  660. }
  661. .left {
  662. width: calc(100% - 60px);
  663. height: 60px;
  664. margin: 0 auto;
  665. display: flex;
  666. align-items: center;
  667. border-bottom: 1px solid #ccc;
  668. color: #000;
  669. font-size: 18px;
  670. font-weight: 600;
  671. .camera {
  672. margin-right: 15px;
  673. color: #4392f7;
  674. }
  675. }
  676. .scroll {
  677. width: calc(100% - 60px);
  678. height: calc(100% - 61px);
  679. margin: 0 auto;
  680. display: flex;
  681. flex-direction: column;
  682. .middle {
  683. width: calc(100%);
  684. color: #000;
  685. .filter {
  686. display: flex;
  687. flex-wrap: wrap;
  688. align-items: center;
  689. .search {
  690. margin-left: 0 !important;
  691. color: #fff;
  692. }
  693. .condition {
  694. display: flex;
  695. align-items: center;
  696. margin: 10px 30px 10px 0;
  697. :deep(.el-input .el-input__inner) {
  698. font-size: 14px;
  699. }
  700. .el-select {
  701. width: 220px;
  702. }
  703. span {
  704. margin: 0 10px 0 0;
  705. }
  706. }
  707. }
  708. .gongneng {
  709. margin: 10px 0;
  710. .el-button {
  711. color: #fff;
  712. margin-right: 15px;
  713. }
  714. }
  715. }
  716. .footer {
  717. width: calc(100%);
  718. flex: 1;
  719. margin: 0 auto;
  720. overflow: auto;
  721. .el-table--fit {
  722. height: calc(100% - 60px);
  723. :deep(.el-table__header-wrapper) {
  724. background-color: #000;
  725. font-size: 15px;
  726. color: #000;
  727. .cell {
  728. color: #000;
  729. }
  730. }
  731. :deep(.el-table__row) {
  732. height: 50px;
  733. font-size: 15px;
  734. color: #000;
  735. }
  736. :deep(.el-table__row td) {
  737. padding: 0;
  738. border: 0;
  739. }
  740. .el-button--primary {
  741. margin-left: 5px;
  742. }
  743. :deep(.el-table__body .even) {
  744. background-color: #fff;
  745. }
  746. :deep(.el-table__body .odd) {
  747. background-color: rgba(240, 243, 247, 1);
  748. }
  749. :deep(.options) {
  750. display: flex;
  751. justify-content: center;
  752. align-items: center;
  753. .open {
  754. color: #2697ff;
  755. cursor: pointer;
  756. margin: 0 15px 0 0;
  757. }
  758. .edit {
  759. margin: 0 15px 0 0;
  760. color: rgba(0, 186, 173, 1);
  761. cursor: pointer;
  762. }
  763. .delete {
  764. color: rgba(212, 48, 48, 1);
  765. cursor: pointer;
  766. }
  767. }
  768. }
  769. .pageSize {
  770. display: flex;
  771. align-items: center;
  772. justify-content: space-between;
  773. margin: 0 30px;
  774. height: 60px;
  775. span {
  776. color: #000;
  777. }
  778. .el-pagination {
  779. // width: 1600px;
  780. :deep(.el-pagination__total) {
  781. color: #000;
  782. }
  783. :deep(.el-pagination__goto) {
  784. color: #000;
  785. }
  786. :deep(.el-pagination__classifier) {
  787. color: #000;
  788. }
  789. :deep(.el-input__wrapper) {
  790. border: 1px solid rgba(0, 0, 0, 1);
  791. border-radius: 5px;
  792. box-shadow: none;
  793. }
  794. :deep(.el-pager li) {
  795. margin: 0 5px;
  796. border: 1px solid rgba(0, 0, 0, 1);
  797. border-radius: 5px;
  798. background-color: transparent;
  799. }
  800. :deep(.el-pager li.is-active) {
  801. // background-color: rgba(0, 97, 255, 0.8);
  802. border: 1px solid rgba(0, 97, 255, 1);
  803. color: rgba(0, 97, 255, 1);
  804. }
  805. :deep(.btn-prev) {
  806. margin-right: 5px;
  807. border: 1px solid rgba(0, 0, 0, 1);
  808. border-radius: 5px;
  809. background-color: transparent;
  810. }
  811. :deep(.btn-next) {
  812. margin-left: 5px;
  813. border: 1px solid rgba(0, 0, 0, 1);
  814. border-radius: 5px;
  815. background-color: transparent;
  816. }
  817. }
  818. }
  819. }
  820. }
  821. // 添加员工弹窗样式
  822. :deep(.addStaff) {
  823. .el-dialog__body {
  824. padding: 20px 20px 10px 20px;
  825. .el-input {
  826. width: 400px;
  827. .el-input__suffix-inner {
  828. color: rgba(61, 81, 232, 1);
  829. }
  830. }
  831. .el-select {
  832. width: 400px;
  833. }
  834. .el-tree {
  835. width: 400px;
  836. }
  837. }
  838. }
  839. }
  840. </style>