init-goodsuse.vue 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804
  1. <template>
  2. <basic-container>
  3. <avue-crud :option="option"
  4. :table-loading="loading"
  5. :data="data"
  6. :page.sync="page"
  7. :permission="permissionList"
  8. :before-open="beforeOpen"
  9. v-model="form"
  10. ref="crud"
  11. @row-update="rowUpdate"
  12. @row-save="rowSave"
  13. @row-del="rowDel"
  14. @search-change="searchChange"
  15. @search-reset="searchReset"
  16. @selection-change="selectionChange"
  17. @current-change="currentChange"
  18. @size-change="sizeChange"
  19. @refresh-change="refreshChange"
  20. @on-load="onLoad">
  21. <template slot="menuLeft">
  22. <el-button type="danger"
  23. size="small"
  24. icon="el-icon-delete"
  25. plain
  26. :disabled="delBatchBtn"
  27. v-if="permission.goodsuse_delete"
  28. @click="handleDelete">刪 除
  29. </el-button>
  30. <!--<el-button type="success"
  31. size="small"
  32. icon="el-icon-setting"
  33. plain
  34. v-if="permission.goodsuse_setting"
  35. @click="handleSetting">設置確認人
  36. </el-button>-->
  37. <el-button type="success"
  38. size="small"
  39. icon="el-icon-refresh"
  40. plain
  41. v-if="permission.goodsuse_transfer"
  42. @click="handleTransfer">一鍵移交
  43. </el-button>
  44. <el-button type="primary"
  45. size="small"
  46. icon="el-icon-download"
  47. plain
  48. v-if="permission.goodsuse_download"
  49. @click="handleDownload">下載
  50. </el-button>
  51. <el-button type="success"
  52. size="small"
  53. icon="el-icon-search"
  54. plain
  55. @click="balanceVisible = true">餘額查詢
  56. </el-button>
  57. </template>
  58. <template slot="personNameForm">
  59. <select-dialog-user :id="form.personId" :name="form.personName" :ehr="form.personNo" :disabled="false" :callback="selectCallback"></select-dialog-user>
  60. </template>
  61. <template slot="process" slot-scope="{row, index}">
  62. <el-tag size="small " type="warning" plain v-if="row.process == 2">待確認</el-tag>
  63. <el-tag size="small " type="success" plain v-if="row.process == 3">已確認</el-tag>
  64. </template>
  65. <template slot="menu" slot-scope="{row, index}">
  66. <el-button size="small" class="el-button--text" v-if="permission.goodsuse_view" @click="$refs.crud.rowView(row, index)"><i class="el-icon-view"></i> 查 看</el-button>
  67. <el-button size="small" class="el-button--text" v-if="permission.goodsuse_edit && row.process == 2 && userInfo.user_id == row.createUser" @click="$refs.crud.rowEdit(row, index)"><i class="el-icon-edit"></i> 編 輯</el-button>
  68. <el-button size="small" class="el-button--text" v-if="permission.goodsuse_delete && row.process == 2 && userInfo.user_id == row.createUser" @click="$refs.crud.rowDel(row, index)"><i class="el-icon-delete"></i> 刪 除</el-button>
  69. <el-button size="mini " type="primary" plain v-if="permission.goodsuse_confirm && row.process == 2 && row.personNo == userInfo.user_ehr" @click="form = row, sureVisible = true">去確認</el-button>
  70. </template>
  71. </avue-crud>
  72. <el-dialog :append-to-body="true" :modal-append-to-body="false" :visible.sync="settingVisible" title="設置">
  73. <flow-settings :id="personId" :ehr="personNo" :name="personName" :callback="settingCallback" @close="settingVisible = false"></flow-settings>
  74. </el-dialog>
  75. <el-dialog :append-to-body="true" :modal-append-to-body="false" :visible.sync="sureVisible" title="確認">
  76. <goodsuse-sure :form="form" @close="sureVisible = false, onLoad(page)"></goodsuse-sure>
  77. </el-dialog>
  78. <el-dialog :append-to-body="true" :modal-append-to-body="false" :visible.sync="transferVisible" title="一鍵移交">
  79. <select-dialog-user :callback="transferCallback"></select-dialog-user>
  80. </el-dialog>
  81. <el-dialog :append-to-body="true" :modal-append-to-body="false" :destroy-on-close="true" :fullscreen="true" :visible.sync="balanceVisible" title="餘額查詢">
  82. <goodsuse-balance></goodsuse-balance>
  83. </el-dialog>
  84. </basic-container>
  85. </template>
  86. <script>
  87. import {getList, getDetail, add, update, remove, getSetting, settingSave, transfer, getLastByType, getDownloadList} from "@/api/bank/goodsuse";
  88. import {mapGetters} from "vuex";
  89. import FlowSettings from "../../components/common/flow-settings";
  90. import {dateFormat} from "../../util/date";
  91. import { getCurrentDept } from "@/api/system/dept";
  92. import SelectDialogUser from "../../components/select-dialog/select-dialog-user";
  93. import GoodsuseSure from "../../components/common/goodsuse-sure";
  94. import {getDeptTree, getTree} from "@/api/system/dept";
  95. import {validatenumplus} from "../../util/validate";
  96. import GoodsuseBalance from "../../views/bank/goodsuse-balance";
  97. export default {
  98. name: "init-goodsuse",
  99. components: {GoodsuseBalance, GoodsuseSure, SelectDialogUser, FlowSettings},
  100. data() {
  101. return {
  102. balanceVisible: false,
  103. transferVisible: false,
  104. delBatchBtn: true,
  105. personId: null,
  106. personNo: null,
  107. personName: null,
  108. settingVisible: false,
  109. sureVisible: false,
  110. type: '',
  111. form: {},
  112. query: {},
  113. loading: true,
  114. page: {
  115. pageSize: 10,
  116. currentPage: 1,
  117. total: 0
  118. },
  119. selectionList: [],
  120. option: {
  121. addTitle: '新增【使用及出入庫登記表】',
  122. editTitle: '編輯【使用及出入庫登記表】',
  123. viewTitle: '查看【使用及出入庫登記表】',
  124. height:'auto',
  125. calcHeight: 30,
  126. tip: false,
  127. searchShow: true,
  128. searchMenuSpan: 6,
  129. border: true,
  130. index: true,
  131. viewBtn: false,
  132. editBtn: false,
  133. delBtn: false,
  134. selection: true,
  135. dialogClickModal: false,
  136. column: [
  137. {
  138. label: "銀行號",
  139. prop: "bankNo",
  140. disabled: true,
  141. search: true,
  142. searchSpan: 4,
  143. rules: [{
  144. required: true,
  145. message: "請輸入銀行號",
  146. trigger: "blur"
  147. }]
  148. },
  149. {
  150. label: "機構號",
  151. prop: "orgNo",
  152. disabled: true,
  153. rules: [{
  154. required: true,
  155. message: "請輸入機構號",
  156. trigger: "blur"
  157. }]
  158. },
  159. {
  160. label: "日期",
  161. prop: "date",
  162. type: "datetime",
  163. format: "yyyy-MM-dd",
  164. valueFormat: "yyyy-MM-dd",
  165. rules: [{
  166. required: true,
  167. message: "請輸入日期",
  168. trigger: "blur"
  169. }]
  170. },
  171. {
  172. label: "日期",
  173. prop: "dateRange",
  174. type: "date",
  175. format: "yyyy-MM-dd",
  176. valueFormat: "yyyy-MM-dd",
  177. searchRange:true,
  178. hide: true,
  179. addDisplay: false,
  180. editDisplay: false,
  181. viewDisplay: false,
  182. search: true,
  183. rules: [{
  184. required: true,
  185. message: "請輸入交接日期",
  186. trigger: "blur"
  187. }]
  188. },
  189. {
  190. label: "區域/支行",
  191. prop: "orgNos",
  192. hide: true,
  193. display: false,
  194. searchMultiple: true,
  195. search: true,
  196. type: "tree",
  197. dicData: [],
  198. props: {
  199. label: "title",
  200. value: "key"
  201. },
  202. checkStrictly: true,
  203. rules: [{
  204. required: true,
  205. message: "請輸入機構號",
  206. trigger: "blur"
  207. }]
  208. },
  209. {
  210. label: "憑證/實物種類",
  211. prop: "type",
  212. type: "select",
  213. search: true,
  214. searchSpan: 4,
  215. searchMultiple: true,
  216. dicUrl: "/api/blade-system/dict/dictionary?code=voucher_type",
  217. props: {
  218. label: "dictValue",
  219. value: "dictKey"
  220. },
  221. dicFormatter: (res) => {
  222. res.data.forEach(item => {item.disabled = item.isSealed == 1;})
  223. return res.data;
  224. },
  225. rules: [{
  226. required: true,
  227. message: "請輸入憑證/實物種類",
  228. trigger: "blur"
  229. }]
  230. },
  231. {
  232. label: "使用數量",
  233. prop: "useNumber",
  234. type: "number",
  235. rules: [{
  236. required: true,
  237. message: "請輸入使用數量",
  238. trigger: "blur"
  239. },{
  240. validator: validatenumplus,
  241. trigger: "blur"
  242. }]
  243. },
  244. {
  245. label: "領入數量",
  246. prop: "receiptNumber",
  247. type: "number",
  248. rules: [{
  249. required: false,
  250. message: "請輸入領入數量",
  251. trigger: "blur"
  252. },{
  253. validator: validatenumplus,
  254. trigger: "blur"
  255. }]
  256. },
  257. {
  258. label: "註銷數量",
  259. prop: "writeOffNumber",
  260. type: "number",
  261. rules: [{
  262. required: false,
  263. message: "請輸入註銷數量",
  264. trigger: "blur"
  265. },{
  266. validator: validatenumplus,
  267. trigger: "blur"
  268. }]
  269. },
  270. {
  271. label: "開始編號",
  272. prop: "beginNo",
  273. rules: [{
  274. required: false,
  275. message: "請輸入開始編號",
  276. trigger: "blur"
  277. }]
  278. },
  279. {
  280. label: "結束編號",
  281. prop: "endNo",
  282. rules: [{
  283. required: false,
  284. message: "請輸入結束編號",
  285. trigger: "blur"
  286. }]
  287. },
  288. {
  289. label: "上日餘額",
  290. prop: "lastBalance",
  291. type: "number",
  292. disabled: true,
  293. hide: true,
  294. viewDisplay: false,
  295. rules: [{
  296. required: true,
  297. message: "請輸入餘額",
  298. trigger: "blur"
  299. },{
  300. validator: validatenumplus,
  301. trigger: "blur"
  302. }]
  303. },
  304. {
  305. label: "餘額",
  306. prop: "balance",
  307. type: "number",
  308. disabled: true,
  309. rules: [{
  310. required: true,
  311. message: "請輸入餘額",
  312. trigger: "blur"
  313. },{
  314. validator: validatenumplus,
  315. trigger: "blur"
  316. }]
  317. },
  318. {
  319. label: "備註",
  320. prop: "remark",
  321. rules: [{
  322. required: false,
  323. message: "請輸入備註",
  324. trigger: "blur"
  325. }]
  326. },
  327. {
  328. label: "填報人員工號",
  329. prop: "fillingNo",
  330. addDisplay: false,
  331. editDisplay: false,
  332. rules: [{
  333. required: true,
  334. message: "請輸入填報人員工號",
  335. trigger: "blur"
  336. }]
  337. },
  338. {
  339. label: "填報人姓名",
  340. prop: "fillingName",
  341. addDisplay: false,
  342. editDisplay: false,
  343. rules: [{
  344. required: true,
  345. message: "請輸入填報人姓名",
  346. trigger: "blur"
  347. }]
  348. },
  349. /* {
  350. label: "確認人員工號",
  351. prop: "confirmNo",
  352. hide: true,
  353. addDisplay: false,
  354. rules: [{
  355. required: true,
  356. message: "請輸入確認人員工號",
  357. trigger: "blur"
  358. }]
  359. },
  360. {
  361. label: "確認人姓名",
  362. prop: "confirmName",
  363. hide: true,
  364. addDisplay: false,
  365. rules: [{
  366. required: true,
  367. message: "請輸入確認人姓名",
  368. trigger: "blur"
  369. }]
  370. },*/
  371. {
  372. label: "確認人",
  373. prop: "personName",
  374. hide: true,
  375. // addDisplay: false,
  376. rules: [{
  377. required: true,
  378. message: "請輸入審批人",
  379. trigger: "change"
  380. }]
  381. },
  382. {
  383. label: "確認人員工號",
  384. prop: "personNo",
  385. hide: true,
  386. // addDisplay: false,
  387. disabled: true,
  388. rules: [{
  389. required: true,
  390. message: "請輸入",
  391. trigger: "blur"
  392. }]
  393. },
  394. {
  395. label: "填報時間",
  396. prop: "fillingDate",
  397. addDisplay: false,
  398. editDisplay: false,
  399. rules: [{
  400. required: true,
  401. message: "請輸入填報日期及時間",
  402. trigger: "blur"
  403. }]
  404. },
  405. {
  406. label: "審批時間",
  407. prop: "approveTime",
  408. hide: true,
  409. addDisplay: false,
  410. editDisplay: false,
  411. rules: [{
  412. required: true,
  413. message: "請輸入審批時間",
  414. trigger: "blur"
  415. }]
  416. },
  417. {
  418. label: "進度",
  419. prop: "process",
  420. display: false,
  421. rules: [{
  422. required: true,
  423. message: "請輸入節點",
  424. trigger: "blur"
  425. }]
  426. },
  427. {
  428. label: "是否已完成",
  429. prop: "isCompleted",
  430. hide: true,
  431. display: false,
  432. rules: [{
  433. required: true,
  434. message: "請輸入是否已完成",
  435. trigger: "blur"
  436. }]
  437. },
  438. ]
  439. },
  440. data: []
  441. };
  442. },
  443. computed: {
  444. ...mapGetters(["permission"]),
  445. ...mapGetters(["userInfo"]),
  446. permissionList() {
  447. return {
  448. addBtn: this.vaildData(this.permission.goodsuse_add, false),
  449. viewBtn: this.vaildData(this.permission.goodsuse_view, false),
  450. delBtn: this.vaildData(this.permission.goodsuse_delete, false),
  451. editBtn: this.vaildData(this.permission.goodsuse_edit, false)
  452. };
  453. },
  454. ids() {
  455. let ids = [];
  456. this.selectionList.forEach(ele => {
  457. ids.push(ele.id);
  458. });
  459. return ids.join(",");
  460. }
  461. },
  462. watch: {
  463. 'form.useNumber': {
  464. handler: function(value) {
  465. this.calcBalance();
  466. }
  467. },
  468. 'form.receiptNumber': {
  469. handler: function(value) {
  470. this.calcBalance();
  471. }
  472. },
  473. 'form.writeOffNumber': {
  474. handler: function(value) {
  475. this.calcBalance();
  476. }
  477. },
  478. 'form.type': {
  479. handler: function(value) {
  480. this.calcBalance();
  481. }
  482. },
  483. },
  484. mounted() {
  485. getDeptTree().then(res => {
  486. const column = this.findObject(this.option.column, "orgNos");
  487. let treeData = getTree(res.data.data, this.userInfo.dept_id);
  488. column.dicData = treeData;
  489. });
  490. /*getStandardByCode("goodsuse").then(res => {
  491. const data = res.data.data;
  492. if (data){
  493. this.option.addTitle = data.content;
  494. this.option.editTitle = data.content;
  495. this.option.viewTitle = data.content;
  496. }
  497. });*/
  498. },
  499. methods: {
  500. handleDownload(){
  501. if (this.selectionList.length === 0) {
  502. let tip = "確定下載篩選的" + this.page.total + "條數據嗎?"
  503. this.$confirm(tip, {
  504. confirmButtonText: "確定",
  505. cancelButtonText: "取消",
  506. type: "warning"
  507. })
  508. .then(() => {
  509. getDownloadList(this.query).then(res => {
  510. this.downLoadData(res.data.data, true)
  511. });
  512. })
  513. }else{
  514. this.downLoadData(this.selectionList, false)
  515. }
  516. },
  517. downLoadData(data, isAll){
  518. let columns = this.deepClone(this.option.column);
  519. for (let i = 0; i < columns.length; i++) {
  520. let item = columns[i];
  521. if (item.hide || item.prop == 'process'){
  522. columns.splice(i, 1);
  523. i--;
  524. }
  525. if (!isAll && (item.type == 'select' || item.type == 'tree')){
  526. item.prop = '$' + item.prop;
  527. }
  528. }
  529. this.$Export.excel({
  530. title: "使用及出入庫登記表" || new Date().getTime(),
  531. columns: columns,
  532. data: data
  533. });
  534. },
  535. calcBalance(){
  536. /*if (this.type != 'add'){
  537. return;
  538. }*/
  539. if (!this.form.type || this.form.useNumber == undefined){
  540. return;
  541. }
  542. if (!this.form.receiptNumber){
  543. this.form.receiptNumber = 0;
  544. }
  545. if (!this.form.writeOffNumber){
  546. this.form.writeOffNumber = 0;
  547. }
  548. getLastByType(this.form.type).then(res => {
  549. const data = res.data.data;
  550. let lastBalance = 0;
  551. this.form.lastBalance = 0;
  552. if (data && Object.keys(data).length > 0){
  553. lastBalance = data.balance;
  554. this.form.lastBalance = lastBalance;
  555. }
  556. this.form.balance = lastBalance + this.form.receiptNumber - this.form.writeOffNumber - this.form.useNumber;
  557. });
  558. },
  559. transferCallback(row){
  560. if (this.selectionList && this.selectionList.length > 0 && this.selectionList[0].personNo == row.ehr){
  561. this.$message.warning("移交人不能為原審批人,請重新選擇!")
  562. return;
  563. }
  564. transfer(this.ids, row.ehr).then(() => {
  565. this.onLoad(this.page);
  566. this.transferVisible = false;
  567. this.$message({
  568. type: "success",
  569. message: "移交成功!"
  570. });
  571. });
  572. },
  573. selectCallback(row){
  574. this.form.personId = row.id;
  575. this.form.personNo = row.ehr;
  576. this.form.personName = row.name;
  577. },
  578. settingCallback(row){
  579. this.form.personId = row.personId;
  580. this.form.personNo = row.personNo;
  581. this.form.personName = row.personName;
  582. settingSave(this.form).then(() => {
  583. this.onLoad(this.page);
  584. this.$message({
  585. type: "success",
  586. message: "操作成功!"
  587. });
  588. }, error => {
  589. window.console.log('error');
  590. });
  591. },
  592. handleSetting(){
  593. getSetting().then((res) => {
  594. let data = res.data.data;
  595. if (!!data){
  596. this.personId = data.personId;
  597. this.personNo = data.personNo;
  598. this.personName = data.personName;
  599. }
  600. });
  601. this.settingVisible = true;
  602. },
  603. handleTransfer(){
  604. if (this.selectionList.length === 0) {
  605. this.$message.warning("請選擇至少一條數據");
  606. return;
  607. }
  608. let personSet = new Set(), processSet = new Set();
  609. for (let i = 0; i < this.selectionList.length; i++) {
  610. let item = this.selectionList[i];
  611. personSet.add(item.personNo);
  612. processSet.add(item.process)
  613. }
  614. if (personSet.size > 1 || processSet.size > 1 || !processSet.has(2)){
  615. this.$message.warning("請選擇同一人員的待確認任務!");
  616. return;
  617. }
  618. this.transferVisible = true;
  619. },
  620. rowSave(row, done, loading) {
  621. add(row).then(() => {
  622. this.onLoad(this.page);
  623. this.$message({
  624. type: "success",
  625. message: "操作成功!"
  626. });
  627. done();
  628. }, error => {
  629. loading();
  630. window.console.log(error);
  631. });
  632. },
  633. rowUpdate(row, index, done, loading) {
  634. update(row).then(() => {
  635. this.onLoad(this.page);
  636. this.$message({
  637. type: "success",
  638. message: "操作成功!"
  639. });
  640. done();
  641. }, error => {
  642. loading();
  643. console.log(error);
  644. });
  645. },
  646. rowDel(row) {
  647. this.$confirm("確定將選擇數據刪除?", {
  648. confirmButtonText: "確定",
  649. cancelButtonText: "取消",
  650. type: "warning"
  651. })
  652. .then(() => {
  653. return remove(row.id);
  654. })
  655. .then(() => {
  656. this.onLoad(this.page);
  657. this.$message({
  658. type: "success",
  659. message: "操作成功!"
  660. });
  661. });
  662. },
  663. handleDelete() {
  664. if (this.selectionList.length === 0) {
  665. this.$message.warning("請選擇至少一條數據");
  666. return;
  667. }
  668. this.$confirm("確定將選擇數據刪除?", {
  669. confirmButtonText: "確定",
  670. cancelButtonText: "取消",
  671. type: "warning"
  672. })
  673. .then(() => {
  674. return remove(this.ids);
  675. })
  676. .then(() => {
  677. this.onLoad(this.page);
  678. this.$message({
  679. type: "success",
  680. message: "操作成功!"
  681. });
  682. this.$refs.crud.toggleSelection();
  683. });
  684. },
  685. beforeOpen(done, type) {
  686. this.type = type;
  687. if (type === 'add'){
  688. this.form.writeOffNumber = 0;
  689. this.form.receiptNumber = 0;
  690. this.form.handoverDate = dateFormat(new Date(), "yyyy-MM-dd hh:mm");
  691. this.calcBalance();
  692. getCurrentDept().then(res => {
  693. const data = res.data.data;
  694. this.form.bankNo = data.bankNo;
  695. this.form.orgNo = data.orgNo;
  696. });
  697. /*getSetting().then((res) => {
  698. let data = res.data.data;
  699. if (!!data) {
  700. this.form.personId = data.personId;
  701. this.form.personNo = data.personNo;
  702. this.form.personName = data.personName;
  703. }
  704. })*/
  705. /*let userInfoStr = localStorage.getItem("saber-userInfo");
  706. let userInfo = JSON.parse(userInfoStr);
  707. this.form.personId =userInfo.content.user_id;
  708. this.form.personNo =userInfo.content.user_ehr;
  709. this.form.personName =userInfo.content.user_name;*/
  710. }
  711. if (["edit", "view"].includes(type)) {
  712. getDetail(this.form.id).then(res => {
  713. this.form = res.data.data;
  714. });
  715. }
  716. done();
  717. },
  718. searchReset() {
  719. this.query = {};
  720. this.onLoad(this.page);
  721. },
  722. searchChange(params, done) {
  723. if (params.dateRange){
  724. params.date_begin = params.dateRange[0], params.date_end = params.dateRange[1];
  725. params.dateRange = null;
  726. }
  727. if (params.orgNos){
  728. params.orgNostr = params.orgNos.join();
  729. params.orgNos = '';
  730. }
  731. if (params.type){
  732. params.type = params.type.join();
  733. }
  734. this.query = params;
  735. this.page.currentPage = 1;
  736. this.onLoad(this.page, params);
  737. done();
  738. },
  739. selectionChange(list) {
  740. this.selectionList = list;
  741. if (list && list.length > 0){
  742. let delFlag = true;
  743. // userInfo.user_id == row.createUser && row.process != 3
  744. for (let i = 0; i < list.length; i++) {
  745. let item = list[i];
  746. delFlag = delFlag && item.createUser == this.userInfo.user_id && item.process != 3;
  747. }
  748. this.delBatchBtn = !delFlag;
  749. }else{
  750. this.delBatchBtn = true;
  751. }
  752. },
  753. selectionClear() {
  754. this.selectionList = [];
  755. this.$refs.crud.toggleSelection();
  756. },
  757. currentChange(currentPage){
  758. this.page.currentPage = currentPage;
  759. },
  760. sizeChange(pageSize){
  761. this.page.pageSize = pageSize;
  762. },
  763. refreshChange() {
  764. this.onLoad(this.page, this.query);
  765. },
  766. onLoad(page, params = {}) {
  767. this.loading = true;
  768. params.createUser = this.userInfo.user_id;
  769. getList(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => {
  770. const data = res.data.data;
  771. this.page.total = data.total;
  772. this.data = data.records;
  773. this.loading = false;
  774. this.selectionClear();
  775. });
  776. }
  777. }
  778. };
  779. </script>
  780. <style>
  781. </style>