Refactor API requests and update component imports

This commit is contained in:
wangqiao
2025-08-18 14:28:10 +08:00
parent 07b4d3de99
commit 9ae3abeded
91 changed files with 669 additions and 884 deletions

View File

@ -34,8 +34,8 @@
<script setup lang="ts">
import { ref, watch } from 'vue'
import dayjs from 'dayjs'
import { getCommentList, createComment } from '@/api/drawe-detail'
import type { PageResultProjectCommentResVO } from '@/api/drawe-detail/types'
import { getCommentList, createComment } from '~/api/drawe-detail'
import type { PageResultProjectCommentResVO } from '~/api/drawe-detail/types'
const props = defineProps({
relationId: {

View File

@ -16,7 +16,7 @@
<script lang="ts" setup>
import type { PropType } from 'vue'
import type { ProjectDrawPageRespVO } from '@/api/home/type'
import type { ProjectDrawPageRespVO } from '~/api/home/type'
const props = defineProps({
cardItemInfo: {

View File

@ -14,15 +14,15 @@
<div class="mt-24px flex items-center justify-between">
<div class="flex items-center justify-between text-14px text-[#666666] font-normal">
<div class="mr-9px flex items-center">
<img src="@/assets/images/look.png" alt="" srcset="" class="mr-2px h-17px" />
<img src="~/assets/images/look.png" alt="" srcset="" class="mr-2px h-17px" />
<span class="color-#666">{{ props.itemInfo.previewPoint }}</span>
</div>
<div class="mr-9px flex items-center">
<img src="@/assets/images/add.png" alt="" srcset="" class="mr-2px h-22px" />
<img src="~/assets/images/add.png" alt="" srcset="" class="mr-2px h-22px" />
<span class="color-#666">{{ props.itemInfo.hotPoint }}</span>
</div>
<div class="flex items-center">
<img src="@/assets/images/chat.png" alt="" srcset="" class="mr-4px h-17px" />
<img src="~/assets/images/chat.png" alt="" srcset="" class="mr-4px h-17px" />
<span class="color-#666">{{ props.itemInfo.commentsPoint }}</span>
</div>
</div>
@ -36,7 +36,7 @@
<script lang="ts" setup>
import type { PropType } from 'vue'
import type { pageRes } from '@/api/upnew/types'
import type { pageRes } from '~/api/upnew/types'
const props = defineProps({
itemInfo: {
type: Object as PropType<pageRes['list'][0]>,

View File

@ -6,7 +6,7 @@
<el-icon class="absolute right-0 top-0 cursor-pointer" @click="onClose()"><Close /></el-icon>
<!-- 左侧插图 -->
<div class="login-left">
<img src="@/assets/images/login-illustration.png" alt="login" class="login-img" />
<img src="~/assets/images/login-illustration.png" alt="login" class="login-img" />
</div>
<!-- 右侧登录表单 -->
@ -56,15 +56,15 @@
<!-- 第三方登录 -->
<div class="third-party-login">
<div class="login-icons" @click="handleLoginQQ">
<img src="@/assets/images/qq-v2.png" alt="QQ登录" class="login-icon" />
<img src="~/assets/images/qq-v2.png" alt="QQ登录" class="login-icon" />
<div class="icon-text">QQ登录</div>
</div>
<div class="login-icons" @click="handleLoginWechat">
<img src="@/assets/images/weixin-v2.png" alt="微信登录" class="login-icon" />
<img src="~/assets/images/weixin-v2.png" alt="微信登录" class="login-icon" />
<div class="icon-text">微信登录</div>
</div>
<div class="login-icons" @click="goToLogin">
<img src="@/assets/images/email-v2.png" alt="邮箱登录" class="login-icon" />
<img src="~/assets/images/email-v2.png" alt="邮箱登录" class="login-icon" />
<div class="icon-text">账号登录</div>
</div>
</div>
@ -84,10 +84,10 @@
import { User, Lock, Close } from '@element-plus/icons-vue'
import type { FormInstance } from 'element-plus'
import { ElMessage } from 'element-plus'
import { login, sendEmailCode, loginByEmail } from '@/api/login/index'
import refreshToken from '@/utils/RefreshToken'
import { handleLoginQQ, handleLoginWechat, generateRandomString } from '@/utils/login'
import useUserStore from '@/store/user'
import { login, sendEmailCode, loginByEmail } from '~/api/login/index'
import refreshToken from '~/utils/RefreshToken'
import { handleLoginQQ, handleLoginWechat, generateRandomString } from '~/utils/login'
import useUserStore from '~/store/user'
const userStore = useUserStore()
const { $openRegister, $openLogin } = useNuxtApp()

View File

@ -6,7 +6,7 @@
<el-icon class="absolute right-0 top-0 cursor-pointer" @click="onClose()"><Close /></el-icon>
<!-- 左侧插图 -->
<div class="login-left">
<img src="@/assets/images/login-illustration.png" alt="login" class="login-img" />
<img src="~/assets/images/login-illustration.png" alt="login" class="login-img" />
</div>
<!-- 右侧登录表单 -->
@ -56,15 +56,15 @@
<!-- 第三方登录 -->
<div class="third-party-login">
<div class="login-icons" @click="handleLoginQQ">
<img src="@/assets/images/qq-v2.png" alt="QQ登录" class="login-icon" />
<img src="~/assets/images/qq-v2.png" alt="QQ登录" class="login-icon" />
<div class="icon-text">QQ登录</div>
</div>
<div class="login-icons" @click="handleLoginWechat">
<img src="@/assets/images/weixin-v2.png" alt="微信登录" class="login-icon" />
<img src="~/assets/images/weixin-v2.png" alt="微信登录" class="login-icon" />
<div class="icon-text">微信登录</div>
</div>
<div class="login-icons" @click="handleLoginEmail">
<img src="@/assets/images/email-v2.png" alt="邮箱登录" class="login-icon" />
<img src="~/assets/images/email-v2.png" alt="邮箱登录" class="login-icon" />
<div class="icon-text">邮箱登录</div>
</div>
</div>
@ -84,11 +84,11 @@
import { User, Lock, Close } from '@element-plus/icons-vue'
import type { FormInstance } from 'element-plus'
import { ElMessage } from 'element-plus'
import { login, loginByMobile } from '@/api/login/index'
import { sendSms } from '@/api/common/index'
import { refreshToken as REFRESHTOKEN } from '@/utils/axios'
import { handleLoginQQ, handleLoginWechat } from '@/utils/login'
import useUserStore from '@/store/user'
import { login, loginByMobile } from '~/api/login/index'
import { sendSms } from '~/api/common/index'
import REFRESHTOKEN from '~/utils/RefreshToken'
import { handleLoginQQ, handleLoginWechat } from '~/utils/login'
import useUserStore from '~/store/user'
const { $openRegister, $openLogin, $openLoginEmail } = useNuxtApp()
const userStore = useUserStore()
@ -157,7 +157,7 @@
const handleRegister = () => {
props.onClose()
nextTick(() => {
$openRegister()
// $openRegister()
})
}
// 发送验证码
@ -262,7 +262,7 @@
const handleLoginEmail = () => {
props.onClose()
nextTick(() => {
$openLoginEmail()
// $openLoginEmail()
})
}
</script>

View File

@ -1,7 +1,7 @@
<template>
<div class="w-100% border-b-1px border-b-[#eee] border-b-solid">
<div class="relative ma-auto flex items-center py-20px w-1500px!">
<img src="@/assets/images/logo5.png" alt="图夕夕" srcset="" class="h-51px w-182px cursor-pointer" @click="router.push('/index')" />
<img src="~/assets/images/logo5.png" alt="图夕夕" srcset="" class="h-51px w-182px cursor-pointer" @click="router.push('/index')" />
<div class="ml-60px flex items-center">
<span v-for="item in navList" :key="item" class="nav" :class="props.active === item ? 'active' : ''" @click="handleClick(item)">{{ item }}</span>
</div>
@ -37,7 +37,7 @@
</div>
<div class="absolute right-10px flex items-center">
<div class="h-36px w-36px border-rd-[50%] bg-[#F5F5F5] text-center line-height-44px">
<img v-if="!isLogin" src="@/assets/images/user.png" alt="" srcset="" class="h-19px w-17px" />
<img v-if="!isLogin" src="~/assets/images/user.png" alt="" srcset="" class="h-19px w-17px" />
<img v-else :src="userStore.userInfoRes.avatar" alt="" srcset="" class="h-19px w-17px rd-50%" />
</div>
<span v-if="!isLogin" class="ml-14px cursor-pointer text-14px text-[#1A65FF] font-normal" @click="handleLogin">立即登录</span>
@ -63,11 +63,11 @@
<script setup lang="ts">
import { ref, getCurrentInstance, computed, onMounted } from 'vue'
import { Setting, SwitchButton } from '@element-plus/icons-vue'
import { page } from '@/api/upnew/index'
import { top } from '@/api/home/index'
import type { ProjectDrawStatisticAppRespVO } from '@/api/home/type'
import { page } from '~/api/upnew/index'
import { top } from '~/api/home/index'
import type { ProjectDrawStatisticAppRespVO } from '~/api/home/type'
import { Search } from '@element-plus/icons-vue'
import useUserStore from '@/store/user'
import useUserStore from '~/store/user'
const userStore = useUserStore()
const { $openLogin } = useNuxtApp()

View File

@ -88,10 +88,10 @@
import { throttle } from 'lodash'
import { ref, onMounted, nextTick } from 'vue'
import { Picture, Position, Sunrise, Loading } from '@element-plus/icons-vue'
import { upload } from '@/api/common'
import { sendKefuMessage, getMessagePage } from '@/api/channel/index'
import type { msgType, PageResultMessageRespVO } from '@/api/channel/types'
import useUserStore from '@/store/user'
import { upload } from '~/api/common'
import { sendKefuMessage, getMessagePage } from '~/api/channel/index'
import type { msgType, PageResultMessageRespVO } from '~/api/channel/types'
import useUserStore from '~/store/user'
const userStore = useUserStore()
import dayjs from 'dayjs'

View File

@ -35,13 +35,13 @@
<script setup lang="ts">
import { ref, watch, onMounted } from 'vue'
import { listVip, submitPayOrder, getPayStatus } from '@/api/pay/index'
import { accDiv } from '@/utils/utils'
import { listVip, submitPayOrder, getPayStatus } from '~/api/pay/index'
import { accDiv } from '~/utils/utils'
import { Close } from '@element-plus/icons-vue'
import type { AppPayWalletPackageRespVO } from '@/api/pay/types'
import type { AppPayWalletPackageRespVO } from '~/api/pay/types'
// @ts-ignore
import QrcodeVue from 'qrcode.vue'
import useUserStore from '@/store/user'
import useUserStore from '~/store/user'
const userStore = useUserStore()
const props = defineProps({
modelValue: {

View File

@ -33,7 +33,7 @@
<script setup lang="ts">
import { ref, onMounted } from 'vue'
import useUserStore from '@/store/user'
import useUserStore from '~/store/user'
import { Service, Top, Promotion, Checked, Trophy } from '@element-plus/icons-vue'
import KlService from './components/kl-service.vue'

View File

@ -5,7 +5,7 @@
<el-icon class="absolute right-0 top-0 cursor-pointer" @click="onClose()"><Close /></el-icon>
<!-- 左侧插图 -->
<div class="register-left">
<img src="@/assets/images/login-illustration.png" alt="register" class="register-img" />
<img src="~/assets/images/login-illustration.png" alt="register" class="register-img" />
</div>
<!-- 右侧注册表单 -->
@ -53,12 +53,12 @@
import { ref, reactive } from 'vue'
import type { FormInstance } from 'element-plus'
import { Close } from '@element-plus/icons-vue'
import { sendSms } from '@/api/common/index'
import { loginByMobile } from '@/api/login/index'
import { sendSms } from '~/api/common/index'
import { loginByMobile } from '~/api/login/index'
const { $openLogin } = useNuxtApp()
import { refreshToken as REFRESHTOKEN } from '@/utils/axios'
import useUserStore from '@/store/user'
import { refreshToken as REFRESHTOKEN } from '~/utils/axios'
import useUserStore from '~/store/user'
const userStore = useUserStore()
const props = defineProps({

View File

@ -7,7 +7,7 @@
>
<el-tab-pane v-for="(item, index) in data" :key="index" :label="item.label" :name="item.value">
<template v-if="showNum" #label>
<img v-if="item.value === tabActive && showIcon" src="@/assets/images/2.png" alt="" srcset="" class="mr-7px" />
<img v-if="item.value === tabActive && showIcon" src="~/assets/images/2.png" alt="" srcset="" class="mr-7px" />
<span>{{ item.label }}</span>
<el-badge :value="item.num" class="item" :max="9999999999999" :hidden="!item.num" />
</template>

View File

@ -68,10 +68,10 @@
<script lang="ts" setup>
import type { PropType } from 'vue'
import { ref } from 'vue'
import { uploadV2, creatFile } from '@/api/common/index'
import { uploadV2, creatFile } from '~/api/common/index'
import { Document } from '@element-plus/icons-vue'
import type { UploadUserFile, UploadInstance } from 'element-plus'
import { accDiv } from '@/utils/utils'
import { accDiv } from '~/utils/utils'
// import CryptoJS from 'crypto-js' // 引入 crypto-js
import dayjs from 'dayjs'

View File

@ -51,8 +51,8 @@
</template>
<script setup lang="ts">
import { computed, ref } from 'vue'
import { parent } from '@/api/upnew/index'
import type { pageReq } from '@/api/upnew/types'
import { parent } from '~/api/upnew/index'
import type { pageReq } from '~/api/upnew/types'
import { ArrowRight } from '@element-plus/icons-vue'
const props = defineProps({