student.vue 21 KB

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