| @@ -47,7 +47,8 @@ export function getSupperPhotoStateApi(id) { | |||||
| export function getUserQrcodeApi(data) { | export function getUserQrcodeApi(data) { | ||||
| return request({ | return request({ | ||||
| url: `/api/miniApp/getUserQrcode`, | url: `/api/miniApp/getUserQrcode`, | ||||
| method: 'post', | |||||
| method: 'POST', | |||||
| responseType: "arraybuffer", | |||||
| data | data | ||||
| }) | }) | ||||
| } | } | ||||
| @@ -11,7 +11,7 @@ | |||||
| :key="item.id" | :key="item.id" | ||||
| class="styleListBoxItme" | class="styleListBoxItme" | ||||
| > | > | ||||
| <view class="styleInfo" @click="createPhoto(item.id)"> | |||||
| <view class="styleInfo" @click="createPhoto(item)"> | |||||
| <image :src="item.coverImg" mode="aspectFit" /> | <image :src="item.coverImg" mode="aspectFit" /> | ||||
| <text class="name">{{ item.title }}</text> | <text class="name">{{ item.title }}</text> | ||||
| <text class="single">{{ peopleNum(item.mouldType) }}</text> | <text class="single">{{ peopleNum(item.mouldType) }}</text> | ||||
| @@ -107,10 +107,16 @@ function peopleNum(num) { | |||||
| //#endregion --------------------- | //#endregion --------------------- | ||||
| //#region 点击图片 | //#region 点击图片 | ||||
| function createPhoto(id) { | |||||
| uni.navigateTo({ | |||||
| url: `/pages/closeStyle/goCreatePhoto?id=${id}`, | |||||
| }); | |||||
| function createPhoto(item) { | |||||
| if (item.mouldType == 1) { | |||||
| uni.navigateTo({ | |||||
| url: `/pages/closeStyle/goCreatePhoto?id=${item.id}`, | |||||
| }); | |||||
| } else { | |||||
| uni.navigateTo({ | |||||
| url: `/pages/closeStyle/multiplayer?id=${item.id}`, | |||||
| }); | |||||
| } | |||||
| } | } | ||||
| //#endregion --------------------- | //#endregion --------------------- | ||||
| </script> | </script> | ||||
| @@ -121,9 +121,9 @@ const userInfoModulesPinia = userInfoModules(); | |||||
| const styleId = ref(null); | const styleId = ref(null); | ||||
| const styleData = ref({}); | const styleData = ref({}); | ||||
| onLoad((options) => { | onLoad((options) => { | ||||
| // styleId.value = options.id; | |||||
| styleId.value = options.id; | |||||
| // styleId.value = "857147862095679488"; | // styleId.value = "857147862095679488"; | ||||
| styleId.value = "2003"; | |||||
| // styleId.value = "2003"; | |||||
| // styleId.value = "246"; | // styleId.value = "246"; | ||||
| getInfo(); | getInfo(); | ||||
| // getMyCoin(); | // getMyCoin(); | ||||
| @@ -143,7 +143,7 @@ const pageClass = computed(() => { | |||||
| return "page"; | return "page"; | ||||
| } | } | ||||
| }); | }); | ||||
| //#region 勾选 | |||||
| //#region 勾选和手机号授权 | |||||
| const checkboxValue = ref([]); | const checkboxValue = ref([]); | ||||
| const checkboxList = ref([ | const checkboxList = ref([ | ||||
| { | { | ||||
| @@ -164,6 +164,7 @@ async function dogetphonenumber(e) { | |||||
| openId: userInfoModulesPinia.openId, | openId: userInfoModulesPinia.openId, | ||||
| encryptedData: e.detail.encryptedData, | encryptedData: e.detail.encryptedData, | ||||
| iv: e.detail.iv, | iv: e.detail.iv, | ||||
| uid: urlUid.value, | |||||
| }; | }; | ||||
| try { | try { | ||||
| const res2 = await loginPhoneApi(data); | const res2 = await loginPhoneApi(data); | ||||
| @@ -260,7 +261,7 @@ const goPro = () => { | |||||
| }; | }; | ||||
| //#endregion --------------------- | //#endregion --------------------- | ||||
| //#region 手机号登录 | |||||
| //#region 抖音手机号登录 | |||||
| const formData = ref({ | const formData = ref({ | ||||
| phoneNum: null, | phoneNum: null, | ||||
| codeNum: null, | codeNum: null, | ||||
| @@ -375,8 +376,10 @@ async function loginByCode() { | |||||
| } | } | ||||
| //#endregion --------------------- | //#endregion --------------------- | ||||
| //#region | |||||
| //#region 初始化 | |||||
| const urlUid = ref(""); //通过邀请来的会携带邀请人ID参数 | |||||
| onLoad((options) => { | onLoad((options) => { | ||||
| urlUid.value = options.userId ? options.userId : null; | |||||
| uni.hideHomeButton(); | uni.hideHomeButton(); | ||||
| // workId.value = options.id; | // workId.value = options.id; | ||||
| @@ -22,12 +22,12 @@ | |||||
| <view @click="downloadImg" class="uploadBtn"> | <view @click="downloadImg" class="uploadBtn"> | ||||
| <text>下载照片</text> | <text>下载照片</text> | ||||
| </view> | </view> | ||||
| <view class="grayBtn" @click="photoSupper"> | |||||
| <!-- <view v-if="supperPhotoState == 0 || supperPhotoState == 3" class="free"> | |||||
| <!-- <view class="grayBtn" @click="photoSupper"> | |||||
| <view v-if="supperPhotoState == 0 || supperPhotoState == 3" class="free"> | |||||
| <text>耗金币1枚</text> | <text>耗金币1枚</text> | ||||
| </view> --> | |||||
| </view> | |||||
| {{ supperTips() }} | {{ supperTips() }} | ||||
| </view> | |||||
| </view> --> | |||||
| <!-- 底部 --> | <!-- 底部 --> | ||||
| <view class="bottomBox"> | <view class="bottomBox"> | ||||
| <view class="tips"> | <view class="tips"> | ||||
| @@ -39,15 +39,17 @@ | |||||
| </view> | </view> | ||||
| <!-- 画报 --> | <!-- 画报 --> | ||||
| <view v-if="showPictorial" class="pictorialBox"> | <view v-if="showPictorial" class="pictorialBox"> | ||||
| <image :src="pictorialUrl" mode="scaleToFill" /> | |||||
| <image show-menu-by-longpress :src="pictorialUrl" mode="scaleToFill" /> | |||||
| <text>长按保存、分享、收藏</text> | |||||
| <view class="orangeBtn" @click="showPictorial = fales">关闭</view> | |||||
| </view> | </view> | ||||
| </view> | </view> | ||||
| </template> | </template> | ||||
| <script setup> | <script setup> | ||||
| // import myloading from '../../components/myLoading.vue' | |||||
| //#region 导入 | //#region 导入 | ||||
| import { onLoad, onShareAppMessage, onShareTimeline } from "@dcloudio/uni-app"; | import { onLoad, onShareAppMessage, onShareTimeline } from "@dcloudio/uni-app"; | ||||
| import { BASE_URL } from "../../utils/request"; | |||||
| import { ref, reactive, watch } from "vue"; | import { ref, reactive, watch } from "vue"; | ||||
| import { userInfoModules } from "@/store/modules/userInfo"; | import { userInfoModules } from "@/store/modules/userInfo"; | ||||
| import { | import { | ||||
| @@ -337,9 +339,11 @@ async function getUserQrcode() { | |||||
| }; | }; | ||||
| const res = await getUserQrcodeApi(data); | const res = await getUserQrcodeApi(data); | ||||
| if (res.code == 200) { | if (res.code == 200) { | ||||
| uni.arrayBufferToBase64(res.data, (base64) => { | |||||
| pictorialUrl.value = "data:image/jpeg;base64," + base64; // 在前面加上正确的图片格式 | |||||
| }); | |||||
| pictorialUrl.value = `data:image/png;base64,${res.data}`; | |||||
| // ${uni.arrayBufferToBase64( | |||||
| // res.data | |||||
| // )} | |||||
| console.log(pictorialUrl.value); | |||||
| showPictorial.value = true; | showPictorial.value = true; | ||||
| } else { | } else { | ||||
| uni.showToast({ | uni.showToast({ | ||||
| @@ -369,11 +373,12 @@ async function getUserQrcode() { | |||||
| <style lang="scss"> | <style lang="scss"> | ||||
| .page { | .page { | ||||
| padding: 0 30rpx; | |||||
| background-color: rgba(24, 25, 26, 1); | background-color: rgba(24, 25, 26, 1); | ||||
| } | } | ||||
| // 轮播图 | // 轮播图 | ||||
| .u-swiper { | .u-swiper { | ||||
| margin-top: 40rpx; | |||||
| margin-top: 70rpx; | |||||
| width: 540rpx; | width: 540rpx; | ||||
| height: 720rpx !important; | height: 720rpx !important; | ||||
| border-radius: 50rpx; | border-radius: 50rpx; | ||||
| @@ -406,6 +411,7 @@ async function getUserQrcode() { | |||||
| .uploadBtn { | .uploadBtn { | ||||
| position: relative; | position: relative; | ||||
| margin-top: 100rpx; | margin-top: 100rpx; | ||||
| margin-bottom: 200rpx; | |||||
| width: 520rpx; | width: 520rpx; | ||||
| height: 100rpx; | height: 100rpx; | ||||
| line-height: 100rpx; | line-height: 100rpx; | ||||
| @@ -466,13 +472,13 @@ async function getUserQrcode() { | |||||
| } | } | ||||
| .bottomBox { | .bottomBox { | ||||
| flex: 1; | |||||
| position: relative; | |||||
| bottom: -30rpx; | |||||
| // flex: 1; | |||||
| position: absolute; | |||||
| bottom: 60rpx; | |||||
| width: 100%; | width: 100%; | ||||
| display: flex; | display: flex; | ||||
| justify-content: space-between; | justify-content: space-between; | ||||
| padding: 65rpx 10rpx 0; | |||||
| padding: 65rpx 40rpx 0; | |||||
| .tips { | .tips { | ||||
| position: absolute; | position: absolute; | ||||
| top: 0rpx; | top: 0rpx; | ||||
| @@ -502,12 +508,20 @@ async function getUserQrcode() { | |||||
| .pictorialBox { | .pictorialBox { | ||||
| position: absolute; | position: absolute; | ||||
| width: 100%; | width: 100%; | ||||
| height: 100vh; | |||||
| height: 100%; | |||||
| display: flex; | |||||
| flex-direction: column; | |||||
| align-items: center; | |||||
| background-color: rgba($color: #000000, $alpha: 0.9); | |||||
| image { | image { | ||||
| margin-top: 80rpx; | margin-top: 80rpx; | ||||
| width: 630rpx; | width: 630rpx; | ||||
| height: 940rpx; | height: 940rpx; | ||||
| border-radius: 24rpx; | border-radius: 24rpx; | ||||
| margin-bottom: 50rpx; | |||||
| } | |||||
| text { | |||||
| margin-bottom: 30rpx; | |||||
| } | } | ||||
| z-index: 9; | z-index: 9; | ||||
| } | } | ||||
| @@ -86,7 +86,14 @@ | |||||
| <script setup> | <script setup> | ||||
| //#region 导入 | //#region 导入 | ||||
| import { ref, reactive, nextTick } from "vue"; | import { ref, reactive, nextTick } from "vue"; | ||||
| import { onLoad, onShow } from "@dcloudio/uni-app"; | |||||
| import { | |||||
| onLoad, | |||||
| onShareAppMessage, | |||||
| onShareTimeline, | |||||
| onAddToFavorites, | |||||
| onShow, | |||||
| } from "@dcloudio/uni-app"; | |||||
| import { BASE_URL } from "../../utils/request"; | |||||
| import { loginApi } from "../../api/login"; | import { loginApi } from "../../api/login"; | ||||
| import { addImageApi } from "../../api/uploadphoto.js"; | import { addImageApi } from "../../api/uploadphoto.js"; | ||||
| import { userInfoModules } from "@/store/modules/userInfo"; | import { userInfoModules } from "@/store/modules/userInfo"; | ||||