caller.vue 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985
  1. <template>
  2. <div class="content-box">
  3. <div class="left">
  4. <!-- <el-icon :size="23" class="camera"><VideoCameraFilled /></el-icon> -->
  5. <div class="left_title">访客预约</div>
  6. </div>
  7. <div class="middle">
  8. <div class="filter">
  9. <div class="condition">
  10. <el-tooltip
  11. class="box-item"
  12. effect="dark"
  13. content="可查询姓名、电话、受访者姓名、受访者接待部门、受访者电话、车牌号"
  14. placement="top-start"
  15. >
  16. <el-input
  17. :clearable="true"
  18. @clear="searchBtn"
  19. v-model="searchInput.keyWord"
  20. style="width: 180px"
  21. placeholder="请输入关键字"
  22. />
  23. </el-tooltip>
  24. </div>
  25. <el-button
  26. color="rgba(0, 97, 255, 1)"
  27. type="primary"
  28. class="search condition"
  29. @click="searchBtn"
  30. >
  31. 查询</el-button
  32. >
  33. <div class="condition">
  34. <span>状态&nbsp;&nbsp;</span>
  35. <el-select
  36. v-model="searchInput.type"
  37. class="m-2"
  38. placeholder="请选择状态"
  39. style="width: 180px"
  40. @change="searchBtn"
  41. >
  42. <el-option label="全部" value="0" />
  43. <el-option label="待审核" value="1" />
  44. <el-option label="已拒绝" value="2" />
  45. <el-option label="已推送" value="3" />
  46. </el-select>
  47. </div>
  48. <div class="condition">
  49. <span>创建时间&nbsp;&nbsp;</span>
  50. <el-date-picker
  51. v-model="searchInput.createTime"
  52. type="daterange"
  53. range-separator="-"
  54. start-placeholder="起始时间"
  55. end-placeholder="结束时间"
  56. format="YYYY-MM-DD"
  57. value-format="YYYY-MM-DD"
  58. :prefix-icon="Calendar"
  59. placeholder="请选择日期"
  60. style="width: 280px"
  61. @change="searchBtn"
  62. />
  63. </div>
  64. <div class="condition">
  65. <span>访问时间&nbsp;&nbsp;</span>
  66. <el-date-picker
  67. v-model="searchInput.visitorTime"
  68. type="daterange"
  69. range-separator="-"
  70. start-placeholder="起始时间"
  71. end-placeholder="结束时间"
  72. format="YYYY-MM-DD"
  73. value-format="YYYY-MM-DD"
  74. :prefix-icon="Calendar"
  75. placeholder="请选择日期"
  76. style="width: 280px"
  77. @change="searchBtn"
  78. />
  79. </div>
  80. </div>
  81. <!-- 按钮列表 -->
  82. <!-- <div class="gongneng">
  83. <el-button
  84. type="primary"
  85. plain
  86. color="rgba(0, 97, 255, 1)"
  87. @click="selDel"
  88. ><span>删除访客</span></el-button
  89. >
  90. </div> -->
  91. </div>
  92. <div class="scroll">
  93. <div class="footer" v-loading="loading">
  94. <el-table
  95. :row-class-name="tableRowClassName"
  96. :data="tableData.list"
  97. @selection-change="handleSelectionChange"
  98. style="width: 100%"
  99. :header-cell-style="{
  100. background: 'rgba(240, 243, 247, 1)',
  101. height: '50px',
  102. border: 0,
  103. }"
  104. >
  105. <el-table-column align="center" fixed type="selection" />
  106. <el-table-column align="center" fixed prop="userName" label="姓名" />
  107. <el-table-column
  108. align="center"
  109. prop="userPhone"
  110. width="145"
  111. label="联系电话"
  112. />
  113. <el-table-column
  114. align="center"
  115. prop="userNumber"
  116. width="210"
  117. label="证件号"
  118. />
  119. <el-table-column align="center" prop="peerNum" label="同行人数" />
  120. <el-table-column align="center" prop="carNum" label="车牌号" />
  121. <el-table-column
  122. align="center"
  123. prop="visitReason"
  124. width="200"
  125. label="访问事由"
  126. show-overflow-tooltip
  127. />
  128. <el-table-column align="center" prop="status" label="状态">
  129. <template #default="scope">
  130. <span
  131. v-if="scope.row.statuStr == '待审核'"
  132. style="color: rgba(0, 97, 255, 1)"
  133. >待审核</span
  134. >
  135. <span
  136. v-if="scope.row.statuStr == '已拒绝'"
  137. style="color: rgba(212, 48, 48, 1)"
  138. >已拒绝</span
  139. >
  140. <span
  141. v-if="scope.row.statuStr == '已推送'"
  142. style="color: rgba(255, 87, 51, 1)"
  143. >已推送</span
  144. >
  145. </template>
  146. </el-table-column>
  147. <el-table-column
  148. align="center"
  149. prop="createTime"
  150. width="180"
  151. label="创建时间"
  152. />
  153. <el-table-column
  154. align="center"
  155. prop="visitorTime"
  156. width="180"
  157. label="来访时间"
  158. />
  159. <el-table-column
  160. align="center"
  161. prop="respondentName"
  162. label="受访者"
  163. />
  164. <el-table-column
  165. align="center"
  166. prop="departmentId"
  167. label="接待部门"
  168. />
  169. <el-table-column
  170. align="center"
  171. prop="respondentPhone"
  172. width="145"
  173. label="受访者电话"
  174. />
  175. <el-table-column
  176. align="center"
  177. fixed="right"
  178. label="操作"
  179. width="120"
  180. >
  181. <template #default="scope">
  182. <div class="edit" v-if="scope.row.statuStr == '待审核'">
  183. <div class="look" @click="editClick(scope.row)">审核</div>
  184. <el-popconfirm
  185. width="220"
  186. confirm-button-text="确认"
  187. cancel-button-text="取消"
  188. :icon="InfoFilled"
  189. icon-color="#f89626"
  190. title="是否删除该访客人员?"
  191. @confirm="del(scope.row)"
  192. @cancel="cancelEvent"
  193. >
  194. <template #reference>
  195. <div class="del">删除</div>
  196. </template>
  197. </el-popconfirm>
  198. </div>
  199. </template>
  200. </el-table-column>
  201. </el-table>
  202. </div>
  203. <!-- 分页组件 -->
  204. <div class="pageSize">
  205. <span></span>
  206. <el-pagination
  207. background
  208. :current-page="currentPage"
  209. :page-size="pageSize"
  210. layout="total, prev, pager, next, jumper, slot"
  211. :total="total"
  212. @update:current-page="handleCurrentChange"
  213. />
  214. </div>
  215. <!-- 编辑按钮 -->
  216. <el-dialog
  217. class="editDialog"
  218. v-model="editVisible"
  219. :close-on-click-modal="false"
  220. :close-on-press-escape="false"
  221. title="审核"
  222. align-center
  223. width="600"
  224. :before-close="cancelEdit"
  225. >
  226. <ul>
  227. <li>
  228. 访客类型:<span>{{
  229. editRuleForm.visitorType == 1 ? "家长" : "其他"
  230. }}</span>
  231. </li>
  232. <li>
  233. 访客姓名:<span>{{ editRuleForm.userName }}</span>
  234. </li>
  235. <li>
  236. 访客手机号:<span>{{ editRuleForm.usesrPhone }}</span>
  237. </li>
  238. <li>
  239. 来访时间:<span>{{ editRuleForm.visitorTime }}</span>
  240. </li>
  241. <li>
  242. 证件号:<span>{{ editRuleForm.userNumber }}</span>
  243. </li>
  244. <li>
  245. 访问事由:<span>{{ editRuleForm.visitReason }}</span>
  246. </li>
  247. <li>
  248. 车牌号:<span>{{ editRuleForm.carNum }}</span>
  249. </li>
  250. <li>
  251. 受访学生:<span
  252. >{{ editRuleForm.respondentName }}({{
  253. editRuleForm.respondent
  254. }})</span
  255. >
  256. </li>
  257. </ul>
  258. <div class="options">
  259. <el-button
  260. color="rgba(41, 109, 227, 1)"
  261. class="queding"
  262. type="primary"
  263. @click="confirmEdit(1)"
  264. >
  265. 同意,并推送
  266. </el-button>
  267. <el-button @click="confirmEdit(2)" color="rgba(212, 48, 48, 1)"
  268. >拒绝</el-button
  269. >
  270. </div>
  271. </el-dialog>
  272. <!-- 勾选删除 -->
  273. <el-dialog
  274. class="closeAccount"
  275. v-model="selDelVisible"
  276. :close-on-click-modal="false"
  277. :close-on-press-escape="false"
  278. title="提示"
  279. align-center
  280. width="500"
  281. :before-close="cancelSelDel"
  282. >
  283. <div class="content">
  284. <img src="@/assets/images/warning.png" alt="" />
  285. <span>删除后数据将无法恢复,确定对选中的访问数据进行删除吗?</span>
  286. </div>
  287. <div class="option">
  288. <el-button
  289. color="rgba(41, 109, 227, 1)"
  290. class="queding"
  291. type="primary"
  292. @click="confirmCloseAccount"
  293. >
  294. 确认
  295. </el-button>
  296. <el-button @click="cancelSelDel">取消</el-button>
  297. </div>
  298. </el-dialog>
  299. </div>
  300. </div>
  301. </template>
  302. <script setup>
  303. import {
  304. ref,
  305. reactive,
  306. watch,
  307. nextTick,
  308. onBeforeMount,
  309. onUnmounted,
  310. } from "vue";
  311. import { useRouter } from "vue-router";
  312. import { ElMessage, ElMessageBox } from "element-plus";
  313. import { Calendar } from "@element-plus/icons-vue";
  314. import vidiconsApi from "@/api/vidicons.js";
  315. import { dayjs } from "element-plus";
  316. import lodash from "lodash";
  317. import axios from "axios";
  318. import eds from "@/utils/eds.js";
  319. import { useStore } from "vuex";
  320. const store = useStore();
  321. const api = ref("");
  322. const router = useRouter();
  323. // 表格数据
  324. const loading = ref(false);
  325. const tableData = reactive({
  326. list: [
  327. // {
  328. // name: "张三",
  329. // phone: "15012589658",
  330. // icCard: "362502200202152356",
  331. // txnum: "5",
  332. // carNum: "赣K2536",
  333. // thing: "接人",
  334. // status: "1",
  335. // createTime: "2023-12-13 09:39:30",
  336. // comeTime: "2023-12-13 12:39:30",
  337. // interviewee: "张四",
  338. // intervieweeBM: "教师",
  339. // intervieweePhone: "13646865956",
  340. // },
  341. ],
  342. });
  343. const searchInput = reactive({
  344. keyWord: "",
  345. type: "0",
  346. createTime: "", // 创建时间
  347. visitorTime: "", // 来访时间
  348. }); // 搜索按钮数据
  349. const currentPage = ref(1); // 当前页
  350. const pageCount = ref(10);
  351. const total = ref(4); // 当前总数
  352. // 编辑功能
  353. const titleDialog = ref("");
  354. const editVisible = ref(false);
  355. const editRef = ref();
  356. const editRuleForm = reactive({
  357. userName: "", // 访客姓名
  358. userPhone: "", // 访客电话
  359. userNumber: "", // 访客证件号
  360. visitorTime: "", // 来访时间
  361. visitReason: "", // 访问事由
  362. carNum: "", //车牌号
  363. respondentName: "", //受访学生:
  364. respondent: "", // 受访学生号
  365. visitorType: "", // 访客类型
  366. id: "",
  367. });
  368. // 表单验证
  369. const editRules = reactive({
  370. userDepartment: [
  371. { required: true, message: "用户部门不能为空", trigger: "blur" },
  372. ],
  373. userName: [
  374. {
  375. required: true,
  376. message: "用户名不能为空",
  377. trigger: "blur",
  378. },
  379. ],
  380. userRoles: [
  381. {
  382. required: true,
  383. message: "用户角色不能为空",
  384. trigger: "blur",
  385. },
  386. ],
  387. schoolCard: [
  388. {
  389. required: true,
  390. message: "微校卡号不能为空",
  391. trigger: "blur",
  392. },
  393. ],
  394. idNumber: [
  395. {
  396. required: true,
  397. message: "身份证号不能为空",
  398. trigger: "blur",
  399. },
  400. ],
  401. fingerprint: [
  402. {
  403. required: true,
  404. message: "指纹不能为空",
  405. trigger: "blur",
  406. },
  407. ],
  408. });
  409. // 删除弹窗
  410. const selDelVisible = ref(false);
  411. // 预约记录分页数据
  412. const getList = async () => {
  413. // loading.value = true;
  414. let data = {
  415. currentPage: currentPage.value,
  416. pageCount: pageCount.value,
  417. type: searchInput.type, //
  418. keyWord: searchInput.keyWord,
  419. // managerId: sessionStorage.getItem("token"),
  420. };
  421. if (searchInput.createTime) {
  422. data.createStartTime = searchInput.createTime[0];
  423. data.createEndTime = searchInput.createTime[1];
  424. }
  425. if (searchInput.visitorTime) {
  426. data.visitorStartTime = searchInput.visitorTime[0];
  427. data.visitorEndTime = searchInput.visitorTime[1];
  428. }
  429. let res = await axios({
  430. method: "get",
  431. url: api.value + "/wanzai/api/smartVisitor/appointmentPageRecord",
  432. headers: {
  433. token: sessionStorage.getItem("token"),
  434. user_head: sessionStorage.getItem("userhead"),
  435. },
  436. params: data,
  437. });
  438. console.log(res, "预约记录");
  439. if (res.data.code == 200) {
  440. loading.value = false;
  441. tableData.list = JSON.parse(eds.decryptDes(res.data.data)).list;
  442. total.value = JSON.parse(eds.decryptDes(res.data.data)).totalCount;
  443. // ElMessage({
  444. // type: "success",
  445. // showClose: true,
  446. // message: res.data.message,
  447. // center: true,
  448. // });
  449. } else {
  450. // loading.value = false;
  451. ElMessage({
  452. type: "error",
  453. showClose: true,
  454. message: res.data.message,
  455. center: true,
  456. });
  457. }
  458. };
  459. // 搜索功能
  460. const searchBtn = lodash.debounce(async () => {
  461. getList();
  462. }, 300);
  463. //审核按钮 (-------------------------------------------)
  464. const editClick = async (row) => {
  465. // titleDialog.value = "编辑";
  466. editVisible.value = true;
  467. editRuleForm.userName = row.userName;
  468. editRuleForm.userPhone = row.userPhone;
  469. editRuleForm.userNumber = row.userNumber;
  470. editRuleForm.visitorTime = row.visitorTime;
  471. editRuleForm.visitReason = row.visitReason;
  472. editRuleForm.carNum = row.carNum;
  473. editRuleForm.respondentName = row.respondentName;
  474. editRuleForm.respondent = row.respondent;
  475. editRuleForm.visitorType = row.visitorType;
  476. editRuleForm.id = row.id;
  477. };
  478. const confirmEdit = async (flag) => {
  479. let data = {
  480. id: editRuleForm.id,
  481. type: flag,
  482. };
  483. let res = await axios({
  484. method: "get",
  485. url: api.value + "/wanzai/api/smartVisitor/examineRecord",
  486. headers: {
  487. token: sessionStorage.getItem("token"),
  488. user_head: sessionStorage.getItem("userhead"),
  489. },
  490. params: data,
  491. });
  492. console.log(res, "审核");
  493. if (res.data.code == 200) {
  494. editVisible.value = false;
  495. getList();
  496. ElMessage({
  497. type: "success",
  498. showClose: true,
  499. message: res.data.message,
  500. center: true,
  501. });
  502. } else {
  503. ElMessage({
  504. type: "error",
  505. showClose: true,
  506. message: res.data.message,
  507. center: true,
  508. });
  509. }
  510. };
  511. const cancelEdit = () => {
  512. editVisible.value = false;
  513. // editRef.value.resetFields();
  514. };
  515. //删除按钮
  516. const del = async (row) => {
  517. let data = {
  518. id: row.id,
  519. };
  520. let res = await axios({
  521. method: "get",
  522. url: api.value + "/wanzai/api/smartVisitor/deleteSmartVisitorById",
  523. headers: {
  524. token: sessionStorage.getItem("token"),
  525. user_head: sessionStorage.getItem("userhead"),
  526. },
  527. params: data,
  528. });
  529. if (res.data.code == 200) {
  530. if (tableData.list.length == 1 && currentPage.value != 1) {
  531. currentPage.value = currentPage.value - 1;
  532. }
  533. getList();
  534. ElMessage({
  535. type: "success",
  536. showClose: true,
  537. message: res.data.message,
  538. center: true,
  539. });
  540. } else {
  541. ElMessage({
  542. type: "error",
  543. showClose: true,
  544. message: res.data.message,
  545. center: true,
  546. });
  547. }
  548. };
  549. const cancelEvent = () => {};
  550. // 多选框功能
  551. const handleSelectionChange = (val) => {
  552. console.log(val);
  553. // selectData.list = val;
  554. };
  555. //导出功能
  556. // const importExcel = async () => {
  557. // if (searchInput.createTime == null) {
  558. // searchInput.createTime = "";
  559. // }
  560. // let data = new FormData();
  561. // data.set("car_number", searchInput.carnumber);
  562. // data.set("create_time", searchInput.createTime);
  563. // let res = await axios({
  564. // method: "post",
  565. // url: api.value + "/carBook/cinfotoExcel.action",
  566. // headers: {
  567. // token: sessionStorage.getItem("token"),
  568. // user_head: sessionStorage.getItem("userhead"),
  569. // },
  570. // data: data,
  571. // });
  572. // // console.log(res, "导出账号");
  573. // if (res.data.code == 200) {
  574. // // const elt = document.createElement("a");
  575. // // elt.setAttribute(
  576. // // "href",
  577. // // "https://chtech.ncjti.edu.cn/carstop" + res.data.downurl
  578. // // );
  579. // // elt.setAttribute("download", "file.png");
  580. // // elt.style.display = "none";
  581. // // document.body.appendChild(elt);
  582. // // elt.click();
  583. // var downloadPath = "https://chtech.ncjti.edu.cn/carstop" + res.data.downurl;
  584. // console.log("获得地址数据:", downloadPath);
  585. // var downloadLink = document.createElement("a");
  586. // downloadLink.style.display = "none"; // 使其隐藏
  587. // downloadLink.href = downloadPath;
  588. // downloadLink.download = "";
  589. // downloadLink.click();
  590. // document.body.appendChild(downloadLink);
  591. // document.body.removeChild(downloadLink);
  592. // ElMessage({
  593. // type: "success",
  594. // showClose: true,
  595. // message: res.data.message,
  596. // center: true,
  597. // });
  598. // } else {
  599. // ElMessage({
  600. // type: "error",
  601. // showClose: true,
  602. // message: res.data.message,
  603. // center: true,
  604. // });
  605. // }
  606. // };
  607. // 表格斑马纹颜色修改
  608. const tableRowClassName = ({ row, rowIndex }) => {
  609. if (rowIndex % 2 === 0) {
  610. return "even";
  611. } else if (rowIndex % 2 !== 0) {
  612. return "odd";
  613. }
  614. return "";
  615. };
  616. // 分页
  617. const handleCurrentChange = (value) => {
  618. // console.log(value);
  619. currentPage.value = value;
  620. getList();
  621. };
  622. onBeforeMount(async () => {
  623. api.value = store.state.user.api;
  624. getList();
  625. });
  626. onUnmounted(() => {
  627. // document.removeEventListener("keyup", Enters);
  628. });
  629. </script>
  630. <style scoped lang="scss">
  631. .content-box {
  632. min-width: 1000px;
  633. width: calc(100vw - 260px);
  634. height: calc(100vh - 105px);
  635. margin: 20px auto;
  636. background-color: #fff;
  637. color: #fff;
  638. display: flex;
  639. flex-direction: column;
  640. box-shadow: 0px 3px 10px rgba(0, 97, 255, 0.2);
  641. .left {
  642. // width: calc(100wh - 40px);
  643. display: flex;
  644. align-items: center;
  645. height: 60px;
  646. margin: 0 30px;
  647. border-bottom: 1px solid #ccc;
  648. color: rgb(0, 0, 0);
  649. font-size: 18px;
  650. font-weight: 600;
  651. .left_title {
  652. height: 60px;
  653. line-height: 60px;
  654. }
  655. }
  656. .scroll {
  657. overflow: auto;
  658. flex: 1;
  659. }
  660. .middle {
  661. width: calc(100% - 60px);
  662. margin: 0 auto;
  663. color: #000;
  664. // border-bottom: 1px solid rgb(231, 231, 231);
  665. .filter {
  666. display: flex;
  667. flex-wrap: wrap;
  668. align-items: center;
  669. .search {
  670. color: #fff;
  671. }
  672. .condition {
  673. display: flex;
  674. align-items: center;
  675. margin: 10px 25px 10px 0;
  676. :deep(.el-input .el-input__inner) {
  677. font-size: 14px;
  678. }
  679. span {
  680. margin: 0 10px 0 0;
  681. }
  682. }
  683. }
  684. .gongneng {
  685. margin: 10px 0 20px 0;
  686. }
  687. :deep(.cont) {
  688. width: 60%;
  689. margin: 20px auto;
  690. }
  691. :deep(.download) {
  692. display: flex;
  693. align-items: center;
  694. margin: 10px;
  695. }
  696. :deep(.download span) {
  697. font-size: 16px;
  698. margin-left: 20px;
  699. }
  700. :deep(.cont .el-button) {
  701. margin-left: 60px;
  702. margin-bottom: 30px;
  703. }
  704. :deep(.cont .accomplish) {
  705. width: 100%;
  706. display: flex;
  707. justify-content: center;
  708. }
  709. :deep(.cont .accomplish .el-button) {
  710. width: 50%;
  711. margin: 0;
  712. }
  713. }
  714. .footer {
  715. width: calc(100% - 60px);
  716. height: calc(100% - 80px);
  717. margin: 10px auto 20px;
  718. .el-table--fit {
  719. height: 100%;
  720. :deep(.el-table__header-wrapper) {
  721. background-color: #000;
  722. font-size: 14px;
  723. tr {
  724. // color: #000;
  725. }
  726. }
  727. :deep(.el-table__row):nth-child(2n) {
  728. // .el-table-fixed-column--left {
  729. // background-color: rgba(240, 243, 247, 1);
  730. // }
  731. // .el-table-fixed-column--right {
  732. // background-color: rgba(240, 243, 247, 1);
  733. // }
  734. td {
  735. background-color: rgba(240, 243, 247, 1);
  736. }
  737. }
  738. :deep(.el-table__row) {
  739. height: 50px;
  740. font-size: 14px;
  741. // color: #000;
  742. td {
  743. padding: 0;
  744. // border: 0;
  745. }
  746. &:hover {
  747. td {
  748. background-color: rgba(223, 236, 254, 1);
  749. }
  750. }
  751. }
  752. .el-button--primary {
  753. margin-left: 5px;
  754. }
  755. :deep(.el-table__body .even) {
  756. background-color: #fff;
  757. }
  758. :deep(.el-table__body .odd) {
  759. background-color: rgba(240, 243, 247, 1);
  760. // .el-table_1_column_1 {
  761. // background-color: rgba(240, 243, 247, 1);
  762. // }
  763. // .el-table_1_column_2 {
  764. // background-color: rgba(240, 243, 247, 1);
  765. // }
  766. }
  767. :deep(.edit) {
  768. display: flex;
  769. align-items: center;
  770. justify-content: center;
  771. color: rgba(111, 182, 184, 1);
  772. }
  773. :deep(.look) {
  774. padding: 0 10px;
  775. cursor: pointer;
  776. color: rgba(30, 125, 251, 1);
  777. }
  778. .del {
  779. padding: 0 10px;
  780. color: rgba(212, 48, 48, 1);
  781. cursor: pointer;
  782. }
  783. // :deep(.look):hover {
  784. // color: red;
  785. // }
  786. // :deep(.del):hover {
  787. // color: red;
  788. // }
  789. }
  790. }
  791. // 编辑按钮
  792. :deep(.editDialog) {
  793. // height: 420px;
  794. border-radius: 11px;
  795. .el-dialog__header {
  796. border-radius: 11px 11px 0 0;
  797. background: rgba(237, 241, 245, 1);
  798. font-weight: 600;
  799. margin: 0;
  800. .el-dialog__headerbtn {
  801. outline: none;
  802. }
  803. }
  804. .el-dialog__body {
  805. padding: 20px 30px;
  806. ul {
  807. margin: 0;
  808. padding: 0;
  809. li {
  810. list-style: none;
  811. color: #000;
  812. font-weight: 400;
  813. font-size: 16px;
  814. margin-bottom: 10px;
  815. }
  816. }
  817. .options {
  818. margin: 30px 20px 20px 0;
  819. width: 100%;
  820. display: flex;
  821. flex-direction: row-reverse;
  822. .queding {
  823. color: #fff;
  824. margin-left: 15px;
  825. }
  826. }
  827. }
  828. }
  829. // 注销账号
  830. :deep(.closeAccount) {
  831. // height: 600px;
  832. overflow: hidden;
  833. border-radius: 11px;
  834. .el-dialog__header {
  835. border-radius: 11px 11px 0 0;
  836. background: rgba(245, 249, 255, 1);
  837. font-weight: 600;
  838. height: 60px;
  839. padding: 0 20px;
  840. line-height: 60px;
  841. margin: 0;
  842. border-bottom: 1px solid rgba(230, 230, 230, 1);
  843. .el-dialog__headerbtn {
  844. outline: none;
  845. }
  846. }
  847. .el-dialog__body {
  848. padding: 0px 20px 20px 20px;
  849. // height: 200px;
  850. // display: flex;
  851. // flex-direction: column-reverse;
  852. .content {
  853. height: 80px;
  854. font-size: 16px;
  855. padding: 20px 30px;
  856. display: flex;
  857. img {
  858. width: 25px;
  859. height: 25px;
  860. margin: 0 8px 0 0;
  861. }
  862. }
  863. .option {
  864. display: flex;
  865. flex-direction: row-reverse;
  866. align-items: center;
  867. margin: 10px 0;
  868. .queding {
  869. margin-left: 20px;
  870. }
  871. }
  872. }
  873. }
  874. .pageSize {
  875. display: flex;
  876. align-items: center;
  877. justify-content: space-between;
  878. margin: 0 30px;
  879. span {
  880. color: #000;
  881. }
  882. .el-pagination {
  883. // width: 1600px;
  884. :deep(.el-pagination__total) {
  885. color: #000;
  886. }
  887. :deep(.el-pagination__goto) {
  888. color: #000;
  889. }
  890. :deep(.el-pagination__classifier) {
  891. color: #000;
  892. }
  893. :deep(.el-input__wrapper) {
  894. border: 1px solid rgba(0, 0, 0, 1);
  895. border-radius: 5px;
  896. box-shadow: none;
  897. }
  898. :deep(.el-pager li) {
  899. margin: 0 5px;
  900. border: 1px solid rgba(0, 0, 0, 1);
  901. border-radius: 5px;
  902. background-color: transparent;
  903. }
  904. :deep(.el-pager li.is-active) {
  905. // background-color: rgba(0, 97, 255, 0.8);
  906. border: 1px solid rgba(0, 97, 255, 1);
  907. color: rgba(0, 97, 255, 1);
  908. }
  909. :deep(.btn-prev) {
  910. margin-right: 5px;
  911. border: 1px solid rgba(0, 0, 0, 1);
  912. border-radius: 5px;
  913. background-color: transparent;
  914. }
  915. :deep(.btn-next) {
  916. margin-left: 5px;
  917. border: 1px solid rgba(0, 0, 0, 1);
  918. border-radius: 5px;
  919. background-color: transparent;
  920. }
  921. }
  922. }
  923. }
  924. .el-input {
  925. width: 192px;
  926. }
  927. </style>