提交 ce638afd 编写于 作者: jiangzaicheng's avatar jiangzaicheng

-m

bug
上级 6bb1523c
......@@ -3,8 +3,8 @@
<head>
<meta charset="utf-8"/>
<title>iconfont Demo</title>
<link rel="shortcut icon" href="//img.alicdn.com/imgextra/i2/O1CN01ZyAlrn1MwaMhqz36G_!!6000000001499-73-tps-64-64.ico" type="image/x-icon"/>
<link rel="icon" type="image/svg+xml" href="//img.alicdn.com/imgextra/i4/O1CN01EYTRnJ297D6vehehJ_!!6000000008020-55-tps-64-64.svg"/>
<link rel="shortcut icon" href="//img.alicdn.com/imgextra/i4/O1CN01Z5paLz1O0zuCC7osS_!!6000000001644-55-tps-83-82.svg" type="image/x-icon"/>
<link rel="icon" type="image/svg+xml" href="//img.alicdn.com/imgextra/i4/O1CN01Z5paLz1O0zuCC7osS_!!6000000001644-55-tps-83-82.svg"/>
<link rel="stylesheet" href="https://g.alicdn.com/thx/cube/1.3.2/cube.min.css">
<link rel="stylesheet" href="demo.css">
<link rel="stylesheet" href="iconfont.css">
......@@ -960,9 +960,9 @@
<pre><code class="language-css"
>@font-face {
font-family: 'iconfont';
src: url('iconfont.woff2?t=1658900592121') format('woff2'),
url('iconfont.woff?t=1658900592121') format('woff'),
url('iconfont.ttf?t=1658900592121') format('truetype');
src: url('iconfont.woff2?t=1660790093357') format('woff2'),
url('iconfont.woff?t=1660790093357') format('woff'),
url('iconfont.ttf?t=1660790093357') format('truetype');
}
</code></pre>
<h3 id="-iconfont-">第二步:定义使用 iconfont 的样式</h3>
......
@font-face {
font-family: "iconfont"; /* Project id 3289090 */
src: url('iconfont.woff2?t=1658900592121') format('woff2'),
url('iconfont.woff?t=1658900592121') format('woff'),
url('iconfont.ttf?t=1658900592121') format('truetype');
src: url('iconfont.woff2?t=1660790093357') format('woff2'),
url('iconfont.woff?t=1660790093357') format('woff'),
url('iconfont.ttf?t=1660790093357') format('truetype');
}
.iconfont {
......
......@@ -2,7 +2,7 @@
* @Author: jiangzaicheng jiangzaicheng_jzc@163.com
* @Date: 2022-07-07 16:13:13
* @LastEditors: jiangzaicheng jiangzaicheng_jzc@163.com
* @LastEditTime: 2022-07-12 10:47:05
* @LastEditTime: 2022-08-18 11:07:05
* @FilePath: \mcep-h5\src\components\common\Bottom.vue
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
-->
......@@ -18,16 +18,22 @@
<van-col offset="4" span="11" class="money">100,000,00</van-col>
<van-col span="9" class="moneytitle">壹佰元整</van-col>
</van-row>
<!-- <van-row type="flex" class="title">
<van-col span="24" >已使用贷款金额(元)</van-col>
</van-row>
<van-row type="flex" class="mumMoney">
<van-col offset="4" span="11" class="money">6,0000</van-col>
<van-col span="9" class="moneytitle">壹佰元整</van-col>
</van-row> -->
<van-row type="flex" justify="center" class="integral">
<van-col span="8">2456</van-col>
<van-col span="8">12</van-col>
<van-col span="8">10</van-col>
<van-col span="12">已使用贷款金额(元)</van-col>
<van-col span="12">6,0000壹佰元整</van-col>
</van-row>
<van-row type="flex" justify="center" class="integrall">
<!-- <van-row type="flex" justify="center" class="integrall">
<van-col span="8">我的积分</van-col>
<van-col span="8">卡券</van-col>
<van-col span="8">我的特权</van-col>
</van-row>
</van-row> -->
</div>
</div>
</template>
......
......@@ -2,7 +2,7 @@
* @Author: jiangzaicheng jiangzaicheng_jzc@163.com
* @Date: 2022-07-04 16:24:00
* @LastEditors: jiangzaicheng jiangzaicheng_jzc@163.com
* @LastEditTime: 2022-07-25 18:31:14
* @LastEditTime: 2022-08-18 11:00:05
* @FilePath: \mcep-h5\src\components\common\Tatle.vue
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
-->
......@@ -94,9 +94,9 @@ export default class Person extends Vue {
//星星的点击事件
pushStarts(){
this.$router.push({
name:"level"
})
// this.$router.push({
// name:"level"
// })
}
layoutDiss(){
this.$router.push({
......
......@@ -2,7 +2,7 @@
* @Author: jiangzaicheng jiangzaicheng_jzc@163.com
* @Date: 2022-07-04 16:24:00
* @LastEditors: jiangzaicheng jiangzaicheng_jzc@163.com
* @LastEditTime: 2022-07-12 15:54:23
* @LastEditTime: 2022-08-18 13:55:42
* @FilePath: \mcep-h5\src\components\common\Tatle.vue
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
-->
......@@ -89,9 +89,10 @@ export default class Picket extends Vue {
-moz-font-feature-settings: "kern";
-moz-font-feature-settings: "kern=1";
font-kerning: normal;
width: 50%;
// width: 50%;
border-radius: 4px;
text-align: center;
padding-left:1%;
// text-align: center;
}
.limitrange{
// margin-left: 3%;
......
......@@ -2,7 +2,7 @@
* @Author: jiangzaicheng jiangzaicheng_jzc@163.com
* @Date: 2022-07-04 16:24:00
* @LastEditors: jiangzaicheng jiangzaicheng_jzc@163.com
* @LastEditTime: 2022-07-25 14:28:53
* @LastEditTime: 2022-08-18 14:13:40
* @FilePath: \mcep-h5\src\components\common\Tatle.vue
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
-->
......@@ -10,16 +10,11 @@
<!-- <div> -->
<div class="d-tatle">
<div class="card" v-for="(item, index) in productParam" :key="index">
<div @click="onClickDetails()">
<div @click="onClickDetails(item.status)">
<van-row>
<van-col span="16">
<van-col span="12" class="lable"><span>合同编号:</span></van-col>
<van-col span="24" class="priductName">{{ item.productname }}</van-col>
<van-col span="24" class="priductName">{{ item.productname }}</van-col>
<van-col style=" width: 100%; margin-left: 8%; line-height: 2;">
<van-row gutter="20">
<van-col span="12" class="lable"><span>申请金额:万元</span></van-col>
......@@ -46,15 +41,15 @@
<use xlink:href="#icon-a-yifafang60x60px"></use>
</svg>
<svg class="icon" aria-hidden="true" v-if="item.status === 2">
<use xlink:href="#icon-a-yifafang60x60px"></use>
<use xlink:href="#icon-shenqingzhong"></use>
</svg>
<svg class="icon" aria-hidden="true" v-if="item.status === 3">
<use xlink:href="#icon-a-yijieqing60x60px"></use>
<use xlink:href="#icon-yijieqing"></use>
</svg>
</van-col>
</van-row>
</div>
<van-row v-if="item.status === 2" type="flex" class="bottom" @click="onClickPicket()">
<van-row v-if="item.status === 1" type="flex" class="bottom" @click="onClickPicket()">
<van-col span="24" class="lablel"><span>还款计划</span>
<svg class="iconl" aria-hidden="true">
<use xlink:href="#icon-a-xiayiye24x24px"></use>
......@@ -81,8 +76,8 @@ export default class PicketAcced extends Vue {
this.$emit("onClickPicket")
}
//调用父组件的值
onClickDetails() {
this.$emit("onClickDetails")
onClickDetails(status:any) {
this.$emit("onClickDetails",status )
}
}
</script>
......
......@@ -2,7 +2,7 @@
* @Author: jiangzaicheng jiangzaicheng_jzc@163.com
* @Date: 2022-07-07 16:13:13
* @LastEditors: jiangzaicheng jiangzaicheng_jzc@163.com
* @LastEditTime: 2022-07-25 18:18:42
* @LastEditTime: 2022-08-18 14:04:18
* @FilePath: \mcep-h5\src\components\common\Bottom.vue
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
-->
......@@ -15,7 +15,7 @@
<van-col span="24" class="title">最高贷款额度</van-col>
</van-row>
<van-row type="flex" justify="center" class="integral">
<van-col span="24" style="font-size: 24px;font-weight: 900;">{{ money }}</van-col>
<van-col span="24" style="font-size: 24px;font-weight: 900; margin-top: 5%;">{{ money }}</van-col>
</van-row>
<van-row type="flex" justify="center" class="integrall">
<van-col span="24">{{ moneyName }}</van-col>
......@@ -27,18 +27,23 @@
</van-row>
</div>
<div>
<scroller-view v-calculate-height :height="10000" >
<van-collapse v-model="activeNames" style=" margin-top: 20%;
border: 1px solid;
width: 100%;
height: 100%;
border-radius: 8px;
margin: 20% auto;
box-shadow: 0 y-shadow 10px 10px rgba(0, 0, 0, .2);
">
<van-collapse-item title="标题1" name="1">内容</van-collapse-item>
<van-collapse-item title="标题2" name="2">内容</van-collapse-item>
<van-collapse-item title="标题3" name="3">内容</van-collapse-item>
<van-collapse-item title="产品介绍" name="1">农村信用社向符合条件的客户发放的用于满足个人消费、生产经营流动资金等需求的一项贷款业务。</van-collapse-item>
<van-collapse-item title="产品特点" name="2">一次核定,三年有效,随用随贷,循环使用。</van-collapse-item>
<van-collapse-item title="货款对象" name="3">货款对象</van-collapse-item>
<van-collapse-item title="货款期限" name="4">最长不超过3年。</van-collapse-item>
<van-collapse-item title="担保方式" name="5">以借款人自有或第三人提供有权处置的有效资产抵押担保。</van-collapse-item>
<!-- <van-collapse-item title="担保方式" name="5">以借款人自有或第三人提供有权处置的有效资产抵押担保。</van-collapse-item> -->
</van-collapse>
</scroller-view>
</div>
</div>
</template>
......@@ -55,7 +60,7 @@ export default class ProductCard extends Vue {
@Prop({ default: "" }) money: string | undefined; //额度
@Prop({ default: "" }) moneyName: string | undefined;//额度大写
//立即登录
activeNames = ["1"];
activeNames = [""];
lodiing() {
this.$router.push({
path: "/Recognition",
......
......@@ -2,7 +2,7 @@
* @Author: jiangzaicheng jiangzaicheng_jzc@163.com
* @Date: 2022-07-04 16:24:00
* @LastEditors: jiangzaicheng jiangzaicheng_jzc@163.com
* @LastEditTime: 2022-07-26 15:20:42
* @LastEditTime: 2022-08-18 11:09:51
* @FilePath: \mcep-h5\src\components\common\Tatle.vue
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
-->
......@@ -34,7 +34,7 @@
</van-col>
</van-row>
<van-row class="imgNo">
<van-col span="6" class="imglocal" @click="pushTrial">存款利息试算</van-col>
<van-col span="6" class="imglocal" @click="pushTrial">利息试算</van-col>
<van-col span="6" class="imglocal" @click="pushManage">理财产品 </van-col>
<van-col span="6" class="imglocal" @click="pushSelf">自助贷款</van-col>
<van-col span="6" class="imglocal">积分商城</van-col>
......
<template>
<div class="content">
<div style="width: 100%">
<van-form label-width="25%" @submit="onSubmit">
<!-- <mobile-input v-model="type_of_certificate" placeholder="营业执照" readonly label="证件类型" /> -->
<d-select
placeholder="请选择"
label="证件类型"
:value="IdentTp"
border="true"
:required="true"
v-model="IdentTp"
sfield="IdentTp"
size="small"
:rules="[{ required: true, message: '证件类型不能为空' }]"
></d-select>
<mobile-input
:formatter="formatter"
format-trigger="reset"
v-model="IdentNo"
:required="true"
:rules="[{ validator, message: msg == '' ? '类型不能为空' : msg }]"
label="证件号码"
/>
<mobile-input
v-show="companyName != ''"
class="contact_tel"
placeholder="请输入联系电话"
label="公司名称"
readonly
v-model="companyName"
/>
<div style="margin: 16px; display: flex; justify-content: space-around">
<van-button
@click="reset"
style="width: 40%"
round
color="#999999"
native-type="info"
plain
>重置</van-button
>
<van-button style="width: 40%" round type="info" native-type="submit"
>计算</van-button
>
</div>
</van-form>
<div class="content-style" v-show="LOAN_BAL != '' && LOAN_BAL != null">
<table-single-view
:data="AUMInfo"
:keyValue="keyValueAum"
></table-single-view>
</div>
</div>
</div>
</template>
<script lang="ts">
import { Component, Vue } from "vue-property-decorator";
import nettyApi from "@/constants/api/ms-netty/netty.api.ts";
import systemApi from "@/constants/api/ms-system/system.api.ts";
import IF from "@/public/factory/InterFaceFactory";
import { NativeUI } from "@/public/ts/NativeUI";
import TableSingleView from "@/public/TableSingleView.vue";
// import emUtil from '@/public/js/em.util';
/**
* @Description 年日均计算
* @Author JiangTao
* @Date 2021-11-10 下午 03:36
*/
@Component({
name: "Calculate",
components: { TableSingleView },
})
export default class Calculate extends Vue {
IdentTp = "";
IdentNo = "";
msg = "输入不能为空";
cusInfo: any = {};
AUMInfo: any = {}; //查询AUM返回的信息
keyValueAum = {
LOAN_BAL: "贷款总额",
LOAN_YEAR_DAY_AVG: "贷款年日均",
};
LOAN_BAL = "";
companyName = "";
onSubmit() {
this.selectCustInfo();
}
formatter() {}
reset() {
this.IdentNo = "";
this.IdentTp = "";
}
// 暂无拍照接口
// ocrScan(bse64Img:any) {
// if (!this.IdentTp) {
// NativeUI.toast('请先选择证件类型');
// } else {
// emUtil.captureImage().then(localData => {
// let _this = this;
// let fileImage = _this.base64ToFile(localData);
// NativeUI.showWaiting('正在识别...');
// IF.transferFile(systemApi.ocrCertificateIdentify, { file: fileImage }).then(res => {
// NativeUI.closeWaiting();
// console.log(res);
// if (res.ret_code == '000000') {
// NativeUI.toast(res.msg);
// _this.IdentNo = res.REGISTER_ID;
// // _this.CstNm = res.COMPANY_NAME;
// // _this.displayValue = res.COMPANY_TYPE;
// } else {
// NativeUI.toast(res.msg || 'OCR识别失败');
// }
// });
// });
// }
// }
//证件号校验规则
validator(val: any) {
if (this.IdentTp == "1") {
this.msg = "组织机构代码输入有误";
return /[A-Z0-9]{8}-[A-Z0-9]$|[A-Z0-9]{8}-[A-Z0-9]-[0-9]{2}$/.test(val);
} else if (this.IdentTp == "2") {
//社会统一信用代码
this.msg = "社会统一信用代码输入有误";
return /[1-9A-GY]{1}[1239]{1}[1-5]{1}[0-9]{5}[0-9A-Z]{10}/.test(val);
}
}
//查询年日均AUM
selectAUMInfo() {
const param = {
CUST_NO: this.cusInfo.cus_id, //'1003813734'
CUST_NAME: this.cusInfo.cus_name, //'成***',
tc: nettyApi.TRADE_CODE.selectCompanyAumInfo,
};
NativeUI.showWaiting("正在查询...");
return IF.transferDataInter(nettyApi.commonRq, param).then((res: any) => {
NativeUI.closeWaiting();
if (res.rc == "1") {
if (res.LOAN_BAL != null) {
this.AUMInfo = res;
this.LOAN_BAL = res.LOAN_BAL;
} else {
NativeUI.toast("此用户无AUM数据");
}
} else {
NativeUI.toast(res.msg);
}
});
}
//查询客户列表
selectCustInfo(pageNo = 1) {
const param = {
cus_status: "",
cert_code: this.IdentNo,
cus_type: "",
maxLine: "1",
targetPage: 1,
tc: nettyApi.TRADE_CODE.selectXDGSXX,
};
NativeUI.showWaiting("正在查询...");
return IF.transferDataInter(nettyApi.commonRq, param).then((res: any) => {
NativeUI.closeWaiting();
if (res.rc == "1") {
if (res.CusComList.length > 0) {
this.cusInfo = res.CusComList[0];
this.companyName = res.CusComList[0].cus_name;
this.selectAUMInfo();
} else {
NativeUI.toast("信贷系统无此用户");
}
} else {
NativeUI.toast(res.msg);
}
});
}
}
</script>
<style scoped lang="scss">
.content {
width: 50%;
padding-top: 5%;
margin: 0 auto;
}
::v-deep .van-button--info {
background-color: #fd5065;
border: 1px solid #fd5065;
}
::v-deep .van-button__text {
font-size: 16px;
}
.content-style {
margin-left: 100px;
margin-top: 100px;
}
</style>
<template>
<div class="content">
<van-tabs class="label" type="card">
<van-tab @click="manufacturing_trial_click" title="制造业试算">
<manufacturing-trial></manufacturing-trial>
</van-tab>
<van-tab @click="unmanufacturing_trial_click" title="非制造业试算">
<un-manufacturing-trial></un-manufacturing-trial>
</van-tab>
</van-tabs>
</div>
</template>
<script lang="ts">
import { Component, Vue } from "vue-property-decorator";
import { Tab, Tabs } from "vant";
import ManufacturingTrial from "@/components/workbench/company-common-functions/auxiliary-tools/financial-trial/ManufacturingTrial.vue";
import UnManufacturingTrial from "@/components/workbench/company-common-functions/auxiliary-tools/financial-trial/UnManufacturingTrial.vue";
/**
* @Description 财务试算
* @Author JiangTao
* @Date 2021-11-10 下午 03:36
*/
Vue.use(Tab);
Vue.use(Tabs);
@Component({
name: "FinancialTrial",
components: { ManufacturingTrial, UnManufacturingTrial },
})
export default class FinancialTrial extends Vue {
manufacturing_trial = true;
un_manufacturing_trial = false;
manufacturing_trial_click() {
// console.log("aaaaaaaaaaa");
this.manufacturing_trial = true;
this.un_manufacturing_trial = false;
}
unmanufacturing_trial_click() {
// console.log("bbbbbbbbbbbbb");
this.manufacturing_trial = false;
this.un_manufacturing_trial = true;
}
}
</script>
<style scoped>
.content {
width: 90%;
margin: 0 auto;
margin-top: 2%;
}
.label {
width: 30%;
margin: 0 auto;
margin-bottom: 4%;
}
::v-deep .van-tabs {
margin: 0;
width: 98%;
}
::v-deep .van-tabs--card > .van-tabs__wrap {
width: 300px;
margin: 0 auto;
}
::v-deep .van-tab__text--ellipsis {
font-size: 16px;
}
::v-deep .van-tabs__wrap,
::v-deep .van-tabs__nav--card {
height: 40px;
}
::v-deep .van-tabs--card > .van-tabs__wrap {
margin-bottom: 4%;
}
</style>
<template>
<div class="content">
<div v-if="getData[0]" class="personal-mortgage">
<div></div>
<div @click="selectInfo(0)">
{{ getData[0].fileName }}
</div>
</div>
<div v-if="getData[1]" class="personal-consumption">
<div></div>
<div @click="selectInfo(1)">
{{ getData[1].fileName }}
</div>
</div>
</div>
</template>
<script lang="ts">
import { Component, Vue } from "vue-property-decorator";
import nettyApi from "@/constants/api/ms-netty/netty.api.ts";
import systemApi from "@/constants/api/ms-system/system.api.ts";
import IF from "@/public/factory/InterFaceFactory";
import { NativeUI } from "@/public/ts/NativeUI";
/**
* @Description 利率定价
* @Author JiangTao
* @Date 2021-10-25 下午 08:55
*/
@Component({
name: "InterestPricing",
})
export default class InterestPricing extends Vue {
getData: any[] = [];
itemInfo: any = {};
//查询个贷利率定价
selectPerLoanPrice() {
NativeUI.showWaiting("正在查询...");
return IF.transferDataInter(systemApi.selectPerLoanPrice, {}).then(
(res: any) => {
NativeUI.closeWaiting();
if (res.code == 1) {
this.getData = res.data;
console.log(this.getData);
for (let i = 0; i < this.getData.length; i++) {
let temp = this.getData[i].docName;
// let strs = temp.spit('个');
let index = temp.indexOf("个人");
let fileDate = temp.substr(0, index);
let fileName = temp.substr(index);
this.getData[i].fileDate = fileDate;
this.getData[i].fileName = fileName;
}
// console.log(this.getData,'-----------------------------------------------');
} else {
NativeUI.toast(res.msg);
}
}
);
}
selectInfo(index = 0) {
const urlFront = "http://15.1.48.24:8888/"; //http://15.1.48.24:8888/
if (index == 0) {
window.location.href = urlFront + this.getData[0].mcepFileKey;
} else if (index == 1) {
window.location.href = urlFront + this.getData[1].mcepFileKey;
}
}
mounted() {
this.selectPerLoanPrice();
}
}
</script>
<style scoped>
.content {
width: 100%;
height: 100%;
display: flex;
justify-content: center;
align-items: center;
}
.personal-mortgage,
.personal-consumption {
width: 30%;
height: 33%;
background-image: url("~@/assets/images/auxiliary-tools-Interest-pricing.png");
background-repeat: no-repeat;
background-size: 90%;
}
.personal-mortgage div:nth-child(1),
.personal-consumption div:nth-child(1) {
width: 50%;
height: 30%;
margin-top: 10%;
margin-left: 8%;
background-image: url("~@/assets/images/chengdu-bank-logo.png");
background-repeat: no-repeat;
background-size: 75%;
}
.personal-mortgage div:nth-child(2),
.personal-consumption div:nth-child(2) {
width: 50%;
margin: 0 auto;
margin-left: 20%;
font-size: 115%;
}
</style>
<template>
<div class="content">
<div style="width: 100%">
<van-form label-width="25%" @submit="onSubmit">
<d-select border="true" readonly clickable v-model="refundType"
label="还款方式:"
placeholder="点击选择还款方式"
sfield="refundType"
:required="true"
:rules="[{ required: true, message: '还款方式不能为空' }]" />
<mobile-input border="true" :formatter="formatter" required format-trigger="reset" v-model="loanMoney"
label="贷款金额(元):" type="number"
vtype="decimals"
:required="true"
placeholder="请输入贷款金额" />
<mobile-input border="true" :formatter="formatter" required format-trigger="reset" v-model="allMonths"
type="digit"
:required="true"
placeholder="请输入贷款期限(1-360)"
:rules="[{ validator: validatorIntRules, message: msg }]" label="贷款期限(月):" />
<mobile-input border="true" :formatter="formatter" required format-trigger="reset" v-model="lprRate"
label="年利率(%):" @input="onMothRate"
:required="true"
placeholder="请输入小于100的年利率"
:rules="[{ validator: validatorRules, message: LprMsg }]" />
<div style="margin: 16px; display: flex; justify-content: space-around">
<van-button @click="reset" style="width: 40%" round color="#999999" native-type="button" plain>重置</van-button>
<van-button style="width: 40%" round type="info" native-type="submit">提交</van-button>
</div>
</van-form>
</div>
</div>
</template>
<script lang="ts">
import { Component, Vue } from "vue-property-decorator";
import { Calendar } from "vant";
import { Picker } from "vant";
import { Button } from "vant";
Vue.use(Button);
Vue.use(Picker);
Vue.use(Calendar);
/**
* @Description 贷款测算
* @Author JiangTao
* @Date 2021-10-25 下午 08:53
*/
@Component({
name: "LoanCalculation"
})
export default class LoanCalculation extends Vue {
listShow = false; //计算结果显示
floatRate = ""; //浮动利率
lprRate: any = ""; //LPR利率
loanMoney: any = ""; //总贷款金额
allMonths: any = ""; //贷款月日期
monthRate: any = ""; //月利率
monthRateFormat: any = ""; //月利率显示格式
refundType = ""; //还款方式
title = "贷款试算";
showPicker = false;
list: any[] = [];
keyBase = [];
keyBase1 = [
"贷款金额(万元):",
"每月还款本金(元):",
"首月还款额(元):",
"每月递减(元):",
"累计还贷款本息额(元):",
"累计还贷款利息额(元):"
];
LprMsg = "年利率为正整数或小数";
keyBase2 = ["贷款金额(万元):", "每月还款额(元):", "累计还贷款本息额(元):", "累计还贷款利息额(元):"];
keyBase3 = ["贷款金额(万元):", "累计还贷款本息额(元):", "累计还贷款利息额(元):", "每月利息约为(元):"];
msg = "";
reset() {
}
formatter() {
}
//toFixed四舍五入精度丢失重写
toFixed(num: any, s: any) {
var times = Math.pow(10, s);
var des: any = num * times + 0.5;
des = parseInt(des, 10) / times;
return des + "";
}
//输入内容为整数进行校验
validatorIntRules(val: any) {
if (val > 360 || val < 1) {
this.msg = "期数必须大于0小于360";
return false;
} else {
this.msg = "期数必须为整数";
return /^[0-9]*$/.test(val);
}
}
//输入内容进行校验
validatorRules(val: any) {
let reg = new RegExp("^(([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]*))$");
if (!reg.test(val)) {
this.LprMsg = "年利率为正整数或小数";
return false;
} else if (val > 100) {
this.LprMsg = "年利率不能大于100";
return false;
}
return true;
}
//给monthRate动态绑定输入值
onMothRate() {
let lprRate = this.lprRate == "" ? 0 : parseFloat(this.lprRate);
let floatRate = this.floatRate == "" ? 0 : parseFloat(this.floatRate);
this.monthRate = lprRate / 12; //月利率用于计算
// this.monthRate = parseFloat(this.monthRate).toFixed(2);
this.monthRateFormat = this.monthRate * 100 || 0; //月利率用于展示
this.monthRateFormat = this.toFixed(this.monthRateFormat, 3);
}
/**
* 清除页面信息
*/
onClearInfo() {
this.listShow = false;
this.loanMoney = ""; //总贷款金额
this.allMonths = ""; //贷款月日期
this.monthRate = ""; //月利率
this.monthRateFormat = ""; //月利率显示格式
this.refundType = ""; //还款方式
this.floatRate = ""; //浮动利率
this.lprRate = ""; //LPR利率(年利率)
}
onSubmit(values: any) {
if (this.refundType == "等额本金") {
//参数
let loanMoney: any = parseFloat(this.loanMoney); //总贷款金额
let allMonths: any = parseFloat(this.allMonths); //贷款月日期
let monthRate: any = parseFloat(this.monthRate) / 100; //月利率,输入为百分比转换为小数;
console.log(monthRate, "===============");
let monthLoanMoney: any = (loanMoney / allMonths).toFixed(3);
let curMonthInterest: any = 0; //本月应还利息
let repayLoanMoney: any = 0; //已还本金总额
let repayInterestMoney: any = 0; //已还利息
let everyMonthMoney: any = 0; //每月还本息
monthLoanMoney = parseFloat(monthLoanMoney).toFixed(2); //每月应还本金
this.list = []; //结果集置空
for (let i = 0; i < allMonths; i++) {
let monthPayMap: any = {}; //存储每一个月的还款内容
if (i < allMonths - 1) {
//不是最后一个月的话
repayLoanMoney = parseFloat(repayLoanMoney) + parseFloat(monthLoanMoney);
repayLoanMoney = repayLoanMoney.toFixed(2);
monthPayMap.monthLoanMoney = monthLoanMoney; //每月应还本金
// console.log(loanMoney,'===',monthLoanMoney,'====',monthRate);
curMonthInterest = (parseFloat(loanMoney) - i * parseFloat(monthLoanMoney)) * parseFloat(monthRate);
curMonthInterest = curMonthInterest.toFixed(2);
repayInterestMoney = parseFloat(repayInterestMoney) + parseFloat(curMonthInterest);
repayInterestMoney = this.toFixed(repayInterestMoney, 2);
everyMonthMoney = parseFloat(monthLoanMoney) + parseFloat(curMonthInterest);
everyMonthMoney = everyMonthMoney.toFixed(2);
} else {
//最后一个月,消除误差
monthLoanMoney = (parseFloat(loanMoney) - parseFloat(repayLoanMoney)).toFixed(2);
repayLoanMoney = parseFloat(repayLoanMoney) + parseFloat(monthLoanMoney);
repayLoanMoney = repayLoanMoney.toFixed(2);
monthPayMap.monthLoanMoney = monthLoanMoney;
curMonthInterest = (loanMoney - i * monthLoanMoney) * monthRate;
curMonthInterest = curMonthInterest.toFixed(2);
repayInterestMoney = parseFloat(repayInterestMoney) + parseFloat(curMonthInterest);
repayInterestMoney = this.toFixed(repayInterestMoney, 2);
everyMonthMoney = parseFloat(monthLoanMoney) + parseFloat(curMonthInterest);
everyMonthMoney = everyMonthMoney.toFixed(2);
}
monthPayMap.curMonthInterest = curMonthInterest;
monthPayMap.everyMonthMoney = everyMonthMoney; //每月应还本息
monthPayMap.repayInterestMoney = repayInterestMoney; //已还利息
monthPayMap.repayLoanMoney = repayLoanMoney;
this.list.push(monthPayMap);
}
this.$store.commit("setEmpty");
this.$store.commit("setCalculateRes", this.list);
this.$router.push({ path: "/LoanCalculationDetail"});
} else if (this.refundType == "等额本息") {
let loanMoney: any = parseFloat(this.loanMoney); //总贷款金额
let allMonths: any = parseFloat(this.allMonths); //贷款月日期
let monthRate: any = parseFloat(this.monthRate) / 100; //月利率,输入为百分比转换为小数;
let perMonthMoney: any =
(loanMoney * monthRate * Math.pow(1 + monthRate, allMonths)) / (Math.pow(1 + monthRate, allMonths) - 1); //每月还款金额
let allMoney: any = parseFloat(perMonthMoney) * parseFloat(allMonths); //总还款金额
let onlyRate: any = parseFloat(allMoney) - parseFloat(loanMoney); //剩余本金
let curMonthInterest: any = 0; //本月应还利息
let repayLoanMoney: any = 0; //已还本金总额
let repayInterestMoney: any = 0; //已还利息
let everyMonthMoney: any = 0; //每月还本息
let monthLoanMoney: any = 0; //本月还本金
let totalRepay: any = 0; //已还本息
perMonthMoney = this.toFixed(perMonthMoney, 2);
allMoney = this.toFixed(allMoney, 2);
onlyRate = this.toFixed(onlyRate, 2);
this.list = [];
this.keyBase = [];
for (let i = 0; i < allMonths; i++) {
let monthPayMap: any = {};
if (i < allMonths - 1) {
curMonthInterest = (parseFloat(loanMoney) - parseFloat(repayLoanMoney)) * parseFloat(monthRate); //每月还利息
monthLoanMoney = parseFloat(perMonthMoney) - parseFloat(curMonthInterest); //每月本金
repayInterestMoney = parseFloat(repayInterestMoney) + parseFloat(curMonthInterest); //已还利息
repayLoanMoney = parseFloat(repayLoanMoney) + parseFloat(monthLoanMoney); //已还本金
totalRepay = parseFloat(totalRepay) + parseFloat(perMonthMoney); //已还本息
} else {
everyMonthMoney = parseFloat(allMoney) - parseFloat(totalRepay); //剩余本息
monthLoanMoney = parseFloat(loanMoney) - parseFloat(repayLoanMoney);
repayLoanMoney = parseFloat(repayLoanMoney) + parseFloat(monthLoanMoney); //已还本金
curMonthInterest = parseFloat(everyMonthMoney) - parseFloat(monthLoanMoney);
}
monthPayMap.everyMonthMoney = this.toFixed(perMonthMoney, 2);
monthPayMap.curMonthInterest = this.toFixed(curMonthInterest, 2);
monthPayMap.repayInterestMoney = this.toFixed(repayInterestMoney, 2); //已还利息
monthPayMap.repayLoanMoney = this.toFixed(repayLoanMoney, 2);
monthPayMap.monthLoanMoney = this.toFixed(monthLoanMoney, 2);
this.list.push(monthPayMap);
}
this.$store.commit("setEmpty");
this.$store.commit("setCalculateRes", this.list);
this.$router.push({ path: "/LoanCalculationDetail"});
} else if (this.refundType == "按月付息") {
let loanMoney: any = parseFloat(this.loanMoney); //总贷款金额
let allMonths: any = parseFloat(this.allMonths); //贷款月日期
let monthRate: any = parseFloat(this.monthRate) / 100; //月利率,输入为百分比转换为小数;
let curMonthInterest: any = 0; //本月应还利息
let repayLoanMoney: any = 0; //已还本金总额
let repayInterestMoney: any = 0; //已还利息
let everyMonthMoney: any = 0; //每月还本息
let monthLoanMoney: any = 0; //本月还本金
let totalRepay: any = 0; //已还本息
let onlyRate: any = loanMoney * allMonths * monthRate; //总利息
let allMoney: any = loanMoney + onlyRate; //总还款金额
let perOnlyRate: any = onlyRate / allMonths;
this.list = [];
allMoney = this.toFixed(allMoney, 2);
onlyRate = this.toFixed(onlyRate, 2);
perOnlyRate = this.toFixed(perOnlyRate, 2);
curMonthInterest = parseFloat(loanMoney) * parseFloat(monthRate);
for (let i = 0; i < allMonths; i++) {
let monthPayMap: any = {};
repayInterestMoney = parseFloat(repayInterestMoney) + parseFloat(curMonthInterest);
if (i != allMonths - 1) {
everyMonthMoney = curMonthInterest;
} else if (i == allMonths - 1) {
everyMonthMoney = parseFloat(curMonthInterest) + parseFloat(loanMoney);
monthLoanMoney = loanMoney;
repayLoanMoney = loanMoney;
}
monthPayMap.everyMonthMoney = this.toFixed(everyMonthMoney, 2);
monthPayMap.curMonthInterest = this.toFixed(curMonthInterest, 2);
monthPayMap.repayInterestMoney = this.toFixed(repayInterestMoney, 2); //已还利息
monthPayMap.repayLoanMoney = this.toFixed(repayLoanMoney, 2);
monthPayMap.monthLoanMoney = this.toFixed(monthLoanMoney, 2);
this.list.push(monthPayMap);
}
this.$store.commit("setEmpty");
this.$store.commit("setCalculateRes", this.list);
this.$router.push({ path: "/LoanCalculationDetail"});
} else {
this.list = [];
}
//跳转到还款页面
}
onConfirm(value: any) {
this.refundType = value;
this.showPicker = false;
}
/**
* @desc: keepAlive 处理代码逻辑,根据路由判断进入页面销毁缓存数据
* @author: zmk
* @date: 2022年01月25日23:07:36
* */
activated() {
this.$router.beforeEach((to, from, next) => {
if (from.path == "/main/workbench") {
this.listShow = false;
this.loanMoney = ""; //总贷款金额
this.allMonths = ""; //贷款月日期
this.monthRate = ""; //月利率
this.monthRateFormat = ""; //月利率显示格式
this.refundType = ""; //还款方式
this.floatRate = ""; //浮动利率
this.lprRate = ""; //LPR利率(年利率)
}
next();
});
}
// watch: {
// lprRate() {
// if (this.lprRate > 100) {
// this.LprMsg = '年利率不能大于100';
// } else {
// this.LprMsg = '年利率为正整数或小数';
// }
// }
// }
}
</script>
<style scoped>
.content {
width: 60%;
padding-top: 10%;
margin: 0 auto;
}
::v-deep .d-field-label {
width: 110px !important;
text-align: right;
}
::v-deep .van-button--info {
background-color: #fd5065;
border: 1px solid #fd5065;
}
::v-deep .van-button__text {
font-size: 16px;
}
::v-deep .van-cell::after {
border: 0;
}
</style>
<template>
<!-- 随意分-->
<div class="content">
<div style="width: 100%">
<van-form label-width="25%" @submit="onSubmit">
<mobile-input
:formatter="formatter"
size="100"
format-trigger="reset"
v-model="loanMoney"
:required="true"
:rules="[{ validator: validatorFloatNum, message: '输入有误,请输入' }]"
type="number"
label="贷款金额(元)"
placeholder="请输入贷款金额"
/>
<d-select
label="还款方式"
:rules="[{ required: true, message: '还款方式不能为空' }]"
placeholder="请选择"
:required="true"
border="true"
@input="selectSYFRate"
v-model="Repayment"
sfield="Repayment"
size="small"
></d-select>
<d-select
label="手续费收取方式"
:rules="[{ required: true, message: '手续费收取方式不能为空' }]"
placeholder="请选择"
:required="true"
border="true"
v-model="brokerage"
sfield="brokerage"
size="small"
></d-select>
<mobile-input
:formatter="formatter"
format-trigger="reset"
readonly
v-model="yearRate"
:rules="[{ validator: validatorRules, message: '输入有误,请输入' }]"
:label="label1"
/>
<mobile-input
:formatter="formatter"
format-trigger="reset"
readonly
v-model="AllRate"
:rules="[{ validator: validatorRules, message: '输入有误,请输入' }]"
:label="label2"
/>
<mobile-input
:formatter="formatter"
format-trigger="reset"
v-model="yearRate_yh"
:required="true"
label="优惠折扣"
placeholder="请输入"
:rules="[{ validator: validatorRules, message: rateMsg }]"
/>
<d-select
v-if="Repayment == '1'"
name="NUM"
label="期数(月)"
placeholder="请选择期数"
:rules="[{ required: true, message: '期数不能为空' }]"
border="true"
sfield="NUM"
:required="true"
v-model="NUMS" />
<mobile-input
v-if="Repayment == '2'"
:formatter="formatter"
format-trigger="reset"
v-model="NUMS2"
:required="true"
type="digit"
:rules="[{ validator: validatorNumber, message: '期数必须小于等于730' }]"
label="期数(天)"
/>
<div style="margin: 16px; display: flex; justify-content: space-around">
<van-button
@click="reset"
style="width: 40%"
round
color="#999999"
native-type="button"
plain
>重置
</van-button
>
<van-button style="width: 40%" round type="info" native-type="submit"
>提交
</van-button
>
</div>
</van-form>
</div>
</div>
</template>
<script lang="ts">
import { Component, Vue, Watch } from "vue-property-decorator";
import nettyApi from "@/constants/api/ms-netty/netty.api.ts";
import IF from "@/public/factory/InterFaceFactory";
import { NativeUI } from "@/public/ts/NativeUI";
import systemApi from "@/constants/api/ms-system/system.api.ts";
/**
*@description: 随意分还款试算
*@author: wanghang
*@date: 2022-02-16
*/
@Component({
name: "RepaymentTrial"
})
export default class RepaymentTrial extends Vue {
title = "随意分还款试算";
columns1 = ["每月1日", "每月2日", "每月3日", "每月4日", "每月5日"];
showPicker1 = false;
showPicker2 = false;
loanMoney: any = "";
yearRate: any = "";
yearRate_yh: any = ""; //优惠卷利率
NUMS: any = ""; //选择的期数,月
NUMS2: any = ""; //手写的期数,天
Repayment: any = "";
brokerage: any = "";
resInfo: any[] = [];
pattern: any = /^[1-9]\d*$/; //整数校验
rateMsg: any = "请填写正确的折扣";
inrateType: any = "aytxbj_inrate"; //随意分类别
AllRate: any = "";
label1: any = "年利率(%)";
label2: any = "总费率(%)";
largeDay: any = 0; //利率请求默认天数
smallDay: any = 1000; //利率请求默认天数
formatter() {
}
onSubmit() {
this.selectSYFInfo();
}
reset() {
this.loanMoney = "";
this.yearRate = "";
this.yearRate_yh = ""; //优惠卷利率
this.NUMS = "";
this.Repayment = "";
this.AllRate = "";
this.NUMS2 = "";
this.brokerage = "";
}
selectSYFInfo() {
const param: any = {
tc: "MCEP",
AMT: this.loanMoney,
inRate: this.yearRate,
inRate_YH: this.Repayment == "1" ? this.yearRate_yh / 100 : this.yearRate_yh / 10000,
NUMS: this.Repayment == "1" ? this.NUMS : this.NUMS2,
Repayment: this.Repayment,
brokerage: this.brokerage
};
NativeUI.showWaiting("正在查询...");
return IF.transferDataInter(systemApi.SYFLoanmoneyComputed, param).then((res: any) => {
NativeUI.closeWaiting();
if (res.code == 1) {
this.resInfo = res.data.LIST;
this.$store.commit("setEmpty");
this.$store.commit("setCalculateRes", this.resInfo);
this.$router.push({
path: "/RepaymentTrialDetail"
});
} else {
NativeUI.toast(res.message);
}
});
}
//查询随意分利率
selectSYFRate(val: any) {
if (val == 1) { //按月付款
this.largeDay = 1;
this.smallDay = 1000;
} else if (val == 2) {
if (this.NUMS2 == "" || this.NUMS2 == 0 || (this.NUMS2 >= 1 && this.NUMS2 <= 365)) {
this.largeDay = 1;
this.smallDay = 365;
} else {
this.largeDay = 366;
this.smallDay = 1000;
}
}
const param = {
capitalType: val,
largeDay: this.largeDay,
smallDay: this.smallDay,
pageNum: "1",
pageSize: "10"
};
return IF.transferDataInter(systemApi.SYFLoanRateSelect, param).then((res:any) => {
if (res.code == 1) {
//查询回来利率
this.yearRate = res.data.records[0].rate;
} else {
NativeUI.toast(res.msg);
}
});
}
//浮点校验规则
validator(val: any) {
return /^(-?\d+)(\.\d+)?$/.test(val);
}
//输入内容进行校验
validatorRules(val: any) {
let reg = new RegExp("^d{1,2}$|^\\d{1,2}");
if (!reg.test(val)) {
return false;
} else if (val > 100) {
return false;
}
return true;
}
//验证非负两位浮点数
validatorFloatNum(val: any) {
let reg = new RegExp("^(([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]*))$");
if (!reg.test(val)) {
return false;
}
return true;
}
validatorNumber(val: any) {
console.log(val);
let reg = new RegExp("^[1-9]\\d*$");
if (!reg.test(val)) {
return false;
} else if (val > 730) {
return false;
} else {
return true;
}
}
activated() {
this.$router.beforeEach((to, from, next) => {
if (from.path == "/main/workbench") {
this.loanMoney = "";
this.yearRate = "";
this.yearRate_yh = ""; //优惠卷利率
this.AllRate = "";
this.NUMS = "";
this.NUMS2 = "";
this.Repayment = "";
this.brokerage = "";
}
next();
});
}
@Watch("yearRate")
yearRateFunction(val:any) {
if (this.Repayment == "1") {
let payoff = this.yearRate_yh;
if (payoff == "") {
this.AllRate = ((this.NUMS * val) / 12).toFixed(2).toString();
} else {
this.AllRate = ((this.NUMS * val * payoff / 100) / 12).toFixed(2).toString();
}
} else if (this.Repayment == "2") {
// this.selectSYFRate("2");
let payoff = this.yearRate_yh;
if (payoff == "") {
this.AllRate = ((this.NUMS2 * val) / 100).toFixed(2).toString();
} else {
this.AllRate = ((this.NUMS2 * val * payoff / 100) / 100).toFixed(2).toString();
}
}
}
@Watch("yearRate_yh")
yearRate_yhFunction(val:any) {
if (this.yearRate_yh < 0) {
this.rateMsg = "折扣不能为负";
} else {
this.rateMsg = "请填写正确的折扣";
}
if (this.Repayment == "1") {
let payoff = val;
if (payoff == "") {
this.AllRate = ((this.NUMS * this.yearRate) / 12).toFixed(2).toString();
} else {
this.AllRate = ((this.NUMS * this.yearRate * payoff / 100) / 12).toFixed(2).toString();
}
} else if (this.Repayment == "2") {
let payoff = val;
if (payoff == "") {
this.AllRate = ((this.NUMS2 * this.yearRate) / 100).toFixed(2).toString();
} else {
this.AllRate = ((this.NUMS2 * this.yearRate * payoff / 100) / 100).toFixed(2).toString();
}
}
}
@Watch("NUMS2")
NUMS2Function(val: any) {
this.selectSYFRate("2");
let payoff = this.yearRate_yh;
if (payoff == "") {
this.AllRate = ((val * this.yearRate) / 100).toFixed(2).toString();
} else {
this.AllRate = ((val * this.yearRate * payoff / 100) / 100).toFixed(2).toString();
}
}
@Watch("NUMS")
NUMSFunction(val: any) {
if (this.Repayment == "1") {
let payoff = this.yearRate_yh;
if (payoff == "") {
this.AllRate = ((val * this.yearRate) / 12).toFixed(2).toString();
} else {
this.AllRate = ((val * this.yearRate * payoff / 100) / 12).toFixed(2).toString();
}
}
}
@Watch("Repayment")
RepaymentFunction(val: any) {
if (val == "1") {
this.label1 = "年利率(%)";
this.label2 = "总费率(%)";
} else if (val == "2") {
this.label1 = "天利率(万分)";
this.label2 = "总费率(%)";
}
}
}
</script>
<style scoped>
.content {
width: 60%;
padding-top: 10%;
margin: 0 auto;
}
::v-deep .d-form-field .van-field {
align-items: center;
}
::v-deep .van-cell::after {
border: 0;
}
::v-deep .van-button--info {
background-color: #fd5065;
border: 1px solid #fd5065;
}
::v-deep .van-button__text {
font-size: 16px;
}
</style>
<template>
<div>
<van-form @submit="onSubmit">
<table>
<tr>
<td>
<mobile-input :formatter="formatter" :rules="[{ validator: testFloat, message: '必须为正整数或者小数' }]" :required="true" type="number" format-trigger="reset" v-model="manufacturingObject.GPM"
label="销售毛利率(%)" size="small" />
</td>
<td>
<mobile-input :formatter="formatter" :rules="[{ validator: testFloat, message: '必须为正整数或者小数' }]" :required="true" format-trigger="reset" v-model="manufacturingObject.ROE" type="number" label="净资产收益率(%)"
size="small" />
</td>
</tr>
<tr>
<td>
<mobile-input :formatter="formatter" :rules="[{ validator: testFloat, message: '必须为正整数或者小数' }]" :required="true" type="number" format-trigger="reset" v-model="manufacturingObject.ASSET"
label="资产负债率(%)" size="small" />
</td>
<td>
<mobile-input :formatter="formatter" :rules="[{ validator: testFloat, message: '必须为正整数或者小数' }]" :required="true" format-trigger="reset"
v-model="manufacturingObject.EARNED" label="已获利息倍数" type="number" size="small" />
</td>
</tr>
<tr>
<td>
<mobile-input :formatter="formatter" :rules="[{ validator: testFloat, message: '必须为正整数或者小数' }]" :required="true" format-trigger="reset"
v-model="manufacturingObject.InterBearing" type="number" label="有息负债率(%)" size="small" />
</td>
<td>
<mobile-input :formatter="formatter" :rules="[{ validator: testFloat, message: '必须为正整数或者小数' }]" :required="true" format-trigger="reset"
v-model="manufacturingObject.ACCRECETRUN" type="number" label="应收账款周转率(%)" size="small" />
</td>
</tr>
<tr>
<td>
<mobile-input :formatter="formatter" :rules="[{ validator: testFloat, message: '必须为正整数或者小数' }]" :required="true" format-trigger="reset" v-model="manufacturingObject.DEPTURN"
label="存款周转率(%)" type="number" size="small" />
</td>
<td>
<mobile-input :formatter="formatter" :rules="[{ validator: testFloat, message: '必须为正整数或者小数' }]" :required="true" format-trigger="reset"
v-model="manufacturingObject.FAT" type="number" label="固定资产周转率(%)" size="small" />
</td>
</tr>
<tr>
<td>
<mobile-input :formatter="formatter" :rules="[{ validator: testFloat, message: '必须为正整数或者小数' }]" :required="true" format-trigger="reset" v-model="manufacturingObject.ITR"
label="存货周转率(%)" type="number" size="small" />
</td>
<td>
<mobile-input :formatter="formatter" :required="true" type="number" format-trigger="reset" v-model="manufacturingObject.SARE"
label="销售收入(元)" size="small" />
</td>
</tr>
<tr>
<td>
<mobile-input :formatter="formatter" :rules="[{ pattern, message: '年限为整数' }]" :required="true" format-trigger="reset" v-model="manufacturingObject.ESYEAR"
label="成立年限" type="digit" size="small" />
</td>
<td>
<mobile-input :formatter="formatter" :rules="[{ validator: testFloat, message: floatMsg }]" :required="true" format-trigger="reset" v-model="manufacturingObject.TASS"
label="总资产(元)" type="digit" size="small" />
</td>
</tr>
<tr>
<td colspan="2">
<mobile-input :required="true" :rules="[{ validator: testFloat, message: floatMsg }]" :formatter="formatter" format-trigger="reset" v-model="manufacturingObject.NASS"
label="净资产(元)" type="number" size="small" />
</td>
</tr>
<tr>
<td colspan="2">
<div style="margin: 16px; display: flex; justify-content: space-around">
<van-button @click="reset" style="width: 25%" round color="#999999" native-type="button" plain>重置</van-button>
<van-button style="width: 25%" round type="info" native-type="submit">试算</van-button>
</div>
</td>
</tr>
</table>
</van-form>
<van-dialog
:show-cancel-button="false"
:show-confirm-button="false"
:close-on-click-overlay="true"
v-model="showDialogReject"
>
<div class="dialog-box" style="position: relative">
<div class="dialog-title">测算结果</div>
<div class="score-box">{{ totalScore }}</div>
<svg class="icon icon-img" aria-hidden="true">
<use xlink:href="#icon-a-cepingjieguo110x110ziyuan40"></use>
</svg>
<van-button class="submitstyle3" block native-type="button" @click="showDialogReject = false">
知道了
</van-button>
</div>
</van-dialog>
</div>
</template>
<script lang="ts">
import { Component, Vue } from "vue-property-decorator";
import systemApi from "@/constants/api/ms-system/system.api.ts";
import IF from "@/public/factory/InterFaceFactory";
import { NativeUI } from "@/public/ts/NativeUI";
/**
* @Description 制造业试算
* @Author 王航
* @Date 2022-2-23 下午 04:32
*/
@Component({
name: "ManufacturingTrial"
})
export default class ManufacturingTrial extends Vue {
manufacturingObject:any = {
//制造业对象
GPM: '', //销售毛利率
ROE: '', //净资产收益率
ASSET: '', //资产负债率
EARNED: '', //已获息倍数
InterBearing: '', //有息负债率
ACCRECETRUN: '', //应收账款周转率
DEPTURN: '', //存款周转率
FAT: '', //固定资产周转率
ITR: '', //存货周转率
SARE: '', //销售收入
ESYEAR: '', //成立年限
TASS: '', //总资产
NASS: '' //净资产
};
pattern = /^[1-9]\d*$/; //整数校验
totalScore:any= ''; //总分数
showDialogReject= false;
floatMsg= ''; //浮点数验证信息
formatter() {
}
onSubmit(values: any) {
// console.log("submit", values);
this.selectCompanyComputeInfo();
}
selectCompanyComputeInfo() {
let param = {
GPM: this.manufacturingObject.GPM, //销售毛利率
ROE: this.manufacturingObject.ROE, //净资产收益率
ASSET: this.manufacturingObject.ASSET, //资产负债率
EARNED: this.manufacturingObject.EARNED, //已获息倍数
InterBearing: this.manufacturingObject.InterBearing, //有息负债率
ACCRECETRUN: this.manufacturingObject.ACCRECETRUN, //应收账款周转率
DEPTURN: this.manufacturingObject.DEPTURN, //存款周转率
FAT: this.manufacturingObject.FAT, //固定资产周转率
ITR: this.manufacturingObject.ITR, //存货周转率
SARE: this.manufacturingObject.SARE, //销售收入
ESYEAR: this.manufacturingObject.ESYEAR, //成立年限
TASS: this.manufacturingObject.TASS, //总资产
NASS: this.manufacturingObject.NASS, //净资产
COMTYPE: '0' //0表示制造业企业,1表示非制造业
};
NativeUI.showWaiting('正在查询...');
return IF.transferDataInter(systemApi.companyMoneyComputed, param).then((res:any) => {
NativeUI.closeWaiting();
if (res.code == 1) {
this.totalScore = res.data.totalAch; //总分
console.log(this.totalScore);
this.showDialogReject = true;
} else {
NativeUI.toast(res.message);
}
});
}
formatDate(date: any) {
return `${date.getFullYear()}-${date.getMonth() + 1}-${date.getDate()}`;
}
reset() {
this.manufacturingObject.GPM = '';
this.manufacturingObject.ROE = '';
this.manufacturingObject.ASSET = '';
this.manufacturingObject.EARNED = '';
this.manufacturingObject.InterBearing = '';
this.manufacturingObject.ACCRECETRUN = '';
this.manufacturingObject.DEPTURN = '';
this.manufacturingObject.FAT = '';
this.manufacturingObject.ITR = '';
this.manufacturingObject.SARE = '';
this.manufacturingObject.ESYEAR = '';
this.manufacturingObject.TASS = '';
this.manufacturingObject.NASS = '';
}
testFloat(val:any) {
if (parseFloat(val) < 0) {
// this.floatMsg = '必须为正数';
return false;
} else {
// this.floatMsg = '必须为整数或者小数';
return /^(-?\d+)(\.\d+)?$/.test(val);
}
}
}
</script>
<style scoped>
table {
width: 90%;
margin: 0 auto;
}
::v-deep .van-button--info {
background-color: #fd5065;
border: 1px solid #fd5065;
}
::v-deep .van-button__text {
font-size: 16px;
}
.dialog-box {
margin: 0 auto;
background: #fff;
display: flex;
flex-direction: column;
align-items: center;
width: 300px;
height: 306px;
}
.icon-img {
width: 120px;
height: 120px;
margin-top: 20px;
margin-bottom: 20px;
color: rgb(17, 167, 30);
}
.dialog-title {
font-weight: bold;
margin-top: 10%;
font-size: 16px;
color: #333;
}
.score-box {
position: absolute;
font-size: 36px;
font-weight: 400;
top: 105px;
z-index: 999;
color: #f59a23;
}
.submitstyle3 {
width: 268px;
height: 36px;
border-radius: 6px;
margin-top: 30px;
color: #fff;
background-color: #ff574c;
border-color: #ff574c;
font-size: 16px;
text-align: center;
font-weight: 400;
}
</style>
<template>
<div>
<van-form @submit="onSubmit">
<table>
<tr>
<td>
<mobile-input :formatter="formatter" :rules="[{ validator: testFloat, message: '必须为正整数或者小数' }]" :required="true" type="number" format-trigger="reset" v-model="noManufacturingObject.GPM"
label="销售毛利率(%)" size="small" />
</td>
<td>
<mobile-input :formatter="formatter" :rules="[{ validator: testFloat, message: '必须为正整数或者小数' }]" :required="true" format-trigger="reset" v-model="noManufacturingObject.ROE" type="number" label="净资产收益率(%)"
size="small" />
</td>
</tr>
<tr>
<td>
<mobile-input :formatter="formatter" :rules="[{ validator: testFloat, message: '必须为正整数或者小数' }]" :required="true" type="number" format-trigger="reset" v-model="noManufacturingObject.ASSET"
label="资产负债率(%)" size="small" />
</td>
<td>
<mobile-input :formatter="formatter" :rules="[{ validator: testFloat, message: '必须为正整数或者小数' }]" :required="true" format-trigger="reset"
v-model="noManufacturingObject.EARNED" label="已获利息倍数" type="number" size="small" />
</td>
</tr>
<tr>
<td>
<mobile-input :formatter="formatter" :rules="[{ validator: testFloat, message: '必须为正整数或者小数' }]" :required="true" format-trigger="reset"
v-model="noManufacturingObject.InterBearing" type="number" label="有息负债率(%)" size="small" />
</td>
<td>
<mobile-input :formatter="formatter" :rules="[{ validator: testFloat, message: '必须为正整数或者小数' }]" :required="true" format-trigger="reset"
v-model="noManufacturingObject.ACCRECETRUN" type="number" label="应收账款周转率(%)" size="small" />
</td>
</tr>
<tr>
<td>
<mobile-input :formatter="formatter" :rules="[{ validator: testFloat, message: '必须为正整数或者小数' }]" :required="true" format-trigger="reset" v-model="noManufacturingObject.DEPTURN"
label="存款周转率(%)" type="number" size="small" />
</td>
<td>
<mobile-input :formatter="formatter" :rules="[{ validator: testFloat, message: '必须为正整数或者小数' }]" :required="true" format-trigger="reset"
v-model="noManufacturingObject.FAT" type="number" label="固定资产周转率(%)" size="small" />
</td>
</tr>
<tr>
<td>
<mobile-input :formatter="formatter" :rules="[{ validator: testFloat, message: '必须为正整数或者小数' }]" :required="true" format-trigger="reset" v-model="noManufacturingObject.ITR"
label="存货周转率(%)" type="number" size="small" />
</td>
<td>
<mobile-input :formatter="formatter" :required="true" type="number" format-trigger="reset" v-model="noManufacturingObject.SARE"
label="销售收入(元)" size="small" />
</td>
</tr>
<tr>
<td>
<mobile-input :formatter="formatter" :rules="[{ pattern, message: '年限为整数' }]" :required="true" format-trigger="reset" v-model="noManufacturingObject.ESYEAR"
label="成立年限" type="digit" size="small" />
</td>
<td>
<mobile-input :formatter="formatter" :rules="[{ validator: testFloat, message: floatMsg }]" :required="true" format-trigger="reset" v-model="noManufacturingObject.TASS"
label="总资产(元)" type="digit" size="small" />
</td>
</tr>
<tr>
<td colspan="2">
<mobile-input :required="true" :rules="[{ validator: testFloat, message: floatMsg }]" :formatter="formatter" format-trigger="reset" v-model="noManufacturingObject.NASS"
label="净资产(元)" type="number" size="small" />
</td>
</tr>
<tr>
<td colspan="2">
<div style="margin: 16px; display: flex; justify-content: space-around">
<van-button @click="reset" style="width: 25%" round color="#999999" native-type="button" plain>重置</van-button>
<van-button style="width: 25%" round type="info" native-type="submit">试算</van-button>
</div>
</td>
</tr>
</table>
</van-form>
<van-dialog
:show-cancel-button="false"
:show-confirm-button="false"
:close-on-click-overlay="true"
v-model="showDialogReject"
>
<div class="dialog-box" style="position: relative">
<div class="dialog-title">测算结果</div>
<div class="score-box">{{ totalScore }}</div>
<svg class="icon icon-img" aria-hidden="true">
<use xlink:href="#icon-a-cepingjieguo110x110ziyuan40"></use>
</svg>
<van-button class="submitstyle3" block native-type="button" @click="showDialogReject = false">
知道了
</van-button>
</div>
</van-dialog>
</div>
</template>
<script lang="ts">
import { Component, Vue } from "vue-property-decorator";
import systemApi from "@/constants/api/ms-system/system.api.ts";
import IF from "@/public/factory/InterFaceFactory";
import { NativeUI } from "@/public/ts/NativeUI";
/**
* @Description 非制造业试算
* @Author 王航
* @Date 2022-2-23 下午 04:32
*/
@Component({
name: "NoManufacturingTrial"
})
export default class NoManufacturingTrial extends Vue {
noManufacturingObject:any = {
//非制造业对象
GPM: '', //销售毛利率
ROE: '', //净资产收益率
ASSET: '', //资产负债率
EARNED: '', //已获息倍数
InterBearing: '', //有息负债率
ACCRECETRUN: '', //应收账款周转率
DEPTURN: '', //存款周转率
FAT: '', //固定资产周转率
ITR: '', //存货周转率
SARE: '', //销售收入
ESYEAR: '', //成立年限
TASS: '', //总资产
NASS: '' //净资产
};
pattern = /^[1-9]\d*$/; //整数校验
totalScore:any= ''; //总分数
showDialogReject= false;
floatMsg= ''; //浮点数验证信息
formatter() {
}
onSubmit(values: any) {
// console.log("submit", values);
this.selectCompanyComputeInfo();
}
selectCompanyComputeInfo() {
let param = {
GPM: this.noManufacturingObject.GPM, //销售毛利率
ROE: this.noManufacturingObject.ROE, //净资产收益率
ASSET: this.noManufacturingObject.ASSET, //资产负债率
EARNED: this.noManufacturingObject.EARNED, //已获息倍数
InterBearing: this.noManufacturingObject.InterBearing, //有息负债率
ACCRECETRUN: this.noManufacturingObject.ACCRECETRUN, //应收账款周转率
DEPTURN: this.noManufacturingObject.DEPTURN, //存款周转率
FAT: this.noManufacturingObject.FAT, //固定资产周转率
ITR: this.noManufacturingObject.ITR, //存货周转率
SARE: this.noManufacturingObject.SARE, //销售收入
ESYEAR: this.noManufacturingObject.ESYEAR, //成立年限
TASS: this.noManufacturingObject.TASS, //总资产
NASS: this.noManufacturingObject.NASS, //净资产
COMTYPE: '1' //0表示制造业企业,1表示非制造业
};
NativeUI.showWaiting('正在查询...');
return IF.transferDataInter(systemApi.companyMoneyComputed, param).then((res:any) => {
NativeUI.closeWaiting();
if (res.code == 1) {
this.totalScore = res.data.totalAch; //总分
console.log(this.totalScore);
this.showDialogReject = true;
} else {
NativeUI.toast(res.message);
}
});
}
formatDate(date: any) {
return `${date.getFullYear()}-${date.getMonth() + 1}-${date.getDate()}`;
}
reset() {
this.noManufacturingObject.GPM = '';
this.noManufacturingObject.ROE = '';
this.noManufacturingObject.ASSET = '';
this.noManufacturingObject.EARNED = '';
this.noManufacturingObject.InterBearing = '';
this.noManufacturingObject.ACCRECETRUN = '';
this.noManufacturingObject.DEPTURN = '';
this.noManufacturingObject.FAT = '';
this.noManufacturingObject.ITR = '';
this.noManufacturingObject.SARE = '';
this.noManufacturingObject.ESYEAR = '';
this.noManufacturingObject.TASS = '';
this.noManufacturingObject.NASS = '';
}
testFloat(val:any) {
if (parseFloat(val) < 0) {
// this.floatMsg = '必须为正数';
return false;
} else {
// this.floatMsg = '必须为整数或者小数';
return /^(-?\d+)(\.\d+)?$/.test(val);
}
}
}
</script>
<style scoped>
table {
width: 90%;
margin: 0 auto;
}
::v-deep .van-button--info {
background-color: #fd5065;
border: 1px solid #fd5065;
}
::v-deep .van-button__text {
font-size: 16px;
}
.dialog-box {
margin: 0 auto;
background: #fff;
display: flex;
flex-direction: column;
align-items: center;
width: 300px;
height: 306px;
}
.icon-img {
width: 120px;
height: 120px;
margin-top: 20px;
margin-bottom: 20px;
color: rgb(17, 167, 30);
}
.dialog-title {
font-weight: bold;
margin-top: 10%;
font-size: 16px;
color: #333;
}
.score-box {
position: absolute;
font-size: 36px;
font-weight: 400;
top: 105px;
z-index: 999;
color: #f59a23;
}
.submitstyle3 {
width: 268px;
height: 36px;
border-radius: 6px;
margin-top: 30px;
color: #fff;
background-color: #ff574c;
border-color: #ff574c;
font-size: 16px;
text-align: center;
font-weight: 400;
}
</style>
<template>
<div>合同签订及出账</div>
</template>
<script lang="ts">
import { Component, Vue } from "vue-property-decorator";
/**
* @Description 合同签订及出账
* @Author JiangTao
* @Date 2021-11-10 下午 03:32
*/
@Component({
name: "ContractSigningAndBilling",
})
export default class ContractSigningAndBilling extends Vue {}
</script>
<style scoped></style>
<template>
<div>贷款申请</div>
</template>
<script lang="ts">
import { Component, Vue } from "vue-property-decorator";
/**
* @Description 贷款申请
* @Author JiangTao
* @Date 2021-11-10 下午 03:32
*/
@Component({
name: "LoanApplication",
})
export default class LoanApplication extends Vue {}
</script>
<style scoped></style>
<template>
<div class="content">
<div class="content-top">
<div class="content-top-left">营销业务12笔</div>
<div class="content-top-right">
<div class="content-top-right-left">
<van-field readonly class="choose-content" clickable :value="choose_content" @click="choose = true" />
<van-popup v-model="choose" style="width: 30%" round position="center">
<van-picker show-toolbar :columns="type" @cancel="choose = false" @confirm="choose_t" :default-index="1" />
</van-popup>
</div>
<div class="content-top-right-right">
<div class="search-logo"><img src="../../../../assets/images/search-logo.png" alt="" /></div>
<div class="search-bar">
<van-form>
<van-field class="name" v-model="companyname" name="companyname" placeholder="请输入企业名称" />
</van-form>
</div>
<div class="search">搜索</div>
</div>
</div>
</div>
<div class="content-bottm">
<div class="task-list">
<div class="task-list-left">
<div class="task-list-left-logo">
<div><img src="../../../../assets/svg/title.svg" alt="" /></div>
</div>
<div class="task-list-left-text">
<div class="task-list-name">花儿影业有限公司-客户拜访</div>
<div class="task-list-address">
<div><img src="../../../../assets/svg/position-2.svg" alt="" /></div>
<div>0.3km</div>
<div>成都市武侯区天谷7路腾飞科汇城</div>
</div>
</div>
</div>
<div class="task-list-right">发送短信</div>
</div>
<div class="task-list">
<div class="task-list-left">
<div class="task-list-left-logo">
<div><img src="../../../../assets/svg/title.svg" alt="" /></div>
</div>
<div class="task-list-left-text">
<div class="task-list-name">花儿影业有限公司-客户拜访</div>
<div class="task-list-address">
<div><img src="../../../../assets/svg/position-2.svg" alt="" /></div>
<div>0.3km</div>
<div>成都市武侯区天谷7路腾飞科汇城</div>
</div>
</div>
</div>
<div class="task-list-right">发送短信</div>
</div>
<div class="task-list">
<div class="task-list-left">
<div class="task-list-left-logo">
<div><img src="../../../../assets/svg/title.svg" alt="" /></div>
</div>
<div class="task-list-left-text">
<div class="task-list-name">花儿影业有限公司-客户拜访</div>
<div class="task-list-address">
<div><img src="../../../../assets/svg/position-2.svg" alt="" /></div>
<div>0.3km</div>
<div>成都市武侯区天谷7路腾飞科汇城</div>
</div>
</div>
</div>
<div class="task-list-right">发送短信</div>
</div>
</div>
</div>
</template>
<script lang="ts">
import { Component, Vue } from "vue-property-decorator";
import { Picker } from "vant";
Vue.use(Picker);
/**
* @Description 营销任务
* @Author JiangTao
* @Date 2021-11-10 下午 03:32
*/
@Component({
name: "MarketingTask",
})
export default class MarketingTask extends Vue {
companyname = "";
choose = false;
choose_content = "";
type = ["全部营销", "客户拜访", "精准营销专项", "公司精准信息摸排", "招商引资企业营销"];
choose_t(value: any) {
this.choose_content = value;
this.choose = false;
}
}
</script>
<style scoped>
.content {
width: 100%;
height: calc(100vh - 117px);
padding: 2.5% 3%;
}
.content-top {
width: 100%;
}
.content-top {
display: flex;
justify-content: space-between;
align-items: center;
}
.content-top-left {
font-family: "Arial Normal", "Arial";
color: #999999;
}
.content-top-right {
width: 45%;
display: flex;
align-items: flex-end;
justify-content: space-between;
}
.content-top-right-right {
width: 60%;
display: flex;
justify-content: flex-end;
align-items: center;
padding-top: 0.5%;
}
.search-logo {
margin-right: -7%;
}
.search-bar {
width: 99%;
height: 34px;
}
.choose-content {
width: 100%;
border: 1px solid rgba(228, 228, 228, 1);
border-radius: 5px;
padding: 0;
padding-left: 8%;
}
.name {
border: 1px solid rgba(228, 228, 228, 1);
width: 100%;
line-height: 200%;
padding-top: 1.48%;
padding-bottom: 0;
border-bottom-left-radius: 6px;
border-top-left-radius: 6px;
padding-left: 15%;
display: flex;
background-color: rgba(255, 255, 255, 0);
}
.search {
width: 21.85%;
line-height: 34px;
background-color: #fd5065;
color: white;
font-size: 115%;
text-align: center;
border-top-right-radius: 6px;
border-bottom-right-radius: 6px;
}
::v-deep .van-cell {
width: 100%;
}
::v-deep .van-field__control:read-only {
height: 32px;
}
.task-list {
width: 48%;
display: flex;
justify-content: space-between;
border-bottom: 1px solid rgba(242, 242, 242, 1);
margin-left: 0.4%;
padding-bottom: 1%;
padding-top: 2.2%;
}
.task-list-left {
width: 85%;
display: flex;
justify-content: flex-start;
padding-left: 2%;
}
.task-list-left-logo {
padding: 1.775%;
border-radius: 7px;
background-color: #d0f1ff;
}
.task-list-left-logo div {
width: 44px;
height: 44px;
margin: 0 auto;
display: flex;
justify-content: center;
align-items: center;
background-image: url("../../../../assets/svg/blue-circle.svg");
background-repeat: no-repeat;
}
.task-list-left-logo div img {
width: 59.1%;
}
.task-list-left-text {
width: 84%;
display: flex;
flex-direction: column;
padding-left: 2.5%;
}
.task-list-name {
width: 100%;
font-size: 115%;
color: #333333;
margin-top: 0.5%;
margin-bottom: 1%;
}
.task-list-right {
width: 14%;
display: flex;
align-items: center;
}
.task-list-address {
display: flex;
align-items: flex-end;
}
.task-list-address > div:nth-child(1) {
background-image: url("../../../../assets/svg/position-1.svg");
background-repeat: no-repeat;
background-position-x: 50%;
background-position-y: 50%;
margin-left: 1.5%;
margin-right: 1.5%;
}
.task-list-address > div:nth-child(2) {
color: #999999;
}
.task-list-address > div:nth-child(3) {
margin-left: 1%;
color: #999999;
}
.content-bottm {
display: flex;
flex-wrap: wrap;
justify-content: space-between;
}
</style>
<template>
<div>定期检查</div>
</template>
<script lang="ts">
import { Component, Vue } from "vue-property-decorator";
/**
* @Description 定期检查
* @Author JiangTao
* @Date 2021-11-10 下午 03:33
*/
@Component({
name: "PeriodicInspection",
})
export default class PeriodicInspection extends Vue {}
</script>
<style scoped></style>
<template>
<!--对公客户列表-->
<div class="content">
<!-- <van-form class="search">-->
<!-- <mobile-input label="申请编号" :reset="resetvalue" border="true" name="cus_name" v-model="pk_value" placeholder="请输入" size="small"></mobile-input>-->
<!-- <mobile-input label="客户号" :reset="resetvalue" border="true" name="cus_name" v-model="cus_id" placeholder="请输入" size="small"></mobile-input>-->
<!-- <div style="display: flex;justify-content: space-evenly;align-items: self-start">-->
<!-- <van-button color="#FF574C" type="primary" @click="reset" plain style="width: 70px;height: 34px" size="small">重置</van-button>-->
<!-- <van-button color="#FF574C" type="primary" @click="selectProcess(1)" style="width: 70px;height: 34px" size="small">查询</van-button>-->
<!-- </div>-->
<!-- </van-form>-->
<div class="search">
<d-select label="客户类型:" :reset="resetvalue" input-align="left" border="true" name="custNam" v-model="appl_type" placeholder="请选择客户类型" sfield="PROCESS_TYPE" size="small"></d-select>
<mobile-input label="搜索:" :reset="resetvalue" border="true" name="custNam" v-model="pk_value" placeholder="请输入申请编号" size="small"></mobile-input>
<mobile-input :reset="resetvalue" border="true" name="custNam" v-model="cus_id" placeholder="请输入客户号" size="small"></mobile-input>
<mobile-input :reset="resetvalue" border="true" name="custNam" v-model="cus_name" placeholder="请输入客户名称" size="small"></mobile-input>
<div
style="
display: flex;
justify-content: space-evenly;
align-items: self-start;
margin-left: 10px;
"
>
<van-button
color="#FF574C"
type="primary"
@click="reset"
plain
style="width: 70px; height: 34px"
size="small"
>重置</van-button
>
<van-button
color="#FF574C"
type="primary"
@click="selectProcess(1)"
style="width: 70px; height: 34px; margin-left: 20px"
size="small"
>搜索</van-button
>
</div>
</div>
<scroller-view class="d-page" v-if="nodata" v-calculate-height :pulldown="pulldown" :pullup="pullup" :refresh-data="selectProcess" :load-data="onloaddata">
<div v-for="(item, index) in list" :key="index" class="customer-bottom-list" @click="onClientInfo(item)">
<div class="customer-bottom-list-top">
<div>
<svg class="icon" aria-hidden="true">
<!--暂时方案,右侧图标无法传达到内网-->
<use xlink:href="#icon-gongsimingcheng"></use>
</svg>
</div>
<div>{{ item.cus_name }}</div>
<span class="point-box" style="color: orange"
><div style="background: orange" class="point-rew"></div>
&nbsp;{{ item.appl_type_cnName }}</span
>
</div>
<div class="customer-bottom-list-bottom">
<div>
<div>申请编号:</div>
<div>{{ item.pk_value }}</div>
</div>
<div>
<div>客户号:</div>
<div>{{ item.cus_id }}</div>
</div>
<div>
<div>申请金额:</div>
<div>{{ item.amt }}</div>
</div>
</div>
</div>
</scroller-view>
</div>
<!--新增客户-->
<!-- <div class="d-add_user">-->
<!-- <a @click="addUser">-->
<!-- <div class="add_logo">-->
<!-- <div class="add_inside">-->
<!-- <span class="add">新增</span><br />-->
<!-- <span class="add">客户</span>-->
<!-- </div>-->
<!-- </div>-->
<!-- </a>-->
<!-- </div>-->
</template>
<script lang="ts">
import { Component, Vue } from "vue-property-decorator";
import { NativeUI } from "@/public/ts/NativeUI";
import nettyApi from "@/constants/api/ms-netty/netty.api.ts";
import IF from "@/public/factory/InterFaceFactory";
import DCalendar from "@/components/general/form/DCalendar.vue";
/**
* @Description 流程列表
* @Author Kangzhirui
* @Date 2022-3-3 下午 21.48
*/
@Component({
name: "ProcessQuery",
components: {DCalendar},
})
export default class ProcessQuery extends Vue {
src = require("../../../../assets/svg/red-subscript.svg");
s = {
backgroundColor: "#fff4f6",
border: "1px solid #fd5065",
color: "#fd5065",
backgroundImage: `url("${this.src}")`,
backgroundRepeat: "no-repeat",
backgroundPosition: "right bottom",
};
list: any = [];
// 筛选条件
cus_name = "";
custType = "";
custState = "";
resetvalue = false;
appl_type_cnName = '';
appl_type = '';
pageNo = 1;
pullup = true;
pulldown = true;
nodata = true;
IF: any;
//流程查询
pk_value = '';
cus_id = '';
mounted() {
this.reset();
this.selectProcess();
}
/**
* @Description 重置
* @Author Kangzhirui
* @Date 2022-3-3 下午 21.48
*/
reset() {
this.cus_name = "";
this.resetvalue = true;
this.custType = "";
this.custState = "";
this.appl_type= "";
this.pk_value = ""; //申请编号清空
this.cus_id = ""; //客户号清空
this.selectProcess().then(() => {
this.resetvalue = false;
});
}
//上拉加载
onloaddata() {
this.pageNo = Math.ceil(this.list.length / 10) + 1;
return this.selectProcess(this.pageNo);
}
/**
* @Description 对公流程列表查询
* @Author Kangzhirui
* @Date 2022-3-3 下午 21.48
*/
selectProcess(pageNo = 1) {
this.pullup = true;
this.nodata = true;
this.pulldown = true;
const param = {
cus_name: this.cus_name ,
cus_type: this.custType ,
cus_status: this.custState ,
appl_type: this.appl_type,
// user_code: sessionStorage.getItem('user_code'),
//流程查询
pk_value: this.pk_value, //业务申请号
cus_id: this.cus_id, //客户号
maxLine: "10",//每页最大数据
targetPage: pageNo,//目标页
tc: nettyApi.TRADE_CODE.selectProcess
};
NativeUI.showWaiting("正在查询...");
return IF.transferDataInter(nettyApi.commonRq, param).then((res: any) => {
NativeUI.closeWaiting();
if (res.rc == "1") {
if (pageNo == 1) {
this.list = res.iCollWL__resultset;
} else {
this.list = this.list.concat(res.iCollWL__resultset);
}
} else {
NativeUI.toast(res.msg);
}
if (res.iCollWL__resultset && res.iCollWL__resultset.length < 10) {
this.pullup = false;
}
if (this.list.length == 0) {
this.nodata = false;
this.pulldown = false;
}
});
}
addUser() {
this.$router.push({
path: "/customer-mgt/AddUserView",
});
}
onClientInfo(item: any) {
this.$store.commit("setEmpty");
this.$store.commit("setCusInfo", item);
this.$router.push({
path: "/ProcessView",
});
}
}
</script>
<style scoped lang="scss">
.d-page {
padding: 10px 20px;
}
.d-form-container {
grid-template-columns: repeat(4, 1fr);
width: 100%;
height: 70px;
border: 1px solid #e1e2e3;
display: flex;
align-items: center;
justify-content: flex-start;
}
::v-deep .d-form-field .van-field__label {
display: flex;
align-items: center;
color: #212529;
margin-left: 10px;
margin-right: 0px;
width: auto;
}
.d-form-field {
display: flex;
align-items: center;
padding: 0 0 0 0;
}
::v-deep .van-field__body {
display: -webkit-box;
display: -webkit-flex;
display: flex;
-webkit-box-align: center;
-webkit-align-items: center;
align-items: center;
width: 110px;
margin-right: 7px;
}
.customer {
width: 100%;
background-color: white;
padding-top: 2%;
padding-left: 3%;
}
.customer-top {
display: flex;
align-items: center;
margin-bottom: 2%;
}
.name {
width: 90%;
padding-top: 1%;
padding-bottom: 1%;
margin-left: 5%;
border: 1px solid #cccccc;
border-radius: 5px;
}
.d-add_user {
position: absolute;
bottom: 50px;
right: 50px;
}
.add_logo {
width: 95px;
height: 95px;
background-image: url("../../../../assets/svg/red-subscript.svg");
background-repeat: no-repeat;
}
.add_inside {
width: 44px;
margin: 0 auto;
padding-top: 18px;
}
.add {
color: white;
font-size: 16px;
}
.customer-bottom-list {
border-radius: 10px;
background-color: #f8fdff;
box-shadow: 0 0 6px #d7d7d7;
margin-bottom: 16px;
padding-bottom: 15px;
padding-top: 9px;
position: relative;
}
.customer-bottom-list-top > div:nth-child(1) svg {
width: 40px;
height: 40px;
}
.customer-bottom-list-top > div:nth-child(2) {
font-size: 115%;
font-weight: bold;
font-family: "微软雅黑 Bold", "微软雅黑 Regular", "微软雅黑";
margin-left: 0.8%;
}
.customer-bottom-list-top {
width: 100%;
display: flex;
justify-content: flex-start;
align-items: center;
margin-left: 16px;
}
.customer-bottom-list-top > div:nth-child(3) {
width: 28%;
display: grid;
grid-template-columns: repeat(4, 1fr);
justify-content: space-around;
grid-column-gap: 4px;
align-items: center;
margin-left: 1%;
}
.customer-bottom-list-top > div:nth-child(3) div {
color: #ff6e0d;
background-color: rgba(255, 247, 204, 1);
font-size: 80%;
padding-top: 2%;
padding-bottom: 1.5%;
border-radius: 2px;
text-align: center;
width: 100%;
}
.customer-bottom-list-bottom {
display: flex;
padding-left: 4.5%;
justify-content: space-between;
align-items: flex-start;
}
.customer-bottom-list-bottom > div {
width: 100%;
display: flex;
justify-content: flex-start;
align-items: flex-start;
}
.contact-person {
width: auto;
display: flex;
justify-content: space-between;
align-items: center;
}
.contact-person > div:nth-child(1) {
margin-right: 10px;
font-family: "Arial Normal", "Arial";
}
.label-type {
width: 18%;
border: 1px solid #cccccc;
border-radius: 5px;
padding-top: 0.2%;
padding-bottom: 0.2%;
margin-left: 1%;
}
::v-deep .scroller {
padding: 1%;
}
.label {
width: 170%;
height: 60%;
display: flex;
justify-content: space-around;
align-items: center;
}
.label div {
width: 35%;
font-size: 13px;
padding-top: 1.1%;
padding-bottom: 0.7%;
border-radius: 5px;
text-align: center;
background-color: white;
border: 1px solid rgba(215, 215, 215, 1);
margin: 0.7% 1%;
}
.backgroundlogo {
position: absolute;
width: 60px;
top: 25%;
right: 20%;
}
.backgroundlogo img {
width: 100%;
opacity: 0.5;
}
.search {
position: relative;
width: 100%;
height: 70px;
border: 1px solid #e1e2e3;
display: flex;
align-items: center;
justify-content: flex-start;
}
.content {
width: 100%;
}
.screenbutton {
width: 15%;
height: 100%;
display: flex;
flex-direction: column;
align-content: center;
justify-content: center;
}
.point-box {
width: 120px;
display: flex;
align-items: center;
margin-inline-start: auto;
}
.point-rew {
width: 12px;
height: 12px;
border-radius: 50%;
}
::v-deep .van-popup--bottom.van-popup--round {
z-index: 2102 !important;
}
::v-deep .van-overlay {
z-index: 2101 !important;
}
</style>
<template>
<div>风险预警</div>
</template>
<script lang="ts">
import { Component, Vue } from "vue-property-decorator";
/**
* @Description 风险预警
* @Author JiangTao
* @Date 2021-11-10 下午 03:33
*/
@Component({
name: "RiskWarning",
})
export default class RiskWarning extends Vue {}
</script>
<style scoped></style>
<template>
<div>AllOutlets</div>
</template>
<script lang="ts">
import { Component, Vue } from "vue-property-decorator";
/**
* @Description 全部
* @Author JiangTao
* @Date 2021-11-10 下午 03:33
*/
@Component({
name: "AllOutlets",
})
export default class AllOutlets extends Vue {}
</script>
<style scoped></style>
<template>
<div>Area</div>
</template>
<script lang="ts">
import { Component, Vue } from "vue-property-decorator";
/**
* @Description 区域查询
* @Author JiangTao
* @Date 2021-11-10 下午 03:33
*/
@Component({
name: "Area",
})
export default class Area extends Vue {}
</script>
<style scoped></style>
<template>
<div>
<div class="list-content">
<div>
<div>壮锦支行</div>
<div>10.0Km</div>
</div>
<div>电话:<span>18688888888</span></div>
<div>导航:<span>成都市</span></div>
<div>
<div><img src="../../../../assets/svg/orange-navigation-logo.svg" alt="" />导航</div>
<div><img src="../../../../assets/svg/tel.svg" alt="" />电话</div>
</div>
</div>
<div class="list-content">
<div>
<div>壮锦支行</div>
<div>10.0Km</div>
</div>
<div>电话:<span>18688888888</span></div>
<div>导航:<span>成都市</span></div>
<div>
<div><img src="../../../../assets/svg/orange-navigation-logo.svg" alt="" />导航</div>
<div><img src="../../../../assets/svg/tel.svg" alt="" />电话</div>
</div>
</div>
</div>
</template>
<script lang="ts">
import { Component, Vue } from "vue-property-decorator";
/**
* @Description 我的附近
* @Author JiangTao
* @Date 2021-11-10 下午 03:34
*/
@Component({
name: "Nearby",
})
export default class Nearby extends Vue {}
</script>
<style scoped>
.list-content {
width: 95%;
margin: 0 auto;
margin-bottom: 4%;
padding: 2% 0 0 2%;
background-color: white;
}
.list-content > div:nth-child(1) {
width: 96%;
display: flex;
justify-content: space-between;
align-items: flex-end;
padding-left: 2%;
padding-bottom: 1.5%;
border-bottom: 1px solid rgb(217, 207, 207);
}
.list-content > div:nth-child(1) > div:nth-child(1) {
font-size: 115%;
color: black;
}
.list-content > div:nth-child(1) > div:nth-child(2) {
font-size: 75%;
color: red;
}
.list-content > div:nth-child(2),
.list-content > div:nth-child(3) {
color: #999999;
margin: 3% 1%;
}
span {
font-family: "Arial Normal", "Arial";
color: black;
}
.list-content > div:nth-child(4) > * {
width: 47%;
text-align: center;
color: black;
margin: 3.5% 0;
}
.list-content > div:nth-child(4) > div:nth-child(1) {
border-right: 1px solid rgb(217, 207, 207);
}
.list-content > div:nth-child(4) {
border-top: 1px solid rgb(217, 207, 207);
display: flex;
justify-content: space-around;
}
img {
margin-right: 10%;
}
</style>
......@@ -2,15 +2,14 @@
* @Author: jiangzaicheng jiangzaicheng_jzc@163.com
* @Date: 2022-07-05 14:56:29
* @LastEditors: jiangzaicheng jiangzaicheng_jzc@163.com
* @LastEditTime: 2022-07-06 15:09:50
* @LastEditTime: 2022-08-17 19:55:50
* @FilePath: \mcep-h5\src\constants\api\login\login-mgt.api.ts
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/
import { MethodType } from "@/constants/enum/general/method-type.enum";
import { HeaderType } from "@/constants/enum/general/header-type.enum";
// http://10.0.1.9:9130
const prefix = "http://localhost:9135//ms-system/api/v1/sysCustInfo/permit_endpoint"
const prefix = "http://localhost:9130/ms-system/api/v1/sysCustInfo/permit_endpoint"
const loginApi = {
updatePicCode: {
url: prefix + "/getVerifyCode",
......
......@@ -2,7 +2,7 @@
* @Author: jiangzaicheng jiangzaicheng_jzc@163.com
* @Date: 2022-07-04 15:41:06
* @LastEditors: jiangzaicheng jiangzaicheng_jzc@163.com
* @LastEditTime: 2022-07-22 16:54:54
* @LastEditTime: 2022-08-18 13:50:06
* @FilePath: \mcep-h5\src\router\index.ts
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/
......@@ -33,6 +33,7 @@ const routes: Array<RouteConfig> = [
},
{
path: "/login",
name:"login",
component: () => import(/* webpackChunkName: "login" */ "@/views/authentication/LoginView.vue"),
//component: () => import(/* webpackChunkName: "login" */ "@/components/common/Tool.vue"),
meta: { keepAlive: true, requiresAuth: true },
......
......@@ -2,7 +2,7 @@
* @Author: jiangzaicheng jiangzaicheng_jzc@163.com
* @Date: 2022-07-05 10:08:57
* @LastEditors: jiangzaicheng jiangzaicheng_jzc@163.com
* @LastEditTime: 2022-07-12 14:30:24
* @LastEditTime: 2022-08-18 13:42:05
* @FilePath: \mcep-h5\src\router\login.mgt.routing.ts
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/
......@@ -32,5 +32,13 @@ const loginRoutes = [
props: propsConvert,
meta: { keepAlive: false, requiresAuth: true, name: "主页" },
}
,{
path: `/LoginByID`,
name: 'LoginByID',
component: () => import(/* webpackChunkName: "customer-mgt" */ "@/views/authentication/LoginByID.vue"),
props: propsConvert,
meta: { keepAlive: false, requiresAuth: true, name: "主页" },
}
]
export default loginRoutes;
......@@ -32,8 +32,7 @@ class ApiService {
Vue.axios.interceptors.request.use(
config => {
config.headers['Access-Control-Allow-Origin'] = '*';
//开启
// config.headers['MCEP'] = 'MCEP';
if(!config.headers['Content-Type']){
config.headers['Content-Type'] = 'application/json; charset=utf-8';
}
......@@ -176,12 +175,10 @@ class ApiService {
path = query != null ? this.urlQueryConvert(path, query) : path;
console.log("服务调用--" + path);
return Vue.axios.post(`${path}`, params, requestConfig).then(res=>{
//TODO
console.log(res);
return res.data
});
return Vue.axios.post(`${path}`, params, requestConfig).then(this.createBusCodeHandler(query)).catch(this.createErrorHandler());
}
/**
* POST请求 文件上传
......@@ -324,7 +321,7 @@ class ApiService {
console.log(data);
//成功
// data = data.data;
debugger
// debugger
if (typeof data != 'object') data = JSON.parse(data);
data = data.sm4key ? SMUtil.decodeData(data) : data;
if (typeof data != 'object') {
......
......@@ -2,7 +2,7 @@
* @Author: jiangzaicheng jiangzaicheng_jzc@163.com
* @Date: 2022-07-14 13:57:33
* @LastEditors: jiangzaicheng jiangzaicheng_jzc@163.com
* @LastEditTime: 2022-07-25 19:35:52
* @LastEditTime: 2022-08-18 10:59:51
* @FilePath: \mcep-h5\src\views\MyView\LevelSent.vue
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
-->
......@@ -64,20 +64,7 @@
<van-row type="flex" class="">
<van-col span="24" >我的特权</van-col>
<div>
<template>
<el-table :data="tableData" :border="true" :stripe="true" >
<el-table-column fixed prop="level" label="等级权限" width="30">
</el-table-column>
<el-table-column prop="name" label="姓名" width="30">
</el-table-column>
<el-table-column prop="province" label="省份" width="30">
</el-table-column>
<el-table-column prop="city" label="市区" width="30">
</el-table-column>
<el-table-column prop="address" label="地址" width="30">
</el-table-column>
</el-table>
</template>
</div>
</van-row>
......
<!--
* @Author: jiangzaicheng jiangzaicheng_jzc@163.com
* @Date: 2022-07-04 15:41:06
* @LastEditors: jiangzaicheng jiangzaicheng_jzc@163.com
* @LastEditTime: 2022-08-18 16:10:19
* @FilePath: \mcep-h5\src\views\authentication\LoginView.vue
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
-->
<template>
<div class="loginform">
<div class="rarle">
<tatle-bar :tatle="tatleName"></tatle-bar>
</div>
<div class="login">
<van-row class="" style="padding: 10% 0%;">
<van-col span="24">
<p class="polog"><span class="font-size-18-dhc" style="padding: 2% 0%;font-weight: 600;">登录</span> </p>
</van-col>
<van-col span="24"><span class="font-size-12-dhc" style="font-weight: 400; font-family: 'Arial Normal', 'Arial';
}">请使用身份证号登录</span></van-col>
</van-row>
<van-form>
<div class="logindiv">
<span class="sopan">身份证号</span>
<van-field v-model="idcard" placeholder="身份证号" :rules="[{ validator: verifyPhone, message: '请输入正确的身份证号码' }]" />
</div>
<!-- <div class="logindiv"> -->
<span class="sopan">密码</span>
<van-field v-model="password" :type="passwordType" center clearable placeholder="请填写密码">
<template slot="right-icon">
<span class="solts" @click="switchPasswordType">
<van-icon name="eye" v-if="passwordType === 'password'" />
<van-icon name="closed-eye" v-else />
</span>
</template>
</van-field>
<!-- <van-divider /> -->
<!-- </div> -->
<!-- <div class="d-flex ">
<div class="p-2 mr-auto ">
<span class="sopan">验证码</span>
<van-field center clearable v-model="imageSrcValue" placeholder="请输入验证码" />
</div>
<div class="p-2 ">
<img :src="imageSrc" style="max-width: 100px; max-height: 200px;" @click="_updatePicCode()" />
</div>
</div> -->
<!-- <template >
<img :src="imageSrc" style="max-width: 100px; max-height: 200px;" />
</template> -->
<!-- <span class="sopan">短信验证码</span>
<van-row class="">
<van-col span="16">
<van-field v-model="sms" center clearable placeholder="请输入短信验证码">
</van-field>
</van-col>
<van-col span="8"><a style="color:#3672F1" @click="getPhonePost()">{{ getCmstotal }}</a></van-col>
</van-row> -->
<div style="margin: 16px;">
<van-button square block type="info" native-type="submit" @click="loginSystem()">登录</van-button>
</div>
</van-form>
<!-- <div>
<van-row type="flex" justify="center">
<van-col span="12"><a class="font-size-12-dhc"> 忘记密码</a></van-col>
<van-col span="12"><a class="font-size-12-dhc"> 用户注册</a></van-col>
</van-row>
</div> -->
<div class="d-flex " style="padding: 0px 10px 0px 10px;color: #3672F1;">
<div class="p-3 mr-auto "><a class="font-size-12-dhc" @click="forgetspass()"> 忘记密码</a></div>
<div class="p-3 " style="margin-right: 13%;"><a class="font-size-12-dhc" @click="loginbyid()"> 手机号登录</a></div>
<div class="p-3 "><a class="font-size-12-dhc" @click="regeist()"> 用户注册</a></div>
<!-- <div class="p-3 "><a class="font-size-12-dhc" @click="demo()"> demo测试</a></div> -->
</div>
</div>
</div>
</template>
<script lang="ts">
import { Component, Vue } from "vue-property-decorator";
import { Image as VanImage, Toast } from 'vant';
import apiService from "@/services/api.service";
import loginApi from "@/constants/api/login/login-mgt.api";
import { Code } from "@/constants/enum/general/code.enum";
import { RestfulResponse } from "@/model/domain/RestfulResponse";
import commonApi from "@/constants/api/login/common.api";
import { sys } from "typescript";
import { log } from "mathjs";
@Component({
name: "LoginView",
[VanImage.name]: VanImage,
})
export default class LoginView extends Vue {
getCmstotal = "获取短信验证码";
tatleName = "用户登录";
idcard: string = "";//电话
password: string = "";//密码
imageSrc: any = "";//图形
imageSrcValue: string = "";//图形验证码
sms: string = "";//短信验证
timer: any = "";//定时器
time: number = 60;//计数
imageVerifyKey: string = ""//验证码Key
passwordType = "password"
//方法
switchPasswordType() {
this.passwordType = this.passwordType === 'password' ? 'text' : 'password'
}
//身份证号登录
loginbyid() {
this.$router.push({
name: `login`
})
}
//手机号
verifyPhone() {
const card18 = /^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/
return card18.test(this.idcard)
}
//获取图形验证码
_updatePicCode() {
//请求图形验证码
apiService.general(loginApi.updatePicCode, undefined, undefined, undefined).then((response: RestfulResponse) => {
if (response.code == Code.SUCCESS.code) {
this.imageSrc = 'data:image/png;base64,' + response.data.imageVerifyCodeStr.replace(/[\r\n]/g, "");
this.imageVerifyKey = response.data.imageVerifyKey
}
});
}
//计时器
changeCmstotal() {
this.getCmstotal = this.time + "s重发验证码";
this.timer = setInterval(() => {
this.time--;
this.getCmstotal = this.time + "s重发验证码";
if (this.time < 0) {
clearInterval(this.time)
this.getCmstotal = "获取短信验证码";
}
}, 1000)
}
//获取短信验证码
// getPhonePost() {
// let param = {
// phoneCode: this.phone
// }
// apiService.general(commonApi.getPicCode, param, undefined, undefined).then((response: RestfulResponse) => {
// if (response.code == Code.SUCCESS.code) {
// Toast('短信发送成功,5分钟有效');
// this.changeCmstotal()
// } else {
// Toast('短信发送失败,请重试');
// }
// })
// }
loginSystem() {
//TODO
//登录失败刷新
//验证码失败刷新
//this._updatePicCode();
// let param = {
// phone: this.phone,
// //图形验证码
// imageVerifyKey: this.imageSrcValue,
// //渠道
// loginType: "2",
// //手机验证码
// messCode: this.sms,
// //密码
// passWord: this.password
// }
// apiService.general(loginApi.loginSystem, undefined, param, undefined).then((response: RestfulResponse) => {
// console.log(response);
// if (response.code == Code.SUCCESS.code) {
// this.$router.push({
// name: `Mianview`,
// params: {
// data: response.data
// }
// })
// } else {
// this._updatePicCode();
// Toast(response.msg + "");
// }
// });
}
created() {
this._updatePicCode()
}
//忘记密码
forgetspass() {
this.$router.push({
name: `ForgetPass`,
// params: {
// phone: this.phone
// }
});
}
regeist() {
this.$router.push({
path: `Register`,
})
}
// demo() {
// this.$router.push({
// path: `Mianview`,
// })
// }
demoll() {
this.$router.push({
path: `workbench/commonly-used/personal/business-inquiry`,
})
}
}
</script>
<style lang="scss" scoped>
.loginform {
width: 100%;
height: 100%;
}
.logindiv {
line-height: 20px;
}
.van-button {
border-radius: 6px;
}
.polog {
margin: 0px;
text-rendering: optimizeLegibility;
font-feature-settings: "kern" 1;
-webkit-font-feature-settings: "kern";
-moz-font-feature-settings: "kern";
-moz-font-feature-settings: "kern=1";
font-kerning: normal;
}
.van-col--15 {
margin-top: 2%;
}
.van-col--24 {
margin-left: 6%;
}
.forget {}
.sopan {
margin-top: 5px;
margin-left: 6%;
}
// .login{
// margin-top: 20%;
// }
</style>
......@@ -2,7 +2,7 @@
* @Author: jiangzaicheng jiangzaicheng_jzc@163.com
* @Date: 2022-07-04 15:41:06
* @LastEditors: jiangzaicheng jiangzaicheng_jzc@163.com
* @LastEditTime: 2022-07-22 15:10:30
* @LastEditTime: 2022-08-18 13:43:29
* @FilePath: \mcep-h5\src\views\authentication\LoginView.vue
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
-->
......@@ -11,7 +11,6 @@
<div class="rarle">
<tatle-bar :tatle="tatleName"></tatle-bar>
</div>
<div class="login">
<van-row class="" style="padding: 10% 0%;">
<van-col span="24">
......@@ -23,13 +22,20 @@
<van-form>
<div class="logindiv">
<span class="sopan">手机号</span>
<van-field v-model="phone" label="+86 |" :border="true" placeholder="请输入手机号" />
<van-divider />
<van-field v-model="phone" label="+86 |" :border="true" placeholder="请输入手机号"
:rules="[{ validator: verifyPhone, message: '请输入正确的手机号码' }]" />
</div>
<!-- <div class="logindiv"> -->
<span class="sopan">密码</span>
<van-field v-model="password" type="password" center clearable placeholder="请填写密码" />
<van-field v-model="password" :type="passwordType" center clearable placeholder="请填写密码">
<template slot="right-icon">
<span class="solts" @click="switchPasswordType">
<van-icon name="eye" v-if="passwordType === 'password'" />
<van-icon name="closed-eye" v-else />
</span>
</template>
</van-field>
<!-- <van-divider /> -->
<!-- </div> -->
<div class="d-flex ">
......@@ -67,10 +73,11 @@
</van-row>
</div> -->
<div class="d-flex " style="padding: 0px 10px 0px 10px;color: #3672F1;">
<div class="p-2 mr-auto "><a class="font-size-12-dhc" @click="forgetspass()"> 忘记密码</a></div>
<div class="p-2 "><a class="font-size-12-dhc" @click="regeist()"> 用户注册</a></div>
<div class="p-2 "><a class="font-size-12-dhc" @click="demo()"> demo测试</a></div>
<div class="p-2 "><a class="font-size-12-dhc" @click="demoll()"> demo测试111</a></div>
<div class="p-3 mr-auto "><a class="font-size-12-dhc" @click="forgetspass()"> 忘记密码</a></div>
<div class="p-3 "><a class="font-size-12-dhc" @click="loginbyid()"> 身份证号登录</a></div>
<div class="p-3 "><a class="font-size-12-dhc" @click="regeist()"> 用户注册</a></div>
<div class="p-3 "><a class="font-size-12-dhc" @click="demo()"> demo测试</a></div>
</div>
</div>
</div>
......@@ -102,12 +109,26 @@ export default class LoginView extends Vue {
timer: any = "";//定时器
time: number = 60;//计数
imageVerifyKey: string = ""//验证码Key
passwordType = "password"
//方法
switchPasswordType() {
this.passwordType = this.passwordType === 'password' ? 'text' : 'password'
}
//身份证号登录
loginbyid() {
this.$router.push({
name: `LoginByID`
})
}
//手机号
verifyPhone() {
return /^1\d{10}$/.test(this.phone) // 返回true或false
}
//获取图形验证码
_updatePicCode() {
//请求图形验证码
apiService.general(loginApi.updatePicCode, undefined, undefined, undefined).then((response: RestfulResponse) => {
//console.log(response);
if (response.code == Code.SUCCESS.code) {
this.imageSrc = 'data:image/png;base64,' + response.data.imageVerifyCodeStr.replace(/[\r\n]/g, "");
this.imageVerifyKey = response.data.imageVerifyKey
......@@ -150,7 +171,7 @@ export default class LoginView extends Vue {
let param = {
phone: this.phone,
//图形验证码
imageVerifyKey: this.imageSrcValue,
imageVerifyKey: this.imageSrcValue,
//渠道
loginType: "2",
//手机验证码
......@@ -201,7 +222,7 @@ export default class LoginView extends Vue {
})
}
}
</script>
<style lang="scss" scoped>
.loginform {
......
......@@ -2,7 +2,7 @@
* @Author: jiangzaicheng jiangzaicheng_jzc@163.com
* @Date: 2022-07-04 15:41:06
* @LastEditors: jiangzaicheng jiangzaicheng_jzc@163.com
* @LastEditTime: 2022-07-25 09:50:14
* @LastEditTime: 2022-08-18 16:13:39
* @FilePath: \mcep-h5\src\views\authentication\LoginView.vue
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
-->
......@@ -13,7 +13,7 @@
</div>
<div class="login">
<van-row style="padding: 10% 0%;">
<van-row style="padding: 10% 0%;">
<van-col span="24">
<p class="polog"><span class="font-size-18-dhc" style="padding: 2% 0%;font-weight: 600;">用户注册</span> </p>
</van-col>
......@@ -23,47 +23,64 @@
<van-form>
<div class="logindiv">
<span class="sopan">手机号码</span>
<van-field v-model="phone" label="+86 |" :border="true" placeholder="请输入手机号" />
<van-divider :style="{margin :0 }"></van-divider>
<van-field v-model="phone" label="+86 |" :border="true" placeholder="请输入手机号"
:rules="[{ validator: verifyPhone, message: '请输入正确的手机号码' }]" />
</div>
<div class="logindiv">
<span class="sopan">身份证号</span>
<van-field v-model="idCard" :border="true" placeholder="请输入身份证号" />
<span class="sopan">身份证号</span>
<van-field v-model="idCard" :border="true" placeholder="请输入身份证号"
:rules="[{ validator: verifyid, message: '请输入正确的身份证号码' }]" />
<!-- <van-divider /> -->
<van-divider :style="{margin :0 }"></van-divider>
<van-divider :style="{ margin: 0 }"></van-divider>
</div>
<div class="logindiv"><span class="sopan">短信验证码</span>
<van-row >
<div class="logindiv"><span class="sopan">短信验证码</span>
<van-row>
<van-col span="16">
<van-field v-model="sms" center clearable placeholder="请输入短信验证码">
<!-- <van-divider /> -->
</van-field>
</van-col>
<van-col span="8"><span style="color:blue" @click="getPhonePost()">{{getCmstotal}}</span></van-col>
<van-col span="8"><span style="color:blue" @click="getPhonePost()">{{ getCmstotal }}</span></van-col>
</van-row>
<van-divider :style="{margin :0 }"></van-divider>
</div>
<van-divider :style="{ margin: 0 }"></van-divider>
</div>
<div class="logindiv">
<span class="sopan">设置密码</span>
<van-field v-model="password" type="password" center clearable placeholder="请填写新密码" />
<!-- <van-divider /> -->
<van-divider :style="{margin :0 }"></van-divider>
</div>
<div class="logindiv">
<span class="sopan">确认密码</span>
<van-field v-model="restpassword" type="password" center clearable placeholder="请确认新密码" />
<div class="logindiv">
<span class="sopan">设置密码</span>
<van-field v-model="password" :type="passwordType" center clearable placeholder="请填写新密码">
<!-- <van-divider /> -->
<van-divider :style="{margin :0 }"></van-divider>
</div>
<template slot="right-icon">
<span class="solts" @click="switchPasswordType">
<van-icon name="eye" v-if="passwordType === 'password'" />
<van-icon name="closed-eye" v-else />
</span>
</template>
</van-field>
<van-divider :style="{ margin: 0 }"></van-divider>
</div>
<div class="logindiv">
<span class="sopan">确认密码</span>
<van-field v-model="restpassword" :type="passwordType" center clearable placeholder="请确认新密码">
<template slot="right-icon">
<span class="solts" @click="switchPasswordType">
<van-icon name="eye" v-if="passwordType === 'password'" />
<van-icon name="closed-eye" v-else />
</span>
</template>
</van-field>
<van-divider :style="{ margin: 0 }"></van-divider>
</div>
<div style="margin: 16px;">
<van-button square block type="info" native-type="submit" @click="registSystem()">注册</van-button>
</div>
......@@ -93,16 +110,32 @@ import { Toast } from "vant";
})
export default class ForgetPassView extends Vue {
tatleName = "用户注册"
idCard = ""
phone: string = "" //电话
password: string = ""//密码
restpassword: string = ""//确认密码
getCmstotal = "获取短信验证码";
sms: string = ""//短信
// radio: boolean = false
timer: any = "";//定时器
timer: any = "";//定时器
time: number = 60;//计数
radio: string = "0"
checked: boolean = false;
passwordType = "password"
//方法
switchPasswordType() {
this.passwordType = this.passwordType === 'password' ? 'text' : 'password'
}
//手机号
verifyPhone() {
return /^1\d{10}$/.test(this.phone) // 返回true或false
}
//身份证号
verifyid() {
const card18 = /^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/
return card18.test(this.idCard)
}
registSystem() {
if (this.password === this.restpassword && this.checked) {
......@@ -111,9 +144,9 @@ export default class ForgetPassView extends Vue {
//短信验证码TODO
phoneVerifyCode: this.sms,
//数字渠道
method:"3",
method: "3",
pwd: this.password,
serviceAgreeStatus:this.checked
serviceAgreeStatus: this.checked
}
apiService.general(registApi.registSystem, undefined, param, undefined).then((response: RestfulResponse) => {
console.log(response);
......@@ -129,7 +162,7 @@ export default class ForgetPassView extends Vue {
}
}
//计时器
//计时器
changeCmstotal() {
this.getCmstotal = this.time + "s重发验证码";
this.timer = setInterval(() => {
......@@ -142,26 +175,26 @@ export default class ForgetPassView extends Vue {
}, 1000)
}
getPhonePost(){
let param={
phoneCode:this.phone
}
apiService.general(commonApi.getPicCode,param,undefined,undefined).then((response: RestfulResponse) => {
if (response.code == Code.SUCCESS.code) {
Toast('短信发送成功,5分钟有效');
this.changeCmstotal()
}else{
Toast('短信发送失败,请重试');
}
getPhonePost() {
let param = {
phoneCode: this.phone
}
apiService.general(commonApi.getPicCode, param, undefined, undefined).then((response: RestfulResponse) => {
if (response.code == Code.SUCCESS.code) {
Toast('短信发送成功,5分钟有效');
this.changeCmstotal()
} else {
Toast('短信发送失败,请重试');
}
})
}
}
created() {
}
returen() {
......
......@@ -2,7 +2,7 @@
* @Author: jiangzaicheng jiangzaicheng_jzc@163.com
* @Date: 2022-07-05 14:05:30
* @LastEditors: jiangzaicheng jiangzaicheng_jzc@163.com
* @LastEditTime: 2022-07-28 15:44:01
* @LastEditTime: 2022-08-18 13:52:56
* @FilePath: \mcep-h5\src\views\main\MainView.vue
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
-->
......@@ -211,12 +211,12 @@
</van-dropdown-item>
</van-dropdown-menu>
</div>
<scroller-view v-calculate-height>
<div v-for="(item, index) in productList" :key="index" style="margin: 4% auto;">
<picket-bar :productname="item.productname" :describe="item.describe" :limitrange="item.limitrange"
:interestrate="item.interestrate" :loanterm="item.loanterm" @onClickPicket="onClickPicket"></picket-bar>
</div>
</scroller-view>
<scroller-view v-calculate-height :height="10000" >
<div v-for="(item, index) in productList" :key="index" style="margin: 4% auto;">
<picket-bar :productname="item.productname" :describe="item.describe" :limitrange="item.limitrange"
:interestrate="item.interestrate" :loanterm="item.loanterm" @onClickPicket="onClickPicket"></picket-bar>
</div>
</scroller-view>
......@@ -328,6 +328,19 @@ export default class Main extends Vue {
productList: ProductData[] = [{
productname: "金融消费贷", //产品名称
describe: "一次核查 三年有效 随用随贷 循环使用",//描述
limitrange: "1000~2000",//额度范围
interestrate: "19%~20%",//利率
loanterm: "89个月",//贷款期限
},
{
productname: "白领贷", //产品名称
describe: "额度较大 使用人群 工薪阶级",//描述
limitrange: "1000~2000",//额度范围
interestrate: "19%~20%",//利率
loanterm: "89个月",//贷款期限
}, {
productname: "金融消费贷", //产品名称
describe: "1年100万",//描述
limitrange: "1000~2000",//额度范围
......@@ -336,11 +349,12 @@ export default class Main extends Vue {
},
{
productname: "金融消费贷", //产品名称
describe: "1年100万三年内还清了",//描述
describe: "1年100万",//描述
limitrange: "1000~2000",//额度范围
interestrate: "19%~20%",//利率
loanterm: "89个月",//贷款期限
}];
}
];
//点击picket跳转界面
onClickPicket() {
this.$router.push({
......
......@@ -2,7 +2,7 @@
* @Author: jiangzaicheng jiangzaicheng_jzc@163.com
* @Date: 2022-07-07 16:13:13
* @LastEditors: jiangzaicheng jiangzaicheng_jzc@163.com
* @LastEditTime: 2022-07-25 13:47:03
* @LastEditTime: 2022-08-18 14:19:37
* @FilePath: \mcep-h5\src\components\common\Bottom.vue
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
-->
......@@ -14,7 +14,7 @@
</div>
<div>
<van-tabs>
<van-tab title="申请详情">
<van-tab title="借据详情">
<div class="layout">
<van-row type="flex" class="CoolName">
<van-col span="24" class="coollayout">个人信息</van-col>
......@@ -43,13 +43,13 @@
</van-row>
</div>
<van-row type="flex" class="CoolName">
<van-col span="24" class="coollayout">信息</van-col>
<van-col span="24" class="coollayout">信息</van-col>
</van-row>
<div class="layoutbody">
<van-row type="flex" class="layoutName">
<van-col span="24">
<van-cell-group>
<van-field label="贷款品种" :value="varieties" readonly input-align="right" />
<van-field label="贷款账号" :value="varieties" readonly input-align="right" />
</van-cell-group>
</van-col>
</van-row>
......@@ -63,7 +63,7 @@
<van-row type="flex" class="layoutName">
<van-col span="24">
<van-cell-group>
<van-field label="借款期限" :value="borrow" readonly input-align="right" />
<van-field label="借款到期日" :value="borrow" readonly input-align="right" />
</van-cell-group>
</van-col>
</van-row>
......@@ -77,28 +77,28 @@
<van-row type="flex" class="layoutName">
<van-col span="24">
<van-cell-group>
<van-field label="业务办理地区" :value="area" readonly input-align="right" />
<van-field label="担保方式" :value="area" readonly input-align="right" />
</van-cell-group>
</van-col>
</van-row>
<van-row type="flex" class="layoutName">
<van-col span="24">
<van-cell-group>
<van-field label="意向机构" :value="intentions" readonly input-align="right" />
<van-field label="还款方式" :value="intentions" readonly input-align="right" />
</van-cell-group>
</van-col>
</van-row>
<van-row type="flex" class="layoutName">
<van-col span="24">
<van-cell-group>
<van-field label="客户经理" :value="customer" readonly input-align="right" />
<van-field label="借款利率" :value="customer" readonly input-align="right" />
</van-cell-group>
</van-col>
</van-row>
</div>
</div>
</van-tab>
<van-tab title="业务进度">
<van-tab title="业务进度" v-if="status === statusl">
<van-steps direction="vertical" :active="0">
<van-step>
......@@ -146,6 +146,7 @@
</template>
<script lang="ts">
import { number } from "mathjs";
import { Component, Vue, Prop, Watch, Emit } from "vue-property-decorator";
/*
* title
......@@ -155,6 +156,9 @@ import { Component, Vue, Prop, Watch, Emit } from "vue-property-decorator";
})
export default class AccommodDetails extends Vue {
tatleName = "我的贷款"
//状态
status = 2;
statusl: any ;
//身份证
idcard = "23232111978211"
//姓名
......@@ -162,19 +166,25 @@ export default class AccommodDetails extends Vue {
//电话
phone = "15665025053"
//贷款详情
varieties = "一般经营性贷款"
varieties = "230000009000000"
//借款金融
amount = "500万"
//借款期限
borrow = "24月"
//到期日
borrow = "2022-02-01"
//借款用途
purposes = "经营"
//业务办理地区
area = "黑龙江省-哈尔滨市-松北区"
//担保方式
area = "抵押"
//意向机构
intentions = "哈尔滨农信社松北区枝江大道分社"
//客户经理
customer = "赵恒请"
intentions = "等额本息"
//借款利率
customer = "2.54%"
created() {
// debugger
this.statusl = this.$route.params.status
}
}
......
......@@ -13,55 +13,53 @@
<tatle-bar :tatle="tatleName"></tatle-bar>
</div>
<div>
<div class="card" v-for="(item, index) in productParam" :key="index">
<div @click="onClickDetails()">
<van-row>
<van-col span="16">
<van-col span="24" class="contractNo"><span>合同编号:</span>{{ item.contractNo }}</van-col>
<van-col style=" width: 100%; margin-left: 8%; line-height: 2;">
<van-row gutter="20">
<van-col span="12" class="lable"><span>合同类型:</span></van-col>
<van-col span="12" class="contractType" >{{ item.contractType }}</van-col>
</van-row>
<van-row gutter="20">
<van-col span="12" class="lable"><span>合同金额:</span></van-col>
<van-col span="12" class="contractAmount" style="color:rgb(255, 204, 0);">{{ item.contractAmount }}</van-col>
</van-row>
<van-row gutter="20">
<van-col span="12" class="lable"><span>合同利率:</span></van-col>
<van-col span="12" class="contractRate">{{ item.contractRate }}</van-col>
</van-row>
<van-row gutter="20">
<van-col span="12" class="lable"><span>还款方式:</span></van-col>
<van-col span="12" class="paymentMethod">{{ item.paymentMethod }}</van-col>
</van-row>
</van-col>
<div class="card" v-for="(item, index) in productParam" :key="index">
<div @click="onClickDetails()">
<van-row>
<van-col span="16">
<van-col span="24" class="contractNo"><span>合同编号:</span>{{ item.contractNo }}</van-col>
<van-col style=" width: 100%; margin-left: 8%; line-height: 2;">
<van-row gutter="20">
<van-col span="12" class="lable"><span>合同类型:</span></van-col>
<van-col span="12" class="contractType">{{ item.contractType }}</van-col>
</van-row>
<van-row gutter="20">
<van-col span="12" class="lable"><span>合同金额:</span></van-col>
<van-col span="12" class="contractAmount" style="color:rgb(255, 204, 0);">{{ item.contractAmount }}
</van-col>
</van-row>
<van-row gutter="20">
<van-col span="12" class="lable"><span>合同利率:</span></van-col>
<van-col span="12" class="contractRate">{{ item.contractRate }}</van-col>
</van-row>
<van-row gutter="20">
<van-col span="12" class="lable"><span>还款方式:</span></van-col>
<van-col span="12" class="paymentMethod">{{ item.paymentMethod }}</van-col>
</van-row>
</van-col>
</van-col>
<van-col span="8">
<svg class="icon" aria-hidden="true" v-if="item.status === 1">
<use xlink:href="#icon-a-yifafang60x60px"></use>
</svg>
<svg class="icon" aria-hidden="true" v-if="item.status === 2">
<use xlink:href="#icon-a-yifafang60x60px"></use>
</svg>
<svg class="icon" aria-hidden="true" v-if="item.status === 3">
<use xlink:href="#icon-a-yijieqing60x60px"></use>
</van-col>
<van-col span="8">
<svg class="icon" aria-hidden="true" v-if="item.status === 1">
<use xlink:href="#icon-yiqianding"></use>
</svg>
<svg class="icon" aria-hidden="true" v-if="item.status === 2">
<use xlink:href="#icon-weiqianding"></use>
</svg>
</van-col>
</van-row>
</div>
<!-- <van-row type="flex" class="bottom" @click="onClickPicket()">
<van-col span="24" class="lablel"><span>查看合同</span>
<svg class="iconl" aria-hidden="true">
<use xlink:href="#icon-a-xiayiye24x24px"></use>
</svg>
</van-col>
</van-row>
</van-row> -->
</div>
<van-row v-if="item.status === 2" type="flex" class="bottom" @click="onClickPicket()">
<van-col span="24" class="lablel"><span>查看借据</span>
<svg class="iconl" aria-hidden="true">
<use xlink:href="#icon-a-xiayiye24x24px"></use>
</svg>
</van-col>
</van-row>
</div>
</div>
</div>
</template>
......@@ -76,13 +74,13 @@ import { Component, Vue, Prop, Watch, Emit } from "vue-property-decorator";
})
export default class AccommodMain extends Vue {
tatleName = "我的贷款"
//结清贷款计划
//结清贷款计划
productParam = [{
contractNo: "117647289092",
contractType: "一般借款合同",
contractAmount: "30,000.00",
contractRate: "4.13%",
paymentMethod:"等额本金",
paymentMethod: "等额本金",
status: 2
},
{
......@@ -90,19 +88,19 @@ export default class AccommodMain extends Vue {
contractType: "一般借款合同",
contractAmount: "30,000.00",
contractRate: "1.13%",
paymentMethod:"等额本金",
status: 3
}]
//已结清
productParamlist = [{
productname: "'llll'流动之星贷款",
money: "30",
guarantee: "担保",
status: 3,
month: "12",
time: "2022-02-18"
paymentMethod: "等额本金",
status: 2
},
{
contractNo: "117647289092",
contractType: "一般借款合同",
contractAmount: "30,000.00",
contractRate: "1.13%",
paymentMethod: "等额本金",
status: 1
}]
//点击还款计划事件
onClickDetails() {
this.$router.push({
......@@ -130,6 +128,7 @@ export default class AccommodMain extends Vue {
width: 100%;
height: 20%;
}
.icon {
width: 80px;
height: 80px;
......@@ -167,13 +166,13 @@ export default class AccommodMain extends Vue {
}
.bottom[data-v-d306f034] {
background-color: #3672f1;
border: none;
border-radius: 5px;
border-top-left-radius: 0px;
border-top-right-radius: 0px;
text-align: center;
margin-top: 15px;
background-color: #3672f1;
border: none;
border-radius: 5px;
border-top-left-radius: 0px;
border-top-right-radius: 0px;
text-align: center;
margin-top: 15px;
}
.lablel {
......
......@@ -2,7 +2,7 @@
* @Author: jiangzaicheng jiangzaicheng_jzc@163.com
* @Date: 2022-07-07 16:13:13
* @LastEditors: jiangzaicheng jiangzaicheng_jzc@163.com
* @LastEditTime: 2022-07-25 14:38:19
* @LastEditTime: 2022-08-18 14:18:52
* @FilePath: \mcep-h5\src\components\common\Bottom.vue
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
-->
......@@ -16,10 +16,10 @@
<van-tabs>
<van-tab title="未结清">
<picket-acced :productParam="productParam" class="acced" @onClickDetails="onClickDetails"
@onClickPicket="onClickPicket"></picket-acced>
@onClickPicket="onClickPicket" ></picket-acced>
</van-tab>
<van-tab title="已结清">
<picket-acced :productParam="productParamlist" class="acced"></picket-acced>
<picket-acced :productParam="productParamlist" @onClickDetails="onClickDetails" class="acced"></picket-acced>
</van-tab>
</van-tabs>
......@@ -43,7 +43,7 @@ export default class Accommodation extends Vue {
money: "30",
guarantee: "担保",
month: "12",
status: 2,
status: 1,
time: "2022-02-18"
}, {
productname: "'企业之星'流动之星贷款",
......@@ -64,9 +64,12 @@ export default class Accommodation extends Vue {
}]
//点击还款计划事件
onClickDetails() {
onClickDetails(status:any) {
this.$router.push({
name: "AccommodDetails"
name: "AccommodDetails",
params:{
status:status
}
})
}
//点击body事件
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册