index.vue 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814
  1. <template>
  2. <div class="app-container">
  3. <el-row type="flex" justify="space-between" style="margin-bottom: 20px">
  4. <!-- 查询表单 -->
  5. <div class="grid-content bg-purple">
  6. <el-input
  7. v-model="formData.name"
  8. placeholder="合同名称/编号,承兑人,出票人名称"
  9. clearable
  10. style="width: 300px"
  11. @change="Search"
  12. >
  13. <i slot="prefix" class="el-input__icon el-icon-search" />
  14. </el-input>
  15. </div>
  16. <!-- 供应商查询 -->
  17. <div v-if="isOpenSupplierName" class="grid-content bg-purple">
  18. <el-input
  19. v-model="formData.supplierName"
  20. placeholder="请输入供应商名称"
  21. clearable
  22. style="width: 180px"
  23. @change="searchName"
  24. >
  25. <i slot="prefix" class="el-input__icon el-icon-search" />
  26. </el-input>
  27. </div>
  28. <!-- 合同状态 -->
  29. <div class="grid-content bg-purple">
  30. <el-dropdown @command="handleCommand">
  31. <div class="pulldown">
  32. <span v-if="!status" class="el-dropdown-link"> 合同状态 </span>
  33. <span v-if="status" class="el-dropdown-link">
  34. {{ status }}
  35. </span>
  36. <i class="el-icon-arrow-down el-icon--right" />
  37. </div>
  38. <el-dropdown-menu slot="dropdown">
  39. <el-dropdown-item command="全部">全部</el-dropdown-item>
  40. <el-dropdown-item command="正常">正常</el-dropdown-item>
  41. <el-dropdown-item command="删除">删除</el-dropdown-item>
  42. </el-dropdown-menu>
  43. </el-dropdown>
  44. </div>
  45. <!-- 汇票状态 -->
  46. <div class="grid-content bg-purple">
  47. <el-dropdown @command="handlehpCommand">
  48. <div class="pulldown">
  49. <span v-if="!hpstatus" class="el-dropdown-link"> 汇票状态 </span>
  50. <span v-if="hpstatus" class="el-dropdown-link">
  51. {{ hpstatus }}
  52. </span>
  53. <i class="el-icon-arrow-down el-icon--right" />
  54. </div>
  55. <el-dropdown-menu slot="dropdown">
  56. <el-dropdown-item command="全部">全部</el-dropdown-item>
  57. <el-dropdown-item command="待审核">待审核</el-dropdown-item>
  58. <el-dropdown-item command="成功">成功</el-dropdown-item>
  59. <el-dropdown-item command="失败">失败</el-dropdown-item>
  60. </el-dropdown-menu>
  61. </el-dropdown>
  62. </div>
  63. <!-- 合同审核状态 -->
  64. <div class="grid-content bg-purple">
  65. <el-dropdown @command="handleCommandAuditstatus">
  66. <div class="pulldown">
  67. <span v-if="!Auditstatus" class="el-dropdown-link">
  68. 合同审核状态
  69. </span>
  70. <span v-if="Auditstatus" class="el-dropdown-link">
  71. {{ Auditstatus }}
  72. </span>
  73. <i class="el-icon-arrow-down el-icon--right" />
  74. </div>
  75. <el-dropdown-menu slot="dropdown">
  76. <el-dropdown-item command="全部">全部</el-dropdown-item>
  77. <el-dropdown-item command="待审核">待审核</el-dropdown-item>
  78. <el-dropdown-item command="成功">成功</el-dropdown-item>
  79. <el-dropdown-item command="失败">失败</el-dropdown-item>
  80. </el-dropdown-menu>
  81. </el-dropdown>
  82. </div>
  83. <!-- 日期查询 -->
  84. <div class="grid-content bg-purple">
  85. <div class="block">
  86. <el-date-picker
  87. v-model="value2"
  88. type="daterange"
  89. align="right"
  90. unlink-panels
  91. range-separator="至"
  92. start-placeholder="开始日期"
  93. end-placeholder="结束日期"
  94. :picker-options="pickerOptions"
  95. value-format="yyyy-MM-dd"
  96. @change="startEndTime"
  97. />
  98. </div>
  99. </div>
  100. </el-row>
  101. <el-table
  102. v-loading="listLoading"
  103. :data="temporaryList"
  104. element-loading-text="Loading"
  105. border
  106. fit
  107. highlight-current-row
  108. @select="handleSelectionChange"
  109. @select-all="handleAll"
  110. >
  111. <el-table-column align="center" label="" width="55" type="selection" />
  112. <el-table-column label="合同名称" align="center" prop="name" />
  113. <el-table-column
  114. label="合同编号"
  115. align="center"
  116. prop="contractNo"
  117. width="155"
  118. />
  119. <el-table-column
  120. label="供应商名称"
  121. align="center"
  122. prop="supplierName"
  123. width="100"
  124. />
  125. <el-table-column
  126. label="承兑人名称"
  127. align="center"
  128. prop="acceptorName"
  129. width="100"
  130. />
  131. <el-table-column
  132. label="出票人名称"
  133. align="center"
  134. prop="drawersName"
  135. width="100"
  136. />
  137. <el-table-column label="汇票状态" align="center" prop="draftStatusText" />
  138. <el-table-column
  139. label="合同状态"
  140. align="center"
  141. prop="contractStatusText"
  142. />
  143. <el-table-column
  144. class-name="status-col"
  145. label="合同审核状态"
  146. align="center"
  147. prop="statusText"
  148. width="120"
  149. />
  150. <el-table-column
  151. align="center"
  152. label="上传日期"
  153. prop="createdAt"
  154. width="155"
  155. />
  156. <el-table-column
  157. align="center"
  158. prop="created_at"
  159. label="操作"
  160. width="250"
  161. >
  162. <template slot-scope="scope">
  163. <el-tag
  164. type="primary"
  165. style="cursor: pointer"
  166. @click="tapDetail(scope.row.id)"
  167. >查看详情</el-tag
  168. >
  169. &nbsp;<el-tag
  170. v-permission="['salesman', 'admin']"
  171. type="success"
  172. style="cursor: pointer"
  173. v-if="scope.row.status == 0"
  174. @click="Ssuccessed(scope.row.id)"
  175. >
  176. 审核成功</el-tag
  177. >
  178. &nbsp;<el-tag
  179. v-permission="['salesman', 'admin']"
  180. type="danger"
  181. style="cursor: pointer"
  182. v-if="scope.row.status == 0"
  183. @click="Sfailed(scope.row.id)"
  184. >审核失败
  185. </el-tag>
  186. &nbsp;<el-tag
  187. v-permission="['supplier']"
  188. type="danger"
  189. style="cursor: pointer"
  190. v-show="scope.row.status == 2"
  191. @click="editNewContract(scope.row)"
  192. >重新提交
  193. </el-tag>
  194. </template>
  195. </el-table-column>
  196. </el-table>
  197. <div style="display: flex; justify-content: space-between">
  198. <el-row type="flex" justify="space-between">
  199. <div class="btn" style="display: flex; justify-content: flex-end">
  200. <el-button
  201. v-permission="['supplier']"
  202. type="primary"
  203. @click="addNewContract"
  204. >上传合同</el-button
  205. >
  206. <el-button
  207. v-permission="['salesman', 'admin']"
  208. type="primary"
  209. @click="successed"
  210. >审核成功</el-button
  211. >
  212. <el-button
  213. v-permission="['salesman', 'admin']"
  214. type="primary"
  215. @click="failed"
  216. >审核失败</el-button
  217. >
  218. <el-button type="primary" @click="Exports">全部导出</el-button>
  219. <el-button type="primary" @click="batchExports">批量导出</el-button>
  220. <el-button type="success" @click="recover">恢复</el-button>
  221. <el-button type="danger" @click="deleted">删除</el-button>
  222. </div>
  223. </el-row>
  224. <div class="pagesip">
  225. <el-button
  226. type="primary"
  227. size="small"
  228. style="
  229. background-color: #d8ab5a;
  230. border-color: #d8ab5a;
  231. margin: 0 20px;
  232. "
  233. @click="jumpFirstPage"
  234. >首页
  235. </el-button>
  236. <el-pagination
  237. ref="pagination"
  238. background
  239. layout="total,prev, pager, next"
  240. :total="total"
  241. :page-size="pagesize"
  242. :current-page="currentPage"
  243. prev-text="上一页"
  244. next-text="下一页"
  245. @current-change="handleCurrentChange"
  246. />
  247. <el-button
  248. type="primary"
  249. size="small"
  250. style="
  251. background-color: #d8ab5a;
  252. border-color: #d8ab5a;
  253. margin: 0 20px;
  254. "
  255. @click="jumpLastPage"
  256. >尾页
  257. </el-button>
  258. </div>
  259. </div>
  260. </div>
  261. </template>
  262. <script>
  263. import { dataConversionUtil } from "../../utils/Excel.js";
  264. import { contractsPageApi } from "@/api/contracts";
  265. import { mapGetters } from "vuex";
  266. export default {
  267. filters: {
  268. statusFilter(status) {
  269. const statusMap = {
  270. published: "success",
  271. draft: "gray",
  272. deleted: "danger",
  273. };
  274. return statusMap[status];
  275. },
  276. },
  277. computed: {
  278. ...mapGetters(["roles"]),
  279. },
  280. data() {
  281. return {
  282. // 表单数据
  283. formData: {
  284. startTime: "",
  285. endTime: "",
  286. name: "", // 合同名称
  287. contractNo: "", // 合同编码
  288. supplierName: "", // 供应商
  289. acceptorName: "", // 承兑人
  290. contractStatusText: "", // 合同状态
  291. contractStatus: "",
  292. draftStatus: "",
  293. },
  294. isOpenSupplierName: false, //是否显示供应商查询
  295. srcList: [],
  296. list: [],
  297. /* 表格数据 */
  298. temporaryList: [],
  299. /* 总条数 */
  300. total: 20,
  301. listLoading: false,
  302. status: "",
  303. hpstatus: "",
  304. Auditstatus: "",
  305. exportExcel: [], //导出数据
  306. search: "",
  307. /* 当前页数 */
  308. currentPage: 1,
  309. /* 每页显示个数 */
  310. pagesize: 10,
  311. checked: "",
  312. pickerOptions: {
  313. shortcuts: [
  314. {
  315. text: "最近一周",
  316. onClick(picker) {
  317. const end = new Date();
  318. const start = new Date();
  319. start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
  320. picker.$emit("pick", [start, end]);
  321. },
  322. },
  323. {
  324. text: "最近一个月",
  325. onClick(picker) {
  326. const end = new Date();
  327. const start = new Date();
  328. start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
  329. picker.$emit("pick", [start, end]);
  330. },
  331. },
  332. {
  333. text: "最近三个月",
  334. onClick(picker) {
  335. const end = new Date();
  336. const start = new Date();
  337. start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
  338. picker.$emit("pick", [start, end]);
  339. },
  340. },
  341. ],
  342. },
  343. value2: "",
  344. exportExcelData1: [], //导出列表缓存数据整页
  345. exportExcelData2: [], //导出列表缓存数据单选
  346. };
  347. },
  348. mounted() {
  349. this.checked = this.$store.state.user.checked;
  350. this.getData();
  351. //是否显示供应商查询
  352. this.getSupplierName();
  353. },
  354. methods: {
  355. /* ajax发请求获取列表数据 */
  356. getData(searchForm = {}) {
  357. const params = {
  358. pageIndex: this.currentPage,
  359. pageSize: this.pagesize,
  360. };
  361. contractsPageApi({ ...params, ...searchForm }).then((res) => {
  362. const { data } = res;
  363. this.filter = params;
  364. this.temporaryList = data.result;
  365. this.srcList = data.result;
  366. this.total = res.data.total;
  367. });
  368. },
  369. addNewContract() {
  370. this.$router.push({
  371. path: "contracts/addcontract",
  372. });
  373. },
  374. editNewContract(row) {
  375. this.$router.push({
  376. path: "contracts/addcontract?id=" + row.id,
  377. });
  378. },
  379. tapDetail(id) {
  380. console.log(id);
  381. this.$router.push({
  382. path: "/detail",
  383. query: {
  384. id: id,
  385. },
  386. });
  387. },
  388. successed() {
  389. // let successed = this.list.filter(item => item.id === id)
  390. const ids = Array.from(this.multipleSelection, ({ id }) => id);
  391. this.$request({
  392. url: "/api/Contract/manage",
  393. method: "post",
  394. data: {
  395. ids: ids,
  396. operateType: 3,
  397. },
  398. }).then((res) => {
  399. if (res.code === 200) {
  400. this.$message({
  401. type: "success",
  402. message: res.msg,
  403. });
  404. this.getData();
  405. } else {
  406. this.$message({
  407. type: "danger",
  408. message: res.msg,
  409. });
  410. this.getData();
  411. }
  412. });
  413. },
  414. Ssuccessed(id) {
  415. this.$request({
  416. url: "/api/Contract/manage",
  417. method: "post",
  418. data: {
  419. ids: [id],
  420. operateType: 3,
  421. },
  422. }).then((res) => {
  423. if (res.code === 200) {
  424. this.$message({
  425. type: "success",
  426. message: res.msg,
  427. });
  428. this.getData();
  429. } else {
  430. this.$message({
  431. type: "danger",
  432. message: res.msg,
  433. });
  434. this.getData();
  435. }
  436. });
  437. },
  438. failed() {
  439. const ids = Array.from(this.multipleSelection, ({ id }) => id);
  440. this.$request({
  441. url: "/api/Contract/manage",
  442. method: "post",
  443. data: {
  444. ids: ids,
  445. operateType: 4,
  446. },
  447. }).then((res) => {
  448. if (res.code === 200) {
  449. this.$message({
  450. type: "success",
  451. message: res.msg,
  452. });
  453. this.getData();
  454. } else {
  455. this.$message({
  456. type: "danger",
  457. message: res.msg,
  458. });
  459. this.getData();
  460. }
  461. });
  462. },
  463. Sfailed(id) {
  464. this.$request({
  465. url: "/api/Contract/manage",
  466. method: "post",
  467. data: {
  468. ids: [id],
  469. operateType: 4,
  470. },
  471. }).then((res) => {
  472. if (res.code === 200) {
  473. this.$message({
  474. type: "success",
  475. message: res.msg,
  476. });
  477. this.getData();
  478. } else {
  479. this.$message({
  480. type: "danger",
  481. message: res.msg,
  482. });
  483. this.getData();
  484. }
  485. });
  486. },
  487. recover(id) {
  488. const ids = Array.from(this.multipleSelection, ({ id }) => id);
  489. this.$request({
  490. url: "/api/Contract/manage",
  491. method: "post",
  492. data: {
  493. ids: ids,
  494. operateType: 2,
  495. },
  496. }).then((res) => {
  497. if (res.code === 200) {
  498. this.$message({
  499. type: "success",
  500. message: res.msg,
  501. });
  502. this.getData();
  503. } else {
  504. this.$message({
  505. type: "danger",
  506. message: res.msg,
  507. });
  508. this.getData();
  509. }
  510. });
  511. },
  512. deleted() {
  513. const ids = Array.from(this.multipleSelection, ({ id }) => id);
  514. this.$request({
  515. url: "/api/Contract/manage",
  516. method: "post",
  517. data: {
  518. ids: ids,
  519. operateType: 1,
  520. },
  521. }).then((res) => {
  522. if (res.code === 200) {
  523. this.$message({
  524. type: "success",
  525. message: res.msg,
  526. });
  527. this.getData();
  528. } else {
  529. this.$message({
  530. type: "danger",
  531. message: res.msg,
  532. });
  533. this.getData();
  534. }
  535. });
  536. },
  537. // 合同状态查询
  538. handleCommand(command) {
  539. this.status = command;
  540. if (command === "正常") {
  541. this.formData.contractStatus = 2;
  542. }
  543. if (command === "删除") {
  544. this.formData.contractStatus = 1;
  545. }
  546. if (command === "全部") {
  547. this.formData.contractStatus = 0;
  548. }
  549. this.currentPage = 1;
  550. this.searchForm = { ...this.formData };
  551. this.getData(this.searchForm);
  552. },
  553. // 汇票状态查询
  554. handlehpCommand(command) {
  555. this.hpstatus = command;
  556. if (command === "全部") {
  557. this.formData.draftStatus = 0;
  558. }
  559. if (command === "待审核") {
  560. this.formData.draftStatus = 1;
  561. }
  562. if (command === "成功") {
  563. this.formData.draftStatus = 2;
  564. }
  565. if (command === "失败") {
  566. this.formData.draftStatus = 3;
  567. }
  568. if (command === "删除") {
  569. this.formData.draftStatus = 4;
  570. }
  571. this.currentPage = 1;
  572. this.searchForm = { ...this.formData };
  573. this.getData(this.searchForm);
  574. },
  575. // 合同审核状态查询
  576. handleCommandAuditstatus(command) {
  577. this.Auditstatus = command;
  578. if (command === "全部") {
  579. this.formData.approveStatus = 0;
  580. }
  581. if (command === "待审核") {
  582. this.formData.approveStatus = 1;
  583. }
  584. if (command === "成功") {
  585. this.formData.approveStatus = 2;
  586. }
  587. if (command === "失败") {
  588. this.formData.approveStatus = 3;
  589. }
  590. this.currentPage = 1;
  591. this.searchForm = { ...this.formData };
  592. this.getData(this.searchForm);
  593. },
  594. // 日期审核状态查询
  595. startEndTime(item) {
  596. if (item == null) {
  597. item = [];
  598. this.formData.startTime = "";
  599. this.formData.endTime = "";
  600. this.currentPage = 1;
  601. this.searchForm = { ...this.formData };
  602. this.getData(this.searchForm);
  603. } else {
  604. this.formData.startTime = this.value2[0];
  605. this.formData.endTime = this.value2[1];
  606. this.currentPage = 1;
  607. this.searchForm = { ...this.formData };
  608. this.getData(this.searchForm);
  609. }
  610. },
  611. // 合同名称/编号/承兑人名称/出票查询
  612. Search() {
  613. this.currentPage = 1;
  614. this.searchForm = { ...this.formData };
  615. this.getData(this.searchForm);
  616. },
  617. // 供应商查询
  618. searchName() {
  619. this.currentPage = 1;
  620. this.searchForm = { ...this.formData };
  621. this.getData(this.searchForm);
  622. },
  623. //是否显示供应商查询
  624. getSupplierName() {
  625. console.log(this.roles);
  626. if (this.roles[0] === "admin") {
  627. this.isOpenSupplierName = true;
  628. } else if (this.roles[0] === "salesman") {
  629. this.isOpenSupplierName = true;
  630. } else {
  631. this.isOpenSupplierName = false;
  632. }
  633. },
  634. /* 分页功能,改变当前页 */
  635. handleCurrentChange(val) {
  636. this.currentPage = val;
  637. this.getData(this.searchForm);
  638. },
  639. /* 分页功能:去首页 */
  640. jumpFirstPage() {
  641. this.$refs.pagination.handleCurrentChange(1);
  642. this.$emit("handleCurrentChange", 1);
  643. },
  644. /* 分页功能:去尾页 */
  645. jumpLastPage() {
  646. const font = this.$refs.pagination;
  647. const cpage = Math.ceil(font.total / font.pageSize);
  648. font.handleCurrentChange(cpage);
  649. },
  650. /* 批量导出数据 */
  651. handleSelectionChange(data) {
  652. this.multipleSelection=data
  653. this.exportExcelData1.push(data);
  654. this.exportExcelData2 = [
  655. ...new Set(this.exportExcelData1.flat(Infinity)),
  656. ];
  657. },
  658. handleAll(data) {
  659. this.multipleSelection=data
  660. this.exportExcelData1.push(data);
  661. },
  662. /* 批量导出合同列表 */
  663. batchExports() {
  664. this.exportExcel =
  665. [...new Set(this.exportExcelData1.flat(Infinity))] ||
  666. this.exportExcelData2;
  667. if (this.exportExcel == "") {
  668. this.$message({
  669. type: "warning",
  670. message: "请选择数据!",
  671. });
  672. } else {
  673. var tableHeader = [
  674. [
  675. "序号",
  676. "合同名称",
  677. "合同编号",
  678. "承兑人",
  679. "出票人",
  680. "汇票状态",
  681. "合同状态",
  682. "审核状态",
  683. "时间",
  684. ],
  685. ];
  686. var dataList = [];
  687. this.exportExcel.forEach((item, index) => {
  688. dataList.push([
  689. index + 1,
  690. item.name,
  691. item.contractNo,
  692. item.acceptorName,
  693. item.drawersName,
  694. item.draftStatusText,
  695. item.contractStatusText,
  696. item.statusText,
  697. item.createdAt,
  698. ]);
  699. });
  700. dataConversionUtil.dataToExcel("合同列表", tableHeader, dataList);
  701. this.$message.success("导出成功!");
  702. }
  703. },
  704. /* 全部导出合同列表数据 */
  705. getContacts() {
  706. const data = {
  707. pageIndex: "",
  708. pageSize: -1,
  709. startTime: "",
  710. endTime: "",
  711. name: "",
  712. contractStatus: "",
  713. approveStatus: "",
  714. draftStatus: "",
  715. supplierId: "",
  716. };
  717. contractsPageApi({ ...data }).then((res) => {
  718. const { result } = res.data;
  719. this.exportExcel = result;
  720. });
  721. },
  722. /* 全部导出 */
  723. Exports() {
  724. this.getContacts();
  725. setTimeout(() => {
  726. var tableHeader = [
  727. [
  728. "序号",
  729. "合同名称",
  730. "合同编号",
  731. "承兑人",
  732. "出票人",
  733. "汇票状态",
  734. "合同状态",
  735. "审核状态",
  736. "时间",
  737. ],
  738. ];
  739. var dataList = [];
  740. this.exportExcel.forEach((item, index) => {
  741. dataList.push([
  742. index + 1,
  743. item.name,
  744. item.contractNo,
  745. item.acceptorName,
  746. item.drawersName,
  747. item.draftStatusText,
  748. item.contractStatusText,
  749. item.statusText,
  750. item.createdAt,
  751. ]);
  752. });
  753. dataConversionUtil.dataToExcel("合同列表", tableHeader, dataList);
  754. this.$message.success("导出成功!");
  755. this.exportExcel = [];
  756. }, 1000);
  757. },
  758. },
  759. };
  760. </script>
  761. <style lang="scss" scoped>
  762. .pulldown {
  763. width: 185px;
  764. height: 40px;
  765. border: 1px solid #e8e8e8;
  766. border-radius: 10px;
  767. display: flex;
  768. justify-content: center;
  769. align-items: center;
  770. justify-content: space-between;
  771. padding: 0 20px;
  772. color: #999999;
  773. }
  774. .pagesip {
  775. width: 100%;
  776. margin: 20px auto;
  777. padding-right: 50px;
  778. display: flex;
  779. // align-items: center;
  780. justify-content: flex-end;
  781. }
  782. .el-pagination.is-background .el-pager li:not(.disabled).active {
  783. background-color: #d8ab5a;
  784. }
  785. .el-col {
  786. margin-bottom: 20px;
  787. }
  788. .btn {
  789. padding: 20px;
  790. }
  791. </style>