tobeconfirm-goodsuse.vue 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418
  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="process" slot-scope="{row, index}">
  22. <el-tag size="small " type="warning" plain v-if="row.process == 2">待確認</el-tag>
  23. <el-tag size="small " type="success" plain v-if="row.process == 3">已確認</el-tag>
  24. </template>
  25. <template slot="menu" slot-scope="{row, index}">
  26. <el-button size="small" class="el-button--text" @click="$refs.crud.rowView(row, index)"><i class="el-icon-view"></i> 查 看</el-button>
  27. <el-button size="mini " type="primary" plain v-if="permission.goodsuse_confirm && row.process == 2" @click="form = row, sureVisible = true">去確認</el-button>
  28. </template>
  29. </avue-crud>
  30. <el-dialog :append-to-body="true" :modal-append-to-body="false" :visible.sync="sureVisible" title="確認">
  31. <goodsuse-sure :form="form" @close="sureVisible = false, onLoad(page)"></goodsuse-sure>
  32. </el-dialog>
  33. </basic-container>
  34. </template>
  35. <script>
  36. import {getList, getDetail, add, update, remove, getSetting, settingSave} from "@/api/bank/goodsuse";
  37. import {mapGetters} from "vuex";
  38. import FlowSettings from "../../components/common/flow-settings";
  39. import {dateFormat} from "../../util/date";
  40. import { getCurrentDept } from "@/api/system/dept";
  41. import SelectDialogUser from "../../components/select-dialog/select-dialog-user";
  42. import GoodsuseSure from "../../components/common/goodsuse-sure";
  43. export default {
  44. components: {GoodsuseSure, SelectDialogUser, FlowSettings},
  45. name: "tobeconfirm-goodsuse",
  46. data() {
  47. return {
  48. sureVisible: false,
  49. form: {},
  50. query: {},
  51. loading: true,
  52. page: {
  53. pageSize: 10,
  54. currentPage: 1,
  55. total: 0
  56. },
  57. selectionList: [],
  58. option: {
  59. height:'auto',
  60. calcHeight: 30,
  61. tip: false,
  62. searchShow: true,
  63. searchMenuSpan: 6,
  64. border: true,
  65. index: true,
  66. addBtn: false,
  67. viewBtn: false,
  68. editBtn: false,
  69. delBtn: false,
  70. selection: true,
  71. dialogClickModal: false,
  72. column: [
  73. {
  74. label: "銀行號",
  75. prop: "bankNo",
  76. disabled: true,
  77. rules: [{
  78. required: true,
  79. message: "请输入銀行號",
  80. trigger: "blur"
  81. }]
  82. },
  83. {
  84. label: "機構號",
  85. prop: "orgNo",
  86. disabled: true,
  87. rules: [{
  88. required: true,
  89. message: "请输入機構號",
  90. trigger: "blur"
  91. }]
  92. },
  93. {
  94. label: "日期",
  95. prop: "date",
  96. type: "datetime",
  97. format: "yyyy-MM-dd",
  98. valueFormat: "yyyy-MM-dd",
  99. rules: [{
  100. required: true,
  101. message: "请输入日期",
  102. trigger: "blur"
  103. }]
  104. },
  105. {
  106. label: "憑證/實物種類",
  107. prop: "type",
  108. type: "select",
  109. dicUrl: "/api/blade-system/dict/dictionary?code=voucher_type",
  110. props: {
  111. label: "dictValue",
  112. value: "dictKey"
  113. },
  114. dicFormatter: (res) => {
  115. res.data.forEach(item => {item.disabled = item.isSealed == 1;})
  116. return res.data;
  117. },
  118. rules: [{
  119. required: true,
  120. message: "请输入憑證/實物種類",
  121. trigger: "blur"
  122. }]
  123. },
  124. {
  125. label: "使用數量",
  126. prop: "useNumber",
  127. type: "number",
  128. rules: [{
  129. required: true,
  130. message: "请输入使用數量",
  131. trigger: "blur"
  132. }]
  133. },
  134. {
  135. label: "領入數量",
  136. prop: "receiptNumber",
  137. type: "number",
  138. rules: [{
  139. required: false,
  140. message: "请输入領入數量",
  141. trigger: "blur"
  142. }]
  143. },
  144. {
  145. label: "註銷數量",
  146. prop: "writeOffNumber",
  147. type: "number",
  148. rules: [{
  149. required: false,
  150. message: "请输入註銷數量",
  151. trigger: "blur"
  152. }]
  153. },
  154. {
  155. label: "開始編號",
  156. prop: "beginNo",
  157. rules: [{
  158. required: false,
  159. message: "请输入開始編號",
  160. trigger: "blur"
  161. }]
  162. },
  163. {
  164. label: "結束編號",
  165. prop: "endNo",
  166. rules: [{
  167. required: false,
  168. message: "请输入結束編號",
  169. trigger: "blur"
  170. }]
  171. },
  172. {
  173. label: "餘額",
  174. prop: "balance",
  175. rules: [{
  176. required: true,
  177. message: "请输入餘額",
  178. trigger: "blur"
  179. }]
  180. },
  181. {
  182. label: "備註",
  183. prop: "remark",
  184. rules: [{
  185. required: false,
  186. message: "请输入備註",
  187. trigger: "blur"
  188. }]
  189. },
  190. {
  191. label: "填報人員工號",
  192. prop: "fillingNo",
  193. addDisplay: false,
  194. rules: [{
  195. required: true,
  196. message: "请输入填報人員工號",
  197. trigger: "blur"
  198. }]
  199. },
  200. {
  201. label: "填報人姓名",
  202. prop: "fillingName",
  203. addDisplay: false,
  204. rules: [{
  205. required: true,
  206. message: "请输入填報人姓名",
  207. trigger: "blur"
  208. }]
  209. },
  210. {
  211. label: "確認人員工號",
  212. prop: "confirmNo",
  213. hide: true,
  214. addDisplay: false,
  215. rules: [{
  216. required: true,
  217. message: "请输入確認人員工號",
  218. trigger: "blur"
  219. }]
  220. },
  221. {
  222. label: "確認人姓名",
  223. prop: "confirmName",
  224. hide: true,
  225. addDisplay: false,
  226. rules: [{
  227. required: true,
  228. message: "请输入確認人姓名",
  229. trigger: "blur"
  230. }]
  231. },
  232. {
  233. label: "填報時間",
  234. prop: "fillingDate",
  235. addDisplay: false,
  236. rules: [{
  237. required: true,
  238. message: "请输入填報日期及時間",
  239. trigger: "blur"
  240. }]
  241. },
  242. {
  243. label: "確認人",
  244. prop: "personName",
  245. hide: true,
  246. // addDisplay: false,
  247. rules: [{
  248. required: true,
  249. message: "请输入審批人",
  250. trigger: "blur"
  251. }]
  252. },
  253. {
  254. label: "確認人員工號",
  255. prop: "personNo",
  256. hide: true,
  257. // addDisplay: false,
  258. disabled: true,
  259. rules: [{
  260. required: true,
  261. message: "请输入",
  262. trigger: "blur"
  263. }]
  264. },
  265. {
  266. label: "審批時間",
  267. prop: "approveTime",
  268. hide: true,
  269. addDisplay: false,
  270. rules: [{
  271. required: true,
  272. message: "请输入審批時間",
  273. trigger: "blur"
  274. }]
  275. },
  276. {
  277. label: "節點",
  278. prop: "process",
  279. addDisplay: false,
  280. rules: [{
  281. required: true,
  282. message: "请输入節點",
  283. trigger: "blur"
  284. }]
  285. },
  286. {
  287. label: "是否已完成",
  288. prop: "isCompleted",
  289. hide: true,
  290. addDisplay: false,
  291. rules: [{
  292. required: true,
  293. message: "请输入是否已完成",
  294. trigger: "blur"
  295. }]
  296. },
  297. ]
  298. },
  299. data: []
  300. };
  301. },
  302. computed: {
  303. ...mapGetters(["permission"]),
  304. permissionList() {
  305. return {
  306. addBtn: this.vaildData(this.permission.goodsuse_add, false),
  307. viewBtn: this.vaildData(this.permission.goodsuse_view, false),
  308. delBtn: this.vaildData(this.permission.goodsuse_delete, false),
  309. editBtn: this.vaildData(this.permission.goodsuse_edit, false)
  310. };
  311. },
  312. ids() {
  313. let ids = [];
  314. this.selectionList.forEach(ele => {
  315. ids.push(ele.id);
  316. });
  317. return ids.join(",");
  318. }
  319. },
  320. methods: {
  321. rowDel(row) {
  322. this.$confirm("确定将选择数据删除?", {
  323. confirmButtonText: "确定",
  324. cancelButtonText: "取消",
  325. type: "warning"
  326. })
  327. .then(() => {
  328. return remove(row.id);
  329. })
  330. .then(() => {
  331. this.onLoad(this.page);
  332. this.$message({
  333. type: "success",
  334. message: "操作成功!"
  335. });
  336. });
  337. },
  338. handleDelete() {
  339. if (this.selectionList.length === 0) {
  340. this.$message.warning("请选择至少一条数据");
  341. return;
  342. }
  343. this.$confirm("确定将选择数据删除?", {
  344. confirmButtonText: "确定",
  345. cancelButtonText: "取消",
  346. type: "warning"
  347. })
  348. .then(() => {
  349. return remove(this.ids);
  350. })
  351. .then(() => {
  352. this.onLoad(this.page);
  353. this.$message({
  354. type: "success",
  355. message: "操作成功!"
  356. });
  357. this.$refs.crud.toggleSelection();
  358. });
  359. },
  360. beforeOpen(done, type) {
  361. if (["edit", "view"].includes(type)) {
  362. getDetail(this.form.id).then(res => {
  363. this.form = res.data.data;
  364. });
  365. }
  366. done();
  367. },
  368. searchReset() {
  369. this.query = {};
  370. this.onLoad(this.page);
  371. },
  372. searchChange(params, done) {
  373. this.query = params;
  374. this.page.currentPage = 1;
  375. this.onLoad(this.page, params);
  376. done();
  377. },
  378. selectionChange(list) {
  379. this.selectionList = list;
  380. },
  381. selectionClear() {
  382. this.selectionList = [];
  383. this.$refs.crud.toggleSelection();
  384. },
  385. currentChange(currentPage){
  386. this.page.currentPage = currentPage;
  387. },
  388. sizeChange(pageSize){
  389. this.page.pageSize = pageSize;
  390. },
  391. refreshChange() {
  392. this.onLoad(this.page, this.query);
  393. },
  394. onLoad(page, params = {}) {
  395. this.loading = true;
  396. params.process = 2;// 待确认
  397. getList(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => {
  398. const data = res.data.data;
  399. this.page.total = data.total;
  400. this.data = data.records;
  401. this.loading = false;
  402. this.selectionClear();
  403. });
  404. }
  405. }
  406. };
  407. </script>
  408. <style>
  409. </style>