archives.vue 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716
  1. <template>
  2. <basic-container>
  3. <avue-crud
  4. :option="option"
  5. :search.sync="search"
  6. v-model="form"
  7. :table-loading="loading"
  8. :data="dataList"
  9. ref="crud"
  10. :key="key"
  11. :before-open="beforeOpen"
  12. @on-load="onLoad"
  13. @row-save="rowSave"
  14. @row-update="(row,index,done,loading)=>{rowSave(row,done,loading,index)}"
  15. @search-change="searchChange"
  16. :upload-delete="uploadDelete"
  17. :before-close="beforeClose"
  18. @row-del="rowDel"
  19. @refresh-change="refreshChange"
  20. @resetColumn="resetColumnTwo('crud','option','optionList',234)"
  21. @saveColumn="saveColumnTwo('crud','option','optionList',234)"
  22. :page.sync="page">
  23. <template slot-scope="scope" slot="menuLeft">
  24. <el-button type="success" size="small" icon="el-icon-bottom" @click="excelBox = true">导入
  25. </el-button>
  26. <el-button type="warning"
  27. icon="el-icon-download"
  28. size="small"
  29. @click="outExport">导出
  30. </el-button>
  31. </template>
  32. <template slot-scope="{type,size,row,$index}" slot="menu">
  33. <el-button icon="el-icon-edit" :size="size" :disabled="row.status === '使用'" :type="type"
  34. @click="$refs.crud.rowEdit(row,index)">编辑
  35. </el-button>
  36. <el-button
  37. type="text"
  38. icon="el-icon-delete"
  39. size="small"
  40. :disabled="row.status === '使用'"
  41. @click.stop="$refs.crud.rowDel(row,$index)"
  42. >删除
  43. </el-button>
  44. </template>
  45. <template slot-scope="{type,size,row,index,disabled}" slot="code">
  46. <span class="el-button--text" style="cursor: pointer" @click="track(row)">{{row.code}}</span>
  47. </template>
  48. <template slot-scope="{ row }" slot="status">
  49. <span v-for="item in $refs.crud.DIC.status" :style="{color: item.colour}" v-if="item.dictKey == row.status">{{item.dictValue}}</span>
  50. </template>
  51. <template slot="leasingCompanyIdForm">
  52. <crop-select v-model="form.leasingCompanyId" disabled @getCorpData="getGSData" corpType="KH"/>
  53. </template>
  54. <template slot="addressIdForm">
  55. <port-info v-model="form.addressId" type="id" @balabalaTow="balabala"/>
  56. </template>
  57. <template slot="addressIdSearch">
  58. <port-info v-model="search.addressId" type="id"/>
  59. </template>
  60. <template slot="addressId" slot-scope="{row}">
  61. {{ row.address }}
  62. </template>
  63. <template slot="leasingCompanyIdSearch">
  64. <crop-select v-model="search.leasingCompanyId" corpType="KH"/>
  65. </template>
  66. <template slot="leasingCompanyId" slot-scope="{row}">
  67. {{ row.leasingCompany }}
  68. </template>
  69. </avue-crud>
  70. <el-dialog title="导入箱档案" append-to-body :visible.sync="excelBox" width="555px" :close-on-click-modal="false"
  71. v-dialog-drag>
  72. <avue-form :option="excelOption" v-model="excelForm" table-loading="excelLoading"
  73. :upload-before="uploadBefore" :upload-after="uploadAfter">
  74. <template slot="excelTemplate">
  75. <el-button type="primary" @click="derivation">
  76. 点击下载<i class="el-icon-download el-icon--right"></i>
  77. </el-button>
  78. </template>
  79. </avue-form>
  80. <p style="text-align: center;color: #DC0505">
  81. 温馨提示 第一次导入时请先下载模板
  82. </p>
  83. </el-dialog>
  84. <el-dialog
  85. title="箱轨迹"
  86. :visible.sync="boxTrack"
  87. :append-to-body="true"
  88. :destroy-on-close="true"
  89. :close-on-click-modal="false"
  90. v-if="boxTrack"
  91. top="1vh"
  92. width="80%">
  93. <span>
  94. <avue-crud
  95. ref="crudTrack"
  96. :option="optionTrack"
  97. :data="dataTrackList"
  98. :search.sync="searchTwo"
  99. :page.sync="pageTwo"
  100. :table-loading="loadingTwo"
  101. @on-load="onLoadTrack"
  102. @search-change="searchChangeTwo"
  103. @row-update="rowUpdateTrack"
  104. @resetColumn="resetColumnTwo('crudTrack','optionTrack','optionTrackBack',234.1)"
  105. @saveColumn="saveColumnTwo('crudTrack','optionTrack','optionTrackBack',234.1)"
  106. v-model="formTrack">
  107. <template slot-scope="{type,size,row,index,disabled}" slot="menu">
  108. <el-button icon="el-icon-edit" :size="size" :disabled="disabled" :type="type"
  109. @click="$refs.crudTrack.rowEdit(row,index)">编辑
  110. </el-button>
  111. <el-button icon="el-icon-delete" :size="size" :disabled="disabled" :type="type"
  112. @click="rowDel(row,index,'GJ')">删除
  113. </el-button>
  114. </template>
  115. </avue-crud>
  116. </span>
  117. </el-dialog>
  118. </basic-container>
  119. </template>
  120. <script>
  121. import {addUpdate, boxRemove, getList, remove} from "@/api/box/archives";
  122. import {getToken} from "@/util/auth";
  123. import {getAllBoxs} from "@/api/basicData/portinformation";
  124. import {archivestrajectory, update} from "@/api/boxManagement/exportShipment";
  125. export default {
  126. name: "archives",
  127. data() {
  128. return {
  129. boxTrack: false,
  130. dataTrackList:[],
  131. searchTwo:{},
  132. formTrack: {},
  133. optionTrack: {},
  134. optionTrackBack: {
  135. align: 'center',
  136. index: true,
  137. menu:false,
  138. addBtnText: "录入明细",
  139. refreshBtn: false,
  140. addBtn: false,
  141. span: 8,
  142. searchMenuPosition: "right",
  143. searchSpan: 8,
  144. searchIcon: true,
  145. searchIndex: 2,
  146. addRowBtn: false,
  147. cellBtn: false,
  148. editBtn: false,
  149. delBtn: false,
  150. menuWidth: 200,
  151. dialogTop: 25,
  152. dialogWidth: "80%",
  153. column: [{
  154. label: '箱号',
  155. prop: 'code',
  156. overHidden: true,
  157. remote: true,
  158. filterable: true,
  159. type: "select",
  160. dicUrl: "/api/blade-box-tube/archives/selectArchivesList?size=10&current=1&code={{key}}",
  161. props: {
  162. label: "code",
  163. value: "code"
  164. },
  165. disabled: true
  166. }, {
  167. label: '地点',
  168. prop: 'address',
  169. overHidden: true,
  170. formProp: 'address',
  171. search: true
  172. }, {
  173. label: '日期',
  174. prop: 'newDate',
  175. search: true,
  176. searchProp: 'newDateList',
  177. overHidden: true,
  178. type: "date",
  179. searchRange: true,
  180. searchDefaultTime: ["00:00:00", "23:59:59"],
  181. format: "yyyy-MM-dd",
  182. valueFormat: "yyyy-MM-dd HH:mm:ss"
  183. }, {
  184. label: '客户名称',
  185. prop: 'corpName',
  186. overHidden: true
  187. }, {
  188. label: '收款对象',
  189. prop: 'corpNameCollect',
  190. overHidden: true
  191. }, {
  192. label: '应收',
  193. prop: 'collect',
  194. overHidden: true
  195. }, {
  196. label: '付款对象',
  197. prop: 'corpNameCollect',
  198. overHidden: true
  199. }, {
  200. label: '应付',
  201. prop: 'pay',
  202. overHidden: true
  203. }, {
  204. label: '业务类型',
  205. prop: 'billType',
  206. overHidden: true
  207. }, {
  208. label: '状态',
  209. prop: 'status',
  210. overHidden: true
  211. }]
  212. },
  213. excelBox: false,
  214. loading: false,
  215. search: {},
  216. form: {},
  217. excelForm: {},
  218. dataList: [],
  219. page: {
  220. pageSize: 20,
  221. currentPage: 1,
  222. total: 0,
  223. pageSizes: [10, 20, 30, 40, 50, 100, 200, 300, 400, 500]
  224. },
  225. pageTwo:{
  226. pageSize: 20,
  227. currentPage: 1,
  228. total: 0,
  229. pageSizes: [10, 20, 30, 40, 50, 100, 200, 300, 400, 500]
  230. },
  231. loadingTwo:false,
  232. excelOption: {
  233. submitBtn: false,
  234. emptyBtn: false,
  235. column: [
  236. {
  237. label: "模板下载",
  238. prop: "excelTemplate",
  239. formslot: true,
  240. span: 24
  241. },
  242. {
  243. label: "模板上传",
  244. prop: "excelFile",
  245. type: "upload",
  246. drag: true,
  247. loadText: "模板上传中,请稍等",
  248. span: 24,
  249. propsHttp: {
  250. res: "data"
  251. },
  252. tip: "请上传 .xls,.xlsx 标准格式文件",
  253. action: "/api/blade-box-tube/archives/import-descParts-info"
  254. }
  255. ]
  256. },
  257. key: 0,
  258. option: {},
  259. optionList: {
  260. index: true,
  261. dialogDrag: true,
  262. delBtn: false,
  263. editBtn: false,
  264. span: 8,
  265. border: true,
  266. height:"auto",
  267. searchMenuPosition: "right",
  268. align: "center",
  269. searchSpan: 8,
  270. searchIcon: true,
  271. searchIndex: 2,
  272. highlightCurrentRow: true,
  273. dialogWidth: "70%",
  274. column: [{
  275. label: '合同号',
  276. prop: 'contractNo',
  277. width: 100,
  278. disabled:true,
  279. overHidden: true,
  280. search: true,
  281. },{
  282. label: '箱号',
  283. prop: 'code',
  284. width: 100,
  285. overHidden: true,
  286. filterable: true,
  287. remote: true,
  288. type: "select",
  289. search: true,
  290. allowCreate: true,
  291. dicUrl: "/api/blade-box-tube/archives/list?size=10&current=1&code={{key}}",
  292. props: {
  293. label: "code",
  294. value: "code",
  295. res:"data.records"
  296. }
  297. }, {
  298. label: '箱类型',
  299. prop: 'typeId',
  300. width: 100,
  301. overHidden: true,
  302. search: true,
  303. filterable: true,
  304. type: 'select',
  305. dataType: 'string',
  306. props: {
  307. label: 'name',
  308. value: 'id'
  309. },
  310. dicUrl: '/api/blade-client/container/listMessage'
  311. }, {
  312. label: '最新地点',
  313. prop: 'addressId',
  314. width: 100,
  315. overHidden: true,
  316. search: true,
  317. }, {
  318. label: '最新日期',
  319. prop: 'newDate',
  320. width: 100,
  321. searchProp: 'newDateList',
  322. overHidden: true,
  323. search: true,
  324. type: "date",
  325. searchRange: true,
  326. searchDefaultTime: ["00:00:00", "23:59:59"],
  327. format: "yyyy-MM-dd",
  328. valueFormat: "yyyy-MM-dd HH:mm:ss"
  329. }, {
  330. label: '租赁公司',
  331. prop: 'leasingCompanyId',
  332. width: 100,
  333. overHidden: true,
  334. search: true,
  335. }, {
  336. label: '箱来源',
  337. prop: 'boxSource',
  338. width: 100,
  339. overHidden: true,
  340. search: true,
  341. filterable: true,
  342. type: 'select',
  343. dicUrl: "/api/blade-system/dict-biz/dictionary?code=box_source",
  344. props: {
  345. label: "dictValue",
  346. value: "dictKey"
  347. }
  348. }, {
  349. label: '箱状态',
  350. prop: 'boxStatus',
  351. width: 100,
  352. overHidden: true,
  353. search: true,
  354. filterable: true,
  355. type: 'select',
  356. dicUrl: "/api/blade-system/dict-biz/dictionary?code=box_status",
  357. props: {
  358. label: "dictValue",
  359. value: "dictKey"
  360. }
  361. }, {
  362. label: '租赁方式',
  363. prop: 'leaseMethod',
  364. width: 100,
  365. overHidden: true,
  366. filterable: true,
  367. type: 'select',
  368. disabled:true,
  369. dicUrl: "/api/blade-system/dict-biz/dictionary?code=lease_method",
  370. props: {
  371. label: "dictValue",
  372. value: "dictKey"
  373. }
  374. }, {
  375. label: '空重(kg)',
  376. prop: 'emptyWeight',
  377. width: 100,
  378. overHidden: true,
  379. type: 'number',
  380. controls: false,
  381. }, {
  382. label: '毛重(kg)',
  383. prop: 'gorssWeight',
  384. width: 100,
  385. overHidden: true,
  386. type: 'number',
  387. controls: false,
  388. }, {
  389. label: '皮重(kg)',
  390. prop: 'tare',
  391. width: 100,
  392. overHidden: true,
  393. type: 'number',
  394. controls: false,
  395. }, {
  396. label: '装载重量(kg)',
  397. prop: 'loadingWeight',
  398. width: 100,
  399. overHidden: true,
  400. type: 'number',
  401. controls: false,
  402. }, {
  403. label: '容积(m³)',
  404. prop: 'volume',
  405. type: 'number',
  406. controls: false,
  407. overHidden: true,
  408. width: 100
  409. }, {
  410. label: '状态',
  411. width: 100,
  412. overHidden: true,
  413. search: true,
  414. filterable: true,
  415. prop: 'status',
  416. type: 'select',
  417. dicUrl: "/api/blade-system/dict-biz/dictionary?code=box_archives_status",
  418. props: {
  419. label: "dictValue",
  420. value: "dictKey"
  421. }
  422. }, {
  423. label: '造箱公司',
  424. prop: 'boxMakingCompany',
  425. width: 100,
  426. overHidden: true,
  427. search: true,
  428. }, {
  429. label: '造箱日期',
  430. prop: 'boxMakingDate',
  431. searchProp: 'boxMakingDateList',
  432. width: 100,
  433. overHidden: true,
  434. search: true,
  435. type: "date",
  436. searchRange: true,
  437. searchDefaultTime: ["00:00:00", "23:59:59"],
  438. format: "yyyy-MM-dd",
  439. valueFormat: "yyyy-MM-dd HH:mm:ss"
  440. }, {
  441. label: '起租日期',
  442. prop: 'leaseCommencementDate',
  443. searchProp: 'leaseCommencementDateList',
  444. width: 100,
  445. overHidden: true,
  446. search: true,
  447. type: "date",
  448. disabled:true,
  449. searchRange: true,
  450. searchDefaultTime: ["00:00:00", "23:59:59"],
  451. format: "yyyy-MM-dd",
  452. valueFormat: "yyyy-MM-dd HH:mm:ss"
  453. }, {
  454. label: '购入日期',
  455. prop: 'purchaseDate',
  456. width: 100,
  457. overHidden: true,
  458. type: "date",
  459. disabled:true,
  460. searchRange: true,
  461. searchDefaultTime: ["00:00:00", "23:59:59"],
  462. format: "yyyy-MM-dd",
  463. valueFormat: "yyyy-MM-dd HH:mm:ss"
  464. }, {
  465. label: '箱龄(月)',
  466. prop: 'boxAge',
  467. overHidden: true,
  468. width: 100,
  469. }, {
  470. label: '出入场状态',
  471. prop: 'boxAccessStatus',
  472. overHidden: true,
  473. display:false,
  474. width: 100,
  475. }, {
  476. label: '照片',
  477. prop: 'filesList',
  478. width: 200,
  479. overHidden: true,
  480. type: 'upload',
  481. span: 24,
  482. listType: 'picture-card',
  483. tip: '只能上传jpg/png文件,且不超过500kb',
  484. propsHttp: {
  485. url: 'link',
  486. name: 'originalName',
  487. res: 'data'
  488. },
  489. action: '/api/blade-resource/oss/endpoint/put-file'
  490. }]
  491. }
  492. }
  493. },
  494. async created() {
  495. this.option = await this.getColumnData(this.getColumnName(234), this.optionList);
  496. this.optionTrack = await this.getColumnData(this.getColumnName(234.1), this.optionTrackBack);
  497. this.key++
  498. this.findObject(this.option.column, "typeId").change = ({value, column}) => {
  499. getAllBoxs().then(res => {
  500. for (let item of res.data.data) {
  501. if (value == item.id) {
  502. this.form.name = item.name
  503. }
  504. }
  505. })
  506. }
  507. let i = 0;
  508. this.option.column.forEach(item => {
  509. if (item.search) i++
  510. })
  511. if (i % 3 !== 0) {
  512. const num = 3 - Number(i % 3)
  513. this.option.searchMenuSpan = num * 8;
  514. this.option.searchMenuPosition = "right";
  515. }
  516. },
  517. methods: {
  518. track(row) {
  519. // this.dataTrackList = row
  520. this.formSearch = row
  521. this.boxTrack = true
  522. },
  523. rowUpdateTrack(form, index, done, loading) {
  524. update(form).then(res => {
  525. done()
  526. this.$message.success("操作成功")
  527. this.onLoadTrack(this.pageTwo, this.searchTwo)
  528. })
  529. },
  530. searchChangeTwo(params, done) {
  531. done();
  532. this.onLoadTrack(this.pageTwo, params)
  533. },
  534. onLoadTrack(page, params = {}) {
  535. params = {
  536. ...params,
  537. current: page.currentPage,
  538. size: page.pageSize,
  539. code: this.formSearch.code
  540. }
  541. this.loadingTwo = true
  542. archivestrajectory(params).then(res => {
  543. this.dataTrackList = res.data.data.records
  544. this.pageTwo.total = res.data.data.total
  545. this.loadingTwo = false
  546. }).finally(() => {
  547. this.loadingTwo = false
  548. })
  549. },
  550. //打开表单前
  551. beforeOpen(done,type){
  552. if (type === "add"){
  553. this.findObject(this.option.column, "typeId").value = this.$refs.crud.DIC.typeId.length>0?this.$refs.crud.DIC.typeId[0].id:''
  554. this.form.name = this.$refs.crud.DIC.typeId.length>0?this.$refs.crud.DIC.typeId[0].name:''
  555. this.findObject(this.option.column, "boxSource").value = this.$refs.crud.DIC.boxSource.length>0?this.$refs.crud.DIC.boxSource[0].dictKey:''
  556. this.findObject(this.option.column, "boxStatus").value = this.$refs.crud.DIC.boxStatus.length>0?this.$refs.crud.DIC.boxStatus[0].dictKey:''
  557. }
  558. done();
  559. },
  560. //导出
  561. outExport() {
  562. this.$confirm('是否导出当前所有箱档案?', '提示', {
  563. confirmButtonText: '确定',
  564. cancelButtonText: '取消',
  565. type: 'warning'
  566. }).then(() => {
  567. let queryParams = this.search
  568. const routeData = this.$router.resolve({
  569. path: '/api/blade-box-tube/archives/export-archives-out', //跳转目标窗口的地址
  570. query: {
  571. 'Blade-Auth': getToken(),
  572. ...queryParams //括号内是要传递给新窗口的参数
  573. }
  574. })
  575. window.open(routeData.href.slice(1, routeData.href.length));
  576. }).catch(() => {
  577. this.$message({
  578. type: 'info',
  579. message: '已取消' //
  580. });
  581. })
  582. },
  583. derivation() {
  584. window.open(`/api/blade-box-tube/archives/export-archives-info?${this.website.tokenHeader}=${getToken()}`);
  585. },
  586. uploadBefore(file, done, loading) {
  587. loading = true;
  588. done();
  589. },
  590. uploadAfter(res, done, loading, column) {
  591. this.excelBox = false;
  592. this.$message.success("导入成功!");
  593. this.onLoad(this.page, this.search);
  594. loading = false;
  595. done();
  596. },
  597. balabala(val) {
  598. if (val === null) {
  599. this.form.address = ''
  600. } else {
  601. this.form.address = val.name
  602. }
  603. },
  604. getGSData(row) {
  605. this.form.leasingCompany = row.cname
  606. },
  607. //关闭弹窗前
  608. beforeClose(done, type) {
  609. this.onLoad(this.page, this.search)
  610. done()
  611. },
  612. //刷新
  613. refreshChange() {
  614. this.onLoad(this.page, this.search)
  615. },
  616. rowDel(form, index) {
  617. this.$confirm('此操作将永久删除该行, 是否继续?', '提示', {
  618. confirmButtonText: '确定',
  619. cancelButtonText: '取消',
  620. type: 'warning'
  621. }).then(() => {
  622. remove(form.id).then(res => {
  623. this.$message({
  624. type: 'success',
  625. message: '删除成功!'
  626. });
  627. this.onLoad(this.page, this.search)
  628. })
  629. }).catch(() => {
  630. });
  631. },
  632. uploadDelete(file, column) {
  633. return new Promise((resolve, reject)=>{
  634. this.$confirm('此操作将永久删除该文件, 是否继续?', '提示', {
  635. confirmButtonText: '确定',
  636. cancelButtonText: '取消',
  637. type: 'warning'
  638. }).then(() => {
  639. if (this.form.filesList[file.uid].id){
  640. boxRemove(this.form.filesList[file.uid].id).then(res => {
  641. this.$message({
  642. type: 'success',
  643. message: '删除成功!'
  644. });
  645. resolve();
  646. })
  647. }else {
  648. resolve();
  649. }
  650. }).catch(()=>{
  651. reject();
  652. this.$message({
  653. type: "info",
  654. message: "已取消删除"
  655. });
  656. })
  657. })
  658. },
  659. rowSave(form, done, loading, index) {
  660. done()
  661. addUpdate(form).then(res => {
  662. this.onLoad(this.page, this.search)
  663. })
  664. },
  665. searchChange(params, done) {
  666. done();
  667. this.onLoad(this.page, params)
  668. },
  669. onLoad(page, params = {}) {
  670. params = {
  671. ...params,
  672. current: page.currentPage,
  673. size: page.pageSize,
  674. ...Object.assign(params, this.search)
  675. }
  676. this.loading = true
  677. getList(params).then(res => {
  678. this.dataList = res.data.data.records
  679. this.page.total = res.data.data.total
  680. this.loading = false
  681. }).finally(() => {
  682. this.loading = false
  683. })
  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 (inSave) {
  704. this.$message.success("重置成功");
  705. this.$refs[ref].$refs.dialogColumn.columnBox = false;
  706. }
  707. },
  708. }
  709. }
  710. </script>
  711. <style scoped>
  712. </style>