增加页面,修改邀请页面名称以及相关跳转

This commit is contained in:
2024-12-23 18:19:39 +08:00
parent 7b44d1f9fb
commit 002fb06447
64 changed files with 6576 additions and 444 deletions

View File

@@ -1,25 +1,56 @@
<template>
<view style="padding-bottom: 40rpx;">
<view class="plot flex align-center justify-center">
<view class="plot-box">
<view class="plot-box-item flex justify-between" @click="goCourse(item.courseId,item.courseDetailsId)"
v-for="(item,index) in jqList" :key="index">
<view class="plot-box-item-l">
<view class="page">
<view class="ymf-plot flex align-center justify-center">
<view class="ymf-plot-box">
<view class="ymf-plot-box-item flex justify-between"
@click="ymfgoCourse(item.courseId,item.courseDetailsId)" v-for="(item,index) in juQingList"
:key="index">
<view class="ymf-plot-box-item-l">
<image :src="item.titleImg" mode=""></image>
</view>
<view class="plot-box-item-r">
<view class="plot-box-item-r-title">
<view class="ymf-plot-box-item-r">
<view class="ymf-plot-box-item-r-title">
{{item.title}}
</view>
<view class="plot-box-item-r-content" v-html="item.details">
<view class="ymf-plot-box-item-r-content" v-html="item.details">
</view>
</view>
</view>
</view>
</view>
<empty v-if="jqList.length == 0" />
<u-loadmore v-if="jqList.length > 4" :status="status" />
<empty v-if="juQingList.length == 0" />
<!-- <view>
<image src="@/me/static/ymf/1b3d78fa5f92af069751ea64d493c0d85050b1e03cc5b-tPC378.png" mode=""></image>
<image src="@/me/static/ymf/390e926273eea85c894e613d42c9931ee2cd1f0a200fd-ApyNVV.png" mode=""></image>
<image src="@/me/static/ymf/79cbb0e34c24915f1883feaa3cf3179b0a1ceb1362a18-unU6xQ.png" mode=""></image>
<image src="@/me/static/ymf/cb319b604e49b816971b708b1231321318e0023610d8c-I24hXU.jpg" mode=""></image>
<image src="@/me/static/ymf/cf2d172a6da494b2e577f699254a780907b7c222246d7-ehahn1.png" mode=""></image>
<image src="@/me/static/ymf/eaae3095c9e433fb8a015aaebbe52047009dd863ff2b9-igSItK.png" mode=""></image>
<image src="@/me/static/ymf/f3c60c6f31c74bdf38ba2d8993bcb443ab9bc335cc875-xfx4CJ.png" mode=""></image>
<image src="@/me/static/ymf/c93b4cc9363d52cba140f7239516344ece9388141079a4-do8mFc.png" mode=""></image>
<image src="@/me/static/ymf/031da1e7f043de5d5e1ee355994a93e5ec983aca44dc-sZf0Vl_fw1200.jpg" mode=""></image>
<image src="@/me/static/ymf/c4e6c5023b94de32df2f51d9ebd633790cc6125a88e4-TIyAcR_fw1200.jpg" mode=""></image>
<image src="@/me/static/ymf/f7da7a8ca57f9f0d56bbb3d7be1d1c86f96304ce4b3a-iVbD8U_fw1200.jpg" mode=""></image>
<image src="@/me/static/ymf/2e521eee5a8c80ea6879028ee866c5d0531bc4f1d5e48-Bh95lN_fw1200.jpg" mode=""></image>
<image src="@/me/static/ymf/38cf4e97e52b50be9dcdcdc1352c497e1acc9266cd52-aUOrxn_fw1200.webp" mode=""></image>
<image src="@/me/static/ymf/73170e6a596b72538dbe743b06ef8b96e4885aff5b4c3-MsouS7_fw1200.jpg" mode=""></image>
<image src="@/me/static/ymf/e9f9cb6b95c21c714015f15c372f595367aa553f443a-WpOCNo_fw1200.webp" mode=""></image>
<image src="@/me/static/ymf/f5d96faaa94cb0151a5c95db44e27b80ed6eeac5cb32-rApi2S_fw1200.webp" mode=""></image>
<image src="@/me/static/ymf/0e114b9ac6afc2b4c0f29520178be64915a111e218a8b5-mbMpg2_fw1200.jpg" mode=""></image>
<image src="@/me/static/ymf/4783f7272bf31eeafbe1362605477de14b7cd3da24b0-ggkAnW_fw658webp.webp" mode=""></image>
<image src="@/me/static/ymf/8dce1d3c3a8287c35bc1bf394048d57a64acfa047d4e-6wXnWE_fw658webp.webp" mode=""></image>
<image src="@/me/static/ymf/ff919b6254e376cc902c89afdcc194ac2ab39c93793b-8TdL1Z_fw658webp.webp" mode=""></image>
<image src="@/me/static/ymf/3c9a5848127a67f98e25176a042511b89afd31daccc2f-5EHbxD_fw658webp.webp" mode=""></image>
<image src="@/me/static/ymf/6c9e57bcbcb047039a8edb30ecdd3b912bac99555a8fc-9EK0oO_fw658webp.webp" mode=""></image>
<image src="@/me/static/ymf/78a020586cfbb791918b767520a8ff3c2ab9660f1ee1b-GX4zcc_fw658webp.webp" mode=""></image>
<image src="@/me/static/ymf/babf535567728d84346fbb13348e94aae3ec8f82106e2-QKPJoe_fw658webp.webp" mode=""></image>
<image src="@/me/static/ymf/d1e4d760358ba0733faee6bcad1e23cb4a1d6d76ba290-O3hUrf_fw240webp.webp" mode=""></image>
<image src="@/me/static/ymf/dcb5a4b0b1060b569f9fc618e6e2708b584f7def1cadf-R7jpIr_fw658webp.webp" mode=""></image>
<image src="@/me/static/ymf/e4330f184149f502f4948ce3b60059edaffc9c3d94ca4-B11p5c_fw658webp.webp" mode=""></image>
<image src="@/me/static/ymf/fa22e2a27871e5f8841e8abb12cc4347a6b9440816068-3XsAnJ_fw658webp.webp" mode=""></image>
</view> -->
<u-loadmore v-if="juQingList.length > 4" :status="status" />
</view>
</template>
@@ -31,7 +62,7 @@
},
data() {
return {
jqList: [], //剧情列表
juQingList: [], //剧情列表
page: 1,
limit: 10,
pages: 1,
@@ -39,24 +70,24 @@
};
},
onLoad() {
this.getJqList()
this.ymfgetjuQingList()
},
onReachBottom() {
if (this.page < this.pages) {
this.page += 1
this.status = 'loading'
this.getJqList()
this.ymfgetjuQingList()
} else {
this.status = 'nomore'
}
},
onPullDownRefresh() {
this.page = 1
this.getJqList()
this.ymfgetjuQingList()
},
methods: {
// 跳转资源详情
goCourse(e, courseDetailsId) {
ymfgoCourse(e, courseDetailsId) {
let userId = uni.getStorageSync('userId')
if (userId) {
uni.navigateTo({
@@ -71,7 +102,7 @@
/**
* 获取剧情列表
*/
getJqList() {
ymfgetjuQingList() {
let data = {
limit: this.limit,
page: this.page,
@@ -87,9 +118,9 @@
this.status = 'nomore'
}
if (this.page === 1) {
this.jqList = res.data.list
this.juQingList = res.data.list
} else {
this.jqList = [...this.jqList, ...res.data.list]
this.juQingList = [...this.juQingList, ...res.data.list]
}
}
@@ -99,18 +130,22 @@
}
</script>
<style lang="scss">
.plot {
<style lang="scss" scoped>
.page {
padding-bottom: 40rpx;
}
.ymf-plot {
width: 100%;
height: auto;
padding-top: 20rpx;
.plot-box {
.ymf-plot-box {
width: 686rpx;
height: 100%;
}
.plot-box-item {
.ymf-plot-box-item {
width: 100%;
margin-bottom: 20rpx;
background-color: #FFFFFF;
@@ -118,7 +153,7 @@
padding: 20rpx;
}
.plot-box-item-l {
.ymf-plot-box-item-l {
width: 200rpx;
height: 260rpx;
border-radius: 16rpx;
@@ -131,17 +166,17 @@
}
.plot-box-item-r {
.ymf-plot-box-item-r {
width: calc(686rpx - 260rpx);
}
.plot-box-item-r-title {
.ymf-plot-box-item-r-title {
font-size: 32rpx;
font-weight: bold;
color: #2e2f33;
}
.plot-box-item-r-content {
.ymf-plot-box-item-r-content {
font-size: 28rpx;
color: #2e2f33;
margin-top: 10rpx;

View File

@@ -0,0 +1,140 @@
<template>
<view class="u-p-l-40 u-p-r-40">
<view class="u-text-center u-font-32 font-bold color-000">你的数字分身制作好啦!</view>
<view class="color-999 u-font-24 u-text-center u-m-t-10">为你随机生成了几张照片</view>
<view class="color-999 u-font-24 u-text-center ">选一个最满意的作为数字分身头像吧</view>
<view class="list u-flex u-flex-wrap u-row-between u-m-t-20" style="padding-bottom: 200rpx;">
<view class="list-item u-m-b-20" @click="changeSel(index)" v-for="(item,index) in arr" :key="index">
<view class="item">
<view class="u-absolute u-flex u-row-center u-col-center">
<view class="gou" v-if="sel==index">
<u-icon name="checkmark" size="40" color="#fff"></u-icon>
</view>
</view>
<image :src="item.smallUrl" mode="aspectFill"></image>
</view>
</view>
</view>
<view>
<image src="@/me/static/ymf/1b3d78fa5f92af069751ea64d493c0d85050b1e03cc5b-tPC378.png" mode=""></image>
<image src="@/me/static/ymf/390e926273eea85c894e613d42c9931ee2cd1f0a200fd-ApyNVV.png" mode=""></image>
<image src="@/me/static/ymf/79cbb0e34c24915f1883feaa3cf3179b0a1ceb1362a18-unU6xQ.png" mode=""></image>
<image src="@/me/static/ymf/cb319b604e49b816971b708b1231321318e0023610d8c-I24hXU.jpg" mode=""></image>
<image src="@/me/static/ymf/cf2d172a6da494b2e577f699254a780907b7c222246d7-ehahn1.png" mode=""></image>
<image src="@/me/static/ymf/eaae3095c9e433fb8a015aaebbe52047009dd863ff2b9-igSItK.png" mode=""></image>
<image src="@/me/static/ymf/f3c60c6f31c74bdf38ba2d8993bcb443ab9bc335cc875-xfx4CJ.png" mode=""></image>
<image src="@/me/static/ymf/c93b4cc9363d52cba140f7239516344ece9388141079a4-do8mFc.png" mode=""></image>
<image src="@/me/static/ymf/031da1e7f043de5d5e1ee355994a93e5ec983aca44dc-sZf0Vl_fw1200.jpg" mode=""></image>
<image src="@/me/static/ymf/c4e6c5023b94de32df2f51d9ebd633790cc6125a88e4-TIyAcR_fw1200.jpg" mode=""></image>
<image src="@/me/static/ymf/f7da7a8ca57f9f0d56bbb3d7be1d1c86f96304ce4b3a-iVbD8U_fw1200.jpg" mode=""></image>
<image src="@/me/static/ymf/2e521eee5a8c80ea6879028ee866c5d0531bc4f1d5e48-Bh95lN_fw1200.jpg" mode=""></image>
<image src="@/me/static/ymf/38cf4e97e52b50be9dcdcdc1352c497e1acc9266cd52-aUOrxn_fw1200.webp" mode=""></image>
<image src="@/me/static/ymf/73170e6a596b72538dbe743b06ef8b96e4885aff5b4c3-MsouS7_fw1200.jpg" mode=""></image>
<image src="@/me/static/ymf/e9f9cb6b95c21c714015f15c372f595367aa553f443a-WpOCNo_fw1200.webp" mode=""></image>
<image src="@/me/static/ymf/f5d96faaa94cb0151a5c95db44e27b80ed6eeac5cb32-rApi2S_fw1200.webp" mode=""></image>
<image src="@/me/static/ymf/0e114b9ac6afc2b4c0f29520178be64915a111e218a8b5-mbMpg2_fw1200.jpg" mode=""></image>
<image src="@/me/static/ymf/4783f7272bf31eeafbe1362605477de14b7cd3da24b0-ggkAnW_fw658webp.webp" mode=""></image>
<image src="@/me/static/ymf/8dce1d3c3a8287c35bc1bf394048d57a64acfa047d4e-6wXnWE_fw658webp.webp" mode=""></image>
<image src="@/me/static/ymf/ff919b6254e376cc902c89afdcc194ac2ab39c93793b-8TdL1Z_fw658webp.webp" mode=""></image>
<image src="@/me/static/ymf/3c9a5848127a67f98e25176a042511b89afd31daccc2f-5EHbxD_fw658webp.webp" mode=""></image>
<image src="@/me/static/ymf/6c9e57bcbcb047039a8edb30ecdd3b912bac99555a8fc-9EK0oO_fw658webp.webp" mode=""></image>
<image src="@/me/static/ymf/78a020586cfbb791918b767520a8ff3c2ab9660f1ee1b-GX4zcc_fw658webp.webp" mode=""></image>
<image src="@/me/static/ymf/babf535567728d84346fbb13348e94aae3ec8f82106e2-QKPJoe_fw658webp.webp" mode=""></image>
<image src="@/me/static/ymf/d1e4d760358ba0733faee6bcad1e23cb4a1d6d76ba290-O3hUrf_fw240webp.webp" mode=""></image>
<image src="@/me/static/ymf/dcb5a4b0b1060b569f9fc618e6e2708b584f7def1cadf-R7jpIr_fw658webp.webp" mode=""></image>
<image src="@/me/static/ymf/e4330f184149f502f4948ce3b60059edaffc9c3d94ca4-B11p5c_fw658webp.webp" mode=""></image>
<image src="@/me/static/ymf/fa22e2a27871e5f8841e8abb12cc4347a6b9440816068-3XsAnJ_fw658webp.webp" mode=""></image>
</view>
<view class="u-flex u-row-center">
<view class="" style="width: 420rpx;">
<my-button @click="start">开始制作大片</my-button>
</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {
sel: 0,
data: '',
arr: [],
};
},
onLoad(opt) {
this.$api({
url: 'model/info/' + opt.id
}).then(res => {
this.data = res.data
this.arr = res.data.modelAvartars
})
},
methods: {
changeSel(i){
this.sel=i
},
async start() {
console.log(this.arr[this.sel]);
const item = this.arr[this.sel].id
const res = await this.$api({
url: 'model/change/' + this.data.id,
})
const res2 = await this.$api({
url: 'model/change-main-photo/' + this.data.id + '/' + this.arr[this.sel].id
})
const res1 = await this.$api({
url: "user/info"
})
this.userInfo = res1.data
uni.setStorageSync('userInfo', res1.data)
uni.switchTab({
url:'/pages/index/index'
})
}
}
}
</script>
<style lang="scss" scoped>
.list {
.item {
display: flex;
border: 1px solid rgb(32, 33, 29);
border-radius: 30rpx;
overflow: hidden;
justify-content: center;
align-items: center;
position: relative;
.u-absolute {
left: 0;
right: 0;
top: 0;
bottom: 0;
z-index: 2;
.pro {
position: absolute;
left: 10rpx;
bottom: 10rpx;
}
.gou {
position: absolute;
right: 0;
bottom: 0;
padding-top: 10rpx;
padding-left: 10rpx;
border-radius: 30rpx 0 0 0;
background-color: rgb(35, 33, 34);
}
}
image {
width: 320rpx;
height: 320rpx;
}
}
}
</style>

View File

@@ -0,0 +1,214 @@
<template>
<view class="u-p-l-30 u-p-r-30">
<view class="u-flex u-row-center u-text-center" v-if="!isFinish">
<view class="color-999">预计需要</view>
<u-count-down v-if="isAjax" separator="zh" ref="uCountDown" :timestamp="time"></u-count-down>
</view>
<view class="u-flex u-flex-wrap u-m-t-20">
<view class="box1 u-m-r-10 " :class="{donghua:isStart}" v-for="(item1,index1) in arr" :key="index1">
<image v-if="item1" :src="item1.smallUrl" mode="aspectFill"></image>
</view>
</view>
<view class="u-m-t-40 color-999 u-font-24 u-text-center" v-if="!isFinish">
您可以关闭页面稍后进入小程序查看训练结果
</view>
<view class="u-m-t-60" v-if="isFinish">
<view class="font-bold color-000 u-font-32 u-text-center">制作完成</view>
<view class="u-m-t-60 u-flex u-row-center">
<view style="width: 360rpx;">
<my-button @click="toDetail">立即查看</my-button>
</view>
</view>
</view>
<view>
<image src="@/me/static/ymf/1b3d78fa5f92af069751ea64d493c0d85050b1e03cc5b-tPC378.png" mode=""></image>
<image src="@/me/static/ymf/390e926273eea85c894e613d42c9931ee2cd1f0a200fd-ApyNVV.png" mode=""></image>
<image src="@/me/static/ymf/79cbb0e34c24915f1883feaa3cf3179b0a1ceb1362a18-unU6xQ.png" mode=""></image>
<image src="@/me/static/ymf/cb319b604e49b816971b708b1231321318e0023610d8c-I24hXU.jpg" mode=""></image>
<image src="@/me/static/ymf/cf2d172a6da494b2e577f699254a780907b7c222246d7-ehahn1.png" mode=""></image>
<image src="@/me/static/ymf/eaae3095c9e433fb8a015aaebbe52047009dd863ff2b9-igSItK.png" mode=""></image>
<image src="@/me/static/ymf/f3c60c6f31c74bdf38ba2d8993bcb443ab9bc335cc875-xfx4CJ.png" mode=""></image>
<image src="@/me/static/ymf/c93b4cc9363d52cba140f7239516344ece9388141079a4-do8mFc.png" mode=""></image>
<image src="@/me/static/ymf/031da1e7f043de5d5e1ee355994a93e5ec983aca44dc-sZf0Vl_fw1200.jpg" mode=""></image>
<image src="@/me/static/ymf/c4e6c5023b94de32df2f51d9ebd633790cc6125a88e4-TIyAcR_fw1200.jpg" mode=""></image>
<image src="@/me/static/ymf/f7da7a8ca57f9f0d56bbb3d7be1d1c86f96304ce4b3a-iVbD8U_fw1200.jpg" mode=""></image>
<image src="@/me/static/ymf/2e521eee5a8c80ea6879028ee866c5d0531bc4f1d5e48-Bh95lN_fw1200.jpg" mode=""></image>
<image src="@/me/static/ymf/38cf4e97e52b50be9dcdcdc1352c497e1acc9266cd52-aUOrxn_fw1200.webp" mode=""></image>
<image src="@/me/static/ymf/73170e6a596b72538dbe743b06ef8b96e4885aff5b4c3-MsouS7_fw1200.jpg" mode=""></image>
<image src="@/me/static/ymf/e9f9cb6b95c21c714015f15c372f595367aa553f443a-WpOCNo_fw1200.webp" mode=""></image>
<image src="@/me/static/ymf/f5d96faaa94cb0151a5c95db44e27b80ed6eeac5cb32-rApi2S_fw1200.webp" mode=""></image>
<image src="@/me/static/ymf/0e114b9ac6afc2b4c0f29520178be64915a111e218a8b5-mbMpg2_fw1200.jpg" mode=""></image>
<image src="@/me/static/ymf/4783f7272bf31eeafbe1362605477de14b7cd3da24b0-ggkAnW_fw658webp.webp" mode=""></image>
<image src="@/me/static/ymf/8dce1d3c3a8287c35bc1bf394048d57a64acfa047d4e-6wXnWE_fw658webp.webp" mode=""></image>
<image src="@/me/static/ymf/ff919b6254e376cc902c89afdcc194ac2ab39c93793b-8TdL1Z_fw658webp.webp" mode=""></image>
<image src="@/me/static/ymf/3c9a5848127a67f98e25176a042511b89afd31daccc2f-5EHbxD_fw658webp.webp" mode=""></image>
<image src="@/me/static/ymf/6c9e57bcbcb047039a8edb30ecdd3b912bac99555a8fc-9EK0oO_fw658webp.webp" mode=""></image>
<image src="@/me/static/ymf/78a020586cfbb791918b767520a8ff3c2ab9660f1ee1b-GX4zcc_fw658webp.webp" mode=""></image>
<image src="@/me/static/ymf/babf535567728d84346fbb13348e94aae3ec8f82106e2-QKPJoe_fw658webp.webp" mode=""></image>
<image src="@/me/static/ymf/d1e4d760358ba0733faee6bcad1e23cb4a1d6d76ba290-O3hUrf_fw240webp.webp" mode=""></image>
<image src="@/me/static/ymf/dcb5a4b0b1060b569f9fc618e6e2708b584f7def1cadf-R7jpIr_fw658webp.webp" mode=""></image>
<image src="@/me/static/ymf/e4330f184149f502f4948ce3b60059edaffc9c3d94ca4-B11p5c_fw658webp.webp" mode=""></image>
<image src="@/me/static/ymf/fa22e2a27871e5f8841e8abb12cc4347a6b9440816068-3XsAnJ_fw658webp.webp" mode=""></image>
</view>
<u-toast ref="uToast"></u-toast>
</view>
</template>
<script>
export default {
data() {
return {
time: 15 * 60,
isStart: false,
id: '',
arr: [],
timer: null,
isFinish:false,
isAjax:false,
userInfo: uni.getStorageSync('userInfo')
};
},
onUnload() {
clearInterval(this.timer)
this.timer = null
},
methods:{
toDetail(){
if(!userInfo.modelId){
return this.$u.route({
url:'/pages/first/fenshen-select',
params:{id:this.id}
})
}
this.$u.route('/pages/control-fenshen/fensehn-detail?id='+(this.id))
}
},
onLoad(opt) {
this.id = opt.id || undefined
if (this.id) {
this.$api({
url: 'model/info/' + this.id
}).then(res => {
console.log(res);
this.isStart = true
// this.arr = (res.data.modelPhotos || []).slice(0, 20)
this.arr = (res.data.modelPhotos || []).filter(v=>{
return v.suitable
})
if(res.data.trainTime){
const time=15 * 60-(+new Date()-(+new Date(res.data.trainTime.replace('T',' ').replaceAll('-','/')) )) /1000
this.time=time<=0?0:time;
console.log(this.time);
}
this.isAjax=true
if(res.code==200&res.data.state==3){
this.isFinish=true
this.isStart = false
// this.$u.route('/pages/control-fenshen/fensehn-detail?id='+(res.data.id||this.id))
}
})
this.timer=setInterval(()=>{
this.$api({
url: 'model/info/' + this.id
}).then(res => {
if(res.code==200&res.data.trainTime){
// this.time=res.data.trainTime
}
if(res.code==200&res.data.state==3){
this.isFinish=true
this.isStart = false
// this.$u.route('/pages/control-fenshen/fensehn-detail?id='+(res.data.id||this.id))
}
})
},1000*10)
if (opt.isPay) {
this.$api({
url: 'model/start-train/' + this.id
}).then(res => {
if (res.code == 200) {
this.isStart = true
}else{
clearInterval(this.timer)
this.timer = null
this.isStart = false
}
this.$refs.uToast.show({
title: res.message,
type: res.code == 200 ? 'success' : 'error'
})
})
}
}
},
}
</script>
<style lang="scss">
.box1 {
overflow: hidden;
background-color: rgb(244, 244, 244);
border-radius: 20rpx;
width: 128rpx;
height: 140rpx;
margin-bottom: 10rpx;
image {
width: 128rpx;
height: 140rpx;
}
}
.img-box {
position: relative;
width: 120rpx;
height: 120rpx;
display: flex;
border-radius: 10rpx;
overflow: hidden;
.wh120 {
width: 120rpx;
height: 120rpx;
}
}
.ani1 {
animation: keys 2s ease-in-out alternate infinite;
}
.ani2 {
animation: keys2 2s ease-in-out alternate infinite;
}
.ani {
animation: anikeys 3s ease-in-out alternate infinite;
}
@keyframes keys2 {
from {
opacity: 1;
transform: scale(1);
}
to {
opacity: 0;
transform: scale(0);
}
}
@keyframes keys {
from {
opacity: 0;
transform: scale(0);
}
to {
opacity: 1;
transform: scale(1);
}
}
</style>