diff --git a/app/assets/img/activityIcon.png b/app/assets/img/activityIcon.png
new file mode 100644
index 0000000..f4d0c10
Binary files /dev/null and b/app/assets/img/activityIcon.png differ
diff --git a/app/assets/img/gzhqr.png b/app/assets/img/gzhqr.png
new file mode 100644
index 0000000..89960d3
Binary files /dev/null and b/app/assets/img/gzhqr.png differ
diff --git a/app/assets/img/wallet.png b/app/assets/img/wallet.png
new file mode 100644
index 0000000..ee6a0f6
Binary files /dev/null and b/app/assets/img/wallet.png differ
diff --git a/app/components.d.ts b/app/components.d.ts
index d200d25..6b6e898 100644
--- a/app/components.d.ts
+++ b/app/components.d.ts
@@ -24,7 +24,7 @@ declare module 'vue' {
NInfiniteScroll: typeof import('naive-ui')['NInfiniteScroll']
NInput: typeof import('naive-ui')['NInput']
NInputGroup: typeof import('naive-ui')['NInputGroup']
- NMessageProvider: typeof import('naive-ui')['NMessageProvider']
+ NInputNumber: typeof import('naive-ui')['NInputNumber']
NModal: typeof import('naive-ui')['NModal']
NPopconfirm: typeof import('naive-ui')['NPopconfirm']
NQrCode: typeof import('naive-ui')['NQrCode']
@@ -32,6 +32,7 @@ declare module 'vue' {
NRadioGroup: typeof import('naive-ui')['NRadioGroup']
NSelect: typeof import('naive-ui')['NSelect']
NSpace: typeof import('naive-ui')['NSpace']
+ NSpin: typeof import('naive-ui')['NSpin']
NTabPane: typeof import('naive-ui')['NTabPane']
NTabs: typeof import('naive-ui')['NTabs']
NTooltip: typeof import('naive-ui')['NTooltip']
diff --git a/app/components/EditUserInfo.vue b/app/components/EditUserInfo.vue
index b4a91d0..bc43d02 100644
--- a/app/components/EditUserInfo.vue
+++ b/app/components/EditUserInfo.vue
@@ -17,7 +17,7 @@ const ruleForm = ref({})
const rules = ref({
nickName: [
{ required: true, message: '请输入用户名', trigger: 'blur' },
- { min: 2, max: 10, message: '长度在 2 到 10 个字符', trigger: 'blur' },
+ { min: 2, max: 15, message: '长度在 2 到 15 个字符', trigger: 'blur' },
],
})
// 文件输入引用
@@ -79,7 +79,8 @@ watch(
ruleForm.value.avatar = newUserInfo.avatar
ruleForm.value.brief = newUserInfo.brief
ruleForm.value.userId = newUserInfo.userId
- // ruleForm.value.invitationName = newUserInfo.invitationName
+ ruleForm.value.invitationName = newUserInfo.invitationName
+ ruleForm.value.invitationCode = newUserInfo.invitationCode
}
},
{ immediate: true, deep: true }, // 立即执行一次,初始化 ruleForm
@@ -128,13 +129,14 @@ onMounted(() => {
-
- 已经填写: {{ userInfo.invitationName }} 的邀请码
+
+
+ 已经填写: {{ userStore.userInfo.invitationName }} 的邀请码
-
+
diff --git a/app/components/GoldPayment.vue b/app/components/GoldPayment.vue
new file mode 100644
index 0000000..424f3a6
--- /dev/null
+++ b/app/components/GoldPayment.vue
@@ -0,0 +1,239 @@
+
+
+
+
+
+
+
+
+
![]()
+
+
+
+ {{ userInfo.nickName }}
+
+
+ {{ props.isMember.result === '1' ? `会员到期时间: ${props.isMember.endDate}` : '您还不是魔创未来的会员' }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 确定
+
+
+
+
+ 1000个算力约可生图1000张,或训练5次。按照生图默认参数、或训练基础参数预估(即训练图片张数20张*单张训练次数15*训练轮数10)。
+ 您充值的算力永久有效
+ 算力充值不退不换
+
+
+
+
+
+
+ 支付
+
+
+ ¥
+ {{ paymentParams.amount }}
+
+
+
+
+

请扫码完成支付
+
+
+
+ 开通即代表同意
+
+
+ 《魔创未来会员协议》
+
+
+
+
+
+
+
+
+
diff --git a/app/components/Header.vue b/app/components/Header.vue
index 25e4d2d..754fb4e 100644
--- a/app/components/Header.vue
+++ b/app/components/Header.vue
@@ -190,11 +190,11 @@ onMounted(() => {});
-
-
+ /> -->
diff --git a/app/components/IntPayment.vue b/app/components/IntPayment.vue
index 5cbf060..bee0293 100644
--- a/app/components/IntPayment.vue
+++ b/app/components/IntPayment.vue
@@ -1,6 +1,7 @@
@@ -161,14 +166,18 @@ onBeforeUnmount(() => {
>
-
![]()
+
{{ userInfo.nickName }}
- {{ props.isMember.result === '1' ? `会员到期时间: ${props.isMember.endDate}` : '您还不是魔创未来的会员' }}
+ {{
+ props.isMember.result === "1"
+ ? `会员到期时间: ${props.isMember.endDate}`
+ : "您还不是魔创未来的会员"
+ }}
@@ -180,12 +189,14 @@ onBeforeUnmount(() => {
@@ -197,7 +208,9 @@ onBeforeUnmount(() => {
¥
{{ item.unitPrice }}
- {{ item.originalPrice }}
+ {{
+ item.originalPrice
+ }}
{{ item.subscriptionPeriod }}
@@ -205,57 +218,36 @@ onBeforeUnmount(() => {
-
-
- 基础版VIP
-
-
- 每月15000点算力
-
-
- 20G存储空间
-
-
- 每月800次生图
-
-
- 2个生图任务并行
-
-
- --
-
+
+
基础版VIP
+
每月15000点算力
+
20G存储空间
+
每月800次生图
+
2个生图任务并行
+
--
-
-
- 专业版
-
-
- 每月35000点算力
-
-
- 50G存储空间
-
-
- 每月5000次生图
-
-
- 3个生图任务并行
-
-
- 可训练XL模型
-
+
+
专业版
+
每月35000点算力
+
50G存储空间
+
每月5000次生图
+
3个生图任务并行
+
可训练XL模型
@@ -263,16 +255,18 @@ onBeforeUnmount(() => {
-
-
-
- 支付
-
+
支付
¥
{{ paymentParams.amount }}
@@ -282,15 +276,11 @@ onBeforeUnmount(() => {
-->
-

请扫码完成支付
+

请扫码完成支付
-
- 开通即代表同意
-
-
- 《魔创未来会员协议》
-
+ 开通即代表同意
+ 《魔创未来会员协议》
diff --git a/app/components/PersonalCenterCard.vue b/app/components/PersonalCenterCard.vue
index 629e0c9..a6a8f7a 100644
--- a/app/components/PersonalCenterCard.vue
+++ b/app/components/PersonalCenterCard.vue
@@ -8,6 +8,7 @@ Play
import { NConfigProvider, NMessageProvider } from "naive-ui";
import { nextTick, ref } from 'vue';
import { useRouter } from 'vue-router';
+const message = useMessage()
const props = defineProps({
item: {
@@ -28,15 +29,22 @@ const props = defineProps({
const emit = defineEmits(['topedRefresh'])
const router = useRouter()
-
+const isDelete = ref(false)
// 跳转详情
function toDetails() {
if (props.currentType === '0') {
- router.push(`/model-details/${props.item.id}`)
+ if(props.currentState === 'mallProduct'){
+ router.push(`/model-details/${props.item.id}`)
+ }else{
+ router.push(`/model-details/${props.item.modelId}`)
+ }
}
else if (props.currentType === '1') {
- // console.log('object', 111);
- router.push(`/workflow-details/${props.item.id}`)
+ if(props.currentState === 'mallProduct'){
+ router.push(`/workflow-details/${props.item.id}`)
+ }else{
+ router.push(`/workflow-details/${props.item.workFlowId}`)
+ }
}else if(props.currentType === '2'){
onEditPicture()
}
@@ -94,6 +102,7 @@ function handleSelect(event: Event, key: string) {
}
// 置顶
+const menuRef = ref(null)
interface TopUrlType {
[key: string | number]: string
}
@@ -109,6 +118,8 @@ async function handleTop() {
.isTop}`,
)
if (res.code === 200) {
+ message.success('置顶成功!')
+ menuRef.value.style.display = 'none';
// 刷新列表
emit('topedRefresh')
}
@@ -122,7 +133,11 @@ interface Response {
code: number
}
+// 删除
async function handleDelete(): Promise
{
+ isDelete.value = true
+}
+async function onDelete(){
const { currentType, item } = props
let url: string
@@ -142,6 +157,7 @@ async function handleDelete(): Promise {
const res: Response = await request.get(url)
if (res.code === 200) {
// 刷新列表
+ message.success('删除成功!')
emit('topedRefresh')
}
}
@@ -200,7 +216,12 @@ function updateLike(type:number){
props.item.likeNum += 1;
}
}
-
+function showMenu(){
+ menuRef.value.style.display = 'block';
+}
+function hiddenMenu(){
+ menuRef.value.style.display = 'none';
+}
@@ -285,10 +306,13 @@ function updateLike(type:number){
>