Compare commits

..

41 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
  1. 6
      package-lock.json
  2. 1
      package.json
  3. 18
      src/App.vue
  4. 81
      src/api/api.js
  5. 153
      src/api/http.js
  6. BIN
      src/assets/img/arrow-right.png
  7. BIN
      src/assets/img/goods/syb.jpg
  8. BIN
      src/assets/img/goods/xjllb.jpg
  9. BIN
      src/assets/img/goods/zcfzb.jpg
  10. 1
      src/assets/img/systemInput/个人贷款.svg
  11. 1
      src/assets/img/systemInput/代理业务.svg
  12. 1
      src/assets/img/systemInput/公司贷款.svg
  13. 1
      src/assets/img/systemInput/外汇业务.svg
  14. 1
      src/assets/img/systemInput/网上银行.svg
  15. 338
      src/components/case/index.vue
  16. 214
      src/components/dialog/index.vue
  17. 104
      src/components/dialogTwo/index.vue
  18. 42
      src/layouts/header/index.vue
  19. 12
      src/layouts/home/index.vue
  20. 162
      src/libs/util.js
  21. 4
      src/main.js
  22. 9
      src/main.js.rej
  23. 29
      src/mixins/tipsBefore/index.js
  24. 928
      src/pages/counter/list/index.vue
  25. 113
      src/pages/counter/list/myConfig.js
  26. 93
      src/pages/index/list/index.vue
  27. 324
      src/pages/manage/index/index.vue
  28. 116
      src/pages/manage/list/ImportantCash/controlCash/index.vue
  29. 126
      src/pages/manage/list/ImportantCash/controlCash2/index.vue
  30. 141
      src/pages/manage/list/ImportantCash/controlCash3/index.vue
  31. 207
      src/pages/manage/list/agent/agent.vue
  32. 396
      src/pages/manage/list/agent/electricRate.vue
  33. 388
      src/pages/manage/list/agent/telRate.vue
  34. 373
      src/pages/manage/list/agent/waterRate.vue
  35. 78
      src/pages/manage/list/business/transfer.vue
  36. 197
      src/pages/manage/list/client/consumerClient.vue
  37. 111
      src/pages/manage/list/corporateLoans/application.vue
  38. 480
      src/pages/manage/list/corporateLoans/apply/creditApplication/index.vue
  39. 253
      src/pages/manage/list/corporateLoans/apply/creditEvaluation/basic.vue
  40. 139
      src/pages/manage/list/corporateLoans/apply/creditEvaluation/importReport.vue
  41. 294
      src/pages/manage/list/corporateLoans/apply/creditEvaluation/preLoan.vue
  42. 314
      src/pages/manage/list/corporateLoans/apply/creditEvaluation/rating.vue
  43. 257
      src/pages/manage/list/corporateLoans/apply/index.vue
  44. 215
      src/pages/manage/list/corporateLoans/apply/loanApplication/step1.vue
  45. 285
      src/pages/manage/list/corporateLoans/apply/loanApplication/step2.vue
  46. 302
      src/pages/manage/list/corporateLoans/detail.vue
  47. 112
      src/pages/manage/list/corporateLoans/loan.vue
  48. 405
      src/pages/manage/list/corporateLoans/management.vue
  49. 358
      src/pages/manage/list/corporateLoans/repayment.vue
  50. 193
      src/pages/manage/list/foreignExchange/foreignExchange.vue
  51. 311
      src/pages/manage/list/foreignExchange/puchasing.vue
  52. 289
      src/pages/manage/list/foreignExchange/settlement.vue
  53. 367
      src/pages/manage/list/onlineBank/openAccount.vue
  54. 98
      src/pages/manage/list/personal/accountService/accountService.vue
  55. 187
      src/pages/manage/list/personal/callDeposits/accountClosed.vue
  56. 394
      src/pages/manage/list/personal/currentAccount/openAccount.vue
  57. 93
      src/pages/manage/list/personal/timeDeposit/deposit.vue
  58. 109
      src/pages/manage/list/personal/timeDeposit/openAccount.vue
  59. 96
      src/pages/manage/list/personal/usefulPhrases/openAccount.vue
  60. 715
      src/pages/manage/list/personalLoans/detail.vue
  61. 169
      src/pages/manage/list/personalLoans/index.vue
  62. 323
      src/pages/manage/list/personalLoans/list.vue
  63. 132
      src/pages/manage/navbar/index.vue
  64. 213
      src/pages/report/index.vue
  65. 69
      src/router/modules/counter.js
  66. 15
      src/router/routes.js
  67. 3
      src/setting.js
  68. 1760
      src/store/modules/system.js
  69. 82
      src/store/modules/user.js
  70. 10
      src/styles/common.scss
  71. 55
      src/styles/dialog.scss
  72. 146
      src/utils/utilFunction.js
  73. 74
      test.js
  74. 264886
      test2.js
  75. 39
      vue.config.js

6
package-lock.json generated

@ -8298,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",

