• 微服务项目:尚融宝(38)(核心业务流程:申请借款额度(1))


    认清现实,放弃幻想,准备斗争

    一、借款人申请额度

    1、需求描述

    平台管理员根据借款人个人信息设置积分,通过积分规则借款人可以获取额度。

    2、相关数据库表

    二、具体步骤

    step1:用户在个人中心点击 “立即借款”  (http://localhost:3000/user/borrower)

    step2:展示借款人信息认证页面

     

    step3:借款人填写信息并提交

    step4:展示等待审核页面

    step5:平台审核

    step6:显示审批结果

     借款人信息表单

    一、步骤导航

    1、参考

    Steps 步骤条:Element - The world's most popular Vue UI frameworkElement,一套为开发者、设计师和产品经理准备的基于 Vue 2.0 的桌面端组件库icon-default.png?t=N7T8https://element.eleme.io/#/zh-CN/component/steps

    Alert 警告:

    2、页面模板

    这个页面比较复杂,因此我们一步一步创建,熟悉页面结构

    创建 pages/user/borrower.vue

    1. <script>
    2. export default {
    3. data() {
    4. let BASE_API = process.env.BASE_API
    5. return {
    6. active: 0, //步骤
    7. borrowerStatus: null,
    8. submitBtnDisabled: false,
    9. //借款人信息
    10. borrower: {
    11. borrowerAttachList: [],
    12. },
    13. educationList: [], //学历列表
    14. industryList: [], //行业列表
    15. incomeList: [], //月收入列表
    16. returnSourceList: [], //还款来源列表
    17. contactsRelationList: [], //联系人关系
    18. uploadUrl: BASE_API + '/api/oss/file/upload', //文件上传地址
    19. }
    20. },
    21. methods: {
    22. save() {
    23. this.submitBtnDisabled = true
    24. this.active = 1
    25. },
    26. },
    27. }
    28. script>

    二、借款人信息页面

    1、个人基本信息

    1. 个人基本信息
    2. <el-form label-width="120px">
    3. <el-form-item label="年龄">
    4. <el-col :span="5">
    5. <el-input v-model="borrower.age" />
    6. el-col>
    7. el-form-item>
    8. <el-form-item label="性别">
    9. <el-select v-model="borrower.sex">
    10. <el-option :value="1" :label="'男'" />
    11. <el-option :value="0" :label="'女'" />
    12. el-select>
    13. el-form-item>
    14. <el-form-item label="婚否">
    15. <el-select v-model="borrower.marry">
    16. <el-option :value="true" :label="'是'" />
    17. <el-option :value="false" :label="'否'" />
    18. el-select>
    19. el-form-item>
    20. <el-form-item label="学历">
    21. <el-select v-model="borrower.education">
    22. <el-option
    23. v-for="item in educationList"
    24. :key="item.value"
    25. :label="item.name"
    26. :value="item.value"
    27. />
    28. el-select>
    29. el-form-item>
    30. <el-form-item label="行业">
    31. <el-select v-model="borrower.industry">
    32. <el-option
    33. v-for="item in industryList"
    34. :key="item.value"
    35. :label="item.name"
    36. :value="item.value"
    37. />
    38. el-select>
    39. el-form-item>
    40. <el-form-item label="月收入">
    41. <el-select v-model="borrower.income">
    42. <el-option
    43. v-for="item in incomeList"
    44. :key="item.value"
    45. :label="item.name"
    46. :value="item.value"
    47. />
    48. el-select>
    49. el-form-item>
    50. <el-form-item label="还款来源">
    51. <el-select v-model="borrower.returnSource">
    52. <el-option
    53. v-for="item in returnSourceList"
    54. :key="item.value"
    55. :label="item.name"
    56. :value="item.value"
    57. />
    58. el-select>
    59. el-form-item>
    60. el-form>

    2、联系人信息 

    1. 联系人信息
    2. <el-form label-width="120px">
    3. <el-form-item label="联系人姓名">
    4. <el-col :span="5">
    5. <el-input v-model="borrower.contactsName" />
    6. el-col>
    7. el-form-item>
    8. <el-form-item label="联系人手机">
    9. <el-col :span="5">
    10. <el-input v-model="borrower.contactsMobile" />
    11. el-col>
    12. el-form-item>
    13. <el-form-item label="联系人关系">
    14. <el-select v-model="borrower.contactsRelation">
    15. <el-option
    16. v-for="item in contactsRelationList"
    17. :key="item.value"
    18. :label="item.name"
    19. :value="item.value"
    20. />
    21. el-select>
    22. el-form-item>
    23. el-form>

    3、身份认证信息 

    1. 身份认证信息
    2. <el-form label-width="120px">
    3. <el-form-item label="身份证人像面">
    4. <el-upload
    5. :on-success="onUploadSuccessIdCard1"
    6. :on-remove="onUploadRemove"
    7. :multiple="false"
    8. :action="uploadUrl"
    9. :data="{ module: 'idCard1' }"
    10. :limit="1"
    11. list-type="picture-card"
    12. >
    13. <i class="el-icon-plus">i>
    14. el-upload>
    15. el-form-item>
    16. <el-form-item label="身份证国徽面">
    17. <el-upload
    18. :on-success="onUploadSuccessIdCard2"
    19. :on-remove="onUploadRemove"
    20. :multiple="false"
    21. :action="uploadUrl"
    22. :data="{ module: 'idCard2' }"
    23. :limit="1"
    24. list-type="picture-card"
    25. >
    26. <i class="el-icon-plus">i>
    27. el-upload>
    28. el-form-item>
    29. el-form>

     4、其他信息

    1. 其他信息
    2. <el-form label-width="120px">
    3. <el-form-item label="房产信息">
    4. <el-upload
    5. :on-success="onUploadSuccessHouse"
    6. :on-remove="onUploadRemove"
    7. :multiple="false"
    8. :action="uploadUrl"
    9. :data="{ module: 'house' }"
    10. list-type="picture-card"
    11. >
    12. <i class="el-icon-plus">i>
    13. el-upload>
    14. el-form-item>
    15. <el-form-item label="车辆信息">
    16. <el-upload
    17. :on-success="onUploadSuccessCar"
    18. :on-remove="onUploadRemove"
    19. :multiple="false"
    20. :action="uploadUrl"
    21. :data="{ module: 'car' }"
    22. list-type="picture-card"
    23. >
    24. <i class="el-icon-plus">i>
    25. el-upload>
    26. el-form-item>
    27. el-form>

    5、文件上传

    pages/user/borrower.vue

    定义methods:

    1. onUploadSuccessIdCard1(response, file) {
    2. this.onUploadSuccess(response, file, 'idCard1')
    3. },
    4. onUploadSuccessIdCard2(response, file) {
    5. this.onUploadSuccess(response, file, 'idCard2')
    6. },
    7. onUploadSuccessHouse(response, file) {
    8. this.onUploadSuccess(response, file, 'house')
    9. },
    10. onUploadSuccessCar(response, file) {
    11. this.onUploadSuccess(response, file, 'car')
    12. },
    13. onUploadSuccess(response, file, type) {
    14. // debugger
    15. if (response.code !== 0) {
    16. this.$message.error(response.message)
    17. return
    18. }
    19. // 填充上传文件列表
    20. this.borrower.borrowerAttachList.push({
    21. imageName: file.name,
    22. imageUrl: response.data.url,
    23. imageType: type,
    24. })
    25. },
    26. onUploadRemove(file, fileList) {
    27. console.log('fileList', fileList)
    28. //删除oss服务器上的内容
    29. this.$axios
    30. .$delete('/api/oss/file/remove?url=' + file.response.data.url)
    31. .then((response) => {
    32. // debugger
    33. console.log('远程删除')
    34. this.borrower.borrowerAttachList = this.borrower.borrowerAttachList.filter(
    35. function(item) {
    36. console.log('item', item)
    37. return item.imageUrl != file.response.data.url
    38. }
    39. )
    40. })
    41. },

     

  • 相关阅读:
    vue项目npm install报错解决
    软件测试/测试开发/人工智能丨​Python运算符解析,小白也能轻松get
    XML学习笔记
    Request之获取请求数据的方法 [JavaWeb][Servlet]
    css主题切换
    记录一次内存泄漏排查过程
    音频设备初始化与输出:QT与SDL策略模式的实现
    JSqlParser生成修改表定义SQL语句
    python的文件目录操作 1
    传奇服务端服务端运行7个窗口的各窗口功能讲解
  • 原文地址:https://blog.csdn.net/m0_62436868/article/details/126846351