Compare commits

..

41 Commits

Author SHA1 Message Date
yujialong 333c7c9ebb fix 3 weeks ago
yujialong 1ed979b853 fix 3 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. 34
      src/App.vue
  4. 169
      src/api/api.js
  5. 165
      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. 840
      src/components/case/index.vue
  16. 438
      src/components/dialog/index.vue
  17. 298
      src/components/dialogTwo/index.vue
  18. 72
      src/layouts/header/index.vue
  19. 92
      src/layouts/home/index.vue
  20. 174
      src/libs/util.js
  21. 46
      src/main.js
  22. 9
      src/main.js.rej
  23. 139
      src/mixins/tipsBefore/index.js
  24. 2728
      src/pages/counter/list/index.vue
  25. 817
      src/pages/counter/list/myConfig.js
  26. 381
      src/pages/index/list/index.vue
  27. 602
      src/pages/manage/index/index.vue
  28. 374
      src/pages/manage/list/ImportantCash/controlCash/index.vue
  29. 388
      src/pages/manage/list/ImportantCash/controlCash2/index.vue
  30. 697
      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. 598
      src/pages/manage/list/business/transfer.vue
  36. 785
      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. 350
      src/pages/manage/list/personal/accountService/accountService.vue
  55. 203
      src/pages/manage/list/personal/callDeposits/accountClosed.vue
  56. 514
      src/pages/manage/list/personal/currentAccount/openAccount.vue
  57. 805
      src/pages/manage/list/personal/timeDeposit/deposit.vue
  58. 675
      src/pages/manage/list/personal/timeDeposit/openAccount.vue
  59. 822
      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. 152
      src/pages/manage/navbar/index.vue
  64. 435
      src/pages/report/index.vue
  65. 405
      src/router/modules/counter.js
  66. 15
      src/router/routes.js
  67. 119
      src/setting.js
  68. 5156
      src/store/modules/system.js
  69. 112
      src/store/modules/user.js
  70. 10
      src/styles/common.scss
  71. 55
      src/styles/dialog.scss
  72. 524
      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": {
