Commit 025fa3cb authored by qd01's avatar qd01

1

parent a29043f0
Pipeline #40 failed with stages
# NUXT_PUBLIC_API_BASE='http://192.168.1.5:9012' # NUXT_PUBLIC_API_BASE='http://27.124.5.14:9012'
NUXT_PUBLIC_API_BASE = /api NUXT_PUBLIC_API_BASE = /api
# NUXT_PUBLIC_API_BASE = https://www.zgjj2025.com/api # NUXT_PUBLIC_API_BASE = https://www.zgjj2025.com/api
NITRO_SERVER_PORT=8090
\ No newline at end of file
...@@ -28,7 +28,7 @@ function handleChange(active1) { ...@@ -28,7 +28,7 @@ function handleChange(active1) {
<template> <template>
<var-bottom-navigation v-if="show" v-model:active="active" fixed @change="handleChange"> <var-bottom-navigation v-if="show" v-model:active="active" fixed @change="handleChange">
<var-bottom-navigation-item name="home" label="首页" /> <var-bottom-navigation-item name="home" label="首页" />
<var-bottom-navigation-item name="sqhz" label="申请化债" /> <var-bottom-navigation-item name="sqhz" label="申请化债/扶贫" />
<var-bottom-navigation-item name="product" label="不良债权认购" /> <var-bottom-navigation-item name="product" label="不良债权认购" />
<var-bottom-navigation-item name="my" label="个人中心" /> <var-bottom-navigation-item name="my" label="个人中心" />
</var-bottom-navigation> </var-bottom-navigation>
......
export const appName = '中国经济' export const appName = '中央经济2025'
export const appDescription = 'Nuxt H5 Starter Template' export const appDescription = `中央经济2025平台是习近平主席在中央经济工作会议部署2025年两项重点任务
①化解国民债务危机
②致力帮助贫困家庭脱贫`
...@@ -7,6 +7,13 @@ definePageMeta({ ...@@ -7,6 +7,13 @@ definePageMeta({
name: 'home', name: 'home',
keepalive: true, keepalive: true,
}) })
const appdownload = ref('https://download.1yfang.com')
const kfUrl = ref('')
const getapkversion = async () => {
const res = await get('/system/config/configKey/mous/apk_version', {})
kfUrl.value = res.msg
}
getapkversion()
const handleClick = (item) => { const handleClick = (item) => {
if (item === 1) { if (item === 1) {
navigateTo("/user/group"); navigateTo("/user/group");
...@@ -56,10 +63,10 @@ const handleNewsItemClick = (item) => { ...@@ -56,10 +63,10 @@ const handleNewsItemClick = (item) => {
<div class="item" v-ripple @click="handleClick(1)"> <div class="item" v-ripple @click="handleClick(1)">
<img src="/static/pages/home/9.png"> <img src="/static/pages/home/9.png">
</div> </div>
<div class="item" v-ripple @click="handleClick(2)"> <div class="item" v-ripple @click="navigateTo(kfUrl, { external: true })">
<img src="/static/pages/home/10.png"> <img src="/static/pages/home/10.png">
</div> </div>
<div class="item" v-ripple @click="handleClick(3)"> <div class="item" v-ripple @click="navigateTo(appdownload, { external: true })">
<img src="/static/pages/home/11.png"> <img src="/static/pages/home/11.png">
</div> </div>
<div class="item" v-ripple @click="handleClick(4)"> <div class="item" v-ripple @click="handleClick(4)">
...@@ -72,6 +79,11 @@ const handleNewsItemClick = (item) => { ...@@ -72,6 +79,11 @@ const handleNewsItemClick = (item) => {
</div> </div>
<NewsCard :content3="content3" @itemClick="handleNewsItemClick" /> <NewsCard :content3="content3" @itemClick="handleNewsItemClick" />
</div> </div>
<!-- 恭喜您获得债券认购资格,您的购买意向申请已经通过,现在可以认购债权了,您要前往认购吗
两个按钮
(前往会场认购)
(先不前往认购) -->
</div> </div>
</template> </template>
......
...@@ -22,11 +22,11 @@ ...@@ -22,11 +22,11 @@
</var-form> </var-form>
</var-card> </var-card>
<div class="warp"> <div class="warp">
<div class="warp-item"> <div class="warp-item" @click="navigateTo(kfUrl, { external: true })">
<img src="/static/common/3.png" alt=""> <img src="/static/common/3.png" alt="">
<span>联系客服</span> <span>联系客服</span>
</div> </div>
<div class="warp-item"> <div class="warp-item" @click="navigateTo(appdownload, { external: true })">
<img src="/static/common/4.png" alt=""> <img src="/static/common/4.png" alt="">
<span>APP下载</span> <span>APP下载</span>
</div> </div>
...@@ -46,7 +46,13 @@ proseStore.clearProse() ...@@ -46,7 +46,13 @@ proseStore.clearProse()
definePageMeta({ definePageMeta({
layout: 'empty', layout: 'empty',
}) })
const appdownload = ref('https://download.1yfang.com')
const kfUrl = ref('')
const getapkversion = async () => {
const res = await get('/system/config/configKey/mous/apk_version', {})
kfUrl.value = res.msg
}
getapkversion()
const form = ref() const form = ref()
const active = ref(0) const active = ref(0)
const loading = ref(false) const loading = ref(false)
...@@ -158,6 +164,7 @@ const handleSubmit = useDebounceFn(async () => { ...@@ -158,6 +164,7 @@ const handleSubmit = useDebounceFn(async () => {
await handleLogin() await handleLogin()
} }
}, 1000) }, 1000)
</script> </script>
......
...@@ -25,7 +25,7 @@ const MENU_ITEMS = [ ...@@ -25,7 +25,7 @@ const MENU_ITEMS = [
{ name: "我的产品", icon: MY_ICONS.products, path: "/user/product" }, { name: "我的产品", icon: MY_ICONS.products, path: "/user/product" },
{ name: "房产兑换记录", icon: MY_ICONS.house, path: "/user/house" }, { name: "房产兑换记录", icon: MY_ICONS.house, path: "/user/house" },
{ name: "在线客服", icon: MY_ICONS.service, path: "/my" }, { name: "在线客服", icon: MY_ICONS.service, path: "/my" },
{ name: "APP下载", icon: MY_ICONS.app, path: "/my" }, { name: "APP下载", icon: MY_ICONS.app, path: "/user" },
{ name: "官方群聊", icon: MY_ICONS.group, path: "/user/group" } { name: "官方群聊", icon: MY_ICONS.group, path: "/user/group" }
] ]
...@@ -40,13 +40,29 @@ const items = ref(MENU_ITEMS) ...@@ -40,13 +40,29 @@ const items = ref(MENU_ITEMS)
const userData = ref({}) const userData = ref({})
const loading = ref(true) const loading = ref(true)
const activeCard = ref(null) const activeCard = ref(null)
const kfUrl = ref('')
const getapkversion = async () => {
const res = await get('/system/config/configKey/mous/apk_version', {})
kfUrl.value = res.msg
}
getapkversion()
// 处理点击事件 // 处理点击事件
const handleClick = (item) => { const handleClick = (item) => {
activeCard.value = item.name activeCard.value = item.name
setTimeout(() => { if (item.name === '房产兑换记录') {
navigateTo(item.path) showToast('邀约超过100人送140平房产一套,达到目标者找在线客服登记领取')
}, 150) return
} else if (item.name === '在线客服') {
navigateTo(kfUrl.value, { external: true })
return
} else if (item.name === 'APP下载') {
navigateTo('https://download.1yfang.com', { external: true })
return
} else {
setTimeout(() => {
navigateTo(item.path)
}, 150)
}
} }
const handleClick1 = (type) => { const handleClick1 = (type) => {
...@@ -56,7 +72,14 @@ const handleClick1 = (type) => { ...@@ -56,7 +72,14 @@ const handleClick1 = (type) => {
const gotx = (balance, type, title) => { const gotx = (balance, type, title) => {
if (balance && balance > 0) { if (balance && balance > 0) {
navigateTo(`/user/tixian?balance=${balance}&type=${type}&title=${title}`) if (userData.value.extend2 != 6) {
showFailToast('请先申请化债/扶贫')
setTimeout(() => {
navigateTo('/sqhz')
}, 2000)
} else {
navigateTo(`/user/tixian?balance=${balance}&type=${type}&title=${title}`)
}
} else { } else {
showFailToast('余额不足') showFailToast('余额不足')
} }
...@@ -87,7 +110,8 @@ const logout = () => { ...@@ -87,7 +110,8 @@ const logout = () => {
navigateTo('/login') navigateTo('/login')
}); });
} }
onMounted(fetchData)
fetchData()
</script> </script>
<template> <template>
...@@ -323,9 +347,11 @@ onMounted(fetchData) ...@@ -323,9 +347,11 @@ onMounted(fetchData)
grid-template-columns: 1fr auto 1fr auto 1fr; grid-template-columns: 1fr auto 1fr auto 1fr;
margin-top: 10px; margin-top: 10px;
display: flex; display: flex;
.asset-item { .asset-item {
text-align: center; text-align: center;
flex: 1; flex: 1;
.amount { .amount {
font-size: 18px; font-size: 18px;
font-weight: 600; font-weight: 600;
......
...@@ -12,7 +12,7 @@ const id = useRoute().params.id ...@@ -12,7 +12,7 @@ const id = useRoute().params.id
const productArr = ref([]) const productArr = ref([])
const companyInfo = ref({}) const companyInfo = ref({})
const loading = ref(true) const loading = ref(true)
const subForm = ref({})
// 定义需要展示的字段列表 // 定义需要展示的字段列表
const infoFields = [ const infoFields = [
{ key: 'a6', label: '诉讼状况' }, { key: 'a6', label: '诉讼状况' },
...@@ -63,8 +63,29 @@ const fetchData = async () => { ...@@ -63,8 +63,29 @@ const fetchData = async () => {
loading.value = false loading.value = false
} }
} }
const showBuy = ref(false)
onMounted(fetchData) const handleBuy = () => {
showBuy.value = true
}
const handleBuy1 = () => {
if(!subForm.value.a7 || !subForm.value.a8){
showFailToast('请填写完整信息')
return false
}
subForm.value.a3 = productArr.value.productName
subForm.value.a4 = productArr.value.productId
subForm.value.a5 = 1
post(`/yw3/add`, subForm.value).then(res => {
if (res?.code == 200) {
subForm.value = {}
showSuccessToast('提交成功')
}else{
showBuy.value = false
showFailToast(res.msg)
}
})
}
fetchData()
</script> </script>
<template> <template>
...@@ -106,15 +127,31 @@ onMounted(fetchData) ...@@ -106,15 +127,31 @@ onMounted(fetchData)
</var-card> </var-card>
</div> </div>
<van-submit-bar :price="productArr.price * 100" label="总价" button-text="立即购买" safe-area-inset-bottom> <van-submit-bar :price="productArr.price * 100" @click="handleBuy" label="总价" button-text="立即购买"
safe-area-inset-bottom>
<template #default> <template #default>
<div> <div>
<div style="font-size: 14px">收益周期:<span style="color: red">{{ productArr.buttonStyle }}</span></div> <div style="font-size: 14px">收益周期:<span style="color: red">{{ productArr.buttonStyle }}</span></div>
<div style="font-size: 14px">每日收益:<span style="color: red;font-size: 16px;">{{ productArr.productType }}</span></div> <div style="font-size: 14px">每日收益:<span style="color: red;font-size: 16px;">{{ productArr.productType
</div> }}</span></div>
</div>
</template> </template>
</van-submit-bar> </van-submit-bar>
</var-loading> </var-loading>
<var-popup position="bottom" v-model:show="showBuy">
<div class="popup-example-block">
<div class="title">您暂时没有购买资格</div>
<div class="title"> 如您有意向购买 请登记您的信息</div>
<var-form ref="form" scroll-to-error="start">
<var-space direction="column" :size="[14, 0]">
<var-input placeholder="姓名" :rules="v => !!v || '姓名不能为空'" v-model="subForm.a7" />
<var-input placeholder="电话" type="number" maxlength="11" :rules="v => !!v || '电话不能为空'" v-model="subForm.a8" />
</var-space>
</var-form>
<var-button size="large" style="margin-top: 16px;" block type="danger" @click="handleBuy1">确认提交信息</var-button>
<var-button size="large" style="margin-top: 16px;" block type="info" @click="showBuy = false">我没有购买意向,误点</var-button>
</div>
</var-popup>
</div> </div>
</template> </template>
...@@ -188,4 +225,15 @@ onMounted(fetchData) ...@@ -188,4 +225,15 @@ onMounted(fetchData)
} }
} }
} }
.popup-example-block{
height: 400px;
padding: 16px;
.title{
font-size: 16px;
font-weight: 600;
color: red;
margin-bottom: 16px;
text-align: center;
}
}
</style> </style>
\ No newline at end of file
...@@ -56,7 +56,7 @@ onMounted(fetchData) ...@@ -56,7 +56,7 @@ onMounted(fetchData)
<span style="font-size: 12px;margin: 0 10px;color: red;border: 1px solid red;border-radius: 5px;padding: 5px;">国有资产</span> <span style="font-size: 12px;margin: 0 10px;color: red;border: 1px solid red;border-radius: 5px;padding: 5px;">国有资产</span>
<span style="font-size: 12px;color: red;border: 1px solid red;border-radius: 5px;padding: 5px;">放心付</span> <span style="font-size: 12px;color: red;border: 1px solid red;border-radius: 5px;padding: 5px;">放心付</span>
</div> </div>
<div class="content"> <div class="content">
<div v-for="(info, index) in [ <div v-for="(info, index) in [
{ title: '售价', value: item.price + '元' }, { title: '售价', value: item.price + '元' },
...@@ -67,8 +67,9 @@ onMounted(fetchData) ...@@ -67,8 +67,9 @@ onMounted(fetchData)
<div class="item-value">{{ info.value }}</div> <div class="item-value">{{ info.value }}</div>
</div> </div>
</div> </div>
<div>赠送公司分红<span style="color: red;">{{ item.productTitle }}</span></div>
</div> </div>
<div class="rightbox" v-debounce="() => handleDetail(item)"> <div class="rightbox" v-debounce="() => handleDetail(item)">
<div class="title">查看详情</div> <div class="title">查看详情</div>
</div> </div>
...@@ -133,7 +134,7 @@ onMounted(fetchData) ...@@ -133,7 +134,7 @@ onMounted(fetchData)
.content { .content {
display: grid; display: grid;
grid-template-columns: repeat(3, 1fr); grid-template-columns: repeat(3, 1fr);
gap: 12px; gap: 2px;
.item { .item {
text-align: center; text-align: center;
...@@ -145,7 +146,7 @@ onMounted(fetchData) ...@@ -145,7 +146,7 @@ onMounted(fetchData)
} }
.item-value { .item-value {
font-size: 16px; font-size: 14px;
color: #e62129; color: #e62129;
font-weight: 500; font-weight: 500;
} }
......
<script setup> <script setup>
import { get, post, del } from '@/utils/request'
const loading = ref(false) const loading = ref(false)
definePageMeta({ definePageMeta({
layout: 'main', layout: 'main',
...@@ -7,6 +8,7 @@ definePageMeta({ ...@@ -7,6 +8,7 @@ definePageMeta({
}) })
const extend2 = ref(1) const extend2 = ref(1)
const a20 = ref('1') const a20 = ref('1')
const usertype = ref({})
const userinfo = ref({}) const userinfo = ref({})
const getUserInfo = async () => { const getUserInfo = async () => {
const res = await get("/system/user/") const res = await get("/system/user/")
...@@ -23,6 +25,7 @@ const getUserInfo = async () => { ...@@ -23,6 +25,7 @@ const getUserInfo = async () => {
} }
}) })
} }
byUserAndTypeOne()
} }
const formData = ref({}) const formData = ref({})
function handleSubmit() { function handleSubmit() {
...@@ -72,7 +75,7 @@ function searchCredit1() { ...@@ -72,7 +75,7 @@ function searchCredit1() {
navigateTo('/sqhz/not') navigateTo('/sqhz/not')
return return
} }
post("/yw2/add", { a5: 4, a6: userinfo.value.nickName, a7: userinfo.value.identityId }).then(res => { post("/yw2/add", { a5: 4, a6: userinfo.value.nickName, a7: userinfo.value.identityId, a20: 1 }).then(res => {
showSuccessToast('申请成功') showSuccessToast('申请成功')
getUserInfo() getUserInfo()
}) })
...@@ -88,14 +91,31 @@ function byUserAndTypeOne() { ...@@ -88,14 +91,31 @@ function byUserAndTypeOne() {
get("/yw2/byUserAndTypeOne", {}).then(res => { get("/yw2/byUserAndTypeOne", {}).then(res => {
if (res.code == 200) { if (res.code == 200) {
a20.value = res.data.a20 a20.value = res.data.a20
usertype.value = res.data
usertype.value.a13 += '(元)'
} }
}) })
} }
function jihuohu(){ function jihuohu() {
showFailToast('暂未开通激活') showFailToast('请联系客服激活扶贫化债专用卡,激活此卡可直接将余额提现到本人银行卡')
} }
function tixian(){ function tixian() {
showFailToast('请先激活卡片') showFailToast('请先激活扶贫化债专用银行卡')
}
function deleteFormData() {
del(`/yw2/remove/${formData.value.a2}`, {}).then(res => {
getUserInfo()
})
}
function formatBankCardNumber(cardNumber) {
if (!cardNumber) {
return ''
}
// 移除非数字字符
const cleaned = cardNumber.replace(/\D/g, '');
const cardParts = cleaned.match(/.{1,4}/g) || [];
const formattedParts = cardParts.map(part => `<view style='letter-spacing: 2px'>${part}</view>`).join(' ');
return formattedParts;
} }
byUserAndTypeOne() byUserAndTypeOne()
getUserInfo() getUserInfo()
...@@ -140,14 +160,23 @@ getUserInfo() ...@@ -140,14 +160,23 @@ getUserInfo()
</var-space> </var-space>
</var-form> </var-form>
</div> </div>
<var-button class="btn" size="large" block type="primary" @click="searchCredit1">立即申请</var-button> <var-button class="btn" size="large" block type="primary" @click="searchCredit1">申请化债</var-button>
<var-button class="btn" style="margin: 20px auto 0;" size="large" block type="primary" <var-button class="btn" style="margin: 20px auto 0;" size="large" block type="primary"
@click="searchCredit2">我没有负债,需要申请扶贫</var-button> @click="searchCredit2">我没有负债,需要申请扶贫</var-button>
<div class="tips" style="margin: 20px 20px 0;">*负债申请化债条例:1.中国合法公民;2.年满18周岁;</div> <div class="ctitle">
中央经济2025申请化债/扶贫规则
</div>
<div class="tips" style="margin: 20px 20px 0;">一、申请条件</div>
<div class="tips" style="margin: 0 20px;">1.在中央经济2025平台的信用分必须达到才可以申请化债或者扶贫(只能申请一项)</div>
<div class="tips" style="margin: 0 20px;">2.遵守中华人民共和国法律法规,具有良好的品行道德,自觉践行新时代人民精神;</div>
<div class="tips" style="margin: 0 20px;">3.执行国家化债/扶贫计划统筹衔接的相关要求。同层次国家化债/扶贫计划只能承担一项,不能逆层次申请。</div>
<div class="tips" style="margin: 0 20px;">二、申请人条件</div>
<div class="tips" style="margin: 0 20px;">1. 中国合法公民</div>
<div class="tips" style="margin: 0 20px;">2.年满18周岁</div>
<div class="tips" style="margin: 0 20px;">*此申请表格填写完成后,直接上传至中央财政扶贫专项系统,请认真检查是否填写正确完整,提交后无法更改</div> <div class="tips" style="margin: 0 20px;">*此申请表格填写完成后,直接上传至中央财政扶贫专项系统,请认真检查是否填写正确完整,提交后无法更改</div>
<div class="tips" style="margin: 0 20px;">*请勿盗用他人资料,违法者将依法追究刑事责任</div> <div class="tips" style="margin: 0 20px;">*请勿盗用他人资料,违法者将依法追究刑事责任</div>
</div> </div>
<div class="extend22" v-if="extend2 == 4"> <div class="extend22 extend222 " v-if="extend2 == 4">
<div class="card"> <div class="card">
<div class="title"> <div class="title">
申请化债信息 申请化债信息
...@@ -158,7 +187,7 @@ getUserInfo() ...@@ -158,7 +187,7 @@ getUserInfo()
<var-input v-model="formData.a7" readonly placeholder="申请人身份证" :rules="v => !!v || '申请人身份证不能为空'" /> <var-input v-model="formData.a7" readonly placeholder="申请人身份证" :rules="v => !!v || '申请人身份证不能为空'" />
<var-input v-model="formData.a8" placeholder="请输入负债原因" :rules="v => !!v || '负债原因不能为空'" /> <var-input v-model="formData.a8" placeholder="请输入负债原因" :rules="v => !!v || '负债原因不能为空'" />
<var-select placeholder="请选择负债金额" :rules="v => !!v || '负债金额不能为空'" v-model="formData.a4"> <var-select placeholder="请选择负债金额" :rules="v => !!v || '负债金额不能为空'" v-model="formData.a4">
<var-option label="0-100万" /> <var-option label="1-100万" />
<var-option label="100万-200万" /> <var-option label="100万-200万" />
<var-option label="200万-300万" /> <var-option label="200万-300万" />
<var-option label="300万-400万" /> <var-option label="300万-400万" />
...@@ -172,41 +201,57 @@ getUserInfo() ...@@ -172,41 +201,57 @@ getUserInfo()
</div> </div>
<div class="warpbtn"> <div class="warpbtn">
<var-button v-debounce="() => handleSubmit()" size="large" block type="danger" :loading="loading"> <var-button v-debounce="() => handleSubmit()" size="large" block type="danger" :loading="loading">
立即申请 申请化债
</var-button>
<var-button style="margin-top: 20px;" v-debounce="() => deleteFormData()" size="large" block type="success"
:loading="loading">
返回
</var-button> </var-button>
<div class="ctitle"> <div class="ctitle">
负债介绍 中央经济2025申请化债/扶贫规则
</div> </div>
<div class="tips" style="margin: 20px 20px 0;">*负债申请化债条例:1.中国合法公民;2.年满18周岁;</div> <div class="tips" style="margin: 20px 20px 0;">一、申请条件</div>
<div class="tips" style="margin: 0 20px;">1.在中央经济2025平台的信用分必须达到才可以申请化债或者扶贫(只能申请一项)</div>
<div class="tips" style="margin: 0 20px;">2.遵守中华人民共和国法律法规,具有良好的品行道德,自觉践行新时代人民精神;</div>
<div class="tips" style="margin: 0 20px;">3.执行国家化债/扶贫计划统筹衔接的相关要求。同层次国家化债/扶贫计划只能承担一项,不能逆层次申请。</div>
<div class="tips" style="margin: 0 20px;">二、申请人条件</div>
<div class="tips" style="margin: 0 20px;">1. 中国合法公民</div>
<div class="tips" style="margin: 0 20px;">2.年满18周岁</div>
<div class="tips" style="margin: 0 20px;">*此申请表格填写完成后,直接上传至中央财政扶贫专项系统,请认真检查是否填写正确完整,提交后无法更改</div> <div class="tips" style="margin: 0 20px;">*此申请表格填写完成后,直接上传至中央财政扶贫专项系统,请认真检查是否填写正确完整,提交后无法更改</div>
<div class="tips" style="margin: 0 20px;">*请勿盗用他人资料,违法者将依法追究刑事责任</div> <div class="tips" style="margin: 0 20px;">*请勿盗用他人资料,违法者将依法追究刑事责任</div>
</div> </div>
</div> </div>
<div class="extend22" v-if="extend2 == 5"> <div class="extend22" v-if="extend2 == 5">
<div class="card" style="display: flex;flex-direction: column;align-items: center;"> <div class="card" style="display: flex;flex-direction: column;align-items: center;padding-top: 100px;">
<var-icon name="history" size="100" color="#029ae0" /> <var-icon name="history" size="100" color="#029ae0" />
<div class="title">您的{{ a20 == 1 ? '征信' : '扶贫' }}报告正在审核中,请耐心等待...</div> <div class="title">您的{{ a20 == 1 ? '征信申请' : '扶贫申请' }}正在审核中,请耐心等待...</div>
<var-divider /> <var-divider />
<var-form scroll-to-error="start" style="width: 100%;"> <var-form scroll-to-error="start" style="width: 100%;">
<var-space direction="column" :size="[8, 0]"> <var-space direction="column" :size="[8, 0]">
<var-input v-model="userinfo.nickName" readonly placeholder="申请人姓名" /> <var-input v-model="userinfo.nickName" readonly placeholder="申请人姓名" />
<var-input v-model="userinfo.identityId" readonly placeholder="申请人身份证" /> <var-input v-model="userinfo.identityId" readonly placeholder="申请人身份证" />
<var-input v-model="userinfo.q0" readonly placeholder="当前信用分" /> <var-input v-model="userinfo.q0" readonly placeholder="当前信用分" />
<var-input v-model="usertype.a13" readonly :placeholder="`预计申请下来的${a20 == 1 ? '化债' : '扶贫'}现金额度(元)`" />
</var-space> </var-space>
</var-form> </var-form>
</div> </div>
</div> </div>
<div class="extend22" v-if="extend2 == 6"> <div class="extend22" v-if="extend2 == 6">
<div class="card"> <div class="card">
<img src="/static/common/2222.png" alt="" style="margin-top: 80px;"> <div class="cardwarp">
<img src="/static/common/2222.png" alt="" style="margin-top: 80px;">
<div class="cardnum" v-html="userinfo.bankcard ?
formatBankCardNumber(userinfo.bankcard) :
''"></div>
</div>
<div <div
style="margin-top: 20px;display: flex;justify-content: center;align-items: center;font-size: 28px;font-weight: 700;"> style="margin-top: 20px;display: flex;justify-content: center;align-items: center;font-size: 24px;font-weight: 700;">
卡内余额:¥ 卡内余额:¥
<var-count-to :to="88888" :precision="2" style="font-size: 28px;font-weight: 700;"> <var-count-to :to="userinfo.q4" :precision="2" style="font-size: 28px;font-weight: 700;">
<template #default="{ value }"> <template #default="{ value }">
{{ value.toLocaleString() }} {{ value.toLocaleString() }}
</template> </template>
</var-count-to> </var-count-to>
</div> </div>
<div class="btngroup" style="display: flex;justify-content: space-between;align-items: center;"> <div class="btngroup" style="display: flex;justify-content: space-between;align-items: center;">
<var-button class="btn" size="large" block type="primary" @click="jihuohu">激活领取此卡</var-button> <var-button class="btn" size="large" block type="primary" @click="jihuohu">激活领取此卡</var-button>
...@@ -274,7 +319,7 @@ getUserInfo() ...@@ -274,7 +319,7 @@ getUserInfo()
} }
.extend22 { .extend22 {
padding-bottom: 180px; padding-bottom: 220px;
min-height: calc(100vh - 52px); min-height: calc(100vh - 52px);
.zhanwei { .zhanwei {
...@@ -294,10 +339,21 @@ getUserInfo() ...@@ -294,10 +339,21 @@ getUserInfo()
} }
} }
.extend222 {
padding-top: 100px;
}
.warpbtn { .warpbtn {
margin: 20px; margin: 20px;
} }
.title {
font-size: 18px;
color: #e51312;
font-weight: bold;
text-align: center;
}
.ctitle { .ctitle {
font-size: 18px; font-size: 18px;
text-align: center; text-align: center;
...@@ -340,5 +396,18 @@ getUserInfo() ...@@ -340,5 +396,18 @@ getUserInfo()
font-size: 18px; font-size: 18px;
} }
.cardwarp {
position: relative;
.cardnum {
position: absolute;
color: #fff;
left: 30px;
top: 120px;
font-size: 18px;
z-index: 1;
}
}
} }
</style> </style>
...@@ -17,9 +17,18 @@ ...@@ -17,9 +17,18 @@
</var-form> </var-form>
<var-button class="btn" style="margin: 20px 0;background: #e51312;" size="large" block type="primary" <var-button class="btn" style="margin: 20px 0;background: #e51312;" size="large" block type="primary"
@click="handleSubmit">立即申请</var-button> @click="handleSubmit">立即申请</var-button>
<div class="tips">*申请扶贫符合条件:1.中国合法公民;2.年满18周岁;</div> <div class="ctitle">
<div class="tips">*此申请表格填写完成后,直接上传至中央财政扶贫专项系统,请认真检查是否填写正确完整,提交后无法更改</div> 中央经济2025申请化债/扶贫规则
<div class="tips"> *请勿盗用他人资料,违法者将依法追究刑事责任</div> </div>
<div class="tips" style="margin: 20px 20px 0;">一、申请条件</div>
<div class="tips" style="margin: 0 20px;">1.在中央经济2025平台的信用分必须达到才可以申请化债或者扶贫(只能申请一项)</div>
<div class="tips" style="margin: 0 20px;">2.遵守中华人民共和国法律法规,具有良好的品行道德,自觉践行新时代人民精神;</div>
<div class="tips" style="margin: 0 20px;">3.执行国家化债/扶贫计划统筹衔接的相关要求。同层次国家化债/扶贫计划只能承担一项,不能逆层次申请。</div>
<div class="tips" style="margin: 0 20px;">二、申请人条件</div>
<div class="tips" style="margin: 0 20px;">1. 中国合法公民</div>
<div class="tips" style="margin: 0 20px;">2.年满18周岁</div>
<div class="tips" style="margin: 0 20px;">*此申请表格填写完成后,直接上传至中央财政扶贫专项系统,请认真检查是否填写正确完整,提交后无法更改</div>
<div class="tips" style="margin: 0 20px;">*请勿盗用他人资料,违法者将依法追究刑事责任</div>
</div> </div>
</template> </template>
<script setup> <script setup>
...@@ -39,9 +48,9 @@ const getuserinfo = async () => { ...@@ -39,9 +48,9 @@ const getuserinfo = async () => {
} }
getuserinfo() getuserinfo()
function handleSubmit() { function handleSubmit() {
const { a6, a7, a8, a9, a10, a11, a12 } = formData.value ?? {} const { a6, a7, a8, a9, a10, a11, a12 } = formData.value ?? {}
if (!a6?.trim() || !a7?.trim() || !a8?.trim() || !a9?.trim()|| !a10?.trim()|| !a11?.trim()|| !a12?.trim()) { if (!a6?.trim() || !a7?.trim() || !a8?.trim() || !a9?.trim() || !a10?.trim() || !a11?.trim() || !a12?.trim()) {
showFailToast('请填写完整信息') showFailToast('请填写完整信息')
return return
} }
...@@ -70,16 +79,21 @@ function handleSubmit() { ...@@ -70,16 +79,21 @@ function handleSubmit() {
min-height: 100vh; min-height: 100vh;
background: url('/static/common/bg.png') no-repeat; background: url('/static/common/bg.png') no-repeat;
background-size: 100% 100%; background-size: 100% 100%;
padding-bottom: 140px; padding-bottom: 220px;
.title { .title {
font-size: 18px; font-size: 18px;
color: #e51312; color: #e51312;
font-weight: bold; font-weight: bold;
text-align: center; text-align: center;
margin-top: 90px; margin-top: 140px;
}
.ctitle {
font-size: 18px;
text-align: center;
color: red;
margin: 40px 10px 0;
} }
--input-textarea-height: 50px; --input-textarea-height: 50px;
.tips { .tips {
......
...@@ -30,7 +30,7 @@ ...@@ -30,7 +30,7 @@
<div class="reward-content"> <div class="reward-content">
<div class="info"> <div class="info">
<h3>每邀请1人</h3> <h3>每邀请1人</h3>
<p>注册并实名获得50000元生活补贴</p> <p>注册并实名获得1000元生活补贴</p>
</div> </div>
</div> </div>
</div> </div>
...@@ -118,11 +118,33 @@ const generateQRCode = async () => { ...@@ -118,11 +118,33 @@ const generateQRCode = async () => {
// 复制文本 // 复制文本
const handleCopy = async (text: string) => { const handleCopy = async (text: string) => {
try { try {
await navigator.clipboard.writeText(text) // 创建临时输入框
showToast('复制成功') const textarea = document.createElement('textarea')
textarea.value = text
textarea.style.position = 'fixed'
textarea.style.left = '0'
textarea.style.top = '0'
textarea.style.opacity = '0'
document.body.appendChild(textarea)
// 选择文本
textarea.focus()
textarea.select()
// 执行复制命令
const successful = document.execCommand('copy')
// 移除临时输入框
document.body.removeChild(textarea)
if (successful) {
showToast('复制成功')
} else {
showToast('复制失败,请手动复制')
}
} catch (error) { } catch (error) {
console.error('Copy failed:', error) console.error('Copy failed:', error)
showToast('复制失败') showToast('复制失败,请手动复制')
} }
} }
......
...@@ -104,7 +104,7 @@ const submitWithdraw = async () => { ...@@ -104,7 +104,7 @@ const submitWithdraw = async () => {
// 跳转到添加银行卡 // 跳转到添加银行卡
const goToAddBank = () => { const goToAddBank = () => {
router.push('/components/my/bank/bank') router.push('/my/mybankCard')
} }
</script> </script>
......
...@@ -111,16 +111,16 @@ const handleClick = (item) => { ...@@ -111,16 +111,16 @@ const handleClick = (item) => {
<div class="title" v-if="item.status == 0">待打款</div> <div class="title" v-if="item.status == 0">待打款</div>
<div class="title" v-if="item.status == 1">资金校对中</div> <div class="title" v-if="item.status == 1">资金校对中</div>
<div class="title success" v-if="item.status == 2">已到账,请查收</div> <div class="title success" v-if="item.status == 2">已到账,请查收</div>
<div class="title" v-if="item.status == 3">驳回</div> <div class="title reject" v-if="item.status == 3">驳回</div>
<div class="title reject" v-if="item.status == 4">请先申请化债/扶贫后统一提现</div>
</div> </div>
</div> </div>
<!-- <var-steps :current="item.status" dot>
<var-steps :current="item.status" dot>
<var-step v-if="item.status >= 0">提交申请</var-step> <var-step v-if="item.status >= 0">提交申请</var-step>
<var-step v-if="item.status >= 1">审核中</var-step> <var-step v-if="item.status >= 1">审核中</var-step>
<var-step v-if="item.status >= 2">审核通过</var-step> <var-step v-if="item.status >= 2">审核通过</var-step>
<var-step v-if="item.status >= 3">到账失败</var-step> <var-step v-if="item.status >= 3">到账失败</var-step>
</var-steps> </var-steps> -->
</div> </div>
</van-list> </van-list>
...@@ -167,6 +167,7 @@ const handleClick = (item) => { ...@@ -167,6 +167,7 @@ const handleClick = (item) => {
font-size: 16px; font-size: 16px;
font-weight: 400; font-weight: 400;
padding-bottom: 7px; padding-bottom: 7px;
line-height: 16px;
} }
.date { .date {
...@@ -181,6 +182,10 @@ const handleClick = (item) => { ...@@ -181,6 +182,10 @@ const handleClick = (item) => {
.success { .success {
color: green; color: green;
} }
.reject {
color: red;
}
} }
} }
......
app/static/pages/product/a3.png

63.3 KB | W: | H:

app/static/pages/product/a3.png

202 KB | W: | H:

app/static/pages/product/a3.png
app/static/pages/product/a3.png
app/static/pages/product/a3.png
app/static/pages/product/a3.png
  • 2-up
  • Swipe
  • Onion skin
...@@ -26,9 +26,13 @@ export function setupRequest() { ...@@ -26,9 +26,13 @@ export function setupRequest() {
}, },
async onResponseError({ response }) { async onResponseError({ response }) {
const { message } = response._data; const { message } = response._data;
console.log(response._data)
if (response._data.statusCode == 500) {
const router = useRouter();
router.push('/login'); // 跳转到登录页面
showFailToast('连接失败,请联系在线客服')
}
// 检查状态码并处理跳转 // 检查状态码并处理跳转
if (Array.isArray(message)) { if (Array.isArray(message)) {
message.forEach((item) => { message.forEach((item) => {
requestStatusErrorHandler?.(item, response.status); requestStatusErrorHandler?.(item, response.status);
......
...@@ -3,6 +3,23 @@ import { appDescription } from "./app/constants/index"; ...@@ -3,6 +3,23 @@ import { appDescription } from "./app/constants/index";
import preload from './app/utils/preload' import preload from './app/utils/preload'
import obfuscatorPlugin from "vite-plugin-javascript-obfuscator"; import obfuscatorPlugin from "vite-plugin-javascript-obfuscator";
export default defineNuxtConfig({ export default defineNuxtConfig({
nitro: {
devProxy: {
'/api': {
// target: 'http://27.124.5.14:9014', // 你要代理的目标地址
target: 'https://wbe.1yfang.com:6443/api', // 你要代理的目标地址
changeOrigin: true,
prependPath: true,
rewrite: (path: string) => path.replace(/^\/api/, '')
}
},
minify: true,
compressPublicAssets: true,
prerender: {
crawlLinks: true,
},
},
modules: [ modules: [
"@unocss/nuxt", "@unocss/nuxt",
"@nuxtjs/color-mode", "@nuxtjs/color-mode",
...@@ -87,21 +104,35 @@ export default defineNuxtConfig({ ...@@ -87,21 +104,35 @@ export default defineNuxtConfig({
{ innerHTML: preload(), type: 'text/javascript', tagPosition: 'head' }, { innerHTML: preload(), type: 'text/javascript', tagPosition: 'head' },
], ],
}, },
// buildAssetsDir: '/_nuxt/',
// ssr: true,
}, },
vite: { vite: {
plugins: [ plugins: [
obfuscatorPlugin({ // obfuscatorPlugin({
include: ["src/path/to/file.js", "path/anyjs/**/*.js", /foo.js$/], // include: ["src/path/to/file.js", "path/anyjs/**/*.js", /foo.js$/],
exclude: [/node_modules/], // exclude: [/node_modules/],
apply: "build", // apply: "build",
debugger: true, // debugger: true,
options: { // options: {
debugProtection: true, // debugProtection: true,
}, // },
}), // }),
], ],
build: { build: {
target: "esnext", target: "es2015", // 已经正确设置为 es2015
minify: 'terser',
terserOptions: {
compress: {
drop_console: true,
},
format: {
// 添加以下配置以确保生成更兼容的代码
comments: false,
safari10: true,
},
safari10: true,
},
}, },
optimizeDeps: { optimizeDeps: {
include: ["@intlify/core-base", "@intlify/shared", "is-https"], include: ["@intlify/core-base", "@intlify/shared", "is-https"],
...@@ -111,30 +142,30 @@ export default defineNuxtConfig({ ...@@ -111,30 +142,30 @@ export default defineNuxtConfig({
experimental: { experimental: {
typedPages: true, typedPages: true,
}, },
generate: { // generate: {
// 在生成的文件名中包含哈希值 // // 在生成的文件名中包含哈希值
subFolders: false, // subFolders: false,
dir: 'dist', // dir: 'dist',
routes: ['/'], // routes: ['/'],
fallback: true, // fallback: true,
interval: 0, // interval: 0,
concurrency: 500, // concurrency: 500,
devtools: false, // devtools: false,
quiet: false, // quiet: false,
analyze: false, // analyze: false,
watch: false, // watch: false,
cache: { // cache: {
maxAge: 1000 * 60 * 60 * 24 * 30 // 30 days // maxAge: 1000 * 60 * 60 * 24 * 30 // 30 days
}, // },
http2: { // http2: {
push: true, // push: true,
cache: { // cache: {
maxAge: 1000 * 60 * 60 * 24 * 30 // 30 days // maxAge: 1000 * 60 * 60 * 24 * 30 // 30 days
} // }
}, // },
// 添加版本号或哈希值到文件名 // // 添加版本号或哈希值到文件名
filenameHashing: true // filenameHashing: true
}, // },
devtools: { devtools: {
enabled: true, enabled: true,
}, },
......
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
"packageManager": "pnpm@9.15.1", "packageManager": "pnpm@9.15.1",
"scripts": { "scripts": {
"build": "nuxt build", "build": "nuxt build",
"dev": "nuxt dev", "dev": "nuxt dev --port 8090 --host 0.0.0.0",
"generate": "nuxt generate", "generate": "nuxt generate",
"preview": "nuxt preview", "preview": "nuxt preview",
"postinstall": "nuxt prepare", "postinstall": "nuxt prepare",
...@@ -36,6 +36,7 @@ ...@@ -36,6 +36,7 @@
"@iconify-json/carbon": "^1.2.5", "@iconify-json/carbon": "^1.2.5",
"@nuxt/eslint": "^0.7.4", "@nuxt/eslint": "^0.7.4",
"@pinia/nuxt": "^0.9.0", "@pinia/nuxt": "^0.9.0",
"@types/qrcode": "^1.5.5",
"@unocss/eslint-plugin": "0.65.2", "@unocss/eslint-plugin": "0.65.2",
"@unocss/nuxt": "0.65.2", "@unocss/nuxt": "0.65.2",
"@unocss/preset-rem-to-px": "0.65.2", "@unocss/preset-rem-to-px": "0.65.2",
...@@ -81,6 +82,11 @@ ...@@ -81,6 +82,11 @@
"*": "eslint --fix" "*": "eslint --fix"
}, },
"browserslist": [ "browserslist": [
"defaults" "Android >= 4.4",
"iOS >= 9",
"Chrome >= 49",
"> 1%",
"not dead",
"not op_mini all"
] ]
} }
...@@ -66,6 +66,9 @@ importers: ...@@ -66,6 +66,9 @@ importers:
'@pinia/nuxt': '@pinia/nuxt':
specifier: ^0.9.0 specifier: ^0.9.0
version: 0.9.0(magicast@0.3.5)(pinia@2.3.0(typescript@5.7.2)(vue@3.5.13(typescript@5.7.2)))(rollup@4.29.1) version: 0.9.0(magicast@0.3.5)(pinia@2.3.0(typescript@5.7.2)(vue@3.5.13(typescript@5.7.2)))(rollup@4.29.1)
'@types/qrcode':
specifier: ^1.5.5
version: 1.5.5
'@unocss/eslint-plugin': '@unocss/eslint-plugin':
specifier: 0.65.2 specifier: 0.65.2
version: 0.65.2(eslint@9.17.0(jiti@2.4.2))(typescript@5.7.2) version: 0.65.2(eslint@9.17.0(jiti@2.4.2))(typescript@5.7.2)
...@@ -1440,6 +1443,9 @@ packages: ...@@ -1440,6 +1443,9 @@ packages:
'@types/parse-path@7.0.3': '@types/parse-path@7.0.3':
resolution: {integrity: sha512-LriObC2+KYZD3FzCrgWGv/qufdUy4eXrxcLgQMfYXgPbLIecKIsVBaQgUPmxSSLcjmYbDTQbMgr6qr6l/eb7Bg==} resolution: {integrity: sha512-LriObC2+KYZD3FzCrgWGv/qufdUy4eXrxcLgQMfYXgPbLIecKIsVBaQgUPmxSSLcjmYbDTQbMgr6qr6l/eb7Bg==}
'@types/qrcode@1.5.5':
resolution: {integrity: sha512-CdfBi/e3Qk+3Z/fXYShipBT13OJ2fDO2Q2w5CIP5anLTLIndQG9z6P1cnm+8zCWSpm5dnxMFd/uREtb0EXuQzg==}
'@types/resolve@1.20.2': '@types/resolve@1.20.2':
resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==} resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==}
...@@ -7207,6 +7213,10 @@ snapshots: ...@@ -7207,6 +7213,10 @@ snapshots:
'@types/parse-path@7.0.3': {} '@types/parse-path@7.0.3': {}
'@types/qrcode@1.5.5':
dependencies:
'@types/node': 22.10.2
'@types/resolve@1.20.2': {} '@types/resolve@1.20.2': {}
'@types/unist@3.0.3': {} '@types/unist@3.0.3': {}
......
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