Compare commits

...

63 Commits

Author SHA1 Message Date
yujialong 333c7c9ebb fix 2 weeks ago
yujialong 1ed979b853 fix 2 weeks ago
yujialong fbb6eb61de fix 4 weeks ago
yujialong 2dd4cf8180 fix 1 month ago
yujialong 7d405d1daf 企业贷款回显 1 month ago
yujialong 947e28dd9d fix 2 months ago
yujialong 6207d29f6f fix 2 months ago
yujialong d469a1f86f fix 2 months ago
yujialong 6626316a7f fix 2 months ago
yujialong 069d84fc0d fix 2 months ago
yujialong 8b5481c175 fix 2 months ago
yujialong 6a91504fc5 bug修复 2 months ago
yujialong eba2da3c2d fix 2 months ago
yujialong d987fef680 实验报告修复 3 months ago
yujialong de14d96d30 fix 3 months ago
yujialong 92a9475c60 fix 4 months ago
yujialong e5ff0cf593 fix 5 months ago
yujialong 8f6f3d7dcf 贷款业务联调 5 months ago
yujialong 5172cd1234 贷款业务联调 5 months ago
yujialong 2de86fced4 贷款联调 5 months ago
yujialong 317228af2d 贷款业务 5 months ago
yujialong 921cf1f228 个人贷款 5 months ago
yujialong faccbdd5f7 贷款业务 5 months ago
yujialong ec9e3319a0 外汇等联调 5 months ago
yujialong e5239c3c53 代理业务 5 months ago
yujialong 45dfe32c87 代收水费、电费 5 months ago
yujialong e48876d125 代收水费 5 months ago
yujialong 1cc5ac52bc 外汇等 6 months ago
yujialong 489286f758 外汇业务联调 6 months ago
yujialong e0cf703271 网银联调 6 months ago
yujialong 88d7e50f6e fix 6 months ago
yujialong bdc5f09888 外汇业务 6 months ago
yujialong 8b9ac8c068 网上银行开户开发完成 6 months ago
yujialong 8b768a0671 授信申请、贷款申请 6 months ago
yujialong 5ccfd2aa1f 授信申请 6 months ago
yujialong b5a1982168 遗留bug修复 6 months ago
yujialong a9aa216bee 个人贷款等 6 months ago
yujialong 99d3072817 个人贷款 9 months ago
yujialong 18533d3fc7 公司贷款(未完成) 10 months ago
yujialong e8e11376be 个人贷款 10 months ago
yujialong f52e2076c0 代理、网银、外汇 3个业务页面开发完成 10 months ago
yujialong 74f9ae8920 fix 10 months ago
yujialong b60282b643 百度统计 11 months ago
yujialong 804dcdf7ce fix 12 months ago
yujialong 57f4012635 bug修复,oss全部替换完成 1 year ago
yujialong 5465512d8e fix 1 year ago
yujialong d7149a99ee fix 1 year ago
yujialong 7cad626d93 fix 1 year ago
yujialong 128d944307 fix 1 year ago
yujialong d7878f56e6 fix 1 year ago
yujialong 42eba9d7f8 fix 1 year ago
yujialong a437e809d0 百度统计 1 year ago
yujialong 457a039bd4 fix 1 year ago
yujialong a823365509 实验报告 1 year ago
wangchenguang 2cf63091a1 修复bug 2 years ago
wangchenguang 261fa8cfb3 修复bug 2 years ago
wangchenguang 3dcd598515 修复bug 2 years ago
wangchenguang 01faf74109 修复bug 2 years ago
dawnwang cbdcde46e5 修复禅道933 926bug 2 years ago
yujialong 0e21fed59b fix 2 years ago
yujialong ff8832297a fix 2 years ago
yujialong 670ad6e0fe 后台添加已提交验证等 2 years ago
yujialong 8b614eeaf6 实验报告等 2 years ago
  1. 32
      d
  2. 422
      package-lock.json
  3. 2
      package.json
  4. 27
      public/index.html
  5. 36
      src/App.vue
  6. 42
      src/api/api.js
  7. 113
      src/api/http.js
  8. BIN
      src/assets/img/arrow-right.png
  9. BIN
      src/assets/img/goods/businessReportMiss.png
  10. BIN
      src/assets/img/goods/businessReportMissUser2.png
  11. BIN
      src/assets/img/goods/businessReportMissUser3.png
  12. BIN
      src/assets/img/goods/syb.jpg
  13. BIN
      src/assets/img/goods/xhsqs.png
  14. BIN
      src/assets/img/goods/xjllb.jpg
  15. BIN
      src/assets/img/goods/zcfzb.jpg
  16. BIN
      src/assets/img/point.png
  17. BIN
      src/assets/img/report1.png
  18. BIN
      src/assets/img/report2.png
  19. BIN
      src/assets/img/report3.png
  20. BIN
      src/assets/img/report4.png
  21. BIN
      src/assets/img/report5.png
  22. 1
      src/assets/img/systemInput/个人贷款.svg
  23. 1
      src/assets/img/systemInput/代理业务.svg
  24. 1
      src/assets/img/systemInput/公司贷款.svg
  25. 1
      src/assets/img/systemInput/外汇业务.svg
  26. 1
      src/assets/img/systemInput/网上银行.svg
  27. 4
      src/assets/svg/financial.svg
  28. 4
      src/components/backButton/index.vue
  29. 67
      src/components/breadcrumb/index.vue
  30. 350
      src/components/case/index.vue
  31. 3
      src/components/checkPhoto/index.vue
  32. 170
      src/components/dialog/index.vue
  33. 49
      src/components/dialogTwo/index.vue
  34. 78
      src/components/quill/index.vue
  35. 48
      src/components/selectBusiness/index.vue
  36. 15
      src/components/upload/config.js
  37. 150
      src/components/upload/index.vue
  38. 37
      src/components/upload/upload.js
  39. 49
      src/layouts/header/index.vue
  40. 4
      src/layouts/home/index.vue
  41. 70
      src/libs/util.js
  42. 9
      src/main.js.rej
  43. 5
      src/mixins/tipsBefore/index.js
  44. 615
      src/pages/counter/list/index.vue
  45. 113
      src/pages/counter/list/myConfig.js
  46. 73
      src/pages/index/list/index.vue
  47. 102
      src/pages/lobbyManager/list/index.vue
  48. 116
      src/pages/manage/index/index.vue
  49. 3
      src/pages/manage/list/ImportantCash/controlCash/cashOut.vue
  50. 3
      src/pages/manage/list/ImportantCash/controlCash/cashPaid.vue
  51. 3
      src/pages/manage/list/ImportantCash/controlCash/cashRecipients.vue
  52. 28
      src/pages/manage/list/ImportantCash/controlCash/cashTransferInto.vue
  53. 28
      src/pages/manage/list/ImportantCash/controlCash/index.vue
  54. 3
      src/pages/manage/list/ImportantCash/controlCash2/cashOut.vue
  55. 3
      src/pages/manage/list/ImportantCash/controlCash2/cashPaid.vue
  56. 3
      src/pages/manage/list/ImportantCash/controlCash2/cashRecipients.vue
  57. 3
      src/pages/manage/list/ImportantCash/controlCash2/cashTransferInto.vue
  58. 28
      src/pages/manage/list/ImportantCash/controlCash2/index.vue
  59. 38
      src/pages/manage/list/ImportantCash/controlCash3/index.vue
  60. 183
      src/pages/manage/list/acceptanceDraft/invoice.vue
  61. 207
      src/pages/manage/list/agent/agent.vue
  62. 396
      src/pages/manage/list/agent/electricRate.vue
  63. 388
      src/pages/manage/list/agent/telRate.vue
  64. 373
      src/pages/manage/list/agent/waterRate.vue
  65. 5
      src/pages/manage/list/business/deposit.vue
  66. 163
      src/pages/manage/list/business/openAccount.vue
  67. 37
      src/pages/manage/list/business/transfer.vue
  68. 5
      src/pages/manage/list/business/withdrawal.vue
  69. 3
      src/pages/manage/list/cityWide/cityWideIn.vue
  70. 144
      src/pages/manage/list/cityWide/cityWideOut.vue
  71. 40
      src/pages/manage/list/client/consumerClient.vue
  72. 102
      src/pages/manage/list/client/corporateClient.vue
  73. 111
      src/pages/manage/list/corporateLoans/application.vue
  74. 480
      src/pages/manage/list/corporateLoans/apply/creditApplication/index.vue
  75. 253
      src/pages/manage/list/corporateLoans/apply/creditEvaluation/basic.vue
  76. 139
      src/pages/manage/list/corporateLoans/apply/creditEvaluation/importReport.vue
  77. 294
      src/pages/manage/list/corporateLoans/apply/creditEvaluation/preLoan.vue
  78. 314
      src/pages/manage/list/corporateLoans/apply/creditEvaluation/rating.vue
  79. 257
      src/pages/manage/list/corporateLoans/apply/index.vue
  80. 215
      src/pages/manage/list/corporateLoans/apply/loanApplication/step1.vue
  81. 285
      src/pages/manage/list/corporateLoans/apply/loanApplication/step2.vue
  82. 302
      src/pages/manage/list/corporateLoans/detail.vue
  83. 112
      src/pages/manage/list/corporateLoans/loan.vue
  84. 405
      src/pages/manage/list/corporateLoans/management.vue
  85. 358
      src/pages/manage/list/corporateLoans/repayment.vue
  86. 51
      src/pages/manage/list/dayEnd/branchDayEnd.vue
  87. 3
      src/pages/manage/list/dayEnd/tellerCash.vue
  88. 96
      src/pages/manage/list/dayEnd/tellerCertificate.vue
  89. 193
      src/pages/manage/list/foreignExchange/foreignExchange.vue
  90. 311
      src/pages/manage/list/foreignExchange/puchasing.vue
  91. 289
      src/pages/manage/list/foreignExchange/settlement.vue
  92. 367
      src/pages/manage/list/onlineBank/openAccount.vue
  93. 26
      src/pages/manage/list/personal/accountService/accountService.vue
  94. 54
      src/pages/manage/list/personal/callDeposits/accountClosed.vue
  95. 161
      src/pages/manage/list/personal/callDeposits/openAccount.vue
  96. 5
      src/pages/manage/list/personal/currentAccount/accountCancellation.vue
  97. 4
      src/pages/manage/list/personal/currentAccount/deposit.vue
  98. 48
      src/pages/manage/list/personal/currentAccount/openAccount.vue
  99. 5
      src/pages/manage/list/personal/currentAccount/settle.vue
  100. 5
      src/pages/manage/list/personal/currentAccount/transferAccounts.vue
  101. Some files were not shown because too many files have changed in this diff Show More

32
d

@ -0,0 +1,32 @@
diff.astextplain.textconv=astextplain
filter.lfs.clean=git-lfs clean -- %f
filter.lfs.smudge=git-lfs smudge -- %f
filter.lfs.process=git-lfs filter-process
filter.lfs.required=true
http.sslbackend=openssl
http.sslcainfo=C:/Program Files/Git/mingw64/etc/ssl/certs/ca-bundle.crt
core.autocrlf=true
core.fscache=true
core.symlinks=false
pull.rebase=false
credential.https://dev.azure.com.usehttppath=true
init.defaultbranch=master
filter.lfs.smudge=git-lfs smudge -- %f
filter.lfs.process=git-lfs filter-process
filter.lfs.required=true
filter.lfs.clean=git-lfs clean -- %f
credential.http://121.37.12.51:13000.provider=generic
user.email=728837162@qq.com
user.name=wangchenguang
user.password=huoran.123
credential.helper=wincred
core.repositoryformatversion=0
core.filemode=false
core.bare=false
core.logallrefupdates=true
core.symlinks=false
core.ignorecase=true
remote.origin.url=http://121.37.12.51:13000/huoran/FE_bankTeaching
remote.origin.fetch=+refs/heads/*:refs/remotes/origin/*
branch.master.remote=origin
branch.master.merge=refs/heads/master

422
package-lock.json generated

@ -1993,6 +1993,14 @@
"integrity": "sha512-aT6camzM4xEA54YVJYSqxz1kv4IHnQZRtThJJHhUMRExaU5spC7jX5ugSwTaTgJliIgs4VhZOk7htClvQ/LmRA==", "integrity": "sha512-aT6camzM4xEA54YVJYSqxz1kv4IHnQZRtThJJHhUMRExaU5spC7jX5ugSwTaTgJliIgs4VhZOk7htClvQ/LmRA==",
"dev": true "dev": true
}, },
"agentkeepalive": {
"version": "3.5.2",
"resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-3.5.2.tgz",
"integrity": "sha512-e0L/HNe6qkQ7H19kTlRRqUibEAwDK5AFk6y3PtMsuut2VAH6+Q4xZml1tNDJD7kSAyqmbG/K08K5WEJYtUrSlQ==",
"requires": {
"humanize-ms": "^1.2.1"
}
},
"ajv": { "ajv": {
"version": "6.10.2", "version": "6.10.2",
"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz",
@ -2015,6 +2023,78 @@
"resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.4.1.tgz", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.4.1.tgz",
"integrity": "sha512-RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ==" "integrity": "sha512-RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ=="
}, },
"ali-oss": {
"version": "6.18.1",
"resolved": "https://registry.npmjs.org/ali-oss/-/ali-oss-6.18.1.tgz",
"integrity": "sha512-VsptD0jX3JNc3AjiLs5a9oTP0ArfT9IYhBuY6G/SpuY6LMuiwfqywrAosY65BlHKODAdYy8VWL6kmt0mO7BUGA==",
"requires": {
"address": "^1.2.2",
"agentkeepalive": "^3.4.1",
"bowser": "^1.6.0",
"copy-to": "^2.0.1",
"dateformat": "^2.0.0",
"debug": "^4.3.4",
"destroy": "^1.0.4",
"end-or-error": "^1.0.1",
"get-ready": "^1.0.0",
"humanize-ms": "^1.2.0",
"is-type-of": "^1.4.0",
"js-base64": "^2.5.2",
"jstoxml": "^2.0.0",
"merge-descriptors": "^1.0.1",
"mime": "^2.4.5",
"platform": "^1.3.1",
"pump": "^3.0.0",
"sdk-base": "^2.0.1",
"stream-http": "2.8.2",
"stream-wormhole": "^1.0.4",
"urllib": "2.41.0",
"utility": "^1.18.0",
"xml2js": "^0.6.2"
},
"dependencies": {
"address": {
"version": "1.2.2",
"resolved": "https://registry.npmjs.org/address/-/address-1.2.2.tgz",
"integrity": "sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA=="
},
"debug": {
"version": "4.3.4",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
"integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
"requires": {
"ms": "2.1.2"
}
},
"js-base64": {
"version": "2.6.4",
"resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.6.4.tgz",
"integrity": "sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ=="
},
"mime": {
"version": "2.6.0",
"resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz",
"integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg=="
},
"ms": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
},
"stream-http": {
"version": "2.8.2",
"resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.2.tgz",
"integrity": "sha512-QllfrBhqF1DPcz46WxKTs6Mz1Bpc+8Qm6vbqOpVav5odAXwbyzwnEczoWqtxrsmlO+cJqtPrp/8gWKWjaKLLlA==",
"requires": {
"builtin-status-codes": "^3.0.0",
"inherits": "^2.0.1",
"readable-stream": "^2.3.6",
"to-arraybuffer": "^1.0.0",
"xtend": "^4.0.0"
}
}
}
},
"alphanum-sort": { "alphanum-sort": {
"version": "1.0.2", "version": "1.0.2",
"resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz", "resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz",
@ -2088,8 +2168,7 @@
"any-promise": { "any-promise": {
"version": "1.3.0", "version": "1.3.0",
"resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz",
"integrity": "sha1-q8av7tzqUugJzcA3au0845Y10X8=", "integrity": "sha1-q8av7tzqUugJzcA3au0845Y10X8="
"dev": true
}, },
"anymatch": { "anymatch": {
"version": "2.0.0", "version": "2.0.0",
@ -2693,6 +2772,11 @@
"integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=", "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=",
"dev": true "dev": true
}, },
"bowser": {
"version": "1.9.4",
"resolved": "https://registry.npmjs.org/bowser/-/bowser-1.9.4.tgz",
"integrity": "sha512-9IdMmj2KjigRq6oWhmwv1W36pDuA4STQZ8q6YO9um+x07xgYNCD3Oou+WP/3L1HNz7iqythGet3/p4wvc8AAwQ=="
},
"brace-expansion": { "brace-expansion": {
"version": "1.1.11", "version": "1.1.11",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
@ -2849,8 +2933,7 @@
"builtin-status-codes": { "builtin-status-codes": {
"version": "3.0.0", "version": "3.0.0",
"resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz",
"integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug="
"dev": true
}, },
"bytes": { "bytes": {
"version": "3.1.0", "version": "3.1.0",
@ -3445,8 +3528,7 @@
"content-type": { "content-type": {
"version": "1.0.4", "version": "1.0.4",
"resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz",
"integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA=="
"dev": true
}, },
"convert-source-map": { "convert-source-map": {
"version": "1.7.0", "version": "1.7.0",
@ -3488,6 +3570,11 @@
"resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz",
"integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40="
}, },
"copy-to": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/copy-to/-/copy-to-2.0.1.tgz",
"integrity": "sha512-3DdaFaU/Zf1AnpLiFDeNCD4TOWe3Zl2RZaTzUvWiIk5ERzcCodOE20Vqq4fzCbNoHURFHT4/us/Lfq+S2zyY4w=="
},
"copy-webpack-plugin": { "copy-webpack-plugin": {
"version": "4.6.0", "version": "4.6.0",
"resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-4.6.0.tgz", "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-4.6.0.tgz",
@ -4183,6 +4270,14 @@
} }
} }
}, },
"default-user-agent": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/default-user-agent/-/default-user-agent-1.0.0.tgz",
"integrity": "sha512-bDF7bg6OSNcSwFWPu4zYKpVkJZQYVrAANMYB8bc9Szem1D0yKdm4sa/rOCs2aC9+2GMqQ7KnwtZRvDhmLF0dXw==",
"requires": {
"os-name": "~1.0.3"
}
},
"defaults": { "defaults": {
"version": "1.0.3", "version": "1.0.3",
"resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz",
@ -4320,8 +4415,7 @@
"destroy": { "destroy": {
"version": "1.0.4", "version": "1.0.4",
"resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz",
"integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA="
"dev": true
}, },
"detect-file": { "detect-file": {
"version": "1.0.0", "version": "1.0.0",
@ -4360,6 +4454,11 @@
"randombytes": "^2.0.0" "randombytes": "^2.0.0"
} }
}, },
"digest-header": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/digest-header/-/digest-header-1.1.0.tgz",
"integrity": "sha512-glXVh42vz40yZb9Cq2oMOt70FIoWiv+vxNvdKdU8CwjLad25qHM3trLxhl9bVjdr6WaslIXhWpn0NO8T/67Qjg=="
},
"dir-glob": { "dir-glob": {
"version": "2.2.2", "version": "2.2.2",
"resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.2.2.tgz", "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.2.2.tgz",
@ -4553,8 +4652,7 @@
"ee-first": { "ee-first": {
"version": "1.1.1", "version": "1.1.1",
"resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
"integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0="
"dev": true
}, },
"ejs": { "ejs": {
"version": "2.7.4", "version": "2.7.4",
@ -4720,11 +4818,15 @@
"version": "1.4.4", "version": "1.4.4",
"resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
"integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
"dev": true,
"requires": { "requires": {
"once": "^1.4.0" "once": "^1.4.0"
} }
}, },
"end-or-error": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/end-or-error/-/end-or-error-1.0.1.tgz",
"integrity": "sha512-OclLMSug+k2A0JKuf494im25ANRBVW8qsjmwbgX7lQ8P82H21PQ1PWkoYwb9y5yMBS69BPlwtzdIFClo3+7kOQ=="
},
"enhanced-resolve": { "enhanced-resolve": {
"version": "4.1.1", "version": "4.1.1",
"resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.1.1.tgz", "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.1.1.tgz",
@ -4817,8 +4919,7 @@
"escape-html": { "escape-html": {
"version": "1.0.3", "version": "1.0.3",
"resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
"integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg="
"dev": true
}, },
"escape-string-regexp": { "escape-string-regexp": {
"version": "1.0.5", "version": "1.0.5",
@ -5378,6 +5479,23 @@
"mime-types": "^2.1.12" "mime-types": "^2.1.12"
} }
}, },
"formstream": {
"version": "1.3.1",
"resolved": "https://registry.npmjs.org/formstream/-/formstream-1.3.1.tgz",
"integrity": "sha512-FkW++ub+VbE5dpwukJVDizNWhSgp8FhmhI65pF7BZSVStBqe6Wgxe2Z9/Vhsn7l7nXCPwP+G1cyYlX8VwWOf0g==",
"requires": {
"destroy": "^1.0.4",
"mime": "^2.5.2",
"pause-stream": "~0.0.11"
},
"dependencies": {
"mime": {
"version": "2.6.0",
"resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz",
"integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg=="
}
}
},
"forwarded": { "forwarded": {
"version": "0.1.2", "version": "0.1.2",
"resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz",
@ -6061,6 +6179,11 @@
"resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
"integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg=="
}, },
"get-ready": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/get-ready/-/get-ready-1.0.0.tgz",
"integrity": "sha512-mFXCZPJIlcYcth+N8267+mghfYN9h3EhsDa6JSnbA3Wrhh/XFpuowviFcsDeYZtKspQyWyJqfs4O6P8CHeTwzw=="
},
"get-stdin": { "get-stdin": {
"version": "4.0.1", "version": "4.0.1",
"resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz",
@ -7355,11 +7478,18 @@
"integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==",
"dev": true "dev": true
}, },
"humanize-ms": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz",
"integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==",
"requires": {
"ms": "^2.0.0"
}
},
"iconv-lite": { "iconv-lite": {
"version": "0.4.24", "version": "0.4.24",
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
"integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
"dev": true,
"requires": { "requires": {
"safer-buffer": ">= 2.1.2 < 3" "safer-buffer": ">= 2.1.2 < 3"
} }
@ -7549,8 +7679,7 @@
"ip": { "ip": {
"version": "1.1.5", "version": "1.1.5",
"resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz",
"integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo="
"dev": true
}, },
"ip-regex": { "ip-regex": {
"version": "2.1.0", "version": "2.1.0",
@ -7632,6 +7761,11 @@
"integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==", "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==",
"dev": true "dev": true
}, },
"is-class-hotfix": {
"version": "0.0.6",
"resolved": "https://registry.npmjs.org/is-class-hotfix/-/is-class-hotfix-0.0.6.tgz",
"integrity": "sha512-0n+pzCC6ICtVr/WXnN2f03TK/3BfXY7me4cjCAqT8TYXEl0+JBRoqBo94JJHXcyDSLUeWbNX8Fvy5g5RJdAstQ=="
},
"is-color-stop": { "is-color-stop": {
"version": "1.1.0", "version": "1.1.0",
"resolved": "https://registry.npmjs.org/is-color-stop/-/is-color-stop-1.1.0.tgz", "resolved": "https://registry.npmjs.org/is-color-stop/-/is-color-stop-1.1.0.tgz",
@ -7848,6 +7982,16 @@
"has-symbols": "^1.0.1" "has-symbols": "^1.0.1"
} }
}, },
"is-type-of": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/is-type-of/-/is-type-of-1.4.0.tgz",
"integrity": "sha512-EddYllaovi5ysMLMEN7yzHEKh8A850cZ7pykrY1aNRQGn/CDjRDE9qEWbIdt7xGEVJmjBXzU/fNnC4ABTm8tEQ==",
"requires": {
"core-util-is": "^1.0.2",
"is-class-hotfix": "~0.0.6",
"isstream": "~0.1.2"
}
},
"is-typedarray": { "is-typedarray": {
"version": "1.0.0", "version": "1.0.0",
"resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
@ -8021,6 +8165,11 @@
"verror": "1.10.0" "verror": "1.10.0"
} }
}, },
"jstoxml": {
"version": "2.2.9",
"resolved": "https://registry.npmjs.org/jstoxml/-/jstoxml-2.2.9.tgz",
"integrity": "sha512-OYWlK0j+roh+eyaMROlNbS5cd5R25Y+IUpdl7cNdB8HNrkgwQzIS7L9MegxOiWNBj9dQhA/yAxiMwCC5mwNoBw=="
},
"killable": { "killable": {
"version": "1.0.1", "version": "1.0.1",
"resolved": "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz", "resolved": "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz",
@ -8149,9 +8298,9 @@
} }
}, },
"lodash": { "lodash": {
"version": "4.17.15", "version": "4.17.21",
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", "resolved": "https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz",
"integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==" "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
}, },
"lodash._basecopy": { "lodash._basecopy": {
"version": "3.0.1", "version": "3.0.1",
@ -8593,8 +8742,7 @@
"merge-descriptors": { "merge-descriptors": {
"version": "1.0.1", "version": "1.0.1",
"resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
"integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E="
"dev": true
}, },
"merge-source-map": { "merge-source-map": {
"version": "1.1.0", "version": "1.1.0",
@ -8840,7 +8988,6 @@
"version": "2.7.0", "version": "2.7.0",
"resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz",
"integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==",
"dev": true,
"requires": { "requires": {
"any-promise": "^1.0.0", "any-promise": "^1.0.0",
"object-assign": "^4.0.1", "object-assign": "^4.0.1",
@ -9458,6 +9605,15 @@
"mem": "^4.0.0" "mem": "^4.0.0"
} }
}, },
"os-name": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/os-name/-/os-name-1.0.3.tgz",
"integrity": "sha512-f5estLO2KN8vgtTRaILIgEGBoBrMnZ3JQ7W9TMZCnOIGwHe8TRGSpcagnWDo+Dfhd/z08k9Xe75hvciJJ8Qaew==",
"requires": {
"osx-release": "^1.0.0",
"win-release": "^1.0.0"
}
},
"os-tmpdir": { "os-tmpdir": {
"version": "1.0.2", "version": "1.0.2",
"resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
@ -9472,6 +9628,14 @@
"os-tmpdir": "^1.0.0" "os-tmpdir": "^1.0.0"
} }
}, },
"osx-release": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/osx-release/-/osx-release-1.1.0.tgz",
"integrity": "sha512-ixCMMwnVxyHFQLQnINhmIpWqXIfS2YOXchwQrk+OFzmo6nDjQ0E4KXAyyUh0T0MZgV4bUhkRrAbVqlE4yLVq4A==",
"requires": {
"minimist": "^1.1.0"
}
},
"p-defer": { "p-defer": {
"version": "1.0.0", "version": "1.0.0",
"resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz",
@ -9720,6 +9884,14 @@
} }
} }
}, },
"pause-stream": {
"version": "0.0.11",
"resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz",
"integrity": "sha512-e3FBlXLmN/D1S+zHzanP4E/4Z60oFAa3O051qt1pxa7DEJWKAyil6upYVXCWadEnuoqa4Pkc9oUx9zsxYeRv8A==",
"requires": {
"through": "~2.3"
}
},
"pbkdf2": { "pbkdf2": {
"version": "3.0.17", "version": "3.0.17",
"resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.17.tgz", "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.17.tgz",
@ -9830,6 +10002,11 @@
"find-up": "^2.1.0" "find-up": "^2.1.0"
} }
}, },
"platform": {
"version": "1.3.6",
"resolved": "https://registry.npmjs.org/platform/-/platform-1.3.6.tgz",
"integrity": "sha512-fnWVljUchTro6RiCFvCXBbNhJc2NijN7oIQxbwsyL0buWJPG85v81ehlHI9fXrJsMNgTofEoWIQeClKpgxFLrg=="
},
"plugin-error": { "plugin-error": {
"version": "0.1.2", "version": "0.1.2",
"resolved": "https://registry.npmjs.org/plugin-error/-/plugin-error-0.1.2.tgz", "resolved": "https://registry.npmjs.org/plugin-error/-/plugin-error-0.1.2.tgz",
@ -10643,7 +10820,6 @@
"version": "3.0.0", "version": "3.0.0",
"resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
"integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
"dev": true,
"requires": { "requires": {
"end-of-stream": "^1.1.0", "end-of-stream": "^1.1.0",
"once": "^1.3.1" "once": "^1.3.1"
@ -11644,8 +11820,7 @@
"sax": { "sax": {
"version": "1.2.4", "version": "1.2.4",
"resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz",
"integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw=="
"dev": true
}, },
"schart.js": { "schart.js": {
"version": "3.0.0", "version": "3.0.0",
@ -11682,6 +11857,14 @@
} }
} }
}, },
"sdk-base": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/sdk-base/-/sdk-base-2.0.1.tgz",
"integrity": "sha512-eeG26wRwhtwYuKGCDM3LixCaxY27Pa/5lK4rLKhQa7HBjJ3U3Y+f81MMZQRsDw/8SC2Dao/83yJTXJ8aULuN8Q==",
"requires": {
"get-ready": "~1.0.0"
}
},
"select-hose": { "select-hose": {
"version": "2.0.0", "version": "2.0.0",
"resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz",
@ -12339,8 +12522,7 @@
"statuses": { "statuses": {
"version": "1.5.0", "version": "1.5.0",
"resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
"integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow="
"dev": true
}, },
"stdout-stream": { "stdout-stream": {
"version": "1.4.1", "version": "1.4.1",
@ -12400,6 +12582,11 @@
"integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=", "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=",
"dev": true "dev": true
}, },
"stream-wormhole": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/stream-wormhole/-/stream-wormhole-1.1.0.tgz",
"integrity": "sha512-gHFfL3px0Kctd6Po0M8TzEvt3De/xu6cnRrjlfYNhwbhLPLwigI2t1nc6jrzNuaYg5C4YF78PPFuQPzRiqn9ew=="
},
"strict-uri-encode": { "strict-uri-encode": {
"version": "1.1.0", "version": "1.1.0",
"resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz",
@ -12636,9 +12823,9 @@
} }
}, },
"anymatch": { "anymatch": {
"version": "3.1.2", "version": "3.1.3",
"resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
"integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
"requires": { "requires": {
"normalize-path": "^3.0.0", "normalize-path": "^3.0.0",
"picomatch": "^2.0.4" "picomatch": "^2.0.4"
@ -12692,9 +12879,9 @@
} }
}, },
"color": { "color": {
"version": "4.2.1", "version": "4.2.3",
"resolved": "https://registry.npmjs.org/color/-/color-4.2.1.tgz", "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz",
"integrity": "sha512-MFJr0uY4RvTQUKvPq7dh9grVOTYSFeXja2mBXioCGjnjJoXrAp9jJ1NQTDR73c9nwBSAQiNKloKl5zq9WB9UPw==", "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==",
"requires": { "requires": {
"color-convert": "^2.0.1", "color-convert": "^2.0.1",
"color-string": "^1.9.0" "color-string": "^1.9.0"
@ -12714,18 +12901,18 @@
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
}, },
"color-string": { "color-string": {
"version": "1.9.0", "version": "1.9.1",
"resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.0.tgz", "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz",
"integrity": "sha512-9Mrz2AQLefkH1UvASKj6v6hj/7eWgjnT/cVsR8CumieLoT+g900exWeNogqtweI8dxloXN9BDQTYro1oWu/5CQ==", "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==",
"requires": { "requires": {
"color-name": "^1.0.0", "color-name": "^1.0.0",
"simple-swizzle": "^0.2.2" "simple-swizzle": "^0.2.2"
} }
}, },
"cosmiconfig": { "cosmiconfig": {
"version": "7.0.1", "version": "7.1.0",
"resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz", "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz",
"integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==", "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==",
"requires": { "requires": {
"@types/parse-json": "^4.0.0", "@types/parse-json": "^4.0.0",
"import-fresh": "^3.2.1", "import-fresh": "^3.2.1",
@ -12740,9 +12927,9 @@
"integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==" "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg=="
}, },
"fast-glob": { "fast-glob": {
"version": "3.2.11", "version": "3.2.12",
"resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz",
"integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==",
"requires": { "requires": {
"@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.stat": "^2.0.2",
"@nodelib/fs.walk": "^1.2.3", "@nodelib/fs.walk": "^1.2.3",
@ -12770,9 +12957,9 @@
} }
}, },
"fs-extra": { "fs-extra": {
"version": "10.0.1", "version": "10.1.0",
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.1.tgz", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz",
"integrity": "sha512-NbdoVMZso2Lsrn/QwLXOy6rm0ufY2zEOKCDzJR/0kBsb0E6qed0P3iYK+Ath3BfvXEeu4JhEtXLgILx5psUfag==", "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==",
"requires": { "requires": {
"graceful-fs": "^4.2.0", "graceful-fs": "^4.2.0",
"jsonfile": "^6.0.1", "jsonfile": "^6.0.1",
@ -12809,9 +12996,9 @@
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
}, },
"html-tags": { "html-tags": {
"version": "3.1.0", "version": "3.3.1",
"resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.1.0.tgz", "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.3.1.tgz",
"integrity": "sha512-1qYz89hW3lFDEazhjW0yVAV87lw8lVkrJocr72XmBkMKsoSVJCQx3W8BXsC7hO2qAt8BoVjYjtAcZ9perqGnNg==" "integrity": "sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ=="
}, },
"import-fresh": { "import-fresh": {
"version": "3.3.0", "version": "3.3.0",
@ -12831,9 +13018,9 @@
} }
}, },
"is-core-module": { "is-core-module": {
"version": "2.8.1", "version": "2.11.0",
"resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz",
"integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==", "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==",
"requires": { "requires": {
"has": "^1.0.3" "has": "^1.0.3"
} }
@ -12853,9 +13040,9 @@
} }
}, },
"lilconfig": { "lilconfig": {
"version": "2.0.4", "version": "2.1.0",
"resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.4.tgz", "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz",
"integrity": "sha512-bfTIN7lEsiooCocSISTWXkiWJkRqtL9wYtYy+8EK3Y41qh3mpwPU0ycTOgjdY9ErwXCc8QyrQp82bdL0Xkm9yA==" "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ=="
}, },
"lodash": { "lodash": {
"version": "4.17.21", "version": "4.17.21",
@ -12863,12 +13050,19 @@
"integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
}, },
"micromatch": { "micromatch": {
"version": "4.0.4", "version": "4.0.5",
"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
"integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
"requires": { "requires": {
"braces": "^3.0.1", "braces": "^3.0.2",
"picomatch": "^2.2.3" "picomatch": "^2.3.1"
},
"dependencies": {
"picomatch": {
"version": "2.3.1",
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
"integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="
}
} }
}, },
"parse-json": { "parse-json": {
@ -12893,18 +13087,18 @@
"integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==" "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw=="
}, },
"postcss-load-config": { "postcss-load-config": {
"version": "3.1.3", "version": "3.1.4",
"resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.3.tgz", "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.4.tgz",
"integrity": "sha512-5EYgaM9auHGtO//ljHH+v/aC/TQ5LHXtL7bQajNAUBKUVKiYE8rYpFms7+V26D9FncaGe2zwCoPQsFKb5zF/Hw==", "integrity": "sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==",
"requires": { "requires": {
"lilconfig": "^2.0.4", "lilconfig": "^2.0.5",
"yaml": "^1.10.2" "yaml": "^1.10.2"
} }
}, },
"postcss-selector-parser": { "postcss-selector-parser": {
"version": "6.0.9", "version": "6.0.11",
"resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.9.tgz", "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.11.tgz",
"integrity": "sha512-UO3SgnZOVTwu4kyLR22UQ1xZh086RyNZppb7lLAKBFK8a32ttG5i87Y/P3+2bRSjZNyJ1B7hfFNo273tKe9YxQ==", "integrity": "sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g==",
"requires": { "requires": {
"cssesc": "^3.0.0", "cssesc": "^3.0.0",
"util-deprecate": "^1.0.2" "util-deprecate": "^1.0.2"
@ -12924,11 +13118,11 @@
} }
}, },
"resolve": { "resolve": {
"version": "1.22.0", "version": "1.22.2",
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz",
"integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==",
"requires": { "requires": {
"is-core-module": "^2.8.1", "is-core-module": "^2.11.0",
"path-parse": "^1.0.7", "path-parse": "^1.0.7",
"supports-preserve-symlinks-flag": "^1.0.0" "supports-preserve-symlinks-flag": "^1.0.0"
} }
@ -13056,7 +13250,6 @@
"version": "3.3.0", "version": "3.3.0",
"resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.0.tgz", "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.0.tgz",
"integrity": "sha1-5p44obq+lpsBCCB5eLn2K4hgSDk=", "integrity": "sha1-5p44obq+lpsBCCB5eLn2K4hgSDk=",
"dev": true,
"requires": { "requires": {
"any-promise": "^1.0.0" "any-promise": "^1.0.0"
} }
@ -13065,7 +13258,6 @@
"version": "1.6.0", "version": "1.6.0",
"resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz",
"integrity": "sha1-GhkY1ALY/D+Y+/I02wvMjMEOlyY=", "integrity": "sha1-GhkY1ALY/D+Y+/I02wvMjMEOlyY=",
"dev": true,
"requires": { "requires": {
"thenify": ">= 3.1.0 < 4" "thenify": ">= 3.1.0 < 4"
} }
@ -13155,8 +13347,7 @@
"to-arraybuffer": { "to-arraybuffer": {
"version": "1.0.1", "version": "1.0.1",
"resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz",
"integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M="
"dev": true
}, },
"to-fast-properties": { "to-fast-properties": {
"version": "2.0.0", "version": "2.0.0",
@ -13330,6 +13521,24 @@
"resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz",
"integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=" "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo="
}, },
"unescape": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/unescape/-/unescape-1.0.1.tgz",
"integrity": "sha512-O0+af1Gs50lyH1nUu3ZyYS1cRh01Q/kUKatTOkSs7jukXE6/NebucDVxyiDsA9AQ4JC1V1jUH9EO8JX2nMDgGQ==",
"requires": {
"extend-shallow": "^2.0.1"
},
"dependencies": {
"extend-shallow": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
"integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==",
"requires": {
"is-extendable": "^0.1.0"
}
}
}
},
"unicode-canonical-property-names-ecmascript": { "unicode-canonical-property-names-ecmascript": {
"version": "1.0.4", "version": "1.0.4",
"resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz", "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz",
@ -13522,6 +13731,37 @@
"requires-port": "^1.0.0" "requires-port": "^1.0.0"
} }
}, },
"urllib": {
"version": "2.41.0",
"resolved": "https://registry.npmjs.org/urllib/-/urllib-2.41.0.tgz",
"integrity": "sha512-pNXdxEv52L67jahLT+/7QE+Fup1y2Gc6EdmrAhQ6OpQIC2rl14oWwv9hvk1GXOZqEnJNwRXHABuwgPOs1CtL7g==",
"requires": {
"any-promise": "^1.3.0",
"content-type": "^1.0.2",
"debug": "^2.6.9",
"default-user-agent": "^1.0.0",
"digest-header": "^1.0.0",
"ee-first": "~1.1.1",
"formstream": "^1.1.0",
"humanize-ms": "^1.2.0",
"iconv-lite": "^0.4.15",
"ip": "^1.1.5",
"pump": "^3.0.0",
"qs": "^6.4.0",
"statuses": "^1.3.1",
"utility": "^1.16.1"
},
"dependencies": {
"debug": {
"version": "2.6.9",
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
"integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
"requires": {
"ms": "2.0.0"
}
}
}
},
"use": { "use": {
"version": "3.1.1", "version": "3.1.1",
"resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz",
@ -13570,6 +13810,18 @@
"integrity": "sha1-ihagXURWV6Oupe7MWxKk+lN5dyw=", "integrity": "sha1-ihagXURWV6Oupe7MWxKk+lN5dyw=",
"dev": true "dev": true
}, },
"utility": {
"version": "1.18.0",
"resolved": "https://registry.npmjs.org/utility/-/utility-1.18.0.tgz",
"integrity": "sha512-PYxZDA+6QtvRvm//++aGdmKG/cI07jNwbROz0Ql+VzFV1+Z0Dy55NI4zZ7RHc9KKpBePNFwoErqIuqQv/cjiTA==",
"requires": {
"copy-to": "^2.0.1",
"escape-html": "^1.0.3",
"mkdirp": "^0.5.1",
"mz": "^2.7.0",
"unescape": "^1.0.1"
}
},
"utils-merge": { "utils-merge": {
"version": "1.0.1", "version": "1.0.1",
"resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
@ -14289,6 +14541,14 @@
"string-width": "^1.0.2 || 2" "string-width": "^1.0.2 || 2"
} }
}, },
"win-release": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/win-release/-/win-release-1.1.1.tgz",
"integrity": "sha512-iCRnKVvGxOQdsKhcQId2PXV1vV3J/sDPXKA4Oe9+Eti2nb2ESEsYHRYls/UjoUW3bIc5ZDO8dTH50A/5iVN+bw==",
"requires": {
"semver": "^5.0.1"
}
},
"worker-farm": { "worker-farm": {
"version": "1.7.0", "version": "1.7.0",
"resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz", "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz",
@ -14402,6 +14662,20 @@
"async-limiter": "~1.0.0" "async-limiter": "~1.0.0"
} }
}, },
"xml2js": {
"version": "0.6.2",
"resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.6.2.tgz",
"integrity": "sha512-T4rieHaC1EXcES0Kxxj4JWgaUQHDk+qwHcYOCFHfiwKz7tOVPLq7Hjq9dM1WCMhylqMEfP7hMcOIChvotiZegA==",
"requires": {
"sax": ">=0.6.0",
"xmlbuilder": "~11.0.0"
}
},
"xmlbuilder": {
"version": "11.0.1",
"resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz",
"integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA=="
},
"xtend": { "xtend": {
"version": "4.0.2", "version": "4.0.2",
"resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",

@ -9,6 +9,7 @@
}, },
"dependencies": { "dependencies": {
"@tailwindcss/postcss7-compat": "^2.2.7", "@tailwindcss/postcss7-compat": "^2.2.7",
"ali-oss": "^6.18.1",
"animate.css": "^4.1.1", "animate.css": "^4.1.1",
"autoprefixer": "^9.8.6", "autoprefixer": "^9.8.6",
"axios": "^0.18.1", "axios": "^0.18.1",
@ -17,6 +18,7 @@
"element-theme": "^2.0.1", "element-theme": "^2.0.1",
"element-ui": "^2.13.0", "element-ui": "^2.13.0",
"js-cookie": "^2.2.1", "js-cookie": "^2.2.1",
"lodash": "^4.17.21",
"mavon-editor": "^2.6.17", "mavon-editor": "^2.6.17",
"postcss": "^7.0.36", "postcss": "^7.0.36",
"postcss-px2rem": "^0.3.0", "postcss-px2rem": "^0.3.0",

@ -1,11 +1,20 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en"> <html lang="en">
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no"> <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
<link rel="stylesheet" href="//at.alicdn.com/t/font_830376_qzecyukz0s.css"> <link rel="stylesheet" href="//at.alicdn.com/t/font_830376_qzecyukz0s.css" />
<title>银行教学系统</title> <title>银行教学系统</title>
<script>
var _hmt = _hmt || [];
(function() {
var hm = document.createElement('script');
hm.src = 'https://hm.baidu.com/hm.js?dbddd0f4ac914f5ff3128012ded035bc';
var s = document.getElementsByTagName('script')[0];
s.parentNode.insertBefore(hm, s);
})();
</script>
</head> </head>
<body> <body>
<noscript> <noscript>
@ -13,6 +22,14 @@
</noscript> </noscript>
<div id="app"></div> <div id="app"></div>
<!-- built files will be auto injected --> <!-- built files will be auto injected -->
<script>
var _hmt = _hmt || [];
(function() {
var hm = document.createElement('script');
hm.src = 'https://hm.baidu.com/hm.js?72fbad6ebf1d6c705117fe8fe0686a0e';
var s = document.getElementsByTagName('script')[0];
s.parentNode.insertBefore(hm, s);
})();
</script>
</body> </body>
</html> </html>

@ -1,6 +1,6 @@
<template> <template>
<div id="app"> <div id="app">
<select-business class="selectBusiness" :showIt.sync="showIt" v-show="!showIt && showBusiness" /> <select-business class="selectBusiness" :showIt.sync="showIt" v-show="!showIt && showBusiness && !submited" />
<router-view></router-view> <router-view></router-view>
<vCase :showIt.sync="showIt"></vCase> <vCase :showIt.sync="showIt"></vCase>
<tip-dialog class="Z-9999" /> <tip-dialog class="Z-9999" />
@ -13,6 +13,7 @@
import selectBusiness from '@/components/selectBusiness' import selectBusiness from '@/components/selectBusiness'
import TipDialog from '@/components/tipDialog' import TipDialog from '@/components/tipDialog'
import { mapState, mapMutations } from 'vuex' import { mapState, mapMutations } from 'vuex'
import Bus from '@/libs/bus'
export default { export default {
name: 'App', name: 'App',
components: { components: {
@ -24,8 +25,6 @@
//localStorage //localStorage
if (util.local.get(Setting.storeKey)) { if (util.local.get(Setting.storeKey)) {
this.$store.replaceState(Object.assign({}, this.$store.state, util.local.get(Setting.storeKey))) this.$store.replaceState(Object.assign({}, this.$store.state, util.local.get(Setting.storeKey)))
this.$store.system.replaceState(Object.assign({}, sessionStorage.getItem('systemData')))
} }
//vuexlocalStorage //vuexlocalStorage
@ -33,15 +32,14 @@
if (this.$route.fullPath.includes('/counter/list/manage')) { if (this.$route.fullPath.includes('/counter/list/manage')) {
sessionStorage.setItem('computerPath', this.$route.fullPath) sessionStorage.setItem('computerPath', this.$route.fullPath)
} }
util.local.set(Setting.storeKey, this.$store.state)
util.local.get(Setting.tokenKey) && util.local.set(Setting.storeKey,this.$store.state)
sessionStorage.setItem('systemData', this.$store.system.state)
}) })
}, },
data () { data () {
return { return {
showIt: true, showIt: true,
showSelect: false showSelect: false,
submited: false
} }
}, },
methods: { methods: {
@ -53,12 +51,13 @@
watch: { watch: {
showIt: { showIt: {
handler (newVal) { handler (newVal) {
if(!newVal && !this.businessKey) { this.submited = sessionStorage.getItem('submited')
if (!newVal && !this.businessKey && !sessionStorage.getItem('submited')) {
this.setShowBusiness(true) this.setShowBusiness(true)
} else { } else {
if (!newVal) { if (!newVal) {
// //
if(!this.businessKey) { if (!this.businessKey && !sessionStorage.getItem('submited')) {
this.$nextTick(() => { this.setShowBusiness(true) }) this.$nextTick(() => { this.setShowBusiness(true) })
} else { } else {
// this.setTipsOperate('' + this.businessKey + ','); // this.setTipsOperate('' + this.businessKey + ',');
@ -71,11 +70,15 @@
immediate: true immediate: true
} }
}, },
mounted () {
Bus.$on('setShowIt', data => {
this.showIt = data
})
},
computed: { computed: {
...mapState({ ...mapState({
businessKey: state => state.system.businessKey, businessKey: state => state.system.businessKey,
showBusiness: state => state.system.showBusiness, showBusiness: state => state.system.showBusiness,
businessKey: state => state.system.businessKey
}) })
}, },
} }
@ -86,15 +89,22 @@
font-size: 16px; font-size: 16px;
min-width: $inner-width; min-width: $inner-width;
} }
.selectBusiness { .selectBusiness {
width: 100%; width: 100%;
height: 100%; height: 100%;
} }
.fade-enter-active, .fade-leave-active { .fade-enter-active,
transition: opacity .5s; .fade-leave-active {
transition: opacity 0.5s;
} }
.fade-enter, .fade-leave-to /* .fade-leave-active below version 2.1.8 */ {
.fade-enter,
.fade-leave-to
/* .fade-leave-active below version 2.1.8 */
{
opacity: 0; opacity: 0;
} }

@ -1,5 +1,7 @@
import axios from 'axios'; import axios from 'axios';
import router from '../router'; import router from '../router';
import store from '@/store'
import Util from '@/libs/util'
const url = location.host const url = location.host
const dev = process.env.NODE_ENV === 'development' // 开发环境 const dev = process.env.NODE_ENV === 'development' // 开发环境
@ -7,14 +9,18 @@ let host = `${location.origin}/`
if (dev) { if (dev) {
// 本地 // 本地
host = 'http://121.37.12.51/' // 中台测试服 host = 'http://121.37.12.51/' // 中台测试服
// host = 'http://192.168.31.151:9000/' // 榕 // host = 'https://www.occupationlab.com/' // 正式服
// host = 'http://192.168.31.137:9000/' // 赓 // host = 'http://192.168.31.51:9000/'
const ip = localStorage.getItem('localIp')
const ips = ['http://192.168.31.217:9000/', 'http://192.168.31.51:9000/', 'http://121.37.12.51/']
host = ips[+ip]
} }
// 创建axios实例 // 创建axios实例
const service = axios.create({ const service = axios.create({
baseURL: host, // 测试 baseURL: host, // 测试
timeout: 30000 // 请求超时时间 timeout: 30000 // 请求超时时间
}) })
let logouted = 0;
// 添加request拦截器 // 添加request拦截器
service.interceptors.request.use(config => { service.interceptors.request.use(config => {
return config return config
@ -24,14 +30,34 @@ service.interceptors.request.use(config => {
// 添加respone拦截器 // 添加respone拦截器
service.interceptors.response.use( service.interceptors.response.use(
response => { response => {
let res={}; const { status, data } = response
res.status=response.status if (data.code === 401) {
res.data=response.data; // 账号互踢
return res; if (!logouted) {
Util.errorMsg(data.msg.includes('顶') ? '您的账号已在其他设备登录,您已被迫下线!' : '登录过期,请重新登录!')
setTimeout(() => {
store.commit('user/logout')
logouted = 0
}, 1500)
logouted = 1
}
} else {
return {
status,
data
}
}
}, },
error => { error => {
if(error.response && error.response.status == 404){ if (error.response.status == 401) {
router.push('/blank.vue') if (!logouted) {
Util.errorMsg('登录过期,请重新登录')
setTimeout(() => {
store.commit('user/logout')
}, 3500)
logouted = 1
}
} }
return Promise.reject(error.response) return Promise.reject(error.response)
} }

@ -1,8 +1,5 @@
// 引入封装好的axios
// ps:如果没有封装,正常引入axios即可
import { get, post, deletes, put } from './api.js' import { get, post, deletes, put } from './api.js'
// import axios from "./"; const host = 'http://192.168.31.51:9000'
// /api为配置跨域的路径变量
export const getProjectBySystemId = (params) => { export const getProjectBySystemId = (params) => {
return get('/occupationlab/occupationlab/projectManage/getProjectBySystemId', params) return get('/occupationlab/occupationlab/projectManage/getProjectBySystemId', params)
} }
@ -19,13 +16,31 @@ export const getQueryCache= () => {
return get('/bank/bank/queryCache') return get('/bank/bank/queryCache')
} }
export const addOperation = (params) => { export const addOperation = (params) => {
return post( '/bank/bank/addOperation',params) return post('/bank/bank/addOperation', {
...params,
assessmentId: sessionStorage.getItem('assessmentId') || '',
competitionId: sessionStorage.getItem('competitionId') || '',
})
} }
export const getOperation = (params) => { export const getOperation = (params) => {
return get( '/bank/bank/getOperation',params) return post('/bank/bank/getOperation', {
...params,
assessmentId: sessionStorage.getItem('assessmentId') || '',
competitionId: sessionStorage.getItem('competitionId') || '',
})
} }
export const deleteCache = () => { export const deleteCache = () => {
return get( '/bank/bank/deleteCache') return post('/bank/bank/deleteCache', {
projectId: sessionStorage.getItem('projectId') || '',
assessmentId: sessionStorage.getItem('assessmentId') || '',
competitionId: sessionStorage.getItem('competitionId') || '',
})
}
export const exportBankExperimentReport = (params) => {
return post('/occupationlab/occupationlab/achievement/exportBankExperimentReport', params)
}
export const updateReport = (params) => {
return post('/occupationlab/occupationlab/achievement/updateReport', params)
} }
// 学生查看考核状态 // 学生查看考核状态
export const checkTest = (params) => { export const checkTest = (params) => {
@ -44,3 +59,87 @@ export const reportDetail = (reportId) => {
reportId reportId
}) })
} }
export const creditEvaluationInput = data => {
return post(`/judgment/bankCreditEvaluation/creditEvaluationInput`, data)
}
export const creditEvaluationDetails = data => {
return get(`/judgment/bankCreditEvaluation/creditEvaluationDetails`, data)
}
export const loanApplicationInput = data => {
return post(`/judgment/bankLoanApplication/loanApplicationInput`, data)
}
export const loanApplicationInterestCalculation = data => {
return post(`/judgment/bankLoanApplication/loanApplicationInterestCalculation`, data)
}
export const loanApplicationDetails = data => {
return get(`/judgment/bankLoanApplication/loanApplicationDetails`, data)
}
export const creditApplicationInput = data => {
return post(`/judgment/bankCreditApplication/creditApplicationInput`, data)
}
export const creditApplicationDetails = data => {
return get(`/judgment/bankCreditApplication/creditApplicationDetails`, data)
}
export const companyLoanList = data => {
return post(`/judgment/bankCompanyLoans/companyLoanList`, data)
}
export const companyLoanDetails = id => {
return get(`/judgment/bankCompanyLoans/companyLoanDetails?companyLoanId=${id}`)
}
export const loanDisbursement = data => {
return post(`/judgment/bankCompanyLoans/loanDisbursement`, data)
}
export const loanCollection = data => {
return post(`/judgment/bankCompanyLoans/loanCollection`, data)
}
export const nonPerformingLoans = data => {
return post(`/judgment/bankCompanyLoans/nonPerformingLoans`, data)
}
export const badDebtRecognition = data => {
return post(`/judgment/bankCompanyLoans/badDebtRecognition`, data)
}
export const postLoanInvestigationInput = data => {
return post(`/judgment/bankPostLoanInvestigation/postLoanInvestigationInput`, data)
}
export const addExtensionPeriod = data => {
return post(`/judgment/bankCompanyLoans/addExtensionPeriod`, data)
}
export const batchProcessingCompany = data => {
return post(`/judgment/bankCompanyRepaymentPlan/batchProcessing`, data)
}
export const repaymentPlanCompany = data => {
return post(`/judgment/bankCompanyRepaymentPlan/repaymentPlan`, data)
}
export const loanContractSave = (data) => {
return post('/judgment/bankPersonalLoanContractInfo/saveOrUpdate', data)
}
export const personalBasicDel = data => {
return post('/judgment/bankPersonalBasicInfo/batchDeletion', data)
}
export const personalBasicFind = id => {
return post('/judgment/bankPersonalBasicInfo/findById?id=' + id)
}
export const personalBasicList = (data) => {
return post('/judgment/bankPersonalBasicInfo/personageLoanList', data)
}
export const personalBasicSave = (data) => {
return post('/judgment/bankPersonalBasicInfo/saveOrUpdate', data)
}
export const grantALoan = (data) => {
return post(`/judgment/bankPersonalLoanContractInfo/grantALoan?contractId=${data.id}&disbursementDate=${data.disbursementDate}`)
}
export const repaymentPlan = (data) => {
return post(`/judgment/bankPersonalRepaymentPlan/repaymentPlan`, data)
}
export const batchProcessing = (data) => {
return post(`/judgment/bankPersonalRepaymentPlan/batchProcessing`, data)
}
export const operationExtension = (data) => {
return post(`/judgment/bankPersonalLoanContractInfo/operationExtension?contractId=${data.id}&extensionPeriod=${data.extensionPeriod}`)
}
export const calculateTheReturnInterestSum = (data) => {
return post(`/judgment/bankPersonalLoanContractInfo/calculateTheReturnInterestSum`, data)
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 561 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 83 KiB

After

Width:  |  Height:  |  Size: 94 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 100 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 105 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 175 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 190 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 63 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 211 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 138 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 221 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 239 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 292 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 376 B

@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1707275227001" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="4270" width="22" height="22" xmlns:xlink="http://www.w3.org/1999/xlink"><path d="M504.341494 375.700275m-215.955408 0a215.955408 215.955408 0 1 0 431.910817 0 215.955408 215.955408 0 1 0-431.910817 0Z" p-id="4271" fill="#ffffff"></path><path d="M510.627249 591.655683a357.782262 357.782262 0 0 0-355.903761 321.584986H853.59825c-17.051012-180.625132-157.577365-321.584986-342.971001-321.584986z m62.785296 201.649898a18.857264 18.857264 0 0 1 0 37.642278h-50.575037v23.625767a18.929514 18.929514 0 0 1-37.859028 0V830.875609H434.547943a18.857264 18.857264 0 0 1 0-37.642278h50.575037v-31.284273h-50.575037a18.857264 18.857264 0 0 1 0-37.642278h37.570028l-32.729274-32.657023a18.712764 18.712764 0 0 1 0-26.37127 18.929514 18.929514 0 0 1 26.732519 0L499.572991 698.296761a18.785014 18.785014 0 0 1 8.959006 0l33.307275-33.162774a19.001764 19.001764 0 0 1 26.804769 0 18.568264 18.568264 0 0 1 0 26.371269L535.698017 724.30678h37.570028a18.857264 18.857264 0 0 1 0 37.642278h-50.575037v31.356523z" p-id="4272" fill="#ffffff"></path></svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1707128657430" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="4315" width="22" height="22" xmlns:xlink="http://www.w3.org/1999/xlink"><path d="M512 0h234.666667v234.666667A234.666667 234.666667 0 1 1 512 0zM13.568 970.794667A42.666667 42.666667 0 0 0 54.954667 1024h914.133333a42.666667 42.666667 0 0 0 41.386667-53.205333l-75.050667-294.101334a42.666667 42.666667 0 0 0-20.48-26.666666l-129.450667-72.533334a42.666667 42.666667 0 0 0-59.818666 19.84l-120.576 270.208-42.922667-144.256a42.666667 42.666667 0 0 1 0-24.32l26.624-89.472A42.666667 42.666667 0 0 0 547.84 554.666667H476.16a42.666667 42.666667 0 0 0-40.874667 54.826666l26.581334 89.429334c2.389333 7.978667 2.389333 16.426667 0 24.32l-42.922667 144.298666L298.325333 597.333333a42.666667 42.666667 0 0 0-59.818666-19.84l-129.450667 72.533334a42.666667 42.666667 0 0 0-20.48 26.666666L13.568 970.794667z" p-id="4316" fill="#ffffff"></path></svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1707275318677" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5428" width="22" height="22" xmlns:xlink="http://www.w3.org/1999/xlink"><path d="M628.224 127.25248 390.07232 127.25248l0 101.9136L628.224 229.16608 628.224 127.25248 628.224 127.25248 628.224 127.25248zM763.33568 160.4864l-101.87776 0L661.45792 262.4 356.8384 262.4 356.8384 160.4864 254.9248 160.4864c-37.66272 0-67.55328 31.01696-67.55328 68.67968l0 610.39616c0 37.66272 29.89056 67.59424 67.55328 67.59424l508.41088 0c37.66272 0 67.59424-29.9264 67.59424-67.59424L830.92992 229.16608C830.92992 191.50336 800.9984 160.4864 763.33568 160.4864L763.33568 160.4864 763.33568 160.4864zM683.61216 767.5392c-76.45184-2.176-134.05696-16.59904-172.81024-44.27264-42.09664 27.6736-103.00416 42.09664-182.76352 44.27264l0-37.62688c104.13056-13.33248 151.74656-42.09664 145.1008-85.31456l0-18.85184 73.1136 0 0 18.85184c-6.64576 43.22304 39.87968 71.9872 138.45504 85.31456l0 37.62688L683.61216 767.5392 683.61216 767.5392 683.61216 767.5392zM650.38336 570.35776l1.09056 0 0 121.85088-66.46784 0L585.00608 612.4544 427.74016 612.4544l0 79.75936L361.27232 692.21376l0-121.85088 225.9456 0c-46.52544-8.86272-77.5424-39.87968-91.92448-94.14144L441.03168 476.22144l0-37.66272c-2.21696 3.30752-4.43392 6.64576-7.77216 11.07968-1.09056 3.3024-2.21696 5.51936-3.3024 6.64576l0 101.9136-65.3824 0L364.57472 503.89504c-11.07968 4.43392-23.2448 7.77216-37.62688 11.07968l0-37.66272c29.89056-12.16512 49.83296-36.53632 61.99808-73.1136l66.46784 0c-1.09056 3.34336-2.21696 7.77216-4.43392 12.20608-1.09056 3.3024-3.3024 8.86272-7.73632 17.72544l43.1872 0c-1.09056-3.34336-1.09056-8.86272-1.09056-15.50848-1.1264-7.77216-1.1264-12.20096-1.1264-15.50848l66.46272 0c0 3.30752 0 8.86272 1.09056 15.50848 0 7.73632 0 12.17024 1.1264 15.50848l33.23392 0 0-25.4976 58.69056 0 0 25.4976 38.75328 0 0 43.18208-120.7296 0c11.07968 36.57728 28.8 53.1712 55.38816 52.08576 16.63488 1.09056 24.3712-6.64576 24.3712-24.3712l48.7424 0C692.47488 542.68416 679.18336 563.712 650.38336 570.35776L650.38336 570.35776 650.38336 570.35776z" fill="#ffffff" p-id="5429"></path></svg>

After

Width:  |  Height:  |  Size: 2.2 KiB

@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1707128838231" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="7655" width="22" height="22" xmlns:xlink="http://www.w3.org/1999/xlink"><path d="M606.4 120c-30.4 0-60.8 3.2-90.4 9.6l0.8 2.4c-31.2-7.2-64-12-97.6-12-229.6 0-416 186.4-416 416 0 228.8 186.4 416 416 416 32 0 63.2-4 92.8-11.2 30.4 7.2 62.4 11.2 94.4 11.2 228.8 0 416-186.4 416-416-0.8-229.6-187.2-416-416-416zM436.8 729.6v65.6h-40v-63.2c-36.8-0.8-74.4-12-96-28l15.2-42.4c22.4 14.4 55.2 27.2 90.4 27.2 44.8 0 71.2-25.6 71.2-62.4 0-34.4-20.8-56-67.2-75.2-64.8-25.6-104.8-55.2-104.8-110.4 0-52.8 37.6-92 95.2-101.6v-63.2h40v61.6c37.6 0.8 63.2 11.2 82.4 22.4l-16 41.6c-13.6-7.2-39.2-22.4-80-22.4-48.8 0-63.2 28.8-63.2 55.2 0 32 19.2 48.8 74.4 72 64.8 26.4 98.4 59.2 98.4 115.2 0 51.2-35.2 98.4-100 108zM606.4 912c-3.2 0-6.4-0.8-9.6-0.8 140-67.2 237.6-209.6 237.6-375.2S736.8 228 596.8 160.8c3.2 0 6.4-0.8 9.6-0.8 207.2 0 376 168.8 376 376-0.8 207.2-168.8 376-376 376z m0 0" fill="#ffffff" p-id="7656"></path></svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 12 KiB

@ -1,9 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<svg width="100px" height="100px" viewBox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <svg width="100px" height="100px" viewBox="0 0 100 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<!-- Generator: Sketch 59 (86127) - https://sketch.com --> <!-- Generator: Sketch 59 (86127) - https://sketch.com -->
<title>大堂经理 / 理财业务</title> <title>大堂经理 / 其他业务</title>
<desc>Created with Sketch.</desc> <desc>Created with Sketch.</desc>
<g id="大堂经理-/-理财业务" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> <g id="大堂经理-/-其他业务" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g> <g>
<rect id="矩形" x="0" y="0" width="100" height="100"></rect> <rect id="矩形" x="0" y="0" width="100" height="100"></rect>
<path d="M67.2080977,40.7323812 C54.0681559,40.7323812 43.417744,51.349725 43.417744,64.4487687 C43.417744,77.5483 54.069786,88.1671875 67.2080977,88.1671875 C80.3480395,88.1671875 91,77.5483 91,64.4487687 C91,51.349725 80.3480395,40.7323812 67.2080977,40.7323812 Z M78.077184,71.8649437 C77.7216649,74.1622875 76.4409161,79.1824812 69.5025078,79.6826562 L69.5025078,84.0813687 L64.6000614,84.0813687 L64.6000614,79.717675 C61.6720417,79.306875 58.9722323,78.552225 56.1959725,77.6265437 L57.6681734,71.8846875 C59.8677948,72.7408187 62.7656581,73.656425 65.3172938,73.9509562 C68.7790811,74.3531438 71.1131835,73.6417187 71.3302278,71.1417375 C71.8238141,66.7597625 56.4043774,65.9884562 56.5495354,58.0792563 C56.3391744,52.2709375 60.5666073,49.7407313 64.7804291,49.3898937 L64.7804291,44.8177125 L69.6793708,44.8177125 L69.6793708,49.1796187 C72.4611729,49.21545 74.6653584,49.8113375 76.8114318,50.7479875 L75.452358,56.1586687 C73.2965856,55.349175 71.0919111,54.5894875 68.4521699,54.5894875 C66.7447493,54.5894875 63.1559792,54.5946062 63.0311971,56.941675 C63.0311971,60.987925 69.8163785,61.1941375 72.0709333,62.1482563 C73.7133139,62.8429437 74.8573811,63.5244687 76.0258994,64.6634313 C78.0670775,66.6515375 78.4908967,69.2129437 78.0772655,71.8647 L78.077184,71.8649437 Z M42.2955198,11 C26.1134531,11 13,17.4865937 13,25.4880937 C13,33.4878875 26.1134531,39.9752125 42.2955198,39.9752125 C58.4735113,39.9752125 71.5869644,33.489675 71.5869644,25.4880937 C71.5869644,17.4865125 58.4735113,11 42.2955198,11 Z M55.6789946,30.0178625 C55.2404233,31.4217 53.6627566,34.4863687 45.1201929,34.7930875 L45.1201929,37.4794562 L39.0837858,37.4794562 L39.0837858,34.8138875 C35.4802636,34.5627437 32.1534464,34.0999437 28.734856,33.5329812 L30.5493724,30.0270438 C33.2573322,30.5498063 36.8226292,31.1092125 39.9676117,31.2889375 C44.226179,31.5339875 47.1027699,31.1000313 47.3681459,29.5733437 C47.9763263,26.895425 28.9915926,26.4249062 29.1683741,21.5950812 C28.9086218,18.0475437 34.116218,16.499975 39.3003411,16.2879937 L39.3003411,13.4970562 L45.3321024,13.4970562 L45.3321024,16.1625438 C48.7603917,16.1823688 51.4719377,16.5471813 54.1130644,17.1192625 L52.4407719,20.4239437 C49.7857895,19.93035 47.0743251,19.4656812 43.8227358,19.4656812 C41.7183922,19.4656812 37.3030119,19.4690125 37.1491329,20.9018562 C37.1491329,23.373075 45.5037492,23.5000688 48.2784605,24.08125 C50.3013003,24.5057812 51.7087874,24.9214562 53.1478163,25.6189063 C55.665791,26.834 56.1843174,28.3991187 55.6790761,30.0179437 L55.6789946,30.0178625 Z M51.5285012,43.6922375 C48.6237916,44.1703937 45.5251031,44.4387625 42.2955198,44.4387625 C28.3528482,44.4387625 16.7120036,39.617875 13.7504044,33.1663 C13.2736079,34.2012625 13.0000815,35.2767687 13.0000815,36.3822562 C13.0000815,44.38205 26.1135346,50.869375 42.2956013,50.869375 C43.0826008,50.869375 43.8528106,50.8409375 44.6230204,50.8114437 C46.4359883,48.0101062 48.7802786,45.5856062 51.5285012,43.6921562 L51.5285012,43.6922375 Z M70.7830936,39.7009938 C71.290454,38.6353188 71.5854159,37.5275563 71.5854159,36.3837188 C71.5854159,35.2766875 71.3133566,34.2028875 70.83656,33.1680063 C69.784592,35.4635625 67.6151271,37.5458375 64.6519793,39.2838563 C65.0686261,39.2637875 65.477204,39.2195875 65.897437,39.2195875 C67.5717671,39.2195875 69.2024113,39.3909438 70.7830936,39.7009938 L70.7830936,39.7009938 Z M42.2955198,53.9710937 C28.3528482,53.9710937 16.7120036,49.15045 13.7504044,42.6989562 C13.2736079,43.7339187 13.0000815,44.8086937 13.0000815,45.9149125 C13.0000815,53.6867187 25.3897004,60.0140625 40.9313927,60.3679875 C41.3032125,58.1159 41.9649409,55.9648062 42.8920452,53.9563875 C42.6954584,53.9599625 42.4952853,53.971175 42.2955198,53.971175 L42.2955198,53.9710937 Z M40.6312962,63.4681625 C27.4373989,63.0995312 16.5917857,58.4231062 13.7503229,52.2307187 C13.2735264,53.2661687 13,54.3417562 13,55.4477312 C13,63.2634125 25.5296423,69.6187062 41.1982358,69.904625 C40.8080776,68.14605 40.5875287,66.3240187 40.5875287,64.4471437 C40.5875287,64.119625 40.617522,63.7956812 40.6312962,63.4680812 L40.6312962,63.4681625 Z M13.7504044,61.7639437 C13.2736079,62.7998812 13.0000815,63.873925 13.0000815,64.9794937 C13.0000815,72.9800187 26.1135346,79.4662875 42.2956013,79.4662875 C43.385713,79.4662875 44.4565084,79.4333 45.5135296,79.3769125 C44.0963436,77.4532375 42.9624644,75.3175 42.1321049,73.0333187 C28.2612381,72.9931812 16.6988815,68.189275 13.7504859,61.7639437 L13.7504044,61.7639437 Z M48.058319,82.276075 C46.1939223,82.4618938 44.2729621,82.568575 42.2955198,82.568575 C28.3528482,82.568575 16.7120036,77.74785 13.7504044,71.2961125 C13.2736079,72.3314813 13.0000815,73.405525 13.0000815,74.5126375 C13.0000815,82.5117 26.1135346,89 42.2956013,89 C47.0661747,89 51.5570275,88.423125 55.5353036,87.4222875 C51.0398051,85.3721875 47.3640707,82.1945813 44.7732317,78.24575 L48.058319,82.276075 Z" id="形状" fill="#FFBD34" fill-rule="nonzero"></path> <path d="M67.2080977,40.7323812 C54.0681559,40.7323812 43.417744,51.349725 43.417744,64.4487687 C43.417744,77.5483 54.069786,88.1671875 67.2080977,88.1671875 C80.3480395,88.1671875 91,77.5483 91,64.4487687 C91,51.349725 80.3480395,40.7323812 67.2080977,40.7323812 Z M78.077184,71.8649437 C77.7216649,74.1622875 76.4409161,79.1824812 69.5025078,79.6826562 L69.5025078,84.0813687 L64.6000614,84.0813687 L64.6000614,79.717675 C61.6720417,79.306875 58.9722323,78.552225 56.1959725,77.6265437 L57.6681734,71.8846875 C59.8677948,72.7408187 62.7656581,73.656425 65.3172938,73.9509562 C68.7790811,74.3531438 71.1131835,73.6417187 71.3302278,71.1417375 C71.8238141,66.7597625 56.4043774,65.9884562 56.5495354,58.0792563 C56.3391744,52.2709375 60.5666073,49.7407313 64.7804291,49.3898937 L64.7804291,44.8177125 L69.6793708,44.8177125 L69.6793708,49.1796187 C72.4611729,49.21545 74.6653584,49.8113375 76.8114318,50.7479875 L75.452358,56.1586687 C73.2965856,55.349175 71.0919111,54.5894875 68.4521699,54.5894875 C66.7447493,54.5894875 63.1559792,54.5946062 63.0311971,56.941675 C63.0311971,60.987925 69.8163785,61.1941375 72.0709333,62.1482563 C73.7133139,62.8429437 74.8573811,63.5244687 76.0258994,64.6634313 C78.0670775,66.6515375 78.4908967,69.2129437 78.0772655,71.8647 L78.077184,71.8649437 Z M42.2955198,11 C26.1134531,11 13,17.4865937 13,25.4880937 C13,33.4878875 26.1134531,39.9752125 42.2955198,39.9752125 C58.4735113,39.9752125 71.5869644,33.489675 71.5869644,25.4880937 C71.5869644,17.4865125 58.4735113,11 42.2955198,11 Z M55.6789946,30.0178625 C55.2404233,31.4217 53.6627566,34.4863687 45.1201929,34.7930875 L45.1201929,37.4794562 L39.0837858,37.4794562 L39.0837858,34.8138875 C35.4802636,34.5627437 32.1534464,34.0999437 28.734856,33.5329812 L30.5493724,30.0270438 C33.2573322,30.5498063 36.8226292,31.1092125 39.9676117,31.2889375 C44.226179,31.5339875 47.1027699,31.1000313 47.3681459,29.5733437 C47.9763263,26.895425 28.9915926,26.4249062 29.1683741,21.5950812 C28.9086218,18.0475437 34.116218,16.499975 39.3003411,16.2879937 L39.3003411,13.4970562 L45.3321024,13.4970562 L45.3321024,16.1625438 C48.7603917,16.1823688 51.4719377,16.5471813 54.1130644,17.1192625 L52.4407719,20.4239437 C49.7857895,19.93035 47.0743251,19.4656812 43.8227358,19.4656812 C41.7183922,19.4656812 37.3030119,19.4690125 37.1491329,20.9018562 C37.1491329,23.373075 45.5037492,23.5000688 48.2784605,24.08125 C50.3013003,24.5057812 51.7087874,24.9214562 53.1478163,25.6189063 C55.665791,26.834 56.1843174,28.3991187 55.6790761,30.0179437 L55.6789946,30.0178625 Z M51.5285012,43.6922375 C48.6237916,44.1703937 45.5251031,44.4387625 42.2955198,44.4387625 C28.3528482,44.4387625 16.7120036,39.617875 13.7504044,33.1663 C13.2736079,34.2012625 13.0000815,35.2767687 13.0000815,36.3822562 C13.0000815,44.38205 26.1135346,50.869375 42.2956013,50.869375 C43.0826008,50.869375 43.8528106,50.8409375 44.6230204,50.8114437 C46.4359883,48.0101062 48.7802786,45.5856062 51.5285012,43.6921562 L51.5285012,43.6922375 Z M70.7830936,39.7009938 C71.290454,38.6353188 71.5854159,37.5275563 71.5854159,36.3837188 C71.5854159,35.2766875 71.3133566,34.2028875 70.83656,33.1680063 C69.784592,35.4635625 67.6151271,37.5458375 64.6519793,39.2838563 C65.0686261,39.2637875 65.477204,39.2195875 65.897437,39.2195875 C67.5717671,39.2195875 69.2024113,39.3909438 70.7830936,39.7009938 L70.7830936,39.7009938 Z M42.2955198,53.9710937 C28.3528482,53.9710937 16.7120036,49.15045 13.7504044,42.6989562 C13.2736079,43.7339187 13.0000815,44.8086937 13.0000815,45.9149125 C13.0000815,53.6867187 25.3897004,60.0140625 40.9313927,60.3679875 C41.3032125,58.1159 41.9649409,55.9648062 42.8920452,53.9563875 C42.6954584,53.9599625 42.4952853,53.971175 42.2955198,53.971175 L42.2955198,53.9710937 Z M40.6312962,63.4681625 C27.4373989,63.0995312 16.5917857,58.4231062 13.7503229,52.2307187 C13.2735264,53.2661687 13,54.3417562 13,55.4477312 C13,63.2634125 25.5296423,69.6187062 41.1982358,69.904625 C40.8080776,68.14605 40.5875287,66.3240187 40.5875287,64.4471437 C40.5875287,64.119625 40.617522,63.7956812 40.6312962,63.4680812 L40.6312962,63.4681625 Z M13.7504044,61.7639437 C13.2736079,62.7998812 13.0000815,63.873925 13.0000815,64.9794937 C13.0000815,72.9800187 26.1135346,79.4662875 42.2956013,79.4662875 C43.385713,79.4662875 44.4565084,79.4333 45.5135296,79.3769125 C44.0963436,77.4532375 42.9624644,75.3175 42.1321049,73.0333187 C28.2612381,72.9931812 16.6988815,68.189275 13.7504859,61.7639437 L13.7504044,61.7639437 Z M48.058319,82.276075 C46.1939223,82.4618938 44.2729621,82.568575 42.2955198,82.568575 C28.3528482,82.568575 16.7120036,77.74785 13.7504044,71.2961125 C13.2736079,72.3314813 13.0000815,73.405525 13.0000815,74.5126375 C13.0000815,82.5117 26.1135346,89 42.2956013,89 C47.0661747,89 51.5570275,88.423125 55.5353036,87.4222875 C51.0398051,85.3721875 47.3640707,82.1945813 44.7732317,78.24575 L48.058319,82.276075 Z" id="形状" fill="#FFBD34" fill-rule="nonzero"></path>

Before

Width:  |  Height:  |  Size: 5.4 KiB

After

Width:  |  Height:  |  Size: 5.4 KiB

@ -1,5 +1,7 @@
<template> <template>
<div class="sth guide" @click="toPart" alt=""> <div class="sth guide"
@click="toPart"
alt="">
返回 返回
</div> </div>
</template> </template>

@ -0,0 +1,67 @@
<template>
<!-- 面包屑 -->
<div class="breadcrumb">
<el-breadcrumb separator=">">
<template v-for="(item, index) in pages">
<el-breadcrumb-item v-if="index != pages.length - 1"
:key="index">
<span @click="toPath">{{item}}</span>
</el-breadcrumb-item>
<el-breadcrumb-item v-else
:key="index">
{{item}}
</el-breadcrumb-item>
</template>
</el-breadcrumb>
</div>
</template>
<script>
export default {
props: {
data: {
type: String,
required: true
},
route: {
type: String,
default: '/'
},
query: {
type: Object
}
},
data () {
return {
pages: this.data.split('/')
};
},
methods: {
update (data) {
this.pages = data.split('/')
},
toPath () {
this.$router.push('/index')
}
}
};
</script>
<style lang="scss" scoped>
.breadcrumb {
margin: 4px 0 16px;
/deep/.el-breadcrumb__item {
&:first-child {
span {
font-weight: 400;
color: #007eff;
cursor: pointer;
}
}
&:last-child {
.is-link {
color: #0b1d30;
}
}
}
}
</style>

@ -7,13 +7,9 @@
<div class="flex a-center j-between"> <div class="flex a-center j-between">
<div class="flex a-center" style="width: 28%"> <div class="flex a-center" style="width: 28%">
<p>实训项目</p> <p>实训项目</p>
<el-select v-model.trim="projectId" placeholder="请选择" class="select" :disabled="projectPermissions != 0" @change="selectProject"> <el-select v-model.trim="projectId" placeholder="请选择" class="select" disabled @change="selectProject">
<el-option <el-option v-for="item in topicList" :key="item.projectId" :label="item.projectName"
v-for="item in topicList" :value="item.projectId"></el-option>
:key="item.projectId"
:label="item.projectName"
:value="item.projectId"
></el-option>
</el-select> </el-select>
</div> </div>
<div class="countDownBox"> <div class="countDownBox">
@ -34,16 +30,18 @@
</div> </div>
</div> </div>
<div> <div>
<el-button @click="toReport" v-if="popContainer">查看实验报告</el-button>
<el-button style="background: #202020;color: #d0d0d0;font-size:16px;" v-show="projectPermissions == 0" <el-button style="background: #202020;color: #d0d0d0;font-size:16px;" v-show="projectPermissions == 0"
@click="reload" :disabled="popContainer && (assessmentId!='' && assessmentId!='null' && assessmentId!=null)"> @click="reload"
:disabled="popContainer && (assessmentId != '' && assessmentId != 'null' && assessmentId != null)">
重新开始 重新开始
</el-button> </el-button>
<el-button class="submit-btn" style="margin-right:7px" @click="Submit()" :disabled="popContainer || requires.length == 0">提交</el-button> <el-button class="submit-btn" style="margin-right:7px" @click="Submit()"
:disabled="popContainer || requires.length == 0">提交</el-button>
</div> </div>
</div> </div>
</el-header> </el-header>
<el-container> <el-container>
<el-aside width="30%" class="flex flex-col"> <el-aside width="30%" class="flex flex-col">
<div class="aside-header"> <div class="aside-header">
@ -75,16 +73,8 @@
</el-table-column> </el-table-column>
<el-table-column prop="right" label="完成结果" width="80" align="center"> <el-table-column prop="right" label="完成结果" width="80" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<i <i v-if="scope.row.right == true" class="el-icon-check" style="color:green;"></i>
v-if="scope.row.right==true" <i v-else-if="scope.row.right == false" class="el-icon-close" style="color:red;"></i>
class="el-icon-check"
style="color:green;"
></i>
<i
v-else-if="scope.row.right==false"
class="el-icon-close"
style="color:red;"
></i>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="scores" label="得分" width="60" align="center"></el-table-column> <el-table-column prop="scores" label="得分" width="60" align="center"></el-table-column>
@ -130,15 +120,10 @@
<div class='popContainer' v-if='popContainer'></div> <div class='popContainer' v-if='popContainer'></div>
<!-- 遮罩层 --> <!-- 遮罩层 -->
<div class="absolute z-50 h-screen bg-transparent inset-0" v-show="showIt"></div> <div class="absolute z-50 h-screen bg-transparent inset-0" v-show="showIt"></div>
<el-dialog <el-dialog title="提示" :visible.sync="closePaneJudge" width="30%" center>
title="提示"
:visible.sync="closePaneJudge"
width="30%"
center>
<h4 class="antialiased text-center text-2xl">请选择你将进行的操作</h4> <h4 class="antialiased text-center text-2xl">请选择你将进行的操作</h4>
<span slot="footer" class="dialog-footer"> <span slot="footer" class="dialog-footer">
<el-button @click="closePane()">再试一次</el-button> <el-button @click="closePane()">再试一次</el-button>
@ -157,6 +142,8 @@ import Setting from '@/setting'
// //
import { getProjectBySystemId, getProjectDetail, submit, getQueryCache, deleteCache, checkTest, checkTest2 } from "@/api/http.js"; import { getProjectBySystemId, getProjectDetail, submit, getQueryCache, deleteCache, checkTest, checkTest2 } from "@/api/http.js";
import { mapMutations } from 'vuex' import { mapMutations } from 'vuex'
import { async } from 'q';
import Bus from '@/libs/bus'
export default { export default {
props: { props: {
sendSync: { sendSync: {
@ -171,10 +158,6 @@ export default {
type: Number, type: Number,
default: null default: null
}, },
codeId: {
type: Number,
default: 0
},
showIt: { showIt: {
type: Boolean, type: Boolean,
required: true required: true
@ -192,7 +175,6 @@ export default {
grade: "00", grade: "00",
exampleData: "", exampleData: "",
codeid: "", codeid: "",
codeIds: [],
judgmentPointsIds: [], judgmentPointsIds: [],
text: "", text: "",
isStart: false, isStart: false,
@ -206,7 +188,7 @@ export default {
hour: '00', hour: '00',
createTime: "", // createTime: "", //
actEndTime: "", // actEndTime: "", //
projectId: "", // projectId: "" || sessionStorage.getItem('projectId'), //
value: [ value: [
{ projectName: '项目1', projectId: 1 } { projectName: '项目1', projectId: 1 }
], ],
@ -221,10 +203,12 @@ export default {
schoolId: '', schoolId: '',
studentId: "", studentId: "",
courseId: "", courseId: "",
// projectId: "",
assessmentId: "", assessmentId: "",
classId: '', classId: '',
projectPermissions: 0, //(0 1 2) projectPermissions: 0, //(0 1 2)
competitionId: '',
stageId: '',
teamId: '',
isSubmit: false, isSubmit: false,
entryTime: util.formatDate('yyyy-MM-dd hh:mm:ss'), entryTime: util.formatDate('yyyy-MM-dd hh:mm:ss'),
startTime: '', startTime: '',
@ -240,10 +224,48 @@ export default {
sss: 1, sss: 1,
popContainer: false, popContainer: false,
timestamp: '', timestamp: '',
curSystemId: '',
reportId: '',
submitType: false
} }
}, },
computed: {
needSendSunc: function () {
return this.sendSync;
},
//
second: function () {
return this.num(this.seconds);
},
minute: function () {
return this.num(this.minutes);
},
activeNames () {
//
return this.requires.map(item => item.id)
},
},
watch: {
countVal: {
deep: true,
handler: function (val, oldVal) {
let vm = this;
if (vm.needSendSunc) {
vm.passToParent(val);
}
}
},
needSendSunc: {
deep: true,
handler: function (val) {
let vm = this;
if (val) {
vm.passToParent(vm.countString);
}
}
},
},
created () { created () {
let assessmentId = this.getQueryVariable('assessmentId') let assessmentId = this.getQueryVariable('assessmentId')
sessionStorage.setItem('assessmentId', assessmentId) sessionStorage.setItem('assessmentId', assessmentId)
this.assessmentId = assessmentId this.assessmentId = assessmentId
@ -266,88 +288,59 @@ export default {
}); });
// //
this.sureSubmit(true) this.sureSubmit(true)
}else {
} }
}) })
}, 4000) }, 4000)
} }
}, Bus.$on('setSubmited', data => {
watch: { this.popContainer = data
countVal: { })
deep: true,
handler: function(val, oldVal) {
let vm = this;
if (vm.needSendSunc) {
vm.passToParent(val);
}
}
},
needSendSunc: {
deep: true,
handler: function(val) {
let vm = this;
if (val) {
vm.passToParent(vm.countString);
}
}
},
// caseVisible(newVal) {
// if(!newVal) {
// console.log(this.$refs.scrollTag)
// }
// }
},
computed: {
needSendSunc: function() {
return this.sendSync;
},
//
second: function() {
return this.num(this.seconds);
},
minute: function() {
return this.num(this.minutes);
},
activeNames() {
//
return this.requires.map(item => item.id)
},
}, },
mounted () { mounted () {
let token = this.getQueryVariable('token') let token = this.getParam('token')
let cid = this.getQueryVariable('cid') let cid = this.getParam('cid')
let systemId = this.getQueryVariable('systemId') let systemId = this.getParam('systemId')
let projectId = this.getQueryVariable('projectId') let projectId = this.getParam('projectId')
let assessmentId = this.getQueryVariable('assessmentId') let assessmentId = this.getParam('assessmentId')
let classId = this.getQueryVariable('classId') let competitionId = this.getParam('competitionId')
let stopTime = this.getQueryVariable('stopTime') let stageId = this.getParam('stageId')
let timestamp = +stopTime; let teamId = this.getParam('teamId')
if (timestamp != null){ let classId = this.getParam('classId')
}else{ let stopTime = this.getParam('stopTime')
sessionStorage.setItem('timestamp', null) let mallId = this.getParam('mallId')
} let timestamp = +stopTime
if (token != null){ timestamp || sessionStorage.removeItem('timestamp')
if (token) {
sessionStorage.setItem('token', token) sessionStorage.setItem('token', token)
sessionStorage.setItem('cid', cid) sessionStorage.setItem('cid', cid)
sessionStorage.setItem('systemId', systemId) sessionStorage.setItem('systemId', systemId)
sessionStorage.setItem('timestamp', timestamp) sessionStorage.setItem('timestamp', timestamp)
console.log("🚀 ~ mounted ~ projectId:", token, projectId)
sessionStorage.setItem('projectId', projectId) sessionStorage.setItem('projectId', projectId)
sessionStorage.setItem('assessmentId', assessmentId) sessionStorage.setItem('assessmentId', assessmentId)
sessionStorage.setItem('competitionId', competitionId)
sessionStorage.setItem('stageId', stageId)
sessionStorage.setItem('teamId', teamId)
sessionStorage.setItem('classId', classId) sessionStorage.setItem('classId', classId)
this.assessmentId = assessmentId this.assessmentId = assessmentId
this.competitionId = competitionId
this.stageId = stageId
this.teamId = teamId
this.classId = classId this.classId = classId
} this.mallId = mallId
let tokens = sessionStorage.getItem('token') }
if(tokens || token){ if (token) {
this.projectPermissions = this.assessmentId ? 1 : 0 this.projectPermissions = this.assessmentId ?
1 :
this.competitionId ?
2 :
0
this.assessmentId && this.projectId && this.checkVer() this.assessmentId && this.projectId && this.checkVer()
this.codeId && this.codeIds.push(this.codeId) if (assessmentId || this.competitionId) {
if (assessmentId !=null && assessmentId != '' && assessmentId !='null'){ this.selectProjects({
let params = { projectId
"projectId":projectId, })
}
this.selectProjects(params)
} else { } else {
this.getData() this.getData()
} }
@ -355,7 +348,10 @@ export default {
}, },
methods: { methods: {
...mapMutations({ ...mapMutations({
initState: 'system/initState' setPopId: 'system/setPopId',
setBusinessKey: 'system/setBusinessKey',
initState: 'system/initState',
setShowBusiness: 'system/setShowBusiness',
}), }),
clearStore () { clearStore () {
// // // //
@ -367,12 +363,14 @@ export default {
let classId = sessionStorage.getItem('classId') let classId = sessionStorage.getItem('classId')
let timestamp = sessionStorage.getItem('timestamp') let timestamp = sessionStorage.getItem('timestamp')
let startTime = sessionStorage.getItem('startTime') let startTime = sessionStorage.getItem('startTime')
const storeProjectId = sessionStorage.getItem('storeProjectId') const storeProjectId = sessionStorage.getItem('storeProjectId')
sessionStorage.clear() sessionStorage.clear()
sessionStorage.setItem('token', token) sessionStorage.setItem('token', token)
sessionStorage.setItem('cid', cid) sessionStorage.setItem('cid', cid)
sessionStorage.setItem('systemId', systemId) sessionStorage.setItem('systemId', systemId)
sessionStorage.setItem('projectId', projectId) sessionStorage.setItem('projectId', projectId)
sessionStorage.setItem('firstLoad2', true)
if (assessmentId) { if (assessmentId) {
sessionStorage.setItem('assessmentId', assessmentId) sessionStorage.setItem('assessmentId', assessmentId)
} }
@ -401,6 +399,11 @@ export default {
this.toggleCase() this.toggleCase()
} }
}, },
//
getParam (field) {
const s = sessionStorage.getItem(field)
return s !== 'null' && s !== 'undefined' && s ? s : this.getQueryVariable(field)
},
getQueryVariable (name) { getQueryVariable (name) {
var reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)') var reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)')
if (window.location.href.split('?')[1]) { if (window.location.href.split('?')[1]) {
@ -411,20 +414,6 @@ export default {
return null return null
} }
} }
// if(sessionStorage.getItem(name)) {
// return sessionStorage.getItem(name)
// }else {
// var reg = new RegExp('(^|&)'+name+'=([^&]*)(&|$)')
// if(window.location.href.split('?')[1]){
// var r = window.location.href.split('?')[1].match(reg)
// if (r != null){
// return (r[2])
// }else{
// return null
// }
// }
// }
}, },
// //
getData () { getData () {
@ -432,6 +421,7 @@ export default {
"systemId": sessionStorage.getItem('systemId'), "systemId": sessionStorage.getItem('systemId'),
"cId": sessionStorage.getItem('cid'), "cId": sessionStorage.getItem('cid'),
"permissions": 0, "permissions": 0,
mallId: this.mallId
} }
getProjectBySystemId(params).then((data) => { getProjectBySystemId(params).then((data) => {
if (data.status == 200) { if (data.status == 200) {
@ -447,8 +437,6 @@ export default {
} }
} }
console.log('---this.topicList')
console.log(this.topicList)
if (this.topicList.length > 0) { if (this.topicList.length > 0) {
const storeProjectId = sessionStorage.getItem('storeProjectId') || this.$route.query.projectId const storeProjectId = sessionStorage.getItem('storeProjectId') || this.$route.query.projectId
if (storeProjectId) { if (storeProjectId) {
@ -522,7 +510,7 @@ export default {
}) })
}, },
gotuQueryVariable () { gotuQueryVariable () {
let projectId = this.getQueryVariable('projectId') let projectId = sessionStorage.getItem('projectId') || this.getQueryVariable('projectId')
if (projectId) { if (projectId) {
this.projectId = projectId this.projectId = projectId
} else { } else {
@ -532,7 +520,6 @@ export default {
} else { } else {
this.projectId = this.topicList[0].projectId; this.projectId = this.topicList[0].projectId;
} }
} }
sessionStorage.setItem('projectId', this.projectId) sessionStorage.setItem('projectId', this.projectId)
let params = { let params = {
@ -550,6 +537,7 @@ export default {
this.sss = 1; this.sss = 1;
this.hintOpen = data.data.projectManage.hintOpen; this.hintOpen = data.data.projectManage.hintOpen;
this.countDown(timestamp); this.countDown(timestamp);
this.curSystemId = data.data.projectManage.systemId
let assessmentId = this.getQueryVariable('assessmentId') let assessmentId = this.getQueryVariable('assessmentId')
if (assessmentId != null && assessmentId != '' && assessmentId != 'null') { if (assessmentId != null && assessmentId != '' && assessmentId != 'null') {
// //
@ -573,6 +561,7 @@ export default {
// //
selectProject () { selectProject () {
this.lockIt = false this.lockIt = false
this.submitType = false
this.$router.push('/index/list') this.$router.push('/index/list')
this.$nextTick(() => { this.$nextTick(() => {
@ -588,6 +577,9 @@ export default {
sessionStorage.setItem('accountVoucher', JSON.stringify(formList)) sessionStorage.setItem('accountVoucher', JSON.stringify(formList))
sessionStorage.setItem('accountPasswordAll', '') sessionStorage.setItem('accountPasswordAll', '')
sessionStorage.setItem('projectId', this.projectId) sessionStorage.setItem('projectId', this.projectId)
sessionStorage.removeItem('submited', 0)
sessionStorage.removeItem('firstLoad2')
this.setBusinessKey('')
getProjectDetail(params).then((data) => { getProjectDetail(params).then((data) => {
if (data.status == 200) { if (data.status == 200) {
const { systemId, projectId } = data.data.projectManage const { systemId, projectId } = data.data.projectManage
@ -631,6 +623,13 @@ export default {
this.sss = 1 this.sss = 1
this.startCountFn(); this.startCountFn();
}, },
//
toReport () {
this.popContainer = false
// this.setShowBusiness(false)
this.$emit('update:showIt', !this.showIt)
this.$router.push(`/index/report?reportId=${this.reportId}`)
},
// //
Submit () { Submit () {
this.$confirm('此操作将视为结束考试, 是否继续?', '提示', { this.$confirm('此操作将视为结束考试, 是否继续?', '提示', {
@ -638,8 +637,7 @@ export default {
confirmButtonText: '确定', confirmButtonText: '确定',
cancelButtonText: '取消', cancelButtonText: '取消',
type: 'warning' type: 'warning'
}).then(() => { }).then(res => {
this.sureSubmit(true) this.sureSubmit(true)
}).catch(() => { }).catch(() => {
this.$message({ this.$message({
@ -648,18 +646,17 @@ export default {
}); });
}); });
}, },
sureSubmit(judge){ async sureSubmit (judge) {
// vuexstate // vuexstate
// this.initState(); // this.initState();
this.actEndTime = new Date().getTime(); this.actEndTime = new Date().getTime();
let ruleReqs = sessionStorage.getItem('ruleReqs') let ruleReqs = sessionStorage.getItem('ruleReqs')
let startTime = sessionStorage.getItem('startTime') let startTime = sessionStorage.getItem('startTime') || this.entryTime
let ruleReqsList = JSON.parse(ruleReqs); let ruleReqsList = JSON.parse(ruleReqs);
let lcld = [] let lcld = []
for (var i = 0; i < this.requires.length; i++) { for (var i = 0; i < this.requires.length; i++) {
lcld.push(this.requires[i].judgmentId) lcld.push(this.requires[i].judgmentId)
} }
let systemId = sessionStorage.getItem('systemId')
let cid = sessionStorage.getItem('cid') let cid = sessionStorage.getItem('cid')
let params = { let params = {
"assessmentId": this.assessmentId, "assessmentId": this.assessmentId,
@ -673,13 +670,19 @@ export default {
"ruleReqs": ruleReqsList, "ruleReqs": ruleReqsList,
"startTime": startTime, "startTime": startTime,
"submitTime": this.actEndTime, "submitTime": this.actEndTime,
"systemId": systemId, "systemId": this.curSystemId,
competitionId: this.competitionId,
stageId: this.stageId,
teamId: this.teamId,
mallId: this.mallId
} }
this.loading = true; this.loading = true;
submit(params).then((data) => { submit(params).then((data) => {
if (data.status == 200) { if (data.status == 200) {
this.clearStore() sessionStorage.setItem('firstLoad2', true)
// this.clearStore()
const { retMap } = data.data
this.reportId = retMap.reportId
let firstLoad = null let firstLoad = null
let firstLoad2 = null let firstLoad2 = null
if (sessionStorage.getItem('firstLoad')) { if (sessionStorage.getItem('firstLoad')) {
@ -690,6 +693,9 @@ export default {
} }
this.lockIt = true this.lockIt = true
if (this.assessmentId) {
this.submitType = true
}
if (firstLoad) { if (firstLoad) {
sessionStorage.setItem('firstLoad', firstLoad) sessionStorage.setItem('firstLoad', firstLoad)
} }
@ -698,13 +704,14 @@ export default {
} }
let datas= data.data.retMap.scoreInfo; let datas = retMap.scoreInfo;
let formList = [] let formList = []
sessionStorage.setItem('ruleReqs', JSON.stringify(formList)) sessionStorage.setItem('ruleReqs', JSON.stringify(formList))
sessionStorage.setItem('accountVoucher', JSON.stringify(formList)) sessionStorage.setItem('accountVoucher', JSON.stringify(formList))
sessionStorage.setItem('accountPasswordAll', '') sessionStorage.setItem('accountPasswordAll', '')
sessionStorage.setItem('submited', 1)
let list = this.requires let list = this.requires
this.grade = data.data.retMap.totalScore this.grade = retMap.totalScore
for (var j = 0; j < list.length; j++) { for (var j = 0; j < list.length; j++) {
for (var i = 0; i < datas.length; i++) { for (var i = 0; i < datas.length; i++) {
if (datas[i].lcId == list[j].judgmentId) { if (datas[i].lcId == list[j].judgmentId) {
@ -723,6 +730,11 @@ export default {
}); });
} }
this.requires.splice(0, this.requires.length, ...list) this.requires.splice(0, this.requires.length, ...list)
} else {
this.$message({
type: "error",
message: data.message
});
} }
this.loading = false this.loading = false
}).catch((error) => { }).catch((error) => {
@ -812,6 +824,7 @@ export default {
} }
}, },
reload () { reload () {
this.submitType = false
this.lockIt = false this.lockIt = false
this.clearStore() this.clearStore()
let token = sessionStorage.getItem('token') let token = sessionStorage.getItem('token')
@ -822,6 +835,8 @@ export default {
sessionStorage.setItem('ruleReqs', JSON.stringify(formList)) sessionStorage.setItem('ruleReqs', JSON.stringify(formList))
sessionStorage.setItem('accountVoucher', JSON.stringify(formList)) sessionStorage.setItem('accountVoucher', JSON.stringify(formList))
sessionStorage.setItem('accountPasswordAll', '') sessionStorage.setItem('accountPasswordAll', '')
this.setPopId('')
this.setBusinessKey('')
let params = { let params = {
"projectId": projectId, "projectId": projectId,
} }
@ -861,11 +876,12 @@ export default {
return param < 10 ? "0" + param : param; return param < 10 ? "0" + param : param;
}, },
toggleCase () { toggleCase () {
if(!this.lockIt) { if (this.submitType) return
// if (!this.lockIt) {
this.$emit('update:showIt', !this.showIt) this.$emit('update:showIt', !this.showIt)
}else { // } else {
this.closePaneJudge = true // this.closePaneJudge = true
} // }
// this.caseVisible = !this.caseVisible // this.caseVisible = !this.caseVisible
}, },
@ -908,7 +924,8 @@ $togetherFontSize: 16px;
.popContainer { .popContainer {
position: absolute; position: absolute;
width:100%; /*宽度设置为100%,这样才能使隐藏背景层覆盖原页面*/ width: 100%;
/*宽度设置为100%,这样才能使隐藏背景层覆盖原页面*/
height: 100%; height: 100%;
z-index: 1000; z-index: 1000;
top: 0; top: 0;
@ -917,8 +934,10 @@ $togetherFontSize: 16px;
bottom: 0; bottom: 0;
background: rgba(0, 0, 0, 0.3); background: rgba(0, 0, 0, 0.3);
} }
/deep/.el-container { /deep/.el-container {
height: 80%; height: 80%;
&.is-vertical { &.is-vertical {
position: fixed; position: fixed;
top: 200px; top: 200px;
@ -929,6 +948,7 @@ $togetherFontSize: 16px;
background-color: #f5f5f5; background-color: #f5f5f5;
z-index: 1001; z-index: 1001;
} }
.el-header { .el-header {
color: #333; color: #333;
padding: 0 12px 0 20px; padding: 0 12px 0 20px;
@ -947,15 +967,19 @@ $togetherFontSize: 16px;
background: $main-color url(../../assets/img/case/btn.png) 0 0/100% 100% no-repeat; background: $main-color url(../../assets/img/case/btn.png) 0 0/100% 100% no-repeat;
} }
} }
.el-aside { .el-aside {
font-size: $togetherFontSize; font-size: $togetherFontSize;
color: #333; color: #333;
[class*=" el-icon-"],[class^="el-icon-"]{
[class*=' el-icon-'],
[class^='el-icon-'] {
line-height: 40px; line-height: 40px;
font-size: 16px; font-size: 16px;
font-size: $togetherFontSize; font-size: $togetherFontSize;
} }
} }
.el-main { .el-main {
width: 60%; width: 60%;
background-color: #fff; background-color: #fff;
@ -965,23 +989,29 @@ $togetherFontSize: 16px;
margin: 0px 20px 10px 10px; margin: 0px 20px 10px 10px;
white-space: pre-wrap; white-space: pre-wrap;
background: #fff url(../../assets/img/case/bg.png) top right no-repeat; background: #fff url(../../assets/img/case/bg.png) top right no-repeat;
// overflow: visible;
} }
.aside-header { .aside-header {
margin: 0px 10px 10px 10px; margin: 0px 10px 10px 10px;
background-color: #fff; background-color: #fff;
font-size: .875rem; font-size: 0.875rem;
} }
.aside-footer { .aside-footer {
margin: 0px 10px 10px 10px; margin: 0px 10px 10px 10px;
background-color: #fff; background-color: #fff;
} }
.header_h { .header_h {
height: 40px; height: 40px;
background: url(../../assets/img/case/header.png) 0 0/100% 100% no-repeat; background: url(../../assets/img/case/header.png) 0 0/100% 100% no-repeat;
justify-content: center; justify-content: center;
i { i {
color: #fff; color: #fff;
} }
p { p {
line-height: 40px; line-height: 40px;
font-size: 16px; font-size: 16px;
@ -989,29 +1019,36 @@ $togetherFontSize: 16px;
padding-left: 10px; padding-left: 10px;
} }
} }
.el-card { .el-card {
border: 0; border: 0;
border-radius: 0; border-radius: 0;
.el-card__body { .el-card__body {
padding: 0; padding: 0;
} }
} }
.select { .select {
flex: 1; flex: 1;
input::-webkit-input-placeholder { input::-webkit-input-placeholder {
color: #333; color: #333;
} }
.el-input__icon { .el-input__icon {
line-height: 60px; line-height: 60px;
} }
.el-select__caret:before { .el-select__caret:before {
content: "\e78f"; content: '\e78f';
font-size: 16px; font-size: 16px;
padding: 3px; padding: 3px;
background-color: $main-color; background-color: $main-color;
border-radius: 50%; border-radius: 50%;
color: #ffffff; color: #ffffff;
} }
.el-input--suffix .el-input__inner { .el-input--suffix .el-input__inner {
color: #333; color: #333;
font-size: $togetherFontSize; font-size: $togetherFontSize;
@ -1023,6 +1060,7 @@ $togetherFontSize: 16px;
text-overflow: ellipsis; text-overflow: ellipsis;
white-space: nowrap; white-space: nowrap;
} }
.el-input { .el-input {
padding: 10px 0; padding: 10px 0;
} }
@ -1040,6 +1078,7 @@ $togetherFontSize: 16px;
margin: 0 10px; margin: 0 10px;
padding: 20px 0; padding: 20px 0;
} }
.timeSpan { .timeSpan {
color: #333333; color: #333333;
padding: 5px 15px; padding: 5px 15px;
@ -1049,6 +1088,7 @@ $togetherFontSize: 16px;
margin: 0 5px; margin: 0 5px;
text-align: center; text-align: center;
} }
.gradeSpan { .gradeSpan {
color: #878787; color: #878787;
padding: 10px; padding: 10px;
@ -1057,6 +1097,7 @@ $togetherFontSize: 16px;
border-radius: 6px; border-radius: 6px;
text-align: center; text-align: center;
} }
.el-header /deep/.el-button:hover, .el-header /deep/.el-button:hover,
.el-button:focus, .el-button:focus,
.el-button:active { .el-button:active {
@ -1066,16 +1107,20 @@ $togetherFontSize: 16px;
/deep/.el-table { /deep/.el-table {
font-size: 12px; font-size: 12px;
thead { thead {
color: #fff; color: #fff;
} }
.el-table__cell { .el-table__cell {
padding: 12px 0; padding: 12px 0;
} }
.cell { .cell {
font-weight: 100; font-weight: 100;
font-size: 12px; font-size: 12px;
} }
td, td,
th.is-leaf { th.is-leaf {
border-bottom: 0 !important; border-bottom: 0 !important;
@ -1086,46 +1131,58 @@ $togetherFontSize: 16px;
thead { thead {
color: #ffffff; color: #ffffff;
font-size: 12px; font-size: 12px;
th { th {
font-weight: 100; font-weight: 100;
} }
} }
th,tr{
th,
tr {
background-color: #badfff; background-color: #badfff;
} }
} }
.el-table__row--striped { .el-table__row--striped {
td { td {
background-color: #badfff !important; background-color: #badfff !important;
} }
} }
/deep/ .el-collapse { /deep/ .el-collapse {
font-size: .875rem; font-size: 0.875rem;
} }
.el-collapse-item__content { .el-collapse-item__content {
padding-left: 10px; padding-left: 10px;
padding-right: 10px; padding-right: 10px;
font-size: $togetherFontSize; font-size: $togetherFontSize;
} }
.el-collapse-item__wrap { .el-collapse-item__wrap {
border-bottom: none; border-bottom: none;
} }
/deep/.el-collapse-item__header { /deep/.el-collapse-item__header {
font-size: 1rem; font-size: 1rem;
border-bottom: none; border-bottom: none;
} }
.el-tabs__content { .el-tabs__content {
margin: 0 20px; margin: 0 20px;
} }
.el-icon-s-ticket:before { .el-icon-s-ticket:before {
font-size: togetherFontSize; font-size: togetherFontSize;
//padding: 5px; //padding: 5px;
color: $main-color; color: $main-color;
} }
.el-collapse-item__arrow { .el-collapse-item__arrow {
margin: 0 5px 0 0; margin: 0 5px 0 0;
} }
.el-icon-arrow-right:before { .el-icon-arrow-right:before {
font-size: 12px; font-size: 12px;
font-size: $togetherFontSize; font-size: $togetherFontSize;
@ -1135,52 +1192,63 @@ $togetherFontSize: 16px;
border-radius: 50%; border-radius: 50%;
color: #ffffff; color: #ffffff;
} }
.el-tabs__item { .el-tabs__item {
font-size: 16px; font-size: 16px;
} }
.el-tabs--card>.el-tabs__header .el-tabs__nav { .el-tabs--card>.el-tabs__header .el-tabs__nav {
border: none; border: none;
} }
.el-tabs--card>.el-tabs__header .el-tabs__item { .el-tabs--card>.el-tabs__header .el-tabs__item {
border-left: none; border-left: none;
} }
.el-tabs--card>.el-tabs__header { .el-tabs--card>.el-tabs__header {
border-bottom: none; border-bottom: none;
} }
.el-collapse { .el-collapse {
border-bottom: none; border-bottom: none;
border-top: none; border-top: none;
height: 500px; height: calc(100vh - 422px);
overflow: hidden; overflow: hidden;
overflow-y: auto; overflow-y: auto;
} }
/deep/.el-collapse-item { /deep/.el-collapse-item {
font-size: $togetherFontSize; font-size: $togetherFontSize;
background-color: red; background-color: red;
color: red; color: red;
} }
.el-tabs__item.is-active { .el-tabs__item.is-active {
color: #fff; color: #fff;
background-color: $main-color; background-color: $main-color;
} }
.el-tabs__header { .el-tabs__header {
padding: 5px 20px; padding: 5px 20px;
} }
} }
.break-all { .break-all {
font-size: 16px; font-size: 16px;
word-break: break-all; word-break: break-all;
} }
.panel { .panel {
position: fixed; position: fixed;
z-index: 10010000; z-index: 10010000;
top: 50%; top: 50%;
&.active { &.active {
//z-index: 10; //z-index: 10;
left: 85%; left: 85%;
z-index: 1001; z-index: 1001;
} }
img { img {
height: 175px; height: 175px;
cursor: pointer; cursor: pointer;

@ -71,7 +71,6 @@
<h3 class="text-xs" style="left: 126px;top: 189px;">{{ getNowYear(1) }}</h3> <h3 class="text-xs" style="left: 126px;top: 189px;">{{ getNowYear(1) }}</h3>
<h3 class="text-xs" style="left: 163px;top: 189px;">{{ getNowYear(2) }}</h3> <h3 class="text-xs" style="left: 163px;top: 189px;">{{ getNowYear(2) }}</h3>
</template> </template>
<template v-else-if="imgSrcId==412" > <template v-else-if="imgSrcId==412" >
<h3 class="text-xl" style="left: 630px;top: 10px;">00246862</h3> <h3 class="text-xl" style="left: 630px;top: 10px;">00246862</h3>
<h3 class="text-xs" style="left: 700px;top: 80px;">{{ dataFlow.collectingCompany }}</h3> <h3 class="text-xs" style="left: 700px;top: 80px;">{{ dataFlow.collectingCompany }}</h3>
@ -119,7 +118,7 @@
<h3 class="text-md" style="left: 120px;top: 370px;">人民币</h3> <h3 class="text-md" style="left: 120px;top: 370px;">人民币</h3>
<h3 class="text-md" style="left: 260px;top: 370px;">{{ dataFlow.voucherNumber }}</h3> <h3 class="text-md" style="left: 260px;top: 370px;">{{ dataFlow.voucherNumber }}</h3>
</template> </template>
<template v-else-if="imgSrcId==468" > <template v-else-if="imgSrcId==468 || imgSrcId==467" >
<h3 class="text-xl" style="left: 325px;top: 103px;"></h3> <h3 class="text-xl" style="left: 325px;top: 103px;"></h3>
<h3 class="text-lg" style="left: 160px;top: 175px;">{{ dataFlow.userName }}</h3> <h3 class="text-lg" style="left: 160px;top: 175px;">{{ dataFlow.userName }}</h3>
<h3 class="text-lg" style="left: 490px;top: 175px;">{{ dataFlow.idNumber }}</h3> <h3 class="text-lg" style="left: 490px;top: 175px;">{{ dataFlow.idNumber }}</h3>

@ -4,15 +4,8 @@
<!-- 这个是自己封装的提示组件 用于系统录入中弹出的授权弹框 业务需求是有些业务需要授权有些业务不需要授权 --> <!-- 这个是自己封装的提示组件 用于系统录入中弹出的授权弹框 业务需求是有些业务需要授权有些业务不需要授权 -->
<el-dialog <el-dialog :visible="visible" append-to-body style="z-index: 6000;" class="apple" :close-on-click-modal="true"
:visible="visible" :show-close="false" custom-class="w3w5 bgNone z6000">
append-to-body
style="z-index: 6000;"
class="apple"
:close-on-click-modal="true"
:show-close="false"
custom-class="w3w5 bgNone z6000"
>
<div class="data-dia23 mx-auto w-9/12 rounded-3xl" :class="{ ['w-full']: flow === 3 }"> <div class="data-dia23 mx-auto w-9/12 rounded-3xl" :class="{ ['w-full']: flow === 3 }">
<!-- 2xl:w-3/5 xl:w-4/5 lg:w-full --> <!-- 2xl:w-3/5 xl:w-4/5 lg:w-full -->
<div slot="title" class="dia-header rounded-3xl"> <div slot="title" class="dia-header rounded-3xl">
@ -69,16 +62,10 @@
</div> </div>
</el-dialog> </el-dialog>
</template> </template>
<script> <script>
import { mapGetters } from 'vuex'
// objmoduleName, // objmoduleName,
const obj = { const obj = {
@ -105,8 +92,17 @@ const obj = {
'servicesAccount/passwordChange': '密码修改', 'servicesAccount/passwordChange': '密码修改',
'servicesAccount/passwordLost': '密码挂失登记', 'servicesAccount/passwordLost': '密码挂失登记',
'servicesAccount/relieveLost': '挂失解挂登记', 'servicesAccount/relieveLost': '挂失解挂登记',
'business/transfer': '转账',
'controlCash/cashTransferInto': '现金上缴', 'controlCash/cashTransferInto': '现金上缴',
'business/deposit': '存款',
'business/withdrawal': '取款',
'onlineBank/openAccount': '网上银行开户',
'foreignExchange/puchasing': '外汇业务购汇',
'foreignExchange/settlement': '外汇业务结汇',
'agent/waterRate': '代收水费',
'agent/electricRate': '代收电费',
'agent/telRate': '代收电话费',
'personalLoans/detail': '新建个人贷款',
'spacial': '提交' 'spacial': '提交'
} }
@ -126,10 +122,37 @@ const nameMap = {
116: '现金支票' 116: '现金支票'
}, },
currency: { currency: {
12: 'CNY人民币' 12: 'CNY人民币',
153: '美元 现汇',
163: '美元',
164: '澳大利亚元',
165: '加拿大元',
166: '港币',
167: '英镑',
168: '欧元',
169: '日元',
170: '新西兰元',
171: '新加坡元',
172: '泰国铢',
173: '韩元',
174: '新台币(不支持跨进汇款)',
175: '瑞土法郎',
176: '瑞典克朗',
177: '丹麦克朗',
178: '卢布',
179: '挪威克朗',
180: '菲律宾比索(不支持跨进汇款)',
181: '澳门元',
182: '印尼卢比 (不支持跨进汇款)',
183: '巴西里亚尔(不支持跨进汇款)',
184: '阿联酋迪拉姆(不支持跨进汇款)',
185: '印度卢比(不支持跨进汇款)',
186: '印度卢比(南非兰特)',
}, },
goldLogo: { goldLogo: {
13: '钞户' 13: '钞户',
150: '现汇(参考牌价712.34)',
151: '现钞(参考牌价712.34)',
}, },
accountQuality: { accountQuality: {
14: '个人结算户', 14: '个人结算户',
@ -286,6 +309,51 @@ const nameMap = {
112: '按月', 112: '按月',
113: '满页' 113: '满页'
}, },
openOnlineBanking: {
146: '是',
147: '否'
},
openPhoneBanking: {
148: '是',
149: '否'
},
monthlyWithholding: {
142: '是',
143: '否'
},
numType: {
144: '手机号码',
145: '座机号码'
},
buyForeignPurpose: {
187: '因私旅游',
188: '境外留学',
189: '公务及商务出国',
190: '探亲',
191: '境外就医',
192: '海外购物',
193: '非投资类保险',
194: '咨询服务',
195: '境内外汇储蓄存款',
196: '购买境内外汇理财产品',
197: '职工报酬和婚家款',
198: '专有权利使用费和特许费',
199: '投资收益',
200: '运输',
201: '其他服务',
202: '其他经常转移',
},
fundingSource: {
154: '职工报酬和赡家款',
155: '旅游',
156: '金融和保险服务',
157: '专有权利使用费和特许费',
158: '咨询服务',
159: '其他服务',
160: '投资收益',
161: '其他经常转移',
162: '运输',
},
} }
export default { export default {
props: { props: {
@ -312,14 +380,30 @@ export default {
moduleName: { moduleName: {
type: String, type: String,
default: 'spacial' default: 'spacial'
},
spare: {
type: Boolean,
default: true
},
},
data () {
return {
flow: 1, //
disForm: { //
name: '002288',
pass: '123456'
},
leftObj: {}, //
rightObj: {} //
} }
}, },
created () { created () {
// flow4 // flow4
if (!this.needAuth) { if (!this.needAuth) {
this.flow = 4 this.flow = 4
} }
let num = 0; let num = 0
// 1 // 1
for (const key in this.showForm) { for (const key in this.showForm) {
if (!this.showForm[key]) { if (!this.showForm[key]) {
@ -360,7 +444,7 @@ export default {
return str; return str;
} }
if (this.spare) {
if (num % 2 === 1) { if (num % 2 === 1) {
// //
this.leftObj['流水号'] = tmpFunc2() this.leftObj['流水号'] = tmpFunc2()
@ -391,20 +475,8 @@ export default {
} }
this.rightObj['会计时间'] = tmpFunc() this.rightObj['会计时间'] = tmpFunc()
if (this.leftObj['支取方式'] == 114) this.leftObj['支取方式'] = '印鉴' if (this.leftObj['支取方式'] == 114) this.leftObj['支取方式'] = '印鉴'
console.log("🚀 ~ file: index.vue ~ line 393 ~ created ~ this.rightObj",this.leftObj, this.rightObj, this.showForm,this.formName)
// 002110 // 002110
},
data() {
return {
flow: 1, //
disForm:{ //
name:'002288',
pass:'123456'
},
leftObj: {}, //
rightObj: {} //
} }
}, },
methods: { methods: {
cancel () { cancel () {
@ -441,7 +513,10 @@ export default {
// + // +
successName () { successName () {
return obj[this.moduleName] + '成功' return obj[this.moduleName] + '成功'
} },
...mapGetters({
getSelectList: 'system/getSelectList'
}),
} }
} }
</script> </script>
@ -451,15 +526,18 @@ export default {
transform: translateY(-100px); transform: translateY(-100px);
min-width: 1300px; min-width: 1300px;
} }
/deep/.w4w5 { /deep/.w4w5 {
min-width: 800px; min-width: 800px;
} }
/deep/.el-dialog { /deep/.el-dialog {
-webkit-box-shadow: 0; -webkit-box-shadow: 0;
box-shadow: 0 0 0 0 !important; box-shadow: 0 0 0 0 !important;
border: 0 !important; border: 0 !important;
// display: none; // display: none;
} }
/deep/.el-form-item { /deep/.el-form-item {
label { label {
font-family: PingFangSC-Regular; font-family: PingFangSC-Regular;
@ -468,6 +546,7 @@ export default {
letter-spacing: 0.21px; letter-spacing: 0.21px;
font-weight: 400; font-weight: 400;
} }
.el-form-item__content { .el-form-item__content {
padding-left: 30px; padding-left: 30px;
text-align: left; text-align: left;
@ -479,8 +558,6 @@ export default {
} }
} }
.test { .test {
position: absolute; position: absolute;
top: 0; top: 0;
@ -489,6 +566,7 @@ export default {
height: 0; height: 0;
z-index: 9899999; z-index: 9899999;
} }
.masking { .masking {
width: 100vw; width: 100vw;
height: 100vh; height: 100vh;
@ -496,14 +574,16 @@ export default {
left: 0; left: 0;
bottom: 0; bottom: 0;
right: 0; right: 0;
opacity: .5; opacity: 0.5;
background-color: rgba(51,51,51,.9); background-color: rgba(51, 51, 51, 0.9);
} }
.data-dia23 { .data-dia23 {
// position: absolute; // position: absolute;
min-width: 40%; min-width: 40%;
background-color: white; background-color: white;
z-index: 9999; z-index: 9999;
.popBody { .popBody {
// width: 100%; // width: 100%;
min-height: 30vh; min-height: 30vh;
@ -511,16 +591,17 @@ export default {
padding-bottom: 20px; padding-bottom: 20px;
display: flex; display: flex;
align-items: center; align-items: center;
/deep/ .el-form { /deep/ .el-form {
height: 100%; height: 100%;
} }
} }
.dia-header { .dia-header {
height: 100%; height: 100%;
// position: relative; // position: relative;
.data-title { .data-title {
width: 300px; width: 300px;
margin: 0 auto; margin: 0 auto;
line-height: 72px; line-height: 72px;
@ -536,6 +617,7 @@ export default {
width: 100%; width: 100%;
padding: 0 50px; padding: 0 50px;
} }
// /deep/.popbody { // /deep/.popbody {
// width: 100vw!important; // width: 100vw!important;
// height: 100%!important; // height: 100%!important;
@ -546,22 +628,23 @@ export default {
justify-content: center; justify-content: center;
align-items: center; align-items: center;
padding-bottom: 20px; padding-bottom: 20px;
&>.btn { &>.btn {
width: 180px; width: 180px;
font-size: 18px; font-size: 18px;
} }
} }
.myPopBtns { .myPopBtns {
display: flex; display: flex;
justify-content: center; justify-content: center;
align-items: center; align-items: center;
padding-bottom: 20px; padding-bottom: 20px;
&>.btn { &>.btn {
width: 180px; width: 180px;
font-size: 18px; font-size: 18px;
} }
} }
// /deep/.el-dialog__header, /deep/.el-dialog__body { // /deep/.el-dialog__header, /deep/.el-dialog__body {
@ -577,12 +660,15 @@ export default {
/deep/.bgNone { /deep/.bgNone {
background-color: transparent; background-color: transparent;
} }
/deep/.myFull { /deep/.myFull {
width: 90%; width: 90%;
} }
/deep/.el-dialog { /deep/.el-dialog {
z-index: 9999 !important; z-index: 9999 !important;
} }
/deep/.el-dialog__wrapper { /deep/.el-dialog__wrapper {
z-index: 9999 !important; z-index: 9999 !important;
} }

@ -1,14 +1,7 @@
<template> <template>
<!-- 这个组件原理和dialog一样 --> <!-- 这个组件原理和dialog一样 -->
<el-dialog <el-dialog :visible="visible" append-to-body style="z-index: 6000;" class="apple" :close-on-click-modal="true"
:visible="visible" :show-close="false" custom-class="w4w5 bgNone z6000">
append-to-body
style="z-index: 6000;"
class="apple"
:close-on-click-modal="true"
:show-close="false"
custom-class="w4w5 bgNone z6000"
>
<div class="data-dia23 mx-auto w-9/12 rounded-3xl" :class="{ ['w-full']: flow === 3 }"> <div class="data-dia23 mx-auto w-9/12 rounded-3xl" :class="{ ['w-full']: flow === 3 }">
<!-- 2xl:w-3/5 xl:w-4/5 lg:w-full --> <!-- 2xl:w-3/5 xl:w-4/5 lg:w-full -->
<div slot="title" class="dia-header rounded-3xl"> <div slot="title" class="dia-header rounded-3xl">
@ -24,7 +17,7 @@
</div> </div>
<div class="popBody" v-else-if="flow === 2"> <div class="popBody" v-else-if="flow === 2">
<el-form ref="form2" :model="disForm" label-width="200px"> <el-form ref="form2" :model="disForm" label-width="200px">
<el-form-item label="授权柜员"> <el-form-item label="授权柜员">
<el-input disabled v-model.trim="disForm.name"></el-input> <el-input disabled v-model.trim="disForm.name"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="授权柜员"> <el-form-item label="授权柜员">
@ -95,7 +88,7 @@ const obj = {
'spacial': '提交', 'spacial': '提交',
"cityWide/cityWideOut": '同城提出', "cityWide/cityWideOut": '同城提出',
"cityWide/cityWideIn": '同城提入', "cityWide/cityWideIn": '同城提入',
'acceptanceDraft/invoice': '承兑汇票开票' 'acceptanceDraft/invoice': '承兑汇票开票',
} }
const nameMap = { const nameMap = {
sex: { sex: {
@ -384,30 +377,33 @@ export default {
/deep/ .el-row { /deep/ .el-row {
width: 100%; width: 100%;
} }
/deep/.popbody { /deep/.popbody {
width: 100vw !important; width: 100vw !important;
} }
.popBtns { .popBtns {
display: flex; display: flex;
justify-content: center; justify-content: center;
align-items: center; align-items: center;
&>.btn { &>.btn {
width: 180px; width: 180px;
border-radius: 10px; border-radius: 10px;
font-size: 18px; font-size: 18px;
} }
} }
.myPopBtns { .myPopBtns {
display: flex; display: flex;
justify-content: center; justify-content: center;
align-items: center; align-items: center;
&>.btn { &>.btn {
width: 180px; width: 180px;
border-radius: 10px; border-radius: 10px;
font-size: 18px; font-size: 18px;
} }
} }
// /deep/.el-dialog { // /deep/.el-dialog {
@ -417,14 +413,17 @@ export default {
/deep/.w3w5 { /deep/.w3w5 {
min-width: 1400px; min-width: 1400px;
} }
/deep/.w4w5 { /deep/.w4w5 {
min-width: 800px; min-width: 800px;
} }
/deep/.el-dialog { /deep/.el-dialog {
-webkit-box-shadow: 0; -webkit-box-shadow: 0;
box-shadow: 0 0 0 0 !important; box-shadow: 0 0 0 0 !important;
border: 0 !important; border: 0 !important;
} }
/deep/.el-form-item { /deep/.el-form-item {
label { label {
font-family: PingFangSC-Regular; font-family: PingFangSC-Regular;
@ -433,6 +432,7 @@ export default {
letter-spacing: 0.21px; letter-spacing: 0.21px;
font-weight: 400; font-weight: 400;
} }
.el-form-item__content { .el-form-item__content {
padding-left: 30px; padding-left: 30px;
text-align: left; text-align: left;
@ -444,8 +444,6 @@ export default {
} }
} }
.test { .test {
position: absolute; position: absolute;
top: 0; top: 0;
@ -454,6 +452,7 @@ export default {
height: 0; height: 0;
z-index: 9899999; z-index: 9899999;
} }
.masking { .masking {
width: 100vw; width: 100vw;
height: 100vh; height: 100vh;
@ -461,14 +460,16 @@ export default {
left: 0; left: 0;
bottom: 0; bottom: 0;
right: 0; right: 0;
opacity: .5; opacity: 0.5;
background-color: rgba(51,51,51,.9); background-color: rgba(51, 51, 51, 0.9);
} }
.data-dia23 { .data-dia23 {
// position: absolute; // position: absolute;
min-width: 40%; min-width: 40%;
background-color: white; background-color: white;
z-index: 9999; z-index: 9999;
.popBody { .popBody {
// width: 100%; // width: 100%;
min-height: 30vh; min-height: 30vh;
@ -476,16 +477,17 @@ export default {
padding-bottom: 20px; padding-bottom: 20px;
display: flex; display: flex;
align-items: center; align-items: center;
/deep/ .el-form { /deep/ .el-form {
height: 100%; height: 100%;
} }
} }
.dia-header { .dia-header {
height: 100%; height: 100%;
// position: relative; // position: relative;
.data-title { .data-title {
width: 300px; width: 300px;
margin: 0 auto; margin: 0 auto;
line-height: 72px; line-height: 72px;
@ -501,6 +503,7 @@ export default {
width: 100%; width: 100%;
padding: 0 50px; padding: 0 50px;
} }
// /deep/.popbody { // /deep/.popbody {
// width: 100vw!important; // width: 100vw!important;
// height: 100%!important; // height: 100%!important;
@ -511,22 +514,23 @@ export default {
justify-content: center; justify-content: center;
align-items: center; align-items: center;
padding-bottom: 20px; padding-bottom: 20px;
&>.btn { &>.btn {
width: 180px; width: 180px;
font-size: 18px; font-size: 18px;
} }
} }
.myPopBtns { .myPopBtns {
display: flex; display: flex;
justify-content: center; justify-content: center;
align-items: center; align-items: center;
padding-bottom: 20px; padding-bottom: 20px;
&>.btn { &>.btn {
width: 180px; width: 180px;
font-size: 18px; font-size: 18px;
} }
} }
// /deep/.el-dialog__header, /deep/.el-dialog__body { // /deep/.el-dialog__header, /deep/.el-dialog__body {
@ -542,12 +546,15 @@ export default {
/deep/.bgNone { /deep/.bgNone {
background-color: transparent; background-color: transparent;
} }
/deep/.myFull { /deep/.myFull {
width: 90%; width: 90%;
} }
/deep/.el-dialog { /deep/.el-dialog {
z-index: 9999 !important; z-index: 9999 !important;
} }
/deep/.el-dialog__wrapper { /deep/.el-dialog__wrapper {
z-index: 9999 !important; z-index: 9999 !important;
} }

@ -1,10 +1,20 @@
<template> <template>
<div class="quill" :class="classes"> <div class="quill"
<div ref="editor" :style="styles" v-loading="loading"></div> :class="classes">
<div ref="editor"
:style="styles"
v-loading="loading"></div>
<el-upload :action="this.api.fileupload" :before-upload="beforeUpload" :on-success="editorUploadSuccess" style="display: none"> <Upload :max-size="1000"
<el-button class="editorUpload" size="small" type="primary">点击上传</el-button> :limit="100"
</el-upload> @beforeUpload="beforeUpload"
@onSuccess="editorUploadSuccess"
style="display: none">
<div slot="trigger">
<el-button :id="'editorUpload' + index"
type="primary">点击上传</el-button>
</div>
</Upload>
</div> </div>
</template> </template>
@ -14,9 +24,14 @@
import 'quill/dist/quill.snow.css'; import 'quill/dist/quill.snow.css';
import 'quill/dist/quill.bubble.css'; import 'quill/dist/quill.bubble.css';
import toolbarOptions from './options' import toolbarOptions from './options'
import Upload from '@/components/upload';
import Oss from '@/components/upload/upload.js'
export default { export default {
name: 'quill', name: 'quill',
components: {
Upload,
},
props: { props: {
value: { value: {
type: String, type: String,
@ -39,9 +54,15 @@
}, },
minHeight: { minHeight: {
type: Number type: Number
} },
//
index: {
type: Number,
default: 0
},
}, },
data () { data () {
const that = this
return { return {
Quill: null, Quill: null,
currentValue: '', currentValue: '',
@ -56,7 +77,7 @@
'image': function (value) { 'image': function (value) {
if (value) { if (value) {
// iview // iview
document.querySelector('.editorUpload').click() document.querySelector("#editorUpload" + that.index).click();
} else { } else {
this.Quill.format('image', false); this.Quill.format('image', false);
} }
@ -114,48 +135,71 @@
const editor = this.$refs.editor; const editor = this.$refs.editor;
// //
this.Quill = new Quill(editor, this.options); this.Quill = new Quill(editor, this.options);
const ins = this.Quill
// //
this.Quill.pasteHTML(this.currentValue); ins.pasteHTML(this.currentValue);
if (this.toTop) { if (this.toTop) {
this.$nextTick(() => { this.$nextTick(() => {
window.scrollTo(0, 0) window.scrollTo(0, 0)
}) })
} }
// //
this.Quill.on('text-change', (delta, oldDelta, source) => { ins.on('text-change', (delta, oldDelta, source) => {
const html = this.$refs.editor.children[0].innerHTML; const html = this.$refs.editor.children[0].innerHTML;
const text = this.Quill.getText(); const text = ins.getText();
const quill = this.Quill; const quill = this.Quill;
// //
this.currentValue = html; this.currentValue = html;
// v-model.trim // v-model
this.$emit('input', html); this.$emit('input', html);
// //
this.$emit('on-change', { html, text, quill }); this.$emit('on-change', { html, text, quill });
}); });
// quill // quill
this.Quill.on('text-change', (delta, oldDelta, source) => { ins.on('text-change', (delta, oldDelta, source) => {
this.$emit('on-text-change', delta, oldDelta, source); this.$emit('on-text-change', delta, oldDelta, source);
}); });
this.Quill.on('selection-change', (range, oldRange, source) => { ins.on('selection-change', (range, oldRange, source) => {
this.$emit('on-selection-change', range, oldRange, source); this.$emit('on-selection-change', range, oldRange, source);
}); });
this.Quill.on('editor-change', (eventName, ...args) => { ins.on('editor-change', (eventName, ...args) => {
this.$emit('on-editor-change', eventName, ...args); this.$emit('on-editor-change', eventName, ...args);
}); });
//
ins.root.addEventListener('paste', evt => {
if (evt.clipboardData && evt.clipboardData.files && evt.clipboardData.files.length) {
evt.preventDefault();
//
[].forEach.call(evt.clipboardData.files, file => {
if (!file.type.match(/^image\/(gif|jpe?g|a?png|bmp)/i)) {
return
}
// ossbase64
Oss.upload(file).then(res => {
var range = ins.getSelection()
if (range) {
//
ins.insertEmbed(range.index, 'image', res.url)
//
ins.setSelection(range.index + 1)
}
})
});
}
}, false)
}, },
beforeUpload (file) { beforeUpload (file) {
this.loading = true this.loading = true
}, },
editorUploadSuccess (res) { editorUploadSuccess (file) {
// //
let quill = this.Quill let quill = this.Quill
// //
if (res.data.filesResult.fileUrl) { if (file.url) {
// //
let length = quill.getSelection().index; let length = quill.getSelection().index;
// res // res
quill.insertEmbed(length, 'image', res.data.filesResult.fileUrl) quill.insertEmbed(length, 'image', file.url)
// //
quill.setSelection(length + 1) quill.setSelection(length + 1)
} else { } else {

@ -1,22 +1,38 @@
<template> <template>
<!-- 业务选择列表 --> <!-- 业务选择列表 -->
<el-dialog :visible="true" class="" :modal="false" @close="closeData" :close-on-click-modal="false" :show-close="false" custom-class="data-dia 2xl:w-7/12 xl:w-9/12 lg:w-full h-9/12"> <el-dialog :visible="true"
<div slot="title" class="dia-header2"> class=""
:modal="false"
@close="closeData"
:close-on-click-modal="false"
:show-close="false"
custom-class="data-dia 2xl:w-7/12 xl:w-9/12 lg:w-full h-9/12">
<div slot="title"
class="dia-header2">
<div class="data-title2">业务选择</div> <div class="data-title2">业务选择</div>
<div class="close"><img v-lazy="closeImg" alt="" @click="showBusinessSelect(false)" /></div> <div class="close"><img v-lazy="closeImg"
alt=""
@click="showBusinessSelect(false)" /></div>
</div> </div>
<p class="tips2">请选择您要办理的业务:</p> <p class="tips2">请选择您要办理的业务:</p>
<ul class="take-list2"> <ul class="take-list2">
<li v-for="(item) in getBusinessSelectList" :class="{checked: takeCheck == item.myKey}" :key="item.myKey" @click="checkTake(item.myKey)"> <li v-for="(item) in getBusinessSelectList"
<img v-lazy="businessImg" alt=""> :class="{checked: takeCheck == item.myKey}"
:key="item.myKey"
@click="checkTake(item.myKey)">
<img v-lazy="businessImg"
alt="">
<p>{{ item.myKey + item.text}}</p> <p>{{ item.myKey + item.text}}</p>
</li> </li>
<li v-for="(item) in (3 - getBusinessSelectList.length%3)" class="sitting" :key="item"></li> <li v-for="(item) in (3 - getBusinessSelectList.length%3)"
class="sitting"
:key="item"></li>
</ul> </ul>
<div class="dia-footer2"> <div class="dia-footer2">
<div class='busyButtonBox'> <div class='busyButtonBox'>
<el-button @click="showBusinessSelect(false)">取消</el-button> <el-button @click="showBusinessSelect(false)">取消</el-button>
<el-button type="primary" @click="selectBusiness()">确定</el-button> <el-button type="primary"
@click="selectBusiness()">确定</el-button>
</div> </div>
</div> </div>
</el-dialog> </el-dialog>
@ -34,6 +50,7 @@ export default {
// default: '' // default: ''
}, },
mounted () { mounted () {
console.log('business', this.getBusinessSelectList)
if (this.businessKey) { if (this.businessKey) {
// //
this.takeCheck = this.businessKey this.takeCheck = this.businessKey
@ -129,6 +146,8 @@ export default {
sessionStorage.setItem('cid', cid) sessionStorage.setItem('cid', cid)
sessionStorage.setItem('systemId', systemId) sessionStorage.setItem('systemId', systemId)
sessionStorage.setItem('projectId', projectId) sessionStorage.setItem('projectId', projectId)
sessionStorage.setItem('firstLoad2', true)
sessionStorage.removeItem('submited')
if (assessmentId) { if (assessmentId) {
sessionStorage.setItem('assessmentId', assessmentId) sessionStorage.setItem('assessmentId', assessmentId)
} }
@ -147,7 +166,7 @@ export default {
// sessionStorage.setItem('systemData', systemData) // sessionStorage.setItem('systemData', systemData)
sessionStorage.setItem('businessKey', this.$store.state.system.businessKey) sessionStorage.setItem('businessKey', this.takeCheck)
}, },
}, },
@ -202,10 +221,10 @@ export default {
height: 10vh; height: 10vh;
font-size: 16px; font-size: 16px;
margin: 1vh 0; margin: 1vh 0;
border: 4px solid #DBDBDB; border: 4px solid #dbdbdb;
border-radius: 20px; border-radius: 20px;
cursor: pointer; cursor: pointer;
background-color: rgba(216,216,216,0.10); background-color: rgba(216, 216, 216, 0.1);
// &:first-child{ // &:first-child{
// margin: 0 0px 50px 0; // margin: 0 0px 50px 0;
// } // }
@ -231,16 +250,17 @@ export default {
text-overflow: ellipsis; text-overflow: ellipsis;
display: -webkit-box; display: -webkit-box;
-webkit-line-clamp: 2; -webkit-line-clamp: 2;
-webkit-box-orient: vertical -webkit-box-orient: vertical;
} }
&.checked { &.checked {
background: rgba(97,145,255,0.10) url('../../assets/svg/checked.svg') 96% 7%/auto no-repeat; background: rgba(97, 145, 255, 0.1) url('../../assets/svg/checked.svg') 96% 7% / auto no-repeat;
border-color: #6191FF; border-color: #6191ff;
} }
} }
} }
.dia-header2 { .dia-header2 {
position: relative;height: 50px; position: relative;
height: 50px;
line-height: 50px; line-height: 50px;
background-color: rgb(98, 149, 243); background-color: rgb(98, 149, 243);
border-top-left-radius: 14px; border-top-left-radius: 14px;

@ -0,0 +1,15 @@
/**
* 阿里云oss配置
* */
export default {
// oss账号信息
config: {
region: 'oss-cn-shenzhen',
accessKeyId: 'LTAI4FzqQHnk4rozqLZ8jCNj',
accessKeySecret: 'mveW7B1OyFoKUkHm8WsxmrjHmkJWHq',
bucket: 'huoran'
},
// 上传成功url前置部分(成功回调没有返回url)
preUrl: 'https://huoran.oss-cn-shenzhen.aliyuncs.com/'
}

@ -0,0 +1,150 @@
<template>
<el-upload :disabled="uploading"
:before-upload="beforeUpload"
:on-remove="onRemove"
:on-error="uploadError"
:limit="limit"
action=""
:on-exceed="handleExceed"
:show-file-list="showFiles"
:file-list="fileList"
:http-request="handleRequest"
name="file">
<slot name="trigger">
<el-button size="small"
:loading="uploading">{{ uploading ? '正在上传' : '上传文件' }}</el-button>
</slot>
<div slot="tip"
class="el-upload__tip">
<el-progress v-if="uploading"
class="upload-progress"
:stroke-width="3"
:percentage="uploadProgress"></el-progress>
<slot name="tip">
<p>支持扩展名.rar .zip .doc .docx .pdf .jpg...</p>
</slot>
</div>
</el-upload>
</template>
<script>
import OSS from 'ali-oss'
import OssConfig from './config.js'
import Util from '@/libs/util'
export default {
props: {
//
limit: {
type: Number,
default: 1
},
// (: Mb)
maxSize: {
type: Number,
default: 10
},
//
showFileList: {
type: Boolean,
default: true
},
//
fileList: {
type: Array,
default: () => []
},
// fileList使fileListfalse
changeFileList: {
type: Boolean,
default: true
},
//
onRemove: {
type: Function,
default: new Function()
},
},
data () {
return {
client: null,
uploading: false,
uploadProgress: 0,
showFiles: this.showFileList
};
},
mounted () {
this.initOss()
},
methods: {
// oss
initOss () {
this.client = new OSS(OssConfig.config)
},
//
beforeUpload (file) {
const oversize = file.size / 1024 / 1024 < this.maxSize
if (!oversize) Util.warningMsg(`请上传小于${this.maxSize}MB的附件!`)
if (oversize) {
this.$emit('beforeUpload', file)
return true
} else {
return false
}
},
//
handleProgress (progress) {
this.uploadProgress = Number((progress * 100).toFixed(2))
},
//
async handleRequest ({ file }) {
try {
this.uploadProgress = 0
this.uploading = true
this.showFiles = false
// oss
const { name } = await this.client.multipartUpload(Date.now() + '.' + Util.getFileExt(file.name), file, {
progress: this.handleProgress
});
this.uploading = false
const url = OssConfig.preUrl + name
this.changeFileList && this.$emit('update:fileList', [
...this.fileList,
{
name: name,
url
}
])
this.showFiles = true
this.$emit('onSuccess', {
format: Util.getFileExt(file.name),
name: file.name,
url,
size: file.size,
})
} catch (error) { }
},
uploadError (err, file, fileList) {
this.$message({
message: "上传出错,请重试!",
type: "error",
center: true
})
},
beforeRemove (file, fileList) {
return this.$confirm(`确定移除 ${file.name}`);
},
handleExceed (files, fileList) {
Util.warningMsg(`当前限制选择 ${this.limit} 个文件,如需更换,请删除上一个文件再重新选择!`);
},
}
};
</script>
<style lang="scss" scoped>
/deep/.upload-progress {
max-width: 300px;
margin: 10px 0;
white-space: nowrap;
}
</style>

@ -0,0 +1,37 @@
// 阿里云oss上传
import OSS from 'ali-oss'
import OssConfig from './config'
import Util from '@/libs/util'
let client = null
// 初始化oss
const initOss = () => {
if (!client) client = new OSS(OssConfig.config)
}
export default {
// 上传文件
upload(file) {
initOss()
return new Promise(async (resolve, reject) => {
try {
// 上传到阿里云oss
const res = await client.multipartUpload(Date.now() + '.' + Util.getFileExt(file.name), file);
resolve({
format: Util.getFileExt(file.name),
name: file.name,
url: OssConfig.preUrl + res.name,
size: file.size,
})
} catch (error) {
reject()
}
})
},
// 删除文件(传完整url,不是没有https的name,因为很多接口没有存name,只存url,所以统一使用url)
async del(url) {
initOss()
await client.delete(url.replace(OssConfig.preUrl, ''));
}
}

@ -5,27 +5,38 @@
<img src="../../assets/img/logo.png" alt=""> <img src="../../assets/img/logo.png" alt="">
</div> </div>
<div style="float: right;margin:0 60px;font-size: 18px"> <div style="float: right;margin:0 60px;font-size: 18px">
<span style="cursor:pointer" @click="exit"> <span style="cursor:pointer" @click="logout">
退出<i class="icon el-icon-s-unfold"></i> 退出<i class="icon el-icon-s-unfold"></i>
</span> </span>
</div> </div>
<el-radio-group v-if="isDev" class="ip" v-model="ip" @change="ipChange">
<el-radio :label="0">刘榕ip</el-radio>
<el-radio :label="1">陈赓ip</el-radio>
<el-radio :label="2">测试服ip</el-radio>
</el-radio-group>
</div> </div>
</div> </div>
</template> </template>
<script> <script>
import { mapState,mapActions } from 'vuex' import { mapMutations } from 'vuex'
import Setting from '@/setting' import Setting from '@/setting'
import util from '@/libs/util' import util from '@/libs/util'
import Cookie from 'js-cookie'
export default { export default {
data () { data () {
return { return {
isDev: Setting.isDev,
token: util.local.get(Setting.tokenKey), token: util.local.get(Setting.tokenKey),
ip: localStorage.getItem('localIp') ? +localStorage.getItem('localIp') : 0,
}; };
}, },
mounted () { mounted () {
this.$route.query.manager ? Cookie.set('manager', 1) : Cookie.remove('manager')
}, },
methods: { methods: {
...mapMutations({
logout: 'user/logout',
}),
toIndex () { toIndex () {
this.$refs.nav.jump({ this.$refs.nav.jump({
index: '/index/list', index: '/index/list',
@ -33,28 +44,34 @@ export default {
}) })
}, },
exit () { exit () {
let href = ''
const url = location.href const url = location.href
const host = url.includes('huorantech.cn') ? let href = process.env.NODE_ENV === 'development' ?
`http://www.occupationlab.com` : `http://${location.hostname}:8082/#/` :
process.env.NODE_ENV === 'development' ? `${url.includes('huorantech.cn') ? `https://www.occupationlab.com` : location.origin}${Cookie.get('manager') ?
`http://192.168.31.155:8082` : '/admin' :
`http://121.37.12.51/student` (url.includes('huorantech.cn') || url.includes('izhixinyun.com')) ?
'' :
'/student'}/#/`
let assessmentId = sessionStorage.getItem('assessmentId') let assessmentId = sessionStorage.getItem('assessmentId')
if (assessmentId != 'null' && assessmentId != null && assessmentId != '') { if (assessmentId != 'null' && assessmentId != null && assessmentId != '') {
href = `${host}/#/ass/list` href += `ass/list`
} else { } else {
const cid = sessionStorage.getItem('cid') const cid = sessionStorage.getItem('cid')
href = `${host}/#/station/preview?courseId=${cid}&curriculumName=银行项目` href += `station/preview?courseId=${cid}&curriculumName=银行项目&mallId=${this.$route.query.mallId}`
} }
sessionStorage.clear()
location.href = href location.href = href
}, },
ipChange (val) {
localStorage.setItem('localIp', val)
location.reload()
},
}, },
watch: { watch: {
'$route.path': { '$route.path': {
handler (newVal) { handler (newVal) {
this.$nextTick(() => { this.$nextTick(() => {
console.log(newVal)
if (newVal === '/index/list') { if (newVal === '/index/list') {
this.$refs.exitHeader.style.backgroundColor = 'rgb(250, 250, 250)' this.$refs.exitHeader.style.backgroundColor = 'rgb(250, 250, 250)'
} else { } else {
@ -77,13 +94,21 @@ export default {
// background-color: #fff; // background-color: #fff;
background-color: rgb(244, 245, 248); background-color: rgb(244, 245, 248);
z-index: 1001; z-index: 1001;
.logo { .logo {
width: 500px; width: 500px;
margin-left: 42px; margin-left: 42px;
cursor: pointer; cursor: pointer;
img { img {
width: 100%; width: 100%;
} }
} }
} }
.ip {
position: fixed;
top: 25px;
left: 500px;
}
</style> </style>

@ -55,6 +55,4 @@ export default {
} }
}; };
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped></style>
</style>

@ -133,6 +133,76 @@ const util = {
errorMsg (message, duration = 3000) { errorMsg (message, duration = 3000) {
return Message.error({ message, showClose: true, offset: (document.documentElement.clientHeight - 40) / 2, duration }) return Message.error({ message, showClose: true, offset: (document.documentElement.clientHeight - 40) / 2, duration })
}, },
// 授信年限
creditTerms: [
{
id: 231,
name: '1年'
},
{
id: 232,
name: '3年'
},
{
id: 233,
name: '5年'
},
{
id: 234,
name: '10年'
},
],
// 还款方式
repaymentMethods: [
{
id: 235,
name: '等额本金'
},
{
id: 236,
name: '等额本息'
},
],
// 发放方式
distributionMethods: [
{
id: 238,
name: '一次性到账'
},
{
id: 239,
name: '随借随还'
},
],
// 担保方式
guaranteeMethods: [
{
id: 242,
name: '质押'
},
{
id: 243,
name: '抵押'
},
],
// 贷款期限
loanTerms: [
{
pointId: 244,
id: 120,
name: '120个月'
},
{
pointId: 245,
id: 240,
name: '240个月'
},
{
pointId: 246,
id: 360,
name: '360个月'
},
],
} }
export default util export default util

@ -1,9 +0,0 @@
diff a/src/main.js b/src/main.js (rejected hunks)
@@ -42,6 +42,7 @@
}
})
}
+});
Vue.use(plugins);

@ -60,11 +60,7 @@ export default {
} }
}, },
beforeDestroy () { beforeDestroy () {
// clearInterval(this.myTipBefore)
// this.myTipBefore = null
// 这个业务是我们需要的,所以我们存数据 // 这个业务是我们需要的,所以我们存数据
let tmpForm = {} let tmpForm = {}
for (const key in this.form) { for (const key in this.form) {
if (this.form[key] !== '') { if (this.form[key] !== '') {
@ -74,7 +70,6 @@ export default {
// 系统录入当前页面关闭或离开的时候,保存当前模块的数据。回来的时候这些数据还在(业务需求)。 // 系统录入当前页面关闭或离开的时候,保存当前模块的数据。回来的时候这些数据还在(业务需求)。
sessionStorage.setItem(this.moduleName, JSON.stringify(tmpForm)) sessionStorage.setItem(this.moduleName, JSON.stringify(tmpForm))
}, },
computed: { computed: {
...mapGetters({ ...mapGetters({

File diff suppressed because it is too large Load Diff

@ -1,6 +1,4 @@
// 刷卡的配置文件,map结构,避免写太多if,else,配置更方便。有很多地方刷银行卡和身份证的。 // 刷卡的配置文件,map结构,避免写太多if,else,配置更方便。有很多地方刷银行卡和身份证的。
const myConfig = { const myConfig = {
'99': { '99': {
nbm: 118, nbm: 118,
@ -353,6 +351,117 @@ const myConfig = {
isPassword: true, isPassword: true,
}, },
'713': {
nbm: 713,
name: 'waterRateIdCard',
parentId: '5,706,709',
isPassword: false,
machine: '身份证扫描仪'
},
'715': {
nbm: 715,
name: 'waterRateBankCard',
parentId: '5,706,709',
isPassword: false,
machine: '刷卡器'
},
'720': {
nbm: 720,
name: 'waterRatePassword',
parentId: '5,706,709',
isPassword: true
},
'722': {
nbm: 722,
name: 'electricRateIdCard',
parentId: '5,706,710',
isPassword: false,
machine: '身份证扫描仪'
},
'724': {
nbm: 724,
name: 'electricRateBankCard',
parentId: '5,706,710',
isPassword: false,
machine: '刷卡器'
},
'729': {
nbm: 729,
name: 'electricRatePassword',
parentId: '5,706,710',
isPassword: true
},
'732': {
nbm: 732,
name: 'telRateIdCard',
parentId: '5,706,711',
isPassword: false,
machine: '身份证扫描仪'
},
'733': {
nbm: 733,
name: 'telRateBankCard',
parentId: '5,706,711',
isPassword: false,
machine: '刷卡器'
},
'740': {
nbm: 740,
name: 'telRatePassword',
parentId: '5,706,711',
isPassword: true
},
'743': {
nbm: 743,
name: 'onlineBankIdCard',
parentId: '5,707,741',
isPassword: false,
machine: '身份证扫描仪'
},
'749': {
nbm: 749,
name: 'onlineBankBankCard',
parentId: '5,707,741',
isPassword: false,
machine: '刷卡器'
},
'752': {
nbm: 752,
name: 'onlineBankPassword',
parentId: '5,707,741',
isPassword: true
},
'755': {
nbm: 755,
name: 'foreignExchangePuchasingBankCard',
parentId: '5,708,753',
isPassword: false,
machine: '刷卡器'
},
'760': {
nbm: 760,
name: 'foreignExchangePuchasingPassword',
parentId: '5,708,753',
isPassword: true
},
'761': {
nbm: 761,
name: 'foreignExchangeSettleBankCard',
parentId: '5,708,754',
isPassword: false,
machine: '刷卡器'
},
'765': {
nbm: 765,
name: 'foreignExchangSettlePassword',
parentId: '5,708,754',
isPassword: true
},
} }
export { export {

@ -3,21 +3,19 @@
<img class="sth bg" src="@/assets/img/index-bg.png" alt=""> <img class="sth bg" src="@/assets/img/index-bg.png" alt="">
<div class="case" @click="setShowBusiness(true)">业务选择</div> <div class="case" @click="setShowBusiness(true)">业务选择</div>
<!-- 业务选择 --弹框 --> <!-- 业务选择 --弹框 -->
<div class="sth integrated-counter cp"> <div class="sth integrated-counter cp">
<img width="100%" v-lazy="lazy1" alt="" @click="toPart('/counter')"> <img width="100%" v-lazy="lazy1" alt="" @click="toPart('/counter')">
<!-- src="@/assets/img/integrated-counter.png" --> <!-- src="@/assets/img/integrated-counter.png" -->
<div class="name" @click="toPart('/counter')">综合柜台</div> <div class="name" @click="toPart('/counter')">综合柜台</div>
</div> </div>
<div class="sth international cp"> <div class="sth international cp" @click="toPart('/counter', true)">
<!-- <img width="100%" v-lazy="lazy1" alt="" @click="toPart('/counter')"> --> <!-- <img width="100%" v-lazy="lazy1" alt="" @click="toPart('/counter')"> -->
<img width="100%" v-lazy="lazy2" alt="" @click="showComing" /> <img width="100%" v-lazy="lazy2" alt="" />
<!-- src="@/assets/img/integrated-counter.png" --> <!-- src="@/assets/img/integrated-counter.png" -->
<!-- <div class="name" @click="showComing">国际结算部</div> --> <div class="name" @click="toPart('/counter', true)">信贷部</div>
</div> </div>
<!-- <img class="sth international cp" v-lazy="lazy2" alt="" @click="showComing"> --> <!-- <img class="sth international cp" v-lazy="lazy2" alt="" @click="showComing"> -->
@ -30,7 +28,6 @@
<img class="sth company-finance cp" v-lazy="lazy5" alt="" @click="showComing"> <img class="sth company-finance cp" v-lazy="lazy5" alt="" @click="showComing">
<img class="sth personal-finance cp" v-lazy="lazy6" alt="" @click="showComing"> <img class="sth personal-finance cp" v-lazy="lazy6" alt="" @click="showComing">
<div class="coming" :class="{ active: comingVisible }"> <div class="coming" :class="{ active: comingVisible }">
<div style="width: 20%;margin: auto"> <div style="width: 20%;margin: auto">
<img style="width: 100%" v-lazy="lazy7" alt=""> <img style="width: 100%" v-lazy="lazy7" alt="">
@ -43,6 +40,7 @@
<script> <script>
import { mapMutations, mapState } from 'vuex'; import { mapMutations, mapState } from 'vuex';
import saveSystemModule from '@/mixins/saveSystemModule' import saveSystemModule from '@/mixins/saveSystemModule'
import Bus from '@/libs/bus'
export default { export default {
name: 'index', name: 'index',
mixins: [saveSystemModule], mixins: [saveSystemModule],
@ -62,6 +60,10 @@ export default {
}, },
created () { created () {
if (!sessionStorage.getItem('firstLoad2')) { if (!sessionStorage.getItem('firstLoad2')) {
sessionStorage.clear()
// sessionStorage.removeItem('submited')
// sessionStorage.removeItem('businessKey')
this.setBusinessKey('')
const loading = this.$loading({ const loading = this.$loading({
lock: true, lock: true,
// text: 'Loading', // text: 'Loading',
@ -75,9 +77,14 @@ export default {
}, 1000); }, 1000);
} }
if(!this.businessKey) { if (!this.businessKey && this.$route.path !== '/index/report' && !sessionStorage.getItem('submited')) {
this.setShowBusiness(true) this.setShowBusiness(true)
} }
//
if (sessionStorage.getItem('submited')) {
Bus.$emit('setShowIt', true)
Bus.$emit('setSubmited', true)
}
}, },
mounted () { mounted () {
let token = this.getQueryVariable('token') let token = this.getQueryVariable('token')
@ -100,7 +107,9 @@ export default {
}, },
methods: { methods: {
...mapMutations({ ...mapMutations({
setShowBusiness: 'system/setShowBusiness' setBusinessKey: 'system/setBusinessKey',
setShowBusiness: 'system/setShowBusiness',
setCredit: 'system/setCredit',
}), }),
getQueryVariable (name) { getQueryVariable (name) {
var reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)') var reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)')
@ -113,7 +122,8 @@ export default {
} }
} }
}, },
toPart(path){ toPart (path, isCredit = false) {
this.setCredit(isCredit)
this.$router.push(path) this.$router.push(path)
}, },
showComing () { showComing () {
@ -144,30 +154,35 @@ export default {
z-index: 100; z-index: 100;
} }
.wrap { .wrap {
position: relative; position: relative;
min-height: calc(100vh - 68px); min-height: calc(100vh - 68px);
.sth { .sth {
position: absolute; position: absolute;
&.cp { &.cp {
cursor: pointer; cursor: pointer;
} }
} }
.bg { .bg {
top: 0; top: 0;
left: 0; left: 0;
width: 100%; width: 100%;
height: 100%; height: 100%;
} }
.integrated-counter { .integrated-counter {
top: -14%; top: -14%;
left: 24%; left: 24%;
width: 43%; width: 43%;
transition: all .5s; transition: all 0.5s;
&:hover { &:hover {
margin-top: -10px; margin-top: -10px;
} }
.name { .name {
position: absolute; position: absolute;
top: 23%; top: 23%;
@ -175,11 +190,13 @@ export default {
@include nameTip; @include nameTip;
} }
} }
.international { .international {
top: -9%; top: -9%;
left: 72%; left: 72%;
width: 28%; width: 28%;
transition: all .5s; transition: all 0.5s;
// &:hover{ // &:hover{
// margin-top: -10px; // margin-top: -10px;
// } // }
@ -191,20 +208,22 @@ export default {
// } // }
.name { .name {
position: absolute; position: absolute;
top: 23%; top: 18%;
right: 0; right: 45%;
@include nameTip; @include nameTip;
} }
} }
.manager { .manager {
bottom: 0; bottom: 0;
left: 57%; left: 57%;
width: 39%; width: 39%;
transition: all .5s; transition: all 0.5s;
&:hover { &:hover {
bottom: 10px; bottom: 10px;
} }
.name { .name {
position: absolute; position: absolute;
top: 65%; top: 65%;
@ -212,33 +231,37 @@ export default {
@include nameTip; @include nameTip;
} }
} }
.credit-dep { .credit-dep {
top: 31%; top: 31%;
left: 0; left: 0;
width: 20%; width: 20%;
transition: all .5s; transition: all 0.5s;
// &:hover{ // &:hover{
// top: 29%; // top: 29%;
// } // }
} }
.company-finance { .company-finance {
top: 52%; top: 52%;
left: 9%; left: 9%;
width: 28%; width: 28%;
transition: all .5s; transition: all 0.5s;
// &:hover{ // &:hover{
// top: 50%; // top: 50%;
// } // }
} }
.personal-finance { .personal-finance {
bottom: 0; bottom: 0;
left: 25%; left: 25%;
width: 30%; width: 30%;
transition: all .5s; transition: all 0.5s;
// &:hover{ // &:hover{
// bottom: 10px; // bottom: 10px;
// } // }
} }
.case { .case {
position: absolute; position: absolute;
top: 92px; top: 92px;
@ -256,26 +279,32 @@ export default {
// top: 76px; // top: 76px;
// } // }
} }
@media (max-width: 1440px) { @media (max-width: 1440px) {
.credit-dep { .credit-dep {
top: 32%; top: 32%;
} }
.company-finance { .company-finance {
top: 53%; top: 53%;
} }
.personal-finance { .personal-finance {
top: 72%; top: 72%;
} }
.integrated-counter { .integrated-counter {
width: 44%; width: 44%;
} }
} }
@media (max-width: 1300px) { @media (max-width: 1300px) {
& { & {
min-height: calc(100vh - 76px); min-height: calc(100vh - 76px);
} }
} }
} }
.coming { .coming {
position: fixed; position: fixed;
top: -200%; top: -200%;
@ -285,11 +314,13 @@ export default {
text-align: center; text-align: center;
transform: translate(-50%, -50%); transform: translate(-50%, -50%);
border-radius: 16px; border-radius: 16px;
background-color: rgba(0,0,0,0.80); background-color: rgba(0, 0, 0, 0.8);
transition: all .3s; transition: all 0.3s;
&.active { &.active {
top: 50%; top: 50%;
} }
.text { .text {
margin-top: 24px; margin-top: 24px;
font-size: 22px; font-size: 22px;

@ -39,7 +39,7 @@
</li> </li>
<li :class="{checked: takeCheck == 403}" @click="checkTake(403)"> <li :class="{checked: takeCheck == 403}" @click="checkTake(403)">
<img src="@/assets/svg/financial.svg" alt=""> <img src="@/assets/svg/financial.svg" alt="">
<p>理财业务</p> <p>其他业务</p>
</li> --> </li> -->
</ul> </ul>
<div class="dia-footer"> <div class="dia-footer">
@ -98,7 +98,7 @@
:src="elImg[3].img" :src="elImg[3].img"
:fit="elImgFit" :fit="elImgFit"
></el-image> ></el-image>
<p style="font-size: 14px;line-height: 15px">{{ elImg[3].name }}</p> <p :title="elImg[3].name">{{ elImg[3].name }}</p>
</li> </li>
<li :class="{checked: checkList.includes(elImg[4].key)}" @click="checkData(elImg[4].key)"> <li :class="{checked: checkList.includes(elImg[4].key)}" @click="checkData(elImg[4].key)">
<img :src="elImg[4].img" :alt="elImg[4].name" :title="elImg[4].name"> <img :src="elImg[4].img" :alt="elImg[4].name" :title="elImg[4].name">
@ -140,9 +140,18 @@
<img style="margin-top: 10px" :src="elImg[10].img" :alt="elImg[10].name" :title="elImg[10].name"> <img style="margin-top: 10px" :src="elImg[10].img" :alt="elImg[10].name" :title="elImg[10].name">
<p>{{ elImg[10].name }}</p> <p>{{ elImg[10].name }}</p>
</li> </li>
<li :class="{checked: checkList.includes(elImg[11].key)}" @click="checkData(elImg[11].key)">
<img style="margin-top: 10px" :src="elImg[11].img" :alt="elImg[11].name" :title="elImg[11].name">
<p>{{ elImg[11].name }}</p>
</li>
<li :class="{checked: checkList.includes(elImg[12].key)}" @click="checkData(elImg[12].key)">
<img style="margin-top: 10px" :src="elImg[12].img" :alt="elImg[12].name" :title="elImg[12].name">
<p>{{ elImg[12].name }}</p>
</li>
<!-- 这个是占位的 --> <!-- 这个是占位的 -->
<li class="sitting2"></li> <li class="sitting2"></li>
<li class="sitting2"></li>
<li class="sitting2"></li>
</ul> </ul>
@ -158,7 +167,7 @@
</div> </div>
<p class="tips">- 请单击选中复印材料双击可放大预览 -</p> <p class="tips">- 请单击选中复印材料双击可放大预览 -</p>
<ul class="flex justify-center"> <ul class="flex justify-center">
<div v-for="item in elImg2" class="list flex-col spacialStyle" @click="checkData(item.key, item.copyState)" :key="item.key"> <div v-for="item in elImg2" class="list flex-col spacialStyle" style="justify-content: flex-start" @click="checkData(item.key, item.copyState)" :key="item.key">
<li :class="{checked: checkList.includes(item.key)}"> <li :class="{checked: checkList.includes(item.key)}">
<!-- <img :src="item.img" :title="item.name" :alt="item.name"> --> <!-- <img :src="item.img" :title="item.name" :alt="item.name"> -->
<el-image <el-image
@ -168,7 +177,7 @@
></el-image> ></el-image>
<p>{{ item.name }}</p> <p>{{ item.name }}</p>
</li> </li>
<p>{{ item.copyState?'已复印': '待复印' }}</p> <p>{{ item.copyState?'已复印': ' ' }}</p>
</div> </div>
</ul> </ul>
<div class="dia-footer"> <div class="dia-footer">
@ -183,17 +192,17 @@
<img class="close" src="@/assets/svg/close.svg" alt="" @click="closeRecaption"> <img class="close" src="@/assets/svg/close.svg" alt="" @click="closeRecaption">
</div> </div>
<p class="tips">- 请单击选中复印材料双击可放大预览 -</p> <p class="tips">- 请单击选中复印材料双击可放大预览 -</p>
<ul class="flex justify-center" > <ul class="flex justify-center flex-wrap" >
<div v-for="item in elImg2" class="list flex-col spacialStyle" @click="checkData(item.key, item.returnState)" :key="item.key"> <div v-for="item in elImg3" class="list flex-col spacialStyle" style="justify-content: flex-start" @click="checkData(item.key, item.returnState)" :key="item.key">
<li :class="{checked: checkList.includes(item.key)}"> <li :class="{checked: checkList.includes(item.key)}">
<!-- <img :src="item.img" :title="item.name" :alt="item.name"> --> <!-- <img :src="item.img" :title="item.name" :alt="item.name"> -->
<el-image <el-image
:src="item.img" :src="item.img"
:fit="elImgFit" :fit="elImgFit"
></el-image> ></el-image>
<p>{{ item.name }}</p> <p :title="item.name">{{ item.name }}</p>
</li> </li>
<p>{{ item.returnState? '已取回': '待取回' }}</p> <p>{{ item.returnState ? '已取回': (item.copy ? '复印件' : '') }}</p>
</div> </div>
</ul> </ul>
<div class="dia-footer"> <div class="dia-footer">
@ -230,7 +239,7 @@
<el-dialog <el-dialog
custom-class="data-dia imgIndex" custom-class="data-dia imgIndex"
:visible.sync="showImg" :visible.sync="showImg"
width="634px" width="800px"
> >
<img :src="imgSrc" class="imgPop imgIndex min-w-full " alt=""> <img :src="imgSrc" class="imgPop imgIndex min-w-full " alt="">
</el-dialog> </el-dialog>
@ -263,11 +272,11 @@ export default {
{ key: 400, name: '现金业务', img: require('@/assets/svg/cash.svg') }, { key: 400, name: '现金业务', img: require('@/assets/svg/cash.svg') },
{ key: 401, name: '个人非现金业务', img: require('@/assets/svg/non-cash.svg') }, { key: 401, name: '个人非现金业务', img: require('@/assets/svg/non-cash.svg') },
{ key: 402, name: '公司业务', img: require('@/assets/svg/company.svg') }, { key: 402, name: '公司业务', img: require('@/assets/svg/company.svg') },
{ key: 403, name: '理财业务', img: require('@/assets/svg/financial.svg') } { key: 403, name: '其他业务', img: require('@/assets/svg/financial.svg') }
], ],
elImg: [ elImg: [
{ img: require('@/assets/img/goods/accountApplyBook.jpg'), name: '开户申请书', key: 405 }, { img: require('@/assets/img/goods/accountApplyBook.jpg'), name: '开户申请书', key: 405 },
{ img: require('@/assets/img/idCard-copy-sm.png'), name: '密码挂失申请书', key: 406 }, { img: require('@/assets/img/goods/businessReportMissUser.png'), name: '密码挂失申请书', key: 406 },
{ img: require('@/assets/img/goods/businessSpecialApplication.png'), name: '特殊业务申请书', key: 407 }, { img: require('@/assets/img/goods/businessSpecialApplication.png'), name: '特殊业务申请书', key: 407 },
{ img: require('@/assets/img/goods/ApplicationBankSettlement.png'), name: '开立单位银行结算账户申请书', key: 408 }, { img: require('@/assets/img/goods/ApplicationBankSettlement.png'), name: '开立单位银行结算账户申请书', key: 408 },
{ img: require('@/assets/img/goods/CashCertificate.png'), name: '现金存款凭证', key: 409 }, { img: require('@/assets/img/goods/CashCertificate.png'), name: '现金存款凭证', key: 409 },
@ -277,13 +286,13 @@ export default {
{ img: require('@/assets/img/goods/CheckCoupons.png'), name: '支票领购单', key: 413 }, { img: require('@/assets/img/goods/CheckCoupons.png'), name: '支票领购单', key: 413 },
{ img: require('@/assets/img/goods/CashCertificate.png'), name: '现金缴款单', key: 414 }, { img: require('@/assets/img/goods/CashCertificate.png'), name: '现金缴款单', key: 414 },
{ img: require('@/assets/img/goods/银行承兑协议.png'), name: '境外汇款申请书', key: 415 }, { img: require('@/assets/img/goods/银行承兑协议.png'), name: '境外汇款申请书', key: 415 },
{ img: require('@/assets/img/goods/qkpt.png'), name: '取款凭条', key: 698 },
{ img: require('@/assets/img/goods/xhsqs.png'), name: '销户申请书', key: 588 },
], ],
elImg2: [ elImg2: [
{ img: require('@/assets/img/goods/accountApplyBook.jpg'), name: '开户申请书', key: 405, copyState: false, returnState: false },
{ img: require('@/assets/img/idCard-sm.png'), name: '身份证', key: 13, copyState: false, returnState: false }, { img: require('@/assets/img/idCard-sm.png'), name: '身份证', key: 13, copyState: false, returnState: false },
], ],
elImg3: [],
listLi1 : [ listLi1 : [
{checked: 1, click: 1, src: require('@/assets/img/goods/accountApplyBook.jpg'), title: '开户申请书'}, {checked: 1, click: 1, src: require('@/assets/img/goods/accountApplyBook.jpg'), title: '开户申请书'},
{checked: 2, click: 2, src: require('@/assets/img/idCard-copy-sm.png'), title: '密码挂失申请书'}, {checked: 2, click: 2, src: require('@/assets/img/idCard-copy-sm.png'), title: '密码挂失申请书'},
@ -299,7 +308,8 @@ export default {
{checked: 3, click: 7, src: require('@/assets/img/open-account-apply-sm.png'), title: '现金缴款单'}, {checked: 3, click: 7, src: require('@/assets/img/open-account-apply-sm.png'), title: '现金缴款单'},
{checked: 4, click: 8, src: require('@/assets/img/goods/cash-sm.png'), title: '境外汇款申请书'}, {checked: 4, click: 8, src: require('@/assets/img/goods/cash-sm.png'), title: '境外汇款申请书'},
], ],
lazy1: require('@/assets/img/manager.png') lazy1: require('@/assets/img/manager.png'),
submited: 0
} }
}, },
created() { created() {
@ -336,6 +346,7 @@ export default {
}, },
// //
confirmTake(){ confirmTake(){
if (this.submited) return this.$message.error('已提交!')
if(this.takeCheck < 0) { if(this.takeCheck < 0) {
this.$message({ this.$message({
message: '请选择一个您要办理的业务', message: '请选择一个您要办理的业务',
@ -355,6 +366,7 @@ export default {
startTime:startTime, startTime:startTime,
} }
addOperation(params).then((data)=>{ addOperation(params).then((data)=>{
this.submited = 1
this.takeVisible = false this.takeVisible = false
this.takeResultVisible = true this.takeResultVisible = true
setTimeout(() => { setTimeout(() => {
@ -454,6 +466,21 @@ export default {
this.elImg2.map(item => { this.elImg2.map(item => {
if(this.checkList.findIndex(item2 => item2 === item.key ) !== -1) { if(this.checkList.findIndex(item2 => item2 === item.key ) !== -1) {
item.copyState = true item.copyState = true
this.elImg3.find(e => e.key == item.key) || this.elImg3.push(item) //
//
let copyItem
// if (copyItem.key == 405) copyItem.key = 589
if (item.key == 13) {
copyItem = {name:'身份证复印件',img:require('@/assets/img/idCard-copy-sm.png'),key:23,copyState: true,returnState: false}
} else if (item.key == 442) {
copyItem = {name:'法人身份证复印件',img:require('@/assets/img/idCard-copy-sm.png'),key:431,copyState: true,returnState: false}
} else if (item.key == 434) {
copyItem = {name:'统一社会信用代码证复印件',img:require('@/assets/img/goods/营业执照复印件.png'),key:435,copyState: true,returnState: false}
} else if (item.key == 436) {
copyItem = {name:'开户许可证复印件',img:require('@/assets/img/goods/开户许可证复印件.png'),key:437,copyState: true,returnState: false}
}
if (copyItem) this.elImg3.push(copyItem)
} }
}) })
this.checkList = [] this.checkList = []
@ -488,7 +515,7 @@ export default {
for(let i=0; i<checkList.length; i++) { for(let i=0; i<checkList.length; i++) {
formList.push({"answerId":checkList[i],"emptyOne": "", "emptyTwo": '', "operationIds": '285,' + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ',286,553,' + checkList[i], "type": ""}) formList.push({"answerId":checkList[i],"emptyOne": "", "emptyTwo": '', "operationIds": '285,' + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ',286,553,' + checkList[i], "type": ""})
} }
this.elImg2.map(item=> { this.elImg3.map(item=> {
if(item.returnState) { if(item.returnState) {
formList.push({"answerId":item.key,"emptyOne": "", "emptyTwo": '', "operationIds": '285,' + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ',286,553,' + item.key, "type": ""}) formList.push({"answerId":item.key,"emptyOne": "", "emptyTwo": '', "operationIds": '285,' + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ',286,553,' + item.key, "type": ""})
} }
@ -502,7 +529,7 @@ export default {
addOperation(params).then((data)=>{ addOperation(params).then((data)=>{
// ... // ...
this.recaptionVisible = false this.recaptionVisible = false
this.elImg2.map(item => { this.elImg3.map(item => {
if(this.checkList.findIndex(item2 => item2 === item.key ) !== -1) { if(this.checkList.findIndex(item2 => item2 === item.key ) !== -1) {
item.returnState = true item.returnState = true
} }
@ -549,7 +576,6 @@ export default {
if(state) { if(state) {
return return
} }
this.checkList.includes(id) ? this.checkList.splice(this.checkList.indexOf(id),1) : this.checkList.push(id) this.checkList.includes(id) ? this.checkList.splice(this.checkList.indexOf(id),1) : this.checkList.push(id)
this.clickNum++ this.clickNum++
@ -583,6 +609,34 @@ export default {
}, },
showCopy(){ showCopy(){
console.log("🚀 ~ file: index.vue:607 ~ showCopy ~ this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id:", this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id)
const { id } = this.$store.state.system.businessSelect[this.$store.state.system.businessKey]
if (id === 500) {
// :
this.elImg2 = [
{ img: require('@/assets/img/goods/idCard.png'), name: '法人身份证', key: 442, copyState: false, returnState: false },
{ img: require('@/assets/img/goods/ApplicationBankSettlement.png'), name: '开立银行结算账户申请书', key: 432, copyState: false, returnState: false },
{ img: require('@/assets/img/goods/营业执照.png'), name: '统一社会信用代码证', key: 434, copyState: false, returnState: false },
{ img: require('@/assets/img/goods/开户许可证.png'), name: '开户许可证', key: 436, copyState: false, returnState: false },
]
} else if (id === 504) {
//
this.elImg2 = [
{ img: require('@/assets/img/goods/businessSpecialApplication.png'), name: '特殊业务申请书', key: 407, copyState: false, returnState: false },
{ img: require('@/assets/img/idCard-sm.png'), name: '身份证', key: 13, copyState: false, returnState: false },
]
} else if (id === 502 || id === 501 || id === 503) {
//
this.elImg2 = [
{ img: require('@/assets/img/goods/idCard.png'), name: '法人身份证', key: 442, copyState: false, returnState: false },
]
} else if (id === 489) {
//
this.elImg2 = [
{ img: require('@/assets/img/goods/accountApplyBook.jpg'), name: '开户申请书', key: 405, copyState: false, returnState: false },
{ img: require('@/assets/img/idCard-sm.png'), name: '身份证', key: 13, copyState: false, returnState: false },
]
}
this.workingName = '复印' this.workingName = '复印'
this.copyVisible = true this.copyVisible = true
}, },
@ -755,10 +809,9 @@ export default {
box-sizing: border-box; box-sizing: border-box;
overflow: hidden; overflow: hidden;
padding: 10px; padding: 10px;
// &>img { &>img {
// width: 100%; max-height: 80px;
// //max-width: 90%; }
// }
&>.el-image { &>.el-image {
width: 100%; width: 100%;
max-height: 80px; max-height: 80px;
@ -771,6 +824,9 @@ export default {
p{ p{
font-size: 14px; font-size: 14px;
line-height: 40px; line-height: 40px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
} }
} }
} }

@ -1,9 +1,9 @@
<template> <template>
<!-- :style="full?'height:100vh;':'height: 80vh;'" --> <!-- :style="fullScreen?'height:100vh;':'height: 80vh;'" -->
<div class="box" :class="full? 'h-4/5': ''"> <div class="box" :class="fullScreen || isCredit ? 'h-4/5' : ''">
<div class="nav"> <div class="nav">
<!-- <div class="top" :style="full?'border-radius:0':'border-top-left-radius: 20px;'"> select-none --> <!-- <div class="top" :style="fullScreen?'border-radius:0':'border-top-left-radius: 20px;'"> select-none -->
<div class="top" :style="full?'border-radius:0':'border-top-left-radius: 20px;'"> <div class="top" :style="fullScreen ? 'border-radius:0' : 'border-top-left-radius: 20px;'">
<p style="margin:auto">商业银行系统</p> <p style="margin:auto">商业银行系统</p>
</div> </div>
<!-- <div class="body2"> <!-- <div class="body2">
@ -15,9 +15,10 @@
<!-- <navbar class="body"></navbar> --> <!-- <navbar class="body"></navbar> -->
</div> </div>
<div class="manage-layout"> <div class="manage-layout">
<div class="top" :style="full?'border-radius:0':'border-top-right-radius: 20px;'"> <div class="top" :style="fullScreen ? 'border-radius:0' : 'border-top-right-radius: 20px;'">
<img v-show="!full" src="../../../assets/svg/fullscreen.svg" alt="" @click="handleFullscreen"> <img v-show="!fullScreen && !isCredit" src="../../../assets/svg/fullscreen.svg" alt=""
<img v-show="full" src="../../../assets/svg/shrink.svg" alt="" @click="shrink"> @click="handleFullscreen">
<img v-show="fullScreen" src="../../../assets/svg/shrink.svg" alt="" @click="shrink">
<i @click="close" class="el-icon-close"></i> <i @click="close" class="el-icon-close"></i>
</div> </div>
<div class="manage-content"> <div class="manage-content">
@ -30,44 +31,44 @@
</template> </template>
<script> <script>
import { mapState } from 'vuex'
import navbar from '../navbar' import navbar from '../navbar'
export default { export default {
name: 'index', name: 'index',
data () { data () {
return { return {
fullscreen:this.$store.state.system.fullScreen,// --store curRoute: ''
} }
}, },
components: { components: {
navbar navbar
}, },
// beforeMount() { computed: {
// const path = sessionStorage.getItem('computerPath') ...mapState('system', ['fullScreen', 'isCredit'])
// console.log('router-view') },
// console.log(path) watch: {
// this.$router.push(path) '$route': {
// }, handler () {
this.curRoute = this.$route.path
},
immediate: true
}
},
beforeDestroy () {
sessionStorage.setItem(this.curRoute.includes('Loans') ? 'creditPath' : 'computerPath', this.curRoute)
sessionStorage.getItem('submited') || this.$router.push('/counter/list/')
},
methods: { methods: {
close () { close () {
// 退 退
sessionStorage.setItem('computerPath', this.$route.fullPath)
this.$router.push('/counter/list/') this.$router.push('/counter/list/')
}, },
handleFullscreen () { handleFullscreen () {
this.fullscreen = true
this.$store.commit('system/changeFullscreen', true) this.$store.commit('system/changeFullscreen', true)
}, },
shrink () { shrink () {
this.fullscreen = false
this.$store.commit('system/changeFullscreen', false) this.$store.commit('system/changeFullscreen', false)
}, },
},
computed: {
full:function(){
return this.$store.state.system.fullScreen
}
} }
}; };
</script> </script>
@ -116,6 +117,7 @@ export default {
.box { .box {
display: flex; display: flex;
min-width: 1300px; min-width: 1300px;
.nav { .nav {
width: 270px; width: 270px;
min-height: 80vh; min-height: 80vh;
@ -123,6 +125,7 @@ export default {
border-bottom-left-radius: 20px; border-bottom-left-radius: 20px;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
.top { .top {
height: 50px; height: 50px;
font-size: 20px; font-size: 20px;
@ -130,25 +133,30 @@ export default {
align-items: center; align-items: center;
text-align: center; text-align: center;
border-top-left-radius: 15px; border-top-left-radius: 15px;
color: #B3B3B3; color: #b3b3b3;
background: #222428; background: #222428;
p { p {
font-size: 21px; font-size: 21px;
} }
} }
.body { .body {
flex: 1; flex: 1;
.el-menu { .el-menu {
height: 100%; height: 100%;
} }
} }
} }
.manage-layout { .manage-layout {
width: calc(100% - 270px); width: calc(100% - 270px);
// background: #fff; // background: #fff;
background: transparent; background: transparent;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
.top { .top {
height: 50px; height: 50px;
font-size: 30px; font-size: 30px;
@ -159,16 +167,19 @@ export default {
color: #000; color: #000;
background: #e6e6e6; background: #e6e6e6;
border-top-right-radius: 20px; border-top-right-radius: 20px;
i { i {
margin-right: 10px; margin-right: 10px;
cursor: pointer; cursor: pointer;
} }
} }
.manage-content { .manage-content {
flex: 1; flex: 1;
position: relative; position: relative;
border-bottom-right-radius: 20px; border-bottom-right-radius: 20px;
overflow: hidden; overflow: hidden;
.manage-view { .manage-view {
position: absolute; position: absolute;
top: 0; top: 0;
@ -178,37 +189,45 @@ export default {
} }
} }
} }
.fade-enter-active, .fade-leave-active {
transition: opacity .5s; .fade-enter-active,
.fade-leave-active {
transition: opacity 0.5s;
} }
.fade-enter, .fade-leave-to /* .fade-leave-active below version 2.1.8 */ {
.fade-enter,
.fade-leave-to
/* .fade-leave-active below version 2.1.8 */
{
opacity: 0.5; opacity: 0.5;
} }
// el-input // el-input
/deep/ .el-input input { /deep/ .el-input input {
&:focus { &:focus {
border-color: skyblue; border-color: skyblue;
} }
} }
// //
/deep/ .is-error input { /deep/ .is-error input {
border-color: #f40!important;; border-color: #f40 !important;
} }
/deep/.el-input { /deep/.el-input {
// width: 15vw!important; // width: 15vw!important;
width: 100%; width: 100%;
input { input {
font-size: $font_size_All !important; font-size: $font_size_All !important;
} }
} }
/deep/ .text-xl p { /deep/ .text-xl p {
font-size: $font_size_All !important; font-size: $font_size_All !important;
} }
/deep/ .el-form-item .el-form-item__label { /deep/ .el-form-item .el-form-item__label {
font-size: $font_size_All !important; font-size: $font_size_All !important;
} }
@ -216,10 +235,12 @@ export default {
/deep/ .el-submenu { /deep/ .el-submenu {
padding-left: $submenu_padding_left !important; padding-left: $submenu_padding_left !important;
} }
/deep/ .el-submenu .el-menu-item { /deep/ .el-submenu .el-menu-item {
padding-left: $submenu_padding_left + 25px !important; padding-left: $submenu_padding_left + 25px !important;
font-size: $font_size_All !important; font-size: $font_size_All !important;
} }
// /deep/ .el-menu-item { // /deep/ .el-menu-item {
// padding-left: $submenu_padding_left + 25px!important; // padding-left: $submenu_padding_left + 25px!important;
// font-size: $font_size_All!important; // font-size: $font_size_All!important;
@ -231,9 +252,11 @@ export default {
/deep/ .title p { /deep/ .title p {
font-size: $font_size_All !important; font-size: $font_size_All !important;
} }
/deep/ .idCard p { /deep/ .idCard p {
font-size: $font_size_All !important; font-size: $font_size_All !important;
} }
// /deep/ .el-form-item__error { // /deep/ .el-form-item__error {
// top: 105%; // top: 105%;
// left: auto; // left: auto;
@ -244,41 +267,43 @@ export default {
/deep/.el-input { /deep/.el-input {
// width: 15vw!important; // width: 15vw!important;
width: 100%; width: 100%;
input { input {
font-size: $font_size_All !important; font-size: $font_size_All !important;
} }
} }
/deep/ .idCard { /deep/ .idCard {
// width: 15vw; // width: 15vw;
width: 100%; width: 100%;
} }
} }
@media screen and (min-width: 1200px) and (max-width: 1900px) { @media screen and (min-width: 1200px) and (max-width: 1900px) {
.box { .box {
display: flex; display: flex;
min-width: 80vw; min-width: 80vw;
// margin-top: 6vh;
overflow: auto; overflow: auto;
// height: 70vh;
.nav { .nav {
width: 25vw; // width: 25vw;
min-height: 80vh; // min-height: 80vh;
overflow: hidden; // overflow: hidden;
border-top-left-radius: 20px; // border-top-left-radius: 20px;
display: flex; // display: flex;
flex-direction: column; // flex-direction: column;
.top { .top {
min-height: 10vh;
font-size: 3vh; font-size: 3vh;
line-height: 3vh; line-height: 3vh;
display: flex; display: flex;
align-items: center; align-items: center;
text-align: center; text-align: center;
border-top-left-radius: 15px; border-top-left-radius: 15px;
color: #B3B3B3; color: #b3b3b3;
background: #222428; background: #222428;
} }
.body { .body {
// flex: 1; // flex: 1;
// height: calc(80vh-10vh); // height: calc(80vh-10vh);
@ -286,6 +311,7 @@ export default {
background-color: #313540; background-color: #313540;
} }
} }
.manage-layout { .manage-layout {
width: calc(100% - 270px); width: calc(100% - 270px);
min-height: 80vh; min-height: 80vh;
@ -295,8 +321,8 @@ export default {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
box-sizing: border-box; box-sizing: border-box;
.top { .top {
min-height: 10vh;
font-size: 30px; font-size: 30px;
display: flex; display: flex;
justify-content: flex-end; justify-content: flex-end;
@ -305,14 +331,17 @@ export default {
color: #000; color: #000;
background: #e6e6e6; background: #e6e6e6;
border-top-right-radius: 20px; border-top-right-radius: 20px;
i { i {
margin-right: 10px; margin-right: 10px;
cursor: pointer; cursor: pointer;
} }
} }
.manage-content { .manage-content {
flex: 1; flex: 1;
position: relative; position: relative;
.manage-view { .manage-view {
position: absolute; position: absolute;
top: 0; top: 0;
@ -322,6 +351,5 @@ export default {
} }
} }
} }
} }
</style> </style>

@ -241,6 +241,7 @@ export default {
} }
], ],
visible:false, visible:false,
submited: 0
} }
}, },
computed: { computed: {
@ -287,6 +288,7 @@ export default {
row.moneyNumber = Number(val.replace(/\D+/, '')) row.moneyNumber = Number(val.replace(/\D+/, ''))
}, },
submitClick() { submitClick() {
if (this.submited) return this.$message.error('已提交!')
this.$refs.form.validate(myValidate(() => { this.$refs.form.validate(myValidate(() => {
this.visible = true this.visible = true
}, this.$refs)); }, this.$refs));
@ -322,6 +324,7 @@ export default {
// }); // });
this.setNeedsModule(moduleName) this.setNeedsModule(moduleName)
// this.setDataFlow({ ...this.form }) // this.setDataFlow({ ...this.form })
this.submited = 1
}).catch((error)=>{ }).catch((error)=>{
}) })
}, },

@ -108,6 +108,7 @@ export default {
}, },
], ],
visible:false, visible:false,
submited: 0
} }
}, },
filters: { filters: {
@ -205,6 +206,7 @@ export default {
}, },
submitClick() { submitClick() {
if (this.submited) return this.$message.error('已提交!')
this.visible = true this.visible = true
}, },
submitForm2() { submitForm2() {
@ -226,6 +228,7 @@ export default {
startTime:startTime, startTime:startTime,
} }
addOperation(params).then((data)=>{ addOperation(params).then((data)=>{
this.submited = 1
// this.$message({ // this.$message({
// message: '', // message: '',
// type: 'success' // type: 'success'

@ -110,6 +110,7 @@ export default {
}, },
], ],
visible:false, visible:false,
submited: 0
} }
}, },
filters: { filters: {
@ -217,6 +218,7 @@ export default {
}, },
submitClick() { submitClick() {
if (this.submited) return this.$message.error('已提交!')
this.visible = true this.visible = true
}, },
submitForm2() { submitForm2() {
@ -242,6 +244,7 @@ export default {
// type: 'success' // type: 'success'
// }); // });
this.setNeedsModule(moduleName) this.setNeedsModule(moduleName)
this.submited = 1
// this.setDataFlow({ ...this.form }) // this.setDataFlow({ ...this.form })
}).catch((error)=>{ }).catch((error)=>{
}) })

@ -229,6 +229,7 @@ export default {
moneyNumber: 0 moneyNumber: 0
}, },
], ],
submited: 0
} }
}, },
computed: { computed: {
@ -239,17 +240,40 @@ export default {
}), }),
getSum() { getSum() {
return (val, num) => { return (val, num) => {
if (val.indexOf('角') == -1) {
return val.substr(0, val.length-1) * num; return val.substr(0, val.length-1) * num;
}else {
return val.substr(0, val.length-1) /10 * num;
}
} }
}, },
//
allSum() { allSum() {
const one = this.tableData.reduce((pre, item) => { const one = this.tableData.reduce((pre, item) => {
return pre + item.moneyType.substr(0, item.moneyType.length-1) * item.moneyNumber return pre + item.moneyType.substr(0, item.moneyType.length-1) * item.moneyNumber
}, 0) }, 0)
const two = this.tableData2.reduce((pre, item) => { const two = this.tableData2.reduce((pre, item) => {
if (item.moneyType.indexOf('角') == -1) {
return pre + item.moneyType.substr(0, item.moneyType.length-1) * item.moneyNumber return pre + item.moneyType.substr(0, item.moneyType.length-1) * item.moneyNumber
}else {
return pre + item.moneyType.substr(0, item.moneyType.length-1) /10 * item.moneyNumber
}
}, 0) }, 0)
return one + two let allSum
const allNum = one + two
const splitStr = allNum.toString().split('.')[1]
if(splitStr) {
if(splitStr.length >= 2) {
allSum = allNum.toFixed(1)
}else {
allSum = allNum
}
}else {
allSum = allNum
}
return allSum
} }
}, },
watch: { watch: {
@ -275,6 +299,7 @@ export default {
row.moneyNumber = Number(val.replace(/\D+/, '')) row.moneyNumber = Number(val.replace(/\D+/, ''))
}, },
submitClick() { submitClick() {
if (this.submited) return this.$message.error('已提交!')
this.visible = true this.visible = true
}, },
submitForm2() { submitForm2() {
@ -303,6 +328,7 @@ export default {
// type: 'success' // type: 'success'
// }); // });
this.setNeedsModule(moduleName) this.setNeedsModule(moduleName)
this.submited = 1
// this.setDataFlow({ ...this.form }) // this.setDataFlow({ ...this.form })
}).catch((error)=>{ }).catch((error)=>{
}) })

@ -10,7 +10,7 @@
</el-menu> </el-menu>
</div> </div>
<div class="title"> <div class="title">
<p>现金</p> <p>现金</p>
<i class="el-icon-arrow-right"></i> <i class="el-icon-arrow-right"></i>
<p>现金管理</p> <p>现金管理</p>
<i class="el-icon-arrow-right"></i> <i class="el-icon-arrow-right"></i>
@ -21,15 +21,8 @@
<cashTransferInto v-if="activeIndex === '2'"></cashTransferInto> <cashTransferInto v-if="activeIndex === '2'"></cashTransferInto>
<cashPaid v-if="activeIndex === '3'"></cashPaid> <cashPaid v-if="activeIndex === '3'"></cashPaid>
<cashOut v-if="activeIndex === '4'"></cashOut> <cashOut v-if="activeIndex === '4'"></cashOut>
<el-dialog <el-dialog style="margin-top:10vh" :visible.sync="visible" :modal="false" width="40%" :close-on-click-modal="false"
style="margin-top:10vh" :show-close="false" custom-class="data-dia">
:visible.sync="visible"
:modal="false"
width="40%"
:close-on-click-modal="false"
:show-close="false"
custom-class="data-dia"
>
<div slot="title" class="dia-header"> <div slot="title" class="dia-header">
<div class="data-title" v-throttle>提交</div> <div class="data-title" v-throttle>提交</div>
</div> </div>
@ -108,15 +101,18 @@ export default {
flex-direction: column; flex-direction: column;
overflow: hidden; overflow: hidden;
padding: 24px 0 24px 24px; padding: 24px 0 24px 24px;
.nav { .nav {
/deep/ .el-menu.el-menu--horizontal { /deep/ .el-menu.el-menu--horizontal {
border: 0; border: 0;
} }
/deep/ .el-menu--horizontal>.el-menu-item.is-active { /deep/ .el-menu--horizontal>.el-menu-item.is-active {
border: 2px solid #568DF2; border: 2px solid #568DF2;
border-radius: 10px; border-radius: 10px;
color: #000; color: #000;
} }
/deep/ .el-menu--horizontal>.el-menu-item { /deep/ .el-menu--horizontal>.el-menu-item {
border: 2px solid transparent; border: 2px solid transparent;
border-radius: 10px; border-radius: 10px;
@ -125,6 +121,7 @@ export default {
line-height: 28px; line-height: 28px;
} }
} }
.title { .title {
height: 60px; height: 60px;
display: flex; display: flex;
@ -133,10 +130,12 @@ export default {
padding-left: 0px; padding-left: 0px;
margin-top: 10px; margin-top: 10px;
} }
.body { .body {
margin-top: 50px; margin-top: 50px;
overflow-y: auto; overflow-y: auto;
overflow-x: hidden; overflow-x: hidden;
.idCard { .idCard {
border-radius: 5px; border-radius: 5px;
background: #CFDDFF; background: #CFDDFF;
@ -146,8 +145,10 @@ export default {
font-size: 18px; font-size: 18px;
color: #6191FF; color: #6191FF;
} }
.add { .add {
position: relative; position: relative;
&::after { &::after {
content: ''; content: '';
display: block; display: block;
@ -158,6 +159,7 @@ export default {
width: 88%; width: 88%;
height: 268px; height: 268px;
} }
.addBtn { .addBtn {
position: absolute; position: absolute;
left: 0; left: 0;
@ -167,6 +169,7 @@ export default {
} }
} }
} }
.submitBtn { .submitBtn {
position: relative; position: relative;
width: 300px; width: 300px;
@ -178,6 +181,7 @@ export default {
left: 50%; left: 50%;
transform: translate(-50%, -50%); transform: translate(-50%, -50%);
} }
.popBody { .popBody {
min-height: 200px; min-height: 200px;
display: flex; display: flex;
@ -185,19 +189,23 @@ export default {
justify-content: center; justify-content: center;
text-align: center; text-align: center;
} }
.popBtns { .popBtns {
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
align-items: center; align-items: center;
.btn { .btn {
width: 180px; width: 180px;
border-radius: 10px; border-radius: 10px;
font-size: 18px; font-size: 18px;
} }
.close { .close {
background: #CFDEFF; background: #CFDEFF;
color: #6191FF; color: #6191FF;
} }
.sure { .sure {
background: #6191FF; background: #6191FF;
color: #fff; color: #fff;

@ -120,6 +120,7 @@ export default {
], ],
}, },
visible:false, visible:false,
submited: 0
} }
}, },
filters: { filters: {
@ -150,6 +151,7 @@ export default {
setTipsOperate: 'system/setTipsOperate' setTipsOperate: 'system/setTipsOperate'
}), }),
submitClick() { submitClick() {
if (this.submited) return this.$message.error('已提交!')
this.$refs.form.validate(myValidate(() => { this.$refs.form.validate(myValidate(() => {
if(this.form.number <= 0) { if(this.form.number <= 0) {
this.setTipsOperate('结束号码应大于起始号码。') this.setTipsOperate('结束号码应大于起始号码。')
@ -184,6 +186,7 @@ export default {
// type: 'success' // type: 'success'
// }); // });
this.setNeedsModule(moduleName) this.setNeedsModule(moduleName)
this.submited = 1
// this.setDataFlow({ ...this.form }) // this.setDataFlow({ ...this.form })
}).catch((error)=>{ }).catch((error)=>{
}) })

@ -126,6 +126,7 @@ export default {
}, },
], ],
visible:false, visible:false,
submited: 0
} }
}, },
filters: { filters: {
@ -203,6 +204,7 @@ export default {
} }
}, },
submitClick() { submitClick() {
if (this.submited) return this.$message.error('已提交!')
this.visible = true this.visible = true
}, },
submitForm2() { submitForm2() {
@ -228,6 +230,7 @@ export default {
// type: 'success' // type: 'success'
// }); // });
this.setNeedsModule(moduleName) this.setNeedsModule(moduleName)
this.submited = 1
// this.setDataFlow({ ...this.form }) // this.setDataFlow({ ...this.form })
}).catch((error)=>{ }).catch((error)=>{
}) })

@ -116,6 +116,7 @@ export default {
} }
], ],
visible:false, visible:false,
submited: 0
} }
}, },
filters: { filters: {
@ -194,6 +195,7 @@ export default {
} }
}, },
submitClick() { submitClick() {
if (this.submited) return this.$message.error('已提交!')
this.visible = true this.visible = true
}, },
submitForm2() { submitForm2() {
@ -219,6 +221,7 @@ export default {
// type: 'success' // type: 'success'
// }); // });
this.setNeedsModule(moduleName) this.setNeedsModule(moduleName)
this.submited = 1
// this.setDataFlow({ ...this.form }) // this.setDataFlow({ ...this.form })
}).catch((error)=>{ }).catch((error)=>{
}) })

@ -114,6 +114,7 @@ export default {
], ],
}, },
visible:false, visible:false,
submited: 0
} }
}, },
filters: { filters: {
@ -144,6 +145,7 @@ export default {
setTipsOperate: 'system/setTipsOperate' setTipsOperate: 'system/setTipsOperate'
}), }),
submitClick() { submitClick() {
if (this.submited) return this.$message.error('已提交!')
this.$refs.form.validate(myValidate(() => { this.$refs.form.validate(myValidate(() => {
if(this.form.number <= 0) { if(this.form.number <= 0) {
this.setTipsOperate('结束号码应大于起始号码') this.setTipsOperate('结束号码应大于起始号码')
@ -177,6 +179,7 @@ export default {
// type: 'success' // type: 'success'
// }); // });
this.setNeedsModule(moduleName) this.setNeedsModule(moduleName)
this.submited = 1
// this.setDataFlow({ ...this.form }) // this.setDataFlow({ ...this.form })
}).catch((error)=>{ }).catch((error)=>{
}) })

@ -10,7 +10,7 @@
</el-menu> </el-menu>
</div> </div>
<div class="title"> <div class="title">
<p>现金</p> <p>现金</p>
<i class="el-icon-arrow-right"></i> <i class="el-icon-arrow-right"></i>
<p>凭证管理</p> <p>凭证管理</p>
<i class="el-icon-arrow-right"></i> <i class="el-icon-arrow-right"></i>
@ -23,15 +23,8 @@
<cash-paid v-if="activeIndex === '3'"></cash-paid> <cash-paid v-if="activeIndex === '3'"></cash-paid>
<cash-out v-if="activeIndex === '4'"></cash-out> <cash-out v-if="activeIndex === '4'"></cash-out>
<el-dialog <el-dialog style="margin-top:10vh" :visible.sync="visible" :modal="false" width="40%" :close-on-click-modal="false"
style="margin-top:10vh" :show-close="false" custom-class="data-dia">
:visible.sync="visible"
:modal="false"
width="40%"
:close-on-click-modal="false"
:show-close="false"
custom-class="data-dia"
>
<div slot="title" class="dia-header"> <div slot="title" class="dia-header">
<div class="data-title">提交</div> <div class="data-title">提交</div>
</div> </div>
@ -112,15 +105,18 @@ export default {
flex-direction: column; flex-direction: column;
overflow: hidden; overflow: hidden;
padding: 24px 0 24px 24px; padding: 24px 0 24px 24px;
.nav { .nav {
/deep/ .el-menu.el-menu--horizontal { /deep/ .el-menu.el-menu--horizontal {
border: 0; border: 0;
} }
/deep/ .el-menu--horizontal>.el-menu-item.is-active { /deep/ .el-menu--horizontal>.el-menu-item.is-active {
border: 2px solid #568DF2; border: 2px solid #568DF2;
border-radius: 10px; border-radius: 10px;
color: #000; color: #000;
} }
/deep/ .el-menu--horizontal>.el-menu-item { /deep/ .el-menu--horizontal>.el-menu-item {
border: 2px solid transparent; border: 2px solid transparent;
border-radius: 10px; border-radius: 10px;
@ -129,6 +125,7 @@ export default {
line-height: 28px; line-height: 28px;
} }
} }
.title { .title {
height: 60px; height: 60px;
display: flex; display: flex;
@ -137,10 +134,12 @@ export default {
padding-left: 0px; padding-left: 0px;
margin-top: 10px; margin-top: 10px;
} }
.body { .body {
margin-top: 50px; margin-top: 50px;
overflow-x: hidden; overflow-x: hidden;
overflow-y: auto; overflow-y: auto;
.idCard { .idCard {
border-radius: 5px; border-radius: 5px;
background: #CFDDFF; background: #CFDDFF;
@ -150,8 +149,10 @@ export default {
font-size: 18px; font-size: 18px;
color: #6191FF; color: #6191FF;
} }
.add { .add {
position: relative; position: relative;
&::after { &::after {
content: ''; content: '';
display: block; display: block;
@ -162,6 +163,7 @@ export default {
width: 88%; width: 88%;
height: 268px; height: 268px;
} }
.addBtn { .addBtn {
position: absolute; position: absolute;
left: 0; left: 0;
@ -171,6 +173,7 @@ export default {
} }
} }
} }
.submitBtn { .submitBtn {
position: relative; position: relative;
width: 300px; width: 300px;
@ -182,6 +185,7 @@ export default {
left: 50%; left: 50%;
transform: translate(-50%, -50%); transform: translate(-50%, -50%);
} }
.popBody { .popBody {
min-height: 200px; min-height: 200px;
display: flex; display: flex;
@ -189,19 +193,23 @@ export default {
justify-content: center; justify-content: center;
text-align: center; text-align: center;
} }
.popBtns { .popBtns {
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
align-items: center; align-items: center;
.btn { .btn {
width: 180px; width: 180px;
border-radius: 10px; border-radius: 10px;
font-size: 18px; font-size: 18px;
} }
.close { .close {
background: #CFDEFF; background: #CFDEFF;
color: #6191FF; color: #6191FF;
} }
.sure { .sure {
background: #6191FF; background: #6191FF;
color: #fff; color: #fff;

@ -8,13 +8,14 @@
<i class="el-icon-arrow-right"></i> <i class="el-icon-arrow-right"></i>
<p>支票出售</p> <p>支票出售</p>
</div> --> </div> -->
<my-title :titleArr="['重现金', '支票管理', '支票出售']"/> <my-title :titleArr="['重现金', '支票管理', '支票出售']" />
<el-row :gutter="20" style="margin: 0"> <el-row :gutter="20" style="margin: 0">
<el-form ref="form" :model="form" label-width="120px" :rules="rules"> <el-form ref="form" :model="form" label-width="120px" :rules="rules">
<el-col :span="10" :offset="1"> <el-col :span="10" :offset="1">
<el-form-item label="账号" prop="username"> <el-form-item label="账号" prop="username">
<el-input @blur="onBlur()" :value="form.username" @input="val => checkHanzi(val, form, 'username')" ref="username"></el-input> <el-input @blur="onBlur()" :value="form.username" @input="val => checkHanzi(val, form, 'username')"
ref="username"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="凭证类型" prop="voucherType"> <el-form-item label="凭证类型" prop="voucherType">
<el-select v-model.trim="form.voucherType" placeholder="请选择" ref="voucherType"> <el-select v-model.trim="form.voucherType" placeholder="请选择" ref="voucherType">
@ -31,7 +32,8 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="凭证终止号" prop="endNumber"> <el-form-item label="凭证终止号" prop="endNumber">
<el-input :value="form.endNumber" @blur="getBlur()" @input="val => certificateNumber(val, form, 'endNumber')" ref="endNumber"></el-input> <el-input :value="form.endNumber" @blur="getBlur()"
@input="val => certificateNumber(val, form, 'endNumber')" ref="endNumber"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="收费类型" prop="chargeWay2"> <el-form-item label="收费类型" prop="chargeWay2">
@ -40,7 +42,8 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="手续费" prop="serviceCharge"> <el-form-item label="手续费" prop="serviceCharge">
<el-input :value="form.serviceCharge" @input="(val) => ismoney(val, form, 'serviceCharge')" ref="serviceCharge"></el-input> <el-input :value="form.serviceCharge" @input="(val) => ismoney(val, form, 'serviceCharge')"
ref="serviceCharge"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="10" :offset="1"> <el-col :span="10" :offset="1">
@ -48,10 +51,12 @@
<el-input v-model.trim="form.customerName" ref="customerName"></el-input> <el-input v-model.trim="form.customerName" ref="customerName"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="凭证起始号" prop="startNumber"> <el-form-item label="凭证起始号" prop="startNumber">
<el-input :value="form.startNumber" @input="(val) => certificateNumber(val, form, 'startNumber')" ref="startNumber"></el-input> <el-input :value="form.startNumber" @input="(val) => certificateNumber(val, form, 'startNumber')"
ref="startNumber"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="数量" prop="number"> <el-form-item label="数量" prop="number">
<el-input :value="form.number" disabled @input="val => inputListen(val, form, 'number')" ref="number" ></el-input> <el-input :value="form.number" disabled @input="val => inputListen(val, form, 'number')"
ref="number"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="工本费" prop="cost"> <el-form-item label="工本费" prop="cost">
<el-input :value="form.cost" @input="val => ismoney(val, form, 'cost')" ref="cost"></el-input> <el-input :value="form.cost" @input="val => ismoney(val, form, 'cost')" ref="cost"></el-input>
@ -64,7 +69,8 @@
</el-form> </el-form>
</el-row> </el-row>
<el-button @click="submitIt()" type="primary" class="submitBtn">提交</el-button> <el-button @click="submitIt()" type="primary" class="submitBtn">提交</el-button>
<my-dialog :moduleName="moduleName" v-if="visible" :visible.sync="visible" :showForm="form" :formName="formName" @submitIt="submitForm2" /> <my-dialog :moduleName="moduleName" v-if="visible" :visible.sync="visible" :showForm="form" :formName="formName"
@submitIt="submitForm2" />
</div> </div>
<!-- <need-before v-else :moduleName='needBefore' :unNeed="unNeed" class="wrap" /> --> <!-- <need-before v-else :moduleName='needBefore' :unNeed="unNeed" class="wrap" /> -->
</template> </template>
@ -203,7 +209,8 @@ export default {
trigger: 'blur' trigger: 'blur'
} }
], ],
} },
submited: 0
} }
}, },
created () { created () {
@ -247,6 +254,7 @@ export default {
submitIt () { submitIt () {
if (this.submited) return this.$message.error('已提交!')
this.$refs.form.validate(myValidate(() => { this.$refs.form.validate(myValidate(() => {
if (this.form.number <= 0) { if (this.form.number <= 0) {
// this.$message({ // this.$message({
@ -271,6 +279,7 @@ export default {
] ]
autoPlay(parentId, this.form, this.myTable2, this.myTable, cards) autoPlay(parentId, this.form, this.myTable2, this.myTable, cards)
this.submited = 1
}, },
checkHanzi: checkHanzi, checkHanzi: checkHanzi,
inputListen: inputListen, inputListen: inputListen,
@ -300,7 +309,8 @@ export default {
// left: 50%; // left: 50%;
// transform: translate(-50%,-20%); // transform: translate(-50%,-20%);
// } // }
.el-input, .el-select { .el-input,
.el-select {
width: 100% !important; width: 100% !important;
} }
@ -310,15 +320,18 @@ export default {
flex-direction: column; flex-direction: column;
overflow: auto; overflow: auto;
padding: 24px 0 24px 24px; padding: 24px 0 24px 24px;
.nav { .nav {
/deep/ .el-menu.el-menu--horizontal { /deep/ .el-menu.el-menu--horizontal {
border: 0; border: 0;
} }
/deep/ .el-menu--horizontal>.el-menu-item.is-active { /deep/ .el-menu--horizontal>.el-menu-item.is-active {
border: 2px solid #568DF2; border: 2px solid #568DF2;
border-radius: 10px; border-radius: 10px;
color: #000; color: #000;
} }
/deep/ .el-menu--horizontal>.el-menu-item { /deep/ .el-menu--horizontal>.el-menu-item {
border: 2px solid transparent; border: 2px solid transparent;
border-radius: 10px; border-radius: 10px;
@ -327,6 +340,7 @@ export default {
line-height: 28px; line-height: 28px;
} }
} }
.title { .title {
height: 60px; height: 60px;
display: flex; display: flex;
@ -335,9 +349,11 @@ export default {
padding-left: 0px; padding-left: 0px;
margin-top: 10px; margin-top: 10px;
} }
.body { .body {
margin-top: 50px; margin-top: 50px;
overflow: auto; overflow: auto;
.idCard { .idCard {
border-radius: 5px; border-radius: 5px;
background: #CFDDFF; background: #CFDDFF;
@ -347,8 +363,10 @@ export default {
font-size: 18px; font-size: 18px;
color: #6191FF; color: #6191FF;
} }
.add { .add {
position: relative; position: relative;
&::after { &::after {
content: ''; content: '';
display: block; display: block;
@ -359,6 +377,7 @@ export default {
width: 88%; width: 88%;
height: 268px; height: 268px;
} }
.addBtn { .addBtn {
position: absolute; position: absolute;
left: 0; left: 0;
@ -368,6 +387,7 @@ export default {
} }
} }
} }
.submitBtn { .submitBtn {
position: relative; position: relative;
width: 200px; width: 200px;

@ -4,82 +4,167 @@
<MyTitle :titleArr="['银行承兑汇票', '承兑汇票开票']" /> <MyTitle :titleArr="['银行承兑汇票', '承兑汇票开票']" />
<div class="body"> <div class="body">
<el-row :gutter="20"> <el-row :gutter="20">
<el-form ref="form" :model="form" label-width="140px" :rules="rules"> <el-form ref="form"
<el-col :span="10" :offset="1"> :model="form"
<el-form-item label="出票人账号" prop="accountNumber"> label-width="140px"
<el-input @blur="getBlur" :value="form.accountNumber" @input="val => checkHanzi(val, form, 'accountNumber')" ref="accountNumber"></el-input> :rules="rules">
<el-col :span="10"
:offset="1">
<el-form-item label="出票人账号"
prop="accountNumber">
<el-input @blur="getBlur"
:value="form.accountNumber"
@input="val => checkHanzi(val, form, 'accountNumber')"
ref="accountNumber"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="出票人行名" prop="accountTradeName"> <el-form-item label="出票人行名"
<el-input :value="form.accountTradeName" disabled @input="val => checkHanzi(val, form, 'accountTradeName')"></el-input> prop="accountTradeName">
<el-input :value="form.accountTradeName"
disabled
@input="val => checkHanzi(val, form, 'accountTradeName')"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="收款人账号" prop="collectionNumber"> <el-form-item label="收款人账号"
<el-input @blur="getBlur2" :value="form.collectionNumber" @input="val => checkHanzi(val, form, 'collectionNumber')" ref="collectionNumber"></el-input> prop="collectionNumber">
<el-input @blur="getBlur2"
:value="form.collectionNumber"
@input="val => checkHanzi(val, form, 'collectionNumber')"
ref="collectionNumber"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="收款人行名" prop="collectionTradeName"> <el-form-item label="收款人行名"
<el-input :value="form.collectionTradeName" disabled @input="val => checkHanzi(val, form, 'collectionTradeName')" ref="collectionTradeName"></el-input> prop="collectionTradeName">
<el-input :value="form.collectionTradeName"
disabled
@input="val => checkHanzi(val, form, 'collectionTradeName')"
ref="collectionTradeName"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="票据号码" prop="moneyOrderNumber"> <el-form-item label="票据号码"
<el-input :value="form.moneyOrderNumber" @input="val => checkHanzi(val, form, 'moneyOrderNumber')" ref="moneyOrderNumber"></el-input> prop="moneyOrderNumber">
<el-input :value="form.moneyOrderNumber"
@input="val => checkHanzi(val, form, 'moneyOrderNumber')"
ref="moneyOrderNumber"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="到期日期" prop="expireDate"> <el-form-item label="到期日期"
<el-input v-model.trim="form.expireDate" ref="expireDate"></el-input> prop="expireDate">
<el-date-picker v-model="form.expireDate"
type="date"
format="yyyy-MM-dd"
value-format="yyyy-MM-dd"
placeholder="请选择到期日期">
</el-date-picker>
</el-form-item> </el-form-item>
<el-form-item label="申请人证件类型" prop="ApplicantDocuments"> <el-form-item label="申请人证件类型"
<el-select v-model.trim="form.ApplicantDocuments" placeholder="请选择" ref="ApplicantDocuments"> prop="ApplicantDocuments">
<el-select v-model.trim="form.ApplicantDocuments"
placeholder="请选择"
ref="ApplicantDocuments">
<el-option value="身份证">身份证</el-option> <el-option value="身份证">身份证</el-option>
<el-option value="港澳台居民回乡证">港澳台居民回乡证</el-option> <el-option value="港澳台居民回乡证">港澳台居民回乡证</el-option>
<el-option value="护照">护照</el-option> <el-option value="护照">护照</el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="币种" prop="currencyType"> <el-form-item label="币种"
<el-select v-model.trim="form.currencyType" placeholder="请选择" ref="currencyType"> prop="currencyType">
<el-option v-for="item in getSelectList.currencySelectList" :label="item.options" :value="item.itemId" :key="item.itemId"> </el-option> <el-select v-model.trim="form.currencyType"
placeholder="请选择"
ref="currencyType">
<el-option v-for="item in getSelectList.currencySelectList"
:label="item.options"
:value="item.itemId"
:key="item.itemId"> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="汇票费金额" prop="moneyOrderMoney"> <el-form-item label="汇票费金额"
<el-input :value="form.moneyOrderMoney" @input="val => ismoney(val, form, 'moneyOrderMoney')" ref="moneyOrderMoney"></el-input> prop="moneyOrderMoney">
<el-input :value="form.moneyOrderMoney"
@input="val => ismoney(val, form, 'moneyOrderMoney')"
ref="moneyOrderMoney"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="10" :offset="1"> <el-col :span="10"
<el-form-item label="出票人名称" prop="accountName"> :offset="1">
<el-input :value="form.accountName" @input="val => checkName(val, form, 'accountName')" ref="accountName"></el-input> <el-form-item label="出票人名称"
prop="accountName">
<el-input :value="form.accountName"
@input="val => checkName(val, form, 'accountName')"
ref="accountName"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="出票行地址" prop="tradeAddress"> <el-form-item label="出票行地址"
<el-input v-model.trim="form.tradeAddress" ref="tradeAddress"></el-input> prop="tradeAddress">
<el-input v-model.trim="form.tradeAddress"
ref="tradeAddress"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="收款人名称" prop="collectionName"> <el-form-item label="收款人名称"
<el-input :value="form.collectionName" @input="val => checkName(val, form, 'collectionName')" ref="collectionName"></el-input> prop="collectionName">
<el-input :value="form.collectionName"
@input="val => checkName(val, form, 'collectionName')"
ref="collectionName"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="票据类型" prop="billType"> <el-form-item label="票据类型"
<el-select v-model.trim="form.billType" placeholder="请选择" ref="billType"> prop="billType">
<el-option v-for="item in getSelectList.billTypeSelect" :label="item.options" :value="item.itemId" :key="item.itemId" ></el-option> <el-select v-model.trim="form.billType"
placeholder="请选择"
ref="billType">
<el-option v-for="item in getSelectList.billTypeSelect"
:label="item.options"
:value="item.itemId"
:key="item.itemId"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="出票日期" prop="drawBillDate"> <el-form-item label="出票日期"
<el-input v-model.trim="form.drawBillDate" ref="drawBillDate"></el-input> prop="drawBillDate">
<el-date-picker v-model="form.drawBillDate"
type="date"
format="yyyy-MM-dd"
value-format="yyyy-MM-dd"
placeholder="请选择出票日期">
</el-date-picker>
</el-form-item> </el-form-item>
<el-form-item label="是否转让" prop="isTransfer"> <el-form-item label="是否转让"
<el-select v-model.trim="form.isTransfer" placeholder="请选择" ref="isTransfer"> prop="isTransfer">
<el-option v-for="item in getSelectList.isTranslate" :label="item.options" :value="item.itemId" :key="item.itemId" ></el-option> <el-select v-model.trim="form.isTransfer"
placeholder="请选择"
ref="isTransfer">
<el-option v-for="item in getSelectList.isTranslate"
:label="item.options"
:value="item.itemId"
:key="item.itemId"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="证件号码" prop="certificateNumber"> <el-form-item label="证件号码"
<el-input :value="form.certificateNumber" @input="val => checkHanzi(val, form, 'certificateNumber')" ref="certificateNumber"></el-input> prop="certificateNumber">
<el-input :value="form.certificateNumber"
@input="val => checkHanzi(val, form, 'certificateNumber')"
ref="certificateNumber"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="金额" prop="money"> <el-form-item label="金额"
<el-input :value="form.money" @input="val => ismoney(val, form, 'money')" ref="money"></el-input> prop="money">
<el-input :value="form.money"
@input="val => ismoney(val, form, 'money')"
ref="money"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="手续费金额" prop="serviceCharge"> <el-form-item label="手续费金额"
<el-input :value="form.serviceCharge" @input="val => ismoney(val, form, 'serviceCharge')" ref="serviceCharge"></el-input> prop="serviceCharge">
<el-input :value="form.serviceCharge"
@input="val => ismoney(val, form, 'serviceCharge')"
ref="serviceCharge"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-form> </el-form>
</el-row> </el-row>
</div> </div>
<el-button @click="submitForm" type="primary" class="submitBtn" v-throttle>提交</el-button> <el-button @click="submitForm"
<my-dialog :moduleName="moduleName" v-if="visible" :visible.sync="visible" :showForm="form" :formName="formName" @submitIt="submitForm2" :needAuth='true' /> type="primary"
class="submitBtn"
v-throttle>提交</el-button>
<my-dialog :moduleName="moduleName"
v-if="visible"
:visible.sync="visible"
:showForm="form"
:formName="formName"
@submitIt="submitForm2"
:needAuth='true' />
</div> </div>
</div> </div>
@ -168,6 +253,13 @@ export default {
trigger: 'blur' trigger: 'blur'
} }
], ],
billType: [
{
required: true,
message: '请选择票据类型',
trigger: 'blur'
}
],
ApplicantDocuments: [ ApplicantDocuments: [
{ {
required: true, required: true,
@ -325,6 +417,7 @@ export default {
}, },
myTable: { myTable: {
}, },
submited: 0
} }
}, },
created () { created () {
@ -346,6 +439,7 @@ export default {
// //
// myValidateelement-uivalidate // myValidateelement-uivalidate
submitForm () { submitForm () {
if (this.submited) return this.$message.error('已提交!')
this.$refs.form.validate(myValidate(() => { this.$refs.form.validate(myValidate(() => {
this.visible = true this.visible = true
}, this.$refs)); }, this.$refs));
@ -355,6 +449,7 @@ export default {
const parentId = '285,' + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ',287,5,30,374' const parentId = '285,' + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ',287,5,30,374'
// //
autoPlay(parentId, this.form, this.myTable2, this.myTable) autoPlay(parentId, this.form, this.myTable2, this.myTable)
this.submited = 1
}, },
// //
getBlur () { getBlur () {

@ -0,0 +1,207 @@
<template>
<!-- 零存整取 -->
<div class="wrap wrap2">
<div class="nav">
<el-menu :default-active="activeIndex" class="el-menu-demo" mode="horizontal" @select="handleSelect">
<el-menu-item index="1">代收水费</el-menu-item>
<el-menu-item index="2">代收电费</el-menu-item>
<el-menu-item index="3">代收电话费</el-menu-item>
</el-menu>
</div>
<MyTitle :titleArr="['代理业务', text]" />
<!-- 代收水费 -->
<waterRate v-if="activeIndex === '1'"></waterRate>
<!-- 代收电费 -->
<electricRate v-if="activeIndex === '2'"></electricRate>
<!-- 代收电话费 -->
<telRate v-if="activeIndex === '3'"></telRate>
<el-dialog style="margin-top:10vh" :visible.sync="visible" :modal="false" width="40%" :close-on-click-modal="false"
:show-close="false" custom-class="data-dia">
<div slot="title" class="dia-header">
<div class="data-title">提交</div>
</div>
<div class="popBody">
<h2>本业务需要授权</h2>
</div>
<div class="popBtns">
<el-button class="close btn" @click="visible = false"> </el-button>
<el-button class="sure btn" type="primary" @click="visible = false"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import waterRate from './waterRate.vue'
import electricRate from './electricRate.vue'
import telRate from './telRate.vue'
import MyTitle from '@/components/myTitle'
export default {
name: 'index',
components: {
waterRate,
electricRate,
telRate,
MyTitle
},
data () {
return {
text: '',/* 顶部文字 */
cacheVal: '',
textObj: {
'1': '代收水费',
'2': '代收电费',
'3': '代收电话费',
},
form: {
},
visible: false,
options: [],
activeIndex: '1',
second: [//
],
}
},
created () {
if (sessionStorage.getItem('agentIndex')) {
this.handleSelect(sessionStorage.getItem('agentIndex'))
} else {
this.handleSelect('1')
}
},
methods: {
handleSelect (val) {
this.text = this.textObj[val]
this.activeIndex = val
this.cacheVal = val
},
},
destroyed () {
sessionStorage.setItem('agentIndex', this.cacheVal)
}
};
</script>
<style lang="scss" scoped>
.wrap {
width: 100%;
display: flex;
flex-direction: column;
overflow: hidden;
padding: 24px 0 24px 24px;
.nav {
/deep/ .el-menu.el-menu--horizontal {
border: 0;
}
/deep/ .el-menu--horizontal>.el-menu-item.is-active {
border: 2px solid #568df2;
border-radius: 10px;
color: #000;
}
/deep/ .el-menu--horizontal>.el-menu-item {
border: 2px solid transparent;
border-radius: 10px;
margin-right: 10px;
height: 30px;
line-height: 28px;
}
}
.title {
height: 60px;
display: flex;
align-items: center;
font-size: 20px;
padding-left: 0px;
margin-top: 10px;
}
.body {
margin-top: 50px;
overflow: auto;
.idCard {
border-radius: 5px;
background: #cfddff;
text-align: center;
height: 40px;
line-height: 40px;
font-size: 18px;
color: #6191ff;
}
.add {
position: relative;
&::after {
content: '';
display: block;
position: absolute;
right: 3%;
top: -4%;
border: 1px dashed #cfddff;
width: 88%;
height: 268px;
}
.addBtn {
position: absolute;
left: 0;
top: 50%;
transform: translate(50%, -50%);
font-size: 22px;
}
}
}
.submitBtn {
position: relative;
width: 300px;
font-size: 18px;
height: 45px;
margin-top: 50px;
border-radius: 10px;
bottom: 10px;
left: 50%;
transform: translate(-50%, -50%);
}
.popBody {
min-height: 200px;
display: flex;
align-items: center;
justify-content: center;
text-align: center;
}
.popBtns {
display: flex;
justify-content: space-between;
align-items: center;
.btn {
width: 180px;
border-radius: 10px;
font-size: 18px;
}
.close {
background: #cfdeff;
color: #6191ff;
}
.sure {
background: #6191ff;
color: #fff;
}
}
}
</style>

@ -0,0 +1,396 @@
<!-- 代收电费 -->
<template>
<div class="body">
<el-row :gutter="20" style="margin: 0">
<el-form ref="form" :model="form" label-width="120px" :rules="rules">
<el-col :span="10" :offset="1">
<el-form-item label="证件类型" prop="certificateType">
<el-select v-model.trim="form.certificateType" placeholder="请选择" ref="certificateType" disabled>
<el-option label="身份证" :value="83"> </el-option>
</el-select>
</el-form-item>
<el-form-item label="账号" required>
<div v-if='!cardNumberJudge' class="idCard" @click="popUp2('刷卡器')">
<p>请刷卡</p>
</div>
<div v-else>
<el-input maxlength="20" ref="voucherNumber" disabled :value="form.voucherNumber"
@input="(val) => inputListen(val, form, 'voucherNumber')"></el-input>
</div>
</el-form-item>
<el-form-item label="缴费单位" prop="paymentUnit">
<el-input v-model="form.paymentUnit" />
</el-form-item>
</el-col>
<el-col :span="10" :offset="1">
<el-form-item label="证件号码" required>
<div class="idCard" @click="popUp1('身份证扫描仪')" v-if='!idNumberJudge'>
<p>请刷身份证</p>
</div>
<div v-else>
<el-input :value="form.idNumber" disabled ref="idNumber"></el-input>
</div>
</el-form-item>
<el-form-item label="客户姓名" prop="customerName">
<el-input ref="customerName" disabled :value="form.customerName"
@input="(val) => checkName(val, form, 'customerName')"></el-input>
</el-form-item>
<el-form-item label="户号" prop="houseId">
<el-input v-model="form.houseId" />
</el-form-item>
</el-col>
<el-col :span="21" :offset="1">
<el-form-item label="住址信息" prop="address">
<el-input type="textarea" :rows="3" placeholder="请输入住址信息" v-model.trim="form.address"></el-input>
</el-form-item>
</el-col>
<el-col :span="10" :offset="1">
<el-form-item label="缴费金额" prop="paymentMoney">
<el-input v-model="form.paymentMoney" maxlength="15"
@input="val => ismoney(val, form, 'paymentMoney')"></el-input>
</el-form-item>
<el-form-item label="支取密码" required>
<div v-if='!form.drawPassword' class="idCard" @click="popUp3('密码器')">
<p>请输入密码</p>
</div>
<div v-else @click="popUp3('密码器')">
<el-input :value="form.drawPassword" ref="drawPassword" type="password"></el-input>
</div>
</el-form-item>
</el-col>
<el-col :span="10" :offset="1">
<el-form-item label="每月代扣" prop="monthlyWithholding" required>
<el-radio-group v-model.trim="form.monthlyWithholding">
<el-radio :label="142"></el-radio>
<el-radio :label="143"></el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<my-dialog :moduleName="moduleName" v-if="visible" :visible.sync="visible" :showForm="form" :formName="formName"
:spare="false" @submitIt="submitForm2" depositNumber='0816' />
</el-form>
</el-row>
<el-button @click="submitForm" type="primary" class="submitBtn" v-throttle>提交</el-button>
</div>
</template>
<script>
import { myValidate, checkHanzi, checkName, ismoney, autoPlay, autoPlay2, inputListen, messageIdCard, messageCard, messagePassword } from '@/utils/utilFunction.js';
import { mobPattern, namePattern, ratePattern, vercustomer } from '@/utils/verify.js'
import { addOperation, getOperation } from '@/api/http';
const moduleName = 'agent/electricRate'
import { mapMutations, mapGetters } from 'vuex'
import NeedBefore from '@/components/needBefore'
import MyDialog from '@/components/dialog'
import TipsBefore from '@/mixins/tipsBefore'
export default {
name: '',
props: {},
components: {
NeedBefore,
MyDialog
},
mixins: [TipsBefore],
created () {
if (sessionStorage.getItem('electricRatePassword')) {
this.form.drawPassword = sessionStorage.getItem('electricRatePassword')
}
if (sessionStorage.getItem('electricRateIdCard')) {
this.idNumberJudge = true
//
const { idNumber, userName, peopleNumber, currency, goldLogo } = this.dataFlow
this.form.clientNumber = peopleNumber
this.form.idNumber = idNumber
this.form.customerName = userName
this.form.currency = currency
this.form.goldLogo = goldLogo
this.form.voucherType = 127
}
if (sessionStorage.getItem('electricRateBankCard')) {
this.cardNumberJudge = true
const { voucherNumber } = this.dataFlow
this.form.voucherNumber = voucherNumber
}
// this.getFormData()
},
data () {
return {
moduleName,
visible: false,
cardNumberJudge: false,
idNumberJudge: false,
form: {
certificateType: 83,
idNumber: '',
voucherNumber: '',
customerName: '',
paymentUnit: '',
houseId: '',
address: '',
paymentMoney: '',
monthlyWithholding: '',
drawPassword: '',
},
formName: {
certificateType: '证件类型',
idNumber: '证件号码',
voucherNumber: '账号',
customerName: '客户姓名',
paymentUnit: '缴费单位',
houseId: '户号',
address: '住址信息',
paymentMoney: '缴费金额',
monthlyWithholding: '每月代扣',
drawPassword: '支付密码',
},
rules: {
customerName: vercustomer,
idNumber: [
{
required: true,
message: '请输入证件号码',
trigger: 'blur'
}
],
voucherNumber: [
{
required: true,
message: '请输入账号',
trigger: 'blur'
}
],
customerName: [
{
required: true,
message: '请输入客户姓名',
trigger: 'blur'
}
],
paymentUnit: [
{
required: true,
message: '请输入缴费单位',
trigger: 'blur'
}
],
houseId: [
{
required: true,
message: '请输入户号',
trigger: 'blur'
}
],
address: [
{
required: true,
message: '请输入住址信息',
trigger: 'blur'
}
],
paymentMoney: [
{
required: true,
message: '请输入缴费金额',
trigger: 'blur'
}
],
monthlyWithholding: [
{
required: true,
message: '请选择每月代扣',
trigger: 'change'
}
],
},
myTable2: {
158: {
prop: 'certificateType',//
type: '1',
"subjectId": 19,
},
// 169: {
// prop: 'customerManage',//
// type: '3',
// "subjectId": 27,
// },
160: {
prop: 'clientNumber',//
type: '3',
"subjectId": 6,
}
},
myTable: {
159: {
prop: 'idNumber',//
type: '3',
},
161: {
prop: 'customerName',//
type: '3',
"subjectId": 7,
},
162: {
prop: 'currency',//
type: '1',
"subjectId": 8,
},
163: {
prop: 'goldLogo',//
type: '1',
"subjectId": 9,
},
164: {
prop: 'voucherType',//
type: '1',
"subjectId": 11,
},
166: {
prop: 'voucherNumber',//
type: '3',
"subjectId": 44,
},
167: {
prop: 'drawPassword',
type: '3',
"subjectId": 17,
},
168: {
prop: 'monthDeposit',//
type: '3',
"subjectId": 31,
},
170: {
prop: 'extendDepositTarget',//
type: '1',
"subjectId": 37,
},
},
submited: 0
}
},
mounted () {
},
methods: {
...mapMutations({
changeShowGoods: 'system/changeShowGoods',
setDataFlow: 'system/setDataFlow',
setNeedsModule: 'system/setNeedsModule',
setPopId: 'system/setPopId',
setTipsOperate: 'system/setTipsOperate'
}),
popUp1 (text) {
this.setTipsOperate('请刷身份证');
this.setPopId('722')
sessionStorage.setItem('computerPath', this.$route.fullPath)
this.$router.push('/counter/list/')
},
popUp2 (text) {
this.setTipsOperate('请刷银行卡');
this.setPopId('724')
sessionStorage.setItem('computerPath', this.$route.fullPath)
this.$router.push('/counter/list/')
},
popUp3 (text) {
this.setTipsOperate('请在密码器输入密码');
this.setPopId('729')
sessionStorage.setItem('computerPath', this.$route.fullPath)
this.$router.push('/counter/list/')
},
getFormData () {
const parentId = '285,' + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ',287,5,26,59,155'
const cards = {
// 1399: 'nomUsefulPhrasesOpenCard2',
// 166: 'nomUsefulPhrasesOpenCard',
// 167: 'nomUsefulPhrasesOpenPassword'
}
const callback = () => {
if (this.form.idNumber) {
this.idNumberJudge = true
}
if (this.form.voucherNumber) {
this.cardNumberJudge = true
}
if (sessionStorage.getItem('nomUsefulPhrasesOpenPassword')) {
this.form.drawPassword = sessionStorage.getItem('nomUsefulPhrasesOpenPassword')
}
}
autoPlay2(parentId, this.form, this.myTable2, this.myTable, cards, callback)
},
submitForm () {
if (this.submited) return this.$message.error('已提交!')
if (!this.form.idNumber) {
messageIdCard()
return
}
if (!this.form.voucherNumber) {
messageCard('请填写账号')
return
}
if (!this.form.drawPassword) {
messagePassword()
return
}
this.$refs.form.validate(myValidate(() => {
//
this.visible = true;
}, this.$refs));
},
submitForm2 () {
let projectId = sessionStorage.getItem('projectId')
let startTime = sessionStorage.getItem('startTime')
let formList = [];
const { form } = this
const preId = '285,' + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ',287,5,706,710'
formList.push(
{ answerId: 721, emptyOne: 19, emptyTwo: form.certificateType, operationIds: preId + ',721', type: 1 },
{ answerId: 722, emptyOne: '', emptyTwo: '', operationIds: preId + ',722', type: '' },
{ answerId: 724, emptyOne: 84, emptyTwo: form.voucherNumber, operationIds: preId + ',724', type: 3 },
{ answerId: 723, emptyOne: 7, emptyTwo: form.customerName, operationIds: preId + ',723', type: 3 },
{ answerId: 725, emptyOne: 111, emptyTwo: form.paymentUnit, operationIds: preId + ',725', type: 3 },
{ answerId: 726, emptyOne: 112, emptyTwo: form.houseId, operationIds: preId + ',726', type: 3 },
{ answerId: 730, emptyOne: 153, emptyTwo: form.address, operationIds: preId + ',730', type: 3 },
{ answerId: 727, emptyOne: 113, emptyTwo: form.paymentMoney, operationIds: preId + ',727', type: 3 },
{ answerId: 728, emptyOne: 114, emptyTwo: form.monthlyWithholding, operationIds: preId + ',728', type: 1 },
{ answerId: 729, emptyOne: 17, emptyTwo: form.drawPassword, operationIds: preId + ',729', type: 3 },
)
let params = {
parentId: preId,
lcJudgmentRuleReq: formList,
projectId: +projectId,
startTime: startTime,
}
addOperation(params).then((data) => {
this.setDataFlow({ ...this.form })
this.submited = 1
}).catch((error) => {
this.$message({
message: '服务器繁忙,提交失败。',
center: true,
type: 'info'
});
})
},
ismoney,
checkHanzi,
checkName,
inputListen,
},
computed: {
...mapGetters({
dataFlow: 'system/dataFlow',
needsModule: 'system/needsModule',
idCardNumber: 'system/idCardNumber',
inMyWork: 'system/inMyWork',
getSelectList: 'system/getSelectList'
})
}
}
</script>
<style lang='scss' scoped></style>

@ -0,0 +1,388 @@
<!-- 代收电话费 -->
<template>
<div class="body">
<el-row :gutter="20" style="margin: 0">
<el-form ref="form" :model="form" label-width="120px" :rules="rules">
<el-col :span="10" :offset="1">
<el-form-item label="证件类型" prop="certificateType">
<el-select v-model.trim="form.certificateType" placeholder="请选择" ref="certificateType">
<el-option label="身份证" :value="83"> </el-option>
</el-select>
</el-form-item>
<el-form-item label="账号" required>
<div v-if='!cardNumberJudge' class="idCard" @click="popUp2('刷卡器')">
<p>请刷卡</p>
</div>
<div v-else>
<el-input maxlength="20" ref="voucherNumber" disabled :value="form.voucherNumber"
@input="(val) => inputListen(val, form, 'voucherNumber')"></el-input>
</div>
</el-form-item>
<el-form-item label="缴费单位" prop="paymentUnit">
<el-input v-model="form.paymentUnit" />
</el-form-item>
<el-form-item label="缴费号码" prop="paymentNum">
<el-input v-model="form.paymentNum" maxlength="30"></el-input>
</el-form-item>
<el-form-item label="每月代扣" prop="monthlyWithholding">
<el-radio-group v-model.trim="form.monthlyWithholding">
<el-radio :label="142"></el-radio>
<el-radio :label="143"></el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="10" :offset="1">
<el-form-item label="证件号码" required>
<div class="idCard" @click="popUp1('身份证扫描仪')" v-if='!idNumberJudge'>
<p>请刷身份证</p>
</div>
<div v-else>
<el-input :value="form.idNumber" disabled ref="idNumber"></el-input>
</div>
</el-form-item>
<el-form-item label="客户姓名" prop="customerName">
<el-input ref="customerName" disabled :value="form.customerName"
@input="(val) => checkName(val, form, 'customerName')"></el-input>
</el-form-item>
<el-form-item label="号码类型" prop="numType">
<el-select v-model.trim="form.numType" placeholder="请选择">
<el-option label="手机号码" :value="144"></el-option>
<el-option label="座机号码" :value="145"></el-option>
</el-select>
</el-form-item>
<el-form-item label="缴费金额" prop="paymentMoney">
<el-input :value="form.paymentMoney" maxlength="15"
@input="val => ismoney(val, form, 'paymentMoney')"></el-input>
</el-form-item>
<el-form-item label="支取密码" required>
<div v-if='!form.drawPassword' class="idCard" @click="popUp3('密码器')">
<p>请输入密码</p>
</div>
<div v-else @click="popUp3('密码器')">
<el-input :value="form.drawPassword" ref="drawPassword" type="password"></el-input>
</div>
</el-form-item>
</el-col>
<my-dialog :moduleName="moduleName" v-if="visible" :visible.sync="visible" :showForm="form" :formName="formName"
:spare="false" @submitIt="submitForm2" depositNumber='0816' />
</el-form>
</el-row>
<el-button @click="submitForm" type="primary" class="submitBtn" v-throttle>提交</el-button>
</div>
<!-- <need-before v-else :moduleName='needBefore' :unNeed="unNeed" /> -->
</template>
<script>
import { myValidate, checkHanzi, checkName, ismoney, autoPlay, autoPlay2, inputListen, messageIdCard, messageCard, messagePassword } from '@/utils/utilFunction.js';
import { mobPattern, namePattern, ratePattern, vercustomer } from '@/utils/verify.js'
import { addOperation, getOperation } from '@/api/http';
const moduleName = 'agent/telRate'
import { mapMutations, mapGetters } from 'vuex'
import NeedBefore from '@/components/needBefore'
import MyDialog from '@/components/dialog'
import TipsBefore from '@/mixins/tipsBefore'
export default {
name: '',
props: {},
components: {
NeedBefore,
MyDialog
},
mixins: [TipsBefore],
created () {
if (sessionStorage.getItem('telRatePassword')) {
this.form.drawPassword = sessionStorage.getItem('telRatePassword')
}
if (sessionStorage.getItem('telRateIdCard')) {
this.idNumberJudge = true
const { idNumber, userName } = this.dataFlow
this.form.idNumber = idNumber
this.form.customerName = userName
}
if (sessionStorage.getItem('telRateBankCard')) {
this.cardNumberJudge = true
const { voucherNumber } = this.dataFlow
this.form.voucherNumber = voucherNumber
}
// this.getFormData()
},
data () {
return {
moduleName,
visible: false,
cardNumberJudge: false,
idNumberJudge: false,
form: {
certificateType: 83,
idNumber: '',
voucherNumber: '',
customerName: '',
paymentUnit: '',
numType: '',
paymentNum: '',
paymentMoney: '',
monthlyWithholding: '',
drawPassword: '',
},
formName: {
certificateType: '证件类型',
idNumber: '证件号码',
voucherNumber: '账号',
customerName: '客户姓名',
paymentUnit: '缴费单位',
numType: '号码类型',
paymentNum: '缴费号码',
paymentMoney: '缴费金额',
monthlyWithholding: '每月代扣',
drawPassword: '支付密码',
},
rules: {
customerName: vercustomer,
idNumber: [
{
required: true,
message: '请输入证件号码',
trigger: 'blur'
}
],
voucherNumber: [
{
required: true,
message: '请输入账号',
trigger: 'blur'
}
],
customerName: [
{
required: true,
message: '请输入客户姓名',
trigger: 'blur'
}
],
paymentUnit: [
{
required: true,
message: '请输入缴费单位',
trigger: 'blur'
}
],
numType: [
{
required: true,
message: '请选择号码类型',
trigger: 'change'
}
],
paymentNum: [
{
required: true,
message: '请输入缴费号码',
trigger: 'blur'
}
],
paymentMoney: [
{
required: true,
message: '请输入缴费金额',
trigger: 'blur'
}
],
monthlyWithholding: [
{
required: true,
message: '请选择每月代扣',
trigger: 'change'
}
],
},
myTable2: {
158: {
prop: 'certificateType',//
type: '1',
"subjectId": 19,
},
// 169: {
// prop: 'customerManage',//
// type: '3',
// "subjectId": 27,
// },
160: {
prop: 'clientNumber',//
type: '3',
"subjectId": 6,
}
},
myTable: {
159: {
prop: 'idNumber',//
type: '3',
},
161: {
prop: 'customerName',//
type: '3',
"subjectId": 7,
},
162: {
prop: 'currency',//
type: '1',
"subjectId": 8,
},
163: {
prop: 'goldLogo',//
type: '1',
"subjectId": 9,
},
164: {
prop: 'voucherType',//
type: '1',
"subjectId": 11,
},
166: {
prop: 'voucherNumber',//
type: '3',
"subjectId": 44,
},
167: {
prop: 'drawPassword',
type: '3',
"subjectId": 17,
},
168: {
prop: 'monthDeposit',//
type: '3',
"subjectId": 31,
},
170: {
prop: 'extendDepositTarget',//
type: '1',
"subjectId": 37,
},
},
submited: 0
}
},
mounted () {
},
methods: {
...mapMutations({
changeShowGoods: 'system/changeShowGoods',
setDataFlow: 'system/setDataFlow',
setNeedsModule: 'system/setNeedsModule',
setPopId: 'system/setPopId',
setTipsOperate: 'system/setTipsOperate'
}),
popUp1 (text) {
this.setTipsOperate('请刷身份证');
this.setPopId('732')
sessionStorage.setItem('computerPath', this.$route.fullPath)
this.$router.push('/counter/list/')
},
popUp2 (text) {
this.setTipsOperate('请刷银行卡');
this.setPopId('733')
sessionStorage.setItem('computerPath', this.$route.fullPath)
this.$router.push('/counter/list/')
},
popUp3 (text) {
this.setTipsOperate('请在密码器输入密码');
this.setPopId('740')
sessionStorage.setItem('computerPath', this.$route.fullPath)
this.$router.push('/counter/list/')
},
getFormData () {
const parentId = '285,' + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ',287,5,26,59,155'
const cards = {
// 1399: 'nomUsefulPhrasesOpenCard2',
// 166: 'nomUsefulPhrasesOpenCard',
// 167: 'nomUsefulPhrasesOpenPassword'
}
const callback = () => {
if (this.form.idNumber) {
this.idNumberJudge = true
}
if (this.form.voucherNumber) {
this.cardNumberJudge = true
}
if (sessionStorage.getItem('nomUsefulPhrasesOpenPassword')) {
this.form.drawPassword = sessionStorage.getItem('nomUsefulPhrasesOpenPassword')
}
}
autoPlay2(parentId, this.form, this.myTable2, this.myTable, cards, callback)
},
submitForm () {
if (this.submited) return this.$message.error('已提交!')
if (!this.form.idNumber) {
messageIdCard()
return
}
if (!this.form.voucherNumber) {
messageCard('请填写账号')
return
}
if (!this.form.drawPassword) {
messagePassword()
return
}
this.$refs.form.validate(myValidate(() => {
//
this.visible = true;
}, this.$refs));
},
submitForm2 () {
let projectId = sessionStorage.getItem('projectId')
let startTime = sessionStorage.getItem('startTime')
let formList = [];
const { form } = this
const preId = '285,' + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ',287,5,706,711'
formList.push(
{ answerId: 731, emptyOne: 19, emptyTwo: form.certificateType, operationIds: preId + ',731', type: 1 },
{ answerId: 732, emptyOne: '', emptyTwo: '', operationIds: preId + ',732', type: '' },
{ answerId: 734, emptyOne: 84, emptyTwo: form.voucherNumber, operationIds: preId + ',734', type: 3 },
{ answerId: 733, emptyOne: 7, emptyTwo: form.customerName, operationIds: preId + ',733', type: 3 },
{ answerId: 735, emptyOne: 111, emptyTwo: form.paymentUnit, operationIds: preId + ',735', type: 3 },
{ answerId: 736, emptyOne: 115, emptyTwo: form.numType, operationIds: preId + ',736', type: 1 },
{ answerId: 737, emptyOne: 116, emptyTwo: form.paymentNum, operationIds: preId + ',737', type: 3 },
{ answerId: 738, emptyOne: 113, emptyTwo: form.paymentMoney, operationIds: preId + ',738', type: 3 },
{ answerId: 739, emptyOne: 114, emptyTwo: form.monthlyWithholding, operationIds: preId + ',739', type: 1 },
{ answerId: 740, emptyOne: 17, emptyTwo: form.drawPassword, operationIds: preId + ',740', type: 3 },
)
let params = {
parentId: preId,
lcJudgmentRuleReq: formList,
projectId: +projectId,
startTime: startTime,
}
addOperation(params).then((data) => {
this.setDataFlow({ ...this.form })
this.submited = 1
}).catch((error) => {
this.$message({
message: '服务器繁忙,提交失败。',
center: true,
type: 'info'
});
})
},
ismoney,
checkHanzi,
checkName,
inputListen,
},
computed: {
...mapGetters({
dataFlow: 'system/dataFlow',
needsModule: 'system/needsModule',
idCardNumber: 'system/idCardNumber',
inMyWork: 'system/inMyWork',
getSelectList: 'system/getSelectList'
})
}
}
</script>
<style lang='scss' scoped></style>

@ -0,0 +1,373 @@
<!-- 代收水费 -->
<template>
<div class="body">
<el-row :gutter="20" style="margin: 0">
<el-form ref="form" :model="form" label-width="120px" :rules="rules">
<el-col :span="10" :offset="1">
<el-form-item label="证件类型" prop="certificateType">
<el-select v-model.trim="form.certificateType" placeholder="请选择" ref="certificateType" disabled>
<el-option label="身份证" :value="83"> </el-option>
</el-select>
</el-form-item>
<el-form-item label="账号" required>
<div v-if='!cardNumberJudge' class="idCard" @click="popUp2('刷卡器')">
<p>请刷卡</p>
</div>
<div v-else>
<el-input maxlength="20" ref="voucherNumber" disabled :value="form.voucherNumber"
@input="(val) => inputListen(val, form, 'voucherNumber')"></el-input>
</div>
</el-form-item>
<el-form-item label="缴费单位" prop="paymentUnit">
<el-input v-model="form.paymentUnit" />
</el-form-item>
<el-form-item label="缴费金额" prop="paymentMoney">
<el-input :value="form.paymentMoney" maxlength="15"
@input="val => ismoney(val, form, 'paymentMoney')"></el-input>
</el-form-item>
<el-form-item label="支取密码" required>
<div v-if='!form.drawPassword' class="idCard" @click="popUp3('密码器')">
<p>请输入密码</p>
</div>
<div v-else @click="popUp3('密码器')">
<el-input :value="form.drawPassword" ref="drawPassword" type="password"></el-input>
</div>
</el-form-item>
</el-col>
<el-col :span="10" :offset="1">
<el-form-item label="证件号码" required>
<div class="idCard" @click="popUp1('身份证扫描仪')" v-if='!idNumberJudge'>
<p>请刷身份证</p>
</div>
<div v-else>
<el-input :value="form.idNumber" disabled ref="idNumber"></el-input>
</div>
</el-form-item>
<el-form-item label="客户姓名" prop="customerName">
<el-input ref="customerName" disabled :value="form.customerName"
@input="(val) => checkName(val, form, 'customerName')"></el-input>
</el-form-item>
<el-form-item label="户号" prop="houseId">
<el-input v-model="form.houseId" />
</el-form-item>
<el-form-item label="每月代扣" prop="monthlyWithholding">
<el-radio-group v-model.trim="form.monthlyWithholding">
<el-radio :label="142"></el-radio>
<el-radio :label="143"></el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<my-dialog :moduleName="moduleName" v-if="visible" :visible.sync="visible" :showForm="form" :formName="formName"
:spare="false" @submitIt="submitForm2" depositNumber='0816' />
</el-form>
</el-row>
<el-button @click="submitForm" type="primary" class="submitBtn" v-throttle>提交</el-button>
</div>
</template>
<script>
import { myValidate, checkHanzi, checkName, ismoney, autoPlay, autoPlay2, inputListen, messageIdCard, messageCard, messagePassword } from '@/utils/utilFunction.js';
import { mobPattern, namePattern, ratePattern, vercustomer } from '@/utils/verify.js'
import { addOperation, getOperation } from '@/api/http';
import { mapMutations, mapGetters } from 'vuex'
import NeedBefore from '@/components/needBefore'
import MyDialog from '@/components/dialog'
import TipsBefore from '@/mixins/tipsBefore'
const moduleName = 'agent/waterRate'
export default {
name: '',
props: {},
components: {
NeedBefore,
MyDialog
},
mixins: [TipsBefore],
created () {
if (sessionStorage.getItem('waterRatePassword')) {
this.form.drawPassword = sessionStorage.getItem('waterRatePassword')
}
if (sessionStorage.getItem('waterRateIdCard')) {
this.idNumberJudge = true
const { idNumber } = this.dataFlow
this.form.idNumber = idNumber
}
if (sessionStorage.getItem('waterRateBankCard')) {
this.cardNumberJudge = true
const { voucherNumber, userName } = this.dataFlow
this.form.voucherNumber = voucherNumber
this.form.customerName = userName
}
// this.getFormData()
},
data () {
return {
moduleName,
visible: false,
cardNumberJudge: false,
idNumberJudge: false,
form: {
certificateType: 83,
idNumber: '',
voucherNumber: '',
customerName: '',
paymentUnit: '',
houseId: '',
paymentMoney: '',
monthlyWithholding: '',
drawPassword: '',
},
formName: {
certificateType: '证件类型',
idNumber: '证件号码',
voucherNumber: '账号',
customerName: '客户姓名',
paymentUnit: '缴费单位',
houseId: '户号',
paymentMoney: '缴费金额',
monthlyWithholding: '每月代扣',
drawPassword: '支付密码',
},
rules: {
customerName: vercustomer,
idNumber: [
{
required: true,
message: '请输入证件号码',
trigger: 'blur'
}
],
voucherNumber: [
{
required: true,
message: '请输入账号',
trigger: 'blur'
}
],
customerName: [
{
required: true,
message: '请输入客户姓名',
trigger: 'blur'
}
],
paymentUnit: [
{
required: true,
message: '请输入缴费单位',
trigger: 'blur'
}
],
houseId: [
{
required: true,
message: '请输入户号',
trigger: 'blur'
}
],
paymentMoney: [
{
required: true,
message: '请输入缴费金额',
trigger: 'blur'
}
],
monthlyWithholding: [
{
required: true,
message: '请选择每月代扣',
trigger: 'change'
}
],
},
myTable2: {
158: {
prop: 'certificateType',//
type: '1',
"subjectId": 19,
},
// 169: {
// prop: 'customerManage',//
// type: '3',
// "subjectId": 27,
// },
160: {
prop: 'clientNumber',//
type: '3',
"subjectId": 6,
}
},
myTable: {
159: {
prop: 'idNumber',//
type: '3',
},
161: {
prop: 'customerName',//
type: '3',
"subjectId": 7,
},
162: {
prop: 'currency',//
type: '1',
"subjectId": 8,
},
163: {
prop: 'goldLogo',//
type: '1',
"subjectId": 9,
},
164: {
prop: 'voucherType',//
type: '1',
"subjectId": 11,
},
166: {
prop: 'voucherNumber',//
type: '3',
"subjectId": 44,
},
167: {
prop: 'drawPassword',
type: '3',
"subjectId": 17,
},
168: {
prop: 'monthDeposit',//
type: '3',
"subjectId": 31,
},
170: {
prop: 'extendDepositTarget',//
type: '1',
"subjectId": 37,
},
},
submited: 0
}
},
mounted () {
},
methods: {
...mapMutations({
changeShowGoods: 'system/changeShowGoods',
setDataFlow: 'system/setDataFlow',
setNeedsModule: 'system/setNeedsModule',
setPopId: 'system/setPopId',
setTipsOperate: 'system/setTipsOperate'
}),
popUp1 (text) {
this.setTipsOperate('请刷身份证');
this.setPopId('713')
sessionStorage.setItem('computerPath', this.$route.fullPath)
this.$router.push('/counter/list/')
},
popUp2 (text) {
this.setTipsOperate('请刷银行卡');
this.setPopId('715')
sessionStorage.setItem('computerPath', this.$route.fullPath)
this.$router.push('/counter/list/')
},
popUp3 (text) {
this.setTipsOperate('请在密码器输入密码');
this.setPopId('720')
sessionStorage.setItem('computerPath', this.$route.fullPath)
this.$router.push('/counter/list/')
},
getFormData () {
const parentId = '285,' + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ',287,5,26,59,155'
const cards = {
// 1399: 'nomUsefulPhrasesOpenCard2',
// 166: 'nomUsefulPhrasesOpenCard',
// 167: 'nomUsefulPhrasesOpenPassword'
}
const callback = () => {
if (this.form.idNumber) {
this.idNumberJudge = true
}
if (this.form.voucherNumber) {
this.cardNumberJudge = true
}
if (sessionStorage.getItem('nomUsefulPhrasesOpenPassword')) {
this.form.drawPassword = sessionStorage.getItem('nomUsefulPhrasesOpenPassword')
}
}
autoPlay2(parentId, this.form, this.myTable2, this.myTable, cards, callback)
},
submitForm () {
if (this.submited) return this.$message.error('已提交!')
if (!this.form.idNumber) {
messageIdCard()
return
}
if (!this.form.voucherNumber) {
messageCard('请填写账号')
return
}
if (!this.form.drawPassword) {
messagePassword()
return
}
this.$refs.form.validate(myValidate(() => {
//
this.visible = true;
}, this.$refs));
},
submitForm2 () {
let projectId = sessionStorage.getItem('projectId')
let startTime = sessionStorage.getItem('startTime')
let formList = [];
const { form } = this
const preId = '285,' + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ',287,5,706,709'
formList.push(
{ answerId: 712, emptyOne: 19, emptyTwo: form.certificateType, operationIds: preId + ',712', type: 1 },
{ answerId: 713, emptyOne: '', emptyTwo: '', operationIds: preId + ',713', type: '' },
{ answerId: 715, emptyOne: 84, emptyTwo: form.voucherNumber, operationIds: preId + ',715', type: 3 },
{ answerId: 714, emptyOne: 7, emptyTwo: form.customerName, operationIds: preId + ',714', type: 3 },
{ answerId: 716, emptyOne: 111, emptyTwo: form.paymentUnit, operationIds: preId + ',716', type: 3 },
{ answerId: 717, emptyOne: 112, emptyTwo: form.houseId, operationIds: preId + ',717', type: 3 },
{ answerId: 718, emptyOne: 113, emptyTwo: form.paymentMoney, operationIds: preId + ',718', type: 3 },
{ answerId: 719, emptyOne: 114, emptyTwo: form.monthlyWithholding, operationIds: preId + ',719', type: 1 },
{ answerId: 720, emptyOne: 114, emptyTwo: form.drawPassword, operationIds: preId + ',720', type: 3 },
)
let params = {
parentId: preId,
lcJudgmentRuleReq: formList,
projectId: +projectId,
startTime: startTime,
}
addOperation(params).then((data) => {
this.setDataFlow({ ...this.form })
this.submited = 1
}).catch((error) => {
this.$message({
message: '服务器繁忙,提交失败。',
center: true,
type: 'info'
});
})
},
ismoney,
checkHanzi,
checkName,
inputListen,
},
computed: {
...mapGetters({
dataFlow: 'system/dataFlow',
needsModule: 'system/needsModule',
idCardNumber: 'system/idCardNumber',
inMyWork: 'system/inMyWork',
getSelectList: 'system/getSelectList'
})
}
}
</script>
<style lang='scss' scoped></style>

@ -162,7 +162,8 @@ export default {
type: '3', type: '3',
"subjectId": 83, "subjectId": 83,
} }
} },
submited: 0
} }
}, },
created() { created() {
@ -194,6 +195,7 @@ export default {
autoPlay2(parentId, this.form, this.myTable2, this.myTable) autoPlay2(parentId, this.form, this.myTable2, this.myTable)
}, },
submitForm() { submitForm() {
if (this.submited) return this.$message.error('已提交!')
this.$refs.form.validate(myValidate(() => { this.$refs.form.validate(myValidate(() => {
this.visible = true; this.visible = true;
}, this.$refs)); }, this.$refs));
@ -202,6 +204,7 @@ export default {
const parentId = '285,' + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ',287,5,27,225' const parentId = '285,' + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ',287,5,27,225'
autoPlay(parentId, this.form, this.myTable2, this.myTable) autoPlay(parentId, this.form, this.myTable2, this.myTable)
this.setNeedsModule(moduleName) this.setNeedsModule(moduleName)
this.submited = 1
}, },
ismoney: ismoney, ismoney: ismoney,
rateListen: rateListen, rateListen: rateListen,

@ -5,72 +5,150 @@
<!-- 开户 --> <!-- 开户 -->
<div class="body"> <div class="body">
<el-row :gutter="20" style="margin: 0"> <el-row :gutter="20"
<el-form ref="form" :model="form" label-width="120px" :rules="rules"> style="margin: 0">
<el-col :span="10" :offset="2"> <el-form ref="form"
<el-form-item label="客户号" prop="customerNumber"> :model="form"
<el-input :value="form.customerNumber" maxlength="20" disabled @input="(val) => checkHanzi(val, form, 'customerNumber')" ref="customerNumber"></el-input> label-width="120px"
:rules="rules">
<el-col :span="10"
:offset="2">
<el-form-item label="客户号"
prop="customerNumber">
<el-input :value="form.customerNumber"
maxlength="20"
disabled
@input="(val) => checkHanzi(val, form, 'customerNumber')"
ref="customerNumber"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="账户类型" prop="accountType"> <el-form-item label="账户类型"
<el-select v-model.trim="form.accountType" placeholder="请选择" ref="accountType"> prop="accountType">
<el-option v-for="item in getSelectList.accountTypeSelectList" :label="item.options" :value="item.itemId" :key="item.itemId"> </el-option> <el-select v-model.trim="form.accountType"
placeholder="请选择"
ref="accountType">
<el-option v-for="item in getSelectList.accountTypeSelectList"
:label="item.options"
:value="item.itemId"
:key="item.itemId"> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="账户科目" prop="accountManagement"> <el-form-item label="账户科目"
<el-select v-model.trim="form.accountManagement" placeholder="请选择" ref="accountManagement"> prop="accountManagement">
<el-option v-for="item in getSelectList.accountManagementList" :label="item.options" :value="item.itemId" :key="item.itemId"> </el-option> <el-select v-model.trim="form.accountManagement"
placeholder="请选择"
ref="accountManagement">
<el-option v-for="item in getSelectList.accountManagementList"
:label="item.options"
:value="item.itemId"
:key="item.itemId"> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="钞汇标识" prop="goldLogo"> <el-form-item label="钞汇标识"
<el-select v-model.trim="form.goldLogo" placeholder="请选择" ref="goldLogo"> prop="goldLogo">
<el-option v-for="item in getSelectList.goldLogoSelectList" :label="item.options" :value="item.itemId" :key="item.itemId"> </el-option> <el-select v-model.trim="form.goldLogo"
placeholder="请选择"
ref="goldLogo">
<el-option v-for="item in getSelectList.goldLogoSelectList"
:label="item.options"
:value="item.itemId"
:key="item.itemId"> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="出账页标志" prop="outAccountWay"> <el-form-item label="出账页标志"
<el-select v-model.trim="form.outAccountWay" placeholder="请选择" ref="outAccountWay"> prop="outAccountWay">
<el-option v-for="item in getSelectList.outAccountWayList" :label="item.options" :value="item.itemId" :key="item.itemId"> </el-option> <el-select v-model.trim="form.outAccountWay"
placeholder="请选择"
ref="outAccountWay">
<el-option v-for="item in getSelectList.outAccountWayList"
:label="item.options"
:value="item.itemId"
:key="item.itemId"> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="统计代码" prop="clientNumber"> <el-form-item label="统计代码"
<el-input :value="form.clientNumber" @input="(val) => checkHanzi(val, form, 'clientNumber')" ref="clientNumber"></el-input> prop="clientNumber">
<el-input :value="form.clientNumber"
@input="(val) => checkHanzi(val, form, 'clientNumber')"
ref="clientNumber"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="外汇证号" prop="foreignCurrencyCertificate"> <el-form-item label="外汇证号"
<el-input :value="form.foreignCurrencyCertificate" @input="(val) => checkHanzi(val, form, 'foreignCurrencyCertificate')" ref="foreignCurrencyCertificate"></el-input> prop="foreignCurrencyCertificate">
<el-input :value="form.foreignCurrencyCertificate"
@input="(val) => checkHanzi(val, form, 'foreignCurrencyCertificate')"
ref="foreignCurrencyCertificate"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="10" :offset="1"> <el-col :span="10"
<el-form-item label="客户姓名" prop="customerName"> :offset="1">
<el-input :value="form.customerName" disabled @input="(val) => checkName(val, form, 'customerName')" ref="customerName"></el-input> <el-form-item label="客户姓名"
prop="customerName">
<el-input :value="form.customerName"
disabled
@input="(val) => checkName(val, form, 'customerName')"
ref="customerName"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="账户性质" prop="accountQuality"> <el-form-item label="账户性质"
<el-select v-model.trim="form.accountQuality" placeholder="请选择" ref="accountQuality"> prop="accountQuality">
<el-option v-for="item in getSelectList.accountQualitySelectList" :label="item.options" :value="item.itemId" :key="item.itemId"> </el-option> <el-select v-model.trim="form.accountQuality"
placeholder="请选择"
ref="accountQuality">
<el-option v-for="item in getSelectList.accountQualitySelectList"
:label="item.options"
:value="item.itemId"
:key="item.itemId"> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="币种" prop="currency"> <el-form-item label="币种"
<el-select v-model.trim="form.currency" placeholder="请选择" ref="currency"> prop="currency">
<el-option v-for="item in getSelectList.currencySelectList" :label="item.options" :value="item.itemId" :key="item.itemId"> </el-option> <el-select v-model.trim="form.currency"
placeholder="请选择"
ref="currency">
<el-option v-for="item in getSelectList.currencySelectList"
:label="item.options"
:value="item.itemId"
:key="item.itemId"> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="计息方式" prop="calculateWay"> <el-form-item label="计息方式"
<el-select v-model.trim="form.calculateWay" placeholder="请选择" ref="calculateWay"> prop="calculateWay">
<el-option v-for="item in getSelectList.calculateWayList" :label="item.options" :value="item.itemId" :key="item.itemId"> </el-option> <el-select v-model.trim="form.calculateWay"
placeholder="请选择"
ref="calculateWay">
<el-option v-for="item in getSelectList.calculateWayList"
:label="item.options"
:value="item.itemId"
:key="item.itemId"> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="支取方式" prop="drawWay"> <el-form-item label="支取方式"
<el-select v-model.trim="form.drawWay" placeholder="请选择" ref="drawWay"> prop="drawWay">
<el-option label="印鉴" :value="114"> </el-option> <el-select v-model.trim="form.drawWay"
placeholder="请选择"
ref="drawWay">
<el-option label="印签"
:value="114"> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="外汇核准号" prop="foreignCurrencyBumber"> <el-form-item label="外汇核准号"
<el-input :value="form.foreignCurrencyBumber" @input="(val) => checkName(val, form, 'foreignCurrencyBumber')" ref="foreignCurrencyBumber"></el-input> prop="foreignCurrencyBumber">
<el-input :value="form.foreignCurrencyBumber"
@input="(val) => checkName(val, form, 'foreignCurrencyBumber')"
ref="foreignCurrencyBumber"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-form> </el-form>
</el-row> </el-row>
<el-button @click="submitForm" type="primary" class="submitBtn" v-throttle>提交</el-button> <el-button @click="submitForm"
<my-dialog :moduleName="moduleName" v-if="visible" :visible.sync="visible" :showForm="form" :formName="formName" @submitIt="submitForm2" /> type="primary"
class="submitBtn"
v-throttle>提交</el-button>
<my-dialog :moduleName="moduleName"
v-if="visible"
:visible.sync="visible"
:showForm="form"
:formName="formName"
@submitIt="submitForm2" />
</div> </div>
</div> </div>
@ -276,7 +354,8 @@ export default {
type: '1', type: '1',
"subjectId": 13, "subjectId": 13,
} }
} },
submited: 0
} }
}, },
mixins: [TipsBefore], mixins: [TipsBefore],
@ -307,6 +386,7 @@ export default {
submitForm () { submitForm () {
// let projectId = sessionStorage.getItem('projectId') // let projectId = sessionStorage.getItem('projectId')
// let startTime = sessionStorage.getItem('startTime') // let startTime = sessionStorage.getItem('startTime')
if (this.submited) return this.$message.error('已提交!')
if (!this.form.customerName) { if (!this.form.customerName) {
this.setTipsOperate('请先完成 客户信息 -> 公司客户信息建立'); this.setTipsOperate('请先完成 客户信息 -> 公司客户信息建立');
return; return;
@ -320,6 +400,7 @@ export default {
const parentId = '285,' + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ',287,5,27,224' const parentId = '285,' + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ',287,5,27,224'
autoPlay(parentId, this.form, this.myTable2, this.myTable) autoPlay(parentId, this.form, this.myTable2, this.myTable)
this.setNeedsModule(moduleName) this.setNeedsModule(moduleName)
this.submited = 1
}, },
checkHanzi: checkHanzi, checkHanzi: checkHanzi,
checkName: checkName checkName: checkName

@ -8,27 +8,26 @@
<el-form ref="form" :model="form" label-width="120px" :rules="rules"> <el-form ref="form" :model="form" label-width="120px" :rules="rules">
<el-col :span="10" :offset="2"> <el-col :span="10" :offset="2">
<el-form-item label="转出账号" prop="transoutNum"> <el-form-item label="转出账号" prop="transoutNum">
<el-input :value="form.transoutNum" @blur="getBlurData" maxlength="20" @input="(val) => checkHanzi(val, form, 'transoutNum')" ref="transoutNum"></el-input> <el-input :value="form.transoutNum" @blur="getBlurData" maxlength="20"
@input="(val) => checkHanzi(val, form, 'transoutNum')" ref="transoutNum"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="凭证号码" prop="certificateNum"> <el-form-item label="凭证号码" prop="certificateNum">
<el-input :value="form.certificateNum" maxlength="20" @input="(val) => checkHanzi(val, form, 'certificateNum')" ref="certificateNum"></el-input> <el-input :value="form.certificateNum" maxlength="20"
@input="(val) => checkHanzi(val, form, 'certificateNum')" ref="certificateNum"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="签发日期" prop="signDate"> <el-form-item label="签发日期" prop="signDate">
<el-date-picker <el-date-picker v-model.trim="form.signDate" disabled type="date" placeholder="选择日期" ref="signDate">
v-model.trim="form.signDate"
disabled
type="date"
placeholder="选择日期"
ref="signDate">
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
<el-form-item label="钞汇标识" prop="currencyMark"> <el-form-item label="钞汇标识" prop="currencyMark">
<el-select v-model.trim="form.currencyMark" disabled placeholder="请选择" ref="currencyMark"> <el-select v-model.trim="form.currencyMark" disabled placeholder="请选择" ref="currencyMark">
<el-option v-for="item in getSelectList.goldLogoSelectList" :label="item.options" :value="item.itemId" :key="item.itemId"> </el-option> <el-option v-for="item in getSelectList.goldLogoSelectList" :label="item.options" :value="item.itemId"
:key="item.itemId"> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="转入账号" prop="transinNum"> <el-form-item label="转入账号" prop="transinNum">
<el-input :value="form.transinNum" maxlength="20" @input="(val) => checkHanzi(val, form, 'transinNum')" ref="transinNum"></el-input> <el-input :value="form.transinNum" maxlength="20" @input="(val) => checkHanzi(val, form, 'transinNum')"
ref="transinNum"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="金额" prop="money"> <el-form-item label="金额" prop="money">
<el-input :value="form.money" maxlength="15" @input="val => ismoney(val, form, 'money')"></el-input> <el-input :value="form.money" maxlength="15" @input="val => ismoney(val, form, 'money')"></el-input>
@ -37,7 +36,8 @@
</el-col> </el-col>
<el-col :span="10" :offset="1"> <el-col :span="10" :offset="1">
<el-form-item label="客户姓名" prop="customerName"> <el-form-item label="客户姓名" prop="customerName">
<el-input :value="form.customerName" maxlength="20" @input="(val) => checkName(val, form, 'customerName')" ref="customerName"></el-input> <el-input :value="form.customerName" maxlength="20" @input="(val) => checkName(val, form, 'customerName')"
ref="customerName"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="凭证类型" prop="certificateType"> <el-form-item label="凭证类型" prop="certificateType">
<el-select v-model.trim="form.certificateType" placeholder="请选择" ref="certificateType"> <el-select v-model.trim="form.certificateType" placeholder="请选择" ref="certificateType">
@ -47,7 +47,8 @@
</el-form-item> </el-form-item>
<el-form-item label="币种" prop="currencyType"> <el-form-item label="币种" prop="currencyType">
<el-select v-model.trim="form.currencyType" disabled placeholder="请选择" ref="currencyType"> <el-select v-model.trim="form.currencyType" disabled placeholder="请选择" ref="currencyType">
<el-option v-for="item in getSelectList.currencySelectList" :label="item.options" :value="item.itemId" :key="item.itemId"> </el-option> <el-option v-for="item in getSelectList.currencySelectList" :label="item.options" :value="item.itemId"
:key="item.itemId"> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="支取方式" prop="payWay"> <el-form-item label="支取方式" prop="payWay">
@ -56,7 +57,8 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="转入户名" prop="transinName"> <el-form-item label="转入户名" prop="transinName">
<el-input :value="form.transinName" maxlength="40" @input="(val) => checkHanzi(val, form, 'transinName')"></el-input> <el-input :value="form.transinName" maxlength="40"
@input="(val) => checkName(val, form, 'transinName')"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="摘要" prop="abstract"> <el-form-item label="摘要" prop="abstract">
<el-input v-model.trim="form.abstract" maxlength="60"></el-input> <el-input v-model.trim="form.abstract" maxlength="60"></el-input>
@ -65,7 +67,8 @@
</el-form> </el-form>
</el-row> </el-row>
<el-button @click="submitForm" type="primary" class="submitBtn" v-throttle>提交</el-button> <el-button @click="submitForm" type="primary" class="submitBtn" v-throttle>提交</el-button>
<my-dialog :moduleName="moduleName" v-if="visible" :visible.sync="visible" :showForm="form" :formName="formName" @submitIt="submitForm2" :needAuth="needAuth" /> <my-dialog :moduleName="moduleName" v-if="visible" :visible.sync="visible" :showForm="form" :formName="formName"
@submitIt="submitForm2" :needAuth="needAuth" />
</div> </div>
</div> </div>
<!-- <need-before v-else :moduleName='needBefore' :unNeed="unNeed" class="wrap" /> --> <!-- <need-before v-else :moduleName='needBefore' :unNeed="unNeed" class="wrap" /> -->
@ -235,7 +238,8 @@ export default {
type: '1', type: '1',
"subjectId": 13, "subjectId": 13,
} }
} },
submited: 0
} }
}, },
created () { created () {
@ -281,6 +285,7 @@ export default {
autoPlay2(parentId, this.form, this.myTable2, this.myTable) autoPlay2(parentId, this.form, this.myTable2, this.myTable)
}, },
submitForm () { submitForm () {
if (this.submited) return this.$message.error('已提交!')
this.$refs.form.validate(myValidate(() => { this.$refs.form.validate(myValidate(() => {
this.visible = true; this.visible = true;
}, this.$refs)); }, this.$refs));
@ -290,6 +295,7 @@ export default {
autoPlay(parentId, this.form, this.myTable2, this.myTable) autoPlay(parentId, this.form, this.myTable2, this.myTable)
console.log("🚀 ~ file: transfer.vue ~ line 291 ~ submitForm2 ~ parentId, this.form, this.myTable2, this.myTable", parentId, this.form, this.myTable2, this.myTable) console.log("🚀 ~ file: transfer.vue ~ line 291 ~ submitForm2 ~ parentId, this.form, this.myTable2, this.myTable", parentId, this.form, this.myTable2, this.myTable)
this.setNeedsModule(moduleName) this.setNeedsModule(moduleName)
this.submited = 1
}, },
ismoney: ismoney, ismoney: ismoney,
checkHanzi: checkHanzi, checkHanzi: checkHanzi,
@ -317,6 +323,7 @@ export default {
flex-direction: column; flex-direction: column;
overflow: auto; overflow: auto;
padding: 24px 0 24px 24px; padding: 24px 0 24px 24px;
.body { .body {
margin-top: 50px; margin-top: 50px;
overflow-y: auto; overflow-y: auto;

@ -206,7 +206,8 @@ export default {
type: '3', type: '3',
"subjectId": 16, "subjectId": 16,
} }
} },
submited: 0
} }
}, },
@ -237,6 +238,7 @@ export default {
autoPlay2(parentId, this.form, this.myTable2, this.myTable) autoPlay2(parentId, this.form, this.myTable2, this.myTable)
}, },
submitForm() { submitForm() {
if (this.submited) return this.$message.error('已提交!')
this.$refs.form.validate(myValidate(() => { this.$refs.form.validate(myValidate(() => {
// //
this.visible = true; this.visible = true;
@ -248,6 +250,7 @@ export default {
const parentId = '285,' + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ',287,5,27,226' const parentId = '285,' + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ',287,5,27,226'
autoPlay(parentId, this.form, this.myTable2, this.myTable) autoPlay(parentId, this.form, this.myTable2, this.myTable)
this.setNeedsModule(moduleName) this.setNeedsModule(moduleName)
this.submited = 1
}, },
ismoney: ismoney, ismoney: ismoney,
checkName: checkName, checkName: checkName,

@ -285,6 +285,7 @@ export default {
"subjectId": '66', "subjectId": '66',
} }
}, },
submited: 0
} }
}, },
created() { created() {
@ -308,6 +309,7 @@ export default {
}, },
methods: { methods: {
submitForm() { submitForm() {
if (this.submited) return this.$message.error('已提交!')
this.$refs.form.validate(myValidate(() => { this.$refs.form.validate(myValidate(() => {
// //
this.visible = true this.visible = true
@ -316,6 +318,7 @@ export default {
submitForm2() { submitForm2() {
const parentId = '285,' + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ',287,5,29,345,359' const parentId = '285,' + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ',287,5,29,345,359'
autoPlay(parentId, this.form, this.myTable2, this.myTable) autoPlay(parentId, this.form, this.myTable2, this.myTable)
this.submited = 1
}, },
getFocus() { getFocus() {
if(!this.form.shroffAccountNumber) { if(!this.form.shroffAccountNumber) {

@ -5,75 +5,129 @@
<!-- 存款 --> <!-- 存款 -->
<div class="body"> <div class="body">
<el-row :gutter="20" style="margin: 0"> <el-row :gutter="20"
<el-form ref="form" :model="form" label-width="150px" :rules="rules"> style="margin: 0">
<el-col :span="10" :offset="1"> <el-form ref="form"
<el-form-item label="本行收款账号" prop="shroffAccountNumber"> :model="form"
<el-input @blur="getBlur" :value="form.shroffAccountNumber" @input="val => checkHanzi(val, form, 'shroffAccountNumber')" ref="shroffAccountNumber"></el-input> label-width="150px"
:rules="rules">
<el-col :span="10"
:offset="1">
<el-form-item label="本行收款账号"
prop="shroffAccountNumber">
<el-input @blur="getBlur"
:value="form.shroffAccountNumber"
@input="val => checkHanzi(val, form, 'shroffAccountNumber')"
ref="shroffAccountNumber"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="币种" prop="currency"> <el-form-item label="币种"
<el-select v-model.trim="form.currency" placeholder="请选择" ref="currency"> prop="currency">
<el-option v-for="item in getSelectList.currencySelectList" :label="item.options" :value="item.itemId" :key="item.itemId"> </el-option> <el-select v-model.trim="form.currency"
placeholder="请选择"
ref="currency">
<el-option v-for="item in getSelectList.currencySelectList"
:label="item.options"
:value="item.itemId"
:key="item.itemId"> </el-option>
<!-- <el-option label="CNY人民币" value="12"></el-option> --> <!-- <el-option label="CNY人民币" value="12"></el-option> -->
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="提出场次" prop="proposeTime"> <el-form-item label="提出场次"
<el-input :value="form.proposeTime" @input="val => inputListen(val, form, 'proposeTime')" ref="proposeTime"></el-input> prop="proposeTime">
<el-input :value="form.proposeTime"
@input="val => inputListen(val, form, 'proposeTime')"
ref="proposeTime"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="他行收款账号" prop="otherAccountNumber"> <el-form-item label="他行收款账号"
<el-input :value="form.otherAccountNumber" @input="val => checkHanzi(val, form, 'otherAccountNumber')" ref="otherAccountNumber"></el-input> prop="otherAccountNumber">
<el-input :value="form.otherAccountNumber"
@input="val => checkHanzi(val, form, 'otherAccountNumber')"
ref="otherAccountNumber"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="票据类型" prop="billType"> <el-form-item label="票据类型"
<el-select v-model.trim="form.billType" placeholder="请选择" ref="billType"> prop="billType">
<el-option v-for="item in getSelectList.billTypeSelect" :label="item.options" :key="item.itemId" :value="item.itemId" ></el-option> <el-select v-model.trim="form.billType"
placeholder="请选择"
ref="billType">
<el-option v-for="item in getSelectList.billTypeSelect"
:label="item.options"
:key="item.itemId"
:value="item.itemId"></el-option>
<!-- <el-option :label="119" :key="item.itemId" :value="item.itemId" ></el-option> --> <!-- <el-option :label="119" :key="item.itemId" :value="item.itemId" ></el-option> -->
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="出票日期" prop="drawBillDate"> <el-form-item label="出票日期"
prop="drawBillDate">
<el-date-picker <el-date-picker v-model.trim="form.drawBillDate"
v-model.trim="form.drawBillDate"
type="date" type="date"
placeholder="选择日期" placeholder="选择日期"
ref="drawBillDate" ref="drawBillDate"
format="yyyy-MM-dd" format="yyyy-MM-dd"
value-format="yyyy-MM-dd" value-format="yyyy-MM-dd">
>
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="10" :offset="1"> <el-col :span="10"
<el-form-item label="本行收款户名" prop="shroffAccountUsername"> :offset="1">
<el-input @focus="getFocus" disabled :value="form.shroffAccountUsername" @input="val => checkName(val, form, 'shroffAccountUsername')" ref="shroffAccountUsername"></el-input> <el-form-item label="本行收款户名"
prop="shroffAccountUsername">
<el-input @focus="getFocus"
disabled
:value="form.shroffAccountUsername"
@input="val => checkName(val, form, 'shroffAccountUsername')"
ref="shroffAccountUsername"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="金额" prop="money"> <el-form-item label="金额"
<el-input :value="form.money" @input="val => ismoney(val, form, 'money')" ref="money"></el-input> prop="money">
<el-input :value="form.money"
@input="val => ismoney(val, form, 'money')"
ref="money"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="提出日期" prop="proposeDate"> <el-form-item label="提出日期"
prop="proposeDate">
<!-- <el-date-picker <!-- <el-date-picker
v-model.trim="form.proposeDate" v-model.trim="form.proposeDate"
type="date" type="date"
placeholder="选择日期" placeholder="选择日期"
ref="proposeDate"> ref="proposeDate">
</el-date-picker> --> </el-date-picker> -->
<el-input :value="form.proposeDate" disabled ref="proposeDate"></el-input> <el-input :value="form.proposeDate"
disabled
ref="proposeDate"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="他行收款户名" prop="otherAccountUsername"> <el-form-item label="他行收款户名"
<el-input :value="form.otherAccountUsername" @input="val => checkName(val, form, 'otherAccountUsername')" ref="otherAccountUsername"></el-input> prop="otherAccountUsername">
<el-input :value="form.otherAccountUsername"
@input="val => checkName(val, form, 'otherAccountUsername')"
ref="otherAccountUsername"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="凭证号码" prop="voucherNumber"> <el-form-item label="凭证号码"
<el-input :value="form.voucherNumber" @input="val => checkHanzi(val, form, 'voucherNumber')" ref="voucherNumber"></el-input> prop="voucherNumber">
<el-input :value="form.voucherNumber"
@input="val => checkHanzi(val, form, 'voucherNumber')"
ref="voucherNumber"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="摘要" prop="abstract"> <el-form-item label="摘要"
<el-input v-model.trim="form.abstract" ref="abstract"></el-input> prop="abstract">
<el-input v-model.trim="form.abstract"
ref="abstract"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-form> </el-form>
</el-row> </el-row>
<el-button @click="submitForm" type="primary" class="submitBtn" v-throttle>提交</el-button> <el-button @click="submitForm"
<my-dialog :moduleName="moduleName" v-if="visible" :visible.sync="visible" :showForm="form" :formName="formName" @submitIt="submitForm2" /> type="primary"
class="submitBtn"
v-throttle>提交</el-button>
<my-dialog :moduleName="moduleName"
v-if="visible"
:visible.sync="visible"
:showForm="form"
:formName="formName"
@submitIt="submitForm2" />
</div> </div>
</div> </div>
</template> </template>
@ -184,7 +238,7 @@ export default {
], ],
billType: [ billType: [
{ {
required: true, required: false,
message: '请选择票据类型', message: '请选择票据类型',
trigger: 'blur' trigger: 'blur'
} }
@ -283,7 +337,8 @@ export default {
"subjectId": '61', "subjectId": '61',
}, },
}, },
visible:false visible: false,
submited: 0
} }
}, },
created () { created () {
@ -308,6 +363,7 @@ export default {
}, },
methods: { methods: {
submitForm () { submitForm () {
if (this.submited) return this.$message.error('已提交!')
this.$refs.form.validate(myValidate(() => { this.$refs.form.validate(myValidate(() => {
// //
// const parentId = '285,' + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ',287,5,29,345,346' // const parentId = '285,' + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ',287,5,29,345,346'
@ -342,16 +398,10 @@ export default {
projectId: +projectId, projectId: +projectId,
startTime: startTime, startTime: startTime,
} }
// addOperation(params).then((data) => {
addOperation(params).then((data)=>{ // this.submited = 1
// this.$message({ // }).catch((error) => {
// message: '', // })
// type: 'success'
// });
// this.setNeedsModule(moduleName)
// this.setDataFlow({ ...this.form })
}).catch((error)=>{
})
}, },
getFocus () { getFocus () {
// console.log('test') // console.log('test')

@ -9,27 +9,22 @@
<el-col :span="10" :offset="1"> <el-col :span="10" :offset="1">
<el-form-item label="证件类型"> <el-form-item label="证件类型">
<el-select v-model.trim="form.idType" disabled placeholder="请选择" ref="idType"> <el-select v-model.trim="form.idType" disabled placeholder="请选择" ref="idType">
<el-option <el-option label="身份证" :value="83">
label="身份证"
:value="83">
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="客户姓名" prop="userName"> <el-form-item label="客户姓名" prop="userName">
<el-input ref="userName" disabled :value="form.userName" @input="(val) => checkName(val, form, 'userName')"></el-input> <el-input ref="userName" disabled :value="form.userName"
@input="(val) => checkName(val, form, 'userName')"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="出生日期" prop="birthday"> <el-form-item label="出生日期" prop="birthday">
<el-date-picker <el-date-picker disabled v-model.trim="form.birthday" type="date" placeholder="选择日期" format="yyyy-MM-dd"
disabled
v-model.trim="form.birthday"
type="date"
placeholder="选择日期"
format="yyyy-MM-dd"
value-format="yyyy-MM-dd"> value-format="yyyy-MM-dd">
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
<el-form-item label="通讯地址"> <el-form-item label="通讯地址">
<el-input :value="form.mailbox" @input="val => mailBoxListen(val, form, 'mailbox')" maxlength="30" ref="mailbox"></el-input> <el-input :value="form.mailbox" @input="val => mailBoxListen(val, form, 'mailbox')" maxlength="30"
ref="mailbox"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="10" :offset="1"> <el-col :span="10" :offset="1">
@ -50,22 +45,15 @@
:value="item.id" :value="item.id"
> >
</el-option> --> </el-option> -->
<el-option <el-option :key="1" label="男" :value="1">
:key="1"
label="男"
:value="1"
>
</el-option> </el-option>
<el-option <el-option :key="2" label="女" :value="2">
:key="2"
label="女"
:value="2"
>
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="联系电话" :rules="rules.phone" prop="phone"> <el-form-item label="联系电话" :rules="rules.phone" prop="phone">
<el-input :value="form.phone" @input="(val) => phoneListen(val, form, 'phone')" maxlength="12" ref='phone'></el-input> <el-input :value="form.phone" @input="(val) => phoneListen(val, form, 'phone')" maxlength="12"
ref='phone'></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -74,7 +62,8 @@
<el-button @click="submitForm" type="primary" class="submitBtn" v-throttle>提交</el-button> <el-button @click="submitForm" type="primary" class="submitBtn" v-throttle>提交</el-button>
</div> </div>
<my-dialog :moduleName="moduleName" v-if="visible" :visible.sync="visible" :showForm="form" :formName="formName" @submitIt="submitForm2()" /> <my-dialog :moduleName="moduleName" v-if="visible" :visible.sync="visible" :showForm="form" :formName="formName"
@submitIt="submitForm2()" />
</div> </div>
<!-- <need-before class='wrap' v-else :moduleName='needBefore' :unNeed="unNeed"> <!-- <need-before class='wrap' v-else :moduleName='needBefore' :unNeed="unNeed">
</need-before> --> </need-before> -->
@ -214,6 +203,7 @@ export default {
{ "itemId": 79, "description": " 基诺族", "options": " 基诺族", "subjectId": 3, "isDel": 0, "createTime": "2021-12-20 12:00:46", "updateTime": "2021-12-20 12:00:46" }, { "itemId": 79, "description": " 基诺族", "options": " 基诺族", "subjectId": 3, "isDel": 0, "createTime": "2021-12-20 12:00:46", "updateTime": "2021-12-20 12:00:46" },
{ "itemId": 80, "description": " 其他", "options": " 其他", "subjectId": 3, "isDel": 0, "createTime": "2021-12-20 12:00:46", "updateTime": "2021-12-20 12:00:46" } { "itemId": 80, "description": " 其他", "options": " 其他", "subjectId": 3, "isDel": 0, "createTime": "2021-12-20 12:00:46", "updateTime": "2021-12-20 12:00:46" }
], ],
submited: 0
} }
}, },
components: { components: {
@ -320,6 +310,7 @@ export default {
}, },
// //
submitForm () { submitForm () {
if (this.submited) return this.$message.error('已提交!')
let nomClientIdentity = sessionStorage.getItem('nomClientIdentity') let nomClientIdentity = sessionStorage.getItem('nomClientIdentity')
let consumerClientDragList = JSON.parse(nomClientIdentity); let consumerClientDragList = JSON.parse(nomClientIdentity);
let nomClientIdentitys = JSON.parse(nomClientIdentity); let nomClientIdentitys = JSON.parse(nomClientIdentity);
@ -389,6 +380,7 @@ export default {
// }); // });
this.setNeedsModule(moduleName) this.setNeedsModule(moduleName)
this.setDataFlow({ ...this.form }) this.setDataFlow({ ...this.form })
this.submited = 1
}).catch((error) => { }).catch((error) => {
this.setTipsOperate('服务器繁忙哦,提交失败。') this.setTipsOperate('服务器繁忙哦,提交失败。')
}) })
@ -432,11 +424,11 @@ export default {
flex-direction: column; flex-direction: column;
overflow: auto; overflow: auto;
padding: 24px 0 24px 24px; padding: 24px 0 24px 24px;
.body { .body {
margin-top: 50px; margin-top: 50px;
overflow-y: auto; overflow-y: auto;
overflow-x: hidden; overflow-x: hidden;
} }
} }
</style> </style>

@ -4,55 +4,103 @@
<MyTitle :titleArr="['客户信息', '公司客户信息建立']" /> <MyTitle :titleArr="['客户信息', '公司客户信息建立']" />
<div class="body"> <div class="body">
<el-row :gutter="20"> <el-row :gutter="20">
<el-form ref="form" :model="form" label-width="140px" :rules="rules"> <el-form ref="form"
<el-col :span="10" :offset="1"> :model="form"
label-width="140px"
:rules="rules">
<el-col :span="10"
:offset="1">
<el-form-item label="证件类型"> <el-form-item label="证件类型">
<el-select v-model.trim="form.idType" placeholder="请选择" ref="idType"> <el-select v-model.trim="form.idType"
<el-option label="统一社会信用代码证" :value="82"></el-option> placeholder="请选择"
ref="idType">
<el-option label="统一社会信用代码证"
:value="82"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="公司名称" prop="companyName"> <el-form-item label="公司名称"
<el-input v-model.trim="form.companyName" maxlength="40" @input="(val) => checkHanzi(val, form, 'companyName')" ref="companyName"></el-input> prop="companyName">
<el-input v-model.trim="form.companyName"
maxlength="40"
@input="(val) => checkHanzi(val, form, 'companyName')"
ref="companyName"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="注册资本" class="relative"> <el-form-item label="注册资本"
<el-input :value="form.registeredCapital" @input="val => ismoney(val, form, 'registeredCapital')" maxlength="15" ref="registeredCapital"></el-input> class="relative">
<span class="absolute" style="right: 10px;font-size: 16px;line-height: 40px; color: #606266;"></span> <el-input :value="form.registeredCapital"
@input="val => ismoney(val, form, 'registeredCapital')"
maxlength="15"
ref="registeredCapital"></el-input>
<span class="absolute"
style="right: 10px;font-size: 16px;line-height: 40px; color: #606266;"></span>
</el-form-item> </el-form-item>
<el-form-item label="法人证件号码" required> <el-form-item label="法人证件号码"
<div class="idCard" @click="popUp('身份证扫描仪')" v-if='!idNumberJudge'> required>
<div class="idCard"
@click="popUp('身份证扫描仪')"
v-if='!idNumberJudge'>
<p>请刷身份证</p> <p>请刷身份证</p>
</div> </div>
<div v-else> <div v-else>
<el-input :value="form.idNumber" disabled ref="idNumber"></el-input> <el-input :value="form.idNumber"
disabled
ref="idNumber"></el-input>
</div> </div>
</el-form-item> </el-form-item>
<el-form-item label="联系电话" :rules="rules.phone" prop="phone"> <el-form-item label="联系电话"
<el-input :value="form.phone" @input="(val) => phoneListen(val, form, 'phone')" maxlength="12" ref='phone'></el-input> :rules="rules.phone"
prop="phone">
<el-input :value="form.phone"
@input="(val) => phoneListen(val, form, 'phone')"
maxlength="12"
ref='phone'></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="10" :offset="1"> <el-col :span="10"
<el-form-item label="代码证号" prop="codeNumber"> :offset="1">
<el-input :value="form.codeNumber" @input="(val) => checkHanzi(val, form, 'codeNumber')" ref="codeNumber"></el-input> <el-form-item label="代码证号"
prop="codeNumber">
<el-input :value="form.codeNumber"
@input="(val) => checkHanzi(val, form, 'codeNumber')"
ref="codeNumber"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="公司地址"> <el-form-item label="公司地址">
<el-input v-model.trim="form.companyAddress" maxlength="60" ref="companyAddress"></el-input> <el-input v-model.trim="form.companyAddress"
maxlength="60"
ref="companyAddress"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="法人证件类型" prop="certificateType"> <el-form-item label="法人证件类型"
<el-select v-model.trim="form.certificateType" placeholder="请选择" ref="certificateType"> prop="certificateType">
<el-option label="身份证" :value="83"></el-option> <el-select v-model.trim="form.certificateType"
placeholder="请选择"
ref="certificateType">
<el-option label="身份证"
:value="132"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="法人姓名" prop="name"> <el-form-item label="法人姓名"
<el-input v-model.trim="form.name" disabled @input="(val) => checkName(val, form, 'name')" ref="name"></el-input> prop="name">
<el-input v-model.trim="form.name"
disabled
@input="(val) => checkName(val, form, 'name')"
ref="name"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-form> </el-form>
</el-row> </el-row>
<el-button @click="submitForm" type="primary" class="submitBtn" v-throttle>提交</el-button> <el-button @click="submitForm"
type="primary"
class="submitBtn"
v-throttle>提交</el-button>
</div> </div>
<my-dialog :moduleName="moduleName" v-if="visible" :visible.sync="visible" :showForm="form" :formName="formName" @submitIt="submitForm2" /> <my-dialog :moduleName="moduleName"
v-if="visible"
:visible.sync="visible"
:showForm="form"
:formName="formName"
@submitIt="submitForm2" />
</div> </div>
<!-- <need-before v-else :moduleName='needBefore' :unNeed="unNeed" class="wrap" /> --> <!-- <need-before v-else :moduleName='needBefore' :unNeed="unNeed" class="wrap" /> -->
@ -151,6 +199,7 @@ export default {
} }
] ]
}, },
submited: 0
} }
}, },
@ -240,6 +289,7 @@ export default {
}, },
submitForm () { submitForm () {
if (this.submited) return this.$message.error('已提交!')
if (!this.form.idNumber) { if (!this.form.idNumber) {
messageIdCard() messageIdCard()
return return
@ -300,6 +350,8 @@ export default {
// //
this.setDataFlow({ [moduleName]: true }) this.setDataFlow({ [moduleName]: true })
this.form.registeredCapital = this.form.registeredCapital.slice(0, this.form.registeredCapital.length - 1) this.form.registeredCapital = this.form.registeredCapital.slice(0, this.form.registeredCapital.length - 1)
this.submited = 1
this.setPopId('')
}).catch((error) => { }).catch((error) => {
this.setTipsOperate('服务器繁忙哦,提交失败。') this.setTipsOperate('服务器繁忙哦,提交失败。')
}) })

@ -0,0 +1,111 @@
<template>
<!-- 贷款申请 -->
<div class="wrap">
<my-title :titleArr="['公司贷款', '贷款申请']" />
<div class="flex j-between m-b-20">
<div style="width: 300px;">
<el-input v-model="keyword" placeholder="请输入客户姓名" clearable />
</div>
<el-button type="primary" @click="toDetail(0)">新建贷款申请</el-button>
</div>
<el-table :data="list" stripe :header-cell-style="headerCellStyle">
<el-table-column prop="customerName" label="客户姓名" align="center" />
<el-table-column prop="applicationNumber" label="申请编号" align="center" />
<el-table-column prop="createTime" label="申请日期" align="center" />
<el-table-column prop="loanApplicationAmount" label="申请金额" align="center">
<template slot-scope="scope">{{ scope.row.loanApplicationAmount || '-' }}</template>
</el-table-column>
<el-table-column prop="processingStatus" label="办理状态" align="center">
<template slot-scope="scope">{{ scope.row.processingStatus || '-' }}</template>
</el-table-column>
<el-table-column label="操作" align="center" width="150">
<template slot-scope="scope">
<el-button :disabled="!!scope.row.builtIn" @click="toDetail(scope.row)" size="small">{{
scope.row.loanApplicationAmount ? '查看' : '编辑'
}}</el-button>
</template>
</el-table-column>
</el-table>
<div class="pagination">
<el-pagination background layout="total, prev, pager, next" :current-page="page"
@current-change="handleCurrentChange" :total="total"></el-pagination>
</div>
</div>
</template>
<script>
import { headerCellStyle } from '@/assets/js/myConfig'
import { companyLoanList } from '@/api/http';
import MyTitle from '@/components/myTitle'
export default {
components: {
MyTitle,
},
data () {
return {
headerCellStyle,
searchTimer: null,
keyword: '',
list: [],
page: 1,
pageSize: 10,
total: 0,
}
},
watch: {
keyword: function (val) {
clearTimeout(this.searchTimer);
this.searchTimer = setTimeout(() => {
this.initData()
}, 500)
},
},
mounted () {
this.initData()
},
methods: {
async getData () {
const { data } = await companyLoanList({
...this.$store.getters['system/commonIds'],
pageNum: this.page,
pageSize: this.pageSize,
searchContent: this.keyword,
typeId: 1,
})
this.list = data.page.records
this.total = data.page.total
},
initData () {
this.page = 1
this.getData()
},
handleCurrentChange (val) {
this.page = val
this.getData()
},
//
toDetail (row) {
// id
this.$store.commit('system/setCreditIds', (row ? {
companyLoanId: row.companyLoanId, // tabid
} : {}))
this.$router.push(row.loanApplicationAmount ? `/counter/list/manage/corporateLoans-detail?id=${row.companyLoanId}` : '/counter/list/manage/corporateLoans-apply')
},
},
};
</script>
<style lang="scss" scoped>
@import '@/assets/css/tablebg.scss';
.wrap {
width: 100%;
max-height: calc(100vh - 118px);
padding: 24px;
overflow: auto;
}
</style>

@ -0,0 +1,480 @@
<!-- 信用评估 -->
<template>
<div>
<el-row :gutter="20" style="margin: 0">
<el-form ref="form" :model="form" label-width="140px">
<el-col :span="24">
<h6 class="l-title">申请人个人信息</h6>
</el-col>
<el-col :span="10" :offset="1">
<el-form-item label="账号">
<el-input v-model="form.applicationAccount" disabled />
</el-form-item>
<el-form-item label="证件号码">
<el-input v-model="form.identificationNumber" disabled />
</el-form-item>
<el-form-item label="抵押房产地址">
<el-input v-model="form.propertyAddress" disabled />
</el-form-item>
<el-form-item label="婚姻状况">
<el-radio-group v-model="form.maritalStatus" disabled>
<el-radio label="未婚"></el-radio>
<el-radio label="已婚"></el-radio>
<el-radio label="离异"></el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="在袋鼠互联网科技有限公司购买社保" label-width="280px">
<el-radio-group v-model="form.socialSecurity" disabled>
<el-radio label="是"></el-radio>
<el-radio label="否"></el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="10" :offset="1">
<el-form-item label="客户名称">
<el-input v-model="form.customerName" disabled />
</el-form-item>
<el-form-item label="联系电话">
<el-input v-model="form.contactPhoneNumber" disabled />
</el-form-item>
<el-form-item label="与袋鼠互联网科技有限公司合作年限" label-width="280px">
<el-input v-model="form.cooperationPeriod" @input="val => inputListen(val, form, 'cooperationPeriod')"
ref="cooperationPeriod">
<template slot="append"></template>
</el-input>
</el-form-item>
<el-form-item label="在袋鼠互联网科技有限公司签订劳动合同" label-width="300px">
<el-radio-group v-model="form.laborContract" disabled>
<el-radio label="是"></el-radio>
<el-radio label="否"></el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="住址情况">
<el-radio-group v-model="form.addressSituation" disabled>
<el-radio label="购置"></el-radio>
<el-radio label="按揭中"></el-radio>
<el-radio label="租住"></el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="24" style="margin-top: 20px">
<h6 class="l-title">还款来源</h6>
</el-col>
<el-col :span="24">
<el-form-item>
<div class="flex">
<span class="req">*</span>
<el-checkbox v-model="form.matureRepayment">自行筹款到期还款</el-checkbox>
<div class="inline-flex m-l-40">
<el-checkbox v-model="form.otherRepaymentsCheck">其他</el-checkbox>
<el-input v-if="form.otherRepaymentsCheck" v-model="form.otherRepayments" size="small" maxlength="50"
placeholder="请输入"></el-input>
</div>
</div>
</el-form-item>
</el-col>
<el-col :span="24" style="margin-top: 20px">
<h6 class="l-title">用途</h6>
</el-col>
<el-col :span="24">
<el-form-item>
<div class="flex">
<span class="req">*</span>
<el-checkbox v-model="form.paymentForMaterials">支付材料款</el-checkbox>
<el-checkbox v-model="form.payLaborCosts">支付人工费</el-checkbox>
<el-checkbox v-model="form.payExpenses">支付研发费</el-checkbox>
<div class="inline-flex m-l-40">
<el-checkbox v-model="form.otherUseCheck">其他</el-checkbox>
<el-input v-if="form.otherUseCheck" v-model="form.otherUses" size="small" maxlength="50"
placeholder="请输入"></el-input>
</div>
</div>
</el-form-item>
</el-col>
<el-col :span="24" style="margin-top: 20px">
<h6 class="l-title">申请人特别说明选填</h6>
</el-col>
<el-col :span="24">
<el-input v-model="form.specialInstructions" type="textarea" maxlength="500" placeholder="请输入申请诉求"></el-input>
</el-col>
<el-col :span="24" style="margin-top: 20px">
<h6 class="l-title">附件 请上传</h6>
</el-col>
<el-col :span="24">
<div class="files">
<div class="item">
<el-button :type="creditImportIds.corporateIdCard ? '' : 'primary'" size="small" plain
@click="importSth('corporateIdCard')">上传</el-button>
<p class="text">
法人身份证
<span v-if="creditImportIds.corporateIdCard" class="text-danger">(已导入)</span>
</p>
</div>
<div class="item">
<el-button :type="creditImportIds.mortgagePropertyCertificate ? '' : 'primary'" size="small" plain
@click="importSth('mortgagePropertyCertificate')">上传</el-button>
<p class="text">
抵押物房产证
<span v-if="creditImportIds.mortgagePropertyCertificate" class="text-danger">(已导入)</span>
</p>
</div>
<div class="item">
<el-button :type="creditImportIds.proofOfMaritalStatus ? '' : 'primary'" size="small" plain
@click="importSth('proofOfMaritalStatus')">上传</el-button>
<p class="text">
实际控制人婚姻情况证明/离婚证
<span v-if="creditImportIds.proofOfMaritalStatus" class="text-danger">(已导入)</span>
</p>
</div>
<div class="item">
<el-button :type="creditImportIds.copyOfSpouseSIdCard ? '' : 'primary'" size="small" plain
@click="importSth('copyOfSpouseSIdCard')">上传</el-button>
<p class="text">
实际控制人配偶身份证复印件
<span v-if="creditImportIds.copyOfSpouseSIdCard" class="text-danger">(已导入)</span>
</p>
</div>
<div class="item">
<el-button :type="creditImportIds.originalBusinessLicense ? '' : 'primary'" size="small" plain
@click="importSth('originalBusinessLicense')">上传</el-button>
<p class="text">
营业执照正本
<span v-if="creditImportIds.originalBusinessLicense" class="text-danger">(已导入)</span>
</p>
</div>
<div class="item">
<el-button :type="creditImportIds.accountOpeningPermit ? '' : 'primary'" size="small" plain
@click="importSth('accountOpeningPermit')">上传</el-button>
<p class="text">
开户许可证基本存款账户信息
<span v-if="creditImportIds.accountOpeningPermit" class="text-danger">(已导入)</span>
</p>
</div>
<div class="item">
<el-button :type="creditImportIds.leaseContract ? '' : 'primary'" size="small" plain
@click="importSth('leaseContract')">上传</el-button>
<p class="text">
企业注册地址租赁合同或对应房产证
<span v-if="creditImportIds.leaseContract" class="text-danger">(已导入)</span>
</p>
</div>
<div class="item">
<el-button :type="creditImportIds.companyArticlesOfAssociation ? '' : 'primary'" size="small" plain
@click="importSth('companyArticlesOfAssociation')">上传</el-button>
<p class="text">
公司章程
<span v-if="creditImportIds.companyArticlesOfAssociation" class="text-danger">(已导入)</span>
</p>
</div>
<div class="item">
<el-button :type="creditImportIds.shareholderDocuments ? '' : 'primary'" size="small" plain
@click="importSth('shareholderDocuments')">上传</el-button>
<p class="text">
公司股东证件复印件
<span v-if="creditImportIds.shareholderDocuments" class="text-danger">(已导入)</span>
</p>
</div>
<div class="item">
<el-button :type="creditImportIds.financialSeal ? '' : 'primary'" size="small" plain
@click="importSth('financialSeal')">上传</el-button>
<p class="text">
公章私章财务章
<span v-if="creditImportIds.financialSeal" class="text-danger">(已导入)</span>
</p>
</div>
<div class="item">
<el-button :type="creditImportIds.oneYearTaxPaymentCertificate ? '' : 'primary'" size="small" plain
@click="importSth('oneYearTaxPaymentCertificate')">上传</el-button>
<p class="text">
公司近一年纳税证明
<span v-if="creditImportIds.oneYearTaxPaymentCertificate" class="text-danger">(已导入)</span>
</p>
</div>
<div class="item">
<el-button :type="creditImportIds.halfYearRevenue ? '' : 'primary'" size="small" plain
@click="importSth('halfYearRevenue')">上传</el-button>
<p class="text">
公司近半年流水
<span v-if="creditImportIds.halfYearRevenue" class="text-danger">(已导入)</span>
</p>
</div>
<div class="item">
<el-button :type="creditImportIds.corporateFinancialStatements ? '' : 'primary'" size="small" plain
@click="importSth('corporateFinancialStatements')">上传</el-button>
<p class="text">
企业财务报表
<span v-if="creditImportIds.corporateFinancialStatements" class="text-danger">(已导入)</span>
</p>
</div>
<div class="item">
<el-button :type="creditImportIds.loanApplicationForm ? '' : 'primary'" size="small" plain
@click="importSth('loanApplicationForm')">上传</el-button>
<p class="text">
贷款申请书
<span v-if="creditImportIds.loanApplicationForm" class="text-danger">(已导入)</span>
</p>
</div>
<div class="item">
<el-button :type="creditImportIds.creditAuthorizationLetter ? '' : 'primary'" size="small" plain
@click="importSth('creditAuthorizationLetter')">上传</el-button>
<p class="text">
征信授权书
<span v-if="creditImportIds.creditAuthorizationLetter" class="text-danger">(已导入)</span>
</p>
</div>
</div>
</el-col>
</el-form>
</el-row>
<div class="m-t-30 text-center">
<el-button @click="beforeSubmit" type="primary" class="submitBtn" v-throttle>提交</el-button>
</div>
<el-dialog :visible="visible" append-to-body style="z-index: 6000;" :close-on-click-modal="true" :show-close="false"
custom-class="dia">
<div class="data-dia23">
<div slot="title" class="dia-header">
<div class="data-title">提示</div>
</div>
<div class="popBody">
<p class="text-lg" style="color: #333">请进行授信审核</p>
</div>
<div class="popBtns">
<el-button class="close btn hover:bg-blue-100 " @click="visible = false"> </el-button>
<el-button class="sure btn hover:bg-blue-700 " type="primary" @click="submit"> </el-button>
</div>
</div>
</el-dialog>
<el-dialog :visible="successVisible" append-to-body style="z-index: 6000;" :close-on-click-modal="false"
:show-close="false" custom-class="dia">
<div class="data-dia23">
<div slot="title" class="dia-header">
<div class="data-title">提示</div>
</div>
<div class="popBody" style="flex-direction: column;">
<p class="text-lg" style="margin-bottom: 10px;color: #333">授信完成</p>
<p class="text-lg" style="color: #333">可进行贷款申请</p>
</div>
<div class="popBtns">
<el-button class="sure btn hover:bg-blue-700 " type="primary" @click="toStep3"> </el-button>
</div>
</div>
</el-dialog>
</div>
</template>
<script>
import { inputListen } from '@/utils/utilFunction.js'
import { creditApplicationDetails, addOperation, creditApplicationInput } from '@/api/http'
import { mapState, mapMutations } from 'vuex'
export default {
data () {
return {
form: {
applicationAccount: '6227007200580926',
customerName: '丛小凤',
identificationNumber: '220602199202281229',
contactPhoneNumber: '15890317718',
propertyAddress: '广东省深圳市南山区前海一号2020室',
cooperationPeriod: '6',
maritalStatus: '未婚',
laborContract: '是',
socialSecurity: '是',
addressSituation: '购置',
matureRepayment: false,
otherRepaymentsCheck: false,
otherRepayments: '',
paymentForMaterials: false,
payLaborCosts: false,
payExpenses: false,
otherUseCheck: false,
otherUses: '',
specialInstructions: '',
},
opt1: [
{
id: 203,
name: '有'
},
{
id: 204,
name: '无'
},
],
opt2: [
{
id: 205,
name: '优'
},
{
id: 206,
name: '良'
},
{
id: 207,
name: '不良'
},
],
visible: false,
successVisible: false,
}
},
computed: {
...mapState('system', ['creditImportIds', 'creditIds']),
},
mounted () {
this.getDetail()
},
methods: {
...mapMutations('system', ['setCreditImportIndex', 'initCreditImportIds']),
inputListen,
//
async getDetail () {
const id = this.creditIds.companyLoanId
let r
if (id) {
const res = await creditApplicationDetails({
companyLoanId: id
})
r = res.data.bankCreditApplication || {}
if (r.creditId) {
this.form.creditId = r.creditId
this.form.cooperationPeriod = r.cooperationPeriod
this.form.matureRepayment = r.matureRepayment === 'true'
this.form.otherRepaymentsCheck = !!r.otherRepayments
this.form.otherRepayments = r.otherRepayments
this.form.paymentForMaterials = r.paymentForMaterials === 'true'
this.form.payLaborCosts = r.payLaborCosts === 'true'
this.form.payExpenses = r.payExpenses === 'true'
this.form.otherUseCheck = !!r.otherUses
this.form.otherUses = r.otherUses
this.form.specialInstructions = r.specialInstructions
}
}
//
this.initCreditImportIds({
corporateIdCard: r.corporateIdCard || '',
mortgagePropertyCertificate: r.mortgagePropertyCertificate || '',
proofOfMaritalStatus: r.proofOfMaritalStatus || '',
copyOfSpouseSIdCard: r.copyOfSpouseSIdCard || '',
originalBusinessLicense: r.originalBusinessLicense || '',
accountOpeningPermit: r.accountOpeningPermit || '',
leaseContract: r.leaseContract || '',
companyArticlesOfAssociation: r.companyArticlesOfAssociation || '',
shareholderDocuments: r.shareholderDocuments || '',
financialSeal: r.financialSeal || '',
oneYearTaxPaymentCertificate: r.oneYearTaxPaymentCertificate || '',
halfYearRevenue: r.halfYearRevenue || '',
corporateFinancialStatements: r.corporateFinancialStatements || '',
loanApplicationForm: r.loanApplicationForm || '',
creditAuthorizationLetter: r.creditAuthorizationLetter || '',
})
},
//
importSth (i) {
this.setCreditImportIndex(i)
this.$parent.$parent.$parent.showData('导入报表', 12)
},
async beforeSubmit () {
const { form } = this
if (!form.matureRepayment && !form.otherRepaymentsCheck) return this.$message.error('请选择还款来源!')
if (form.otherRepaymentsCheck && !form.otherRepayments) return this.$message.error('请输入其他的还款来源!')
if (!form.paymentForMaterials && !form.payLaborCosts && !form.payExpenses && !form.otherUseCheck) return this.$message.error('请选择贷款用途!')
if (form.otherUseCheck && !form.otherUses) return this.$message.error('请输入其他的用途!')
this.visible = true
},
async submit () {
try {
const { form } = this
//
await creditApplicationInput({
...this.$store.state.system.creditIds,
...this.$store.state.system.creditImportIds,
...form,
})
const preId = '285,' + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ',766,768'
const rule = []
form.cooperationPeriod && rule.push({ answerId: 875, emptyOne: 149, emptyTwo: form.cooperationPeriod, operationIds: preId + ',875', type: 3 })
form.matureRepayment && rule.push({ answerId: 798, emptyOne: 147, emptyTwo: 269, operationIds: preId + ',798', type: 1 })
form.otherRepayments && rule.push({ answerId: 798, emptyOne: 147, emptyTwo: 270, operationIds: preId + ',798', type: 1 })
form.paymentForMaterials && rule.push({ answerId: 833, emptyOne: 148, emptyTwo: 271, operationIds: preId + ',833', type: 1 })
form.payLaborCosts && rule.push({ answerId: 833, emptyOne: 148, emptyTwo: 272, operationIds: preId + ',833', type: 1 })
form.payExpenses && rule.push({ answerId: 833, emptyOne: 148, emptyTwo: 273, operationIds: preId + ',833', type: 1 })
form.otherUses && rule.push({ answerId: 833, emptyOne: 148, emptyTwo: 274, operationIds: preId + ',833', type: 1 })
form.specialInstructions && rule.push({ answerId: 802, emptyOne: 125, emptyTwo: form.specialInstructions, operationIds: preId + ',802', type: 3 })
//
const files = this.creditImportIds
files.corporateIdCard && rule.push({ answerId: 804, emptyOne: 146, emptyTwo: files.corporateIdCard, operationIds: preId + ',803,804', type: 1 })
files.mortgagePropertyCertificate && rule.push({ answerId: 805, emptyOne: 146, emptyTwo: files.mortgagePropertyCertificate, operationIds: preId + ',803,805', type: 1 })
files.proofOfMaritalStatus && rule.push({ answerId: 806, emptyOne: 146, emptyTwo: files.proofOfMaritalStatus, operationIds: preId + ',803,806', type: 1 })
files.copyOfSpouseSIdCard && rule.push({ answerId: 807, emptyOne: 146, emptyTwo: files.copyOfSpouseSIdCard, operationIds: preId + ',803,807', type: 1 })
files.originalBusinessLicense && rule.push({ answerId: 808, emptyOne: 146, emptyTwo: files.originalBusinessLicense, operationIds: preId + ',803,808', type: 1 })
files.accountOpeningPermit && rule.push({ answerId: 809, emptyOne: 146, emptyTwo: files.accountOpeningPermit, operationIds: preId + ',803,809', type: 1 })
files.leaseContract && rule.push({ answerId: 810, emptyOne: 146, emptyTwo: files.leaseContract, operationIds: preId + ',803,810', type: 1 })
files.companyArticlesOfAssociation && rule.push({ answerId: 811, emptyOne: 146, emptyTwo: files.companyArticlesOfAssociation, operationIds: preId + ',803,811', type: 1 })
files.shareholderDocuments && rule.push({ answerId: 812, emptyOne: 146, emptyTwo: files.shareholderDocuments, operationIds: preId + ',803,812', type: 1 })
files.financialSeal && rule.push({ answerId: 813, emptyOne: 146, emptyTwo: files.financialSeal, operationIds: preId + ',803,813', type: 1 })
files.oneYearTaxPaymentCertificate && rule.push({ answerId: 814, emptyOne: 146, emptyTwo: files.oneYearTaxPaymentCertificate, operationIds: preId + ',803,814', type: 1 })
files.halfYearRevenue && rule.push({ answerId: 815, emptyOne: 146, emptyTwo: files.halfYearRevenue, operationIds: preId + ',803,815', type: 1 })
files.corporateFinancialStatements && rule.push({ answerId: 817, emptyOne: 146, emptyTwo: files.corporateFinancialStatements, operationIds: preId + ',803,817', type: 1 })
files.loanApplicationForm && rule.push({ answerId: 818, emptyOne: 146, emptyTwo: files.loanApplicationForm, operationIds: preId + ',803,818', type: 1 })
files.creditAuthorizationLetter && rule.push({ answerId: 819, emptyOne: 146, emptyTwo: files.creditAuthorizationLetter, operationIds: preId + ',803,819', type: 1 })
await addOperation({
parentId: preId,
lcJudgmentRuleReq: rule,
projectId: +sessionStorage.getItem('projectId'),
startTime: sessionStorage.getItem('startTime')
})
this.successVisible = true
} catch { (e) => { } }
},
//
toStep3 () {
this.$parent.active = '3'
this.$parent.curStep = 0
this.$parent.tab3Disabled = false
},
},
}
</script>
<style lang='scss' scoped>
@import '@/styles/dialog.scss';
.l-title {
margin-bottom: 15px;
font-size: 18px;
font-weight: 600;
}
.files {
.item {
display: flex;
align-items: center;
margin-bottom: 20px;
}
.text {
margin-left: 10px;
font-size: 14px;
color: #818181;
}
}
</style>

@ -0,0 +1,253 @@
<!-- 信用评估 -->
<template>
<div>
<el-row :gutter="20" style="margin: 0">
<el-form ref="form" :model="form" label-width="140px" :rules="rules">
<el-col :span="24">
<h6 class="l-title">客户信息</h6>
</el-col>
<el-col :span="10" :offset="1">
<el-form-item label="账号" prop="applicationAccount">
<el-input v-model="form.applicationAccount" @input="val => inputListen(val, form, 'applicationAccount')"
@blur="accountBlur" />
</el-form-item>
<el-form-item label="证件类型" prop="identificationType">
<el-select v-model.trim="form.identificationType" placeholder="请选择" disabled>
<el-option label="统一社会信用代码证" :value="82"></el-option>
</el-select>
</el-form-item>
<el-form-item label="联系电话" prop="contactPhoneNumber">
<el-input v-model="form.contactPhoneNumber" />
</el-form-item>
<el-form-item label="法人姓名" prop="corporateName">
<el-input v-model="form.corporateName" />
</el-form-item>
<el-form-item label="币种" prop="currency">
<el-select v-model.trim="form.currency" placeholder="请选择" disabled>
<el-option label='CNY人民币' :value="12"></el-option>
</el-select>
</el-form-item>
<el-form-item label="利率(%)" prop="interestRate">
<el-input v-model="form.interestRate" disabled />
</el-form-item>
<el-form-item label="支取方式" prop="withdrawalMethod">
<el-select v-model.trim="form.withdrawalMethod" placeholder="请选择" disabled>
<el-option label="印鉴" :value="114"> </el-option>
</el-select>
</el-form-item>
<el-form-item label="成立年份" prop="yearOfEstablishment">
<el-input v-model="form.yearOfEstablishment" />
</el-form-item>
<el-form-item label="主营范围" prop="mainBusinessScope">
<el-input v-model="form.mainBusinessScope" />
</el-form-item>
<el-form-item label="财报提交方式" prop="financialReportSubmissionMethod">
<el-input v-model="form.financialReportSubmissionMethod" />
</el-form-item>
</el-col>
<el-col :span="10" :offset="1">
<el-form-item label="客户名称" prop="customerName">
<el-input v-model="form.customerName" />
</el-form-item>
<el-form-item label="代码证号" prop="identificationNumber">
<el-input v-model="form.identificationNumber" />
</el-form-item>
<el-form-item label="注册地址" prop="companyRegisteredAddress">
<el-input v-model="form.companyRegisteredAddress" />
</el-form-item>
<el-form-item label="法人证件号码" prop="corporateIdNumber">
<el-input v-model="form.corporateIdNumber" />
</el-form-item>
<el-form-item label="账户类型" prop="accountType">
<el-select v-model.trim="form.accountType" placeholder="请选择" disabled>
<el-option label="结算户" :value="97"> </el-option>
</el-select>
</el-form-item>
<el-form-item label="计息方式" prop="interestCalculationMethod">
<el-select v-model.trim="form.interestCalculationMethod" placeholder="请选择" disabled>
<el-option label="按年计息" :value="83"> </el-option>
</el-select>
</el-form-item>
<el-form-item label="员工人数" prop="numberOfEmployees">
<el-input v-model="form.numberOfEmployees" />
</el-form-item>
<el-form-item label="注册类型" prop="registrationType">
<el-input v-model="form.registrationType" />
</el-form-item>
<el-form-item label="营业执照到期日" prop="expirationDateOfBusinessLicense">
<el-date-picker v-model="form.expirationDateOfBusinessLicense" type="date" placeholder="选择日期"
:picker-options="pickerOptions">
</el-date-picker>
</el-form-item>
<el-form-item label="借款人性质" prop="natureOfBorrower">
<el-input v-model="form.natureOfBorrower" />
</el-form-item>
</el-col>
</el-form>
</el-row>
<div class="text-center m-t-20">
<el-button @click="$router.back()" v-throttle>返回</el-button>
<el-button @click="next" type="primary" class="submitBtn" v-throttle>下一步</el-button>
</div>
</div>
</template>
<script>
import { inputListen } from '@/utils/utilFunction.js'
import { creditEvaluationDetails, addOperation, creditEvaluationInput } from '@/api/http'
import { mapMutations, mapState } from 'vuex'
export default {
data () {
return {
id: this.$route.query.id,
form: {
applicationAccount: '',
customerName: '',
identificationType: '',
identificationNumber: '',
contactPhoneNumber: '',
companyRegisteredAddress: '',
corporateName: '',
corporateIdNumber: '',
contactPhoneNumber: '',
currency: 12,
accountType: 97,
interestRate: 3.2,
interestCalculationMethod: 83,
withdrawalMethod: 114,
numberOfEmployees: '',
yearOfEstablishment: '',
registrationType: '',
mainBusinessScope: '',
expirationDateOfBusinessLicense: '2050-01-01',
financialReportSubmissionMethod: '',
natureOfBorrower: '',
},
rules: {
applicationAccount: [
{
required: true,
message: '请输入账号',
trigger: 'blur'
}
],
},
pickerOptions: {
disabledDate (v) {
return v.getTime() < new Date().getTime() - 86400000
},
},
submited: 0
}
},
computed: {
...mapState('system', ['creditIds']),
},
mounted () {
this.getDetail()
},
methods: {
...mapMutations({
changeShowGoods: 'system/changeShowGoods',
setDataFlow: 'system/setDataFlow',
setNeedsModule: 'system/setNeedsModule',
setPopId: 'system/setPopId',
setTipsOperate: 'system/setTipsOperate',
setCreditIds: 'system/setCreditIds',
setCreditImportIds: 'system/setCreditImportIds',
}),
//
async getDetail () {
const id = this.creditIds.companyLoanId
if (id) {
const res = await creditEvaluationDetails({
companyLoanId: id
})
const r = res.data.bankCreditEvaluation
r.identificationType = +r.identificationType
r.currency = 12
r.accountType = 97
r.interestRate = 3.2
r.interestCalculationMethod = 83
r.withdrawalMethod = 114
this.form = r
}
},
// blur
accountBlur () {
if (this.form.applicationAccount === 12802851701099) {
this.form.customerName = '袋鼠互联网科技有限公司'
this.form.identificationType = 82
this.form.identificationNumber = '913403005685450862'
this.form.contactPhoneNumber = '15890317718'
this.form.companyRegisteredAddress = '广东省深圳市南山区前海一号2020室'
this.form.corporateName = '丛小凤'
this.form.corporateIdNumber = '220602199202281229'
this.form.numberOfEmployees = 50
this.form.yearOfEstablishment = '2018-02-19'
this.form.registrationType = '有限公司'
this.form.mainBusinessScope = '信息技术'
this.form.expirationDateOfBusinessLicense = '2050-01-01'
this.form.financialReportSubmissionMethod = '半年'
this.form.natureOfBorrower = '企业法人'
}
},
//
async next () {
const { form } = this
if (!form.applicationAccount) return this.$message.error('请填写账号!')
try {
const { data } = await creditEvaluationInput({
...this.$store.getters['system/commonIds'],
...form,
})
const preId = '285,' + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ',766,768'
const rule = [{ answerId: 769, emptyOne: 125, emptyTwo: form.applicationAccount, operationIds: preId + ',769', type: 3 }]
form.customerName && rule.push({ answerId: 880, emptyOne: 153, emptyTwo: form.customerName, operationIds: preId + ',880', type: 3 })
form.identificationNumber && rule.push({ answerId: 881, emptyOne: 153, emptyTwo: form.identificationNumber, operationIds: preId + ',881', type: 3 })
form.contactPhoneNumber && rule.push({ answerId: 882, emptyOne: 153, emptyTwo: form.contactPhoneNumber, operationIds: preId + ',882', type: 3 })
form.companyRegisteredAddress && rule.push({ answerId: 883, emptyOne: 153, emptyTwo: form.companyRegisteredAddress, operationIds: preId + ',883', type: 3 })
form.corporateName && rule.push({ answerId: 884, emptyOne: 153, emptyTwo: form.corporateName, operationIds: preId + ',884', type: 3 })
form.corporateIdNumber && rule.push({ answerId: 885, emptyOne: 153, emptyTwo: form.corporateIdNumber, operationIds: preId + ',885', type: 3 })
form.numberOfEmployees && rule.push({ answerId: 886, emptyOne: 153, emptyTwo: form.numberOfEmployees, operationIds: preId + ',886', type: 3 })
form.yearOfEstablishment && rule.push({ answerId: 887, emptyOne: 153, emptyTwo: form.yearOfEstablishment, operationIds: preId + ',887', type: 3 })
form.registrationType && rule.push({ answerId: 888, emptyOne: 153, emptyTwo: form.registrationType, operationIds: preId + ',888', type: 3 })
form.mainBusinessScope && rule.push({ answerId: 889, emptyOne: 153, emptyTwo: form.mainBusinessScope, operationIds: preId + ',889', type: 3 })
form.expirationDateOfBusinessLicense && rule.push({ answerId: 890, emptyOne: 153, emptyTwo: form.expirationDateOfBusinessLicense, operationIds: preId + ',890', type: 3 })
form.financialReportSubmissionMethod && rule.push({ answerId: 891, emptyOne: 153, emptyTwo: form.financialReportSubmissionMethod, operationIds: preId + ',891', type: 3 })
form.natureOfBorrower && rule.push({ answerId: 892, emptyOne: 153, emptyTwo: form.natureOfBorrower, operationIds: preId + ',892', type: 3 })
await addOperation({
parentId: preId,
lcJudgmentRuleReq: rule,
projectId: +sessionStorage.getItem('projectId'),
startTime: sessionStorage.getItem('startTime')
})
this.setCreditImportIds()
// id
this.setCreditIds({
companyLoanId: data.companyLoanId, // tabid
creditEvaluationId: data.creditEvaluationId, // id
})
this.$emit('updateStep', 1)
} catch { (e) => { } }
},
inputListen,
}
}
</script>
<style lang='scss' scoped>
.l-title {
margin-bottom: 15px;
font-size: 18px;
font-weight: 600;
}
.line {
margin: 20px 0;
border-bottom: 1px dashed #d7d7d7;
}
</style>

@ -0,0 +1,139 @@
<!-- 导入报表 -->
<template>
<div>
<div class="upload-wrap">
<div>
<el-button :type="creditImportIds.importBalanceSheet ? '' : 'primary'"
@click="importSth('importBalanceSheet')">点击导入资产负债表</el-button>
<p v-if="creditImportIds.importBalanceSheet" class="already">已导入</p>
</div>
<img class="icon" src="@/assets/img/arrow-right.png" alt="">
<div>
<el-button :type="creditImportIds.importIncomeStatement ? '' : 'primary'"
@click="importSth('importIncomeStatement')">点击导入损益表</el-button>
<p v-if="creditImportIds.importIncomeStatement" class="already">已导入</p>
</div>
<img class="icon" src="@/assets/img/arrow-right.png" alt="">
<div>
<el-button :type="creditImportIds.importCashFlowStatement ? '' : 'primary'"
@click="importSth('importCashFlowStatement')">点击导入现金流量表</el-button>
<p v-if="creditImportIds.importCashFlowStatement" class="already">已导入</p>
</div>
</div>
<div class="text-center m-t-20">
<el-button @click="prev" type="primary" class="submitBtn" v-throttle>上一步</el-button>
<el-button @click="next(2)" type="primary" class="submitBtn" v-throttle>下一步</el-button>
</div>
</div>
</template>
<script>
import { creditEvaluationDetails, addOperation, creditEvaluationInput } from '@/api/http'
import { mapMutations, mapState } from 'vuex'
export default {
computed: {
...mapState('system', ['creditImportIds', 'creditIds']),
},
data () {
return {
form: {},
originForm: {},
}
},
mounted () {
this.getDetail()
},
methods: {
...mapMutations('system', ['setCreditImportIndex', 'initCreditImportIds']),
//
async getDetail () {
// debugger
const id = this.creditIds.companyLoanId
if (id) {
const res = await creditEvaluationDetails({
companyLoanId: id
})
const r = res.data.bankCreditEvaluation
this.initCreditImportIds({
importBalanceSheet: r.importBalanceSheet || '',
importIncomeStatement: r.importIncomeStatement || '',
importCashFlowStatement: r.importCashFlowStatement || '',
})
}
this.originForm = JSON.stringify(this.creditImportIds)
},
//
importSth (i) {
this.setCreditImportIndex(i)
this.$parent.$parent.$parent.showData('导入报表', 12)
},
//
async prev () {
if (this.originForm !== JSON.stringify(this.creditImportIds)) {
try {
await this.$confirm(`编辑的内容未保存,是否保存并继续上一步?`, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
closeOnClickModal: false,
})
this.next(0)
} catch (e) { }
} else {
this.$emit('updateStep', 0)
}
},
async next (step) {
const form = this.creditImportIds
if (step) {
if (!form.importBalanceSheet) return this.$message.error('请导入资产负债表!')
if (!form.importIncomeStatement) return this.$message.error('请导入损益表!')
if (!form.importCashFlowStatement) return this.$message.error('请导入现金流量表!')
}
try {
await creditEvaluationInput({
...this.creditIds,
...form
})
const preId = '285,' + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ',766,768,876'
await addOperation({
parentId: preId,
lcJudgmentRuleReq: [
{ answerId: 877, emptyOne: 150, emptyTwo: form.importBalanceSheet, operationIds: preId + ',877', type: 1 },
{ answerId: 878, emptyOne: 150, emptyTwo: form.importIncomeStatement, operationIds: preId + ',878', type: 1 },
{ answerId: 879, emptyOne: 150, emptyTwo: form.importCashFlowStatement, operationIds: preId + ',879', type: 1 },
],
projectId: +sessionStorage.getItem('projectId'),
startTime: sessionStorage.getItem('startTime')
})
this.$emit('updateStep', step)
} catch { (e) => { } }
},
},
}
</script>
<style lang='scss' scoped>
.upload-wrap {
display: flex;
justify-content: center;
align-items: center;
min-height: 300px;
.already {
margin-top: 8px;
font-size: 14px;
text-align: center;
color: #606060;
}
.icon {
margin: 0 40px;
}
}
</style>

@ -0,0 +1,294 @@
<!-- 贷前调查 -->
<template>
<div>
<el-row :gutter="20" style="margin: 0">
<el-form ref="form" :model="form" label-width="200px" :rules="rules">
<el-col :span="24">
<h6 class="l-title">贷前调查</h6>
</el-col>
<el-col :span="10">
<el-form-item label="调查日期" prop="surveyDate">
<el-date-picker v-model="form.surveyDate" ref="surveyDate" type="date" placeholder="请选择调查日期"
format="yyyy-MM-dd" value-format="yyyy-MM-dd"></el-date-picker>
</el-form-item>
<el-form-item label="贸易融资记录" prop="tradeFinancingRecords">
<el-select v-model="form.tradeFinancingRecords" placeholder="请选择" ref="tradeFinancingRecords"
style="width: 100%">
<el-option v-for="(item, i) in opt1" :key="i" :label="item.name" :value="item.id"> </el-option>
</el-select>
</el-form-item>
<el-form-item label="三年内较大经营投资失误" prop="businessInvestmentErrors">
<el-select v-model="form.businessInvestmentErrors" placeholder="请选择" ref="businessInvestmentErrors"
style="width: 100%">
<el-option v-for="(item, i) in opt1" :key="i" :label="item.name" :value="item.id"> </el-option>
</el-select>
</el-form-item>
<el-form-item label="企业与客户管理分析" prop="enterpriseCustomerAnalysis">
<el-select v-model="form.enterpriseCustomerAnalysis" placeholder="请选择" ref="enterpriseCustomerAnalysis"
style="width: 100%">
<el-option v-for="(item, i) in opt2" :key="i" :label="item.name" :value="item.id"> </el-option>
</el-select>
</el-form-item>
<el-form-item label="重大事故赔偿" prop="compensationMajorAccidents">
<el-select v-model="form.compensationMajorAccidents" placeholder="请选择" ref="compensationMajorAccidents"
style="width: 100%">
<el-option v-for="(item, i) in opt1" :key="i" :label="item.name" :value="item.id"> </el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="10" :offset="1">
<el-form-item label="对外不利担保" prop="externalUnfavorableGuarantee">
<el-select v-model="form.externalUnfavorableGuarantee" placeholder="请选择" ref="externalUnfavorableGuarantee"
style="width: 100%">
<el-option v-for="(item, i) in opt1" :key="i" :label="item.name" :value="item.id"> </el-option>
</el-select>
</el-form-item>
<el-form-item label="经营状况" prop="businessStatus">
<el-select v-model="form.businessStatus" placeholder="请选择" ref="businessStatus" style="width: 100%">
<el-option v-for="(item, i) in opt2" :key="i" :label="item.name" :value="item.id"> </el-option>
</el-select>
</el-form-item>
<el-form-item label="坏账准备金提取" prop="badDebtReserves">
<el-select v-model="form.badDebtReserves" placeholder="请选择" ref="badDebtReserves" style="width: 100%">
<el-option v-for="(item, i) in opt1" :key="i" :label="item.name" :value="item.id"> </el-option>
</el-select>
</el-form-item>
<el-form-item label="重大法律诉讼" prop="majorLegalLitigation">
<el-select v-model="form.majorLegalLitigation" placeholder="请选择" ref="majorLegalLitigation"
style="width: 100%">
<el-option v-for="(item, i) in opt1" :key="i" :label="item.name" :value="item.id"> </el-option>
</el-select>
</el-form-item>
<el-form-item label="贷款风险情况" prop="loanRiskSituation">
<el-select v-model="form.loanRiskSituation" placeholder="请选择" ref="loanRiskSituation" style="width: 100%">
<el-option v-for="(item, i) in opt1" :key="i" :label="item.name" :value="item.id"> </el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="其他风险情况" prop="preLoanOtherRiskSituations">
<el-input v-model="form.preLoanOtherRiskSituations" type="textarea" maxlength="100"></el-input>
</el-form-item>
</el-col>
</el-form>
</el-row>
<div class="text-center m-t-20">
<el-button @click="prev" type="primary" class="submitBtn" v-throttle>上一步</el-button>
<el-button @click="next(3)" type="primary" class="submitBtn" v-throttle>下一步</el-button>
</div>
</div>
</template>
<script>
import { myValidate } from '@/utils/utilFunction.js';
import { creditEvaluationDetails, addOperation, creditEvaluationInput } from '@/api/http'
import { mapState } from 'vuex'
export default {
data () {
return {
opt1: [
{
id: 203,
name: '有'
},
{
id: 204,
name: '无'
},
],
opt2: [
{
id: 205,
name: '优'
},
{
id: 206,
name: '良'
},
{
id: 207,
name: '不良'
},
],
form: {
surveyDate: '',
externalUnfavorableGuarantee: 204,
tradeFinancingRecords: 204,
businessStatus: 205,
businessInvestmentErrors: 204,
badDebtReserves: 204,
enterpriseCustomerAnalysis: 205,
majorLegalLitigation: 204,
compensationMajorAccidents: 204,
loanRiskSituation: 204,
preLoanOtherRiskSituations: '',
},
originForm: {},
rules: {
surveyDate: [
{
required: true,
message: '请选择调查日期',
trigger: 'change'
}
],
externalUnfavorableGuarantee: [
{
required: true,
message: '请选择对外不利担保',
trigger: 'change'
}
],
tradeFinancingRecords: [
{
required: true,
message: '请选择贸易融资记录',
trigger: 'change'
}
],
businessStatus: [
{
required: true,
message: '请选择经营状况',
trigger: 'change'
}
],
businessInvestmentErrors: [
{
required: true,
message: '请选择三年内较大经营投资失误',
trigger: 'change'
}
],
badDebtReserves: [
{
required: true,
message: '请选择坏账准备金提取',
trigger: 'change'
}
],
enterpriseCustomerAnalysis: [
{
required: true,
message: '请选择企业与客户管理分析',
trigger: 'change'
}
],
majorLegalLitigation: [
{
required: true,
message: '请选择重大法律诉讼',
trigger: 'change'
}
],
compensationMajorAccidents: [
{
required: true,
message: '请选择重大事故赔偿',
trigger: 'change'
}
],
loanRiskSituation: [
{
required: true,
message: '请选择贷款风险情况',
trigger: 'change'
}
],
},
submited: 0
}
},
computed: {
...mapState('system', ['creditIds']),
},
mounted () {
this.getDetail()
},
methods: {
//
async getDetail () {
const id = this.creditIds.companyLoanId
if (id) {
const res = await creditEvaluationDetails({
companyLoanId: id
})
const r = res.data.bankCreditEvaluation
r.externalUnfavorableGuarantee = +r.externalUnfavorableGuarantee || 204
r.tradeFinancingRecords = +r.tradeFinancingRecords || 204
r.businessStatus = +r.businessStatus || 205
r.businessInvestmentErrors = +r.businessInvestmentErrors || 204
r.badDebtReserves = +r.badDebtReserves || 204
r.enterpriseCustomerAnalysis = +r.enterpriseCustomerAnalysis || 205
r.majorLegalLitigation = +r.majorLegalLitigation || 204
r.compensationMajorAccidents = +r.compensationMajorAccidents || 204
r.loanRiskSituation = +r.loanRiskSituation || 204
this.form = r
}
this.originForm = JSON.stringify(this.form)
},
//
async prev () {
debugger
if (this.originForm !== JSON.stringify(this.form)) {
try {
await this.$confirm(`编辑的内容未保存,是否保存并继续上一步?`, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
closeOnClickModal: false,
})
this.next(1)
} catch (e) { }
} else {
this.$emit('updateStep', 1)
}
},
async next (step) {
this.$refs.form.validate(myValidate(async () => {
try {
const { form } = this
await creditEvaluationInput({
...this.creditIds,
...form,
})
const preId = '285,' + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ',766,768'
const rule = [
{ answerId: 773, emptyOne: 125, emptyTwo: form.surveyDate, operationIds: preId + ',773', type: 3 },
{ answerId: 774, emptyOne: 126, emptyTwo: form.externalUnfavorableGuarantee, operationIds: preId + ',774', type: 1 },
{ answerId: 775, emptyOne: 126, emptyTwo: form.tradeFinancingRecords, operationIds: preId + ',775', type: 1 },
{ answerId: 776, emptyOne: 127, emptyTwo: form.businessStatus, operationIds: preId + ',776', type: 1 },
{ answerId: 777, emptyOne: 126, emptyTwo: form.businessInvestmentErrors, operationIds: preId + ',777', type: 1 },
{ answerId: 778, emptyOne: 126, emptyTwo: form.badDebtReserves, operationIds: preId + ',778', type: 1 },
{ answerId: 779, emptyOne: 127, emptyTwo: form.enterpriseCustomerAnalysis, operationIds: preId + ',779', type: 1 },
{ answerId: 780, emptyOne: 126, emptyTwo: form.majorLegalLitigation, operationIds: preId + ',780', type: 1 },
{ answerId: 781, emptyOne: 126, emptyTwo: form.compensationMajorAccidents, operationIds: preId + ',781', type: 1 },
{ answerId: 782, emptyOne: 126, emptyTwo: form.loanRiskSituation, operationIds: preId + ',782', type: 1 },
]
form.preLoanOtherRiskSituations && rule.push({ answerId: 783, emptyOne: 125, emptyTwo: form.preLoanOtherRiskSituations, operationIds: preId + ',783', type: 3 },)
await addOperation({
parentId: preId,
lcJudgmentRuleReq: rule,
projectId: +sessionStorage.getItem('projectId'),
startTime: sessionStorage.getItem('startTime')
})
this.$emit('updateStep', step)
} catch { (e) => { } }
}, this.$refs))
},
},
}
</script>
<style lang='scss' scoped>
.l-title {
margin-bottom: 15px;
font-size: 18px;
font-weight: 600;
}
.line {
margin: 20px 0;
border-bottom: 1px dashed #d7d7d7;
}
</style>

@ -0,0 +1,314 @@
<!-- 等级评定 -->
<template>
<div>
<el-row :gutter="20" style="margin: 0">
<el-form ref="form" :model="form" label-width="160px" :rules="rules">
<el-col :span="24">
<h6 class="l-title">等级评定</h6>
</el-col>
<el-col :span="12">
<el-form-item label="盈利记录" required>
<el-select v-model="form.profitRecord" placeholder="请选择" style="width: 100%">
<el-option v-for="(item, i) in opt3" :key="i" :label="item.name" :value="item.id"> </el-option>
</el-select>
</el-form-item>
<el-form-item label="领导作风品行" required>
<el-select v-model="form.leadershipStyleAndConduct" placeholder="请选择" style="width: 100%">
<el-option v-for="(item, i) in opt2" :key="i" :label="item.name" :value="item.id"> </el-option>
</el-select>
</el-form-item>
<el-form-item label="领导经营管理" required>
<el-select v-model="form.leadershipManagement" placeholder="请选择" style="width: 100%">
<el-option v-for="(item, i) in opt2" :key="i" :label="item.name" :value="item.id"> </el-option>
</el-select>
</el-form-item>
<el-form-item label="企业发展前景" required>
<el-select v-model="form.enterpriseDevelopmentProspects" placeholder="请选择" style="width: 100%">
<el-option v-for="(item, i) in opt5" :key="i" :label="item.name" :value="item.id"> </el-option>
</el-select>
</el-form-item>
<el-form-item label="有无不良信用记录" required>
<el-select v-model="form.haveAnyBadCreditRecords" placeholder="请选择" style="width: 100%">
<el-option v-for="(item, i) in opt1" :key="i" :label="item.name" :value="item.id"> </el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="10" :offset="1">
<el-form-item label="领导应变开拓" required>
<el-select v-model="form.leadershipAdaptabilityAndDevelopment" placeholder="请选择" style="width: 100%">
<el-option v-for="(item, i) in opt2" :key="i" :label="item.name" :value="item.id"> </el-option>
</el-select>
</el-form-item>
<el-form-item label="领导才干教育" required>
<el-select v-model="form.leadershipEducation" placeholder="请选择" style="width: 100%">
<el-option v-for="(item, i) in opt1" :key="i" :label="item.name" :value="item.id"> </el-option>
</el-select>
</el-form-item>
<el-form-item label="企业开发能力" required>
<el-select v-model="form.enterpriseDevelopmentCapability" placeholder="请选择" style="width: 100%">
<el-option v-for="(item, i) in opt4" :key="i" :label="item.name" :value="item.id"> </el-option>
</el-select>
</el-form-item>
<el-form-item label="企业信誉" required>
<el-select v-model="form.corporateReputation" placeholder="请选择" style="width: 100%">
<el-option v-for="(item, i) in opt2" :key="i" :label="item.name" :value="item.id"> </el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="其他风险情况">
<el-input v-model="form.gradeEvaluationOtherRiskSituations" type="textarea" maxlength="100"></el-input>
</el-form-item>
</el-col>
</el-form>
</el-row>
<div class="text-center m-t-20">
<el-button @click="prev" type="primary" class="submitBtn" v-throttle>上一步</el-button>
<el-button @click="confirmSubmit" type="primary" class="submitBtn" v-throttle>提交</el-button>
</div>
<el-dialog :visible="submitVisible" append-to-body :close-on-click-modal="true" :show-close="false"
custom-class="dia">
<div class="data-dia23">
<div slot="title" class="dia-header">
<div class="data-title">提示</div>
</div>
<div class="popBody" style="flex-direction: column;">
<p class="text-lg" style="color: #333">评估完成</p>
<p class="text-lg" style="color: #333">信用评级为AAAA可进行授信申请</p>
</div>
<div class="popBtns">
<el-button class="sure btn hover:bg-blue-700 " type="primary" @click="submit(0)"> </el-button>
</div>
</div>
</el-dialog>
</div>
</template>
<script>
import { creditEvaluationDetails, addOperation, creditEvaluationInput } from '@/api/http'
import { mapState } from 'vuex'
export default {
data () {
return {
opt1: [
{
id: 203,
name: '有'
},
{
id: 204,
name: '无'
},
],
opt2: [
{
id: 205,
name: '优'
},
{
id: 206,
name: '良'
},
{
id: 207,
name: '不良'
},
],
opt3: [
{
id: 208,
name: '本年盈利'
},
{
id: 209,
name: '连续两年盈利'
},
{
id: 210,
name: '连续三年盈利'
},
{
id: 211,
name: '连续五年盈利'
},
{
id: 212,
name: '本年亏损'
},
{
id: 213,
name: '连续两年亏损'
},
{
id: 214,
name: '连续三年亏损'
},
{
id: 215,
name: '连续五年亏损'
},
],
opt4: [
{
id: 216,
name: '业内优秀'
},
{
id: 217,
name: '业内平均水平'
},
{
id: 218,
name: '业内平均水平以下'
},
],
opt5: [
{
id: 219,
name: '很有发展潜力'
},
{
id: 220,
name: '待考察'
},
{
id: 221,
name: '前景一般'
},
{
id: 222,
name: '前景堪忧'
},
],
form: {
profitRecord: 208,
leadershipAdaptabilityAndDevelopment: 205,
leadershipStyleAndConduct: 205,
leadershipEducation: 203,
leadershipManagement: 205,
enterpriseDevelopmentCapability: 216,
enterpriseDevelopmentProspects: 219,
corporateReputation: 205,
haveAnyBadCreditRecords: 204,
gradeEvaluationOtherRiskSituations: '',
},
originForm: {},
rules: {
surveyDate: [
{
required: true,
message: '请选择调查日期',
trigger: 'change'
}
],
},
submitVisible: false,
submited: 0
}
},
computed: {
...mapState('system', ['creditIds']),
},
mounted () {
this.getDetail()
},
methods: {
//
async getDetail () {
const id = this.creditIds.companyLoanId
if (id) {
const res = await creditEvaluationDetails({
companyLoanId: id
})
const r = res.data.bankCreditEvaluation
r.profitRecord = +r.profitRecord || 208
r.leadershipAdaptabilityAndDevelopment = +r.leadershipAdaptabilityAndDevelopment || 205
r.leadershipStyleAndConduct = +r.leadershipStyleAndConduct || 205
r.leadershipEducation = +r.leadershipEducation || 203
r.leadershipManagement = +r.leadershipManagement || 205
r.enterpriseDevelopmentCapability = +r.enterpriseDevelopmentCapability || 216
r.enterpriseDevelopmentProspects = +r.enterpriseDevelopmentProspects || 219
r.corporateReputation = +r.corporateReputation || 205
r.haveAnyBadCreditRecords = +r.haveAnyBadCreditRecords || 204
this.form = r
this.originForm = JSON.stringify(this.form)
}
},
confirmSubmit () {
this.submitVisible = true
},
//
async prev () {
debugger
if (this.originForm !== JSON.stringify(this.form)) {
try {
await this.$confirm(`编辑的内容未保存,是否保存并继续上一步?`, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
closeOnClickModal: false,
})
this.submit(1)
} catch (e) { }
} else {
this.$emit('updateStep', 2)
}
},
async submit (prev) {
try {
const { form } = this
await creditEvaluationInput({
...this.creditIds,
...form,
})
const preId = '285,' + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ',766,768'
const rule = [
{ answerId: 784, emptyOne: 128, emptyTwo: form.profitRecord, operationIds: preId + ',784', type: 1 },
{ answerId: 785, emptyOne: 127, emptyTwo: form.leadershipAdaptabilityAndDevelopment, operationIds: preId + ',785', type: 1 },
{ answerId: 786, emptyOne: 127, emptyTwo: form.leadershipStyleAndConduct, operationIds: preId + ',786', type: 1 },
{ answerId: 787, emptyOne: 126, emptyTwo: form.leadershipEducation, operationIds: preId + ',787', type: 1 },
{ answerId: 788, emptyOne: 127, emptyTwo: form.leadershipManagement, operationIds: preId + ',788', type: 1 },
{ answerId: 789, emptyOne: 129, emptyTwo: form.enterpriseDevelopmentCapability, operationIds: preId + ',789', type: 1 },
{ answerId: 790, emptyOne: 130, emptyTwo: form.enterpriseDevelopmentProspects, operationIds: preId + ',790', type: 1 },
{ answerId: 791, emptyOne: 127, emptyTwo: form.corporateReputation, operationIds: preId + ',791', type: 1 },
{ answerId: 792, emptyOne: 126, emptyTwo: form.haveAnyBadCreditRecords, operationIds: preId + ',792', type: 1 },
]
form.gradeEvaluationOtherRiskSituations && rule.push({ answerId: 793, emptyOne: 125, emptyTwo: form.gradeEvaluationOtherRiskSituations, operationIds: preId + ',793', type: 3 },)
await addOperation({
parentId: preId,
lcJudgmentRuleReq: rule,
projectId: +sessionStorage.getItem('projectId'),
startTime: sessionStorage.getItem('startTime')
})
this.$message.success('创建成功!')
if (prev) {
//
this.$emit('updateStep', 2)
} else {
this.$parent.active = '2'
this.$parent.tab2Disabled = false
}
} catch { (e) => { } }
},
},
}
</script>
<style lang="scss" scoped>
@import '@/styles/dialog.scss';
.l-title {
margin-bottom: 15px;
font-size: 18px;
font-weight: 600;
}
.line {
margin: 20px 0;
border-bottom: 1px dashed #d7d7d7;
}
</style>

@ -0,0 +1,257 @@
<!-- 新建贷款申请 -->
<template>
<div class="wrap">
<div>
<div class="nav">
<el-menu :default-active="active" class="el-menu-demo" mode="horizontal" @select="handleSelect">
<el-menu-item index="1">信用评估</el-menu-item>
<el-menu-item :disabled="tab2Disabled" index="2">授信申请</el-menu-item>
<el-menu-item :disabled="tab3Disabled" index="3">贷款申请</el-menu-item>
</el-menu>
</div>
<MyTitle :titleArr="['公司贷款', '新建贷款申请', text]" />
<ul v-if="active === '1'" class="steps">
<li v-for="(step, i) in steps" :key="i" :class="{ active: curStep === i }">{{ step }}</li>
</ul>
<div class="form-wrap">
<template v-if="active === '1'">
<Basic v-if="!curStep" :key="0" @updateStep="updateStep" />
<ImportReport v-else-if="curStep === 1" :key="1" @updateStep="updateStep" />
<PreLoan v-else-if="curStep === 2" :key="2" @updateStep="updateStep" />
<Rating v-else-if="curStep === 3" :key="3" @updateStep="updateStep" />
</template>
<CreditApplication v-if="active === '2'" />
<template v-if="active === '3'">
<LoanApplication1 v-if="!curStep" @updateStep="updateStep" />
<LoanApplication2 v-else-if="curStep === 1" @updateStep="updateStep" />
</template>
</div>
</div>
</div>
</template>
<script>
import { mapState } from 'vuex'
import { creditApplicationDetails, loanApplicationDetails } from '@/api/http'
import Basic from './creditEvaluation/basic.vue'
import ImportReport from './creditEvaluation/importReport.vue'
import PreLoan from './creditEvaluation/preLoan.vue'
import Rating from './creditEvaluation/rating.vue'
import CreditApplication from './creditApplication'
import LoanApplication1 from './loanApplication/step1.vue'
import LoanApplication2 from './loanApplication/step2.vue'
import MyTitle from '@/components/myTitle'
export default {
components: {
Basic,
ImportReport,
PreLoan,
Rating,
CreditApplication,
LoanApplication1,
LoanApplication2,
MyTitle
},
computed: {
...mapState('system', ['creditIds']),
},
data () {
return {
text: '',
textObj: {
'1': '信用评估',
'2': '授信申请',
'3': '贷款申请',
},
visible: false,
active: '1',
steps: ['1.客户基本信息', '2.导入报表', '3.贷前调查', '4.等级评定'],
curStep: 0,
tab2Disabled: true,
tab3Disabled: true,
}
},
mounted () {
const id = this.creditIds.companyLoanId
if (id) {
this.getTab2Detail(id)
this.getTab3Detail(id)
}
},
methods: {
//
async getTab2Detail (id) {
const res = await creditApplicationDetails({
companyLoanId: id
})
this.tab2Disabled = !res.data.bankCreditApplication
},
//
async getTab3Detail (id) {
const res = await loanApplicationDetails({
companyLoanId: id
})
this.tab3Disabled = !res.data.bankLoanApplication
},
handleSelect (val) {
this.curStep = 0
this.text = this.textObj[val]
this.active = val
},
updateStep (step) {
this.curStep = step
},
},
};
</script>
<style lang="scss" scoped>
.wrap {
width: 100%;
display: flex;
flex-direction: column;
height: calc(100vh - 118px);
padding: 20px;
overflow: auto;
.nav {
/deep/ .el-menu.el-menu--horizontal {
border: 0;
}
/deep/ .el-menu--horizontal>.el-menu-item.is-active {
border: 2px solid #568df2;
border-radius: 10px;
color: #000;
}
/deep/ .el-menu--horizontal>.el-menu-item {
border: 2px solid transparent;
border-radius: 10px;
margin-right: 10px;
height: 30px;
line-height: 28px;
}
}
.title {
height: 60px;
display: flex;
align-items: center;
font-size: 20px;
padding-left: 0px;
margin-top: 10px;
}
.body {
margin-top: 50px;
overflow-y: auto;
overflow-x: hidden;
.idCard {
border-radius: 5px;
background: #cfddff;
text-align: center;
height: 40px;
line-height: 40px;
font-size: 18px;
color: #6191ff;
}
.add {
position: relative;
&::after {
content: '';
display: block;
position: absolute;
right: 3%;
top: -4%;
border: 1px dashed #cfddff;
width: 88%;
height: 268px;
}
.addBtn {
position: absolute;
left: 0;
top: 50%;
transform: translate(50%, -50%);
font-size: 22px;
}
}
}
.popBody {
min-height: 200px;
display: flex;
align-items: center;
justify-content: center;
text-align: center;
}
.popBtns {
display: flex;
justify-content: space-between;
align-items: center;
.btn {
width: 180px;
border-radius: 10px;
font-size: 18px;
}
.close {
background: #cfdeff;
color: #6191ff;
}
.sure {
background: #6191ff;
color: #fff;
}
}
}
.steps {
display: flex;
justify-content: center;
margin-bottom: 20px;
li {
position: relative;
width: 160px;
padding: 6px 0;
margin-right: 25px;
text-align: center;
font-size: 16px;
color: #fff;
background-color: #a7bdf5;
&:after {
content: '';
position: absolute;
top: 0;
right: -24px;
border: 18px solid transparent;
border-right-width: 12px;
border-left: 12px solid #a7bdf5;
}
&.active {
background-color: #5786fc;
&:after {
border-left-color: #5786fc;
}
}
}
}
.form-wrap {
height: calc(100vh - 340px);
overflow: auto;
}
</style>

@ -0,0 +1,215 @@
<!-- 贷款申请第一步 -->
<template>
<div>
<el-row :gutter="20" style="margin: 0">
<el-form ref="form" :model="form" label-width="140px">
<el-col :span="24">
<h6 class="l-title">客户信息</h6>
</el-col>
<el-col :span="10" :offset="1">
<el-form-item label="账号">
<el-input v-model="form.applicationNumber" disabled />
</el-form-item>
<el-form-item label="证件类型">
<el-select v-model.trim="form.identificationType" placeholder="请选择" disabled>
<el-option label="统一社会信用代码证" :value="82"></el-option>
</el-select>
</el-form-item>
<el-form-item label="注册地址">
<el-input v-model="form.companyRegisteredAddress" />
</el-form-item>
<el-form-item label="法人证件号码">
<el-input v-model="form.corporateIdNumber" />
</el-form-item>
</el-col>
<el-col :span="10" :offset="1">
<el-form-item label="客户名称">
<el-input v-model="form.customerName" disabled />
</el-form-item>
<el-form-item label="代码证号">
<el-input v-model="form.corporateIdNumber" disabled />
</el-form-item>
<el-form-item label="法人姓名">
<el-input v-model="form.corporateName" />
</el-form-item>
<el-form-item label="信用评级">
<el-input v-model="form.creditRating" />
</el-form-item>
</el-col>
<el-col :span="24">
<h6 class="l-title">授信</h6>
</el-col>
<el-col :span="10" :offset="1">
<el-form-item label="授信金额">
<el-input v-model="form.creditAmount" disabled />
</el-form-item>
</el-col>
<el-col :span="24">
<h6 class="l-title">贷款申请</h6>
</el-col>
<el-col :span="10" :offset="1">
<el-form-item label="授信年限" required>
<el-select v-model="form.creditTermOne" placeholder="请选择">
<el-option v-for="(item, i) in Util.creditTerms" :key="i" :label="item.name" :value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="贷款申请金额" required>
<el-input :value="form.loanApplicationAmount" placeholder="不大于授信金额"
@input="val => ismoney(val, form, 'loanApplicationAmount')" ref="loanApplicationAmount" />
</el-form-item>
<el-form-item label="发放方式" required>
<el-select v-model.trim="form.distributionMethod" placeholder="请选择">
<el-option v-for="(item, i) in Util.distributionMethods" :key="i" :label="item.name" :value="item.id">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="10" :offset="1">
<el-form-item label="年化利率">
<el-input value="3.2%" disabled />
</el-form-item>
<el-form-item label="还款方式" required>
<el-select v-model.trim="form.repaymentMethodOne" placeholder="请选择">
<el-option v-for="(item, i) in Util.repaymentMethods" :key="i" :label="item.name" :value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="申请日期" prop="loanApplicationDate" required>
<el-date-picker v-model="form.loanApplicationDate" type="date" placeholder="选择日期" format="yyyy-MM-dd"
value-format="yyyy-MM-dd" ref="loanApplicationDate">
</el-date-picker>
</el-form-item>
</el-col>
</el-form>
</el-row>
<div class="text-center m-t-20">
<el-button @click="next" type="primary" class="submitBtn" v-throttle>下一步</el-button>
</div>
</div>
</template>
<script>
import { ismoney } from '@/utils/utilFunction.js'
import { loanApplicationDetails, addOperation, loanApplicationInput } from '@/api/http'
import { mapMutations, mapState } from 'vuex'
import Util from '@/libs/util'
export default {
data () {
return {
Util,
form: {
applicationNumber: '12802851701099',
customerName: '袋鼠互联网科技有限公司',
identificationType: 82,
identificationNumber: '913403005685450862',
companyRegisteredAddress: '广东省深圳市南山区前海一号2020室',
corporateName: '丛小凤',
corporateIdNumber: '913403005685450862',
creditRating: 'AAAA',
creditAmount: '12,000,000.00',
creditTermOne: 231,
loanApplicationAmount: '',
repaymentMethodOne: 235,
distributionMethod: 238,
loanApplicationDate: '',
},
}
},
computed: {
...mapState('system', ['creditIds']),
},
mounted () {
this.getDetail()
},
methods: {
...mapMutations({
setCreditIds: 'system/setCreditIds',
}),
ismoney,
//
async getDetail () {
const id = this.creditIds.companyLoanId
if (id) {
const res = await loanApplicationDetails({
companyLoanId: id
})
const r = res.data.bankLoanApplication
if (r) {
this.form = {
applicationNumber: '12802851701099',
customerName: '袋鼠互联网科技有限公司',
identificationType: 82,
identificationNumber: '913403005685450862',
companyRegisteredAddress: r.companyRegisteredAddress,
corporateName: r.corporateName,
corporateIdNumber: r.corporateIdNumber,
creditRating: r.creditRating,
creditAmount: '12,000,000.00',
creditTermOne: +r.creditTermOne || 231,
loanApplicationAmount: r.loanApplicationAmount,
repaymentMethodOne: +r.repaymentMethodOne || 235,
distributionMethod: +r.distributionMethod || 238,
loanApplicationDate: r.loanApplicationDate,
loanId: r.loanId
}
}
}
},
async next () {
const { form } = this
if (!form.loanApplicationAmount) return this.$message.error('请填写贷款申请金额!')
if (+form.loanApplicationAmount > 12000000) return this.$message.error('贷款申请金额应不大于授信金额!') //
try {
const { data } = await loanApplicationInput({
...this.$store.getters['system/commonIds'],
...form,
companyLoanId: this.creditIds.companyLoanId,
})
const preId = '285,' + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ',766,768'
const rule = [
{ answerId: 820, emptyOne: 134, emptyTwo: form.creditTermOne, operationIds: preId + ',820', type: 1 },
{ answerId: 821, emptyOne: 125, emptyTwo: form.loanApplicationAmount, operationIds: preId + ',821', type: 3 },
{ answerId: 822, emptyOne: 135, emptyTwo: form.repaymentMethodOne, operationIds: preId + ',822', type: 1 },
{ answerId: 823, emptyOne: 136, emptyTwo: form.distributionMethod, operationIds: preId + ',823', type: 1 },
{ answerId: 845, emptyOne: 140, emptyTwo: form.loanApplicationDate, operationIds: preId + ',845', type: 3 },
]
form.companyRegisteredAddress && rule.push({ answerId: 883, emptyOne: 153, emptyTwo: form.companyRegisteredAddress, operationIds: preId + ',883', type: 3 })
form.corporateName && rule.push({ answerId: 884, emptyOne: 153, emptyTwo: form.corporateName, operationIds: preId + ',884', type: 3 })
form.corporateIdNumber && rule.push({ answerId: 885, emptyOne: 153, emptyTwo: form.corporateIdNumber, operationIds: preId + ',885', type: 3 })
form.creditRating && rule.push({ answerId: 896, emptyOne: '', emptyTwo: '', operationIds: preId + ',896', type: '' })
form.creditAmount && rule.push({ answerId: 897, emptyOne: '', emptyTwo: '', operationIds: preId + ',897', type: '' })
await addOperation({
parentId: preId,
lcJudgmentRuleReq: rule,
projectId: +sessionStorage.getItem('projectId'),
startTime: sessionStorage.getItem('startTime')
})
// id
this.setCreditIds({
companyLoanId: data.companyLoanId, // tabid
loanId: data.loanId, // id
})
this.$emit('updateStep', 1)
} catch { (e) => { } }
},
},
}
</script>
<style lang='scss' scoped>
.l-title {
margin-bottom: 15px;
font-size: 18px;
font-weight: 600;
}
.line {
margin: 20px 0;
border-bottom: 1px dashed #d7d7d7;
}
</style>

@ -0,0 +1,285 @@
<!-- 信用评估 -->
<template>
<div>
<el-row :gutter="20" style="margin: 0">
<el-form ref="form" :model="form" :rules="rules" label-width="140px">
<el-col :span="24">
<h6 class="l-title">客户信息</h6>
</el-col>
<el-col :span="10" :offset="1">
<el-form-item label="贷款类型">
<el-select value="企业经营贷款" placeholder="请选择" disabled>
<el-option value="企业经营贷款"></el-option>
</el-select>
</el-form-item>
<el-form-item label="授信金额">
<el-input v-model="form.creditAmount" disabled />
</el-form-item>
<el-form-item label="起息日期" prop="valueDate">
<el-date-picker v-model="form.valueDate" type="date" placeholder="选择日期" format="yyyy-MM-dd"
value-format="yyyy-MM-dd" @change="maturityDateCalc"></el-date-picker>
</el-form-item>
<el-form-item label="计息方式">
<el-input value="按LPR浮动计息" disabled />
</el-form-item>
<el-form-item label="执行利率">
<el-input value="3.2%" disabled />
</el-form-item>
<el-form-item label="担保方式" prop="guaranteeMethod">
<el-select v-model="form.guaranteeMethod" placeholder="请选择">
<el-option v-for="(item, i) in Util.guaranteeMethods" :key="i" :label="item.name"
:value="item.id"></el-option>
</el-select>
</el-form-item>
<el-form-item label="利息总额">
<el-input v-model="form.totalInterestAmount" disabled />
</el-form-item>
<el-form-item label="还款账号" prop="repaymentAccount">
<el-input v-model="form.repaymentAccount" />
</el-form-item>
</el-col>
<el-col :span="10" :offset="1">
<el-form-item label="合同编号" prop="contractNo">
<el-input v-model="form.contractNo" disabled />
</el-form-item>
<el-form-item label="授信期限">
<el-select v-model="form.creditTermTwo" placeholder="请选择">
<el-option v-for="(item, i) in Util.creditTerms" :key="i" :label="item.name" :value="item.id"></el-option>
</el-select>
</el-form-item>
<el-form-item label="贷款期限" prop="loanTerm" @change="interestCalc">
<el-select v-model="form.loanTerm" placeholder="请选择" @change="maturityDateCalc">
<el-option v-for="(item, i) in Util.loanTerms" :key="i" :label="item.name" :value="item.id"></el-option>
</el-select>
</el-form-item>
<el-form-item label="到期日期">
<el-date-picker v-model="form.expirationDate" type="date" placeholder="选择日期" format="yyyy-MM-dd"
value-format="yyyy-MM-dd" disabled></el-date-picker>
</el-form-item>
<el-form-item label="基准利率" prop="baseInterestRate">
<el-input value="3.20%" disabled />
</el-form-item>
<el-form-item label="逾期利率" prop="overdueInterestRate">
<el-input value="10%" disabled />
</el-form-item>
<el-form-item label="还款方式" prop="repaymentMethodTwo">
<el-select v-model.trim="form.repaymentMethodTwo" placeholder="请选择">
<el-option v-for="(item, i) in Util.repaymentMethods" :key="i" :label="item.name" :value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="贷款金额">
<el-input v-model="form.loanAmount" @input="loanAmountInput" />
</el-form-item>
</el-col>
</el-form>
</el-row>
<div class="text-center m-t-20">
<el-button @click="beforeSubmit" type="primary" class="submitBtn" v-throttle>提交</el-button>
</div>
<el-dialog :visible="visible" append-to-body style="z-index: 6000;" :close-on-click-modal="true" :show-close="false"
custom-class="dia">
<div class="data-dia23">
<div slot="title" class="dia-header">
<div class="data-title">提示</div>
</div>
<div class="popBody">
<p class="text-lg" style="color: #333">确定提交贷款申请吗</p>
</div>
<div class="popBtns">
<el-button class="close btn hover:bg-blue-100 " @click="visible = false"> </el-button>
<el-button class="sure btn hover:bg-blue-700 " type="primary" @click="submit"> </el-button>
</div>
</div>
</el-dialog>
<el-dialog :visible="successVisible" append-to-body style="z-index: 6000;" :close-on-click-modal="false"
:show-close="false" custom-class="dia">
<div class="data-dia23">
<div slot="title" class="dia-header">
<div class="data-title">提示</div>
</div>
<div class="popBody">
<p class="text-lg" style="color: #333">贷款申请成功</p>
</div>
<div class="popBtns">
<el-button class="sure btn hover:bg-blue-700 " type="primary"
@click="$router.push('/counter/list/manage/corporateLoans-application')"> </el-button>
</div>
</div>
</el-dialog>
</div>
</template>
<script>
import { addOperation, loanApplicationInput, loanApplicationDetails, loanApplicationInterestCalculation } from '@/api/http'
import Util from '@/libs/util'
import { mapMutations, mapState } from 'vuex'
export default {
data () {
return {
Util,
step1: {},
timer: null,
form: {
valueDate: '',
creditTermTwo: 231,
loanTerm: 120,
guaranteeMethod: 242,
expirationDate: '',
totalInterestAmount: '',
loanAmount: '',
repaymentMethodTwo: '',
repaymentAccount: '',
},
rules: {
valueDate: [
{
required: true,
message: '请选择起息日期',
trigger: 'change'
}
],
guaranteeMethod: [
{
required: true,
message: '请选择担保方式',
trigger: 'change'
}
],
repaymentAccount: [
{
required: true,
message: '请输入还款账号',
trigger: 'blur'
}
],
},
visible: false,
successVisible: false,
}
},
computed: {
...mapState('system', ['creditIds']),
},
mounted () {
this.getDetail()
},
methods: {
//
async getDetail () {
const id = this.creditIds.companyLoanId
if (id) {
//
const res = await loanApplicationDetails({
companyLoanId: id
})
const r = res.data.bankLoanApplication
if (r) {
this.step1 = r
this.form = {
valueDate: r.valueDate,
creditTermTwo: +r.creditTermOne,
loanTerm: +r.loanTerm || 120,
guaranteeMethod: +r.guaranteeMethod || 242,
expirationDate: r.expirationDate,
totalInterestAmount: r.totalInterestAmount,
loanAmount: r.loanApplicationAmount,
repaymentMethodTwo: +r.repaymentMethodOne,
repaymentAccount: r.repaymentAccount,
creditAmount: r.creditAmount,
}
}
}
},
//
maturityDateCalc () {
const { valueDate, loanTerm } = this.form
if (valueDate && loanTerm) {
const date = new Date(valueDate)
date.setMonth(date.getMonth() + loanTerm)
this.form.expirationDate = Util.formatDate('yyyy-MM-dd', date)
}
this.interestCalc()
},
// input
loanAmountInput () {
clearTimeout(this.timer);
this.timer = setTimeout(() => {
this.interestCalc()
}, 500)
},
//
async interestCalc () {
const { form } = this
if (form.loanAmount && form.valueDate) {
const { data } = await loanApplicationInterestCalculation({
...this.creditIds,
...form,
})
form.totalInterestAmount = data.totalInterestAmount || ''
}
},
async beforeSubmit () {
try {
const { form } = this
if (!form.valueDate) return this.$message.error('请选择起息日期!')
if (new Date(form.valueDate) < new Date(this.step1.loanApplicationDate)) return this.$message.error('起息日期不得早于申请日期!')
if (!form.repaymentAccount) return this.$message.error('请输入还款账号!')
if (+form.loanAmount > 12000000) return this.$message.error('贷款金额不得大于授信金额!')
this.visible = true
} catch { (e) => { } }
},
async submit () {
try {
const { form } = this
await loanApplicationInput({
...this.creditIds,
...form,
})
const preId = '285,' + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ',766,768'
const rule = [
{ answerId: 824, emptyOne: 137, emptyTwo: 240, operationIds: preId + ',824', type: 1 },
{ answerId: 825, emptyOne: 134, emptyTwo: form.creditTermTwo, operationIds: preId + ',825', type: 1 },
{ answerId: 826, emptyOne: 125, emptyTwo: form.valueDate, operationIds: preId + ',826', type: 3 },
{ answerId: 846, emptyOne: 141, emptyTwo: Util.loanTerms.find(e => e.id === form.loanTerm).pointId, operationIds: preId + ',846', type: 1 },
{ answerId: 827, emptyOne: 125, emptyTwo: form.expirationDate, operationIds: preId + ',827', type: 3 },
{ answerId: 828, emptyOne: 139, emptyTwo: form.guaranteeMethod, operationIds: preId + ',828', type: 1 },
{ answerId: 822, emptyOne: 135, emptyTwo: form.repaymentMethodTwo, operationIds: preId + ',822', type: 1 },
{ answerId: 832, emptyOne: 125, emptyTwo: form.repaymentAccount, operationIds: preId + ',832', type: 1 },
]
form.loanAmount && rule.push({ answerId: 831, emptyOne: 125, emptyTwo: form.loanAmount, operationIds: preId + ',831', type: 1 })
await addOperation({
parentId: preId,
lcJudgmentRuleReq: rule,
projectId: +sessionStorage.getItem('projectId'),
startTime: sessionStorage.getItem('startTime')
})
this.successVisible = true
} catch { (e) => { } }
},
},
}
</script>
<style lang='scss' scoped>
@import '@/styles/dialog.scss';
.l-title {
margin-bottom: 15px;
font-size: 18px;
font-weight: 600;
}
.line {
margin: 20px 0;
border-bottom: 1px dashed #d7d7d7;
}
</style>

@ -0,0 +1,302 @@
<!-- 公司贷款详情 -->
<template>
<div class="wrap">
<MyTitle :titleArr="['公司贷款', '贷款详情']" />
<el-row :gutter="20" style="margin: 0">
<el-form ref="form" :model="form" label-width="120px" disabled>
<el-col :span="24">
<h6 class="l-title">信用评估</h6>
</el-col>
<el-col :span="10" :offset="1">
<el-form-item label="账号">
<el-input v-model="form.applicationAccount" disabled />
</el-form-item>
<el-form-item label="证件类型">
<el-select v-model.trim="form.identificationType" placeholder="请选择" disabled>
<el-option label="统一社会信用代码证" :value="82"></el-option>
</el-select>
</el-form-item>
<el-form-item label="注册地址">
<el-input v-model="form.companyRegisteredAddress" />
</el-form-item>
<el-form-item label="法人证件号码">
<el-input v-model="form.corporateIdNumber" />
</el-form-item>
</el-col>
<el-col :span="10" :offset="1">
<el-form-item label="客户名称">
<el-input v-model="form.customerName" disabled />
</el-form-item>
<el-form-item label="代码证号">
<el-input v-model="bankLoanApplication.corporateIdNumber" disabled />
</el-form-item>
<el-form-item label="法人姓名">
<el-input v-model="form.corporateName" />
</el-form-item>
<el-form-item label="信用评级">
<el-input v-model="bankLoanApplication.creditRating" />
</el-form-item>
</el-col>
<el-col :span="24">
<div class="line"></div>
<h6 class="l-title">授信</h6>
</el-col>
<el-col :span="10" :offset="1">
<el-form-item label="授信金额">
<el-input v-model="bankLoanApplication.creditAmount" disabled />
</el-form-item>
</el-col>
<el-col :span="24">
<div class="line"></div>
<h6 class="l-title">贷款申请</h6>
</el-col>
<el-col :span="10" :offset="1">
<el-form-item label="授信年限">
<el-select v-model="bankLoanApplication.creditTermOne" placeholder="请选择">
<el-option v-for="(item, i) in Util.creditTerms" :key="i" :label="item.name" :value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="还款方式">
<el-select v-model.trim="bankLoanApplication.repaymentMethodOne" placeholder="请选择">
<el-option v-for="(item, i) in Util.repaymentMethods" :key="i" :label="item.name" :value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="申请日期" prop="loanApplicationDate">
<el-date-picker v-model="bankLoanApplication.loanApplicationDate" type="date" placeholder="选择日期"
format="yyyy-MM-dd" value-format="yyyy-MM-dd" ref="loanApplicationDate">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="10" :offset="1">
<el-form-item label="年化利率">
<el-input value="3.2%" disabled />
</el-form-item>
<el-form-item label="发放方式">
<el-select v-model.trim="bankLoanApplication.distributionMethod" placeholder="请选择">
<el-option v-for="(item, i) in Util.distributionMethods" :key="i" :label="item.name" :value="item.id">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="24">
<div class="line"></div>
<h6 class="l-title">贷款合同录入</h6>
</el-col>
<el-col :span="10" :offset="1">
<el-form-item label="贷款类型">
<el-select value="企业经营贷款" placeholder="请选择">
<el-option value="企业经营贷款"></el-option>
</el-select>
</el-form-item>
<el-form-item label="授信金额">
<el-input v-model="bankLoanApplication.creditAmount" disabled />
</el-form-item>
<el-form-item label="起息日期" prop="valueDate">
<el-date-picker v-model="bankLoanApplication.valueDate" type="date" placeholder="选择日期" format="yyyy-MM-dd"
value-format="yyyy-MM-dd"></el-date-picker>
</el-form-item>
<el-form-item label="计息方式">
<el-input value="按LPR浮动计息" disabled />
</el-form-item>
<el-form-item label="执行利率" prop="executedInterestRate">
<el-input value="3.2%" disabled />
</el-form-item>
<el-form-item label="担保方式">
<el-select v-model="bankLoanApplication.guaranteeMethod" placeholder="请选择">
<el-option v-for="(item, i) in Util.guaranteeMethods" :key="i" :label="item.name"
:value="item.id"></el-option>
</el-select>
</el-form-item>
<el-form-item label="利息总额">
<el-input v-model="bankLoanApplication.totalInterestAmount" />
</el-form-item>
<el-form-item label="还款账号">
<el-input v-model="bankLoanApplication.repaymentAccount" />
</el-form-item>
</el-col>
<el-col :span="10" :offset="1">
<el-form-item label="合同编号" prop="contractNo">
<el-input v-model="bankLoanApplication.contractNumber" disabled />
</el-form-item>
<el-form-item label="授信期限">
<el-select v-model="bankLoanApplication.creditTermTwo" placeholder="请选择">
<el-option v-for="(item, i) in Util.creditTerms" :key="i" :label="item.name" :value="item.id"></el-option>
</el-select>
</el-form-item>
<el-form-item label="贷款期限" prop="loanTerm">
<el-select v-model="bankLoanApplication.loanTerm" placeholder="请选择">
<el-option v-for="(item, i) in Util.loanTerms" :key="i" :label="item.name" :value="item.id"></el-option>
</el-select>
</el-form-item>
<el-form-item label="到期日期">
<el-date-picker v-model="bankLoanApplication.expirationDate" type="date" placeholder="选择日期"
format="yyyy-MM-dd" value-format="yyyy-MM-dd" disabled></el-date-picker>
</el-form-item>
<el-form-item label="基准利率" prop="baseInterestRate">
<el-input value="3.20%" disabled />
</el-form-item>
<el-form-item label="逾期利率" prop="overdueInterestRate">
<el-input value="10%" disabled />
</el-form-item>
<el-form-item label="还款方式" prop="repaymentMethodTwo">
<el-select v-model="bankLoanApplication.repaymentMethodTwo" placeholder="请选择" disabled>
<el-option v-for="(item, i) in Util.repaymentMethods" :key="i" :label="item.name" :value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="贷款金额">
<el-input v-model="bankLoanApplication.loanAmount" />
</el-form-item>
</el-col>
</el-form>
</el-row>
<div class="text-center">
<el-button v-if="!bankCompanyLoans.loanDate" @click="showLoan" type="primary" class="submitBtn"
v-throttle>放款</el-button>
<el-button @click="$router.back()" type="primary" class="submitBtn" v-throttle>关闭</el-button>
</div>
<el-dialog :visible.sync="loanVisible" z-index="6000" width="500px" append-to-body :show-close="false"
custom-class="dia">
<div class="data-dia23">
<div slot="title" class="dia-header">
<div class="data-title">放款</div>
</div>
<div style="padding: 30px 0;">
<el-date-picker v-model="loanDate" type="date" placeholder="请选择放款日期" format="yyyy-MM-dd"
value-format="yyyy-MM-dd" style="width: 100%;"></el-date-picker>
</div>
</div>
<span slot="footer" class="dialog-footer">
<el-button @click="loanVisible = false">取消</el-button>
<el-button type="primary" @click="loanSubmit">确定</el-button>
</span>
</el-dialog>
</div>
</template>
<script>
import { loanDisbursement, companyLoanDetails, addOperation } from '@/api/http'
import MyTitle from '@/components/myTitle'
import Util from '@/libs/util'
export default {
components: {
MyTitle,
},
data () {
return {
Util,
id: this.$route.query.id,
form: {
applicationAccount: '',
customerName: '',
identificationType: '',
identificationNumber: '',
contactPhoneNumber: '',
companyRegisteredAddress: '',
corporateName: '',
corporateIdNumber: '',
contactPhoneNumber: '',
currency: 12,
accountType: 97,
interestRate: 3.2,
interestCalculationMethod: 83,
withdrawalMethod: 114,
numberOfEmployees: '',
yearOfEstablishment: '',
registrationType: '',
mainBusinessScope: '',
expirationDateOfBusinessLicense: '',
financialReportSubmissionMethod: '',
natureOfBorrower: '',
},
loanDate: '',
loanVisible: false,
bankCompanyLoans: {},
bankLoanApplication: {},
}
},
mounted () {
this.getDetail()
},
methods: {
//
async getDetail () {
if (this.id) {
//
const { data } = await companyLoanDetails(this.id)
const eva = data.bankCreditEvaluation || {}
if (eva.identificationType) eva.identificationType = +eva.identificationType
this.form = eva || {}
this.bankCompanyLoans = data.bankCompanyLoans || {}
const app = data.bankLoanApplication || {}
if (app.distributionMethod) app.distributionMethod = +app.distributionMethod
if (app.repaymentMethodOne) app.repaymentMethodOne = +app.repaymentMethodOne
if (app.repaymentMethodTwo) app.repaymentMethodTwo = +app.repaymentMethodTwo
if (app.creditTerm) app.creditTerm = +app.creditTerm
if (app.guaranteeMethod) app.guaranteeMethod = +app.guaranteeMethod
if (app.loanTerm) app.loanTerm = +app.loanTerm
if (app.creditTermOne) app.creditTermOne = +app.creditTermOne
if (app.creditTermTwo) app.creditTermTwo = +app.creditTermTwo
this.bankLoanApplication = app
}
},
//
showLoan () {
this.loanVisible = true
},
//
async loanSubmit () {
if (!this.loanDate) return this.$message.error('请选择放款日期!')
try {
const { data } = await loanDisbursement({
companyLoanId: this.id,
loanDate: this.loanDate,
})
this.$message[data.status === 200 ? 'success' : 'error'](data.message)
if (data.status === 200) {
const preId = '285,' + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ',766,768'
await addOperation({
parentId: preId,
lcJudgmentRuleReq: [{ answerId: 838, emptyOne: '', emptyTwo: '', operationIds: preId + ',838', type: '' },],
projectId: +sessionStorage.getItem('projectId'),
startTime: sessionStorage.getItem('startTime')
})
this.loanVisible = false
this.getDetail()
}
} catch (e) { }
},
},
}
</script>
<style lang='scss' scoped>
@import '@/styles/dialog.scss';
.wrap {
width: 100%;
height: calc(100vh - 118px);
padding: 20px;
overflow: auto;
.l-title {
margin-bottom: 15px;
font-size: 18px;
font-weight: 600;
}
.line {
margin: 20px 0;
border-bottom: 1px dashed #d7d7d7;
}
}
</style>

@ -0,0 +1,112 @@
<template>
<!-- 贷款放款 -->
<div class="wrap">
<my-title :titleArr="['公司贷款', '贷款放款']" />
<div style="width: 300px;margin-bottom: 20px;">
<el-input v-model="keyword" placeholder="请输入客户姓名" clearable />
</div>
<el-table :data="list" stripe :header-cell-style="headerCellStyle">
<el-table-column prop="customerName" label="客户姓名" align="center" />
<el-table-column prop="applicationNumber" label="贷款编号" align="center" />
<el-table-column prop="loanDate" label="放款日期" align="center">
<template slot-scope="scope">{{ scope.row.loanDate || '-' }}</template>
</el-table-column>
<el-table-column prop="loanAmount" label="贷款金额(万)" align="center">
<template slot-scope="scope">{{ scope.row.loanAmount || '-' }}</template>
</el-table-column>
<el-table-column prop="loanAmount" label="放款金额(万)" align="center">
<template slot-scope="scope">{{ scope.row.loanDate ? scope.row.loanAmount : '-' }}</template>
</el-table-column>
<el-table-column prop="loanAmount" label="放款状态" align="center">
<template slot-scope="scope">{{ scope.row.loanDate ? '已放款' : '待放款' }}</template>
</el-table-column>
<el-table-column label="操作" align="center" width="150">
<template slot-scope="scope">
<el-button :disabled="!!scope.row.builtIn" @click="toDetail(scope.row)" size="small">{{
scope.row.loanApplicationAmount ? '查看' : '编辑'
}}</el-button>
</template>
</el-table-column>
</el-table>
<div class="pagination">
<el-pagination background layout="total, prev, pager, next" :current-page="page"
@current-change="handleCurrentChange" :total="total"></el-pagination>
</div>
</div>
</template>
<script>
import { headerCellStyle } from '@/assets/js/myConfig'
import { companyLoanList } from '@/api/http';
import MyTitle from '@/components/myTitle'
export default {
components: {
MyTitle,
},
data () {
return {
headerCellStyle,
searchTimer: null,
keyword: '',
list: [],
page: 1,
pageSize: 10,
total: 0,
}
},
watch: {
keyword: function (val) {
clearTimeout(this.searchTimer);
this.searchTimer = setTimeout(() => {
this.initData()
}, 500)
},
},
mounted () {
this.initData()
},
methods: {
async getData () {
const { data } = await companyLoanList({
...this.$store.getters['system/commonIds'],
pageNum: this.page,
pageSize: this.pageSize,
searchContent: this.keyword,
typeId: 2
})
this.list = data.page.records
this.total = data.page.total
},
initData () {
this.page = 1
this.getData()
},
handleCurrentChange (val) {
this.page = val
this.getData()
},
//
toDetail (row) {
// id
this.$store.commit('system/setCreditIds', (row ? {
companyLoanId: row.companyLoanId, // tabid
} : {}))
this.$router.push(row.loanApplicationAmount ? `/counter/list/manage/corporateLoans-detail?id=${row.companyLoanId}` : '/counter/list/manage/corporateLoans-apply')
},
}
};
</script>
<style lang="scss" scoped>
@import '@/assets/css/tablebg.scss';
.wrap {
width: 100%;
max-height: calc(100vh - 118px);
padding: 24px;
overflow: auto;
}
</style>

@ -0,0 +1,405 @@
<template>
<!-- 贷后管理 -->
<div class="wrap">
<my-title :titleArr="['公司贷款', '贷后管理']" />
<div style="width: 300px;margin-bottom: 20px;">
<el-input v-model="keyword" placeholder="请输入客户姓名" clearable />
</div>
<el-table :data="list" stripe :header-cell-style="headerCellStyle">
<el-table-column prop="customerName" label="客户姓名" align="center" />
<el-table-column prop="applicationNumber" label="贷款编号" align="center" />
<el-table-column prop="loanStatus" label="贷款状态" align="center" width="100">
<template slot-scope="scope">{{ scope.row.loanStatus || '-' }}</template>
</el-table-column>
<el-table-column prop="fiveLevelClassification" label="五级分类" align="center">
<template slot-scope="scope">{{ scope.row.five || '-' }}</template>
</el-table-column>
<el-table-column prop="processingResults" label="处理结果" align="center" width="100">
<template slot-scope="scope">{{ scope.row.processingResults || '-' }}</template>
</el-table-column>
<el-table-column prop="updateTime" label="处理日期" align="center" width="160">
<template slot-scope="scope">{{ scope.row.updateTime || '-' }}</template>
</el-table-column>
<el-table-column prop="arrearsAmount" label="欠款金额" align="center" width="100">
<template slot-scope="scope">{{ scope.row.arrearsAmount || '-' }}</template>
</el-table-column>
<el-table-column label="操作" align="center" width="360">
<template v-if="!scope.row.builtIn" slot-scope="scope">
<el-button @click="collection(scope.row)" size="small">催收</el-button>
<el-button @click="postLoan(scope.row)" size="small">贷后调查</el-button>
<el-button v-if="!scope.row.nonPerformingLoan" :disabled="scope.row.fiveLevelClassification"
@click="npl(scope.row)" size="small">不良贷款</el-button>
<el-button v-if="!scope.row.badDebtRecognition" @click="badDebt(scope.row)" size="small">呆账认定</el-button>
</template>
</el-table-column>
</el-table>
<div class="pagination">
<el-pagination background layout="total, prev, pager, next" :current-page="page"
@current-change="handleCurrentChange" :total="total"></el-pagination>
</div>
<el-dialog :visible="visible" append-to-body style="z-index: 6000;" :close-on-click-modal="true" :show-close="false"
custom-class="dia">
<div class="data-dia23">
<div slot="title" class="dia-header">
<div class="data-title">提示</div>
</div>
<div class="popBody">
<p v-if="curMsg >= 0" class="text-lg" style="color: #333">{{ msgs[curMsg] }}</p>
<el-row v-else style="width: 100%">
<el-form class="dia-form" label-width="130px" label-suffix="">
<el-col :span="12">
<el-form-item v-if="curType === 5" label="认定日期">
<p class="text">{{ today }}</p>
</el-form-item>
<el-form-item label="客户名称">
<p class="text">{{ curRow.customerName }}</p>
</el-form-item>
<el-form-item label="欠款金额">
<p class="text">{{ curRow.arrearsAmount || 0 }}</p>
</el-form-item>
<el-form-item v-if="curType === 4" label="催收金额">
<p class="text">{{ curRow.arrearsAmount || 0 }}</p>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="贷款编号">
<p class="text">{{ curRow.applicationNumber }}</p>
</el-form-item>
<el-form-item label="催收通知书编号">
<p class="text">A012346156281</p>
</el-form-item>
</el-col>
</el-form>
</el-row>
</div>
<div class="popBtns">
<el-button v-if="curMsg < 2" class="close btn hover:bg-blue-100 " @click="visible = false"> </el-button>
<el-button class="sure btn hover:bg-blue-700 " type="primary" @click="msgSubmit"> </el-button>
</div>
</div>
</el-dialog>
<el-dialog :visible="postLoanVisible" append-to-body style="z-index: 6000;" :close-on-click-modal="true"
:show-close="false" custom-class="dia postLoanDia">
<div class="data-dia23">
<div slot="title" class="dia-header">
<div class="data-title">贷后调查</div>
</div>
<h6>调查日期{{ today }}</h6>
<el-row style="width: 100%">
<el-form label-width="130px" label-suffix="" label-position="top">
<el-col :span="24">
<el-form-item label="客户基本状态变化" required>
<el-input type="textarea" :rows="3" size="small" maxlength="100" v-model="form.stateChange" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="信贷业务和还本付息情况变化" required>
<el-select v-model="form.changesInSituation" size="small" placeholder="请选择">
<el-option v-for="(item, i) in opt1" :label="item.name" :value="item.id" :key="i">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="偿债能力" required>
<el-select v-model="form.debtPayingAbility" size="small" placeholder="请选择">
<el-option v-for="(item, i) in opt3" :label="item.name" :value="item.id" :key="i">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="担保状况不利变化" required>
<el-select v-model="form.adverseChanges" size="small" placeholder="请选择">
<el-option v-for="(item, i) in opt1" :label="item.name" :value="item.id" :key="i">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :offset="1" :span="11">
<el-form-item label="经营状况" required>
<el-select v-model="form.businessStatus" size="small" placeholder="请选择">
<el-option v-for="(item, i) in opt2" :label="item.name" :value="item.id" :key="i">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="信用状况" required>
<el-select v-model="form.creditStatus" size="small" placeholder="请选择">
<el-option v-for="(item, i) in opt2" :label="item.name" :value="item.id" :key="i">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="五级分类" required>
<el-select v-model="form.fiveLevelClassification" size="small" placeholder="请选择">
<el-option v-for="(item, i) in opt4" :label="item.name" :value="item.id" :key="i">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="结论 建议">
<el-input type="textarea" :rows="3" size="small" maxlength="100"
v-model="form.conclusionAndSuggestions">
</el-input>
</el-form-item>
</el-col>
</el-form>
</el-row>
</div>
<div class="popBtns">
<el-button class="close btn hover:bg-blue-100 " @click="postLoanVisible = false"> </el-button>
<el-button class="sure btn hover:bg-blue-700 " type="primary" @click="postLoanSubmit"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { headerCellStyle } from '@/assets/js/myConfig'
import { companyLoanList, loanCollection, nonPerformingLoans, badDebtRecognition, postLoanInvestigationInput, addOperation } from '@/api/http';
import MyTitle from '@/components/myTitle'
import Util from '@/libs/util'
export default {
components: {
MyTitle,
},
data () {
return {
headerCellStyle,
searchTimer: null,
keyword: '',
list: [],
page: 1,
pageSize: 10,
total: 0,
today: Util.formatDate('yyyy-MM-dd', new Date()),
msgs: [
'向贷款人预留各渠道联系方式发送催收信息',
'确认提交吗?',
'已成功向贷款人发起催收提醒!',
'贷后调查提交成功!',
'不良贷款提交成功!',
'呆账认定提交成功!',
],
visible: false,
curMsg: 0,
curType: 3,
curRow: {},
postLoanVisible: false,
selects: [],
originForm: {},
form: {
stateChange: '',
changesInSituation: 203,
debtPayingAbility: 1,
adverseChanges: 203,
businessStatus: 205,
creditStatus: 205,
fiveLevelClassification: 1,
conclusionAndSuggestions: '',
},
opt1: [
{
id: 203,
name: '有'
},
{
id: 204,
name: '无'
},
],
opt2: [
{
id: 205,
name: '优'
},
{
id: 206,
name: '良'
},
{
id: 207,
name: '差'
},
],
opt3: [
{
id: 1,
name: '能按期偿还'
},
{
id: 2,
name: '不能按期偿还'
},
],
opt4: [
{
id: 1,
name: '正常贷款'
},
{
id: 2,
name: '关注贷款'
},
{
id: 3,
name: '次级贷款'
},
{
id: 4,
name: '可疑贷款'
},
{
id: 5,
name: '损失贷款'
},
],
curRow: {},
}
},
watch: {
keyword: function (val) {
clearTimeout(this.searchTimer);
this.searchTimer = setTimeout(() => {
this.initData()
}, 500)
},
},
mounted () {
this.originForm = JSON.parse(JSON.stringify(this.form))
this.initData()
},
methods: {
async getData () {
const { data } = await companyLoanList({
...this.$store.getters['system/commonIds'],
pageNum: this.page,
pageSize: this.pageSize,
searchContent: this.keyword,
typeId: 4
})
const list = data.page.records
const { opt4 } = this
list.forEach(e => {
const five = e.fiveLevelClassification
e.bad = five === '4' || five === '5' //
if (five) e.five = opt4.find(n => n.id == five).name
})
this.list = list
this.total = data.page.total
},
initData () {
this.page = 1
this.getData()
},
handleCurrentChange (val) {
this.page = val
this.getData()
},
//
collection (row) {
this.curRow = row
this.visible = true
this.curMsg = 0
},
//
postLoan (row) {
this.form = JSON.parse(JSON.stringify(this.originForm))
this.curRow = row
this.postLoanVisible = true
},
//
async postLoanSubmit () {
const { form } = this
if (!form.stateChange) return this.$message.error('请填写客户基本状态变化!')
form.companyLoanId = this.curRow.companyLoanId
await postLoanInvestigationInput(form)
this.submitPoint(841)
this.getData()
this.postLoanVisible = false
},
//
npl (row) {
this.curRow = row
this.curType = 4
this.curRow = row
this.visible = true
this.curMsg = -2
},
//
badDebt (row) {
this.curRow = row
this.curType = 5
this.curRow = row
this.visible = true
this.curMsg = -1
},
async msgSubmit () {
if (!this.curMsg) {
//
await loanCollection({
companyLoanId: this.curRow.companyLoanId
})
this.getData()
this.curMsg = 2
this.submitPoint(840)
} else if (this.curMsg < 0) {
this.curMsg = 1
} else if (this.curMsg === 1) {
this.curMsg = this.curType
if (this.curType === 4) {
//
await nonPerformingLoans({
companyLoanId: this.curRow.companyLoanId
})
this.submitPoint(842)
} else {
//
await badDebtRecognition({
companyLoanId: this.curRow.companyLoanId
})
this.submitPoint(843)
}
this.getData()
} else {
this.visible = false
}
},
async submitPoint (id) {
const preId = '285,' + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ',766,768'
await addOperation({
parentId: preId,
lcJudgmentRuleReq: [{ answerId: id, emptyOne: '', emptyTwo: '', operationIds: `${preId},${id}`, type: '' },],
projectId: +sessionStorage.getItem('projectId'),
startTime: sessionStorage.getItem('startTime')
})
},
},
};
</script>
<style lang="scss" scoped>
@import '@/assets/css/tablebg.scss';
@import '@/styles/dialog.scss';
.wrap {
width: 100%;
max-height: calc(100vh - 118px);
padding: 24px;
overflow: auto;
}
/deep/.postLoanDia {
.el-form-item__label {
padding-bottom: 0;
}
}
</style>

@ -0,0 +1,358 @@
<template>
<!-- 贷款还款 -->
<div class="wrap">
<my-title :titleArr="['公司贷款', '贷款还款']" />
<div style="width: 300px;margin-bottom: 20px;">
<el-input v-model="keyword" placeholder="请输入客户姓名" clearable />
</div>
<el-table :data="list" stripe :header-cell-style="headerCellStyle">
<el-table-column prop="customerName" label="客户姓名" align="center" />
<el-table-column prop="applicationNumber" label="贷款编号" align="center" />
<el-table-column prop="totalRepaymentAmount" label="累计还款金额(万)" align="center" />
<el-table-column prop="arrearsAmount" label="欠款金额(万)" align="center">
<template slot-scope="scope">{{ scope.row.arrearsAmount || '-' }}</template>
</el-table-column>
<el-table-column label="操作" align="center" width="240">
<template slot-scope="scope">
<el-button :disabled="!!scope.row.builtIn" @click="toDetail(scope.row)" size="small">{{
scope.row.loanApplicationAmount ? '查看' : '编辑'
}}</el-button>
<template v-if="!scope.row.builtIn">
<el-button size="small" @click="showExtension(scope.row)">展期</el-button>
<el-button @click="repayment(scope.row)" size="small">还款计划</el-button>
</template>
</template>
</el-table-column>
</el-table>
<div class="pagination">
<el-pagination background layout="total, prev, pager, next" :current-page="page"
@current-change="handleCurrentChange" :total="total"></el-pagination>
</div>
<el-dialog title="请选择展期期限" :visible.sync="extensionVisible" width="300px" z-index="6000" :append-to-body="true">
<el-select v-model="extensionPeriod" placeholder="请选择" size="small" style="width: 100%;">
<el-option v-for="(item, i) in extensions" :key="i" :label="item.name" :value="item.id"></el-option>
</el-select>
<span slot="footer" class="dialog-footer">
<el-button @click="extensionVisible = false">取消</el-button>
<el-button type="primary" @click="extensionSubmit">确定</el-button>
</span>
</el-dialog>
<el-dialog title="还款计划" :visible.sync="repaymentVisible" width="1000px" z-index="6000" :append-to-body="true">
<div class="flex j-between a-center m-b-20">
<el-form class="filter-form" label-width="90px" inline>
<el-form-item label="还款周期">
<el-date-picker placeholder="请选择还款周期" v-model="date" align="right" unlink-panels type="daterange"
size="small" start-placeholder="开始日期" end-placeholder="结束日期" format="yyyy-MM-dd" value-format="yyyy-MM-dd"
clearable></el-date-picker>
</el-form-item>
<el-form-item label="还款状态">
<el-select v-model="form.status" placeholder="请选择" size="small" clearable @change="initRepayment">
<el-option value="待还款"></el-option>
<el-option value="已还款"></el-option>
<el-option value="逾期"></el-option>
</el-select>
</el-form-item>
</el-form>
<div>
<el-button @click="batchRepayment('已还款')" size="small" type="primary">批量还款</el-button>
<el-button @click="batchRepayment('逾期')" size="small" type="primary">批量逾期</el-button>
</div>
</div>
<el-table ref="repayments" :data="repayments" stripe header-align="center"
@selection-change="handleSelectionChangeRepayment" row-key="id">
<el-table-column type="selection" width="55" align="center" :reserve-selection="true"
:selectable="checkAble"></el-table-column>
<el-table-column type="index" width="60" label="序号" align="center"></el-table-column>
<el-table-column prop="contractAmount" label="还款周期" align="center">
<template slot-scope="scope">
{{ scope.row.periodStart + '~' + scope.row.periodEnd }}
</template>
</el-table-column>
<el-table-column prop="amountDue" label="应还款" align="center"></el-table-column>
<el-table-column prop="status" label="还款状态" align="center">
<template slot-scope="scope">
<p :class="{ 'text-red': scope.row.status === '逾期' }">{{ scope.row.status }}</p>
</template>
</el-table-column>
<el-table-column label="操作" align="center" width="150">
<template v-if="scope.row.status !== '已还款'" slot-scope="scope">
<el-button @click="handleRepayment(scope.row, '已还款')" size="small">还款</el-button>
<el-button @click="handleRepayment(scope.row, '逾期')" size="small">逾期</el-button>
</template>
</el-table-column>
</el-table>
<div class="pagination">
<el-pagination background layout="total, prev, pager, next" :current-page="pageRepayment"
@current-change="handleCurrentChangePayment" :total="totalRepayment"></el-pagination>
</div>
</el-dialog>
</div>
</template>
<script>
import { headerCellStyle } from '@/assets/js/myConfig'
import { companyLoanList, addExtensionPeriod, repaymentPlanCompany, batchProcessingCompany, addOperation } from '@/api/http';
import MyTitle from '@/components/myTitle'
export default {
name: 'index',
components: {
MyTitle,
},
data () {
return {
headerCellStyle,
searchTimer: null,
keyword: '',
list: [],
page: 1,
pageSize: 10,
total: 0,
curRow: {},
extensionVisible: false,
extensionPeriod: 1,
extensions: [
{
id: 1,
name: '1个月'
},
{
id: 2,
name: '2个月'
},
{
id: 3,
name: '3个月'
},
{
id: 4,
name: '4个月'
},
{
id: 5,
name: '5个月'
},
{
id: 6,
name: '6个月'
},
{
id: 7,
name: '7个月'
},
{
id: 8,
name: '8个月'
},
{
id: 9,
name: '9个月'
},
{
id: 10,
name: '10个月'
},
],
repaymentVisible: false,
repayments: [],
pageRepayment: 1,
pageSizeRepayment: 10,
totalRepayment: 0,
multipleSelection: [],
date: [],
form: {
periodEnd: '',
periodStart: '',
status: '',
},
curRow: {},
}
},
watch: {
keyword: function (val) {
clearTimeout(this.searchTimer);
this.searchTimer = setTimeout(() => {
this.initData()
}, 500)
},
date: function (val) {
if (val) {
this.form.periodStart = val[0]
this.form.periodEnd = val[1]
} else {
this.form.periodStart = ''
this.form.periodEnd = ''
}
this.initRepayment();
},
},
mounted () {
this.initData()
},
methods: {
async getData () {
const { data } = await companyLoanList({
...this.$store.getters['system/commonIds'],
pageNum: this.page,
pageSize: this.pageSize,
searchContent: this.keyword,
typeId: 3
})
this.list = data.page.records
this.total = data.page.total
},
initData () {
this.page = 1
this.getData()
},
handleCurrentChange (val) {
this.page = val
this.getData()
},
//
toDetail (row) {
// id
this.$store.commit('system/setCreditIds', (row ? {
companyLoanId: row.companyLoanId, // tabid
} : {}))
this.$router.push(row.loanAmount ? `/counter/list/manage/corporateLoans-detail?id=${row.companyLoanId}` : '/counter/list/manage/corporateLoans-apply')
},
//
showExtension (row) {
this.curRow = row
this.extensionVisible = true
},
//
async extensionSubmit () {
if (!this.extensionPeriod) return this.$message.error('请选择展期期限!')
const { data } = await addExtensionPeriod({
companyLoanId: this.curRow.companyLoanId,
extensionPeriod: this.extensionPeriod,
})
this.$message.success('展期成功!')
if (data.status === 200) this.extensionVisible = false
const preId = '285,' + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ',766,768'
await addOperation({
parentId: preId,
lcJudgmentRuleReq: [{ answerId: 839, emptyOne: '', emptyTwo: '', operationIds: preId + ',839', type: '' },],
projectId: +sessionStorage.getItem('projectId'),
startTime: sessionStorage.getItem('startTime')
})
this.getData()
},
//
async repayment (row) {
this.curRow = row
this.repaymentVisible = true
this.getRepayment()
},
//
async getRepayment (row) {
const { data } = await repaymentPlanCompany({
pageNum: this.pageRepayment,
pageSize: this.pageSizeRepayment,
...this.form,
companyLoanId: this.curRow.companyLoanId,
})
this.repayments = data.list.records
this.totalRepayment = data.list.total
},
initRepayment () {
this.pageRepayment = 1
this.getRepayment()
},
handleCurrentChangePayment (val) {
this.pageRepayment = val
this.getRepayment()
},
handleSelectionChangeRepayment (val) {
this.multipleSelection = val
},
//
checkAble (row) {
return row.status === '待还款'
},
// /
handleRepayment (row, status) {
const text = status === '已还款' ? '还款' : '逾期'
this.$confirm(`确定要${text}吗?`, "提示", {
type: "warning"
}).then(async () => {
await batchProcessingCompany([{
id: row.id,
status
}])
const answerId = status === '已还款' ? 900 : 901
const preId = '285,' + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ',766,768'
await addOperation({
parentId: preId,
lcJudgmentRuleReq: [{ answerId, emptyOne: '', emptyTwo: '', operationIds: preId + ',' + answerId, type: '' },],
projectId: +sessionStorage.getItem('projectId'),
startTime: sessionStorage.getItem('startTime')
})
this.$message.success(`${text}成功`)
this.getRepayment()
this.getData()
}).catch(() => { })
},
// /
batchRepayment (status) {
const list = this.multipleSelection
if (list.length) {
const text = status === '已还款' ? '还款' : '逾期'
this.$confirm(`确定要${text}吗?`, "提示", {
type: "warning"
}).then(async () => {
const ids = list.map(e => {
return {
id: e.id,
status
}
})
await batchProcessingCompany(ids)
const answerId = status === '已还款' ? 898 : 899
const preId = '285,' + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ',766,768'
await addOperation({
parentId: preId,
lcJudgmentRuleReq: [{ answerId, emptyOne: '', emptyTwo: '', operationIds: preId + ',' + answerId, type: '' },],
projectId: +sessionStorage.getItem('projectId'),
startTime: sessionStorage.getItem('startTime')
})
this.$message.success(`${text}成功`)
this.$refs.repayments.clearSelection()
this.multipleSelection = []
this.getRepayment()
this.getData()
}).catch(() => { })
} else {
this.$message.error(`请选择数据!`)
}
},
}
};
</script>
<style lang="scss" scoped>
@import '@/assets/css/tablebg.scss';
.wrap {
width: 100%;
max-height: calc(100vh - 118px);
padding: 24px;
overflow: auto;
}
</style>

@ -4,19 +4,44 @@
<!-- 存款 --> <!-- 存款 -->
<div class="body"> <div class="body">
<el-row :gutter="20" style="margin: 0"> <el-row :gutter="20"
<el-form ref="form" :model="form" label-width="120px" label-position="right" :rules="rules"> style="margin: 0">
<el-form-item label="主管柜员号" prop="username" style="width: 40vw;"> <el-form ref="form"
<el-input placeholder="请输入账号" :value="form.username" @input="val => checkHanzi(val, form, 'username')" ref="username"></el-input> :model="form"
label-width="120px"
label-position="right"
:rules="rules">
<el-form-item label="主管柜员号"
prop="username"
style="width: 40vw;">
<el-input placeholder="请输入账号"
:value="form.username"
@input="val => checkHanzi(val, form, 'username')"
ref="username"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="登录密码" prop="password" style="width: 40vw;"> <el-form-item label="登录密码"
<el-input placeholder="请输入密码" type="password" :value="form.password" @input="val => checkHanzi(val, form, 'password')" ref="password"></el-input> prop="password"
style="width: 40vw;">
<el-input placeholder="请输入密码"
type="password"
:value="form.password"
@input="val => checkHanzi(val, form, 'password')"
autocomplete=new-password
ref="password"></el-input>
</el-form-item> </el-form-item>
</el-form> </el-form>
</el-row> </el-row>
<my-dialog :moduleName="moduleName" v-if="visible" :visible.sync="visible" :showForm="form" :formName="formName" @submitIt="submitForm2" /> <my-dialog :moduleName="moduleName"
v-if="visible"
:visible.sync="visible"
:showForm="form"
:formName="formName"
@submitIt="submitForm2" />
</div> </div>
<el-button @click="submitIt()" type="primary" class="submitBtn" v-throttle>提交</el-button> <el-button @click="submitIt()"
type="primary"
class="submitBtn"
v-throttle>提交</el-button>
</div> </div>
</template> </template>
@ -38,8 +63,8 @@ export default {
visible: false, visible: false,
moduleName: 'branchDayEnd', moduleName: 'branchDayEnd',
form: { form: {
username: '', username: '180623',
password: '' password: '621229'
}, },
formName: { formName: {
username: '主管柜员号', username: '主管柜员号',
@ -60,7 +85,8 @@ export default {
trigger: 'blur' trigger: 'blur'
} }
] ]
} },
submited: 0
} }
}, },
created () { created () {
@ -83,6 +109,7 @@ export default {
setTipsOperate: 'system/setTipsOperate' setTipsOperate: 'system/setTipsOperate'
}), }),
submitIt () { submitIt () {
if (this.submited) return this.$message.error('已提交!')
this.$refs.form.validate(myValidate(() => { this.$refs.form.validate(myValidate(() => {
this.visible = true; this.visible = true;
}, this.$refs)); }, this.$refs));
@ -101,6 +128,7 @@ export default {
} }
addOperation(params).then((data) => { addOperation(params).then((data) => {
this.submited = 1
// this.$message({ // this.$message({
// message: '', // message: '',
// type: 'success' // type: 'success'
@ -116,7 +144,6 @@ export default {
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.myPadding { .myPadding {
padding: 24px 0 24px 24px; padding: 24px 0 24px 24px;
} }

@ -111,6 +111,7 @@ export default {
} }
], ],
visible:false, visible:false,
submited: 0
} }
}, },
filters: { filters: {
@ -140,6 +141,7 @@ export default {
setTipsOperate: 'system/setTipsOperate' setTipsOperate: 'system/setTipsOperate'
}), }),
submitForm() { submitForm() {
if (this.submited) return this.$message.error('已提交!')
this.$refs.form.validate(myValidate(() => { this.$refs.form.validate(myValidate(() => {
this.visible = true this.visible = true
}, this.$refs)); }, this.$refs));
@ -158,6 +160,7 @@ export default {
} }
addOperation(params).then((data)=>{ addOperation(params).then((data)=>{
this.submited = 1
// this.$message({ // this.$message({
// message: '', // message: '',
// type: 'success' // type: 'success'

@ -5,62 +5,68 @@
<!-- 存款 --> <!-- 存款 -->
<div class="body"> <div class="body">
<el-row :gutter="20" style="margin: 0"> <el-row :gutter="20"
<el-form ref="form" :model="form" label-width="120px" :rules="rules"> style="margin: 0">
<el-col :span="10" :offset="1"> <el-form ref="form"
<el-form-item label="日期" required> :model="form"
label-width="120px"
:rules="rules">
<el-col :span="10"
:offset="1">
<el-form-item label="日期"
required>
<!-- <el-date-picker type="date" placeholder="选择日期" v-model.trim="form.date" style="width: 100%;"></el-date-picker> --> <!-- <el-date-picker type="date" placeholder="选择日期" v-model.trim="form.date" style="width: 100%;"></el-date-picker> -->
<el-input :value="form.date" disabled ref="date"></el-input> <el-input :value="form.date"
disabled
ref="date"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="10" :offset="1"> <el-col :span="10"
<el-form-item label="柜员号" prop="counterNumber"> :offset="1">
<el-input disabled :value="form.counterNumber" @input="(val) => checkHanzi(val, form, 'counterNumber')"></el-input> <el-form-item label="柜员号"
prop="counterNumber">
<el-input disabled
:value="form.counterNumber"
@input="(val) => checkHanzi(val, form, 'counterNumber')"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<!-- <el-col :span="20" :offset="2"> <!-- <el-col :span="20" :offset="2">
</el-col> --> </el-col> -->
<el-table <el-table ref="filterTable"
ref="filterTable"
:data="tableData" :data="tableData"
max-height="550" max-height="550"
:header-cell-style="headerCellStyle" :header-cell-style="headerCellStyle"
style="width: 95%" style="width: 95%"
:rules="rules"> :rules="rules">
<el-table-column <el-table-column prop="certificateName"
prop="certificateName"
label="凭证类型" label="凭证类型"
align="center" align="center">
>
</el-table-column> </el-table-column>
<el-table-column <el-table-column prop="stockNum"
prop="stockNum"
label="库存数量" label="库存数量"
align="center" align="center">
>
</el-table-column> </el-table-column>
<el-table-column <el-table-column prop="startNumber"
prop="startNumber"
label="起始号码" label="起始号码"
align="center" align="center">
>
</el-table-column> </el-table-column>
<el-table-column <el-table-column prop="endNumber"
prop="endNumber"
label="终止号码" label="终止号码"
align="center" align="center">
>
</el-table-column> </el-table-column>
<el-table-column <el-table-column label="钱箱数量"
label="钱箱数量"
align="center" align="center"
width="230" width="230"
prop="boxNumber" prop="boxNumber">
>
<template slot-scope="scope"> <template slot-scope="scope">
<el-form-item :label="scope.row.certificateName + '数量'" required> <el-form-item :label="scope.row.certificateName + '数量'"
<el-input type='text' @input="val => inputListen(val, scope.row)" min="0" :value="scope.row.cashBoxNum" class='numrule'></el-input> required>
<el-input type='text'
@input="val => inputListen(val, scope.row)"
min="0"
:value="scope.row.cashBoxNum"
class='numrule'></el-input>
</el-form-item> </el-form-item>
</template> </template>
</el-table-column> </el-table-column>
@ -68,8 +74,17 @@
</el-form> </el-form>
</el-row> </el-row>
<el-button @click="submitForm" type="primary" class="submitBtn" style="margin-top: 20px;" v-throttle>提交</el-button> <el-button @click="submitForm"
<my-dialog :moduleName="moduleName" v-if="visible" :visible.sync="visible" :showForm="form" :formName="formName" @submitIt="submitForm2" /> type="primary"
class="submitBtn"
style="margin-top: 20px;"
v-throttle>提交</el-button>
<my-dialog :moduleName="moduleName"
v-if="visible"
:visible.sync="visible"
:showForm="form"
:formName="formName"
@submitIt="submitForm2" />
</div> </div>
</div> </div>
@ -159,7 +174,8 @@ export default {
cashBoxNum: '', cashBoxNum: '',
name2: 'transCheck', name2: 'transCheck',
} }
] ],
submited: 0
} }
}, },
created () { created () {
@ -182,6 +198,7 @@ export default {
row.cashBoxNum = Number(val.replace(/\D+/, '')) row.cashBoxNum = Number(val.replace(/\D+/, ''))
}, },
submitForm () { submitForm () {
if (this.submited) return this.$message.error('已提交!')
this.$refs.form.validate(myValidate(() => { this.$refs.form.validate(myValidate(() => {
for (const item of this.tableData) { for (const item of this.tableData) {
if (item.cashBoxNum === '') { if (item.cashBoxNum === '') {
@ -203,8 +220,6 @@ export default {
} }
this.form = { ...this.form, ...obj1 } this.form = { ...this.form, ...obj1 }
this.formName = { ...this.formName, ...obj2 } this.formName = { ...this.formName, ...obj2 }
console.log(obj1)
console.log(obj2)
this.visible = true this.visible = true
}, this.$refs)); }, this.$refs));
}, },
@ -216,6 +231,11 @@ export default {
formList.push({ "answerId": '544', "emptyOne": 99, "emptyTwo": this.form.date, "operationIds": "285," + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ",287,5,32,542,544", "type": "3" }) formList.push({ "answerId": '544', "emptyOne": 99, "emptyTwo": this.form.date, "operationIds": "285," + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ",287,5,32,542,544", "type": "3" })
formList.push({ "answerId": '545', "emptyOne": 100, "emptyTwo": this.form.counterNumber, "operationIds": "285," + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ",287,5,32,542,545", "type": "3" }) formList.push({ "answerId": '545', "emptyOne": 100, "emptyTwo": this.form.counterNumber, "operationIds": "285," + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ",287,5,32,542,545", "type": "3" })
formList.push({ "answerId": '572', "emptyOne": 106, "emptyTwo": this.tableData[0].cashBoxNum, "operationIds": "285," + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ",287,5,32,542,572", "type": "3" })
formList.push({ "answerId": '573', "emptyOne": 107, "emptyTwo": this.tableData[1].cashBoxNum, "operationIds": "285," + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ",287,5,32,542,573", "type": "3" })
formList.push({ "answerId": '574', "emptyOne": 108, "emptyTwo": this.tableData[2].cashBoxNum, "operationIds": "285," + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ",287,5,32,542,574", "type": "3" })
formList.push({ "answerId": '575', "emptyOne": 109, "emptyTwo": this.tableData[3].cashBoxNum, "operationIds": "285," + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ",287,5,32,542,575", "type": "3" })
let params = { let params = {
parentId: '285,' + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ',287,5,32,542', parentId: '285,' + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ',287,5,32,542',
lcJudgmentRuleReq: formList, lcJudgmentRuleReq: formList,
@ -223,6 +243,7 @@ export default {
startTime: startTime, startTime: startTime,
} }
addOperation(params).then((data) => { addOperation(params).then((data) => {
this.submited = 1
// this.$message({ // this.$message({
// message: '', // message: '',
// type: 'success' // type: 'success'
@ -254,5 +275,4 @@ export default {
/deep/.el-input input { /deep/.el-input input {
text-align: center; text-align: center;
} }
</style> </style>

@ -0,0 +1,193 @@
<template>
<!-- 外汇业务 -->
<div class="wrap wrap2">
<div class="nav">
<el-menu :default-active="activeIndex" class="el-menu-demo" mode="horizontal" @select="handleSelect">
<el-menu-item index="1">购汇</el-menu-item>
<el-menu-item index="2">结汇</el-menu-item>
</el-menu>
</div>
<MyTitle :titleArr="['外汇业务', text]" />
<!-- 购汇 -->
<puchasing v-if="activeIndex === '1'"></puchasing>
<!-- 结汇 -->
<settlement v-if="activeIndex === '2'"></settlement>
<el-dialog style="margin-top:10vh" :visible.sync="visible" :modal="false" width="40%" :close-on-click-modal="false"
:show-close="false" custom-class="data-dia">
<div slot="title" class="dia-header">
<div class="data-title">提交</div>
</div>
<div class="popBody">
<h2>本业务需要授权</h2>
</div>
<div class="popBtns">
<el-button class="close btn" @click="visible = false"> </el-button>
<el-button class="sure btn" type="primary" @click="visible = false"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import puchasing from './puchasing.vue'
import settlement from './settlement.vue'
import MyTitle from '@/components/myTitle'
export default {
name: 'index',
components: {
puchasing,
settlement,
MyTitle
},
data () {
return {
text: '',/* 顶部文字 */
cacheVal: '',
textObj: {
'1': '购汇',
'2': '结汇',
},
visible: false,
activeIndex: '1',
}
},
created () {
if (sessionStorage.getItem('foreignExchangeIndex')) {
this.handleSelect(sessionStorage.getItem('foreignExchangeIndex'))
} else {
this.handleSelect('1')
}
},
methods: {
handleSelect (val) {
this.text = this.textObj[val]
this.activeIndex = val
this.cacheVal = val
},
},
destroyed () {
sessionStorage.setItem('foreignExchangeIndex', this.cacheVal)
}
};
</script>
<style lang="scss" scoped>
.wrap {
width: 100%;
display: flex;
flex-direction: column;
overflow: hidden;
padding: 24px 0 24px 24px;
.nav {
/deep/ .el-menu.el-menu--horizontal {
border: 0;
}
/deep/ .el-menu--horizontal>.el-menu-item.is-active {
border: 2px solid #568df2;
border-radius: 10px;
color: #000;
}
/deep/ .el-menu--horizontal>.el-menu-item {
border: 2px solid transparent;
border-radius: 10px;
margin-right: 10px;
height: 30px;
line-height: 28px;
}
}
.title {
height: 60px;
display: flex;
align-items: center;
font-size: 20px;
padding-left: 0px;
margin-top: 10px;
}
.body {
overflow: auto;
.idCard {
border-radius: 5px;
background: #cfddff;
text-align: center;
height: 40px;
line-height: 40px;
font-size: 18px;
color: #6191ff;
}
.add {
position: relative;
&::after {
content: '';
display: block;
position: absolute;
right: 3%;
top: -4%;
border: 1px dashed #cfddff;
width: 88%;
height: 268px;
}
.addBtn {
position: absolute;
left: 0;
top: 50%;
transform: translate(50%, -50%);
font-size: 22px;
}
}
}
.submitBtn {
position: relative;
width: 300px;
font-size: 18px;
height: 45px;
margin-top: 50px;
border-radius: 10px;
bottom: 10px;
left: 50%;
transform: translate(-50%, -50%);
}
.popBody {
min-height: 200px;
display: flex;
align-items: center;
justify-content: center;
text-align: center;
}
.popBtns {
display: flex;
justify-content: space-between;
align-items: center;
.btn {
width: 180px;
border-radius: 10px;
font-size: 18px;
}
.close {
background: #cfdeff;
color: #6191ff;
}
.sure {
background: #6191ff;
color: #fff;
}
}
}
</style>

@ -0,0 +1,311 @@
<!-- 外汇业务-购汇 -->
<template>
<div class="body">
<el-row :gutter="20" style="margin: 0">
<div class="texts">
<p class="text">
<span>购汇人姓名</span>
丛小凤
</p>
<p class="text">
<span>本年额度</span>
已用 等值80.00美元
</p>
<p class="text">
<span></span>
剩余 等值49,200.00美元
</p>
</div>
<el-form ref="form" :rules="rules" :model="form" label-width="120px">
<el-col :span="10" :offset="1">
<el-form-item label="凭证号码" required>
<div v-if='!cardNumberJudge' class="idCard" @click="popUp1('刷卡器')">
<p>请刷卡</p>
</div>
<div v-else>
<el-input maxlength="20" ref="voucherNumber" disabled v-model="form.voucherNumber"
@input="(val) => inputListen(val, form, 'voucherNumber')"></el-input>
<p style="color: #8f8f8f;">可用余额人民币 3,200,000.00</p>
</div>
</el-form-item>
<el-form-item label="钞汇" prop="goldLogo">
<el-select v-model.trim="form.goldLogo" placeholder="请选择" ref="goldLogo">
<el-option v-for="item in goldLogos" :label="item.options" :value="item.itemId" :key="item.itemId">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="购汇用途" prop="buyForeignPurpose">
<el-select v-model.trim="form.buyForeignPurpose" placeholder="请选择">
<el-option v-for="item in getSelectList.buyForeignPurposeList" :label="item.options" :value="item.itemId"
:key="item.itemId"> </el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="10" :offset="1">
<el-form-item label="币种" prop="currency">
<el-select v-model.trim="form.currency" placeholder="请选择" ref="currency">
<el-option v-for="item in getSelectList.allCurrencyList" :label="item.options" :value="item.itemId"
:key="item.itemId"> </el-option>
</el-select>
</el-form-item>
<el-form-item label="外币" prop="money">
<el-input v-model="form.money" maxlength="15" @input="val => ismoney(val, form, 'money')"></el-input>
</el-form-item>
<el-form-item label="支取密码" required>
<div v-if='!form.drawPassword' class="idCard" @click="popUp2('密码器')">
<p>请输入密码</p>
</div>
<div v-else @click="popUp2('密码器')">
<el-input v-model="form.drawPassword" ref="drawPassword" type="password"></el-input>
</div>
</el-form-item>
</el-col>
</el-form>
</el-row>
<el-button @click="submitForm" type="primary" class="submitBtn" v-throttle>提交</el-button>
<my-dialog :moduleName="moduleName" v-if="visible" :visible.sync="visible" :showForm="form" :formName="formName"
:spare="false" @submitIt="submitForm2" :needAuth="needAuth" />
</div>
</template>
<script>
import { myValidate, ismoney, checkName, checkHanzi, messagePassword, messageCard, inputListen } from '@/utils/utilFunction.js'
import { addOperation, getOperation } from '@/api/http'
import { mapMutations, mapGetters } from 'vuex'
import TipsBefore from '@/mixins/tipsBefore'
const moduleName = 'foreignExchange/puchasing'
import MyDialog from '@/components/dialog'
import NeedBefore from '@/components/needBefore'
export default {
name: '',
props: {
depositFinish: Boolean
},
mixins: [TipsBefore],
components: {
MyDialog,
NeedBefore
},
created () {
if (sessionStorage.getItem('foreignExchangePuchasingPassword')) {
this.form.drawPassword = sessionStorage.getItem('foreignExchangePuchasingPassword')
}
if (sessionStorage.getItem('foreignExchangePuchasingBankCard')) {
this.cardNumberJudge = true
const { voucherNumber, goldLogo } = this.dataFlow
this.form.voucherNumber = voucherNumber
}
// this.getFormData()
},
data () {
return {
moduleName,
visible: false,
cardNumberJudge: false,
form: {
voucherNumber: '', //
currency: '',
goldLogo: '',
money: '',
buyForeignPurpose: '',
drawPassword: '',
},
formName: {
voucherNumber: '凭证号码',
currency: '币种',
goldLogo: '钞汇',
money: '外币',
buyForeignPurpose: '购汇用途',
drawPassword: '支取密码',
},
rules: {
currency: [
{
required: true,
message: '请选择币种',
trigger: 'blur'
}
],
goldLogo: [
{
required: true,
message: '请选择钞汇标识',
trigger: 'blur'
}
],
money: [
{
required: true,
message: '请输入外汇金额',
trigger: 'blur'
}
],
buyForeignPurpose: [
{
required: true,
message: '请选择购汇用途',
trigger: 'blur'
}
],
},
goldLogos: [
{
itemId: 150,
options: '现汇(参考牌价712.34)'
},
{
itemId: 151,
options: '现钞(参考牌价712.34)'
},
],
submited: 0
}
},
mounted () {
},
methods: {
...mapMutations({
changeShowGoods: 'system/changeShowGoods',
setDataFlow: 'system/setDataFlow',
setNeedsModule: 'system/setNeedsModule',
setPopId: 'system/setPopId',
setTipsOperate: 'system/setTipsOperate'
}),
getFormData () {
let param = {
parentId: '285,' + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ',287,5,26,57,64'
}
getOperation(param).then((data) => {
console.log(data)
if (data.status == 200) {
var list = data.data.judgmentRuleReqs
for (var i = 0; i < list.length; i++) {
if (list[i].answerId == '85') {
this.cardNumberJudge = true
} //
else if (list[i].answerId == '87') { this.form.currency = +list[i].emptyTwo } //
else if (list[i].answerId == '88') { this.form.goldLogo = +list[i].emptyTwo } //
else if (list[i].answerId == '89') { this.form.money = list[i].emptyTwo } //
else if (list[i].answerId == '90') { this.form.buyForeignPurpose = +list[i].emptyTwo } //
else if (list[i].answerId == '91') {
if (sessionStorage.getItem('nomCurrentWithdrawalPassword')) {
this.form.drawPassword = sessionStorage.getItem('nomCurrentWithdrawalPassword')
} else {
this.form.drawPassword = list[i].emptyTwo
}
}
}
}
}).catch((error) => {
})
},
submitForm () {
if (this.submited) return this.$message.error('已提交!')
if (!this.form.voucherNumber) {
messageCard('请填写凭证号码')
return
}
if (!this.form.drawPassword) {
messagePassword()
return
}
this.$refs.form.validate(myValidate(() => {
this.visible = true;
}, this.$refs));
},
submitForm2 () {
let projectId = sessionStorage.getItem('projectId')
let startTime = sessionStorage.getItem('startTime')
let formList = [];
const { form } = this
const preId = '285,' + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ',287,5,708,753'
formList.push(
{ answerId: 755, emptyOne: '', emptyTwo: '', operationIds: preId + ',755', type: '' },
{ answerId: 756, emptyOne: 123, emptyTwo: form.currency, operationIds: preId + ',756', type: 1 },
{ answerId: 757, emptyOne: 119, emptyTwo: form.goldLogo, operationIds: preId + ',757', type: 1 },
{ answerId: 758, emptyOne: 120, emptyTwo: form.money, operationIds: preId + ',758', type: 3 },
{ answerId: 759, emptyOne: 124, emptyTwo: form.buyForeignPurpose, operationIds: preId + ',759', type: 1 },
{ answerId: 760, emptyOne: 17, emptyTwo: form.drawPassword, operationIds: preId + ',760', type: 3 },
)
let params = {
parentId: preId,
lcJudgmentRuleReq: formList,
projectId: +projectId,
startTime: startTime,
}
addOperation(params).then((data) => {
this.setDataFlow({ ...this.form })
this.submited = 1
}).catch((error) => {
this.$message({
message: '服务器繁忙,提交失败。',
center: true,
type: 'info'
});
})
},
popUp1 (text) {
this.setTipsOperate('请刷银行卡');
this.setPopId('755')
sessionStorage.setItem('computerPath', this.$route.fullPath)
this.$router.push('/counter/list/')
},
popUp2 (text) {
this.setTipsOperate('请在密码器输入密码');
this.setPopId('760')
sessionStorage.setItem('computerPath', this.$route.fullPath)
this.$router.push('/counter/list/')
},
ismoney,
checkName,
checkHanzi,
inputListen,
},
computed: {
...mapGetters({
dataFlow: 'system/dataFlow',
needsModule: 'system/needsModule',
idCardNumber: 'system/idCardNumber',
inMyWork: 'system/inMyWork',
getSelectList: 'system/getSelectList'
}),
needAuth () {
return this.form.money >= 50000
}
},
}
</script>
<style lang='scss' scoped>
.wrap .body {
margin-top: 0;
overflow: auto;
.idCard {
border-radius: 5px;
background: #cfddff;
text-align: center;
height: 40px;
line-height: 40px;
font-size: 18px;
color: #6191ff;
cursor: pointer;
}
.texts {
margin: 30px 0 30px 80px;
font-size: 14px;
color: #666;
.text {
line-height: 1.6;
}
span {
display: inline-block;
width: 90px;
text-align: right;
}
}
}
</style>

@ -0,0 +1,289 @@
<!-- 外汇业务-结汇 -->
<template>
<div class="body">
<el-row :gutter="20" style="margin: 0">
<div class="texts">
<p class="text">
<span>本年额度</span>
已用 等值0.00美元
</p>
<p class="text">
<span></span>
剩余 等值50,000.00美元
</p>
</div>
<el-form ref="form" :rules="rules" :model="form" label-width="120px">
<el-col :span="10" :offset="1">
<el-form-item label="凭证号码" required>
<div v-if='!cardNumberJudge' class="idCard" @click="popUp1('刷卡器')">
<p>请刷卡</p>
</div>
<div v-else>
<el-input maxlength="20" ref="voucherNumber" disabled v-model="form.voucherNumber"
@input="(val) => inputListen(val, form, 'voucherNumber')"></el-input>
<p style="color: #8f8f8f;">可用余额美元 现汇 5000.00</p>
</div>
</el-form-item>
<el-form-item label="外币金额" prop="money">
<el-input v-model="form.money" placeholder="最多可结汇5,000.00" maxlength="15"
@input="val => ismoney(val, form, 'money')"></el-input>
</el-form-item>
<el-form-item label="支取密码" required>
<div v-if='!form.drawPassword' class="idCard" @click="popUp2('密码器')">
<p>请输入密码</p>
</div>
<div v-else @click="popUp2('密码器')">
<el-input v-model="form.drawPassword" ref="drawPassword" type="password"></el-input>
</div>
</el-form-item>
</el-col>
<el-col :span="10" :offset="1">
<el-form-item label="币种" prop="currency">
<el-select v-model.trim="form.currency" placeholder="请选择" disabled>
<el-option :value="153" label="美元 现汇"></el-option>
</el-select>
</el-form-item>
<el-form-item label="资金来源" prop="fundingSource">
<el-select v-model.trim="form.fundingSource" placeholder="请选择">
<el-option v-for="item in getSelectList.fundingSourceList" :label="item.options" :value="item.itemId"
:key="item.itemId"> </el-option>
</el-select>
</el-form-item>
</el-col>
</el-form>
</el-row>
<el-button @click="submitForm" type="primary" class="submitBtn" v-throttle>提交</el-button>
<my-dialog :moduleName="moduleName" v-if="visible" :visible.sync="visible" :showForm="form" :formName="formName"
:spare="false" @submitIt="submitForm2" :needAuth="needAuth" />
</div>
</template>
<script>
import { mobPattern, namePattern, ratePattern, vercustomer } from '@/utils/verify.js'
import { myValidate, ismoney, checkName, checkHanzi, messagePassword, messageCard } from '@/utils/utilFunction.js'
import { addOperation, getOperation } from '@/api/http';
import { mapMutations, mapGetters } from 'vuex'
import TipsBefore from '@/mixins/tipsBefore'
const moduleName = 'foreignExchange/settlement'
import MyDialog from '@/components/dialog'
import NeedBefore from '@/components/needBefore'
export default {
name: '',
props: {
depositFinish: Boolean
},
mixins: [TipsBefore],
components: {
MyDialog,
NeedBefore
},
created () {
if (sessionStorage.getItem('foreignExchangSettlePassword')) {
this.form.drawPassword = sessionStorage.getItem('foreignExchangSettlePassword')
}
if (sessionStorage.getItem('foreignExchangeSettleBankCard')) {
this.cardNumberJudge = true
const { voucherNumber } = this.dataFlow
this.form.voucherNumber = voucherNumber
}
// this.getFormData()
},
data () {
return {
moduleName,
visible: false,
cardNumberJudge: false,
form: {
voucherNumber: '', //
currency: 153,
money: '',
fundingSource: '',
drawPassword: '',
},
formName: {
voucherNumber: '凭证号码',
currency: '币种',
money: '外币金额',
fundingSource: '资金来源',
drawPassword: '支取密码',
},
rules: {
currency: [
{
required: true,
message: '请选择币种',
trigger: 'blur'
}
],
money: [
{
required: true,
message: '请输入外币金额',
trigger: 'blur'
}
],
fundingSource: [
{
required: true,
message: '请选择资金来源',
trigger: 'change'
}
],
},
submited: 0
}
},
mounted () {
},
methods: {
...mapMutations({
changeShowGoods: 'system/changeShowGoods',
setDataFlow: 'system/setDataFlow',
setNeedsModule: 'system/setNeedsModule',
setPopId: 'system/setPopId',
setTipsOperate: 'system/setTipsOperate'
}),
getFormData () {
let param = {
parentId: '285,' + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ',287,5,26,57,64'
}
getOperation(param).then((data) => {
console.log(data)
if (data.status == 200) {
var list = data.data.judgmentRuleReqs
for (var i = 0; i < list.length; i++) {
if (list[i].answerId == '85') {
// sessionStorage.setItem('nomCurrentWithdrawalCard', list[i].emptyTwo)
this.form.cardNumber = list[i].emptyTwo
this.cardNumberJudge = true
} //
else if (list[i].answerId == '86') { this.form.userName = list[i].emptyTwo } //
else if (list[i].answerId == '87') { this.form.currency = +list[i].emptyTwo } //
else if (list[i].answerId == '88') { this.form.goldLogo = +list[i].emptyTwo } //
else if (list[i].answerId == '89') { this.form.money = list[i].emptyTwo } //
else if (list[i].answerId == '90') { this.form.fundingSource = +list[i].emptyTwo } //
// if (list[i].answerId == '91') {sessionStorage.setItem('nomCurrentWithdrawalPassword', list[i].emptyTwo)} //
else if (list[i].answerId == '91') {
console.log(91)
if (sessionStorage.getItem('nomCurrentWithdrawalPassword')) {
this.form.drawPassword = sessionStorage.getItem('nomCurrentWithdrawalPassword')
} else {
this.form.drawPassword = list[i].emptyTwo
}
}
else if (list[i].answerId == '92') { this.form.serviceCharge = list[i].emptyTwo } //
else if (list[i].answerId == '93') { this.form.remark = list[i].emptyTwo } //
}
}
}).catch(() => { })
},
submitForm () {
const { form } = this
if (this.submited) return this.$message.error('已提交!')
if (!form.voucherNumber) {
messageCard('请填写凭证号码')
return
}
if (form.money > 5000) return this.$message.warning('外币金额最多结汇5000.00,请重新输入')
if (!form.drawPassword) {
messagePassword()
return
}
this.$refs.form.validate(myValidate(() => {
this.visible = true;
}, this.$refs));
},
submitForm2 () {
let projectId = sessionStorage.getItem('projectId')
let startTime = sessionStorage.getItem('startTime')
let formList = [];
const { form } = this
const preId = '285,' + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ',287,5,708,754'
formList.push(
{ answerId: 761, emptyOne: '', emptyTwo: '', operationIds: preId + ',761', type: '' },
{ answerId: 762, emptyOne: 8, emptyTwo: form.currency, operationIds: preId + ',762', type: 1 },
{ answerId: 763, emptyOne: 121, emptyTwo: form.money, operationIds: preId + ',763', type: 3 },
{ answerId: 764, emptyOne: 122, emptyTwo: form.fundingSource, operationIds: preId + ',764', type: 1 },
{ answerId: 765, emptyOne: 17, emptyTwo: form.drawPassword, operationIds: preId + ',765', type: 3 },
)
let params = {
parentId: preId,
lcJudgmentRuleReq: formList,
projectId: +projectId,
startTime: startTime,
}
addOperation(params).then((data) => {
this.setDataFlow({ ...this.form })
this.submited = 1
}).catch((error) => {
this.$message({
message: '服务器繁忙,提交失败。',
center: true,
type: 'info'
});
})
},
popUp1 (text) {
this.setTipsOperate('请刷银行卡');
this.setPopId('761')
sessionStorage.setItem('computerPath', this.$route.fullPath)
this.$router.push('/counter/list/')
},
popUp2 (text) {
this.setTipsOperate('请在密码器输入密码');
this.setPopId('765')
sessionStorage.setItem('computerPath', this.$route.fullPath)
this.$router.push('/counter/list/')
},
ismoney,
checkName,
checkHanzi,
},
computed: {
...mapGetters({
dataFlow: 'system/dataFlow',
needsModule: 'system/needsModule',
idCardNumber: 'system/idCardNumber',
inMyWork: 'system/inMyWork',
getSelectList: 'system/getSelectList'
}),
needAuth () {
return this.form.money >= 50000
}
},
}
</script>
<style lang='scss' scoped>
.wrap .body {
margin-top: 0;
overflow: auto;
.idCard {
border-radius: 5px;
background: #cfddff;
text-align: center;
height: 40px;
line-height: 40px;
font-size: 18px;
color: #6191ff;
cursor: pointer;
}
.texts {
margin: 30px 0 30px 80px;
font-size: 14px;
color: #666;
.text {
line-height: 1.6;
}
span {
display: inline-block;
width: 90px;
text-align: right;
}
}
}
</style>

@ -0,0 +1,367 @@
<!-- 网上银行开户 -->
<template>
<div class="wrap wrap2">
<MyTitle :titleArr="['网上银行', '开户']" />
<div class="body">
<el-row :gutter="20">
<el-form ref="form" :model="form" label-width="120px" :rules="rules">
<el-col :span="10" :offset="1">
<el-form-item label="证件类型">
<el-select v-model.trim="form.certificateType" placeholder="请选择">
<el-option label="身份证" :value="83"> </el-option>
</el-select>
</el-form-item>
<el-form-item label="客户号">
<el-input ref="clientNumber" disabled maxlength="20" :value="form.clientNumber"
@input="(val) => checkHanzi(val, form, 'clientNumber')"></el-input>
</el-form-item>
<el-form-item label="币种" prop="currency">
<el-select v-model.trim="form.currency" placeholder="请选择" disabled ref="currency">
<el-option v-for="item in getSelectList.currencySelectList" :label="item.options" :value="item.itemId"
:key="item.itemId"> </el-option>
</el-select>
</el-form-item>
<el-form-item label="凭证类型" prop="voucherType">
<el-select v-model.trim="form.voucherType" placeholder="请选择" disabled ref="voucherType">
<el-option label="IC卡" :value="15"> </el-option>
</el-select>
</el-form-item>
<el-form-item label="开通网上银行" prop="openOnlineBanking">
<el-radio-group v-model.trim="form.openOnlineBanking">
<el-radio :label="146"></el-radio>
<el-radio :label="147"></el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="支取密码" required>
<div v-if='!form.drawPassword' class="idCard" @click="popUp3('密码器')">
<p>请输入密码</p>
</div>
<div v-else @click="popUp3('密码器')">
<el-input :value="form.drawPassword" ref="drawPassword" type="password"></el-input>
</div>
</el-form-item>
</el-col>
<el-col :span="10" :offset="1">
<el-form-item label="证件号码" required>
<div class="idCard" @click="popUp1('身份证扫描仪')" v-if='!idNumberJudge'>
<p>请刷身份证</p>
</div>
<div v-else>
<el-input :value="form.idNumber" disabled ref="idNumber"></el-input>
</div>
</el-form-item>
<el-form-item label="客户姓名" prop="customerName">
<el-input ref="customerName" disabled :value="form.customerName"
@input="(val) => checkName(val, form, 'customerName')"></el-input>
</el-form-item>
<el-form-item label="钞汇标识" prop="goldLogo">
<el-select v-model.trim="form.goldLogo" placeholder="请选择" disabled ref="goldLogo">
<el-option v-for="item in getSelectList.goldLogoSelectList" :label="item.options" :value="item.itemId"
:key="item.itemId"> </el-option>
</el-select>
</el-form-item>
<el-form-item label="凭证号码" required>
<div v-if='!cardNumberJudge' class="idCard" @click="popUp2('刷卡器')">
<p>请刷卡</p>
</div>
<div v-else>
<el-input maxlength="20" ref="voucherNumber" disabled :value="form.voucherNumber"
@input="(val) => inputListen(val, form, 'voucherNumber')"></el-input>
</div>
</el-form-item>
<el-form-item label="开通手机银行" prop="openPhoneBanking">
<el-radio-group v-model.trim="form.openPhoneBanking">
<el-radio :label="148"></el-radio>
<el-radio :label="149"></el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<my-dialog :moduleName="moduleName" v-if="visible" :visible.sync="visible" :showForm="form"
:formName="formName" :spare="false" @submitIt="submitForm2" depositNumber='0816' />
</el-form>
</el-row>
<el-button @click="submitForm" type="primary" class="submitBtn" v-throttle>提交</el-button>
</div>
<my-dialog :moduleName="moduleName" v-if="visible" :visible.sync="visible" :showForm="form" :formName="formName"
:spare="false" @submitIt="submitForm2()" />
</div>
</template>
<script>
import { mapState, mapMutations, mapGetters } from 'vuex'
import { vername, vermob } from '@/utils/verify.js'
import { addOperation, getOperation } from '@/api/http';
import { mobPattern, namePattern, ratePattern, vercustomer } from '@/utils/verify.js'
import { phoneListen, mailBoxListen, checkHanzi, inputListen, myValidate, checkName, messageIdCard, messageCard, messagePassword } from '@/utils/utilFunction.js'
import MyTitle from '@/components/myTitle'
import TipsBefore from '@/mixins/tipsBefore'
import MyDialog from '@/components/dialog'
import NeedBefore from '@/components/needBefore'
const moduleName = 'onlineBank/openAccount'
export default {
data () {
return {
moduleName,
idNumberJudge: false,
visible: false,//
cardNumberJudge: false,
form: {
certificateType: 83, //
idNumber: '',//
clientNumber: '', //
customerName: '', //
currency: 12, //
goldLogo: 13, //
voucherType: 15, //
voucherNumber: '', //
openOnlineBanking: '',
openPhoneBanking: '',
drawPassword: '', //
},
formName: {
certificateType: '证件类型',
idNumber: '证件号码',
clientNumber: '客户号',
customerName: '客户姓名',
currency: '币种',
goldLogo: '钞汇标识',
voucherType: '凭证类型',
voucherNumber: '凭证号码',
openOnlineBanking: '开通网上银行',
openPhoneBanking: '开通手机银行',
drawPassword: '支付密码',
},
rules: {
customerName: vercustomer,
currency: [{
required: true,
message: '请选择币种',
trigger: 'blur'
}
],
goldLogo: [{
required: true,
message: '请选择钞汇标识',
trigger: 'blur'
}
],
voucherType: [{
required: true,
message: '请选择凭证类型',
trigger: 'blur'
}
],
openOnlineBanking: [{
required: true,
message: '请选择开通网上银行',
trigger: 'blur'
}
],
openPhoneBanking: [{
required: true,
message: '请选择开通手机银行',
trigger: 'blur'
}
],
},
authorization: false,//
success: false,//
papers: [
{ name: '身份证', id: 1 }
],
options: [],
gender: [
{ name: '男', id: 1 },
{ name: '女', id: 2 },
],
submited: 0
}
},
components: {
MyTitle,
MyDialog,
NeedBefore
},
created () {
if (sessionStorage.getItem('onlineBankPassword')) {
this.form.drawPassword = sessionStorage.getItem('onlineBankPassword')
}
if (sessionStorage.getItem('onlineBankIdCard')) {
this.idNumberJudge = true
const { idNumber, userName, peopleNumber } = this.dataFlow
this.form.clientNumber = peopleNumber
this.form.idNumber = idNumber
this.form.customerName = userName
}
if (sessionStorage.getItem('onlineBankBankCard')) {
this.cardNumberJudge = true
const { voucherNumber } = this.dataFlow
this.form.voucherNumber = voucherNumber
}
// this.getFormData()
},
mixins: [TipsBefore],
mounted () {
},
methods: {
//
submitIt () {
// console.log(this.dataFlow)
},
getFormData () {
let param = {
parentId: '285,' + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ',287,5,707,741'
}
getOperation(param).then((data) => {
if (data.status == 200) {
var list = data.data.judgmentRuleReqs
for (var i = 0; i < list.length; i++) {
if (list[i].answerId == '40') { this.form.idType = +list[i].emptyTwo }
// if (list[i].answerId == '41') {sessionStorage.setItem('nomClientIdentity', list[i].emptyTwo)}
if (list[i].answerId == '41' && list[i].emptyTwo) {
this.idNumberJudge = true
this.form.idNumber = list[i].emptyTwo
}
}
}
}).catch((error) => { })
},
...mapMutations({
changeShowGoods: 'system/changeShowGoods',
setDataFlow: 'system/setDataFlow',
setNeedsModule: 'system/setNeedsModule',
setPopId: 'system/setPopId',
setTipsOperate: 'system/setTipsOperate'
}),
popUp1 (text) { //
this.setTipsOperate('请刷身份证');
this.setPopId('743')
sessionStorage.setItem('computerPath', this.$route.fullPath)
this.$router.push('/counter/list/')
},
popUp2 (text) {
this.setTipsOperate('请刷银行卡');
this.setPopId('749')
sessionStorage.setItem('computerPath', this.$route.fullPath)
this.$router.push('/counter/list/')
},
popUp3 (text) {
this.setTipsOperate('请在密码器输入密码');
this.setPopId('752')
sessionStorage.setItem('computerPath', this.$route.fullPath)
this.$router.push('/counter/list/')
},
//
submitForm () {
if (this.submited) return this.$message.error('已提交!')
let nomClientIdentity = sessionStorage.getItem('nomClientIdentity')
let consumerClientDragList = JSON.parse(nomClientIdentity);
let nomClientIdentitys = JSON.parse(nomClientIdentity);
if (!this.form.idNumber) {
messageIdCard()
return
}
if (!this.form.voucherNumber) {
messageCard('请填写凭证号码')
return
}
if (!this.form.drawPassword) {
messagePassword()
return
}
this.$refs.form.validate(myValidate(() => {
this.visible = true;
}, this.$refs));
},
submitForm2 () {
let projectId = sessionStorage.getItem('projectId')
let startTime = sessionStorage.getItem('startTime')
let formList = [];
const { form } = this
const preId = '285,' + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ',287,5,707,741'
formList.push(
{ answerId: 742, emptyOne: 19, emptyTwo: form.certificateType, operationIds: preId + ',742', type: 1 },
{ answerId: 743, emptyOne: '', emptyTwo: '', operationIds: preId + ',743', type: '' },
{ answerId: 744, emptyOne: 6, emptyTwo: form.clientNumber, operationIds: preId + ',744', type: 3 },
{ answerId: 745, emptyOne: 7, emptyTwo: form.customerName, operationIds: preId + ',745', type: 3 },
{ answerId: 746, emptyOne: 8, emptyTwo: form.currency, operationIds: preId + ',746', type: 1 },
{ answerId: 747, emptyOne: 9, emptyTwo: form.goldLogo, operationIds: preId + ',747', type: 1 },
{ answerId: 748, emptyOne: 11, emptyTwo: form.voucherType, operationIds: preId + ',748', type: 1 },
{ answerId: 750, emptyOne: 117, emptyTwo: form.openOnlineBanking, operationIds: preId + ',750', type: 1 },
{ answerId: 749, emptyOne: 44, emptyTwo: form.voucherNumber, operationIds: preId + ',749', type: 3 },
{ answerId: 751, emptyOne: 118, emptyTwo: form.openPhoneBanking, operationIds: preId + ',751', type: 1 },
{ answerId: 752, emptyOne: 17, emptyTwo: form.drawPassword, operationIds: preId + ',752', type: 3 },
)
let params = {
parentId: preId,
lcJudgmentRuleReq: formList,
projectId: +projectId,
startTime
}
addOperation(params).then((data) => {
this.setDataFlow({ ...this.form })
this.submited = 1
}).catch((error) => {
this.setTipsOperate('服务器繁忙哦,提交失败。')
})
},
throttle (fn, wait = 1000) {//
var timer = null;
return function () {
var context = this;
var args = fn;
if (!timer) {
timer = setTimeout(function () {
fn.apply(context, fn);
timer = null;
}, wait)
}
}
},
checkHanzi,
phoneListen,
mailBoxListen,
checkName,
inputListen,
},
computed: {
...mapGetters({
dataFlow: 'system/dataFlow',
inMyWork: 'system/inMyWork',
needsModule: 'system/needsModule',
popId: 'system/popId',
getSelectList: 'system/getSelectList',
})
}
};
</script>
<style lang="scss" scoped>
.wrap {
width: 100%;
height: 100%;
display: flex;
flex-direction: column;
overflow: auto;
padding: 24px 0 24px 24px;
.body {
margin-top: 50px;
overflow-y: auto;
overflow-x: hidden;
}
}
</style>

@ -23,15 +23,8 @@
<!-- --> <!-- -->
<el-dialog <el-dialog style="margin-top:10vh" :visible.sync="visible" :modal="false" width="40%" :close-on-click-modal="false"
style="margin-top:10vh" :show-close="false" custom-class="data-dia">
:visible.sync="visible"
:modal="false"
width="40%"
:close-on-click-modal="false"
:show-close="false"
custom-class="data-dia"
>
<div slot="title" class="dia-header"> <div slot="title" class="dia-header">
<div class="data-title" v-throttle>提交</div> <div class="data-title" v-throttle>提交</div>
</div> </div>
@ -97,15 +90,18 @@ export default {
flex-direction: column; flex-direction: column;
overflow: hidden; overflow: hidden;
padding: 24px 0 24px 24px; padding: 24px 0 24px 24px;
.nav { .nav {
/deep/ .el-menu.el-menu--horizontal { /deep/ .el-menu.el-menu--horizontal {
border: 0; border: 0;
} }
/deep/ .el-menu--horizontal>.el-menu-item.is-active { /deep/ .el-menu--horizontal>.el-menu-item.is-active {
border: 2px solid #568DF2; border: 2px solid #568DF2;
border-radius: 10px; border-radius: 10px;
color: #000; color: #000;
} }
/deep/ .el-menu--horizontal>.el-menu-item { /deep/ .el-menu--horizontal>.el-menu-item {
border: 2px solid transparent; border: 2px solid transparent;
border-radius: 10px; border-radius: 10px;
@ -114,6 +110,7 @@ export default {
line-height: 28px; line-height: 28px;
} }
} }
.title { .title {
height: 60px; height: 60px;
display: flex; display: flex;
@ -122,9 +119,11 @@ export default {
padding-left: 0px; padding-left: 0px;
margin-top: 10px; margin-top: 10px;
} }
.body { .body {
margin-top: 50px; margin-top: 50px;
overflow: auto; overflow: auto;
.idCard { .idCard {
border-radius: 5px; border-radius: 5px;
background: #CFDDFF; background: #CFDDFF;
@ -134,8 +133,10 @@ export default {
font-size: 18px; font-size: 18px;
color: #6191FF; color: #6191FF;
} }
.add { .add {
position: relative; position: relative;
&::after { &::after {
content: ''; content: '';
display: block; display: block;
@ -146,6 +147,7 @@ export default {
width: 88%; width: 88%;
height: 268px; height: 268px;
} }
.addBtn { .addBtn {
position: absolute; position: absolute;
left: 0; left: 0;
@ -155,6 +157,7 @@ export default {
} }
} }
} }
.submitBtn { .submitBtn {
position: relative; position: relative;
width: 300px; width: 300px;
@ -166,6 +169,7 @@ export default {
left: 50%; left: 50%;
transform: translate(-50%, -50%); transform: translate(-50%, -50%);
} }
.popBody { .popBody {
min-height: 200px; min-height: 200px;
display: flex; display: flex;
@ -173,19 +177,23 @@ export default {
justify-content: center; justify-content: center;
text-align: center; text-align: center;
} }
.popBtns { .popBtns {
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
align-items: center; align-items: center;
.btn { .btn {
width: 180px; width: 180px;
border-radius: 10px; border-radius: 10px;
font-size: 18px; font-size: 18px;
} }
.close { .close {
background: #CFDEFF; background: #CFDEFF;
color: #6191FF; color: #6191FF;
} }
.sure { .sure {
background: #6191FF; background: #6191FF;
color: #fff; color: #fff;

@ -11,14 +11,16 @@
<div v-else> <div v-else>
<el-input ref="voucherNumber" disabled :value="form.voucherNumber" @input="(val) => inputListen(val, form, 'voucherNumber')"></el-input> <el-input ref="voucherNumber" disabled :value="form.voucherNumber" @input="(val) => inputListen(val, form, 'voucherNumber')"></el-input>
</div> --> </div> -->
<el-input @blur="getDataBlur" ref="voucherNumber" :value="form.voucherNumber" @input="(val) => inputListen(val, form, 'voucherNumber')"></el-input> <el-input @blur="getDataBlur" ref="voucherNumber" :value="form.voucherNumber"
@input="(val) => inputListen(val, form, 'voucherNumber')"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="客户号" prop="customerNumber"> <el-form-item label="客户号" prop="customerNumber">
<el-input v-model.trim="form.customerNumber" disabled></el-input> <el-input v-model.trim="form.customerNumber" disabled></el-input>
</el-form-item> </el-form-item>
<el-form-item label="币种" prop="currency"> <el-form-item label="币种" prop="currency">
<el-select v-model.trim="form.currency" disabled placeholder="请选择" ref="currency"> <el-select v-model.trim="form.currency" disabled placeholder="请选择" ref="currency">
<el-option v-for="item in getSelectList.currencySelectList" :label="item.options" :value="item.itemId" :key="item.itemId"> </el-option> <el-option v-for="item in getSelectList.currencySelectList" :label="item.options" :value="item.itemId"
:key="item.itemId"> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="通知类型" prop="noticeType"> <el-form-item label="通知类型" prop="noticeType">
@ -28,10 +30,11 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="起息日期" prop="breathDate"> <el-form-item label="起息日期" prop="breathDate">
<el-input v-model.trim="form.breathDate" ></el-input> <el-input autocomplete="off" v-model.trim="form.breathDate"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="利息" prop="interest"> <el-form-item label="利息" prop="interest">
<el-input :value="form.interest" disabled @input="val => ismoney(val, form, 'interest')" ref="interest"></el-input> <el-input :value="form.interest" disabled @input="val => ismoney(val, form, 'interest')"
ref="interest"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="支取类别" prop="drawWayType"> <el-form-item label="支取类别" prop="drawWayType">
<el-select v-model.trim="form.drawWayType" disabled placeholder="请选择" ref="drawWayType"> <el-select v-model.trim="form.drawWayType" disabled placeholder="请选择" ref="drawWayType">
@ -60,24 +63,29 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="客户姓名" prop="clientName"> <el-form-item label="客户姓名" prop="clientName">
<el-input :value="form.clientName" disabled @input="(val) => checkName(val, form, 'clientName')" ref="clientName"></el-input> <el-input :value="form.clientName" disabled @input="(val) => checkName(val, form, 'clientName')"
ref="clientName"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="钞汇标识" prop="goldLogo"> <el-form-item label="钞汇标识" prop="goldLogo">
<el-select v-model.trim="form.goldLogo" disabled placeholder="请选择" ref="goldLogo"> <el-select v-model.trim="form.goldLogo" disabled placeholder="请选择" ref="goldLogo">
<el-option v-for="item in getSelectList.goldLogo" :label="item.options" :value="item.itemId" :key="item.itemId"> </el-option> <el-option v-for="item in getSelectList.goldLogo" :label="item.options" :value="item.itemId"
:key="item.itemId"> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="定存编号" prop="depositNumber"> <el-form-item label="定存编号" prop="depositNumber">
<el-input disabled v-model.trim="form.depositNumber"></el-input> <el-input disabled v-model.trim="form.depositNumber"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="本金" prop="capital"> <el-form-item label="本金" prop="capital">
<el-input :value="form.capital" disabled @input="val => ismoney(val, form, 'capital')" ref="capital" ></el-input> <el-input :value="form.capital" disabled @input="val => ismoney(val, form, 'capital')"
ref="capital"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="总金额" prop="totalMoney"> <el-form-item label="总金额" prop="totalMoney">
<el-input :value="form.totalMoney" disabled @input="val => ismoney(val, form, 'totalMoney')" ref="totalMoney" ></el-input> <el-input :value="form.totalMoney" disabled @input="val => ismoney(val, form, 'totalMoney')"
ref="totalMoney"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="支取金额" prop="payMoney"> <el-form-item label="支取金额" prop="payMoney">
<el-input :value="form.payMoney" disabled @input="val => ismoney(val, form, 'payMoney')" ref="payMoney" ></el-input> <el-input :value="form.payMoney" disabled @input="val => ismoney(val, form, 'payMoney')"
ref="payMoney"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="证件号码" required> <el-form-item label="证件号码" required>
@ -93,13 +101,14 @@
</el-form> </el-form>
</el-row> </el-row>
<el-button @click="submitForm" type="primary" class="submitBtn" v-throttle>提交</el-button> <el-button @click="submitForm" type="primary" class="submitBtn" v-throttle>提交</el-button>
<my-dialog :moduleName="moduleName" v-if="visible" :visible.sync="visible" :showForm="form" :formName="formName" @submitIt="submitForm2" depositNumber='0812' /> <my-dialog :moduleName="moduleName" v-if="visible" :visible.sync="visible" :showForm="form" :formName="formName"
@submitIt="submitForm2" depositNumber='0812' />
</div> </div>
<!-- <need-before v-else :moduleName='needBefore' :unNeed="unNeed" /> --> <!-- <need-before v-else :moduleName='needBefore' :unNeed="unNeed" /> -->
</template> </template>
<script> <script>
import { ratePattern, vercustomer } from '@/utils/verify.js' import { ratePattern, vercustomer } from '@/utils/verify.js'
import { myValidate, checkHanzi, checkName, ismoney, autoPlay, autoPlay2, messageIdCard,messageCard, messagePassword, inputListen } from '@/utils/utilFunction.js' import { myValidate, checkHanzi, checkName, ismoney, autoPlay, autoPlay2, messageIdCard, messageCard, messagePassword, inputListen, getNowDate } from '@/utils/utilFunction.js'
import { mapMutations, mapGetters } from 'vuex' import { mapMutations, mapGetters } from 'vuex'
import NeedBefore from '@/components/needBefore' import NeedBefore from '@/components/needBefore'
@ -278,6 +287,7 @@ export default{
"subjectId": 35, "subjectId": 35,
} }
}, },
submited: 0
} }
}, },
created () { created () {
@ -316,9 +326,8 @@ export default{
this.form.currency = currency this.form.currency = currency
this.form.goldLogo = goldLogo this.form.goldLogo = goldLogo
this.form.voucherNumber = voucherNumber this.form.voucherNumber = voucherNumber
this.form.payMoney = payMoney this.form.payMoney = totalMoney
this.form.voucherType = voucherType this.form.voucherType = voucherType
// this.form.idNumber =
} }
if (sessionStorage.getItem('nomCallDepositClosedCard2')) { if (sessionStorage.getItem('nomCallDepositClosedCard2')) {
@ -361,12 +370,13 @@ export default{
return return
} }
const { noticeType, depositNumber, capital, interest, totalMoney, idNumber, const { noticeType, depositNumber, capital, interest, totalMoney, idNumber,
peopleNumber, userName, currency, goldLogo, voucherNumber, payMoney, voucherType } = this.dataFlow peopleNumber, userName, currency, goldLogo, voucherNumber, payMoney, voucherType, money } = this.dataFlow
console.log("🚀 ~ file: accountClosed.vue:458 ~ getDataBlur ~ dataFlow:", this.dataFlow, sessionStorage.getItem('callDeposits/openAccount'))
this.form.certificateType = 83 this.form.certificateType = 83
this.form.voucherType = 123 this.form.voucherType = 123
this.form.noticeType = noticeType this.form.noticeType = noticeType
this.form.depositNumber = depositNumber this.form.depositNumber = depositNumber
this.form.capital = capital this.form.capital = money || 800000
this.form.interest = interest this.form.interest = interest
this.form.totalMoney = totalMoney this.form.totalMoney = totalMoney
// this.form.drawWayType = 93 // this.form.drawWayType = 93
@ -378,8 +388,15 @@ export default{
this.form.currency = currency this.form.currency = currency
this.form.goldLogo = goldLogo this.form.goldLogo = goldLogo
// this.form.voucherNumber = voucherNumber // this.form.voucherNumber = voucherNumber
this.form.payMoney = payMoney this.form.payMoney = totalMoney
this.form.voucherType = voucherType this.form.voucherType = voucherType
let openData = sessionStorage.getItem('callDeposits/openAccount')
if (openData) {
openData = JSON.parse(openData)
this.form.breathDate = openData.createDate
} else {
this.form.breathDate = getNowDate()
}
}, },
popUp (text) { popUp (text) {
// this.$store.commit('system/changePop',{show:true,text, id: '302'}) // this.$store.commit('system/changePop',{show:true,text, id: '302'})
@ -405,6 +422,7 @@ export default{
this.$router.push('/counter/list/') this.$router.push('/counter/list/')
}, },
submitForm () { submitForm () {
if (this.submited) return this.$message.error('已提交!')
if (!this.form.idNumber) { if (!this.form.idNumber) {
messageIdCard() messageIdCard()
return return
@ -435,6 +453,7 @@ export default{
} }
] ]
autoPlay(parentId, this.form, this.myTable2, this.myTable, cards) autoPlay(parentId, this.form, this.myTable2, this.myTable, cards)
this.submited = 1
}, },
ismoney: ismoney, ismoney: ismoney,
checkHanzi: checkHanzi, checkHanzi: checkHanzi,
@ -462,5 +481,4 @@ export default{
// bottom: 10px; // bottom: 10px;
// left: 50%; // left: 50%;
// transform: translate(-50%,0); // transform: translate(-50%,0);
// } // }</style>
</style>

@ -1,88 +1,161 @@
// //
<template> <template>
<div class="body"> <div class="body">
<el-row :gutter="20" style="margin: 0"> <el-row :gutter="20"
<el-form ref="form" :model="form" label-width="120px" :rules="rules"> style="margin: 0">
<el-col :span="10" :offset="1"> <el-form ref="form"
<el-form-item label="证件类型" prop="certificateType"> :model="form"
<el-select v-model.trim="form.certificateType" placeholder="请选择" ref="certificateType"> label-width="120px"
<el-option label="身份证" :value="83"> </el-option> :rules="rules">
<el-col :span="10"
:offset="1">
<el-form-item label="证件类型"
prop="certificateType">
<el-select v-model.trim="form.certificateType"
placeholder="请选择"
ref="certificateType">
<el-option label="身份证"
:value="83"> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="客户号" prop="clientNumber"> <el-form-item label="客户号"
<el-input :value="form.clientNumber" disabled @input="(val) => checkHanzi(val, form, 'clientNumber')" ref="clientNumber"></el-input> prop="clientNumber">
<el-input :value="form.clientNumber"
disabled
@input="(val) => checkHanzi(val, form, 'clientNumber')"
ref="clientNumber"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="币种" prop="currency"> <el-form-item label="币种"
<el-select v-model.trim="form.currency" disabled placeholder="请选择" ref="currency"> prop="currency">
<el-option v-for="item in getSelectList.currencySelectList" :label="item.options" :value="item.itemId" :key="item.itemId"> </el-option> <el-select v-model.trim="form.currency"
disabled
placeholder="请选择"
ref="currency">
<el-option v-for="item in getSelectList.currencySelectList"
:label="item.options"
:value="item.itemId"
:key="item.itemId"> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="凭证类型" prop="voucherType"> <el-form-item label="凭证类型"
<el-select disabled v-model.trim="form.voucherType" placeholder="请选择" ref="voucherType"> prop="voucherType">
<el-option label="存单" :value="123"> </el-option> <el-select disabled
v-model.trim="form.voucherType"
placeholder="请选择"
ref="voucherType">
<el-option label="存单"
:value="123"> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="通知类型" prop="noticeType"> <el-form-item label="通知类型"
<el-select v-model.trim="form.noticeType" placeholder="请选择" ref="noticeType"> prop="noticeType">
<el-option label="1天" :value="95"> </el-option> <el-select v-model.trim="form.noticeType"
<el-option label="7天" :value="96"> </el-option> placeholder="请选择"
ref="noticeType">
<el-option label="1天"
:value="95"> </el-option>
<el-option label="7天"
:value="96"> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="金额" prop="money"> <el-form-item label="金额"
<el-input :value="form.money" maxlength="15" @input="val => ismoney(val, form, 'money')" ref="money"></el-input> prop="money">
<el-input :value="form.money"
maxlength="15"
@input="val => ismoney(val, form, 'money')"
ref="money"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="10" :offset="1"> <el-col :span="10"
<el-form-item label="证件号码" required> :offset="1">
<div class="idCard" @click="popUp('身份证扫描仪')" v-if='!idNumberJudge'> <el-form-item label="证件号码"
required>
<div class="idCard"
@click="popUp('身份证扫描仪')"
v-if='!idNumberJudge'>
<p>请刷身份证</p> <p>请刷身份证</p>
</div> </div>
<div v-else> <div v-else>
<el-input :value="form.idNumber" disabled ref="idNumber"></el-input> <el-input :value="form.idNumber"
disabled
ref="idNumber"></el-input>
</div> </div>
</el-form-item> </el-form-item>
<el-form-item label="客户姓名" prop="customerName"> <el-form-item label="客户姓名"
<el-input disabled :value="form.customerName" @input="(val) => checkName(val, form, 'customerName')" ref="customerName"></el-input> prop="customerName">
<el-input disabled
:value="form.customerName"
@input="(val) => checkName(val, form, 'customerName')"
ref="customerName"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="钞汇标识" prop="goldLogo"> <el-form-item label="钞汇标识"
<el-select v-model.trim="form.goldLogo" disabled placeholder="请选择" ref="goldLogo"> prop="goldLogo">
<el-option v-for="item in getSelectList.goldLogoSelectList" :label="item.options" :value="item.itemId" :key="item.itemId"> </el-option> <el-select v-model.trim="form.goldLogo"
disabled
placeholder="请选择"
ref="goldLogo">
<el-option v-for="item in getSelectList.goldLogoSelectList"
:label="item.options"
:value="item.itemId"
:key="item.itemId"> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="凭证号码" required> <el-form-item label="凭证号码"
required>
<!-- <div v-if='!cardNumberJudge' class="idCard" @click="popUp2('刷卡器')"> <!-- <div v-if='!cardNumberJudge' class="idCard" @click="popUp2('刷卡器')">
<p>请刷卡</p> <p>请刷卡</p>
</div> </div>
<div v-else> <div v-else>
<el-input ref="voucherNumber" disabled :value="form.voucherNumber" @input="(val) => inputListen(val, form, 'voucherNumber')"></el-input> <el-input ref="voucherNumber" disabled :value="form.voucherNumber" @input="(val) => inputListen(val, form, 'voucherNumber')"></el-input>
</div> --> </div> -->
<el-input ref="voucherNumber" :value="form.voucherNumber" @input="(val) => inputListen(val, form, 'voucherNumber')"></el-input> <el-input ref="voucherNumber"
:value="form.voucherNumber"
@input="(val) => inputListen(val, form, 'voucherNumber')"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="存款类别" prop="depositType"> <el-form-item label="存款类别"
<el-select v-model.trim="form.depositType" disabled placeholder="请选择" ref="depositType"> prop="depositType">
<el-option label="现金" :value="92"> </el-option> <el-select v-model.trim="form.depositType"
disabled
placeholder="请选择"
ref="depositType">
<el-option label="现金"
:value="92"> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="支取密码" required> <el-form-item label="支取密码"
<div v-if='!form.drawPassword' class="idCard" @click="popUp3('密码器')"> required>
<div v-if='!form.drawPassword'
class="idCard"
@click="popUp3('密码器')">
<p>请输入密码</p> <p>请输入密码</p>
</div> </div>
<div v-else> <div v-else>
<el-input :value="form.drawPassword" ref="drawPassword" type="password"></el-input> <el-input :value="form.drawPassword"
ref="drawPassword"
type="password"></el-input>
</div> </div>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-form> </el-form>
</el-row> </el-row>
<el-button @click="submitForm" type="primary" class="submitBtn" v-throttle>提交</el-button> <el-button @click="submitForm"
<my-dialog :moduleName="moduleName" v-if="visible" :visible.sync="visible" :showForm="form" :formName="formName" @submitIt="submitForm2" depositNumber='0812' /> type="primary"
class="submitBtn"
v-throttle>提交</el-button>
<my-dialog :moduleName="moduleName"
v-if="visible"
:visible.sync="visible"
:showForm="form"
:formName="formName"
@submitIt="submitForm2"
depositNumber='0812' />
</div> </div>
<!-- <need-before v-else :moduleName='needBefore' :unNeed="unNeed" /> --> <!-- <need-before v-else :moduleName='needBefore' :unNeed="unNeed" /> -->
</template> </template>
<script> <script>
import { mobPattern, namePattern, ratePattern, vercustomer } from '@/utils/verify.js' import { mobPattern, namePattern, ratePattern, vercustomer } from '@/utils/verify.js'
import { myValidate, checkHanzi, checkName, ismoney, autoPlay2, autoPlay, messageIdCard, messageCard, messagePassword, inputListen } from '@/utils/utilFunction.js'; import { myValidate, checkHanzi, checkName, ismoney, autoPlay2, autoPlay, messageIdCard, messageCard, messagePassword, inputListen, getNowDate } from '@/utils/utilFunction.js';
import { mapMutations, mapGetters } from 'vuex' import { mapMutations, mapGetters } from 'vuex'
import NeedBefore from '@/components/needBefore' import NeedBefore from '@/components/needBefore'
@ -120,7 +193,8 @@ export default{
depositType: '', // '' depositType: '', // ''
money: '', // money: '', //
// //
clientNumber: '' // clientNumber: '', //
createDate: getNowDate()
}, },
formName: { formName: {
certificateType: '证件类型', certificateType: '证件类型',
@ -266,6 +340,7 @@ export default{
// type: '1' // type: '1'
// }, // },
}, },
submited: 0
} }
}, },
created () { created () {
@ -349,6 +424,7 @@ export default{
this.$router.push('/counter/list/') this.$router.push('/counter/list/')
}, },
submitForm () { submitForm () {
if (this.submited) return this.$message.error('已提交!')
if (!this.form.idNumber) { if (!this.form.idNumber) {
messageIdCard() messageIdCard()
// let projectId = sessionStorage.getItem('projectId') // let projectId = sessionStorage.getItem('projectId')
@ -401,9 +477,10 @@ export default{
key: '291,13' key: '291,13'
} }
] ]
this.setDataFlow(this.form)
autoPlay(parentId, this.form, this.myTable2, this.myTable, cards) autoPlay(parentId, this.form, this.myTable2, this.myTable, cards)
this.setNeedsModule(moduleName) this.setNeedsModule(moduleName)
this.submited = 1
}, },
ismoney: ismoney, ismoney: ismoney,
checkHanzi: checkHanzi, checkHanzi: checkHanzi,

@ -110,7 +110,8 @@ export default{
"subjectId": 17, "subjectId": 17,
}, },
// cardNumber // cardNumber
} },
submited: 0
} }
}, },
created() { created() {
@ -176,6 +177,7 @@ export default{
setTipsOperate: 'system/setTipsOperate' setTipsOperate: 'system/setTipsOperate'
}), }),
submitForm(){ submitForm(){
if (this.submited) return this.$message.error('已提交!')
if(!this.form.cardNumber || !this.form.userName) { if(!this.form.cardNumber || !this.form.userName) {
this.setTipsOperate('请先完成活期业务 -> 结清'); this.setTipsOperate('请先完成活期业务 -> 结清');
return return
@ -213,6 +215,7 @@ export default{
const parentId = '285,' + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ',287,5,26,57,67' const parentId = '285,' + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ',287,5,26,57,67'
autoPlay(parentId, this.form, this.myTable2, this.myTable, cards) autoPlay(parentId, this.form, this.myTable2, this.myTable, cards)
this.setNeedsModule(moduleName) this.setNeedsModule(moduleName)
this.submited = 1
}, this.$refs)); }, this.$refs));
}, },
popUp1(text) { popUp1(text) {

@ -118,6 +118,7 @@ export default{
} }
] ]
}, },
submited: 0
} }
}, },
created() { created() {
@ -176,7 +177,7 @@ export default{
}), }),
// //
submitForm(){ submitForm(){
if (this.submited) return this.$message.error('已提交!')
if(!this.form.voucherNumber) { if(!this.form.voucherNumber) {
messageCard() messageCard()
return return
@ -216,6 +217,7 @@ export default{
startTime:startTime, startTime:startTime,
} }
addOperation(params).then((data)=>{ addOperation(params).then((data)=>{
this.submited = 1
// this.$message({ // this.$message({
// message: '', // message: '',
// type: 'success' // type: 'success'

@ -7,7 +7,8 @@
<el-form ref="form" :model="form" label-width="120px" :rules="rules"> <el-form ref="form" :model="form" label-width="120px" :rules="rules">
<el-col :span="10" :offset="2"> <el-col :span="10" :offset="2">
<el-form-item label="客户号"> <el-form-item label="客户号">
<el-input :value="form.userNumber" disabled @input="(val) => checkHanzi(val, form, 'userNumber')" ref="userNumber"></el-input> <el-input :value="form.userNumber" disabled @input="(val) => checkHanzi(val, form, 'userNumber')"
ref="userNumber"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="币种" prop="currency"> <el-form-item label="币种" prop="currency">
<el-select v-model.trim="form.currency" placeholder="请选择" ref="currency"> <el-select v-model.trim="form.currency" placeholder="请选择" ref="currency">
@ -17,11 +18,13 @@
</el-col> </el-col>
<el-col :span="10" :offset="1"> <el-col :span="10" :offset="1">
<el-form-item label="客户姓名" prop="userName"> <el-form-item label="客户姓名" prop="userName">
<el-input :value="form.userName" disabled @input="(val) => checkName(val, form, 'userName')" ref="userName"></el-input> <el-input :value="form.userName" disabled @input="(val) => checkName(val, form, 'userName')"
ref="userName"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="钞汇标识" prop="goldLogo"> <el-form-item label="钞汇标识" prop="goldLogo">
<el-select v-model.trim="form.goldLogo" disabled placeholder="请选择" ref="goldLogo"> <el-select v-model.trim="form.goldLogo" disabled placeholder="请选择" ref="goldLogo">
<el-option v-for="item in goldLogoSelectList" :label="item.options" :value="item.itemId" :key="item.itemId"> </el-option> <el-option v-for="item in goldLogoSelectList" :label="item.options" :value="item.itemId"
:key="item.itemId"> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
@ -90,7 +93,8 @@
<p>请刷卡</p> <p>请刷卡</p>
</div> </div>
<div v-else> <div v-else>
<el-input ref="cardNumber" :value="form.cardNumber" disabled @input="(val) => inputListen(val, form, 'cardNumber')"></el-input> <el-input ref="cardNumber" :value="form.cardNumber" disabled
@input="(val) => inputListen(val, form, 'cardNumber')"></el-input>
</div> </div>
</el-form-item> </el-form-item>
<el-form-item label="支取密码" required> <el-form-item label="支取密码" required>
@ -151,7 +155,8 @@
<p>请刷卡</p> <p>请刷卡</p>
</div> </div>
<div v-else> <div v-else>
<el-input ref="cardNumber2" :value="form.cardNumber2" disabled @input="(val) => inputListen(val, form, 'cardNumber2')"></el-input> <el-input ref="cardNumber2" :value="form.cardNumber2" disabled
@input="(val) => inputListen(val, form, 'cardNumber2')"></el-input>
</div> </div>
</el-form-item> </el-form-item>
<el-form-item label="支取密码" required> <el-form-item label="支取密码" required>
@ -210,7 +215,8 @@
<p>请刷卡</p> <p>请刷卡</p>
</div> </div>
<div v-else> <div v-else>
<el-input ref="cardNumber3" :value="form.cardNumber3" disabled @input="(val) => inputListen(val, form, 'cardNumber3')"></el-input> <el-input ref="cardNumber3" :value="form.cardNumber3" disabled
@input="(val) => inputListen(val, form, 'cardNumber3')"></el-input>
</div> </div>
</el-form-item> </el-form-item>
<el-form-item label="支取密码" required> <el-form-item label="支取密码" required>
@ -230,7 +236,8 @@
<el-button @click="formSubmit" type="primary" class="submitBtn" v-throttle>提交</el-button> <el-button @click="formSubmit" type="primary" class="submitBtn" v-throttle>提交</el-button>
</div> </div>
<my-dialog :moduleName="moduleName" v-if="visible" :visible.sync="visible" :showForm="form" :formName="formName" @submitIt="popSure" :needAuth="false" /> <my-dialog :moduleName="moduleName" v-if="visible" :visible.sync="visible" :showForm="form" :formName="formName"
@submitIt="popSure" :needAuth="false" />
</div> </div>
<!-- <need-before v-else :moduleName='needBefore' :unNeed="unNeed" /> --> <!-- <need-before v-else :moduleName='needBefore' :unNeed="unNeed" /> -->
@ -375,6 +382,7 @@ export default {
accountTypeSelectList: [], accountTypeSelectList: [],
drawWaySelectList: [], drawWaySelectList: [],
num: 0, num: 0,
submited: 0
} }
}, },
mixins: [TipsBefore], mixins: [TipsBefore],
@ -667,6 +675,7 @@ export default {
// return; // return;
// } // }
console.log(this.form) console.log(this.form)
if (this.submited) return this.$message.error('已提交!')
this.$refs.form.validate(myValidate(() => { this.$refs.form.validate(myValidate(() => {
@ -758,7 +767,7 @@ export default {
// for (var i=0;i<voucherNumberTwo.length;i++){ // for (var i=0;i<voucherNumberTwo.length;i++){
// formList.push({"answerId":voucherNumberTwo[i].id,"emptyOne": "", "emptyTwo": "", "operationIds": "285," + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id +",287,5,26,57,62,273,"+voucherNumberTwo[i].id,"type": ""}) // formList.push({"answerId":voucherNumberTwo[i].id,"emptyOne": "", "emptyTwo": "", "operationIds": "285," + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id +",287,5,26,57,62,273,"+voucherNumberTwo[i].id,"type": ""})
// } // }
formList.push({"answerId":273,"emptyOne": "44", "emptyTwo": this.form.cardNumber2, "operationIds": "285," + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id +",287,5,26,57,62,273","type": ""}) formList.push({ "answerId": 273, "emptyOne": "44", "emptyTwo": this.form.cardNumber2, "operationIds": "285," + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ",287,5,26,57,62,273", "type": "3" })
} else if (this.formTwo == true) { } else if (this.formTwo == true) {
this.setTipsOperate('有必填项未填哦~'); this.setTipsOperate('有必填项未填哦~');
} }
@ -796,6 +805,7 @@ export default {
startTime: startTime, startTime: startTime,
} }
addOperation(params).then((data) => { addOperation(params).then((data) => {
this.submited = 1
// this.$message({ // this.$message({
// message: '', // message: '',
// type: 'success' // type: 'success'
@ -930,31 +940,36 @@ export default {
.body { .body {
margin-top: 50px; margin-top: 50px;
overflow: auto; overflow: auto;
.idCard { .idCard {
border-radius: 5px; border-radius: 5px;
background: #CFDDFF; background: #cfddff;
text-align: center; text-align: center;
height: 40px; height: 40px;
line-height: 40px; line-height: 40px;
font-size: 18px; font-size: 18px;
color: #6191FF; color: #6191ff;
cursor: pointer; cursor: pointer;
} }
.add { .add {
position: relative; position: relative;
.el-col { .el-col {
padding: 10px 0; padding: 10px 0;
} }
&::after { &::after {
content: ''; content: '';
display: block; display: block;
position: absolute; position: absolute;
right: 3%; right: 3%;
top: -4%; top: -4%;
border: 1px dashed #CFDDFF; border: 1px dashed #cfddff;
width: 88%; width: 88%;
height: 200px; height: 200px;
} }
.addBtn { .addBtn {
position: absolute; position: absolute;
left: 0; left: 0;
@ -964,6 +979,7 @@ export default {
} }
} }
} }
// .submitBtn{ // .submitBtn{
// position: relative; // position: relative;
// width: 300px; // width: 300px;
@ -982,21 +998,25 @@ export default {
justify-content: center; justify-content: center;
text-align: center; text-align: center;
} }
.popBtns { .popBtns {
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
align-items: center; align-items: center;
.btn { .btn {
width: 180px; width: 180px;
border-radius: 10px; border-radius: 10px;
font-size: 18px; font-size: 18px;
} }
.close { .close {
background: #CFDEFF; background: #cfdeff;
color: #6191FF; color: #6191ff;
} }
.sure { .sure {
background: #6191FF; background: #6191ff;
color: #fff; color: #fff;
} }
} }

@ -172,7 +172,8 @@ export default{
"subjectId": 13, "subjectId": 13,
} }
} },
submited: 0
} }
}, },
created() { created() {
@ -235,6 +236,7 @@ export default{
}), }),
// //
submitForm(){ submitForm(){
if (this.submited) return this.$message.error('已提交!')
if(!this.form.cardNumber) { if(!this.form.cardNumber) {
messageCard() messageCard()
return return
@ -267,6 +269,7 @@ export default{
const parentId = '285,' + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ',287,5,26,57,66' const parentId = '285,' + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ',287,5,26,57,66'
autoPlay(parentId, this.form, this.myTable2, this.myTable, cards) autoPlay(parentId, this.form, this.myTable2, this.myTable, cards)
this.setDataFlow({ isSettle: true }) this.setDataFlow({ isSettle: true })
this.submited = 1
}, },
popUp(text) { popUp(text) {
// this.$store.commit('system/changePop',{show:true,text, id: 66}) // this.$store.commit('system/changePop',{show:true,text, id: 66})

@ -185,7 +185,8 @@ export default{
"subjectId": 14, "subjectId": 14,
}, },
} },
submited: 0
} }
}, },
created() { created() {
@ -242,6 +243,7 @@ export default{
}), }),
// //
submitForm(){ submitForm(){
if (this.submited) return this.$message.error('已提交!')
if(!this.form.cardNumber) { if(!this.form.cardNumber) {
messageCard() messageCard()
return return
@ -274,6 +276,7 @@ export default{
autoPlay(parentId, this.form, this.myTable2, this.myTable, cards) autoPlay(parentId, this.form, this.myTable2, this.myTable, cards)
this.setDataFlow({ ...this.form }) this.setDataFlow({ ...this.form })
this.setNeedsModule(moduleName) this.setNeedsModule(moduleName)
this.submited = 1
}, },
popUp(text) { popUp(text) {
// this.$store.commit('system/changePop',{show:true,text, id: 65}) // this.$store.commit('system/changePop',{show:true,text, id: 65})

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save