congzc пре 1 година
родитељ
комит
27cc896070
10 измењених фајлова са 74 додато и 717 уклоњено
  1. +0
    -161
      src/pages/closeStyle/closeStyle copy.vue
  2. +2
    -2
      src/pages/closeStyle/goCreatePhoto.vue
  3. +0
    -253
      src/pages/closeStyle/multiplayer copy 2.vue
  4. +0
    -235
      src/pages/closeStyle/multiplayer copy.vue
  5. +2
    -1
      src/pages/closeStyle/multiplayer.vue
  6. +0
    -25
      src/pages/createing/index.vue
  7. +21
    -16
      src/pages/login/index.vue
  8. +44
    -19
      src/pages/lookPhoto/index.vue
  9. +3
    -3
      src/pages/uploadPhoto/uploadPhoto.vue
  10. +2
    -2
      src/utils/share.js

+ 0
- 161
src/pages/closeStyle/closeStyle copy.vue Прегледај датотеку

@@ -1,161 +0,0 @@
<template>
<div class="page">
<u-list class="styleListBox" @scrolltolower="scrolltolower">
<u-list-item class="glodYBox">
<u-list-item
v-for="item in styleList"
:key="item.id"
class="styleListBoxItme"
>
<view class="styleInfo" @click="createPhoto(item.id)">
<image :src="item.coverImg" mode="aspectFit" />
<text class="name">{{ item.title }}</text>
<text class="single">{{ peopleNum(item.mouldType) }}</text>
</view>
</u-list-item>
</u-list-item>
</u-list>
</div>
</template>

<script setup>
//#region 导入
import { onPullDownRefresh } from "@dcloudio/uni-app";
import { ref, reactive } from "vue";

import { getListApi } from "../../api/closeStyle";
//#endregion

//#region 下拉刷新
onPullDownRefresh(async () => {
uni.showLoading({
title: "加载中...",
mask: true,
});
pageNum.value = 1;
pageSize.value = 8;
styleList.value = [];
await getList();
uni.hideLoading();
uni.stopPullDownRefresh();
});
//#endregion

//#region 列表加载
const pageNum = ref(1);
const pageSize = ref(8);
const styleList = ref([]);
// 得到列表
async function getList() {
try {
const res = await getListApi(pageNum.value, pageSize.value);
styleList.value = res.data.list;
} catch (error) {
uni.showToast({
title: "获取列表失败,请重试",
icon: "none",
});
}
}
getList();
// 触底加载更多
const scrolltolower = async () => {
try {
pageNum.value += 1;
const res = await getListApi(pageNum.value, pageSize.value);
if (res.data.list.length == 0) {
pageNum.value -= 1;
uni.showToast({
title: "已加载全部内容",
icon: "none",
});
}
styleList.value.push(...res.data.list);
} catch (error) {
uni.showToast({
title: "获取数据失败,请重试",
icon: "none",
});
}
};

// 处理单人双人多人
function peopleNum(num) {
if (num == 1) {
return "单人";
} else if (num == 2) {
return "双人";
} else if (num == 3) {
return "三人";
}
}
//#endregion ---------------------

//#region 点击图片
function createPhoto(id) {
uni.navigateTo({
url: `/pages/closeStyle/goCreatePhoto?id=${id}`,
});
}
//#endregion ---------------------
</script>

<style lang="scss">
.page {
height: 100vh;
overflow: hidden;
background-color: #222527;
}
.u-list {
width: 650rpx;

.glodYBox {
display: flex !important;
flex-direction: row !important;
flex-wrap: wrap !important;
justify-content: space-between !important;
}
.u-list-item {
display: flex !important;
flex-direction: row !important;
flex-wrap: wrap !important;
justify-content: space-between !important;
}
.styleInfo {
position: relative;
display: flex !important;
flex-wrap: wrap !important;
width: 300rpx;
height: 480rpx;
margin-bottom: 50rpx;
border-radius: 24rpx;
overflow: hidden;
image {
width: 300rpx;
height: 400rpx;
}
.name {
background-color: #393b3d;
width: 100%;
height: 80rpx;
text-align: center;
line-height: 80rpx;
font-size: 30rpx;
font-weight: bold;
}
.single {
position: absolute;
top: 11rpx;
right: 13rpx;
width: 72rpx;
height: 41rpx;
text-align: center;
line-height: 41rpx;
background: rgba(0, 0, 0, 0.4);
font-size: 22rpx;
// opacity: 0.4;
border-radius: 12rpx;
}
}
}
</style>

