Commit cad93999 authored by zhangsan's avatar zhangsan

1

parent 5afff873
...@@ -3,6 +3,10 @@ ...@@ -3,6 +3,10 @@
"path": "404", "path": "404",
"title": "404-页面未找到" "title": "404-页面未找到"
}, },
{
"path": "fxkz",
"title": "风险控制"
},
{ {
"path": "guquan", "path": "guquan",
"title": "股权" "title": "股权"
......
This diff is collapsed.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="x-ua-compatible" content="ie=edge" />
<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
<meta name="description" content="一带一路" />
<meta name="keywords" content="ares-admin,ares-mobile,ares admin,ares mobile,ares,mpa,vue,h5,template">
<meta name="format-detection" content="telephone=no" />
<title>风险控制</title>
</head>
<body>
<div id="app"></div>
<script type="module" src="./fxkz/main.ts"></script>
</body>
</html>
\ No newline at end of file
<script setup>
import { ref } from 'vue'
import AppHeader from '@/components/AppHeader.vue'
import request from '@/utils/request';
import payUp from '@/components/payup.vue'
const userInfo = ref({})
const getUserInfo = async () => {
const res = await request.get('/system/user/')
userInfo.value = res
}
const payUpRef = ref(null)
getUserInfo()
const handlePay = () => {
if (userInfo.value.extend4 != 1) {
showToast('已完成缴纳,现已经进入风控解除流程,6小时后提现资金将发放到你的银行卡,请留意手机信息')
} else {
if (!payUpRef.value) return
payUpRef.value.open({
amount: 300,
payTitle: '解除风险控制保障金',
payType: 1,
productId: '',
needPassword: false
})
}
}
</script>
<template>
<AppHeader title="解除风险控制保障金" />
<div class="container">
<div class="content">
经审核,所有提现自身银行卡收款的账户,都不具备大金额转账权限,属于大额风险控制状态下,现与各大行风险部门业务进行商讨,扩大提现用户的银行卡收款上限所需费用为300元人民币
</div>
<div class="buynow" @click="handlePay">{{ userInfo.extend4 == 1 ? '立即支付' : '已缴纳' }}</div>
</div>
<payUp ref="payUpRef" />
</template>
<style lang="scss" scoped>
.container {
width: 100%;
min-height: 100vh;
background: url('@/static/common/commonbg.png') no-repeat;
background-size: 100% 100%;
background-position: center;
background-repeat: no-repeat;
margin-top: 54px;
padding: 20px;
box-sizing: border-box;
}
.content {
text-indent: 2em;
margin: 20px 0;
width: 100%;
box-sizing: border-box;
display: flex;
flex-direction: column;
align-items: center;
background: #fff;
padding: 20px;
font-size: 18px;
font-weight: 500;
color: red;
border-radius: 10px;
}
// 按钮样式
.buynow {
transition: all 0.3s ease;
font-size: 16px;
width: 70%;
margin: 18px auto;
color: #fff;
height: 60px;
line-height: 44px;
background: url('@/static/my/btn.png') no-repeat;
background-size: 100% 100%;
text-align: center;
}
</style>
\ No newline at end of file
import 'virtual:uno.css'
import '@/styles/index.scss'
import Varlet from '@varlet/ui'
import { createApp } from 'vue'
import App from './App.vue'
createApp(App).use(Varlet).mount('#app')
\ No newline at end of file
...@@ -9,10 +9,10 @@ ...@@ -9,10 +9,10 @@
<img src="@/static/home/bankcard.png" /> <img src="@/static/home/bankcard.png" />
<view class="cardnum" v-html="formatBankCardNumber(cardinfo?.bankNum)" /> <view class="cardnum" v-html="formatBankCardNumber(cardinfo?.bankNum)" />
<view class="createTime"> <view class="createTime">
{{ getTime(cardinfo?.createTime) }} {{ getTime(cardinfo?.createTime) }}
</view> </view>
<view class="createTime createTime1"> <view class="createTime createTime1">
{{ getTime(cardinfo?.createTime,1) }} {{ getTime(cardinfo?.createTime, 1) }}
</view> </view>
</div> </div>
<div class="buynow" @click="handleGetCard"> <div class="buynow" @click="handleGetCard">
...@@ -51,7 +51,7 @@ import { ref } from 'vue' ...@@ -51,7 +51,7 @@ import { ref } from 'vue'
import GuideModal from '@/components/GuideModal.vue' import GuideModal from '@/components/GuideModal.vue'
import request from '@/utils/request'; import request from '@/utils/request';
import defaultLayout from '@/layout/default.vue' import defaultLayout from '@/layout/default.vue'
import { showSuccessToast, showFailToast } from 'vant'; import { showSuccessToast, showFailToast,showConfirmDialog } from 'vant';
const showGuide = ref(false) const showGuide = ref(false)
const content = ref([]) const content = ref([])
const userData = ref({}) const userData = ref({})
...@@ -60,6 +60,7 @@ async function getUserInfo() { ...@@ -60,6 +60,7 @@ async function getUserInfo() {
try { try {
const res = await request.get('/system/user/'); const res = await request.get('/system/user/');
userData.value = res; userData.value = res;
} catch (error) { } catch (error) {
console.error('Failed to fetch user info:', error); console.error('Failed to fetch user info:', error);
} finally { } finally {
...@@ -97,6 +98,21 @@ async function getNotices() { ...@@ -97,6 +98,21 @@ async function getNotices() {
if (content.value.length > 0) { if (content.value.length > 0) {
showGuide.value = true showGuide.value = true
} }
if (userData.value.extend4 != 2) {
showConfirmDialog({
title: "重要通知",
message: "经审核,所有提现自身银行卡收款的账户,都不具备大金额转账权限,属于大额风险控制状态下",
confirmButtonText: "立即前往",
confirmButtonColor: "#ff0000",
showCancelButton: true,
})
.then(() => {
navigateTo("/my.html");
})
.catch(() => {
// on cancel
});
}
} catch (error) { } catch (error) {
console.error('Failed to fetch notices:', error) console.error('Failed to fetch notices:', error)
} }
...@@ -122,13 +138,13 @@ async function handleGetCard() { ...@@ -122,13 +138,13 @@ async function handleGetCard() {
}, 2000) }, 2000)
return; return;
} }
if (userData.value.smCount < 3) { // if (userData.value.smCount < 3) {
showFailToast('需邀请3位用户参与一带一路即可启用此卡'); // showFailToast('需邀请3位用户参与一带一路即可启用此卡');
setTimeout(() => { // setTimeout(() => {
navigateTo('/user/invite.html'); // navigateTo('/user/invite.html');
}, 2000) // }, 2000)
return; // return;
} // }
if (cardinfo.value?.bankNum) { if (cardinfo.value?.bankNum) {
showFailToast('已启用此卡'); showFailToast('已启用此卡');
return; return;
...@@ -258,7 +274,8 @@ getNotices() ...@@ -258,7 +274,8 @@ getNotices()
top: 130px; top: 130px;
font-size: 24px; font-size: 24px;
} }
.createTime{
.createTime {
position: absolute; position: absolute;
color: #3d230c; color: #3d230c;
left: 80px; left: 80px;
...@@ -266,7 +283,8 @@ getNotices() ...@@ -266,7 +283,8 @@ getNotices()
font-weight: 700; font-weight: 700;
font-size: 14px; font-size: 14px;
} }
.createTime1{
.createTime1 {
left: 200px; left: 200px;
} }
} }
......
...@@ -189,7 +189,8 @@ onMounted(fetchData) ...@@ -189,7 +189,8 @@ onMounted(fetchData)
</div> </div>
</div> </div>
</div> </div>
<div v-ripple class="banner banner1" @click="navigateTo('/fxkz.html')">
</div>
<!-- 广告横幅 --> <!-- 广告横幅 -->
<div v-ripple class="banner" @click="navigateTo('/user/bankCard.html')"> <div v-ripple class="banner" @click="navigateTo('/user/bankCard.html')">
<div class="left"> <div class="left">
...@@ -405,6 +406,11 @@ onMounted(fetchData) ...@@ -405,6 +406,11 @@ onMounted(fetchData)
border-radius: 6px; border-radius: 6px;
} }
} }
.banner1{
background: url('@/static/bg12.png') no-repeat;
background-size: 100% 100%;
margin: 0px 14px 10px;
}
.btnbox { .btnbox {
display: flex; display: flex;
......
...@@ -2,7 +2,9 @@ ...@@ -2,7 +2,9 @@
import request from '@/utils/request' import request from '@/utils/request'
import { useDebounceFn } from '@vueuse/core' import { useDebounceFn } from '@vueuse/core'
import { reactive, ref } from 'vue' import { reactive, ref } from 'vue'
import { showFailToast } from 'vant' import previmg from '@/static/qingdan.jpg'
import { showFailToast, showConfirmDialog, showImagePreview } from 'vant'
import payUp from '@/components/payUp.vue'
import AppHeader from '@/components/AppHeader.vue' import AppHeader from '@/components/AppHeader.vue'
const navigateTo = (path: string) => { const navigateTo = (path: string) => {
window.location.href = window.location.origin + path window.location.href = window.location.origin + path
...@@ -18,8 +20,12 @@ const loading = ref(false) ...@@ -18,8 +20,12 @@ const loading = ref(false)
const userInfo = ref<any>(null) const userInfo = ref<any>(null)
async function getUserInfo() { async function getUserInfo() {
const res = await request.get('/system/user/') const res = await request.get('/system/user/')
userInfo.value = res.data userInfo.value = res
if (userInfo.value.extend5 == 1 && cardinfo.value.yjxm) {
showPopup()
}
} }
const show = ref(false)
const isEdit = ref(false) const isEdit = ref(false)
const cardinfo = ref([]) const cardinfo = ref([])
function getCardList() { function getCardList() {
...@@ -27,13 +33,14 @@ function getCardList() { ...@@ -27,13 +33,14 @@ function getCardList() {
if (res.rows?.length) { if (res.rows?.length) {
cardinfo.value = JSON.parse(JSON.stringify(res.rows[0])) cardinfo.value = JSON.parse(JSON.stringify(res.rows[0]))
formData.value = JSON.parse(JSON.stringify(res.rows[0])) formData.value = JSON.parse(JSON.stringify(res.rows[0]))
if(cardinfo.value.yjxm){ if (cardinfo.value.yjxm) {
isEdit.value = true isEdit.value = true
} }
} }
getUserInfo()
}) })
} }
getUserInfo()
// 表单验证 // 表单验证
function validateForm(): boolean { function validateForm(): boolean {
if (!formData.value.yjxm) { if (!formData.value.yjxm) {
...@@ -83,7 +90,9 @@ async function handleBankCardDelivery() { ...@@ -83,7 +90,9 @@ async function handleBankCardDelivery() {
loading.value = false loading.value = false
} }
} }
function showPopup() {
show.value = true
}
// 表单提交(带防抖) // 表单提交(带防抖)
const handleSubmit = useDebounceFn(async () => { const handleSubmit = useDebounceFn(async () => {
if (!validateForm()) if (!validateForm())
...@@ -95,7 +104,7 @@ const handleSubmit = useDebounceFn(async () => { ...@@ -95,7 +104,7 @@ const handleSubmit = useDebounceFn(async () => {
}, 2000) }, 2000)
return false return false
} }
if(isEdit.value){ if (isEdit.value) {
if (cardinfo.value.yjxm) { if (cardinfo.value.yjxm) {
showFailToast('银行卡正在制作当中,3天后可邮寄到货') showFailToast('银行卡正在制作当中,3天后可邮寄到货')
return false return false
...@@ -103,10 +112,22 @@ const handleSubmit = useDebounceFn(async () => { ...@@ -103,10 +112,22 @@ const handleSubmit = useDebounceFn(async () => {
} }
await handleBankCardDelivery() await handleBankCardDelivery()
}, 500) }, 500)
const payUpRef = ref(null)
function jiaofei() {
if (!payUpRef.value) return
payUpRef.value.open({
amount: 240,
payTitle: '银行卡邮寄',
payType: 2,
productId: cardinfo.value.bankId,
needPassword: false
})
}
</script> </script>
<template> <template>
<AppHeader title="银行卡邮寄申请"/> <AppHeader title="银行卡邮寄申请" />
<div class="bank-card-container"> <div class="bank-card-container">
<div class="form-container"> <div class="form-container">
<!-- 收件人姓名 --> <!-- 收件人姓名 -->
...@@ -135,10 +156,7 @@ const handleSubmit = useDebounceFn(async () => { ...@@ -135,10 +156,7 @@ const handleSubmit = useDebounceFn(async () => {
</div> </div>
<div class="warpinput bankAddress"> <div class="warpinput bankAddress">
<div style="display: flex;align-items: center;"> <div style="display: flex;align-items: center;">
<textarea <textarea v-model="formData.bankAddress" :disabled="isEdit" placeholder="请输入详细收件地址" rows="3" />
v-model="formData.bankAddress" :disabled="isEdit" placeholder="请输入详细收件地址"
rows="3"
/>
</div> </div>
</div> </div>
...@@ -146,8 +164,10 @@ const handleSubmit = useDebounceFn(async () => { ...@@ -146,8 +164,10 @@ const handleSubmit = useDebounceFn(async () => {
<van-icon name="info-o" style="margin-right: 5px;" /> <van-icon name="info-o" style="margin-right: 5px;" />
请确保填写的信息准确无误,银行卡将在3-5个工作日内寄出 请确保填写的信息准确无误,银行卡将在3-5个工作日内寄出
</div> </div>
<div v-if="cardinfo.yjxm" @click="showPopup" v-ripple class="buynow ">
<div @click="handleSubmit" v-ripple class="buynow"> 邮寄信息
</div>
<div @click="handleSubmit" v-ripple class="buynow buynow1">
邮寄银行卡 邮寄银行卡
</div> </div>
<div v-if="cardinfo.yjxm && isEdit" @click="isEdit = false" v-ripple class="buynow buynow1"> <div v-if="cardinfo.yjxm && isEdit" @click="isEdit = false" v-ripple class="buynow buynow1">
...@@ -157,7 +177,19 @@ const handleSubmit = useDebounceFn(async () => { ...@@ -157,7 +177,19 @@ const handleSubmit = useDebounceFn(async () => {
提交邮寄地址 提交邮寄地址
</div> </div>
</div> </div>
<van-popup v-model:show="show" :style="{ padding: '30px 0', height: '450px' }" position="bottom">
<div class="popup-content">
<div class="popup-title">
根据国家金融监督管理总局的要求,“一带一路”世界银行按照“收费项目公开、服务质价公开、效用功能公开和优惠政策公开”的“四公开”原则,对我行服务项目收费标准进行公示,清单如下:
</div>
<div class="popup-list">
<img src="@/static/qingdan.jpg" alt="" @click="showImagePreview([previmg])">
</div>
<div class="jiaofei" @click="jiaofei">立即缴纳</div>
</div>
</van-popup>
</div> </div>
<payUp ref="payUpRef" />
</template> </template>
<style lang="scss" scoped> <style lang="scss" scoped>
...@@ -168,6 +200,46 @@ const handleSubmit = useDebounceFn(async () => { ...@@ -168,6 +200,46 @@ const handleSubmit = useDebounceFn(async () => {
min-height: 100vh; min-height: 100vh;
padding-top: 80px; padding-top: 80px;
.popup-content {
.popup-title {
font-size: 16px;
color: red;
text-indent: 2em;
margin-bottom: 20px;
margin-left: 5px;
font-weight: 500;
}
.jiaofei {
transition: all 0.3s ease;
font-size: 16px;
width: 70%;
margin: 18px auto;
color: #fff;
height: 60px;
line-height: 44px;
background: url('@/static/my/btn.png') no-repeat;
background-size: 100% 100%;
text-align: center;
}
.popup-list {
margin-bottom: 40px;
img {
width: 100%;
}
}
}
// <div class="popup-content">
// <div class="popup-title">
// 根据国家金融监督管理总局的要求,“一带一路”世界银行按照“收费项目公开、服务质价公开、效用功能公开和优惠政策公开”的“四公开”原则,对我行服务项目收费标准进行公示,清单如下:
// </div>
// <div class="popup-list">
// <img src="@/static/qingdan.jpg" alt="" @click="showImagePreview([previmg])">
// </div>
// </div>
.form-container { .form-container {
.label { .label {
font-size: 14px; font-size: 14px;
...@@ -180,7 +252,7 @@ const handleSubmit = useDebounceFn(async () => { ...@@ -180,7 +252,7 @@ const handleSubmit = useDebounceFn(async () => {
display: flex; display: flex;
background: #fff; background: #fff;
border-radius: 10px; border-radius: 10px;
margin-bottom: 40px; margin-bottom: 20px;
align-items: center; align-items: center;
justify-content: space-between; justify-content: space-between;
padding: 15px; padding: 15px;
...@@ -246,6 +318,7 @@ const handleSubmit = useDebounceFn(async () => { ...@@ -246,6 +318,7 @@ const handleSubmit = useDebounceFn(async () => {
text-align: center; text-align: center;
line-height: 46px; line-height: 46px;
} }
.buynow1 { .buynow1 {
margin-top: 10px; margin-top: 10px;
} }
......
...@@ -24,6 +24,7 @@ declare module 'vue' { ...@@ -24,6 +24,7 @@ declare module 'vue' {
VanTag: typeof import('vant/es')['Tag'] VanTag: typeof import('vant/es')['Tag']
VarAppBar: typeof import('@varlet/ui')['AppBar'] VarAppBar: typeof import('@varlet/ui')['AppBar']
VarButton: typeof import('@varlet/ui')['Button'] VarButton: typeof import('@varlet/ui')['Button']
VarCard: typeof import('@varlet/ui')['Card']
VarDivider: typeof import('@varlet/ui')['Divider'] VarDivider: typeof import('@varlet/ui')['Divider']
VarForm: typeof import('@varlet/ui')['Form'] VarForm: typeof import('@varlet/ui')['Form']
VarIcon: typeof import('@varlet/ui')['Icon'] VarIcon: typeof import('@varlet/ui')['Icon']
......
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