提交 0e3653b4 编写于 作者: “grape”'s avatar “grape”

产品相关联调与优化

上级 484df916
......@@ -12,7 +12,7 @@ VUE_APP_CLIENT_SECRET = web-loong-secret
VUE_APP_API_PREFIX = /api/v1
// 网关服务
VUE_APP_MS_GATEWAY_API = http://localhost:9140
VUE_APP_MS_GATEWAY_API = http://192.168.14.1:9140
// 业务服务
......@@ -31,7 +31,8 @@ VUE_APP_ENABLE_GATEWAY = on
VUE_APP_SYS_API = http://10.2.3.118:9165/online-financial-service/api/v1/cust-info/permit_endpoint
VUE_APP_ONLINE_API = http://10.2.3.118:9165/online-financial-service/api/v1/cust-info/permit_endpoint
VUE_APP_ONLINE_API = http://192.168.14.1:9155/ms-online/api/v1
//http://10.0.3.144:9165/online-financial-service/api/v1/cust-info/permit_endpointy
//服务器http://10.2.3.118:9165/online-financial-service/api/v1/cust-info/permit_endpoint
......
......@@ -29,8 +29,8 @@
<van-row type="flex" justify="center" style="line-height: 30px;font-weight: 700;">
<van-col span="8" class="loanterm" style="text-align: center;">{{ crowd }}</van-col>
<van-col span="8" class="interestrate" style="text-align: center;">{{ assureMeans }}</van-col>
<van-col span="8" class="loanterm" style="text-align: center;">{{ type }}</van-col>
<van-col span="8" class="interestrate" style="text-align: center;">{{ this.$dictData.getText(assureMeans,"LOAN_TYPE") }}</van-col>
<van-col span="8" class="loanterm" style="text-align: center;">{{ this.$dictData.getText(type,"PROD_TYPE")}}</van-col>
</van-row>
<van-row type="flex" justify="center" style="line-height: 30px;color: #999999;font-weight: 400;font-size: 12px;">
<van-col span="8" class="loantermlot">面向人群</van-col>
......@@ -105,6 +105,7 @@ export default class Picket extends Vue {
background: #eaf5ff;
font-size: 12px;
margin-left: 3%;
margin-right: 3%;
color: #1890FF;
text-rendering: optimizeLegibility;
font-feature-settings: "kern" 1;
......
......@@ -42,7 +42,7 @@
<van-row type="flex" justify="center" class="integral" >
<van-col span="24" style="z-index:2; font-size: 36px;font-weight: 900; margin-top: 5%;">{{ money }}</van-col>
<van-col span="24" style="z-index:2; font-size: 36px;font-weight: 900; margin-top: 5%;">{{ productData.amtMax }}</van-col>
</van-row>
<van-row type="flex" justify="center" class="integrall">
<van-col span="24">{{ moneyName }}</van-col>
......@@ -56,7 +56,7 @@
</div>
<div style="">
<scroller-view v-calculate-height :height="10000" >
<van-collapse v-model="activeNames" style="
<van-collapse v-model="activeNames" v-if="this.productData.prodDesc!=undefined" style="
width: 100%;
height: 100%;
......@@ -64,12 +64,12 @@
padding: 20px 10px;
 box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
">
<van-collapse-item title="产品介绍" name="1">农村信用社向符合条件的客户发放的用于满足个人消费、生产经营流动资金等需求的一项贷款业务。</van-collapse-item>
<van-collapse-item title="产品特点" name="2">一次核定,三年有效,随用随贷,循环使用。</van-collapse-item>
<van-collapse-item v-for="(item,index) in JSON.parse(this.productData.prodDesc)" :key="index" :title="item.title" :name="index">{{item.desc}}</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-item title="担保方式" name="5">以借款人自有或第三人提供有权处置的有效资产抵押担保。</van-collapse-item> -->
</van-collapse>
</scroller-view>
</div>
......@@ -85,8 +85,13 @@ import { Component, Vue, Prop, Watch, Emit } from "vue-property-decorator";
name: "ProductCard"
})
export default class ProductCard extends Vue {
@Prop({ default: "" }) money: string | undefined; //额度
@Prop({ default: "" }) moneyName: string | undefined;//额度大写
// @Prop({ default: "" }) money: string | undefined; //额度
// @Prop({ default: "" }) moneyName: string | undefined;//额度大写
@Prop({ default: {prodDesc:""} }) productData: any | {};//产品数据
@Prop({ default: {prodDesc:""} }) desc: any | {};//产品数据
//立即登录
activeNames = [""];
lodiing() {
......
......@@ -11,7 +11,7 @@ import { HeaderType } from "@/constants/enum/general/header-type.enum";
//网关
// const prefix = process.env.VUE_APP_MS_GATEWAY_API + process.env.VUE_APP_AUTH_API ;
const onlinePrefix = process.env.VUE_APP_ONLINE_API
//本地
const prefix = "http://localhost:9130"+ process.env.VUE_APP_AUTH_API ;
const commonApi = {
......@@ -20,6 +20,12 @@ const commonApi = {
method: MethodType.POST.code,
header: HeaderType.AUTH.code,
},
getProductList: {
url: onlinePrefix + "/prodSub/getProductList",
method: MethodType.POST.code,
header: HeaderType.AUTH.code,
},
};
......
......@@ -2,8 +2,15 @@ import Vue from "vue";
declare module "vue/types/vue" {
import { GlobalStateService } from "@/services/global-state.service";
import dictData from "@/services/dict.service";
interface Vue {
$globalStateService: GlobalStateService;
$dictData: dictData;
/* $ebus: any;
push: any;
pop: any;
replace: any;
transitionName: string;*/
}
}
......@@ -16,7 +16,7 @@ import filterService from "./filtres/filter.service";
import directiveService from "./directives/directive.service";
import apiService from "@/services/api.service";
import dbService from "@/services/db.service";
import dictService from "@/services/dict.service";
// import dictService from "@/services/dict.service";
import "./assets/iconfont/iconfont.css";
import "./assets/iconfont/iconfont.js";
import { NativeUI } from "@/public/ts/NativeUI";
......@@ -37,6 +37,8 @@ import ant from 'ant-design-vue'
import 'ant-design-vue/dist/antd.css'
import { VanComponent } from "vant/types/component"
import 'element-ui/lib/theme-chalk/index.css';
import * as echarts from 'echarts';
import dictData from "@/services/dict.service";
Vue.use(Element);
Vue.use(Vant);
Vue.use(ant);
......@@ -45,6 +47,8 @@ Vue.use(Step);
Vue.use(Steps);
Vue.config.productionTip = process.env.PRODUCTION_TIP;
Vue.prototype.$dictData = dictData;
/*注册组件*/
......@@ -62,9 +66,12 @@ directiveService.init();
/*注册axios*/
apiService.init();
dbService.initDB().then(() => {
dictService.init();
});
/**注册字典**/
dictData.init();
// dbService.initDB().then(() => {
// dictService.init();
// });
new Vconsole();
/*h5+插件*/
nativeService.init();
......
......@@ -344,6 +344,8 @@ class ApiService {
return data;
}
}
}else{
NativeUI.toast("网络异常!");
}
return response;
};
......
......@@ -15,7 +15,7 @@ class DictService {
* @Author zhangmk
* @Date 2021年12月31日17:58:48
*/
private dicData = ([
private dictData = ([
{ s_field_name: '是否撤销', s_field: 'ISREVOCATION', value: '1', text: '' },
{ s_field_name: '是否撤销', s_field: 'ISREVOCATION', value: '0', text: '' },
{ s_field_name: '经济类型分类', s_field: 'ECOTYPE', value: '100', text: '内资企业' },
......@@ -2591,6 +2591,19 @@ class DictService {
{ s_field_name: '流程业务类型', s_field: 'PROCESS_TYPE', value: '977', text: '企业债主体授信-分支行' },
{ s_field_name: '流程业务类型', s_field: 'PROCESS_TYPE', value: '978', text: '企业债主体授信-资金部' },
/*****************************对公营销* 开始 *********************************************/
/*****************************线上金融产品 *********************************************/
{ s_field_name: '担保方式', s_field: 'LOAN_TYPE', value: '01', text: '抵押' },
{ s_field_name: '担保方式', s_field: 'LOAN_TYPE', value: '02', text: '质押' },
{ s_field_name: '担保方式', s_field: 'LOAN_TYPE', value: '03', text: '保证' },
{ s_field_name: '担保方式', s_field: 'LOAN_TYPE', value: '04', text: '信用' },
{ s_field_name: '贷款种类', s_field: 'PROD_TYPE', value: '0', text: '消费贷' },
{ s_field_name: '贷款种类', s_field: 'PROD_TYPE', value: '1', text: '购房贷' },
]);
/**
......@@ -2600,7 +2613,8 @@ class DictService {
*/
init() {
//TODO 需要通过接口先进行查询然后保存。
localStorage.setItem("dictData", JSON.stringify(this.dicData));
localStorage.setItem("dictData", JSON.stringify(this.dictData));
console.log("dicDataInit")
// this.queryDictList().then((data: any) => {
// const dictData: any = {};
// data.forEach((item: any) => {
......@@ -2687,5 +2701,5 @@ class DictService {
return result;
}
}
const dictService = new DictService();
export default dictService;
const dictData = new DictService();
export default dictData;
......@@ -8,24 +8,42 @@
-->
<template>
<div>
<product-detail class="productName" :productName="productName"></product-detail>
<product-card :money="money" :moneyName="moneyName" class="productCard"> </product-card>
<product-detail class="productName" :productName="productData.prodSubName"></product-detail>
<!-- <product-card :money="money" :moneyName="moneyName" class="productCard"> </product-card> -->
<product-card :productData="productData" class="productCard"> </product-card>
</div>
</template>
<script lang="ts">
import { Component, Vue } from "vue-property-decorator";
import { Component, Prop, Vue } from "vue-property-decorator";
import { ProductData } from '@/model/entity/ProductData'
import eventBus from "@/services/goBackEntity";
@Component({
name: "ProductDetails",
})
export default class ProductDetails extends Vue {
// @Prop({ default: {} }) productParam: any | {}; // 产品信息
productData = {};
productName="小微企业---互助贷款"
money: string = "¥5000000" //最高额度
moneyName: string = "五百万元整" //最高额度汉字
activeNames=["1"]
mounted(){
console.log("details");
if(this.$route.params.productData != undefined){
this.productData = this.$route.params.productData;
}else{
this.$router.back();
}
console.log(this.productData);
}
}
</script>
<style scoped lang="scss">
......
......@@ -8,316 +8,464 @@
-->
<template>
<div id="allItem" class="d-page d-flex flex-column" style="background-color: linear-gradient(to bottom, #0B54E0 50px , #ffffff); padding-bottom:100px; width: 100%; overflow-x: hidden;overflow-y: auto; flex-direction: column; display: flex">
<div class="rarle">
<tools-bar :title="tatleName" style="width: 100%; height: calc(23vh)">
</tools-bar>
</div>
<div class="roolsolt">
<van-row
type="flex" justify="space-between"
class="roll"
background="#ecf9ff"
style="
background: #ecf9ff;
width: 90%;
height: 34px;
border-radius: 10px;
position: absolute;
top: 22vh;
left: 5%;
"
>
<van-col
span="5"
class="titleName"
<van-pull-refresh
v-model="refreshing"
@refresh="onRefresh"
:disabled="refreshDisabled"
>
<div
id="allItem"
ref="tableScorll"
class="d-page d-flex flex-column"
style="background-color: linear-gradient(to bottom, #0B54E0 50px , #ffffff); height: 100% width: 100%; overflow-x: hidden;overflow-y: auto; flex-direction: column; display: flex"
>
<div class="rarle">
<tools-bar :title="tatleName" style="width: 100%; height: calc(23vh)">
</tools-bar>
</div>
<div class="roolsolt">
<van-row
type="flex"
justify="space-between"
class="roll"
background="#ecf9ff"
style="
background: #ecf9ff;
width: 90%;
height: 34px;
margin: 7px auto 0px 8px;
border-radius: 12px;
color: #a2d2f4;
border-radius: 10px;
position: absolute;
top: 22vh;
left: 5%;
"
>
审批进度
</van-col>
<van-col span="18" class="notice">
<van-notice-bar
left-icon="volume-o"
color="#1989fa"
background="#ecf9ff"
style="height: 34px; border-radius: 12px"
<van-col
span="5"
class="titleName"
style="
height: 34px;
margin: 7px auto 0px 8px;
border-radius: 12px;
color: #a2d2f4;
"
>
{{ notice }}
</van-notice-bar>
</van-col>
</van-row>
</div>
<div style=" box-shadow: rgba(0, 0, 0, 0.1) 0px 2px 12px 0px;" >
<div class="prudect" style="background-color: #ffffff;">
<van-row type="flex" justify="space-between" align="center" style=" margin-bottom: 20px; padding-top: 20px;">
<van-cell
style="font-size: 12px;"
:value="outcsinfo.place"
@click="onAddress">
<template #title>
<span color="#3672F1" style="font-size: 16px; font-weight: 600; " >推荐产品</span>
</template>
<template #right-icon>
<van-icon name="location-o" size="14px"/>
</template>
</van-cell>
审批进度
</van-col>
<van-col span="18" class="notice">
<van-notice-bar
left-icon="volume-o"
color="#1989fa"
background="#ecf9ff"
style="height: 34px; border-radius: 12px"
>
{{ notice }}
</van-notice-bar>
</van-col>
</van-row>
<van-popup
v-model="showAddress"
round
position="bottom"
:style="{ height: '50%' }"
>
<van-area
title="请选择地区"
@confirm="changeAddress"
:area-list="areaList"
columns-num="3"
/>
</van-popup>
</div>
<div>
<van-sticky :offset-top="0">
<van-row type="flex" class="tab">
<van-col span ="18">
<van-tabs @click="onClick" style="height: 44px;" title-active-color="black" title-inactive-color="black" line-width=0px >
<van-tab v-for="index in tabsList" :key="index.name" >
<template #title >{{index.name}}
<svg class="icon" aria-hidden="true" v-if = "index.status===1" >
<use xlink:href="#icon-jiangxu"></use>
</svg>
<svg class="icon" aria-hidden="true" v-if = "index.status===0" >
<use xlink:href="#icon-shengxu"></use>
</svg>
</template>
</van-tab>
</van-tabs>
</van-col>
<van-col span="6" >
<van-dropdown-menu style="height: 44px;" active-color="black" color="black" >
<van-dropdown-item title="综合筛选" ref="item" get-container="body" >
<div id="dropdown">
<div
class="application"
v-for="(item, index) in applicaList.slice(0, 1)"
:key="index.name"
<div style="box-shadow: rgba(0, 0, 0, 0.1) 0px 2px 12px 0px">
<div class="prudect" style="background-color: #ffffff">
<van-row
type="flex"
justify="space-between"
align="center"
style="margin-bottom: 20px; padding-top: 20px"
>
<van-cell
style="font-size: 12px"
:value="outcsinfo.place"
@click="onAddress"
>
<van-row type="flex" class="applicationName">
<van-col span="24">{{ item.name }}</van-col>
</van-row>
<van-row type="flex" class="applicationfale">
<van-col span="10">
<div class="vandiv">{{ item.min }}</div>
</van-col>
<van-col span="2">-</van-col>
<van-col span="10">
<div class="vandiv">{{ item.max }}</div>
</van-col>
</van-row>
<van-row type="flex" gutter="10" class="applicationfole">
<!-- div-->
<van-col span="6">
<div :class="vanvcol11" @click="clickButton1(index, 1)">
{{ item.fristsize }}
</div>
</van-col>
<van-col span="6">
<div :class="vanvcol12" @click="clickButton1(index, 2)">
{{ item.secondsize }}
</div>
</van-col>
<van-col span="6">
<div :class="vanvcol13" @click="clickButton1(index, 3)">
{{ item.thirdsize }}
</div>
</van-col>
<van-col span="6">
<div :class="vanvcol14" @click="clickButton1(index, 4)">
{{ item.foursize }}
</div>
</van-col>
</van-row>
</div>
<div
class="application"
v-for="(item, index) in applicaList.slice(1, 2)"
:key="index.name"
>
<van-row type="flex" class="applicationName">
<van-col span="24">{{ item.name }}</van-col>
</van-row>
<van-row type="flex" class="applicationfale">
<van-col span="10">
<div class="vandiv">{{ item.min }}</div>
</van-col>
<van-col span="2">-</van-col>
<van-col span="10">
<div class="vandiv">{{ item.max }}</div>
</van-col>
</van-row>
<van-row type="flex" gutter="10" class="applicationfole">
<!-- div-->
<van-col span="6">
<div :class="vanvcol21" @click="clickButton2(index, 1)">
{{ item.fristsize }}
</div>
</van-col>
<van-col span="6">
<div :class="vanvcol22" @click="clickButton2(index, 2)">
{{ item.secondsize }}
</div>
</van-col>
<van-col span="6">
<div :class="vanvcol23" @click="clickButton2(index, 3)">
{{ item.thirdsize }}
</div>
</van-col>
<van-col span="6">
<div :class="vanvcol24" @click="clickButton2(index, 4)">
{{ item.foursize }}
</div>
</van-col>
</van-row>
</div>
<div
class="application"
v-for="(item, index) in applicaList.slice(3, 4)"
:key="index.name"
>
<van-row type="flex" class="applicationName">
<van-col span="24">{{ item.name }}</van-col>
</van-row>
<van-row type="flex" class="applicationfale">
<van-col span="10">
<div class="vandiv">{{ item.min }}</div>
</van-col>
<van-col span="2">-</van-col>
<van-col span="10">
<div class="vandiv">{{ item.max }}</div>
</van-col>
</van-row>
<van-row type="flex" gutter="10" class="applicationfole">
<!-- div-->
<van-col span="6">
<div :class="vanvcol41" @click="clickButton4(index, 1)">
{{ item.fristsize }}
</div>
</van-col>
<van-col span="6">
<div :class="vanvcol42" @click="clickButton4(index, 2)">
{{ item.secondsize }}
</div>
</van-col>
<van-col span="6">
<div :class="vanvcol43" @click="clickButton4(index, 3)">
{{ item.thirdsize }}
</div>
</van-col>
<van-col span="6">
<div :class="vanvcol44" @click="clickButton4(index, 4)">
{{ item.foursize }}
</div>
</van-col>
</van-row>
</div>
<div
class="application"
v-for="(item, index) in applicaList.slice(2, 3)"
:key="index.name"
>
<van-row type="flex" class="applicationName">
<van-col span="24">{{ item.name }}</van-col>
</van-row>
<van-row type="flex" class="applicationfale">
<van-col span="10">
<div class="vandiv">{{ item.min }}</div>
</van-col>
<van-col span="2">-</van-col>
<van-col span="10">
<div class="vandiv">{{ item.max }}</div>
</van-col>
</van-row>
<van-row type="flex" gutter="10" class="applicationfole">
<!-- div-->
<van-col span="6">
<div :class="vanvcol31" @click="clickButton3(index, 1)">
{{ item.fristsize }}
</div>
</van-col>
<van-col span="6">
<div :class="vanvcol32" @click="clickButton3(index, 2)">
{{ item.secondsize }}
</div>
</van-col>
<van-col span="6">
<div :class="vanvcol33" @click="clickButton3(index, 3)">
{{ item.thirdsize }}
</div>
</van-col>
<van-col span="6">
<div :class="vanvcol34" @click="clickButton3(index, 4)">
{{ item.foursize }}
<template #title>
<span color="#3672F1" style="font-size: 16px; font-weight: 600"
>推荐产品</span
>
</template>
<template #right-icon>
<van-icon name="location-o" size="14px" />
</template>
</van-cell>
</van-row>
<van-popup
v-model="showAddress"
round
position="bottom"
:style="{ height: '50%' }"
>
<van-area
title="请选择地区"
@confirm="changeAddress"
:area-list="areaList"
columns-num="3"
/>
</van-popup>
</div>
<div>
<van-sticky :offset-top="0">
<van-row type="flex" class="tab">
<van-col span="18">
<van-tabs
@click="onClick"
style="height: 44px"
title-active-color="black"
title-inactive-color="black"
line-width="0px"
>
<van-tab v-for="index in tabsList" :key="index.name">
<template #title
>{{ index.name }}
<svg
class="icon"
aria-hidden="true"
v-if="index.status === 1"
>
<use xlink:href="#icon-jiangxu"></use>
</svg>
<svg
class="icon"
aria-hidden="true"
v-if="index.status === 2"
>
<use xlink:href="#icon-shengxu"></use>
</svg>
<svg
class="icon"
aria-hidden="true"
v-if="index.status === 0"
>
<use xlink:href="#icon-weipaixu"></use>
</svg>
</template>
</van-tab>
</van-tabs>
</van-col>
<van-col span="6">
<van-dropdown-menu
style="height: 44px"
active-color="black"
color="black"
>
<van-dropdown-item
title="综合筛选"
ref="item"
get-container="body"
>
<div id="dropdown">
<div
class="application"
v-for="(item, index) in applicaList.slice(0, 1)"
:key="index.name"
>
<van-row type="flex" class="applicationName">
<van-col span="24">{{ item.name }}</van-col>
</van-row>
<van-row type="flex" class="applicationfale">
<van-col span="10">
<div class="vandiv">{{ item.min }}</div>
</van-col>
<van-col span="2">-</van-col>
<van-col span="10">
<div class="vandiv">{{ item.max }}</div>
</van-col>
</van-row>
<van-row
type="flex"
gutter="10"
class="applicationfole"
>
<!-- div-->
<van-col span="6">
<div
:class="vanvcol11"
@click="clickButton1(index, 1)"
>
{{ item.fristsize }}
</div>
</van-col>
<van-col span="6">
<div
:class="vanvcol12"
@click="clickButton1(index, 2)"
>
{{ item.secondsize }}
</div>
</van-col>
<van-col span="6">
<div
:class="vanvcol13"
@click="clickButton1(index, 3)"
>
{{ item.thirdsize }}
</div>
</van-col>
<van-col span="6">
<div
:class="vanvcol14"
@click="clickButton1(index, 4)"
>
{{ item.foursize }}
</div>
</van-col>
</van-row>
</div>
<div
class="application"
v-for="(item, index) in applicaList.slice(1, 2)"
:key="index.name"
>
<van-row type="flex" class="applicationName">
<van-col span="24">{{ item.name }}</van-col>
</van-row>
<van-row type="flex" class="applicationfale">
<van-col span="10">
<div class="vandiv">{{ item.min }}</div>
</van-col>
<van-col span="2">-</van-col>
<van-col span="10">
<div class="vandiv">{{ item.max }}</div>
</van-col>
</van-row>
<van-row
type="flex"
gutter="10"
class="applicationfole"
>
<!-- div-->
<van-col span="6">
<div
:class="vanvcol21"
@click="clickButton2(index, 1)"
>
{{ item.fristsize }}
</div>
</van-col>
<van-col span="6">
<div
:class="vanvcol22"
@click="clickButton2(index, 2)"
>
{{ item.secondsize }}
</div>
</van-col>
<van-col span="6">
<div
:class="vanvcol23"
@click="clickButton2(index, 3)"
>
{{ item.thirdsize }}
</div>
</van-col>
<van-col span="6">
<div
:class="vanvcol24"
@click="clickButton2(index, 4)"
>
{{ item.foursize }}
</div>
</van-col>
</van-row>
</div>
<div
class="application"
v-for="(item, index) in applicaList.slice(2, 3)"
:key="index.name"
>
<van-row type="flex" class="applicationName">
<van-col span="24">{{ item.name }}</van-col>
</van-row>
<van-row type="flex" class="applicationfale">
<van-col span="10">
<div class="vandiv">{{ item.min }}</div>
</van-col>
<van-col span="2">-</van-col>
<van-col span="10">
<div class="vandiv">{{ item.max }}</div>
</van-col>
</van-row>
<van-row
type="flex"
gutter="10"
class="applicationfole"
>
<!-- div-->
<van-col span="6">
<div
:class="vanvcol41"
@click="clickButton4(index, 1)"
>
{{ item.fristsize }}
</div>
</van-col>
<van-col span="6">
<div
:class="vanvcol42"
@click="clickButton4(index, 2)"
>
{{ item.secondsize }}
</div>
</van-col>
<van-col span="6">
<div
:class="vanvcol43"
@click="clickButton4(index, 3)"
>
{{ item.thirdsize }}
</div>
</van-col>
<van-col span="6">
<div
:class="vanvcol44"
@click="clickButton4(index, 4)"
>
{{ item.foursize }}
</div>
</van-col>
</van-row>
</div>
<div
class="application"
v-for="(item, index) in applicaList.slice(3, 4)"
:key="index.name"
>
<van-row type="flex" class="applicationName">
<van-col span="24">{{ item.name }}</van-col>
</van-row>
<van-row type="flex" class="applicationfale">
<van-col span="10">
<div class="vandiv">{{ item.min }}</div>
</van-col>
<van-col span="2">-</van-col>
<van-col span="10">
<div class="vandiv">{{ item.max }}</div>
</van-col>
</van-row>
<van-row
type="flex"
gutter="10"
class="applicationfole"
>
<!-- div-->
<van-col span="6">
<div
:class="vanvcol31"
@click="clickButton3(index, 1)"
>
{{ item.fristsize }}
</div>
</van-col>
<van-col span="6">
<div
:class="vanvcol32"
@click="clickButton3(index, 2)"
>
{{ item.secondsize }}
</div>
</van-col>
<van-col span="6">
<div
:class="vanvcol33"
@click="clickButton3(index, 3)"
>
{{ item.thirdsize }}
</div>
</van-col>
<van-col span="6">
<div
:class="vanvcol34"
@click="clickButton3(index, 4)"
>
{{ item.foursize }}
</div>
</van-col>
</van-row>
</div>
<div
style="margin-top: 4%; position: sticky; bottom: -1px"
>
<van-row type="flex">
<van-col span="12">
<van-button
square
block
type="default"
@click="resetData"
>重置</van-button
>
</van-col>
<van-col span="12">
<van-button
square
block
type="info"
@click="confirmData"
>确定</van-button
>
</van-col>
</van-row>
</div>
</div>
</van-col>
</van-row>
</div>
<div style="margin-top: 4%; position: sticky; bottom: -1px;
">
<van-row type="flex">
<van-col span="12">
<van-button square block type="default" @click="resetData">重置</van-button>
</van-col>
<van-col span="12">
<van-button square block type="info" @click="confirmData">确定</van-button>
</van-col>
</van-row>
</div>
</div>
</van-dropdown-item>
</van-dropdown-menu>
</van-col>
</van-row>
</van-sticky>
</div>
</van-dropdown-item>
</van-dropdown-menu>
</van-col>
</van-row>
</van-sticky>
</div>
</div>
<div
v-for="(item, index) in productList"
:key="index"
<!-- <scroller-view v-calculate-height pulldown="true" pullup="true" :height="10000" class="product" > -->
<div>
<van-list
:v-model="loading"
:finished="finished"
finished-text="没有更多了"
@load="onLoad"
:offset="0"
style="height: calc(100% - 50px); padding-bottom: 50px"
>
<picket-bar
:productname="item.productname"
:describe="item.describe"
:limitrange="item.limitrange"
:interestrate="item.interestrate"
:loanterm="item.loanterm"
:crowd="item.crowd"
:assureMeans="item.assureMeans"
:type="item.type"
@onClickPicket="onClickPicket"
></picket-bar>
</div>
<div v-for="(item, index) in productList" :key="index">
<picket-bar
:productname="item.prodSubName"
:describe="item.prodIntro"
:limitrange="item.amtMin + '~' + item.amtMax + '万'"
:interestrate="item.lnMin + '%~' + item.lnMax + '%'"
:loanterm="item.termMin + '~' + item.termMax + '个月'"
:crowd="item.crowd"
:assureMeans="item.loanType"
:type="item.prodType"
@onClickPicket="onClickPicket(item)"
style="min-height: 200px"
></picket-bar>
</div>
</van-list>
</div>
<!-- </scroller-view> -->
</div>
</van-pull-refresh>
</template>
<script lang="ts">
import { Component, Vue } from "vue-property-decorator";
import { Component, Vue, Prop, Watch } from "vue-property-decorator";
import { ProductData } from "@/model/entity/ProductData";
import { i, im } from "mathjs";
import { Toast } from 'vant';
import { Toast } from "vant";
import { Area } from "vant";
import { Cell, CellGroup } from 'vant';
import { Tabbar, TabbarItem } from 'vant';
import { Tab, Tabs } from 'vant';
import{area}from "../../model/domain/areaData";
import '../../assets/iconfont/iconfont.css';
import '../../assets/iconfont/iconfont.js';
import { Sticky } from 'vant';
import { Cell, CellGroup } from "vant";
import { Tabbar, TabbarItem } from "vant";
import { Tab, Tabs } from "vant";
import { area } from "../../model/domain/areaData";
import "../../assets/iconfont/iconfont.css";
import "../../assets/iconfont/iconfont.js";
import { Sticky } from "vant";
import apiService from "@/services/api.service";
import { RestfulResponse } from "@/model/domain/RestfulResponse";
import commonApi from "@/constants/api/login/common.api";
import { Code } from "@/constants/enum/general/code.enum";
import { PullRefresh } from "vant";
import { List } from "echarts";
Vue.use(PullRefresh);
Vue.use(Sticky);
Vue.use(Cell);
Vue.use(CellGroup);
......@@ -337,6 +485,15 @@ Vue.use(Tabs);
name: "Main",
})
export default class Main extends Vue {
//懒加载相关
loading = false;
finished = false;
refreshing = false;
refreshDisabled = false;
scrollTop = 0;
pageNum = 1;
total = 0;
tatleName = "线上金融服务平台";
notice = "您的“小微企业抵押贷款”当前处于财务部审批中。";
vanvcol11 = "vandilote";
......@@ -359,36 +516,46 @@ export default class Main extends Vue {
vanvcol43 = "vandilote";
vanvcol44 = "vandilote";
active=0;
active = 0;
areaList = area;
outcsinfo = {
place: "请选择地区", //出行地点
};
//筛选条件
amtMax: any = null;
amtMin: any = null;
place:'请选择地区',//出行地点
};
showAddress=false;
onAddress(){
this.showAddress=true
};
// 点击地址选择框的确认
changeAddress(event:any){
// console.log(event,'返回格式数组')
this.showAddress=false
let st=''
event.forEach((item:any,index:any)=>{
console.log(item + index);
if(index != 0){
st=st + item.name
}
})
this.outcsinfo.place=st
};
lnMax: any = null;
lnMin: any = null;
termMax: any = null;
termMin: any = null;
loanType: any = "";
initCountryColumns() {
// console.log("main")
// console.log( this.$dictData);
console.log(this.$dictData.getOptions("OPENACCOUNT_TYPE"));
//国家/地区
}
showAddress = false;
onAddress() {
this.showAddress = true;
}
// 点击地址选择框的确认
changeAddress(event: any) {
// console.log(event,'返回格式数组')
this.showAddress = false;
let st = "";
event.forEach((item: any, index: any) => {
console.log(item + index);
if (index != 0) {
st = st + item.name;
}
});
this.outcsinfo.place = st;
}
//测试
demo() {
......@@ -398,24 +565,22 @@ export default class Main extends Vue {
}
//div列表
tabsList: any=[
//当前选中条件
currentTab = "";
tabsList: any = [
{
name: "金额",
status:1,
name: "金额",
status: 0,
},
{
name: "期限",
status:1,
name: "期限",
status: 0,
},
{
name: "利率",
status:1,
name: "利率",
status: 0,
},
]
];
applicaList: any = [
{
name: "产品金额(万元)",
......@@ -453,112 +618,169 @@ export default class Main extends Vue {
min: "最低",
fristsize: "抵押",
secondsize: "质押",
thirdsize: "信用",
foursize: "保证",
thirdsize: "保证",
foursize: "信用",
select: null,
},
// {
// name: "产品金额(万元)",
// max: "最高",
// min: "最低",
// fristsize: "1-100",
// secondsize: "100-500",
// thirdsize: "500-1000",
// foursize: "1000-2000"
// },
// {
// name: "产品金额(万元)",
// max: "最高",
// min: "最低",
// fristsize: "1-100",
// secondsize: "100-500",
// thirdsize: "500-1000",
// foursize: "1000-2000"
// },
// {
// name: "产品金额(万元)",
// max: "最高",
// min: "最低",
// fristsize: "1-100",
// secondsize: "100-500",
// thirdsize: "500-1000",
// foursize: "1000-2000"
// }
];
//金额
// applicaform: any = [
productList: any = [];
// productList: any = [
// {
// name: "产品金额(万元)",
// max: "最高",
// min: "最低",
// fristsize: "1-100",
// secondsize: "100-500",
// thirdsize: "500-1000",
// foursize: "1000-2000",
// productname: "小微企业抵押“一证通”贷款", //产品名称
// describe: "一次核定 三年有效 随用随贷 循环使用", //描述
// limitrange: "1~500万", //额度范围
// interestrate: "2%~4%", //利率
// loanterm: "1~36个月", //贷款期限
// crowd: "经营企业",//面向人群
// assureMeans: "抵押", // 担保方式
// type:"消费贷",//贷款种类
// },
// {
// productname: "“企业之星”流动资金贷款", //产品名称
// describe: "额度较大 利率优惠", //描述
// limitrange: "1~500万", //额度范围
// interestrate: "2%~4%", //利率
// loanterm: "1~36个月", //贷款期限
// crowd: "经营企业",//面向人群
// assureMeans: "抵押", // 担保方式
// type:"消费贷",//贷款种类
// },
// {
// productname: "白领贷", //产品名称
// describe: "手续简单 轻松操作 随用随贷 安全可靠", //描述
// limitrange: "1~500万", //额度范围
// interestrate: "2%~4%", //利率
// loanterm: "1~36个月", //贷款期限
// crowd: "个人",//面向人群
// assureMeans: "抵押", // 担保方式
// type:"金融贷",//贷款种类
// },
// ];
//按钮
tabbarlist: any = {
name: "首页",
flag: true,
};
mounted() {
this.initCountryColumns();
// this.getProductList();
let tableScorll: any = this.$refs.tableScorll;
tableScorll.addEventListener("scroll", () => {
this.scrollTop = tableScorll.scrollTop; //data中定义scrollTop为0
// console.log(tableScorll.scrollTop+"scroll");
});
}
@Watch("scrollTop")
scrollTopChange(newVal: any) {
if (newVal <= 0) {
// console.log(newVal);
this.refreshDisabled = false;
} else {
//大于0禁用下拉刷新
this.refreshDisabled = true;
}
}
productList: any = [
{
productname: "小微企业抵押“一证通”贷款", //产品名称
describe: "一次核定 三年有效 随用随贷 循环使用", //描述
limitrange: "1~500万", //额度范围
interestrate: "2%~4%", //利率
loanterm: "1~36个月", //贷款期限
crowd: "经营企业",//面向人群
assureMeans: "抵押", // 担保方式
type:"消费贷",//贷款种类
},
{
productname: "“企业之星”流动资金贷款", //产品名称
describe: "额度较大 利率优惠", //描述
limitrange: "1~500万", //额度范围
interestrate: "2%~4%", //利率
loanterm: "1~36个月", //贷款期限
crowd: "经营企业",//面向人群
assureMeans: "抵押", // 担保方式
type:"消费贷",//贷款种类
},
{
productname: "白领贷", //产品名称
describe: "手续简单 轻松操作 随用随贷 安全可靠", //描述
limitrange: "1~500万", //额度范围
interestrate: "2%~4%", //利率
loanterm: "1~36个月", //贷款期限
crowd: "个人",//面向人群
assureMeans: "抵押", // 担保方式
type:"金融贷",//贷款种类
},
//关闭qq浏览器下拉刷新;
// activated(){
];
// document.addEventListener('touchmove', event => { event.preventDefault() }, { passive: false });
// }
onRefresh() {
// 清空列表数据
this.productList = [];
this.pageNum = 1;
this.finished = false;
this.total = 99999;
// 重新加载数据
// 将 loading 设置为 true,表示处于加载状态
this.loading = true;
this.onLoad();
}
onLoad() {
if (this.refreshing) {
this.productList = [];
//按钮
tabbarlist: any = {
name: "首页",
flag: true,
};
this.refreshing = false;
}
this.getProductList();
this.loading = false;
console.log("loading-----------");
}
getProductList() {
this.loading = true;
let query = {
pageNo: this.pageNum,
pageSize: 4,
sort: this.currentTab,
};
let param = {
amtMax: this.amtMax,
amtMin: this.amtMin,
lnMax: this.lnMax,
lnMin: this.lnMin,
termMax: this.termMax,
termMin: this.termMin,
loanType: this.loanType,
};
apiService
.general(commonApi.getProductList, query, param, undefined)
.then((response: RestfulResponse) => {
if (
response.code == Code.SUCCESS.code &&
this.pageNum === response.data.current
) {
console.log(response.data);
// let list [] = response.data.records;
response.data.records.forEach((element: any) => {
this.productList.push(element);
});
// this.productList.push(response.data.records);
if (this.pageNum === response.data.pages) {
console.log(this.pageNum + "pagenum");
console.log(this.productList.length + "length");
this.finished = true;
}
this.pageNum = this.pageNum + 1;
// Toast('短信发送成功,5分钟有效');
} else {
// Toast('短信发送失败,请重试');
}
//关闭加载
this.loading = false;
});
}
//点击picket跳转界面
onClickPicket() {
onClickPicket(item:any) {
// console.log(item);
//路由传值
this.$router.push({
path: "/product",
//路由传值
// params:{
// data:""
// }
name:"product",
params:{
productData: item
}
});
}
//重置选项
resetData(){
resetData() {
this.vanvcol11 = "vandilote";
this.vanvcol12 = "vandilote";
this.vanvcol13 = "vandilote";
......@@ -578,11 +800,24 @@ export default class Main extends Vue {
this.vanvcol42 = "vandilote";
this.vanvcol43 = "vandilote";
this.vanvcol44 = "vandilote";
this.amtMax = null;
this.amtMin = null;
this.lnMax = null;
this.lnMin = null;
this.termMax = null;
this.termMin = null;
this.loanType = "";
}
//确认按钮
confirmData(){
confirmData() {
let item: any = this.$refs.item;
item.toggle(false);
// this.getProductList();
this.onRefresh();
}
//切换
clickButton1(index: number, item: number) {
......@@ -590,27 +825,31 @@ export default class Main extends Vue {
console.log(this.applicaList[index].sellet);
if (item === 1) {
this.amtMax = 100;
this.amtMin = 1;
this.vanvcol11 = "vancoll";
this.vanvcol12 = "vandilote";
this.vanvcol13 = "vandilote";
this.vanvcol14 = "vandilote";
console.log(this.applicaList[index].sellet);
} else if (item === 2) {
this.amtMax = 500;
this.amtMin = 100;
this.vanvcol11 = "vandilote";
this.vanvcol12 = "vancoll";
this.vanvcol13 = "vandilote";
this.vanvcol14 = "vandilote";
} else if (item === 3) {
this.amtMax = 1000;
this.amtMin = 500;
this.vanvcol11 = "vandilote";
this.vanvcol12 = "vandilote";
this.vanvcol13 = "vancoll";
this.vanvcol14 = "vandilote";
} else if (item === 4) {
this.amtMax = 2000;
this.amtMin = 1000;
this.vanvcol11 = "vandilote";
this.vanvcol12 = "vandilote";
this.vanvcol13 = "vandilote";
this.vanvcol14 = "vancoll";
......@@ -622,22 +861,30 @@ export default class Main extends Vue {
console.log(this.applicaList[index].sellet);
if (item === 1) {
this.termMax = 12;
this.termMin = 1;
this.vanvcol21 = "vancoll";
this.vanvcol22 = "vandilote";
this.vanvcol23 = "vandilote";
this.vanvcol24 = "vandilote";
// console.log(this.applicaList[index].sellet);
} else if (item === 2) {
this.termMax = 24;
this.termMin = 1;
this.vanvcol21 = "vandilote";
this.vanvcol22 = "vancoll";
this.vanvcol23 = "vandilote";
this.vanvcol24 = "vandilote";
} else if (item === 3) {
this.termMax = 24;
this.termMin = 12;
this.vanvcol21 = "vandilote";
this.vanvcol22 = "vandilote";
this.vanvcol23 = "vancoll";
this.vanvcol24 = "vandilote";
} else if (item === 4) {
this.termMax = 36;
this.termMin = 12;
this.vanvcol21 = "vandilote";
this.vanvcol22 = "vandilote";
this.vanvcol23 = "vandilote";
......@@ -650,22 +897,26 @@ export default class Main extends Vue {
console.log(this.applicaList[index].sellet);
if (item === 1) {
this.loanType = "01";
this.vanvcol31 = "vancoll";
this.vanvcol32 = "vandilote";
this.vanvcol33 = "vandilote";
this.vanvcol34 = "vandilote";
console.log(this.applicaList[index].sellet);
} else if (item === 2) {
this.loanType = "02";
this.vanvcol31 = "vandilote";
this.vanvcol32 = "vancoll";
this.vanvcol33 = "vandilote";
this.vanvcol34 = "vandilote";
} else if (item === 3) {
this.loanType = "03";
this.vanvcol31 = "vandilote";
this.vanvcol32 = "vandilote";
this.vanvcol33 = "vancoll";
this.vanvcol34 = "vandilote";
} else if (item === 4) {
this.loanType = "04";
this.vanvcol31 = "vandilote";
this.vanvcol32 = "vandilote";
this.vanvcol33 = "vandilote";
......@@ -678,22 +929,30 @@ export default class Main extends Vue {
console.log(this.applicaList[index].sellet);
if (item === 1) {
this.lnMax = 3;
this.lnMin = 1;
this.vanvcol41 = "vancoll";
this.vanvcol42 = "vandilote";
this.vanvcol43 = "vandilote";
this.vanvcol44 = "vandilote";
console.log(this.applicaList[index].sellet);
} else if (item === 2) {
this.lnMax = 4;
this.lnMin = 2;
this.vanvcol41 = "vandilote";
this.vanvcol42 = "vancoll";
this.vanvcol43 = "vandilote";
this.vanvcol44 = "vandilote";
} else if (item === 3) {
this.lnMax = 5;
this.lnMin = 3;
this.vanvcol41 = "vandilote";
this.vanvcol42 = "vandilote";
this.vanvcol43 = "vancoll";
this.vanvcol44 = "vandilote";
} else if (item === 4) {
this.lnMax = 6;
this.lnMin = 4;
this.vanvcol41 = "vandilote";
this.vanvcol42 = "vandilote";
this.vanvcol43 = "vandilote";
......@@ -701,20 +960,33 @@ export default class Main extends Vue {
}
}
onClick(index:any) {
for(let i in this.tabsList){
if(i===index.toString()){
this.tabsList[index].status=this.tabsList[index].status === 1?0:1
}else{
this.tabsList[i].status=1;
onClick(index: any) {
for (let i in this.tabsList) {
if (i === index.toString()) {
this.tabsList[index].status =
this.tabsList[index].status >= 2
? 0
: this.tabsList[index].status + 1;
this.currentTab = index + "-" + this.tabsList[index].status;
//重新获取数据
// this.getProductList();
this.onRefresh();
} else {
this.tabsList[i].status = 0;
}
}
// Toast(this.tabsList[index].status===1?"升序":"降序");
}
// Toast(this.tabsList[index].status===1?"升序":"降序");
}
}
</script>
<style scoped lang="scss">
.html {
height: 100%;
}
.body {
height: 100%;
}
.roll {
background: #ecf9ff;
}
......@@ -739,15 +1011,12 @@ export default class Main extends Vue {
padding-top: 16px;
}
.van-row--align-center {
-webkit-box-align: center;
-webkit-align-items: center;
align-items: center;
height: 33px;
-webkit-box-align: center;
-webkit-align-items: center;
align-items: center;
height: 33px;
}
.vandiv {
text-align: center;
border-color: rgba(204, 204, 204, 1);
......@@ -808,28 +1077,28 @@ export default class Main extends Vue {
}
::v-deep .van-dropdown-menu__bar {
position: relative;
display: -webkit-box;
display: -webkit-flex;
display: flex;
height: 44px;
background-color: #ffffff;
box-shadow: none;
position: relative;
display: -webkit-box;
display: -webkit-flex;
display: flex;
height: 44px;
background-color: #ffffff;
box-shadow: none;
}
::v-deep .van-cell {
position: relative;
display: -webkit-box;
display: -webkit-flex;
display: flex;
box-sizing: border-box;
width: 100%;
padding: 10px 16px;
overflow: hidden;
color: #323233;
font-size: 14px;
line-height: 24px;
background-color:transparent;
position: relative;
display: -webkit-box;
display: -webkit-flex;
display: flex;
box-sizing: border-box;
width: 100%;
padding: 10px 16px;
overflow: hidden;
color: #323233;
font-size: 14px;
line-height: 24px;
background-color: transparent;
}
.van-dropdown-item {
......@@ -846,45 +1115,38 @@ export default class Main extends Vue {
}
.van-cell__value--alone {
color: #1890ff;
text-align: right;
color: #1890ff;
text-align: right;
}
::v-deep .van-cell__value {
position: relative;
overflow: hidden;
color: #1890ff;
text-align: right;
vertical-align: middle;
word-wrap: break-word;
position: relative;
overflow: hidden;
color: #1890ff;
text-align: right;
vertical-align: middle;
word-wrap: break-word;
}
::v-deep .van-ellipsis {
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
color: black;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
color: black;
}
.icon{
width: 14px;
height: 14px;
.icon {
width: 14px;
height: 14px;
}
::v-deep .van-cell__value {
position: relative;
overflow: hidden;
color: #1890ff;
text-align: right;
vertical-align: middle;
word-wrap: break-word;
flex: 3;
position: relative;
overflow: hidden;
color: #1890ff;
text-align: right;
vertical-align: middle;
word-wrap: break-word;
flex: 3;
}
</style>
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册