个人贷款等

20240205
yujialong 6 months ago
parent 99d3072817
commit a9aa216bee
  1. 56
      src/api/api.js
  2. 7
      src/layouts/header/index.vue
  3. 6
      src/pages/counter/list/index.vue
  4. 4
      src/pages/index/list/index.vue
  5. 7
      src/pages/manage/index/index.vue
  6. 2
      src/pages/manage/list/agent/electricRate.vue
  7. 2
      src/pages/manage/list/agent/telRate.vue
  8. 249
      src/pages/manage/list/client/consumerClient.vue
  9. 2
      src/pages/manage/list/corporateLoans/apply/preLoan.vue
  10. 4
      src/pages/manage/list/corporateLoans/management.vue
  11. 1
      src/pages/manage/list/foreignExchange/foreignExchange.vue
  12. 7
      src/pages/manage/list/foreignExchange/puchasing.vue
  13. 7
      src/pages/manage/list/foreignExchange/settlement.vue
  14. 280
      src/pages/manage/list/personalLoans/detail.vue
  15. 25
      src/pages/manage/list/personalLoans/index.vue
  16. 60
      src/pages/manage/list/personalLoans/list.vue
  17. 15
      src/router/routes.js
  18. 75
      src/store/modules/user.js
  19. 74
      test.js
  20. 264886
      test2.js
  21. 39
      vue.config.js

