| @@ -2,7 +2,7 @@ | |||||
| "appid": "wx75cf14e3a0d45821", | |||||
| wx-"appid": "wx75cf14e3a0d45821", | |||||
| git commit -m "feat: " | git commit -m "feat: " | ||||
| git commit --no-verify -m "提交时的注释" 跳过检验 | git commit --no-verify -m "提交时的注释" 跳过检验 | ||||
| @@ -1,4 +1,4 @@ | |||||
| import request from "../utils/request" | |||||
| import { request } from "../utils/request" | |||||
| // 获取风格列表 | // 获取风格列表 | ||||
| export function getListApi(pageNum, pageSize) { | export function getListApi(pageNum, pageSize) { | ||||
| @@ -1,4 +1,4 @@ | |||||
| import request from "../utils/request" | |||||
| import { request } from "../utils/request" | |||||
| /** | /** | ||||
| * @description:获取金币价格列表 | * @description:获取金币价格列表 | ||||
| @@ -1,4 +1,4 @@ | |||||
| import request from "../utils/request" | |||||
| import { request } from "../utils/request" | |||||
| // 获取风格列表 | // 获取风格列表 | ||||
| export function findWorkByIdApi(id) { | export function findWorkByIdApi(id) { | ||||
| @@ -1,4 +1,4 @@ | |||||
| import request from "../utils/request" | |||||
| import { request } from "../utils/request" | |||||
| /** | /** | ||||
| * @description:获取用户头像 | * @description:获取用户头像 | ||||
| @@ -1,11 +1,6 @@ | |||||
| import request from "../utils/request" | |||||
| import { request } from "../utils/request" | |||||
| export function voiceTotalApi() { | |||||
| return request({ | |||||
| url: `api/voiceMould/voiceTotal`, | |||||
| method: 'GET', | |||||
| }) | |||||
| } | |||||
| // 微信登录 | // 微信登录 | ||||
| export function loginApi(data) { | export function loginApi(data) { | ||||
| return request({ | return request({ | ||||
| @@ -22,4 +17,26 @@ export function loginPhoneApi(data) { | |||||
| method: 'POST', | method: 'POST', | ||||
| data | data | ||||
| }) | }) | ||||
| } | |||||
| // 获取短信验证码 | |||||
| export function getCodeApi(phone) { | |||||
| return request({ | |||||
| url: `api/user/sendLoginPhoneCode?phone=${phone}`, | |||||
| method: 'get', | |||||
| }) | |||||
| } | |||||
| /** | |||||
| * @description:短信登录 | |||||
| * @param {*} (appId, openId,phone,code) | |||||
| * @return: list | |||||
| */ | |||||
| export function loginByCodeApi(data) { | |||||
| return request({ | |||||
| url: `api/miniApp/loginPhoneCode`, | |||||
| method: 'POST', | |||||
| data | |||||
| }) | |||||
| } | } | ||||
| @@ -1,4 +1,4 @@ | |||||
| import request from "../utils/request" | |||||
| import { request } from "../utils/request" | |||||
| /** | /** | ||||
| @@ -1,4 +1,4 @@ | |||||
| import request from "../utils/request" | |||||
| import { request } from "../utils/request" | |||||
| // /api/baidu/checkPhoto | // /api/baidu/checkPhoto | ||||
| // /api/userDigital/checkPhoto | // /api/userDigital/checkPhoto | ||||
| @@ -80,7 +80,8 @@ | |||||
| "usingComponents": true | "usingComponents": true | ||||
| }, | }, | ||||
| "mp-toutiao": { | "mp-toutiao": { | ||||
| "usingComponents": true | |||||
| "usingComponents": true, | |||||
| "appid": "tt2eba5807b1883f9f01" | |||||
| }, | }, | ||||
| "uniStatistics": { | "uniStatistics": { | ||||
| "enable": false | "enable": false | ||||
| @@ -106,6 +106,7 @@ | |||||
| //#region 导入 | //#region 导入 | ||||
| import { ref, reactive } from "vue"; | import { ref, reactive } from "vue"; | ||||
| import { onLoad } from "@dcloudio/uni-app"; | import { onLoad } from "@dcloudio/uni-app"; | ||||
| import { BASE_URL } from "@/utils/request"; | |||||
| import { | import { | ||||
| findByIdApi, | findByIdApi, | ||||
| findImageApi, | findImageApi, | ||||
| @@ -194,7 +195,7 @@ function chooseImg(index) { | |||||
| }); | }); | ||||
| // 百度敏感信息检测 | // 百度敏感信息检测 | ||||
| uni.uploadFile({ | uni.uploadFile({ | ||||
| url: "https://test.metavatar.cc/C/api/baidu/checkPhoto", //上传图片api | |||||
| url: BASE_URL + "api/baidu/checkPhoto", //上传图片api | |||||
| filePath: res.tempFilePaths[0], | filePath: res.tempFilePaths[0], | ||||
| name: "file", | name: "file", | ||||
| formData: { | formData: { | ||||
| @@ -215,7 +216,7 @@ function chooseImg(index) { | |||||
| } else { | } else { | ||||
| // 人脸识别接口 | // 人脸识别接口 | ||||
| uni.uploadFile({ | uni.uploadFile({ | ||||
| url: "https://test.metavatar.cc/C/api/userDigital/checkPhoto", //上传图片api | |||||
| url: BASE_URL + "api/userDigital/checkPhoto", //上传图片api | |||||
| filePath: res.tempFilePaths[0], | filePath: res.tempFilePaths[0], | ||||
| name: "file", | name: "file", | ||||
| formData: { | formData: { | ||||
| @@ -236,7 +237,7 @@ function chooseImg(index) { | |||||
| } else { | } else { | ||||
| // 上传接口 | // 上传接口 | ||||
| uni.uploadFile({ | uni.uploadFile({ | ||||
| url: "https://test.metavatar.cc/C/api/upload/awsImgUpload", //上传图片api | |||||
| url: BASE_URL + "api/upload/awsImgUpload", //上传图片api | |||||
| filePath: res.tempFilePaths[0], | filePath: res.tempFilePaths[0], | ||||
| name: "file", | name: "file", | ||||
| formData: { | formData: { | ||||
| @@ -129,9 +129,14 @@ function inviteFriend() { | |||||
| //#region 页面跳转 | //#region 页面跳转 | ||||
| function bueCoin() { | function bueCoin() { | ||||
| uni.navigateTo({ | |||||
| url: "/pages/home/buyCoin", | |||||
| uni.showToast({ | |||||
| title: "暂未开放", | |||||
| icon: "none", | |||||
| mask: true, | |||||
| }); | }); | ||||
| // uni.navigateTo({ | |||||
| // url: "/pages/home/buyCoin", | |||||
| // }); | |||||
| } | } | ||||
| //#endregion --------------------- | //#endregion --------------------- | ||||
| @@ -30,9 +30,7 @@ | |||||
| <view class="coinBox" v-if="userInfoModulesPinia.token"> | <view class="coinBox" v-if="userInfoModulesPinia.token"> | ||||
| 我的金币: {{ userInfoModulesPinia.myGlod }} | 我的金币: {{ userInfoModulesPinia.myGlod }} | ||||
| <image src="../../assets/icon/icon.png" mode="scaleToFill" /> | <image src="../../assets/icon/icon.png" mode="scaleToFill" /> | ||||
| <text class="buyCoinText" @click="goOtherPage('buyCoin', 2)" | |||||
| >购买金币</text | |||||
| ></view | |||||
| <text class="buyCoinText" @click="goBuyCoin">购买金币</text></view | |||||
| > | > | ||||
| <view class="coinBox" v-if="!userInfoModulesPinia.token" | <view class="coinBox" v-if="!userInfoModulesPinia.token" | ||||
| >登录即可体验更多功能哦! | >登录即可体验更多功能哦! | ||||
| @@ -70,9 +68,7 @@ | |||||
| v-for="item in PhotoList" | v-for="item in PhotoList" | ||||
| :key="item.id" | :key="item.id" | ||||
| class="showListItem" | class="showListItem" | ||||
| @click=" | |||||
| goOtherPage(`/pages/lookPhoto/index?id=${item.id}`, item.status) | |||||
| " | |||||
| @click="goLookPhoto(item.id, item.status)" | |||||
| > | > | ||||
| <view class="top"> | <view class="top"> | ||||
| <text class="name">{{ item.title }}</text> | <text class="name">{{ item.title }}</text> | ||||
| @@ -116,11 +112,7 @@ | |||||
| <!-- 空处理 --> | <!-- 空处理 --> | ||||
| <view v-show="PhotoList.length == 0" class="noData" | <view v-show="PhotoList.length == 0" class="noData" | ||||
| >暂无数据 , | >暂无数据 , | ||||
| <text | |||||
| @click="goOtherPage('/pages/closeStyle/closeStyle', 2)" | |||||
| class="goCreate" | |||||
| >去生成!</text | |||||
| > | |||||
| <text @click="goCloseStyle" class="goCreate">去生成!</text> | |||||
| </view> | </view> | ||||
| </scroll-view> | </scroll-view> | ||||
| <!-- 显示视频列表内容 --> | <!-- 显示视频列表内容 --> | ||||
| @@ -252,47 +244,22 @@ function chooseAvatar() { | |||||
| url: "/pages/uploadPhoto/uploadPhoto", | url: "/pages/uploadPhoto/uploadPhoto", | ||||
| }); | }); | ||||
| return; | return; | ||||
| uni.chooseImage({ | |||||
| count: 1, // 最多可以选择的图片张数,这里设置为1,只选择一张图片 | |||||
| success: async (res) => { | |||||
| // avatarUrl.value = res.tempFilePaths[0]; | |||||
| // TODO: 在这里处理图片上传逻辑,你可以调用上传接口将图片上传到服务器 | |||||
| // 示例代码: | |||||
| // uploadImageToServer(tempFilePaths[0]); | |||||
| // 图片压缩 | |||||
| console.log(res.tempFiles[0].size); | |||||
| if (userInfoModulesPinia.platForm != 1) { | |||||
| uni.compressImage({ | |||||
| src: res.tempFilePaths[0], | |||||
| quality: 20, | |||||
| success: (res2) => { | |||||
| avatarUrl.value = res2.tempFilePath; | |||||
| console.log(res2.tempFilePath); | |||||
| }, | |||||
| }); | |||||
| } else { | |||||
| const options = { | |||||
| maxSizeMB: 2, // 最大压缩大小为 4MB | |||||
| useWebWorker: true, // 使用 Web Worker 进行压缩,提高性能 | |||||
| }; | |||||
| const compressedFile = await imageCompression( | |||||
| res.tempFiles[0], | |||||
| options | |||||
| ); | |||||
| //compressedFile是一个blob对象 | |||||
| avatarUrl.value = URL.createObjectURL(compressedFile); | |||||
| console.log(compressedFile); | |||||
| // avatarUrl.value = compressedFile; | |||||
| console.log("压缩图片h5"); | |||||
| } | |||||
| }, | |||||
| fail: (err) => { | |||||
| console.error("选择图片失败", err); | |||||
| }, | |||||
| } | |||||
| //#endregion | |||||
| //#region 路由跳转 | |||||
| function goBuyCoin() { | |||||
| uni.showToast({ | |||||
| title: "暂未开放", | |||||
| icon: "none", | |||||
| mask: true, | |||||
| }); | }); | ||||
| // uni.navigateTo({ | |||||
| // url: "/pages/home/buyCoin", | |||||
| // }); | |||||
| } | } | ||||
| function goOtherPage(url, status) { | |||||
| function goLookPhoto(id, status) { | |||||
| if (status != 2) { | if (status != 2) { | ||||
| uni.showToast({ | uni.showToast({ | ||||
| title: "正在生成,请稍后", | title: "正在生成,请稍后", | ||||
| @@ -301,9 +268,16 @@ function goOtherPage(url, status) { | |||||
| return; | return; | ||||
| } | } | ||||
| uni.navigateTo({ | uni.navigateTo({ | ||||
| url: url, | |||||
| url: `/pages/lookPhoto/index?id=${id}`, | |||||
| }); | }); | ||||
| } | } | ||||
| function goCloseStyle() { | |||||
| uni.navigateTo({ | |||||
| url: `/pages/closeStyle/closeStyle`, | |||||
| }); | |||||
| } | |||||
| //#endregion | //#endregion | ||||
| //#region tab | //#region tab | ||||
| @@ -20,7 +20,7 @@ | |||||
| </view> | </view> | ||||
| <view class="bottomBox"> | <view class="bottomBox"> | ||||
| <button | <button | ||||
| v-if="!checkboxValue[0]" | |||||
| v-if="!checkboxValue[0] && userInfoModulesPinia.platForm == 2" | |||||
| class="bottomBtn" | class="bottomBtn" | ||||
| type="default" | type="default" | ||||
| id="getPhoneNumber" | id="getPhoneNumber" | ||||
| @@ -29,7 +29,7 @@ | |||||
| 开始制作我的数字写真 | 开始制作我的数字写真 | ||||
| </button> | </button> | ||||
| <button | <button | ||||
| v-if="checkboxValue[0]" | |||||
| v-if="checkboxValue[0] && userInfoModulesPinia.platForm == 2" | |||||
| class="bottomBtn" | class="bottomBtn" | ||||
| open-type="getPhoneNumber" | open-type="getPhoneNumber" | ||||
| type="default" | type="default" | ||||
| @@ -38,8 +38,31 @@ | |||||
| > | > | ||||
| 开始制作我的数字写真 | 开始制作我的数字写真 | ||||
| </button> | </button> | ||||
| <!-- 抖音获取手机号 --> | |||||
| <!-- <button | |||||
| v-if="userInfoModulesPinia.platForm == 3" | |||||
| class="bottomBtn" | |||||
| open-type="getPhoneNumber" | |||||
| type="default" | |||||
| id="getPhoneNumber" | |||||
| @getphonenumber="dogetphonenumber" | |||||
| > | |||||
| 开始制作我的数字分身 | |||||
| </button> --> | |||||
| <!-- 手机号登录 --> | |||||
| <button | |||||
| v-if="userInfoModulesPinia.platForm == 3" | |||||
| class="bottomBtn" | |||||
| type="default" | |||||
| id="getPhoneNumber" | |||||
| @click="phoneLogin" | |||||
| > | |||||
| 开始制作我的数字分身 | |||||
| </button> | |||||
| <!-- <view class="bottomBtn" @click="toCreate"> 开始制作我的数字写真 </view> --> | <!-- <view class="bottomBtn" @click="toCreate"> 开始制作我的数字写真 </view> --> | ||||
| <!-- 同意协议 --> | |||||
| <u-checkbox-group | <u-checkbox-group | ||||
| v-if="userInfoModulesPinia.platForm == 2" | |||||
| v-model="checkboxValue" | v-model="checkboxValue" | ||||
| placement="row" | placement="row" | ||||
| @change="changedCheckbox" | @change="changedCheckbox" | ||||
| @@ -57,6 +80,45 @@ | |||||
| </text> | </text> | ||||
| </u-checkbox-group> | </u-checkbox-group> | ||||
| </view> | </view> | ||||
| <!-- 手机号验证码登录 --> | |||||
| <view class="phoneLoginForm" v-show="userInfoModulesPinia.platForm == 3"> | |||||
| <u--form | |||||
| labelPosition="left" | |||||
| :model="formData" | |||||
| :rules="rules" | |||||
| ref="formRef" | |||||
| > | |||||
| <u-form-item | |||||
| labelWidth="80" | |||||
| label="手机号" | |||||
| prop="phoneNum" | |||||
| borderBottom | |||||
| ref="form1" | |||||
| > | |||||
| <u--input | |||||
| type="number" | |||||
| v-model="formData.phoneNum" | |||||
| border="none" | |||||
| ></u--input> | |||||
| </u-form-item> | |||||
| <!-- 获取验证码 --> | |||||
| <!-- 验证码 --> | |||||
| <view class="getCodeBtn" @click="getCode"> | |||||
| {{ backwardsNum < 60 ? backwardsNum : "发送验证码" }} | |||||
| </view> | |||||
| <!-- <view v-if="backwardsNums <= 0" class="getCodeBtn">{{ | |||||
| backwardsNum | |||||
| }}</view> --> | |||||
| <u-form-item labelWidth="80" label="验证码 " borderBottom ref="form2"> | |||||
| <u--input | |||||
| type="number" | |||||
| v-model="formData.codeNum" | |||||
| border="none" | |||||
| ></u--input> | |||||
| </u-form-item> | |||||
| </u--form> | |||||
| <view class="loginBtn" @click="loginByCode">登录</view> | |||||
| </view> | |||||
| </view> | </view> | ||||
| </template> | </template> | ||||
| @@ -64,11 +126,16 @@ | |||||
| //#region 导入 | //#region 导入 | ||||
| import { ref, reactive, computed } from "vue"; | import { ref, reactive, computed } from "vue"; | ||||
| import { onLoad } from "@dcloudio/uni-app"; | import { onLoad } from "@dcloudio/uni-app"; | ||||
| import { voiceTotalApi, loginPhoneApi } from "../../api/login.js"; | |||||
| import { | |||||
| loginApi, | |||||
| loginPhoneApi, | |||||
| getCodeApi, | |||||
| loginByCodeApi, | |||||
| } from "../../api/login.js"; | |||||
| import { userInfoModules } from "@/store/modules/userInfo"; | import { userInfoModules } from "@/store/modules/userInfo"; | ||||
| //#endregion | //#endregion | ||||
| const userInfoModulesPinia = userInfoModules(); | const userInfoModulesPinia = userInfoModules(); | ||||
| console.log(userInfoModulesPinia.platForm); | |||||
| const pageClass = computed(() => { | const pageClass = computed(() => { | ||||
| if (userInfoModulesPinia.platForm == 1) { | if (userInfoModulesPinia.platForm == 1) { | ||||
| return "page pageH5"; | return "page pageH5"; | ||||
| @@ -87,12 +154,13 @@ function changedCheckbox(e) { | |||||
| console.log(e); | console.log(e); | ||||
| } | } | ||||
| async function getphonenumber(e) { | |||||
| console.log(e); | |||||
| async function dogetphonenumber(e) { | |||||
| console.log(e, "e"); | |||||
| if (e.detail.errMsg.includes("ok")) { | if (e.detail.errMsg.includes("ok")) { | ||||
| // if (e.detail.errMsg.includes("fail")) { | |||||
| //用户授权了手机号 | //用户授权了手机号 | ||||
| const data = { | const data = { | ||||
| appId: "wx75cf14e3a0d45821", | |||||
| appId: userInfoModulesPinia.getAppId(), | |||||
| openId: userInfoModulesPinia.openId, | openId: userInfoModulesPinia.openId, | ||||
| encryptedData: e.detail.encryptedData, | encryptedData: e.detail.encryptedData, | ||||
| iv: e.detail.iv, | iv: e.detail.iv, | ||||
| @@ -110,7 +178,7 @@ async function getphonenumber(e) { | |||||
| } catch (error) { | } catch (error) { | ||||
| uni.showToast({ | uni.showToast({ | ||||
| icon: "none", | icon: "none", | ||||
| title: "获取失败", | |||||
| title: "获取手机号失败", | |||||
| }); | }); | ||||
| } | } | ||||
| } else { | } else { | ||||
| @@ -126,7 +194,7 @@ async function toCreate(e) { | |||||
| console.log(); | console.log(); | ||||
| if (checkboxValue.value[0]) { | if (checkboxValue.value[0]) { | ||||
| // await handleLogin(); | // await handleLogin(); | ||||
| await getphonenumber(e); | |||||
| await dogetphonenumber(e); | |||||
| } else { | } else { | ||||
| uni.showModal({ | uni.showModal({ | ||||
| title: "提示", | title: "提示", | ||||
| @@ -135,7 +203,7 @@ async function toCreate(e) { | |||||
| if (res.confirm) { | if (res.confirm) { | ||||
| checkboxValue.value = ["同意智像相机用户使用协议"]; | checkboxValue.value = ["同意智像相机用户使用协议"]; | ||||
| // handleLogin(); | // handleLogin(); | ||||
| getphonenumber(e); | |||||
| dogetphonenumber(e); | |||||
| } else if (res.cancel) { | } else if (res.cancel) { | ||||
| } | } | ||||
| }, | }, | ||||
| @@ -192,23 +260,279 @@ const goPro = () => { | |||||
| }; | }; | ||||
| //#endregion --------------------- | //#endregion --------------------- | ||||
| //#region 手机号登录 | |||||
| const formData = ref({ | |||||
| phoneNum: null, | |||||
| codeNum: null, | |||||
| }); | |||||
| const rules = { | |||||
| phoneNum: [ | |||||
| { | |||||
| required: true, | |||||
| message: "请填写手机号", | |||||
| trigger: ["blur"], | |||||
| }, | |||||
| { | |||||
| // 自定义验证函数,见上说明 | |||||
| validator: (rule, value, callback) => { | |||||
| // 上面有说,返回true表示校验通过,返回false表示不通过 | |||||
| // uni.$u.test.mobile()就是返回true或者false的 | |||||
| return uni.$u.test.mobile(value); | |||||
| }, | |||||
| message: "手机号码不正确", | |||||
| // 触发器可以同时用blur和change | |||||
| trigger: ["blur"], | |||||
| }, | |||||
| ], | |||||
| }; | |||||
| const formRef = ref(null); | |||||
| const form1 = ref(null); | |||||
| const backwardsNum = ref(60); | |||||
| const countdownTimer = ref(null); // 倒计时的计时器 | |||||
| const timerFlag = ref(false); | |||||
| function getCode() { | |||||
| if (timerFlag.value) { | |||||
| return; // 如果倒计时尚未结束,不执行倒计时操作 | |||||
| } | |||||
| timerFlag.value = true; | |||||
| formRef.value | |||||
| .validate() | |||||
| .then(async (res) => { | |||||
| try { | |||||
| uni.showLoading({ | |||||
| title: "请稍后", | |||||
| mask: true, | |||||
| }); | |||||
| const res = await getCodeApi(formData.value.phoneNum); | |||||
| uni.hideLoading(); | |||||
| if (res.code != 200) { | |||||
| uni.showToast({ | |||||
| title: res.message, | |||||
| icon: "none", | |||||
| }); | |||||
| } | |||||
| console.log(res); | |||||
| // 表单验证通过后开始倒计时 | |||||
| countdownTimer.value = setInterval(() => { | |||||
| if (backwardsNum.value > 0) { | |||||
| backwardsNum.value--; | |||||
| console.log(backwardsNum.value); | |||||
| } else { | |||||
| clearInterval(countdownTimer.value); | |||||
| countdownTimer.value = null; | |||||
| backwardsNum.value = 60; | |||||
| timerFlag.value = false; | |||||
| } | |||||
| }, 1000); | |||||
| } catch (error) { | |||||
| uni.hideLoading(); | |||||
| uni.$u.toast("短信验证码获取失败"); | |||||
| clearInterval(countdownTimer.value); | |||||
| countdownTimer.value = null; | |||||
| backwardsNum.value = 5; | |||||
| timerFlag.value = false; | |||||
| } | |||||
| }) | |||||
| .catch((errors) => { | |||||
| console.log(errors); | |||||
| }); | |||||
| } | |||||
| async function loginByCode() { | |||||
| uni.showLoading({ | |||||
| title: "请稍后", | |||||
| mask: true, | |||||
| }); | |||||
| const data = { | |||||
| appId: userInfoModulesPinia.getAppId(), | |||||
| openId: userInfoModulesPinia.openId, | |||||
| phone: formData.value.phoneNum, | |||||
| code: formData.value.codeNum, | |||||
| }; | |||||
| try { | |||||
| const res = await loginByCodeApi(data); | |||||
| console.log(res); | |||||
| uni.hideLoading(); | |||||
| userInfoModulesPinia.token = res.data.token; | |||||
| if (res.code != 200) { | |||||
| uni.showToast({ | |||||
| title: res.message, | |||||
| icon: "none", | |||||
| }); | |||||
| } else { | |||||
| uni.redirectTo({ | |||||
| url: "/pages/uploadPhoto/uploadPhoto", | |||||
| }); | |||||
| } | |||||
| } catch (error) { | |||||
| uni.hideLoading(); | |||||
| uni.showToast({ | |||||
| title: "登录失败,请重试", | |||||
| icon: "none", | |||||
| }); | |||||
| } | |||||
| } | |||||
| //#endregion --------------------- | |||||
| //#region | //#region | ||||
| onLoad((options) => { | onLoad((options) => { | ||||
| uni.hideHomeButton(); | uni.hideHomeButton(); | ||||
| // workId.value = options.id; | // workId.value = options.id; | ||||
| if (options.type == "tokenFfalse") { | if (options.type == "tokenFfalse") { | ||||
| uni.showToast({ | uni.showToast({ | ||||
| title: "登录失效,请重新登录", | title: "登录失效,请重新登录", | ||||
| icon: "none", | icon: "none", | ||||
| }); | }); | ||||
| } | } | ||||
| if (userInfoModulesPinia.platForm == 2) { | |||||
| uni.login({ | |||||
| provider: "weixin", // 使用微信登录授权 | |||||
| success: async (res) => { | |||||
| if (res.code) { | |||||
| try { | |||||
| uni.showLoading({ | |||||
| title: "加载中...", | |||||
| mask: true, | |||||
| }); | |||||
| const data = { | |||||
| appId: userInfoModulesPinia.getAppId(), | |||||
| code: res.code, | |||||
| }; | |||||
| const res2 = await loginApi(data); | |||||
| userInfoModulesPinia.openId = res2.data.openId; | |||||
| if (res2.data.token) { | |||||
| userInfoModulesPinia.token = res2.data.token; | |||||
| // uni.setStorageSync("token", userInfoModulesPinia.token); | |||||
| console.log(userInfoModulesPinia.openId, "获取openid"); | |||||
| // 获取头像和金币 | |||||
| const res3 = await findImageApi(); | |||||
| userInfoModulesPinia.myAvatar = | |||||
| res3.data && res3.data.image ? res3.data.image : ""; | |||||
| const res4 = await findGlodApi(); | |||||
| if (!res4.data) { | |||||
| userInfoModulesPinia.myGlod = 0; | |||||
| } else { | |||||
| userInfoModulesPinia.myGlod = res4.data.digitalAvatarResidueGlod | |||||
| ? res4.data.digitalAvatarResidueGlod | |||||
| : 0; | |||||
| } | |||||
| uni.hideLoading(); | |||||
| if (res2.data.token) { | |||||
| // uni.redirectTo({ | |||||
| // url: "/pages/index/index", | |||||
| // }); | |||||
| } else { | |||||
| uni.redirectTo({ | |||||
| url: "/pages/login/index", | |||||
| }); | |||||
| console.log("error1"); | |||||
| uni.showToast({ | |||||
| title: "登录失败,请重试", | |||||
| icon: "none", | |||||
| }); | |||||
| } | |||||
| } | |||||
| uni.hideLoading(); | |||||
| } catch (error) { | |||||
| // uni.redirectTo({ | |||||
| // url: "pages/index/index", | |||||
| // }); | |||||
| console.log(error, "error2"); | |||||
| uni.showToast({ | |||||
| title: "登录失败,请重试", | |||||
| icon: "none", | |||||
| }); | |||||
| } | |||||
| } else { | |||||
| // uni.redirectTo({ | |||||
| // url: "pages/index/index", | |||||
| // }); | |||||
| console.log("error3"); | |||||
| uni.showToast({ | |||||
| title: "登录失败,请重试", | |||||
| icon: "none", | |||||
| }); | |||||
| } | |||||
| }, | |||||
| fail: (err) => { | |||||
| // uni.redirectTo({ | |||||
| // url: "pages/index/index", | |||||
| // }); | |||||
| console.log("error4"); | |||||
| uni.showToast({ | |||||
| title: "登录失败,请重试", | |||||
| icon: "none", | |||||
| }); | |||||
| }, | |||||
| }); | |||||
| } | |||||
| // 抖音头条授权 | |||||
| else if (userInfoModulesPinia.platForm == 3) { | |||||
| uni.login({ | |||||
| provider: "toutiao", // 使用微信登录授权 | |||||
| success: async (res) => { | |||||
| if (res.code) { | |||||
| try { | |||||
| uni.showLoading({ | |||||
| title: "加载中...", | |||||
| mask: true, | |||||
| }); | |||||
| const data = { | |||||
| appId: userInfoModulesPinia.getAppId(), | |||||
| code: res.code, | |||||
| }; | |||||
| const res2 = await loginApi(data); | |||||
| userInfoModulesPinia.openId = res2.data.openId; | |||||
| if (res2.data.token) { | |||||
| userInfoModulesPinia.token = res2.data.token; | |||||
| // uni.setStorageSync("token", userInfoModulesPinia.token); | |||||
| console.log(userInfoModulesPinia.openId, "获取openid"); | |||||
| uni.hideLoading(); | |||||
| } else { | |||||
| uni.hideLoading(); | |||||
| // uni.redirectTo({ | |||||
| // url: "/pages/login/index", | |||||
| // }); | |||||
| console.log("error1"); | |||||
| uni.showToast({ | |||||
| title: "登录失败,请重试", | |||||
| icon: "none", | |||||
| }); | |||||
| } | |||||
| uni.hideLoading(); | |||||
| } catch (error) { | |||||
| uni.hideLoading(); | |||||
| console.log(error, "error2"); | |||||
| uni.showToast({ | |||||
| title: "登录失败,请重试", | |||||
| icon: "none", | |||||
| }); | |||||
| } | |||||
| } else { | |||||
| console.log("error3"); | |||||
| uni.showToast({ | |||||
| title: "登录失败,请重试", | |||||
| icon: "none", | |||||
| }); | |||||
| } | |||||
| }, | |||||
| fail: (err) => { | |||||
| console.log("error4"); | |||||
| uni.showToast({ | |||||
| title: "登录失败,请重试", | |||||
| icon: "none", | |||||
| }); | |||||
| }, | |||||
| }); | |||||
| } | |||||
| }); | }); | ||||
| //#endregion --------------------------------- | //#endregion --------------------------------- | ||||
| //#region | //#region | ||||
| //#endregion --------------------------------- | //#endregion --------------------------------- | ||||
| // voiceTotalApi(); | |||||
| </script> | </script> | ||||
| <style lang="scss"> | <style lang="scss"> | ||||
| @@ -263,4 +587,30 @@ onLoad((options) => { | |||||
| } | } | ||||
| } | } | ||||
| } | } | ||||
| .phoneLoginForm { | |||||
| position: absolute; | |||||
| top: 20%; | |||||
| left: 30rpx; | |||||
| width: 690rpx; | |||||
| z-index: 9; | |||||
| background-color: #fff; | |||||
| padding: 30rpx; | |||||
| .u-code { | |||||
| width: 100%; | |||||
| height: 50rpx; | |||||
| background-color: green; | |||||
| color: #ff4f00; | |||||
| } | |||||
| .getCodeBtn { | |||||
| background-color: green; | |||||
| text-align: center; | |||||
| line-height: 50rpx; | |||||
| } | |||||
| .loginBtn { | |||||
| background-color: #ff4f00; | |||||
| text-align: center; | |||||
| line-height: 50rpx; | |||||
| } | |||||
| } | |||||
| </style> | </style> | ||||
| @@ -219,9 +219,14 @@ function inviteFriend() { | |||||
| //#region 页面跳转 | //#region 页面跳转 | ||||
| function buyCoin() { | function buyCoin() { | ||||
| uni.navigateTo({ | |||||
| url: "/pages/index/buyCoin", | |||||
| uni.showToast({ | |||||
| title: "暂未开放", | |||||
| icon: "none", | |||||
| mask: true, | |||||
| }); | }); | ||||
| // uni.navigateTo({ | |||||
| // url: "/pages/index/buyCoin", | |||||
| // }); | |||||
| } | } | ||||
| //#endregion --------------------- | //#endregion --------------------- | ||||
| @@ -255,6 +260,7 @@ async function photoSupper() { | |||||
| console.log(res); | console.log(res); | ||||
| uni.hideLoading(); | uni.hideLoading(); | ||||
| uni.showToast({ | uni.showToast({ | ||||
| title: "高清处理请求成功,请稍后", | |||||
| title: "高清处理请求成功,请稍等", | title: "高清处理请求成功,请稍等", | ||||
| icon: "none", | icon: "none", | ||||
| }); | }); | ||||
| @@ -105,9 +105,14 @@ function previewImage(index) { | |||||
| //#region 页面跳转 | //#region 页面跳转 | ||||
| function bueCoin() { | function bueCoin() { | ||||
| uni.navigateTo({ | |||||
| url: "/pages/home/buyCoin", | |||||
| uni.showToast({ | |||||
| title: "暂未开放", | |||||
| icon: "none", | |||||
| mask: true, | |||||
| }); | }); | ||||
| // uni.navigateTo({ | |||||
| // url: "/pages/home/buyCoin", | |||||
| // }); | |||||
| } | } | ||||
| //#endregion --------------------- | //#endregion --------------------- | ||||
| @@ -109,7 +109,6 @@ const showImgData = ref(null); //上传数据 | |||||
| // 点击上传图片 | // 点击上传图片 | ||||
| function chooseImage() { | function chooseImage() { | ||||
| console.log("chooseImage"); | |||||
| // 检查token | // 检查token | ||||
| if (!userInfoModulesPinia.token) { | if (!userInfoModulesPinia.token) { | ||||
| uni.showModal({ | uni.showModal({ | ||||
| @@ -207,7 +206,7 @@ async function toCloseStyle() { | |||||
| console.log(showImgUrl2.value.path); | console.log(showImgUrl2.value.path); | ||||
| // 百度敏感信息检测 | // 百度敏感信息检测 | ||||
| uni.uploadFile({ | uni.uploadFile({ | ||||
| url: "https://test.metavatar.cc/C/api/baidu/checkPhoto", //上传图片api | |||||
| url: BASE_URL + "api/baidu/checkPhoto", //上传图片api | |||||
| filePath: showImgUrl2.value.path, | filePath: showImgUrl2.value.path, | ||||
| name: "file", | name: "file", | ||||
| formData: { | formData: { | ||||
| @@ -225,7 +224,7 @@ async function toCloseStyle() { | |||||
| } | } | ||||
| // 人脸识别接口 | // 人脸识别接口 | ||||
| uni.uploadFile({ | uni.uploadFile({ | ||||
| url: "https://test.metavatar.cc/C/api/userDigital/checkPhoto", //上传图片api | |||||
| url: BASE_URL + "api/userDigital/checkPhoto", //上传图片api | |||||
| filePath: showImgUrl2.value.path, | filePath: showImgUrl2.value.path, | ||||
| name: "file", | name: "file", | ||||
| formData: { | formData: { | ||||
| @@ -243,7 +242,7 @@ async function toCloseStyle() { | |||||
| } | } | ||||
| // 上传接口 | // 上传接口 | ||||
| uni.uploadFile({ | uni.uploadFile({ | ||||
| url: "https://test.metavatar.cc/C/api/upload/awsImgUpload", //上传图片api | |||||
| url: BASE_URL + "api/upload/awsImgUpload", //上传图片api | |||||
| filePath: showImgUrl2.value.path, | filePath: showImgUrl2.value.path, | ||||
| name: "file", | name: "file", | ||||
| formData: { | formData: { | ||||
| @@ -327,22 +326,21 @@ async function toCloseStyle() { | |||||
| //#region 页面初始化 | //#region 页面初始化 | ||||
| onLoad((options) => { | onLoad((options) => { | ||||
| // showImgUrl.value = userInfoModulesPinia.myAvatar; | |||||
| // 获取微信小程序的 AppID | |||||
| // const appid = uni.getAccountInfoSync().miniProgram.appId; | |||||
| // 微信登录授权 | // 微信登录授权 | ||||
| if (userInfoModulesPinia.platForm != 1) { | |||||
| if (userInfoModulesPinia.platForm == 2) { | |||||
| uni.login({ | uni.login({ | ||||
| provider: "weixin", // 使用微信登录授权 | provider: "weixin", // 使用微信登录授权 | ||||
| success: async (res) => { | success: async (res) => { | ||||
| console.log(res); | |||||
| if (res.code) { | if (res.code) { | ||||
| console.log(res.code); | |||||
| try { | try { | ||||
| uni.showLoading({ | uni.showLoading({ | ||||
| title: "加载中...", | title: "加载中...", | ||||
| mask: true, | mask: true, | ||||
| }); | }); | ||||
| const data = { | const data = { | ||||
| appId: "wx75cf14e3a0d45821", | |||||
| appId: userInfoModulesPinia.getAppId(), | |||||
| code: res.code, | code: res.code, | ||||
| }; | }; | ||||
| const res2 = await loginApi(data); | const res2 = await loginApi(data); | ||||
| @@ -413,7 +411,77 @@ onLoad((options) => { | |||||
| }, | }, | ||||
| }); | }); | ||||
| } | } | ||||
| console.log(options); | |||||
| // 抖音头条授权 | |||||
| else if (userInfoModulesPinia.platForm == 3) { | |||||
| uni.login({ | |||||
| provider: "toutiao", // 使用微信登录授权 | |||||
| success: async (res) => { | |||||
| if (res.code) { | |||||
| try { | |||||
| uni.showLoading({ | |||||
| title: "加载中...", | |||||
| mask: true, | |||||
| }); | |||||
| const data = { | |||||
| appId: userInfoModulesPinia.getAppId(), | |||||
| code: res.code, | |||||
| }; | |||||
| const res2 = await loginApi(data); | |||||
| userInfoModulesPinia.openId = res2.data.openId; | |||||
| if (res2.data.token) { | |||||
| userInfoModulesPinia.token = res2.data.token; | |||||
| // uni.setStorageSync("token", userInfoModulesPinia.token); | |||||
| console.log(userInfoModulesPinia.openId, "获取openid"); | |||||
| // 获取头像和金币 | |||||
| const res3 = await findImageApi(); | |||||
| userInfoModulesPinia.myAvatar = | |||||
| res3.data && res3.data.image ? res3.data.image : ""; | |||||
| const res4 = await findGlodApi(); | |||||
| if (!res4.data) { | |||||
| userInfoModulesPinia.myGlod = 0; | |||||
| } else { | |||||
| userInfoModulesPinia.myGlod = res4.data.digitalAvatarResidueGlod | |||||
| ? res4.data.digitalAvatarResidueGlod | |||||
| : 0; | |||||
| } | |||||
| uni.hideLoading(); | |||||
| } else { | |||||
| uni.hideLoading(); | |||||
| uni.redirectTo({ | |||||
| url: "/pages/login/index", | |||||
| }); | |||||
| console.log("error1"); | |||||
| uni.showToast({ | |||||
| title: "登录失败,请重试", | |||||
| icon: "none", | |||||
| }); | |||||
| } | |||||
| uni.hideLoading(); | |||||
| } catch (error) { | |||||
| uni.hideLoading(); | |||||
| console.log(error, "error2"); | |||||
| uni.showToast({ | |||||
| title: "登录失败,请重试", | |||||
| icon: "none", | |||||
| }); | |||||
| } | |||||
| } else { | |||||
| console.log("error3"); | |||||
| uni.showToast({ | |||||
| title: "登录失败,请重试", | |||||
| icon: "none", | |||||
| }); | |||||
| } | |||||
| }, | |||||
| fail: (err) => { | |||||
| console.log("error4"); | |||||
| uni.showToast({ | |||||
| title: "登录失败,请重试", | |||||
| icon: "none", | |||||
| }); | |||||
| }, | |||||
| }); | |||||
| } | |||||
| }); | }); | ||||
| onShow(() => { | onShow(() => { | ||||
| // 若来自我的页面的更换头像按钮,直接触发以下操作 | // 若来自我的页面的更换头像按钮,直接触发以下操作 | ||||
| @@ -14,6 +14,8 @@ export const userInfoModules = defineStore("userInfoStore", () => { | |||||
| const token = ref(null) | const token = ref(null) | ||||
| const myAvatar = ref('') | const myAvatar = ref('') | ||||
| const myGlod = ref(0) | const myGlod = ref(0) | ||||
| const wxappid = "wx75cf14e3a0d45821" | |||||
| const dyappid = "tt2eba5807b1883f9f01" | |||||
| /** | /** | ||||
| * @description:依托平台:(web、mp-weixin、mp-toutiao) | * @description:依托平台:(web、mp-weixin、mp-toutiao) | ||||
| * @example 平台名:"web-H5",枚举值:1 | * @example 平台名:"web-H5",枚举值:1 | ||||
| @@ -40,7 +42,14 @@ export const userInfoModules = defineStore("userInfoStore", () => { | |||||
| // async function getMyGlod(params) { | // async function getMyGlod(params) { | ||||
| // } | // } | ||||
| return { userInfo, openId, token, myAvatar, myGlod, platForm, hostSystem }; | |||||
| function getAppId() { | |||||
| if (platForm.value == 2) { | |||||
| return wxappid | |||||
| } else if (platForm.value == 3) { | |||||
| return dyappid | |||||
| } | |||||
| } | |||||
| return { userInfo, openId, token, myAvatar, myGlod, platForm, hostSystem, wxappid, dyappid, getAppId }; | |||||
| }, | }, | ||||
| { | { | ||||
| @@ -45,4 +45,4 @@ const request = (requestObj) => { | |||||
| }) | }) | ||||
| }) | }) | ||||
| }; | }; | ||||
| export default request | |||||
| export { BASE_URL, request } | |||||