+ 2
- 2
src/pages/closeStyle/goCreatePhoto.vue Прегледај датотеку

@@ -95,8 +95,8 @@ async function createing(id) {
};
const res2 = await createPhotoApi(data);
console.log(res2);
uni.reLaunch({
url: `/pages/createing/index?id=${res2.data.id}`,
uni.navigateTo({
url: `/pages/lookPhoto/index?id=${res2.data.id}`,
});
uni.hideLoading();
} catch (error) {


+ 0
- 253
src/pages/closeStyle/multiplayer copy 2.vue Прегледај датотеку

@@ -1,253 +0,0 @@
<template>
<view class="page">
<view class="showImgBox imgContenBox"
><image :src="styleData.coverImg"
/></view>
<text class="name">{{ styleData.title }}</text>
<view class="imgBox">
<!-- 图一 -->
<view class="imgBoxItem" v-for="item in avatarList" :key="item.url">
<image class="avatar" :src="item.url" mode="scaleToFill" />
<view v-if="!item.url" class="noUrlBox">+</view>
<view
v-if="item.url && item.url != userInfoModulesPinia.myAvatar"
class="reUploadBtn"
>更换头像</view
>
<view v-if="!item.url" class="uploadBtn">上传头像</view>
</view>
<image
class="exchange"
src="../../assets/icon/exchange.png"
mode="scaleToFill"
/>

<!-- 图二 -->
<!-- <view class="imgBoxItem">
<image
class="avatar"
src="../../assets/img/img2.png"
mode="scaleToFill"
/>

</view>
<image
class="exchange"
src="../../assets/icon/exchange.png"
mode="scaleToFill"
/> -->
<!-- 图三 -->
<!-- <view class="imgBoxItem">
<image
class="avatar"
src="../../assets/img/img3.png"
mode="scaleToFill"
/>

</view> -->
</view>
<text class="tips">人物头像对应模板任务位置,点击按钮可以调整顺序</text>
<view class="orangeBtn" @click="createing(styleData.id)"
>开始制作写真
<view class="free">
<text>耗金币2枚</text>
</view>
</view>
<view class="balance"
>金币余额:&nbsp;&nbsp;30
<image src="../../assets/icon/coin.png" mode="aspectFit" />
</view>
</view>
</template>

<script setup>
//#region 导入
import { ref, reactive } from "vue";
import { onLoad } from "@dcloudio/uni-app";
import {
findByIdApi,
findImageApi,
createPhotoApi,
} from "../../api/closeStyle";
import { userInfoModules } from "@/store/modules/userInfo";
//#endregion
const userInfoModulesPinia = userInfoModules();

//#region 初始化
const styleId = ref(null);
const styleData = ref({});
onLoad((options) => {
// styleId.value = options.id;
// styleId.value = "857147862095679488";
styleId.value = "246";
getInfo();
});
async function getInfo() {
try {
const res = await findByIdApi(styleId.value);
console.log(res);
styleData.value = res.data;
} catch (error) {
uni.showToast({
title: "获取数据失败,请重试",
icon: "none",
});
}
}
//#endregion ---------------------

//#region 上传图片
const avatarList = ref([
{
url: userInfoModulesPinia.myAvatar,
isMyAvatar: true,
},
{
url: "",
isMyAvatar: false,
},
{
url: "",
isMyAvatar: false,
},
]);
//#endregion ---------------------

//#region 生成写真照片
async function createing(id) {
try {
const res = await findImageApi();
console.log(res);
let myImg = res.data.image;
const data = {
digitalAvatarId: id,
userImages: JSON.stringify([myImg]),
};
const res2 = await createPhotoApi(data);
console.log(res2);
uni.navigateTo({
url: `/pages/createing/index?id=${res2.data.id}`,
});
} catch (error) {
console.log(error);
uni.showToast({
title: "生成失败,请重试",
icon: "none",
});
}
}
//#endregion ---------------------

//#region

//#endregion ---------------------
</script>

<style lang="scss">
.page {
background-color: rgba(24, 25, 26, 1);
}

.showImgBox {
margin-top: 30rpx;
width: 360rpx;
height: 480rpx;
// background-color: #ccc;
border-radius: 30rpx;
image {
width: 100%;
height: 100%;
border-radius: 30rpx;
}
}
.name {
margin-top: 70rpx;
margin-bottom: 47rpx;
font-size: 44rpx;
font-weight: 800;
}
.imgBox {
margin-bottom: 40rpx;
width: 100%;
// height: 180rpx;
display: flex;
justify-content: space-between;
align-items: flex-start;
.exchange {
width: 60rpx;
height: 60rpx;
margin-top: 67rpx;
margin-left: 180rpx;
}
.imgBoxItem {
position: relative;
width: 180rpx;
height: 250rpx;
display: flex;
flex-direction: column;
align-items: center;
.avatar {
position: absolute;
width: 180rpx;
height: 180rpx;
}
.noUrlBox {
position: absolute;
width: 180rpx;
height: 180rpx;
line-height: 180rpx;
color: #ff4f00;
font-size: 50rpx;
font-weight: 900;
text-align: center;
border-radius: 24rpx;
background-color: #393a3d;
}
.reUploadBtn,
.uploadBtn {
margin-top: 200rpx;
width: 150rpx;
height: 50rpx;
text-align: center;
line-height: 50rpx;
border-radius: 50rpx;
background-color: #383a3c;
}
}
}

.tips {
margin-top: 40rpx;
font-size: 22rpx;
}
.orangeBtn {
position: relative;
margin-top: 60rpx;
.free {
position: absolute;
top: -18rpx;
right: -70rpx;
width: 142rpx;
height: 50rpx;
background-color: #000;
border-radius: 25rpx 25rpx 25rpx 0;
font-size: 22rpx;
font-weight: 900;
line-height: 50rpx;
text-align: center;
}
}
.balance {
display: inline-block;
margin-top: 70rpx;
font-size: 30rpx;
font-weight: bold;
line-height: 33rpx;
image {
display: inline-block;
width: 33rpx;
height: 33rpx;
vertical-align: middle;
}
}
</style>

+ 0
- 235
src/pages/closeStyle/multiplayer copy.vue Прегледај датотеку

@@ -1,235 +0,0 @@
<template>
<view class="page">
<view class="showImgBox imgContenBox"
><image :src="styleData.coverImg"
/></view>
<text class="name">{{ styleData.title }}</text>
<view class="imgBox">
<!-- 图一 -->
<view class="imgBoxItem">
<image
class="avatar"
src="../../assets/img/img1.png"
mode="scaleToFill"
/>
</view>
<image
class="exchange"
src="../../assets/icon/exchange.png"
mode="scaleToFill"
/>
<!-- 图二 -->
<view class="imgBoxItem">
<image
class="avatar"
src="../../assets/img/img2.png"
mode="scaleToFill"
/>
<view class="reUploadBtn">更换头像</view>
</view>
<image
class="exchange"
src="../../assets/icon/exchange.png"
mode="scaleToFill"
/>
<!-- 图三 -->
<view class="imgBoxItem">
<image
class="avatar"
src="../../assets/img/img3.png"
mode="scaleToFill"
/>
<view class="uploadBtn">上传头像</view>
</view>
</view>
<text class="tips">人物头像对应模板任务位置,点击按钮可以调整顺序</text>
<view class="orangeBtn" @click="createing(styleData.id)"
>开始制作写真
<view class="free">
<text>耗金币2枚</text>
</view>
</view>
<view class="balance"
>金币余额:&nbsp;&nbsp;30
<image src="../../assets/icon/coin.png" mode="aspectFit" />
</view>
</view>
</template>

<script setup>
//#region 导入
import { ref, reactive } from "vue";
import { onLoad } from "@dcloudio/uni-app";
import {
findByIdApi,
findImageApi,
createPhotoApi,
} from "../../api/closeStyle";
import { userInfoModules } from "@/store/modules/userInfo";
//#endregion
const userInfoModulesPinia = userInfoModules();

//#region 初始化
const styleId = ref(null);
const styleData = ref({});
onLoad((options) => {
// styleId.value = options.id;
// styleId.value = "857147862095679488";
styleId.value = "246";
getInfo();
});
async function getInfo() {
try {
const res = await findByIdApi(styleId.value);
console.log(res);
styleData.value = res.data;
} catch (error) {
uni.showToast({
title: "获取数据失败,请重试",
icon: "none",
});
}
}
//#endregion ---------------------

//#region 上传图片
const avatarList = ref([
{
url: userInfoModulesPinia.myAvatar,
isMyAvatar: true,
},
{
url: "",
isMyAvatar: false,
},
{
url: "",
isMyAvatar: false,
},
]);
//#endregion ---------------------

//#region 生成写真照片
async function createing(id) {
try {
const res = await findImageApi();
console.log(res);
let myImg = res.data.image;
const data = {
digitalAvatarId: id,
userImages: JSON.stringify([myImg]),
};
const res2 = await createPhotoApi(data);
console.log(res2);
uni.navigateTo({
url: `/pages/createing/index?id=${res2.data.id}`,
});
} catch (error) {
console.log(error);
uni.showToast({
title: "生成失败,请重试",
icon: "none",
});
}
}
//#endregion ---------------------

//#region

//#endregion ---------------------
</script>

<style lang="scss">
.page {
background-color: rgba(24, 25, 26, 1);
}

.showImgBox {
margin-top: 30rpx;
width: 360rpx;
height: 480rpx;
// background-color: #ccc;
border-radius: 30rpx;
image {
width: 100%;
height: 100%;
border-radius: 30rpx;
}
}
.name {
margin-top: 70rpx;
margin-bottom: 47rpx;
font-size: 44rpx;
font-weight: 800;
}
.imgBox {
margin-bottom: 40rpx;
width: 100%;
// height: 180rpx;
display: flex;
justify-content: space-between;
align-items: flex-start;
.exchange {
width: 60rpx;
height: 60rpx;
margin-top: 67rpx;
}
.imgBoxItem {
position: relative;
width: 180rpx;
height: 250rpx;
display: flex;
flex-direction: column;
align-items: center;
.avatar {
position: absolute;
width: 180rpx;
height: 180rpx;
}
.reUploadBtn,
.uploadBtn {
margin-top: 200rpx;
width: 150rpx;
height: 50rpx;
text-align: center;
line-height: 50rpx;
border-radius: 50rpx;
background-color: #383a3c;
}
}
}

.tips {
font-size: 22rpx;
}
.orangeBtn {
position: relative;
margin-top: 60rpx;
.free {
position: absolute;
top: -18rpx;
right: -70rpx;
width: 142rpx;
height: 50rpx;
background-color: #000;
border-radius: 25rpx 25rpx 25rpx 0;
font-size: 22rpx;
font-weight: 900;
line-height: 50rpx;
text-align: center;
}
}
.balance {
display: inline-block;
margin-top: 70rpx;
font-size: 30rpx;
font-weight: bold;
line-height: 33rpx;
image {
display: inline-block;
width: 33rpx;
height: 33rpx;
vertical-align: middle;
}
}
</style>

+ 2
- 1
src/pages/closeStyle/multiplayer.vue Прегледај датотеку

@@ -321,6 +321,7 @@ async function createing(id) {
myImgList.push(item.url);
});
const data = {
title: styleData.value.title,
digitalAvatarId: id,
userImages:
styleData.value.mouldType == 2
@@ -331,7 +332,7 @@ async function createing(id) {
console.log(res2);
uni.hideLoading();
uni.navigateTo({
url: `/pages/createing/index?id=${res2.data.id}`,
url: `/pages/lookPhoto/index?id=${res2.data.id}`,
});
} catch (error) {
console.log(error);


+ 0
- 25
src/pages/createing/index.vue Прегледај датотеку

@@ -7,31 +7,6 @@
<view class="changeStyle" @click="changeStyle">更换风格</view>
</view>
<!-- 轮播图 -->
<!-- <u-swiper
v-if="createState == 2"
indicator
indicatorMode="dot"
:radius="30"
:autoplay="false"
:list="swiperList"
keyName="image"
@change=""
@click=""
></u-swiper> -->
<!-- <u-swiper
v-if="createState == 2"
height="320"
:list="swiperList"
keyName="image"
previousMargin="60"
nextMargin="60"
circular
indicator
indicatorMode="line"
:autoplay="false"
radius="5"
bgColor="#1f2123"
></u-swiper> -->
<u-swiper
v-if="createState == 2"
indicator


+ 21
- 16
src/pages/login/index.vue Прегледај датотеку

@@ -164,7 +164,6 @@ const userInfoModulesPinia = userInfoModules();

const showPrivacy = ref(false);

console.log(userInfoModulesPinia.platForm);
const pageClass = computed(() => {
if (userInfoModulesPinia.platForm == 1) {
return "page pageH5";
@@ -391,9 +390,9 @@ async function loginByCode() {
icon: "none",
});
} else {
uni.switchTab({
url: "/pages/uploadPhoto/uploadPhoto",
});
// uni.switchTab({
// url: "/pages/uploadPhoto/uploadPhoto",
// });
}
} catch (error) {
uni.hideLoading();
@@ -405,13 +404,14 @@ async function loginByCode() {
}
//#endregion ---------------------

//#region 隐私协议
const getPrivacySetting = (num) => {
const canIUsePrivacy = wx.canIUse("getPrivacySetting");
console.log(canIUsePrivacy, "canIUse getPrivacySetting");
// console.log(canIUsePrivacy, "canIUse getPrivacySetting");
if (canIUsePrivacy) {
wx.getPrivacySetting({
success: (res) => {
console.log(res, "getPrivacySetting"); // 返回结果为: res = { needAuthorization: true/false, privacyContractName: '《xxx隐私保护指引》' }
// console.log(res, "getPrivacySetting"); // 返回结果为: res = { needAuthorization: true/false, privacyContractName: '《xxx隐私保护指引》' }
if (res.needAuthorization) {
// 需要弹出隐私协议
showPrivacy.value = true;
@@ -419,9 +419,9 @@ const getPrivacySetting = (num) => {
// 用户已经同意过隐私协议,所以不需要再弹出隐私协议,也能调用已声明过的隐私接口
if (num == 1) {
// 返回token,直接跳转首页
uni.switchTab({
url: "/pages/uploadPhoto/uploadPhoto",
});
// uni.switchTab({
// url: "/pages/uploadPhoto/uploadPhoto",
// });
} else if (num == 2) {
// 没有返回token,无事发生
}
@@ -439,7 +439,7 @@ const closePrivacy = () => {
};

const handleAgreePrivacyAuthorization = () => {
console.log("Privacy Agreed!");
// console.log("Privacy Agreed!");
showPrivacy.value = false;
// 用户同意隐私协议事件回调
// 用户点击了同意,之后所有已声明过的隐私接口和组件都可以调用了
@@ -453,20 +453,25 @@ const handleOpenPrivacyContract = () => {
complete: () => {},
});
};
//#endregion ---------------------------------

//#region
//#region 初始化
const urlUid = ref(""); //通过邀请来的会携带邀请人ID参数
onLoad((options) => {
if (options.userId) {
// 二维码扫描进入时
if (options.scene) {
const str = decodeURIComponent(options.scene);
const regex = /_u:(\d+)/; // 正则表达式匹配_u:后面的数字
const match = str.match(regex);
urlUid.value = match[1];
}
// 分享链接进入时
else if (options.userId) {
urlUid.value = options.userId;
uni.showToast({
title: `Uid获取成功!(${options.userId})`,
icon: "none",
});
} else {
urlUid.value = null;
}
console.log(urlUid.value, "邀请人id");
uni.hideHomeButton();
// workId.value = options.id;



+ 44
- 19
src/pages/lookPhoto/index.vue Прегледај датотеку

@@ -2,6 +2,7 @@
<view class="page">
<!-- 轮播图 -->
<u-swiper
v-if="createState == 2"
indicator
indicatorMode="dot"
circular
@@ -12,7 +13,14 @@
@change="getSwiperIndex"
@click="previewImage"
></u-swiper>
<view class="checkMore">左右滑动查看更多</view>
<image
v-if="createState != 2"
class="logo"
src="../../assets/img/logo-4.png"
mode="scaleToFill"
/>
<view v-if="createState == 2" class="checkMore">左右滑动查看更多</view>
<view v-if="createState != 2" class="wait">生成中,请稍后...</view>
<!-- <view class="uploadBtn grayBtn">
<text>我要让照片说话</text>
<view class="free">
@@ -22,19 +30,22 @@
<view @click="downloadImg" class="uploadBtn">
<text>下载照片</text>
</view>
<!-- <view class="grayBtn" @click="photoSupper">
<view v-if="supperPhotoState == 0 || supperPhotoState == 3" class="free">
<view class="grayBtn" @click="goChooseStyle">
重新生成
<!-- <view v-if="supperPhotoState == 0 || supperPhotoState == 3" class="free">
<text>耗金币1枚</text>
</view>
{{ supperTips() }}
</view> -->
{{ supperTips() }} -->
</view>
<!-- 底部 -->
<view class="bottomBox">
<view class="tips">
<view v-if="createState == 2" class="tips">
<text>邀请好友可获得2枚金币</text>
</view>
<button open-type="share" class="shareBtn">分享</button>
<view class="shareBtn" @click="getUserQrcode">邀请好友</view>
<view v-if="createState == 2" class="shareBtn" @click="getUserQrcode"
>邀请好友</view
>
<view class="shareBtn" @click="buyCoin">金币充值</view>
</view>
<!-- 画报 -->
@@ -61,6 +72,7 @@ import {
//#endregion
const userInfoModulesPinia = userInfoModules();
//#region 轮播图
const createState = ref(null); //制作状态:1生成中,2完成,3失败
const workId = ref(null); //作品id
onLoad(async (options) => {
workId.value = options.id;
@@ -72,15 +84,17 @@ const previewImageList = ref([]); //预览图片列表
async function getSwiperList() {
const res = await getPhotoListApi(workId.value);
console.log(res.data.photoList);
swiperList.value = res.data.photoList;
swiperList.value.forEach((item) => {
if (item.imageSuper) {
previewImageList.value.push(item.imageSuper);
} else {
previewImageList.value.push(item.image);
}
});
createState.value = res.data.status;
if (res.data.photoList) {
swiperList.value = res.data.photoList;
swiperList.value.forEach((item) => {
if (item.imageSuper) {
previewImageList.value.push(item.imageSuper);
} else {
previewImageList.value.push(item.image);
}
});
}
}
//#endregion ---------------------
@@ -246,6 +260,11 @@ function buyCoin() {
});
}
}
function goChooseStyle() {
uni.navigateTo({
url: "/pages/closeStyle/closeStyle",
});
}
//#endregion ---------------------
//#region 超分相关
@@ -402,7 +421,13 @@ async function getUserQrcode() {
}
}
.checkMore {
.logo {
width: 520rpx;
margin: 90rpx;
}
.checkMore,
.wait {
color: #ffffff;
margin-top: 30rpx;
}
@@ -411,7 +436,6 @@ async function getUserQrcode() {
.uploadBtn {
position: relative;
margin-top: 100rpx;
margin-bottom: 200rpx;
width: 520rpx;
height: 100rpx;
line-height: 100rpx;
@@ -455,6 +479,7 @@ async function getUserQrcode() {
}
}
.grayBtn {
margin-bottom: 220rpx;
.free {
position: absolute;
color: #fff;
@@ -477,7 +502,7 @@ async function getUserQrcode() {
bottom: 60rpx;
width: 100%;
display: flex;
justify-content: space-between;
justify-content: space-evenly;
padding: 65rpx 40rpx 0;
.tips {
position: absolute;


+ 3
- 3
src/pages/uploadPhoto/uploadPhoto.vue Прегледај датотеку

@@ -22,15 +22,15 @@
<!-- 上传按钮 -->
<image
class="addImg"
v-show="!showImgUrl"
v-show="!showImgUrl && !userInfoModulesPinia.myAvatar"
src="../../assets/icon/add.png"
alt=""
/>
<!-- @click.prevent="chooseImage" -->
<image
class="showImg"
v-show="showImgUrl"
:src="showImgUrl"
v-show="showImgUrl || userInfoModulesPinia.myAvatar"
:src="showImgUrl ? showImgUrl : userInfoModulesPinia.myAvatar"
alt=""
mode="aspectFit"
/>


+ 2
- 2
src/utils/share.js Прегледај датотеку

@@ -2,7 +2,7 @@ export default {
onShareAppMessage() {
return {
title: "邃芒智像",
path: `/pages/login/index?type=in&userId=${uni.getStorageSync('userId')}`,
path: `/pages/login/index?userId=${uni.getStorageSync('userId')}`,

};
},
@@ -11,7 +11,7 @@ export default {
onShareTimeline() {
return {
title: "邃芒智像",
path: `/pages/login/index?type=in&userId=${uni.getStorageSync('userId')}`,
path: `/pages/login/index?userId=${uni.getStorageSync('userId')}`,

};
},


Loading…
Откажи
Сачувај