个人贷款等

20240205
yujialong 6 months ago
parent 99d3072817
commit a9aa216bee
  1. 10
      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. 91
      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. 73
      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 axios from 'axios';
import router from '../router'; import router from '../router';
import store from '@/store'
import util from '@/libs/util'
const url = location.host const url = location.host
const dev = process.env.NODE_ENV === 'development' // 开发环境 const dev = process.env.NODE_ENV === 'development' // 开发环境
@ -31,8 +33,12 @@ service.interceptors.response.use(
return res; return res;
}, },
error => { error => {
if(error.response && error.response.status == 404){ if (error.response.status == 401) {
router.push('/blank.vue') console.log("🚀 ~ error:", error.response.status, store.commit('user/logout'))
util.errorMsg('登录过期,请重新登录')
setTimeout(() => {
store.commit('user/logout')
}, 1500)
} }
return Promise.reject(error.response) return Promise.reject(error.response)
} }

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

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

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

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

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

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

@ -5,22 +5,32 @@
<div class="body"> <div class="body">
<el-row :gutter="20"> <el-row :gutter="20">
<el-form ref="form" :model="form" label-width="140px" :rules="rules"> <el-form ref="form"
<el-col :span="10" :offset="1"> :model="form"
label-width="140px"
:rules="rules">
<el-col :span="10"
:offset="1">
<el-form-item label="证件类型"> <el-form-item label="证件类型">
<el-select v-model.trim="form.idType" disabled placeholder="请选择" ref="idType"> <el-select v-model.trim="form.idType"
<el-option disabled
label="身份证" placeholder="请选择"
ref="idType">
<el-option label="身份证"
:value="83"> :value="83">
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="客户姓名" prop="userName"> <el-form-item label="客户姓名"
<el-input ref="userName" disabled :value="form.userName" @input="(val) => checkName(val, form, 'userName')"></el-input> prop="userName">
</el-form-item> <el-input ref="userName"
<el-form-item label="出生日期" prop="birthday">
<el-date-picker
disabled 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" v-model.trim="form.birthday"
type="date" type="date"
placeholder="选择日期" placeholder="选择日期"
@ -29,20 +39,33 @@
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
<el-form-item label="通讯地址"> <el-form-item label="通讯地址">
<el-input :value="form.mailbox" @input="val => mailBoxListen(val, form, 'mailbox')" maxlength="30" ref="mailbox"></el-input> <el-input :value="form.mailbox"
@input="val => mailBoxListen(val, form, 'mailbox')"
maxlength="30"
ref="mailbox"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="10" :offset="1"> <el-col :span="10"
<el-form-item label="证件号码" required> :offset="1">
<div class="idCard" @click="popUp('身份证扫描仪')" v-if='!idNumberJudge'> <el-form-item label="证件号码"
required>
<div class="idCard"
@click="popUp('身份证扫描仪')"
v-if='!idNumberJudge'>
<p>请刷身份证</p> <p>请刷身份证</p>
</div> </div>
<div v-else> <div v-else>
<el-input :value="form.idNumber" disabled ref="idNumber"></el-input> <el-input :value="form.idNumber"
disabled
ref="idNumber"></el-input>
</div> </div>
</el-form-item> </el-form-item>
<el-form-item label="性别" prop="sex"> <el-form-item label="性别"
<el-select v-model.trim="form.sex" disabled placeholder="请选择" ref='sex'> prop="sex">
<el-select v-model.trim="form.sex"
disabled
placeholder="请选择"
ref='sex'>
<!-- <el-option <!-- <el-option
v-for="item in gender" v-for="item in gender"
:key="item.id" :key="item.id"
@ -50,31 +73,40 @@
:value="item.id" :value="item.id"
> >
</el-option> --> </el-option> -->
<el-option <el-option :key="1"
:key="1"
label="男" label="男"
:value="1" :value="1">
>
</el-option> </el-option>
<el-option <el-option :key="2"
:key="2"
label="女" label="女"
:value="2" :value="2">
>
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="联系电话" :rules="rules.phone" prop="phone"> <el-form-item label="联系电话"
<el-input :value="form.phone" @input="(val) => phoneListen(val, form, 'phone')" maxlength="12" ref='phone'></el-input> :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-form-item>
</el-col> </el-col>
</el-form> </el-form>
</el-row> </el-row>
<el-button @click="submitForm" type="primary" class="submitBtn" v-throttle>提交</el-button> <el-button @click="submitForm"
type="primary"
class="submitBtn"
v-throttle>提交</el-button>
</div> </div>
<my-dialog :moduleName="moduleName" v-if="visible" :visible.sync="visible" :showForm="form" :formName="formName" @submitIt="submitForm2()" /> <my-dialog :moduleName="moduleName"
v-if="visible"
:visible.sync="visible"
:showForm="form"
:formName="formName"
@submitIt="submitForm2()" />
</div> </div>
<!-- <need-before class='wrap' v-else :moduleName='needBefore' :unNeed="unNeed"> <!-- <need-before class='wrap' v-else :moduleName='needBefore' :unNeed="unNeed">
</need-before> --> </need-before> -->
@ -441,5 +473,4 @@ export default {
overflow-x: hidden; overflow-x: hidden;
} }
} }
</style> </style>

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

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

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

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

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

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

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