@ -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' // 开发环境
@ -25,79 +27,83 @@ service.interceptors.request.use(config => {
// 添加respone拦截器
service.interceptors.response.use(
response => {
let res={};
res.status=response.status
res.data=response.data;
let res = {};
res.status = response.status
res.data = response.data;
return res;
},
error => {
if(error.response && error.response.status == 404){
router.push('/blank.vue')
if (error.response.status == 401) {
console.log("🚀 ~ error:", error.response.status, store.commit('user/logout'))
util.errorMsg('登录过期,请重新登录')
setTimeout(() => {
store.commit('user/logout')
}, 1500)
}
return Promise.reject(error.response)
}
)
let tokens
let token
var reg = new RegExp('(^|&)'+'token'+'=([^&]*)(&|$)')
if(window.location.href.split('?')[1]){
var reg = new RegExp('(^|&)' + 'token' + '=([^&]*)(&|$)')
if (window.location.href.split('?')[1]) {
var r = window.location.href.split('?')[1].match(reg)
if (r != null){
if (r != null) {
tokens = (r[2])
}else{
} else {
tokens = null
}
}
if(tokens){
if (tokens) {
token = tokens
}else{
} else {
token = sessionStorage.getItem('token')
}
export function get(url, params = {}) {
export function get (url, params = {}) {
// params.t = new Date().getTime(); //get方法加一个时间参数,解决ie下可能缓存问题.
return service({
url: url,
method: 'get',
headers: {
token:token
token: token
},
params
})
}
//封装post请求
export function post(url, data = {}) {
export function post (url, data = {}) {
//默认配置
let sendObject={
let sendObject = {
url: url,
method: 'post',
headers: {
'Content-Type':'application/json;charset=UTF-8',
token:token
'Content-Type': 'application/json;charset=UTF-8',
token: token
},
data:data
data: data
};
sendObject.data=JSON.stringify(data);
sendObject.data = JSON.stringify(data);
return service(sendObject)
}
//封装put方法 (resfulAPI常用)
export function put(url,data = {}){
export function put (url, data = {}) {
return service({
url: url,
method: 'put',
headers: {
'Content-Type':'application/json;charset=UTF-8',
token:token
'Content-Type': 'application/json;charset=UTF-8',
token: token
},
data:JSON.stringify(data)
data: JSON.stringify(data)
})
}
//删除方法(resfulAPI常用)
export function deletes(url){
export function deletes (url) {
return service({
url: url,
method: 'delete',
headers: {
token:token
token: token
}
})
}

@ -11,7 +11,7 @@
</div>
<div style="float: right;margin:0 60px;font-size: 18px">
<span style="cursor:pointer"
@click="exit">
@click="logout">
退出<i class="icon el-icon-s-unfold"></i>
</span>
</div>
@ -19,7 +19,7 @@
</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'
@ -33,6 +33,9 @@ export default {
this.$route.query.manager ? Cookie.set('manager', 1) : Cookie.remove('manager')
},
methods: {
...mapMutations({
logout: 'user/logout',
}),
toIndex () {
this.$refs.nav.jump({
index: '/index/list',

@ -22,7 +22,9 @@
<img class="sth counter"
v-lazy="lazyImg[1]"
alt="" />
<div class="sth cipher-machine cp"
<div v-if="!isCredit"
class="sth cipher-machine cp"
@click="showData('密码器',8)">
<img v-lazy="lazyImg[20]"
alt=""
@ -1860,7 +1862,7 @@ export default {
},
showManage () {//
this.manageVisible = true;
this.$router.push(sessionStorage.getItem('computerPath') || '/counter/list/manage/consumerClient')
this.$router.push(sessionStorage.getItem('computerPath') || (this.isCredit ? '/counter/list/manage/personalLoans' : '/counter/list/manage/consumerClient'))
},
popSure () {/* 弹框-确定 */
debugger

@ -226,8 +226,8 @@ export default {
// }
.name {
position: absolute;
top: 23%;
right: 0;
top: 18%;
right: 45%;
@include nameTip;
}
}

@ -40,6 +40,7 @@
</template>
<script>
import { mapState } from 'vuex'
import navbar from '../navbar'
export default {
@ -47,7 +48,6 @@ export default {
data () {
return {
fullscreen: this.$store.state.system.fullScreen,// --store
isCredit: state => state.system.isCredit
}
},
components: {
@ -78,7 +78,10 @@ export default {
computed: {
full: function () {
return this.$store.state.system.fullScreen
}
},
...mapState({
isCredit: state => state.system.isCredit
})
}
};
</script>

@ -77,7 +77,7 @@
</el-col>
<el-col :span="21"
:offset="1">
<el-form-item label="摘要"
<el-form-item label="住址信息"
prop="textarea">
<el-input type="textarea"
:rows="3"

@ -43,7 +43,7 @@
maxlength="30"
ref="mailbox"></el-input>
</el-form-item>
<el-form-item label="户号"
<el-form-item label="缴费号码"
required>
<el-input :value="form.mailbox"
@input="val => mailBoxListen(val, form, 'mailbox')"

@ -1,26 +1,36 @@
//
<template>
<div class="wrap wrap2">
<MyTitle :titleArr="['客户信息', '个人客户信息建立']"/>
<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 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="身份证"
<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
<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="选择日期"
@ -29,20 +39,33 @@
</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-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'>
<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>
<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-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"
@ -50,31 +73,40 @@
:value="item.id"
>
</el-option> -->
<el-option
:key="1"
<el-option :key="1"
label="男"
:value="1"
>
:value="1">
</el-option>
<el-option
:key="2"
<el-option :key="2"
label="女"
:value="2"
>
: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 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>
<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" @submitIt="submitForm2()" />
<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> -->
@ -95,35 +127,35 @@ import NeedBefore from '@/components/needBefore'
const moduleName = 'consumerClient'
export default {
name: 'consumerClient',
data() {
data () {
return {
moduleName: 'consumerClient',
idNumberJudge: false,
visible:false,//
form:{
idType:83,//
idNumber:'',//
userName:'',//
sex:'',//
birthday:null,//
nationality:'',//
mailbox:'',//
phone:'',//
visible: false,//
form: {
idType: 83,//
idNumber: '',//
userName: '',//
sex: '',//
birthday: null,//
nationality: '',//
mailbox: '',//
phone: '',//
peopleNumber: '',
},
formName: {
idType: '证件类型',
idNumber:'证件号码',
userName:'客户名字',
sex:'性别',
birthday:'出生日期',
nationality:'民族',
mailbox:'通讯地址',
phone:'联系电话',
idNumber: '证件号码',
userName: '客户名字',
sex: '性别',
birthday: '出生日期',
nationality: '民族',
mailbox: '通讯地址',
phone: '联系电话',
peopleNumber: '客户号'
},
rules: {
userName: vercustomer ,
userName: vercustomer,
phone: [
{
required: true,
@ -145,17 +177,17 @@ export default {
},
authorization:false,//
success:false,//
papers:[
{name:'身份证',id:1}
authorization: false,//
success: false,//
papers: [
{ name: '身份证', id: 1 }
],
options:[],
gender:[
{name:'男',id:1},
{name:'女',id:2},
options: [],
gender: [
{ name: '男', id: 1 },
{ name: '女', id: 2 },
],
nations : [
nations: [
{ "itemId": 24, "description": "汉族", "options": "汉族", "subjectId": 3, "isDel": 0, "createTime": "2021-12-20 12:00:44", "updateTime": "2021-12-20 12:00:44" },
{ "itemId": 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" },
@ -222,11 +254,11 @@ export default {
MyDialog,
NeedBefore
},
created() {
created () {
// if(this.isNeedBefore) {
// return
// }
if(sessionStorage.getItem('nomClientIdentity')) {
if (sessionStorage.getItem('nomClientIdentity')) {
this.idNumberJudge = true
const { userName, sex, birthday, nationality, mailbox, idNumber } = this.dataFlow
this.form.idNumber = idNumber
@ -246,36 +278,36 @@ export default {
this.getFormData()
},
mixins: [ TipsBefore ],
mounted() {
mixins: [TipsBefore],
mounted () {
},
methods: {
//
submitIt() {
submitIt () {
// this.setDataFlow({name: 'userName', val: ''})
// console.log(this.dataFlow)
},
getFormData(){
let param= {
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) {
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 == '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 }
}
}
@ -287,7 +319,7 @@ export default {
// this.form[tt1] = tt1[key]
// }
// }
}).catch((error)=>{
}).catch((error) => {
// const tt1 = JSON.parse(sessionStorage.getItem('tt1'))
// console.log('2-tt1')
// console.log(tt1)
@ -309,7 +341,7 @@ export default {
setPopId: 'system/setPopId',
setTipsOperate: 'system/setTipsOperate'
}),
popUp(){//
popUp () {//
// this.$store.commit('system/changePop',{show:true,text:'',id:'33'})
// this.changeShowGoods(true)
// this.$store.commit('system/changePop',{show: false, text: '', id:'33'})
@ -320,12 +352,12 @@ export default {
this.$router.push('/counter/list/')
},
//
submitForm(){
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) {
if (!this.form.idNumber) {
messageIdCard()
return
}
@ -333,9 +365,9 @@ export default {
// this.form.birthday = this.form.birthday.slice(0, 10)
this.form.peopleNumber = randomPeopleNumber()
this.visible = true;
} , this.$refs));
}, this.$refs));
},
submitForm2() {
submitForm2 () {
let nomClientIdentity = sessionStorage.getItem('nomClientIdentity')
let consumerClientDragList = JSON.parse(nomClientIdentity);
let projectId = sessionStorage.getItem('projectId')
@ -344,47 +376,47 @@ export default {
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": '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',
"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",//
"operationIds": "285," + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ",287,5,25,33,43",//
"type": "1"
})
}
if(this.form.nationality){
if (this.form.nationality) {
formList.push({
"answerId":'45',
"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",//
"operationIds": "285," + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ",287,5,25,33,45",//
"type": "1"
})
}
if(this.form.mailbox){
if (this.form.mailbox) {
formList.push({
"answerId":'46',
"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",//
"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"}//
{ "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= {
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,
lcJudgmentRuleReq: formList,
projectId: +projectId,
startTime: startTime,
}
addOperation(params).then((data)=>{
addOperation(params).then((data) => {
// this.$message({
// message: '',
// type: 'success'
@ -392,23 +424,23 @@ export default {
this.setNeedsModule(moduleName)
this.setDataFlow({ ...this.form })
this.submited = 1
}).catch((error)=>{
}).catch((error) => {
this.setTipsOperate('服务器繁忙哦,提交失败。')
})
},
throttle(fn,wait=1000){//
throttle (fn, wait = 1000) {//
var timer = null;
return function(){
return function () {
var context = this;
var args = fn;
if(!timer){
timer = setTimeout(function(){
fn.apply(context,fn);
if (!timer) {
timer = setTimeout(function () {
fn.apply(context, fn);
timer = null;
},wait)
}, wait)
}
}
},
@ -428,18 +460,17 @@ export default {
</script>
<style lang="scss" scoped>
.wrap{
.wrap {
width: 100%;
height: 100%;
display: flex;
flex-direction: column;
overflow: auto;
padding: 24px 0 24px 24px;
.body{
.body {
margin-top: 50px;
overflow-y: auto;
overflow-x: hidden;
}
}
</style>

@ -70,7 +70,7 @@
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="其他风情况"
<el-form-item label="其他风情况"
prop="customerName">
<el-input v-model="form.customerName"
type="textarea"></el-input>

@ -34,6 +34,10 @@
label="处理结果"
align="center">
</el-table-column>
<el-table-column prop="currency"
label="处理日期"
align="center">
</el-table-column>
<el-table-column prop="currency"
label="还款状态"
align="center">

@ -126,7 +126,6 @@ export default {
margin-top: 10px;
}
.body {
margin-top: 50px;
overflow: auto;
.idCard {
border-radius: 5px;

@ -187,6 +187,13 @@ export default {
},
rules: {
userName: vercustomer,
currency: [
{
required: true,
message: '请选择币种',
trigger: 'blur'
}
],
goldLogo: [
{
required: true,

@ -177,6 +177,13 @@ export default {
},
rules: {
userName: vercustomer,
currency: [
{
required: true,
message: '请选择币种',
trigger: 'blur'
}
],
goldLogo: [
{
required: true,

@ -8,6 +8,7 @@
:model="form"
label-width="120px"
:rules="rules">
<template v-if="curStep === 1 || isDetail">
<el-col :span="24">
<h6 class="l-title">基本信息</h6>
</el-col>
@ -27,15 +28,18 @@
prop="customerName">
<el-input ref="customerName"
disabled
:value="form.customerName"
v-model="form.customerName"
@input="(val) => checkName(val, form, 'customerName')"></el-input>
</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>
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-col>
<el-col :span="10"
@ -48,25 +52,35 @@
<p>请刷身份证</p>
</div>
<div v-else>
<el-input :value="form.idNumber"
<el-input v-model="form.idNumber"
disabled
ref="idNumber"></el-input>
</div>
</el-form-item>
<el-form-item label="性别"
prop="customerName">
<el-input ref="customerName"
prop="sex">
<el-select v-model.trim="form.sex"
disabled
:value="form.customerName"
@input="(val) => checkName(val, form, 'customerName')"></el-input>
placeholder="请选择"
ref='sex'>
<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="联系电话"
required>
<el-input :value="form.mailbox"
@input="val => mailBoxListen(val, form, 'mailbox')"
maxlength="30"
ref="mailbox"></el-input>
:rules="rules.phone"
prop="phone">
<el-input v-model="form.phone"
@input="(val) => phoneListen(val, form, 'phone')"
maxlength="12"
ref='phone'></el-input>
</el-form-item>
</el-col>
@ -76,32 +90,21 @@
</el-col>
<el-col :span="10"
:offset="1">
<el-form-item label="岗位"
prop="customerName">
<el-input ref="customerName"
:value="form.customerName"
@input="(val) => checkName(val, form, 'customerName')"></el-input>
<el-form-item label="岗位">
<el-input v-model="form.customerName"></el-input>
</el-form-item>
<el-form-item label="当前单位工作年限"
prop="customerName">
<el-input ref="customerName"
:value="form.customerName"
@input="(val) => checkName(val, form, 'customerName')"></el-input>
label-width="150px">
<el-input v-model="form.customerName"></el-input>
</el-form-item>
</el-col>
<el-col :span="10"
:offset="1">
<el-form-item label="薪酬"
prop="customerName">
<el-input ref="customerName"
:value="form.customerName"
@input="(val) => checkName(val, form, 'customerName')"></el-input>
<el-form-item label="薪酬">
<el-input v-model="form.customerName"></el-input>
</el-form-item>
<el-form-item label="工龄"
prop="customerName">
<el-input ref="customerName"
:value="form.customerName"
@input="(val) => checkName(val, form, 'customerName')"></el-input>
<el-form-item label="工龄">
<el-input v-model="form.customerName"></el-input>
</el-form-item>
</el-col>
@ -111,91 +114,78 @@
</el-col>
<el-col :span="10"
:offset="1">
<el-form-item label="产权人"
prop="customerName">
<el-input ref="customerName"
:value="form.customerName"></el-input>
<el-form-item label="产权人">
<el-input v-model="form.customerName"></el-input>
</el-form-item>
<el-form-item label="共有情况"
prop="customerName">
<el-input ref="customerName"
:value="form.customerName"></el-input>
<el-form-item label="共有情况">
<el-input v-model="form.customerName"></el-input>
</el-form-item>
<el-form-item label="权利类型"
prop="customerName">
<el-input ref="customerName"
:value="form.customerName"></el-input>
<el-form-item label="权利类型">
<el-input v-model="form.customerName"></el-input>
</el-form-item>
<el-form-item label="面积"
prop="customerName">
<el-input ref="customerName"
:value="form.customerName"></el-input>
<el-form-item label="面积">
<el-input v-model="form.customerName"></el-input>
</el-form-item>
</el-col>
<el-col :span="10"
:offset="1">
<el-form-item label="房产证号"
prop="customerName">
<el-input ref="customerName"
:value="form.customerName"></el-input>
<el-form-item label="房产证号">
<el-input v-model="form.customerName"></el-input>
</el-form-item>
<el-form-item label="坐落"
prop="customerName">
<el-input ref="customerName"
:value="form.customerName"></el-input>
<el-form-item label="坐落">
<el-input v-model="form.customerName"></el-input>
</el-form-item>
<el-form-item label="权利性质"
prop="customerName">
<el-input ref="customerName"
:value="form.customerName"></el-input>
<el-form-item label="权利性质">
<el-input v-model="form.customerName"></el-input>
</el-form-item>
<el-form-item label="使用期限"
prop="customerName">
<el-input ref="customerName"
:value="form.customerName"></el-input>
<el-form-item label="使用期限">
<el-input v-model="form.customerName"></el-input>
</el-form-item>
</el-col>
</template>
<template v-if="curStep !== 1 || 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="贷款类型"
prop="customerName">
<el-input ref="customerName"
:value="form.customerName"></el-input>
<el-form-item label="贷款类型">
<el-input v-model="form.customerName"></el-input>
</el-form-item>
<el-form-item label="合同金额"
prop="customerName">
<el-input ref="customerName"
:value="form.customerName"></el-input>
<el-form-item label="合同金额">
<el-input v-model="form.customerName"></el-input>
</el-form-item>
<el-form-item label="起息日期"
prop="customerName">
<el-input ref="customerName"
:value="form.customerName"></el-input>
v-model="form.customerName"></el-input>
</el-form-item>
<el-form-item label="计息方式"
prop="customerName">
<el-input ref="customerName"
:value="form.customerName"></el-input>
v-model="form.customerName"></el-input>
</el-form-item>
<el-form-item label="浮动比例"
prop="customerName">
<el-input ref="customerName"
:value="form.customerName"></el-input>
v-model="form.customerName"></el-input>
</el-form-item>
<el-form-item label="逾期利率"
prop="customerName">
<el-input ref="customerName"
:value="form.customerName"></el-input>
v-model="form.customerName"></el-input>
</el-form-item>
<el-form-item label="还款方式"
prop="customerName">
<el-input ref="customerName"
:value="form.customerName"></el-input>
v-model="form.customerName"></el-input>
</el-form-item>
<el-form-item label="还款账号"
prop="customerName">
<el-input ref="customerName"
v-model="form.customerName"></el-input>
</el-form-item>
</el-col>
<el-col :span="10"
@ -203,39 +193,40 @@
<el-form-item label="合同编号"
prop="customerName">
<el-input ref="customerName"
:value="form.customerName"></el-input>
v-model="form.customerName"></el-input>
</el-form-item>
<el-form-item label="贷款期限"
prop="customerName">
<el-input ref="customerName"
:value="form.customerName"></el-input>
v-model="form.customerName"></el-input>
</el-form-item>
<el-form-item label="到期日期"
prop="customerName">
<el-input ref="customerName"
:value="form.customerName"></el-input>
v-model="form.customerName"></el-input>
</el-form-item>
<el-form-item label="基准利率"
prop="customerName">
<el-input ref="customerName"
:value="form.customerName"></el-input>
v-model="form.customerName"></el-input>
</el-form-item>
<el-form-item label="执行利率"
prop="customerName">
<el-input ref="customerName"
:value="form.customerName"></el-input>
v-model="form.customerName"></el-input>
</el-form-item>
<el-form-item label="担保方式"
prop="customerName">
<el-input ref="customerName"
:value="form.customerName"></el-input>
v-model="form.customerName"></el-input>
</el-form-item>
<el-form-item label="还款方式"
<el-form-item label="利息总额"
prop="customerName">
<el-input ref="customerName"
:value="form.customerName"></el-input>
v-model="form.customerName"></el-input>
</el-form-item>
</el-col>
</template>
</el-form>
</el-row>
@ -246,15 +237,18 @@
:formName="formName"
@submitIt="submitForm2"
depositNumber='0816' />
<el-button @click="submitForm"
<div class="text-center">
<el-button @click="next"
type="primary"
class="submitBtn"
v-throttle>下一步</el-button>
v-throttle>{{ curStep === 1 ? '下一步' : '提交' }}</el-button>
</div>
</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 { phoneListen, 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'
@ -273,43 +267,12 @@ export default {
},
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
//
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()
},
data () {
return {
moduleName: 'usefulPhrases/openAccount',
isDetail: +this.$route.query.show,
visible: false,
cardNumberJudge: false,
idNumberJudge: false,
@ -329,6 +292,8 @@ export default {
//
clientNumber: '', //
certificateType: 83, //
phone: '',//
birthday: null,//
},
formName: {
//
@ -346,9 +311,29 @@ export default {
//
clientNumber: '客户号', //
certificateType: '证件类型', //
phone: '联系电话',
birthday: '出生日期',
},
rules: {
customerName: vercustomer,
birthday: [
{
required: true,
message: '请选择出生日期',
trigger: 'blur'
}
],
phone: [
{
required: true,
message: '请输入联系电话',
trigger: 'blur'
},
{
pattern: mobPattern,
message: '联系电话格式有误'
}
],
currency: [
{
required: true,
@ -455,10 +440,34 @@ export default {
"subjectId": 37,
},
},
submited: 0
submited: 0,
curRoute: '',
curStep: 1,
}
},
beforeDestroy () {
sessionStorage.setItem('computerPath', this.curRoute)
},
mounted () {
this.curRoute = this.$route.path
if (sessionStorage.getItem('nomPersonalLoans')) {
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
}
},
methods: {
@ -474,26 +483,18 @@ export default {
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/')
next () {
if (this.curStep < 2) {
this.curStep++
} else {
}
},
getFormData () {
const parentId = '285,' + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ',287,5,26,59,155'
@ -584,6 +585,7 @@ export default {
autoPlay(parentId, this.form, this.myTable2, this.myTable, cards)
this.submited = 1
},
phoneListen,
ismoney: ismoney,
checkHanzi: checkHanzi,
checkName: checkName,
@ -603,7 +605,7 @@ export default {
<style lang='scss' scoped>
.wrap {
width: 100%;
height: calc(90vh - 70px);
height: calc(90vh - 27px);
padding: 20px;
overflow: auto;
.l-title {

@ -13,30 +13,7 @@
</div>
<MyTitle :titleArr="['个人贷款', text]" />
<list />
<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>
<list :index.sync="activeIndex" />
</div>
</template>

@ -8,8 +8,7 @@
<el-button style="margin-bottom: 20px;"
type="primary"
@click="$router.push('/counter/list/manage/personalLoans-detail')">新建贷款申请</el-button>
@click="$router.push('/counter/list/manage/personalLoans-detail?show=0')">新建贷款申请</el-button>
<el-table ref="filterTable"
:data="list"
height="300"
@ -57,23 +56,30 @@
label="本月应还"
align="center">
</el-table-column>
<el-table-column prop="currency"
<el-table-column v-if="index !== '3'"
prop="currency"
key="1"
label="实际还款"
align="center">
</el-table-column>
<el-table-column prop="currency"
label="还款状态"
key="2"
align="center">
</el-table-column>
<el-table-column v-if="index === '3'"
prop="currency"
key="3"
label="展期期限"
align="center">
</el-table-column>
<el-table-column label="操作"
align="center"
width="150">
<template slot-scope="scope">
<el-button :disabled="form.clickIt1 === '已领用'"
@click="sure(scope.row)"
<el-button @click="toDetail(scope.row)"
size="small">查看</el-button>
<el-button :disabled="form.clickIt2 === '已退回'"
@click="back(scope.row)"
<el-button @click="back(scope.row)"
size="small">展期</el-button>
</template>
</el-table-column>
@ -93,6 +99,7 @@ const moduleName = 'controlCash/cashRecipients'
import { mapMutations, mapGetters } from 'vuex'
export default {
name: 'index',
props: ['index'],
components: {
MyDialog,
NeedBefore
@ -149,18 +156,6 @@ export default {
}
},
created () {
// if(this.inMyWork(moduleName)) {
// if(this.needsModule(moduleName) === '') {
// }else {
// this.isNeedBefore = true
// this.needBefore = this.needsModule(moduleName)
// }
// }else {
// this.isNeedBefore = true
// this.unNeed = true
// }
getOperation({
parentId: '285,' + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ",287,5,31,518,521"
}).then((data) => {
@ -182,31 +177,8 @@ export default {
...mapMutations({
setTipsOperate: 'system/setTipsOperate'
}),
sure (row) {
if (this.form.clickIt2 === '已退回') {
this.$confirm('该项目只能选择将现金领用或退回现金,请问是否改为现金领用?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
center: true
}).then(() => {
this.form.clickIt1 = '已领用'
this.form.clickIt2 = ''
this.$message({
type: 'success',
message: '当前选择为现金领用!'
});
}).catch(() => {
this.$message({
type: 'info',
message: '已取消现金领用'
});
});
return
} else {
this.form.clickIt1 = '已领用'
}
toDetail (row) {
this.$router.push('/counter/list/manage/personalLoans-detail?show=1')
},
back (row) {
if (this.form.clickIt1 === '已领用') {

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

@ -4,6 +4,8 @@ import util from '@/libs/util'
import { Message } from 'element-ui'
import {post,get,del,put} from '@/plugins/requests/index.js'
import api from '@/api'
import Cookie from 'js-cookie'
import router from '@/router'
/**
* 用户信息
@ -17,67 +19,30 @@ export default {
isManager: false
},
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
},
},
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)
logout() {
const url = location.href
let href = process.env.NODE_ENV === 'development' ?
`http://${location.hostname}:8082/#/` :
`${url.includes('huorantech.cn') ? `https://www.occupationlab.com` : location.origin}${Cookie.get('manager') ?
'/admin' :
(url.includes('huorantech.cn') || url.includes('izhixinyun.com')) ?
'' :
'/student'}/#/`
let assessmentId = sessionStorage.getItem('assessmentId')
if (assessmentId != 'null' && assessmentId != null && assessmentId != '') {
href += `ass/list`
} else {
const cid = sessionStorage.getItem('cid')
href += `station/preview?courseId=${cid}&curriculumName=银行项目&mallId=${router.currentRoute.query.mallId}`
}
}).catch(error => {
reject(error)
})
})
sessionStorage.clear()
location.href = href
},
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)
},
actions: {
setManager({ state,commit },isManager) {
commit('SET_MANAGER',isManager)
},

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