deposit_list.vue 9.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366
  1. <template>
  2. <div style="width: 100%; height: 100%">
  3. <template-page
  4. v-show="showPage == 1"
  5. ref="pageRef"
  6. :operation="operation()"
  7. :optionsEvensGroup="optionsEvensGroup"
  8. :getList="getList2"
  9. :exportList="exportList"
  10. :tableAttributes="tableAttributes"
  11. :tableEvents="tableEvents"
  12. :columnParsing="columnParsing"
  13. :fieldBeansHook="fieldBeansHook"
  14. >
  15. </template-page>
  16. <div class="app-container" v-if="showPage == 2">
  17. <DepositListDetail
  18. @updateList="updateList"
  19. :depositManageId="depositManageId"
  20. :refEnginRecordNo="refEnginRecordNo"
  21. @setShowPage="
  22. val => {
  23. $refs.pageRef.refreshList()
  24. showPage = val
  25. }
  26. "
  27. />
  28. </div>
  29. <div class="app-container" v-else-if="showPage == 3">
  30. <DepositApplyDeduction
  31. @updateList="updateList"
  32. :depositManageId="depositManageId"
  33. :refEnginRecordNo="refEnginRecordNo"
  34. @setShowPage="
  35. val => {
  36. $refs.pageRef.refreshList()
  37. showPage = val
  38. }
  39. "
  40. />
  41. </div>
  42. <div class="app-container" v-else-if="showPage == 4">
  43. <DepositApplySurrender
  44. @updateList="updateList"
  45. :depositManageId="depositManageId"
  46. :refEnginRecordNo="refEnginRecordNo"
  47. @setShowPage="
  48. val => {
  49. $refs.pageRef.refreshList()
  50. showPage = val
  51. }
  52. "
  53. />
  54. </div>
  55. <div class="app-container" v-else-if="showPage == 5">
  56. <deposit_replenish
  57. @updateList="updateList"
  58. :depositManageId="depositManageId"
  59. :refEnginRecordNo="refEnginRecordNo"
  60. @setShowPage="
  61. val => {
  62. $refs.pageRef.refreshList()
  63. showPage = val
  64. }
  65. "
  66. />
  67. </div>
  68. </div>
  69. </template>
  70. <script>
  71. import DepositListDetail from './components/deposit_list-detail'
  72. import { getDepositManageDate } from '@/api/engin_deposit/refund_list'
  73. import DepositApplyDeduction from './components/deposit-apply-deduction.vue'
  74. import DepositApplySurrender from './components/deposit-apply-surrender.vue'
  75. import { downloadFiles, handleImport } from '@/utils/util'
  76. import { depositManageHomeList, depositManageHomeListExport } from '@/api/deposit_list_v2.js'
  77. import TemplatePage from '@/components/template/template-page-1.vue'
  78. import Mixin from '@/mixin'
  79. import deposit_replenish from './components/deposit_replenish.vue'
  80. export default {
  81. components: {
  82. DepositListDetail,
  83. DepositApplyDeduction,
  84. DepositApplySurrender,
  85. deposit_replenish,
  86. TemplatePage
  87. },
  88. data() {
  89. return {
  90. currentPage: 1, // 当前页码
  91. pageSize: 10, // 每页数量
  92. listTotal: 0, // 列表总数
  93. dataList: [], // 列表数据
  94. screenForm: {
  95. confirmName: '', // 审核人
  96. createName: '', // 创建人
  97. customerKeyword: '', // 客户编码/客户名称
  98. endDeliverTime: '', // 发货申请日期-结束
  99. enginOrderNo: '', // 工程订单编号
  100. enginOrderType: 'HOME', // 工程订单类型
  101. examineStatus: '', // 状态
  102. refEnginRecordNo: '', // 登录单号
  103. refProjectName: '', // 项目名称
  104. refTradeCategory: '',
  105. refUseUnit: '', // 使用单位
  106. startDeliverTime: '', // 发货申请日期-开始
  107. startSubmitTime: '',
  108. startConfirmTime: '',
  109. isRefundDeposit: null,
  110. endConfirmTime: '',
  111. startInstallTime: '',
  112. endInstallTime: '',
  113. specification: '',
  114. refFactoryNo: '',
  115. factoryNo: '',
  116. specialNo: '',
  117. refRegionWork: '',
  118. endSubmitTime: '',
  119. startAcceptTime: '',
  120. endAcceptTime: '',
  121. geLiInerNote: '',
  122. startFactoryNo: '',
  123. endFactoryNo: '',
  124. startSpecialNo: '',
  125. endSpecialNo: '',
  126. startBillNo: '',
  127. endBillNo: '',
  128. mailFactoryYear: '',
  129. startConfirmDate: '',
  130. endConfirmDate: '',
  131. settlementNo: '',
  132. startSettlementDate: '',
  133. endSettlementDate: '',
  134. startInFactoryDate: '',
  135. endInFactoryDate: '',
  136. startSettlementNo: '',
  137. endSettlementNo: '',
  138. inFactoryType: '',
  139. endMailFactoryDate: '',
  140. startMailFactoryDate: '',
  141. settlementStatus: '',
  142. mailFactoryStatus: '',
  143. endOrderDate: '',
  144. startOrderDate: ''
  145. }, // 搜索表单
  146. listLoading: false, // 列表加载loading
  147. deduction: '全部',
  148. showPage: 1,
  149. importFileList: [],
  150. selectData: [],
  151. baseURL: '',
  152. isCollapse: true,
  153. refundDepositArr: [
  154. {
  155. label: '是',
  156. value: true
  157. },
  158. {
  159. label: '否',
  160. value: false
  161. }
  162. ],
  163. mailFactoryStatus: '',
  164. settlementStatus: '',
  165. examineStatusArr: [
  166. {
  167. label: '保存',
  168. value: 'SAVE'
  169. },
  170. {
  171. label: '待审核',
  172. value: 'WAIT'
  173. },
  174. {
  175. label: '通过',
  176. value: 'OK'
  177. },
  178. {
  179. label: '关闭',
  180. value: 'CLOSE'
  181. }
  182. ],
  183. // 表格属性
  184. tableAttributes: {
  185. // 启用勾选列
  186. selectColumn: false
  187. },
  188. // 表格事件
  189. tableEvents: {
  190. 'selection-change': this.selectionChange
  191. },
  192. recordSelected: [],
  193. depositManageId: '',
  194. refEnginRecordNo: ''
  195. }
  196. },
  197. computed: {
  198. optionsEvensGroup() {
  199. return [
  200. [
  201. [
  202. {
  203. name: '',
  204. isRole: !this.isCustomer,
  205. render: () => {
  206. return (
  207. <el-upload
  208. action={this.baseURL + 'student/import'}
  209. http-request={this.handleImport}
  210. file-list={this.importFileList}
  211. show-file-list={false}
  212. >
  213. <span>导入</span>
  214. </el-upload>
  215. )
  216. }
  217. }
  218. ]
  219. ]
  220. ]
  221. },
  222. isCustomer() {
  223. return this.$store.getters.customerId && this.$store.getters.customerNumber
  224. }
  225. },
  226. methods: {
  227. updateList() {
  228. this.$refs.pageRef.refreshList()
  229. },
  230. fieldBeansHook(list) {
  231. if (this.isCustomer) {
  232. var newlist = [...list]
  233. for (var i = 0; i < newlist.length; i++) {
  234. if (newlist[i].jname === 'geLiInerNote') {
  235. newlist.splice(i, 1)
  236. break
  237. }
  238. }
  239. return newlist
  240. }
  241. return list
  242. },
  243. // 列表请求函数
  244. getList2: depositManageHomeList,
  245. // 列表导出函数
  246. exportList: depositManageHomeListExport,
  247. // 表格列解析渲染数据更改
  248. columnParsing(item, defaultData) {
  249. return defaultData
  250. },
  251. // 监听勾选变化
  252. selectionChange(data) {
  253. this.recordSelected = data
  254. },
  255. operation() {
  256. return (h, { row, index, column }) => {
  257. return (
  258. <div class="operation-btns">
  259. <el-button
  260. type="text"
  261. class="textColor"
  262. size="mini"
  263. onClick={() => {
  264. this.detailFn(row)
  265. }}
  266. >
  267. 详情
  268. </el-button>
  269. {row.examineStatus == '保存' && this.$checkBtnRole('apply', this.$route.meta.roles) ? (
  270. <el-button
  271. type="text"
  272. class="textColor"
  273. onClick={() => {
  274. this.surrenderFn(row)
  275. }}
  276. >
  277. 申请退押
  278. </el-button>
  279. ) : null}
  280. {((row.examineStatus == '审核通过' && row.dataState == '补充') ||
  281. (row.examineStatus == '审核通过' && row.dataState == '正常')) &&
  282. this.isCustomer ? (
  283. <el-button
  284. type="text"
  285. class="textColor"
  286. onClick={() => {
  287. this.replenishClick(row.depositManageId)
  288. }}
  289. >
  290. 补充资料
  291. </el-button>
  292. ) : null}
  293. </div>
  294. )
  295. }
  296. },
  297. // ------------------------------------
  298. replenishClick(id) {
  299. this.depositManageId = id
  300. this.showPage = 5
  301. },
  302. reexamineClick(id) {
  303. this.detailId = id
  304. this.showSurrender = 3
  305. },
  306. // 同步资料日期
  307. async syncDateFn() {
  308. await getDepositManageDate()
  309. this.$message.success('同步资料日期成功')
  310. },
  311. // 免扣申请
  312. deductionFn() {
  313. this.showPage = 3
  314. },
  315. // 申请退押
  316. surrenderFn(row) {
  317. this.depositManageId = row.depositManageId
  318. this.showPage = 4
  319. },
  320. detailFn(row) {
  321. this.depositManageId = row.depositManageId
  322. this.refEnginRecordNo = row.refEnginRecordNo
  323. this.showPage = 2
  324. },
  325. hanleDownloadFiles() {
  326. let isRefundDeposit = this.deduction === '已退押' ? true : ''
  327. if (this.screenForm.isRefundDeposit == true || this.screenForm.isRefundDeposit == false) {
  328. isRefundDeposit = this.screenForm.isRefundDeposit
  329. }
  330. downloadFiles('deposit-manage/export', {
  331. ...this.screenForm,
  332. isRefundDeposit,
  333. orderType: 'HOME'
  334. })
  335. },
  336. // 导入
  337. async handleImport(param) {
  338. this.importLoading = true
  339. const file = param.file
  340. const formData = new FormData()
  341. formData.append('file', file)
  342. const result = await handleImport('deposit-manage/import', formData)
  343. this.importLoading = false
  344. this.importFileList = []
  345. if (result.code == 200) {
  346. this.$alert(result.message, '导入成功', {
  347. confirmButtonText: '确定'
  348. })
  349. this.$refs.pageRef.refreshList()
  350. } else {
  351. this.$alert(result.message, '导入失败', {
  352. confirmButtonText: '确定'
  353. })
  354. }
  355. },
  356. handleSelectionAllChange(e) {
  357. this.selectData = e
  358. }
  359. }
  360. }
  361. </script>
  362. <style lang="scss" scoped></style>