Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

tloanapply-add-or-update.vue 12KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296
  1. <template>
  2. <el-dialog :visible.sync="visible" :title="!dataForm.id ? $t('add') : $t('update')" :close-on-click-modal="false" :close-on-press-escape="false">
  3. <el-form :model="dataForm" :rules="dataRule" ref="dataForm" @keyup.enter.native="dataFormSubmitHandle()" :label-width="$i18n.locale === 'en-US' ? '120px' : '80px'">
  4. <el-form-item label="借款申请流水号" prop="applyNo">
  5. <el-input v-model="dataForm.applyNo" placeholder="借款申请流水号"></el-input>
  6. </el-form-item>
  7. <el-form-item label="客户编号" prop="custCode">
  8. <el-input v-model="dataForm.custCode" placeholder="客户编号"></el-input>
  9. </el-form-item>
  10. <el-form-item label="姓名" prop="custName">
  11. <el-input v-model="dataForm.custName" placeholder="姓名"></el-input>
  12. </el-form-item>
  13. <el-form-item label="手机号" prop="mobile">
  14. <el-input v-model="dataForm.mobile" placeholder="手机号"></el-input>
  15. </el-form-item>
  16. <el-form-item label="银行卡号" prop="bankCardNo">
  17. <el-input v-model="dataForm.bankCardNo" placeholder="银行卡号"></el-input>
  18. </el-form-item>
  19. <el-form-item label="证件号码" prop="idNo">
  20. <el-input v-model="dataForm.idNo" placeholder="证件号码"></el-input>
  21. </el-form-item>
  22. <el-form-item label="产品编号" prop="productCode">
  23. <el-input v-model="dataForm.productCode" placeholder="产品编号"></el-input>
  24. </el-form-item>
  25. <el-form-item label="借款编号" prop="agreementCode">
  26. <el-input v-model="dataForm.agreementCode" placeholder="借款编号"></el-input>
  27. </el-form-item>
  28. <el-form-item label="债权转让方Code" prop="loanCode">
  29. <el-input v-model="dataForm.loanCode" placeholder="债权转让方Code"></el-input>
  30. </el-form-item>
  31. <el-form-item label="债权转让方公司名" prop="loanName">
  32. <el-input v-model="dataForm.loanName" placeholder="债权转让方公司名"></el-input>
  33. </el-form-item>
  34. <el-form-item label="债权转让方银行卡" prop="loanCardNo">
  35. <el-input v-model="dataForm.loanCardNo" placeholder="债权转让方银行卡"></el-input>
  36. </el-form-item>
  37. <el-form-item label="资金平台Code" prop="capitalPlatformCode">
  38. <el-input v-model="dataForm.capitalPlatformCode" placeholder="资金平台Code"></el-input>
  39. </el-form-item>
  40. <el-form-item label="借款申请时间" prop="loanApplyTime">
  41. <el-input v-model="dataForm.loanApplyTime" placeholder="借款申请时间"></el-input>
  42. </el-form-item>
  43. <el-form-item label="借款金额" prop="loanAmount">
  44. <el-input v-model="dataForm.loanAmount" placeholder="借款金额"></el-input>
  45. </el-form-item>
  46. <el-form-item label="交易手续费" prop="loanAmountFee">
  47. <el-input v-model="dataForm.loanAmountFee" placeholder="交易手续费"></el-input>
  48. </el-form-item>
  49. <el-form-item label="借款期限" prop="initPeriod">
  50. <el-input v-model="dataForm.initPeriod" placeholder="借款期限"></el-input>
  51. </el-form-item>
  52. <el-form-item label="借款期限单位" prop="periodUnitCode">
  53. <el-input v-model="dataForm.periodUnitCode" placeholder="借款期限单位"></el-input>
  54. </el-form-item>
  55. <el-form-item label="借款期数" prop="loanPeriod">
  56. <el-input v-model="dataForm.loanPeriod" placeholder="借款期数"></el-input>
  57. </el-form-item>
  58. <el-form-item label="借款用途" prop="loanUsage">
  59. <el-input v-model="dataForm.loanUsage" placeholder="借款用途"></el-input>
  60. </el-form-item>
  61. <el-form-item label="借款利率" prop="loanRate">
  62. <el-input v-model="dataForm.loanRate" placeholder="借款利率"></el-input>
  63. </el-form-item>
  64. <el-form-item label="计息方式" prop="interestTypeCode">
  65. <el-input v-model="dataForm.interestTypeCode" placeholder="计息方式"></el-input>
  66. </el-form-item>
  67. <el-form-item label="还款方式" prop="repaymentTypeCode">
  68. <el-input v-model="dataForm.repaymentTypeCode" placeholder="还款方式"></el-input>
  69. </el-form-item>
  70. <el-form-item label="合同利率" prop="contractRate">
  71. <el-input v-model="dataForm.contractRate" placeholder="合同利率"></el-input>
  72. </el-form-item>
  73. <el-form-item label="逾期利率" prop="overdueRate">
  74. <el-input v-model="dataForm.overdueRate" placeholder="逾期利率"></el-input>
  75. </el-form-item>
  76. <el-form-item label="借款开始时间" prop="loanStartTime">
  77. <el-input v-model="dataForm.loanStartTime" placeholder="借款开始时间"></el-input>
  78. </el-form-item>
  79. <el-form-item label="借款结束时间" prop="loanEndTime">
  80. <el-input v-model="dataForm.loanEndTime" placeholder="借款结束时间"></el-input>
  81. </el-form-item>
  82. <el-form-item label="协议确认时间" prop="agreementConfirmTime">
  83. <el-input v-model="dataForm.agreementConfirmTime" placeholder="协议确认时间"></el-input>
  84. </el-form-item>
  85. <el-form-item label="借款人是否已网签0:未;1:已" prop="isOpen">
  86. <el-input v-model="dataForm.isOpen" placeholder="借款人是否已网签0:未;1:已"></el-input>
  87. </el-form-item>
  88. <el-form-item label="待签约,待放款,放款中,成功,失败" prop="applyStatus">
  89. <el-input v-model="dataForm.applyStatus" placeholder="待签约,待放款,放款中,成功,失败"></el-input>
  90. </el-form-item>
  91. <el-form-item label="版本号" prop="version">
  92. <el-input v-model="dataForm.version" placeholder="版本号"></el-input>
  93. </el-form-item>
  94. <el-form-item label="备注" prop="remark">
  95. <el-input v-model="dataForm.remark" placeholder="备注"></el-input>
  96. </el-form-item>
  97. </el-form>
  98. <template slot="footer">
  99. <el-button @click="visible = false">{{ $t('cancel') }}</el-button>
  100. <el-button type="primary" @click="dataFormSubmitHandle()">{{ $t('confirm') }}</el-button>
  101. </template>
  102. </el-dialog>
  103. </template>
  104. <script>
  105. import debounce from 'lodash/debounce'
  106. export default {
  107. data () {
  108. return {
  109. visible: false,
  110. dataForm: {
  111. id: '',
  112. applyNo: '',
  113. custCode: '',
  114. custName: '',
  115. mobile: '',
  116. bankCardNo: '',
  117. idNo: '',
  118. productCode: '',
  119. agreementCode: '',
  120. loanCode: '',
  121. loanName: '',
  122. loanCardNo: '',
  123. capitalPlatformCode: '',
  124. loanApplyTime: '',
  125. loanAmount: '',
  126. loanAmountFee: '',
  127. initPeriod: '',
  128. periodUnitCode: '',
  129. loanPeriod: '',
  130. loanUsage: '',
  131. loanRate: '',
  132. interestTypeCode: '',
  133. repaymentTypeCode: '',
  134. contractRate: '',
  135. overdueRate: '',
  136. loanStartTime: '',
  137. loanEndTime: '',
  138. agreementConfirmTime: '',
  139. isOpen: '',
  140. applyStatus: '',
  141. createTime: '',
  142. createBy: '',
  143. updateTime: '',
  144. updateBy: '',
  145. version: '',
  146. remark: ''
  147. }
  148. }
  149. },
  150. computed: {
  151. dataRule () {
  152. return {
  153. applyNo: [
  154. { required: true, message: this.$t('validate.required'), trigger: 'blur' }
  155. ],
  156. custCode: [
  157. { required: true, message: this.$t('validate.required'), trigger: 'blur' }
  158. ],
  159. custName: [
  160. { required: true, message: this.$t('validate.required'), trigger: 'blur' }
  161. ],
  162. mobile: [
  163. { required: true, message: this.$t('validate.required'), trigger: 'blur' }
  164. ],
  165. bankCardNo: [
  166. { required: true, message: this.$t('validate.required'), trigger: 'blur' }
  167. ],
  168. idNo: [
  169. { required: true, message: this.$t('validate.required'), trigger: 'blur' }
  170. ],
  171. productCode: [
  172. { required: true, message: this.$t('validate.required'), trigger: 'blur' }
  173. ],
  174. agreementCode: [
  175. { required: true, message: this.$t('validate.required'), trigger: 'blur' }
  176. ],
  177. loanCode: [
  178. { required: true, message: this.$t('validate.required'), trigger: 'blur' }
  179. ],
  180. loanName: [
  181. { required: true, message: this.$t('validate.required'), trigger: 'blur' }
  182. ],
  183. loanCardNo: [
  184. { required: true, message: this.$t('validate.required'), trigger: 'blur' }
  185. ],
  186. capitalPlatformCode: [
  187. { required: true, message: this.$t('validate.required'), trigger: 'blur' }
  188. ],
  189. loanApplyTime: [
  190. { required: true, message: this.$t('validate.required'), trigger: 'blur' }
  191. ],
  192. loanAmount: [
  193. { required: true, message: this.$t('validate.required'), trigger: 'blur' }
  194. ],
  195. loanAmountFee: [
  196. { required: true, message: this.$t('validate.required'), trigger: 'blur' }
  197. ],
  198. initPeriod: [
  199. { required: true, message: this.$t('validate.required'), trigger: 'blur' }
  200. ],
  201. periodUnitCode: [
  202. { required: true, message: this.$t('validate.required'), trigger: 'blur' }
  203. ],
  204. loanPeriod: [
  205. { required: true, message: this.$t('validate.required'), trigger: 'blur' }
  206. ],
  207. loanUsage: [
  208. { required: true, message: this.$t('validate.required'), trigger: 'blur' }
  209. ],
  210. loanRate: [
  211. { required: true, message: this.$t('validate.required'), trigger: 'blur' }
  212. ],
  213. interestTypeCode: [
  214. { required: true, message: this.$t('validate.required'), trigger: 'blur' }
  215. ],
  216. repaymentTypeCode: [
  217. { required: true, message: this.$t('validate.required'), trigger: 'blur' }
  218. ],
  219. contractRate: [
  220. { required: true, message: this.$t('validate.required'), trigger: 'blur' }
  221. ],
  222. overdueRate: [
  223. { required: true, message: this.$t('validate.required'), trigger: 'blur' }
  224. ],
  225. loanStartTime: [
  226. { required: true, message: this.$t('validate.required'), trigger: 'blur' }
  227. ],
  228. loanEndTime: [
  229. { required: true, message: this.$t('validate.required'), trigger: 'blur' }
  230. ],
  231. agreementConfirmTime: [
  232. { required: true, message: this.$t('validate.required'), trigger: 'blur' }
  233. ],
  234. isOpen: [
  235. { required: true, message: this.$t('validate.required'), trigger: 'blur' }
  236. ],
  237. applyStatus: [
  238. { required: true, message: this.$t('validate.required'), trigger: 'blur' }
  239. ],
  240. version: [
  241. { required: true, message: this.$t('validate.required'), trigger: 'blur' }
  242. ],
  243. remark: [
  244. { required: true, message: this.$t('validate.required'), trigger: 'blur' }
  245. ]
  246. }
  247. }
  248. },
  249. methods: {
  250. init () {
  251. this.visible = true
  252. this.$nextTick(() => {
  253. this.$refs['dataForm'].resetFields()
  254. if (this.dataForm.id) {
  255. this.getInfo()
  256. }
  257. })
  258. },
  259. // 获取信息
  260. getInfo () {
  261. this.$http.get(`/loan/tloanapply/${this.dataForm.id}`).then(({ data: res }) => {
  262. if (res.code !== 0) {
  263. return this.$message.error(res.msg)
  264. }
  265. this.dataForm = {
  266. ...this.dataForm,
  267. ...res.data
  268. }
  269. }).catch(() => {})
  270. },
  271. // 表单提交
  272. dataFormSubmitHandle: debounce(function () {
  273. this.$refs['dataForm'].validate((valid) => {
  274. if (!valid) {
  275. return false
  276. }
  277. this.$http[!this.dataForm.id ? 'post' : 'put']('/loan/tloanapply/', this.dataForm).then(({ data: res }) => {
  278. if (res.code !== 0) {
  279. return this.$message.error(res.msg)
  280. }
  281. this.$message({
  282. message: this.$t('prompt.success'),
  283. type: 'success',
  284. duration: 500,
  285. onClose: () => {
  286. this.visible = false
  287. this.$emit('refreshDataList')
  288. }
  289. })
  290. }).catch(() => {})
  291. })
  292. }, 1000, { 'leading': true, 'trailing': false })
  293. }
  294. }
  295. </script>