Merge branch 'xingyy' into dev
This commit is contained in:
commit
30a46e6817
@ -37,3 +37,10 @@ export async function userCaptchaValidate(data) {
|
|||||||
data
|
data
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
export async function contractUserinfo(data) {
|
||||||
|
return await request( {
|
||||||
|
url:'/api/v1/contract/userinfo',
|
||||||
|
method: 'POST',
|
||||||
|
data
|
||||||
|
})
|
||||||
|
}
|
@ -1,7 +1,7 @@
|
|||||||
|
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import { ref, reactive, onMounted, onBeforeUnmount } from 'vue'
|
import { ref, reactive, onMounted, onBeforeUnmount, watch } from 'vue'
|
||||||
//i18n
|
//i18n
|
||||||
import { useI18n } from 'vue-i18n'
|
import { useI18n } from 'vue-i18n'
|
||||||
const {t} =useI18n()
|
const {t} =useI18n()
|
||||||
@ -40,7 +40,15 @@
|
|||||||
maxMoveX.value = img.width - blockSize
|
maxMoveX.value = img.width - blockSize
|
||||||
loaded.value = true
|
loaded.value = true
|
||||||
}
|
}
|
||||||
|
watch(()=>{
|
||||||
|
return props.loading
|
||||||
|
},(newVal)=>{
|
||||||
|
if(!newVal){
|
||||||
|
verifyStatus.show = false
|
||||||
|
verifyStatus.message = ''
|
||||||
|
moveX.value = 0
|
||||||
|
}
|
||||||
|
})
|
||||||
const onImageError = () => {
|
const onImageError = () => {
|
||||||
console.error('Image failed to load')
|
console.error('Image failed to load')
|
||||||
maxMoveX.value = 270
|
maxMoveX.value = 270
|
||||||
@ -84,11 +92,7 @@
|
|||||||
verifyStatus.type = success ? 'success' : 'error'
|
verifyStatus.type = success ? 'success' : 'error'
|
||||||
verifyStatus.message = success ? t('components.form.verifySuccess') : t('components.form.verifyFailed')
|
verifyStatus.message = success ? t('components.form.verifySuccess') : t('components.form.verifyFailed')
|
||||||
isVerifying.value = false
|
isVerifying.value = false
|
||||||
setTimeout(() => {
|
|
||||||
verifyStatus.show = false
|
|
||||||
verifyStatus.message = ''
|
|
||||||
moveX.value = 0
|
|
||||||
}, 1500)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// 事件监听
|
// 事件监听
|
||||||
@ -144,11 +148,13 @@
|
|||||||
>
|
>
|
||||||
<transition name="fade-slide">
|
<transition name="fade-slide">
|
||||||
<div
|
<div
|
||||||
v-if="verifyStatus.show"
|
v-if="verifyStatus.show || isVerifying"
|
||||||
class="absolute left-0 bottom-0 w-full h-25px leading-25px text-center text-14px text-white"
|
:class="`absolute left-0 bottom-0 w-full h-25px leading-25px text-center text-14px text-white ${
|
||||||
:class="verifyStatus.type === 'success' ? 'bg-#52c41a' : 'bg-#ff4d4f'"
|
isVerifying ? 'bg-#3B91FF' :
|
||||||
|
verifyStatus.type === 'success' ? 'bg-#52c41a' : 'bg-#ff4d4f'
|
||||||
|
}`"
|
||||||
>
|
>
|
||||||
{{ verifyStatus.message }}
|
{{ isVerifying ? '验证中...' : verifyStatus.message }}
|
||||||
</div>
|
</div>
|
||||||
</transition>
|
</transition>
|
||||||
</div>
|
</div>
|
||||||
|
@ -114,7 +114,7 @@ const initData = async () => {
|
|||||||
if (number.value==2){
|
if (number.value==2){
|
||||||
await getData()
|
await getData()
|
||||||
if (qrData.value.payStatus===4){
|
if (qrData.value.payStatus===4){
|
||||||
router.replace('/collectCode/payment')
|
router.push('/collectCode/payment')
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(!formData.value.countryCode){
|
if(!formData.value.countryCode){
|
||||||
|
@ -4,14 +4,22 @@ import { contractView, signOffline } from "~/api/goods/index.js"
|
|||||||
import { codeAuthStore } from "~/stores-collect-code/auth/index.js"
|
import { codeAuthStore } from "~/stores-collect-code/auth/index.js"
|
||||||
import { useI18n } from "vue-i18n"
|
import { useI18n } from "vue-i18n"
|
||||||
import { fddInfo } from "@/api-collect-code/goods/index.js"
|
import { fddInfo } from "@/api-collect-code/goods/index.js"
|
||||||
|
<<<<<<< HEAD
|
||||||
|
|
||||||
|
=======
|
||||||
|
import { showLoadingToast } from 'vant';
|
||||||
|
>>>>>>> xingyy
|
||||||
definePageMeta({
|
definePageMeta({
|
||||||
i18n: 'signature.protocol.title'
|
i18n: 'signature.protocol.title'
|
||||||
})
|
})
|
||||||
|
|
||||||
const { t } = useI18n()
|
const { t } = useI18n()
|
||||||
const { formData, number, qrData } = codeAuthStore()
|
const { formData, number, qrData } = codeAuthStore()
|
||||||
|
<<<<<<< HEAD
|
||||||
const activeNames = ref([])
|
const activeNames = ref([])
|
||||||
|
=======
|
||||||
|
const activeNames = ref('')
|
||||||
|
>>>>>>> xingyy
|
||||||
const router = useRouter()
|
const router = useRouter()
|
||||||
const pmblUrl = ref('')
|
const pmblUrl = ref('')
|
||||||
|
|
||||||
@ -74,6 +82,14 @@ const handleCollapseChange = (name) => {
|
|||||||
* - 其他用户: 走非大陆签署流程
|
* - 其他用户: 走非大陆签署流程
|
||||||
*/
|
*/
|
||||||
const confirm = async () => {
|
const confirm = async () => {
|
||||||
|
<<<<<<< HEAD
|
||||||
|
=======
|
||||||
|
const toast= showLoadingToast({
|
||||||
|
message: '加载中...',
|
||||||
|
forbidClick: true,
|
||||||
|
});
|
||||||
|
|
||||||
|
>>>>>>> xingyy
|
||||||
try {
|
try {
|
||||||
const fddResponse = await fddInfo({ phone: formData.value.phone })
|
const fddResponse = await fddInfo({ phone: formData.value.phone })
|
||||||
|
|
||||||
@ -100,6 +116,11 @@ const confirm = async () => {
|
|||||||
}
|
}
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error('签署确认失败:', error)
|
console.error('签署确认失败:', error)
|
||||||
|
<<<<<<< HEAD
|
||||||
|
=======
|
||||||
|
}finally{
|
||||||
|
toast.close();
|
||||||
|
>>>>>>> xingyy
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -21,7 +21,7 @@ await getAuctionDetail()
|
|||||||
<template>
|
<template>
|
||||||
<div class="grow-1 flex flex-col">
|
<div class="grow-1 flex flex-col">
|
||||||
<client-only>
|
<client-only>
|
||||||
<div class="relative" @click="changeLive">
|
<div class="relative bg-#000" @click="changeLive">
|
||||||
<liveRoom :class="['changeLive', fullLive ? 'expanded' : 'collapsed']"/>
|
<liveRoom :class="['changeLive', fullLive ? 'expanded' : 'collapsed']"/>
|
||||||
<div v-if="auctionDetail.isLiving===1" class="absolute h-188px w-screen pt-36px flex flex-col text-#fff top-0 left-0 items-center">
|
<div v-if="auctionDetail.isLiving===1" class="absolute h-188px w-screen pt-36px flex flex-col text-#fff top-0 left-0 items-center">
|
||||||
<div class="text-18px mb-5px">{{ auctionDetail.title }}</div>
|
<div class="text-18px mb-5px">{{ auctionDetail.title }}</div>
|
||||||
|
@ -42,7 +42,7 @@ onMounted(async()=>{
|
|||||||
await fetchBuyList()
|
await fetchBuyList()
|
||||||
timer.value = setInterval(async () => {
|
timer.value = setInterval(async () => {
|
||||||
await fetchBuyList()
|
await fetchBuyList()
|
||||||
}, 10000)
|
}, 5000)
|
||||||
})
|
})
|
||||||
|
|
||||||
onUnmounted(() => {
|
onUnmounted(() => {
|
||||||
|
@ -5,6 +5,7 @@ import { signOnline } from "~/api/goods/index.js"
|
|||||||
import { authStore } from "~/stores/auth/index.js"
|
import { authStore } from "~/stores/auth/index.js"
|
||||||
import {useI18n} from "vue-i18n";
|
import {useI18n} from "vue-i18n";
|
||||||
import { useThrottleFn } from '@vueuse/core'
|
import { useThrottleFn } from '@vueuse/core'
|
||||||
|
import { contractUserinfo } from "@/api/auth/index.js"
|
||||||
definePageMeta({
|
definePageMeta({
|
||||||
layout: 'default',
|
layout: 'default',
|
||||||
i18n: 'signature.protocol.title'
|
i18n: 'signature.protocol.title'
|
||||||
@ -47,6 +48,16 @@ const handleCollapseChange = (name) => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const goSignature =useThrottleFn(async () => {
|
const goSignature =useThrottleFn(async () => {
|
||||||
|
//先走特殊验证接口
|
||||||
|
const res1 = await contractUserinfo({phone:userInfo.value.telNum})
|
||||||
|
if(res1.status===0){
|
||||||
|
//特殊验证通过
|
||||||
|
if(res1.data.specialType===1){
|
||||||
|
router.push({
|
||||||
|
path: '/signature/panel'
|
||||||
|
})
|
||||||
|
}else if(res1.data.specialType===0){
|
||||||
|
//特殊验证不通过
|
||||||
if(userInfo.value.userExtend.isMainland===1){
|
if(userInfo.value.userExtend.isMainland===1){
|
||||||
const res = await signOnline({
|
const res = await signOnline({
|
||||||
auctionArtworkUuid:payment.value.auctionArtworkUuid
|
auctionArtworkUuid:payment.value.auctionArtworkUuid
|
||||||
@ -66,6 +77,10 @@ const goSignature =useThrottleFn(async () => {
|
|||||||
path: '/signature/panel'
|
path: '/signature/panel'
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
},2000)
|
},2000)
|
||||||
</script>
|
</script>
|
||||||
|
@ -27,6 +27,7 @@ export const goodStore = createGlobalState(() => {
|
|||||||
|
|
||||||
// 获取拍卖详情
|
// 获取拍卖详情
|
||||||
const getAuctionDetail = async () => {
|
const getAuctionDetail = async () => {
|
||||||
|
|
||||||
try {
|
try {
|
||||||
loading.value = true
|
loading.value = true
|
||||||
const res = await defaultDetail({})
|
const res = await defaultDetail({})
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
import dotenv from 'dotenv'
|
import dotenv from 'dotenv'
|
||||||
import process from 'node:process'
|
import process from 'node:process'
|
||||||
|
import imagemin from 'vite-plugin-imagemin'
|
||||||
import { currentLocales } from './i18n/i18n'
|
import { currentLocales } from './i18n/i18n'
|
||||||
import fs from 'fs'
|
import fs from 'fs'
|
||||||
import path from 'path'
|
import path from 'path'
|
||||||
@ -29,13 +30,8 @@ export default defineNuxtConfig({
|
|||||||
modules: [
|
modules: [
|
||||||
'@vant/nuxt',
|
'@vant/nuxt',
|
||||||
'@unocss/nuxt',
|
'@unocss/nuxt',
|
||||||
'@nuxtjs/i18n',
|
'@nuxtjs/i18n'
|
||||||
],
|
],
|
||||||
image: {
|
|
||||||
provider: 'ipx',
|
|
||||||
format: ['webp'],
|
|
||||||
quality: 80,
|
|
||||||
},
|
|
||||||
runtimeConfig: {
|
runtimeConfig: {
|
||||||
// 私有配置,只有在服务端可用
|
// 私有配置,只有在服务端可用
|
||||||
apiSecret: process.env.NUXT_API_SECRET,
|
apiSecret: process.env.NUXT_API_SECRET,
|
||||||
@ -115,6 +111,13 @@ export default defineNuxtConfig({
|
|||||||
vite: {
|
vite: {
|
||||||
build: {
|
build: {
|
||||||
target: 'esnext',
|
target: 'esnext',
|
||||||
|
minify: 'terser',
|
||||||
|
terserOptions: {
|
||||||
|
compress: {
|
||||||
|
drop_console: true, // 移除 console
|
||||||
|
drop_debugger: true, // 移除 debugger
|
||||||
|
}
|
||||||
|
}
|
||||||
},
|
},
|
||||||
optimizeDeps: {
|
optimizeDeps: {
|
||||||
include: [
|
include: [
|
||||||
@ -123,6 +126,35 @@ export default defineNuxtConfig({
|
|||||||
'is-https',
|
'is-https',
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
|
plugins: [
|
||||||
|
imagemin({
|
||||||
|
gifsicle: {
|
||||||
|
optimizationLevel: 7,
|
||||||
|
interlaced: false
|
||||||
|
},
|
||||||
|
optipng: {
|
||||||
|
optimizationLevel: 7
|
||||||
|
},
|
||||||
|
mozjpeg: {
|
||||||
|
quality: 70
|
||||||
|
},
|
||||||
|
pngquant: {
|
||||||
|
quality: [0.8, 0.9],
|
||||||
|
speed: 4
|
||||||
|
},
|
||||||
|
svgo: {
|
||||||
|
plugins: [
|
||||||
|
{
|
||||||
|
name: 'removeViewBox'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'removeEmptyAttrs',
|
||||||
|
active: false
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
})
|
||||||
|
]
|
||||||
},
|
},
|
||||||
|
|
||||||
experimental: {
|
experimental: {
|
||||||
|
@ -53,7 +53,8 @@
|
|||||||
"sass-loader": "^16.0.4",
|
"sass-loader": "^16.0.4",
|
||||||
"sharp": "^0.33.5",
|
"sharp": "^0.33.5",
|
||||||
"typescript": "~5.7.2",
|
"typescript": "~5.7.2",
|
||||||
"vant": "^4.9.15"
|
"vant": "^4.9.15",
|
||||||
|
"vite-plugin-imagemin": "^0.6.1"
|
||||||
},
|
},
|
||||||
"pnpm": {
|
"pnpm": {
|
||||||
"peerDependencyRules": {
|
"peerDependencyRules": {
|
||||||
|
2161
pnpm-lock.yaml
2161
pnpm-lock.yaml
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user