@ -18,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,8 +1,6 @@
<template> <template>
<div id="app"> <div id="app">
<select-business class="selectBusiness" <select-business class="selectBusiness" :showIt.sync="showIt" v-show="!showIt && showBusiness && !submited" />
: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" />
@ -27,8 +25,6 @@ export default {
//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
@ -36,9 +32,7 @@ export default {
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 () {
@ -95,6 +89,7 @@ export default {
font-size: 16px; font-size: 16px;
min-width: $inner-width; min-width: $inner-width;
} }
.selectBusiness { .selectBusiness {
width: 100%; width: 100%;
height: 100%; height: 100%;
@ -104,7 +99,12 @@ export default {
.fade-leave-active { .fade-leave-active {
transition: opacity 0.5s; 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' // 开发环境
@ -8,14 +10,17 @@ if (dev) {
// 本地 // 本地
host = 'http://121.37.12.51/' // 中台测试服 host = 'http://121.37.12.51/' // 中台测试服
// host = 'https://www.occupationlab.com/' // 正式服 // host = 'https://www.occupationlab.com/' // 正式服
// host = 'http://192.168.31.151:9000/' // 榕 // host = 'http://192.168.31.51:9000/'
// host = 'http://192.168.31.116: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
@ -25,79 +30,99 @@ 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)
} }
) )
let tokens let tokens
let token let token
var reg = new RegExp('(^|&)'+'token'+'=([^&]*)(&|$)') var reg = new RegExp('(^|&)' + 'token' + '=([^&]*)(&|$)')
if(window.location.href.split('?')[1]){ if (window.location.href.split('?')[1]) {
var r = window.location.href.split('?')[1].match(reg) var r = window.location.href.split('?')[1].match(reg)
if (r != null){ if (r != null) {
tokens = (r[2]) tokens = (r[2])
}else{ } else {
tokens = null tokens = null
} }
} }
if(tokens){ if (tokens) {
token = tokens token = tokens
}else{ } else {
token = sessionStorage.getItem('token') token = sessionStorage.getItem('token')
} }
export function get(url, params = {}) { export function get (url, params = {}) {
// params.t = new Date().getTime(); //get方法加一个时间参数,解决ie下可能缓存问题. // params.t = new Date().getTime(); //get方法加一个时间参数,解决ie下可能缓存问题.
return service({ return service({
url: url, url: url,
method: 'get', method: 'get',
headers: { headers: {
token:token token: token
}, },
params params
}) })
} }
//封装post请求 //封装post请求
export function post(url, data = {}) { export function post (url, data = {}) {
//默认配置 //默认配置
let sendObject={ let sendObject = {
url: url, url: url,
method: 'post', method: 'post',
headers: { headers: {
'Content-Type':'application/json;charset=UTF-8', 'Content-Type': 'application/json;charset=UTF-8',
token:token token: token
}, },
data:data data: data
}; };
sendObject.data=JSON.stringify(data); sendObject.data = JSON.stringify(data);
return service(sendObject) return service(sendObject)
} }
//封装put方法 (resfulAPI常用) //封装put方法 (resfulAPI常用)
export function put(url,data = {}){ export function put (url, data = {}) {
return service({ return service({
url: url, url: url,
method: 'put', method: 'put',
headers: { headers: {
'Content-Type':'application/json;charset=UTF-8', 'Content-Type': 'application/json;charset=UTF-8',
token:token token: token
}, },
data:JSON.stringify(data) data: JSON.stringify(data)
}) })
} }
//删除方法(resfulAPI常用) //删除方法(resfulAPI常用)
export function deletes(url){ export function deletes (url) {
return service({ return service({
url: url, url: url,
method: 'delete', method: 'delete',
headers: { headers: {
token:token token: token
} }
}) })
} }

@ -1,44 +1,53 @@
// 引入封装好的axios import { get, post, deletes, put } from './api.js'
// ps:如果没有封装,正常引入axios即可 const host = 'http://192.168.31.51:9000'
import {get, post,deletes,put} from './api.js' export const getProjectBySystemId = (params) => {
// import axios from "./"; return get('/occupationlab/occupationlab/projectManage/getProjectBySystemId', params)
// /api为配置跨域的路径变量
export const getProjectBySystemId= (params) => {
return get( '/occupationlab/occupationlab/projectManage/getProjectBySystemId',params)
} }
export const getProjectDetail= (params) => { export const getProjectDetail = (params) => {
return get( '/occupationlab/occupationlab/projectManage/getProjectDetail',params) return get('/occupationlab/occupationlab/projectManage/getProjectDetail', params)
} }
export const submit= (params) => { export const submit = (params) => {
return post( '/bank/bank/submit',params) return post('/bank/bank/submit', params)
} }
export const getSubjectInfo= (params) => { export const getSubjectInfo = (params) => {
return get( '/judgment/judgment/lcSubject/getSubjectInfo',params) return get('/judgment/judgment/lcSubject/getSubjectInfo', params)
} }
export const getQueryCache= () => { 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) => { export const exportBankExperimentReport = (params) => {
return post( '/occupationlab/occupationlab/achievement/exportBankExperimentReport',params) return post('/occupationlab/occupationlab/achievement/exportBankExperimentReport', params)
} }
export const updateReport= (params) => { export const updateReport = (params) => {
return post( '/occupationlab/occupationlab/achievement/updateReport',params) return post('/occupationlab/occupationlab/achievement/updateReport', params)
} }
// 学生查看考核状态 // 学生查看考核状态
export const checkTest= (params) => { export const checkTest = (params) => {
return get( '/occupationlab/occupationlab/assessment/getDetailById', {...params}) return get('/occupationlab/occupationlab/assessment/getDetailById', { ...params })
} }
export const checkTest2= (params) => { export const checkTest2 = (params) => {
return post( '/occupationlab/occupationlab/assessment/pageStuAssessment',{ return post('/occupationlab/occupationlab/assessment/pageStuAssessment', {
pageNum: 1, pageNum: 1,
pageSize: 10000, pageSize: 10000,
...params ...params
@ -46,7 +55,91 @@ export const checkTest2= (params) => {
} }
export const reportDetail = (reportId) => { export const reportDetail = (reportId) => {
return get( '/occupationlab/occupationlab/achievement/reportDetail',{ return get('/occupationlab/occupationlab/achievement/reportDetail', {
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.

After

Width:  |  Height:  |  Size: 175 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 63 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 211 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="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

@ -5,59 +5,45 @@
<el-container v-show="showIt"> <el-container v-show="showIt">
<el-header> <el-header>
<div class="flex a-center j-between"> <div class="flex a-center j-between">
<div class="flex a-center" <div class="flex a-center" style="width: 28%">
style="width: 28%">
<p>实训项目</p> <p>实训项目</p>
<el-select v-model.trim="projectId" <el-select v-model.trim="projectId" placeholder="请选择" class="select" disabled @change="selectProject">
placeholder="请选择" <el-option v-for="item in topicList" :key="item.projectId" :label="item.projectName"
class="select"
disabled
@change="selectProject">
<el-option v-for="item in topicList"
:key="item.projectId"
:label="item.projectName"
:value="item.projectId"></el-option> :value="item.projectId"></el-option>
</el-select> </el-select>
</div> </div>
<div class="countDownBox"> <div class="countDownBox">
<div style="margin-left: -40px;"> <div style="margin-left: -40px;">
<div :sendSync="sendSync" <div :sendSync="sendSync" :autoStart="autoStart" :defaultVal="defaultVal">
:autoStart="autoStart" 实训{{ text }}时间
:defaultVal="defaultVal"> <span class="timeSpan">{{ day }}</span>
实训{{text}}时间 <span class="timeSpan">{{ hour }}</span>小时
<span class="timeSpan">{{day}}</span> <span class="timeSpan">{{ minutes }}</span>
<span class="timeSpan">{{hour}}</span>小时 <span class="timeSpan">{{ seconds }}</span>
<span class="timeSpan">{{minutes}}</span>
<span class="timeSpan">{{seconds}}</span>
</div> </div>
</div> </div>
</div> </div>
<div class="countDownBox"> <div class="countDownBox">
<div> <div>
总得分 总得分
<span class="gradeSpan">{{grade}}</span> <span class="gradeSpan">{{ grade }}</span>
</div> </div>
</div> </div>
<div> <div>
<el-button @click="toReport" <el-button @click="toReport" v-if="popContainer">查看实验报告</el-button>
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" @click="reload"
:disabled="popContainer && (assessmentId!='' && assessmentId!='null' && assessmentId!=null)"> :disabled="popContainer && (assessmentId != '' && assessmentId != 'null' && assessmentId != null)">
重新开始 重新开始
</el-button> </el-button>
<el-button class="submit-btn" <el-button class="submit-btn" style="margin-right:7px" @click="Submit()"
style="margin-right:7px"
@click="Submit()"
:disabled="popContainer || requires.length == 0">提交</el-button> :disabled="popContainer || requires.length == 0">提交</el-button>
</div> </div>
</div> </div>
</el-header> </el-header>
<el-container> <el-container>
<el-aside width="30%" <el-aside width="30%" class="flex flex-col">
class="flex flex-col">
<div class="aside-header"> <div class="aside-header">
<div class="header_h flex a-center"> <div class="header_h flex a-center">
<i class="el-icon-s-order"></i> <i class="el-icon-s-order"></i>
@ -65,9 +51,7 @@
</div> </div>
<div class="font_css"> <div class="font_css">
<div class="experimentalGoal"> <div class="experimentalGoal">
<div class="break-all" <div class="break-all" v-html="projectManage.experimentTarget" style="font-size: 0.875rem;">
v-html="projectManage.experimentTarget"
style="font-size: 0.875rem;">
</div> </div>
</div> </div>
</div> </div>
@ -81,37 +65,19 @@
<el-row> <el-row>
<el-col :span="24"> <el-col :span="24">
<el-card shadow="hover"> <el-card shadow="hover">
<el-table :data="requires" <el-table :data="requires" height="43.5vh" v-loading="loading" ref='testTable'>
height="43.5vh"
v-loading="loading"
ref='testTable'>
<el-table-column type="index"></el-table-column> <el-table-column type="index"></el-table-column>
<el-table-column prop="name" <el-table-column prop="name" label="判分点" align="left">
label="判分点"
align="left">
</el-table-column> </el-table-column>
<el-table-column prop="score" <el-table-column prop="score" label="分值" width="60" align="center">
label="分值"
width="60"
align="center">
</el-table-column> </el-table-column>
<el-table-column prop="right" <el-table-column prop="right" label="完成结果" width="80" align="center">
label="完成结果"
width="80"
align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<i v-if="scope.row.right==true" <i v-if="scope.row.right == true" class="el-icon-check" style="color:green;"></i>
class="el-icon-check" <i v-else-if="scope.row.right == false" class="el-icon-close" style="color:red;"></i>
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" <el-table-column prop="scores" label="得分" width="60" align="center"></el-table-column>
label="得分"
width="60"
align="center"></el-table-column>
</el-table> </el-table>
</el-card> </el-card>
</el-col> </el-col>
@ -120,36 +86,24 @@
</div> </div>
</el-aside> </el-aside>
<el-main> <el-main>
<el-tabs v-model.trim="activeName" <el-tabs v-model.trim="activeName" type="card">
type="card"> <el-tab-pane label="案例" name="first">
<el-tab-pane label="案例" <div class="break-all" v-html="projectManage.experimentDescription"></div>
name="first">
<div class="break-all"
v-html="projectManage.experimentDescription"></div>
</el-tab-pane> </el-tab-pane>
<el-tab-pane label="实验要求" <el-tab-pane label="实验要求" name="second">
name="second"> <el-collapse :value="activeNames" accordion>
<el-collapse :value="activeNames" <el-collapse-item v-for="(item, index) in requires" :key="index" :name="item.id">
accordion> <template slot="title" style='line-height: 0px;'>
<el-collapse-item v-for="(item,index) in requires"
:key="index"
:name="item.id">
<template slot="title"
style='line-height: 0px;'>
<i class='el-icon-s-ticket'></i> <i class='el-icon-s-ticket'></i>
<span style="margin: 0px 10px;font-size: 1rem;">{{ item.name }}</span> <span style="margin: 0px 10px;font-size: 1rem;">{{ item.name }}</span>
</template> </template>
<div class="break-all" <div class="break-all" v-html="item.experimentalRequirements"></div>
v-html="item.experimentalRequirements"></div>
</el-collapse-item> </el-collapse-item>
<!-- <p ref="scrollTag" style="font-size:16px;"></p> --> <!-- <p ref="scrollTag" style="font-size:16px;"></p> -->
</el-collapse> </el-collapse>
</el-tab-pane> </el-tab-pane>
<el-tab-pane label="实验提示" <el-tab-pane label="实验提示" name="fifth" v-if="hintOpen == 0">
name="fifth" <div class="break-all" v-html="projectManage.experimentHint"></div>
v-if="hintOpen == 0">
<div class="break-all"
v-html="projectManage.experimentHint"></div>
</el-tab-pane> </el-tab-pane>
</el-tabs> </el-tabs>
</el-main> </el-main>
@ -157,32 +111,21 @@
</el-container> </el-container>
<!-- </transition> --> <!-- </transition> -->
<!-- </div> --> <!-- </div> -->
<div class="panel" <div class="panel" :class="{ active: showIt }">
:class="{active: showIt}">
<div @click="toggleCase"> <div @click="toggleCase">
<img src="../../assets/img/case/left.png" <img src="../../assets/img/case/left.png" alt v-if="showIt" />
alt <img src="../../assets/img/case/right.png" alt v-else />
v-if="showIt" />
<img src="../../assets/img/case/right.png"
alt
v-else />
</div> </div>
</div> </div>
<div class='popContainer' <div class='popContainer' v-if='popContainer'></div>
v-if='popContainer'></div>
<!-- 遮罩层 --> <!-- 遮罩层 -->
<div class="absolute z-50 h-screen bg-transparent inset-0" <div class="absolute z-50 h-screen bg-transparent inset-0" v-show="showIt"></div>
v-show="showIt"></div>
<el-dialog title="提示" <el-dialog title="提示" :visible.sync="closePaneJudge" width="30%" center>
: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" <span slot="footer" class="dialog-footer">
class="dialog-footer">
<el-button @click="closePane()">再试一次</el-button> <el-button @click="closePane()">再试一次</el-button>
<!-- <el-button type="primary" @click="closePane(true)">其他业务</el-button> --> <!-- <el-button type="primary" @click="closePane(true)">其他业务</el-button> -->
</span> </span>
@ -286,6 +229,42 @@ export default {
submitType: false 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)
@ -309,7 +288,6 @@ export default {
}); });
// //
this.sureSubmit(true) this.sureSubmit(true)
} else {
} }
}) })
}, 4000) }, 4000)
@ -318,73 +296,27 @@ export default {
this.popContainer = data this.popContainer = data
}) })
}, },
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);
}
}
},
// 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 = sessionStorage.getItem('token') || this.getQueryVariable('token') let token = this.getParam('token')
let cid = sessionStorage.getItem('cid') || this.getQueryVariable('cid') let cid = this.getParam('cid')
let systemId = sessionStorage.getItem('systemId') || this.getQueryVariable('systemId') let systemId = this.getParam('systemId')
let projectId = this.getQueryVariable('projectId') let projectId = this.getParam('projectId')
if (sessionStorage.getItem('projectId')) { let assessmentId = this.getParam('assessmentId')
projectId = sessionStorage.getItem('projectId') let competitionId = this.getParam('competitionId')
} let stageId = this.getParam('stageId')
let assessmentId = sessionStorage.getItem('assessmentId') || this.getQueryVariable('assessmentId') let teamId = this.getParam('teamId')
let competitionId = sessionStorage.getItem('competitionId') || this.getQueryVariable('competitionId') let classId = this.getParam('classId')
let stageId = sessionStorage.getItem('stageId') || this.getQueryVariable('stageId') let stopTime = this.getParam('stopTime')
let teamId = sessionStorage.getItem('teamId') || this.getQueryVariable('teamId') let mallId = this.getParam('mallId')
let classId = sessionStorage.getItem('classId') || this.getQueryVariable('classId') let timestamp = +stopTime
let stopTime = sessionStorage.getItem('stopTime') || this.getQueryVariable('stopTime') timestamp || sessionStorage.removeItem('timestamp')
let mallId = sessionStorage.getItem('mallId') || this.getQueryVariable('mallId')
let timestamp = +stopTime; if (token) {
if (timestamp != null) {
} else {
sessionStorage.setItem('timestamp', null)
}
if (token != null) {
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('competitionId', competitionId)
@ -392,21 +324,20 @@ export default {
sessionStorage.setItem('teamId', teamId) sessionStorage.setItem('teamId', teamId)
sessionStorage.setItem('classId', classId) sessionStorage.setItem('classId', classId)
this.assessmentId = assessmentId this.assessmentId = assessmentId
this.competitionId = JSON.parse(competitionId) this.competitionId = competitionId
this.stageId = stageId this.stageId = stageId
this.teamId = teamId this.teamId = teamId
this.classId = classId this.classId = classId
this.mallId = mallId this.mallId = mallId
} }
let tokens = sessionStorage.getItem('token') if (token) {
if (tokens || token) {
this.projectPermissions = this.assessmentId ? this.projectPermissions = this.assessmentId ?
1 : 1 :
this.competitionId ? this.competitionId ?
2 : 2 :
0 0
this.assessmentId && this.projectId && this.checkVer() this.assessmentId && this.projectId && this.checkVer()
if (JSON.parse(assessmentId != null && assessmentId != '' && assessmentId != 'null' || this.competitionId)) { if (assessmentId || this.competitionId) {
this.selectProjects({ this.selectProjects({
projectId projectId
}) })
@ -468,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]) {
@ -478,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 () {
@ -729,7 +651,7 @@ export default {
// 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++) {
@ -1002,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;
@ -1011,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;
@ -1023,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;
@ -1041,9 +967,11 @@ $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;
@ -1051,6 +979,7 @@ $togetherFontSize: 16px;
font-size: $togetherFontSize; font-size: $togetherFontSize;
} }
} }
.el-main { .el-main {
width: 60%; width: 60%;
background-color: #fff; background-color: #fff;
@ -1062,22 +991,27 @@ $togetherFontSize: 16px;
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; // overflow: visible;
} }
.aside-header { .aside-header {
margin: 0px 10px 10px 10px; margin: 0px 10px 10px 10px;
background-color: #fff; background-color: #fff;
font-size: 0.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;
@ -1085,21 +1019,27 @@ $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;
@ -1108,6 +1048,7 @@ $togetherFontSize: 16px;
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;
@ -1119,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;
} }
@ -1136,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;
@ -1145,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;
@ -1153,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 {
@ -1162,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;
@ -1182,47 +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, th,
tr { 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: 0.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;
@ -1232,18 +1192,23 @@ $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;
@ -1251,32 +1216,39 @@ $togetherFontSize: 16px;
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;

@ -4,69 +4,46 @@
<!-- 这个是自己封装的提示组件 用于系统录入中弹出的授权弹框 业务需求是有些业务需要授权有些业务不需要授权 --> <!-- 这个是自己封装的提示组件 用于系统录入中弹出的授权弹框 业务需求是有些业务需要授权有些业务不需要授权 -->
<el-dialog :visible="visible" <el-dialog :visible="visible" append-to-body style="z-index: 6000;" class="apple" :close-on-click-modal="true"
append-to-body :show-close="false" custom-class="w3w5 bgNone z6000">
style="z-index: 6000;" <div class="data-dia23 mx-auto w-9/12 rounded-3xl" :class="{ ['w-full']: flow === 3 }">
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 }">
<!-- 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" <div slot="title" class="dia-header rounded-3xl">
class="dia-header rounded-3xl"> <div class="data-title" v-if="flow === 1 || flow === 2">提示</div>
<div class="data-title" <div class="data-title" v-else-if="flow === 4">提交</div>
v-if="flow === 1 || flow === 2">提示</div> <div class="data-title" v-else>{{ successName }}</div>
<div class="data-title"
v-else-if="flow === 4">提交</div>
<div class="data-title"
v-else>{{ successName }}</div>
</div> </div>
<!-- 需要授权时父组件传进的flow为1 --> <!-- 需要授权时父组件传进的flow为1 -->
<div class="popBody" <div class="popBody" v-if="flow === 1">
v-if="flow === 1">
<h2 class="text-red-500 text-2xl">本业务需要授权</h2> <h2 class="text-red-500 text-2xl">本业务需要授权</h2>
</div> </div>
<!-- 不需要授权时父组件传进的flow为4 --> <!-- 不需要授权时父组件传进的flow为4 -->
<div class="popBody" <div class="popBody" v-else-if="flow === 4">
v-else-if="flow === 4">
<h2 class="text-red-500 text-2xl">提交后将不可更改您确定要提交吗</h2> <h2 class="text-red-500 text-2xl">提交后将不可更改您确定要提交吗</h2>
</div> </div>
<!-- 上面说的需要授权的flow为1点击确认后flow变为2弹出授权柜员的账号和密码 --> <!-- 上面说的需要授权的flow为1点击确认后flow变为2弹出授权柜员的账号和密码 -->
<div class="popBody" <div class="popBody" v-else-if="flow === 2">
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 <el-input disabled v-model.trim="disForm.name"></el-input>
v-model.trim="disForm.name"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="授权柜员"> <el-form-item label="授权柜员">
<el-input type="password" <el-input type="password" disabled v-model.trim="disForm.pass"></el-input>
disabled
v-model.trim="disForm.pass"></el-input>
</el-form-item> </el-form-item>
</el-form> </el-form>
</div> </div>
<!-- 不管授权与否最后一步都是展示提交的信息 --> <!-- 不管授权与否最后一步都是展示提交的信息 -->
<div class="popBody w-full" <div class="popBody w-full" v-else>
v-else>
<el-row :gutter="20"> <el-row :gutter="20">
<el-form label-width="200px"> <el-form label-width="200px">
<el-col :span="12"> <el-col :span="12">
<el-form-item v-for="(val, key) in leftObj" <el-form-item v-for="(val, key) in leftObj" :key="key" :label="key + ':'">
:key="key"
:label="key + ':'">
<div>{{ val }}</div> <div>{{ val }}</div>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item v-for="(val, key) in rightObj" <el-form-item v-for="(val, key) in rightObj" :key="key" :label="key + ':'">
:key="key"
:label="key + ':'">
<div>{{ val }}</div> <div>{{ val }}</div>
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -74,20 +51,13 @@
</el-row> </el-row>
</div> </div>
<!-- 不是最后的提交信息有取消按钮只要点击取消就不会发送请求给后端 --> <!-- 不是最后的提交信息有取消按钮只要点击取消就不会发送请求给后端 -->
<div class="popBtns" <div class="popBtns" v-if="flow === 1 || flow === 2 || flow === 4">
v-if="flow === 1 || flow === 2 || flow === 4"> <el-button class="close btn hover:bg-blue-100 " @click="cancelIt"> </el-button>
<el-button class="close btn hover:bg-blue-100 " <el-button class="sure btn hover:bg-blue-700 " type="primary" @click="sureIt"> </el-button>
@click="cancelIt"> </el-button>
<el-button class="sure btn hover:bg-blue-700 "
type="primary"
@click="sureIt"> </el-button>
</div> </div>
<!-- 展示信息的弹框没有取消按钮此时已经发送请求给后端了 --> <!-- 展示信息的弹框没有取消按钮此时已经发送请求给后端了 -->
<div class="myPopBtns" <div class="myPopBtns" v-else>
v-else> <el-button class="sure btn hover:bg-blue-700 " type="primary" @click="sureIt"> </el-button>
<el-button class="sure btn hover:bg-blue-700 "
type="primary"
@click="sureIt"> </el-button>
</div> </div>
</div> </div>
</el-dialog> </el-dialog>
@ -95,6 +65,7 @@
</template> </template>
<script> <script>
import { mapGetters } from 'vuex'
// objmoduleName, // objmoduleName,
const obj = { const obj = {
@ -125,6 +96,13 @@ const obj = {
'controlCash/cashTransferInto': '现金上缴', 'controlCash/cashTransferInto': '现金上缴',
'business/deposit': '存款', 'business/deposit': '存款',
'business/withdrawal': '取款', 'business/withdrawal': '取款',
'onlineBank/openAccount': '网上银行开户',
'foreignExchange/puchasing': '外汇业务购汇',
'foreignExchange/settlement': '外汇业务结汇',
'agent/waterRate': '代收水费',
'agent/electricRate': '代收电费',
'agent/telRate': '代收电话费',
'personalLoans/detail': '新建个人贷款',
'spacial': '提交' 'spacial': '提交'
} }
@ -144,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: '个人结算户',
@ -304,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: {
@ -330,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]) {
@ -378,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()
@ -409,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 () {
@ -459,7 +513,10 @@ export default {
// + // +
successName () { successName () {
return obj[this.moduleName] + '成功' return obj[this.moduleName] + '成功'
} },
...mapGetters({
getSelectList: 'system/getSelectList'
}),
} }
} }
</script> </script>
@ -469,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;
@ -486,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;
@ -505,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;
@ -515,11 +577,13 @@ export default {
opacity: 0.5; opacity: 0.5;
background-color: rgba(51, 51, 51, 0.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;
@ -527,12 +591,15 @@ 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;
@ -550,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;
@ -560,17 +628,20 @@ 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;
} }
@ -589,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,82 +1,52 @@
<template> <template>
<!-- 这个组件原理和dialog一样 --> <!-- 这个组件原理和dialog一样 -->
<el-dialog :visible="visible" <el-dialog :visible="visible" append-to-body style="z-index: 6000;" class="apple" :close-on-click-modal="true"
append-to-body :show-close="false" custom-class="w4w5 bgNone z6000">
style="z-index: 6000;" <div class="data-dia23 mx-auto w-9/12 rounded-3xl" :class="{ ['w-full']: flow === 3 }">
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 }">
<!-- 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" <div slot="title" class="dia-header rounded-3xl">
class="dia-header rounded-3xl"> <div class="data-title" v-if="flow === 1 || flow === 2">提示</div>
<div class="data-title" <div class="data-title" v-else-if="flow === 4">提交</div>
v-if="flow === 1 || flow === 2">提示</div> <div class="data-title" v-else>{{ successName }}</div>
<div class="data-title"
v-else-if="flow === 4">提交</div>
<div class="data-title"
v-else>{{ successName }}</div>
</div> </div>
<div class="popBody" <div class="popBody" v-if="flow === 1">
v-if="flow === 1">
<h2 class="text-red-500 text-2xl">本业务需要授权</h2> <h2 class="text-red-500 text-2xl">本业务需要授权</h2>
</div> </div>
<div class="popBody" <div class="popBody" v-else-if="flow === 4">
v-else-if="flow === 4">
<h2 class="text-red-500 text-2xl">提交后将不可更改您确定要提交吗</h2> <h2 class="text-red-500 text-2xl">提交后将不可更改您确定要提交吗</h2>
</div> </div>
<div class="popBody" <div class="popBody" v-else-if="flow === 2">
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 <el-input disabled v-model.trim="disForm.name"></el-input>
v-model.trim="disForm.name"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="授权柜员"> <el-form-item label="授权柜员">
<el-input type="password" <el-input type="password" disabled v-model.trim="disForm.pass"></el-input>
disabled
v-model.trim="disForm.pass"></el-input>
</el-form-item> </el-form-item>
</el-form> </el-form>
</div> </div>
<div class="popBody w-full" <div class="popBody w-full" v-else>
v-else>
<el-row :gutter="20"> <el-row :gutter="20">
<el-form label-width="200px"> <el-form label-width="200px">
<el-col :span="12"> <el-col :span="12">
<el-form-item v-for="(val, key) in leftObj" <el-form-item v-for="(val, key) in leftObj" :key="key" :label="key + ':'">
:key="key"
:label="key + ':'">
<div>{{ val }}</div> <div>{{ val }}</div>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item v-for="(val, key) in rightObj" <el-form-item v-for="(val, key) in rightObj" :key="key" :label="key + ':'">
:key="key"
:label="key + ':'">
<div>{{ val }}</div> <div>{{ val }}</div>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-form> </el-form>
</el-row> </el-row>
</div> </div>
<div class="popBtns" <div class="popBtns" v-if="flow === 1 || flow === 2 || flow === 4">
v-if="flow === 1 || flow === 2 || flow === 4"> <el-button class="close btn hover:bg-blue-100 " @click="cancelIt"> </el-button>
<el-button class="close btn hover:bg-blue-100 " <el-button class="sure btn hover:bg-blue-700 " type="primary" @click="sureIt"> </el-button>
@click="cancelIt"> </el-button>
<el-button class="sure btn hover:bg-blue-700 "
type="primary"
@click="sureIt"> </el-button>
</div> </div>
<div class="myPopBtns" <div class="myPopBtns" v-else>
v-else> <el-button class="sure btn hover:bg-blue-700 " type="primary" @click="sureIt"> </el-button>
<el-button class="sure btn hover:bg-blue-700 "
type="primary"
@click="sureIt"> </el-button>
</div> </div>
</div> </div>
</el-dialog> </el-dialog>
@ -118,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: {
@ -407,24 +377,29 @@ 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;
@ -438,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;
@ -454,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;
@ -473,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;
@ -483,11 +463,13 @@ export default {
opacity: 0.5; opacity: 0.5;
background-color: rgba(51, 51, 51, 0.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;
@ -495,12 +477,15 @@ 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;
@ -518,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;
@ -528,17 +514,20 @@ 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;
} }
@ -557,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,38 +1,42 @@
<template> <template>
<div class="header" <div class="header" ref="exitHeader">
ref="exitHeader"> <div class="inner" style="width: 100%">
<div class="inner" <div class="logo" @click="toIndex" style="float: left">
style="width: 100%"> <img src="../../assets/img/logo.png" alt="">
<div class="logo"
@click="toIndex"
style="float: left">
<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" <span style="cursor:pointer" @click="logout">
@click="exit">
退出<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' 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') 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',
@ -58,12 +62,16 @@ export default {
sessionStorage.clear() 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 {
@ -86,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>

@ -21,7 +21,7 @@ import vFooter from '../footer'
import bus from '@/libs/bus' import bus from '@/libs/bus'
import Setting from '@/setting' import Setting from '@/setting'
export default { export default {
data() { data () {
return { return {
tagsList: [], tagsList: [],
collapse: false, collapse: false,
@ -33,13 +33,13 @@ export default {
vFooter vFooter
}, },
computed: { computed: {
hideNavbar() { hideNavbar () {
let route = this.$route.name let route = this.$route.name
if(this.hideNavList.includes(route)) return false if (this.hideNavList.includes(route)) return false
return true return true
} }
}, },
created() { created () {
bus.$on('collapse-content', msg => { bus.$on('collapse-content', msg => {
this.collapse = msg; this.collapse = msg;
}); });
@ -55,6 +55,4 @@ export default {
} }
}; };
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped></style>
</style>

@ -1,5 +1,5 @@
import cookies from './util.cookies' import cookies from './util.cookies'
import {_local,_session} from './util.db' import { _local, _session } from './util.db'
import { Message } from 'element-ui' import { Message } from 'element-ui'
const util = { const util = {
@ -7,53 +7,53 @@ const util = {
local: _local, local: _local,
session: _session, session: _session,
// 传入身份证获取生日 // 传入身份证获取生日
getBirth(idCard) { getBirth (idCard) {
var birthday = ""; var birthday = "";
if(idCard != null && idCard != ""){ if (idCard != null && idCard != "") {
if(idCard.length == 15){ if (idCard.length == 15) {
birthday = "19"+idCard.slice(6,12); birthday = "19" + idCard.slice(6, 12);
} else if(idCard.length == 18){ } else if (idCard.length == 18) {
birthday = idCard.slice(6,14); birthday = idCard.slice(6, 14);
} }
birthday = birthday.replace(/(.{4})(.{2})/,"$1-$2-"); birthday = birthday.replace(/(.{4})(.{2})/, "$1-$2-");
//通过正则表达式来指定输出格式为:1990-01-01 //通过正则表达式来指定输出格式为:1990-01-01
} }
return birthday; return birthday;
}, },
// new Date('2020-11-12 00:00:00') 在IE下失效,因此把-替换成/ // new Date('2020-11-12 00:00:00') 在IE下失效,因此把-替换成/
dateCompatible(date) { dateCompatible (date) {
return date.replace(/\-/g, '/') return date.replace(/\-/g, '/')
}, },
// 日期时间前面补零 // 日期时间前面补零
formateTime(num) { formateTime (num) {
return num < 10 ? `0${num}` : num return num < 10 ? `0${num}` : num
}, },
//返回格式化时间,传参例如:"yyyy-MM-dd hh:mm:ss" //返回格式化时间,传参例如:"yyyy-MM-dd hh:mm:ss"
formatDate(fmt,date) { formatDate (fmt, date) {
var date = date ? date : new Date() var date = date ? date : new Date()
var o = { var o = {
"M+" : date.getMonth()+1, //月份 "M+": date.getMonth() + 1, //月份
"d+" : date.getDate(), //日 "d+": date.getDate(), //日
"h+" : date.getHours(), //小时 "h+": date.getHours(), //小时
"m+" : date.getMinutes(), //分 "m+": date.getMinutes(), //分
"s+" : date.getSeconds(), //秒 "s+": date.getSeconds(), //秒
"q+" : Math.floor((date.getMonth()+3)/3), //季度 "q+": Math.floor((date.getMonth() + 3) / 3), //季度
"S" : date.getMilliseconds() //毫秒 "S": date.getMilliseconds() //毫秒
}; };
if(/(y+)/.test(fmt)) { if (/(y+)/.test(fmt)) {
fmt=fmt.replace(RegExp.$1, (date.getFullYear()+"").substr(4 - RegExp.$1.length)); fmt = fmt.replace(RegExp.$1, (date.getFullYear() + "").substr(4 - RegExp.$1.length));
} }
for(var k in o) { for (var k in o) {
if(new RegExp("("+ k +")").test(fmt)){ if (new RegExp("(" + k + ")").test(fmt)) {
fmt = fmt.replace(RegExp.$1, (RegExp.$1.length==1) ? (o[k]) : (("00"+ o[k]).substr((""+ o[k]).length))); fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
} }
} }
return fmt; return fmt;
}, },
// 移除数组中指定值 // 移除数组中指定值
removeByValue(arr, val) { removeByValue (arr, val) {
let index = arr.indexOf(val) let index = arr.indexOf(val)
index>0?arr.splice(i, 1):'' index > 0 ? arr.splice(i, 1) : ''
// for(var i=0; i<arr.length; i++) { // for(var i=0; i<arr.length; i++) {
// if(arr[i] == val) { // if(arr[i] == val) {
// arr.splice(i, 1); // arr.splice(i, 1);
@ -62,42 +62,42 @@ const util = {
// } // }
}, },
// 传入文件后缀判断是否是视频 // 传入文件后缀判断是否是视频
isVideo(ext) { isVideo (ext) {
if('mp4,3gp,mov,m4v,avi,dat,mkv,flv,vob,rmvb,rm,qlv'.includes(ext)) return true if ('mp4,3gp,mov,m4v,avi,dat,mkv,flv,vob,rmvb,rm,qlv'.includes(ext)) return true
return false return false
}, },
// 传入文件后缀判断是否是音频 // 传入文件后缀判断是否是音频
isAudio(ext) { isAudio (ext) {
if('mp3,aac,ape,flac,wav,wma,amr,mid'.includes(ext)) return true if ('mp3,aac,ape,flac,wav,wma,amr,mid'.includes(ext)) return true
return false return false
}, },
// 传入文件后缀判断是否是图片 // 传入文件后缀判断是否是图片
isImg(ext) { isImg (ext) {
if('jpg,jpeg,png,gif,svg,psd'.includes(ext)) return true if ('jpg,jpeg,png,gif,svg,psd'.includes(ext)) return true
return false return false
}, },
// 传入文件后缀判断是否是pdf以外的文档 // 传入文件后缀判断是否是pdf以外的文档
isDoc(ext) { isDoc (ext) {
if(!util.isVideo(ext) && !util.isAudio(ext) && !util.isImg(ext) && ext != 'pdf') return true if (!util.isVideo(ext) && !util.isAudio(ext) && !util.isImg(ext) && ext != 'pdf') return true
return false return false
}, },
// 循环去除html标签 // 循环去除html标签
removeHtmlTag(list,attr) { removeHtmlTag (list, attr) {
list.map(n => { list.map(n => {
n[attr] = n[attr].replace(/<\/?.+?>/gi,'') n[attr] = n[attr].replace(/<\/?.+?>/gi, '')
}) })
return list return list
}, },
// 传入文件名获取文件后缀 // 传入文件名获取文件后缀
getFileExt(fileName) { getFileExt (fileName) {
return fileName.substring(fileName.lastIndexOf('.') + 1) return fileName.substring(fileName.lastIndexOf('.') + 1)
}, },
// 传入文件名和路径,下载图片视频,支持跨域,a标签加download不支持跨域 // 传入文件名和路径,下载图片视频,支持跨域,a标签加download不支持跨域
downloadFile(fileName,url) { downloadFile (fileName, url) {
var x = new XMLHttpRequest() var x = new XMLHttpRequest()
x.open("GET", url, true) x.open("GET", url, true)
x.responseType = 'blob' x.responseType = 'blob'
x.onload=function(e) { x.onload = function (e) {
var url = window.URL.createObjectURL(x.response) var url = window.URL.createObjectURL(x.response)
var a = document.createElement('a') var a = document.createElement('a')
a.href = url a.href = url
@ -107,7 +107,7 @@ const util = {
x.send() x.send()
}, },
// 传入文件名和数据,下载文件 // 传入文件名和数据,下载文件
downloadFileDirect(fileName,data) { downloadFileDirect (fileName, data) {
if ('download' in document.createElement('a')) { // 非IE下载 if ('download' in document.createElement('a')) { // 非IE下载
const elink = document.createElement('a') const elink = document.createElement('a')
elink.download = fileName elink.download = fileName
@ -122,17 +122,87 @@ const util = {
} }
}, },
// 成功提示 // 成功提示
successMsg(message,duration = 3000) { successMsg (message, duration = 3000) {
return Message.success({message,showClose: true,offset: (document.documentElement.clientHeight - 40) / 2,duration}) return Message.success({ message, showClose: true, offset: (document.documentElement.clientHeight - 40) / 2, duration })
}, },
// 警告提示 // 警告提示
warningMsg(message,duration = 3000) { warningMsg (message, duration = 3000) {
return Message.warning({message,showClose: true,offset: (document.documentElement.clientHeight - 40) / 2,duration}) return Message.warning({ message, showClose: true, offset: (document.documentElement.clientHeight - 40) / 2, duration })
}, },
// 错误提示 // 错误提示
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

@ -7,7 +7,7 @@ import "@/styles/system.scss"
import mixinApp from '@/mixins/app'; import mixinApp from '@/mixins/app';
import 'babel-polyfill'; import 'babel-polyfill';
import '@/libs/resize'; import '@/libs/resize';
import {post,get,del,put} from '@/plugins/requests/index.js'; import { post, get, del, put } from '@/plugins/requests/index.js';
import api from '@/api'; import api from '@/api';
import store from '@/store' import store from '@/store'
import Setting from '@/setting'; import Setting from '@/setting';
@ -53,7 +53,7 @@ Vue.use(VueLazyload, {
attempt: 2 attempt: 2
}) })
Object.keys(filters).forEach(item => Vue.filter(item,filters[item])) Object.keys(filters).forEach(item => Vue.filter(item, filters[item]))
Vue.prototype.api = api; Vue.prototype.api = api;
Vue.prototype.$get = get; Vue.prototype.$get = get;

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

@ -23,7 +23,7 @@ const obj = {
import { mapGetters } from 'vuex' import { mapGetters } from 'vuex'
export default { export default {
data(){ data () {
return { return {
unNeed: false, unNeed: false,
isNeedBefore: false, isNeedBefore: false,
@ -31,22 +31,22 @@ export default {
tipsNefore: null tipsNefore: null
} }
}, },
created() { created () {
// 将上次保存的这个模块的数据写上页面,因为上次退出时保存了这个模块的数据(beforeDestroy) // 将上次保存的这个模块的数据写上页面,因为上次退出时保存了这个模块的数据(beforeDestroy)
if(sessionStorage.getItem(this.moduleName)) { if (sessionStorage.getItem(this.moduleName)) {
const getBeforeData = JSON.parse(sessionStorage.getItem(this.moduleName)) const getBeforeData = JSON.parse(sessionStorage.getItem(this.moduleName))
for(const key in getBeforeData) { for (const key in getBeforeData) {
this.form[key] = Number(getBeforeData[key])? Number(getBeforeData[key]): getBeforeData[key] this.form[key] = Number(getBeforeData[key]) ? Number(getBeforeData[key]) : getBeforeData[key]
} }
} }
// 如果所选业务需要(需求变更,不用管这个了) // 如果所选业务需要(需求变更,不用管这个了)
if(this.inMyWork(this.moduleName)) { if (this.inMyWork(this.moduleName)) {
if(this.needsModule(this.moduleName)) { if (this.needsModule(this.moduleName)) {
this.isNeedBefore = true this.isNeedBefore = true
this.needBefore = this.needsModule(this.moduleName) this.needBefore = this.needsModule(this.moduleName)
} }
}else { } else {
this.isNeedBefore = true this.isNeedBefore = true
this.unNeed = true this.unNeed = true
return; return;
@ -55,26 +55,21 @@ export default {
}, },
methods: { methods: {
// 暴露出外面的方法,可以提交后删除调存在sessionStorage中的的数据,因为有后端缓存了。 // 暴露出外面的方法,可以提交后删除调存在sessionStorage中的的数据,因为有后端缓存了。
clearSaveData() { clearSaveData () {
sessionStorage.removeItem(this.moduleName) sessionStorage.removeItem(this.moduleName)
} }
}, },
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] !== '') {
tmpForm[key] = this.form[key] tmpForm[key] = this.form[key]
} }
} }
// 系统录入当前页面关闭或离开的时候,保存当前模块的数据。回来的时候这些数据还在(业务需求)。 // 系统录入当前页面关闭或离开的时候,保存当前模块的数据。回来的时候这些数据还在(业务需求)。
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 {

@ -1,61 +1,36 @@
<template> <template>
<div class="wrap"> <div class="wrap">
<img class="sth bg" <img class="sth bg" src="@/assets/img/index-bg.png" alt="">
src="@/assets/img/index-bg.png" <div class="case" @click="setShowBusiness(true)">业务选择</div>
alt="">
<div class="case"
@click="setShowBusiness(true)">业务选择</div>
<!-- 业务选择 --弹框 --> <!-- 业务选择 --弹框 -->
<div class="sth integrated-counter cp"> <div class="sth integrated-counter cp">
<img width="100%" <img width="100%" v-lazy="lazy1" alt="" @click="toPart('/counter')">
v-lazy="lazy1"
alt=""
@click="toPart('/counter')">
<!-- src="@/assets/img/integrated-counter.png" --> <!-- src="@/assets/img/integrated-counter.png" -->
<div class="name" <div class="name" @click="toPart('/counter')">综合柜台</div>
@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%" <img width="100%" v-lazy="lazy2" alt="" />
v-lazy="lazy2"
alt=""
@click="showComing" />
<!-- 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"> -->
<div class="sth manager cp" <div class="sth manager cp" @click="toPart('/lobbyManager')">
@click="toPart('/lobbyManager')"> <img width="100%" v-lazy="lazy3" alt="">
<img width="100%"
v-lazy="lazy3"
alt="">
<div class="name">大堂经理</div> <div class="name">大堂经理</div>
</div> </div>
<img class="sth credit-dep cp" <img class="sth credit-dep cp" v-lazy="lazy4" alt="" @click="showComing">
v-lazy="lazy4" <img class="sth company-finance cp" v-lazy="lazy5" alt="" @click="showComing">
alt="" <img class="sth personal-finance cp" v-lazy="lazy6" alt="" @click="showComing">
@click="showComing">
<img class="sth company-finance cp" <div class="coming" :class="{ active: comingVisible }">
v-lazy="lazy5"
alt=""
@click="showComing">
<img class="sth personal-finance cp"
v-lazy="lazy6"
alt=""
@click="showComing">
<div class="coming"
:class="{active: comingVisible}">
<div style="width: 20%;margin: auto"> <div style="width: 20%;margin: auto">
<img style="width: 100%" <img style="width: 100%" v-lazy="lazy7" alt="">
v-lazy="lazy7"
alt="">
</div> </div>
<p class="text">敬请期待</p> <p class="text">敬请期待</p>
</div> </div>
@ -85,8 +60,9 @@ export default {
}, },
created () { created () {
if (!sessionStorage.getItem('firstLoad2')) { if (!sessionStorage.getItem('firstLoad2')) {
sessionStorage.removeItem('submited') sessionStorage.clear()
sessionStorage.removeItem('businessKey') // sessionStorage.removeItem('submited')
// sessionStorage.removeItem('businessKey')
this.setBusinessKey('') this.setBusinessKey('')
const loading = this.$loading({ const loading = this.$loading({
lock: true, lock: true,
@ -132,7 +108,8 @@ export default {
methods: { methods: {
...mapMutations({ ...mapMutations({
setBusinessKey: 'system/setBusinessKey', setBusinessKey: 'system/setBusinessKey',
setShowBusiness: 'system/setShowBusiness' setShowBusiness: 'system/setShowBusiness',
setCredit: 'system/setCredit',
}), }),
getQueryVariable (name) { getQueryVariable (name) {
var reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)') var reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)')
@ -145,7 +122,8 @@ export default {
} }
} }
}, },
toPart (path) { toPart (path, isCredit = false) {
this.setCredit(isCredit)
this.$router.push(path) this.$router.push(path)
}, },
showComing () { showComing () {
@ -179,26 +157,32 @@ export default {
.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 0.5s; transition: all 0.5s;
&:hover { &:hover {
margin-top: -10px; margin-top: -10px;
} }
.name { .name {
position: absolute; position: absolute;
top: 23%; top: 23%;
@ -206,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 0.5s; transition: all 0.5s;
// &:hover{ // &:hover{
// margin-top: -10px; // margin-top: -10px;
// } // }
@ -222,19 +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 0.5s; transition: all 0.5s;
&:hover { &:hover {
bottom: 10px; bottom: 10px;
} }
.name { .name {
position: absolute; position: absolute;
top: 65%; top: 65%;
@ -242,6 +231,7 @@ export default {
@include nameTip; @include nameTip;
} }
} }
.credit-dep { .credit-dep {
top: 31%; top: 31%;
left: 0; left: 0;
@ -251,6 +241,7 @@ export default {
// top: 29%; // top: 29%;
// } // }
} }
.company-finance { .company-finance {
top: 52%; top: 52%;
left: 9%; left: 9%;
@ -260,6 +251,7 @@ export default {
// top: 50%; // top: 50%;
// } // }
} }
.personal-finance { .personal-finance {
bottom: 0; bottom: 0;
left: 25%; left: 25%;
@ -269,6 +261,7 @@ export default {
// bottom: 10px; // bottom: 10px;
// } // }
} }
.case { .case {
position: absolute; position: absolute;
top: 92px; top: 92px;
@ -286,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%;
@ -317,9 +316,11 @@ export default {
border-radius: 16px; border-radius: 16px;
background-color: rgba(0, 0, 0, 0.8); background-color: rgba(0, 0, 0, 0.8);
transition: all 0.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;

@ -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,126 +31,133 @@
</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(){
this.fullscreen = false
this.$store.commit('system/changeFullscreen',false)
}, },
shrink () {
this.$store.commit('system/changeFullscreen', false)
}, },
computed: {
full:function(){
return this.$store.state.system.fullScreen
}
} }
}; };
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
$font_size_All: 16px; // $font_size_All: 16px; //
$submenu_padding_left: 25px; // padding-left $submenu_padding_left: 25px; // padding-left
// /deep/.el-form-item { // /deep/.el-form-item {
// label { // label {
// width: 100px!important; // width: 100px!important;
// text-align-last: justify; // text-align-last: justify;
// } // }
// } // }
@media screen and (min-width: 1920px) { @media screen and (min-width: 1920px) {
/deep/.body { /deep/.body {
min-height: 50vh; min-height: 50vh;
} }
} }
@media screen and (min-width: 1200px) and (max-width: 1700px) { @media screen and (min-width: 1200px) and (max-width: 1700px) {
/deep/.body { /deep/.body {
min-height: 50vh; min-height: 50vh;
} }
} }
// .wrap2{ // .wrap2{
// width: 100%; // width: 100%;
// display: flex; // display: flex;
// flex-direction: column; // flex-direction: column;
// overflow: hidden; // overflow: hidden;
// .title{ // .title{
// height: 60px; // height: 60px;
// display: flex; // display: flex;
// align-items: center; // align-items: center;
// font-size: 20px; // font-size: 20px;
// padding-left: 50px; // padding-left: 50px;
// } // }
// .body{ // .body{
// margin-top: 50px; // margin-top: 50px;
// } // }
// } // }
.box{ .box {
display: flex; display: flex;
min-width: 1300px; min-width: 1300px;
.nav{
.nav {
width: 270px; width: 270px;
min-height: 80vh; min-height: 80vh;
border-top-left-radius: 20px; border-top-left-radius: 20px;
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;
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;
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;
display: flex; display: flex;
@ -159,17 +167,20 @@ 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;
bottom: 0; bottom: 0;
@ -177,126 +188,141 @@ export default {
} }
} }
} }
} }
.fade-enter-active, .fade-leave-active {
transition: opacity .5s; .fade-enter-active,
} .fade-leave-active {
.fade-enter, .fade-leave-to /* .fade-leave-active below version 2.1.8 */ { transition: opacity 0.5s;
}
.fade-enter,
.fade-leave-to
/* .fade-leave-active below version 2.1.8 */
{
opacity: 0.5; opacity: 0.5;
} }
// el-input
/deep/ .el-input input{ // el-input
/deep/ .el-input input {
&:focus { &:focus {
border-color: skyblue; border-color: skyblue;
} }
}
} //
/deep/ .is-error input {
// border-color: #f40 !important;
/deep/ .is-error input { }
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 {
font-size: $font_size_All !important;
}
/deep/ .text-xl p { /deep/ .el-form-item .el-form-item__label {
font-size: $font_size_All!important; font-size: $font_size_All !important;
} }
/deep/ .el-form-item .el-form-item__label {
font-size: $font_size_All!important;
}
/deep/ .el-submenu{ /deep/ .el-submenu {
padding-left: $submenu_padding_left!important; padding-left: $submenu_padding_left !important;
} }
/deep/ .el-submenu .el-menu-item {
padding-left: $submenu_padding_left + 25px!important;
font-size: $font_size_All!important;
}
// /deep/ .el-menu-item {
// padding-left: $submenu_padding_left + 25px!important;
// font-size: $font_size_All!important;
// }
/deep/ .el-menu span{
font-size: $font_size_All!important;
}
/deep/ .title p { /deep/ .el-submenu .el-menu-item {
font-size: $font_size_All!important; padding-left: $submenu_padding_left + 25px !important;
} font-size: $font_size_All !important;
/deep/ .idCard p { }
font-size: $font_size_All!important;
} // /deep/ .el-menu-item {
// /deep/ .el-form-item__error { // padding-left: $submenu_padding_left + 25px!important;
// top: 105%; // font-size: $font_size_All!important;
// left: auto; // }
// right: 0; /deep/ .el-menu span {
// color: #FFA94E; font-size: $font_size_All !important;
// } }
@media screen and (min-width: 1200px) and (max-width: 1700px) {
/deep/ .title p {
font-size: $font_size_All !important;
}
/deep/ .idCard p {
font-size: $font_size_All !important;
}
// /deep/ .el-form-item__error {
// top: 105%;
// left: auto;
// right: 0;
// color: #FFA94E;
// }
@media screen and (min-width: 1200px) and (max-width: 1700px) {
/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) {
.box{ @media screen and (min-width: 1200px) and (max-width: 1900px) {
.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{
min-height: 10vh; .top {
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);
overflow: auto; overflow: auto;
background-color: #313540; background-color: #313540;
} }
} }
.manage-layout{
.manage-layout {
width: calc(100% - 270px); width: calc(100% - 270px);
min-height: 80vh; min-height: 80vh;
overflow: auto; overflow: auto;
// background: #fff; // background: #fff;
background:transparent; background: transparent;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
box-sizing: border-box; box-sizing: border-box;
.top{
min-height: 10vh; .top {
font-size: 30px; font-size: 30px;
display: flex; display: flex;
justify-content: flex-end; justify-content: flex-end;
@ -305,15 +331,18 @@ 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;
bottom: 0; bottom: 0;
@ -322,6 +351,5 @@ export default {
} }
} }
} }
}
}
</style> </style>

@ -10,26 +10,19 @@
</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>
<p>{{textObj[activeIndex]}}</p> <p>{{ textObj[activeIndex] }}</p>
</div> </div>
<cash-recipients v-if="activeIndex==='1'"></cash-recipients> <cash-recipients v-if="activeIndex === '1'"></cash-recipients>
<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>
@ -51,29 +44,29 @@ import cashPaid from './cashPaid.vue'
import cashOut from './cashOut.vue' import cashOut from './cashOut.vue'
export default { export default {
name: 'index', name: 'index',
components:{ components: {
cashRecipients, cashRecipients,
cashTransferInto, cashTransferInto,
cashPaid, cashPaid,
cashOut cashOut
}, },
data() { data () {
return { return {
text:'',/* 顶部文字 */ text: '',/* 顶部文字 */
cacheVal: '', cacheVal: '',
textObj:{ textObj: {
'1':'现金领用', '1': '现金领用',
'2':'现金上缴', '2': '现金上缴',
'3':'现金调入', '3': '现金调入',
'4':'现金调出', '4': '现金调出',
}, },
form:{ form: {
}, },
visible:false, visible: false,
options:[], options: [],
activeIndex:'', activeIndex: '',
second:[// second: [//
], ],
@ -82,42 +75,45 @@ export default {
} }
}, },
methods: { methods: {
handleSelect(val){ handleSelect (val) {
this.text = this.textObj[val] this.text = this.textObj[val]
this.activeIndex = val this.activeIndex = val
this.cacheVal = val this.cacheVal = val
}, },
}, },
created() { created () {
if(sessionStorage.getItem('importantCashIndex')) { if (sessionStorage.getItem('importantCashIndex')) {
this.handleSelect(sessionStorage.getItem('importantCashIndex')) this.handleSelect(sessionStorage.getItem('importantCashIndex'))
}else { } else {
this.handleSelect('1') this.handleSelect('1')
} }
}, },
destroyed() { destroyed () {
sessionStorage.setItem('importantCashIndex', this.cacheVal) sessionStorage.setItem('importantCashIndex', this.cacheVal)
} }
}; };
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.wrap{ .wrap {
width: 100%; width: 100%;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
overflow: hidden; overflow: hidden;
padding: 24px 0 24px 24px; padding: 24px 0 24px 24px;
.nav{
/deep/ .el-menu.el-menu--horizontal{ .nav {
/deep/ .el-menu.el-menu--horizontal {
border: 0; border: 0;
} }
/deep/ .el-menu--horizontal > .el-menu-item.is-active{
border:2px solid #568DF2; /deep/ .el-menu--horizontal>.el-menu-item.is-active {
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;
margin-right: 10px; margin-right: 10px;
@ -125,7 +121,8 @@ export default {
line-height: 28px; line-height: 28px;
} }
} }
.title{
.title {
height: 60px; height: 60px;
display: flex; display: flex;
align-items: center; align-items: center;
@ -133,11 +130,13 @@ 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;
text-align: center; text-align: center;
@ -146,9 +145,11 @@ 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;
position: absolute; position: absolute;
@ -158,16 +159,18 @@ export default {
width: 88%; width: 88%;
height: 268px; height: 268px;
} }
.addBtn{
.addBtn {
position: absolute; position: absolute;
left: 0; left: 0;
top: 50%; top: 50%;
transform: translate(50%,-50%); transform: translate(50%, -50%);
font-size: 22px; font-size: 22px;
} }
} }
} }
.submitBtn{
.submitBtn {
position: relative; position: relative;
width: 300px; width: 300px;
font-size: 18px; font-size: 18px;
@ -176,32 +179,37 @@ export default {
border-radius: 10px; border-radius: 10px;
bottom: 10px; bottom: 10px;
left: 50%; left: 50%;
transform: translate(-50%,-50%); transform: translate(-50%, -50%);
} }
.popBody{
.popBody {
min-height: 200px; min-height: 200px;
display: flex; display: flex;
align-items: center; align-items: center;
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;
} }
} }
} }
</style> </style>

@ -10,28 +10,21 @@
</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>
<p>{{textObj[activeIndex]}}</p> <p>{{ textObj[activeIndex] }}</p>
</div> </div>
<!-- 开户 --> <!-- 开户 -->
<cash-recipients v-if="activeIndex==='1'"></cash-recipients> <cash-recipients v-if="activeIndex === '1'"></cash-recipients>
<cash-transfer-into v-if="activeIndex==='2'"></cash-transfer-into> <cash-transfer-into v-if="activeIndex === '2'"></cash-transfer-into>
<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>
@ -53,29 +46,29 @@ import cashPaid from './cashPaid.vue'
import cashOut from './cashOut.vue' import cashOut from './cashOut.vue'
export default { export default {
name: 'index', name: 'index',
components:{ components: {
cashRecipients, cashRecipients,
cashTransferInto, cashTransferInto,
cashPaid, cashPaid,
cashOut cashOut
}, },
data() { data () {
return { return {
text:'',/* 顶部文字 */ text: '',/* 顶部文字 */
cacheVal: '', cacheVal: '',
textObj:{ textObj: {
'1':'凭证领用', '1': '凭证领用',
'2':'凭证上缴', '2': '凭证上缴',
'3':'凭证调入', '3': '凭证调入',
'4':'凭证调出', '4': '凭证调出',
}, },
form:{ form: {
}, },
visible:false, visible: false,
options:[], options: [],
activeIndex:'1', activeIndex: '1',
second:[// second: [//
], ],
@ -83,18 +76,18 @@ export default {
} }
}, },
created() { created () {
if(sessionStorage.getItem('importantCashIndex2')) { if (sessionStorage.getItem('importantCashIndex2')) {
this.handleSelect(sessionStorage.getItem('importantCashIndex2')) this.handleSelect(sessionStorage.getItem('importantCashIndex2'))
}else { } else {
this.handleSelect('1') this.handleSelect('1')
} }
}, },
destroyed() { destroyed () {
sessionStorage.setItem('importantCashIndex2', this.cacheVal) sessionStorage.setItem('importantCashIndex2', this.cacheVal)
}, },
methods: { methods: {
handleSelect(val){ handleSelect (val) {
this.text = this.textObj[val] this.text = this.textObj[val]
this.activeIndex = val this.activeIndex = val
this.cacheVal = val this.cacheVal = val
@ -106,22 +99,25 @@ export default {
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.wrap{ .wrap {
width: 100%; width: 100%;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
overflow: hidden; overflow: hidden;
padding: 24px 0 24px 24px; padding: 24px 0 24px 24px;
.nav{
/deep/ .el-menu.el-menu--horizontal{ .nav {
/deep/ .el-menu.el-menu--horizontal {
border: 0; border: 0;
} }
/deep/ .el-menu--horizontal > .el-menu-item.is-active{
border:2px solid #568DF2; /deep/ .el-menu--horizontal>.el-menu-item.is-active {
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;
margin-right: 10px; margin-right: 10px;
@ -129,7 +125,8 @@ export default {
line-height: 28px; line-height: 28px;
} }
} }
.title{
.title {
height: 60px; height: 60px;
display: flex; display: flex;
align-items: center; align-items: center;
@ -137,11 +134,13 @@ 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;
text-align: center; text-align: center;
@ -150,9 +149,11 @@ 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;
position: absolute; position: absolute;
@ -162,16 +163,18 @@ export default {
width: 88%; width: 88%;
height: 268px; height: 268px;
} }
.addBtn{
.addBtn {
position: absolute; position: absolute;
left: 0; left: 0;
top: 50%; top: 50%;
transform: translate(50%,-50%); transform: translate(50%, -50%);
font-size: 22px; font-size: 22px;
} }
} }
} }
.submitBtn{
.submitBtn {
position: relative; position: relative;
width: 300px; width: 300px;
font-size: 18px; font-size: 18px;
@ -180,40 +183,45 @@ export default {
border-radius: 10px; border-radius: 10px;
bottom: 10px; bottom: 10px;
left: 50%; left: 50%;
transform: translate(-50%,-50%); transform: translate(-50%, -50%);
} }
.popBody{
.popBody {
min-height: 200px; min-height: 200px;
display: flex; display: flex;
align-items: center; align-items: center;
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;
} }
} }
} }
/deep/.el-input input { /deep/.el-input input {
text-align: center; text-align: center;
} }
/deep/ .blueText{ /deep/ .blueText {
color: blue; color: blue;
} }
</style> </style>

@ -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,31 +42,35 @@
</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">
<el-form-item label="客户名称" prop="customerName"> <el-form-item label="客户名称" prop="customerName">
<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>
</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" ></el-input> <el-input v-model.trim="form.abstract"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
</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>
@ -82,20 +88,20 @@ const moduleName = 'controlCash3/index'
export default { export default {
name: 'index', name: 'index',
mixins: [ TipsBefore ], mixins: [TipsBefore],
components:{ components: {
NeedBefore, NeedBefore,
MyDialog, MyDialog,
MyTitle MyTitle
}, },
data() { data () {
return { return {
moduleName, moduleName,
visible: false, visible: false,
unNeed: false, unNeed: false,
isNeedBefore: '', isNeedBefore: '',
needBefore: '', needBefore: '',
form:{ form: {
// //
username: '', // username: '', //
startNumber: '', // startNumber: '', //
@ -109,7 +115,7 @@ export default {
cost: '', // cost: '', //
abstract: '' // abstract: '' //
}, },
formName:{ formName: {
// //
username: '账号', // username: '账号', //
startNumber: '凭证起始号', // startNumber: '凭证起始号', //
@ -207,50 +213,50 @@ export default {
submited: 0 submited: 0
} }
}, },
created() { created () {
// this.handleSelect(1) // this.handleSelect(1)
if(this.inMyWork(moduleName)) { if (this.inMyWork(moduleName)) {
if(this.needsModule(moduleName) === '') { if (this.needsModule(moduleName) === '') {
}else { } else {
this.isNeedBefore = true this.isNeedBefore = true
this.needBefore = this.needsModule(moduleName) this.needBefore = this.needsModule(moduleName)
} }
}else { } else {
this.isNeedBefore = true this.isNeedBefore = true
this.unNeed = true this.unNeed = true
} }
}, },
mounted() { mounted () {
this.$refs.username.focus() this.$refs.username.focus()
}, },
methods: { methods: {
...mapMutations({ ...mapMutations({
setTipsOperate: 'system/setTipsOperate' setTipsOperate: 'system/setTipsOperate'
}), }),
onBlur() { onBlur () {
if(this.form.username) { if (this.form.username) {
const { collectingCompany } = this.dataFlow const { collectingCompany } = this.dataFlow
this.form.customerName = collectingCompany this.form.customerName = collectingCompany
}else { } else {
this.form.customerName = '' this.form.customerName = ''
} }
}, },
getBlur() { getBlur () {
const number = Number(this.form.endNumber) - Number(this.form.startNumber) const number = Number(this.form.endNumber) - Number(this.form.startNumber)
if(number<0 || this.form.endNumber.length<this.form.startNumber.length) { if (number < 0 || this.form.endNumber.length < this.form.startNumber.length) {
this.form.number = 0 this.form.number = 0
return return
} }
this.form.number = number this.form.number = number
}, },
submitIt() { submitIt () {
if (this.submited) return this.$message.error('已提交!') 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({
// message: ',', // message: ',',
// type: 'warning', // type: 'warning',
@ -259,7 +265,7 @@ export default {
this.setTipsOperate('结束号码应大于起始号码') this.setTipsOperate('结束号码应大于起始号码')
return return
} }
if(this.form.startNumber.length !== this.form.endNumber.length) { if (this.form.startNumber.length !== this.form.endNumber.length) {
this.setTipsOperate('凭证起始号和凭证终止号长度不同,请检查') this.setTipsOperate('凭证起始号和凭证终止号长度不同,请检查')
return return
} }
@ -267,7 +273,7 @@ export default {
}, this.$refs)); }, this.$refs));
}, },
submitForm2() { submitForm2 () {
const parentId = '285,' + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ',287,5,31,520' const parentId = '285,' + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ',287,5,31,520'
const cards = [ const cards = [
@ -292,37 +298,41 @@ export default {
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
// .submitBtn{ // .submitBtn{
// position: relative; // position: relative;
// width: 200px; // width: 200px;
// font-size: 18px; // font-size: 18px;
// height: 45px; // height: 45px;
// margin-top: 50px; // margin-top: 50px;
// border-radius: 10px; // border-radius: 10px;
// bottom: 10px; // bottom: 10px;
// left: 50%; // left: 50%;
// transform: translate(-50%,-20%); // transform: translate(-50%,-20%);
// } // }
.el-input, .el-select { .el-input,
width: 100%!important; .el-select {
} width: 100% !important;
}
.wrap{ .wrap {
width: 100%; width: 100%;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
overflow: auto; overflow: auto;
padding: 24px 0 24px 24px; padding: 24px 0 24px 24px;
.nav{
/deep/ .el-menu.el-menu--horizontal{ .nav {
/deep/ .el-menu.el-menu--horizontal {
border: 0; border: 0;
} }
/deep/ .el-menu--horizontal > .el-menu-item.is-active{
border:2px solid #568DF2; /deep/ .el-menu--horizontal>.el-menu-item.is-active {
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;
margin-right: 10px; margin-right: 10px;
@ -330,7 +340,8 @@ export default {
line-height: 28px; line-height: 28px;
} }
} }
.title{
.title {
height: 60px; height: 60px;
display: flex; display: flex;
align-items: center; align-items: center;
@ -338,10 +349,12 @@ 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;
text-align: center; text-align: center;
@ -350,9 +363,11 @@ 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;
position: absolute; position: absolute;
@ -362,16 +377,18 @@ export default {
width: 88%; width: 88%;
height: 268px; height: 268px;
} }
.addBtn{
.addBtn {
position: absolute; position: absolute;
left: 0; left: 0;
top: 50%; top: 50%;
transform: translate(50%,-50%); transform: translate(50%, -50%);
font-size: 22px; font-size: 22px;
} }
} }
} }
.submitBtn{
.submitBtn {
position: relative; position: relative;
width: 200px; width: 200px;
font-size: 18px; font-size: 18px;
@ -380,11 +397,11 @@ export default {
border-radius: 10px; border-radius: 10px;
bottom: 10px; bottom: 10px;
left: 50%; left: 50%;
transform: translate(-50%,-20%); transform: translate(-50%, -20%);
}
} }
}
.el-select { .el-select {
width: 279.17px; width: 279.17px;
} }
</style> </style>

@ -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>

@ -1,34 +1,33 @@
// //
<template> <template>
<div class="wrap wrap2"> <div class="wrap wrap2">
<MyTitle :titleArr="['公司业务', text]"/> <MyTitle :titleArr="['公司业务', text]" />
<!-- 开户 --> <!-- 开户 -->
<div class="body"> <div class="body">
<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="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) => checkName(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" /> -->
@ -84,18 +87,18 @@ import NeedBefore from '@/components/needBefore'
import MyDialog from '@/components/dialog' import MyDialog from '@/components/dialog'
export default { export default {
name: 'index', name: 'index',
components:{ components: {
MyTitle, MyTitle,
NeedBefore, NeedBefore,
MyDialog MyDialog
}, },
mixins: [ TipsBefore ], mixins: [TipsBefore],
data() { data () {
return { return {
moduleName: 'business/transfer', moduleName: 'business/transfer',
text:'转账',/* 顶部文字 */ text: '转账',/* 顶部文字 */
visible: false, visible: false,
form:{ form: {
// //
transoutNum: '', // transoutNum: '', //
certificateNum: '', // certificateNum: '', //
@ -111,7 +114,7 @@ export default {
payWay: '', // payWay: '', //
abstract: '', // abstract: '', //
}, },
formName:{ formName: {
// //
transoutNum: '转出账号', // transoutNum: '转出账号', //
certificateNum: '凭证号码', // certificateNum: '凭证号码', //
@ -166,12 +169,12 @@ export default {
], ],
}, },
second:[// second: [//
], ],
visible:false, visible: false,
options:[], options: [],
activeIndex:'1', activeIndex: '1',
myTable: { myTable: {
257: { 257: {
prop: 'transoutNum', prop: 'transoutNum',
@ -239,13 +242,13 @@ export default {
submited: 0 submited: 0
} }
}, },
created() { created () {
if(this.isNeedBefore) { if (this.isNeedBefore) {
return return
} }
this.getFormData() this.getFormData()
}, },
mounted() { mounted () {
}, },
methods: { methods: {
...mapMutations({ ...mapMutations({
@ -254,7 +257,7 @@ export default {
setNeedsModule: 'system/setNeedsModule', setNeedsModule: 'system/setNeedsModule',
setPopId: 'system/setPopId' setPopId: 'system/setPopId'
}), }),
getBlurData() { getBlurData () {
// transoutNum: '', // // transoutNum: '', //
// certificateNum: '', // // certificateNum: '', //
// customerName: '', // // customerName: '', //
@ -268,7 +271,7 @@ export default {
// signDate: '', // // signDate: '', //
// payWay: '', // // payWay: '', //
// abstract: '', // // abstract: '', //
if(this.form.transoutNum) { if (this.form.transoutNum) {
const { currency } = this.dataFlow const { currency } = this.dataFlow
this.form.currencyMark = 13 this.form.currencyMark = 13
this.form.signDate = '2021-01-05' this.form.signDate = '2021-01-05'
@ -277,17 +280,17 @@ export default {
this.form.payWay = 114 this.form.payWay = 114
} }
}, },
getFormData(){ getFormData () {
const parentId = '285,' + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ',287,5,27,227' const parentId = '285,' + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ',287,5,27,227'
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('已提交!') 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));
}, },
submitForm2() { submitForm2 () {
const parentId = '285,' + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ',287,5,27,227' const parentId = '285,' + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ',287,5,27,227'
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)
@ -306,7 +309,7 @@ export default {
inMyWork: 'system/inMyWork', inMyWork: 'system/inMyWork',
getSelectList: 'system/getSelectList' getSelectList: 'system/getSelectList'
}), }),
needAuth() { needAuth () {
return this.form.money >= 50000 return this.form.money >= 50000
} }
} }
@ -314,16 +317,17 @@ export default {
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.wrap{ .wrap {
width: 100%; width: 100%;
display: flex; display: flex;
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>

@ -1,7 +1,7 @@
// //
<template> <template>
<div class="wrap wrap2"> <div class="wrap wrap2">
<MyTitle :titleArr="['客户信息', '个人客户信息建立']"/> <MyTitle :titleArr="['客户信息', '个人客户信息建立']" />
<div class="body"> <div class="body">
<el-row :gutter="20"> <el-row :gutter="20">
@ -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,13 +62,14 @@
<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> -->
</template> </template>
<script> // : consumerClient <script>// : consumerClient
import { mapState, mapMutations, mapGetters } from 'vuex' import { mapState, mapMutations, mapGetters } from 'vuex'
import { vername, vermob } from '@/utils/verify.js' import { vername, vermob } from '@/utils/verify.js'
import { addOperation, getOperation } from '@/api/http'; import { addOperation, getOperation } from '@/api/http';
@ -95,35 +84,35 @@ import NeedBefore from '@/components/needBefore'
const moduleName = 'consumerClient' const moduleName = 'consumerClient'
export default { export default {
name: 'consumerClient', name: 'consumerClient',
data() { data () {
return { return {
moduleName: 'consumerClient', moduleName: 'consumerClient',
idNumberJudge: false, idNumberJudge: false,
visible:false,// visible: false,//
form:{ form: {
idType:83,// idType: 83,//
idNumber:'',// idNumber: '',//
userName:'',// userName: '',//
sex:'',// sex: '',//
birthday:null,// birthday: null,//
nationality:'',// nationality: '',//
mailbox:'',// mailbox: '',//
phone:'',// phone: '',//
peopleNumber: '', peopleNumber: '',
}, },
formName: { formName: {
idType: '证件类型', idType: '证件类型',
idNumber:'证件号码', idNumber: '证件号码',
userName:'客户名字', userName: '客户名字',
sex:'性别', sex: '性别',
birthday:'出生日期', birthday: '出生日期',
nationality:'民族', nationality: '民族',
mailbox:'通讯地址', mailbox: '通讯地址',
phone:'联系电话', phone: '联系电话',
peopleNumber: '客户号' peopleNumber: '客户号'
}, },
rules: { rules: {
userName: vercustomer , userName: vercustomer,
phone: [ phone: [
{ {
required: true, required: true,
@ -145,17 +134,17 @@ export default {
}, },
authorization:false,// authorization: false,//
success:false,// success: false,//
papers:[ papers: [
{name:'身份证',id:1} { name: '身份证', id: 1 }
], ],
options:[], options: [],
gender:[ gender: [
{name:'男',id:1}, { name: '男', id: 1 },
{name:'女',id:2}, { name: '女', id: 2 },
], ],
nations : [ nations: [
{ "itemId": 24, "description": "汉族", "options": "汉族", "subjectId": 3, "isDel": 0, "createTime": "2021-12-20 12:00:44", "updateTime": "2021-12-20 12:00:44" }, { "itemId": 24, "description": "汉族", "options": "汉族", "subjectId": 3, "isDel": 0, "createTime": "2021-12-20 12:00:44", "updateTime": "2021-12-20 12:00:44" },
{ "itemId": 25, "description": "蒙古族", "options": "蒙古族", "subjectId": 3, "isDel": 0, "createTime": "2021-12-20 12:00:44", "updateTime": "2021-12-20 12:00:44" }, { "itemId": 25, "description": "蒙古族", "options": "蒙古族", "subjectId": 3, "isDel": 0, "createTime": "2021-12-20 12:00:44", "updateTime": "2021-12-20 12:00:44" },
{ "itemId": 26, "description": "回族", "options": "回族", "subjectId": 3, "isDel": 0, "createTime": "2021-12-20 12:00:45", "updateTime": "2021-12-20 12:00:45" }, { "itemId": 26, "description": "回族", "options": "回族", "subjectId": 3, "isDel": 0, "createTime": "2021-12-20 12:00:45", "updateTime": "2021-12-20 12:00:45" },
@ -222,11 +211,11 @@ export default {
MyDialog, MyDialog,
NeedBefore NeedBefore
}, },
created() { created () {
// if(this.isNeedBefore) { // if(this.isNeedBefore) {
// return // return
// } // }
if(sessionStorage.getItem('nomClientIdentity')) { if (sessionStorage.getItem('nomClientIdentity')) {
this.idNumberJudge = true this.idNumberJudge = true
const { userName, sex, birthday, nationality, mailbox, idNumber } = this.dataFlow const { userName, sex, birthday, nationality, mailbox, idNumber } = this.dataFlow
this.form.idNumber = idNumber this.form.idNumber = idNumber
@ -246,36 +235,36 @@ export default {
this.getFormData() this.getFormData()
}, },
mixins: [ TipsBefore ], mixins: [TipsBefore],
mounted() { mounted () {
}, },
methods: { methods: {
// //
submitIt() { submitIt () {
// this.setDataFlow({name: 'userName', val: ''}) // this.setDataFlow({name: 'userName', val: ''})
// console.log(this.dataFlow) // console.log(this.dataFlow)
}, },
getFormData(){ getFormData () {
let param= { let param = {
parentId: '285,' + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ',287,5,25,33' parentId: '285,' + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ',287,5,25,33'
} }
getOperation(param).then((data)=>{ getOperation(param).then((data) => {
if(data.status == 200) { if (data.status == 200) {
var list = data.data.judgmentRuleReqs var list = data.data.judgmentRuleReqs
for (var i = 0; i < list.length; i++) { for (var i = 0; i < list.length; i++) {
if (list[i].answerId == '40') {this.form.idType = +list[i].emptyTwo} 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') {sessionStorage.setItem('nomClientIdentity', list[i].emptyTwo)}
if (list[i].answerId == '41' && list[i].emptyTwo) { if (list[i].answerId == '41' && list[i].emptyTwo) {
this.idNumberJudge = true this.idNumberJudge = true
this.form.idNumber = list[i].emptyTwo this.form.idNumber = list[i].emptyTwo
} }
if (list[i].answerId == '42') {this.form.userName = list[i].emptyTwo} if (list[i].answerId == '42') { this.form.userName = list[i].emptyTwo }
if (list[i].answerId == '43') {this.form.sex = +list[i].emptyTwo} if (list[i].answerId == '43') { this.form.sex = +list[i].emptyTwo }
if (list[i].answerId == '44') {this.form.birthday = list[i].emptyTwo} if (list[i].answerId == '44') { this.form.birthday = list[i].emptyTwo }
if (list[i].answerId == '45') {this.form.nationality = list[i].emptyTwo} if (list[i].answerId == '45') { this.form.nationality = list[i].emptyTwo }
if (list[i].answerId == '46') {this.form.mailbox = list[i].emptyTwo} if (list[i].answerId == '46') { this.form.mailbox = list[i].emptyTwo }
if (list[i].answerId == '47') {this.form.phone = list[i].emptyTwo} if (list[i].answerId == '47') { this.form.phone = list[i].emptyTwo }
} }
} }
@ -287,7 +276,7 @@ export default {
// this.form[tt1] = tt1[key] // this.form[tt1] = tt1[key]
// } // }
// } // }
}).catch((error)=>{ }).catch((error) => {
// const tt1 = JSON.parse(sessionStorage.getItem('tt1')) // const tt1 = JSON.parse(sessionStorage.getItem('tt1'))
// console.log('2-tt1') // console.log('2-tt1')
// console.log(tt1) // console.log(tt1)
@ -309,7 +298,7 @@ export default {
setPopId: 'system/setPopId', setPopId: 'system/setPopId',
setTipsOperate: 'system/setTipsOperate' setTipsOperate: 'system/setTipsOperate'
}), }),
popUp(){// popUp () {//
// this.$store.commit('system/changePop',{show:true,text:'',id:'33'}) // this.$store.commit('system/changePop',{show:true,text:'',id:'33'})
// this.changeShowGoods(true) // this.changeShowGoods(true)
// this.$store.commit('system/changePop',{show: false, text: '', id:'33'}) // this.$store.commit('system/changePop',{show: false, text: '', id:'33'})
@ -320,12 +309,12 @@ export default {
this.$router.push('/counter/list/') this.$router.push('/counter/list/')
}, },
// //
submitForm(){ submitForm () {
if (this.submited) return this.$message.error('已提交!') 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);
if(!this.form.idNumber) { if (!this.form.idNumber) {
messageIdCard() messageIdCard()
return return
} }
@ -333,9 +322,9 @@ export default {
// this.form.birthday = this.form.birthday.slice(0, 10) // this.form.birthday = this.form.birthday.slice(0, 10)
this.form.peopleNumber = randomPeopleNumber() this.form.peopleNumber = randomPeopleNumber()
this.visible = true; this.visible = true;
} , this.$refs)); }, this.$refs));
}, },
submitForm2() { submitForm2 () {
let nomClientIdentity = sessionStorage.getItem('nomClientIdentity') let nomClientIdentity = sessionStorage.getItem('nomClientIdentity')
let consumerClientDragList = JSON.parse(nomClientIdentity); let consumerClientDragList = JSON.parse(nomClientIdentity);
let projectId = sessionStorage.getItem('projectId') let projectId = sessionStorage.getItem('projectId')
@ -344,47 +333,47 @@ export default {
let formList = []; let formList = [];
formList.push({"answerId":'41',"emptyOne": "", "emptyTwo": this.form.idNumber, "operationIds": "285," + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id +",287,5,25,33,41,13","type": ""}) formList.push({ "answerId": '41', "emptyOne": "", "emptyTwo": this.form.idNumber, "operationIds": "285," + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ",287,5,25,33,41,13", "type": "" })
if(this.form.sex){ if (this.form.sex) {
formList.push({ formList.push({
"answerId":'43', "answerId": '43',
"emptyOne": "1", "emptyOne": "1",
"emptyTwo": this.form.sex, "emptyTwo": this.form.sex,
"operationIds": "285," + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id +",287,5,25,33,43",// "operationIds": "285," + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ",287,5,25,33,43",//
"type": "1" "type": "1"
}) })
} }
if(this.form.nationality){ if (this.form.nationality) {
formList.push({ formList.push({
"answerId":'45', "answerId": '45',
"emptyOne": "3", "emptyOne": "3",
"emptyTwo": this.form.nationality, "emptyTwo": this.form.nationality,
"operationIds": "285," + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id +",287,5,25,33,45",// "operationIds": "285," + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ",287,5,25,33,45",//
"type": "1" "type": "1"
}) })
} }
if(this.form.mailbox){ if (this.form.mailbox) {
formList.push({ formList.push({
"answerId":'46', "answerId": '46',
"emptyOne": "4", "emptyOne": "4",
"emptyTwo": this.form.mailbox, "emptyTwo": this.form.mailbox,
"operationIds": "285," + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id +",287,5,25,33,46",// "operationIds": "285," + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ",287,5,25,33,46",//
"type": "3" "type": "3"
}) })
} }
formList.push( formList.push(
{"answerId":'40',"emptyOne": "19", "emptyTwo": this.form.idType, "operationIds": "285," + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id +",287,5,25,33,40", "type": "1"},// { "answerId": '40', "emptyOne": "19", "emptyTwo": this.form.idType, "operationIds": "285," + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ",287,5,25,33,40", "type": "1" },//
{"answerId":'42',"emptyOne": "7", "emptyTwo": this.form.userName, "operationIds": "285," + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id +",287,5,25,33,42", "type": "3"},// { "answerId": '42', "emptyOne": "7", "emptyTwo": this.form.userName, "operationIds": "285," + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ",287,5,25,33,42", "type": "3" },//
{"answerId":'44',"emptyOne": "2", "emptyTwo": this.form.birthday, "operationIds": "285," + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id +",287,5,25,33,44", "type": "3"},// { "answerId": '44', "emptyOne": "2", "emptyTwo": this.form.birthday, "operationIds": "285," + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ",287,5,25,33,44", "type": "3" },//
{"answerId":'47',"emptyOne": "5", "emptyTwo": this.form.phone, "operationIds": "285," + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id +",287,5,25,33,47", "type": "3"}// { "answerId": '47', "emptyOne": "5", "emptyTwo": this.form.phone, "operationIds": "285," + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ",287,5,25,33,47", "type": "3" }//
); );
let params= { let params = {
parentId: '285,' + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ',287,5,25,33', parentId: '285,' + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ',287,5,25,33',
lcJudgmentRuleReq:formList, lcJudgmentRuleReq: formList,
projectId:+projectId, projectId: +projectId,
startTime:startTime, startTime: startTime,
} }
addOperation(params).then((data)=>{ addOperation(params).then((data) => {
// this.$message({ // this.$message({
// message: '', // message: '',
// type: 'success' // type: 'success'
@ -392,23 +381,23 @@ export default {
this.setNeedsModule(moduleName) this.setNeedsModule(moduleName)
this.setDataFlow({ ...this.form }) this.setDataFlow({ ...this.form })
this.submited = 1 this.submited = 1
}).catch((error)=>{ }).catch((error) => {
this.setTipsOperate('服务器繁忙哦,提交失败。') this.setTipsOperate('服务器繁忙哦,提交失败。')
}) })
}, },
throttle(fn,wait=1000){// throttle (fn, wait = 1000) {//
var timer = null; var timer = null;
return function(){ return function () {
var context = this; var context = this;
var args = fn; var args = fn;
if(!timer){ if (!timer) {
timer = setTimeout(function(){ timer = setTimeout(function () {
fn.apply(context,fn); fn.apply(context, fn);
timer = null; timer = null;
},wait) }, wait)
} }
} }
}, },
@ -428,18 +417,18 @@ export default {
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.wrap{ .wrap {
width: 100%; width: 100%;
height: 100%; height: 100%;
display: flex; display: flex;
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>

@ -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>

@ -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>

@ -14,7 +14,7 @@
<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>
<p>{{text}}</p> <p>{{ text }}</p>
</div> </div>
<!-- 修改密码 --> <!-- 修改密码 -->
@ -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>
@ -51,24 +44,24 @@ import { mapState } from 'vuex'
import changePassword from './changePassword.vue' import changePassword from './changePassword.vue'
export default { export default {
name: 'index', name: 'index',
components:{ components: {
changePassword, changePassword,
}, },
data() { data () {
return { return {
text:'修改密码',/* 顶部文字 */ text: '修改密码',/* 顶部文字 */
textObj:{ textObj: {
'1':'修改密码', '1': '修改密码',
'2':'账户服务', '2': '账户服务',
'3':'修改密码', '3': '修改密码',
}, },
form:{ form: {
}, },
visible:false, visible: false,
options:[], options: [],
activeIndex:'1', activeIndex: '1',
second:[// second: [//
], ],
@ -76,11 +69,11 @@ export default {
} }
}, },
created() { created () {
}, },
methods: { methods: {
handleSelect(val){ handleSelect (val) {
this.text = this.textObj[val] this.text = this.textObj[val]
this.activeIndex = val this.activeIndex = val
}, },
@ -91,22 +84,25 @@ export default {
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.wrap{ .wrap {
width: 100%; width: 100%;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
overflow: hidden; overflow: hidden;
padding: 24px 0 24px 24px; padding: 24px 0 24px 24px;
.nav{
/deep/ .el-menu.el-menu--horizontal{ .nav {
/deep/ .el-menu.el-menu--horizontal {
border: 0; border: 0;
} }
/deep/ .el-menu--horizontal > .el-menu-item.is-active{
border:2px solid #568DF2; /deep/ .el-menu--horizontal>.el-menu-item.is-active {
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;
margin-right: 10px; margin-right: 10px;
@ -114,7 +110,8 @@ export default {
line-height: 28px; line-height: 28px;
} }
} }
.title{
.title {
height: 60px; height: 60px;
display: flex; display: flex;
align-items: center; align-items: center;
@ -122,10 +119,12 @@ 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;
text-align: center; text-align: center;
@ -134,9 +133,11 @@ 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;
position: absolute; position: absolute;
@ -146,16 +147,18 @@ export default {
width: 88%; width: 88%;
height: 268px; height: 268px;
} }
.addBtn{
.addBtn {
position: absolute; position: absolute;
left: 0; left: 0;
top: 50%; top: 50%;
transform: translate(50%,-50%); transform: translate(50%, -50%);
font-size: 22px; font-size: 22px;
} }
} }
} }
.submitBtn{
.submitBtn {
position: relative; position: relative;
width: 300px; width: 300px;
font-size: 18px; font-size: 18px;
@ -164,32 +167,37 @@ export default {
border-radius: 10px; border-radius: 10px;
bottom: 10px; bottom: 10px;
left: 50%; left: 50%;
transform: translate(-50%,-50%); transform: translate(-50%, -50%);
} }
.popBody{
.popBody {
min-height: 200px; min-height: 200px;
display: flex; display: flex;
align-items: center; align-items: center;
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;
} }
} }
} }
</style> </style>

@ -1,190 +1,108 @@
// //
<template> <template>
<div class="body"> <div class="body">
<el-row :gutter="20" <el-row :gutter="20" style="margin: 0">
style="margin: 0"> <el-form ref="form" :model="form" label-width="120px" :rules="rules">
<el-form ref="form" <el-col :span="10" :offset="1">
:model="form" <el-form-item label="凭证号码" required="">
label-width="120px"
:rules="rules">
<el-col :span="10"
:offset="1">
<el-form-item label="凭证号码"
required="">
<!-- <div v-if='!cardNumberJudge' class="idCard" @click="popUp('刷卡器')"> <!-- <div v-if='!cardNumberJudge' class="idCard" @click="popUp('刷卡器')">
<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 @blur="getDataBlur" <el-input @blur="getDataBlur" ref="voucherNumber" :value="form.voucherNumber"
ref="voucherNumber"
:value="form.voucherNumber"
@input="(val) => inputListen(val, form, 'voucherNumber')"></el-input> @input="(val) => inputListen(val, form, 'voucherNumber')"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="客户号" <el-form-item label="客户号" prop="customerNumber">
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="币种" <el-form-item label="币种" prop="currency">
prop="currency"> <el-select v-model.trim="form.currency" disabled placeholder="请选择" ref="currency">
<el-select v-model.trim="form.currency" <el-option v-for="item in getSelectList.currencySelectList" :label="item.options" :value="item.itemId"
disabled
placeholder="请选择"
ref="currency">
<el-option v-for="item in getSelectList.currencySelectList"
:label="item.options"
:value="item.itemId"
:key="item.itemId"> </el-option> :key="item.itemId"> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="通知类型" <el-form-item label="通知类型" prop="noticeType">
prop="noticeType"> <el-select v-model.trim="form.noticeType" disabled placeholder="请选择" ref="noticeType">
<el-select v-model.trim="form.noticeType" <el-option label="1天" :value="95"> </el-option>
disabled <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="起息日期" <el-form-item label="起息日期" prop="breathDate">
prop="breathDate"> <el-input autocomplete="off" 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="利息" <el-form-item label="利息" prop="interest">
prop="interest"> <el-input :value="form.interest" disabled @input="val => ismoney(val, form, 'interest')"
<el-input :value="form.interest"
disabled
@input="val => ismoney(val, form, 'interest')"
ref="interest"></el-input> ref="interest"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="支取类别" <el-form-item label="支取类别" prop="drawWayType">
prop="drawWayType"> <el-select v-model.trim="form.drawWayType" disabled placeholder="请选择" ref="drawWayType">
<el-select v-model.trim="form.drawWayType" <el-option label="现金" :value="133"> </el-option>
disabled
placeholder="请选择"
ref="drawWayType">
<el-option label="现金"
:value="133"> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="证件类型" <el-form-item label="证件类型" prop="certificateType">
prop="certificateType"> <el-select v-model.trim="form.certificateType" disabled placeholder="请选择" ref="certificateType">
<el-select v-model.trim="form.certificateType" <el-option label="身份证" :value="83"> </el-option>
disabled
placeholder="请选择"
ref="certificateType">
<el-option label="身份证"
:value="83"> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="支取密码" <el-form-item label="支取密码" required>
required> <div v-if='!form.drawPassword' class="idCard" @click="popUp3('密码器')">
<div v-if='!form.drawPassword'
class="idCard"
@click="popUp3('密码器')">
<p>请输入密码</p> <p>请输入密码</p>
</div> </div>
<div v-else <div v-else @click="popUp3('密码器')">
@click="popUp3('密码器')"> <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-col :span="10" <el-col :span="10" :offset="1">
:offset="1"> <el-form-item label="凭证类型" prop="voucherType">
<el-form-item label="凭证类型" <el-select v-model.trim="form.voucherType" disabled placeholder="请选择" ref="voucherType">
prop="voucherType"> <el-option label="存单" :value="123"> </el-option>
<el-select v-model.trim="form.voucherType"
disabled
placeholder="请选择"
ref="voucherType">
<el-option label="存单"
:value="123"> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="客户姓名" <el-form-item label="客户姓名" prop="clientName">
prop="clientName"> <el-input :value="form.clientName" disabled @input="(val) => checkName(val, form, 'clientName')"
<el-input :value="form.clientName"
disabled
@input="(val) => checkName(val, form, 'clientName')"
ref="clientName"></el-input> ref="clientName"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="钞汇标识" <el-form-item label="钞汇标识" prop="goldLogo">
prop="goldLogo"> <el-select v-model.trim="form.goldLogo" disabled placeholder="请选择" ref="goldLogo">
<el-select v-model.trim="form.goldLogo" <el-option v-for="item in getSelectList.goldLogo" :label="item.options" :value="item.itemId"
disabled
placeholder="请选择"
ref="goldLogo">
<el-option v-for="item in getSelectList.goldLogo"
:label="item.options"
:value="item.itemId"
:key="item.itemId"> </el-option> :key="item.itemId"> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="定存编号" <el-form-item label="定存编号" prop="depositNumber">
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="本金" <el-form-item label="本金" prop="capital">
prop="capital"> <el-input :value="form.capital" disabled @input="val => ismoney(val, form, 'capital')"
<el-input :value="form.capital"
disabled
@input="val => ismoney(val, form, 'capital')"
ref="capital"></el-input> ref="capital"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="总金额" <el-form-item label="总金额" prop="totalMoney">
prop="totalMoney"> <el-input :value="form.totalMoney" disabled @input="val => ismoney(val, form, 'totalMoney')"
<el-input :value="form.totalMoney"
disabled
@input="val => ismoney(val, form, 'totalMoney')"
ref="totalMoney"></el-input> ref="totalMoney"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="支取金额" <el-form-item label="支取金额" prop="payMoney">
prop="payMoney"> <el-input :value="form.payMoney" disabled @input="val => ismoney(val, form, 'payMoney')"
<el-input :value="form.payMoney"
disabled
@input="val => ismoney(val, form, 'payMoney')"
ref="payMoney"></el-input> ref="payMoney"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="证件号码" <el-form-item label="证件号码" required>
required> <div class="idCard" @click="popUp2('身份证扫描仪')" v-if='!idNumberJudge'>
<div class="idCard"
@click="popUp2('身份证扫描仪')"
v-if='!idNumberJudge'>
<p>请刷身份证</p> <p>请刷身份证</p>
</div> </div>
<div v-else> <div v-else>
<el-input :value="form.idNumber" <el-input :value="form.idNumber" disabled ref="idNumber"></el-input>
disabled
ref="idNumber"></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" <el-button @click="submitForm" type="primary" class="submitBtn" v-throttle>提交</el-button>
type="primary" <my-dialog :moduleName="moduleName" v-if="visible" :visible.sync="visible" :showForm="form" :formName="formName"
class="submitBtn" @submitIt="submitForm2" depositNumber='0812' />
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>
@ -563,5 +481,4 @@ export default {
// bottom: 10px; // bottom: 10px;
// left: 50%; // left: 50%;
// transform: translate(-50%,0); // transform: translate(-50%,0);
// } // }</style>
</style>

@ -3,49 +3,27 @@
<div> <div>
<div class="body"> <div class="body">
<div> <div>
<el-row :gutter="20" <el-row :gutter="20" style="margin: 0">
style="margin: 0"> <el-form ref="form" :model="form" label-width="120px" :rules="rules">
<el-form ref="form" <el-col :span="10" :offset="2">
:model="form"
label-width="120px"
:rules="rules">
<el-col :span="10"
:offset="2">
<el-form-item label="客户号"> <el-form-item label="客户号">
<el-input :value="form.userNumber" <el-input :value="form.userNumber" disabled @input="(val) => checkHanzi(val, form, 'userNumber')"
disabled
@input="(val) => checkHanzi(val, form, 'userNumber')"
ref="userNumber"></el-input> ref="userNumber"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="币种" <el-form-item label="币种" prop="currency">
prop="currency"> <el-select v-model.trim="form.currency" placeholder="请选择" ref="currency">
<el-select v-model.trim="form.currency" <el-option label='CNY人民币' :value="12" :key="12">CNY人民币</el-option>
placeholder="请选择"
ref="currency">
<el-option label='CNY人民币'
:value="12"
:key="12">CNY人民币</el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="10" <el-col :span="10" :offset="1">
:offset="1"> <el-form-item label="客户姓名" prop="userName">
<el-form-item label="客户姓名" <el-input :value="form.userName" disabled @input="(val) => checkName(val, form, 'userName')"
prop="userName">
<el-input :value="form.userName"
disabled
@input="(val) => checkName(val, form, 'userName')"
ref="userName"></el-input> ref="userName"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="钞汇标识" <el-form-item label="钞汇标识" prop="goldLogo">
prop="goldLogo"> <el-select v-model.trim="form.goldLogo" disabled placeholder="请选择" ref="goldLogo">
<el-select v-model.trim="form.goldLogo" <el-option v-for="item in goldLogoSelectList" :label="item.options" :value="item.itemId"
disabled
placeholder="请选择"
ref="goldLogo">
<el-option v-for="item in goldLogoSelectList"
:label="item.options"
:value="item.itemId"
:key="item.itemId"> </el-option> :key="item.itemId"> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
@ -60,29 +38,18 @@
</el-form> </el-form>
</el-row> </el-row>
<div class="add"> <div class="add">
<el-row :gutter="20" <el-row :gutter="20" style="margin: 0;z-index:9">
style="margin: 0;z-index:9"> <el-form ref="form1" :model="form" label-width="120px">
<el-form ref="form1" <el-col :span="10" :offset="2">
:model="form"
label-width="120px">
<el-col :span="10"
:offset="2">
<el-form-item label="账户性质"> <el-form-item label="账户性质">
<el-select v-model.trim="form.accountQuality" <el-select v-model.trim="form.accountQuality" placeholder="请选择" ref="accountQuality">
placeholder="请选择"
ref="accountQuality">
<!-- <el-option v-for="item in accountQualitySelectList" :label="item.options" :value="item.itemId" :key="item.itemId"> </el-option> <!-- <el-option v-for="item in accountQualitySelectList" :label="item.options" :value="item.itemId" :key="item.itemId"> </el-option>
--> -->
<el-option label="个人结算户" <el-option label="个人结算户" :value="14"> </el-option>
:value="14"> </el-option> <el-option label="基本户" :value="101"> </el-option>
<el-option label="基本户" <el-option label="一般户" :value="102"> </el-option>
:value="101"> </el-option> <el-option label="专用户" :value="103"> </el-option>
<el-option label="一般户" <el-option label="临时户" :value="104"> </el-option>
:value="102"> </el-option>
<el-option label="专用户"
:value="103"> </el-option>
<el-option label="临时户"
:value="104"> </el-option>
<!-- 14: '个人结算户', <!-- 14: '个人结算户',
101: '基本户', 101: '基本户',
102: '一般户', 102: '一般户',
@ -90,313 +57,192 @@
104: '临时户' --> 104: '临时户' -->
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="账户类型" <el-form-item label="账户类型" prop="accountType">
prop="accountType"> <el-select v-model.trim="form.accountType" placeholder="请选择" ref="accountType">
<el-select v-model.trim="form.accountType"
placeholder="请选择"
ref="accountType">
<!-- 16: '一类户', <!-- 16: '一类户',
17: '二类户', 17: '二类户',
97: '结算户', 97: '结算户',
98: '结算户', 98: '结算户',
99: '委托保障金户', 99: '委托保障金户',
100: '资本临时户' --> 100: '资本临时户' -->
<el-option label="一类户" <el-option label="一类户" :value="16"> </el-option>
:value="16"> </el-option> <el-option label="二类户" :value="17"> </el-option>
<el-option label="二类户"
:value="17"> </el-option>
<!-- <el-option label="结算户" :value="97"> </el-option> <!-- <el-option label="结算户" :value="97"> </el-option>
<el-option label="委托保障金户" :value="100"> </el-option> --> <el-option label="委托保障金户" :value="100"> </el-option> -->
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="支取方式" <el-form-item label="支取方式" prop="drawWay">
prop="drawWay"> <el-select v-model.trim="form.drawWay" placeholder="请选择" ref="drawWay">
<el-select v-model.trim="form.drawWay" <el-option label="密码" :value="18"> </el-option>
placeholder="请选择"
ref="drawWay">
<el-option label="密码"
:value="18"> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="10" <el-col :span="10" :offset="1">
:offset="1"> <el-form-item label="凭证类型" prop="voucherType">
<el-form-item label="凭证类型" <el-select v-model.trim="form.voucherType" placeholder="请选择" ref="voucherType">
prop="voucherType"> <el-option label="IC卡" :value="15"> </el-option>
<el-select v-model.trim="form.voucherType" <el-option label="转账支票" :value="115"> </el-option>
placeholder="请选择" <el-option label="现金支票" :value="116"> </el-option>
ref="voucherType"> <el-option label="存单" :value="123"> </el-option>
<el-option label="IC卡" <el-option label="银行" :value="127"> </el-option>
:value="15"> </el-option>
<el-option label="转账支票"
:value="115"> </el-option>
<el-option label="现金支票"
:value="116"> </el-option>
<el-option label="存单"
:value="123"> </el-option>
<el-option label="银行"
:value="127"> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="凭证号码" <el-form-item label="凭证号码" required>
required> <div v-if='!cardNumberJudge' class="idCard" @click="popUp('刷卡器')">
<div v-if='!cardNumberJudge'
class="idCard"
@click="popUp('刷卡器')">
<p>请刷卡</p> <p>请刷卡</p>
</div> </div>
<div v-else> <div v-else>
<el-input ref="cardNumber" <el-input ref="cardNumber" :value="form.cardNumber" disabled
:value="form.cardNumber"
disabled
@input="(val) => inputListen(val, form, 'cardNumber')"></el-input> @input="(val) => inputListen(val, form, 'cardNumber')"></el-input>
</div> </div>
</el-form-item> </el-form-item>
<el-form-item label="支取密码" <el-form-item label="支取密码" required>
required> <div v-if='!form.drawPassword' class="idCard" @click="popUps('密码器')">
<div v-if='!form.drawPassword'
class="idCard"
@click="popUps('密码器')">
<p>请输入密码</p> <p>请输入密码</p>
</div> </div>
<div v-else <div v-else @click="popUps('密码器')">
@click="popUps('密码器')"> <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-button @click="openAccount" <el-button @click="openAccount" type="primary" class="addBtn" circle icon="el-icon-plus"></el-button>
type="primary"
class="addBtn"
circle
icon="el-icon-plus"></el-button>
</el-row> </el-row>
</div> </div>
<!-- 二级证件,最多三张逻辑上一张二级为填完信息不可添加第三张 v-for="(item,index) in second" :key="index" --> <!-- 二级证件,最多三张逻辑上一张二级为填完信息不可添加第三张 v-for="(item,index) in second" :key="index" -->
<div class="add" <div class="add" v-if="formTwo">
v-if="formTwo"> <el-row :gutter="20" style="margin: 0;z-index:9">
<el-row :gutter="20" <el-form ref="form2" :model="form" label-width="120px">
style="margin: 0;z-index:9"> <el-col :span="10" :offset="2">
<el-form ref="form2"
:model="form"
label-width="120px">
<el-col :span="10"
:offset="2">
<el-form-item label="账户性质"> <el-form-item label="账户性质">
<el-select v-model.trim="form.accountQualitysTwo" <el-select v-model.trim="form.accountQualitysTwo" placeholder="请选择">
placeholder="请选择"> <el-option label="个人结算户" :value="14"> </el-option>
<el-option label="个人结算户" <el-option label="基本户" :value="101"> </el-option>
:value="14"> </el-option> <el-option label="一般户" :value="102"> </el-option>
<el-option label="基本户" <el-option label="专用户" :value="103"> </el-option>
:value="101"> </el-option> <el-option label="临时户" :value="104"> </el-option>
<el-option label="一般户"
:value="102"> </el-option>
<el-option label="专用户"
:value="103"> </el-option>
<el-option label="临时户"
:value="104"> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="账户类型" <el-form-item label="账户类型" required>
required> <el-select v-model.trim="form.accountTypesTwo" placeholder="请选择">
<el-select v-model.trim="form.accountTypesTwo" <el-option label="一类户" :value="16"> </el-option>
placeholder="请选择"> <el-option label="二类户" :value="17"> </el-option>
<el-option label="一类户"
:value="16"> </el-option>
<el-option label="二类户"
:value="17"> </el-option>
<!-- <el-option label="结算户" :value="97"> </el-option> <!-- <el-option label="结算户" :value="97"> </el-option>
<el-option label="委托保障金户" :value="100"> </el-option> --> <el-option label="委托保障金户" :value="100"> </el-option> -->
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="支取方式" <el-form-item label="支取方式" required>
required> <el-select v-model.trim="form.drawWaysTwo" placeholder="请选择">
<el-select v-model.trim="form.drawWaysTwo"
placeholder="请选择">
<!-- <el-option v-for="item in drawWaySelectList" :label="item.options" :value="item.itemId" :key="item.itemId"> </el-option> --> <!-- <el-option v-for="item in drawWaySelectList" :label="item.options" :value="item.itemId" :key="item.itemId"> </el-option> -->
<el-option label="密码" <el-option label="密码" :value="18"> </el-option>
:value="18"> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="10" <el-col :span="10" :offset="1">
:offset="1"> <el-form-item label="凭证类型" required>
<el-form-item label="凭证类型" <el-select v-model.trim="form.voucherTypesTwo" placeholder="请选择">
required> <el-option label="IC卡" :value="15"> </el-option>
<el-select v-model.trim="form.voucherTypesTwo" <el-option label="转账支票" :value="115"> </el-option>
placeholder="请选择"> <el-option label="现金支票" :value="116"> </el-option>
<el-option label="IC卡" <el-option label="存单" :value="123"> </el-option>
:value="15"> </el-option> <el-option label="银行" :value="127"> </el-option>
<el-option label="转账支票"
:value="115"> </el-option>
<el-option label="现金支票"
:value="116"> </el-option>
<el-option label="存单"
:value="123"> </el-option>
<el-option label="银行"
:value="127"> </el-option>
<!-- <el-option v-for="item in voucherTypeSelectList" :label="item.options" :value="item.itemId" :key="item.itemId"> </el-option> --> <!-- <el-option v-for="item in voucherTypeSelectList" :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="凭证号码" <el-form-item label="凭证号码" required>
required> <div v-if='!cardNumberJudge2' class="idCard" @click="popUpTwo('刷卡器')">
<div v-if='!cardNumberJudge2'
class="idCard"
@click="popUpTwo('刷卡器')">
<p>请刷卡</p> <p>请刷卡</p>
</div> </div>
<div v-else> <div v-else>
<el-input ref="cardNumber2" <el-input ref="cardNumber2" :value="form.cardNumber2" disabled
:value="form.cardNumber2"
disabled
@input="(val) => inputListen(val, form, 'cardNumber2')"></el-input> @input="(val) => inputListen(val, form, 'cardNumber2')"></el-input>
</div> </div>
</el-form-item> </el-form-item>
<el-form-item label="支取密码" <el-form-item label="支取密码" required>
required> <div v-if='!form.drawPassword2' class="idCard" @click="popUpsTwo('密码器')">
<div v-if='!form.drawPassword2'
class="idCard"
@click="popUpsTwo('密码器')">
<p>请输入密码</p> <p>请输入密码</p>
</div> </div>
<div v-else <div v-else @click="popUpsTwo('密码器')">
@click="popUpsTwo('密码器')"> <el-input :value="form.drawPassword2" ref="drawPassword2" type="password"></el-input>
<el-input :value="form.drawPassword2"
ref="drawPassword2"
type="password"></el-input>
</div> </div>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-form> </el-form>
<el-button @click="deleteSecond()" <el-button @click="deleteSecond()" class="addBtn" circle icon="el-icon-close"></el-button>
class="addBtn"
circle
icon="el-icon-close"></el-button>
</el-row> </el-row>
</div> </div>
<div class="add" <div class="add" v-if="formThree">
v-if="formThree"> <el-row :gutter="20" style="margin: 0;z-index:9">
<el-row :gutter="20" <el-form ref="form3" :model="form" label-width="120px">
style="margin: 0;z-index:9"> <el-col :span="10" :offset="2">
<el-form ref="form3"
:model="form"
label-width="120px">
<el-col :span="10"
:offset="2">
<el-form-item label="账户性质"> <el-form-item label="账户性质">
<el-select v-model.trim="form.accountQualitysThree" <el-select v-model.trim="form.accountQualitysThree" placeholder="请选择">
placeholder="请选择"> <el-option label="个人结算户" :value="14"> </el-option>
<el-option label="个人结算户" <el-option label="基本户" :value="101"> </el-option>
:value="14"> </el-option> <el-option label="一般户" :value="102"> </el-option>
<el-option label="基本户" <el-option label="专用户" :value="103"> </el-option>
:value="101"> </el-option> <el-option label="临时户" :value="104"> </el-option>
<el-option label="一般户"
:value="102"> </el-option>
<el-option label="专用户"
:value="103"> </el-option>
<el-option label="临时户"
:value="104"> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="账户类型" <el-form-item label="账户类型" required>
required> <el-select v-model.trim="form.accountTypesThree" placeholder="请选择">
<el-select v-model.trim="form.accountTypesThree" <el-option label="一类户" :value="16"> </el-option>
placeholder="请选择"> <el-option label="二类户" :value="17"> </el-option>
<el-option label="一类户"
:value="16"> </el-option>
<el-option label="二类户"
:value="17"> </el-option>
<!-- <el-option label="结算户" :value="97"> </el-option> <!-- <el-option label="结算户" :value="97"> </el-option>
<el-option label="委托保障金户" :value="100"> </el-option> --> <el-option label="委托保障金户" :value="100"> </el-option> -->
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="支取方式" <el-form-item label="支取方式" required>
required> <el-select v-model.trim="form.drawWaysThree" placeholder="请选择">
<el-select v-model.trim="form.drawWaysThree" <el-option label="密码" :value="18"> </el-option>
placeholder="请选择">
<el-option label="密码"
:value="18"> </el-option>
<!-- <el-option v-for="item in drawWaySelectList" :label="item.options" :value="item.options" :key="item.itemId"> </el-option> --> <!-- <el-option v-for="item in drawWaySelectList" :label="item.options" :value="item.options" :key="item.itemId"> </el-option> -->
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="10" <el-col :span="10" :offset="1">
:offset="1"> <el-form-item label="凭证类型" required>
<el-form-item label="凭证类型" <el-select v-model.trim="form.voucherTypesThree" placeholder="请选择">
required> <el-option label="IC卡" :value="15"> </el-option>
<el-select v-model.trim="form.voucherTypesThree" <el-option label="转账支票" :value="115"> </el-option>
placeholder="请选择"> <el-option label="现金支票" :value="116"> </el-option>
<el-option label="IC卡" <el-option label="存单" :value="123"> </el-option>
:value="15"> </el-option> <el-option label="银行" :value="127"> </el-option>
<el-option label="转账支票"
:value="115"> </el-option>
<el-option label="现金支票"
:value="116"> </el-option>
<el-option label="存单"
:value="123"> </el-option>
<el-option label="银行"
:value="127"> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="凭证号码" <el-form-item label="凭证号码" required>
required> <div v-if='!cardNumberJudge3' class="idCard" @click="popUpThree('刷卡器')">
<div v-if='!cardNumberJudge3'
class="idCard"
@click="popUpThree('刷卡器')">
<p>请刷卡</p> <p>请刷卡</p>
</div> </div>
<div v-else> <div v-else>
<el-input ref="cardNumber3" <el-input ref="cardNumber3" :value="form.cardNumber3" disabled
:value="form.cardNumber3"
disabled
@input="(val) => inputListen(val, form, 'cardNumber3')"></el-input> @input="(val) => inputListen(val, form, 'cardNumber3')"></el-input>
</div> </div>
</el-form-item> </el-form-item>
<el-form-item label="支取密码" <el-form-item label="支取密码" required>
required> <div v-if='!form.drawPassword3' class="idCard" @click="popUpsThree('密码器')">
<div v-if='!form.drawPassword3'
class="idCard"
@click="popUpsThree('密码器')">
<p>请输入密码</p> <p>请输入密码</p>
</div> </div>
<div v-else <div v-else @click="popUpsThree('密码器')">
@click="popUpsThree('密码器')"> <el-input :value="form.drawPassword3" ref="drawPassword3" type="password"></el-input>
<el-input :value="form.drawPassword3"
ref="drawPassword3"
type="password"></el-input>
</div> </div>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-form> </el-form>
<el-button @click="deleteSecond()" <el-button @click="deleteSecond()" class="addBtn" circle icon="el-icon-close"></el-button>
class="addBtn"
circle
icon="el-icon-close"></el-button>
</el-row> </el-row>
</div> </div>
</div> </div>
<el-button @click="formSubmit" <el-button @click="formSubmit" type="primary" class="submitBtn" v-throttle>提交</el-button>
type="primary"
class="submitBtn"
v-throttle>提交</el-button>
</div> </div>
<my-dialog :moduleName="moduleName" <my-dialog :moduleName="moduleName" v-if="visible" :visible.sync="visible" :showForm="form" :formName="formName"
v-if="visible" @submitIt="popSure" :needAuth="false" />
: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" /> -->
</template> </template>
<script> // currentAccount/openAccount <script>// currentAccount/openAccount
import { getSubjectInfo, addOperation, getOperation } from "@/api/http.js"; import { getSubjectInfo, addOperation, getOperation } from "@/api/http.js";
import { mapMutations, mapGetters, mapState } from 'vuex' import { mapMutations, mapGetters, mapState } from 'vuex'
import { vercustomer } from '@/utils/verify.js' import { vercustomer } from '@/utils/verify.js'
@ -1094,6 +940,7 @@ 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;
@ -1104,11 +951,14 @@ export default {
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;
@ -1119,6 +969,7 @@ export default {
width: 88%; width: 88%;
height: 200px; height: 200px;
} }
.addBtn { .addBtn {
position: absolute; position: absolute;
left: 0; left: 0;
@ -1128,6 +979,7 @@ export default {
} }
} }
} }
// .submitBtn{ // .submitBtn{
// position: relative; // position: relative;
// width: 300px; // width: 300px;
@ -1146,19 +998,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,15 +11,18 @@
<div v-else> <div v-else>
<el-input @blur="getDataBlur" ref="voucherNumber" disabled :value="form.voucherNumber" @input="(val) => inputListen(val, form, 'voucherNumber')"></el-input> <el-input @blur="getDataBlur" 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="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">
<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="money"> <el-form-item label="金额" prop="money">
<el-input :value="form.money" maxlength='15' @input="val => ismoney(val, form, 'money')" ref="money"></el-input> <el-input :value="form.money" maxlength='15' @input="val => ismoney(val, form, 'money')"
ref="money"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="利率(%)" prop="interestRate"> <el-form-item label="利率(%)" prop="interestRate">
<el-input v-model.trim="form.interestRate" disabled ref="interestRate"></el-input> <el-input v-model.trim="form.interestRate" disabled ref="interestRate"></el-input>
@ -37,11 +40,13 @@
</el-col> </el-col>
<el-col :span="10" :offset="1"> <el-col :span="10" :offset="1">
<el-form-item label="客户姓名" required prop="customerName"> <el-form-item label="客户姓名" required prop="customerName">
<el-input ref="customerName" disabled :value="form.customerName" @input="(val) => checkName(val, form, 'customerName')"></el-input> <el-input ref="customerName" disabled :value="form.customerName"
@input="(val) => checkName(val, form, 'customerName')"></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" placeholder="请选择" ref="goldLogo"> <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-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="depositTerm"> <el-form-item label="存期" prop="depositTerm">
@ -69,23 +74,26 @@
</div> </div>
</el-form-item> </el-form-item>
<el-form-item label="起息日" prop="valueDate"> <el-form-item label="起息日" prop="valueDate">
<el-input ref="valueDate" :value="form.valueDate" @input="(val) => checkHanzi(val, form, 'valueDate')" ></el-input> <el-input ref="valueDate" :value="form.valueDate"
@input="(val) => checkHanzi(val, form, 'valueDate')"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="21" :offset="1"> <el-col :span="21" :offset="1">
<el-form-item label="摘要" prop="textarea"> <el-form-item label="摘要" prop="textarea">
<el-input type="textarea" :rows="3" placeholder="请输入内容" v-model.trim="form.abstract" ref="textarea"></el-input> <el-input type="textarea" :rows="3" placeholder="请输入内容" v-model.trim="form.abstract"
ref="textarea"></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>
<my-dialog :moduleName="moduleName" v-if="visible" :visible.sync="visible" :showForm="form" :formName="formName" @submitIt="submitForm2" :needAuth="false" /> <my-dialog :moduleName="moduleName" v-if="visible" :visible.sync="visible" :showForm="form" :formName="formName"
@submitIt="submitForm2" :needAuth="false" />
</div> </div>
<!-- <need-before v-else :moduleName='needBefore' :unNeed="unNeed" /> --> <!-- <need-before v-else :moduleName='needBefore' :unNeed="unNeed" /> -->
</template> </template>
<script> <script>
import { myValidate, checkHanzi, checkName, ismoney, autoPlay, autoPlay2, inputListen,messageCard, messagePassword } from '@/utils/utilFunction.js'; import { myValidate, checkHanzi, checkName, ismoney, autoPlay, autoPlay2, inputListen, messageCard, messagePassword } from '@/utils/utilFunction.js';
import { mobPattern, namePattern, ratePattern, vercustomer } from '@/utils/verify.js' import { mobPattern, namePattern, ratePattern, vercustomer } from '@/utils/verify.js'
const moduleName = 'timeDeposit/deposit' const moduleName = 'timeDeposit/deposit'
@ -93,20 +101,20 @@ import { mapMutations, mapGetters } from 'vuex'
import NeedBefore from '@/components/needBefore' import NeedBefore from '@/components/needBefore'
import MyDialog from '@/components/dialog' import MyDialog from '@/components/dialog'
import TipsBefore from '@/mixins/tipsBefore' import TipsBefore from '@/mixins/tipsBefore'
export default{ export default {
name:'', name: '',
props:{}, props: {},
mixins: [ TipsBefore ], mixins: [TipsBefore],
components: { components: {
NeedBefore, NeedBefore,
MyDialog MyDialog
}, },
data(){ data () {
return{ return {
moduleName: 'timeDeposit/deposit', moduleName: 'timeDeposit/deposit',
visible: false, visible: false,
cardNumberJudge: false, cardNumberJudge: false,
form:{ form: {
// //
// identityCard: '', // // identityCard: '', //
customerName: '', // customerName: '', //
@ -124,7 +132,7 @@ export default{
drawWay: 18, // drawWay: 18, //
abstract: '' // abstract: '' //
}, },
formName:{ formName: {
// //
customerName: '客户姓名', // customerName: '客户姓名', //
currency: '币种', // currency: '币种', //
@ -142,7 +150,7 @@ export default{
abstract: '摘要' // abstract: '摘要' //
}, },
rules: { rules: {
customerName: vercustomer , customerName: vercustomer,
currency: [ currency: [
{ {
required: true, required: true,
@ -278,8 +286,8 @@ export default{
submited: 0 submited: 0
} }
}, },
created() { created () {
if(sessionStorage.getItem('nomtimeDepositlPassword')) { if (sessionStorage.getItem('nomtimeDepositlPassword')) {
this.form.drawPassword = sessionStorage.getItem('nomtimeDepositlPassword') this.form.drawPassword = sessionStorage.getItem('nomtimeDepositlPassword')
} }
// if(this.isNeedBefore) { // if(this.isNeedBefore) {
@ -290,7 +298,7 @@ export default{
// return // return
// } // }
if(sessionStorage.getItem('nomtimeDeposit1')) { if (sessionStorage.getItem('nomtimeDeposit1')) {
this.cardNumberJudge = true this.cardNumberJudge = true
const { userName, currency, goldLogo, voucherNumber } = this.dataFlow const { userName, currency, goldLogo, voucherNumber } = this.dataFlow
this.form.customerName = userName this.form.customerName = userName
@ -304,7 +312,7 @@ export default{
this.getFormData() this.getFormData()
}, },
mounted() { mounted () {
}, },
methods: { methods: {
@ -316,34 +324,34 @@ export default{
setPopId: 'system/setPopId', setPopId: 'system/setPopId',
setTipsOperate: 'system/setTipsOperate' setTipsOperate: 'system/setTipsOperate'
}), }),
getDataBlur() { getDataBlur () {
if(!this.form.voucherNumber) { if (!this.form.voucherNumber) {
return return
} }
if(this.form.voucherNumber) { if (this.form.voucherNumber) {
const { userName, currency, goldLogo } = this.dataFlow const { userName, currency, goldLogo } = this.dataFlow
this.form.customerName = userName this.form.customerName = userName
this.form.currency = currency this.form.currency = currency
this.form.goldLogo = goldLogo this.form.goldLogo = goldLogo
} }
}, },
getFormData(){ getFormData () {
const parentId = '285,' + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ',287,5,26,58,119' const parentId = '285,' + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ',287,5,26,58,119'
const cards = { const cards = {
// 131: 'nomtimeDeposit1', // 131: 'nomtimeDeposit1',
// 140: 'nomtimeDepositlPassword' // 140: 'nomtimeDepositlPassword'
} }
const callback = () => { const callback = () => {
if(this.form.voucherNumber) { if (this.form.voucherNumber) {
this.cardNumberJudge = true this.cardNumberJudge = true
} }
if(sessionStorage.getItem('nomtimeDepositlPassword')) { if (sessionStorage.getItem('nomtimeDepositlPassword')) {
this.form.drawPassword = sessionStorage.getItem('nomtimeDepositlPassword') this.form.drawPassword = sessionStorage.getItem('nomtimeDepositlPassword')
} }
} }
autoPlay2(parentId, this.form, this.myTable2, this.myTable, cards, callback) autoPlay2(parentId, this.form, this.myTable2, this.myTable, cards, callback)
}, },
popUp(text) { popUp (text) {
// this.$store.commit('system/changePop',{show:true,text, id: '131'}) // this.$store.commit('system/changePop',{show:true,text, id: '131'})
this.setTipsOperate('请刷银行卡'); this.setTipsOperate('请刷银行卡');
@ -351,7 +359,7 @@ export default{
sessionStorage.setItem('computerPath', this.$route.fullPath) sessionStorage.setItem('computerPath', this.$route.fullPath)
this.$router.push('/counter/list/') this.$router.push('/counter/list/')
}, },
popUp2(text) { popUp2 (text) {
// this.$store.commit('system/changePop',{show:true,text, id: '140'}) // this.$store.commit('system/changePop',{show:true,text, id: '140'})
this.setTipsOperate('请在密码器输入密码'); this.setTipsOperate('请在密码器输入密码');
@ -359,13 +367,13 @@ export default{
sessionStorage.setItem('computerPath', this.$route.fullPath) sessionStorage.setItem('computerPath', this.$route.fullPath)
this.$router.push('/counter/list/') this.$router.push('/counter/list/')
}, },
submitForm() { submitForm () {
if (this.submited) return this.$message.error('已提交!') if (this.submited) return this.$message.error('已提交!')
if(!this.form.voucherNumber) { if (!this.form.voucherNumber) {
messageCard('请填写凭证号码') messageCard('请填写凭证号码')
return return
} }
if(!this.form.drawPassword) { if (!this.form.drawPassword) {
messagePassword() messagePassword()
return return
} }
@ -376,7 +384,7 @@ export default{
}, this.$refs)); }, this.$refs));
}, },
submitForm2() { submitForm2 () {
// let nomtimeDeposit1 = sessionStorage.getItem('nomtimeDeposit1') // let nomtimeDeposit1 = sessionStorage.getItem('nomtimeDeposit1')
// let nomtimeDepositlPassword = sessionStorage.getItem('nomtimeDepositlPassword') // let nomtimeDepositlPassword = sessionStorage.getItem('nomtimeDepositlPassword')
const parentId = '285,' + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ',287,5,26,58,119' const parentId = '285,' + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ',287,5,26,58,119'
@ -409,18 +417,18 @@ export default{
}) })
}, },
watch: { watch: {
'form.depositTerm'(newVal) { 'form.depositTerm' (newVal) {
if(newVal === 84) { if (newVal === 84) {
this.form.interestRate = 1.35 this.form.interestRate = 1.35
}else if(newVal === 85) { } else if (newVal === 85) {
this.form.interestRate = 1.55 this.form.interestRate = 1.55
}else if(newVal === 86) { } else if (newVal === 86) {
this.form.interestRate = 1.75 this.form.interestRate = 1.75
}else if(newVal === 87) { } else if (newVal === 87) {
this.form.interestRate = 2.25 this.form.interestRate = 2.25
}else if(newVal === 88) { } else if (newVal === 88) {
this.form.interestRate = 2.75 this.form.interestRate = 2.75
}else if(newVal === 89) { } else if (newVal === 89) {
this.form.interestRate = 2.75 this.form.interestRate = 2.75
} }
} }
@ -453,5 +461,4 @@ export default{
// left: 50%; // left: 50%;
// transform: translate(-50%,-20%); // transform: translate(-50%,-20%);
// } // }
// } // }</style>
</style>

@ -10,11 +10,13 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="客户号"> <el-form-item label="客户号">
<el-input ref="clientNumber" disabled maxlength="20" :value="form.clientNumber" @input="(val) => checkHanzi(val, form, 'clientNumber')"></el-input> <el-input ref="clientNumber" disabled maxlength="20" :value="form.clientNumber"
@input="(val) => checkHanzi(val, form, 'clientNumber')"></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">
<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="voucherType"> <el-form-item label="凭证类型" prop="voucherType">
@ -41,11 +43,13 @@
</div> </div>
</el-form-item> </el-form-item>
<el-form-item label="客户姓名" prop="customerName"> <el-form-item label="客户姓名" prop="customerName">
<el-input ref="customerName" maxlength="20" disabled :value="form.customerName" @input="(val) => checkName(val, form, 'customerName')"></el-input> <el-input ref="customerName" maxlength="20" disabled :value="form.customerName"
@input="(val) => checkName(val, form, 'customerName')"></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" placeholder="请选择" ref="goldLogo"> <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-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>
@ -55,7 +59,8 @@
<div v-else> <div v-else>
<el-input @blur="getDataBlur" maxlength="20" ref="voucherNumber" disabled :value="form.voucherNumber" @input="(val) => inputListen(val, form, 'voucherNumber')"></el-input> <el-input @blur="getDataBlur" maxlength="20" ref="voucherNumber" disabled :value="form.voucherNumber" @input="(val) => inputListen(val, form, 'voucherNumber')"></el-input>
</div> --> </div> -->
<el-input maxlength="18" ref="voucherNumber" :value="form.voucherNumber" @input="(val) => inputListen(val, form, 'voucherNumber')"></el-input> <el-input maxlength="18" ref="voucherNumber" :value="form.voucherNumber"
@input="(val) => inputListen(val, form, 'voucherNumber')"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="支取密码" required> <el-form-item label="支取密码" required>
<div v-if='!form.drawPassword' class="idCard" @click="popUp3('密码器')"> <div v-if='!form.drawPassword' class="idCard" @click="popUp3('密码器')">
@ -65,20 +70,21 @@
<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-form-item label="客户经理" prop="customerManage">--> <!-- <el-form-item label="客户经理" prop="customerManage">-->
<!-- <el-input ref="customerManage" :value="form.customerManage" @input="(val) => checkHanzi(val, form, 'customerManage')"></el-input>--> <!-- <el-input ref="customerManage" :value="form.customerManage" @input="(val) => checkHanzi(val, form, 'customerManage')"></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>
<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" /> --> <!-- <need-before v-else :moduleName='needBefore' :unNeed="unNeed" /> -->
</template> </template>
<script> <script>
import { myValidate, checkHanzi, checkName, autoPlay, autoPlay2, inputListen, messageIdCard,messageCard, messagePassword } from '@/utils/utilFunction.js'; import { myValidate, checkHanzi, checkName, autoPlay, autoPlay2, inputListen, messageIdCard, messageCard, messagePassword } from '@/utils/utilFunction.js';
import { mobPattern, namePattern, ratePattern, vercustomer } from '@/utils/verify.js' import { mobPattern, namePattern, ratePattern, vercustomer } from '@/utils/verify.js'
import { mapMutations, mapGetters } from 'vuex' import { mapMutations, mapGetters } from 'vuex'
@ -86,21 +92,21 @@ import NeedBefore from '@/components/needBefore'
import MyDialog from '@/components/dialog' import MyDialog from '@/components/dialog'
import TipsBefore from '@/mixins/tipsBefore' import TipsBefore from '@/mixins/tipsBefore'
const moduleName = 'timeDeposit/openAccount' const moduleName = 'timeDeposit/openAccount'
export default{ export default {
name:'', name: '',
props:{}, props: {},
mixins: [ TipsBefore ], mixins: [TipsBefore],
components: { components: {
NeedBefore, NeedBefore,
MyDialog MyDialog
}, },
data(){ data () {
return{ return {
moduleName: 'timeDeposit/openAccount', moduleName: 'timeDeposit/openAccount',
visible: false, visible: false,
idNumberJudge: false, idNumberJudge: false,
cardNumberJudge: false, cardNumberJudge: false,
form:{ form: {
// //
idNumber: '', // idNumber: '', //
customerName: '', // customerName: '', //
@ -110,26 +116,26 @@ export default{
voucherNumber: '', // voucherNumber: '', //
drawPassword: '', // drawPassword: '', //
customerManage: '', // customerManage: '', //
drawWay:18,// drawWay: 18,//
// //
certificateType: 83, // certificateType: 83, //
clientNumber: '' // clientNumber: '' //
}, },
formName: { formName: {
idNumber: '身份证', // idNumber: '身份证',
customerName: '客户姓名', // customerName: '客户姓名',
currency: '币种', // currency: '币种',
goldLogo: '钞汇标识', // goldLogo: '钞汇标识',
voucherType: '凭证类型', // voucherType: '凭证类型',
voucherNumber: '凭证号码', // voucherNumber: '凭证号码',
customerManage: '客户经理', // customerManage: '客户经理',
drawWay:'支取方式',// drawWay: '支取方式',//
certificateType: '证件类型', // certificateType: '证件类型',
drawPassword: '支付密码', // drawPassword: '支付密码',
clientNumber: '客户号' // clientNumber: '客户号'
}, },
rules: { rules: {
customerName: vercustomer , customerName: vercustomer,
customerManage: [{ customerManage: [{
required: true, required: true,
message: '请输入客户经理名称', message: '请输入客户经理名称',
@ -222,8 +228,8 @@ export default{
submited: 0 submited: 0
} }
}, },
created() { created () {
if(sessionStorage.getItem('nomtimeOpenAccountPassword')) { if (sessionStorage.getItem('nomtimeOpenAccountPassword')) {
this.form.drawPassword = sessionStorage.getItem('nomtimeOpenAccountPassword') this.form.drawPassword = sessionStorage.getItem('nomtimeOpenAccountPassword')
} }
@ -241,7 +247,7 @@ export default{
// } // }
this.form.clientNumber = this.dataFlow.peopleNumber this.form.clientNumber = this.dataFlow.peopleNumber
if(sessionStorage.getItem('nomtimeOpenAccount1')) { if (sessionStorage.getItem('nomtimeOpenAccount1')) {
const { idNumber, userName, currency, goldLogo } = this.dataFlow const { idNumber, userName, currency, goldLogo } = this.dataFlow
this.form.idNumber = idNumber this.form.idNumber = idNumber
this.form.customerName = userName this.form.customerName = userName
@ -261,7 +267,7 @@ export default{
this.getFormData() this.getFormData()
}, },
mounted() { mounted () {
}, },
methods: { methods: {
@ -272,7 +278,7 @@ export default{
setPopId: 'system/setPopId', setPopId: 'system/setPopId',
setTipsOperate: 'system/setTipsOperate' setTipsOperate: 'system/setTipsOperate'
}), }),
getFormData(){ getFormData () {
const parentId = '285,' + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ',287,5,26,58,118' const parentId = '285,' + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ',287,5,26,58,118'
const cards = { const cards = {
// 13: 'nomtimeOpenAccount1', // 13: 'nomtimeOpenAccount1',
@ -280,26 +286,26 @@ export default{
// 129: 'nomtimeOpenAccountPassword' // 129: 'nomtimeOpenAccountPassword'
} }
const callback = () => { const callback = () => {
if(this.form.idNumber) { if (this.form.idNumber) {
this.idNumberJudge = true this.idNumberJudge = true
} }
if(this.form.voucherNumber) { if (this.form.voucherNumber) {
this.cardNumberJudge = true this.cardNumberJudge = true
} }
// //
if(sessionStorage.getItem('nomtimeOpenAccount2')) { if (sessionStorage.getItem('nomtimeOpenAccount2')) {
const { voucherNumber } = this.dataFlow const { voucherNumber } = this.dataFlow
this.cardNumberJudge = true this.cardNumberJudge = true
this.form.voucherNumber = voucherNumber this.form.voucherNumber = voucherNumber
} }
if(sessionStorage.getItem('nomtimeOpenAccountPassword')) { if (sessionStorage.getItem('nomtimeOpenAccountPassword')) {
this.form.drawPassword = sessionStorage.getItem('nomtimeOpenAccountPassword') this.form.drawPassword = sessionStorage.getItem('nomtimeOpenAccountPassword')
} }
} }
autoPlay2(parentId, this.form, this.myTable2, this.myTable, cards, callback) autoPlay2(parentId, this.form, this.myTable2, this.myTable, cards, callback)
}, },
popUp1(text) { // popUp1 (text) { //
// this.$store.commit('system/changePop',{show:true,text, id: '118,1'}) // this.$store.commit('system/changePop',{show:true,text, id: '118,1'})
this.setTipsOperate('请刷身份证'); this.setTipsOperate('请刷身份证');
@ -307,7 +313,7 @@ export default{
sessionStorage.setItem('computerPath', this.$route.fullPath) sessionStorage.setItem('computerPath', this.$route.fullPath)
this.$router.push('/counter/list/') this.$router.push('/counter/list/')
}, },
popUp2(text) { // popUp2 (text) { //
// this.$store.commit('system/changePop',{show:true,text, id: '118,2'}) // this.$store.commit('system/changePop',{show:true,text, id: '118,2'})
this.setTipsOperate('请刷银行卡'); this.setTipsOperate('请刷银行卡');
@ -315,7 +321,7 @@ export default{
sessionStorage.setItem('computerPath', this.$route.fullPath) sessionStorage.setItem('computerPath', this.$route.fullPath)
this.$router.push('/counter/list/') this.$router.push('/counter/list/')
}, },
popUp3(text) { // popUp3 (text) { //
// this.$store.commit('system/changePop',{show:true,text, id: '129'}) // this.$store.commit('system/changePop',{show:true,text, id: '129'})
this.setTipsOperate('请在密码器输入密码'); this.setTipsOperate('请在密码器输入密码');
@ -323,18 +329,18 @@ export default{
sessionStorage.setItem('computerPath', this.$route.fullPath) sessionStorage.setItem('computerPath', this.$route.fullPath)
this.$router.push('/counter/list/') this.$router.push('/counter/list/')
}, },
submitForm() { submitForm () {
if (this.submited) return this.$message.error('已提交!') if (this.submited) return this.$message.error('已提交!')
if(!this.form.idNumber) { if (!this.form.idNumber) {
messageIdCard() messageIdCard()
return return
} }
if(!this.form.voucherNumber) { if (!this.form.voucherNumber) {
messageCard() messageCard()
return return
} }
if(!this.form.drawPassword) { if (!this.form.drawPassword) {
messagePassword() messagePassword()
return return
} }
@ -345,7 +351,7 @@ export default{
}, this.$refs)); }, this.$refs));
}, },
submitForm2() { submitForm2 () {
let nomtimeOpenAccount1 = sessionStorage.getItem('nomtimeOpenAccount1') let nomtimeOpenAccount1 = sessionStorage.getItem('nomtimeOpenAccount1')
const cards = [ const cards = [
{ {
@ -357,9 +363,9 @@ export default{
this.setNeedsModule(moduleName) this.setNeedsModule(moduleName)
this.submited = 1 this.submited = 1
}, },
checkHanzi: checkHanzi, checkHanzi,
checkName: checkName, checkName,
inputListen: inputListen inputListen
}, },
computed: { computed: {
...mapGetters({ ...mapGetters({
@ -398,5 +404,4 @@ export default{
// left: 50%; // left: 50%;
// transform: translate(-50%,-20%); // transform: translate(-50%,-20%);
// } // }
// } // }</style>
</style>

@ -10,11 +10,13 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="客户号" prop="clientNumber"> <el-form-item label="客户号" prop="clientNumber">
<el-input ref="clientNumber" disabled :value="form.clientNumber" @input="(val) => checkHanzi(val, form, 'clientNumber')" ></el-input> <el-input ref="clientNumber" disabled :value="form.clientNumber"
@input="(val) => checkHanzi(val, form, 'clientNumber')"></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">
<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="voucherType"> <el-form-item label="凭证类型" prop="voucherType">
@ -48,11 +50,13 @@
</div> </div>
</el-form-item> </el-form-item>
<el-form-item label="客户姓名" prop="customerName"> <el-form-item label="客户姓名" prop="customerName">
<el-input ref="customerName" disabled :value="form.customerName" @input="(val) => checkName(val, form, 'customerName')"></el-input> <el-input ref="customerName" disabled :value="form.customerName"
@input="(val) => checkName(val, form, 'customerName')"></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" placeholder="请选择" ref="goldLogo"> <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-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>
@ -60,13 +64,15 @@
<p>请刷卡</p> <p>请刷卡</p>
</div> </div>
<div v-else> <div v-else>
<el-input @blur="getDataBlur" maxlength="20" ref="voucherNumber" disabled :value="form.voucherNumber" @input="(val) => inputListen(val, form, 'voucherNumber')"></el-input> <el-input @blur="getDataBlur" maxlength="20" ref="voucherNumber" disabled :value="form.voucherNumber"
@input="(val) => inputListen(val, form, 'voucherNumber')"></el-input>
</div> </div>
<!-- <el-input @blur="getDataBlur" maxlength="20" ref="voucherNumber" :value="form.voucherNumber" @input="(val) => inputListen(val, form, 'voucherNumber')"></el-input> --> <!-- <el-input @blur="getDataBlur" maxlength="20" ref="voucherNumber" :value="form.voucherNumber" @input="(val) => inputListen(val, form, 'voucherNumber')"></el-input> -->
</el-form-item> </el-form-item>
<el-form-item label="月存金额" prop="monthDeposit"> <el-form-item label="月存金额" prop="monthDeposit">
<!-- :value="form.monthDeposit" --> <!-- :value="form.monthDeposit" -->
<el-input :value="form.monthDeposit" maxlength="15" @input="val => ismoney(val, form, 'monthDeposit')" ref="monthDeposit" ></el-input> <el-input :value="form.monthDeposit" maxlength="15" @input="val => ismoney(val, form, 'monthDeposit')"
ref="monthDeposit"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="续存标识" prop="extendDepositTarget"> <el-form-item label="续存标识" prop="extendDepositTarget">
<el-select v-model.trim="form.extendDepositTarget" placeholder="请选择" ref="extendDepositTarget"> <el-select v-model.trim="form.extendDepositTarget" placeholder="请选择" ref="extendDepositTarget">
@ -80,7 +86,8 @@
<el-input :value="form.customerManage" @input="val => checkHanzi(val, form, 'customerManage')" ref="customerManage" ></el-input> <el-input :value="form.customerManage" @input="val => checkHanzi(val, form, 'customerManage')" ref="customerManage" ></el-input>
</el-form-item> --> </el-form-item> -->
</el-col> </el-col>
<my-dialog :moduleName="moduleName" v-if="visible" :visible.sync="visible" :showForm="form" :formName="formName" @submitIt="submitForm2" depositNumber='0816' /> <my-dialog :moduleName="moduleName" v-if="visible" :visible.sync="visible" :showForm="form" :formName="formName"
@submitIt="submitForm2" depositNumber='0816' />
</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>
@ -88,7 +95,7 @@
<!-- <need-before v-else :moduleName='needBefore' :unNeed="unNeed" /> --> <!-- <need-before v-else :moduleName='needBefore' :unNeed="unNeed" /> -->
</template> </template>
<script> <script>
import { myValidate, checkHanzi, checkName, ismoney, autoPlay, autoPlay2, inputListen, messageIdCard,messageCard, messagePassword } from '@/utils/utilFunction.js'; 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 { mobPattern, namePattern, ratePattern, vercustomer } from '@/utils/verify.js'
const moduleName = 'usefulPhrases/openAccount' const moduleName = 'usefulPhrases/openAccount'
@ -96,16 +103,16 @@ import { mapMutations, mapGetters } from 'vuex'
import NeedBefore from '@/components/needBefore' import NeedBefore from '@/components/needBefore'
import MyDialog from '@/components/dialog' import MyDialog from '@/components/dialog'
import TipsBefore from '@/mixins/tipsBefore' import TipsBefore from '@/mixins/tipsBefore'
export default{ export default {
name:'', name: '',
props:{}, props: {},
components: { components: {
NeedBefore, NeedBefore,
MyDialog MyDialog
}, },
mixins: [ TipsBefore ], mixins: [TipsBefore],
created() { created () {
if(sessionStorage.getItem('nomUsefulPhrasesOpenPassword')) { if (sessionStorage.getItem('nomUsefulPhrasesOpenPassword')) {
this.form.drawPassword = sessionStorage.getItem('nomUsefulPhrasesOpenPassword') this.form.drawPassword = sessionStorage.getItem('nomUsefulPhrasesOpenPassword')
} }
@ -118,7 +125,7 @@ export default{
// this.form.voucherNumber = this.dataFlow.voucherNumber || '159753' // this.form.voucherNumber = this.dataFlow.voucherNumber || '159753'
// } // }
if(sessionStorage.getItem('nomUsefulPhrasesOpenCard2')) { if (sessionStorage.getItem('nomUsefulPhrasesOpenCard2')) {
this.idNumberJudge = true this.idNumberJudge = true
// //
const { idNumber, userName, peopleNumber, currency, goldLogo } = this.dataFlow const { idNumber, userName, peopleNumber, currency, goldLogo } = this.dataFlow
@ -129,7 +136,7 @@ export default{
this.form.goldLogo = goldLogo this.form.goldLogo = goldLogo
this.form.voucherType = 127 this.form.voucherType = 127
} }
if(sessionStorage.getItem('nomUsefulPhrasesOpenCard')) { if (sessionStorage.getItem('nomUsefulPhrasesOpenCard')) {
this.cardNumberJudge = true this.cardNumberJudge = true
const { voucherNumber } = this.dataFlow const { voucherNumber } = this.dataFlow
this.form.voucherNumber = voucherNumber this.form.voucherNumber = voucherNumber
@ -139,13 +146,13 @@ export default{
this.getFormData() this.getFormData()
}, },
data(){ data () {
return{ return {
moduleName: 'usefulPhrases/openAccount', moduleName: 'usefulPhrases/openAccount',
visible: false, visible: false,
cardNumberJudge: false, cardNumberJudge: false,
idNumberJudge: false, idNumberJudge: false,
form:{ form: {
// //
// identityCard: '', // // identityCard: '', //
idNumber: '', idNumber: '',
@ -162,19 +169,19 @@ export default{
clientNumber: '', // clientNumber: '', //
certificateType: 83, // certificateType: 83, //
}, },
formName:{ formName: {
// //
// identityCard: '', // // identityCard: '', //
idNumber: '身份证', idNumber: '身份证',
customerName: '客户姓名', // customerName: '客户姓名',
currency: '币种', // currency: '币种',
goldLogo: '钞汇标识', // goldLogo: '钞汇标识',
voucherType: '凭证类型', // voucherType: '凭证类型',
monthDeposit: '月存金额', // monthDeposit: '月存金额',
depositTerm: '存期', // depositTerm: '存期',
extendDepositTarget: '续存标识', // extendDepositTarget: '续存标识',
voucherNumber: '凭证号码', // voucherNumber: '凭证号码',
drawPassword: '支付密码', // drawPassword: '支付密码',
// //
clientNumber: '客户号', // clientNumber: '客户号', //
certificateType: '证件类型', // certificateType: '证件类型', //
@ -290,7 +297,7 @@ export default{
submited: 0 submited: 0
} }
}, },
mounted() { mounted () {
}, },
methods: { methods: {
@ -306,28 +313,28 @@ export default{
setPopId: 'system/setPopId', setPopId: 'system/setPopId',
setTipsOperate: 'system/setTipsOperate' setTipsOperate: 'system/setTipsOperate'
}), }),
getDataBlur() { getDataBlur () {
// console.log('???') // console.log('???')
}, },
popUp1(text) { popUp1 (text) {
this.setTipsOperate('请刷身份证'); this.setTipsOperate('请刷身份证');
this.setPopId('1399') this.setPopId('1399')
sessionStorage.setItem('computerPath', this.$route.fullPath) sessionStorage.setItem('computerPath', this.$route.fullPath)
this.$router.push('/counter/list/') this.$router.push('/counter/list/')
}, },
popUp2(text) { popUp2 (text) {
this.setTipsOperate('请刷银行卡'); this.setTipsOperate('请刷银行卡');
this.setPopId('166') this.setPopId('166')
sessionStorage.setItem('computerPath', this.$route.fullPath) sessionStorage.setItem('computerPath', this.$route.fullPath)
this.$router.push('/counter/list/') this.$router.push('/counter/list/')
}, },
popUp3(text) { popUp3 (text) {
this.setTipsOperate('请在密码器输入密码'); this.setTipsOperate('请在密码器输入密码');
this.setPopId('167') this.setPopId('167')
sessionStorage.setItem('computerPath', this.$route.fullPath) sessionStorage.setItem('computerPath', this.$route.fullPath)
this.$router.push('/counter/list/') this.$router.push('/counter/list/')
}, },
getFormData(){ getFormData () {
const parentId = '285,' + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ',287,5,26,59,155' const parentId = '285,' + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ',287,5,26,59,155'
const cards = { const cards = {
// 1399: 'nomUsefulPhrasesOpenCard2', // 1399: 'nomUsefulPhrasesOpenCard2',
@ -335,21 +342,21 @@ export default{
// 167: 'nomUsefulPhrasesOpenPassword' // 167: 'nomUsefulPhrasesOpenPassword'
} }
const callback = () => { const callback = () => {
if(this.form.idNumber) { if (this.form.idNumber) {
this.idNumberJudge = true this.idNumberJudge = true
} }
if(this.form.voucherNumber) { if (this.form.voucherNumber) {
this.cardNumberJudge = true this.cardNumberJudge = true
} }
if(sessionStorage.getItem('nomUsefulPhrasesOpenPassword')) { if (sessionStorage.getItem('nomUsefulPhrasesOpenPassword')) {
this.form.drawPassword = sessionStorage.getItem('nomUsefulPhrasesOpenPassword') this.form.drawPassword = sessionStorage.getItem('nomUsefulPhrasesOpenPassword')
} }
} }
autoPlay2(parentId, this.form, this.myTable2, this.myTable, cards, callback) autoPlay2(parentId, this.form, this.myTable2, this.myTable, cards, callback)
}, },
submitForm() { submitForm () {
if (this.submited) return this.$message.error('已提交!') 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')
// let startTime = sessionStorage.getItem('startTime') // let startTime = sessionStorage.getItem('startTime')
@ -377,12 +384,12 @@ export default{
// }) // })
return return
} }
if(!this.form.voucherNumber) { if (!this.form.voucherNumber) {
messageCard('请填写凭证号码') messageCard('请填写凭证号码')
return return
} }
if(!this.form.drawPassword) { if (!this.form.drawPassword) {
messagePassword() messagePassword()
return return
} }
@ -391,7 +398,7 @@ export default{
this.visible = true; this.visible = true;
}, this.$refs)); }, this.$refs));
}, },
submitForm2() { submitForm2 () {
// let nomUsefulPhrasesOpenCard = sessionStorage.getItem('nomUsefulPhrasesOpenCard') // let nomUsefulPhrasesOpenCard = sessionStorage.getItem('nomUsefulPhrasesOpenCard')
// let nomUsefulPhrasesOpenCard2 = sessionStorage.getItem('nomUsefulPhrasesOpenCard2') // let nomUsefulPhrasesOpenCard2 = sessionStorage.getItem('nomUsefulPhrasesOpenCard2')
// let nomUsefulPhrasesOpenPassword = sessionStorage.getItem('nomUsefulPhrasesOpenPassword') // let nomUsefulPhrasesOpenPassword = sessionStorage.getItem('nomUsefulPhrasesOpenPassword')
@ -432,5 +439,4 @@ export default{
} }
} }
</script> </script>
<style lang='scss' scoped> <style lang='scss' scoped></style>
</style>

@ -0,0 +1,715 @@
<!-- 代收电费 -->
<template>
<div class="wrap">
<div class="flex j-between a-center">
<MyTitle :titleArr="['个人贷款', '新增贷款申请']" />
<el-button size="small" @click="$router.back()">返回</el-button>
</div>
<el-row :gutter="20" style="margin: 0">
<el-form v-if="curStep === 1 || isDetail" ref="basicForm" :model="basicForm" label-width="120px"
:rules="basicRules" :disabled="isDetail">
<el-col :span="24">
<h6 class="l-title">基本信息</h6>
</el-col>
<el-col :span="10" :offset="1">
<el-form-item label="证件类型" prop="idType">
<el-select v-model.trim="basicForm.idType" placeholder="请选择" disabled>
<el-option label="身份证" :value="83"> </el-option>
</el-select>
</el-form-item>
<el-form-item label="客户姓名" required>
<el-input disabled v-model="basicForm.customerName"
@input="(val) => checkName(val, form, 'customerName')" />
</el-form-item>
<el-form-item label="出生日期" prop="birthDate" required>
<el-date-picker disabled v-model.trim="basicForm.birthDate" type="date" placeholder="选择日期"
format="yyyy-MM-dd" value-format="yyyy-MM-dd">
</el-date-picker>
</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 v-model="basicForm.idNumber" disabled ref="idNumber" />
</div>
</el-form-item>
<el-form-item label="性别" prop="gender">
<el-select v-model.trim="basicForm.gender" disabled placeholder="请选择">
<el-option :key="1" label="男" :value="1">
</el-option>
<el-option :key="2" label="女" :value="2">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="联系电话" prop="phoneNumber">
<el-input v-model="basicForm.phoneNumber" @input="(val) => phoneListen(val, form, 'phoneNumber')"
maxlength="11" ref="phoneNumber" />
</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="basicForm.position" />
</el-form-item>
<el-form-item label="当前单位工作年限" label-width="150px">
<el-input v-model="basicForm.currentWorkYears" />
</el-form-item>
</el-col>
<el-col :span="10" :offset="1">
<el-form-item label="薪酬">
<el-input v-model="basicForm.salary">
<template slot="append">/</template>
</el-input>
</el-form-item>
<el-form-item label="工龄">
<el-input v-model="basicForm.totalWorkYears" />
</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="basicForm.propertyOwner" />
</el-form-item>
<el-form-item label="共有情况">
<el-input v-model="basicForm.coOwnership" />
</el-form-item>
<el-form-item label="权利性质">
<el-input v-model="basicForm.propertyRightNature" />
</el-form-item>
<el-form-item label="使用期限">
<el-input v-model="basicForm.usagePeriod" />
</el-form-item>
</el-col>
<el-col :span="10" :offset="1">
<el-form-item label="房产证号">
<el-input v-model="basicForm.propertyCertificateNo" />
</el-form-item>
<el-form-item label="坐落">
<el-input v-model="basicForm.location" />
</el-form-item>
<el-form-item label="面积">
<el-input v-model="basicForm.area" />
</el-form-item>
<el-form-item label="申请日期" prop="applicationDate">
<el-date-picker v-model="basicForm.applicationDate" type="date" placeholder="选择日期" format="yyyy-MM-dd"
value-format="yyyy-MM-dd" ref="applicationDate">
</el-date-picker>
</el-form-item>
</el-col>
</el-form>
<el-form v-if="curStep !== 1 || isDetail" ref="form" :model="form" label-width="120px" :rules="rules"
:disabled="isDetail">
<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 value="个人住房贷款" disabled />
</el-form-item>
<el-form-item label="合同金额" prop="contractAmount">
<el-input v-model="form.contractAmount" @change="interestCalc" />
</el-form-item>
<el-form-item label="起息日期" prop="interestStartDate">
<el-date-picker v-model="form.interestStartDate" type="date" placeholder="选择日期" format="yyyy-MM-dd"
value-format="yyyy-MM-dd" :clearable="false" @change="maturityDateCalc"></el-date-picker>
</el-form-item>
<el-form-item label="计息方式">
<el-input value="按年浮动计息" disabled />
</el-form-item>
<el-form-item label="浮动比例" prop="interestRateFloat">
<el-input value="1%" disabled />
</el-form-item>
<el-form-item label="逾期利率" prop="overdueInterestRate">
<el-input value="30%" disabled />
</el-form-item>
<el-form-item label="还款方式" prop="repaymentMethod">
<el-select v-model="form.repaymentMethod" placeholder="请选择">
<el-option label="等额本金" :value="235"></el-option>
<el-option label="等额本息" :value="236"></el-option>
</el-select>
</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="贷款期限" prop="loanTerm">
<el-select v-model="form.loanTerm" placeholder="请选择" @change="maturityDateCalc">
<el-option v-for="(item, i) in loanTerms" :key="i" :label="item.name" :value="item.id"></el-option>
</el-select>
</el-form-item>
<el-form-item label="到期日期" prop="maturityDate">
<el-date-picker v-model="form.maturityDate" 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="4.30%" disabled />
</el-form-item>
<el-form-item label="执行利率" prop="executedInterestRate">
<el-input value="4.30%" disabled />
</el-form-item>
<el-form-item label="担保方式" prop="customerName">
<el-input value="抵押" disabled />
</el-form-item>
<el-form-item label="利息总额" prop="interestTotal">
<el-input v-model="form.interestTotal" disabled />
</el-form-item>
</el-col>
</el-form>
</el-row>
<my-dialog :moduleName="moduleName" v-if="visible" :visible.sync="visible" :showForm="form" :formName="formName"
@submitIt="saveContract" depositNumber='0816' />
<div class="text-center">
<template v-if="isDetail">
<el-button v-if="isExtension" @click="showExtension" type="primary" class="submitBtn" v-throttle>展期</el-button>
<el-button v-else-if="!basicForm.loanOrNot" @click="showLoan" type="primary" class="submitBtn"
v-throttle>放款</el-button>
<el-button @click="$router.back()" type="primary" class="submitBtn" v-throttle>关闭</el-button>
</template>
<el-button v-else @click="next" type="primary" class="submitBtn" v-throttle>{{ curStep === 1 ? '下一步' : '提交'
}}</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="disbursementDate" 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>
<el-dialog :visible.sync="extensionVisible" width="500px" z-index="6000" 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-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>
</div>
</div>
<span slot="footer" class="dialog-footer">
<el-button @click="extensionVisible = false">取消</el-button>
<el-button type="primary" @click="extensionSubmit">确定</el-button>
</span>
</el-dialog>
</div>
</template>
<script>
import { phoneListen, 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, personalBasicSave, loanContractSave, personalBasicFind, grantALoan, operationExtension, calculateTheReturnInterestSum } from '@/api/http'
import Util from '@/libs/util'
const moduleName = 'personalLoans/detail'
import { mapMutations, mapGetters } from 'vuex'
import NeedBefore from '@/components/needBefore'
import MyDialog from '@/components/dialog'
import MyTitle from '@/components/myTitle'
export default {
name: '',
props: {},
components: {
NeedBefore,
MyTitle,
MyDialog
},
data () {
return {
moduleName,
isDetail: !!this.$route.query.show, //
isExtension: this.$route.query.show === '2', //
id: this.$route.query.id,
visible: false,
cardNumberJudge: false,
idNumberJudge: false,
basicForm: {
idType: 83,
idNumber: '',
customerName: '',
gender: '',
birthDate: '',
phoneNumber: '',
position: '',
salary: '',
currentWorkYears: '',
totalWorkYears: '',
propertyOwner: '',
propertyCertificateNo: '',
coOwnership: '',
location: '',
propertyRightNature: '',
area: '',
usagePeriod: '',
usagePeriodEnd: '',
applicationDate: Util.formatDate('yyyy-MM-dd', new Date())
},
basicFormName: {
idType: '证件类型',
idNumber: '证件号码',
customerName: '证件号码',
gender: '性别',
birthDate: '出生日期',
phoneNumber: '联系电话',
position: '岗位',
salary: '薪酬',
currentWorkYears: '当前单位工作年限',
totalWorkYears: '工龄',
propertyOwner: '产权人',
propertyCertificateNo: '房产证号',
coOwnership: '共有情况',
location: '坐落',
propertyRightNature: '权利性质',
area: '面积',
usagePeriod: '使用期限',
applicationDate: '申请日期'
},
basicRules: {
customerName: vercustomer,
phoneNumber: [
{
required: true,
message: '请输入联系电话',
trigger: 'blur'
},
],
applicationDate: [
{
required: true,
message: '请选择申请日期',
trigger: 'change'
}
],
},
loanTerms: [
{
pointId: 244,
id: 120,
name: '120个月'
},
{
pointId: 245,
id: 240,
name: '240个月'
},
{
pointId: 246,
id: 360,
name: '360个月'
},
],
form: {
contractNo: '',
contractAmount: '',
loanTerm: 120,
interestStartDate: '',
maturityDate: '',
propertyCertificateNo: '',
repaymentMethod: 235,
interestTotal: '',
repaymentAccount: '',
},
formName: {
contractNo: '合同编号',
contractAmount: '合同金额',
loanTerm: '贷款期限',
interestStartDate: '起息日期',
maturityDate: '到期日期',
repaymentMethod: '还款方式',
interestTotal: '利息总额',
repaymentAccount: '还款账号',
},
rules: {
contractAmount: [
{
required: true,
message: '请输入合同金额',
trigger: 'blur'
}
],
loanTerm: [
{
required: true,
message: '请选择贷款期限',
trigger: 'change'
}
],
interestStartDate: [
{
required: true,
message: '请选择起息日期',
trigger: 'change'
}
],
repaymentAccount: [
{
required: true,
message: '请输入还款账号',
trigger: 'blur'
}
],
},
submited: 0,
curStep: 1,
disbursementDate: '',
loanVisible: false,
extensionVisible: false,
extensionPeriod: 1,
extensions: [
{
id: 1,
name: '1个月',
pointId: 278,
},
{
id: 2,
name: '2个月',
pointId: 279,
},
{
id: 3,
name: '3个月',
pointId: 280,
},
{
id: 4,
name: '4个月',
pointId: 281,
},
{
id: 5,
name: '5个月',
pointId: 282,
},
{
id: 6,
name: '6个月',
pointId: 283,
},
{
id: 7,
name: '7个月',
pointId: 284,
},
{
id: 8,
name: '8个月',
pointId: 285,
},
{
id: 9,
name: '9个月',
pointId: 286,
},
{
id: 10,
name: '10个月',
pointId: 287,
},
],
}
},
mounted () {
this.getDetail()
},
methods: {
...mapMutations({
changeShowGoods: 'system/changeShowGoods',
setDataFlow: 'system/setDataFlow',
setNeedsModule: 'system/setNeedsModule',
setPopId: 'system/setPopId',
setTipsOperate: 'system/setTipsOperate',
setCreditIds: 'system/setCreditIds',
}),
//
async getDetail () {
if (this.id) {
//
const { data } = await personalBasicFind(this.id)
const form = data.data
if (form.idType) form.idType = +form.idType
if (form.gender) form.gender = +form.gender
this.idNumberJudge = true
this.basicForm = form
//
const contract = data.data.bankPersonalLoanContractInfo
if (contract) {
if (contract.loanTerm) contract.loanTerm = +contract.loanTerm
this.form = contract
}
} else if (sessionStorage.getItem('nomUsefulPhrasesOpenCard2')) {
//
sessionStorage.removeItem('nomUsefulPhrasesOpenCard2')
this.idNumberJudge = true
this.basicForm = {
idType: 83,
idNumber: '220602199202281229',
customerName: '丛小凤',
gender: 2,
birthDate: '1992-02-28',
phoneNumber: '15890317718',
position: '会计主管',
salary: '80',
currentWorkYears: '5年',
totalWorkYears: '12年',
propertyOwner: '丛小凤',
propertyCertificateNo: '不动产权第012000号',
coOwnership: '单独所有',
location: '前海新区深圳湾一号1612',
propertyRightNature: '出让/商品房',
area: '建筑面积: 189平方米',
usagePeriod: '70年,2018.3.15 至 2088.3.14 止',
usagePeriodEnd: '',
}
}
},
popUp1 (text) {
this.setTipsOperate('请刷身份证');
this.setPopId('1399')
sessionStorage.setItem('creditPath', this.$route.fullPath)
this.$router.push('/counter/list/')
},
//
maturityDateCalc () {
const { interestStartDate, loanTerm } = this.form
if (interestStartDate && loanTerm) {
const date = new Date(interestStartDate)
date.setMonth(date.getMonth() + loanTerm)
this.form.maturityDate = Util.formatDate('yyyy-MM-dd', date)
}
this.interestCalc()
},
//
async interestCalc () {
const { form } = this
if (form.contractAmount && form.maturityDate) {
const { data } = await calculateTheReturnInterestSum(form)
form.interestTotal = data.interestTotal || ''
}
},
//
async next () {
//
if (this.curStep < 2) {
const { basicForm } = this
if (!basicForm.idNumber) {
messageCard('请刷身份证')
return
}
this.$refs.basicForm.validate(myValidate(async () => {
try {
const { data } = await personalBasicSave({
...this.$store.getters['system/commonIds'],
...basicForm,
})
if (data.status === 200) {
//
const preId = '285,' + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ',766,767'
const rule = [
{ answerId: 902, emptyOne: '', emptyTwo: '', operationIds: preId + ',902', type: '' },
{ answerId: 847, emptyOne: 125, emptyTwo: basicForm.phoneNumber, operationIds: preId + ',847', type: 3 },
{ answerId: 859, emptyOne: 125, emptyTwo: basicForm.applicationDate, operationIds: preId + ',859', type: 3 },
]
basicForm.position && rule.push({ answerId: 848, emptyOne: 125, emptyTwo: basicForm.position, operationIds: preId + ',848', type: 3 })
basicForm.salary && rule.push({ answerId: 849, emptyOne: 125, emptyTwo: basicForm.salary, operationIds: preId + ',849', type: 3 })
basicForm.currentWorkYears && rule.push({ answerId: 850, emptyOne: 125, emptyTwo: basicForm.currentWorkYears, operationIds: preId + ',850', type: 3 })
basicForm.totalWorkYears && rule.push({ answerId: 851, emptyOne: 125, emptyTwo: basicForm.totalWorkYears, operationIds: preId + ',851', type: 3 })
basicForm.propertyOwner && rule.push({ answerId: 852, emptyOne: 125, emptyTwo: basicForm.propertyOwner, operationIds: preId + ',852', type: 3 })
basicForm.propertyCertificateNo && rule.push({ answerId: 853, emptyOne: 125, emptyTwo: basicForm.propertyCertificateNo, operationIds: preId + ',853', type: 3 })
basicForm.coOwnership && rule.push({ answerId: 854, emptyOne: 125, emptyTwo: basicForm.coOwnership, operationIds: preId + ',854', type: 3 })
basicForm.location && rule.push({ answerId: 855, emptyOne: 125, emptyTwo: basicForm.location, operationIds: preId + ',855', type: 3 })
basicForm.propertyRightNature && rule.push({ answerId: 856, emptyOne: 125, emptyTwo: basicForm.propertyRightNature, operationIds: preId + ',856', type: 3 })
basicForm.area && rule.push({ answerId: 857, emptyOne: 125, emptyTwo: basicForm.area, operationIds: preId + ',857', type: 3 })
basicForm.usagePeriod && rule.push({ answerId: 858, emptyOne: 125, emptyTwo: basicForm.usagePeriod, operationIds: preId + ',858', type: 3 })
await addOperation({
parentId: preId,
lcJudgmentRuleReq: rule,
projectId: +sessionStorage.getItem('projectId'),
startTime: sessionStorage.getItem('startTime')
})
this.setCreditIds({
personalLoanId: data.personalLoanId,
applicationDate: data.applicationDate || this.form.applicationDate,
contractNo: data.contractNo || this.form.contractNo,
})
if (data.contractNo) this.form.contractNo = data.contractNo
this.curStep++
}
} catch { (e) => { } }
}, this.$refs))
} else {
//
if (!this.form.contractAmount) return this.$message.warning('请输入合同金额!')
this.$refs.form.validate(myValidate(() => {
this.saveContract()
}, this.$refs))
}
},
//
async saveContract () {
try {
const { form } = this
form.personalLoanId = this.creditIds.personalLoanId
form.contractNo = this.creditIds.contractNo
const { data } = await loanContractSave({
...this.$store.getters['system/commonIds'],
...form,
})
if (data.status === 200) {
//
const preId = '285,' + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ',766,767'
const rule = [
{ answerId: 860, emptyOne: 125, emptyTwo: form.contractAmount, operationIds: preId + ',860', type: 3 },
{ answerId: 861, emptyOne: 141, emptyTwo: this.loanTerms.find(e => e.id === form.loanTerm).pointId, operationIds: preId + ',861', type: 1 },
{ answerId: 862, emptyOne: 125, emptyTwo: form.interestStartDate, operationIds: preId + ',862', type: 3 },
{ answerId: 863, emptyOne: 125, emptyTwo: form.repaymentMethod, operationIds: preId + ',863', type: 1 },
{ answerId: 864, emptyOne: 125, emptyTwo: form.repaymentAccount, operationIds: preId + ',864', type: 3 },
]
await addOperation({
parentId: preId,
lcJudgmentRuleReq: rule,
projectId: +sessionStorage.getItem('projectId'),
startTime: sessionStorage.getItem('startTime')
})
this.$router.push('/counter/list/manage/personalLoans')
} else {
this.$message.error(data.message)
}
} catch { (e) => { } }
},
//
showLoan () {
this.loanVisible = true
},
//
async loanSubmit () {
if (!this.disbursementDate) return this.$message.error('请选择放款日期!')
const { data } = await grantALoan({
id: this.form.contractId,
disbursementDate: this.disbursementDate,
})
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,767'
await addOperation({
parentId: preId,
lcJudgmentRuleReq: [{ answerId: 865, emptyOne: 151, emptyTwo: this.disbursementDate, operationIds: preId + ',865', type: 3 }],
projectId: +sessionStorage.getItem('projectId'),
startTime: sessionStorage.getItem('startTime')
})
setTimeout(this.$router.push('/counter/list/manage/personalLoans'), 1500)
}
},
//
showExtension () {
this.extensionVisible = true
},
//
async extensionSubmit () {
if (!this.extensionPeriod) return this.$message.error('请选择展期期限!')
const { data } = await operationExtension({
id: this.form.contractId,
extensionPeriod: this.extensionPeriod,
})
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,767'
await addOperation({
parentId: preId,
lcJudgmentRuleReq: [{ answerId: 866, emptyOne: 152, emptyTwo: this.extensions.find(e => e.id === this.extensionPeriod).pointId, operationIds: preId + ',866', type: 1 }],
projectId: +sessionStorage.getItem('projectId'),
startTime: sessionStorage.getItem('startTime')
})
setTimeout(this.$router.push('/counter/list/manage/personalLoans'), 1500)
}
},
phoneListen,
checkName,
},
computed: {
...mapGetters({
dataFlow: 'system/dataFlow',
needsModule: 'system/needsModule',
idCardNumber: 'system/idCardNumber',
inMyWork: 'system/inMyWork',
getSelectList: 'system/getSelectList',
}),
// id
creditIds: function () {
return this.$store.state.system.creditIds
},
}
}
</script>
<style lang='scss' scoped>
@import '@/styles/dialog.scss';
.wrap {
width: 100%;
height: calc(90vh - 27px);
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,169 @@
<!-- 现金管理 -->
<template>
<div class="wrap">
<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 index="2">正常还款</el-menu-item>
<el-menu-item index="3">展期</el-menu-item>
</el-menu>
</div>
<MyTitle :titleArr="['个人贷款', text]" />
<list :index.sync="active" :key="active" />
</div>
</template>
<script>
import list from './list.vue'
import MyTitle from '@/components/myTitle'
export default {
name: 'index',
components: {
list,
MyTitle
},
data () {
return {
text: '全部',/* 顶部文字 */
textObj: {
'1': '全部',
'2': '正常还款',
'3': '展期',
},
form: {
},
visible: false,
options: [],
active: '1',
}
},
methods: {
handleSelect (val) {
this.text = this.textObj[val]
this.active = val
},
},
};
</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-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;
}
}
}
.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,323 @@
<template>
<div class="inner">
<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="$router.push('/counter/list/manage/personalLoans-detail?show=&id=')">新建贷款申请</el-button>
</div>
<el-table :data="list" :header-cell-style="headerCellStyle" :row-class-name="tableRowClassName">
<el-table-column prop="customerName" label="客户姓名" align="center"></el-table-column>
<el-table-column prop="contractNo" label="合同编号" align="center">
</el-table-column>
<el-table-column prop="issueTeller" label="贷款类型" align="center">个人住房贷款</el-table-column>
<el-table-column prop="applicationDate" label="申请日期" align="center">
</el-table-column>
<el-table-column prop="approvalStatus" label="审批状态" align="center">
</el-table-column>
<el-table-column prop="contractAmount" label="贷款金额" align="center"></el-table-column>
<el-table-column prop="loanTerm" label="贷款期限" align="center">
</el-table-column>
<el-table-column prop="disbursementDate" label="放款日期" align="center">
</el-table-column>
<el-table-column prop="arrearsAmount" label="欠款金额" align="center">
</el-table-column>
<el-table-column prop="repaymentMethod" label="还款方式" align="center">
</el-table-column>
<el-table-column v-if="index !== '3'" prop="totalRepaymentAmount" key="1" label="累计还款金额" align="center">
</el-table-column>
<el-table-column v-if="index === '3'" prop="extensionPeriod" key="3" label="展期期限" align="center">
<template slot-scope="scope">{{ scope.row.extensionPeriod }}个月</template>
</el-table-column>
<el-table-column label="操作" align="center" width="250">
<template slot-scope="scope">
<!-- 没加合同的才能编辑 -->
<el-button @click="toDetail(scope.row, 1)" size="small" :disabled="scope.row.personalLoanId < 0">{{
scope.row.contractNo !== '——' ? '查看' : '编辑'
}}</el-button>
<template v-if="scope.row.personalLoanId > 0">
<el-button v-if="scope.row.disbursementDate !== '' && !scope.row.renewalOrNot"
@click="toDetail(scope.row, 2)" size="small">展期</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="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 { tableRowClassName, headerCellStyle } from '@/assets/js/myConfig'
import MyDialog from '@/components/dialogTwo'
import NeedBefore from '@/components/needBefore'
import { batchProcessing, personalBasicList, repaymentPlan, addOperation } from '@/api/http';
const moduleName = 'personalLoans/list'
import { mapMutations, mapGetters } from 'vuex'
export default {
name: 'index',
props: ['index'],
components: {
MyDialog,
NeedBefore
},
data () {
return {
moduleName,
headerCellStyle: headerCellStyle,
searchTimer: null,
list: [],
page: 1,
pageSize: 10,
total: 0,
keyword: '',
visible: false,
unNeed: false,
isNeedBefore: '',
needBefore: '',
text: '柜员现金轧账',/* 顶部文字 */
visible: false,
submited: 0,
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: {
...mapMutations({
setTipsOperate: 'system/setTipsOperate'
}),
async getData () {
const { data } = await personalBasicList({
...this.$store.getters['system/commonIds'],
pageNum: this.page,
pageSize: this.pageSize,
customerName: this.keyword,
renewalOrNot: this.$parent.active === '3' ? 1 : '',
normalRepayment: this.$parent.active === '2' ? 1 : '',
})
this.list = data.list.records
this.total = data.list.total
},
initData () {
this.page = 1
this.getData()
},
handleCurrentChange (val) {
this.page = val
this.getData()
},
toDetail (row, show) {
this.$router.push(`/counter/list/manage/personalLoans-detail?show=${show === 2 ? 2 : row.contractNo !== '——' ? 1 : ''}&id=${row.personalLoanId}`)
},
//
async repayment (row) {
this.curRow = row
this.repaymentVisible = true
this.getRepayment()
},
//
async getRepayment (row) {
const { data } = await repaymentPlan({
pageNum: this.pageRepayment,
pageSize: this.pageSizeRepayment,
...this.form,
personalLoanId: this.curRow.personalLoanId,
})
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 batchProcessing([{
id: row.id,
status
}])
const answerId = status === '已还款' ? 905 : 906
const preId = '285,' + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ',766,767'
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 batchProcessing(ids)
const answerId = status === '已还款' ? 903 : 904
const preId = '285,' + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ',766,767'
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(`请选择数据!`)
}
},
tableRowClassName,
},
};
</script>
<style lang="scss" scoped>
@import '@/assets/css/tablebg.scss';
.inner {
width: 100%;
max-height: calc(100vh - 246px);
padding-right: 24px;
overflow: auto;
}
/deep/.el-table .warning-row {
background: oldlace;
}
/deep/.el-table .success-row {
background: #f0f9eb;
}
/deep/.filter-form {
.el-form-item {
margin-bottom: 0;
}
}
</style>

@ -1,42 +1,30 @@
<template> <template>
<!-- 商业银行系统菜单文件 --> <!-- 商业银行系统菜单文件 -->
<el-menu class="sidebar-el-menu" <el-menu class="sidebar-el-menu" :default-active="onRoutes" @select="select" router background-color="#313540"
:default-active="onRoutes" text-color="#fff" active-text-color="#ffd04b" unique-opened>
@select="select" <template v-for="(item, index) in menus">
router
background-color="#313540"
text-color="#fff"
active-text-color="#ffd04b"
unique-opened>
<template v-for="(item,index) in menus">
<template v-if="item.children"> <template v-if="item.children">
<el-submenu :index="item.index" <el-submenu :index="item.index" :key="item.index">
:key="item.index">
<template slot="title"> <template slot="title">
<el-image style="width: 22px; height: 22px; margin-right: 10px;" <el-image style="width: 22px; height: 22px; margin-right: 10px;" class="align-middle"
class="align-middle"
:src="item.logo"></el-image> :src="item.logo"></el-image>
<span slot="title">{{ item.title }}</span> <span slot="title">{{ item.title }}</span>
</template> </template>
<template v-for="(subItem,index) in item.children"> <template v-for="(subItem, index) in item.children">
<el-submenu v-if="subItem.children" <el-submenu v-if="subItem.children" :index="subItem.index" :key="subItem.index">
:index="subItem.index"
:key="subItem.index">
<template slot="title">{{ subItem.title }}</template> <template slot="title">{{ subItem.title }}</template>
<el-menu-item v-for="(threeItem,i) in subItem.children" <el-menu-item v-for="(threeItem, i) in subItem.children" :key="i" :index="threeItem.index">{{
:key="i" threeItem.title
:index="threeItem.index">{{ threeItem.title }}</el-menu-item> }}</el-menu-item>
</el-submenu> </el-submenu>
<el-menu-item v-else <el-menu-item v-else :index="subItem.index" :key="subItem.index">{{ subItem.title }}</el-menu-item>
:index="subItem.index"
:key="subItem.index">{{ subItem.title }}</el-menu-item>
</template> </template>
</el-submenu> </el-submenu>
</template> </template>
<template v-else> <template v-else>
<el-menu-item :index="item.index" <el-menu-item :index="item.index" :key="item.index">
:key="item.index"> <el-image v-if="item.logo" style="width: 22px; height: 22px; margin: 0 10px 0 26px;" class="align-middle"
<i :class="item.icon"></i> :src="item.logo"></el-image>
<span slot="title">{{ item.title }}</span> <span slot="title">{{ item.title }}</span>
</el-menu-item> </el-menu-item>
</template> </template>
@ -47,20 +35,15 @@
<script> <script>
import { mapState } from 'vuex' import { mapState } from 'vuex'
// import bus from '@/libs/bus';
import Setting from '@/setting';
export default { export default {
// props: { computed: {
// needIndex: { ...mapState('system', ['isCredit'])
// type: String, },
// required: true
// }
// },
data () { data () {
return { return {
// onRoutes:'/counter/list/manage/consumerClient',
onRoutes: '', onRoutes: '',
menus: [ menus: [],
defaultMenus: [
{ {
icon: 'menu-icon icon-index', icon: 'menu-icon icon-index',
index: '/index/list', index: '/index/list',
@ -216,41 +199,70 @@ export default {
} }
] ]
}, },
{
icon: 'menu-icon icon-index',
index: '/counter/list/manage/agent',
title: '代理业务',
logo: require('@/assets/img/systemInput/代理业务.svg'),
},
{
icon: 'menu-icon icon-index',
index: '/counter/list/manage/onlineBank',
title: '网上银行',
logo: require('@/assets/img/systemInput/网上银行.svg'),
},
{
icon: 'menu-icon icon-index',
index: '/counter/list/manage/foreignExchange',
title: '外汇业务',
logo: require('@/assets/img/systemInput/外汇业务.svg'),
},
], ],
} creditMenus: [
{
icon: 'menu-icon icon-index',
index: '/counter/list/manage/personalLoans',
title: '个人贷款',
logo: require('@/assets/img/systemInput/个人贷款.svg'),
}, },
watch: { {
// '$route.path':function (val) { icon: 'menu-icon icon-index',
// this.onRoutes = val index: '/index/list1',
// }, title: '公司贷款',
needIndex (newVal) { logo: require('@/assets/img/systemInput/公司贷款.svg'),
this.onRoutes = newVal children: [
{
index: '/counter/list/manage/corporateLoans-application',
title: '贷款申请',
}, {
index: '/counter/list/manage/corporateLoans-loan',
title: '贷款放款',
}, {
index: '/counter/list/manage/corporateLoans-repayment',
title: '贷款还款',
}, {
index: '/counter/list/manage/corporateLoans-management',
title: '贷后管理',
},
]
},
]
} }
}, },
created () { created () {
const path = sessionStorage.getItem('computerPath') this.menus = this.isCredit ? this.creditMenus : this.defaultMenus
let path = sessionStorage.getItem(this.isCredit ? 'creditPath' : 'computerPath')
if (path) { if (path) {
this.onRoutes = path this.onRoutes = path
} else { } else {
this.onRoutes = this.$route.path this.onRoutes = this.$route.path
} }
// this.onRoutes = this.$route.path
// this.onRoutes = this.needIndex;
// console.log(this.onRoutes)
// console.log(this.needIndex)
// this.onRoutes = this.$route.path
}, },
methods: { methods: {
select (path) { select (path) {
this.onRoutes = path this.onRoutes = path
} }
}, },
beforeDestroy () {
sessionStorage.setItem('computerPath', this.onRoutes)
sessionStorage.getItem('submited') || this.$router.push('/counter/list/')
},
}; };
</script> </script>
@ -319,17 +331,21 @@ export default {
.sidebar::-webkit-scrollbar { .sidebar::-webkit-scrollbar {
width: 0; width: 0;
} }
.sidebar-el-menu:not(.el-menu--collapse) { .sidebar-el-menu:not(.el-menu--collapse) {
width: 100%; width: 100%;
border: 0; border: 0;
border-bottom-left-radius: 20px; border-bottom-left-radius: 20px;
} }
.sidebar > ul {
.sidebar>ul {
height: 100%; height: 100%;
} }
/deep/.el-menu { /deep/.el-menu {
border: 0; border: 0;
} }
// menu // menu
/deep/ .el-submenu__title span { /deep/ .el-submenu__title span {
font-size: 18px; font-size: 18px;
@ -338,7 +354,7 @@ export default {
/deep/.el-menu-item { /deep/.el-menu-item {
font-size: 18px !important; font-size: 18px !important;
} }
// .myOver { // .myOver {
// overflow: hidden; // overflow: hidden;
// } // }</style>
</style>

@ -1,199 +1,134 @@
<template> <template>
<!-- 实验报告 --> <!-- 实验报告 -->
<div class="wrap"> <div class="wrap" v-loading="loading">
<breadcrumb data="返回实验/实验报告"></breadcrumb> <breadcrumb data="返回实验/实验报告"></breadcrumb>
<div class="content" <div class="content">
:class="{loading}" <div style="text-align: right" v-if="!loading">
id="pdfDom"> <el-button size="mini" @click="editReport">
<div style="text-align: right"
v-if="!loading">
<el-button size="mini"
@click="editReport">
{{ editing ? "保存" : "编辑" }} {{ editing ? "保存" : "编辑" }}
</el-button> </el-button>
<el-button type="primary" <el-button type="primary" size="mini" @click="exportPage">导出报告</el-button>
size="mini"
@click="exportPage">导出报告</el-button>
</div> </div>
<h6 class="r-title">标准实验报告</h6> <h6 class="r-title">标准实验报告</h6>
<div class="info"> <div class="info">
<h6 class="l-title"> <h6 class="l-title">
<img src="@/assets/img/report1.png" <img src="@/assets/img/report1.png" alt="">
alt="">
基本信息 基本信息
</h6> </h6>
<ul :class="['info-list', {edit: editing}]"> <ul :class="['info-list', { edit: editing }]">
<li> <li>
<label>学生姓名</label> <label>学生姓名</label>
<el-input v-if="editing" <el-input v-if="editing" v-model="infoData.userName" disabled></el-input>
v-model="infoData.userName"
disabled></el-input>
<span v-else>{{ infoData.userName }}</span> <span v-else>{{ infoData.userName }}</span>
</li> </li>
<li> <li>
<label>学生学号</label> <label>学生学号</label>
<el-input v-if="editing" <el-input v-if="editing" v-model="infoData.workNumber" disabled></el-input>
v-model="infoData.workNumber"
disabled></el-input>
<span v-else>{{ infoData.workNumber }}</span> <span v-else>{{ infoData.workNumber }}</span>
</li> </li>
<li> <li>
<label>实验时间</label> <label>实验时间</label>
<el-input v-if="editing" <el-input v-if="editing" v-model="infoData.submitTime" disabled></el-input>
v-model="infoData.submitTime"
disabled></el-input>
<span v-else>{{ infoData.submitTime }}</span> <span v-else>{{ infoData.submitTime }}</span>
</li> </li>
<li> <li>
<label>实验成绩</label> <label>实验成绩</label>
<el-input v-if="editing" <el-input v-if="editing" v-model="infoData.score" disabled></el-input>
v-model="infoData.score" <div v-else class="score-wrap">
disabled></el-input>
<div v-else
class="score-wrap">
<em>{{ infoData.score }}</em> <em>{{ infoData.score }}</em>
<img src="@/assets/img/point.png" <img src="@/assets/img/point.png" alt="">
alt="">
</div> </div>
</li> </li>
<li> <li>
<label>学生班级</label> <label>学生班级</label>
<el-input v-if="editing" <el-input v-if="editing" v-model="infoData.className"></el-input>
v-model="infoData.className"></el-input>
<span v-else>{{ infoData.className }}</span> <span v-else>{{ infoData.className }}</span>
</li> </li>
<li> <li>
<label>指导老师</label> <label>指导老师</label>
<el-input v-if="editing" <el-input v-if="editing" v-model="infoData.instructor"></el-input>
v-model="infoData.instructor"></el-input>
<span v-else>{{ infoData.instructor }}</span> <span v-else>{{ infoData.instructor }}</span>
</li> </li>
<li> <li>
<label>实验学时</label> <label>实验学时</label>
<el-input v-if="editing" <el-input v-if="editing" v-model="infoData.period"></el-input>
v-model="infoData.period"></el-input>
<span v-else>{{ infoData.period }}</span> <span v-else>{{ infoData.period }}</span>
</li> </li>
</ul> </ul>
<div class="m-b-20"> <div class="m-b-20">
<h6 class="l-title"> <h6 class="l-title">
<img src="@/assets/img/report2.png" <img src="@/assets/img/report2.png" alt="">
alt="">
实验项目名称 实验项目名称
</h6> </h6>
<el-input v-if="editing" <el-input v-if="editing" v-model="infoData.projectName" type="textarea"></el-input>
v-model="infoData.projectName" <div v-else class="pre-wrap" v-html="infoData.projectName"></div>
type="textarea"></el-input>
<div v-else
class="pre-wrap"
v-html="infoData.projectName"></div>
</div> </div>
<div class="m-b-20"> <div class="m-b-20">
<h6 class="l-title"> <h6 class="l-title">
<img src="@/assets/img/report3.png" <img src="@/assets/img/report3.png" alt="">
alt="">
实验目的 实验目的
</h6> </h6>
<quill v-if="editing" <quill v-if="editing" :border="true" v-model="infoData.purpose" :height="150" />
:border="true" <div v-else :class="['pre-wrap', { edit: editing }]" v-html="infoData.purpose"></div>
v-model="infoData.purpose"
:height="150" />
<div v-else
:class="['pre-wrap', {edit: editing}]"
v-html="infoData.purpose"></div>
</div> </div>
<div class="m-b-20"> <div class="m-b-20">
<h6 class="l-title"> <h6 class="l-title">
<img src="@/assets/img/report4.png" <img src="@/assets/img/report4.png" alt="">
alt="">
实验数据 实验数据
</h6> </h6>
<el-table :data="expData" <el-table :data="expData" class="table" border stripe header-align="center">
class="table" <el-table-column type="index" label="序号" align="center" width="60">
border
stripe
header-align="center">
<el-table-column type="index"
label="序号"
align="center"
width="60">
<template slot-scope="scope"> <template slot-scope="scope">
{{ scope.$index + 1 }} {{ scope.$index + 1 }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="judgmentName" <el-table-column prop="judgmentName" label="判分点" width="200" align="center"></el-table-column>
label="判分点" <el-table-column prop="judgmentName" label="考核点" align="center" width="150">
width="200"
align="center"></el-table-column>
<el-table-column prop="judgmentName"
label="考核点"
align="center"
width="150">
<template slot-scope="scope"> <template slot-scope="scope">
<div v-for="(item, index) in scope.row.lcRuleRecords" <div v-for="(item, index) in scope.row.lcRuleRecords" :key="index">
:key="index">
<span> <span>
<span>{{index+1}}. </span>{{item.name}} <span>{{ index + 1 }}. </span>{{ item.name }}
</span> </span>
</div> </div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="ruleAnswer" <el-table-column prop="ruleAnswer" label="参考答案" width="280">
label="参考答案"
width="280"
style='word-wrap: break-word'>
<template slot-scope="scope"> <template slot-scope="scope">
<div v-if='scope.row.lcRuleRecords'> <div v-if="scope.row.lcRuleRecords" style="word-wrap: break-word">
<div v-for="(item, index) in scope.row.lcRuleRecords" <div v-for="(item, index) in scope.row.lcRuleRecords" :key="index">
:key="index">
<span> <span>
<span>{{index+1}}. </span>{{item.ruleAnswer}} <span>{{ index + 1 }}. </span>{{ item.ruleAnswer }}
</span> </span>
</div> </div>
</div> </div>
<div v-else <div v-else v-html="scope.row.referenceAnswer"></div>
v-html="scope.row.referenceAnswer"></div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="userAnswer" <el-table-column prop="userAnswer" label="学生答案" width="280">
label="学生答案">
<template slot-scope="scope"> <template slot-scope="scope">
<div v-if='scope.row.lcRuleRecords'> <div v-if='scope.row.lcRuleRecords'>
<div v-for="(item, index) in scope.row.lcRuleRecords" <div v-for="(item, index) in scope.row.lcRuleRecords" :key="index">
:key="index">
<span v-if='item.userAnswer'> <span v-if='item.userAnswer'>
<span>{{index+1}}. </span>{{item.userAnswer}} <span>{{ index + 1 }}. </span>{{ item.userAnswer }}
</span> </span>
<span v-else> <span v-else>
<span>{{index+1}}. </span>未填写 <span>{{ index + 1 }}. </span>未填写
</span> </span>
</div> </div>
</div> </div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="quesScore" <el-table-column prop="quesScore" label="分值" width="80" align="center"></el-table-column>
label="分值" <el-table-column prop="score" label="得分" width="80" align="center"></el-table-column>
width="80"
align="center"></el-table-column>
<el-table-column prop="score"
label="得分"
width="80"
align="center"></el-table-column>
</el-table> </el-table>
</div> </div>
<div class="m-b-20"> <div class="m-b-20">
<h6 class="l-title"> <h6 class="l-title">
<img src="@/assets/img/report5.png" <img src="@/assets/img/report5.png" alt="">
alt="">
实验总结与体会 实验总结与体会
</h6> </h6>
<quill v-show="editing" <quill v-show="editing" :border="true" v-model="infoData.summarize" :height="150" />
:border="true" <div v-show="!editing" class="pre-wrap" v-html="infoData.summarize"></div>
v-model="infoData.summarize"
:height="150" />
<div v-show="!editing"
class="pre-wrap"
v-html="infoData.summarize"></div>
</div> </div>
</div> </div>
</div> </div>
@ -211,12 +146,12 @@ export default {
return { return {
reportId: this.$route.query.reportId, reportId: this.$route.query.reportId,
title: "实验报告", title: "实验报告",
loading: false,
form: {}, form: {},
infoData: {}, infoData: {},
expData: [], expData: [],
editing: false, editing: false,
loadIns: null, loadIns: null,
loading: false,
project: false, project: false,
userScores: [] userScores: []
}; };
@ -230,6 +165,7 @@ export default {
}, },
methods: { methods: {
getData () { // getData () { //
this.loading = true
const { reportId } = this const { reportId } = this
reportDetail(reportId).then(({ data }) => { reportDetail(reportId).then(({ data }) => {
const { report, userScores } = data const { report, userScores } = data
@ -251,18 +187,18 @@ export default {
summarize: form.summarize summarize: form.summarize
} }
const expData = report.data const expData = report.data
this.userScores = userScores
// data使 // data使
if (!expData) { if (!expData) {
this.userScores = userScores
this.handleList(userScores) this.handleList(userScores)
this.$post(this.api.editExperimentalData, {
reportId,
data: JSON.stringify(userScores)
}).then(res => { }).catch(err => { })
} else { } else {
this.handleList(userScores) this.handleList(JSON.parse(expData))
} }
}).catch(res => { })
this.loading = false
}).catch(res => {
this.loading = false
})
}, },
// //
handleList (list) { handleList (list) {
@ -327,9 +263,11 @@ export default {
.m-b-20 { .m-b-20 {
margin-bottom: 20px; margin-bottom: 20px;
} }
.wrap { .wrap {
padding: 12px 300px 20px; padding: 12px 300px 20px;
} }
code, code,
kbd, kbd,
samp { samp {
@ -337,34 +275,41 @@ samp {
word-wrap: break-word; word-wrap: break-word;
white-space: pre-wrap; white-space: pre-wrap;
} }
/deep/ pre { /deep/ pre {
white-space: pre-wrap; /* css-3 */ white-space: pre-wrap;
white-space: -moz-pre-wrap; /* Mozilla, since 1999 */ /* css-3 */
white-space: pre-wrap; /* Opera 4-6 */ white-space: -moz-pre-wrap;
white-space: -o-pre-wrap; /* Opera 7 */ /* Mozilla, since 1999 */
word-wrap: break-word; /* Internet Explorer 5.5+ */ white-space: pre-wrap;
/* Opera 4-6 */
white-space: -o-pre-wrap;
/* Opera 7 */
word-wrap: break-word;
/* Internet Explorer 5.5+ */
word-break: break-all; word-break: break-all;
overflow: hidden; overflow: hidden;
font-size: 12px; font-size: 12px;
font-weight: 400; font-weight: 400;
font-family: 'PingFang SC', 'Helvetica Neue', Helvetica, 'microsoft yahei', arial, STHeiTi, sans-serif; font-family: 'PingFang SC', 'Helvetica Neue', Helvetica, 'microsoft yahei', arial, STHeiTi, sans-serif;
} }
.content { .content {
padding: 16px 0; padding: 16px 0;
background: #fff; background: #fff;
&.loading {
padding-top: 30px;
}
.r-title { .r-title {
margin-bottom: 40px; margin-bottom: 40px;
font-size: 24px; font-size: 24px;
text-align: center; text-align: center;
color: #333; color: #333;
} }
.info { .info {
padding: 20px 16px; padding: 20px 16px;
border: 1px solid #e1e6f2; border: 1px solid #e1e6f2;
} }
.l-title { .l-title {
display: flex; display: flex;
align-items: center; align-items: center;
@ -373,43 +318,52 @@ samp {
font-size: 14px; font-size: 14px;
color: #333; color: #333;
background-color: #f7f9fc; background-color: #f7f9fc;
img { img {
margin-right: 5px; margin-right: 5px;
} }
} }
.info-list { .info-list {
display: flex; display: flex;
flex-wrap: wrap; flex-wrap: wrap;
padding: 10px 0 0 20px; padding: 10px 0 0 20px;
li { li {
display: inline-flex; display: inline-flex;
width: 25%; width: 25%;
padding: 0 10px; padding: 0 10px;
margin-bottom: 34px; margin-bottom: 34px;
} }
&.edit { &.edit {
li { li {
align-items: center; align-items: center;
} }
} }
label { label {
font-size: 14px; font-size: 14px;
color: #333; color: #333;
white-space: nowrap; white-space: nowrap;
} }
span { span {
min-width: 150px; min-width: 150px;
padding: 0 10px 3px; padding: 0 10px 3px;
border-bottom: 1px solid #e1e6f2; border-bottom: 1px solid #e1e6f2;
} }
/deep/.el-input { /deep/.el-input {
width: 174px; width: 174px;
} }
} }
.score-wrap { .score-wrap {
position: relative; position: relative;
min-width: 150px; min-width: 150px;
border-bottom: 1px solid #e1e6f2; border-bottom: 1px solid #e1e6f2;
em { em {
position: absolute; position: absolute;
top: -12px; top: -12px;
@ -419,18 +373,21 @@ samp {
font-weight: 600; font-weight: 600;
color: #0b1d30; color: #0b1d30;
} }
img { img {
position: absolute; position: absolute;
bottom: -15px; bottom: -15px;
left: 0; left: 0;
} }
} }
/deep/.el-textarea .el-textarea__inner, /deep/.el-textarea .el-textarea__inner,
.pre-wrap { .pre-wrap {
min-height: 72px; min-height: 72px;
padding: 10px 16px; padding: 10px 16px;
font-size: 14px; font-size: 14px;
color: #333; color: #333;
&.edit { &.edit {
color: #abb3c6; color: #abb3c6;
border: 1px solid #cacfdb; border: 1px solid #cacfdb;
@ -438,34 +395,42 @@ samp {
background-color: #f6f7f9; background-color: #f6f7f9;
} }
} }
/deep/ .table th { /deep/ .table th {
background-color: #e1eaff !important; background-color: #e1eaff !important;
.cell { .cell {
line-height: 35px; line-height: 35px;
color: #555555; color: #555555;
} }
} }
} }
/deep/ .el-table { /deep/ .el-table {
width: 100%; width: 100%;
.el-table__header-wrapper table, .el-table__header-wrapper table,
.el-table__body-wrapper table { .el-table__body-wrapper table {
width: 100% !important; width: 100% !important;
} }
.el-table__body, .el-table__body,
.el-table__footer, .el-table__footer,
.el-table__header { .el-table__header {
table-layout: auto; table-layout: auto;
} }
} }
.result-pic { .result-pic {
margin: 10px 0; margin: 10px 0;
} }
@media (max-width: 1650px) { @media (max-width: 1650px) {
.wrap { .wrap {
padding: 12px 200px 20px; padding: 12px 200px 20px;
} }
} }
@media (max-width: 1430px) { @media (max-width: 1430px) {
.wrap { .wrap {
padding: 12px 100px 20px; padding: 12px 100px 20px;

@ -18,13 +18,13 @@ export default {
path: `list`, path: `list`,
component: () => import('@/pages/counter/list'), component: () => import('@/pages/counter/list'),
meta: { title: '综合柜台' }, meta: { title: '综合柜台' },
children:[ children: [
{ {
name: `${pre}manager`, name: `${pre}manager`,
path: `manage`, path: `manage`,
component: () => import('@/pages/manage/index'), component: () => import('@/pages/manage/index'),
meta: { title: '系统管理' }, meta: { title: '系统管理' },
children:[ children: [
// 客户信息 // 客户信息
{ {
name: `${pre}consumerClient`, name: `${pre}consumerClient`,
@ -175,6 +175,71 @@ export default {
component: () => import('@/pages/manage/list/dayEnd/branchDayEnd.vue'), component: () => import('@/pages/manage/list/dayEnd/branchDayEnd.vue'),
meta: { title: '日终管理网点日终扎帐' }, meta: { title: '日终管理网点日终扎帐' },
}, },
// 代理业务
{
name: `${pre}agent`,
path: `agent`,
component: () => import('@/pages/manage/list/agent/agent.vue'),
meta: { title: '代理业务' },
},
// 网上银行
{
name: `${pre}onlineBank`,
path: `onlineBank`,
component: () => import('@/pages/manage/list/onlineBank/openAccount.vue'),
meta: { title: '网上银行' },
},
// 外汇业务
{
name: `${pre}foreignExchange`,
path: `foreignExchange`,
component: () => import('@/pages/manage/list/foreignExchange/foreignExchange.vue'),
meta: { title: '外汇业务' },
},
// 个人贷款列表
{
name: `${pre}personalLoans`,
path: `personalLoans`,
component: () => import('@/pages/manage/list/personalLoans'),
meta: { title: '个人贷款' },
},
// 个人贷款详情
{
path: `personalLoans-detail`,
component: () => import('@/pages/manage/list/personalLoans/detail'),
meta: { title: '个人贷款' },
},
{
name: `${pre}corporateLoans`,
path: `corporateLoans-application`,
component: () => import('@/pages/manage/list/corporateLoans/application'),
meta: { title: '公司贷款贷款申请' },
},
{
path: `corporateLoans-loan`,
component: () => import('@/pages/manage/list/corporateLoans/loan'),
meta: { title: '公司贷款贷款放款' },
},
{
path: `corporateLoans-detail`,
component: () => import('@/pages/manage/list/corporateLoans/detail'),
meta: { title: '公司贷款贷款详情' },
},
{
path: `corporateLoans-repayment`,
component: () => import('@/pages/manage/list/corporateLoans/repayment'),
meta: { title: '公司贷款贷款放款' },
},
{
path: `corporateLoans-management`,
component: () => import('@/pages/manage/list/corporateLoans/management'),
meta: { title: '公司贷款贷后管理' },
},
{
path: `corporateLoans-apply`,
component: () => import('@/pages/manage/list/corporateLoans/apply'),
meta: { title: '公司贷款新建贷款申请' },
},
] ]
} }

@ -20,21 +20,6 @@ const frameIn = [
lobbyManager lobbyManager
] ]
/**
* 在主框架之外显示
*/
// const frameOut = [
// // 登录
// {
// path: '/login',
// name: 'login',
// meta: {
// title: '登录'
// },
// component: () => import('@/pages/account/login')
// }
// ];
/** /**
* 错误页面 * 错误页面

@ -16,7 +16,7 @@ const Setting = {
showProgressBar: true, showProgressBar: true,
// 接口请求地址 // 接口请求地址
// apiBaseURL: env === 'development' ? 'http://192.168.31.125:8888' : 'http://121.37.12.51:8000', // apiBaseURL: env === 'development' ? 'http://192.168.31.125:8888' : 'http://121.37.12.51:8000',
apiBaseURL: env === 'development' ? 'http://192.168.31.151:9000' : 'http://www.liuwanr.cn', apiBaseURL: env === 'development' ? 'http://192.168.31.151:9000' : location.origin,
// 接口请求返回错误时,弹窗的持续时间,单位:秒 // 接口请求返回错误时,弹窗的持续时间,单位:秒
modalDuration: 3, modalDuration: 3,
// 接口请求返回错误时,弹窗的类型,可选值为 Message 或 Notice // 接口请求返回错误时,弹窗的类型,可选值为 Message 或 Notice
@ -35,6 +35,7 @@ const Setting = {
* sessionStorage里username的key * sessionStorage里username的key
*/ */
usernameKey: 'bank_username', usernameKey: 'bank_username',
isDev: process.env.NODE_ENV === 'development',
/** /**
* 系统id * 系统id
*/ */

File diff suppressed because it is too large Load Diff

@ -2,8 +2,10 @@
import Setting from '@/setting' import Setting from '@/setting'
import util from '@/libs/util' import util from '@/libs/util'
import { Message } from 'element-ui' import { Message } from 'element-ui'
import {post,get,del,put} from '@/plugins/requests/index.js' import { post, get, del, put } from '@/plugins/requests/index.js'
import api from '@/api' import api from '@/api'
import Cookie from 'js-cookie'
import router from '@/router'
/** /**
* 用户信息 * 用户信息
@ -17,69 +19,35 @@ export default {
isManager: false isManager: false
}, },
mutations: { mutations: {
SET_INFO: (state, info) => {
if(info.avatar) state.avatar = info.avatar
state.schoolId = info.schoolId
state.userName = info.userName
},
SET_AVATAR: (state, avatar) => {
state.avatar = avatar
},
SET_MANAGER: (state, isManager) => { SET_MANAGER: (state, isManager) => {
state.isManager = isManager state.isManager = isManager
}, },
}, logout () {
actions: { const isAdmin = Cookie.get('manager')
login({ state,commit }, userInfo) { let href = process.env.NODE_ENV === 'development' ?
const { account, password, code, random } = userInfo `http://${location.hostname}:8082/#/` :
return new Promise((resolve, reject) => { `${location.origin}${isAdmin ? '/admin' : ''}/#/`
post(api.logins,{ if (location.origin === 'http://121.37.12.51') {
account, href = `http://121.37.12.51/${isAdmin ? 'admin' : 'student'}/#/`
password,
code,
platform: Setting.platformId,
random,
}).then(res => {
setTimeout(() => {
post(api.saveRecord,{
type: 3,
}).then(res => {}).catch(res => {})
},3000)
if(res.status == 200){
util.local.set(Setting.tokenKey,res.data.token,1296000000)
util.successMsg('登录成功')
resolve()
}else{
util.errorMsg(res.message)
reject(res)
} }
}).catch(error => { const { query } = router.app._route
reject(error) let assessmentId = sessionStorage.getItem('assessmentId') || query.assessmentId
}) let competitionId = sessionStorage.getItem('competitionId') || query.competitionId
}) if (assessmentId != 'null' && assessmentId != null && assessmentId != '') {
}, href += `ass/list`
logout({ commit, state, dispatch }) { } else if (competitionId != 'null' && competitionId != null && competitionId != '') {
return new Promise((resolve, reject) => { href += `match/details?id=${competitionId}`
util.local.remove(Setting.storeKey) } else {
util.local.remove(Setting.tokenKey) const cid = sessionStorage.getItem('cid')
location.reload() href += `station/preview?courseId=${cid}&curriculumName=银行项目&mallId=${router.currentRoute.query.mallId}`
resolve()
})
},
setAvatar({ state,commit },avatar) {
commit('SET_AVATAR',avatar)
let data = {
userId: state.userId,
userAvatars: avatar
} }
post(api.userinfoUpdate,data).then(res => {}).catch(res => {}) sessionStorage.clear()
location.href = href
}, },
setInfo({ state,commit },info) {
commit('SET_INFO',info)
}, },
setManager({ state,commit },isManager) { actions: {
commit('SET_MANAGER',isManager) setManager ({ state, commit }, isManager) {
commit('SET_MANAGER', isManager)
}, },
} }
} }

@ -290,3 +290,13 @@
} }
} }
} }
.req {
margin-right: 10px;
font-size: 14px;
font-weight: 600;
color: #f00;
}
.el-loading-spinner .circular {
display: inline;
}

@ -0,0 +1,55 @@
/deep/.dia {
-webkit-box-shadow: 0;
box-shadow: 0 0 0 0 !important;
border: 0 !important;
border-radius: 1.5rem;
.el-dialog__header {
display: none;
}
.el-dialog__body {
padding-top: 0;
}
.dia-form {
.text {
text-align: left;
}
}
.popBtns {
display: flex;
justify-content: center;
align-items: center;
& > .btn {
width: 180px;
font-size: 18px;
}
}
}
.data-dia23 {
min-width: 40%;
background-color: white;
z-index: 9999;
.popBody {
// width: 100%;
min-height: 30vh;
padding-top: 50px;
padding-bottom: 20px;
display: flex;
align-items: center;
/deep/ .el-form {
height: 100%;
}
}
.dia-header {
height: 100%;
// position: relative;
.data-title {
width: 300px;
margin: 0 auto;
line-height: 72px;
text-align: center;
color: #fff;
font-size: 24px;
background: url(https://izhixinyun.com/images/dia-title.png) 0 0 / cover no-repeat;
}
}
}

@ -4,54 +4,54 @@ import store from '@/store'
const phoneListen = function(val, form, prop) { const phoneListen = function (val, form, prop) {
if(/^[0-9]*$/.test(val)) { if (/^[0-9]*$/.test(val)) {
form[prop] = val; form[prop] = val;
} }
} }
const mailBoxListen = function(val, form, prop) { const mailBoxListen = function (val, form, prop) {
if(/^[\u4E00-\u9FA5A-Za-z0-9_]+$/.test(val) || val==='') { if (/^[\u4E00-\u9FA5A-Za-z0-9_]+$/.test(val) || val === '') {
form[prop] = val; form[prop] = val;
} }
} }
// 校验中文 // 校验中文
const checkHanzi = function(val, form, prop) { const checkHanzi = function (val, form, prop) {
// 检查符号 // 检查符号
const charReg = /[`~!@#$%^&*()_\-+=<>?:"{}|,.\/;'\\[\]·~!@#¥%……&*()——\-+={}|《》?:“”【】、;‘',。、]/im; const charReg = /[`~!@#$%^&*()_\-+=<>?:"{}|,.\/;'\\[\]·~!@#¥%……&*()——\-+={}|《》?:“”【】、;‘',。、]/im;
// 检查空格 // 检查空格
const tmpCheck = val.substr(val.length-1, 1); const tmpCheck = val.substr(val.length - 1, 1);
if(tmpCheck === ' ' || charReg.test(val) || /[\u4E00-\u9FA5]/i.test(val)) { if (tmpCheck === ' ' || charReg.test(val) || /[\u4E00-\u9FA5]/i.test(val)) {
return; return;
} }
form[prop] = val; form[prop] = val;
} }
const checkName = function(val, form, prop) { const checkName = function (val, form, prop) {
// 检查符号 // 检查符号
const charReg = /[`~!@#$%^&*()_\-+=<>?:"{}|,.\/;'\\[\]·~!@#¥%……&*()——\-+={}|《》?:“”【】、;‘',。、]/im; const charReg = /[`~!@#$%^&*()_\-+=<>?:"{}|,.\/;'\\[\]·~!@#¥%……&*()——\-+={}|《》?:“”【】、;‘',。、]/im;
// // 检查数字 // // 检查数字
const charReg2 = /^[0-9]*$/; const charReg2 = /^[0-9]*$/;
const tmpCheck = val.substr(val.length-1, 1); const tmpCheck = val.substr(val.length - 1, 1);
if(val.length<form[prop].length) { if (val.length < form[prop].length) {
form[prop] = val; form[prop] = val;
return; return;
} }
if(charReg.test(val) || charReg2.test(tmpCheck)) { if (charReg.test(val) || charReg2.test(tmpCheck)) {
return; return;
} }
form[prop] = val; form[prop] = val;
} }
// 检查证件号 // 检查证件号
const certificateNumber = function(val, form, prop) { const certificateNumber = function (val, form, prop) {
const charReg = /^(0|[0-9][0-9]*)$/; const charReg = /^(0|[0-9][0-9]*)$/;
if(val.length<form[prop].length) { if (val.length < form[prop].length) {
form[prop] = val; form[prop] = val;
return; return;
} }
if(charReg.test(val)) { if (charReg.test(val)) {
form[prop] = val; form[prop] = val;
} }
} }
@ -59,26 +59,26 @@ const certificateNumber = function(val, form, prop) {
// 监听年利率 // 监听年利率
const rateListen = function(val, form, prop) { const rateListen = function (val, form, prop) {
// 检查符号 允许% // 检查符号 允许%
// const charReg = /[`~!@#$^&*()_\-+=<>?:"{}|,.\/;'\\[\]·~!@#¥……&*()——\-+={}|《》?:“”【】、;‘',。、]/im; // const charReg = /[`~!@#$^&*()_\-+=<>?:"{}|,.\/;'\\[\]·~!@#¥……&*()——\-+={}|《》?:“”【】、;‘',。、]/im;
const charReg =/^\\d+(\\.\\d)?\\d{0,1}%$/ const charReg = /^\\d+(\\.\\d)?\\d{0,1}%$/
// 检查空格 // 检查空格
if(charReg.test(val) || /[\u4E00-\u9FA5]/i.test(val)) { if (charReg.test(val) || /[\u4E00-\u9FA5]/i.test(val)) {
return; return;
} }
form[prop] = val; form[prop] = val;
} }
// 监听数字 // 监听数字
const inputListen = function(val, row, prop) { const inputListen = function (val, row, prop) {
// 检查空格 // 检查空格
const tmpCheck = val.substr(val.length-1, 1); const tmpCheck = val.substr(val.length - 1, 1);
if(tmpCheck === ' ') { if (tmpCheck === ' ') {
return; return;
} }
if(val === '') { if (val === '') {
row[prop] = val; row[prop] = val;
return; return;
} }
@ -86,43 +86,45 @@ const inputListen = function(val, row, prop) {
} }
// 另一个监听数字的方法,根据需求不同来选。 // 另一个监听数字的方法,根据需求不同来选。
const inputListen2 = function(val, row, prop) { const inputListen2 = function (val, row, prop) {
// 检查空格 // 检查空格
const tmpCheck = val.substr(val.length-1, 1); const tmpCheck = val.substr(val.length - 1, 1);
if(tmpCheck === ' ') { if (tmpCheck === ' ') {
return; return;
} }
// 可以删光 // 可以删光
if(val === '') { if (val === '') {
row[prop] = val; row[prop] = val;
return; return;
} }
if(Number(val) || Number(val)===0) { if (Number(val) || Number(val) === 0) {
row[prop] = val row[prop] = val
} }
} }
// 验证是否金钱 // 验证是否金钱
const ismoney = function(val, row, prop) { const ismoney = function (val, row, prop) {
// 检查空格 // 检查空格
const tmpCheck = val.substr(val.length-1, 1); const tmpCheck = val.substr(val.length - 1, 1);
if(tmpCheck === ' ') { if (tmpCheck === ' ') {
return; return;
} }
if(val.length === 15) { if (val.length === 15) {
return return
} }
// debugger
// const reg = /([1-9]\d{0,9}|0)(\.\d{1,2})?$/ // 不用保留 // const reg = /([1-9]\d{0,9}|0)(\.\d{1,2})?$/ // 不用保留
const reg2 = /(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/; // 保留小数点后两位 const reg2 = /(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/; // 保留小数点后两位
if (reg2.test(Number(val)) || val==='') { if (reg2.test(Number(val)) || val === '') {
console.log(44)
row[prop] = val row[prop] = val
} }
} }
// 检查某个空是否填写完成 // 检查某个空是否填写完成
const checkRequired = function(form, obj) { const checkRequired = function (form, obj) {
for(const prop in obj) { for (const prop in obj) {
if(form[prop] === '') { if (form[prop] === '') {
MessageBox.alert('请填写' + obj[prop], '提示', { MessageBox.alert('请填写' + obj[prop], '提示', {
type: 'info', type: 'info',
confirmButtonText: '确定' confirmButtonText: '确定'
@ -140,7 +142,7 @@ const myValidate = (callback, refs) => {
callback() callback()
} else { } else {
let tmpObj = {}; let tmpObj = {};
for(const key in obj) { for (const key in obj) {
tmpObj = obj[key][0] tmpObj = obj[key][0]
break; break;
} }
@ -159,40 +161,40 @@ const myValidate = (callback, refs) => {
} }
// 电脑的系统录入中提交表单 // 电脑的系统录入中提交表单
const autoPlay = (parentId, form, myTable2, myTable, cards=[]) => { const autoPlay = (parentId, form, myTable2, myTable, cards = []) => {
let projectId = sessionStorage.getItem('projectId') || 11 // 默认11吧? let projectId = sessionStorage.getItem('projectId') || 11 // 默认11吧?
let startTime = sessionStorage.getItem('startTime') let startTime = sessionStorage.getItem('startTime')
let formList = []; let formList = [];
// let tmpIndex = 100; // let tmpIndex = 100;
for(const key in myTable2) { for (const key in myTable2) {
const { prop, type, subjectId='' } = myTable2[key] const { prop, type, subjectId = '' } = myTable2[key]
if(form[prop]){ if (form[prop]) {
formList.push({ "answerId": key + '', "emptyOne": '' + subjectId, "emptyTwo": form[prop], "operationIds": parentId + ',' + key, "type":type }) formList.push({ "answerId": key + '', "emptyOne": '' + subjectId, "emptyTwo": form[prop], "operationIds": parentId + ',' + key, "type": type })
} }
} }
for(const key in myTable) { for (const key in myTable) {
const { prop, type, subjectId='' } = myTable[key] const { prop, type, subjectId = '' } = myTable[key]
formList.push({ "answerId": key + '', "emptyOne": '' + subjectId, "emptyTwo": form[prop], "operationIds": parentId + ',' + key, "type":type }) formList.push({ "answerId": key + '', "emptyOne": '' + subjectId, "emptyTwo": form[prop], "operationIds": parentId + ',' + key, "type": type })
} }
for(let i=0; i<cards.length; i++ ) { for (let i = 0; i < cards.length; i++) {
formList.push({ "answerId": '', "emptyOne": '', "emptyTwo": '', "operationIds": parentId + ',' + cards[i].key, "type":"" }) formList.push({ "answerId": '', "emptyOne": '', "emptyTwo": '', "operationIds": parentId + ',' + cards[i].key, "type": "" })
} }
let params= { let params = {
parentId, parentId,
lcJudgmentRuleReq:formList, lcJudgmentRuleReq: formList,
projectId: projectId, projectId: projectId,
// projectId:+projectId, // projectId:+projectId,
startTime:startTime, startTime: startTime,
} }
addOperation(params).then((data)=>{ addOperation(params).then((data) => {
// Message.success({ // Message.success({
// center: true, // center: true,
// message: '提交成功' // message: '提交成功'
// }) // })
}).catch((error)=>{ }).catch((error) => {
this.$message({ this.$message({
message: '服务器繁忙,提交失败。', message: '服务器繁忙,提交失败。',
@ -203,41 +205,41 @@ const autoPlay = (parentId, form, myTable2, myTable, cards=[]) => {
} }
// 电脑录入中获取缓存信息 // 电脑录入中获取缓存信息
const autoPlay2 = (parentId=11, form, myTable2, myTable, cardArr, callback) => { const autoPlay2 = (parentId = 11, form, myTable2, myTable, cardArr, callback) => {
// 默认11吧? // 默认11吧?
let param= { let param = {
parentId parentId
} }
getOperation(param).then((data)=>{ getOperation(param).then((data) => {
if(data.status == 200) { if (data.status == 200) {
var list = data.data.judgmentRuleReqs var list = data.data.judgmentRuleReqs
// const tmpObj = Object.assign(myTable, myTable2) ...巨坑,把后面的属性给到前面了 // const tmpObj = Object.assign(myTable, myTable2) ...巨坑,把后面的属性给到前面了
const tmpObj = {...myTable, ...myTable2} const tmpObj = { ...myTable, ...myTable2 }
for (var i = 0; i < list.length; i++) { for (var i = 0; i < list.length; i++) {
const { answerId, emptyTwo } = list[i] const { answerId, emptyTwo } = list[i]
if(!cardArr) { if (!cardArr) {
if(Number(emptyTwo)) { if (Number(emptyTwo)) {
const tmpNumber =+emptyTwo const tmpNumber = +emptyTwo
// console.log('kao000') // console.log('kao000')
// console.log(tmpNumber) // console.log(tmpNumber)
form[tmpObj[answerId].prop] = tmpNumber form[tmpObj[answerId].prop] = tmpNumber
}else { } else {
form[tmpObj[answerId].prop] = emptyTwo form[tmpObj[answerId].prop] = emptyTwo
} }
} else { } else {
if(cardArr[answerId]) { if (cardArr[answerId]) {
try{ try {
sessionStorage.setItem(cardArr[answerId], JSON.parse(list[i].emptyTwo)) sessionStorage.setItem(cardArr[answerId], JSON.parse(list[i].emptyTwo))
}catch(e) { } catch (e) {
// sessionStorage.setItem(cardArr[answerId], list[i].emptyTwo) // sessionStorage.setItem(cardArr[answerId], list[i].emptyTwo)
continue; continue;
} }
}else { } else {
if(Number(emptyTwo)) { if (Number(emptyTwo)) {
form[tmpObj[answerId].prop] = +emptyTwo form[tmpObj[answerId].prop] = +emptyTwo
}else { } else {
form[tmpObj[answerId].prop] = emptyTwo form[tmpObj[answerId].prop] = emptyTwo
} }
// form[tmpObj[answerId].prop] = emptyTwo // form[tmpObj[answerId].prop] = emptyTwo
@ -248,12 +250,12 @@ const autoPlay2 = (parentId=11, form, myTable2, myTable, cardArr, callback) =>
} }
callback() callback()
} }
}).catch((error)=>{ }).catch((error) => {
}) })
} }
const autoPlay3 = (name, allName, arr) => { // 要接收的, 所有的, 要接收的属性 const autoPlay3 = (name, allName, arr) => { // 要接收的, 所有的, 要接收的属性
for(let key of arr) { for (let key of arr) {
name[key] = allName[key] name[key] = allName[key]
} }
} }
@ -270,7 +272,7 @@ const getNowDate = () => {
} }
// 提示请刷身份证信息 // 提示请刷身份证信息
const messageIdCard = (message='请刷身份证') => { const messageIdCard = (message = '请刷身份证') => {
store.commit('system/setTipsOperate', message) store.commit('system/setTipsOperate', message)
// Message.warning({ // Message.warning({
// center: true, // center: true,
@ -279,7 +281,7 @@ const messageIdCard = (message='请刷身份证') => {
} }
// 提示请刷银行卡信息 // 提示请刷银行卡信息
const messageCard = (message='请刷银行卡') => { const messageCard = (message = '请刷银行卡') => {
store.commit('system/setTipsOperate', message) store.commit('system/setTipsOperate', message)
// Message.warning({ // Message.warning({
// center: true, // center: true,
@ -288,7 +290,7 @@ const messageCard = (message='请刷银行卡') => {
} }
// 提示请填写支取密码信息 // 提示请填写支取密码信息
const messagePassword = (message='请填写支取密码') => { const messagePassword = (message = '请填写支取密码') => {
store.commit('system/setTipsOperate', message) store.commit('system/setTipsOperate', message)
// Message.warning({ // Message.warning({
// center: true, // center: true,
@ -309,7 +311,7 @@ const randomPeopleNumber = () => {
return str; return str;
} }
export { export {
randomPeopleNumber, randomPeopleNumber,
phoneListen, phoneListen,
mailBoxListen, mailBoxListen,
@ -329,4 +331,4 @@ const randomPeopleNumber = () => {
messageCard, messageCard,
messagePassword, messagePassword,
certificateNumber certificateNumber
} }

@ -1,74 +0,0 @@
data() {
var validateEveryData = (rule, value, callback) => {
// console.log("callback", callback);
// console.log("校验某一项的规则对象", rule);
// console.log("用户输入的值", value);
// 对输入框类型的校验
if (value) {
if ((value + "").length > 0) {
// 用于回显时候的校验,因为输入的时候是字符串类型的数字,但是回显的时候可能就是数字
callback(); // cb函数告知校验结果,必须要加
return;
}
}
// 对下拉框类型的校验
if (
(rule.itemType == "selectOne") |
(rule.itemType == "selectTwo") |
(rule.itemType == "selectThree")
) {
if (value) {
if ((value + "").length > 0) {
// 注意枚举值是数字类型的,所以这里要转换成为字符串类型的
callback();
return;
}
}
}
// 根据不同的类型给予不同的校验提示
switch (rule.itemType) {
case "text":
callback(new Error(rule.labelName + "不能为空")); // 文本类型的规则简单,就是得填写
break;
case "number":
callback(new Error(rule.labelName + "请按规则填写")); // 数字类型的规则比较繁多
break;
case "textarea":
callback(new Error(rule.labelName + "不能为空")); // 文本域类型的规则也简单,就是得填写
break;
case "selectOne":
callback(new Error("请选择" + rule.labelName)); // 下拉框类型一 得填写
break;
case "selectTwo":
callback(new Error("请选择" + rule.labelName)); // 下拉框类型二 得填写
break;
case "selectThree":
callback(new Error("请选择" + rule.labelName)); // 下拉框类型三 多选数组得填写
break;
case "dateRange":
callback(new Error("请选择" + rule.labelName + "范围")); // 下拉框类型三 多选数组得填写
break;
default:
break;
}
};
return {
// 此对象用于存储各个下拉框的数组数据值,其实也可以挂在vue的原型上,不过个人认为写在data中好些
selectTwoOptionsObj: {},
// 用于下拉框加载时的效果
loadingSelect: false,
// 绑定的数据
form: {},
// 校验规则
validateEveryData: validateEveryData,
};
},
作者水冗水孚
链接https://juejin.cn/post/7060322827148197895
来源稀土掘金
著作权归作者所有商业转载请联系作者获得授权非商业转载请注明出处

264886
test2.js

File diff suppressed because it is too large Load Diff

@ -1,35 +1,5 @@
const Setting = require('./src/setting.env') const Setting = require('./src/setting.env')
// 引入等比适配插件
const px2rem = require('postcss-px2rem')
module.exports = {
publicPath: './',
//配置跨域请求
devServer: {
open: true, //是否自动打开浏览器
https: false, //是否开启https
hotOnly: false,
proxy: { // 配置跨域
'/api': {
target: 'http://192.168.31.125:9000', //请求接口域名
ws: true,
secure: false,
changOrigin: true, //是否允许跨越
pathRewrite: {
'^/api': ''
}
}
},
before: app => { }
}
}
// 配置基本大小
const postcss = px2rem({
// 基准大小 baseSize,需要和rem.js中相同
remUnit: 16
})
// 使用等比适配插件
module.exports = { module.exports = {
lintOnSave: true, lintOnSave: true,
css: { css: {
@ -39,10 +9,11 @@ module.exports = {
}, },
} }
}, },
publicPath: Setting.publicPath, publicPath: Setting.publicPath,
  outputDir: Setting.outputDir, outputDir: Setting.outputDir,
  assetsDir: Setting.assetsDir, assetsDir: Setting.assetsDir,
devServer: { devServer: {
port: 8093 port: 8093
} },
productionSourceMap: false,
} }
Loading…
Cancel
Save