@ -8,8 +8,7 @@
<el-button style="margin-bottom: 20px;" <el-button style="margin-bottom: 20px;"
type="primary" 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" <el-table ref="filterTable"
:data="list" :data="list"
height="300" height="300"
@ -57,23 +56,30 @@
label="本月应还" label="本月应还"
align="center"> align="center">
</el-table-column> </el-table-column>
<el-table-column prop="currency" <el-table-column v-if="index !== '3'"
prop="currency"
key="1"
label="实际还款" label="实际还款"
align="center"> align="center">
</el-table-column> </el-table-column>
<el-table-column prop="currency" <el-table-column prop="currency"
label="还款状态" label="还款状态"
key="2"
align="center">
</el-table-column>
<el-table-column v-if="index === '3'"
prop="currency"
key="3"
label="展期期限"
align="center"> align="center">
</el-table-column> </el-table-column>
<el-table-column label="操作" <el-table-column label="操作"
align="center" align="center"
width="150"> width="150">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button :disabled="form.clickIt1 === '已领用'" <el-button @click="toDetail(scope.row)"
@click="sure(scope.row)"
size="small">查看</el-button> size="small">查看</el-button>
<el-button :disabled="form.clickIt2 === '已退回'" <el-button @click="back(scope.row)"
@click="back(scope.row)"
size="small">展期</el-button> size="small">展期</el-button>
</template> </template>
</el-table-column> </el-table-column>
@ -93,6 +99,7 @@ const moduleName = 'controlCash/cashRecipients'
import { mapMutations, mapGetters } from 'vuex' import { mapMutations, mapGetters } from 'vuex'
export default { export default {
name: 'index', name: 'index',
props: ['index'],
components: { components: {
MyDialog, MyDialog,
NeedBefore NeedBefore
@ -149,18 +156,6 @@ export default {
} }
}, },
created () { 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({ getOperation({
parentId: '285,' + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ",287,5,31,518,521" parentId: '285,' + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ",287,5,31,518,521"
}).then((data) => { }).then((data) => {
@ -182,31 +177,8 @@ export default {
...mapMutations({ ...mapMutations({
setTipsOperate: 'system/setTipsOperate' setTipsOperate: 'system/setTipsOperate'
}), }),
sure (row) { toDetail (row) {
if (this.form.clickIt2 === '已退回') { this.$router.push('/counter/list/manage/personalLoans-detail?show=1')
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 = '已领用'
}
}, },
back (row) { back (row) {
if (this.form.clickIt1 === '已领用') { if (this.form.clickIt1 === '已领用') {

@ -20,21 +20,6 @@ const frameIn = [
lobbyManager 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 { Message } from 'element-ui'
import {post,get,del,put} from '@/plugins/requests/index.js' import {post,get,del,put} from '@/plugins/requests/index.js'
import api from '@/api' import api from '@/api'
import Cookie from 'js-cookie'
import router from '@/router'
/** /**
* 用户信息 * 用户信息
@ -17,67 +19,30 @@ export default {
isManager: false isManager: false
}, },
mutations: { mutations: {
SET_INFO: (state, info) => {
if(info.avatar) state.avatar = info.avatar
state.schoolId = info.schoolId
state.userName = info.userName
},
SET_AVATAR: (state, avatar) => {
state.avatar = avatar
},
SET_MANAGER: (state, isManager) => { SET_MANAGER: (state, isManager) => {
state.isManager = isManager state.isManager = isManager
}, },
}, logout() {
actions: { const url = location.href
login({ state,commit }, userInfo) { let href = process.env.NODE_ENV === 'development' ?
const { account, password, code, random } = userInfo `http://${location.hostname}:8082/#/` :
return new Promise((resolve, reject) => { `${url.includes('huorantech.cn') ? `https://www.occupationlab.com` : location.origin}${Cookie.get('manager') ?
post(api.logins,{ '/admin' :
account, (url.includes('huorantech.cn') || url.includes('izhixinyun.com')) ?
password, '' :
code, '/student'}/#/`
platform: Setting.platformId, let assessmentId = sessionStorage.getItem('assessmentId')
random, if (assessmentId != 'null' && assessmentId != null && assessmentId != '') {
}).then(res => { href += `ass/list`
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 { } else {
util.errorMsg(res.message) const cid = sessionStorage.getItem('cid')
reject(res) href += `station/preview?courseId=${cid}&curriculumName=银行项目&mallId=${router.currentRoute.query.mallId}`
} }
}).catch(error => { sessionStorage.clear()
reject(error) 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) { setManager({ state,commit },isManager) {
commit('SET_MANAGER',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 Setting = require('./src/setting.env')
// 引入等比适配插件
const px2rem = require('postcss-px2rem')
module.exports = {
publicPath: './',
//配置跨域请求
devServer: {
open: true, //是否自动打开浏览器
https: false, //是否开启https
hotOnly: false,
proxy: { // 配置跨域
'/api': {
target: 'http://192.168.31.125:9000', //请求接口域名
ws: true,
secure: false,
changOrigin: true, //是否允许跨越
pathRewrite: {
'^/api': ''
}
}
},
before: app => { }
}
}
// 配置基本大小
const postcss = px2rem({
// 基准大小 baseSize,需要和rem.js中相同
remUnit: 16
})
// 使用等比适配插件
module.exports = { module.exports = {
lintOnSave: true, lintOnSave: true,
css: { css: {
@ -39,10 +9,11 @@ module.exports = {
}, },
} }
}, },
publicPath: Setting.publicPath, publicPath: Setting.publicPath,
  outputDir: Setting.outputDir, outputDir: Setting.outputDir,
  assetsDir: Setting.assetsDir, assetsDir: Setting.assetsDir,
devServer: { devServer: {
port: 8093 port: 8093
} },
productionSourceMap: false,
} }
Loading…
Cancel
Save