index.vue 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858
  1. <template>
  2. <div>
  3. <basic-container v-show="isShow">
  4. <avue-crud :option="option" :table-loading="loading" :data="data" :page.sync="page" :permission="permissionList"
  5. :before-open="beforeOpen" v-model="form" ref="crud" id="out-table" :header-cell-class-name="headerClassName"
  6. @row-update="rowUpdate" @row-save="rowSave" @row-del="rowDel" @search-change="searchChange"
  7. @search-reset="searchReset" @selection-change="selectionChange" @current-change="currentChange"
  8. @size-change="sizeChange" @refresh-change="refreshChange" :search.sync="query"
  9. @resetColumn="resetColumnTwo('crud', 'option', 'optionBack', 318)"
  10. @saveColumn="saveColumnTwo('crud', 'option', 'optionBack', 318)" @on-load="onLoad">
  11. <template slot="menuLeft">
  12. <el-button type="success" size="small" icon="el-icon-plus" plain @click="newbillFun">新建发票
  13. </el-button>
  14. <el-button type="danger" size="small" icon="el-icon-delete" plain @click="handleDelete">一键删除
  15. </el-button>
  16. </template>
  17. <template slot="menu" slot-scope="{row}">
  18. <el-button type="text" size="small" @click="editFun(row)">编辑
  19. </el-button>
  20. <el-button type="text" size="small"
  21. :disabled="saberUserInfo.role_name.indexOf('admin') == -1 ? saberUserInfo.role_name.indexOf('允许修改他人业务') == -1 ? saberUserInfo.user_id != row.createUser : false : false"
  22. @click="rowDel(row)">删除
  23. </el-button>
  24. </template>
  25. <template slot-scope="scope" slot="stlMode">
  26. <span>{{ scope.row.stlMode ? '月结' : '票结' }}</span>
  27. </template>
  28. <template slot-scope="{ row }" slot="billDate">
  29. {{ row.billDate ? row.billDate.slice(0, 10) : '' }}
  30. </template>
  31. <template slot-scope="{ row }" slot="invoiceDate">
  32. {{ row.invoiceDate ? row.invoiceDate.slice(0, 10) : '' }}
  33. </template>
  34. <template slot-scope="{ row }" slot="billNo">
  35. <span class="pointerClick" @click="editFun(row)">{{ row.billNo }}
  36. </span>
  37. </template>
  38. <tempalte slot="feeCnNameSearch">
  39. <dic-select v-model="query.feeCnName" placeholder="费用名称" key="id" label="cnName" res="records"
  40. url="/blade-los/bfees/list" :filterable="true" :remote="true" dataName="cnName" multiple></dic-select>
  41. </tempalte>
  42. </avue-crud>
  43. </basic-container>
  44. <fininvoicesDetails ref="fininvoicesDetails" :editSave="editSave" v-if="!isShow" @goBack="goBack"
  45. @toAddEdit="toAddEdit" :key="datekey">
  46. </fininvoicesDetails>
  47. </div>
  48. </template>
  49. <script>
  50. import {
  51. fininvoicesList,
  52. fininvoicesDetail,
  53. fininvoicesRemove, fininvoicesSubmit
  54. } from "@/api/iosBasicData/fininvoices";
  55. import fininvoicesDetails from "@/views/iosBasicData/fininvoices/fininvoicesDetails.vue";
  56. import { mapGetters } from "vuex";
  57. import dicSelect from "@/components/dicSelect/main";
  58. export default {
  59. components: { fininvoicesDetails, dicSelect },
  60. data() {
  61. return {
  62. datekey: Date.now(),
  63. // 详情页面和列表切换
  64. isShow: true,
  65. editSave: false, // 编辑还是保存
  66. form: {},
  67. query: {},
  68. loading: true,
  69. page: {
  70. pageSize: 10,
  71. currentPage: 1,
  72. total: 0
  73. },
  74. selectionList: [],
  75. option: {},
  76. optionBack: {
  77. height: 'auto',
  78. calcHeight: 30,
  79. tip: false,
  80. searchShow: true,
  81. searchMenuSpan: 24,
  82. border: true,
  83. index: true,
  84. viewBtn: true,
  85. selection: true,
  86. dialogClickModal: false,
  87. menuWidth: 100,
  88. column: [
  89. {
  90. label: "单据编号",
  91. prop: "billNo",
  92. search: true,
  93. overHidden: true,
  94. },
  95. {
  96. label: "单据日期",
  97. prop: "billDate",
  98. overHidden: true,
  99. },
  100. {
  101. label: "发票日期",
  102. prop: "invoiceDate",
  103. overHidden: true,
  104. },
  105. // {
  106. // label: "单据开始日期",
  107. // prop: "invoiceDateStart",
  108. // search: true,
  109. // overHidden: true,
  110. // hide: true,
  111. // searchLabelWidth: "100",
  112. // type: "date",
  113. // format: "yyyy-MM-dd",
  114. // valueFormat: "yyyy-MM-dd HH:mm:ss",
  115. // },
  116. // {
  117. // label: "单据结束日期",
  118. // prop: "invoiceDateEnd",
  119. // search: true,
  120. // overHidden: true,
  121. // hide: true,
  122. // searchLabelWidth: "100",
  123. // type: "date",
  124. // format: "yyyy-MM-dd",
  125. // valueFormat: "yyyy-MM-dd HH:mm:ss",
  126. // },
  127. {
  128. label: "开票日期",
  129. prop: "date",
  130. search: true,
  131. overHidden: true,
  132. hide: true,
  133. // searchLabelWidth: "100",
  134. type: "date",
  135. searchProp: "dateList",
  136. unlinkPanels: true,
  137. searchRange: true,
  138. format: "yyyy-MM-dd",
  139. valueFormat: "yyyy-MM-dd HH:mm:ss",
  140. searchDefaultTime: ["00:00:00", "23:59:59"],
  141. },
  142. {
  143. label: "发票号码",
  144. prop: "invoiceNo",
  145. search: true,
  146. overHidden: true,
  147. },
  148. {
  149. label: "原发票号码",
  150. prop: "origInvoiceNo",
  151. width: 120,
  152. overHidden: true,
  153. },
  154. {
  155. label: "税务发票号码",
  156. prop: "taxInvoiceNo",
  157. width: 150,
  158. overHidden: true,
  159. },
  160. {
  161. label: "全电发票",
  162. prop: "invType",
  163. overHidden: true,
  164. },
  165. {
  166. label: "普通发票/专用发票",
  167. prop: "taxType",
  168. width: 160,
  169. overHidden: true,
  170. },
  171. {
  172. label: "税率 %",
  173. prop: "taxRate",
  174. overHidden: true,
  175. },
  176. {
  177. label: "结算方式",
  178. prop: "stlMode",
  179. overHidden: true,
  180. },
  181. {
  182. label: "发票币种",
  183. prop: "invCurCode",
  184. overHidden: true,
  185. },
  186. {
  187. label: "客户名称",
  188. prop: "corpCnName",
  189. search: true,
  190. width: 120,
  191. searchOrder: 1,
  192. overHidden: true,
  193. },
  194. {
  195. label: "费用名称",
  196. prop: "feeCnName",
  197. width: "140",
  198. search: true,
  199. overHidden: true,
  200. },
  201. {
  202. label: "JOB NO",
  203. prop: "businessNo",
  204. width: "120",
  205. search: true,
  206. searchOrder: 3,
  207. overHidden: true
  208. },
  209. {
  210. label: "ACCT NO",
  211. prop: "accountNo",
  212. width: "100",
  213. search: true,
  214. searchOrder: 5,
  215. overHidden: true
  216. },
  217. {
  218. label: "MB/L NO",
  219. prop: "mblno",
  220. search: true,
  221. searchOrder: 2,
  222. overHidden: true
  223. },
  224. {
  225. label: "HB/L NO",
  226. prop: "hblno",
  227. search: true,
  228. searchOrder: 4,
  229. overHidden: true
  230. },
  231. {
  232. label: "对账单号",
  233. prop: "checkNo",
  234. search: true,
  235. width: "100",
  236. searchOrder: 6,
  237. overHidden: true
  238. },
  239. {
  240. label: "船名",
  241. prop: "vesselCnName",
  242. search: true,
  243. searchOrder: 7,
  244. overHidden: true
  245. },
  246. {
  247. label: "航次",
  248. prop: "voyageNo",
  249. search: true,
  250. searchOrder: 8,
  251. overHidden: true
  252. },
  253. {
  254. label: "客户英文名称",
  255. prop: "corpEnName",
  256. width: 120,
  257. overHidden: true,
  258. },
  259. {
  260. label: "客户开票单位名称",
  261. prop: "corpInvoiceHeader",
  262. width: 150,
  263. overHidden: true,
  264. },
  265. {
  266. label: "开票单位中文名称",
  267. prop: "invCorpCnName",
  268. width: 160,
  269. overHidden: true,
  270. },
  271. {
  272. label: "开票单位英文名称",
  273. prop: "invCorpEnName",
  274. width: 150,
  275. overHidden: true,
  276. },
  277. {
  278. label: "开票单位税号",
  279. prop: "invCorpTaxNo",
  280. width: 140,
  281. overHidden: true,
  282. },
  283. {
  284. label: "开票单位CNY开户银行",
  285. prop: "invCorpAccountBankCny",
  286. width: 160,
  287. overHidden: true,
  288. },
  289. {
  290. label: "开票单位CNY银行账号",
  291. prop: "invCorpAccountNoCny",
  292. width: 160,
  293. overHidden: true,
  294. },
  295. {
  296. label: "开票单位USD开户银行",
  297. prop: "invCorpAccountBankUsd",
  298. width: 160,
  299. overHidden: true,
  300. },
  301. {
  302. label: "开票单位USD银行账号",
  303. prop: "invCorpAccountNoUsd",
  304. width: 160,
  305. overHidden: true,
  306. },
  307. {
  308. label: "船名/航次",
  309. prop: "vesselVoyno",
  310. width: 100,
  311. overHidden: true,
  312. },
  313. {
  314. label: "开船日",
  315. prop: "etd",
  316. overHidden: true,
  317. },
  318. {
  319. label: "装货港",
  320. prop: "pol",
  321. overHidden: true,
  322. },
  323. {
  324. label: "卸货港",
  325. prop: "pod",
  326. overHidden: true,
  327. },
  328. {
  329. label: "目的地",
  330. prop: "destination",
  331. overHidden: true,
  332. },
  333. {
  334. label: "箱型/箱量",
  335. prop: "containers",
  336. width: 100,
  337. overHidden: true,
  338. },
  339. {
  340. label: "币种",
  341. prop: "curCode",
  342. overHidden: true,
  343. },
  344. {
  345. label: "原汇率",
  346. prop: "exrate",
  347. overHidden: true,
  348. },
  349. {
  350. label: "是否转换为人民币",
  351. prop: "isExchangeToCny",
  352. width: 140,
  353. dicData: [{
  354. label: '否',
  355. value: 0
  356. }, {
  357. label: '是',
  358. value: 1
  359. }],
  360. overHidden: true,
  361. },
  362. {
  363. label: "业务类型",
  364. prop: "businessTypes",
  365. overHidden: true,
  366. },
  367. {
  368. label: "业务单据编号",
  369. prop: "businessNo",
  370. width: 120,
  371. overHidden: true,
  372. },
  373. {
  374. label: "对账单编号",
  375. prop: "checkNo",
  376. width: 120,
  377. overHidden: true,
  378. },
  379. {
  380. label: "MBL NO",
  381. prop: "mblno",
  382. overHidden: true,
  383. },
  384. {
  385. label: "HBL NO",
  386. prop: "hblno",
  387. overHidden: true,
  388. },
  389. {
  390. label: "订舱",
  391. prop: "bookingNo",
  392. overHidden: true,
  393. },
  394. {
  395. label: "中文船名",
  396. prop: "vesselCnName",
  397. overHidden: true,
  398. },
  399. {
  400. label: "英文船名",
  401. prop: "vesselEnName",
  402. overHidden: true,
  403. },
  404. {
  405. label: "航次",
  406. prop: "voyageNo",
  407. overHidden: true,
  408. },
  409. {
  410. label: "财务开始日期",
  411. prop: "accountDateFrom",
  412. width: 100,
  413. overHidden: true,
  414. },
  415. {
  416. label: "财务结束日期",
  417. prop: "accountDateTo",
  418. width: 100,
  419. overHidden: true,
  420. },
  421. {
  422. label: "申请人",
  423. prop: "applicantName",
  424. overHidden: true,
  425. },
  426. {
  427. label: "审核人",
  428. prop: "approverName",
  429. overHidden: true,
  430. },
  431. {
  432. label: "是否代理发票",
  433. prop: "isAgent",
  434. width: 120,
  435. dicData: [{
  436. label: '否',
  437. value: 0
  438. }, {
  439. label: '是',
  440. value: 1
  441. }],
  442. overHidden: true,
  443. },
  444. {
  445. label: "是否DK",
  446. prop: "isDk",
  447. dicData: [{
  448. label: '否',
  449. value: 0
  450. }, {
  451. label: '是',
  452. value: 1
  453. }],
  454. overHidden: true,
  455. },
  456. {
  457. label: "是否RP",
  458. prop: "isRp",
  459. dicData: [{
  460. label: '否',
  461. value: 0
  462. }, {
  463. label: '是',
  464. value: 1
  465. }],
  466. overHidden: true,
  467. },
  468. {
  469. label: "RP名称",
  470. prop: "rpName",
  471. overHidden: true,
  472. },
  473. {
  474. label: "导出日期",
  475. prop: "exportDate",
  476. width: 100,
  477. overHidden: true,
  478. },
  479. {
  480. label: "导出人",
  481. prop: "exportName",
  482. overHidden: true,
  483. },
  484. {
  485. label: "是否导出船名航次",
  486. prop: "isExportVslvoy",
  487. width: 140,
  488. dicData: [{
  489. label: '否',
  490. value: 0
  491. }, {
  492. label: '是',
  493. value: 1
  494. }],
  495. overHidden: true,
  496. },
  497. {
  498. label: "是否导出主单号",
  499. prop: "isExportMblno",
  500. width: 140,
  501. dicData: [{
  502. label: '否',
  503. value: 0
  504. }, {
  505. label: '是',
  506. value: 1
  507. }],
  508. overHidden: true,
  509. },
  510. {
  511. label: "是否导出分单号",
  512. prop: "isExportHblno",
  513. width: 140,
  514. dicData: [{
  515. label: '否',
  516. value: 0
  517. }, {
  518. label: '是',
  519. value: 1
  520. }],
  521. overHidden: true,
  522. },
  523. {
  524. label: "发票本位币(CNY)",
  525. prop: "amountCny",
  526. width: 140,
  527. overHidden: true,
  528. },
  529. {
  530. label: "发票USD",
  531. prop: "amountUsd",
  532. width: "100",
  533. overHidden: true,
  534. },
  535. {
  536. label: "税额(CNY)",
  537. prop: "amountTax",
  538. width: "100",
  539. overHidden: true,
  540. },
  541. {
  542. label: "合计本位币(CNY)",
  543. prop: "amountLoc",
  544. width: "120",
  545. overHidden: true,
  546. },
  547. {
  548. label: "全电发票备注",
  549. prop: "elecRemarks",
  550. width: "120",
  551. overHidden: true,
  552. },
  553. {
  554. label: "银行进账单出票人名称",
  555. prop: "bankReceiptCorpName",
  556. width: "160",
  557. overHidden: true,
  558. },
  559. {
  560. label: "银行进账单出票银行",
  561. prop: "bankReceiptBankName",
  562. width: "160",
  563. overHidden: true,
  564. },
  565. {
  566. label: "银行进账单出票银行账号",
  567. prop: "bankReceiptAccountNo",
  568. width: "160",
  569. overHidden: true,
  570. },
  571. {
  572. label: "银行进账单票据种类",
  573. prop: "bankReceiptBillType",
  574. width: "160",
  575. overHidden: true,
  576. },
  577. {
  578. label: "银行进账单票据张数",
  579. prop: "bankReceiptBillCount",
  580. width: "160",
  581. overHidden: true,
  582. },
  583. {
  584. label: "银行进账单是否已进账(收款)",
  585. prop: "bankReceiptIsIncome",
  586. width: "180",
  587. overHidden: true,
  588. },
  589. {
  590. label: "备注",
  591. prop: "remarks",
  592. overHidden: true,
  593. rules: [{
  594. required: true,
  595. message: "请输入备注",
  596. trigger: "blur"
  597. }]
  598. },
  599. ]
  600. },
  601. data: [],
  602. saberUserInfo: {}, // 当前登录人个人信息
  603. };
  604. },
  605. watch: {},
  606. computed: {
  607. ...mapGetters(["permission"]),
  608. permissionList() {
  609. return {
  610. addBtn: this.vaildData(this.permission.fininvoices_add, false),
  611. viewBtn: this.vaildData(this.permission.fininvoices_view, false),
  612. delBtn: this.vaildData(this.permission.fininvoices_delete, false),
  613. editBtn: this.vaildData(this.permission.fininvoices_edit, false)
  614. };
  615. },
  616. ids() {
  617. let ids = [];
  618. this.selectionList.forEach(ele => {
  619. ids.push(ele.id);
  620. });
  621. return ids.join(",");
  622. }
  623. },
  624. async created() {
  625. // 获取当前登录人个人信息
  626. this.saberUserInfo = JSON.parse(localStorage.getItem('saber-userInfo')).content
  627. this.option = await this.getColumnData(this.getColumnName(318), this.optionBack);
  628. },
  629. methods: {
  630. // 新建发票
  631. newbillFun() {
  632. this.isShow = false;
  633. },
  634. // 编辑
  635. editFun(row) {
  636. this.isShow = false
  637. this.editSave = true
  638. this.$nextTick(() => {
  639. this.$refs.fininvoicesDetails.fininvoicesDetailfun(row.id)
  640. })
  641. },
  642. // 详情的返回列表
  643. goBack() {
  644. // 初始化数据
  645. // this.detailData = this.$options.data().detailData;
  646. if (JSON.stringify(this.$route.query) != "{}") {
  647. this.$router.$avueRouter.closeTag();
  648. this.$router.push({
  649. path: "/iosBasicData/fininvoices/index"
  650. });
  651. }
  652. this.isShow = true;
  653. this.onLoad(this.page, this.search);
  654. },
  655. rowSave(row, done, loading) {
  656. fininvoicesSubmit(row).then(() => {
  657. this.onLoad(this.page);
  658. this.$message({
  659. type: "success",
  660. message: "操作成功!"
  661. });
  662. done();
  663. }, error => {
  664. loading();
  665. window.console.log(error);
  666. });
  667. },
  668. rowUpdate(row, index, done, loading) {
  669. fininvoicesSubmit(row).then(() => {
  670. this.onLoad(this.page);
  671. this.$message({
  672. type: "success",
  673. message: "操作成功!"
  674. });
  675. done();
  676. }, error => {
  677. loading();
  678. console.log(error);
  679. });
  680. },
  681. rowDel(row) {
  682. this.$confirm("确定将选择数据删除?", {
  683. confirmButtonText: "确定",
  684. cancelButtonText: "取消",
  685. type: "warning"
  686. })
  687. .then(() => {
  688. return fininvoicesRemove(row.id);
  689. })
  690. .then(() => {
  691. this.onLoad(this.page);
  692. this.$message({
  693. type: "success",
  694. message: "操作成功!"
  695. });
  696. });
  697. },
  698. // 一键删除
  699. handleDelete() {
  700. if (this.selectionList.length === 0) {
  701. this.$message.warning("请选择至少一条数据");
  702. return;
  703. }
  704. // 判断是否可以编辑别人业务 true 就没有权限
  705. if (this.ModifyOthersfun()) return;
  706. this.$confirm("确定将选择数据删除?", {
  707. confirmButtonText: "确定",
  708. cancelButtonText: "取消",
  709. type: "warning"
  710. })
  711. .then(() => {
  712. return fininvoicesRemove(this.ids);
  713. })
  714. .then(() => {
  715. this.onLoad(this.page);
  716. this.$message({
  717. type: "success",
  718. message: "操作成功!"
  719. });
  720. this.$refs.crud.toggleSelection();
  721. });
  722. },
  723. // 判断是否可以编辑别人业务
  724. ModifyOthersfun() {
  725. let sumArr = []
  726. const h = this.$createElement
  727. // 判断是否有权限
  728. if (this.saberUserInfo.role_name.indexOf('允许修改他人业务') != -1) return false
  729. // 当前登录人和选择的创建人对比是不是一个人
  730. for (let item of this.selectionList) {
  731. if (this.saberUserInfo.user_id != item.createUser) {
  732. sumArr.push(h('p', `你没有"允许修改他人业务"权限,请重新选择数据`))
  733. }
  734. }
  735. if (sumArr.length != 0) {
  736. this.$confirm('提示', {
  737. message: h('div', sumArr),
  738. confirmButtonText: "确定",
  739. cancelButtonText: "取消",
  740. type: "warning"
  741. }).catch(err => { })
  742. return true
  743. }
  744. },
  745. beforeOpen(done, type) {
  746. if (["edit", "view"].includes(type)) {
  747. fininvoicesDetail(this.form.id).then(res => {
  748. this.form = res.data.data;
  749. });
  750. }
  751. done();
  752. },
  753. searchReset() {
  754. this.query = {};
  755. this.onLoad(this.page);
  756. },
  757. searchChange(params, done) {
  758. this.query = params;
  759. this.page.currentPage = 1;
  760. this.onLoad(this.page, params);
  761. done();
  762. },
  763. selectionChange(list) {
  764. this.selectionList = list;
  765. },
  766. selectionClear() {
  767. this.selectionList = [];
  768. this.$refs.crud.toggleSelection();
  769. this.$refs.crud.refreshTable();
  770. },
  771. currentChange(currentPage) {
  772. this.page.currentPage = currentPage;
  773. },
  774. sizeChange(pageSize) {
  775. this.page.pageSize = pageSize;
  776. },
  777. refreshChange() {
  778. this.onLoad(this.page, this.query);
  779. },
  780. onLoad(page, params = {}) {
  781. this.loading = true;
  782. if (!this.query.dateList) {
  783. this.query.invoiceDateStart = null
  784. this.query.invoiceDateEnd = null
  785. } else {
  786. this.query.invoiceDateStart = this.query.dateList[0]
  787. }
  788. fininvoicesList(page.currentPage, page.pageSize,
  789. { ...Object.assign(params, this.query), type: "进项", billNoFormat: 'JXFP', businessTypeCode: 'JXFP' }).then(res => {
  790. const data = res.data.data;
  791. this.page.total = data.total;
  792. this.data = data.records;
  793. this.loading = false;
  794. this.selectionClear();
  795. });
  796. },
  797. //自定义列保存
  798. async saveColumnTwo(ref, option, optionBack, code) {
  799. /**
  800. * 已定义全局方法,直接使用,saveColumnData保存列数据方法,参数传值(表格名称,当前表格的option数据)
  801. * 已定义全局方法,直接使用,getColumnName方法用来获取枚举值,参数根据自己定义的code值获取中文名
  802. * 一定要执行异步操作,要等接口成功返回,才能执行下一行代码
  803. */
  804. const inSave = await this.saveColumnData(this.getColumnName(code), this[option]);
  805. if (inSave) {
  806. this.$message.success("保存成功");
  807. //关闭窗口
  808. this.$refs[ref].$refs.dialogColumn.columnBox = false;
  809. }
  810. },
  811. //自定义列重置
  812. async resetColumnTwo(ref, option, optionBack, code) {
  813. this[option] = this[optionBack];
  814. const inSave = await this.delColumnData(this.getColumnName(code), this[optionBack]);
  815. if (inSave) {
  816. this.$message.success("重置成功");
  817. this.$refs[ref].$refs.dialogColumn.columnBox = false;
  818. }
  819. },
  820. // 更改表格颜色
  821. headerClassName(tab) {
  822. //颜色间隔
  823. let back = ""
  824. if (tab.columnIndex >= 0 && tab.column.level === 1) {
  825. if (tab.columnIndex % 2 === 0) {
  826. back = "back-one"
  827. } else if (tab.columnIndex % 2 === 1) {
  828. back = "back-two"
  829. }
  830. }
  831. return back;
  832. },
  833. }
  834. };
  835. </script>
  836. <style scoped>
  837. ::v-deep#out-table .back-one {
  838. background: #ecf5ff !important;
  839. text-align: center;
  840. }
  841. ::v-deep#out-table .back-two {
  842. background: #ecf5ff !important;
  843. text-align: center;
  844. }
  845. .pointerClick {
  846. cursor: pointer;
  847. color: #1e9fff;
  848. }
  849. </style>