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 = https://www.zgjj2025.com/api
NITRO_SERVER_PORT=8090
\ No newline at end of file
......@@ -28,7 +28,7 @@ function handleChange(active1) {
<template>
<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="sqhz" label="申请化债" />
<var-bottom-navigation-item name="sqhz" label="申请化债/扶贫" />
<var-bottom-navigation-item name="product" label="不良债权认购" />
<var-bottom-navigation-item name="my" label="个人中心" />
</var-bottom-navigation>
......
export const appName = '中国经济'
export const appDescription = 'Nuxt H5 Starter Template'
export const appName = '中央经济2025'
export const appDescription = `中央经济2025平台是习近平主席在中央经济工作会议部署2025年两项重点任务
①化解国民债务危机
②致力帮助贫困家庭脱贫`
......@@ -7,6 +7,13 @@ definePageMeta({
name: 'home',
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) => {
if (item === 1) {
navigateTo("/user/group");
......@@ -56,10 +63,10 @@ const handleNewsItemClick = (item) => {
<div class="item" v-ripple @click="handleClick(1)">
<img src="/static/pages/home/9.png">
</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">
</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">
</div>
<div class="item" v-ripple @click="handleClick(4)">
......@@ -72,6 +79,11 @@ const handleNewsItemClick = (item) => {
</div>
<NewsCard :content3="content3" @itemClick="handleNewsItemClick" />
</div>
<!-- 恭喜您获得债券认购资格,您的购买意向申请已经通过,现在可以认购债权了,您要前往认购吗
两个按钮
(前往会场认购)
(先不前往认购) -->
</div>
</template>
......
......@@ -22,11 +22,11 @@
</var-form>
</var-card>
<div class="warp">
<div class="warp-item">
<div class="warp-item" @click="navigateTo(kfUrl, { external: true })">
<img src="/static/common/3.png" alt="">
<span>联系客服</span>
</div>
<div class="warp-item">
<div class="warp-item" @click="navigateTo(appdownload, { external: true })">
<img src="/static/common/4.png" alt="">
<span>APP下载</span>
</div>
......@@ -46,7 +46,13 @@ proseStore.clearProse()
definePageMeta({
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 active = ref(0)
const loading = ref(false)
......@@ -158,6 +164,7 @@ const handleSubmit = useDebounceFn(async () => {
await handleLogin()
}
}, 1000)
</script>
......
......@@ -25,7 +25,7 @@ const MENU_ITEMS = [
{ name: "我的产品", icon: MY_ICONS.products, path: "/user/product" },
{ name: "房产兑换记录", icon: MY_ICONS.house, path: "/user/house" },
{ 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" }
]
......@@ -40,13 +40,29 @@ const items = ref(MENU_ITEMS)
const userData = ref({})
const loading = ref(true)
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) => {
activeCard.value = item.name
if (item.name === '房产兑换记录') {
showToast('邀约超过100人送140平房产一套,达到目标者找在线客服登记领取')
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) => {
......@@ -56,7 +72,14 @@ const handleClick1 = (type) => {
const gotx = (balance, type, title) => {
if (balance && balance > 0) {
if (userData.value.extend2 != 6) {
showFailToast('请先申请化债/扶贫')
setTimeout(() => {
navigateTo('/sqhz')
}, 2000)
} else {
navigateTo(`/user/tixian?balance=${balance}&type=${type}&title=${title}`)
}
} else {
showFailToast('余额不足')
}
......@@ -87,7 +110,8 @@ const logout = () => {
navigateTo('/login')
});
}
onMounted(fetchData)
fetchData()
</script>
<template>
......@@ -323,9 +347,11 @@ onMounted(fetchData)
grid-template-columns: 1fr auto 1fr auto 1fr;
margin-top: 10px;
display: flex;
.asset-item {
text-align: center;
flex: 1;
.amount {
font-size: 18px;
font-weight: 600;
......
......@@ -12,7 +12,7 @@ const id = useRoute().params.id
const productArr = ref([])
const companyInfo = ref({})
const loading = ref(true)
const subForm = ref({})
// 定义需要展示的字段列表
const infoFields = [
{ key: 'a6', label: '诉讼状况' },
......@@ -63,8 +63,29 @@ const fetchData = async () => {
loading.value = false
}
}
onMounted(fetchData)
const showBuy = ref(false)
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>
<template>
......@@ -106,15 +127,31 @@ onMounted(fetchData)
</var-card>
</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>
<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
}}</span></div>
</div>
</template>
</van-submit-bar>
</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>
</template>
......@@ -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>
\ No newline at end of file
......@@ -67,6 +67,7 @@ onMounted(fetchData)
<div class="item-value">{{ info.value }}</div>
</div>
</div>
<div>赠送公司分红<span style="color: red;">{{ item.productTitle }}</span></div>
</div>
<div class="rightbox" v-debounce="() => handleDetail(item)">
......@@ -133,7 +134,7 @@ onMounted(fetchData)
.content {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 12px;
gap: 2px;
.item {
text-align: center;
......@@ -145,7 +146,7 @@ onMounted(fetchData)
}
.item-value {
font-size: 16px;
font-size: 14px;
color: #e62129;
font-weight: 500;
}
......
<script setup>
import { get, post, del } from '@/utils/request'
const loading = ref(false)
definePageMeta({
layout: 'main',
......@@ -7,6 +8,7 @@ definePageMeta({
})
const extend2 = ref(1)
const a20 = ref('1')
const usertype = ref({})
const userinfo = ref({})
const getUserInfo = async () => {
const res = await get("/system/user/")
......@@ -23,6 +25,7 @@ const getUserInfo = async () => {
}
})
}
byUserAndTypeOne()
}
const formData = ref({})
function handleSubmit() {
......@@ -72,7 +75,7 @@ function searchCredit1() {
navigateTo('/sqhz/not')
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('申请成功')
getUserInfo()
})
......@@ -88,14 +91,31 @@ function byUserAndTypeOne() {
get("/yw2/byUserAndTypeOne", {}).then(res => {
if (res.code == 200) {
a20.value = res.data.a20
usertype.value = res.data
usertype.value.a13 += '(元)'
}
})
}
function jihuohu(){
showFailToast('暂未开通激活')
function jihuohu() {
showFailToast('请联系客服激活扶贫化债专用卡,激活此卡可直接将余额提现到本人银行卡')
}
function tixian(){
showFailToast('请先激活卡片')
function tixian() {
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()
getUserInfo()
......@@ -140,14 +160,23 @@ getUserInfo()
</var-space>
</var-form>
</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"
@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>
<div class="extend22" v-if="extend2 == 4">
<div class="extend22 extend222 " v-if="extend2 == 4">
<div class="card">
<div class="title">
申请化债信息
......@@ -158,7 +187,7 @@ getUserInfo()
<var-input v-model="formData.a7" readonly 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-option label="0-100万" />
<var-option label="1-100万" />
<var-option label="100万-200万" />
<var-option label="200万-300万" />
<var-option label="300万-400万" />
......@@ -172,41 +201,57 @@ getUserInfo()
</div>
<div class="warpbtn">
<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>
<div class="ctitle">
负债介绍
中央经济2025申请化债/扶贫规则
</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>
</div>
<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" />
<div class="title">您的{{ a20 == 1 ? '征信' : '扶贫' }}报告正在审核中,请耐心等待...</div>
<div class="title">您的{{ a20 == 1 ? '征信申请' : '扶贫申请' }}正在审核中,请耐心等待...</div>
<var-divider />
<var-form scroll-to-error="start" style="width: 100%;">
<var-space direction="column" :size="[8, 0]">
<var-input v-model="userinfo.nickName" readonly placeholder="申请人姓名" />
<var-input v-model="userinfo.identityId" readonly placeholder="申请人身份证" />
<var-input v-model="userinfo.q0" readonly placeholder="当前信用分" />
<var-input v-model="usertype.a13" readonly :placeholder="`预计申请下来的${a20 == 1 ? '化债' : '扶贫'}现金额度(元)`" />
</var-space>
</var-form>
</div>
</div>
<div class="extend22" v-if="extend2 == 6">
<div class="card">
<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
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 }">
{{ value.toLocaleString() }}
</template>
</var-count-to>
</var-count-to>
</div>
<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>
......@@ -274,7 +319,7 @@ getUserInfo()
}
.extend22 {
padding-bottom: 180px;
padding-bottom: 220px;
min-height: calc(100vh - 52px);
.zhanwei {
......@@ -294,10 +339,21 @@ getUserInfo()
}
}
.extend222 {
padding-top: 100px;
}
.warpbtn {
margin: 20px;
}
.title {
font-size: 18px;
color: #e51312;
font-weight: bold;
text-align: center;
}
.ctitle {
font-size: 18px;
text-align: center;
......@@ -340,5 +396,18 @@ getUserInfo()
font-size: 18px;
}
.cardwarp {
position: relative;
.cardnum {
position: absolute;
color: #fff;
left: 30px;
top: 120px;
font-size: 18px;
z-index: 1;
}
}
}
</style>
......@@ -17,9 +17,18 @@
</var-form>
<var-button class="btn" style="margin: 20px 0;background: #e51312;" size="large" block type="primary"
@click="handleSubmit">立即申请</var-button>
<div class="tips">*申请扶贫符合条件:1.中国合法公民;2.年满18周岁;</div>
<div class="tips">*此申请表格填写完成后,直接上传至中央财政扶贫专项系统,请认真检查是否填写正确完整,提交后无法更改</div>
<div class="tips"> *请勿盗用他人资料,违法者将依法追究刑事责任</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>
</template>
<script setup>
......@@ -41,7 +50,7 @@ getuserinfo()
function handleSubmit() {
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('请填写完整信息')
return
}
......@@ -70,16 +79,21 @@ function handleSubmit() {
min-height: 100vh;
background: url('/static/common/bg.png') no-repeat;
background-size: 100% 100%;
padding-bottom: 140px;
padding-bottom: 220px;
.title {
font-size: 18px;
color: #e51312;
font-weight: bold;
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;
.tips {
......
......@@ -30,7 +30,7 @@
<div class="reward-content">
<div class="info">
<h3>每邀请1人</h3>
<p>注册并实名获得50000元生活补贴</p>
<p>注册并实名获得1000元生活补贴</p>
</div>
</div>
</div>
......@@ -118,11 +118,33 @@ const generateQRCode = async () => {
// 复制文本
const handleCopy = async (text: string) => {
try {
await navigator.clipboard.writeText(text)
// 创建临时输入框
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) {
console.error('Copy failed:', error)
showToast('复制失败')
showToast('复制失败,请手动复制')
}
}
......
......@@ -104,7 +104,7 @@ const submitWithdraw = async () => {
// 跳转到添加银行卡
const goToAddBank = () => {
router.push('/components/my/bank/bank')
router.push('/my/mybankCard')
}
</script>
......
......@@ -111,16 +111,16 @@ const handleClick = (item) => {
<div class="title" v-if="item.status == 0">待打款</div>
<div class="title" v-if="item.status == 1">资金校对中</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>
<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 >= 1">审核中</var-step>
<var-step v-if="item.status >= 2">审核通过</var-step>
<var-step v-if="item.status >= 3">到账失败</var-step>
</var-steps>
</var-steps> -->
</div>
</van-list>
......@@ -167,6 +167,7 @@ const handleClick = (item) => {
font-size: 16px;
font-weight: 400;
padding-bottom: 7px;
line-height: 16px;
}
.date {
......@@ -181,6 +182,10 @@ const handleClick = (item) => {
.success {
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() {
},
async onResponseError({ response }) {
const { message } = response._data;
console.log(response._data)
if (response._data.statusCode == 500) {
const router = useRouter();
router.push('/login'); // 跳转到登录页面
showFailToast('连接失败,请联系在线客服')
}
// 检查状态码并处理跳转
if (Array.isArray(message)) {
message.forEach((item) => {
requestStatusErrorHandler?.(item, response.status);
......
......@@ -3,6 +3,23 @@ import { appDescription } from "./app/constants/index";
import preload from './app/utils/preload'
import obfuscatorPlugin from "vite-plugin-javascript-obfuscator";
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: [
"@unocss/nuxt",
"@nuxtjs/color-mode",
......@@ -87,21 +104,35 @@ export default defineNuxtConfig({
{ innerHTML: preload(), type: 'text/javascript', tagPosition: 'head' },
],
},
// buildAssetsDir: '/_nuxt/',
// ssr: true,
},
vite: {
plugins: [
obfuscatorPlugin({
include: ["src/path/to/file.js", "path/anyjs/**/*.js", /foo.js$/],
exclude: [/node_modules/],
apply: "build",
debugger: true,
options: {
debugProtection: true,
},
}),
// obfuscatorPlugin({
// include: ["src/path/to/file.js", "path/anyjs/**/*.js", /foo.js$/],
// exclude: [/node_modules/],
// apply: "build",
// debugger: true,
// options: {
// debugProtection: true,
// },
// }),
],
build: {
target: "esnext",
target: "es2015", // 已经正确设置为 es2015
minify: 'terser',
terserOptions: {
compress: {
drop_console: true,
},
format: {
// 添加以下配置以确保生成更兼容的代码
comments: false,
safari10: true,
},
safari10: true,
},
},
optimizeDeps: {
include: ["@intlify/core-base", "@intlify/shared", "is-https"],
......@@ -111,30 +142,30 @@ export default defineNuxtConfig({
experimental: {
typedPages: true,
},
generate: {
// 在生成的文件名中包含哈希值
subFolders: false,
dir: 'dist',
routes: ['/'],
fallback: true,
interval: 0,
concurrency: 500,
devtools: false,
quiet: false,
analyze: false,
watch: false,
cache: {
maxAge: 1000 * 60 * 60 * 24 * 30 // 30 days
},
http2: {
push: true,
cache: {
maxAge: 1000 * 60 * 60 * 24 * 30 // 30 days
}
},
// 添加版本号或哈希值到文件名
filenameHashing: true
},
// generate: {
// // 在生成的文件名中包含哈希值
// subFolders: false,
// dir: 'dist',
// routes: ['/'],
// fallback: true,
// interval: 0,
// concurrency: 500,
// devtools: false,
// quiet: false,
// analyze: false,
// watch: false,
// cache: {
// maxAge: 1000 * 60 * 60 * 24 * 30 // 30 days
// },
// http2: {
// push: true,
// cache: {
// maxAge: 1000 * 60 * 60 * 24 * 30 // 30 days
// }
// },
// // 添加版本号或哈希值到文件名
// filenameHashing: true
// },
devtools: {
enabled: true,
},
......
......@@ -5,7 +5,7 @@
"packageManager": "pnpm@9.15.1",
"scripts": {
"build": "nuxt build",
"dev": "nuxt dev",
"dev": "nuxt dev --port 8090 --host 0.0.0.0",
"generate": "nuxt generate",
"preview": "nuxt preview",
"postinstall": "nuxt prepare",
......@@ -36,6 +36,7 @@
"@iconify-json/carbon": "^1.2.5",
"@nuxt/eslint": "^0.7.4",
"@pinia/nuxt": "^0.9.0",
"@types/qrcode": "^1.5.5",
"@unocss/eslint-plugin": "0.65.2",
"@unocss/nuxt": "0.65.2",
"@unocss/preset-rem-to-px": "0.65.2",
......@@ -81,6 +82,11 @@
"*": "eslint --fix"
},
"browserslist": [
"defaults"
"Android >= 4.4",
"iOS >= 9",
"Chrome >= 49",
"> 1%",
"not dead",
"not op_mini all"
]
}
......@@ -66,6 +66,9 @@ importers:
'@pinia/nuxt':
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)
'@types/qrcode':
specifier: ^1.5.5
version: 1.5.5
'@unocss/eslint-plugin':
specifier: 0.65.2
version: 0.65.2(eslint@9.17.0(jiti@2.4.2))(typescript@5.7.2)
......@@ -1440,6 +1443,9 @@ packages:
'@types/parse-path@7.0.3':
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':
resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==}
......@@ -7207,6 +7213,10 @@ snapshots:
'@types/parse-path@7.0.3': {}
'@types/qrcode@1.5.5':
dependencies:
'@types/node': 22.10.2
'@types/resolve@1.20.2': {}
'@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