index.vue 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759
  1. <template>
  2. <basic-container>
  3. <avue-crud
  4. :option="option"
  5. :table-loading="loading"
  6. :data="data"
  7. :page.sync="page"
  8. :search.sync="query"
  9. v-model="form"
  10. ref="crud"
  11. id="out-table"
  12. :header-cell-class-name="headerClassName"
  13. @search-change="searchChange"
  14. @search-reset="searchReset"
  15. @current-change="currentChange"
  16. @size-change="sizeChange"
  17. @refresh-change="refreshChange"
  18. @resetColumn="resetColumnTwo('crud', 'option', 'optionBack', 334)"
  19. @saveColumn="saveColumnTwo('crud', 'option', 'optionBack', 334)"
  20. @on-load="onLoad"
  21. >
  22. <template slot="menuLeft">
  23. <el-button type="success" size="small" plain @click="exportfun">导出</el-button>
  24. </template>
  25. <template slot="header">
  26. <el-table :data="commodityData" border size="small" @header-click="cellClick" style="width: 100%">
  27. <el-table-column v-for="(item, index) in commodityLabel" :key="index" :prop="item.prop" show-overflow-tooltip :label="item.label" />
  28. </el-table>
  29. </template>
  30. <template slot-scope="{ disabled, size }" slot="dcSearch">
  31. <el-radio v-model="query.dc" label="D" @input="dcInput">应收</el-radio>
  32. <el-radio v-model="query.dc" label="C" @input="dcInput">应付</el-radio>
  33. </template>
  34. <template slot-scope="{ disabled, size }" slot="businessTypeSearch">
  35. <search-query
  36. :datalist="businessTypeData"
  37. :selectValue="query.businessType"
  38. :clearable="true"
  39. :buttonIf="false"
  40. :forParameter="{ key: 'dictKey', label: 'dictValue', value: 'dictKey' }"
  41. @corpFocus="businessTypeFocus"
  42. @corpChange="corpChange($event, 'businessType')"
  43. >
  44. </search-query>
  45. </template>
  46. <template slot-scope="{ disabled, size }" slot="clientIdSearch">
  47. <search-query
  48. :datalist="clientIdData"
  49. :selectValue="query.clientName"
  50. :filterable="true"
  51. :remote="true"
  52. :clearable="true"
  53. :buttonIf="false"
  54. :forParameter="{ key: 'id', label: 'cnName', value: 'cnName' }"
  55. @remoteMethod="clientIdListfun"
  56. @corpFocus="clientIdListfun"
  57. @corpChange="corpChange($event, 'clientName')"
  58. >
  59. </search-query>
  60. </template>
  61. <template slot-scope="{ disabled, size }" slot="corpIdSearch">
  62. <search-query
  63. :datalist="corpIdData"
  64. :selectValue="query.corpName"
  65. :filterable="true"
  66. :remote="true"
  67. :clearable="true"
  68. :buttonIf="false"
  69. :forParameter="{ key: 'id', label: 'cnName', value: 'cnName' }"
  70. @remoteMethod="getBcorpsListfun"
  71. @corpFocus="getBcorpsListfun"
  72. @corpChange="corpChange($event, 'corpName')"
  73. >
  74. </search-query>
  75. </template>
  76. <template slot-scope="{ disabled, size }" slot="srcIdSearch">
  77. <search-query
  78. :datalist="srcIdData"
  79. :selectValue="query.srcName"
  80. :filterable="true"
  81. :remote="true"
  82. :clearable="true"
  83. :buttonIf="false"
  84. :forParameter="{ key: 'id', label: 'name', value: 'name' }"
  85. @remoteMethod="srcCorpFocus"
  86. @corpFocus="srcCorpFocus"
  87. @corpChange="corpChange($event, 'srcName')"
  88. >
  89. </search-query>
  90. </template>
  91. <template slot-scope="{ disabled, size }" slot="isBusinessDateSearch">
  92. <el-checkbox v-model="query.isBusinessDate" :true-label="1" :false-label="0" @change="dateChange('isBusinessDate')">按业务日期</el-checkbox>
  93. <el-checkbox v-model="query.isToExamineDate" :true-label="1" :false-label="0" @change="dateChange('isToExamineDate')">按审核日期</el-checkbox>
  94. </template>
  95. </avue-crud>
  96. </basic-container>
  97. </template>
  98. <script>
  99. import SearchQuery from "@/components/iosbasic-data/searchquery.vue";
  100. import { CurrentMonth, dateFormat, defaultDate3, defaultDate4 } from "@/util/date";
  101. import { financeStatisticsFeeSummaryDetailNot, financeStatisticsFeeSummaryDetailNotSum } from "@/api/iosBasicData/paymentSummary";
  102. import { getBcorpsList, getBcorpslistByType } from "@/api/iosBasicData/bcorps";
  103. import { getWorkDicts } from "@/api/system/dictbiz";
  104. import { getDeptLazyTree } from "@/api/system/dept";
  105. import { getList as userGetList } from "@/api/system/user";
  106. import { getToken } from "@/util/auth";
  107. export default {
  108. components: { SearchQuery },
  109. data() {
  110. return {
  111. form: {},
  112. loading: true,
  113. page: {
  114. pageSize: 20,
  115. currentPage: 1,
  116. total: 0,
  117. pageSizes: [10, 20, 30, 40, 50, 100, 500, 1000]
  118. },
  119. query: {
  120. dc: "D",
  121. isBusinessDate: 1,
  122. isToExamineDate: 0,
  123. etdStart: defaultDate3()[0],
  124. etdEnd: defaultDate3()[1]
  125. },
  126. option: {},
  127. optionBack: {
  128. height: 500,
  129. calcHeight: 30,
  130. tip: false,
  131. searchShow: true,
  132. searchMenuSpan: 24,
  133. border: true,
  134. index: false,
  135. selection: true,
  136. dialogClickModal: false,
  137. menu: false,
  138. addBtn: false,
  139. viewBtn: false,
  140. delBtn: false,
  141. editBtn: false,
  142. searchIcon: true,
  143. searchIndex: 3,
  144. emptyBtnText: "清空所有条件",
  145. column: [
  146. {
  147. label: "所属公司",
  148. prop: "branchId",
  149. width: "120",
  150. overHidden: true,
  151. // hide: true,
  152. // showColumn: false,
  153. type: "select",
  154. filterable: true,
  155. dicUrl: "/api/blade-system/dept/lazy-list",
  156. props: {
  157. label: "deptName",
  158. value: "id"
  159. },
  160. search: false
  161. },
  162. {
  163. label: "单据所属公司",
  164. prop: "billBranchId",
  165. width: "120",
  166. searchLabelWidth: "90",
  167. overHidden: true,
  168. hide: true,
  169. // hide: true,
  170. // showColumn: false,
  171. type: "select",
  172. filterable: true,
  173. dicUrl: "/api/blade-system/dept/lazy-list",
  174. props: {
  175. label: "deptName",
  176. value: "id"
  177. },
  178. search: false
  179. },
  180. // {
  181. // label: "所属公司",
  182. // prop: "branchName",
  183. // width: "120",
  184. // overHidden: true,
  185. // },
  186. {
  187. label: "结算单位",
  188. prop: "corpName",
  189. overHidden: true
  190. },
  191. {
  192. label: "业务编号",
  193. prop: "billNo",
  194. search: true,
  195. overHidden: true
  196. },
  197. {
  198. label: "提单号",
  199. prop: "mblNo",
  200. search: true,
  201. overHidden: true
  202. },
  203. {
  204. label: "分单号",
  205. prop: "hblNo",
  206. search: true,
  207. overHidden: true
  208. },
  209. {
  210. label: "业务类型",
  211. prop: "businessType",
  212. type: "select",
  213. dicUrl: "/api/blade-system/dict-biz/dictionary?code=profit_business_type_los",
  214. props: {
  215. label: "dictValue",
  216. value: "dictKey"
  217. },
  218. overHidden: true,
  219. search: true,
  220. searchslot: true
  221. },
  222. {
  223. label: "单据类型",
  224. prop: "billType",
  225. type: "select",
  226. multiple: true,
  227. dataType: "string",
  228. hide: true,
  229. dicData: [
  230. {
  231. label: "直单",
  232. value: "DD"
  233. },
  234. {
  235. label: "主单",
  236. value: "MM"
  237. },
  238. {
  239. label: "分单",
  240. value: "MH"
  241. }
  242. ],
  243. span: 24,
  244. search: false
  245. },
  246. {
  247. label: "船名",
  248. prop: "vesselId",
  249. overHidden: true,
  250. type: "select",
  251. filterable: true,
  252. remote: true,
  253. dicUrl: "/api/blade-los/bvessels/list?enName={{key}}",
  254. props: {
  255. label: "enName",
  256. value: "id",
  257. res: "data.records"
  258. },
  259. hide: true,
  260. search: true
  261. },
  262. {
  263. label: "船名",
  264. prop: "vesselName",
  265. overHidden: true
  266. },
  267. {
  268. label: "航次",
  269. prop: "voyageNo",
  270. search: true,
  271. overHidden: true
  272. },
  273. {
  274. label: "开船日期",
  275. prop: "etd",
  276. overHidden: true,
  277. type: "date",
  278. format: "yyyy-MM-dd",
  279. valueFormat: "yyyy-MM-dd"
  280. },
  281. // {
  282. // label: "提单号",
  283. // prop: "mblNo",
  284. // overHidden: true,
  285. // },
  286. {
  287. label: "起运港",
  288. prop: "pol",
  289. overHidden: true
  290. },
  291. {
  292. label: "目的港",
  293. prop: "pod",
  294. overHidden: true
  295. },
  296. {
  297. label: "箱型箱量",
  298. prop: "quantityCntrDescr",
  299. overHidden: true
  300. },
  301. {
  302. label: "美元",
  303. prop: "amountUsdNot",
  304. overHidden: true
  305. },
  306. {
  307. label: "人民币",
  308. prop: "amountNot",
  309. overHidden: true
  310. },
  311. {
  312. label: "其他",
  313. prop: "amountOtherNot",
  314. overHidden: true
  315. },
  316. {
  317. label: "开票USD",
  318. prop: "amountInvoicingUsd",
  319. overHidden: true
  320. },
  321. {
  322. label: "开票CNY",
  323. prop: "amountInvoicing",
  324. overHidden: true
  325. },
  326. {
  327. label: "开票其他",
  328. prop: "amountnvoicingOther",
  329. overHidden: true
  330. },
  331. {
  332. label: "未开USD",
  333. prop: "amountInvoicingUsdNot",
  334. overHidden: true
  335. },
  336. {
  337. label: "未开CNY",
  338. prop: "amountInvoicingNot",
  339. overHidden: true
  340. },
  341. {
  342. label: "未开其他",
  343. prop: "amountnvoicingOtherNot",
  344. overHidden: true
  345. },
  346. {
  347. label: "业务员",
  348. prop: "srcCnName",
  349. overHidden: true
  350. },
  351. {
  352. label: "操作员",
  353. prop: "operatorName",
  354. overHidden: true
  355. },
  356. {
  357. label: "委托人",
  358. prop: "clientId",
  359. hide: true,
  360. search: true,
  361. searchslot: true
  362. },
  363. {
  364. label: "结算单位",
  365. prop: "corpId",
  366. hide: true,
  367. search: true,
  368. searchslot: true
  369. },
  370. {
  371. label: "业务员",
  372. prop: "srcId",
  373. hide: true,
  374. search: true,
  375. searchslot: true
  376. },
  377. {
  378. label: "统计开始",
  379. prop: "etdStart",
  380. search: true,
  381. overHidden: true,
  382. hide: true,
  383. type: "date",
  384. format: "yyyy-MM-dd",
  385. valueFormat: "yyyy-MM-dd"
  386. },
  387. {
  388. label: "统计结束",
  389. prop: "etdEnd",
  390. search: true,
  391. overHidden: true,
  392. hide: true,
  393. type: "date",
  394. format: "yyyy-MM-dd",
  395. valueFormat: "yyyy-MM-dd"
  396. },
  397. {
  398. label: "",
  399. prop: "dc",
  400. hide: true,
  401. search: true,
  402. searchslot: true,
  403. searchSpan: 4,
  404. searchLabelWidth: "0"
  405. },
  406. {
  407. label: "",
  408. prop: "isBusinessDate",
  409. hide: true,
  410. search: true,
  411. searchslot: true,
  412. searchLabelWidth: "0"
  413. },
  414. {
  415. label: "",
  416. prop: "isToExamineDate",
  417. hide: true,
  418. searchLabelWidth: "0"
  419. }
  420. ]
  421. },
  422. data: [],
  423. // 查询方式
  424. typeData: [
  425. {
  426. label: "结算单位",
  427. value: "1"
  428. },
  429. {
  430. label: "委托人",
  431. value: "2"
  432. },
  433. {
  434. label: "业务来源",
  435. value: "3"
  436. }
  437. ],
  438. // 业务类型
  439. businessTypeData: [],
  440. clientIdData: [], // 委托人
  441. corpIdData: [], // 结算单位
  442. srcIdData: [], // 业务员
  443. commodityData: [], // 合计数据
  444. // 合计的配置项
  445. commodityLabel: [
  446. {
  447. id: 1,
  448. label: "美元",
  449. prop: "amountUsdNot"
  450. },
  451. {
  452. id: 2,
  453. label: "人民币",
  454. prop: "amountNot"
  455. },
  456. {
  457. id: 3,
  458. label: "其他",
  459. prop: "amountOtherNot"
  460. },
  461. {
  462. id: 4,
  463. label: "开票USD",
  464. prop: "amountInvoicingUsd"
  465. },
  466. {
  467. id: 5,
  468. label: "开票CNY",
  469. prop: "amountInvoicing"
  470. },
  471. {
  472. id: 6,
  473. label: "开票其他",
  474. prop: "amountnvoicingOther"
  475. },
  476. {
  477. id: 7,
  478. label: "未开USD",
  479. prop: "amountInvoicingUsdNot"
  480. },
  481. {
  482. id: 8,
  483. label: "未开CNY",
  484. prop: "amountInvoicingNot"
  485. },
  486. {
  487. id: 9,
  488. label: "未开其他",
  489. prop: "amountnvoicingOtherNot"
  490. }
  491. ],
  492. saberUserInfo: {}
  493. };
  494. },
  495. async created() {
  496. this.saberUserInfo = JSON.parse(localStorage.getItem("saber-userInfo")).content;
  497. this.option = await this.getColumnData(this.getColumnName(334), this.optionBack);
  498. if (this.saberUserInfo.role_name.indexOf("admin") != -1 || this.saberUserInfo.role_name.indexOf("总部") != -1) {
  499. this.option.searchMenuSpan = 24;
  500. this.option.column.forEach(item => {
  501. if (item.prop == "branchId") {
  502. item.search = true;
  503. }
  504. if (item.prop == "billBranchId") {
  505. item.search = true;
  506. }
  507. if (item.prop == "billType") {
  508. item.search = true;
  509. }
  510. });
  511. }
  512. this.query = {
  513. dc: "D",
  514. isBusinessDate: 1,
  515. isToExamineDate: 0,
  516. etdStart: defaultDate3()[0],
  517. etdEnd: defaultDate3()[1]
  518. };
  519. },
  520. activated() {
  521. this.$refs.crud.doLayout();
  522. },
  523. methods: {
  524. // 导出
  525. exportfun() {
  526. const routeData = this.$router.resolve({
  527. path: "/api/blade-los/financeStatistics/feeSummaryDetailExportNot", //跳转目标窗口的地址
  528. query: {
  529. ...this.query
  530. }
  531. });
  532. window.open(routeData.href.slice(1, routeData.href.length) + "&" + `${this.website.tokenHeader}=${getToken()}`);
  533. },
  534. // 下拉监听
  535. corpChange(value, name) {
  536. if (name == "corpName") {
  537. for (let item of this.corpIdData) {
  538. if (item.cnName == value) {
  539. this.$set(this.query, "corpId", item.id);
  540. this.$set(this.query, "corpName", item.cnName);
  541. }
  542. }
  543. } else if (name == "clientName") {
  544. for (let item of this.clientIdData) {
  545. if (item.cnName == value) {
  546. this.$set(this.query, "clientId", item.id);
  547. this.$set(this.query, "clientName", item.cnName);
  548. }
  549. }
  550. } else if (name == "srcName") {
  551. for (let item of this.srcIdData) {
  552. if (item.name == value) {
  553. // 业务员
  554. this.$set(this.query, "srcId", item.id);
  555. this.$set(this.query, "srcName", item.name);
  556. }
  557. }
  558. }
  559. this.$set(this.query, name, value);
  560. },
  561. // 业务员下拉
  562. srcCorpFocus(value, name) {
  563. this.salesUserGetListfun(value);
  564. },
  565. // 多选切换
  566. dateChange(name) {
  567. if (name == "isBusinessDate") {
  568. this.$set(this.query, "isToExamineDate", 0);
  569. this.$set(this.query, "isBusinessDate", 1);
  570. }
  571. if (name == "isToExamineDate") {
  572. this.$set(this.query, "isBusinessDate", 0);
  573. this.$set(this.query, "isToExamineDate", 1);
  574. }
  575. this.page.currentPage = 1;
  576. this.onLoad(this.page, this.query);
  577. },
  578. // 收付单选
  579. dcInput() {
  580. // let dcName = "";
  581. // if (this.query.dc == "D") {
  582. // dcName = "收";
  583. // } else {
  584. // dcName = "付";
  585. // }
  586. // this.findObject(this.option.column, "amountUsd").label = `应${dcName}美金`;
  587. // this.findObject(this.option.column, "amount").label = `应${dcName}人民币`;
  588. // this.findObject(this.option.column, "amountUsdAlready").label = `已${dcName}款美金`;
  589. // this.findObject(this.option.column, "amountAlready").label = `已${dcName}款人民币`;
  590. // this.findObject(this.option.column, "amountUsdNot").label = `未${dcName}款美金`;
  591. // this.findObject(this.option.column, "amountNot").label = `未${dcName}款人民币`;
  592. this.page.currentPage = 1;
  593. this.onLoad(this.page, this.query);
  594. },
  595. // 接口获取数据
  596. // 结算单位
  597. getBcorpsListfun(cnName) {
  598. getBcorpsList(1, 10, { cnName, status: 0 }).then(res => {
  599. this.corpIdData = res.data.data.records;
  600. });
  601. },
  602. // 业务类型
  603. businessTypeFocus() {
  604. getWorkDicts("profit_business_type_los").then(res => {
  605. this.businessTypeData = res.data.data;
  606. });
  607. },
  608. // 委托人
  609. clientIdListfun(cnName) {
  610. getBcorpsList(1, 10, { cnName, status: 0 }).then(res => {
  611. this.clientIdData = res.data.data.records;
  612. });
  613. },
  614. // 获取业务来源数据
  615. srcTypeWorkDictsfun() {
  616. getWorkDicts("src_type_los").then(res => {
  617. this.srcTypeData = res.data.data;
  618. });
  619. },
  620. // 获取公司名称 用户管理左侧
  621. ownDeptLazyTreefun() {
  622. getDeptLazyTree(0).then(res => {
  623. this.srcIdData = res.data.data;
  624. });
  625. },
  626. // 获取业务来源代理数据
  627. agentBcorpsListfun(cnName) {
  628. let corpTypeName = "国内直接客户,国内同行及代理,国外直接客户,国外同行及代理";
  629. getBcorpslistByType(1, 10, { cnName, status: 0, corpTypeName }).then(res => {
  630. this.srcIdData = res.data.data.records;
  631. });
  632. },
  633. // 获取业务来源业务员数据
  634. salesUserGetListfun(account) {
  635. userGetList(1, 10, { account }).then(res => {
  636. this.srcIdData = res.data.data.records;
  637. });
  638. },
  639. // 清空搜索回调方法
  640. searchReset() {
  641. this.query = {
  642. dc: "D",
  643. isBusinessDate: 1,
  644. isToExamineDate: 0,
  645. etdStart: null,
  646. etdEnd: null
  647. };
  648. this.onLoad(this.page);
  649. },
  650. // 搜索
  651. searchChange(params, done) {
  652. this.page.currentPage = 1;
  653. this.onLoad(this.page, this.query);
  654. done();
  655. },
  656. currentChange(currentPage) {
  657. this.page.currentPage = currentPage;
  658. },
  659. sizeChange(pageSize) {
  660. this.page.pageSize = pageSize;
  661. },
  662. refreshChange() {
  663. this.onLoad(this.page, this.query);
  664. },
  665. onLoad(page, params = {}) {
  666. this.loading = true;
  667. financeStatisticsFeeSummaryDetailNot(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => {
  668. const data = res.data.data;
  669. this.page.total = data.total;
  670. this.data = data.records;
  671. this.loading = false;
  672. financeStatisticsFeeSummaryDetailNotSum(Object.assign(params, this.query)).then(re => {
  673. this.commodityData = [re.data.data];
  674. });
  675. this.$nextTick(() => {
  676. this.$refs.crud.doLayout();
  677. this.$refs.crud.dicInit();
  678. });
  679. this.selectionClear();
  680. });
  681. },
  682. selectionClear() {
  683. this.$refs.crud.toggleSelection();
  684. },
  685. //自定义列保存
  686. async saveColumnTwo(ref, option, optionBack, code) {
  687. /**
  688. * 已定义全局方法,直接使用,saveColumnData保存列数据方法,参数传值(表格名称,当前表格的option数据)
  689. * 已定义全局方法,直接使用,getColumnName方法用来获取枚举值,参数根据自己定义的code值获取中文名
  690. * 一定要执行异步操作,要等接口成功返回,才能执行下一行代码
  691. */
  692. const inSave = await this.saveColumnData(this.getColumnName(code), this[option]);
  693. if (inSave) {
  694. this.$message.success("保存成功");
  695. //关闭窗口
  696. this.$refs[ref].$refs.dialogColumn.columnBox = false;
  697. }
  698. },
  699. //自定义列重置
  700. async resetColumnTwo(ref, option, optionBack, code) {
  701. this[option] = this[optionBack];
  702. const inSave = await this.delColumnData(this.getColumnName(code), this[optionBack]);
  703. if (this.saberUserInfo.role_name.indexOf("admin") != -1 || this.saberUserInfo.role_name.indexOf("总部") != -1) {
  704. this.option.searchMenuSpan = 24;
  705. this.option.column.forEach(item => {
  706. if (item.prop == "branchId") {
  707. item.search = true;
  708. }
  709. });
  710. }
  711. if (inSave) {
  712. this.$message.success("重置成功");
  713. this.$refs[ref].$refs.dialogColumn.columnBox = false;
  714. this.query = {
  715. dc: "D",
  716. isBusinessDate: 1,
  717. isToExamineDate: 0,
  718. etdStart: defaultDate3()[0],
  719. etdEnd: defaultDate3()[1]
  720. };
  721. }
  722. },
  723. // 更改表格颜色
  724. headerClassName(tab) {
  725. //颜色间隔
  726. let back = "";
  727. if (tab.columnIndex >= 0 && tab.column.level === 1) {
  728. if (tab.columnIndex % 2 === 0) {
  729. back = "back-one";
  730. } else if (tab.columnIndex % 2 === 1) {
  731. back = "back-two";
  732. }
  733. }
  734. return back;
  735. }
  736. }
  737. };
  738. </script>
  739. <style lang="scss" scoped>
  740. ::v-deep#out-table .back-one {
  741. background: #ecf5ff !important;
  742. text-align: center;
  743. }
  744. ::v-deep#out-table .back-two {
  745. background: #ecf5ff !important;
  746. text-align: center;
  747. }
  748. ::v-deep .el-col-md-8 {
  749. width: 24.33333%;
  750. }
  751. </style>