"version": "4.17.15",
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz",
"integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A=="
"version": "4.17.21",
"resolved": "https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz",
"integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
},
"lodash._basecopy": {
"version": "3.0.1",

@ -18,6 +18,7 @@
"element-theme": "^2.0.1",
"element-ui": "^2.13.0",
"js-cookie": "^2.2.1",
"lodash": "^4.17.21",
"mavon-editor": "^2.6.17",
"postcss": "^7.0.36",
"postcss-px2rem": "^0.3.0",

@ -1,8 +1,6 @@
<template>
<div id="app">
<select-business class="selectBusiness"
:showIt.sync="showIt"
v-show="!showIt && showBusiness && !submited" />
<select-business class="selectBusiness" :showIt.sync="showIt" v-show="!showIt && showBusiness && !submited" />
<router-view></router-view>
<vCase :showIt.sync="showIt"></vCase>
<tip-dialog class="Z-9999" />
@ -27,8 +25,6 @@ export default {
//localStorage
if (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
@ -36,9 +32,7 @@ export default {
if (this.$route.fullPath.includes('/counter/list/manage')) {
sessionStorage.setItem('computerPath', this.$route.fullPath)
}
util.local.get(Setting.tokenKey) && util.local.set(Setting.storeKey, this.$store.state)
sessionStorage.setItem('systemData', this.$store.system.state)
util.local.set(Setting.storeKey, this.$store.state)
})
},
data () {
@ -92,24 +86,30 @@ export default {
<style lang="scss" scoped>
#app {
font-size: 16px;
min-width: $inner-width;
font-size: 16px;
min-width: $inner-width;
}
.selectBusiness {
width: 100%;
height: 100%;
width: 100%;
height: 100%;
}
.fade-enter-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 */ {
opacity: 0;
.fade-enter,
.fade-leave-to
/* .fade-leave-active below version 2.1.8 */
{
opacity: 0;
}
.Z-9999 {
position: absolute;
z-index: 9999;
position: absolute;
z-index: 9999;
}
</style>

@ -1,5 +1,7 @@
import axios from 'axios';
import router from '../router';
import store from '@/store'
import Util from '@/libs/util'
const url = location.host
const dev = process.env.NODE_ENV === 'development' // 开发环境
@ -7,101 +9,124 @@ let host = `${location.origin}/`
if (dev) {
// 本地
host = 'http://121.37.12.51/' // 中台测试服
// host = 'https://www.occupationlab.com/' // 正式服
// host = 'http://192.168.31.151:9000/' // 榕
// host = 'http://192.168.31.116:9000/' // 赓
// host = 'https://www.occupationlab.com/' // 正式服
// host = 'http://192.168.31.51:9000/'
const ip = localStorage.getItem('localIp')
const ips = ['http://192.168.31.217:9000/', 'http://192.168.31.51:9000/', 'http://121.37.12.51/']
host = ips[+ip]
}
// 创建axios实例
const service = axios.create({
baseURL: host, // 测试
timeout: 30000 // 请求超时时间
baseURL: host, // 测试
timeout: 30000 // 请求超时时间
})
let logouted = 0;
// 添加request拦截器
service.interceptors.request.use(config => {
return config
return config
}, error => {
Promise.reject(error)
Promise.reject(error)
})
// 添加respone拦截器
service.interceptors.response.use(
response => {
let res={};
res.status=response.status
res.data=response.data;
return res;
},
error => {
if(error.response && error.response.status == 404){
router.push('/blank.vue')
}
return Promise.reject(error.response)
response => {
const { status, data } = response
if (data.code === 401) {
// 账号互踢
if (!logouted) {
Util.errorMsg(data.msg.includes('顶') ? '您的账号已在其他设备登录,您已被迫下线!' : '登录过期,请重新登录!')
setTimeout(() => {
store.commit('user/logout')
logouted = 0
}, 1500)
logouted = 1
}
} else {
return {
status,
data
}
}
},
error => {
if (error.response.status == 401) {
if (!logouted) {
Util.errorMsg('登录过期,请重新登录')
setTimeout(() => {
store.commit('user/logout')
}, 3500)
logouted = 1
}
}
return Promise.reject(error.response)
}
)
let tokens
let token
var reg = new RegExp('(^|&)'+'token'+'=([^&]*)(&|$)')
if(window.location.href.split('?')[1]){
var r = window.location.href.split('?')[1].match(reg)
if (r != null){
tokens = (r[2])
}else{
tokens = null
}
var reg = new RegExp('(^|&)' + 'token' + '=([^&]*)(&|$)')
if (window.location.href.split('?')[1]) {
var r = window.location.href.split('?')[1].match(reg)
if (r != null) {
tokens = (r[2])
} else {
tokens = null
}
}
if(tokens){
token = tokens
}else{
token = sessionStorage.getItem('token')
if (tokens) {
token = tokens
} else {
token = sessionStorage.getItem('token')
}
export function get(url, params = {}) {
// params.t = new Date().getTime(); //get方法加一个时间参数,解决ie下可能缓存问题.
return service({
url: url,
method: 'get',
headers: {
token:token
},
params
})
export function get (url, params = {}) {
// params.t = new Date().getTime(); //get方法加一个时间参数,解决ie下可能缓存问题.
return service({
url: url,
method: 'get',
headers: {
token: token
},
params
})
}
//封装post请求
export function post(url, data = {}) {
//默认配置
let sendObject={
url: url,
method: 'post',
headers: {
'Content-Type':'application/json;charset=UTF-8',
token:token
},
data:data
};
sendObject.data=JSON.stringify(data);
return service(sendObject)
export function post (url, data = {}) {
//默认配置
let sendObject = {
url: url,
method: 'post',
headers: {
'Content-Type': 'application/json;charset=UTF-8',
token: token
},
data: data
};
sendObject.data = JSON.stringify(data);
return service(sendObject)
}
//封装put方法 (resfulAPI常用)
export function put(url,data = {}){
return service({
url: url,
method: 'put',
headers: {
'Content-Type':'application/json;charset=UTF-8',
token:token
},
data:JSON.stringify(data)
})
export function put (url, data = {}) {
return service({
url: url,
method: 'put',
headers: {
'Content-Type': 'application/json;charset=UTF-8',
token: token
},
data: JSON.stringify(data)
})
}
//删除方法(resfulAPI常用)
export function deletes(url){
return service({
url: url,
method: 'delete',
headers: {
token:token
}
})
export function deletes (url) {
return service({
url: url,
method: 'delete',
headers: {
token: token
}
})
}
//不要忘记export
export {
service
service
}

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

File diff suppressed because it is too large Load Diff

@ -4,69 +4,46 @@
<!-- 这个是自己封装的提示组件 用于系统录入中弹出的授权弹框 业务需求是有些业务需要授权有些业务不需要授权 -->
<el-dialog :visible="visible"
append-to-body
style="z-index: 6000;"
class="apple"
:close-on-click-modal="true"
:show-close="false"
custom-class="w3w5 bgNone z6000">
<div class="data-dia23 mx-auto w-9/12 rounded-3xl"
:class="{ ['w-full']: flow === 3 }">
<el-dialog :visible="visible" append-to-body style="z-index: 6000;" class="apple" :close-on-click-modal="true"
:show-close="false" custom-class="w3w5 bgNone z6000">
<div class="data-dia23 mx-auto w-9/12 rounded-3xl" :class="{ ['w-full']: flow === 3 }">
<!-- 2xl:w-3/5 xl:w-4/5 lg:w-full -->
<div slot="title"
class="dia-header rounded-3xl">
<div class="data-title"
v-if="flow === 1 || flow === 2">提示</div>
<div class="data-title"
v-else-if="flow === 4">提交</div>
<div class="data-title"
v-else>{{ successName }}</div>
<div slot="title" class="dia-header rounded-3xl">
<div class="data-title" v-if="flow === 1 || flow === 2">提示</div>
<div class="data-title" v-else-if="flow === 4">提交</div>
<div class="data-title" v-else>{{ successName }}</div>
</div>
<!-- 需要授权时父组件传进的flow为1 -->
<div class="popBody"
v-if="flow === 1">
<div class="popBody" v-if="flow === 1">
<h2 class="text-red-500 text-2xl">本业务需要授权</h2>
</div>
<!-- 不需要授权时父组件传进的flow为4 -->
<div class="popBody"
v-else-if="flow === 4">
<div class="popBody" v-else-if="flow === 4">
<h2 class="text-red-500 text-2xl">提交后将不可更改您确定要提交吗</h2>
</div>
<!-- 上面说的需要授权的flow为1点击确认后flow变为2弹出授权柜员的账号和密码 -->
<div class="popBody"
v-else-if="flow === 2">
<el-form ref="form2"
:model="disForm"
label-width="200px">
<div class="popBody" v-else-if="flow === 2">
<el-form ref="form2" :model="disForm" label-width="200px">
<el-form-item label="授权柜员">
<el-input disabled
v-model.trim="disForm.name"></el-input>
<el-input disabled v-model.trim="disForm.name"></el-input>
</el-form-item>
<el-form-item label="授权柜员">
<el-input type="password"
disabled
v-model.trim="disForm.pass"></el-input>
<el-input type="password" disabled v-model.trim="disForm.pass"></el-input>
</el-form-item>
</el-form>
</div>
<!-- 不管授权与否最后一步都是展示提交的信息 -->
<div class="popBody w-full"
v-else>
<div class="popBody w-full" v-else>
<el-row :gutter="20">
<el-form label-width="200px">
<el-col :span="12">
<el-form-item v-for="(val, key) in leftObj"
:key="key"
:label="key + ':'">
<el-form-item v-for="(val, key) in leftObj" :key="key" :label="key + ':'">
<div>{{ val }}</div>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item v-for="(val, key) in rightObj"
:key="key"
:label="key + ':'">
<el-form-item v-for="(val, key) in rightObj" :key="key" :label="key + ':'">
<div>{{ val }}</div>
</el-form-item>
</el-col>
@ -74,20 +51,13 @@
</el-row>
</div>
<!-- 不是最后的提交信息有取消按钮只要点击取消就不会发送请求给后端 -->
<div class="popBtns"
v-if="flow === 1 || flow === 2 || flow === 4">
<el-button class="close btn hover:bg-blue-100 "
@click="cancelIt"> </el-button>
<el-button class="sure btn hover:bg-blue-700 "
type="primary"
@click="sureIt"> </el-button>
<div class="popBtns" v-if="flow === 1 || flow === 2 || flow === 4">
<el-button class="close btn hover:bg-blue-100 " @click="cancelIt"> </el-button>
<el-button class="sure btn hover:bg-blue-700 " type="primary" @click="sureIt"> </el-button>
</div>
<!-- 展示信息的弹框没有取消按钮此时已经发送请求给后端了 -->
<div class="myPopBtns"
v-else>
<el-button class="sure btn hover:bg-blue-700 "
type="primary"
@click="sureIt"> </el-button>
<div class="myPopBtns" v-else>
<el-button class="sure btn hover:bg-blue-700 " type="primary" @click="sureIt"> </el-button>
</div>
</div>
</el-dialog>
@ -95,6 +65,7 @@
</template>
<script>
import { mapGetters } from 'vuex'
// objmoduleName,
const obj = {
@ -125,6 +96,13 @@ const obj = {
'controlCash/cashTransferInto': '现金上缴',
'business/deposit': '存款',
'business/withdrawal': '取款',
'onlineBank/openAccount': '网上银行开户',
'foreignExchange/puchasing': '外汇业务购汇',
'foreignExchange/settlement': '外汇业务结汇',
'agent/waterRate': '代收水费',
'agent/electricRate': '代收电费',
'agent/telRate': '代收电话费',
'personalLoans/detail': '新建个人贷款',
'spacial': '提交'
}
@ -144,10 +122,37 @@ const nameMap = {
116: '现金支票'
},
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: {
13: '钞户'
13: '钞户',
150: '现汇(参考牌价712.34)',
151: '现钞(参考牌价712.34)',
},
accountQuality: {
14: '个人结算户',
@ -304,6 +309,51 @@ const nameMap = {
112: '按月',
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 {
props: {
@ -330,14 +380,30 @@ export default {
moduleName: {
type: String,
default: 'spacial'
},
spare: {
type: Boolean,
default: true
},
},
data () {
return {
flow: 1, //
disForm: { //
name: '002288',
pass: '123456'
},
leftObj: {}, //
rightObj: {} //
}
},
created () {
// flow4
if (!this.needAuth) {
this.flow = 4
}
let num = 0;
let num = 0
// 1
for (const key in this.showForm) {
if (!this.showForm[key]) {
@ -378,51 +444,39 @@ export default {
return str;
}
if (num % 2 === 1) {
//
this.leftObj['流水号'] = tmpFunc2()
this.leftObj['经办机构'] = '国税支行营业部'
this.rightObj['经办柜员'] = '002110'
if (this.depositNumber) {
this.rightObj['定存编号'] = this.depositNumber
}
} else {
// 31
this.leftObj['流水号'] = tmpFunc2()
this.leftObj['经办机构'] = '国税支行营业部'
this.rightObj['经办柜员'] = '002110'
if (this.depositNumber) {
this.leftObj['定存编号'] = this.depositNumber
if (this.spare) {
if (num % 2 === 1) {
//
this.leftObj['流水号'] = tmpFunc2()
this.leftObj['经办机构'] = '国税支行营业部'
this.rightObj['经办柜员'] = '002110'
if (this.depositNumber) {
this.rightObj['定存编号'] = this.depositNumber
}
} else {
// 31
this.leftObj['流水号'] = tmpFunc2()
this.leftObj['经办机构'] = '国税支行营业部'
this.rightObj['经办柜员'] = '002110'
if (this.depositNumber) {
this.leftObj['定存编号'] = this.depositNumber
}
}
}
//
const tmpFunc = () => {
const date = new Date()
var y = date.getFullYear();
var m = date.getMonth() + 1;
m = m < 10 ? '0' + m : m;
var d = date.getDate();
d = d < 10 ? ('0' + d) : d;
return y + '-' + m + '-' + d;
}
this.rightObj['会计时间'] = tmpFunc()
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
},
data () {
return {
flow: 1, //
disForm: { //
name: '002288',
pass: '123456'
},
leftObj: {}, //
rightObj: {} //
//
const tmpFunc = () => {
const date = new Date()
var y = date.getFullYear();
var m = date.getMonth() + 1;
m = m < 10 ? '0' + m : m;
var d = date.getDate();
d = d < 10 ? ('0' + d) : d;
return y + '-' + m + '-' + d;
}
this.rightObj['会计时间'] = tmpFunc()
if (this.leftObj['支取方式'] == 114) this.leftObj['支取方式'] = '印鉴'
// 002110
}
},
methods: {
cancel () {
@ -459,121 +513,138 @@ export default {
// +
successName () {
return obj[this.moduleName] + '成功'
}
},
...mapGetters({
getSelectList: 'system/getSelectList'
}),
}
}
</script>
<style lang="scss" scoped>
/deep/.w3w5 {
transform: translateY(-100px);
min-width: 1300px;
transform: translateY(-100px);
min-width: 1300px;
}
/deep/.w4w5 {
min-width: 800px;
min-width: 800px;
}
/deep/.el-dialog {
-webkit-box-shadow: 0;
box-shadow: 0 0 0 0 !important;
border: 0 !important;
// display: none;
-webkit-box-shadow: 0;
box-shadow: 0 0 0 0 !important;
border: 0 !important;
// display: none;
}
/deep/.el-form-item {
label {
font-family: PingFangSC-Regular;
font-size: 18px;
color: #000000;
letter-spacing: 0.21px;
font-weight: 400;
}
.el-form-item__content {
padding-left: 30px;
text-align: left;
font-family: PingFangSC-Semibold;
font-size: 20px;
color: #000000;
letter-spacing: 0.24px;
font-weight: 600;
}
label {
font-family: PingFangSC-Regular;
font-size: 18px;
color: #000000;
letter-spacing: 0.21px;
font-weight: 400;
}
.el-form-item__content {
padding-left: 30px;
text-align: left;
font-family: PingFangSC-Semibold;
font-size: 20px;
color: #000000;
letter-spacing: 0.24px;
font-weight: 600;
}
}
.test {
position: absolute;
top: 0;
left: 0;
width: 0;
height: 0;
z-index: 9899999;
position: absolute;
top: 0;
left: 0;
width: 0;
height: 0;
z-index: 9899999;
}
.masking {
width: 100vw;
height: 100vh;
top: 0;
left: 0;
bottom: 0;
right: 0;
opacity: 0.5;
background-color: rgba(51, 51, 51, 0.9);
width: 100vw;
height: 100vh;
top: 0;
left: 0;
bottom: 0;
right: 0;
opacity: 0.5;
background-color: rgba(51, 51, 51, 0.9);
}
.data-dia23 {
// position: absolute;
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%;
}
// position: absolute;
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(../../assets/img/dia-title.png) 0 0 / cover no-repeat;
}
}
.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(../../assets/img/dia-title.png) 0 0 / cover no-repeat;
}
}
}
/deep/ .el-row {
width: 100%;
padding: 0 50px;
width: 100%;
padding: 0 50px;
}
// /deep/.popbody {
// width: 100vw!important;
// height: 100%!important;
// background-color: red!important;;
// }
.popBtns {
display: flex;
justify-content: center;
align-items: center;
padding-bottom: 20px;
& > .btn {
width: 180px;
font-size: 18px;
}
display: flex;
justify-content: center;
align-items: center;
padding-bottom: 20px;
&>.btn {
width: 180px;
font-size: 18px;
}
}
.myPopBtns {
display: flex;
justify-content: center;
align-items: center;
padding-bottom: 20px;
& > .btn {
width: 180px;
font-size: 18px;
}
display: flex;
justify-content: center;
align-items: center;
padding-bottom: 20px;
&>.btn {
width: 180px;
font-size: 18px;
}
}
// /deep/.el-dialog__header, /deep/.el-dialog__body {
@ -587,15 +658,18 @@ export default {
// transform: translateX(-25%);
// }
/deep/.bgNone {
background-color: transparent;
background-color: transparent;
}
/deep/.myFull {
width: 90%;
width: 90%;
}
/deep/.el-dialog {
z-index: 9999 !important;
z-index: 9999 !important;
}
/deep/.el-dialog__wrapper {
z-index: 9999 !important;
z-index: 9999 !important;
}
</style>

@ -1,82 +1,52 @@
<template>
<!-- 这个组件原理和dialog一样 -->
<el-dialog :visible="visible"
append-to-body
style="z-index: 6000;"
class="apple"
:close-on-click-modal="true"
:show-close="false"
custom-class="w4w5 bgNone z6000">
<div class="data-dia23 mx-auto w-9/12 rounded-3xl"
:class="{ ['w-full']: flow === 3 }">
<el-dialog :visible="visible" append-to-body style="z-index: 6000;" class="apple" :close-on-click-modal="true"
:show-close="false" custom-class="w4w5 bgNone z6000">
<div class="data-dia23 mx-auto w-9/12 rounded-3xl" :class="{ ['w-full']: flow === 3 }">
<!-- 2xl:w-3/5 xl:w-4/5 lg:w-full -->
<div slot="title"
class="dia-header rounded-3xl">
<div class="data-title"
v-if="flow === 1 || flow === 2">提示</div>
<div class="data-title"
v-else-if="flow === 4">提交</div>
<div class="data-title"
v-else>{{ successName }}</div>
<div slot="title" class="dia-header rounded-3xl">
<div class="data-title" v-if="flow === 1 || flow === 2">提示</div>
<div class="data-title" v-else-if="flow === 4">提交</div>
<div class="data-title" v-else>{{ successName }}</div>
</div>
<div class="popBody"
v-if="flow === 1">
<div class="popBody" v-if="flow === 1">
<h2 class="text-red-500 text-2xl">本业务需要授权</h2>
</div>
<div class="popBody"
v-else-if="flow === 4">
<div class="popBody" v-else-if="flow === 4">
<h2 class="text-red-500 text-2xl">提交后将不可更改您确定要提交吗</h2>
</div>
<div class="popBody"
v-else-if="flow === 2">
<el-form ref="form2"
:model="disForm"
label-width="200px">
<div class="popBody" v-else-if="flow === 2">
<el-form ref="form2" :model="disForm" label-width="200px">
<el-form-item label="授权柜员号">
<el-input disabled
v-model.trim="disForm.name"></el-input>
<el-input disabled v-model.trim="disForm.name"></el-input>
</el-form-item>
<el-form-item label="授权柜员">
<el-input type="password"
disabled
v-model.trim="disForm.pass"></el-input>
<el-input type="password" disabled v-model.trim="disForm.pass"></el-input>
</el-form-item>
</el-form>
</div>
<div class="popBody w-full"
v-else>
<div class="popBody w-full" v-else>
<el-row :gutter="20">
<el-form label-width="200px">
<el-col :span="12">
<el-form-item v-for="(val, key) in leftObj"
:key="key"
:label="key + ':'">
<el-form-item v-for="(val, key) in leftObj" :key="key" :label="key + ':'">
<div>{{ val }}</div>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item v-for="(val, key) in rightObj"
:key="key"
:label="key + ':'">
<el-form-item v-for="(val, key) in rightObj" :key="key" :label="key + ':'">
<div>{{ val }}</div>
</el-form-item>
</el-col>
</el-form>
</el-row>
</div>
<div class="popBtns"
v-if="flow === 1 || flow === 2 || flow === 4">
<el-button class="close btn hover:bg-blue-100 "
@click="cancelIt"> </el-button>
<el-button class="sure btn hover:bg-blue-700 "
type="primary"
@click="sureIt"> </el-button>
<div class="popBtns" v-if="flow === 1 || flow === 2 || flow === 4">
<el-button class="close btn hover:bg-blue-100 " @click="cancelIt"> </el-button>
<el-button class="sure btn hover:bg-blue-700 " type="primary" @click="sureIt"> </el-button>
</div>
<div class="myPopBtns"
v-else>
<el-button class="sure btn hover:bg-blue-700 "
type="primary"
@click="sureIt"> </el-button>
<div class="myPopBtns" v-else>
<el-button class="sure btn hover:bg-blue-700 " type="primary" @click="sureIt"> </el-button>
</div>
</div>
</el-dialog>
@ -118,7 +88,7 @@ const obj = {
'spacial': '提交',
"cityWide/cityWideOut": '同城提出',
"cityWide/cityWideIn": '同城提入',
'acceptanceDraft/invoice': '承兑汇票开票'
'acceptanceDraft/invoice': '承兑汇票开票',
}
const nameMap = {
sex: {
@ -405,30 +375,35 @@ export default {
<style lang="scss" scoped>
/deep/ .el-row {
width: 100%;
width: 100%;
}
/deep/.popbody {
width: 100vw !important;
width: 100vw !important;
}
.popBtns {
display: flex;
justify-content: center;
align-items: center;
& > .btn {
width: 180px;
border-radius: 10px;
font-size: 18px;
}
display: flex;
justify-content: center;
align-items: center;
&>.btn {
width: 180px;
border-radius: 10px;
font-size: 18px;
}
}
.myPopBtns {
display: flex;
justify-content: center;
align-items: center;
& > .btn {
width: 180px;
border-radius: 10px;
font-size: 18px;
}
display: flex;
justify-content: center;
align-items: center;
&>.btn {
width: 180px;
border-radius: 10px;
font-size: 18px;
}
}
// /deep/.el-dialog {
@ -436,112 +411,126 @@ export default {
// }
/deep/.w3w5 {
min-width: 1400px;
min-width: 1400px;
}
/deep/.w4w5 {
min-width: 800px;
min-width: 800px;
}
/deep/.el-dialog {
-webkit-box-shadow: 0;
box-shadow: 0 0 0 0 !important;
border: 0 !important;
-webkit-box-shadow: 0;
box-shadow: 0 0 0 0 !important;
border: 0 !important;
}
/deep/.el-form-item {
label {
font-family: PingFangSC-Regular;
font-size: 18px;
color: #000000;
letter-spacing: 0.21px;
font-weight: 400;
}
.el-form-item__content {
padding-left: 30px;
text-align: left;
font-family: PingFangSC-Semibold;
font-size: 20px;
color: #000000;
letter-spacing: 0.24px;
font-weight: 600;
}
label {
font-family: PingFangSC-Regular;
font-size: 18px;
color: #000000;
letter-spacing: 0.21px;
font-weight: 400;
}
.el-form-item__content {
padding-left: 30px;
text-align: left;
font-family: PingFangSC-Semibold;
font-size: 20px;
color: #000000;
letter-spacing: 0.24px;
font-weight: 600;
}
}
.test {
position: absolute;
top: 0;
left: 0;
width: 0;
height: 0;
z-index: 9899999;
position: absolute;
top: 0;
left: 0;
width: 0;
height: 0;
z-index: 9899999;
}
.masking {
width: 100vw;
height: 100vh;
top: 0;
left: 0;
bottom: 0;
right: 0;
opacity: 0.5;
background-color: rgba(51, 51, 51, 0.9);
width: 100vw;
height: 100vh;
top: 0;
left: 0;
bottom: 0;
right: 0;
opacity: 0.5;
background-color: rgba(51, 51, 51, 0.9);
}
.data-dia23 {
// position: absolute;
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%;
}
// position: absolute;
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(../../assets/img/dia-title.png) 0 0 / cover no-repeat;
}
}
.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(../../assets/img/dia-title.png) 0 0 / cover no-repeat;
}
}
}
/deep/ .el-row {
width: 100%;
padding: 0 50px;
width: 100%;
padding: 0 50px;
}
// /deep/.popbody {
// width: 100vw!important;
// height: 100%!important;
// background-color: red!important;;
// }
.popBtns {
display: flex;
justify-content: center;
align-items: center;
padding-bottom: 20px;
& > .btn {
width: 180px;
font-size: 18px;
}
display: flex;
justify-content: center;
align-items: center;
padding-bottom: 20px;
&>.btn {
width: 180px;
font-size: 18px;
}
}
.myPopBtns {
display: flex;
justify-content: center;
align-items: center;
padding-bottom: 20px;
& > .btn {
width: 180px;
font-size: 18px;
}
display: flex;
justify-content: center;
align-items: center;
padding-bottom: 20px;
&>.btn {
width: 180px;
font-size: 18px;
}
}
// /deep/.el-dialog__header, /deep/.el-dialog__body {
@ -555,15 +544,18 @@ export default {
// transform: translateX(-25%);
// }
/deep/.bgNone {
background-color: transparent;
background-color: transparent;
}
/deep/.myFull {
width: 90%;
width: 90%;
}
/deep/.el-dialog {
z-index: 9999 !important;
z-index: 9999 !important;
}
/deep/.el-dialog__wrapper {
z-index: 9999 !important;
z-index: 9999 !important;
}
</style>

@ -1,38 +1,42 @@
<template>
<div class="header"
ref="exitHeader">
<div class="inner"
style="width: 100%">
<div class="logo"
@click="toIndex"
style="float: left">
<img src="../../assets/img/logo.png"
alt="">
<div class="header" ref="exitHeader">
<div class="inner" style="width: 100%">
<div class="logo" @click="toIndex" style="float: left">
<img src="../../assets/img/logo.png" alt="">
</div>
<div style="float: right;margin:0 60px;font-size: 18px">
<span style="cursor:pointer"
@click="exit">
<span style="cursor:pointer" @click="logout">
退出<i class="icon el-icon-s-unfold"></i>
</span>
</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>
</template>
<script>
import { mapState, mapActions } from 'vuex'
import { mapMutations } from 'vuex'
import Setting from '@/setting'
import util from '@/libs/util'
import Cookie from 'js-cookie'
export default {
data () {
return {
isDev: Setting.isDev,
token: util.local.get(Setting.tokenKey),
ip: localStorage.getItem('localIp') ? +localStorage.getItem('localIp') : 0,
};
},
mounted () {
this.$route.query.manager ? Cookie.set('manager', 1) : Cookie.remove('manager')
},
methods: {
...mapMutations({
logout: 'user/logout',
}),
toIndex () {
this.$refs.nav.jump({
index: '/index/list',
@ -58,12 +62,16 @@ export default {
sessionStorage.clear()
location.href = href
},
ipChange (val) {
localStorage.setItem('localIp', val)
location.reload()
},
},
watch: {
'$route.path': {
handler (newVal) {
this.$nextTick(() => {
console.log(newVal)
if (newVal === '/index/list') {
this.$refs.exitHeader.style.backgroundColor = 'rgb(250, 250, 250)'
} else {
@ -78,21 +86,29 @@ export default {
</script>
<style lang="scss" scoped>
.header {
width: 100%;
display: flex;
align-items: center;
position: relative;
height: 68px;
// background-color: #fff;
background-color: rgb(244, 245, 248);
z-index: 1001;
.logo {
width: 500px;
margin-left: 42px;
cursor: pointer;
img {
width: 100%;
}
width: 100%;
display: flex;
align-items: center;
position: relative;
height: 68px;
// background-color: #fff;
background-color: rgb(244, 245, 248);
z-index: 1001;
.logo {
width: 500px;
margin-left: 42px;
cursor: pointer;
img {
width: 100%;
}
}
}
.ip {
position: fixed;
top: 25px;
left: 500px;
}
</style>

@ -1,18 +1,18 @@
<template>
<div class="main">
<v-head></v-head>
<div class="layout">
<div class="content">
<transition name="move" mode="out-in">
<keep-alive :include="tagsList">
<router-view class="view"></router-view>
</keep-alive>
</transition>
<el-backtop target=".content"></el-backtop>
<!-- <v-footer ref="footer"></v-footer> -->
</div>
</div>
<div class="main">
<v-head></v-head>
<div class="layout">
<div class="content">
<transition name="move" mode="out-in">
<keep-alive :include="tagsList">
<router-view class="view"></router-view>
</keep-alive>
</transition>
<el-backtop target=".content"></el-backtop>
<!-- <v-footer ref="footer"></v-footer> -->
</div>
</div>
</div>
</template>
<script>
@ -21,40 +21,38 @@ import vFooter from '../footer'
import bus from '@/libs/bus'
import Setting from '@/setting'
export default {
data() {
return {
tagsList: [],
collapse: false,
hideNavList: Setting.layout.hideNavList
};
},
components: {
vHead,
vFooter
},
computed: {
hideNavbar() {
let route = this.$route.name
if(this.hideNavList.includes(route)) return false
return true
}
},
created() {
bus.$on('collapse-content', msg => {
this.collapse = msg;
});
// 使keep-alive
bus.$on('tags', msg => {
let arr = [];
for (let i = 0, len = msg.length; i < len; i++) {
msg[i].name && arr.push(msg[i].name)
}
this.tagsList = arr
});
data () {
return {
tagsList: [],
collapse: false,
hideNavList: Setting.layout.hideNavList
};
},
components: {
vHead,
vFooter
},
computed: {
hideNavbar () {
let route = this.$route.name
if (this.hideNavList.includes(route)) return false
return true
}
},
created () {
bus.$on('collapse-content', msg => {
this.collapse = msg;
});
// 使keep-alive
bus.$on('tags', msg => {
let arr = [];
for (let i = 0, len = msg.length; i < len; i++) {
msg[i].name && arr.push(msg[i].name)
}
this.tagsList = arr
});
}
};
</script>
<style lang="scss" scoped>
</style>
<style lang="scss" scoped></style>

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

@ -7,7 +7,7 @@ import "@/styles/system.scss"
import mixinApp from '@/mixins/app';
import 'babel-polyfill';
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 store from '@/store'
import Setting from '@/setting';
@ -23,23 +23,23 @@ import animated from 'animate.css'
Vue.prototype.$axios = axios
Vue.directive('focus', {/* 聚焦事件 */
inserted: function (el, binding) {
if (el.parentNode.querySelector('input').disabled === false) {
el.parentNode.querySelector('input').focus()
}
inserted: function (el, binding) {
if (el.parentNode.querySelector('input').disabled === false) {
el.parentNode.querySelector('input').focus()
}
}
})
Vue.directive('throttle', {/* 节流 */
inserted: function (el, binding) {
el.addEventListener('click', () => {
if (!el.disabled) {
el.disabled = true
setTimeout(() => {
el.disabled = false
}, binding.value || 3000)
}
})
}
inserted: function (el, binding) {
el.addEventListener('click', () => {
if (!el.disabled) {
el.disabled = true
setTimeout(() => {
el.disabled = false
}, binding.value || 3000)
}
})
}
});
@ -48,12 +48,12 @@ Vue.use(plugins);
Vue.use(animated)
Vue.use(VueLazyload, {
preLoad: 1.3,
// loading: require('@/assets/img/loading4.gif'),
attempt: 2
preLoad: 1.3,
// loading: require('@/assets/img/loading4.gif'),
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.$get = get;
@ -66,9 +66,9 @@ Vue.use(ElementUI);
new Vue({
mixins: [mixinApp],
router,
store,
render: h => h(App)
mixins: [mixinApp],
router,
store,
render: h => h(App)
}).$mount('#app');

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

@ -2,85 +2,80 @@
const obj = {
// 'consumerClient': '/counter/list/manage/consumerClient',
// 'currentAccount/openAccount': '/counter/list/manage/currentAccount',
// 'currentAccount/deposit': '/counter/list/manage/currentAccount'
'consumerClient': '客户信息 -> 个人客户信息建立',
'corporateClient': '客户信息 -> 公司客户信息建立',
'currentAccount/openAccount': '活期业务 -> 开户',
'currentAccount/deposit': '活期业务 -> 存款',
'currentAccount/withdrawal': '活期业务 -> 取款',
'currentAccount/transferAccounts': '活期业务 -> 转账',
'currentAccount/settle': '活期业务 -> 结清',
'currentAccount/Cancell': '活期业务 -> 销户',
'timeDeposit/openAccount': '整存整取 -> 开户',
'timeDeposit/deposit': '整存整取 -> 存款',
'timeDeposit/withdrawal': '整存整取 -> 取款',
'timeDeposit/deposit': '整存整取 -> 存款',
'business/openAccount': '公司业务 -> 开户'
// 'consumerClient': '/counter/list/manage/consumerClient',
// 'currentAccount/openAccount': '/counter/list/manage/currentAccount',
// 'currentAccount/deposit': '/counter/list/manage/currentAccount'
'consumerClient': '客户信息 -> 个人客户信息建立',
'corporateClient': '客户信息 -> 公司客户信息建立',
'currentAccount/openAccount': '活期业务 -> 开户',
'currentAccount/deposit': '活期业务 -> 存款',
'currentAccount/withdrawal': '活期业务 -> 取款',
'currentAccount/transferAccounts': '活期业务 -> 转账',
'currentAccount/settle': '活期业务 -> 结清',
'currentAccount/Cancell': '活期业务 -> 销户',
'timeDeposit/openAccount': '整存整取 -> 开户',
'timeDeposit/deposit': '整存整取 -> 存款',
'timeDeposit/withdrawal': '整存整取 -> 取款',
'timeDeposit/deposit': '整存整取 -> 存款',
'business/openAccount': '公司业务 -> 开户'
}
import { mapGetters } from 'vuex'
export default {
data(){
return {
unNeed: false,
isNeedBefore: false,
needBefore: false,
tipsNefore: null
}
},
created() {
// 将上次保存的这个模块的数据写上页面,因为上次退出时保存了这个模块的数据(beforeDestroy)
if(sessionStorage.getItem(this.moduleName)) {
const getBeforeData = JSON.parse(sessionStorage.getItem(this.moduleName))
for(const key in getBeforeData) {
this.form[key] = Number(getBeforeData[key])? Number(getBeforeData[key]): getBeforeData[key]
}
}
data () {
return {
unNeed: false,
isNeedBefore: false,
needBefore: false,
tipsNefore: null
}
},
created () {
// 将上次保存的这个模块的数据写上页面,因为上次退出时保存了这个模块的数据(beforeDestroy)
if (sessionStorage.getItem(this.moduleName)) {
const getBeforeData = JSON.parse(sessionStorage.getItem(this.moduleName))
for (const key in getBeforeData) {
this.form[key] = Number(getBeforeData[key]) ? Number(getBeforeData[key]) : getBeforeData[key]
}
}
// 如果所选业务需要(需求变更,不用管这个了)
if(this.inMyWork(this.moduleName)) {
if(this.needsModule(this.moduleName)) {
this.isNeedBefore = true
this.needBefore = this.needsModule(this.moduleName)
}
}else {
this.isNeedBefore = true
this.unNeed = true
return;
}
// 如果所选业务需要(需求变更,不用管这个了)
if (this.inMyWork(this.moduleName)) {
if (this.needsModule(this.moduleName)) {
this.isNeedBefore = true
this.needBefore = this.needsModule(this.moduleName)
}
} else {
this.isNeedBefore = true
this.unNeed = true
return;
}
},
methods: {
// 暴露出外面的方法,可以提交后删除调存在sessionStorage中的的数据,因为有后端缓存了。
clearSaveData() {
sessionStorage.removeItem(this.moduleName)
}
},
beforeDestroy() {
// clearInterval(this.myTipBefore)
// this.myTipBefore = null
},
methods: {
// 暴露出外面的方法,可以提交后删除调存在sessionStorage中的的数据,因为有后端缓存了。
clearSaveData () {
sessionStorage.removeItem(this.moduleName)
}
},
beforeDestroy () {
// 这个业务是我们需要的,所以我们存数据
let tmpForm = {}
for (const key in this.form) {
if (this.form[key] !== '') {
tmpForm[key] = this.form[key]
}
}
// 这个业务是我们需要的,所以我们存数据
let tmpForm = {}
for(const key in this.form) {
if(this.form[key] !== '') {
tmpForm[key] = this.form[key]
}
}
// 系统录入当前页面关闭或离开的时候,保存当前模块的数据。回来的时候这些数据还在(业务需求)。
sessionStorage.setItem(this.moduleName, JSON.stringify(tmpForm))
},
computed: {
...mapGetters({
needsModule: 'system/needsModule',
inMyWork: 'system/inMyWork'
})
},
// 系统录入当前页面关闭或离开的时候,保存当前模块的数据。回来的时候这些数据还在(业务需求)。
sessionStorage.setItem(this.moduleName, JSON.stringify(tmpForm))
},
computed: {
...mapGetters({
needsModule: 'system/needsModule',
inMyWork: 'system/inMyWork'
})
},
}

File diff suppressed because it is too large Load Diff

@ -1,360 +1,469 @@
// 刷卡的配置文件,map结构,避免写太多if,else,配置更方便。有很多地方刷银行卡和身份证的。
const myConfig = {
'99': {
nbm: 118,
name: 'nomCurrentTransferPassword',
parentId: '5,26,57,65',
isPassword: true,
},
'117': {
nbm: 117,
name: 'nomCurrentCancellPassword',
parentId: '5,26,57,67',
isPassword: true
},
'118,1': {
nbm: 118,
name: 'nomtimeOpenAccount1',
parentId: '5,26,58,118',
isPassword: false,
machine: '身份证扫描仪'
},
'118,2': {
nbm: 118,
name: 'nomtimeOpenAccount2',
parentId: '5,26,58,118',
isPassword: false,
machine: '刷卡器'
},
'129': {
nbm: 129,
name: 'nomtimeOpenAccountPassword',
parentId: '5,26,58,118',
isPassword: true
},
'131': {
nbm: 131,
name: 'nomtimeDeposit1',
parentId: '5,26,58,119',
isPassword: false,
machine: '刷卡器'
},
'140': {
nbm: 140,
name: 'nomtimeDepositlPassword',
parentId: '5,26,58,119',
isPassword: true
},
'154': {
nbm: 154,
name: 'nomtimeDepositWithdrawalPassword',
parentId: '5,26,58,120',
isPassword: true
},
'154,2': {
nbm: 154,
name: 'nomtimeDepositWithdrawalPassword2',
parentId: '5,26,58,120',
isPassword: true
},
'144,1': {
nbm: 144,
name: 'nomtimeDepositWithdrawal1',
parentId: '5,26,58,120',
isPassword: false,
machine: '刷卡器'
},
'144,2': {
nbm: 144,
name: 'nomtimeDepositWithdrawal2',
parentId: '5,26,58,120',
isPassword: false,
machine: '刷卡器'
},
'156': {
nbm: 156,
name: 'nomtimeDepositContinue',
parentId: '5,26,59,156',
isPassword: false
},
'157,2': {
nbm: 157,
name: 'nomtimeDepositContinue2',
parentId: '5,26,59,157',
isPassword: false
},
'166': {
nbm: 166,
name: 'nomUsefulPhrasesOpenCard',
parentId: '5,26,59,155',
isPassword: false,
machine: '刷卡器'
},
'167': {
nbm: 167,
name: 'nomUsefulPhrasesOpenPassword',
parentId: '5,26,59,155',
isPassword: true
},
'171': {
nbm: 171,
name: 'nomUsefulPhrasesContinueCard',
parentId: '5,26,59,156',
isPassword: false,
machine: '刷卡器'
},
'178': {
nbm: 178,
name: 'nomUsefulPhrasesContinuePassword',
parentId: '5,26,59,156',
isPassword: true
},
'181': {
nbm: 181,
name: 'nomUsefulPhrasesClosed2',
parentId: '5,26,59,157',
isPassword: false,
machine: '刷卡器'
},
'192': {
nbm: 192,
name: 'nomUsefulPhrasesClosedPassword',
parentId: '5,26,59,157',
isPassword: true
},
'193,1': {
nbm: 193,
name: 'nomCallDepositOpen2',
parentId: '5,26,60,193',
isPassword: false,
machine: '身份证扫描仪'
},
'203': {
nbm: 203,
name: 'nomCallDepositOpenPassword',
parentId: '5,26,60,193',
isPassword: true
},
'220': {
nbm: 220,
name: 'nomCallDepositClosedPassword',
parentId: '5,26,60,194',
isPassword: true
},
'320': {
nbm: 320,
name: 'servicesPasswordChange',
parentId: '5,28,316',
isPassword: false,
machine: '身份证扫描仪'
},
'323': {
nbm: 323,
name: 'servicesPasswordChange2',
parentId: '5,28,316',
isPassword: false,
machine: '刷卡器'
},
'325': {
nbm: 325,
name: 'servicesPasswordChange3',
parentId: '5,28,316',
isPassword: true,
},
'326': {
nbm: 326,
name: 'servicesPasswordChange4',
parentId: '5,28,316',
isPassword: true,
},
'329': {
nbm: 329,
name: 'servicesPasswordLost',
parentId: '5,28,328',
isPassword: false,
machine: '刷卡器'
},
'333': {
nbm: 333,
name: 'servicesPasswordLost2',
parentId: '5,28,328',
isPassword: false,
machine: '身份证扫描仪'
},
'341': {
nbm: 341,
name: 'servicesPasswordRelieveLost',
parentId: '5,28,336',
machine: '身份证扫描仪',
isPassword: false
},
'337': {
nbm: 337,
name: 'servicesPasswordRelieveLost2',
parentId: '5,28,336',
machine: '刷卡器',
isPassword: false
},
'343': {
nbm: 343,
name: 'servicesPasswordRelievePassword',
parentId: '5,28,336',
isPassword: true
},
'291': {
nbm: 291,
name: 'nomCallDepositOpen2',
parentId: '5,26,38,288',
isPassword: false,
machine: '身份证扫描仪'
},
'297': {
nbm: 297,
name: 'nomCallDepositOpen3',
parentId: '5,26,38,288',
isPassword: false,
machine: '刷卡器'
},
'301': {
nbm: 301,
name: 'nomCallDepositOpenPassword',
parentId: '5,26,38,288',
isPassword: true
},
'303': {
nbm: 303,
name: 'nomCallDepositCard',
parentId: '5,26,38,289',
isPassword: false
},
'304': {
nbm: 304,
name: 'nomCallDepositCard2',
parentId: '5,26,38,289',
isPassword: false
},
'315': {
nbm: 303,
name: 'nomCallDepositClosedPassword',
parentId: '5,26,38,289',
isPassword: true
},
'1399': {
nbm: 1399,
name: 'nomUsefulPhrasesOpenCard2',
parentId: '5,26,59,155',
isPassword: false,
machine: '身份证扫描仪'
},
'180': {
nbm: 180,
name: 'nomUsefulPhrasesClosed',
parentId: '5,26,59,157',
isPassword: false,
machine: '身份证扫描仪'
},
'302': {
nbm: 302,
name: 'nomCallDepositClosedCard',
parentId: '5,26,38,289',
isPassword: false,
machine: '刷卡器'
},
'392': {
nbm: 180,
name: 'nomCallDepositClosedCard2',
parentId: '5,26,38,289',
isPassword: false,
machine: '身份证扫描仪'
},
'394': {
nbm: 180,
name: 'nomCallDepositClosedPassword',
parentId: '5,26,38,289',
isPassword: true,
},
'99': {
nbm: 118,
name: 'nomCurrentTransferPassword',
parentId: '5,26,57,65',
isPassword: true,
},
'117': {
nbm: 117,
name: 'nomCurrentCancellPassword',
parentId: '5,26,57,67',
isPassword: true
},
'118,1': {
nbm: 118,
name: 'nomtimeOpenAccount1',
parentId: '5,26,58,118',
isPassword: false,
machine: '身份证扫描仪'
},
'118,2': {
nbm: 118,
name: 'nomtimeOpenAccount2',
parentId: '5,26,58,118',
isPassword: false,
machine: '刷卡器'
},
'129': {
nbm: 129,
name: 'nomtimeOpenAccountPassword',
parentId: '5,26,58,118',
isPassword: true
},
'131': {
nbm: 131,
name: 'nomtimeDeposit1',
parentId: '5,26,58,119',
isPassword: false,
machine: '刷卡器'
},
'140': {
nbm: 140,
name: 'nomtimeDepositlPassword',
parentId: '5,26,58,119',
isPassword: true
},
'154': {
nbm: 154,
name: 'nomtimeDepositWithdrawalPassword',
parentId: '5,26,58,120',
isPassword: true
},
'154,2': {
nbm: 154,
name: 'nomtimeDepositWithdrawalPassword2',
parentId: '5,26,58,120',
isPassword: true
},
'144,1': {
nbm: 144,
name: 'nomtimeDepositWithdrawal1',
parentId: '5,26,58,120',
isPassword: false,
machine: '刷卡器'
},
'144,2': {
nbm: 144,
name: 'nomtimeDepositWithdrawal2',
parentId: '5,26,58,120',
isPassword: false,
machine: '刷卡器'
},
'156': {
nbm: 156,
name: 'nomtimeDepositContinue',
parentId: '5,26,59,156',
isPassword: false
},
'157,2': {
nbm: 157,
name: 'nomtimeDepositContinue2',
parentId: '5,26,59,157',
isPassword: false
},
'166': {
nbm: 166,
name: 'nomUsefulPhrasesOpenCard',
parentId: '5,26,59,155',
isPassword: false,
machine: '刷卡器'
},
'167': {
nbm: 167,
name: 'nomUsefulPhrasesOpenPassword',
parentId: '5,26,59,155',
isPassword: true
},
'171': {
nbm: 171,
name: 'nomUsefulPhrasesContinueCard',
parentId: '5,26,59,156',
isPassword: false,
machine: '刷卡器'
},
'178': {
nbm: 178,
name: 'nomUsefulPhrasesContinuePassword',
parentId: '5,26,59,156',
isPassword: true
},
'181': {
nbm: 181,
name: 'nomUsefulPhrasesClosed2',
parentId: '5,26,59,157',
isPassword: false,
machine: '刷卡器'
},
'192': {
nbm: 192,
name: 'nomUsefulPhrasesClosedPassword',
parentId: '5,26,59,157',
isPassword: true
},
'193,1': {
nbm: 193,
name: 'nomCallDepositOpen2',
parentId: '5,26,60,193',
isPassword: false,
machine: '身份证扫描仪'
},
'203': {
nbm: 203,
name: 'nomCallDepositOpenPassword',
parentId: '5,26,60,193',
isPassword: true
},
'220': {
nbm: 220,
name: 'nomCallDepositClosedPassword',
parentId: '5,26,60,194',
isPassword: true
},
'320': {
nbm: 320,
name: 'servicesPasswordChange',
parentId: '5,28,316',
isPassword: false,
machine: '身份证扫描仪'
},
'323': {
nbm: 323,
name: 'servicesPasswordChange2',
parentId: '5,28,316',
isPassword: false,
machine: '刷卡器'
},
'325': {
nbm: 325,
name: 'servicesPasswordChange3',
parentId: '5,28,316',
isPassword: true,
},
'326': {
nbm: 326,
name: 'servicesPasswordChange4',
parentId: '5,28,316',
isPassword: true,
},
'329': {
nbm: 329,
name: 'servicesPasswordLost',
parentId: '5,28,328',
isPassword: false,
machine: '刷卡器'
},
'333': {
nbm: 333,
name: 'servicesPasswordLost2',
parentId: '5,28,328',
isPassword: false,
machine: '身份证扫描仪'
},
'341': {
nbm: 341,
name: 'servicesPasswordRelieveLost',
parentId: '5,28,336',
machine: '身份证扫描仪',
isPassword: false
},
'337': {
nbm: 337,
name: 'servicesPasswordRelieveLost2',
parentId: '5,28,336',
machine: '刷卡器',
isPassword: false
},
'343': {
nbm: 343,
name: 'servicesPasswordRelievePassword',
parentId: '5,28,336',
isPassword: true
},
'291': {
nbm: 291,
name: 'nomCallDepositOpen2',
parentId: '5,26,38,288',
isPassword: false,
machine: '身份证扫描仪'
},
'297': {
nbm: 297,
name: 'nomCallDepositOpen3',
parentId: '5,26,38,288',
isPassword: false,
machine: '刷卡器'
},
'301': {
nbm: 301,
name: 'nomCallDepositOpenPassword',
parentId: '5,26,38,288',
isPassword: true
},
'303': {
nbm: 303,
name: 'nomCallDepositCard',
parentId: '5,26,38,289',
isPassword: false
},
'304': {
nbm: 304,
name: 'nomCallDepositCard2',
parentId: '5,26,38,289',
isPassword: false
},
'315': {
nbm: 303,
name: 'nomCallDepositClosedPassword',
parentId: '5,26,38,289',
isPassword: true
},
'1399': {
nbm: 1399,
name: 'nomUsefulPhrasesOpenCard2',
parentId: '5,26,59,155',
isPassword: false,
machine: '身份证扫描仪'
},
'180': {
nbm: 180,
name: 'nomUsefulPhrasesClosed',
parentId: '5,26,59,157',
isPassword: false,
machine: '身份证扫描仪'
},
'302': {
nbm: 302,
name: 'nomCallDepositClosedCard',
parentId: '5,26,38,289',
isPassword: false,
machine: '刷卡器'
},
'392': {
nbm: 180,
name: 'nomCallDepositClosedCard2',
parentId: '5,26,38,289',
isPassword: false,
machine: '身份证扫描仪'
},
'394': {
nbm: 180,
name: 'nomCallDepositClosedPassword',
parentId: '5,26,38,289',
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 {
myConfig
myConfig
}

@ -1,61 +1,36 @@
<template>
<div class="wrap">
<img class="sth bg"
src="@/assets/img/index-bg.png"
alt="">
<div class="case"
@click="setShowBusiness(true)">业务选择</div>
<img class="sth bg" src="@/assets/img/index-bg.png" alt="">
<div class="case" @click="setShowBusiness(true)">业务选择</div>
<!-- 业务选择 --弹框 -->
<div class="sth integrated-counter cp">
<img width="100%"
v-lazy="lazy1"
alt=""
@click="toPart('/counter')">
<img width="100%" v-lazy="lazy1" alt="" @click="toPart('/counter')">
<!-- src="@/assets/img/integrated-counter.png" -->
<div class="name"
@click="toPart('/counter')">综合柜台</div>
<div class="name" @click="toPart('/counter')">综合柜台</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="lazy2"
alt=""
@click="showComing" />
<img width="100%" v-lazy="lazy2" alt="" />
<!-- src="@/assets/img/integrated-counter.png" -->
<!-- <div class="name" @click="showComing">国际结算部</div> -->
<div class="name" @click="toPart('/counter', true)">信贷部</div>
</div>
<!-- <img class="sth international cp" v-lazy="lazy2" alt="" @click="showComing"> -->
<div class="sth manager cp"
@click="toPart('/lobbyManager')">
<img width="100%"
v-lazy="lazy3"
alt="">
<div class="sth manager cp" @click="toPart('/lobbyManager')">
<img width="100%" v-lazy="lazy3" alt="">
<div class="name">大堂经理</div>
</div>
<img class="sth credit-dep cp"
v-lazy="lazy4"
alt=""
@click="showComing">
<img class="sth company-finance cp"
v-lazy="lazy5"
alt=""
@click="showComing">
<img class="sth personal-finance cp"
v-lazy="lazy6"
alt=""
@click="showComing">
<div class="coming"
:class="{active: comingVisible}">
<img class="sth credit-dep cp" v-lazy="lazy4" alt="" @click="showComing">
<img class="sth company-finance cp" v-lazy="lazy5" alt="" @click="showComing">
<img class="sth personal-finance cp" v-lazy="lazy6" alt="" @click="showComing">
<div class="coming" :class="{ active: comingVisible }">
<div style="width: 20%;margin: auto">
<img style="width: 100%"
v-lazy="lazy7"
alt="">
<img style="width: 100%" v-lazy="lazy7" alt="">
</div>
<p class="text">敬请期待</p>
</div>
@ -85,8 +60,9 @@ export default {
},
created () {
if (!sessionStorage.getItem('firstLoad2')) {
sessionStorage.removeItem('submited')
sessionStorage.removeItem('businessKey')
sessionStorage.clear()
// sessionStorage.removeItem('submited')
// sessionStorage.removeItem('businessKey')
this.setBusinessKey('')
const loading = this.$loading({
lock: true,
@ -132,7 +108,8 @@ export default {
methods: {
...mapMutations({
setBusinessKey: 'system/setBusinessKey',
setShowBusiness: 'system/setShowBusiness'
setShowBusiness: 'system/setShowBusiness',
setCredit: 'system/setCredit',
}),
getQueryVariable (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)
},
showComing () {
@ -162,169 +140,192 @@ export default {
<style lang="scss" scoped>
//
@mixin nameTip {
width: 200px;
height: 70px;
line-height: 60px;
text-align: center;
font-size: 20px;
background: url(../../../assets/img/index-btn-bg.png);
// background-position: center center;
background-size: 100%;
color: #fff;
border-radius: 16px;
// box-shadow: 0 6px 8px rgba(0, 0, 0, .12), 0 0 6px rgba(0, 0, 0, .04);
z-index: 100;
width: 200px;
height: 70px;
line-height: 60px;
text-align: center;
font-size: 20px;
background: url(../../../assets/img/index-btn-bg.png);
// background-position: center center;
background-size: 100%;
color: #fff;
border-radius: 16px;
// box-shadow: 0 6px 8px rgba(0, 0, 0, .12), 0 0 6px rgba(0, 0, 0, .04);
z-index: 100;
}
.wrap {
position: relative;
min-height: calc(100vh - 68px);
.sth {
position: absolute;
&.cp {
cursor: pointer;
}
position: relative;
min-height: calc(100vh - 68px);
.sth {
position: absolute;
&.cp {
cursor: pointer;
}
.bg {
top: 0;
left: 0;
width: 100%;
height: 100%;
}
.bg {
top: 0;
left: 0;
width: 100%;
height: 100%;
}
.integrated-counter {
top: -14%;
left: 24%;
width: 43%;
transition: all 0.5s;
&:hover {
margin-top: -10px;
}
.integrated-counter {
top: -14%;
left: 24%;
width: 43%;
transition: all 0.5s;
&:hover {
margin-top: -10px;
}
.name {
position: absolute;
top: 23%;
left: 20%;
@include nameTip;
}
.name {
position: absolute;
top: 23%;
left: 20%;
@include nameTip;
}
.international {
top: -9%;
left: 72%;
width: 28%;
transition: all 0.5s;
// &:hover{
// margin-top: -10px;
// }
// img{
// transition: all .5s;
// &:hover{
// margin-top: -10px;
// }
// }
.name {
position: absolute;
top: 23%;
right: 0;
@include nameTip;
}
}
.international {
top: -9%;
left: 72%;
width: 28%;
transition: all 0.5s;
// &:hover{
// margin-top: -10px;
// }
// img{
// transition: all .5s;
// &:hover{
// margin-top: -10px;
// }
// }
.name {
position: absolute;
top: 18%;
right: 45%;
@include nameTip;
}
.manager {
bottom: 0;
left: 57%;
width: 39%;
transition: all 0.5s;
&:hover {
bottom: 10px;
}
.name {
position: absolute;
top: 65%;
left: 37%;
@include nameTip;
}
}
.manager {
bottom: 0;
left: 57%;
width: 39%;
transition: all 0.5s;
&:hover {
bottom: 10px;
}
.name {
position: absolute;
top: 65%;
left: 37%;
@include nameTip;
}
}
.credit-dep {
top: 31%;
left: 0;
width: 20%;
transition: all 0.5s;
// &:hover{
// top: 29%;
// }
}
.company-finance {
top: 52%;
left: 9%;
width: 28%;
transition: all 0.5s;
// &:hover{
// top: 50%;
// }
}
.personal-finance {
bottom: 0;
left: 25%;
width: 30%;
transition: all 0.5s;
// &:hover{
// bottom: 10px;
// }
}
.case {
position: absolute;
top: 92px;
left: 150px;
width: 150px;
height: 50px;
line-height: 50px;
text-align: center;
color: #fff;
font-size: 24px;
background: url(../../../assets/img/case.png) 0 0 / cover no-repeat;
background-size: 150px 50px;
cursor: pointer;
// &:hover{
// top: 76px;
// }
}
@media (max-width: 1440px) {
.credit-dep {
top: 31%;
left: 0;
width: 20%;
transition: all 0.5s;
// &:hover{
// top: 29%;
// }
top: 32%;
}
.company-finance {
top: 52%;
left: 9%;
width: 28%;
transition: all 0.5s;
// &:hover{
// top: 50%;
// }
top: 53%;
}
.personal-finance {
bottom: 0;
left: 25%;
width: 30%;
transition: all 0.5s;
// &:hover{
// bottom: 10px;
// }
top: 72%;
}
.case {
position: absolute;
top: 92px;
left: 150px;
width: 150px;
height: 50px;
line-height: 50px;
text-align: center;
color: #fff;
font-size: 24px;
background: url(../../../assets/img/case.png) 0 0 / cover no-repeat;
background-size: 150px 50px;
cursor: pointer;
// &:hover{
// top: 76px;
// }
}
@media (max-width: 1440px) {
.credit-dep {
top: 32%;
}
.company-finance {
top: 53%;
}
.personal-finance {
top: 72%;
}
.integrated-counter {
width: 44%;
}
.integrated-counter {
width: 44%;
}
@media (max-width: 1300px) {
& {
min-height: calc(100vh - 76px);
}
}
@media (max-width: 1300px) {
& {
min-height: calc(100vh - 76px);
}
}
}
.coming {
position: fixed;
top: -200%;
left: 50%;
width: 376px;
padding: 40px 0;
text-align: center;
transform: translate(-50%, -50%);
border-radius: 16px;
background-color: rgba(0, 0, 0, 0.8);
transition: all 0.3s;
&.active {
top: 50%;
}
.text {
margin-top: 24px;
font-size: 22px;
font-weight: 400;
color: #fff;
}
position: fixed;
top: -200%;
left: 50%;
width: 376px;
padding: 40px 0;
text-align: center;
transform: translate(-50%, -50%);
border-radius: 16px;
background-color: rgba(0, 0, 0, 0.8);
transition: all 0.3s;
&.active {
top: 50%;
}
.text {
margin-top: 24px;
font-size: 22px;
font-weight: 400;
color: #fff;
}
}
</style>

@ -1,327 +1,355 @@
<template>
<!-- :style="full?'height:100vh;':'height: 80vh;'" -->
<div class="box" :class="full? 'h-4/5': ''">
<div class="nav">
<!-- <div class="top" :style="full?'border-radius:0':'border-top-left-radius: 20px;'"> select-none -->
<div class="top" :style="full?'border-radius:0':'border-top-left-radius: 20px;'">
<p style="margin:auto">商业银行系统</p>
</div>
<!-- <div class="body2">
<!-- :style="fullScreen?'height:100vh;':'height: 80vh;'" -->
<div class="box" :class="fullScreen || isCredit ? 'h-4/5' : ''">
<div class="nav">
<!-- <div class="top" :style="fullScreen?'border-radius:0':'border-top-left-radius: 20px;'"> select-none -->
<div class="top" :style="fullScreen ? 'border-radius:0' : 'border-top-left-radius: 20px;'">
<p style="margin:auto">商业银行系统</p>
</div>
<!-- <div class="body2">
<navbar class="body"></navbar>
</div> -->
<div class="body">
<navbar />
</div>
<!-- <navbar class="body"></navbar> -->
</div>
<div class="manage-layout">
<div class="top" :style="full?'border-radius:0':'border-top-right-radius: 20px;'">
<img v-show="!full" src="../../../assets/svg/fullscreen.svg" alt="" @click="handleFullscreen">
<img v-show="full" src="../../../assets/svg/shrink.svg" alt="" @click="shrink">
<i @click="close" class="el-icon-close"></i>
</div>
<div class="manage-content">
<transition name="fade">
<router-view class="manage-view"></router-view>
</transition>
</div>
</div>
<div class="body">
<navbar />
</div>
<!-- <navbar class="body"></navbar> -->
</div>
<div class="manage-layout">
<div class="top" :style="fullScreen ? 'border-radius:0' : 'border-top-right-radius: 20px;'">
<img v-show="!fullScreen && !isCredit" src="../../../assets/svg/fullscreen.svg" alt=""
@click="handleFullscreen">
<img v-show="fullScreen" src="../../../assets/svg/shrink.svg" alt="" @click="shrink">
<i @click="close" class="el-icon-close"></i>
</div>
<div class="manage-content">
<transition name="fade">
<router-view class="manage-view"></router-view>
</transition>
</div>
</div>
</div>
</template>
<script>
import { mapState } from 'vuex'
import navbar from '../navbar'
export default {
name: 'index',
data() {
return {
fullscreen:this.$store.state.system.fullScreen,// --store
}
name: 'index',
data () {
return {
curRoute: ''
}
},
components: {
navbar
},
computed: {
...mapState('system', ['fullScreen', 'isCredit'])
},
watch: {
'$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: {
close () {
this.$router.push('/counter/list/')
},
components: {
navbar
handleFullscreen () {
this.$store.commit('system/changeFullscreen', true)
},
// beforeMount() {
// const path = sessionStorage.getItem('computerPath')
// console.log('router-view')
// console.log(path)
// this.$router.push(path)
// },
methods: {
close(){
// 退 退
sessionStorage.setItem('computerPath', this.$route.fullPath)
this.$router.push('/counter/list/')
},
handleFullscreen(){
this.fullscreen = 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>
<style lang="scss" scoped>
$font_size_All: 16px; //
$submenu_padding_left: 25px; // padding-left
$font_size_All: 16px; //
$submenu_padding_left: 25px; // padding-left
// /deep/.el-form-item {
// label {
// width: 100px!important;
// text-align-last: justify;
// }
// /deep/.el-form-item {
// label {
// width: 100px!important;
// text-align-last: justify;
// }
// }
// }
@media screen and (min-width: 1920px) {
/deep/.body {
min-height: 50vh;
}
}
@media screen and (min-width: 1920px) {
/deep/.body {
min-height: 50vh;
}
}
@media screen and (min-width: 1200px) and (max-width: 1700px) {
/deep/.body {
min-height: 50vh;
}
}
@media screen and (min-width: 1200px) and (max-width: 1700px) {
/deep/.body {
min-height: 50vh;
}
}
// .wrap2{
// width: 100%;
// display: flex;
// flex-direction: column;
// overflow: hidden;
// .title{
// height: 60px;
// display: flex;
// align-items: center;
// font-size: 20px;
// padding-left: 50px;
// }
// .body{
// margin-top: 50px;
// }
// }
.box{
display: flex;
min-width: 1300px;
.nav{
width: 270px;
min-height: 80vh;
border-top-left-radius: 20px;
border-bottom-left-radius: 20px;
display: flex;
flex-direction: column;
.top{
height: 50px;
font-size: 20px;
display: flex;
align-items: center;
text-align: center;
border-top-left-radius: 15px;
color: #B3B3B3;
background: #222428;
p{
font-size: 21px;
}
}
.body{
flex: 1;
.el-menu {
height: 100%;
}
}
}
.manage-layout{
width: calc(100% - 270px);
// background: #fff;
background:transparent;
display: flex;
flex-direction: column;
.top{
height: 50px;
font-size: 30px;
display: flex;
justify-content: flex-end;
align-items: center;
text-align: center;
color: #000;
background: #e6e6e6;
border-top-right-radius: 20px;
i{
margin-right: 10px;
cursor: pointer;
}
}
.manage-content{
flex: 1;
position: relative;
border-bottom-right-radius: 20px;
overflow: hidden;
.manage-view{
position: absolute;
top: 0;
bottom: 0;
background: #fff;
}
}
}
}
.fade-enter-active, .fade-leave-active {
transition: opacity .5s;
}
.fade-enter, .fade-leave-to /* .fade-leave-active below version 2.1.8 */ {
opacity: 0.5;
}
// el-input
/deep/ .el-input input{
&:focus {
border-color: skyblue;
}
// .wrap2{
// width: 100%;
// display: flex;
// flex-direction: column;
// overflow: hidden;
// .title{
// height: 60px;
// display: flex;
// align-items: center;
// font-size: 20px;
// padding-left: 50px;
// }
// .body{
// margin-top: 50px;
// }
// }
}
.box {
display: flex;
min-width: 1300px;
//
/deep/ .is-error input {
border-color: #f40!important;;
}
.nav {
width: 270px;
min-height: 80vh;
border-top-left-radius: 20px;
border-bottom-left-radius: 20px;
display: flex;
flex-direction: column;
/deep/.el-input {
// width: 15vw!important;
width: 100%;
input {
font-size: $font_size_All!important;
}
.top {
height: 50px;
font-size: 20px;
display: flex;
align-items: center;
text-align: center;
border-top-left-radius: 15px;
color: #b3b3b3;
background: #222428;
p {
font-size: 21px;
}
}
/deep/ .text-xl p {
font-size: $font_size_All!important;
}
/deep/ .el-form-item .el-form-item__label {
font-size: $font_size_All!important;
}
.body {
flex: 1;
/deep/ .el-submenu{
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;
.el-menu {
height: 100%;
}
}
// /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;
}
.manage-layout {
width: calc(100% - 270px);
// background: #fff;
background: transparent;
display: flex;
flex-direction: column;
.top {
height: 50px;
font-size: 30px;
display: flex;
justify-content: flex-end;
align-items: center;
text-align: center;
color: #000;
background: #e6e6e6;
border-top-right-radius: 20px;
i {
margin-right: 10px;
cursor: pointer;
}
}
/deep/ .title p {
font-size: $font_size_All!important;
.manage-content {
flex: 1;
position: relative;
border-bottom-right-radius: 20px;
overflow: hidden;
.manage-view {
position: absolute;
top: 0;
bottom: 0;
background: #fff;
}
}
/deep/ .idCard p {
font-size: $font_size_All!important;
}
}
.fade-enter-active,
.fade-leave-active {
transition: opacity 0.5s;
}
.fade-enter,
.fade-leave-to
/* .fade-leave-active below version 2.1.8 */
{
opacity: 0.5;
}
// el-input
/deep/ .el-input input {
&:focus {
border-color: skyblue;
}
}
//
/deep/ .is-error input {
border-color: #f40 !important;
}
/deep/.el-input {
// width: 15vw!important;
width: 100%;
input {
font-size: $font_size_All !important;
}
}
/deep/ .text-xl p {
font-size: $font_size_All !important;
}
/deep/ .el-form-item .el-form-item__label {
font-size: $font_size_All !important;
}
/deep/ .el-submenu {
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 {
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 {
// width: 15vw!important;
width: 100%;
input {
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 {
// width: 15vw!important;
width: 100%;
input {
font-size: $font_size_All!important;
}
}
}
/deep/ .idCard {
// width: 15vw;
width: 100%;
}
/deep/ .idCard {
// width: 15vw;
width: 100%;
}
}
@media screen and (min-width: 1200px) and (max-width: 1900px) {
.box {
display: flex;
min-width: 80vw;
overflow: auto;
.nav {
// width: 25vw;
// min-height: 80vh;
// overflow: hidden;
// border-top-left-radius: 20px;
// display: flex;
// flex-direction: column;
.top {
font-size: 3vh;
line-height: 3vh;
display: flex;
align-items: center;
text-align: center;
border-top-left-radius: 15px;
color: #b3b3b3;
background: #222428;
}
.body {
// flex: 1;
// height: calc(80vh-10vh);
overflow: auto;
background-color: #313540;
}
}
@media screen and (min-width: 1200px) and (max-width: 1900px) {
.box{
display: flex;
min-width: 80vw;
// margin-top: 6vh;
overflow: auto;
// height: 70vh;
.nav{
width: 25vw;
min-height: 80vh;
overflow: hidden;
border-top-left-radius: 20px;
display: flex;
flex-direction: column;
.top{
min-height: 10vh;
font-size: 3vh;
line-height: 3vh;
display: flex;
align-items: center;
text-align: center;
border-top-left-radius: 15px;
color: #B3B3B3;
background: #222428;
}
.body{
// flex: 1;
// height: calc(80vh-10vh);
overflow: auto;
background-color: #313540;
}
}
.manage-layout{
width: calc(100% - 270px);
min-height: 80vh;
overflow: auto;
// background: #fff;
background:transparent;
display: flex;
flex-direction: column;
box-sizing: border-box;
.top{
min-height: 10vh;
font-size: 30px;
display: flex;
justify-content: flex-end;
align-items: center;
text-align: center;
color: #000;
background: #e6e6e6;
border-top-right-radius: 20px;
i{
margin-right: 10px;
cursor: pointer;
}
}
.manage-content{
flex: 1;
position: relative;
.manage-view{
position: absolute;
top: 0;
bottom: 0;
background: #fff;
}
}
}
.manage-layout {
width: calc(100% - 270px);
min-height: 80vh;
overflow: auto;
// background: #fff;
background: transparent;
display: flex;
flex-direction: column;
box-sizing: border-box;
.top {
font-size: 30px;
display: flex;
justify-content: flex-end;
align-items: center;
text-align: center;
color: #000;
background: #e6e6e6;
border-top-right-radius: 20px;
i {
margin-right: 10px;
cursor: pointer;
}
}
.manage-content {
flex: 1;
position: relative;
.manage-view {
position: absolute;
top: 0;
bottom: 0;
background: #fff;
}
}
}
}
}
</style>

@ -1,47 +1,40 @@
<!-- 现金管理 -->
<template>
<div class="wrap">
<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-item index="4">现金调出</el-menu-item>
</el-menu>
</div>
<div class="title">
<p>重空现金</p>
<i class="el-icon-arrow-right"></i>
<p>现金管理</p>
<i class="el-icon-arrow-right"></i>
<p>{{textObj[activeIndex]}}</p>
</div>
<cash-recipients v-if="activeIndex==='1'"></cash-recipients>
<cashTransferInto v-if="activeIndex==='2'"></cashTransferInto>
<cashPaid v-if="activeIndex==='3'"></cashPaid>
<cashOut v-if="activeIndex==='4'"></cashOut>
<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" v-throttle>提交</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 class="wrap">
<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-item index="4">现金调出</el-menu-item>
</el-menu>
</div>
<div class="title">
<p>重控现金</p>
<i class="el-icon-arrow-right"></i>
<p>现金管理</p>
<i class="el-icon-arrow-right"></i>
<p>{{ textObj[activeIndex] }}</p>
</div>
<cash-recipients v-if="activeIndex === '1'"></cash-recipients>
<cashTransferInto v-if="activeIndex === '2'"></cashTransferInto>
<cashPaid v-if="activeIndex === '3'"></cashPaid>
<cashOut v-if="activeIndex === '4'"></cashOut>
<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" v-throttle>提交</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>
@ -50,158 +43,173 @@ import cashTransferInto from './cashTransferInto.vue'
import cashPaid from './cashPaid.vue'
import cashOut from './cashOut.vue'
export default {
name: 'index',
components:{
cashRecipients,
cashTransferInto,
cashPaid,
cashOut
},
data() {
return {
text:'',/* 顶部文字 */
cacheVal: '',
textObj:{
'1':'现金领用',
'2':'现金上缴',
'3':'现金调入',
'4':'现金调出',
},
form:{
name: 'index',
components: {
cashRecipients,
cashTransferInto,
cashPaid,
cashOut
},
data () {
return {
text: '',/* 顶部文字 */
cacheVal: '',
textObj: {
'1': '现金领用',
'2': '现金上缴',
'3': '现金调入',
'4': '现金调出',
},
form: {
},
visible:false,
options:[],
activeIndex:'',
second:[//
},
visible: false,
options: [],
activeIndex: '',
second: [//
],
],
}
},
methods: {
handleSelect(val){
this.text = this.textObj[val]
this.activeIndex = val
this.cacheVal = val
},
},
created() {
if(sessionStorage.getItem('importantCashIndex')) {
this.handleSelect(sessionStorage.getItem('importantCashIndex'))
}else {
this.handleSelect('1')
}
}
},
methods: {
handleSelect (val) {
this.text = this.textObj[val]
this.activeIndex = val
this.cacheVal = val
},
destroyed() {
sessionStorage.setItem('importantCashIndex', this.cacheVal)
},
created () {
if (sessionStorage.getItem('importantCashIndex')) {
this.handleSelect(sessionStorage.getItem('importantCashIndex'))
} else {
this.handleSelect('1')
}
},
destroyed () {
sessionStorage.setItem('importantCashIndex', 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-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;
}
}
.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>

@ -1,49 +1,42 @@
<!-- 现金管理 -->
<template>
<div class="wrap">
<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-item index="4">凭证调出</el-menu-item>
</el-menu>
</div>
<div class="title">
<p>重空现金</p>
<i class="el-icon-arrow-right"></i>
<p>凭证管理</p>
<i class="el-icon-arrow-right"></i>
<p>{{textObj[activeIndex]}}</p>
</div>
<!-- 开户 -->
<cash-recipients v-if="activeIndex==='1'"></cash-recipients>
<cash-transfer-into v-if="activeIndex==='2'"></cash-transfer-into>
<cash-paid v-if="activeIndex==='3'"></cash-paid>
<cash-out v-if="activeIndex==='4'"></cash-out>
<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 class="wrap">
<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-item index="4">凭证调出</el-menu-item>
</el-menu>
</div>
<div class="title">
<p>重控现金</p>
<i class="el-icon-arrow-right"></i>
<p>凭证管理</p>
<i class="el-icon-arrow-right"></i>
<p>{{ textObj[activeIndex] }}</p>
</div>
<!-- 开户 -->
<cash-recipients v-if="activeIndex === '1'"></cash-recipients>
<cash-transfer-into v-if="activeIndex === '2'"></cash-transfer-into>
<cash-paid v-if="activeIndex === '3'"></cash-paid>
<cash-out v-if="activeIndex === '4'"></cash-out>
<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>
@ -52,168 +45,183 @@ import cashTransferInto from './cashTransferInto.vue'
import cashPaid from './cashPaid.vue'
import cashOut from './cashOut.vue'
export default {
name: 'index',
components:{
cashRecipients,
cashTransferInto,
cashPaid,
cashOut
},
data() {
return {
text:'',/* 顶部文字 */
cacheVal: '',
textObj:{
'1':'凭证领用',
'2':'凭证上缴',
'3':'凭证调入',
'4':'凭证调出',
},
form:{
name: 'index',
components: {
cashRecipients,
cashTransferInto,
cashPaid,
cashOut
},
data () {
return {
text: '',/* 顶部文字 */
cacheVal: '',
textObj: {
'1': '凭证领用',
'2': '凭证上缴',
'3': '凭证调入',
'4': '凭证调出',
},
form: {
},
visible:false,
options:[],
activeIndex:'1',
second:[//
},
visible: false,
options: [],
activeIndex: '1',
second: [//
],
],
}
},
created() {
if(sessionStorage.getItem('importantCashIndex2')) {
this.handleSelect(sessionStorage.getItem('importantCashIndex2'))
}else {
this.handleSelect('1')
}
},
destroyed() {
sessionStorage.setItem('importantCashIndex2', this.cacheVal)
}
},
created () {
if (sessionStorage.getItem('importantCashIndex2')) {
this.handleSelect(sessionStorage.getItem('importantCashIndex2'))
} else {
this.handleSelect('1')
}
},
destroyed () {
sessionStorage.setItem('importantCashIndex2', this.cacheVal)
},
methods: {
handleSelect (val) {
this.text = this.textObj[val]
this.activeIndex = val
this.cacheVal = val
},
methods: {
handleSelect(val){
this.text = this.textObj[val]
this.activeIndex = val
this.cacheVal = 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-x: hidden;
overflow-y: 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;
}
}
.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-input input {
text-align: center;
/deep/ .el-menu--horizontal>.el-menu-item.is-active {
border: 2px solid #568DF2;
border-radius: 10px;
color: #000;
}
/deep/ .blueText{
color: blue;
/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-x: hidden;
overflow-y: 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;
}
}
}
/deep/.el-input input {
text-align: center;
}
/deep/ .blueText {
color: blue;
}
</style>

@ -1,76 +1,82 @@
<!-- 现金管理 -->
<template>
<div class="wrap">
<!-- <div class="title">
<div class="wrap">
<!-- <div class="title">
<p>重空现金</p>
<i class="el-icon-arrow-right"></i>
<p>支票管理</p>
<i class="el-icon-arrow-right"></i>
<p>支票出售</p>
</div> -->
<my-title :titleArr="['重现金', '支票管理', '支票出售']"/>
<my-title :titleArr="['重现金', '支票管理', '支票出售']" />
<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="username">
<el-input @blur="onBlur()" :value="form.username" @input="val => checkHanzi(val, form, 'username')" ref="username"></el-input>
</el-form-item>
<el-form-item label="凭证类型" prop="voucherType">
<el-select v-model.trim="form.voucherType" placeholder="请选择" ref="voucherType">
<!-- 15: 'IC卡',
<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="username">
<el-input @blur="onBlur()" :value="form.username" @input="val => checkHanzi(val, form, 'username')"
ref="username"></el-input>
</el-form-item>
<el-form-item label="凭证类型" prop="voucherType">
<el-select v-model.trim="form.voucherType" placeholder="请选择" ref="voucherType">
<!-- 15: 'IC卡',
115: '转账支票',
116: '现金支票',
123: '存单',
127: '银行' -->
<el-option label="IC卡" :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-form-item>
<el-form-item label="凭证终止号" prop="endNumber">
<el-input :value="form.endNumber" @blur="getBlur()" @input="val => certificateNumber(val, form, 'endNumber')" ref="endNumber"></el-input>
</el-form-item>
<el-option label="IC卡" :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-form-item>
<el-form-item label="凭证终止号" prop="endNumber">
<el-input :value="form.endNumber" @blur="getBlur()"
@input="val => certificateNumber(val, form, 'endNumber')" ref="endNumber"></el-input>
</el-form-item>
<el-form-item label="收费类型" prop="chargeWay2">
<el-select v-model.trim="form.chargeWay2" placeholder="请选择" ref="chargeWay2">
<el-option label="现金" :value="135"> </el-option>
</el-select>
</el-form-item>
<el-form-item label="手续费" prop="serviceCharge">
<el-input :value="form.serviceCharge" @input="(val) => ismoney(val, form, 'serviceCharge')" ref="serviceCharge"></el-input>
</el-form-item>
</el-col>
<el-col :span="10" :offset="1">
<el-form-item label="客户名称" prop="customerName">
<el-input v-model.trim="form.customerName" ref="customerName" ></el-input>
</el-form-item>
<el-form-item label="凭证起始号" prop="startNumber">
<el-input :value="form.startNumber" @input="(val) => certificateNumber(val, form, 'startNumber')" ref="startNumber"></el-input>
</el-form-item>
<el-form-item label="数量" prop="number">
<el-input :value="form.number" disabled @input="val => inputListen(val, form, 'number')" ref="number" ></el-input>
</el-form-item>
<el-form-item label="工本费" prop="cost">
<el-input :value="form.cost" @input="val => ismoney(val, form, 'cost')" ref="cost" ></el-input>
</el-form-item>
<el-form-item label="摘要" prop="abstract">
<el-input v-model.trim="form.abstract" ></el-input>
</el-form-item>
</el-col>
<el-form-item label="收费类型" prop="chargeWay2">
<el-select v-model.trim="form.chargeWay2" placeholder="请选择" ref="chargeWay2">
<el-option label="现金" :value="135"> </el-option>
</el-select>
</el-form-item>
<el-form-item label="手续费" prop="serviceCharge">
<el-input :value="form.serviceCharge" @input="(val) => ismoney(val, form, 'serviceCharge')"
ref="serviceCharge"></el-input>
</el-form-item>
</el-col>
<el-col :span="10" :offset="1">
<el-form-item label="客户名称" prop="customerName">
<el-input v-model.trim="form.customerName" ref="customerName"></el-input>
</el-form-item>
<el-form-item label="凭证起始号" prop="startNumber">
<el-input :value="form.startNumber" @input="(val) => certificateNumber(val, form, 'startNumber')"
ref="startNumber"></el-input>
</el-form-item>
<el-form-item label="数量" prop="number">
<el-input :value="form.number" disabled @input="val => inputListen(val, form, 'number')"
ref="number"></el-input>
</el-form-item>
<el-form-item label="工本费" prop="cost">
<el-input :value="form.cost" @input="val => ismoney(val, form, 'cost')" ref="cost"></el-input>
</el-form-item>
<el-form-item label="摘要" prop="abstract">
<el-input v-model.trim="form.abstract"></el-input>
</el-form-item>
</el-col>
</el-form>
</el-row>
<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" />
</div>
<!-- <need-before v-else :moduleName='needBefore' :unNeed="unNeed" class="wrap" /> -->
</el-form>
</el-row>
<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" />
</div>
<!-- <need-before v-else :moduleName='needBefore' :unNeed="unNeed" class="wrap" /> -->
</template>
<script>
import { myValidate, ismoney, checkName, checkHanzi, autoPlay, autoPlay2, inputListen, certificateNumber } from '@/utils/utilFunction.js'
import { myValidate, ismoney, checkName, checkHanzi, autoPlay, autoPlay2, inputListen, certificateNumber } from '@/utils/utilFunction.js'
import { addOperation, getOperation } from '@/api/http';
import MyTitle from '@/components/myTitle'
@ -81,310 +87,321 @@ import TipsBefore from '@/mixins/tipsBefore'
const moduleName = 'controlCash3/index'
export default {
name: 'index',
mixins: [ TipsBefore ],
components:{
NeedBefore,
MyDialog,
MyTitle
},
data() {
return {
moduleName,
visible: false,
unNeed: false,
isNeedBefore: '',
needBefore: '',
form:{
//
username: '', //
startNumber: '', //
endNumber: '', //
//
voucherType: '', //
chargeWay2: 135, //
serviceCharge: '5.00', //
customerName: '', //
number: '', //
cost: '', //
abstract: '' //
},
formName:{
//
username: '账号', //
startNumber: '凭证起始号', //
endNumber: '凭证终止号', //
//
voucherType: '凭证类型', //
chargeWay2: '收费类型', //
serviceCharge: '手续费', //
customerName: '客户名称', //
number: '数量', //
cost: '工本费', //
abstract: '摘要' //
},
myTable2: {
240: {
prop: 'username',
type: '3',
"subjectId": 84,
},
536: {
prop: 'startNumber',
type: '3',
"subjectId": 95,
},
//
550: {
prop: 'endNumber',
type: '3',
"subjectId": 103,
}
},
myTable: {
241: {
prop: 'customerName',
type: '3',
"subjectId": 7,
},
253: {
prop: 'voucherType',
type: '1',
"subjectId": 11,
},
533: {
prop: 'number',
type: '3',
"subjectId": 94,
},
name: 'index',
mixins: [TipsBefore],
components: {
NeedBefore,
MyDialog,
MyTitle
},
data () {
return {
moduleName,
visible: false,
unNeed: false,
isNeedBefore: '',
needBefore: '',
form: {
//
username: '', //
startNumber: '', //
endNumber: '', //
//
voucherType: '', //
chargeWay2: 135, //
serviceCharge: '5.00', //
customerName: '', //
number: '', //
cost: '', //
abstract: '' //
},
formName: {
//
username: '账号', //
startNumber: '凭证起始号', //
endNumber: '凭证终止号', //
//
voucherType: '凭证类型', //
chargeWay2: '收费类型', //
serviceCharge: '手续费', //
customerName: '客户名称', //
number: '数量', //
cost: '工本费', //
abstract: '摘要' //
},
myTable2: {
537: {
prop: 'cost',
type: '3',
"subjectId": 96,
},
538: {
prop: 'chargeWay2',
type: '1',
"subjectId": 90,
},
539: {
prop: 'abstract',
type: '3',
"subjectId": 97,
},
540: {
prop: 'serviceCharge',
type: '3',
"subjectId": 98,
},
},
rules: {
username: [
{
required: true,
message: '请输入账号',
trigger: 'blur'
}
],
startNumber: [
{
required: true,
message: '请输入凭证起始号',
trigger: 'blur'
}
],
endNumber: [
{
required: true,
message: '请输入凭证终止号',
trigger: 'blur'
}
],
},
submited: 0
240: {
prop: 'username',
type: '3',
"subjectId": 84,
},
536: {
prop: 'startNumber',
type: '3',
"subjectId": 95,
},
//
550: {
prop: 'endNumber',
type: '3',
"subjectId": 103,
}
},
created() {
// this.handleSelect(1)
if(this.inMyWork(moduleName)) {
if(this.needsModule(moduleName) === '') {
}else {
this.isNeedBefore = true
this.needBefore = this.needsModule(moduleName)
}
}else {
this.isNeedBefore = true
this.unNeed = true
}
},
mounted() {
this.$refs.username.focus()
},
methods: {
...mapMutations({
setTipsOperate: 'system/setTipsOperate'
}),
onBlur() {
if(this.form.username) {
const { collectingCompany } = this.dataFlow
this.form.customerName = collectingCompany
}else {
this.form.customerName = ''
}
},
myTable: {
241: {
prop: 'customerName',
type: '3',
"subjectId": 7,
},
253: {
prop: 'voucherType',
type: '1',
"subjectId": 11,
},
533: {
prop: 'number',
type: '3',
"subjectId": 94,
},
537: {
prop: 'cost',
type: '3',
"subjectId": 96,
},
538: {
prop: 'chargeWay2',
type: '1',
"subjectId": 90,
},
539: {
prop: 'abstract',
type: '3',
"subjectId": 97,
},
getBlur() {
const number = Number(this.form.endNumber) - Number(this.form.startNumber)
if(number<0 || this.form.endNumber.length<this.form.startNumber.length) {
this.form.number = 0
return
}
this.form.number = number
540: {
prop: 'serviceCharge',
type: '3',
"subjectId": 98,
},
submitIt() {
},
rules: {
username: [
{
required: true,
message: '请输入账号',
trigger: 'blur'
}
],
startNumber: [
{
required: true,
message: '请输入凭证起始号',
trigger: 'blur'
}
],
endNumber: [
{
required: true,
message: '请输入凭证终止号',
trigger: 'blur'
}
],
},
submited: 0
}
},
created () {
// this.handleSelect(1)
if (this.inMyWork(moduleName)) {
if (this.needsModule(moduleName) === '') {
} else {
this.isNeedBefore = true
this.needBefore = this.needsModule(moduleName)
}
} else {
this.isNeedBefore = true
this.unNeed = true
}
},
mounted () {
this.$refs.username.focus()
},
methods: {
...mapMutations({
setTipsOperate: 'system/setTipsOperate'
}),
onBlur () {
if (this.form.username) {
const { collectingCompany } = this.dataFlow
this.form.customerName = collectingCompany
} else {
this.form.customerName = ''
}
if (this.submited) return this.$message.error('已提交!')
this.$refs.form.validate(myValidate(() => {
if(this.form.number <= 0) {
// this.$message({
// message: ',',
// type: 'warning',
// center: true
// });
this.setTipsOperate('结束号码应大于起始号码')
return
}
if(this.form.startNumber.length !== this.form.endNumber.length) {
this.setTipsOperate('凭证起始号和凭证终止号长度不同,请检查')
return
}
this.visible = true
}, this.$refs));
},
},
getBlur () {
const number = Number(this.form.endNumber) - Number(this.form.startNumber)
if (number < 0 || this.form.endNumber.length < this.form.startNumber.length) {
this.form.number = 0
return
}
this.form.number = number
},
submitIt () {
submitForm2() {
const parentId = '285,' + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ',287,5,31,520'
const cards = [
]
autoPlay(parentId, this.form, this.myTable2, this.myTable, cards)
this.submited = 1
},
checkHanzi: checkHanzi,
inputListen: inputListen,
ismoney: ismoney,
certificateNumber
if (this.submited) return this.$message.error('已提交!')
this.$refs.form.validate(myValidate(() => {
if (this.form.number <= 0) {
// this.$message({
// message: ',',
// type: 'warning',
// center: true
// });
this.setTipsOperate('结束号码应大于起始号码')
return
}
if (this.form.startNumber.length !== this.form.endNumber.length) {
this.setTipsOperate('凭证起始号和凭证终止号长度不同,请检查')
return
}
this.visible = true
}, this.$refs));
},
computed: {
...mapGetters({
needsModule: 'system/needsModule',
inMyWork: 'system/inMyWork',
dataFlow: 'system/dataFlow',
})
}
submitForm2 () {
const parentId = '285,' + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ',287,5,31,520'
const cards = [
]
autoPlay(parentId, this.form, this.myTable2, this.myTable, cards)
this.submited = 1
},
checkHanzi: checkHanzi,
inputListen: inputListen,
ismoney: ismoney,
certificateNumber
},
computed: {
...mapGetters({
needsModule: 'system/needsModule',
inMyWork: 'system/inMyWork',
dataFlow: 'system/dataFlow',
})
}
};
</script>
<style lang="scss" scoped>
// .submitBtn{
// position: relative;
// width: 200px;
// font-size: 18px;
// height: 45px;
// margin-top: 50px;
// border-radius: 10px;
// bottom: 10px;
// left: 50%;
// transform: translate(-50%,-20%);
// }
.el-input, .el-select {
width: 100%!important;
// .submitBtn{
// position: relative;
// width: 200px;
// font-size: 18px;
// height: 45px;
// margin-top: 50px;
// border-radius: 10px;
// bottom: 10px;
// left: 50%;
// transform: translate(-50%,-20%);
// }
.el-input,
.el-select {
width: 100% !important;
}
.wrap {
width: 100%;
display: flex;
flex-direction: column;
overflow: auto;
padding: 24px 0 24px 24px;
.nav {
/deep/ .el-menu.el-menu--horizontal {
border: 0;
}
.wrap{
width: 100%;
display: flex;
flex-direction: column;
overflow: auto;
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: 200px;
font-size: 18px;
height: 45px;
margin-top: 180px;
border-radius: 10px;
bottom: 10px;
left: 50%;
transform: translate(-50%,-20%);
}
/deep/ .el-menu--horizontal>.el-menu-item.is-active {
border: 2px solid #568DF2;
border-radius: 10px;
color: #000;
}
.el-select {
width: 279.17px;
/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: 200px;
font-size: 18px;
height: 45px;
margin-top: 180px;
border-radius: 10px;
bottom: 10px;
left: 50%;
transform: translate(-50%, -20%);
}
}
.el-select {
width: 279.17px;
}
</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,74 +1,77 @@
//
<template>
<div class="wrap wrap2">
<MyTitle :titleArr="['公司业务', text]"/>
<!-- 开户 -->
<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="2">
<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-form-item>
<el-form-item label="凭证号码" prop="certificateNum">
<el-input :value="form.certificateNum" maxlength="20" @input="(val) => checkHanzi(val, form, 'certificateNum')" ref="certificateNum"></el-input>
</el-form-item>
<el-form-item label="签发日期" prop="signDate">
<el-date-picker
v-model.trim="form.signDate"
disabled
type="date"
placeholder="选择日期"
ref="signDate">
</el-date-picker>
</el-form-item>
<el-form-item label="钞汇标识" prop="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-select>
</el-form-item>
<el-form-item label="转入账号" prop="transinNum">
<el-input :value="form.transinNum" maxlength="20" @input="(val) => checkHanzi(val, form, 'transinNum')" ref="transinNum"></el-input>
</el-form-item>
<el-form-item label="金额" prop="money">
<el-input :value="form.money" maxlength="15" @input="val => ismoney(val, form, 'money')"></el-input>
</el-form-item>
<div class="wrap wrap2">
<MyTitle :titleArr="['公司业务', text]" />
<!-- 开户 -->
<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="2">
<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-form-item>
<el-form-item label="凭证号码" prop="certificateNum">
<el-input :value="form.certificateNum" maxlength="20"
@input="(val) => checkHanzi(val, form, 'certificateNum')" ref="certificateNum"></el-input>
</el-form-item>
<el-form-item label="签发日期" prop="signDate">
<el-date-picker v-model.trim="form.signDate" disabled type="date" placeholder="选择日期" ref="signDate">
</el-date-picker>
</el-form-item>
<el-form-item label="钞汇标识" prop="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-select>
</el-form-item>
<el-form-item label="转入账号" prop="transinNum">
<el-input :value="form.transinNum" maxlength="20" @input="(val) => checkHanzi(val, form, 'transinNum')"
ref="transinNum"></el-input>
</el-form-item>
<el-form-item label="金额" prop="money">
<el-input :value="form.money" maxlength="15" @input="val => ismoney(val, form, 'money')"></el-input>
</el-form-item>
</el-col>
<el-col :span="10" :offset="1">
<el-form-item label="客户姓名" prop="customerName">
<el-input :value="form.customerName" maxlength="20" @input="(val) => checkName(val, form, 'customerName')" ref="customerName"></el-input>
</el-form-item>
<el-form-item label="凭证类型" prop="certificateType">
<el-select v-model.trim="form.certificateType" placeholder="请选择" ref="certificateType">
<el-option label="转账支票" :value="115"> </el-option>
<el-option label="现金支票" :value="116"> </el-option>
</el-select>
</el-form-item>
<el-form-item label="币种" prop="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-select>
</el-form-item>
<el-form-item label="支取方式" prop="payWay">
<el-select v-model.trim="form.payWay" disabled placeholder="请选择" ref="payWay">
<el-option label="印签" :value="114"> </el-option>
</el-select>
</el-form-item>
<el-form-item label="转入户名" prop="transinName">
<el-input :value="form.transinName" maxlength="40" @input="(val) => checkName(val, form, 'transinName')"></el-input>
</el-form-item>
<el-form-item label="摘要" prop="abstract">
<el-input v-model.trim="form.abstract" maxlength="60"></el-input>
</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" @submitIt="submitForm2" :needAuth="needAuth" />
</div>
</el-col>
<el-col :span="10" :offset="1">
<el-form-item label="客户姓名" prop="customerName">
<el-input :value="form.customerName" maxlength="20" @input="(val) => checkName(val, form, 'customerName')"
ref="customerName"></el-input>
</el-form-item>
<el-form-item label="凭证类型" prop="certificateType">
<el-select v-model.trim="form.certificateType" placeholder="请选择" ref="certificateType">
<el-option label="转账支票" :value="115"> </el-option>
<el-option label="现金支票" :value="116"> </el-option>
</el-select>
</el-form-item>
<el-form-item label="币种" prop="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-select>
</el-form-item>
<el-form-item label="支取方式" prop="payWay">
<el-select v-model.trim="form.payWay" disabled placeholder="请选择" ref="payWay">
<el-option label="印签" :value="114"> </el-option>
</el-select>
</el-form-item>
<el-form-item label="转入户名" prop="transinName">
<el-input :value="form.transinName" maxlength="40"
@input="(val) => checkName(val, form, 'transinName')"></el-input>
</el-form-item>
<el-form-item label="摘要" prop="abstract">
<el-input v-model.trim="form.abstract" maxlength="60"></el-input>
</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"
@submitIt="submitForm2" :needAuth="needAuth" />
</div>
<!-- <need-before v-else :moduleName='needBefore' :unNeed="unNeed" class="wrap" /> -->
</div>
<!-- <need-before v-else :moduleName='needBefore' :unNeed="unNeed" class="wrap" /> -->
</template>
<script>
@ -83,247 +86,248 @@ import { mapMutations, mapGetters } from 'vuex'
import NeedBefore from '@/components/needBefore'
import MyDialog from '@/components/dialog'
export default {
name: 'index',
components:{
MyTitle,
NeedBefore,
MyDialog
},
mixins: [ TipsBefore ],
data() {
return {
moduleName: 'business/transfer',
text:'转账',/* 顶部文字 */
visible: false,
form:{
//
transoutNum: '', //
certificateNum: '', //
customerName: '', //
transinNum: '', //
transinName: '', //
money: '', //
//
currencyType: '', //
currencyMark: '', //
certificateType: '', //
signDate: '', //
payWay: '', //
abstract: '', //
},
formName:{
//
transoutNum: '转出账号', //
certificateNum: '凭证号码', //
customerName: '客户姓名', //
transinNum: '转入账号', //
transinName: '转入户名', //
money: '金额', //
//
currencyType: '币种', //
currencyMark: '钞汇标识', //
certificateType: '凭证类型', //
signDate: '签发日期', //
payWay: '支取方式', //
abstract: '摘要', //
},
rules: {
customerName: vercustomer,
transoutNum: [
{
required: true,
message: '请输入转出账号',
trigger: 'blur'
}
],
certificateNum: [
{
required: true,
message: '请输入凭证号码',
trigger: 'blur'
}
],
transinNum: [
{
required: true,
message: '请输入转入账号',
trigger: 'blur'
}
],
transinName: [
{
required: true,
message: '请输入转入户名',
trigger: 'blur'
}
],
money: [
{
required: true,
message: '请输入金额',
trigger: 'blur'
}
],
name: 'index',
components: {
MyTitle,
NeedBefore,
MyDialog
},
mixins: [TipsBefore],
data () {
return {
moduleName: 'business/transfer',
text: '转账',/* 顶部文字 */
visible: false,
form: {
//
transoutNum: '', //
certificateNum: '', //
customerName: '', //
transinNum: '', //
transinName: '', //
money: '', //
//
currencyType: '', //
currencyMark: '', //
certificateType: '', //
signDate: '', //
payWay: '', //
abstract: '', //
},
formName: {
//
transoutNum: '转出账号', //
certificateNum: '凭证号码', //
customerName: '客户姓名', //
transinNum: '转入账号', //
transinName: '转入户名', //
money: '金额', //
//
currencyType: '币种', //
currencyMark: '钞汇标识', //
certificateType: '凭证类型', //
signDate: '签发日期', //
payWay: '支取方式', //
abstract: '摘要', //
},
rules: {
customerName: vercustomer,
transoutNum: [
{
required: true,
message: '请输入转出账号',
trigger: 'blur'
}
],
certificateNum: [
{
required: true,
message: '请输入凭证号码',
trigger: 'blur'
}
],
transinNum: [
{
required: true,
message: '请输入转入账号',
trigger: 'blur'
}
],
transinName: [
{
required: true,
message: '请输入转入户名',
trigger: 'blur'
}
],
money: [
{
required: true,
message: '请输入金额',
trigger: 'blur'
}
],
},
second:[//
},
second: [//
],
visible:false,
options:[],
activeIndex:'1',
myTable: {
257: {
prop: 'transoutNum',
type: '3',
"subjectId": 85,
},
258: {
prop: 'customerName',
type: '3',
"subjectId": 7,
},
259: {
prop: 'certificateNum',
type: '3',
"subjectId": 44,
},
265: {
prop: 'transinNum',
type: '3',
"subjectId": 86,
},
266: {
prop: 'transinName',
type: '3',
"subjectId": 87,
},
267: {
prop: 'money',
type: '3',
"subjectId": 14,
},
283: {
prop: 'abstract',
type: '3',
"subjectId": 16,
}
},
myTable2: {
260: {
prop: 'certificateType', // 1
type: '1',
"subjectId": 11,
},
261: {
prop: 'signDate',
type: '1',
"subjectId": 47,
},
262: {
prop: 'currencyType', // 1
type: '1',
"subjectId": 8,
},
263: {
prop: 'currencyMark', // 1
type: '1',
"subjectId": 9,
},
264: {
prop: 'payWay', // 1
type: '1',
"subjectId": 13,
}
},
submited: 0
}
},
created() {
if(this.isNeedBefore) {
return
],
visible: false,
options: [],
activeIndex: '1',
myTable: {
257: {
prop: 'transoutNum',
type: '3',
"subjectId": 85,
},
258: {
prop: 'customerName',
type: '3',
"subjectId": 7,
},
259: {
prop: 'certificateNum',
type: '3',
"subjectId": 44,
},
265: {
prop: 'transinNum',
type: '3',
"subjectId": 86,
},
266: {
prop: 'transinName',
type: '3',
"subjectId": 87,
},
267: {
prop: 'money',
type: '3',
"subjectId": 14,
},
283: {
prop: 'abstract',
type: '3',
"subjectId": 16,
}
this.getFormData()
},
mounted() {
},
methods: {
...mapMutations({
changeShowGoods: 'system/changeShowGoods',
setDataFlow: 'system/setDataFlow',
setNeedsModule: 'system/setNeedsModule',
setPopId: 'system/setPopId'
}),
getBlurData() {
// transoutNum: '', //
// certificateNum: '', //
// customerName: '', //
// transinNum: '', //
// transinName: '', //
// money: '', //
// //
// currencyType: 'CNY', //
// currencyMark: '', //
// certificateType: '', //
// signDate: '', //
// payWay: '', //
// abstract: '', //
if(this.form.transoutNum) {
const { currency } = this.dataFlow
this.form.currencyMark = 13
this.form.signDate = '2021-01-05'
this.form.certificateType = 115
this.form.currencyType = currency
this.form.payWay = 114
}
},
myTable2: {
260: {
prop: 'certificateType', // 1
type: '1',
"subjectId": 11,
},
getFormData(){
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)
261: {
prop: 'signDate',
type: '1',
"subjectId": 47,
},
submitForm() {
if (this.submited) return this.$message.error('已提交!')
this.$refs.form.validate(myValidate(() => {
this.visible = true;
}, this.$refs));
262: {
prop: 'currencyType', // 1
type: '1',
"subjectId": 8,
},
submitForm2() {
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)
console.log("🚀 ~ file: transfer.vue ~ line 291 ~ submitForm2 ~ parentId, this.form, this.myTable2, this.myTable", parentId, this.form, this.myTable2, this.myTable)
this.setNeedsModule(moduleName)
this.submited = 1
263: {
prop: 'currencyMark', // 1
type: '1',
"subjectId": 9,
},
ismoney: ismoney,
checkHanzi: checkHanzi,
checkName: checkName
},
computed: {
...mapGetters({
dataFlow: 'system/dataFlow',
needsModule: 'system/needsModule',
idCardNumber: 'system/idCardNumber',
inMyWork: 'system/inMyWork',
getSelectList: 'system/getSelectList'
}),
needAuth() {
return this.form.money >= 50000
264: {
prop: 'payWay', // 1
type: '1',
"subjectId": 13,
}
},
submited: 0
}
},
created () {
if (this.isNeedBefore) {
return
}
this.getFormData()
},
mounted () {
},
methods: {
...mapMutations({
changeShowGoods: 'system/changeShowGoods',
setDataFlow: 'system/setDataFlow',
setNeedsModule: 'system/setNeedsModule',
setPopId: 'system/setPopId'
}),
getBlurData () {
// transoutNum: '', //
// certificateNum: '', //
// customerName: '', //
// transinNum: '', //
// transinName: '', //
// money: '', //
// //
// currencyType: 'CNY', //
// currencyMark: '', //
// certificateType: '', //
// signDate: '', //
// payWay: '', //
// abstract: '', //
if (this.form.transoutNum) {
const { currency } = this.dataFlow
this.form.currencyMark = 13
this.form.signDate = '2021-01-05'
this.form.certificateType = 115
this.form.currencyType = currency
this.form.payWay = 114
}
},
getFormData () {
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)
},
submitForm () {
if (this.submited) return this.$message.error('已提交!')
this.$refs.form.validate(myValidate(() => {
this.visible = true;
}, this.$refs));
},
submitForm2 () {
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)
console.log("🚀 ~ file: transfer.vue ~ line 291 ~ submitForm2 ~ parentId, this.form, this.myTable2, this.myTable", parentId, this.form, this.myTable2, this.myTable)
this.setNeedsModule(moduleName)
this.submited = 1
},
ismoney: ismoney,
checkHanzi: checkHanzi,
checkName: checkName
},
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{
width: 100%;
display: flex;
flex-direction: column;
overflow: auto;
padding: 24px 0 24px 24px;
.body{
margin-top: 50px;
overflow-y: auto;
overflow-x: hidden;
}
}
.wrap {
width: 100%;
display: flex;
flex-direction: column;
overflow: auto;
padding: 24px 0 24px 24px;
.body {
margin-top: 50px;
overflow-y: auto;
overflow-x: hidden;
}
}
</style>

@ -1,90 +1,79 @@
//
<template>
<div class="wrap wrap2">
<MyTitle :titleArr="['客户信息', '个人客户信息建立']"/>
<div class="wrap wrap2">
<MyTitle :titleArr="['客户信息', '个人客户信息建立']" />
<div class="body">
<el-row :gutter="20">
<el-form ref="form" :model="form" label-width="140px" :rules="rules">
<el-col :span="10" :offset="1">
<el-form-item label="证件类型">
<el-select v-model.trim="form.idType" disabled placeholder="请选择" ref="idType">
<el-option
label="身份证"
:value="83">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="客户姓名" prop="userName">
<el-input ref="userName" disabled :value="form.userName" @input="(val) => checkName(val, form, 'userName')"></el-input>
</el-form-item>
<el-form-item label="出生日期" prop="birthday">
<el-date-picker
disabled
v-model.trim="form.birthday"
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="form.mailbox" @input="val => mailBoxListen(val, form, 'mailbox')" maxlength="30" ref="mailbox"></el-input>
</el-form-item>
</el-col>
<el-col :span="10" :offset="1">
<el-form-item label="证件号码" required>
<div class="idCard" @click="popUp('身份证扫描仪')" 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="sex">
<el-select v-model.trim="form.sex" disabled placeholder="请选择" ref='sex'>
<!-- <el-option
<div class="body">
<el-row :gutter="20">
<el-form ref="form" :model="form" label-width="140px" :rules="rules">
<el-col :span="10" :offset="1">
<el-form-item label="证件类型">
<el-select v-model.trim="form.idType" disabled placeholder="请选择" ref="idType">
<el-option label="身份证" :value="83">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="客户姓名" prop="userName">
<el-input ref="userName" disabled :value="form.userName"
@input="(val) => checkName(val, form, 'userName')"></el-input>
</el-form-item>
<el-form-item label="出生日期" prop="birthday">
<el-date-picker disabled v-model.trim="form.birthday" 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="form.mailbox" @input="val => mailBoxListen(val, form, 'mailbox')" maxlength="30"
ref="mailbox"></el-input>
</el-form-item>
</el-col>
<el-col :span="10" :offset="1">
<el-form-item label="证件号码" required>
<div class="idCard" @click="popUp('身份证扫描仪')" 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="sex">
<el-select v-model.trim="form.sex" disabled placeholder="请选择" ref='sex'>
<!-- <el-option
v-for="item in gender"
:key="item.id"
:label="item.name"
:value="item.id"
>
</el-option> -->
<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="联系电话" :rules="rules.phone" prop="phone">
<el-input :value="form.phone" @input="(val) => phoneListen(val, form, 'phone')" maxlength="12" ref='phone'></el-input>
</el-form-item>
</el-col>
</el-form>
</el-row>
<el-button @click="submitForm" type="primary" class="submitBtn" v-throttle>提交</el-button>
</div>
<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="联系电话" :rules="rules.phone" prop="phone">
<el-input :value="form.phone" @input="(val) => phoneListen(val, form, 'phone')" maxlength="12"
ref='phone'></el-input>
</el-form-item>
</el-col>
<my-dialog :moduleName="moduleName" v-if="visible" :visible.sync="visible" :showForm="form" :formName="formName" @submitIt="submitForm2()" />
</el-form>
</el-row>
<el-button @click="submitForm" type="primary" class="submitBtn" v-throttle>提交</el-button>
</div>
<!-- <need-before class='wrap' v-else :moduleName='needBefore' :unNeed="unNeed">
<my-dialog :moduleName="moduleName" v-if="visible" :visible.sync="visible" :showForm="form" :formName="formName"
@submitIt="submitForm2()" />
</div>
<!-- <need-before class='wrap' v-else :moduleName='needBefore' :unNeed="unNeed">
</need-before> -->
</template>
<script> // : consumerClient
<script>// : consumerClient
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 { mobPattern, namePattern, ratePattern, vercustomer } from '@/utils/verify.js'
import { phoneListen, mailBoxListen, checkRequired, randomPeopleNumber, myValidate, checkName, messageIdCard } from '@/utils/utilFunction.js'
import MyTitle from '@/components/myTitle'
@ -94,352 +83,352 @@ import NeedBefore from '@/components/needBefore'
const moduleName = 'consumerClient'
export default {
name: 'consumerClient',
data() {
return {
moduleName: 'consumerClient',
idNumberJudge: false,
visible:false,//
form:{
idType:83,//
idNumber:'',//
userName:'',//
sex:'',//
birthday:null,//
nationality:'',//
mailbox:'',//
phone:'',//
peopleNumber: '',
},
formName: {
idType: '证件类型',
idNumber:'证件号码',
userName:'客户名字',
sex:'性别',
birthday:'出生日期',
nationality:'民族',
mailbox:'通讯地址',
phone:'联系电话',
peopleNumber: '客户号'
},
rules: {
userName: vercustomer ,
phone: [
{
required: true,
message: '请输入联系电话',
trigger: 'blur'
},
{
pattern: mobPattern,
message: '联系电话格式有误'
}
],
birthday: [
{
required: true,
message: '请选择出生日期',
trigger: 'blur'
}
],
name: 'consumerClient',
data () {
return {
moduleName: 'consumerClient',
idNumberJudge: false,
visible: false,//
form: {
idType: 83,//
idNumber: '',//
userName: '',//
sex: '',//
birthday: null,//
nationality: '',//
mailbox: '',//
phone: '',//
peopleNumber: '',
},
formName: {
idType: '证件类型',
idNumber: '证件号码',
userName: '客户名字',
sex: '性别',
birthday: '出生日期',
nationality: '民族',
mailbox: '通讯地址',
phone: '联系电话',
peopleNumber: '客户号'
},
rules: {
userName: vercustomer,
phone: [
{
required: true,
message: '请输入联系电话',
trigger: 'blur'
},
{
pattern: mobPattern,
message: '联系电话格式有误'
}
],
birthday: [
{
required: true,
message: '请选择出生日期',
trigger: 'blur'
}
],
},
},
authorization:false,//
success:false,//
papers:[
{name:'身份证',id:1}
],
options:[],
gender:[
{name:'男',id:1},
{name:'女',id:2},
],
nations : [
{ "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": 26, "description": "回族", "options": "回族", "subjectId": 3, "isDel": 0, "createTime": "2021-12-20 12:00:45", "updateTime": "2021-12-20 12:00:45" },
{ "itemId": 27, "description": "藏族", "options": "藏族", "subjectId": 3, "isDel": 0, "createTime": "2021-12-20 12:00:45", "updateTime": "2021-12-20 12:00:45" },
{ "itemId": 28, "description": "维吾尔族", "options": "维吾尔族", "subjectId": 3, "isDel": 0, "createTime": "2021-12-20 12:00:45", "updateTime": "2021-12-20 12:00:45" },
{ "itemId": 29, "description": "苗族", "options": "苗族", "subjectId": 3, "isDel": 0, "createTime": "2021-12-20 12:00:45", "updateTime": "2021-12-20 12:00:45" },
{ "itemId": 30, "description": "彝族", "options": "彝族", "subjectId": 3, "isDel": 0, "createTime": "2021-12-20 12:00:45", "updateTime": "2021-12-20 12:00:45" },
{ "itemId": 31, "description": "壮族", "options": "壮族", "subjectId": 3, "isDel": 0, "createTime": "2021-12-20 12:00:45", "updateTime": "2021-12-20 12:00:45" },
{ "itemId": 32, "description": "布依族", "options": "布依族", "subjectId": 3, "isDel": 0, "createTime": "2021-12-20 12:00:45", "updateTime": "2021-12-20 12:00:45" },
{ "itemId": 33, "description": "朝鲜族", "options": "朝鲜族", "subjectId": 3, "isDel": 0, "createTime": "2021-12-20 12:00:45", "updateTime": "2021-12-20 12:00:45" },
{ "itemId": 34, "description": "满族", "options": "满族", "subjectId": 3, "isDel": 0, "createTime": "2021-12-20 12:00:45", "updateTime": "2021-12-20 12:00:45" },
{ "itemId": 35, "description": "侗族", "options": "侗族", "subjectId": 3, "isDel": 0, "createTime": "2021-12-20 12:00:45", "updateTime": "2021-12-20 12:00:45" },
{ "itemId": 36, "description": "瑶族", "options": "瑶族", "subjectId": 3, "isDel": 0, "createTime": "2021-12-20 12:00:45", "updateTime": "2021-12-20 12:00:45" },
{ "itemId": 37, "description": "白族", "options": "白族", "subjectId": 3, "isDel": 0, "createTime": "2021-12-20 12:00:45", "updateTime": "2021-12-20 12:00:45" },
{ "itemId": 38, "description": "土家族", "options": "土家族", "subjectId": 3, "isDel": 0, "createTime": "2021-12-20 12:00:45", "updateTime": "2021-12-20 12:00:45" },
{ "itemId": 39, "description": "哈尼族", "options": "哈尼族", "subjectId": 3, "isDel": 0, "createTime": "2021-12-20 12:00:45", "updateTime": "2021-12-20 12:00:45" },
{ "itemId": 40, "description": "哈萨克族", "options": "哈萨克族", "subjectId": 3, "isDel": 0, "createTime": "2021-12-20 12:00:45", "updateTime": "2021-12-20 12:00:45" },
{ "itemId": 41, "description": "傣族", "options": "傣族", "subjectId": 3, "isDel": 0, "createTime": "2021-12-20 12:00:45", "updateTime": "2021-12-20 12:00:45" },
{ "itemId": 42, "description": "黎族", "options": "黎族", "subjectId": 3, "isDel": 0, "createTime": "2021-12-20 12:00:45", "updateTime": "2021-12-20 12:00:45" },
{ "itemId": 43, "description": "傈僳族", "options": "傈僳族", "subjectId": 3, "isDel": 0, "createTime": "2021-12-20 12:00:45", "updateTime": "2021-12-20 12:00:45" },
{ "itemId": 44, "description": "佤族", "options": "佤族", "subjectId": 3, "isDel": 0, "createTime": "2021-12-20 12:00:45", "updateTime": "2021-12-20 12:00:45" },
{ "itemId": 45, "description": "畲族", "options": "畲族", "subjectId": 3, "isDel": 0, "createTime": "2021-12-20 12:00:45", "updateTime": "2021-12-20 12:00:45" },
{ "itemId": 46, "description": "高山族", "options": "高山族", "subjectId": 3, "isDel": 0, "createTime": "2021-12-20 12:00:45", "updateTime": "2021-12-20 12:00:45" },
{ "itemId": 47, "description": "拉祜族", "options": "拉祜族", "subjectId": 3, "isDel": 0, "createTime": "2021-12-20 12:00:45", "updateTime": "2021-12-20 12:00:45" },
{ "itemId": 48, "description": "水族", "options": "水族", "subjectId": 3, "isDel": 0, "createTime": "2021-12-20 12:00:45", "updateTime": "2021-12-20 12:00:45" },
{ "itemId": 49, "description": "东乡族", "options": "东乡族", "subjectId": 3, "isDel": 0, "createTime": "2021-12-20 12:00:45", "updateTime": "2021-12-20 12:00:45" },
{ "itemId": 50, "description": "纳西族", "options": "纳西族", "subjectId": 3, "isDel": 0, "createTime": "2021-12-20 12:00:45", "updateTime": "2021-12-20 12:00:45" },
{ "itemId": 51, "description": "景颇族", "options": "景颇族", "subjectId": 3, "isDel": 0, "createTime": "2021-12-20 12:00:45", "updateTime": "2021-12-20 12:00:45" },
{ "itemId": 52, "description": "柯尔克孜族", "options": "柯尔克孜族", "subjectId": 3, "isDel": 0, "createTime": "2021-12-20 12:00:45", "updateTime": "2021-12-20 12:00:45" },
{ "itemId": 53, "description": "土族", "options": "土族", "subjectId": 3, "isDel": 0, "createTime": "2021-12-20 12:00:45", "updateTime": "2021-12-20 12:00:45" },
{ "itemId": 54, "description": "达斡尔族", "options": "达斡尔族", "subjectId": 3, "isDel": 0, "createTime": "2021-12-20 12:00:45", "updateTime": "2021-12-20 12:00:45" },
{ "itemId": 55, "description": "仫佬族", "options": "仫佬族", "subjectId": 3, "isDel": 0, "createTime": "2021-12-20 12:00:45", "updateTime": "2021-12-20 12:00:45" },
{ "itemId": 56, "description": "羌族", "options": "羌族", "subjectId": 3, "isDel": 0, "createTime": "2021-12-20 12:00:45", "updateTime": "2021-12-20 12:00:45" },
{ "itemId": 57, "description": " 布朗族", "options": " 布朗族", "subjectId": 3, "isDel": 0, "createTime": "2021-12-20 12:00:45", "updateTime": "2021-12-20 12:00:45" },
{ "itemId": 58, "description": " 撒拉族", "options": " 撒拉族", "subjectId": 3, "isDel": 0, "createTime": "2021-12-20 12:00:45", "updateTime": "2021-12-20 12:00:45" },
{ "itemId": 59, "description": " 毛难族", "options": " 毛难族", "subjectId": 3, "isDel": 0, "createTime": "2021-12-20 12:00:45", "updateTime": "2021-12-20 12:00:45" },
{ "itemId": 60, "description": " 仡佬族", "options": " 仡佬族", "subjectId": 3, "isDel": 0, "createTime": "2021-12-20 12:00:45", "updateTime": "2021-12-20 12:00:45" },
{ "itemId": 61, "description": " 锡伯族", "options": " 锡伯族", "subjectId": 3, "isDel": 0, "createTime": "2021-12-20 12:00:46", "updateTime": "2021-12-20 12:00:46" },
{ "itemId": 62, "description": " 阿昌族", "options": " 阿昌族", "subjectId": 3, "isDel": 0, "createTime": "2021-12-20 12:00:46", "updateTime": "2021-12-20 12:00:46" },
{ "itemId": 63, "description": " 普米族", "options": " 普米族", "subjectId": 3, "isDel": 0, "createTime": "2021-12-20 12:00:46", "updateTime": "2021-12-20 12:00:46" },
{ "itemId": 64, "description": " 塔吉克族", "options": " 塔吉克族", "subjectId": 3, "isDel": 0, "createTime": "2021-12-20 12:00:46", "updateTime": "2021-12-20 12:00:46" },
{ "itemId": 65, "description": " 怒族", "options": " 怒族", "subjectId": 3, "isDel": 0, "createTime": "2021-12-20 12:00:46", "updateTime": "2021-12-20 12:00:46" },
{ "itemId": 66, "description": " 乌孜别克族", "options": " 乌孜别克族", "subjectId": 3, "isDel": 0, "createTime": "2021-12-20 12:00:46", "updateTime": "2021-12-20 12:00:46" },
{ "itemId": 67, "description": " 俄罗斯族", "options": " 俄罗斯族", "subjectId": 3, "isDel": 0, "createTime": "2021-12-20 12:00:46", "updateTime": "2021-12-20 12:00:46" },
{ "itemId": 68, "description": " 鄂温克族", "options": " 鄂温克族", "subjectId": 3, "isDel": 0, "createTime": "2021-12-20 12:00:46", "updateTime": "2021-12-20 12:00:46" },
{ "itemId": 69, "description": " 崩龙族", "options": " 崩龙族", "subjectId": 3, "isDel": 0, "createTime": "2021-12-20 12:00:46", "updateTime": "2021-12-20 12:00:46" },
{ "itemId": 70, "description": " 保安族", "options": " 保安族", "subjectId": 3, "isDel": 0, "createTime": "2021-12-20 12:00:46", "updateTime": "2021-12-20 12:00:46" },
{ "itemId": 71, "description": " 裕固族", "options": " 裕固族", "subjectId": 3, "isDel": 0, "createTime": "2021-12-20 12:00:46", "updateTime": "2021-12-20 12:00:46" },
{ "itemId": 72, "description": " 京族", "options": " 京族", "subjectId": 3, "isDel": 0, "createTime": "2021-12-20 12:00:46", "updateTime": "2021-12-20 12:00:46" },
{ "itemId": 73, "description": " 塔塔尔族", "options": " 塔塔尔族", "subjectId": 3, "isDel": 0, "createTime": "2021-12-20 12:00:46", "updateTime": "2021-12-20 12:00:46" },
{ "itemId": 74, "description": " 独龙族", "options": " 独龙族", "subjectId": 3, "isDel": 0, "createTime": "2021-12-20 12:00:46", "updateTime": "2021-12-20 12:00:46" },
{ "itemId": 75, "description": " 鄂伦春族", "options": " 鄂伦春族", "subjectId": 3, "isDel": 0, "createTime": "2021-12-20 12:00:46", "updateTime": "2021-12-20 12:00:46" },
{ "itemId": 76, "description": " 赫哲族", "options": " 赫哲族", "subjectId": 3, "isDel": 0, "createTime": "2021-12-20 12:00:46", "updateTime": "2021-12-20 12:00:46" },
{ "itemId": 77, "description": " 门巴族", "options": " 门巴族", "subjectId": 3, "isDel": 0, "createTime": "2021-12-20 12:00:46", "updateTime": "2021-12-20 12:00:46" },
{ "itemId": 78, "description": " 珞巴族", "options": " 珞巴族", "subjectId": 3, "isDel": 0, "createTime": "2021-12-20 12:00:46", "updateTime": "2021-12-20 12:00:46" },
{ "itemId": 79, "description": " 基诺族", "options": " 基诺族", "subjectId": 3, "isDel": 0, "createTime": "2021-12-20 12:00:46", "updateTime": "2021-12-20 12:00:46" },
{ "itemId": 80, "description": " 其他", "options": " 其他", "subjectId": 3, "isDel": 0, "createTime": "2021-12-20 12:00:46", "updateTime": "2021-12-20 12:00:46" }
],
submited: 0
}
},
components: {
MyTitle,
MyDialog,
NeedBefore
},
created() {
// if(this.isNeedBefore) {
// return
// }
if(sessionStorage.getItem('nomClientIdentity')) {
this.idNumberJudge = true
const { userName, sex, birthday, nationality, mailbox, idNumber } = this.dataFlow
this.form.idNumber = idNumber
this.form.idType = 83
this.form.userName = userName
// let sexs = null
// if (sex == ''){
// sexs = 1
// }else{
// sexs = 2
// }
this.form.sex = sex
this.form.birthday = birthday
// this.form.nationality = nationality
// this.form.mailbox = mailbox
}
this.getFormData()
authorization: false,//
success: false,//
papers: [
{ name: '身份证', id: 1 }
],
options: [],
gender: [
{ name: '男', id: 1 },
{ name: '女', id: 2 },
],
nations: [
{ "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": 26, "description": "回族", "options": "回族", "subjectId": 3, "isDel": 0, "createTime": "2021-12-20 12:00:45", "updateTime": "2021-12-20 12:00:45" },
{ "itemId": 27, "description": "藏族", "options": "藏族", "subjectId": 3, "isDel": 0, "createTime": "2021-12-20 12:00:45", "updateTime": "2021-12-20 12:00:45" },
{ "itemId": 28, "description": "维吾尔族", "options": "维吾尔族", "subjectId": 3, "isDel": 0, "createTime": "2021-12-20 12:00:45", "updateTime": "2021-12-20 12:00:45" },
{ "itemId": 29, "description": "苗族", "options": "苗族", "subjectId": 3, "isDel": 0, "createTime": "2021-12-20 12:00:45", "updateTime": "2021-12-20 12:00:45" },
{ "itemId": 30, "description": "彝族", "options": "彝族", "subjectId": 3, "isDel": 0, "createTime": "2021-12-20 12:00:45", "updateTime": "2021-12-20 12:00:45" },
{ "itemId": 31, "description": "壮族", "options": "壮族", "subjectId": 3, "isDel": 0, "createTime": "2021-12-20 12:00:45", "updateTime": "2021-12-20 12:00:45" },
{ "itemId": 32, "description": "布依族", "options": "布依族", "subjectId": 3, "isDel": 0, "createTime": "2021-12-20 12:00:45", "updateTime": "2021-12-20 12:00:45" },
{ "itemId": 33, "description": "朝鲜族", "options": "朝鲜族", "subjectId": 3, "isDel": 0, "createTime": "2021-12-20 12:00:45", "updateTime": "2021-12-20 12:00:45" },
{ "itemId": 34, "description": "满族", "options": "满族", "subjectId": 3, "isDel": 0, "createTime": "2021-12-20 12:00:45", "updateTime": "2021-12-20 12:00:45" },
{ "itemId": 35, "description": "侗族", "options": "侗族", "subjectId": 3, "isDel": 0, "createTime": "2021-12-20 12:00:45", "updateTime": "2021-12-20 12:00:45" },
{ "itemId": 36, "description": "瑶族", "options": "瑶族", "subjectId": 3, "isDel": 0, "createTime": "2021-12-20 12:00:45", "updateTime": "2021-12-20 12:00:45" },
{ "itemId": 37, "description": "白族", "options": "白族", "subjectId": 3, "isDel": 0, "createTime": "2021-12-20 12:00:45", "updateTime": "2021-12-20 12:00:45" },
{ "itemId": 38, "description": "土家族", "options": "土家族", "subjectId": 3, "isDel": 0, "createTime": "2021-12-20 12:00:45", "updateTime": "2021-12-20 12:00:45" },
{ "itemId": 39, "description": "哈尼族", "options": "哈尼族", "subjectId": 3, "isDel": 0, "createTime": "2021-12-20 12:00:45", "updateTime": "2021-12-20 12:00:45" },
{ "itemId": 40, "description": "哈萨克族", "options": "哈萨克族", "subjectId": 3, "isDel": 0, "createTime": "2021-12-20 12:00:45", "updateTime": "2021-12-20 12:00:45" },
{ "itemId": 41, "description": "傣族", "options": "傣族", "subjectId": 3, "isDel": 0, "createTime": "2021-12-20 12:00:45", "updateTime": "2021-12-20 12:00:45" },
{ "itemId": 42, "description": "黎族", "options": "黎族", "subjectId": 3, "isDel": 0, "createTime": "2021-12-20 12:00:45", "updateTime": "2021-12-20 12:00:45" },
{ "itemId": 43, "description": "傈僳族", "options": "傈僳族", "subjectId": 3, "isDel": 0, "createTime": "2021-12-20 12:00:45", "updateTime": "2021-12-20 12:00:45" },
{ "itemId": 44, "description": "佤族", "options": "佤族", "subjectId": 3, "isDel": 0, "createTime": "2021-12-20 12:00:45", "updateTime": "2021-12-20 12:00:45" },
{ "itemId": 45, "description": "畲族", "options": "畲族", "subjectId": 3, "isDel": 0, "createTime": "2021-12-20 12:00:45", "updateTime": "2021-12-20 12:00:45" },
{ "itemId": 46, "description": "高山族", "options": "高山族", "subjectId": 3, "isDel": 0, "createTime": "2021-12-20 12:00:45", "updateTime": "2021-12-20 12:00:45" },
{ "itemId": 47, "description": "拉祜族", "options": "拉祜族", "subjectId": 3, "isDel": 0, "createTime": "2021-12-20 12:00:45", "updateTime": "2021-12-20 12:00:45" },
{ "itemId": 48, "description": "水族", "options": "水族", "subjectId": 3, "isDel": 0, "createTime": "2021-12-20 12:00:45", "updateTime": "2021-12-20 12:00:45" },
{ "itemId": 49, "description": "东乡族", "options": "东乡族", "subjectId": 3, "isDel": 0, "createTime": "2021-12-20 12:00:45", "updateTime": "2021-12-20 12:00:45" },
{ "itemId": 50, "description": "纳西族", "options": "纳西族", "subjectId": 3, "isDel": 0, "createTime": "2021-12-20 12:00:45", "updateTime": "2021-12-20 12:00:45" },
{ "itemId": 51, "description": "景颇族", "options": "景颇族", "subjectId": 3, "isDel": 0, "createTime": "2021-12-20 12:00:45", "updateTime": "2021-12-20 12:00:45" },
{ "itemId": 52, "description": "柯尔克孜族", "options": "柯尔克孜族", "subjectId": 3, "isDel": 0, "createTime": "2021-12-20 12:00:45", "updateTime": "2021-12-20 12:00:45" },
{ "itemId": 53, "description": "土族", "options": "土族", "subjectId": 3, "isDel": 0, "createTime": "2021-12-20 12:00:45", "updateTime": "2021-12-20 12:00:45" },
{ "itemId": 54, "description": "达斡尔族", "options": "达斡尔族", "subjectId": 3, "isDel": 0, "createTime": "2021-12-20 12:00:45", "updateTime": "2021-12-20 12:00:45" },
{ "itemId": 55, "description": "仫佬族", "options": "仫佬族", "subjectId": 3, "isDel": 0, "createTime": "2021-12-20 12:00:45", "updateTime": "2021-12-20 12:00:45" },
{ "itemId": 56, "description": "羌族", "options": "羌族", "subjectId": 3, "isDel": 0, "createTime": "2021-12-20 12:00:45", "updateTime": "2021-12-20 12:00:45" },
{ "itemId": 57, "description": " 布朗族", "options": " 布朗族", "subjectId": 3, "isDel": 0, "createTime": "2021-12-20 12:00:45", "updateTime": "2021-12-20 12:00:45" },
{ "itemId": 58, "description": " 撒拉族", "options": " 撒拉族", "subjectId": 3, "isDel": 0, "createTime": "2021-12-20 12:00:45", "updateTime": "2021-12-20 12:00:45" },
{ "itemId": 59, "description": " 毛难族", "options": " 毛难族", "subjectId": 3, "isDel": 0, "createTime": "2021-12-20 12:00:45", "updateTime": "2021-12-20 12:00:45" },
{ "itemId": 60, "description": " 仡佬族", "options": " 仡佬族", "subjectId": 3, "isDel": 0, "createTime": "2021-12-20 12:00:45", "updateTime": "2021-12-20 12:00:45" },
{ "itemId": 61, "description": " 锡伯族", "options": " 锡伯族", "subjectId": 3, "isDel": 0, "createTime": "2021-12-20 12:00:46", "updateTime": "2021-12-20 12:00:46" },
{ "itemId": 62, "description": " 阿昌族", "options": " 阿昌族", "subjectId": 3, "isDel": 0, "createTime": "2021-12-20 12:00:46", "updateTime": "2021-12-20 12:00:46" },
{ "itemId": 63, "description": " 普米族", "options": " 普米族", "subjectId": 3, "isDel": 0, "createTime": "2021-12-20 12:00:46", "updateTime": "2021-12-20 12:00:46" },
{ "itemId": 64, "description": " 塔吉克族", "options": " 塔吉克族", "subjectId": 3, "isDel": 0, "createTime": "2021-12-20 12:00:46", "updateTime": "2021-12-20 12:00:46" },
{ "itemId": 65, "description": " 怒族", "options": " 怒族", "subjectId": 3, "isDel": 0, "createTime": "2021-12-20 12:00:46", "updateTime": "2021-12-20 12:00:46" },
{ "itemId": 66, "description": " 乌孜别克族", "options": " 乌孜别克族", "subjectId": 3, "isDel": 0, "createTime": "2021-12-20 12:00:46", "updateTime": "2021-12-20 12:00:46" },
{ "itemId": 67, "description": " 俄罗斯族", "options": " 俄罗斯族", "subjectId": 3, "isDel": 0, "createTime": "2021-12-20 12:00:46", "updateTime": "2021-12-20 12:00:46" },
{ "itemId": 68, "description": " 鄂温克族", "options": " 鄂温克族", "subjectId": 3, "isDel": 0, "createTime": "2021-12-20 12:00:46", "updateTime": "2021-12-20 12:00:46" },
{ "itemId": 69, "description": " 崩龙族", "options": " 崩龙族", "subjectId": 3, "isDel": 0, "createTime": "2021-12-20 12:00:46", "updateTime": "2021-12-20 12:00:46" },
{ "itemId": 70, "description": " 保安族", "options": " 保安族", "subjectId": 3, "isDel": 0, "createTime": "2021-12-20 12:00:46", "updateTime": "2021-12-20 12:00:46" },
{ "itemId": 71, "description": " 裕固族", "options": " 裕固族", "subjectId": 3, "isDel": 0, "createTime": "2021-12-20 12:00:46", "updateTime": "2021-12-20 12:00:46" },
{ "itemId": 72, "description": " 京族", "options": " 京族", "subjectId": 3, "isDel": 0, "createTime": "2021-12-20 12:00:46", "updateTime": "2021-12-20 12:00:46" },
{ "itemId": 73, "description": " 塔塔尔族", "options": " 塔塔尔族", "subjectId": 3, "isDel": 0, "createTime": "2021-12-20 12:00:46", "updateTime": "2021-12-20 12:00:46" },
{ "itemId": 74, "description": " 独龙族", "options": " 独龙族", "subjectId": 3, "isDel": 0, "createTime": "2021-12-20 12:00:46", "updateTime": "2021-12-20 12:00:46" },
{ "itemId": 75, "description": " 鄂伦春族", "options": " 鄂伦春族", "subjectId": 3, "isDel": 0, "createTime": "2021-12-20 12:00:46", "updateTime": "2021-12-20 12:00:46" },
{ "itemId": 76, "description": " 赫哲族", "options": " 赫哲族", "subjectId": 3, "isDel": 0, "createTime": "2021-12-20 12:00:46", "updateTime": "2021-12-20 12:00:46" },
{ "itemId": 77, "description": " 门巴族", "options": " 门巴族", "subjectId": 3, "isDel": 0, "createTime": "2021-12-20 12:00:46", "updateTime": "2021-12-20 12:00:46" },
{ "itemId": 78, "description": " 珞巴族", "options": " 珞巴族", "subjectId": 3, "isDel": 0, "createTime": "2021-12-20 12:00:46", "updateTime": "2021-12-20 12:00:46" },
{ "itemId": 79, "description": " 基诺族", "options": " 基诺族", "subjectId": 3, "isDel": 0, "createTime": "2021-12-20 12:00:46", "updateTime": "2021-12-20 12:00:46" },
{ "itemId": 80, "description": " 其他", "options": " 其他", "subjectId": 3, "isDel": 0, "createTime": "2021-12-20 12:00:46", "updateTime": "2021-12-20 12:00:46" }
],
submited: 0
}
},
components: {
MyTitle,
MyDialog,
NeedBefore
},
created () {
// if(this.isNeedBefore) {
// return
// }
if (sessionStorage.getItem('nomClientIdentity')) {
this.idNumberJudge = true
const { userName, sex, birthday, nationality, mailbox, idNumber } = this.dataFlow
this.form.idNumber = idNumber
this.form.idType = 83
this.form.userName = userName
// let sexs = null
// if (sex == ''){
// sexs = 1
// }else{
// sexs = 2
// }
this.form.sex = sex
this.form.birthday = birthday
// this.form.nationality = nationality
// this.form.mailbox = mailbox
}
this.getFormData()
},
mixins: [ TipsBefore ],
mounted() {
},
methods: {
//
submitIt() {
},
mixins: [TipsBefore],
mounted () {
},
methods: {
//
submitIt () {
// this.setDataFlow({name: 'userName', val: ''})
// console.log(this.dataFlow)
},
getFormData(){
let param= {
parentId: '285,' + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ',287,5,25,33'
// this.setDataFlow({name: 'userName', val: ''})
// console.log(this.dataFlow)
},
getFormData () {
let param = {
parentId: '285,' + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ',287,5,25,33'
}
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
}
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
}
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 == '44') {this.form.birthday = 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 == '47') {this.form.phone = 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 == '44') { this.form.birthday = 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 == '47') { this.form.phone = list[i].emptyTwo }
}
}
// const tt1 = JSON.parse(sessionStorage.getItem('tt1'))
// console.log('1-tt1')
// console.log(tt1)
// if(tt1) {
// for(const key in tt1) {
// this.form[tt1] = tt1[key]
// }
// }
}).catch((error)=>{
// const tt1 = JSON.parse(sessionStorage.getItem('tt1'))
// console.log('2-tt1')
// console.log(tt1)
// if(tt1) {
// for(const key in tt1) {
// this.form[key] = tt1[key]
// }
// }
// if(sessionStorage.getItem('tt1')) {
// this.form = {...sessionStorage.getItem('tt1')}
// }
})
}
// const tt1 = JSON.parse(sessionStorage.getItem('tt1'))
// console.log('1-tt1')
// console.log(tt1)
// if(tt1) {
// for(const key in tt1) {
// this.form[tt1] = tt1[key]
// }
// }
}).catch((error) => {
// const tt1 = JSON.parse(sessionStorage.getItem('tt1'))
// console.log('2-tt1')
// console.log(tt1)
// if(tt1) {
// for(const key in tt1) {
// this.form[key] = tt1[key]
// }
// }
// if(sessionStorage.getItem('tt1')) {
// this.form = {...sessionStorage.getItem('tt1')}
// }
})
},
...mapMutations({
changeShowGoods: 'system/changeShowGoods',
setDataFlow: 'system/setDataFlow',
setNeedsModule: 'system/setNeedsModule',
setPopId: 'system/setPopId',
setTipsOperate: 'system/setTipsOperate'
}),
popUp(){//
// this.$store.commit('system/changePop',{show:true,text:'',id:'33'})
// this.changeShowGoods(true)
// this.$store.commit('system/changePop',{show: false, text: '', id:'33'})
},
...mapMutations({
changeShowGoods: 'system/changeShowGoods',
setDataFlow: 'system/setDataFlow',
setNeedsModule: 'system/setNeedsModule',
setPopId: 'system/setPopId',
setTipsOperate: 'system/setTipsOperate'
}),
popUp () {//
// this.$store.commit('system/changePop',{show:true,text:'',id:'33'})
// this.changeShowGoods(true)
// this.$store.commit('system/changePop',{show: false, text: '', id:'33'})
this.setTipsOperate('请刷身份证');
this.setPopId('33')
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
}
this.$refs.form.validate(myValidate(() => {
// this.form.birthday = this.form.birthday.slice(0, 10)
this.form.peopleNumber = randomPeopleNumber()
this.visible = true;
} , this.$refs));
},
submitForm2() {
let nomClientIdentity = sessionStorage.getItem('nomClientIdentity')
let consumerClientDragList = JSON.parse(nomClientIdentity);
let projectId = sessionStorage.getItem('projectId')
let startTime = sessionStorage.getItem('startTime')
this.setTipsOperate('请刷身份证');
this.setPopId('33')
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
}
this.$refs.form.validate(myValidate(() => {
// this.form.birthday = this.form.birthday.slice(0, 10)
this.form.peopleNumber = randomPeopleNumber()
this.visible = true;
}, this.$refs));
},
submitForm2 () {
let nomClientIdentity = sessionStorage.getItem('nomClientIdentity')
let consumerClientDragList = JSON.parse(nomClientIdentity);
let projectId = sessionStorage.getItem('projectId')
let startTime = sessionStorage.getItem('startTime')
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": ""})
if(this.form.sex){
formList.push({
"answerId":'43',
"emptyOne": "1",
"emptyTwo": this.form.sex,
"operationIds": "285," + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id +",287,5,25,33,43",//
"type": "1"
})
}
if(this.form.nationality){
formList.push({
"answerId":'45',
"emptyOne": "3",
"emptyTwo": this.form.nationality,
"operationIds": "285," + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id +",287,5,25,33,45",//
"type": "1"
})
}
if(this.form.mailbox){
formList.push({
"answerId":'46',
"emptyOne": "4",
"emptyTwo": this.form.mailbox,
"operationIds": "285," + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id +",287,5,25,33,46",//
"type": "3"
})
}
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":'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":'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= {
parentId: '285,' + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ',287,5,25,33',
lcJudgmentRuleReq:formList,
projectId:+projectId,
startTime:startTime,
}
addOperation(params).then((data)=>{
// this.$message({
// message: '',
// type: 'success'
// });
this.setNeedsModule(moduleName)
this.setDataFlow({ ...this.form })
this.submited = 1
}).catch((error)=>{
this.setTipsOperate('服务器繁忙哦,提交失败。')
})
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) {
formList.push({
"answerId": '43',
"emptyOne": "1",
"emptyTwo": this.form.sex,
"operationIds": "285," + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ",287,5,25,33,43",//
"type": "1"
})
}
if (this.form.nationality) {
formList.push({
"answerId": '45',
"emptyOne": "3",
"emptyTwo": this.form.nationality,
"operationIds": "285," + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ",287,5,25,33,45",//
"type": "1"
})
}
if (this.form.mailbox) {
formList.push({
"answerId": '46',
"emptyOne": "4",
"emptyTwo": this.form.mailbox,
"operationIds": "285," + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ",287,5,25,33,46",//
"type": "3"
})
}
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": '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": '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 = {
parentId: '285,' + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ',287,5,25,33',
lcJudgmentRuleReq: formList,
projectId: +projectId,
startTime: startTime,
}
addOperation(params).then((data) => {
// this.$message({
// message: '',
// type: 'success'
// });
this.setNeedsModule(moduleName)
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)
}
}
},
phoneListen: phoneListen,
mailBoxListen: mailBoxListen,
checkName: checkName
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)
}
}
},
computed: {
...mapGetters({
dataFlow: 'system/dataFlow',
inMyWork: 'system/inMyWork',
needsModule: 'system/needsModule',
popId: 'system/popId'
})
}
phoneListen: phoneListen,
mailBoxListen: mailBoxListen,
checkName: checkName
},
computed: {
...mapGetters({
dataFlow: 'system/dataFlow',
inMyWork: 'system/inMyWork',
needsModule: 'system/needsModule',
popId: 'system/popId'
})
}
};
</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;
}
}
.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>

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

@ -1,195 +1,203 @@
//
<template>
<!-- 账户服务 -->
<div class="wrap">
<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>
<div class="title">
<p>个人业务</p>
<i class="el-icon-arrow-right"></i>
<p>活期业务</p>
<i class="el-icon-arrow-right"></i>
<p>{{text}}</p>
</div>
<!-- 修改密码 -->
<change-password></change-password>
<!-- -->
<!-- -->
<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" v-throttle>提交</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 class="wrap">
<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>
<div class="title">
<p>个人业务</p>
<i class="el-icon-arrow-right"></i>
<p>活期业务</p>
<i class="el-icon-arrow-right"></i>
<p>{{ text }}</p>
</div>
<!-- 修改密码 -->
<change-password></change-password>
<!-- -->
<!-- -->
<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" v-throttle>提交</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 { mapState } from 'vuex'
import changePassword from './changePassword.vue'
export default {
name: 'index',
components:{
changePassword,
},
data() {
return {
text:'修改密码',/* 顶部文字 */
textObj:{
'1':'修改密码',
'2':'账户服务',
'3':'修改密码',
},
form:{
name: 'index',
components: {
changePassword,
},
data () {
return {
text: '修改密码',/* 顶部文字 */
textObj: {
'1': '修改密码',
'2': '账户服务',
'3': '修改密码',
},
form: {
},
visible:false,
options:[],
activeIndex:'1',
second:[//
},
visible: false,
options: [],
activeIndex: '1',
second: [//
],
],
}
},
created() {
}
},
created () {
},
methods: {
handleSelect (val) {
this.text = this.textObj[val]
this.activeIndex = val
},
methods: {
handleSelect(val){
this.text = this.textObj[val]
this.activeIndex = 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: 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;
}
}
.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>

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

@ -3,50 +3,28 @@
<div>
<div class="body">
<div>
<el-row :gutter="20"
style="margin: 0">
<el-form ref="form"
:model="form"
label-width="120px"
:rules="rules">
<el-col :span="10"
:offset="2">
<el-row :gutter="20" style="margin: 0">
<el-form ref="form" :model="form" label-width="120px" :rules="rules">
<el-col :span="10" :offset="2">
<el-form-item label="客户号">
<el-input :value="form.userNumber"
disabled
@input="(val) => checkHanzi(val, form, 'userNumber')"
ref="userNumber"></el-input>
<el-input :value="form.userNumber" disabled @input="(val) => checkHanzi(val, form, 'userNumber')"
ref="userNumber"></el-input>
</el-form-item>
<el-form-item label="币种"
prop="currency">
<el-select v-model.trim="form.currency"
placeholder="请选择"
ref="currency">
<el-option label='CNY人民币'
:value="12"
:key="12">CNY人民币</el-option>
<el-form-item label="币种" prop="currency">
<el-select v-model.trim="form.currency" placeholder="请选择" ref="currency">
<el-option label='CNY人民币' :value="12" :key="12">CNY人民币</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="10"
:offset="1">
<el-form-item label="客户姓名"
prop="userName">
<el-input :value="form.userName"
disabled
@input="(val) => checkName(val, form, 'userName')"
ref="userName"></el-input>
<el-col :span="10" :offset="1">
<el-form-item label="客户姓名" prop="userName">
<el-input :value="form.userName" disabled @input="(val) => checkName(val, form, 'userName')"
ref="userName"></el-input>
</el-form-item>
<el-form-item label="钞汇标识"
prop="goldLogo">
<el-select v-model.trim="form.goldLogo"
disabled
placeholder="请选择"
ref="goldLogo">
<el-option v-for="item in goldLogoSelectList"
:label="item.options"
:value="item.itemId"
:key="item.itemId"> </el-option>
<el-form-item label="钞汇标识" prop="goldLogo">
<el-select v-model.trim="form.goldLogo" disabled placeholder="请选择" ref="goldLogo">
<el-option v-for="item in goldLogoSelectList" :label="item.options" :value="item.itemId"
:key="item.itemId"> </el-option>
</el-select>
</el-form-item>
@ -60,29 +38,18 @@
</el-form>
</el-row>
<div class="add">
<el-row :gutter="20"
style="margin: 0;z-index:9">
<el-form ref="form1"
:model="form"
label-width="120px">
<el-col :span="10"
:offset="2">
<el-row :gutter="20" style="margin: 0;z-index:9">
<el-form ref="form1" :model="form" label-width="120px">
<el-col :span="10" :offset="2">
<el-form-item label="账户性质">
<el-select v-model.trim="form.accountQuality"
placeholder="请选择"
ref="accountQuality">
<el-select v-model.trim="form.accountQuality" placeholder="请选择" ref="accountQuality">
<!-- <el-option v-for="item in accountQualitySelectList" :label="item.options" :value="item.itemId" :key="item.itemId"> </el-option>
-->
<el-option label="个人结算户"
:value="14"> </el-option>
<el-option label="基本户"
:value="101"> </el-option>
<el-option label="一般户"
:value="102"> </el-option>
<el-option label="专用户"
:value="103"> </el-option>
<el-option label="临时户"
:value="104"> </el-option>
<el-option label="个人结算户" :value="14"> </el-option>
<el-option label="基本户" :value="101"> </el-option>
<el-option label="一般户" :value="102"> </el-option>
<el-option label="专用户" :value="103"> </el-option>
<el-option label="临时户" :value="104"> </el-option>
<!-- 14: '个人结算户',
101: '基本户',
102: '一般户',
@ -90,313 +57,192 @@
104: '临时户' -->
</el-select>
</el-form-item>
<el-form-item label="账户类型"
prop="accountType">
<el-select v-model.trim="form.accountType"
placeholder="请选择"
ref="accountType">
<el-form-item label="账户类型" prop="accountType">
<el-select v-model.trim="form.accountType" placeholder="请选择" ref="accountType">
<!-- 16: '一类户',
17: '二类户',
97: '结算户',
98: '结算户',
99: '委托保障金户',
100: '资本临时户' -->
<el-option label="一类户"
:value="16"> </el-option>
<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="100"> </el-option> -->
</el-select>
</el-form-item>
<el-form-item label="支取方式"
prop="drawWay">
<el-select v-model.trim="form.drawWay"
placeholder="请选择"
ref="drawWay">
<el-option label="密码"
:value="18"> </el-option>
<el-form-item label="支取方式" prop="drawWay">
<el-select v-model.trim="form.drawWay" placeholder="请选择" ref="drawWay">
<el-option label="密码" :value="18"> </el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="10"
:offset="1">
<el-form-item label="凭证类型"
prop="voucherType">
<el-select v-model.trim="form.voucherType"
placeholder="请选择"
ref="voucherType">
<el-option label="IC卡"
: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-col :span="10" :offset="1">
<el-form-item label="凭证类型" prop="voucherType">
<el-select v-model.trim="form.voucherType" placeholder="请选择" ref="voucherType">
<el-option label="IC卡" :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-form-item>
<el-form-item label="凭证号码"
required>
<div v-if='!cardNumberJudge'
class="idCard"
@click="popUp('刷卡器')">
<el-form-item label="凭证号码" required>
<div v-if='!cardNumberJudge' class="idCard" @click="popUp('刷卡器')">
<p>请刷卡</p>
</div>
<div v-else>
<el-input ref="cardNumber"
:value="form.cardNumber"
disabled
@input="(val) => inputListen(val, form, 'cardNumber')"></el-input>
<el-input ref="cardNumber" :value="form.cardNumber" disabled
@input="(val) => inputListen(val, form, 'cardNumber')"></el-input>
</div>
</el-form-item>
<el-form-item label="支取密码"
required>
<div v-if='!form.drawPassword'
class="idCard"
@click="popUps('密码器')">
<el-form-item label="支取密码" required>
<div v-if='!form.drawPassword' class="idCard" @click="popUps('密码器')">
<p>请输入密码</p>
</div>
<div v-else
@click="popUps('密码器')">
<el-input :value="form.drawPassword"
ref="drawPassword"
type="password"></el-input>
<div v-else @click="popUps('密码器')">
<el-input :value="form.drawPassword" ref="drawPassword" type="password"></el-input>
</div>
</el-form-item>
</el-col>
</el-form>
<el-button @click="openAccount"
type="primary"
class="addBtn"
circle
icon="el-icon-plus"></el-button>
<el-button @click="openAccount" type="primary" class="addBtn" circle icon="el-icon-plus"></el-button>
</el-row>
</div>
<!-- 二级证件,最多三张逻辑上一张二级为填完信息不可添加第三张 v-for="(item,index) in second" :key="index" -->
<div class="add"
v-if="formTwo">
<el-row :gutter="20"
style="margin: 0;z-index:9">
<el-form ref="form2"
:model="form"
label-width="120px">
<el-col :span="10"
:offset="2">
<div class="add" v-if="formTwo">
<el-row :gutter="20" style="margin: 0;z-index:9">
<el-form ref="form2" :model="form" label-width="120px">
<el-col :span="10" :offset="2">
<el-form-item label="账户性质">
<el-select v-model.trim="form.accountQualitysTwo"
placeholder="请选择">
<el-option label="个人结算户"
:value="14"> </el-option>
<el-option label="基本户"
:value="101"> </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 v-model.trim="form.accountQualitysTwo" placeholder="请选择">
<el-option label="个人结算户" :value="14"> </el-option>
<el-option label="基本户" :value="101"> </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-form-item>
<el-form-item label="账户类型"
required>
<el-select v-model.trim="form.accountTypesTwo"
placeholder="请选择">
<el-option label="一类户"
:value="16"> </el-option>
<el-option label="二类户"
:value="17"> </el-option>
<el-form-item label="账户类型" required>
<el-select v-model.trim="form.accountTypesTwo" placeholder="请选择">
<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="100"> </el-option> -->
</el-select>
</el-form-item>
<el-form-item label="支取方式"
required>
<el-select v-model.trim="form.drawWaysTwo"
placeholder="请选择">
<el-form-item label="支取方式" required>
<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 label="密码"
:value="18"> </el-option>
<el-option label="密码" :value="18"> </el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="10"
:offset="1">
<el-form-item label="凭证类型"
required>
<el-select v-model.trim="form.voucherTypesTwo"
placeholder="请选择">
<el-option label="IC卡"
: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-col :span="10" :offset="1">
<el-form-item label="凭证类型" required>
<el-select v-model.trim="form.voucherTypesTwo" placeholder="请选择">
<el-option label="IC卡" :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-option v-for="item in voucherTypeSelectList" :label="item.options" :value="item.itemId" :key="item.itemId"> </el-option> -->
</el-select>
</el-form-item>
<el-form-item label="凭证号码"
required>
<div v-if='!cardNumberJudge2'
class="idCard"
@click="popUpTwo('刷卡器')">
<el-form-item label="凭证号码" required>
<div v-if='!cardNumberJudge2' class="idCard" @click="popUpTwo('刷卡器')">
<p>请刷卡</p>
</div>
<div v-else>
<el-input ref="cardNumber2"
:value="form.cardNumber2"
disabled
@input="(val) => inputListen(val, form, 'cardNumber2')"></el-input>
<el-input ref="cardNumber2" :value="form.cardNumber2" disabled
@input="(val) => inputListen(val, form, 'cardNumber2')"></el-input>
</div>
</el-form-item>
<el-form-item label="支取密码"
required>
<div v-if='!form.drawPassword2'
class="idCard"
@click="popUpsTwo('密码器')">
<el-form-item label="支取密码" required>
<div v-if='!form.drawPassword2' class="idCard" @click="popUpsTwo('密码器')">
<p>请输入密码</p>
</div>
<div v-else
@click="popUpsTwo('密码器')">
<el-input :value="form.drawPassword2"
ref="drawPassword2"
type="password"></el-input>
<div v-else @click="popUpsTwo('密码器')">
<el-input :value="form.drawPassword2" ref="drawPassword2" type="password"></el-input>
</div>
</el-form-item>
</el-col>
</el-form>
<el-button @click="deleteSecond()"
class="addBtn"
circle
icon="el-icon-close"></el-button>
<el-button @click="deleteSecond()" class="addBtn" circle icon="el-icon-close"></el-button>
</el-row>
</div>
<div class="add"
v-if="formThree">
<el-row :gutter="20"
style="margin: 0;z-index:9">
<el-form ref="form3"
:model="form"
label-width="120px">
<el-col :span="10"
:offset="2">
<div class="add" v-if="formThree">
<el-row :gutter="20" style="margin: 0;z-index:9">
<el-form ref="form3" :model="form" label-width="120px">
<el-col :span="10" :offset="2">
<el-form-item label="账户性质">
<el-select v-model.trim="form.accountQualitysThree"
placeholder="请选择">
<el-option label="个人结算户"
:value="14"> </el-option>
<el-option label="基本户"
:value="101"> </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 v-model.trim="form.accountQualitysThree" placeholder="请选择">
<el-option label="个人结算户" :value="14"> </el-option>
<el-option label="基本户" :value="101"> </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-form-item>
<el-form-item label="账户类型"
required>
<el-select v-model.trim="form.accountTypesThree"
placeholder="请选择">
<el-option label="一类户"
:value="16"> </el-option>
<el-option label="二类户"
:value="17"> </el-option>
<el-form-item label="账户类型" required>
<el-select v-model.trim="form.accountTypesThree" placeholder="请选择">
<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="100"> </el-option> -->
</el-select>
</el-form-item>
<el-form-item label="支取方式"
required>
<el-select v-model.trim="form.drawWaysThree"
placeholder="请选择">
<el-option label="密码"
:value="18"> </el-option>
<el-form-item label="支取方式" required>
<el-select v-model.trim="form.drawWaysThree" 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-select>
</el-form-item>
</el-col>
<el-col :span="10"
:offset="1">
<el-form-item label="凭证类型"
required>
<el-select v-model.trim="form.voucherTypesThree"
placeholder="请选择">
<el-option label="IC卡"
: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-col :span="10" :offset="1">
<el-form-item label="凭证类型" required>
<el-select v-model.trim="form.voucherTypesThree" placeholder="请选择">
<el-option label="IC卡" :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-form-item>
<el-form-item label="凭证号码"
required>
<div v-if='!cardNumberJudge3'
class="idCard"
@click="popUpThree('刷卡器')">
<el-form-item label="凭证号码" required>
<div v-if='!cardNumberJudge3' class="idCard" @click="popUpThree('刷卡器')">
<p>请刷卡</p>
</div>
<div v-else>
<el-input ref="cardNumber3"
:value="form.cardNumber3"
disabled
@input="(val) => inputListen(val, form, 'cardNumber3')"></el-input>
<el-input ref="cardNumber3" :value="form.cardNumber3" disabled
@input="(val) => inputListen(val, form, 'cardNumber3')"></el-input>
</div>
</el-form-item>
<el-form-item label="支取密码"
required>
<div v-if='!form.drawPassword3'
class="idCard"
@click="popUpsThree('密码器')">
<el-form-item label="支取密码" required>
<div v-if='!form.drawPassword3' class="idCard" @click="popUpsThree('密码器')">
<p>请输入密码</p>
</div>
<div v-else
@click="popUpsThree('密码器')">
<el-input :value="form.drawPassword3"
ref="drawPassword3"
type="password"></el-input>
<div v-else @click="popUpsThree('密码器')">
<el-input :value="form.drawPassword3" ref="drawPassword3" type="password"></el-input>
</div>
</el-form-item>
</el-col>
</el-form>
<el-button @click="deleteSecond()"
class="addBtn"
circle
icon="el-icon-close"></el-button>
<el-button @click="deleteSecond()" class="addBtn" circle icon="el-icon-close"></el-button>
</el-row>
</div>
</div>
<el-button @click="formSubmit"
type="primary"
class="submitBtn"
v-throttle>提交</el-button>
<el-button @click="formSubmit" type="primary" class="submitBtn" v-throttle>提交</el-button>
</div>
<my-dialog :moduleName="moduleName"
v-if="visible"
:visible.sync="visible"
:showForm="form"
:formName="formName"
@submitIt="popSure"
:needAuth="false" />
<my-dialog :moduleName="moduleName" v-if="visible" :visible.sync="visible" :showForm="form" :formName="formName"
@submitIt="popSure" :needAuth="false" />
</div>
<!-- <need-before v-else :moduleName='needBefore' :unNeed="unNeed" /> -->
</template>
<script> // currentAccount/openAccount
<script>// currentAccount/openAccount
import { getSubjectInfo, addOperation, getOperation } from "@/api/http.js";
import { mapMutations, mapGetters, mapState } from 'vuex'
import { vercustomer } from '@/utils/verify.js'
@ -1092,42 +938,48 @@ export default {
</script>
<style lang="scss" scoped>
.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;
cursor: pointer;
margin-top: 50px;
overflow: auto;
.idCard {
border-radius: 5px;
background: #cfddff;
text-align: center;
height: 40px;
line-height: 40px;
font-size: 18px;
color: #6191ff;
cursor: pointer;
}
.add {
position: relative;
.el-col {
padding: 10px 0;
}
.add {
position: relative;
.el-col {
padding: 10px 0;
}
&::after {
content: '';
display: block;
position: absolute;
right: 3%;
top: -4%;
border: 1px dashed #cfddff;
width: 88%;
height: 200px;
}
.addBtn {
position: absolute;
left: 0;
top: 50%;
transform: translate(50%, -50%);
font-size: 22px;
}
&::after {
content: '';
display: block;
position: absolute;
right: 3%;
top: -4%;
border: 1px dashed #cfddff;
width: 88%;
height: 200px;
}
.addBtn {
position: absolute;
left: 0;
top: 50%;
transform: translate(50%, -50%);
font-size: 22px;
}
}
}
// .submitBtn{
// position: relative;
// width: 300px;
@ -1140,28 +992,32 @@ export default {
// transform: translate(-50%,-50%);
// }
.popBody {
min-height: 200px;
display: flex;
align-items: center;
justify-content: center;
text-align: center;
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;
}
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>

@ -1,430 +1,438 @@
// >
<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="凭证号码" required>
<!-- <div v-if='!cardNumberJudge' class="idCard" @click="popUp('刷卡器')">
<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="凭证号码" required>
<!-- <div v-if='!cardNumberJudge' class="idCard" @click="popUp('刷卡器')">
<p>请刷卡</p>
</div>
<div v-else>
<el-input @blur="getDataBlur" ref="voucherNumber" disabled :value="form.voucherNumber" @input="(val) => inputListen(val, form, 'voucherNumber')"></el-input>
</div> -->
<el-input @blur="getDataBlur" ref="voucherNumber" :value="form.voucherNumber" @input="(val) => inputListen(val, form, 'voucherNumber')"></el-input>
</el-form-item>
<el-form-item label="币种" prop="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-select>
</el-form-item>
<el-form-item label="金额" prop="money">
<el-input :value="form.money" maxlength='15' @input="val => ismoney(val, form, 'money')" ref="money"></el-input>
</el-form-item>
<el-form-item label="利率(%)" prop="interestRate">
<el-input v-model.trim="form.interestRate" disabled ref="interestRate"></el-input>
</el-form-item>
<el-form-item label="支取方式" prop="drawWay">
<el-select v-model.trim="form.drawWay" placeholder="请选择" ref="drawWay">
<el-option label="密码" :value="18"> </el-option>
</el-select>
</el-form-item>
<el-form-item label="存款类别" required prop="certificateDeposit">
<el-select v-model.trim="form.certificateDeposit" placeholder="请选择" ref="certificateDeposit">
<el-option label="现金" :value="92"> </el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="10" :offset="1">
<el-form-item label="客户姓名" required 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="请选择" 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="存期" prop="depositTerm">
<el-select v-model.trim="form.depositTerm" placeholder="请选择" ref="depositTerm">
<el-option label="3个月" :value="84"> </el-option>
<el-option label="6个月" :value="85"> </el-option>
<el-option label="1年" :value="86"> </el-option>
<el-option label="2年" :value="87"> </el-option>
<el-option label="3年" :value="88"> </el-option>
<el-option label="5年" :value="89"> </el-option>
</el-select>
</el-form-item>
<el-form-item label="续存" prop="extendPeriod">
<el-radio-group v-model.trim="form.extendPeriod" ref="extendPeriod">
<el-radio :label="90">不续存</el-radio>
<el-radio :label="91">续存</el-radio>
</el-radio-group>
</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 :value="form.drawPassword" ref="drawPassword" type="password"></el-input>
</div>
</el-form-item>
<el-form-item label="起息日" prop="valueDate">
<el-input ref="valueDate" :value="form.valueDate" @input="(val) => checkHanzi(val, form, 'valueDate')" ></el-input>
</el-form-item>
</el-col>
<el-col :span="21" :offset="1">
<el-form-item label="摘要" prop="textarea">
<el-input type="textarea" :rows="3" placeholder="请输入内容" v-model.trim="form.abstract" ref="textarea"></el-input>
</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" @submitIt="submitForm2" :needAuth="false" />
</div>
<!-- <need-before v-else :moduleName='needBefore' :unNeed="unNeed" /> -->
<el-input @blur="getDataBlur" ref="voucherNumber" :value="form.voucherNumber"
@input="(val) => inputListen(val, form, 'voucherNumber')"></el-input>
</el-form-item>
<el-form-item label="币种" prop="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-select>
</el-form-item>
<el-form-item label="金额" prop="money">
<el-input :value="form.money" maxlength='15' @input="val => ismoney(val, form, 'money')"
ref="money"></el-input>
</el-form-item>
<el-form-item label="利率(%)" prop="interestRate">
<el-input v-model.trim="form.interestRate" disabled ref="interestRate"></el-input>
</el-form-item>
<el-form-item label="支取方式" prop="drawWay">
<el-select v-model.trim="form.drawWay" placeholder="请选择" ref="drawWay">
<el-option label="密码" :value="18"> </el-option>
</el-select>
</el-form-item>
<el-form-item label="存款类别" required prop="certificateDeposit">
<el-select v-model.trim="form.certificateDeposit" placeholder="请选择" ref="certificateDeposit">
<el-option label="现金" :value="92"> </el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="10" :offset="1">
<el-form-item label="客户姓名" required 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="请选择" 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="存期" prop="depositTerm">
<el-select v-model.trim="form.depositTerm" placeholder="请选择" ref="depositTerm">
<el-option label="3个月" :value="84"> </el-option>
<el-option label="6个月" :value="85"> </el-option>
<el-option label="1年" :value="86"> </el-option>
<el-option label="2年" :value="87"> </el-option>
<el-option label="3年" :value="88"> </el-option>
<el-option label="5年" :value="89"> </el-option>
</el-select>
</el-form-item>
<el-form-item label="续存" prop="extendPeriod">
<el-radio-group v-model.trim="form.extendPeriod" ref="extendPeriod">
<el-radio :label="90">不续存</el-radio>
<el-radio :label="91">续存</el-radio>
</el-radio-group>
</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 :value="form.drawPassword" ref="drawPassword" type="password"></el-input>
</div>
</el-form-item>
<el-form-item label="起息日" prop="valueDate">
<el-input ref="valueDate" :value="form.valueDate"
@input="(val) => checkHanzi(val, form, 'valueDate')"></el-input>
</el-form-item>
</el-col>
<el-col :span="21" :offset="1">
<el-form-item label="摘要" prop="textarea">
<el-input type="textarea" :rows="3" placeholder="请输入内容" v-model.trim="form.abstract"
ref="textarea"></el-input>
</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"
@submitIt="submitForm2" :needAuth="false" />
</div>
<!-- <need-before v-else :moduleName='needBefore' :unNeed="unNeed" /> -->
</template>
<script>
import { myValidate, checkHanzi, checkName, ismoney, autoPlay, autoPlay2, inputListen,messageCard, messagePassword } from '@/utils/utilFunction.js';
import { mobPattern, namePattern, ratePattern, vercustomer } from '@/utils/verify.js'
import { myValidate, checkHanzi, checkName, ismoney, autoPlay, autoPlay2, inputListen, messageCard, messagePassword } from '@/utils/utilFunction.js';
import { mobPattern, namePattern, ratePattern, vercustomer } from '@/utils/verify.js'
const moduleName = 'timeDeposit/deposit'
import { mapMutations, mapGetters } from 'vuex'
import NeedBefore from '@/components/needBefore'
import MyDialog from '@/components/dialog'
import TipsBefore from '@/mixins/tipsBefore'
export default{
name:'',
props:{},
mixins: [ TipsBefore ],
components: {
NeedBefore,
MyDialog
},
data(){
return{
moduleName: 'timeDeposit/deposit',
visible: false,
cardNumberJudge: false,
form:{
//
// identityCard: '', //
customerName: '', //
currency: '', //
goldLogo: '', //
depositTerm: '', //
extendPeriod: '', //
certificateDeposit: 92, //
valueDate: '', //
voucherNumber: '', //
drawPassword: '', //
//
money: '', //
interestRate: '', //
drawWay: 18, //
abstract: '' //
},
formName:{
//
customerName: '客户姓名', //
currency: '币种', //
goldLogo: '钞汇标识', //
depositTerm: '存期', //
extendPeriod: '续存', //
certificateDeposit: '存款类别', //
valueDate: '起息日', //
voucherNumber: '凭证号码', //
drawPassword: '支付密码', //
//
money: '金额', //
interestRate: '利率', //
drawWay: '支取方式', //
abstract: '摘要' //
},
rules: {
customerName: vercustomer ,
currency: [
{
required: true,
message: '请选择币种',
trigger: 'blur'
}
],
voucherNumber: [
{
required: true,
message: '请输入凭证号码',
trigger: 'blur'
}
],
goldLogo: [
{
required: true,
message: '请选择钞汇标识',
trigger: 'blur'
}
],
depositTerm: [
{
required: true,
message: '请选择存期',
trigger: 'blur'
}
],
certificateDeposit: [
{
required: true,
message: '请选择存款类别',
trigger: 'blur'
}
],
money: [
{
required: true,
message: '请填写金额',
trigger: 'blur'
}
]
// extendPeriod: [
// {
// required: true,
// message: '',
// trigger: 'blur'
// }
// ],
// interestRate: [{
// required: true,
// message: '',
// trigger: 'blur'
// },
// {
// pattern: ratePattern,
// message: ''
// }],
// valueDate: {
// required: true,
// message: ''
// }
},
myTable: {
135: {
prop: 'money',//
type: '3',
"subjectId": 14,
},
139: {
prop: 'drawWay',//
type: '1',
"subjectId": 28,
},
143: {
prop: 'abstract',//
type: '3',
"subjectId": 16,
},
},
myTable2: {
131: {
prop: 'voucherNumber', //
type: '3',
"subjectId": 44,
},
132: {
prop: 'customerName',//
type: '3',
"subjectId": 7,
},
133: {
prop: 'currency',//
type: '1',
"subjectId": 8,
},
134: {
prop: 'goldLogo',//
type: '1',
"subjectId": 9,
},
136: {
prop: 'depositTerm',//
type: '1',
"subjectId": 27,
},
137: {
prop: 'interestRate',//
type: '3',
"subjectId": 29,
},
138: {
prop: 'extendPeriod',//
type: '1',
"subjectId": 28,
},
140: {
prop: 'drawPassword',
type: '3',
"subjectId": 17,
},
141: {
prop: 'certificateDeposit',//
type: '1',
"subjectId": 30,
},
142: {
prop: 'valueDate',//
type: '3',
"subjectId": 32,
},
},
submited: 0
}
},
created() {
if(sessionStorage.getItem('nomtimeDepositlPassword')) {
this.form.drawPassword = sessionStorage.getItem('nomtimeDepositlPassword')
}
// if(this.isNeedBefore) {
// if(sessionStorage.getItem('nomtimeDeposit1')) {
// this.cardNumberJudge = true
// this.form.voucherNumber = this.dataFlow.voucherNumber || '159753'
export default {
name: '',
props: {},
mixins: [TipsBefore],
components: {
NeedBefore,
MyDialog
},
data () {
return {
moduleName: 'timeDeposit/deposit',
visible: false,
cardNumberJudge: false,
form: {
//
// identityCard: '', //
customerName: '', //
currency: '', //
goldLogo: '', //
depositTerm: '', //
extendPeriod: '', //
certificateDeposit: 92, //
valueDate: '', //
voucherNumber: '', //
drawPassword: '', //
//
money: '', //
interestRate: '', //
drawWay: 18, //
abstract: '' //
},
formName: {
//
customerName: '客户姓名', //
currency: '币种', //
goldLogo: '钞汇标识', //
depositTerm: '存期', //
extendPeriod: '续存', //
certificateDeposit: '存款类别', //
valueDate: '起息日', //
voucherNumber: '凭证号码', //
drawPassword: '支付密码', //
//
money: '金额', //
interestRate: '利率', //
drawWay: '支取方式', //
abstract: '摘要' //
},
rules: {
customerName: vercustomer,
currency: [
{
required: true,
message: '请选择币种',
trigger: 'blur'
}
],
voucherNumber: [
{
required: true,
message: '请输入凭证号码',
trigger: 'blur'
}
],
goldLogo: [
{
required: true,
message: '请选择钞汇标识',
trigger: 'blur'
}
],
depositTerm: [
{
required: true,
message: '请选择存期',
trigger: 'blur'
}
],
certificateDeposit: [
{
required: true,
message: '请选择存款类别',
trigger: 'blur'
}
],
money: [
{
required: true,
message: '请填写金额',
trigger: 'blur'
}
]
// extendPeriod: [
// {
// required: true,
// message: '',
// trigger: 'blur'
// }
// return
// ],
// interestRate: [{
// required: true,
// message: '',
// trigger: 'blur'
// },
// {
// pattern: ratePattern,
// message: ''
// }],
// valueDate: {
// required: true,
// message: ''
// }
if(sessionStorage.getItem('nomtimeDeposit1')) {
this.cardNumberJudge = true
const { userName, currency, goldLogo, voucherNumber } = this.dataFlow
this.form.customerName = userName
this.form.currency = currency
this.form.goldLogo = goldLogo
this.form.voucherNumber = voucherNumber
}
},
myTable: {
135: {
prop: 'money',//
type: '3',
"subjectId": 14,
},
139: {
prop: 'drawWay',//
type: '1',
"subjectId": 28,
},
143: {
prop: 'abstract',//
type: '3',
"subjectId": 16,
},
},
myTable2: {
131: {
prop: 'voucherNumber', //
type: '3',
"subjectId": 44,
},
132: {
prop: 'customerName',//
type: '3',
"subjectId": 7,
},
133: {
prop: 'currency',//
type: '1',
"subjectId": 8,
},
134: {
prop: 'goldLogo',//
type: '1',
"subjectId": 9,
},
136: {
prop: 'depositTerm',//
type: '1',
"subjectId": 27,
},
137: {
prop: 'interestRate',//
type: '3',
"subjectId": 29,
},
138: {
prop: 'extendPeriod',//
type: '1',
"subjectId": 28,
},
140: {
prop: 'drawPassword',
type: '3',
"subjectId": 17,
},
141: {
prop: 'certificateDeposit',//
type: '1',
"subjectId": 30,
},
142: {
prop: 'valueDate',//
type: '3',
"subjectId": 32,
},
},
submited: 0
}
},
created () {
if (sessionStorage.getItem('nomtimeDepositlPassword')) {
this.form.drawPassword = sessionStorage.getItem('nomtimeDepositlPassword')
}
// if(this.isNeedBefore) {
// if(sessionStorage.getItem('nomtimeDeposit1')) {
// this.cardNumberJudge = true
// this.form.voucherNumber = this.dataFlow.voucherNumber || '159753'
// }
// return
// }
if (sessionStorage.getItem('nomtimeDeposit1')) {
this.cardNumberJudge = true
const { userName, currency, goldLogo, voucherNumber } = this.dataFlow
this.form.customerName = userName
this.form.currency = currency
this.form.goldLogo = goldLogo
this.form.voucherNumber = voucherNumber
}
this.getFormData()
},
mounted() {
this.getFormData()
},
mounted () {
},
methods: {
// (CNY)
...mapMutations({
changeShowGoods: 'system/changeShowGoods',
setDataFlow: 'system/setDataFlow',
setNeedsModule: 'system/setNeedsModule',
setPopId: 'system/setPopId',
setTipsOperate: 'system/setTipsOperate'
}),
getDataBlur () {
if (!this.form.voucherNumber) {
return
}
if (this.form.voucherNumber) {
const { userName, currency, goldLogo } = this.dataFlow
this.form.customerName = userName
this.form.currency = currency
this.form.goldLogo = goldLogo
}
},
methods: {
// (CNY)
...mapMutations({
changeShowGoods: 'system/changeShowGoods',
setDataFlow: 'system/setDataFlow',
setNeedsModule: 'system/setNeedsModule',
setPopId: 'system/setPopId',
setTipsOperate: 'system/setTipsOperate'
}),
getDataBlur() {
if(!this.form.voucherNumber) {
return
}
if(this.form.voucherNumber) {
const { userName, currency, goldLogo } = this.dataFlow
this.form.customerName = userName
this.form.currency = currency
this.form.goldLogo = goldLogo
}
},
getFormData(){
const parentId = '285,' + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ',287,5,26,58,119'
const cards = {
// 131: 'nomtimeDeposit1',
// 140: 'nomtimeDepositlPassword'
}
const callback = () => {
if(this.form.voucherNumber) {
this.cardNumberJudge = true
}
if(sessionStorage.getItem('nomtimeDepositlPassword')) {
this.form.drawPassword = sessionStorage.getItem('nomtimeDepositlPassword')
}
}
autoPlay2(parentId, this.form, this.myTable2, this.myTable, cards, callback)
},
popUp(text) {
// this.$store.commit('system/changePop',{show:true,text, id: '131'})
getFormData () {
const parentId = '285,' + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ',287,5,26,58,119'
const cards = {
// 131: 'nomtimeDeposit1',
// 140: 'nomtimeDepositlPassword'
}
const callback = () => {
if (this.form.voucherNumber) {
this.cardNumberJudge = true
}
if (sessionStorage.getItem('nomtimeDepositlPassword')) {
this.form.drawPassword = sessionStorage.getItem('nomtimeDepositlPassword')
}
}
autoPlay2(parentId, this.form, this.myTable2, this.myTable, cards, callback)
},
popUp (text) {
// this.$store.commit('system/changePop',{show:true,text, id: '131'})
this.setTipsOperate('请刷银行卡');
this.setPopId('131')
sessionStorage.setItem('computerPath', this.$route.fullPath)
this.$router.push('/counter/list/')
},
popUp2(text) {
// this.$store.commit('system/changePop',{show:true,text, id: '140'})
this.setTipsOperate('请刷银行卡');
this.setPopId('131')
sessionStorage.setItem('computerPath', this.$route.fullPath)
this.$router.push('/counter/list/')
},
popUp2 (text) {
// this.$store.commit('system/changePop',{show:true,text, id: '140'})
this.setTipsOperate('请在密码器输入密码');
this.setPopId('140')
sessionStorage.setItem('computerPath', this.$route.fullPath)
this.$router.push('/counter/list/')
},
submitForm() {
if (this.submited) return this.$message.error('已提交!')
if(!this.form.voucherNumber) {
messageCard('请填写凭证号码')
return
}
if(!this.form.drawPassword) {
messagePassword()
return
}
this.setTipsOperate('请在密码器输入密码');
this.setPopId('140')
sessionStorage.setItem('computerPath', this.$route.fullPath)
this.$router.push('/counter/list/')
},
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));
this.$refs.form.validate(myValidate(() => {
//
this.visible = true;
}, this.$refs));
},
submitForm2() {
// let nomtimeDeposit1 = sessionStorage.getItem('nomtimeDeposit1')
// 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 cards = [
// {
// 131: nomtimeDeposit1
// },
// {
// 140: nomtimeDepositlPassword,
// "subjectId": 17,
// }
]
this.setDataFlow(this.form)
console.log("🚀 ~ file: deposit.vue:393 ~ submitForm2 ~ this.form", this.form)
autoPlay(parentId, this.form, this.myTable2, this.myTable, cards)
this.submited = 1
},
ismoney: ismoney,
checkHanzi: checkHanzi,
checkName: checkName,
inputListen: inputListen
},
computed: {
...mapGetters({
dataFlow: 'system/dataFlow',
needsModule: 'system/needsModule',
idCardNumber: 'system/idCardNumber',
inMyWork: 'system/inMyWork',
getSelectList: 'system/getSelectList'
})
submitForm2 () {
// let nomtimeDeposit1 = sessionStorage.getItem('nomtimeDeposit1')
// 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 cards = [
// {
// 131: nomtimeDeposit1
// },
// {
// 140: nomtimeDepositlPassword,
// "subjectId": 17,
// }
]
this.setDataFlow(this.form)
console.log("🚀 ~ file: deposit.vue:393 ~ submitForm2 ~ this.form", this.form)
autoPlay(parentId, this.form, this.myTable2, this.myTable, cards)
this.submited = 1
},
watch: {
'form.depositTerm'(newVal) {
if(newVal === 84) {
this.form.interestRate = 1.35
}else if(newVal === 85) {
this.form.interestRate = 1.55
}else if(newVal === 86) {
this.form.interestRate = 1.75
}else if(newVal === 87) {
this.form.interestRate = 2.25
}else if(newVal === 88) {
this.form.interestRate = 2.75
}else if(newVal === 89) {
this.form.interestRate = 2.75
}
}
ismoney: ismoney,
checkHanzi: checkHanzi,
checkName: checkName,
inputListen: inputListen
},
computed: {
...mapGetters({
dataFlow: 'system/dataFlow',
needsModule: 'system/needsModule',
idCardNumber: 'system/idCardNumber',
inMyWork: 'system/inMyWork',
getSelectList: 'system/getSelectList'
})
},
watch: {
'form.depositTerm' (newVal) {
if (newVal === 84) {
this.form.interestRate = 1.35
} else if (newVal === 85) {
this.form.interestRate = 1.55
} else if (newVal === 86) {
this.form.interestRate = 1.75
} else if (newVal === 87) {
this.form.interestRate = 2.25
} else if (newVal === 88) {
this.form.interestRate = 2.75
} else if (newVal === 89) {
this.form.interestRate = 2.75
}
}
}
}
</script>
<style lang='scss' scoped>
@ -453,5 +461,4 @@ export default{
// left: 50%;
// transform: translate(-50%,-20%);
// }
// }
</style>
// }</style>

@ -1,84 +1,90 @@
// >
<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="证件类型">
<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="请选择" 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="请选择" ref="voucherType">
<el-option label="存单" :value="123"> </el-option>
</el-select>
</el-form-item>
<el-form-item label="支取方式" prop="drawWay">
<!-- <el-select v-model.trim="form.drawWay" placeholder="请选择" ref="drawWay">
<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="证件类型">
<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="请选择" 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="请选择" ref="voucherType">
<el-option label="存单" :value="123"> </el-option>
</el-select>
</el-form-item>
<el-form-item label="支取方式" prop="drawWay">
<!-- <el-select v-model.trim="form.drawWay" placeholder="请选择" ref="drawWay">
<el-option v-for="item in getSelectList.chargeWayList" :label="item.options" :value="item.itemId" :key="item.itemId"> </el-option>
</el-select> -->
<el-select v-model.trim="form.drawWay" placeholder="请选择" ref="drawWay">
<el-option label="密码" :value="18"> </el-option>
</el-select>
</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" maxlength="20" disabled ref="idNumber"></el-input>
</div>
</el-form-item>
<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-form-item>
<el-form-item label="钞汇标识" prop="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-select>
</el-form-item>
<el-form-item label="凭证号码" required>
<!-- <div v-if='!cardNumberJudge' class="idCard" @click="popUp2('刷卡器')">
<el-select v-model.trim="form.drawWay" placeholder="请选择" ref="drawWay">
<el-option label="密码" :value="18"> </el-option>
</el-select>
</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" maxlength="20" disabled ref="idNumber"></el-input>
</div>
</el-form-item>
<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-form-item>
<el-form-item label="钞汇标识" prop="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-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 @blur="getDataBlur" maxlength="20" ref="voucherNumber" disabled :value="form.voucherNumber" @input="(val) => inputListen(val, form, 'voucherNumber')"></el-input>
</div> -->
<el-input maxlength="18" ref="voucherNumber" :value="form.voucherNumber" @input="(val) => inputListen(val, form, 'voucherNumber')"></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-form-item label="客户经理" prop="customerManage">-->
<!-- <el-input ref="customerManage" :value="form.customerManage" @input="(val) => checkHanzi(val, form, 'customerManage')"></el-input>-->
<!-- </el-form-item>-->
</el-col>
<el-input maxlength="18" ref="voucherNumber" :value="form.voucherNumber"
@input="(val) => inputListen(val, form, 'voucherNumber')"></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-form-item label="客户经理" prop="customerManage">-->
<!-- <el-input ref="customerManage" :value="form.customerManage" @input="(val) => checkHanzi(val, form, 'customerManage')"></el-input>-->
<!-- </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" @submitIt="submitForm2" />
</div>
<!-- <need-before v-else :moduleName='needBefore' :unNeed="unNeed" /> -->
</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"
@submitIt="submitForm2" />
</div>
<!-- <need-before v-else :moduleName='needBefore' :unNeed="unNeed" /> -->
</template>
<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 { mapMutations, mapGetters } from 'vuex'
@ -86,290 +92,290 @@ import NeedBefore from '@/components/needBefore'
import MyDialog from '@/components/dialog'
import TipsBefore from '@/mixins/tipsBefore'
const moduleName = 'timeDeposit/openAccount'
export default{
name:'',
props:{},
mixins: [ TipsBefore ],
components: {
NeedBefore,
MyDialog
},
data(){
return{
moduleName: 'timeDeposit/openAccount',
visible: false,
idNumberJudge: false,
cardNumberJudge: false,
form:{
//
idNumber: '', //
customerName: '', //
currency: '', //
goldLogo: '', //
voucherType: 123, //
voucherNumber: '', //
drawPassword: '', //
customerManage: '', //
drawWay:18,//
//
certificateType: 83, //
clientNumber: '' //
},
formName: {
idNumber: '身份证', //
customerName: '客户姓名', //
currency: '币种', //
goldLogo: '钞汇标识', //
voucherType: '凭证类型', //
voucherNumber: '凭证号码', //
customerManage: '客户经理', //
drawWay:'支取方式',//
certificateType: '证件类型', //
drawPassword: '支付密码', //
clientNumber: '客户号' //
},
rules: {
customerName: vercustomer ,
customerManage: [{
required: true,
message: '请输入客户经理名称',
trigger: 'blur'
},
{
pattern: namePattern,
message: '客户经理名称格式有误'
}
],
currency: [{
required: true,
message: '请选择币种',
trigger: 'blur'
}
],
goldLogo: [{
required: true,
message: '请选择钞汇标识',
trigger: 'blur'
}
],
voucherType: [{
required: true,
message: '请选择凭证类型',
trigger: 'blur'
}
],
voucherNumber: [
{
required: true,
message: '请输入凭证号码',
trigger: 'blur'
}
]
},
myTable: {
121: {
prop: 'certificateType',//
type: '1',
"subjectId": 19,
},
122: {
prop: 'idNumber',//
type: '3'
},
123: {
prop: 'clientNumber',//
type: '3',
"subjectId": 6,
},
},
myTable2: {
124: {
prop: 'customerName',//
type: '3',
"subjectId": 7,
},
128: { // subjectId
prop: 'voucherNumber',//
type: '3',
"subjectId": 44,
},
129: {
prop: 'drawPassword',
type: '3',
"subjectId": 17,
},
130: {
prop: 'drawWay', //
type: '1',
"subjectId": 13,
},
125: {
prop: 'currency',//
type: '1',
"subjectId": 8,
},
126: {
prop: 'goldLogo',//
type: '1',
"subjectId": 9,
},
127: {
prop: 'voucherType',//
type: '1',
"subjectId": 11,
},
},
submited: 0
export default {
name: '',
props: {},
mixins: [TipsBefore],
components: {
NeedBefore,
MyDialog
},
data () {
return {
moduleName: 'timeDeposit/openAccount',
visible: false,
idNumberJudge: false,
cardNumberJudge: false,
form: {
//
idNumber: '', //
customerName: '', //
currency: '', //
goldLogo: '', //
voucherType: 123, //
voucherNumber: '', //
drawPassword: '', //
customerManage: '', //
drawWay: 18,//
//
certificateType: 83, //
clientNumber: '' //
},
formName: {
idNumber: '身份证',
customerName: '客户姓名',
currency: '币种',
goldLogo: '钞汇标识',
voucherType: '凭证类型',
voucherNumber: '凭证号码',
customerManage: '客户经理',
drawWay: '支取方式',//
certificateType: '证件类型',
drawPassword: '支付密码',
clientNumber: '客户号'
},
rules: {
customerName: vercustomer,
customerManage: [{
required: true,
message: '请输入客户经理名称',
trigger: 'blur'
},
{
pattern: namePattern,
message: '客户经理名称格式有误'
}
},
created() {
if(sessionStorage.getItem('nomtimeOpenAccountPassword')) {
this.form.drawPassword = sessionStorage.getItem('nomtimeOpenAccountPassword')
],
currency: [{
required: true,
message: '请选择币种',
trigger: 'blur'
}
],
goldLogo: [{
required: true,
message: '请选择钞汇标识',
trigger: 'blur'
}
],
voucherType: [{
required: true,
message: '请选择凭证类型',
trigger: 'blur'
}
],
voucherNumber: [
{
required: true,
message: '请输入凭证号码',
trigger: 'blur'
}
]
},
myTable: {
121: {
prop: 'certificateType',//
type: '1',
"subjectId": 19,
},
122: {
prop: 'idNumber',//
type: '3'
},
123: {
prop: 'clientNumber',//
type: '3',
"subjectId": 6,
},
},
myTable2: {
124: {
prop: 'customerName',//
type: '3',
"subjectId": 7,
},
128: { // subjectId
prop: 'voucherNumber',//
type: '3',
"subjectId": 44,
},
129: {
prop: 'drawPassword',
type: '3',
"subjectId": 17,
},
130: {
prop: 'drawWay', //
type: '1',
"subjectId": 13,
},
125: {
prop: 'currency',//
type: '1',
"subjectId": 8,
},
126: {
prop: 'goldLogo',//
type: '1',
"subjectId": 9,
},
127: {
prop: 'voucherType',//
type: '1',
"subjectId": 11,
},
},
submited: 0
}
},
created () {
if (sessionStorage.getItem('nomtimeOpenAccountPassword')) {
this.form.drawPassword = sessionStorage.getItem('nomtimeOpenAccountPassword')
}
// if(this.isNeedBefore) {
// if(sessionStorage.getItem('nomtimeOpenAccount1')) {
// this.idNumberJudge = true
// this.form.idNumber = this.dataFlow.idNumber || '441515199812064569'
// }
// // if(sessionStorage.getItem('nomtimeOpenAccount2')) {
// // this.cardNumberJudge = true
// // this.form.voucherNumber = this.dataFlow.voucherNumber || '159753'
// // }
// if(this.isNeedBefore) {
// if(sessionStorage.getItem('nomtimeOpenAccount1')) {
// this.idNumberJudge = true
// this.form.idNumber = this.dataFlow.idNumber || '441515199812064569'
// }
// // if(sessionStorage.getItem('nomtimeOpenAccount2')) {
// // this.cardNumberJudge = true
// // this.form.voucherNumber = this.dataFlow.voucherNumber || '159753'
// // }
// return
// }
this.form.clientNumber = this.dataFlow.peopleNumber
// return
// }
this.form.clientNumber = this.dataFlow.peopleNumber
if(sessionStorage.getItem('nomtimeOpenAccount1')) {
const { idNumber, userName, currency, goldLogo } = this.dataFlow
this.form.idNumber = idNumber
this.form.customerName = userName
this.form.currency = currency
this.form.goldLogo = goldLogo
if (sessionStorage.getItem('nomtimeOpenAccount1')) {
const { idNumber, userName, currency, goldLogo } = this.dataFlow
this.form.idNumber = idNumber
this.form.customerName = userName
this.form.currency = currency
this.form.goldLogo = goldLogo
this.idNumberJudge = true
console.log(this.idNumberJudge)
}
this.idNumberJudge = true
console.log(this.idNumberJudge)
}
// if(sessionStorage.getItem('nomtimeOpenAccount2')) {
// const { voucherNumber } = this.dataFlow
// this.cardNumberJudge = true
// this.form.voucherNumber = voucherNumber
// }
// if(sessionStorage.getItem('nomtimeOpenAccount2')) {
// const { voucherNumber } = this.dataFlow
// this.cardNumberJudge = true
// this.form.voucherNumber = voucherNumber
// }
this.getFormData()
this.getFormData()
},
mounted() {
mounted () {
},
methods: {
...mapMutations({
changeShowGoods: 'system/changeShowGoods',
setDataFlow: 'system/setDataFlow',
setNeedsModule: 'system/setNeedsModule',
setPopId: 'system/setPopId',
setTipsOperate: 'system/setTipsOperate'
}),
getFormData(){
const parentId = '285,' + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ',287,5,26,58,118'
const cards = {
// 13: 'nomtimeOpenAccount1',
// // 128: 'nomtimeOpenAccount2',
// 129: 'nomtimeOpenAccountPassword'
}
const callback = () => {
if(this.form.idNumber) {
this.idNumberJudge = true
}
if(this.form.voucherNumber) {
this.cardNumberJudge = true
}
//
if(sessionStorage.getItem('nomtimeOpenAccount2')) {
const { voucherNumber } = this.dataFlow
this.cardNumberJudge = true
this.form.voucherNumber = voucherNumber
}
if(sessionStorage.getItem('nomtimeOpenAccountPassword')) {
this.form.drawPassword = sessionStorage.getItem('nomtimeOpenAccountPassword')
}
},
methods: {
...mapMutations({
changeShowGoods: 'system/changeShowGoods',
setDataFlow: 'system/setDataFlow',
setNeedsModule: 'system/setNeedsModule',
setPopId: 'system/setPopId',
setTipsOperate: 'system/setTipsOperate'
}),
getFormData () {
const parentId = '285,' + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ',287,5,26,58,118'
const cards = {
// 13: 'nomtimeOpenAccount1',
// // 128: 'nomtimeOpenAccount2',
// 129: 'nomtimeOpenAccountPassword'
}
const callback = () => {
if (this.form.idNumber) {
this.idNumberJudge = true
}
if (this.form.voucherNumber) {
this.cardNumberJudge = true
}
//
if (sessionStorage.getItem('nomtimeOpenAccount2')) {
const { voucherNumber } = this.dataFlow
this.cardNumberJudge = true
this.form.voucherNumber = voucherNumber
}
if (sessionStorage.getItem('nomtimeOpenAccountPassword')) {
this.form.drawPassword = sessionStorage.getItem('nomtimeOpenAccountPassword')
}
}
autoPlay2(parentId, this.form, this.myTable2, this.myTable, cards, callback)
},
popUp1(text) { //
// this.$store.commit('system/changePop',{show:true,text, id: '118,1'})
}
autoPlay2(parentId, this.form, this.myTable2, this.myTable, cards, callback)
},
popUp1 (text) { //
// this.$store.commit('system/changePop',{show:true,text, id: '118,1'})
this.setTipsOperate('请刷身份证');
this.setPopId('118,1')
sessionStorage.setItem('computerPath', this.$route.fullPath)
this.$router.push('/counter/list/')
},
popUp2(text) { //
// this.$store.commit('system/changePop',{show:true,text, id: '118,2'})
this.setTipsOperate('请刷身份证');
this.setPopId('118,1')
sessionStorage.setItem('computerPath', this.$route.fullPath)
this.$router.push('/counter/list/')
},
popUp2 (text) { //
// this.$store.commit('system/changePop',{show:true,text, id: '118,2'})
this.setTipsOperate('请刷银行卡');
this.setPopId('118,2')
sessionStorage.setItem('computerPath', this.$route.fullPath)
this.$router.push('/counter/list/')
},
popUp3(text) { //
// this.$store.commit('system/changePop',{show:true,text, id: '129'})
this.setTipsOperate('请刷银行卡');
this.setPopId('118,2')
sessionStorage.setItem('computerPath', this.$route.fullPath)
this.$router.push('/counter/list/')
},
popUp3 (text) { //
// this.$store.commit('system/changePop',{show:true,text, id: '129'})
this.setTipsOperate('请在密码器输入密码');
this.setPopId('129')
sessionStorage.setItem('computerPath', this.$route.fullPath)
this.$router.push('/counter/list/')
},
submitForm() {
if (this.submited) return this.$message.error('已提交!')
if(!this.form.idNumber) {
messageIdCard()
return
}
if(!this.form.voucherNumber) {
messageCard()
return
}
this.setTipsOperate('请在密码器输入密码');
this.setPopId('129')
sessionStorage.setItem('computerPath', this.$route.fullPath)
this.$router.push('/counter/list/')
},
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(() => {
//
if (!this.form.drawPassword) {
messagePassword()
return
}
this.$refs.form.validate(myValidate(() => {
//
this.visible = true;
this.visible = true;
}, this.$refs));
},
submitForm2() {
let nomtimeOpenAccount1 = sessionStorage.getItem('nomtimeOpenAccount1')
const cards = [
{
key: '122,13'
}
]
const parentId = '285,' + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ',287,5,26,58,118'
autoPlay(parentId, this.form, this.myTable2, this.myTable, cards)
this.setNeedsModule(moduleName)
this.submited = 1
},
checkHanzi: checkHanzi,
checkName: checkName,
inputListen: inputListen
}, this.$refs));
},
computed: {
...mapGetters({
dataFlow: 'system/dataFlow',
needsModule: 'system/needsModule',
idCardNumber: 'system/idCardNumber',
inMyWork: 'system/inMyWork',
getSelectList: 'system/getSelectList'
})
submitForm2 () {
let nomtimeOpenAccount1 = sessionStorage.getItem('nomtimeOpenAccount1')
const cards = [
{
key: '122,13'
}
]
const parentId = '285,' + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ',287,5,26,58,118'
autoPlay(parentId, this.form, this.myTable2, this.myTable, cards)
this.setNeedsModule(moduleName)
this.submited = 1
},
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>
@ -398,5 +404,4 @@ export default{
// left: 50%;
// transform: translate(-50%,-20%);
// }
// }
</style>
// }</style>

@ -1,436 +1,442 @@
//
<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="客户号" prop="clientNumber">
<el-input ref="clientNumber" disabled :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="请选择" 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="请选择" ref="voucherType">
<el-option label="银行卡" :value="127"> </el-option>
</el-select>
</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-form-item label="存期" prop="depositTerm">
<el-select v-model.trim="form.depositTerm" placeholder="请选择" ref="depositTerm">
<el-option label="1年" :value="86"> </el-option>
<el-option label="3年" :value="88"> </el-option>
<el-option label="5年" :value="89"> </el-option>
</el-select>
</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="请选择" 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 @blur="getDataBlur" maxlength="20" ref="voucherNumber" disabled :value="form.voucherNumber" @input="(val) => inputListen(val, form, 'voucherNumber')"></el-input>
</div>
<!-- <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 label="月存金额" prop="monthDeposit">
<!-- :value="form.monthDeposit" -->
<el-input :value="form.monthDeposit" maxlength="15" @input="val => ismoney(val, form, 'monthDeposit')" ref="monthDeposit" ></el-input>
</el-form-item>
<el-form-item label="续存标识" prop="extendDepositTarget">
<el-select v-model.trim="form.extendDepositTarget" placeholder="请选择" ref="extendDepositTarget">
<el-option label="不续存" :value="128"> </el-option>
<el-option label="续存1年" :value="129"> </el-option>
<el-option label="续存3年" :value="130"> </el-option>
<el-option label="续存5年" :value="131"> </el-option>
</el-select>
</el-form-item>
<!-- <el-form-item label="客户经理" prop="customerManage">
<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="客户号" prop="clientNumber">
<el-input ref="clientNumber" disabled :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="请选择" 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="请选择" ref="voucherType">
<el-option label="银行卡" :value="127"> </el-option>
</el-select>
</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-form-item label="存期" prop="depositTerm">
<el-select v-model.trim="form.depositTerm" placeholder="请选择" ref="depositTerm">
<el-option label="1年" :value="86"> </el-option>
<el-option label="3年" :value="88"> </el-option>
<el-option label="5年" :value="89"> </el-option>
</el-select>
</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="请选择" 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 @blur="getDataBlur" maxlength="20" ref="voucherNumber" disabled :value="form.voucherNumber"
@input="(val) => inputListen(val, form, 'voucherNumber')"></el-input>
</div>
<!-- <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 label="月存金额" prop="monthDeposit">
<!-- :value="form.monthDeposit" -->
<el-input :value="form.monthDeposit" maxlength="15" @input="val => ismoney(val, form, 'monthDeposit')"
ref="monthDeposit"></el-input>
</el-form-item>
<el-form-item label="续存标识" prop="extendDepositTarget">
<el-select v-model.trim="form.extendDepositTarget" placeholder="请选择" ref="extendDepositTarget">
<el-option label="不续存" :value="128"> </el-option>
<el-option label="续存1年" :value="129"> </el-option>
<el-option label="续存3年" :value="130"> </el-option>
<el-option label="续存5年" :value="131"> </el-option>
</el-select>
</el-form-item>
<!-- <el-form-item label="客户经理" prop="customerManage">
<el-input :value="form.customerManage" @input="val => checkHanzi(val, form, 'customerManage')" ref="customerManage" ></el-input>
</el-form-item> -->
</el-col>
<my-dialog :moduleName="moduleName" v-if="visible" :visible.sync="visible" :showForm="form" :formName="formName" @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" /> -->
</el-col>
<my-dialog :moduleName="moduleName" v-if="visible" :visible.sync="visible" :showForm="form" :formName="formName"
@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 { myValidate, checkHanzi, checkName, ismoney, autoPlay, autoPlay2, inputListen, messageIdCard, messageCard, messagePassword } from '@/utils/utilFunction.js';
import { mobPattern, namePattern, ratePattern, vercustomer } from '@/utils/verify.js'
const moduleName = 'usefulPhrases/openAccount'
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('nomUsefulPhrasesOpenPassword')) {
this.form.drawPassword = sessionStorage.getItem('nomUsefulPhrasesOpenPassword')
}
export default {
name: '',
props: {},
components: {
NeedBefore,
MyDialog
},
mixins: [TipsBefore],
created () {
if (sessionStorage.getItem('nomUsefulPhrasesOpenPassword')) {
this.form.drawPassword = sessionStorage.getItem('nomUsefulPhrasesOpenPassword')
}
// if(sessionStorage.getItem('nomUsefulPhrasesOpenCard2')) {
// this.idNumberJudge = true
// this.form.idNumber = this.dataFlow.idNumber || '441515199812064569'
// }
// if(sessionStorage.getItem('nomUsefulPhrasesOpenCard')) {
// this.cardNumberJudge = true
// this.form.voucherNumber = this.dataFlow.voucherNumber || '159753'
// }
// if(sessionStorage.getItem('nomUsefulPhrasesOpenCard2')) {
// this.idNumberJudge = true
// this.form.idNumber = this.dataFlow.idNumber || '441515199812064569'
// }
// if(sessionStorage.getItem('nomUsefulPhrasesOpenCard')) {
// this.cardNumberJudge = true
// this.form.voucherNumber = this.dataFlow.voucherNumber || '159753'
// }
if(sessionStorage.getItem('nomUsefulPhrasesOpenCard2')) {
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('nomUsefulPhrasesOpenCard')) {
this.cardNumberJudge = true
const { voucherNumber } = this.dataFlow
this.form.voucherNumber = voucherNumber
}
if (sessionStorage.getItem('nomUsefulPhrasesOpenCard2')) {
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('nomUsefulPhrasesOpenCard')) {
this.cardNumberJudge = true
const { voucherNumber } = this.dataFlow
this.form.voucherNumber = voucherNumber
}
this.getFormData()
this.getFormData()
},
data(){
return{
moduleName: 'usefulPhrases/openAccount',
visible: false,
cardNumberJudge: false,
idNumberJudge: false,
form:{
//
// identityCard: '', //
idNumber: '',
customerName: '', //
currency: '', //
goldLogo: '', //
voucherType: '', //
monthDeposit: '', //
depositTerm: '', //
extendDepositTarget: '', //
voucherNumber: '', //
drawPassword: '', //
//
clientNumber: '', //
certificateType: 83, //
},
formName:{
//
// identityCard: '', //
idNumber: '身份证',
customerName: '客户姓名', //
currency: '币种', //
goldLogo: '钞汇标识', //
voucherType: '凭证类型', //
monthDeposit: '月存金额', //
depositTerm: '存期', //
extendDepositTarget: '续存标识', //
voucherNumber: '凭证号码', //
drawPassword: '支付密码', //
//
clientNumber: '客户号', //
certificateType: '证件类型', //
},
rules: {
customerName: vercustomer,
currency: [
{
required: true,
message: '请选择币种',
trigger: 'blur'
}
],
goldLogo: [
{
required: true,
message: '请选择钞汇标识',
trigger: 'blur'
}
],
voucherType: [
{
required: true,
message: '请选择凭证类型',
trigger: 'blur'
}
],
monthDeposit: [
{
required: true,
message: '请输入月存金额',
trigger: 'blur'
}
],
depositTerm: [
{
required: true,
message: '请选择存期',
trigger: 'blur'
}
],
extendDepositTarget: [
{
required: true,
message: '请选择续存标识',
trigger: 'blur'
}
],
},
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
},
data () {
return {
moduleName: 'usefulPhrases/openAccount',
visible: false,
cardNumberJudge: false,
idNumberJudge: false,
form: {
//
// identityCard: '', //
idNumber: '',
customerName: '', //
currency: '', //
goldLogo: '', //
voucherType: '', //
monthDeposit: '', //
depositTerm: '', //
extendDepositTarget: '', //
voucherNumber: '', //
drawPassword: '', //
//
clientNumber: '', //
certificateType: 83, //
},
formName: {
//
// identityCard: '', //
idNumber: '身份证',
customerName: '客户姓名',
currency: '币种',
goldLogo: '钞汇标识',
voucherType: '凭证类型',
monthDeposit: '月存金额',
depositTerm: '存期',
extendDepositTarget: '续存标识',
voucherNumber: '凭证号码',
drawPassword: '支付密码',
//
clientNumber: '客户号', //
certificateType: '证件类型', //
},
rules: {
customerName: vercustomer,
currency: [
{
required: true,
message: '请选择币种',
trigger: 'blur'
}
],
goldLogo: [
{
required: true,
message: '请选择钞汇标识',
trigger: 'blur'
}
],
voucherType: [
{
required: true,
message: '请选择凭证类型',
trigger: 'blur'
}
],
monthDeposit: [
{
required: true,
message: '请输入月存金额',
trigger: 'blur'
}
],
depositTerm: [
{
required: true,
message: '请选择存期',
trigger: 'blur'
}
],
extendDepositTarget: [
{
required: true,
message: '请选择续存标识',
trigger: 'blur'
}
],
},
myTable2: {
158: {
prop: 'certificateType',//
type: '1',
"subjectId": 19,
},
// 169: {
// prop: 'customerManage',//
// type: '3',
// "subjectId": 27,
// },
160: {
prop: 'clientNumber',//
type: '3',
"subjectId": 6,
}
},
mounted() {
},
methods: {
// userName,
// peopleNumber,
// idNumber,
// currency:'CNY',
// goldLogo:'',
...mapMutations({
changeShowGoods: 'system/changeShowGoods',
setDataFlow: 'system/setDataFlow',
setNeedsModule: 'system/setNeedsModule',
setPopId: 'system/setPopId',
setTipsOperate: 'system/setTipsOperate'
}),
getDataBlur() {
// console.log('???')
},
myTable: {
159: {
prop: 'idNumber',//
type: '3',
},
popUp1(text) {
this.setTipsOperate('请刷身份证');
this.setPopId('1399')
sessionStorage.setItem('computerPath', this.$route.fullPath)
this.$router.push('/counter/list/')
161: {
prop: 'customerName',//
type: '3',
"subjectId": 7,
},
popUp2(text) {
this.setTipsOperate('请刷银行卡');
this.setPopId('166')
sessionStorage.setItem('computerPath', this.$route.fullPath)
this.$router.push('/counter/list/')
162: {
prop: 'currency',//
type: '1',
"subjectId": 8,
},
popUp3(text) {
this.setTipsOperate('请在密码器输入密码');
this.setPopId('167')
sessionStorage.setItem('computerPath', this.$route.fullPath)
this.$router.push('/counter/list/')
163: {
prop: 'goldLogo',//
type: '1',
"subjectId": 9,
},
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)
164: {
prop: 'voucherType',//
type: '1',
"subjectId": 11,
},
submitForm() {
if (this.submited) return this.$message.error('已提交!')
if(!this.form.idNumber) {
messageIdCard()
// let projectId = sessionStorage.getItem('projectId')
// let startTime = sessionStorage.getItem('startTime')
// let formList = [
// {
// "answerId":'159',
// "emptyOne": "",
// "emptyTwo": "",
// "operationIds": "285," + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id +",287,5,26,59,155,159,13",
// "type": ""
// }
// ]
// let params= {
// parentId: '285,' + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ',287,5,26,59,155,159',
// lcJudgmentRuleReq:formList,
// projectId:+projectId,
// startTime:startTime,
// }
// addOperation(params).then((data)=>{
// this.$message({
// message: '',
// type: 'success'
// });
// }).catch((error)=>{
// })
return
}
if(!this.form.voucherNumber) {
messageCard('请填写凭证号码')
return
}
if(!this.form.drawPassword) {
messagePassword()
return
}
this.$refs.form.validate(myValidate(() => {
//
this.visible = true;
}, this.$refs));
166: {
prop: 'voucherNumber',//
type: '3',
"subjectId": 44,
},
submitForm2() {
// let nomUsefulPhrasesOpenCard = sessionStorage.getItem('nomUsefulPhrasesOpenCard')
// let nomUsefulPhrasesOpenCard2 = sessionStorage.getItem('nomUsefulPhrasesOpenCard2')
// let nomUsefulPhrasesOpenPassword = sessionStorage.getItem('nomUsefulPhrasesOpenPassword')
const parentId = '285,' + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ',287,5,26,59,155'
const cards = [
{
key: '159,13'
}
// {
// 1399: nomUsefulPhrasesOpenCard2
// },
// {
// 166: nomUsefulPhrasesOpenCard
// },
// {
// 167: nomUsefulPhrasesOpenPassword,
// "subjectId": 17,
// }
]
this.setDataFlow(this.form)
autoPlay(parentId, this.form, this.myTable2, this.myTable, cards)
this.submited = 1
167: {
prop: 'drawPassword',
type: '3',
"subjectId": 17,
},
ismoney: ismoney,
checkHanzi: checkHanzi,
checkName: checkName,
inputListen: inputListen
},
computed: {
...mapGetters({
dataFlow: 'system/dataFlow',
needsModule: 'system/needsModule',
idCardNumber: 'system/idCardNumber',
inMyWork: 'system/inMyWork',
getSelectList: 'system/getSelectList'
})
168: {
prop: 'monthDeposit',//
type: '3',
"subjectId": 31,
},
170: {
prop: 'extendDepositTarget',//
type: '1',
"subjectId": 37,
},
},
submited: 0
}
},
mounted () {
},
methods: {
// userName,
// peopleNumber,
// idNumber,
// currency:'CNY',
// goldLogo:'',
...mapMutations({
changeShowGoods: 'system/changeShowGoods',
setDataFlow: 'system/setDataFlow',
setNeedsModule: 'system/setNeedsModule',
setPopId: 'system/setPopId',
setTipsOperate: 'system/setTipsOperate'
}),
getDataBlur () {
// console.log('???')
},
popUp1 (text) {
this.setTipsOperate('请刷身份证');
this.setPopId('1399')
sessionStorage.setItem('computerPath', this.$route.fullPath)
this.$router.push('/counter/list/')
},
popUp2 (text) {
this.setTipsOperate('请刷银行卡');
this.setPopId('166')
sessionStorage.setItem('computerPath', this.$route.fullPath)
this.$router.push('/counter/list/')
},
popUp3 (text) {
this.setTipsOperate('请在密码器输入密码');
this.setPopId('167')
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()
// let projectId = sessionStorage.getItem('projectId')
// let startTime = sessionStorage.getItem('startTime')
// let formList = [
// {
// "answerId":'159',
// "emptyOne": "",
// "emptyTwo": "",
// "operationIds": "285," + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id +",287,5,26,59,155,159,13",
// "type": ""
// }
// ]
// let params= {
// parentId: '285,' + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ',287,5,26,59,155,159',
// lcJudgmentRuleReq:formList,
// projectId:+projectId,
// startTime:startTime,
// }
// addOperation(params).then((data)=>{
// this.$message({
// message: '',
// type: 'success'
// });
// }).catch((error)=>{
// })
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 nomUsefulPhrasesOpenCard = sessionStorage.getItem('nomUsefulPhrasesOpenCard')
// let nomUsefulPhrasesOpenCard2 = sessionStorage.getItem('nomUsefulPhrasesOpenCard2')
// let nomUsefulPhrasesOpenPassword = sessionStorage.getItem('nomUsefulPhrasesOpenPassword')
const parentId = '285,' + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ',287,5,26,59,155'
const cards = [
{
key: '159,13'
}
// {
// 1399: nomUsefulPhrasesOpenCard2
// },
// {
// 166: nomUsefulPhrasesOpenCard
// },
// {
// 167: nomUsefulPhrasesOpenPassword,
// "subjectId": 17,
// }
]
this.setDataFlow(this.form)
autoPlay(parentId, this.form, this.myTable2, this.myTable, cards)
this.submited = 1
},
ismoney: ismoney,
checkHanzi: checkHanzi,
checkName: checkName,
inputListen: inputListen
},
computed: {
...mapGetters({
dataFlow: 'system/dataFlow',
needsModule: 'system/needsModule',
idCardNumber: 'system/idCardNumber',
inMyWork: 'system/inMyWork',
getSelectList: 'system/getSelectList'
})
}
}
</script>
<style lang='scss' scoped>
</style>
<style lang='scss' scoped></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>
<!-- 商业银行系统菜单文件 -->
<el-menu class="sidebar-el-menu"
:default-active="onRoutes"
@select="select"
router
background-color="#313540"
text-color="#fff"
active-text-color="#ffd04b"
unique-opened>
<template v-for="(item,index) in menus">
<el-menu class="sidebar-el-menu" :default-active="onRoutes" @select="select" 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">
<el-submenu :index="item.index"
:key="item.index">
<el-submenu :index="item.index" :key="item.index">
<template slot="title">
<el-image style="width: 22px; height: 22px; margin-right: 10px;"
class="align-middle"
:src="item.logo"></el-image>
<el-image style="width: 22px; height: 22px; margin-right: 10px;" class="align-middle"
:src="item.logo"></el-image>
<span slot="title">{{ item.title }}</span>
</template>
<template v-for="(subItem,index) in item.children">
<el-submenu v-if="subItem.children"
:index="subItem.index"
:key="subItem.index">
<template v-for="(subItem, index) in item.children">
<el-submenu v-if="subItem.children" :index="subItem.index" :key="subItem.index">
<template slot="title">{{ subItem.title }}</template>
<el-menu-item v-for="(threeItem,i) in subItem.children"
:key="i"
:index="threeItem.index">{{ threeItem.title }}</el-menu-item>
<el-menu-item v-for="(threeItem, i) in subItem.children" :key="i" :index="threeItem.index">{{
threeItem.title
}}</el-menu-item>
</el-submenu>
<el-menu-item v-else
:index="subItem.index"
:key="subItem.index">{{ subItem.title }}</el-menu-item>
<el-menu-item v-else :index="subItem.index" :key="subItem.index">{{ subItem.title }}</el-menu-item>
</template>
</el-submenu>
</template>
<template v-else>
<el-menu-item :index="item.index"
:key="item.index">
<i :class="item.icon"></i>
<el-menu-item :index="item.index" :key="item.index">
<el-image v-if="item.logo" style="width: 22px; height: 22px; margin: 0 10px 0 26px;" class="align-middle"
:src="item.logo"></el-image>
<span slot="title">{{ item.title }}</span>
</el-menu-item>
</template>
@ -47,20 +35,15 @@
<script>
import { mapState } from 'vuex'
// import bus from '@/libs/bus';
import Setting from '@/setting';
export default {
// props: {
// needIndex: {
// type: String,
// required: true
// }
// },
computed: {
...mapState('system', ['isCredit'])
},
data () {
return {
// onRoutes:'/counter/list/manage/consumerClient',
onRoutes: '',
menus: [
menus: [],
defaultMenus: [
{
icon: 'menu-icon icon-index',
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'),
},
],
}
},
watch: {
// '$route.path':function (val) {
// this.onRoutes = val
// },
needIndex (newVal) {
this.onRoutes = newVal
creditMenus: [
{
icon: 'menu-icon icon-index',
index: '/counter/list/manage/personalLoans',
title: '个人贷款',
logo: require('@/assets/img/systemInput/个人贷款.svg'),
},
{
icon: 'menu-icon icon-index',
index: '/index/list1',
title: '公司贷款',
logo: require('@/assets/img/systemInput/公司贷款.svg'),
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 () {
const path = sessionStorage.getItem('computerPath')
this.menus = this.isCredit ? this.creditMenus : this.defaultMenus
let path = sessionStorage.getItem(this.isCredit ? 'creditPath' : 'computerPath')
if (path) {
this.onRoutes = path
} else {
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: {
select (path) {
this.onRoutes = path
}
},
beforeDestroy () {
sessionStorage.setItem('computerPath', this.onRoutes)
sessionStorage.getItem('submited') || this.$router.push('/counter/list/')
},
};
</script>
@ -317,28 +329,32 @@ export default {
// }
.sidebar::-webkit-scrollbar {
width: 0;
width: 0;
}
.sidebar-el-menu:not(.el-menu--collapse) {
width: 100%;
border: 0;
border-bottom-left-radius: 20px;
width: 100%;
border: 0;
border-bottom-left-radius: 20px;
}
.sidebar > ul {
height: 100%;
.sidebar>ul {
height: 100%;
}
/deep/.el-menu {
border: 0;
border: 0;
}
// menu
/deep/ .el-submenu__title span {
font-size: 18px;
font-size: 18px;
}
/deep/.el-menu-item {
font-size: 18px !important;
font-size: 18px !important;
}
// .myOver {
// overflow: hidden;
// }
</style>
// }</style>

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

@ -5,180 +5,245 @@ const meta = {};
const pre = 'counter-';
export default {
path: '/counter',
name: 'counter',
redirect: {
name: `${pre}list`
},
meta,
component: BasicLayout,
children: [
path: '/counter',
name: 'counter',
redirect: {
name: `${pre}list`
},
meta,
component: BasicLayout,
children: [
{
name: `${pre}list`,
path: `list`,
component: () => import('@/pages/counter/list'),
meta: { title: '综合柜台' },
children: [
{
name: `${pre}list`,
path: `list`,
component: () => import('@/pages/counter/list'),
meta: { title: '综合柜台' },
children:[
{
name: `${pre}manager`,
path: `manage`,
component: () => import('@/pages/manage/index'),
meta: { title: '系统管理' },
children:[
// 客户信息
{
name: `${pre}consumerClient`,
path: `consumerClient`,
component: () => import('@/pages/manage/list/client/consumerClient.vue'),
meta: { title: '个人客户信息建立' },
},
{
name: `${pre}corporateClient`,
path: `corporateClient`,
component: () => import('@/pages/manage/list/client/corporateClient.vue'),
meta: { title: '公司客户信息建立' },
},
// 个人业务
{
name: `${pre}currentAccount`,
path: `currentAccount`,
component: () => import('@/pages/manage/list/personal/currentAccount/index.vue'),
meta: { title: '活期业务' },
},
{
name: `${pre}timeDeposit`,
path: `timeDeposit`,
component: () => import('@/pages/manage/list/personal/timeDeposit/timeDeposit.vue'),
meta: { title: '整存整取' }
},
{
name: `${pre}usefulPhrases`,
path: `usefulPhrases`,
component: () => import('@/pages/manage/list/personal/usefulPhrases/usefulPhrases.vue'),
meta: { title: '零存整取' },
},
{
name: `${pre}callDeposits`,
path: `callDeposits`,
component: () => import('@/pages/manage/list/personal/callDeposits/callDeposits.vue'),
meta: { title: '通知存款' },
},
{
name: `${pre}accountService`,
path: `accountService`,
component: () => import('@/pages/manage/list/personal/accountService/accountService.vue'),
meta: { title: '账户服务' },
},
// 公司业务
{
name: `${pre}accountService`,
path: `business-openAccount`,
component: () => import('@/pages/manage/list/business/openAccount.vue'),
meta: { title: '公司业务开户' },
},
{
name: `${pre}accountService`,
path: `business-deposit`,
component: () => import('@/pages/manage/list/business/deposit.vue'),
meta: { title: '公司业务存款' },
},
{
name: `${pre}accountService`,
path: `business-withdrawal`,
component: () => import('@/pages/manage/list/business/withdrawal.vue'),
meta: { title: '公司业务取款' },
},
{
name: `${pre}accountService`,
path: `business-transfer`,
component: () => import('@/pages/manage/list/business/transfer.vue'),
meta: { title: '公司业务转账' },
},
name: `${pre}manager`,
path: `manage`,
component: () => import('@/pages/manage/index'),
meta: { title: '系统管理' },
children: [
// 客户信息
{
name: `${pre}consumerClient`,
path: `consumerClient`,
component: () => import('@/pages/manage/list/client/consumerClient.vue'),
meta: { title: '个人客户信息建立' },
},
{
name: `${pre}corporateClient`,
path: `corporateClient`,
component: () => import('@/pages/manage/list/client/corporateClient.vue'),
meta: { title: '公司客户信息建立' },
},
// 个人业务
{
name: `${pre}currentAccount`,
path: `currentAccount`,
component: () => import('@/pages/manage/list/personal/currentAccount/index.vue'),
meta: { title: '活期业务' },
},
{
name: `${pre}timeDeposit`,
path: `timeDeposit`,
component: () => import('@/pages/manage/list/personal/timeDeposit/timeDeposit.vue'),
meta: { title: '整存整取' }
},
{
name: `${pre}usefulPhrases`,
path: `usefulPhrases`,
component: () => import('@/pages/manage/list/personal/usefulPhrases/usefulPhrases.vue'),
meta: { title: '零存整取' },
},
{
name: `${pre}callDeposits`,
path: `callDeposits`,
component: () => import('@/pages/manage/list/personal/callDeposits/callDeposits.vue'),
meta: { title: '通知存款' },
},
{
name: `${pre}accountService`,
path: `accountService`,
component: () => import('@/pages/manage/list/personal/accountService/accountService.vue'),
meta: { title: '账户服务' },
},
// 公司业务
{
name: `${pre}accountService`,
path: `business-openAccount`,
component: () => import('@/pages/manage/list/business/openAccount.vue'),
meta: { title: '公司业务开户' },
},
{
name: `${pre}accountService`,
path: `business-deposit`,
component: () => import('@/pages/manage/list/business/deposit.vue'),
meta: { title: '公司业务存款' },
},
{
name: `${pre}accountService`,
path: `business-withdrawal`,
component: () => import('@/pages/manage/list/business/withdrawal.vue'),
meta: { title: '公司业务取款' },
},
{
name: `${pre}accountService`,
path: `business-transfer`,
component: () => import('@/pages/manage/list/business/transfer.vue'),
meta: { title: '公司业务转账' },
},
// 账户服务
{
name: `${pre}servicesPasswordChange`,
path: `servicesAccount-passwordChange`,
component: () => import('@/pages/manage/list/servicesAccount/passwordChange.vue'),
meta: { title: '密码修改' },
},
{
name: `${pre}servicesPasswordLost`,
path: `servicesAccount-passwordLost`,
component: () => import('@/pages/manage/list/servicesAccount/passwordLost.vue'),
meta: { title: '密码挂失' },
},
{
name: `${pre}servicesRelieveLost`,
path: `servicesAccount-relieveLost`,
component: () => import('@/pages/manage/list/servicesAccount/relieveLost.vue'),
meta: { title: '挂失解挂' },
},
// 账户服务
{
name: `${pre}servicesPasswordChange`,
path: `servicesAccount-passwordChange`,
component: () => import('@/pages/manage/list/servicesAccount/passwordChange.vue'),
meta: { title: '密码修改' },
},
{
name: `${pre}servicesPasswordLost`,
path: `servicesAccount-passwordLost`,
component: () => import('@/pages/manage/list/servicesAccount/passwordLost.vue'),
meta: { title: '密码挂失' },
},
{
name: `${pre}servicesRelieveLost`,
path: `servicesAccount-relieveLost`,
component: () => import('@/pages/manage/list/servicesAccount/relieveLost.vue'),
meta: { title: '挂失解挂' },
},
// 同城交互
{
name: `${pre}cityWideOut`,
path: `cityWide-out`,
component: () => import('@/pages/manage/list/cityWide/cityWideOut.vue'),
meta: { title: '同城提出' },
},
{
name: `${pre}cityWideIn`,
path: `cityWide-in`,
component: () => import('@/pages/manage/list/cityWide/cityWideIn.vue'),
meta: { title: '同城提入' },
},
// 同城交互
{
name: `${pre}cityWideOut`,
path: `cityWide-out`,
component: () => import('@/pages/manage/list/cityWide/cityWideOut.vue'),
meta: { title: '同城提出' },
},
{
name: `${pre}cityWideIn`,
path: `cityWide-in`,
component: () => import('@/pages/manage/list/cityWide/cityWideIn.vue'),
meta: { title: '同城提入' },
},
// 银行承兑汇票
{
name: `${pre}acceptanceDraftInvoice`,
path: `acceptanceDraft-invoice`,
component: () => import('@/pages/manage/list/acceptanceDraft/invoice.vue'),
meta: { title: '商业承兑汇票开票' },
},
// 银行承兑汇票
{
name: `${pre}acceptanceDraftInvoice`,
path: `acceptanceDraft-invoice`,
component: () => import('@/pages/manage/list/acceptanceDraft/invoice.vue'),
meta: { title: '商业承兑汇票开票' },
},
// 重空现金
{
name: `${pre}importantCash`,
path: `importantCash-cashRecipients`,
component: () => import('@/pages/manage/list/ImportantCash/controlCash/index.vue'),
meta: { title: '重空现金管理' },
},
{
name: `${pre}importantCash2`,
path: `importantCash-cashRecipients2`,
component: () => import('@/pages/manage/list/ImportantCash/controlCash2/index.vue'),
meta: { title: '重空现金凭证管理' },
},
{
name: `${pre}importantCash3`,
path: `importantCash-cashRecipients3`,
component: () => import('@/pages/manage/list/ImportantCash/controlCash3/index.vue'),
meta: { title: '重空现金支票管理' },
},
// 日终管理
{
name: `${pre}dayEnd`,
path: `dayEnd-tellerCash`,
component: () => import('@/pages/manage/list/dayEnd/tellerCash.vue'),
meta: { title: '日终管理柜员现金扎帐' },
},
{
name: `${pre}dayEnd`,
path: `dayEnd-tellerCertificate`,
component: () => import('@/pages/manage/list/dayEnd/tellerCertificate.vue'),
meta: { title: '日终管理柜员凭证扎帐' },
},
{
name: `${pre}dayEnd`,
path: `dayEnd-branchDayEnd`,
component: () => import('@/pages/manage/list/dayEnd/branchDayEnd.vue'),
meta: { title: '日终管理网点日终扎帐' },
},
// 重空现金
{
name: `${pre}importantCash`,
path: `importantCash-cashRecipients`,
component: () => import('@/pages/manage/list/ImportantCash/controlCash/index.vue'),
meta: { title: '重空现金管理' },
},
{
name: `${pre}importantCash2`,
path: `importantCash-cashRecipients2`,
component: () => import('@/pages/manage/list/ImportantCash/controlCash2/index.vue'),
meta: { title: '重空现金凭证管理' },
},
{
name: `${pre}importantCash3`,
path: `importantCash-cashRecipients3`,
component: () => import('@/pages/manage/list/ImportantCash/controlCash3/index.vue'),
meta: { title: '重空现金支票管理' },
},
// 日终管理
{
name: `${pre}dayEnd`,
path: `dayEnd-tellerCash`,
component: () => import('@/pages/manage/list/dayEnd/tellerCash.vue'),
meta: { title: '日终管理柜员现金扎帐' },
},
{
name: `${pre}dayEnd`,
path: `dayEnd-tellerCertificate`,
component: () => import('@/pages/manage/list/dayEnd/tellerCertificate.vue'),
meta: { title: '日终管理柜员凭证扎帐' },
},
{
name: `${pre}dayEnd`,
path: `dayEnd-branchDayEnd`,
component: () => import('@/pages/manage/list/dayEnd/branchDayEnd.vue'),
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
]
/**
* 在主框架之外显示
*/
// const frameOut = [
// // 登录
// {
// path: '/login',
// name: 'login',
// meta: {
// title: '登录'
// },
// component: () => import('@/pages/account/login')
// }
// ];
/**
* 错误页面

@ -5,66 +5,67 @@
const env = process.env.NODE_ENV;
const Setting = {
/**
* 基础配置
* */
// 网页标题的后缀
titleSuffix: '银行教学系统',
// 路由模式,可选值为 history 或 hash
routerMode: 'hash',
// 页面切换时,是否显示模拟的进度条
showProgressBar: true,
// 接口请求地址
// 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',
// 接口请求返回错误时,弹窗的持续时间,单位:秒
modalDuration: 3,
// 接口请求返回错误时,弹窗的类型,可选值为 Message 或 Notice
errorModalType: 'Message',
// Cookies 默认保存时间,单位:天
cookiesExpires: 1,
/**
* token的key
*/
tokenKey: 'bank_token',
/**
* sessionStorage里state的key
*/
storeKey: 'bank_store',
/**
* sessionStorage里username的key
*/
usernameKey: 'bank_username',
/**
* 系统id
*/
systemId: 12,
/**
* 默认密码
*/
initialPassword: '111aaa',
/**
* 多语言配置
* */
i18n: {
// 默认语言
default: 'zh',
// 是否根据用户电脑配置自动设置语言(仅第一次有效)
auto: false
},
/**
* 布局配置
* */
layout: {
/**
* 基础配置
* */
// 网页标题的后缀
titleSuffix: '银行教学系统',
// 路由模式,可选值为 history 或 hash
routerMode: 'hash',
// 页面切换时,是否显示模拟的进度条
showProgressBar: true,
// 接口请求地址
// apiBaseURL: env === 'development' ? 'http://192.168.31.125:8888' : 'http://121.37.12.51:8000',
apiBaseURL: env === 'development' ? 'http://192.168.31.151:9000' : location.origin,
// 接口请求返回错误时,弹窗的持续时间,单位:秒
modalDuration: 3,
// 接口请求返回错误时,弹窗的类型,可选值为 Message 或 Notice
errorModalType: 'Message',
// Cookies 默认保存时间,单位:天
cookiesExpires: 1,
/**
* token的key
*/
tokenKey: 'bank_token',
/**
* sessionStorage里state的key
*/
storeKey: 'bank_store',
/**
* sessionStorage里username的key
*/
usernameKey: 'bank_username',
isDev: process.env.NODE_ENV === 'development',
/**
* 系统id
*/
systemId: 12,
/**
* 默认密码
*/
initialPassword: '111aaa',
/**
* 多语言配置
* */
i18n: {
// 默认语言
default: 'zh',
// 是否根据用户电脑配置自动设置语言(仅第一次有效)
auto: false
},
/**
* 布局配置
* */
layout: {
},
/**
* 功能配置
* */
// 相同路由,不同参数间进行切换,是否强力更新
sameRouteForceUpdate: false,
// 是否使用动态路由
dynamicRoute: true,
},
/**
* 功能配置
* */
// 相同路由,不同参数间进行切换,是否强力更新
sameRouteForceUpdate: false,
// 是否使用动态路由
dynamicRoute: true,
};
export default Setting;

File diff suppressed because it is too large Load Diff

@ -2,84 +2,52 @@
import Setting from '@/setting'
import util from '@/libs/util'
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 Cookie from 'js-cookie'
import router from '@/router'
/**
* 用户信息
* */
export default {
namespaced: true,
state: {
avatar: 'https://cube.elemecdn.com/3/7c/3ea6beec64369c2642b92c6726f1epng.png',
userName: '',
schoolId: '',
isManager: false
namespaced: true,
state: {
avatar: 'https://cube.elemecdn.com/3/7c/3ea6beec64369c2642b92c6726f1epng.png',
userName: '',
schoolId: '',
isManager: false
},
mutations: {
SET_MANAGER: (state, isManager) => {
state.isManager = isManager
},
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) => {
state.isManager = isManager
},
logout () {
const isAdmin = Cookie.get('manager')
let href = process.env.NODE_ENV === 'development' ?
`http://${location.hostname}:8082/#/` :
`${location.origin}${isAdmin ? '/admin' : ''}/#/`
if (location.origin === 'http://121.37.12.51') {
href = `http://121.37.12.51/${isAdmin ? 'admin' : 'student'}/#/`
}
const { query } = router.app._route
let assessmentId = sessionStorage.getItem('assessmentId') || query.assessmentId
let competitionId = sessionStorage.getItem('competitionId') || query.competitionId
if (assessmentId != 'null' && assessmentId != null && assessmentId != '') {
href += `ass/list`
} else if (competitionId != 'null' && competitionId != null && competitionId != '') {
href += `match/details?id=${competitionId}`
} else {
const cid = sessionStorage.getItem('cid')
href += `station/preview?courseId=${cid}&curriculumName=银行项目&mallId=${router.currentRoute.query.mallId}`
}
sessionStorage.clear()
location.href = href
},
actions: {
login({ state,commit }, userInfo) {
const { account, password, code, random } = userInfo
return new Promise((resolve, reject) => {
post(api.logins,{
account,
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 => {
reject(error)
})
})
},
logout({ commit, state, dispatch }) {
return new Promise((resolve, reject) => {
util.local.remove(Setting.storeKey)
util.local.remove(Setting.tokenKey)
location.reload()
resolve()
})
},
setAvatar({ state,commit },avatar) {
commit('SET_AVATAR',avatar)
let data = {
userId: state.userId,
userAvatars: avatar
}
post(api.userinfoUpdate,data).then(res => {}).catch(res => {})
},
setInfo({ state,commit },info) {
commit('SET_INFO',info)
},
setManager({ state,commit },isManager) {
commit('SET_MANAGER',isManager)
},
}
},
actions: {
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,329 +4,331 @@ import store from '@/store'
const phoneListen = function(val, form, prop) {
if(/^[0-9]*$/.test(val)) {
form[prop] = val;
}
const phoneListen = function (val, form, prop) {
if (/^[0-9]*$/.test(val)) {
form[prop] = val;
}
}
const mailBoxListen = function(val, form, prop) {
if(/^[\u4E00-\u9FA5A-Za-z0-9_]+$/.test(val) || val==='') {
form[prop] = val;
}
const mailBoxListen = function (val, form, prop) {
if (/^[\u4E00-\u9FA5A-Za-z0-9_]+$/.test(val) || val === '') {
form[prop] = val;
}
}
// 校验中文
const checkHanzi = function(val, form, prop) {
// 检查符号
const charReg = /[`~!@#$%^&*()_\-+=<>?:"{}|,.\/;'\\[\]·~!@#¥%……&*()——\-+={}|《》?:“”【】、;‘',。、]/im;
// 检查空格
const tmpCheck = val.substr(val.length-1, 1);
if(tmpCheck === ' ' || charReg.test(val) || /[\u4E00-\u9FA5]/i.test(val)) {
return;
}
form[prop] = val;
const checkHanzi = function (val, form, prop) {
// 检查符号
const charReg = /[`~!@#$%^&*()_\-+=<>?:"{}|,.\/;'\\[\]·~!@#¥%……&*()——\-+={}|《》?:“”【】、;‘',。、]/im;
// 检查空格
const tmpCheck = val.substr(val.length - 1, 1);
if (tmpCheck === ' ' || charReg.test(val) || /[\u4E00-\u9FA5]/i.test(val)) {
return;
}
form[prop] = val;
}
const checkName = function(val, form, prop) {
// 检查符号
const charReg = /[`~!@#$%^&*()_\-+=<>?:"{}|,.\/;'\\[\]·~!@#¥%……&*()——\-+={}|《》?:“”【】、;‘',。、]/im;
// // 检查数字
const charReg2 = /^[0-9]*$/;
const tmpCheck = val.substr(val.length-1, 1);
if(val.length<form[prop].length) {
form[prop] = val;
return;
}
if(charReg.test(val) || charReg2.test(tmpCheck)) {
return;
}
const checkName = function (val, form, prop) {
// 检查符号
const charReg = /[`~!@#$%^&*()_\-+=<>?:"{}|,.\/;'\\[\]·~!@#¥%……&*()——\-+={}|《》?:“”【】、;‘',。、]/im;
// // 检查数字
const charReg2 = /^[0-9]*$/;
const tmpCheck = val.substr(val.length - 1, 1);
if (val.length < form[prop].length) {
form[prop] = val;
return;
}
if (charReg.test(val) || charReg2.test(tmpCheck)) {
return;
}
form[prop] = val;
}
// 检查证件号
const certificateNumber = function(val, form, prop) {
const charReg = /^(0|[0-9][0-9]*)$/;
if(val.length<form[prop].length) {
form[prop] = val;
return;
}
const certificateNumber = function (val, form, prop) {
const charReg = /^(0|[0-9][0-9]*)$/;
if (val.length < form[prop].length) {
form[prop] = val;
return;
}
if(charReg.test(val)) {
form[prop] = val;
}
if (charReg.test(val)) {
form[prop] = val;
}
}
// 监听年利率
const rateListen = function(val, form, prop) {
// 检查符号 允许%
// const charReg = /[`~!@#$^&*()_\-+=<>?:"{}|,.\/;'\\[\]·~!@#¥……&*()——\-+={}|《》?:“”【】、;‘',。、]/im;
const charReg =/^\\d+(\\.\\d)?\\d{0,1}%$/
// 检查空格
if(charReg.test(val) || /[\u4E00-\u9FA5]/i.test(val)) {
return;
}
form[prop] = val;
const rateListen = function (val, form, prop) {
// 检查符号 允许%
// const charReg = /[`~!@#$^&*()_\-+=<>?:"{}|,.\/;'\\[\]·~!@#¥……&*()——\-+={}|《》?:“”【】、;‘',。、]/im;
const charReg = /^\\d+(\\.\\d)?\\d{0,1}%$/
// 检查空格
if (charReg.test(val) || /[\u4E00-\u9FA5]/i.test(val)) {
return;
}
form[prop] = val;
}
// 监听数字
const inputListen = function(val, row, prop) {
// 检查空格
const tmpCheck = val.substr(val.length-1, 1);
if(tmpCheck === ' ') {
return;
}
if(val === '') {
row[prop] = val;
return;
}
row[prop] = Number(val.replace(/\D+/, ''))
const inputListen = function (val, row, prop) {
// 检查空格
const tmpCheck = val.substr(val.length - 1, 1);
if (tmpCheck === ' ') {
return;
}
if (val === '') {
row[prop] = val;
return;
}
row[prop] = Number(val.replace(/\D+/, ''))
}
// 另一个监听数字的方法,根据需求不同来选。
const inputListen2 = function(val, row, prop) {
// 检查空格
const tmpCheck = val.substr(val.length-1, 1);
if(tmpCheck === ' ') {
return;
}
// 可以删光
if(val === '') {
row[prop] = val;
return;
}
if(Number(val) || Number(val)===0) {
row[prop] = val
}
const inputListen2 = function (val, row, prop) {
// 检查空格
const tmpCheck = val.substr(val.length - 1, 1);
if (tmpCheck === ' ') {
return;
}
// 可以删光
if (val === '') {
row[prop] = val;
return;
}
if (Number(val) || Number(val) === 0) {
row[prop] = val
}
}
// 验证是否金钱
const ismoney = function(val, row, prop) {
// 检查空格
const tmpCheck = val.substr(val.length-1, 1);
if(tmpCheck === ' ') {
return;
}
if(val.length === 15) {
return
}
// 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])?$)/; // 保留小数点后两位
if (reg2.test(Number(val)) || val==='') {
row[prop] = val
}
const ismoney = function (val, row, prop) {
// 检查空格
const tmpCheck = val.substr(val.length - 1, 1);
if (tmpCheck === ' ') {
return;
}
if (val.length === 15) {
return
}
// debugger
// 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])?$)/; // 保留小数点后两位
if (reg2.test(Number(val)) || val === '') {
console.log(44)
row[prop] = val
}
}
// 检查某个空是否填写完成
const checkRequired = function(form, obj) {
for(const prop in obj) {
if(form[prop] === '') {
MessageBox.alert('请填写' + obj[prop], '提示', {
type: 'info',
confirmButtonText: '确定'
});
return prop
}
const checkRequired = function (form, obj) {
for (const prop in obj) {
if (form[prop] === '') {
MessageBox.alert('请填写' + obj[prop], '提示', {
type: 'info',
confirmButtonText: '确定'
});
return prop
}
return '';
}
return '';
}
// 自己封装的验证方法,配合element-ui的validate使用
const myValidate = (callback, refs) => {
return (valid, obj) => {
if (valid) {
callback()
} else {
let tmpObj = {};
for(const key in obj) {
tmpObj = obj[key][0]
break;
}
const { message, field } = tmpObj
try {
refs[field].focus();
} catch (error) {
}
Message.warning({
center: true,
message
})
}
return (valid, obj) => {
if (valid) {
callback()
} else {
let tmpObj = {};
for (const key in obj) {
tmpObj = obj[key][0]
break;
}
const { message, field } = tmpObj
try {
refs[field].focus();
} catch (error) {
}
Message.warning({
center: true,
message
})
}
}
}
// 电脑的系统录入中提交表单
const autoPlay = (parentId, form, myTable2, myTable, cards=[]) => {
let projectId = sessionStorage.getItem('projectId') || 11 // 默认11吧?
let startTime = sessionStorage.getItem('startTime')
let formList = [];
// let tmpIndex = 100;
for(const key in myTable2) {
const { prop, type, subjectId='' } = myTable2[key]
if(form[prop]){
formList.push({ "answerId": key + '', "emptyOne": '' + subjectId, "emptyTwo": form[prop], "operationIds": parentId + ',' + key, "type":type })
}
}
for(const key in myTable) {
const { prop, type, subjectId='' } = myTable[key]
formList.push({ "answerId": key + '', "emptyOne": '' + subjectId, "emptyTwo": form[prop], "operationIds": parentId + ',' + key, "type":type })
}
for(let i=0; i<cards.length; i++ ) {
formList.push({ "answerId": '', "emptyOne": '', "emptyTwo": '', "operationIds": parentId + ',' + cards[i].key, "type":"" })
}
let params= {
parentId,
lcJudgmentRuleReq:formList,
projectId: projectId,
// projectId:+projectId,
startTime:startTime,
const autoPlay = (parentId, form, myTable2, myTable, cards = []) => {
let projectId = sessionStorage.getItem('projectId') || 11 // 默认11吧?
let startTime = sessionStorage.getItem('startTime')
let formList = [];
// let tmpIndex = 100;
for (const key in myTable2) {
const { prop, type, subjectId = '' } = myTable2[key]
if (form[prop]) {
formList.push({ "answerId": key + '', "emptyOne": '' + subjectId, "emptyTwo": form[prop], "operationIds": parentId + ',' + key, "type": type })
}
addOperation(params).then((data)=>{
// Message.success({
// center: true,
// message: '提交成功'
// })
}).catch((error)=>{
this.$message({
message: '服务器繁忙,提交失败。',
center: true,
type: 'info'
});
})
}
for (const key in myTable) {
const { prop, type, subjectId = '' } = myTable[key]
formList.push({ "answerId": key + '', "emptyOne": '' + subjectId, "emptyTwo": form[prop], "operationIds": parentId + ',' + key, "type": type })
}
for (let i = 0; i < cards.length; i++) {
formList.push({ "answerId": '', "emptyOne": '', "emptyTwo": '', "operationIds": parentId + ',' + cards[i].key, "type": "" })
}
let params = {
parentId,
lcJudgmentRuleReq: formList,
projectId: projectId,
// projectId:+projectId,
startTime: startTime,
}
addOperation(params).then((data) => {
// Message.success({
// center: true,
// message: '提交成功'
// })
}).catch((error) => {
this.$message({
message: '服务器繁忙,提交失败。',
center: true,
type: 'info'
});
})
}
// 电脑录入中获取缓存信息
const autoPlay2 = (parentId=11, form, myTable2, myTable, cardArr, callback) => {
// 默认11吧?
let param= {
parentId
}
getOperation(param).then((data)=>{
if(data.status == 200) {
var list = data.data.judgmentRuleReqs
// const tmpObj = Object.assign(myTable, myTable2) ...巨坑,把后面的属性给到前面了
const tmpObj = {...myTable, ...myTable2}
for (var i = 0; i < list.length; i++) {
const { answerId, emptyTwo } = list[i]
if(!cardArr) {
if(Number(emptyTwo)) {
const tmpNumber =+emptyTwo
// console.log('kao000')
// console.log(tmpNumber)
form[tmpObj[answerId].prop] = tmpNumber
}else {
form[tmpObj[answerId].prop] = emptyTwo
}
} else {
if(cardArr[answerId]) {
try{
sessionStorage.setItem(cardArr[answerId], JSON.parse(list[i].emptyTwo))
}catch(e) {
// sessionStorage.setItem(cardArr[answerId], list[i].emptyTwo)
continue;
}
}else {
if(Number(emptyTwo)) {
form[tmpObj[answerId].prop] = +emptyTwo
}else {
form[tmpObj[answerId].prop] = emptyTwo
}
// form[tmpObj[answerId].prop] = emptyTwo
}
}
// form[tmpObj[answerId].prop] = emptyTwo
const autoPlay2 = (parentId = 11, form, myTable2, myTable, cardArr, callback) => {
// 默认11吧?
let param = {
parentId
}
getOperation(param).then((data) => {
if (data.status == 200) {
var list = data.data.judgmentRuleReqs
// const tmpObj = Object.assign(myTable, myTable2) ...巨坑,把后面的属性给到前面了
const tmpObj = { ...myTable, ...myTable2 }
for (var i = 0; i < list.length; i++) {
const { answerId, emptyTwo } = list[i]
if (!cardArr) {
if (Number(emptyTwo)) {
const tmpNumber = +emptyTwo
// console.log('kao000')
// console.log(tmpNumber)
form[tmpObj[answerId].prop] = tmpNumber
} else {
form[tmpObj[answerId].prop] = emptyTwo
}
} else {
if (cardArr[answerId]) {
try {
sessionStorage.setItem(cardArr[answerId], JSON.parse(list[i].emptyTwo))
} catch (e) {
// sessionStorage.setItem(cardArr[answerId], list[i].emptyTwo)
continue;
}
callback()
} else {
if (Number(emptyTwo)) {
form[tmpObj[answerId].prop] = +emptyTwo
} else {
form[tmpObj[answerId].prop] = emptyTwo
}
// form[tmpObj[answerId].prop] = emptyTwo
}
}
}).catch((error)=>{
})
// form[tmpObj[answerId].prop] = emptyTwo
}
callback()
}
}).catch((error) => {
})
}
const autoPlay3 = (name, allName, arr) => { // 要接收的, 所有的, 要接收的属性
for(let key of arr) {
name[key] = allName[key]
}
for (let key of arr) {
name[key] = allName[key]
}
}
// 获取当前年月日并格式化
const getNowDate = () => {
const date = new Date()
var y = date.getFullYear();
var m = date.getMonth() + 1;
m = m < 10 ? '0' + m : m;
var d = date.getDate();
d = d < 10 ? ('0' + d) : d;
return y + '-' + m + '-' + d;
const date = new Date()
var y = date.getFullYear();
var m = date.getMonth() + 1;
m = m < 10 ? '0' + m : m;
var d = date.getDate();
d = d < 10 ? ('0' + d) : d;
return y + '-' + m + '-' + d;
}
// 提示请刷身份证信息
const messageIdCard = (message='请刷身份证') => {
store.commit('system/setTipsOperate', message)
// Message.warning({
// center: true,
// message,
// })
const messageIdCard = (message = '请刷身份证') => {
store.commit('system/setTipsOperate', message)
// Message.warning({
// center: true,
// message,
// })
}
// 提示请刷银行卡信息
const messageCard = (message='请刷银行卡') => {
store.commit('system/setTipsOperate', message)
// Message.warning({
// center: true,
// message
// })
const messageCard = (message = '请刷银行卡') => {
store.commit('system/setTipsOperate', message)
// Message.warning({
// center: true,
// message
// })
}
// 提示请填写支取密码信息
const messagePassword = (message='请填写支取密码') => {
store.commit('system/setTipsOperate', message)
// Message.warning({
// center: true,
// message,
// })
const messagePassword = (message = '请填写支取密码') => {
store.commit('system/setTipsOperate', message)
// Message.warning({
// center: true,
// message,
// })
}
// 随机生成10位客户号
const randomPeopleNumber = () => {
const $chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
const $chars2 = '1234567890'
const maxPos = $chars2.length;
let str = '';
// str += $chars.charAt(Math.floor(Math.random() * maxPos))
for (let i = 0; i <= 9; i++) {
str += $chars2.charAt(Math.floor(Math.random() * maxPos));
}
return str;
const $chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
const $chars2 = '1234567890'
const maxPos = $chars2.length;
let str = '';
// str += $chars.charAt(Math.floor(Math.random() * maxPos))
for (let i = 0; i <= 9; i++) {
str += $chars2.charAt(Math.floor(Math.random() * maxPos));
}
return str;
}
export {
randomPeopleNumber,
phoneListen,
mailBoxListen,
checkRequired,
inputListen,
ismoney,
checkHanzi,
myValidate,
checkName,
rateListen,
autoPlay,
autoPlay2,
autoPlay3,
getNowDate,
inputListen2,
messageIdCard,
messageCard,
messagePassword,
certificateNumber
}
export {
randomPeopleNumber,
phoneListen,
mailBoxListen,
checkRequired,
inputListen,
ismoney,
checkHanzi,
myValidate,
checkName,
rateListen,
autoPlay,
autoPlay2,
autoPlay3,
getNowDate,
inputListen2,
messageIdCard,
messageCard,
messagePassword,
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 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 = {
lintOnSave: true,
css: {
@ -39,10 +9,11 @@ module.exports = {
},
}
},
publicPath: Setting.publicPath,
  outputDir: Setting.outputDir,
  assetsDir: Setting.assetsDir,
publicPath: Setting.publicPath,
outputDir: Setting.outputDir,
assetsDir: Setting.assetsDir,
devServer: {
port: 8093
}
},
productionSourceMap: false,
}
Loading…
Cancel
Save