Commit 704ca0ca authored by xhx's avatar xhx

Merge branch 'dev' of https://gitlab.33.cn/chenqikuai/fns_front_2 into dev

parents de87a38a fa7d0560
src/assets/img/activity_bg.png

60.7 KB | W: | H:

src/assets/img/activity_bg.png

66.3 KB | W: | H:

src/assets/img/activity_bg.png
src/assets/img/activity_bg.png
src/assets/img/activity_bg.png
src/assets/img/activity_bg.png
  • 2-up
  • Swipe
  • Onion skin
......@@ -36,7 +36,7 @@ export default defineComponent({
{props.min_amount}-{props.max_amount}
</span>
<span class="word19">
近七日年化&nbsp;{props.rate_lower}%-{props.rate_upper}%
近七日年化&nbsp;{props.rate_lower}%
</span>
</div>
</div>
......
<template>
<Skeleton :row="3" :loading="skeLoading">
<van-swipe class="my-swipe" indicator-color="#3E4FAF" style="margin-top:20px">
<van-swipe
class="my-swipe"
indicator-color="#3E4FAF"
style="margin-top: 20px"
>
<van-swipe-item
class="flex justify-center swpiItem"
v-for="item in state.hotProductList"
......@@ -29,6 +33,7 @@ import { onMounted, PropType, reactive, watch } from "@vue/runtime-core";
import { eLoanMode } from "@/views/withMenu/Loan/types";
import { hotProduct } from "./type";
import { Skeleton } from "vant";
import { eProductStatus } from "@/service/LoanProductService/type";
const props = defineProps({
loanMode: {
......@@ -38,7 +43,7 @@ const props = defineProps({
});
let skeLoading = ref(true);
let state = reactive({hotProductList: [] as Array<hotProduct>})
let state = reactive({ hotProductList: [] as Array<hotProduct> });
watch(props, (newV, oldV) => {
state.hotProductList = [];
......@@ -55,32 +60,35 @@ const fetchList = () => {
limit: 3,
loan_type: props.loanMode!,
offset: 0,
product_status: eProductStatus.hot,
}).then((ret) => {
if (ret.code === 200) {
skeLoading.value = false;
ret.data.uuid.map((uuid) => {
queryLoanProductInfo({ uuid }).then((ret) => {
const { rate_lower, max_amount, max_date, inst_name, product_name,product_status } =
ret.data;
console.log('status',product_status);
if( product_status == 3){
state.hotProductList.push({
rate_lower,
max_amount,
max_date,
inst_name,
product_name,
uuid,
product_status
});
}
const {
rate_lower,
max_amount,
max_date,
inst_name,
product_name,
product_status,
} = ret.data;
state.hotProductList.push({
rate_lower,
max_amount,
max_date,
inst_name,
product_name,
uuid,
product_status,
});
});
});
}
});
console.log('pro',state.hotProductList);
console.log("pro", state.hotProductList);
};
</script>
......
......@@ -79,7 +79,7 @@
<!-- 底部操作 -->
<div
class="flex text-center py-3 text-gray-800 bg-branch-tab-bg rounded-b-2xl"
v-if="is_normal_work"
v-if="is_normal_work&&isUser"
>
<p class="w-1/2 border-r border-gray-200 mb-0" @click="handleClickChatWithClientManager">联系客服</p>
<p class="w-1/2 mb-0" :class="isOpen ? 'text-app-blue' : 'text-gray-800'" @click="toCall">电话咨询</p>
......@@ -89,7 +89,7 @@
</template>
<script lang="ts" setup>
import { computed, defineComponent, PropType, ref } from 'vue'
import { computed, defineComponent, onMounted, onUnmounted, PropType, reactive, ref } from 'vue'
import Icon from "@/components/common/Icon.vue"
import { transfterStrToDate } from '@/utils/transfer'
import AddressService from '@/service/AddressService'
......@@ -101,6 +101,15 @@ import { authCheck } from '@/utils/authCheck'
import router from '@/router'
import ShowCall from '@/components/showCall/index.vue'
import { goToChatWithOutletRoboot } from '@/router/navigate'
import { getUserMsg } from "@/utils/userMsg";
import { eRole } from '@/types/roleType'
const isUser = computed(()=>{
console.log('user',getUserMsg()?.role==eRole.user);
return getUserMsg()?.role==eRole.user;
})
const addressService = new AddressService()
......
......@@ -7,7 +7,7 @@
:selecteds="selectedBanks"
:setSelecteds="setBanks"
/>
<div class="group-title mt-8">利率 (%)</div>
<div class="group-title mt-8">最低利率 (%)</div>
<div class="section10 flex-row">
<div class="mod5 flex-col">
<div class="layer4 flex-row">
......@@ -16,14 +16,13 @@
v-model.number="min_"
@blur="checkInterstValid"
type="number"
placeholder="最低利率"
class="bg-transparent w-full text-center"
/>
</div>
<div class="word25">%</div>
</div>
</div>
<div class="mod6 flex-col"></div>
<!-- <div class="mod6 flex-col"></div>
<div class="mod7 flex-col">
<div class="main12 flex-row">
<div class="txt12">
......@@ -37,7 +36,7 @@
</div>
<div class="word26">%</div>
</div>
</div>
</div> -->
</div>
<div class="group-title mt-8">额度 (万元)</div>
<div class="section10 flex-row">
......@@ -76,7 +75,7 @@
:selecteds="selectedTypes"
:setSelecteds="setSelectedTypes"
/>
<div class="group-title mt-8">最长期限</div>
<div class="group-title mt-8">期限</div>
<SelectList
class="mt-5"
:list="peridList"
......
import baseAxios from '../index'
import { eLoanMode } from '@/views/withMenu/Loan/types'
import { iLoanProdcutItem } from "./type"
import { iLoanProdcutItem,eProductStatus } from "./type"
const prefix = '/loan/query'
export function queryLoanProductList(data: {
limit: number,
loan_type:eLoanMode
loan_type:eLoanMode,
product_status:eProductStatus,
offset: number
}) {
return baseAxios<{
......@@ -41,11 +42,9 @@ export function queryBankList() {
}
export function queryDirectLoanReq(data: {
min_date: number
max_date: number
date: number
bank_code: number
rate_upper: number
rate_lower: number
lower:number
min_amount:number
max_amount:number
loan_type: number
......
......@@ -4,13 +4,15 @@ export interface iLoanProdcutItem{
created_at: number,
features: string,
guarantee_type: number,
rate:number,
date:number,
inst_name: string,
max_amount: number,
max_date: number,
min_amount: number,
min_date: number,
product_name: string,
product_status: number,
product_status: eProductStatus,
loan_type: number,
products: string,
rate_lower: number,
......@@ -20,6 +22,14 @@ export interface iLoanProdcutItem{
uuid: string
}
export enum eProductStatus{
all=0,
unpublished=1,
normal=2,
hot=3,
published=4
}
export enum eGuaranteeType{
credit=1,
mortgage=2,
......
<template>
<div>
<div class="text-xs text-gray-400 text-center pb-2">
<div class="text-xs text-gray-400 text-center mt-5 ">
{{ timestampFormat(created_at) }}
</div>
<img :src="src" class="mb-5 w-83 h-22 object-cover object-center" />
<div class="text-center mt-2">
<img :src="src" class="w-83 h-22 object-cover object-center inline-block" />
</div>
</div>
</template>
......
......@@ -4,9 +4,8 @@
:style="{ background: '#0081F7 !important', color: 'white' }"
iconColor="white"
/>
<div class="w-full -mt-16 relative">
<img src="../../assets/img/activity_bg.png" class="w-full -mt-16" />
<p class=" text-lg text-white absolute top-40 left-0 right-0 mx-auto text-center">等您来了解</p>
<div class=" -mt-5">
<img src="../../assets/img/activity_bg.png" class=" w-full"/>
</div>
<!-- 活动列表 -->
<van-list
......@@ -16,7 +15,7 @@
:immediate-check="false"
@load="onLoad"
>
<div class="p-5">
<div class="px-5">
<Skeleton :loading="skeLoading" :row="3" class="mt-2">
<card
v-for="activity in activityList"
......
......@@ -46,12 +46,12 @@ export default defineComponent({
const uuid = ref('')
const min_amount = ref(0)
const max_amount = ref(0)
const rate = ref(0)
const rate_lower = ref(0)
const rate_upper = ref(0)
const inst_name = ref('')
const product_name = ref('')
const min_date = ref(0)
const max_date = ref(0)
const date = ref(0)
const guarantee_type = ref(eGuaranteeType.credit)
const products = ref('')
const features = ref('')
......@@ -84,12 +84,10 @@ export default defineComponent({
const productItem = ret.data
min_amount.value = productItem.min_amount
max_amount.value = productItem.max_amount
rate_lower.value = productItem.rate_lower
rate_upper.value = productItem.rate_upper
rate.value = productItem.rate
inst_name.value = productItem.inst_name
product_name.value = productItem.product_name
min_date.value = productItem.min_date
max_date.value = productItem.max_date
date.value = productItem.date
guarantee_type.value = productItem.guarantee_type
products.value = productItem.products
features.value = productItem.features
......@@ -162,7 +160,6 @@ export default defineComponent({
min_amount={min_amount.value}
max_amount={max_amount.value}
rate_lower={rate_lower.value}
rate_upper={rate_upper.value}
setRef={(el: HTMLElement) => {
applyEl.value = el;
}}
......@@ -219,16 +216,16 @@ export default defineComponent({
<span class=" w-235 py-4 pr-5 inline-block break-words text-right">{product_name.value}</span>
</div>
<div class="flex text-sm text-gray-800 border-b border-product-detail-bg justify-between">
<span class=" w-100 align-center bg-product-detail-bg py-4 inline-block text-center">产品利率</span>
<span class=" w-235 py-4 pr-5 inline-block break-words text-right">{rate_lower.value}%~{rate_upper.value}%</span>
<span class=" w-100 align-center bg-product-detail-bg py-4 inline-block text-center">贷款利率</span>
<span class=" w-235 py-4 pr-5 inline-block break-words text-right">{rate.value}%</span>
</div>
<div class="flex text-sm text-gray-800 border-b border-product-detail-bg justify-between">
<span class=" w-100 align-center bg-product-detail-bg py-4 inline-block text-center">产品额度</span>
<span class=" w-235 py-4 pr-5 inline-block break-words text-right">{min_amount.value}~{max_amount.value}</span>
</div>
<div class="flex text-sm text-gray-800 border-b border-product-detail-bg justify-between">
<span class=" w-100 align-center bg-product-detail-bg py-4 inline-block text-center">产品期限</span>
<span class=" w-235 py-4 pr-5 inline-block break-words text-right">{min_date.value}个月~{max_date.value}个月</span>
<span class=" w-100 align-center bg-product-detail-bg py-4 inline-block text-center">贷款期限</span>
<span class=" w-235 py-4 pr-5 inline-block break-words text-right">{date.value}</span>
</div>
<div class="flex text-sm text-gray-800 border-b border-product-detail-bg justify-between">
<span class=" w-100 align-center bg-product-detail-bg py-4 inline-block text-center">担保方式</span>
......
......@@ -85,7 +85,7 @@ import {
queryBankList,
} from "@/service/LoanProductService/index";
import { simpleItemInfo } from "@/views/withMenu/Loan/types";
import { iLoanProdcutItem } from "@/service/LoanProductService/type";
import { eProductStatus, iLoanProdcutItem } from "@/service/LoanProductService/type";
import { Skeleton, Toast } from "vant";
import {
loanSearchState,
......@@ -107,10 +107,10 @@ export default defineComponent({
const mode = ref(+useRoute().params.mode);
onMounted(() => {
fetchBanks();
/* 状态为空时获取list */
if (loanSearchState.result.length == 0) {
fetchList();
fetchBanks();
}
});
......@@ -154,6 +154,7 @@ export default defineComponent({
limit: LIST_SIZE,
offset: offset.value,
loan_type: mode.value,
product_status:eProductStatus.published
}).then((ret) => {
loading.value = false;
if (ret.code === 200) {
......@@ -198,10 +199,9 @@ export default defineComponent({
return {
show: false,
peridList: [
{ id: { min_date: 0, max_date: 3 }, name: "3个月内" },
{ id: { min_date: 3, max_date: 6 }, name: "3-6个月" },
{ id: { min_date: 6, max_date: 12 }, name: "6-12个月" },
{ id: { min_date: 12, max_date: 360 }, name: "12个月以上" },
{ id: { date:1 }, name: "1年" },
{ id: { date:3 }, name: "3年" },
{ id: { date:10 }, name: "10年" },
],
typeList: [
{ id: { guarantee_type: 1 }, name: "信用" },
......@@ -315,17 +315,11 @@ export default defineComponent({
queryList() {
this.loading = true;
queryDirectLoanReq({
rate_lower: +this.reqParams.min! ? +this.reqParams.min! : 0,
rate_upper: +this.reqParams.max! ? +this.reqParams.max! : 1000,
lower:+this.reqParams.min!? +this.reqParams.min!:0,
min_amount: +this.reqParams.min2! ? +this.reqParams.min2! : 0,
max_amount: +this.reqParams.max2! ? +this.reqParams.max2! : 9999,
bank_code: this.reqParams.selectedBanks[0],
max_date: this.reqParams.selectedPerids[0]
? this.reqParams.selectedPerids[0].max_date
: undefined,
min_date: this.reqParams.selectedPerids[0]
? this.reqParams.selectedPerids[0].min_date
: undefined,
date:this.reqParams.selectedPerids[0]?this.reqParams.selectedPerids[0].date:undefined,
loan_type: this.mode,
product_status: 4,
guarantee_type: this.reqParams.selectedTypes[0]
......
......@@ -37,17 +37,19 @@
@click="$router.push({ name: 'ActivityList' })"
/>
<Skeleton :loading="skeLoading" :row="3" class="mt-2">
<img
class="mx-auto mt-5 w-83 h-22 object-cover object-center rounded-lg"
:src="src"
v-if="src"
@click="
$router.push({
name: 'ActivityDetail',
params: { uuid: activityUuid },
})
"
/>
<div class="mx-5 mt-5 text-center">
<img
class="w-83 h-22 object-cover object-center rounded-lg inline-block"
:src="src"
v-if="src"
@click="
$router.push({
name: 'ActivityDetail',
params: { uuid: activityUuid },
})
"
/>
</div>
</Skeleton>
<group-title class="mt-7" v-if="hotNews" title="热门资讯" @click="$router.push('News')" />
<HotNews v-for="n in hotNews" :key="n.uuid" :info="n" />
......@@ -80,7 +82,7 @@ import {
} from "@/service/LoanProductService";
import { number } from "bitcoinjs-lib/types/script";
import { Skeleton } from "vant";
import { getUserMsg } from "@/utils/userMsg";
import { eProductStatus } from "@/service/LoanProductService/type";
export default defineComponent({
components: {
......@@ -200,6 +202,7 @@ export default defineComponent({
limit: 1,
offset: 0,
loan_type: 2,
product_status:eProductStatus.hot
});
if (ret.code === 200) {
this.skeLoading = false;
......
......@@ -154,6 +154,7 @@ import {
} from "@/service/LoanProductService";
import { loanMode } from "@/store/loanModeStore";
import { clearSearchResult } from "@/store/loanSearchResultStore";
import { eProductStatus } from "@/service/LoanProductService/type";
let skeLoading = ref(false);
let state = reactive({ allProductList: [] as Array<simpleItemInfo> });
......@@ -209,9 +210,10 @@ const fetchList = () => {
// 取前7产品产品遍历
skeLoading.value = true;
queryLoanProductList({
limit: 8,
limit: 4,
loan_type: mode.value,
offset: 0,
product_status:eProductStatus.normal
}).then((ret) => {
if (ret.code === 200) {
skeLoading.value = false;
......@@ -225,18 +227,14 @@ const fetchList = () => {
product_name,
product_status,
} = ret.data;
if (count.value < 5) {
if (product_status == 2) {
count.value = count.value + 1;
state.allProductList.push({
max_amount,
product_name,
features,
inst_name,
uuid,
});
}
}
count.value = count.value + 1;
state.allProductList.push({
max_amount,
product_name,
features,
inst_name,
uuid,
});
});
});
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment