Преглед изворни кода

Merge branch 'master' of http://150.158.33.144:3000/lalalashen/MoeNovaClient

ck@123911.net пре 7 месеци
родитељ
комит
f1772d91d8
68 измењених фајлова са 1500 додато и 2744 уклоњено
  1. 7 1
      App.vue
  2. 0 316
      app/components/ShareModal.vue
  3. 113 99
      components/CommentSection/CommentSection.vue
  4. 15 10
      components/cc-comment/cc-comment.vue
  5. 14 16
      components/checkIn-popUp-window/checkIn-popUp-window.vue
  6. 8 6
      components/guide/GuideManager.vue
  7. 13 12
      components/tabbar/tabbar.vue
  8. 121 0
      node_modules/.vue-global-types/vue_99_0_0_0.d.ts
  9. 7 16
      pages.json
  10. 9 16
      pages/AboutUs/xieyi.vue
  11. 2 1
      pages/index/articleDetail.vue
  12. 12 12
      pages/index/index copy.vue
  13. 867 884
      pages/index/index.vue
  14. 10 70
      pages/index/workDetail.vue
  15. 13 8
      pages/login/login.vue
  16. 1 1
      pages/make/fabuArticle.vue
  17. 10 5
      pages/make/index.vue
  18. 0 283
      pages/make/make.scss
  19. 0 347
      pages/make/make.vue
  20. 0 233
      pages/make/make2.scss
  21. 0 272
      pages/make/make2.vue
  22. 8 3
      pages/makedetail/makeDetail.vue
  23. 9 13
      pages/makedetail/makeImgDetail.vue
  24. 7 33
      pages/my/my.vue
  25. 4 3
      pages/my/myStar.vue
  26. 29 54
      pages/my/setting.vue
  27. 7 5
      pages/my/teenagePassword.vue
  28. 2 2
      pages/my/userHomepage.vue
  29. 11 11
      pages/vip/index.vue
  30. 96 0
      pages/webview/index.vue
  31. BIN
      static/home/icon_vip.png
  32. BIN
      static/home/meinv.png
  33. BIN
      static/home/nan.png
  34. BIN
      static/home/no.png
  35. BIN
      static/home/num_icon.png
  36. BIN
      static/home/talk.png
  37. BIN
      static/home/talk2.png
  38. BIN
      static/icon/boyA.png
  39. BIN
      static/icon/boyB.png
  40. BIN
      static/icon/cirlA.png
  41. BIN
      static/icon/cirlB.png
  42. BIN
      static/icon/coin_cd1.png
  43. BIN
      static/icon/otherA.png
  44. BIN
      static/icon/otherB.png
  45. BIN
      static/images/bg-1.png
  46. BIN
      static/images/bg-2.png
  47. BIN
      static/images/bg-3.png
  48. BIN
      static/images/black-bg.png
  49. BIN
      static/images/kongbai.png
  50. BIN
      static/images/white-bg.png
  51. BIN
      static/images/xiong-bg.png
  52. BIN
      static/img/img-1.png
  53. BIN
      static/img/img-2.png
  54. BIN
      static/img/img-3.png
  55. BIN
      static/make/bg1.mp3
  56. BIN
      static/make/bg2.mp3
  57. BIN
      static/make/video.mp4
  58. BIN
      static/make/video2.mp4
  59. BIN
      static/makedetail/style-1.png
  60. BIN
      static/makedetail/style-2.png
  61. BIN
      static/makedetail/style-3.png
  62. BIN
      static/makedetail/style-4.png
  63. BIN
      static/me/M_coin_bg1.png
  64. BIN
      static/me/job/rw_biaoqian_vip(1).png
  65. 3 1
      store/index.js
  66. 36 0
      store/modules/rightsManagement.js
  67. 36 0
      store/modules/starSpiritImage.js
  68. 30 11
      store/modules/switchingModule.js

+ 7 - 1
App.vue

@@ -27,7 +27,7 @@ import {
 } from "@/common/teenagePopup.js";
 import permission from '@/common/permission.js'
 uni.$createTeenagePopUpWindow = createTeenagePopUpWindow;
-
+import { mapMutations } from "vuex";
 export default {
   globalData: {
     postHeader: null,
@@ -65,6 +65,11 @@ export default {
               console.log("检查青少年状态", res.data);
               if (!res.data.has_password || res.data.is_open_young == 1) {
                 setupTeenagePopupTimer();
+				if (res.data.is_open_young == 1) { 
+					this.setTeenageMode(1);
+				} else if (res.data.is_open_young == 0) { 
+					this.setTeenageMode(2);
+				}
                 resolve(true);
               } else {
                 // setupTeenagePopupTimer()
@@ -235,6 +240,7 @@ export default {
   },
   onAppBackground() {},
   methods: {
+	 ...mapMutations('rightsManagement',['setTeenageMode']),
     generateUUID() {
       return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(
         /[xy]/g,

+ 0 - 316
app/components/ShareModal.vue

@@ -1,316 +0,0 @@
-<template>
-  <view class="share-modal" v-if="visible">
-    <view class="modal-overlay" @tap="handleClose"></view>
-    <view class="modal-content">
-      <view class="share-options">
-        <view 
-          v-for="option in shareOptions" 
-          :key="option.id"
-          class="share-item"
-          @tap="handleShare(option.id)"
-        >
-          <view class="share-icon">
-            <image :src="option.icon" mode="aspectFit"></image>
-          </view>
-          <text class="option-title">{{ option.title }}</text>
-        </view>
-      </view>
-      <view class="cancel-button" @tap="handleClose">
-        <text>更多</text>
-      </view>
-    </view>
-  </view>
-</template>
-
-<script>
-export default {
-  name: 'ShareModal',
-  props: {
-    visible: {
-      type: Boolean,
-      default: false
-    },
-    shareUrl: {
-      type: String,
-      required: true
-    },
-    shareTitle: {
-      type: String,
-      default: ''
-    },
-    shareDesc: {
-      type: String,
-      default: ''
-    },
-    shareImg: {
-      type: String,
-      default: ''
-    }
-  },
-  data() {
-    return {
-      shareOptions: [
-        { id: 'wechat', title: '微信好友', icon: '/static/images/share/wechat.png' },
-        { id: 'moments', title: '朋友圈', icon: '/static/images/share/moments.png' },
-        { id: 'qq', title: 'QQ好友', icon: '/static/images/share/qq.png' },
-        { id: 'copy', title: '复制链接', icon: '/static/images/share/link.png' },
-        { id: 'report', title: '举报', icon: '/static/images/share/report.png' }
-      ]
-    }
-  },
-  methods: {
-    handleClose() {
-      this.$emit('close')
-    },
-    handleShare(type) {
-      switch (type) {
-        case 'copy':
-          this.copyToClipboard(this.shareUrl)
-          uni.showToast({
-            title: '链接已复制',
-            icon: 'success'
-          })
-          break
-        case 'wechat':
-          this.shareToWechat()
-          break
-        case 'moments':
-          this.shareToMoments()
-          break
-        case 'qq':
-          // 实现QQ分享
-          break
-        case 'report':
-          // 实现举报功能
-          break
-      }
-    },
-    copyToClipboard(text) {
-      // #ifdef H5
-      const input = document.createElement('input')
-      input.value = text
-      document.body.appendChild(input)
-      input.select()
-      document.execCommand('copy')
-      document.body.removeChild(input)
-      // #endif
-      
-      // #ifdef APP-PLUS || MP
-      uni.setClipboardData({
-        data: text,
-        success: () => {
-          console.log('复制成功')
-        }
-      })
-      // #endif
-    },
-    // 分享到微信好友
-    shareToWechat() {
-      // #ifdef APP-PLUS
-      uni.share({
-        provider: 'weixin',
-        scene: 'WXSceneSession',
-        type: 0,
-        title: this.shareTitle,
-        summary: this.shareDesc,
-        imageUrl: this.shareImg,
-        href: this.shareUrl,
-        success: function (res) {
-          uni.showToast({
-            title: '分享成功',
-            icon: 'success'
-          })
-        },
-        fail: function (err) {
-          uni.showToast({
-            title: '分享失败',
-            icon: 'none'
-          })
-          console.error('分享失败:', err)
-        }
-      })
-      // #endif
-
-      // #ifdef H5
-      // H5环境下使用微信JS-SDK
-      if (typeof wx !== 'undefined') {
-        wx.ready(() => {
-          wx.updateAppMessageShareData({
-            title: this.shareTitle,
-            desc: this.shareDesc,
-            link: this.shareUrl,
-            imgUrl: this.shareImg,
-            success: () => {
-              uni.showToast({
-                title: '分享成功',
-                icon: 'success'
-              })
-            },
-            fail: (err) => {
-              uni.showToast({
-                title: '分享失败',
-                icon: 'none'
-              })
-              console.error('分享失败:', err)
-            }
-          })
-        })
-      }
-      // #endif
-
-      // #ifdef MP-WEIXIN
-      uni.showShareMenu({
-        withShareTicket: true,
-        menus: ['shareAppMessage']
-      })
-      // #endif
-    },
-    // 分享到朋友圈
-    shareToMoments() {
-      // #ifdef APP-PLUS
-      uni.share({
-        provider: 'weixin',
-        scene: 'WXSenceTimeline',
-        type: 0,
-        title: this.shareTitle,
-        summary: this.shareDesc,
-        imageUrl: this.shareImg,
-        href: this.shareUrl,
-        success: function (res) {
-          uni.showToast({
-            title: '分享成功',
-            icon: 'success'
-          })
-        },
-        fail: function (err) {
-          uni.showToast({
-            title: '分享失败',
-            icon: 'none'
-          })
-          console.error('分享失败:', err)
-        }
-      })
-      // #endif
-
-      // #ifdef H5
-      // H5环境下使用微信JS-SDK
-      if (typeof wx !== 'undefined') {
-        wx.ready(() => {
-          wx.updateTimelineShareData({
-            title: this.shareTitle,
-            link: this.shareUrl,
-            imgUrl: this.shareImg,
-            success: () => {
-              uni.showToast({
-                title: '分享成功',
-                icon: 'success'
-              })
-            },
-            fail: (err) => {
-              uni.showToast({
-                title: '分享失败',
-                icon: 'none'
-              })
-              console.error('分享失败:', err)
-            }
-          })
-        })
-      }
-      // #endif
-
-      // #ifdef MP-WEIXIN
-      uni.showShareMenu({
-        withShareTicket: true,
-        menus: ['shareTimeline']
-      })
-      // #endif
-    }
-  }
-}
-</script>
-
-<style scoped>
-.share-modal {
-  position: fixed;
-  left: 0;
-  right: 0;
-  top: 0;
-  bottom: 0;
-  z-index: 1000;
-}
-
-.modal-overlay {
-  position: absolute;
-  left: 0;
-  right: 0;
-  top: 0;
-  bottom: 0;
-  background-color: rgba(0, 0, 0, 0.4);
-}
-
-.modal-content {
-  position: absolute;
-  left: 0;
-  right: 0;
-  bottom: 0;
-  background-color: #FFFFFF;
-  border-top-left-radius: 24rpx;
-  border-top-right-radius: 24rpx;
-  padding: 32rpx;
-}
-
-.share-options {
-  display: flex;
-  flex-wrap: wrap;
-  justify-content: space-between;
-  padding: 16rpx 32rpx;
-}
-
-.share-item {
-  display: flex;
-  flex-direction: column;
-  align-items: center;
-  width: 25%;
-  margin-bottom: 32rpx;
-}
-
-.share-icon {
-  width: 88rpx;
-  height: 88rpx;
-  display: flex;
-  justify-content: center;
-  align-items: center;
-  margin-bottom: 16rpx;
-}
-
-.share-icon image {
-  width: 100%;
-  height: 100%;
-}
-
-.option-title {
-  font-size: 26rpx;
-  color: #333333;
-  text-align: center;
-}
-
-.cancel-button {
-  position: relative;
-  margin-top: 16rpx;
-  padding: 24rpx 0;
-  text-align: center;
-  color: #666666;
-  font-size: 28rpx;
-}
-
-.cancel-button::before {
-  content: '';
-  position: absolute;
-  left: 0;
-  right: 0;
-  top: 0;
-  height: 2rpx;
-  background-color: #EEEEEE;
-  transform: scaleY(0.5);
-}
-</style> 

+ 113 - 99
components/CommentSection/CommentSection.vue

@@ -29,8 +29,8 @@
 				<view class="giveTheThumbsUpBox" @click="giveTheThumbsUp()">
 					<image v-if="!isLikeFalg" src="@/static/icon/icon-19.png"></image>
 					<image v-else src="@/static/icon/icon-18.png"></image>
-					<!-- {{}} -->
-					{{ articleInfo.is_like - (-(isLikeFalg ? 1 : 0)) }}
+
+					{{ articleInfo.num_like }}
 				</view>
 			</view>
 		</template>
@@ -40,11 +40,15 @@
 <script>
 import CComment from "@/components/cc-comment/cc-comment.vue";
 import { getStorage, setStorage, removeStorage } from "@/common/util.js";
+import { mapState, mapMutations, mapGetters } from 'vuex';
 export default {
 	name: 'CommentSection',
 	components: {
 		CComment
 	},
+	computed: {
+		...mapState('rightsManagement', ['teenageMode'])
+	},
 	props: {
 		myInfo: {
 			type: Object,
@@ -65,7 +69,12 @@ export default {
 		type: {
 			type: String,
 			default: 'work'
-		}
+		},
+		find: {
+			type: String,
+			default: ''
+		},
+
 	},
 	data() {
 		return {
@@ -84,9 +93,12 @@ export default {
 	},
 	methods: {
 		giveTheThumbsUp() {
-			console.log('文章点赞的逻辑');
+			let url = '/Article/like'
+			if (this.find == 'work') {
+				url = '/Work/like'
+			}
 			uni.request({
-				url: this.$apiHost + '/Article/like',
+				url: this.$apiHost + url,
 				data: {
 					uuid: getApp().globalData.uuid,
 					id: this.articleId
@@ -98,12 +110,12 @@ export default {
 				success: (res) => {
 					console.log("点赞结果:", res.data);
 					if (res.data.str == "取消点赞") {
-						// 请求失败时重置点赞效果
 						this.isLikeFalg = false
+						this.articleInfo.num_like--
 					}
 					if (res.data.str == "点赞成功") {
-						// 请求失败时重置点赞效果
 						this.isLikeFalg = true
+						this.articleInfo.num_like++
 					}
 					uni.showToast({
 						title: res.data.str,
@@ -112,7 +124,6 @@ export default {
 				},
 				fail: (e) => {
 					console.log("点赞失败:", e);
-
 				}
 			});
 		},
@@ -154,65 +165,55 @@ export default {
 			});
 		},
 		openComment() {
-			var isContentRecommendation = getStorage("isContentRecommendation");
-			if (isContentRecommendation != "false") {
+			let isContentRecommendation
+			if (this.teenageMode != 1) {
 				isContentRecommendation = true;
 			} else {
 				isContentRecommendation = false;
 			}
-			
-			if (isContentRecommendation == false) {
+
+			if (!isContentRecommendation) {
 				uni.showToast({
 					title: '当前无法评论',
 					icon: 'none'
 				});
 				return;
 			}
-			
-			uni.$emit('check_login', () => { 
+
+			uni.$emit('check_login', () => {
 				let ccRef = this.$refs["ccRef"];
 				ccRef.newCommentFun();
 			})
 		},
 		likeFun({ params }, callback) {
 			uni.$emit('check_login', () => {
-			console.log("likeFun", params);
-			uni.request({
-				url: this.$apiHost + '/Article/zanComment',
-				data: {
-					uuid: getApp().globalData.uuid,
-					id: params.id
-				},
-				header: {
-					"content-type": "application/json",
-					'sign': getApp().globalData.headerSign
-				},
-				success: (res) => {
-					console.log("点赞结果:", res.data);
-					if (res.data.success !== "yes") {
-						callback(res); // 请求失败时重置点赞效果
+
+				uni.request({
+					url: this.$apiHost + '/Article/zanComment',
+					data: {
+						uuid: getApp().globalData.uuid,
+						id: params.id
+					},
+					header: {
+						"content-type": "application/json",
+						'sign': getApp().globalData.headerSign
+					},
+					success: (res) => {
+						console.log("点赞结果:", res.data);
+						if (res.data.success !== "yes") {
+							callback(res); // 请求失败时重置点赞效果
+						}
+					},
+					fail: (e) => {
+						console.log("点赞失败:", e);
+						callback(e); // 请求失败时重置点赞效果
 					}
-				},
-				fail: (e) => {
-					console.log("点赞失败:", e);
-					callback(e); // 请求失败时重置点赞效果
-				}
-			}); })
+				});
+			})
 		},
 		replyFun({ params }, callback) {
 			uni.$emit('check_login', () => {
-			console.log("replyFun", {
-				uuid: getApp().globalData.uuid,
-				type: this.type,
-				article_id: this.articleId,
-				content: params.user_content,
-				parent_id: params.parent_id || 0,
-				reply_id: params.reply_id || 0,
-				reply_name: params.reply_name || ''
-			});
-			uni.request({
-				url: this.$apiHost + '/Article/newComment',
-				data: {
+				console.log("replyFun", {
 					uuid: getApp().globalData.uuid,
 					type: this.type,
 					article_id: this.articleId,
@@ -220,67 +221,80 @@ export default {
 					parent_id: params.parent_id || 0,
 					reply_id: params.reply_id || 0,
 					reply_name: params.reply_name || ''
-				},
-				header: {
-					"content-type": "application/json",
-					'sign': getApp().globalData.headerSign
-				},
-				success: (res) => {
-					console.log("评论结果:", res.data);
-					if (res.data.success === "yes") {
-						callback(res.data);
-						this.loadCommentData(); // 重新加载评论列表
+				});
+				uni.request({
+					url: this.$apiHost + '/Article/newComment',
+					data: {
+						uuid: getApp().globalData.uuid,
+						type: this.type,
+						article_id: this.articleId,
+						content: params.user_content,
+						parent_id: params.parent_id || 0,
+						reply_id: params.reply_id || 0,
+						reply_name: params.reply_name || ''
+					},
+					header: {
+						"content-type": "application/json",
+						'sign': getApp().globalData.headerSign
+					},
+					success: (res) => {
+						console.log("评论结果:", res.data);
+						if (res.data.success === "yes") {
+							callback(res.data);
+							this.loadCommentData(); // 重新加载评论列表
+						}
+					},
+					fail: (e) => {
+						console.log("评论失败:", e);
+						uni.showToast({
+							title: '评论失败,请重试',
+							icon: 'none'
+						});
 					}
-				},
-				fail: (e) => {
-					console.log("评论失败:", e);
-					uni.showToast({
-						title: '评论失败,请重试',
-						icon: 'none'
-					});
-				}
-			}); })
+				});
+			})
 		},
 		deleteFun({ params, mode }, callback) {
-			uni.$emit('check_login', () => { 
-			console.log("deleteFun", { params, mode });
-			const idsString = Array.isArray(params) ? params.join(',') : params.toString();
+			uni.$emit('check_login', () => {
+				console.log("deleteFun", { params, mode });
+				const idsString = Array.isArray(params) ? params.join(',') : params.toString();
 
-			console.log("删除评论", idsString, mode)
-			uni.request({
-				url: this.$apiHost + '/Article/delComment',
-				data: {
-					uuid: getApp().globalData.uuid,
-					ids: idsString,
-					mode: mode
-				},
-				header: {
-					"content-type": "application/json",
-					'sign': getApp().globalData.headerSign
-				},
-				success: (res) => {
-					console.log("删除结果:", res.data);
-					if (res.data.success === "yes") {
-						this.loadCommentData(); // 重新加载评论列表
-					}
-					callback(res);
-					if (res.data.success === "no" && res.data.str) {
-						console.log(1);
+				console.log("删除评论", idsString, mode)
+				uni.request({
+					url: this.$apiHost + '/Article/delComment',
+					data: {
+						uuid: getApp().globalData.uuid,
+						ids: idsString,
+						mode: mode
+					},
+					header: {
+						"content-type": "application/json",
+						'sign': getApp().globalData.headerSign
+					},
+					success: (res) => {
+						console.log("删除结果:", res.data);
+						if (res.data.success === "yes") {
+							this.loadCommentData(); // 重新加载评论列表
+						}
+						callback(res);
+						if (res.data.success === "no" && res.data.str) {
+							console.log(1);
 
+							uni.showToast({
+								title: res.data.str,
+								icon: 'none'
+							});
+						}
+					},
+					fail: (e) => {
+						console.log("删除失败:", e);
 						uni.showToast({
-							title: res.data.str,
+							title: '删除失败,请重试',
 							icon: 'none'
 						});
 					}
-				},
-				fail: (e) => {
-					console.log("删除失败:", e);
-					uni.showToast({
-						title: '删除失败,请重试',
-						icon: 'none'
-					});
-				}
-			});})
+				});
+			})
 		},
 
 	}

+ 15 - 10
components/cc-comment/cc-comment.vue

@@ -87,10 +87,15 @@
 <script>
 import CommonComp from "./componets/common";
 import { getStorage, setStorage, removeStorage } from "@/common/util.js";
+
+import { mapState,mapMutations ,mapGetters} from 'vuex';
 export default {
 	components: {
 		CommonComp
 	},
+	computed: {
+		...mapState('rightsManagement',['teenageMode'])
+	},
 	props: {
 		/** 登陆用户信息
 		 *    id: number // 登陆用户id
@@ -223,21 +228,21 @@ export default {
 			index2
 		}) {
 			uni.$emit('check_login', () => {
-				var isContentRecommendation = getStorage("isContentRecommendation");
-				if (isContentRecommendation != "false") {
+				let isContentRecommendation
+				if (this.teenageMode != 1) {
 					isContentRecommendation = true;
 				} else {
 					isContentRecommendation = false;
 				}
-				
-				if (isContentRecommendation == false) {
+
+				if (!isContentRecommendation) {
 					uni.showToast({
 						title: '当前无法评论',
 						icon: 'none'
 					});
 					return;
 				}
-				
+
 				if (this.isComment == 0) {
 					uni.showToast({
 						title: '暂无评论权限',
@@ -256,21 +261,21 @@ export default {
 		},
 		// 发起新评论
 		newCommentFun() {
-			var isContentRecommendation = getStorage("isContentRecommendation");
-			if (isContentRecommendation != "false") {
+			let isContentRecommendation
+			if (this.teenageMode != 1) {
 				isContentRecommendation = true;
 			} else {
 				isContentRecommendation = false;
 			}
-			
-			if (isContentRecommendation == false) {
+
+			if (!isContentRecommendation) {
 				uni.showToast({
 					title: '当前无法评论',
 					icon: 'none'
 				});
 				return;
 			}
-			
+
 			if (this.isComment == 0) {
 				uni.showToast({
 					title: '暂无评论权限',

+ 14 - 16
components/checkIn-popUp-window/checkIn-popUp-window.vue

@@ -70,22 +70,22 @@ export default {
 						id: 1,
 						day: 1,
 						type: "one",
-						icon: "wd_icon_xingyuan.png",
-						title: "海浪操作作秀",
+						icon:'wd_icon_xingyuan.png',
+						title: '星源*2',
 					},
 					{
 						id: 2,
 						day: 2,
 						type: "one",
-						icon: "wd_icon_xingyuan(1).png",
-						title: "红玫瑰x3",
+						icon:'wd_icon_xingyuan.png',
+						title: '星源*2',
 					},
 					{
 						id: 3,
 						day: 3,
 						type: "two",
-						icon: "wd_icon_xingyuan.png",
-						title: "海浪操作作秀",
+						icon:'wd_icon_xingyuan.png',
+						title: '星源*3',
 					},
 				],
 				[
@@ -93,22 +93,22 @@ export default {
 						id: 4,
 						day: 6,
 						type: "two",
-						icon: "wd_icon_xingyuan(4).png",
-						title: "樱花x3",
+						icon:'wd_icon_xingyuan.png',
+						title: '星源*3',
 					},
 					{
 						id: 5,
 						day: 5,
 						type: "one",
-						icon: "wd_icon_xingyuan(5).png",
-						title: "海浪头像框",
+						icon:'wd_icon_xingyuan.png',
+						title: '星源*5',
 					},
 					{
 						id: 6,
 						day: 4,
 						type: "one",
-						icon: "wd_icon_xingyuan(1).png",
-						title: "红玫瑰x3",
+						icon:'wd_icon_xingyuan.png',
+						title: '星源*5',
 					},
 				],
 				[
@@ -117,10 +117,8 @@ export default {
 						day: 7,
 						type: "one",
 						items: [
-							{ icon: "wd_icon_xingyuan(1).png", title: "红玫瑰x3" },
-							{ icon: "wd_icon_xingyuan(4).png", title: "红玫瑰x3" },
-							{ icon: "wd_icon_xingyuan.png", title: "红玫瑰x3" },
-							{ icon: "wd_icon_xingyuan(1).png", title: "红玫瑰x3" },
+							{ icon: "wd_icon_xingyuan.png", title: '星源*5', },
+							{ icon: "wd_icon_xingyuan.png", title: '星源*5', },
 						],
 					},
 				],

+ 8 - 6
components/guide/GuideManager.vue

@@ -22,6 +22,7 @@
 </template>
 
 <script>
+import {mapState} from 'vuex'
 export default {
   name: 'GuideManager',
   data() {
@@ -82,8 +83,8 @@ export default {
                     isMirror: true
                   },
                   {
-                    characterImage: '/static/island/building/1.png',
-                    characterName: '我',
+                    characterImage: this.picture,
+                    characterName: this.name,
                     text: '好像可以有好多工具,但是好像没有材料呢~',
                     position: 'right',
                     isMirror: false
@@ -134,8 +135,8 @@ export default {
                     isMirror: true
                   },
                   {
-                    characterImage: '/static/island/building/1.png',
-                    characterName: '我',
+                    characterImage: this.picture,
+                    characterName: this.name,
                     text: '什么!移民费用388888铃钱,这也太贵了吧...',
                     position: 'right',
                     isMirror: false
@@ -187,8 +188,8 @@ export default {
                     isMirror: true
                   },
                   {
-                    characterImage: '/static/island/building/1.png',
-                    characterName: '我',
+                    characterImage: this.picture,
+                    characterName: this.name,
                     text: 'ah...原来如此,你刚才说的花田有没有被拦住?',
                     position: 'right',
                     isMirror: false
@@ -240,6 +241,7 @@ export default {
     }
   },
   computed: {
+    ...mapState('switchingModule', ['picture', 'name']),
     // 当前步骤
     currentStep() {
       if (!this.currentStage) return null

+ 13 - 12
components/tabbar/tabbar.vue

@@ -25,6 +25,7 @@ let animationModule = null;
 // #ifdef APP-NVUE
 animationModule = weex.requireModule('animation')
 // #endif
+import { mapActions, mapState, mapMutations } from 'vuex'
 export default {
 	props: {
 		currentIndex: {
@@ -56,6 +57,9 @@ export default {
 			default: true,
 		}
 	},
+	computed: {
+		...mapState('switchingModule', ['status', 'picture', 'name', 'requestData']),
+	},
 	data() {
 		return {}
 	},
@@ -64,6 +68,7 @@ export default {
 	},
 
 	methods: {
+		...mapMutations('switchingModule', ['setInformation','deleteInformation']),
 		switchTab(item, index) {
 			if (!item.pagePath) return;
 			if (item.pagePath == '/pages/message/mailMessage') {
@@ -83,17 +88,16 @@ export default {
 			console.log('点击了中间按钮');
 			// 判断登录
 			uni.$emit('check_login', () => {
-				// 先读取本地缓存
-				const isJoiningThePlanet = uni.getStorageSync('isJoiningThePlanet');
-				
-				if (isJoiningThePlanet === true) {
+				let falg = this.status == 1
+				console.log(falg,'状态');
+				if (falg) { 
 					// 如果缓存为true,直接跳转到星球页面
 					uni.navigateTo({
 						url: '/pages/isLand/homeLand'
 					});
 					return;
 				}
-				
+
 				// 如果缓存不为true,则请求接口
 				uni.request({
 					url: this.$apiHost + "/AIpipei/getinfo",
@@ -107,24 +111,21 @@ export default {
 					timeout: 60000,
 					success: (res) => {
 						if (res && res.data && res.data.info) {
-							if (res.data.info.image && res.data.info.status == 1) {
-								// 设置本地缓存
-								uni.setStorageSync('isJoiningThePlanet', true);
+							if (res.data.info.image && res.data.info.status == 1) { 
+								this.setInformation(res.data.info) 
 								// 跳转到星球页面
 								uni.navigateTo({
 									url: '/pages/isLand/homeLand'
 								});
 							} else {
-								// 设置本地缓存
-								uni.setStorageSync('isJoiningThePlanet', false);
+								this.deleteInformation() 
 								// 跳转到我的星球页面
 								uni.navigateTo({
 									url: '/pages/my/myStar'
 								});
 							}
 						} else {
-							// 设置本地缓存
-							uni.setStorageSync('isJoiningThePlanet', false);
+							this.deleteInformation() 
 							// 跳转到我的星球页面
 							uni.navigateTo({
 								url: '/pages/my/myStar'

+ 121 - 0
node_modules/.vue-global-types/vue_99_0_0_0.d.ts

@@ -0,0 +1,121 @@
+// @ts-nocheck
+export {};
+
+; declare global {
+	const __VLS_intrinsicElements: __VLS_IntrinsicElements;
+	const __VLS_directiveBindingRestFields: { instance: null, oldValue: null, modifiers: any, dir: any };
+	const __VLS_unref: typeof import('vue').unref;
+	const __VLS_placeholder: any;
+
+	type __VLS_NativeElements = __VLS_SpreadMerge<SVGElementTagNameMap, HTMLElementTagNameMap>;
+	type __VLS_IntrinsicElements = import('vue/jsx-runtime').JSX.IntrinsicElements;
+	type __VLS_Element = import('vue/jsx-runtime').JSX.Element;
+	type __VLS_GlobalComponents = import('vue').GlobalComponents;
+	type __VLS_GlobalDirectives = import('vue').GlobalDirectives;
+	type __VLS_IsAny<T> = 0 extends 1 & T ? true : false;
+	type __VLS_PickNotAny<A, B> = __VLS_IsAny<A> extends true ? B : A;
+	type __VLS_SpreadMerge<A, B> = Omit<A, keyof B> & B;
+	type __VLS_WithComponent<N0 extends string, LocalComponents, Self, N1 extends string, N2 extends string, N3 extends string> =
+		N1 extends keyof LocalComponents ? N1 extends N0 ? Pick<LocalComponents, N0 extends keyof LocalComponents ? N0 : never> : { [K in N0]: LocalComponents[N1] } :
+		N2 extends keyof LocalComponents ? N2 extends N0 ? Pick<LocalComponents, N0 extends keyof LocalComponents ? N0 : never> : { [K in N0]: LocalComponents[N2] } :
+		N3 extends keyof LocalComponents ? N3 extends N0 ? Pick<LocalComponents, N0 extends keyof LocalComponents ? N0 : never> : { [K in N0]: LocalComponents[N3] } :
+		Self extends object ? { [K in N0]: Self } :
+		N1 extends keyof __VLS_GlobalComponents ? N1 extends N0 ? Pick<__VLS_GlobalComponents, N0 extends keyof __VLS_GlobalComponents ? N0 : never> : { [K in N0]: __VLS_GlobalComponents[N1] } :
+		N2 extends keyof __VLS_GlobalComponents ? N2 extends N0 ? Pick<__VLS_GlobalComponents, N0 extends keyof __VLS_GlobalComponents ? N0 : never> : { [K in N0]: __VLS_GlobalComponents[N2] } :
+		N3 extends keyof __VLS_GlobalComponents ? N3 extends N0 ? Pick<__VLS_GlobalComponents, N0 extends keyof __VLS_GlobalComponents ? N0 : never> : { [K in N0]: __VLS_GlobalComponents[N3] } :
+		{ [K in N0]: unknown };
+	type __VLS_FunctionalComponentProps<T, K> =
+		'__ctx' extends keyof __VLS_PickNotAny<K, {}> ? K extends { __ctx?: { props?: infer P } } ? NonNullable<P> : never
+		: T extends (props: infer P, ...args: any) => any ? P :
+		{};
+	type __VLS_IsFunction<T, K> = K extends keyof T
+		? __VLS_IsAny<T[K]> extends false
+		? unknown extends T[K]
+		? false
+		: true
+		: false
+		: false;
+	type __VLS_NormalizeComponentEvent<Props, Events, onEvent extends keyof Props, Event extends keyof Events, CamelizedEvent extends keyof Events> = (
+		__VLS_IsFunction<Props, onEvent> extends true
+			? Props
+			: __VLS_IsFunction<Events, Event> extends true
+				? { [K in onEvent]?: Events[Event] }
+				: __VLS_IsFunction<Events, CamelizedEvent> extends true
+					? { [K in onEvent]?: Events[CamelizedEvent] }
+					: Props
+	) & Record<string, unknown>;
+	// fix https://github.com/vuejs/language-tools/issues/926
+	type __VLS_UnionToIntersection<U> = (U extends unknown ? (arg: U) => unknown : never) extends ((arg: infer P) => unknown) ? P : never;
+	type __VLS_OverloadUnionInner<T, U = unknown> = U & T extends (...args: infer A) => infer R
+		? U extends T
+		? never
+		: __VLS_OverloadUnionInner<T, Pick<T, keyof T> & U & ((...args: A) => R)> | ((...args: A) => R)
+		: never;
+	type __VLS_OverloadUnion<T> = Exclude<
+		__VLS_OverloadUnionInner<(() => never) & T>,
+		T extends () => never ? never : () => never
+	>;
+	type __VLS_ConstructorOverloads<T> = __VLS_OverloadUnion<T> extends infer F
+		? F extends (event: infer E, ...args: infer A) => any
+		? { [K in E & string]: (...args: A) => void; }
+		: never
+		: never;
+	type __VLS_NormalizeEmits<T> = __VLS_PrettifyGlobal<
+		__VLS_UnionToIntersection<
+			__VLS_ConstructorOverloads<T> & {
+				[K in keyof T]: T[K] extends any[] ? { (...args: T[K]): void } : never
+			}
+		>
+	>;
+	type __VLS_PrettifyGlobal<T> = { [K in keyof T]: T[K]; } & {};
+	type __VLS_PickFunctionalComponentCtx<T, K> = NonNullable<__VLS_PickNotAny<
+		'__ctx' extends keyof __VLS_PickNotAny<K, {}> ? K extends { __ctx?: infer Ctx } ? Ctx : never : any
+		, T extends (props: any, ctx: infer Ctx) => any ? Ctx : any
+	>>;
+	type __VLS_OmitStringIndex<T> = {
+		[K in keyof T as string extends K ? never : K]: T[K];
+	};
+	type __VLS_UseTemplateRef<T> = Readonly<import('vue').ShallowRef<T | null>>;
+
+	function __VLS_getVForSourceType<T extends number | string | any[] | Iterable<any>>(source: T): [
+		item: T extends number ? number
+			: T extends string ? string
+			: T extends any[] ? T[number]
+			: T extends Iterable<infer T1> ? T1
+			: any,
+		index: number,
+	][];
+	function __VLS_getVForSourceType<T>(source: T): [
+		item: T[keyof T],
+		key: keyof T,
+		index: number,
+	][];
+	// @ts-ignore
+	function __VLS_getSlotParams<T>(slot: T): Parameters<__VLS_PickNotAny<NonNullable<T>, (...args: any[]) => any>>;
+	// @ts-ignore
+	function __VLS_getSlotParam<T>(slot: T): Parameters<__VLS_PickNotAny<NonNullable<T>, (...args: any[]) => any>>[0];
+	function __VLS_asFunctionalDirective<T>(dir: T): T extends import('vue').ObjectDirective
+		? NonNullable<T['created' | 'beforeMount' | 'mounted' | 'beforeUpdate' | 'updated' | 'beforeUnmount' | 'unmounted']>
+		: T extends (...args: any) => any
+			? T
+			: (arg1: unknown, arg2: unknown, arg3: unknown, arg4: unknown) => void;
+	function __VLS_makeOptional<T>(t: T): { [K in keyof T]?: T[K] };
+	function __VLS_asFunctionalComponent<T, K = T extends new (...args: any) => any ? InstanceType<T> : unknown>(t: T, instance?: K):
+		T extends new (...args: any) => any
+		? (props: (K extends { $props: infer Props } ? Props : any) & Record<string, unknown>, ctx?: any) => __VLS_Element & {
+			__ctx?: {
+				attrs?: any;
+				slots?: K extends { $slots: infer Slots } ? Slots : any;
+				emit?: K extends { $emit: infer Emit } ? Emit : any;
+				expose?(exposed: K): void;
+				props?: (K extends { $props: infer Props } ? Props : any) & Record<string, unknown>;
+			}
+		}
+		: T extends () => any ? (props: {}, ctx?: any) => ReturnType<T>
+		: T extends (...args: any) => any ? T
+		: (_: {} & Record<string, unknown>, ctx?: any) => { __ctx?: { attrs?: any, expose?: any, slots?: any, emit?: any, props?: {} & Record<string, unknown> } };
+	function __VLS_functionalComponentArgsRest<T extends (...args: any) => any>(t: T): 2 extends Parameters<T>['length'] ? [any] : [];
+	function __VLS_asFunctionalElement<T>(tag: T, endTag?: T): (attrs: T & Record<string, unknown>) => void;
+	function __VLS_asFunctionalSlot<S>(slot: S): (props: NonNullable<S> extends (props: infer P) => any ? P : {}) => void;
+	function __VLS_tryAsConstant<const T>(t: T): T;
+}

+ 7 - 16
pages.json

@@ -16,14 +16,7 @@
 				"navigationStyle": "custom",
 				"navigationBarBackgroundColor": "#ffffff"
 			}
-		}, {
-			"path": "pages/make/make",
-			"style": {
-				"navigationBarTitleText": "创作",
-				"navigationStyle": "custom",
-				"navigationBarBackgroundColor": "#ffffff"
-			}
-		}, {
+		},  {
 			"path": "pages/index/Search",
 			"onReachBottomDistance": "50",
 			"style": {
@@ -50,14 +43,7 @@
 				"navigationBarTitleText": "管理",
 				"navigationBarBackgroundColor": "#ffffff"
 			}
-		}, {
-			"path": "pages/make/make2",
-			"style": {
-				"navigationBarTitleText": "创作",
-				"navigationStyle": "custom",
-				"navigationBarBackgroundColor": "#ffffff"
-			}
-		}, {
+		},   {
 			"path": "pages/login/login",
 			"style": {
 				"navigationBarTitleText": "登录",
@@ -147,6 +133,11 @@
 					"bounce": "none"
 				}
 			}
+		},{
+			"path": "pages/webview/index",
+			"style": {
+				"navigationBarTitleText": ""
+			}
 		}, {
 			"path": "pages/my/userHomepage",
 			"style": {

+ 9 - 16
pages/AboutUs/xieyi.vue

@@ -2,7 +2,7 @@
 	<view class="page">
 		<view class="list_info">
 			<!-- 基础设置组 -->
-			<view class="item" v-for="(item,index) in basicSettings" :key="index" @click="goPage(item.path)">
+			<view class="item" v-for="(item,index) in basicSettings" :key="index" @click="goWeb(item.path, item.name)">
 				<view class="item-left">
 					<image class="icon" :src="item.icon" mode="widthFix"></image>
 					<text>{{item.name}}</text>
@@ -32,27 +32,15 @@
 				basicSettings: [{
 						'name': '隐私政策',
 						'desc': '',
-						'path': '/pages/AboutUs/yszc',
+						'path': 'https://e.zhichao.art/web/yszc.php',
 						'icon': '../../static/me/security.png'
 					},
 					{
 						'name': '用户协议',
 						'desc': '',
-						'path': '/pages/AboutUs/yhxy',
+						'path': 'https://e.zhichao.art/web/yhxy.php',
 						'icon': '../../static/me/profile.png'
-					},
-					{
-						'name': '第三方SDK列表',
-						'desc': '',
-						'path': '',
-						'icon': '../../static/me/profile.png'
-					},
-					{
-						'name': '个人信息收集公示',
-						'desc': '',
-						'path': '',
-						'icon': '../../static/me/profile.png'
-					},
+					} 
 				],
 			}
 		},
@@ -63,6 +51,11 @@
 			// this.loadData();
 		},
 		methods: {
+			goWeb(url, title) {
+			uni.navigateTo({
+				url: `/pages/webview/index?url=${encodeURIComponent(url)}&title=${encodeURIComponent(title)	}`
+			})
+		},
 			onBack() {},
 			chkSel() {
 				if (this.sel == 1) {

+ 2 - 1
pages/index/articleDetail.vue

@@ -730,7 +730,8 @@ export default {
 				urls: this.swperImages,
 				current: index,
 				indicator: 'number',
-				loop: true
+				loop: true,
+				showmenu:false
 			});
 		},
 	},

+ 12 - 12
pages/index/index copy.vue

@@ -269,18 +269,18 @@ export default {
         "../../static/dome/home-swper.png",
       ],
       cardList: [
-        {
-          img: "/static/img/img-1.png",
-          bgimg: "/static/image/bg-2.png",
-        },
-        {
-          img: "/static/img/img-3.png",
-          bgimg: "/static/image/bg-3.png",
-        },
-        {
-          img: "/static/img/img-2.png",
-          bgimg: "/static/image/bg-1.png",
-        },
+        // {
+        //   img: "/static/img/img-1.png",
+        //   bgimg: "/static/image/bg-2.png",
+        // },
+        // {
+        //   img: "/static/img/img-3.png",
+        //   bgimg: "/static/image/bg-3.png",
+        // },
+        // {
+        //   img: "/static/img/img-2.png",
+        //   bgimg: "/static/image/bg-1.png",
+        // },
       ],
       list: [], // 瀑布流全部数据
       dataList: [],

+ 867 - 884
pages/index/index.vue

@@ -11,22 +11,22 @@
 		<view style="display: flex; justify-content: flex-end">
 			<view class="view6 step7"></view>
 		</view> --		</view> -->
-    <z-paging :use-custom-refresher="false" ref="paging" v-model="dataList" :auto="false"
-      :style="{ height: windowHeight - 80 + 'px' }" :show-scrollbar="false" :refresher-enabled="true"
-      @refresherrefresh="onRefresh" @refresherrestore="onRefresherRestore" @query="queryLists" :fixed="true"
-      :safe-area-inset-bottom="true" :loading-more-enabled="true" :loading-more-no-more-text="'没有更多了'"
-      :loading-more-loading-text="'加载中...'" :loading-more-fail-text="'加载失败,点击重试'" :loading-more-default-text="'上拉加载更多'"
-      :loading-more-loading-style="{ color: '#999' }" :loading-more-no-more-style="{ color: '#999' }"
-      :loading-more-fail-style="{ color: '#999' }" :loading-more-default-style="{ color: '#999' }"
-      @loadingMore="onZPagingLoadMore">
-      <template #top>
-        <page-navbar>
-          <template #navCenter>
-            <view class="top" style="display: flex">
-              <!-- 手动选择城市功能隐藏 -->
-              <!-- <view class="topBox" @click="lhSelectCityFun"> -->
-              <view class="topBox"  >
-                <text style="
+		<z-paging :use-custom-refresher="false" ref="paging" v-model="dataList" :auto="false"
+			:style="{ height: windowHeight - 80 + 'px' }" :show-scrollbar="false" :refresher-enabled="true"
+			@refresherrefresh="onRefresh" @refresherrestore="onRefresherRestore" @query="queryLists" :fixed="true"
+			:safe-area-inset-bottom="true" :loading-more-enabled="true" :loading-more-no-more-text="'没有更多了'"
+			:loading-more-loading-text="'加载中...'" :loading-more-fail-text="'加载失败,点击重试'"
+			:loading-more-default-text="'上拉加载更多'" :loading-more-loading-style="{ color: '#999' }"
+			:loading-more-no-more-style="{ color: '#999' }" :loading-more-fail-style="{ color: '#999' }"
+			:loading-more-default-style="{ color: '#999' }" @loadingMore="onZPagingLoadMore">
+			<template #top>
+				<page-navbar>
+					<template #navCenter>
+						<view class="top" style="display: flex">
+							<!-- 手动选择城市功能隐藏 -->
+							<!-- <view class="topBox" @click="lhSelectCityFun"> -->
+							<view class="topBox">
+								<text style="
                     margin-left: 10rpx;
                     margin-right: 20rpx;
                     font-size: 44rpx;
@@ -40,8 +40,8 @@
 							<view class="weather">
 								<p>
 									{{ weather.weather }}<i :class="'qi-' + weather.icon"></i>️{{
-                    weather.temp
-                  }}
+										weather.temp
+									}}
 								</p>
 								<p>{{ getDayOfWeek }}</p>
 							</view>
@@ -162,8 +162,8 @@
 														src="@/static/icon/icon-third.png"
 														class="topic-index topic-index-img" mode=""></image>
 													<text v-else class="topic-index">{{
-                            pageIndex * 4 + index + 1
-                          }}</text>
+														pageIndex * 4 + index + 1
+													}}</text>
 													<view class="topic-content toe">
 														{{ topic.title }}
 													</view>
@@ -215,934 +215,917 @@
 </template>
 
 <script>
-	import sortble from "@/components/sortble/sortble.vue";
-	import tabbarVue from "@/components/tabbar/tabbar.vue";
-	import pageNavbar from "@/components/page-navbar/page-navbar.vue";
-	import wWaterfall from "@/components/w-waterfall/w-waterfall.vue";
-	import tabbar from "@/mixins/tabbar";
-	import card from "@/components/card/card.vue";
-	import lhSelectCity from "@/components/lh-select-city/index.vue";
-  import { mapState } from 'vuex'
-	import {
-		getStorage,
-		setStorage,
-		removeStorage
-	} from "@/common/util.js";
-	// import noviceGuidance from "@/components/novice-guidance/index.vue";
-	export default {
-		components: {
-			sortble,
-			tabbarVue,
-			pageNavbar,
-			wWaterfall,
-			lhSelectCity,
-			card,
-			// noviceGuidance
-		},
-		mixins: [tabbar],
-		data() {
-			return {
-				isFirstLoad: true, // 添加标记,用于判断是否是第一次加载
-				swiperHeight: 300, // 默认swiper高度
-				noMoreDataTimer: null, // 用于防抖处理的定时器
-				step: {
-					name: "workbenchSet5",
-					guideList: [{
-							el: ".step1",
-							tips: "这里是第一步的介绍~",
-							next: "下一步",
-						},
-						{
-							el: ".step2",
-							tips: "这里是第二步的介绍~",
-							next: "下一步",
-						},
-						{
-							el: ".step3",
-							tips: "这里是第三步的介绍~",
-							next: "下一步",
-						},
-						{
-							el: ".step4",
-							tips: "这里是第四步的介绍~",
-							next: "下一步",
-						},
-						{
-							el: ".step5",
-							tips: "这里是第五步的介绍~",
-							next: "下一步",
-						},
-						{
-							el: ".step6",
-							tips: "这里是第六步的介绍~",
-							next: "下一步",
-						},
-						{
-							el: ".step7",
-							tips: "最后一步啦~",
-							next: "完成",
-						},
-					],
+import sortble from "@/components/sortble/sortble.vue";
+import tabbarVue from "@/components/tabbar/tabbar.vue";
+import pageNavbar from "@/components/page-navbar/page-navbar.vue";
+import wWaterfall from "@/components/w-waterfall/w-waterfall.vue";
+import tabbar from "@/mixins/tabbar";
+import card from "@/components/card/card.vue";
+import lhSelectCity from "@/components/lh-select-city/index.vue";
+import { mapState,mapGetters } from 'vuex'
+import {
+	getStorage,
+	setStorage,
+	removeStorage
+} from "@/common/util.js";
+// import noviceGuidance from "@/components/novice-guidance/index.vue";
+export default {
+	components: {
+		sortble,
+		tabbarVue,
+		pageNavbar,
+		wWaterfall,
+		lhSelectCity,
+		card,
+		// noviceGuidance
+	},
+	mixins: [tabbar],
+	data() {
+		return {
+			isFirstLoad: true, // 添加标记,用于判断是否是第一次加载
+			swiperHeight: 300, // 默认swiper高度
+			noMoreDataTimer: null, // 用于防抖处理的定时器
+			step: {
+				name: "workbenchSet5",
+				guideList: [{
+					el: ".step1",
+					tips: "这里是第一步的介绍~",
+					next: "下一步",
 				},
-				windowHeight: uni.getWindowInfo().windowHeight,
-				bannerList: [
-					"../../static/dome/home-swper.png",
-					"../../static/dome/home-swper.png",
-					"../../static/dome/home-swper.png",
-				],
-				cardList: [{
-						img: "/static/img/img-1.png",
-						bgimg: "/static/image/bg-2.png",
-					},
-					{
-						img: "/static/img/img-3.png",
-						bgimg: "/static/image/bg-3.png",
-					},
-					{
-						img: "/static/img/img-2.png",
-						bgimg: "/static/image/bg-1.png",
-					},
-				],
-				list: [], // 瀑布流全部数据
-				dataList: [],
-				tabs: ["关注", "推荐", "探索"],
-				currentTab: 1,
-				currentTopicPage: 0,
-				followList: [], // 关注列表数据
-				recommendList: [], // 推荐列表数据
-				exploreList: [], // 探索列表数据
-				hotNewsList: [], // 热点新闻数据
-				newsList: [], // 新闻列表数据
-				followOffset: 0, // 关注列表偏移量
-				recommendOffset: 0, // 推荐列表偏移量
-				exploreOffset: 0, // 探索列表偏移量
-				newsOffset: 0, // 新闻列表偏移量
-				hasMoreFollow: true, // 是否有更多关注列表数据
-				hasMoreRecommend: true, // 是否有更多推荐列表数据
-				hasMoreExplore: true, // 是否有更多探索列表数据
-				hasMoreNews: true, // 是否有更多新闻列表数据
-				isLoadingFollow: false, // 是否正在加载关注列表
-				isLoadingRecommend: false, // 是否正在加载推荐列表
-				isLoadingExplore: false, // 是否正在加载探索列表
-				isLoadingNews: false, // 是否正在加载新闻列表
-				hotTopics: [],
-				lhSelectCityFalg: false,
-				hotCitys: [
-					"杭州",
-					"天津",
-					"北京",
-					"上海",
-					"深圳",
-					"广州",
-					"成都",
-					"重庆",
-					"厦门",
-				],
-				currentCity: "北京",
-				windowHeight: "",
-				weather: {
-					city: "",
-					weather: "",
-					temp: "0℃",
-					icon: 101,
+				{
+					el: ".step2",
+					tips: "这里是第二步的介绍~",
+					next: "下一步",
 				},
-				isContentRecommendation: true,
-				updateHeightTimer: null,
-			};
-		},
-
-		computed: {
-			...mapState('switchingModule', ['isTheTask']),
-			getDayOfWeek() {
-				const days = [
-					"星期日",
-					"星期一",
-					"星期二",
-					"星期三",
-					"星期四",
-					"星期五",
-					"星期六",
-				];
-				const today = new Date();
-				const dayOfWeek = days[today.getDay()];
-				return dayOfWeek;
+				{
+					el: ".step3",
+					tips: "这里是第三步的介绍~",
+					next: "下一步",
+				},
+				{
+					el: ".step4",
+					tips: "这里是第四步的介绍~",
+					next: "下一步",
+				},
+				{
+					el: ".step5",
+					tips: "这里是第五步的介绍~",
+					next: "下一步",
+				},
+				{
+					el: ".step6",
+					tips: "这里是第六步的介绍~",
+					next: "下一步",
+				},
+				{
+					el: ".step7",
+					tips: "最后一步啦~",
+					next: "完成",
+				},
+				],
 			},
-			currentList() {
-				switch (this.currentTab) {
-					case 0:
-						return this.followList;
-					case 1:
-						return this.recommendList; // 使用专门的推荐列表
-					case 2:
-						return this.exploreList;
-					default:
-						return [];
-				}
+			windowHeight: uni.getWindowInfo().windowHeight,
+			bannerList: [
+				"../../static/dome/home-swper.png",
+				"../../static/dome/home-swper.png",
+				"../../static/dome/home-swper.png",
+			],
+			cardList: [ ],
+			list: [], // 瀑布流全部数据
+			dataList: [],
+			tabs: ["关注", "推荐", "探索"],
+			currentTab: 1,
+			currentTopicPage: 0,
+			followList: [], // 关注列表数据
+			recommendList: [], // 推荐列表数据
+			exploreList: [], // 探索列表数据
+			hotNewsList: [], // 热点新闻数据
+			newsList: [], // 新闻列表数据
+			followOffset: 0, // 关注列表偏移量
+			recommendOffset: 0, // 推荐列表偏移量
+			exploreOffset: 0, // 探索列表偏移量
+			newsOffset: 0, // 新闻列表偏移量
+			hasMoreFollow: true, // 是否有更多关注列表数据
+			hasMoreRecommend: true, // 是否有更多推荐列表数据
+			hasMoreExplore: true, // 是否有更多探索列表数据
+			hasMoreNews: true, // 是否有更多新闻列表数据
+			isLoadingFollow: false, // 是否正在加载关注列表
+			isLoadingRecommend: false, // 是否正在加载推荐列表
+			isLoadingExplore: false, // 是否正在加载探索列表
+			isLoadingNews: false, // 是否正在加载新闻列表
+			hotTopics: [],
+			lhSelectCityFalg: false,
+			hotCitys: [
+				"杭州",
+				"天津",
+				"北京",
+				"上海",
+				"深圳",
+				"广州",
+				"成都",
+				"重庆",
+				"厦门",
+			],
+			currentCity: "北京",
+			windowHeight: "",
+			weather: {
+				city: "",
+				weather: "",
+				temp: "0℃",
+				icon: 101,
 			},
-			topicPages() {
-				const pages = [];
-				for (let i = 0; i < this.hotTopics.length; i += 4) {
-					pages.push(this.hotTopics.slice(i, i + 4));
-				}
-				return pages;
-			},
-		},
-		onLoad() {
-			let that = this;
-			// 计算出可用高度
-			this.windowHeight = uni.getSystemInfoSync().windowHeight + "px";
-			// 计算swiper默认高度
-			const systemInfo = uni.getSystemInfoSync();
-			this.swiperHeight = systemInfo.windowHeight * 0.6; // 初始设置为窗口高度的60%
-
-			// 获取天气信息
-			this.getWeather();
+			updateHeightTimer: null,
+		};
+	},
 
-			// 初始化数据,确保首次加载正确
-			this.$nextTick(() => {
-				// 根据当前标签加载数据
-				this.initialLoad();
-			});
+	computed: {
+		...mapState('switchingModule', ['isTheTask']),
+		...mapState('rightsManagement', ['teenageMode','iscontentRecommendation']),
+		...mapGetters( 'rightsManagement', ['isContent']),
+		getDayOfWeek() {
+			const days = [
+				"星期日",
+				"星期一",
+				"星期二",
+				"星期三",
+				"星期四",
+				"星期五",
+				"星期六",
+			];
+			const today = new Date();
+			const dayOfWeek = days[today.getDay()];
+			return dayOfWeek;
+		},
+		currentList() {
+			switch (this.currentTab) {
+				case 0:
+					return this.followList;
+				case 1:
+					return this.recommendList; // 使用专门的推荐列表
+				case 2:
+					return this.exploreList;
+				default:
+					return [];
+			}
 		},
-		onShow() {
-			var isContentRecommendation = getStorage("isContentRecommendation");
-			console.log(isContentRecommendation, "isContentRecommendation");
-			if (isContentRecommendation != "false") {
-				isContentRecommendation = true;
-			} else {
-				isContentRecommendation = false;
+		topicPages() {
+			const pages = [];
+			for (let i = 0; i < this.hotTopics.length; i += 4) {
+				pages.push(this.hotTopics.slice(i, i + 4));
 			}
-			this.isContentRecommendation = isContentRecommendation;
+			return pages;
+		},
+	},
+	onLoad() {
+		let that = this;
+		// 计算出可用高度
+		this.windowHeight = uni.getSystemInfoSync().windowHeight + "px";
+		// 计算swiper默认高度
+		const systemInfo = uni.getSystemInfoSync();
+		this.swiperHeight = systemInfo.windowHeight * 0.6; // 初始设置为窗口高度的60%
 
-    if (isContentRecommendation == false) {
-      this.tabs = ["关注"];
-      this.currentTab = 0;
-      this.queryList();
-    } else {
-      this.tabs = ["关注", "推荐", "探索"];
-      // this.currentTab = 1;
-      // 如果数据为空,加载初始数据
-      if (this.recommendList.length === 0) {
-        this.initialLoad();
-      }
-    }
-	uni.$emit('check_update');
-  },
-  // 修改触底加载方法
-  onReachBottom() {
-    console.log('触底加载更多');
-    // 根据当前标签页加载更多数据
-    switch (this.currentTab) {
-      case 0:
-        if (this.hasMoreFollow && !this.isLoadingFollow) {
-          this.loadFollowList();
-        }
-        break;
-      case 1:
-        if (this.hasMoreRecommend && !this.isLoadingRecommend) {
-          this.loadRecommendList();
-        }
-        break;
-      case 2:
-        if (this.hasMoreNews && !this.isLoadingNews) {
-          this.loadNewsList();
-        }
-        break;
-    }
-  },
+		// 获取天气信息
+		this.getWeather();
 
-		// 下拉刷新数据
-		methods: {
-			swipeRight() {
-				let index = this.currentTab
-				index--
-				if (index < 0) {
-					index = this.tabs.length - 1
+		// 初始化数据,确保首次加载正确
+		this.$nextTick(() => {
+			// 根据当前标签加载数据
+			this.initialLoad();
+		});
+	},
+	onShow() { 
+		console.log('teenageMode',this.teenageMode);
+		console.log('iscontentRecommendation',this.iscontentRecommendation); 
+		console.log('isContent',this.isContent);
+		if ( !this.isContent ) {
+			this.tabs = ["关注"];
+			this.currentTab = 0; 
+			this.queryList();
+		} else {
+			this.tabs = ["关注", "推荐", "探索"];
+			// this.currentTab = 1;
+			// 如果数据为空,加载初始数据
+			if (this.recommendList.length === 0) {
+				this.initialLoad();
+			}
+		}
+		uni.$emit('check_update');
+	},
+	// 修改触底加载方法
+	onReachBottom() {
+		console.log('触底加载更多');
+		// 根据当前标签页加载更多数据
+		switch (this.currentTab) {
+			case 0:
+				if (this.hasMoreFollow && !this.isLoadingFollow) {
+					this.loadFollowList();
 				}
-				this.switchTab(index)
-				console.log('向右滑动')
-			},
-			swipeLeft() {
-				let index = this.currentTab
-				index++
-				if (index > this.tabs.length - 1) {
-					index = 0
+				break;
+			case 1:
+				if (this.hasMoreRecommend && !this.isLoadingRecommend) {
+					this.loadRecommendList();
 				}
-				this.switchTab(index)
-				console.log('向左滑动')
-			},
-			getWeather(city) {
-				uni.request({
-					url: this.$apiHost + "/Index/getAreaInfo",
-					data: {
-						uuid: getApp().globalData.uuid,
-						skey: getApp().globalData.skey,
-						city: city || (this.currentCity == "北京" ? "" : this.currentCity),
-					},
-					header: {
-						"content-type": "application/json",
-						sign: getApp().globalData.headerSign,
-					},
-					success: (res) => {
-						console.log(this.weather, "天气数据", res.data);
-						if (res.data.city) {
-							this.currentCity = res.data.city;
-							this.weather = res.data;
-						}
-					},
-					complete: () => {},
-					fail: (e) => {},
-				});
-			},
-			lhSelectCityFun() {
-				this.lhSelectCityFalg = true;
-			},
-			// 选中事件
-			City(city) {
-				this.currentCity = city;
-				setTimeout(() => {
-					this.lhSelectCityFalg = false;
-				}, 300);
-			},
-			closeLhSelectCityFun() {
-				this.lhSelectCityFalg = false;
-			},
-			queryList() {
-				// 根据当前标签刷新数据
-				switch (this.currentTab) {
-					case 0:
-						// 重置关注列表
-						this.followList = [];
-						this.followOffset = 0;
-						this.hasMoreFollow = true;
-						this.loadFollowList();
-						break;
-					case 1:
-						// 重置推荐列表
-						this.recommendList = [];
-						this.recommendOffset = 0;
-						this.hasMoreRecommend = true;
-						this.loadRecommendList();
-						break;
-					case 2:
-						// 重置热点新闻和新闻列表
-						this.hotNewsList = [];
-						this.newsList = [];
-						this.newsOffset = 0;
-						this.hasMoreNews = true;
-						// 加载热点新闻和新闻列表
-						this.loadHotNews();
-						this.loadNewsList();
-						break;
+				break;
+			case 2:
+				if (this.hasMoreNews && !this.isLoadingNews) {
+					this.loadNewsList();
 				}
-			},
-			queryLists() {
-				// 根据当前标签刷新数据
-				switch (this.currentTab) {
-					case 0:
-						// 重置关注列表
-						this.loadFollowList();
-						break;
-					case 1:
-						// 重置推荐列表
-						this.loadRecommendList();
-						break;
-					case 2:
-						// 重置热点新闻和新闻列表
-						// 加载热点新闻和新闻列表
-						this.loadHotNews();
-						this.loadNewsList();
-						break;
-				}
-				// 第一次加载完成后,将标记设置为false
-				this.isFirstLoad = false;
-			},
+				break;
+		}
+	},
 
-			switchTab(index) {
-				if (this.currentTab === index) return;
-				this.currentTab = index;
+	// 下拉刷新数据
+	methods: {
+		swipeRight() {
+			let index = this.currentTab
+			index--
+			if (index < 0) {
+				index = this.tabs.length - 1
+			}
+			this.switchTab(index)
+			console.log('向右滑动')
+		},
+		swipeLeft() {
+			let index = this.currentTab
+			index++
+			if (index > this.tabs.length - 1) {
+				index = 0
+			}
+			this.switchTab(index)
+			console.log('向左滑动')
+		},
+		getWeather(city) {
+			uni.request({
+				url: this.$apiHost + "/Index/getAreaInfo",
+				data: {
+					uuid: getApp().globalData.uuid,
+					skey: getApp().globalData.skey,
+					city: city || (this.currentCity == "北京" ? "" : this.currentCity),
+				},
+				header: {
+					"content-type": "application/json",
+					sign: getApp().globalData.headerSign,
+				},
+				success: (res) => {
+					console.log(this.weather, "天气数据", res.data);
+					if (res.data.data.city) { 
+						this.currentCity = res.data.data.city;
+						this.weather = res.data.data;
+					}
+				},
+				complete: () => { },
+				fail: (e) => { },
+			});
+		},
+		lhSelectCityFun() {
+			this.lhSelectCityFalg = true;
+		},
+		// 选中事件
+		City(city) {
+			this.currentCity = city;
+			setTimeout(() => {
+				this.lhSelectCityFalg = false;
+			}, 300);
+		},
+		closeLhSelectCityFun() {
+			this.lhSelectCityFalg = false;
+		},
+		queryList() {
+			// 根据当前标签刷新数据
+			switch (this.currentTab) {
+				case 0:
+					// 重置关注列表
+					this.followList = [];
+					this.followOffset = 0;
+					this.hasMoreFollow = true;
+					this.loadFollowList();
+					break;
+				case 1:
+					// 重置推荐列表
+					this.recommendList = [];
+					this.recommendOffset = 0;
+					this.hasMoreRecommend = true;
+					this.loadRecommendList();
+					break;
+				case 2:
+					// 重置热点新闻和新闻列表
+					this.hotNewsList = [];
+					this.newsList = [];
+					this.newsOffset = 0;
+					this.hasMoreNews = true;
+					// 加载热点新闻和新闻列表
+					this.loadHotNews();
+					this.loadNewsList();
+					break;
+			}
+		},
+		queryLists() {
+			// 根据当前标签刷新数据
+			switch (this.currentTab) {
+				case 0:
+					// 重置关注列表
+					this.loadFollowList();
+					break;
+				case 1:
+					// 重置推荐列表
+					this.loadRecommendList();
+					break;
+				case 2:
+					// 重置热点新闻和新闻列表
+					// 加载热点新闻和新闻列表
+					this.loadHotNews();
+					this.loadNewsList();
+					break;
+			}
+			// 第一次加载完成后,将标记设置为false
+			this.isFirstLoad = false;
+		},
 
-				// 重置当前标签页的数据
-				switch (index) {
-					case 0:
-						this.followList = [];
-						this.followOffset = 0;
-						this.hasMoreFollow = true;
-						break;
-					case 1:
-						this.recommendList = [];
-						this.recommendOffset = 0;
-						this.hasMoreRecommend = true;
-						break;
-					case 2:
-						this.newsList = [];
-						this.hotTopics = [];
-						this.newsOffset = 0;
-						this.hasMoreNews = true;
-						break;
-				}
+		switchTab(index) {
+			if (this.currentTab === index) return;
+			this.currentTab = index;
 
-				// 加载新标签页的数据
-				this.loadTabData(index);
+			// 重置当前标签页的数据
+			switch (index) {
+				case 0:
+					this.followList = [];
+					this.followOffset = 0;
+					this.hasMoreFollow = true;
+					break;
+				case 1:
+					this.recommendList = [];
+					this.recommendOffset = 0;
+					this.hasMoreRecommend = true;
+					break;
+				case 2:
+					this.newsList = [];
+					this.hotTopics = [];
+					this.newsOffset = 0;
+					this.hasMoreNews = true;
+					break;
+			}
 
-				// 切换标签后更新swiper高度
-				// 在切换标签时,先将高度设置为一个合适的默认值
-				// 然后在数据加载完成后再动态调整
-				const systemInfo = uni.getSystemInfoSync();
-				this.swiperHeight = systemInfo.windowHeight * 0.6;
-			},
-			loadTabData(index) {
-				switch (index) {
-					case 0:
-						this.loadFollowList();
-						break;
-					case 1:
-						this.loadRecommendList();
-						break;
-					case 2:
-						this.loadHotNews();
-						this.loadNewsList();
-						break;
-				}
-			},
-			// 修改关注列表加载方法
-			loadFollowList() {
-				if (this.isLoadingFollow) return;
-				this.isLoadingFollow = true;
+			// 加载新标签页的数据
+			this.loadTabData(index);
 
-				// 保存当前列表数据
-				const currentList = [...this.followList];
+			// 切换标签后更新swiper高度
+			// 在切换标签时,先将高度设置为一个合适的默认值
+			// 然后在数据加载完成后再动态调整
+			const systemInfo = uni.getSystemInfoSync();
+			this.swiperHeight = systemInfo.windowHeight * 0.6;
+		},
+		loadTabData(index) {
+			switch (index) {
+				case 0:
+					this.loadFollowList();
+					break;
+				case 1:
+					this.loadRecommendList();
+					break;
+				case 2:
+					this.loadHotNews();
+					this.loadNewsList();
+					break;
+			}
+		},
+		// 修改关注列表加载方法
+		loadFollowList() {
+			if (this.isLoadingFollow) return;
+			this.isLoadingFollow = true;
 
-				// offset设置为当前列表长度
-				this.followOffset = currentList.length;
-				console.log('请求关注列表数据,当前offset =', this.followOffset);
+			// 保存当前列表数据
+			const currentList = [...this.followList];
 
-				uni.request({
-					url: this.$apiHost + "/Work/getlist",
-					data: {
-						uuid: getApp().globalData.uuid,
-						skey: getApp().globalData.skey,
-						type: "attention",
-						offset: this.followOffset,
-					},
-					header: {
-						"content-type": "application/json",
-						sign: getApp().globalData.headerSign,
-					},
-					success: (res) => {
-						console.log("关注列表数据:", res.data);
-						if (res.data.success == "yes" && res.data.list && res.data.list.length > 0) {
-							// 追加新数据到列表
-							this.followList = [...currentList, ...res.data.list];
-							console.log('关注列表加载成功,当前列表长度:', this.followList.length);
-							this.hasMoreFollow = res.data.list.length >= 20;
-						} else {
-							this.hasMoreFollow = false;
-							this.showNoMoreDataToast("没有更多关注内容了");
-						}
+			// offset设置为当前列表长度
+			this.followOffset = currentList.length;
+			console.log('请求关注列表数据,当前offset =', this.followOffset);
 
-						// 使用 nextTick 确保数据更新后再通知组件
-						this.$nextTick(() => {
-							if (this.$refs.paging) {
-								// 第一个参数需要是数组,将当前列表传入
-								this.$refs.paging.complete(this.followList);
-							}
-							// 数据加载完成后更新swiper高度
-							if (this.currentTab === 0) {
-								// 使用setTimeout确保数据渲染完成后再更新高度
-								setTimeout(() => {
-									this.updateSwiperHeight();
-								}, 300);
-								setTimeout(() => {
-									this.updateSwiperHeight();
-								}, 650);
-							}
-						});
-					},
-					complete: () => {
-						this.isLoadingFollow = false;
-					},
-					fail: (e) => {
-						console.log("请求关注列表失败:", e);
-						this.isLoadingFollow = false;
+			uni.request({
+				url: this.$apiHost + "/Work/getlist",
+				data: {
+					uuid: getApp().globalData.uuid,
+					skey: getApp().globalData.skey,
+					type: "attention",
+					offset: this.followOffset,
+				},
+				header: {
+					"content-type": "application/json",
+					sign: getApp().globalData.headerSign,
+				},
+				success: (res) => {
+					console.log("关注列表数据:", res.data);
+					if (res.data.success == "yes" && res.data.list && res.data.list.length > 0) {
+						// 追加新数据到列表
+						this.followList = [...currentList, ...res.data.list];
+						console.log('关注列表加载成功,当前列表长度:', this.followList.length);
+						this.hasMoreFollow = res.data.list.length >= 20;
+					} else {
+						this.hasMoreFollow = false;
+						this.showNoMoreDataToast("没有更多关注内容了");
+					}
+
+					// 使用 nextTick 确保数据更新后再通知组件
+					this.$nextTick(() => {
 						if (this.$refs.paging) {
-							// 加载失败时提供空数组
-							this.$refs.paging.complete([]);
+							// 第一个参数需要是数组,将当前列表传入
+							this.$refs.paging.complete(this.followList);
 						}
-					},
-				});
-			},
-			// 修改推荐列表加载方法
-			loadRecommendList() {
-				if (this.isLoadingRecommend) return;
-				this.isLoadingRecommend = true;
+						// 数据加载完成后更新swiper高度
+						if (this.currentTab === 0) {
+							// 使用setTimeout确保数据渲染完成后再更新高度
+							setTimeout(() => {
+								this.updateSwiperHeight();
+							}, 300);
+							setTimeout(() => {
+								this.updateSwiperHeight();
+							}, 650);
+						}
+					});
+				},
+				complete: () => {
+					this.isLoadingFollow = false;
+				},
+				fail: (e) => {
+					console.log("请求关注列表失败:", e);
+					this.isLoadingFollow = false;
+					if (this.$refs.paging) {
+						// 加载失败时提供空数组
+						this.$refs.paging.complete([]);
+					}
+				},
+			});
+		},
+		// 修改推荐列表加载方法
+		loadRecommendList() {
+			if (this.isLoadingRecommend) return;
+			this.isLoadingRecommend = true;
 
-				// 保存当前列表数据
-				const currentList = [...this.recommendList];
+			// 保存当前列表数据
+			const currentList = [...this.recommendList];
 
-				// offset设置为当前列表长度
-				this.recommendOffset = currentList.length;
-				console.log('请求推荐列表数据,当前offset =', this.recommendOffset);
+			// offset设置为当前列表长度
+			this.recommendOffset = currentList.length;
+			console.log('请求推荐列表数据,当前offset =', this.recommendOffset);
 
-				uni.request({
-					url: this.$apiHost + "/Work/getlist",
-					data: {
-						uuid: getApp().globalData.uuid,
-						skey: getApp().globalData.skey,
-						type: "recommend",
-						offset: this.recommendOffset,
-					},
-					header: {
-						"content-type": "application/json",
-						sign: getApp().globalData.headerSign,
-					},
-					success: (res) => {
-						console.log("推荐列表数据:", res.data);
-						if (res.data.success == "yes" && res.data.list && res.data.list.length > 0) {
-							// 追加新数据到列表
-							this.recommendList = [...currentList, ...res.data.list];
-							console.log('推荐列表加载成功,当前列表长度:', this.recommendList.length);
-							this.hasMoreRecommend = res.data.list.length >= 20;
-						} else {
-							this.hasMoreRecommend = false;
-							this.showNoMoreDataToast("没有更多推荐内容了");
-						}
+			uni.request({
+				url: this.$apiHost + "/Work/getlist",
+				data: {
+					uuid: getApp().globalData.uuid,
+					skey: getApp().globalData.skey,
+					type: "recommend",
+					offset: this.recommendOffset,
+				},
+				header: {
+					"content-type": "application/json",
+					sign: getApp().globalData.headerSign,
+				},
+				success: (res) => {
+					console.log("推荐列表数据:", res.data);
+					if (res.data.success == "yes" && res.data.list && res.data.list.length > 0) {
+						// 追加新数据到列表
+						this.recommendList = [...currentList, ...res.data.list];
+						console.log('推荐列表加载成功,当前列表长度:', this.recommendList.length);
+						this.hasMoreRecommend = res.data.list.length >= 20;
+					} else {
+						this.hasMoreRecommend = false;
+						this.showNoMoreDataToast("没有更多推荐内容了");
+					}
 
-						this.$nextTick(() => {
-							if (this.$refs.paging) {
-								// 第一个参数需要是数组,将当前列表传入
-								this.$refs.paging.complete(this.recommendList);
-							}
-							// 数据加载完成后更新swiper高度
-							if (this.currentTab === 1) {
-								setTimeout(() => {
-									this.updateSwiperHeight();
-								}, 300);
-								setTimeout(() => {
-									this.updateSwiperHeight();
-								}, 650);
-							}
-						});
-					},
-					complete: () => {
-						this.isLoadingRecommend = false;
-					},
-					fail: (e) => {
-						console.log("请求推荐列表失败:", e);
-						this.isLoadingRecommend = false;
+					this.$nextTick(() => {
 						if (this.$refs.paging) {
-							// 加载失败时提供空数组
-							this.$refs.paging.complete([]);
+							// 第一个参数需要是数组,将当前列表传入
+							this.$refs.paging.complete(this.recommendList);
 						}
-					},
-				});
-			},
-			loadHotNews() {
-				if (this.isLoadingExplore) return;
-				this.isLoadingExplore = true;
-
-				uni.request({
-					url: this.$apiHost + "/Article/getlist",
-					data: {
-						uuid: getApp().globalData.uuid,
-						skey: getApp().globalData.skey,
-						type: "hot",
-					},
-					header: {
-						"content-type": "application/json",
-						sign: getApp().globalData.headerSign,
-					},
-					success: (res) => {
-						console.log("热点新闻数据:", res.data);
-						if (res.data.success == "yes" && res.data.list && res.data.list.length > 0) {
-							this.hotNewsList = res.data.list;
-							this.hotTopics = this.hotNewsList.map((item, index) => ({
-								id: item.id,
-								title: item.title || "热门话题",
-								num_like: item.num_like || 0,
-								isHot: index % 2 === 0,
-							}));
+						// 数据加载完成后更新swiper高度
+						if (this.currentTab === 1) {
+							setTimeout(() => {
+								this.updateSwiperHeight();
+							}, 300);
+							setTimeout(() => {
+								this.updateSwiperHeight();
+							}, 650);
 						}
-					},
-					complete: () => {
-						this.isLoadingExplore = false;
-					},
-					fail: (e) => {
-						console.log("请求热点新闻失败:", e);
-						this.isLoadingExplore = false;
-					},
-				});
-			},
-			// 修改新闻列表加载方法
-			loadNewsList() {
-				if (this.isLoadingNews) return;
-				this.isLoadingNews = true;
+					});
+				},
+				complete: () => {
+					this.isLoadingRecommend = false;
+				},
+				fail: (e) => {
+					console.log("请求推荐列表失败:", e);
+					this.isLoadingRecommend = false;
+					if (this.$refs.paging) {
+						// 加载失败时提供空数组
+						this.$refs.paging.complete([]);
+					}
+				},
+			});
+		},
+		loadHotNews() {
+			if (this.isLoadingExplore) return;
+			this.isLoadingExplore = true;
 
-				// 保存当前列表数据
-				const currentList = [...this.newsList];
+			uni.request({
+				url: this.$apiHost + "/Article/getlist",
+				data: {
+					uuid: getApp().globalData.uuid,
+					skey: getApp().globalData.skey,
+					type: "hot",
+				},
+				header: {
+					"content-type": "application/json",
+					sign: getApp().globalData.headerSign,
+				},
+				success: (res) => {
+					console.log("热点新闻数据:", res.data);
+					if (res.data.success == "yes" && res.data.list && res.data.list.length > 0) {
+						this.hotNewsList = res.data.list;
+						this.hotTopics = this.hotNewsList.map((item, index) => ({
+							id: item.id,
+							title: item.title || "热门话题",
+							num_like: item.num_like || 0,
+							isHot: index % 2 === 0,
+						}));
+					}
+				},
+				complete: () => {
+					this.isLoadingExplore = false;
+				},
+				fail: (e) => {
+					console.log("请求热点新闻失败:", e);
+					this.isLoadingExplore = false;
+				},
+			});
+		},
+		// 修改新闻列表加载方法
+		loadNewsList() {
+			if (this.isLoadingNews) return;
+			this.isLoadingNews = true;
 
-				// offset设置为当前列表长度
-				this.newsOffset = currentList.length;
-				console.log('请求新闻列表数据,当前offset =', this.newsOffset);
+			// 保存当前列表数据
+			const currentList = [...this.newsList];
 
-				uni.request({
-					url: this.$apiHost + "/Article/getlist",
-					data: {
-						uuid: getApp().globalData.uuid,
-						skey: getApp().globalData.skey,
-						type: "list",
-						offset: this.newsOffset,
-					},
-					header: {
-						"content-type": "application/json",
-						sign: getApp().globalData.headerSign,
-					},
-					success: (res) => {
-						console.log("新闻列表数据:", res.data);
-						if (res.data.success == "yes" && res.data.list && res.data.list.length > 0) {
-							// 追加新数据到列表
-							this.newsList = [...currentList, ...res.data.list];
-							console.log('新闻列表加载成功,当前列表长度:', this.newsList.length);
+			// offset设置为当前列表长度
+			this.newsOffset = currentList.length;
+			console.log('请求新闻列表数据,当前offset =', this.newsOffset);
 
-							this.hasMoreNews = res.data.list.length >= 20;
-						} else {
-							this.hasMoreNews = false;
-							this.showNoMoreDataToast("没有更多新闻内容了");
-						}
+			uni.request({
+				url: this.$apiHost + "/Article/getlist",
+				data: {
+					uuid: getApp().globalData.uuid,
+					skey: getApp().globalData.skey,
+					type: "list",
+					offset: this.newsOffset,
+				},
+				header: {
+					"content-type": "application/json",
+					sign: getApp().globalData.headerSign,
+				},
+				success: (res) => {
+					console.log("新闻列表数据:", res.data);
+					if (res.data.success == "yes" && res.data.list && res.data.list.length > 0) {
+						// 追加新数据到列表
+						this.newsList = [...currentList, ...res.data.list];
+						console.log('新闻列表加载成功,当前列表长度:', this.newsList.length);
 
-						this.$nextTick(() => {
-							if (this.$refs.paging) {
-								// 第一个参数需要是数组,将当前列表传入
-								this.$refs.paging.complete(this.newsList);
-							}
-							// 数据加载完成后更新swiper高度
-							if (this.currentTab === 2) {
-								setTimeout(() => {
-									this.updateSwiperHeight();
-								}, 300);
-								setTimeout(() => {
-									this.updateSwiperHeight();
-								}, 650);
-							}
-						});
-					},
-					complete: () => {
-						this.isLoadingNews = false;
-					},
-					fail: (e) => {
-						console.log("请求新闻列表失败:", e);
-						this.isLoadingNews = false;
+						this.hasMoreNews = res.data.list.length >= 20;
+					} else {
+						this.hasMoreNews = false;
+						this.showNoMoreDataToast("没有更多新闻内容了");
+					}
+
+					this.$nextTick(() => {
 						if (this.$refs.paging) {
-							// 加载失败时提供空数组
-							this.$refs.paging.complete([]);
+							// 第一个参数需要是数组,将当前列表传入
+							this.$refs.paging.complete(this.newsList);
 						}
-					},
-				});
-			},
-			handleTopicPageChange(e) {
-				this.currentTopicPage = e.detail.current;
-			},
+						// 数据加载完成后更新swiper高度
+						if (this.currentTab === 2) {
+							setTimeout(() => {
+								this.updateSwiperHeight();
+							}, 300);
+							setTimeout(() => {
+								this.updateSwiperHeight();
+							}, 650);
+						}
+					});
+				},
+				complete: () => {
+					this.isLoadingNews = false;
+				},
+				fail: (e) => {
+					console.log("请求新闻列表失败:", e);
+					this.isLoadingNews = false;
+					if (this.$refs.paging) {
+						// 加载失败时提供空数组
+						this.$refs.paging.complete([]);
+					}
+				},
+			});
+		},
+		handleTopicPageChange(e) {
+			this.currentTopicPage = e.detail.current;
+		},
 
-			formatItem(item) {
-				console.log("item:", item);
+		formatItem(item) {
+			console.log("item:", item);
 
 
-				let img = "";
-				if (item.images) {
-					img = item.images.split("|")[0];
-				}
+			let img = "";
+			if (item.images) {
+				img = item.images.split("|")[0];
+			}
 
-				// 处理接口返回的数据,使其适配card组件
-				return {
-					id: item.id,
-					allowEdit: false,
-					nickname: item.nickname,
-					avator: item.avator,
-					num_like: item.num_like,
-					num_view: item.num_view,
-					image: img || item.img_url || item.image, // 优先使用images字段
-					w: item.width,
-					h: item.height,
-					title: item.title || "",
-					desc: item.desc || "",
-					userID: item.userID || 0,
-					backgroundColor: "#f6f6f6",
-				};
-			},
+			// 处理接口返回的数据,使其适配card组件
+			return {
+				id: item.id,
+				allowEdit: false,
+				nickname: item.nickname,
+				avator: item.avator,
+				num_like: item.num_like,
+				num_view: item.num_view,
+				image: img || item.img_url || item.image, // 优先使用images字段
+				w: item.width,
+				h: item.height,
+				title: item.title || "",
+				desc: item.desc || "",
+				userID: item.userID || 0,
+				backgroundColor: "#f6f6f6",
+			};
+		},
 
-			goToArticleDetail(id) {
-				if (!id) {
-					uni.showToast({
-						title: "文章ID不存在",
-						icon: "none",
-					});
-					return;
-				}
-				// uni.$emit("check_login", () => {
-				uni.navigateTo({
-					url: "/pages/index/articleDetail?id=" + id,
+		goToArticleDetail(id) {
+			if (!id) {
+				uni.showToast({
+					title: "文章ID不存在",
+					icon: "none",
 				});
-				// });
-			},
-			goWork(item) {
-				console.log("skeylogin", "xxx");
-				uni.$emit("check_login", () => {
-					uni.navigateTo({
-						url: "/pages/index/workDetail?id=" + item.id,
-					});
+				return;
+			}
+			// uni.$emit("check_login", () => {
+			uni.navigateTo({
+				url: "/pages/index/articleDetail?id=" + id,
+			});
+			// });
+		},
+		goWork(item) {
+			console.log("skeylogin", "xxx");
+			uni.$emit("check_login", () => {
+				uni.navigateTo({
+					url: "/pages/index/workDetail?id=" + item.id,
 				});
-			},
-			goToMake() {
-				console.log("skeylogin", "xxx2");
-				uni.$emit("check_login", () => {
-					uni.navigateTo({
-						// 生成个人形象
-						// url: "/pages/make/make",
-						url: "/pages/make/fabuArticle?id=-1",
-					});
+			});
+		},
+		goToMake() {
+			console.log("skeylogin", "xxx2");
+			uni.$emit("check_login", () => {
+				uni.navigateTo({
+					// 生成个人形象
+					// url: "/pages/make/make",
+					url: "/pages/make/fabuArticle?id=-1",
 				});
-			},
-			goPage(page) {
-				uni.$emit("check_login", () => {
-					uni.navigateTo({
-						url: page,
-					});
+			});
+		},
+		goPage(page) {
+			uni.$emit("check_login", () => {
+				uni.navigateTo({
+					url: page,
 				});
-			},
-			// 修改下拉刷新方法
-			onRefresh() {
-				console.log('下拉刷新开始');
-				// 重置所有数据
-				this.followList = [];
-				this.recommendList = [];
-				this.newsList = [];
-				this.hotTopics = [];
-
-				// 重置偏移量
-				this.followOffset = 0;
-				this.recommendOffset = 0;
-				this.newsOffset = 0;
-
-				// 重置加载状态
-				this.hasMoreFollow = true;
-				this.hasMoreRecommend = true;
-				this.hasMoreNews = true;
+			});
+		},
+		// 修改下拉刷新方法
+		onRefresh() {
+			console.log('下拉刷新开始');
+			// 重置所有数据
+			this.followList = [];
+			this.recommendList = [];
+			this.newsList = [];
+			this.hotTopics = [];
 
-				// 根据当前标签页加载数据
-				this.loadTabData(this.currentTab);
-			},
+			// 重置偏移量
+			this.followOffset = 0;
+			this.recommendOffset = 0;
+			this.newsOffset = 0;
 
-			// 下拉刷新恢复
-			onRefresherRestore() {
-				console.log('下拉刷新恢复');
-			},
-			// 处理z-paging的触底加载更多事件
-			onZPagingLoadMore(pageNo, pageSize) {
-				console.log('触底加载更多, 页码:', pageNo, '页大小:', pageSize);
-				// 根据当前标签页加载更多数据
-				switch (this.currentTab) {
-					case 0:
-						if (this.hasMoreFollow && !this.isLoadingFollow) {
-							this.loadFollowList();
-						} else if (!this.hasMoreFollow && !this.isLoadingFollow && this.followList.length > 0) {
-							this.showNoMoreDataToast("没有更多关注内容了");
-							// 通知组件加载完毕且没有更多数据
-							this.$nextTick(() => {
-								if (this.$refs.paging) {
-									this.$refs.paging.complete(this.followList);
-								}
-							});
-						} else if (this.followList.length === 0 && !this.isLoadingFollow) {
-							this.showNoMoreDataToast("暂无关注内容");
-							// 通知组件加载完毕且没有数据
-							this.$nextTick(() => {
-								if (this.$refs.paging) {
-									this.$refs.paging.complete([]);
-								}
-							});
-						}
-						break;
-					case 1:
-						if (this.hasMoreRecommend && !this.isLoadingRecommend) {
-							this.loadRecommendList();
-						} else if (!this.hasMoreRecommend && !this.isLoadingRecommend && this.recommendList.length > 0) {
-							this.showNoMoreDataToast("没有更多推荐内容了");
-							// 通知组件加载完毕且没有更多数据
-							this.$nextTick(() => {
-								if (this.$refs.paging) {
-									this.$refs.paging.complete(this.recommendList);
-								}
-							});
-						} else if (this.recommendList.length === 0 && !this.isLoadingRecommend) {
-							this.showNoMoreDataToast("暂无推荐内容");
-							// 通知组件加载完毕且没有数据
-							this.$nextTick(() => {
-								if (this.$refs.paging) {
-									this.$refs.paging.complete([]);
-								}
-							});
-						}
-						break;
-					case 2:
-						if (this.hasMoreNews && !this.isLoadingNews) {
-							this.loadNewsList();
-						} else if (!this.hasMoreNews && !this.isLoadingNews && this.newsList.length > 0) {
-							this.showNoMoreDataToast("没有更多新闻内容了");
-							// 通知组件加载完毕且没有更多数据
-							this.$nextTick(() => {
-								if (this.$refs.paging) {
-									this.$refs.paging.complete(this.newsList);
-								}
-							});
-						} else if (this.newsList.length === 0 && !this.isLoadingNews) {
-							this.showNoMoreDataToast("暂无新闻内容");
-							// 通知组件加载完毕且没有数据
-							this.$nextTick(() => {
-								if (this.$refs.paging) {
-									this.$refs.paging.complete([]);
-								}
-							});
-						}
-						break;
-				}
-			},
-			// 处理swiper的change事件
-			handleTabChange(e) {
-				const current = e.detail.current;
-				this.switchTab(current);
-				// 在tab切换后,延迟更新swiper高度
-				// 切换标签页后,需要给一些时间让内容渲染,然后再更新高度
-				setTimeout(() => {
-					this.updateSwiperHeight();
-				}, 300);
-			},
-			// 更新swiper高度方法
-			updateSwiperHeight() {
-				const query = uni.createSelectorQuery().in(this);
+			// 重置加载状态
+			this.hasMoreFollow = true;
+			this.hasMoreRecommend = true;
+			this.hasMoreNews = true;
 
-				// 根据当前选中的标签页查询内容高度
-				let selector = '.follow-list';
-				if (this.currentTab === 1) {
-					selector = '.recommend-list';
-				} else if (this.currentTab === 2) {
-					selector = '.explore-list';
-				}
+			// 根据当前标签页加载数据
+			this.loadTabData(this.currentTab);
+		},
 
-				query.select(selector).boundingClientRect(data => {
-					if (data) {
-						// 设置最小高度,防止内容过少时swiper太小
-						let minHeight = uni.getSystemInfoSync().windowHeight * 0.2; // 最小高度为窗口高度的40%
-						this.swiperHeight = Math.max(data.height, minHeight);
-						console.log('更新swiper高度:', this.swiperHeight, 'selector:', selector);
-					}
-				}).exec();
-			},
-			// 首次进入页面初始化数据
-			initialLoad() {
-				console.log('初始化数据加载...');
-				// 根据当前标签页加载初始数据
-				switch (this.currentTab) {
-					case 0:
-						// 重置关注列表
-						this.followList = [];
-						this.followOffset = 0;
-						this.hasMoreFollow = true;
+		// 下拉刷新恢复
+		onRefresherRestore() {
+			console.log('下拉刷新恢复');
+		},
+		// 处理z-paging的触底加载更多事件
+		onZPagingLoadMore(pageNo, pageSize) {
+			console.log('触底加载更多, 页码:', pageNo, '页大小:', pageSize);
+			// 根据当前标签页加载更多数据
+			switch (this.currentTab) {
+				case 0:
+					if (this.hasMoreFollow && !this.isLoadingFollow) {
 						this.loadFollowList();
-						break;
-					case 1:
-						// 重置推荐列表
-						this.recommendList = [];
-						this.recommendOffset = 0;
-						this.hasMoreRecommend = true;
+					} else if (!this.hasMoreFollow && !this.isLoadingFollow && this.followList.length > 0) {
+						this.showNoMoreDataToast("没有更多关注内容了");
+						// 通知组件加载完毕且没有更多数据
+						this.$nextTick(() => {
+							if (this.$refs.paging) {
+								this.$refs.paging.complete(this.followList);
+							}
+						});
+					} else if (this.followList.length === 0 && !this.isLoadingFollow) {
+						this.showNoMoreDataToast("暂无关注内容");
+						// 通知组件加载完毕且没有数据
+						this.$nextTick(() => {
+							if (this.$refs.paging) {
+								this.$refs.paging.complete([]);
+							}
+						});
+					}
+					break;
+				case 1:
+					if (this.hasMoreRecommend && !this.isLoadingRecommend) {
 						this.loadRecommendList();
-						break;
-					case 2:
-						// 重置热点新闻和新闻列表
-						this.hotNewsList = [];
-						this.newsList = [];
-						this.newsOffset = 0;
-						this.hasMoreNews = true;
-						// 加载热点新闻和新闻列表
-						this.loadHotNews();
+					} else if (!this.hasMoreRecommend && !this.isLoadingRecommend && this.recommendList.length > 0) {
+						this.showNoMoreDataToast("没有更多推荐内容了");
+						// 通知组件加载完毕且没有更多数据
+						this.$nextTick(() => {
+							if (this.$refs.paging) {
+								this.$refs.paging.complete(this.recommendList);
+							}
+						});
+					} else if (this.recommendList.length === 0 && !this.isLoadingRecommend) {
+						this.showNoMoreDataToast("暂无推荐内容");
+						// 通知组件加载完毕且没有数据
+						this.$nextTick(() => {
+							if (this.$refs.paging) {
+								this.$refs.paging.complete([]);
+							}
+						});
+					}
+					break;
+				case 2:
+					if (this.hasMoreNews && !this.isLoadingNews) {
 						this.loadNewsList();
-						break;
-				}
-			},
-			// 显示没有更多数据的提示,带防抖处理
-			showNoMoreDataToast(message) {
-				return
-				// 如果已经有一个定时器在运行,先清除它
-				if (this.noMoreDataTimer) {
-					clearTimeout(this.noMoreDataTimer);
-					this.noMoreDataTimer = null;
-				}
+					} else if (!this.hasMoreNews && !this.isLoadingNews && this.newsList.length > 0) {
+						this.showNoMoreDataToast("没有更多新闻内容了");
+						// 通知组件加载完毕且没有更多数据
+						this.$nextTick(() => {
+							if (this.$refs.paging) {
+								this.$refs.paging.complete(this.newsList);
+							}
+						});
+					} else if (this.newsList.length === 0 && !this.isLoadingNews) {
+						this.showNoMoreDataToast("暂无新闻内容");
+						// 通知组件加载完毕且没有数据
+						this.$nextTick(() => {
+							if (this.$refs.paging) {
+								this.$refs.paging.complete([]);
+							}
+						});
+					}
+					break;
+			}
+		},
+		// 处理swiper的change事件
+		handleTabChange(e) {
+			const current = e.detail.current;
+			this.switchTab(current);
+			// 在tab切换后,延迟更新swiper高度
+			// 切换标签页后,需要给一些时间让内容渲染,然后再更新高度
+			setTimeout(() => {
+				this.updateSwiperHeight();
+			}, 300);
+		},
+		// 更新swiper高度方法
+		updateSwiperHeight() {
+			const query = uni.createSelectorQuery().in(this);
 
-				// 设置新的定时器,防抖处理,1秒内不会重复显示提示
-				this.noMoreDataTimer = setTimeout(() => {
-					console.log(message);
-					uni.showToast({
-						title: message,
-						icon: 'none',
-						duration: 2000
-					});
-					this.noMoreDataTimer = null;
-				}, 1000);
-			},
-			onImageLoaded() {
-				// 图片加载完成后重新计算高度
-				// 使用延迟执行,确保所有图片都有时间加载完成
-				if (this.updateHeightTimer) {
-					clearTimeout(this.updateHeightTimer);
+			// 根据当前选中的标签页查询内容高度
+			let selector = '.follow-list';
+			if (this.currentTab === 1) {
+				selector = '.recommend-list';
+			} else if (this.currentTab === 2) {
+				selector = '.explore-list';
+			}
+
+			query.select(selector).boundingClientRect(data => {
+				if (data) {
+					// 设置最小高度,防止内容过少时swiper太小
+					let minHeight = uni.getSystemInfoSync().windowHeight * 0.2; // 最小高度为窗口高度的40%
+					this.swiperHeight = Math.max(data.height, minHeight);
+					console.log('更新swiper高度:', this.swiperHeight, 'selector:', selector);
 				}
-				this.updateHeightTimer = setTimeout(() => {
-					this.updateSwiperHeight();
-				}, 300);
-			},
+			}).exec();
+		},
+		// 首次进入页面初始化数据
+		initialLoad() {
+			console.log('初始化数据加载...');
+			// 根据当前标签页加载初始数据
+			switch (this.currentTab) {
+				case 0:
+					// 重置关注列表
+					this.followList = [];
+					this.followOffset = 0;
+					this.hasMoreFollow = true;
+					this.loadFollowList();
+					break;
+				case 1:
+					// 重置推荐列表
+					this.recommendList = [];
+					this.recommendOffset = 0;
+					this.hasMoreRecommend = true;
+					this.loadRecommendList();
+					break;
+				case 2:
+					// 重置热点新闻和新闻列表
+					this.hotNewsList = [];
+					this.newsList = [];
+					this.newsOffset = 0;
+					this.hasMoreNews = true;
+					// 加载热点新闻和新闻列表
+					this.loadHotNews();
+					this.loadNewsList();
+					break;
+			}
+		},
+		// 显示没有更多数据的提示,带防抖处理
+		showNoMoreDataToast(message) {
+			return
+			// 如果已经有一个定时器在运行,先清除它
+			if (this.noMoreDataTimer) {
+				clearTimeout(this.noMoreDataTimer);
+				this.noMoreDataTimer = null;
+			}
+
+			// 设置新的定时器,防抖处理,1秒内不会重复显示提示
+			this.noMoreDataTimer = setTimeout(() => {
+				console.log(message);
+				uni.showToast({
+					title: message,
+					icon: 'none',
+					duration: 2000
+				});
+				this.noMoreDataTimer = null;
+			}, 1000);
+		},
+		onImageLoaded() {
+			// 图片加载完成后重新计算高度
+			// 使用延迟执行,确保所有图片都有时间加载完成
+			if (this.updateHeightTimer) {
+				clearTimeout(this.updateHeightTimer);
+			}
+			this.updateHeightTimer = setTimeout(() => {
+				this.updateSwiperHeight();
+			}, 300);
 		},
-	};
+	},
+};
 </script>
 
 <style lang="scss">
-	@import "index.scss";
+@import "index.scss";
 
-	// 添加过渡效果样式
-	.fade-enter-active,
-	.fade-leave-active {
-		transition: opacity 0.3s;
-	}
+// 添加过渡效果样式
+.fade-enter-active,
+.fade-leave-active {
+	transition: opacity 0.3s;
+}
 
-	.fade-enter,
-	.fade-leave-to {
-		opacity: 0;
-	}
+.fade-enter,
+.fade-leave-to {
+	opacity: 0;
+}
 
-	// 确保列表项有最小高度,避免闪烁
-	.list-item {
-		min-height: 200rpx;
-		background: #fff;
-		margin-bottom: 20rpx;
-		border-radius: 12rpx;
-		overflow: hidden;
-	}
+// 确保列表项有最小高度,避免闪烁
+.list-item {
+	min-height: 200rpx;
+	background: #fff;
+	margin-bottom: 20rpx;
+	border-radius: 12rpx;
+	overflow: hidden;
+}
 
-	// swiper样式
-	.tab-content-swiper {
-		width: 100%;
-		transition: height 0.3s;
-	}
+// swiper样式
+.tab-content-swiper {
+	width: 100%;
+	transition: height 0.3s;
+}
 
-	/* 确保内容可以正常显示 */
-	.swiper-item {
-		height: auto;
-		overflow: visible;
-	}
+/* 确保内容可以正常显示 */
+.swiper-item {
+	height: auto;
+	overflow: visible;
+}
 
-	.follow-list,
-	.recommend-list,
-	.explore-list {
-		min-height: 300px;
-	}
+.follow-list,
+.recommend-list,
+.explore-list {
+	min-height: 300px;
+}
 </style>
 <style>
-	@import "@/style/qweather-icons.css";
+@import "@/style/qweather-icons.css";
 </style>

+ 10 - 70
pages/index/workDetail.vue

@@ -109,69 +109,7 @@
     <!-- 音频元素 -->
     <audio id="audioPlayer" :src="articleInfo.result_audio" style="display: none" v-if="false"></audio>
 
-    <!-- 文章内容区域 -->
-    <view class="body" v-if="false">
-      <!-- 文章标题与元信息 -->
-      <view class="article-header">
-        <view class="title">
-          {{ articleInfo.title || "暂无标题" }}
-        </view>
-        <view class="meta-info">
-          <view class="meta-item">
-            <text class="fa fa-calendar"></text>
-            <text class="meta-text">{{
-              articleInfo.create_time || "暂无时间"
-            }}</text>
-          </view>
-          <view class="meta-item">
-            <text class="fa fa-eye"></text>
-            <text class="meta-text">{{ articleInfo.num_view || 0 }}次阅读</text>
-          </view>
-          <view class="meta-item" v-if="articleInfo.author">
-            <text class="fa fa-user"></text>
-            <text class="meta-text">{{ articleInfo.author }}</text>
-          </view>
-        </view>
-      </view>
-
-      <!-- 内容分隔线 -->
-      <view class="divider"></view>
-
-      <!-- 文章内容 -->
-      <!-- <view class="article-content" v-if="articleInfo.type == 'user'">
-				<view class="content">{{ articleInfo.content || '暂无内容' }}</view>
-			</view> -->
-      <view class="article-content">
-        <view class="content">
-          <!-- <rich-text :nodes="content" style="font-size: 14px"></rich-text> -->
-          <uv-parse :content="articleInfo.content"></uv-parse>
-        </view>
-      </view>
-
-      <!-- 文章底部区域 -->
-      <view class="article-footer">
-        <view class="action-bar">
-          <view class="action-item" @tap="likeArticle">
-            <text class="fa" :class="articleInfo.is_like ? 'fa-thumbs-up liked' : 'fa-thumbs-o-up'
-              "></text>
-            <text class="action-text">{{ articleInfo.like_count || 0 }}</text>
-          </view>
-          <view class="action-item" @tap="openComment">
-            <text class="fa fa-comment-o"></text>
-            <text class="action-text">{{ tableTotal || 0 }}</text>
-          </view>
-          <view class="action-item" @tap="shareArticle">
-            <text class="fa fa-share-alt"></text>
-            <text class="action-text">分享</text>
-          </view>
-        </view>
-      </view>
-
-      <!-- 空白占位 -->
-      <view class="list_info">
-        <view class="blankHeight"></view>
-      </view>
-    </view>
+ 
 
     <!-- <view class="btn_submit" @click="chatTA()">
 			<image class="icon" src="../../static/icon/icon_chat_white.png" mode="widthFix"></image>
@@ -184,7 +122,7 @@
 
     <!-- 评论区域 -->
     <CommentSection v-if="userInfo.id != 0 && articleInfo.title" ref="commentSection" :myInfo="myInfo"
-      :userInfo="userInfo" :articleId="arcID" @totalNumberOfComments="totalNumberOfComments" articleInfo="articleInfo">
+      :userInfo="userInfo" :articleId="arcID" @totalNumberOfComments="totalNumberOfComments" :articleInfo="articleInfo"  find="work">
     </CommentSection>
 
     <!-- 自定义 ActionSheet -->
@@ -228,8 +166,7 @@ export default {
       title: "",
       arcID: 0,
       selImg: 0,
-      home_image: "",
-      articleInfo: {},
+      home_image: "", 
       tag_list: [],
       image_list: [],
       imgs: [],
@@ -357,10 +294,12 @@ export default {
             console.log("文章信息:", res.data.data);
         
             // 更新文章信息
+            this.articleInfo = res.data.data;
+           
+            
             if (res.data.article) {
               this.articleInfo = res.data.article;
             }
-            this.articleInfo = res.data.data;
             this.articleInfo.sms_id = this.sms_id;
             this.content = res.data.data.content;
             this.home_image = res.data.data.images;
@@ -405,7 +344,7 @@ export default {
     // 文章点赞
     likeArticle() {
       uni.request({
-        url: this.$apiHost + "/Work/zanTA",
+        url: this.$apiHost + "/Work/like",
         data: {
           uuid: getApp().globalData.uuid,
           id: this.arcID,
@@ -709,7 +648,7 @@ export default {
       });
 
       uni.request({
-        url: this.$apiHost + '/WorkAI/queueAction',
+        url: this.$apiHost + '/Work/doAct',
         method: 'GET',
         data: {
           uuid: getApp().globalData.uuid,
@@ -773,7 +712,8 @@ export default {
         urls: [url],
         current: url,
         indicator: 'number',
-        loop: true
+        loop: true,
+				showmenu:false
       });
     },
   },

+ 13 - 8
pages/login/login.vue

@@ -2,12 +2,12 @@
 	<view class="page">
 		<view class="header">
 			<!-- <view class="left"> -->
-				<!-- <image class="img" mode="widthFix" src="../../static/login/close.png"></image> -->
+			<!-- <image class="img" mode="widthFix" src="../../static/login/close.png"></image> -->
 			<!-- </view> -->
 			<view class="title">登录/注册</view>
 			<view class="subtitle">手机号登录/注册</view>
 		</view>
-		
+
 		<view class="tbody">
 			<block v-if="type == 'onelogin'">
 				<image class="icon" mode="widthFix" src="../../static/me/avator.png"></image>
@@ -62,11 +62,11 @@
 					<text>我已阅读并同意</text>
 				</view>
-				<text class="xy" @click="goPage('yhxy')">
+				<text class="xy" @click="goWeb('https://e.zhichao.art/web/yszc.php', '隐私协议')">
 					隐私协议
 				</text>
 				》和《
-				<text class="xy" @click="goPage('yszc')">
+				<text class="xy" @click="goWeb('https://e.zhichao.art/web/yhxy.php', '用户使用协议')">
 					用户使用协议
 				</text>
@@ -157,6 +157,11 @@ export default {
 		// });
 	},
 	methods: {
+		goWeb(url, title) {
+			uni.navigateTo({
+				url: `/pages/webview/index?url=${encodeURIComponent(url)}&title=${encodeURIComponent(title)	}`
+			})
+		},
 		onBack() { },
 		agreeChk() {
 			if (this.is_agree == 0) {
@@ -316,7 +321,7 @@ export default {
 								}
 								if (res.data.nickname) {
 									getApp().globalData.nickname = res.data.nickname
-									uni.removeStorageSync("nickname" );
+									uni.removeStorageSync("nickname");
 									uni.setStorageSync("nickname", res.data.nickname);
 								}
 								if (res.data.mobile) {
@@ -326,12 +331,12 @@ export default {
 								}
 								if (res.data.user_id) {
 									getApp().globalData.user_id = res.data.user_id
-									uni.removeStorageSync("user_id" );
+									uni.removeStorageSync("user_id");
 									uni.setStorageSync("user_id", res.data.user_id);
 								}
 								if (res.data.avator) {
 									getApp().globalData.avator = res.data.avator
-									uni.removeStorageSync("avator" );
+									uni.removeStorageSync("avator");
 									uni.setStorageSync("avator", res.data.avator);
 								}
 
@@ -401,7 +406,7 @@ export default {
 						this.captchaTime = 0;
 					}
 				}
-			}); 
+			});
 		},
 		getCodeTime() {
 			if (this.captchaTime > 0) {

+ 1 - 1
pages/make/fabuArticle.vue

@@ -317,7 +317,7 @@ export default {
 			if (this.is_submit > 0) {
 				return;
 			}
-			if (!this.selectedWork.id) {
+			if (!this.selectedWork.id && this.img_list.length == 0) {
 				uni.showToast({
 					title: '请选择一个作品',
 					icon: 'none'

+ 10 - 5
pages/make/index.vue

@@ -61,16 +61,16 @@
 		<view class="guide-title"> 引导教程</view>
 		<!-- 引导教程区域 -->
 		<view class="tutorial">
-			<view class="tutorial-block " @click="handleTutorialClick(index)" v-for="(tutorial, index) in 3"
+			<view class="tutorial-block " @click="handleTutorialClick(index)" v-for="(item, index) in tutorial"
 				:key="index">
 				<text class="tutorial-btn-box">
 					<view class="tutorial-btn">
 						<image src="../../static/make/cz_icon_guanfangjiaocheng.png"></image>
-						<text>官方教程</text>
+						<text>{{ item.title }}</text>
 					</view>
 				</text>
-				<text class="tutorial-title"> 萌创星球教程</text>
-				<view class="tutorial-content">教你如何创作内容,激发创作灵感</view>
+				<text class="tutorial-title"> {{ item.subheading }}</text>
+				<view class="tutorial-content">{{ item.content }}</view>
 			</view>
 		</view>
 		<tabbar-view :tabbars="tabbars" :currentIndex="1" ref="tabbar"></tabbar-view>
@@ -117,7 +117,12 @@ export default {
 					tips: "输入关键词,生成萌玩",
 					next: "完成",
 				}]
-			}
+			},
+			tutorial:[
+				{title:"官方教程",url:"/pages/make/officialTutorial",subheading:"星球造物,AI创角",content:"使用自然语言,创建独属于你的智能体"},
+				{title:"官方教程",url:"/pages/make/officialTutorial",subheading:"AI灵感写歌",content:"使用AI超能力释放你的无限创造力!"},
+				{title:"官方教程",url:"/pages/make/officialTutorial",subheading:"萌萌智绘魔方",content:"教你如何创作内容,激发创作灵感!" },
+			]
 		}
 	}, 
 	computed: {

+ 0 - 283
pages/make/make.scss

@@ -1,283 +0,0 @@
-.container {
-  padding-bottom: 144rpx;
-}
-.swiper {
-  height: 100%;
-}
-
-.swiper-item {
-  height: 100%;
-}
-.backup {
-  position: fixed;
-  left: 40rpx;
-  width: 80rpx;
-  height: 80rpx;
-  top: calc(30rpx + var(--status-bar-height));
-}
-
-.setps-container {
-  width: 100vw;
-  height: 100vh;
-  position: relative;
-  background: #f7f7f8;
-
-  &-title_image {
-    width: 100%;
-    height: calc(308rpx + var(--status-bar-height));
-  }
-
-  &-top {
-    width: 100%;
-    position: absolute;
-    top: calc(140rpx + var(--status-bar-height));
-    border-top-left-radius: 60rpx;
-    border-top-right-radius: 60rpx;
-    display: flex;
-    flex-direction: column;
-    align-items: center;
-    background: #f7f7f8;
-
-    &_title {
-      margin-top: 73rpx;
-      margin-bottom: 10rpx;
-      font-size: 36rpx;
-      font-weight: bold;
-      color: #3d3d3d;
-    }
-
-    &_line {
-      width: 600rpx;
-      height: 5rpx;
-      border-radius: 5rpx;
-      background: #d8d8d8;
-      margin-bottom: 30rpx;
-
-      &__lineTow {
-        width: 120rpx;
-        height: 5rpx;
-        border-radius: 5rpx;
-        background: #000000;
-      }
-      &__lineTow2 {
-        width: 120rpx;
-        margin-left: 120rpx;
-        height: 5rpx;
-        border-radius: 5rpx;
-        background: #000000;
-      }
-      &__lineTow3 {
-        width: 120rpx;
-        margin-left: 240rpx;
-        height: 5rpx;
-        border-radius: 5rpx;
-        background: #000000;
-      }
-      &__lineTow4 {
-        width: 120rpx;
-        margin-left: 360rpx;
-        height: 5rpx;
-        border-radius: 5rpx;
-        background: #000000;
-      }
-      &__lineTow5 {
-        width: 120rpx;
-        margin-left: 480rpx;
-        height: 5rpx;
-        border-radius: 5rpx;
-        background: #000000;
-      }
-    }
-
-    &_desc {
-      font-size: 42rpx;
-      font-weight: bold;
-      color: #3d3d3d;
-    }
-  }
-
-  &-center {
-    width: 100%;
-    height: 600rpx;
-    margin-top: 100rpx;
-    display: flex;
-    flex-direction: column;
-    justify-content: flex-start;
-    align-items: center;
-    .avator {
-      width: 380rpx;
-      height: 380rpx;
-    }
-    .scroll-text {
-      width: 700rpx;
-      height: 500rpx;
-      margin: 25rpx;
-      overflow: scroll;
-    }
-    .cucang {
-      font-size: 38rpx;
-      text-align: center;
-      padding: 30rpx;
-    }
-
-    .scroll-text-content {
-      color: #333;
-      animation: scroll 20s linear infinite; /* 调整滚动速度和持续时间 */
-    }
-    .bg-content {
-      display: flex;
-      flex-direction: column;
-      justify-content: center;
-      align-items: center;
-      .avator {
-        animation: spin 5s linear infinite;
-      }
-    }
-  }
-
-  &-bottom {
-    width: 100%;
-    display: flex;
-    flex-direction: column;
-    align-items: center;
-
-    &__btn {
-      width: 516rpx;
-      height: 88rpx;
-      border-radius: 66rpx;
-      background: #aee500;
-
-      font-size: 36rpx;
-      font-weight: 600;
-      color: #3d3d3d;
-      text-align: center;
-      line-height: 88rpx;
-      text {
-        color: #666;
-        font-size: 24rpx;
-      }
-    }
-
-    &__tips {
-      font-size: 23rpx;
-      font-weight: 500;
-      color: #a3a3a3;
-      margin-bottom: 16rpx;
-    }
-  }
-}
-.pop {
-  position: fixed;
-  left: 0;
-  top: 0;
-  width: 750rpx;
-  height: 100vh;
-  background-color: #fff;
-  .blurred-background {
-    position: absolute;
-    width: 750rpx;
-    height: 100vh;
-    background-image: url("/static/make/1_12.png"); /* 替换为你的图片URL */
-    background-size: cover;
-    filter: blur(10px); /* 调整模糊程度 */
-    z-index: 1;
-  }
-  .xinxiang {
-    position: absolute;
-    height: 100vh;
-    width: 100vh;
-    z-index: 99;
-  }
-  .play_video {
-    position: absolute;
-    left: 30rpx;
-    top: 40%;
-    width: 80rpx;
-    height: 80rpx;
-    z-index: 100;
-  }
-  .backup {
-    position: absolute;
-    left: 40rpx;
-    width: 80rpx;
-    height: 80rpx;
-    z-index: 9999;
-    top: calc(50rpx + var(--status-bar-height));
-  }
-  .cucang {
-    position: absolute;
-    top: 220rpx;
-    z-index: 9999;
-    padding: 30rpx;
-    color: #fff;
-    font-size: 38rpx;
-    text-align: center;
-    animation: shine 1s ease-in-out infinite;
-    text-shadow: 0 0 10px #fff;
-  }
-
-  .scroll-text {
-    position: absolute;
-    bottom: 20rpx;
-    z-index: 9999;
-    width: 700rpx;
-    height: 500rpx;
-    margin: 25rpx;
-    overflow: hidden;
-  }
-
-  .scroll-text-content {
-    position: absolute;
-    bottom: 0;
-    color: #fff;
-    animation: scroll 20s linear infinite; /* 调整滚动速度和持续时间 */
-  }
-
-  .video-container {
-    position: relative;
-    display: inline-block;
-    width: 100%;
-    height: 100%;
-  }
-
-  .video-text {
-    position: absolute;
-    top: 100rpx;
-    left: 20rpx;
-    width: 100%;
-    transform: translate(-50%, -50%);
-    color: #ff0000;
-    font-size: 24px;
-    text-shadow: 2px 2px 4px #000;
-    z-index: 99999;
-  }
-
-  @keyframes scroll {
-    0% {
-      transform: translateY(100%); /* 从底部开始 */
-    }
-    100% {
-      transform: translateY(-50%); /* 滚动到顶部 */
-    }
-  }
-}
-
-@keyframes spin {
-  0% {
-    transform: rotate(0deg);
-  }
-  100% {
-    transform: rotate(360deg);
-  }
-}
-@keyframes shine {
-  0% {
-    text-shadow: 0 0 10px #fff;
-  }
-  50% {
-    text-shadow: 0 0 20px #ff00ff, 0 0 30px #ff0000;
-  }
-  100% {
-    text-shadow: 0 0 10px #fff;
-  }
-}

+ 0 - 347
pages/make/make.vue

@@ -1,347 +0,0 @@
-<template>
-	<view class="setps-container">
-		<image src="/static/icon/icon-11.png" class="setps-container-title_image"></image>
-		<image src="/static/me/backup.png" class="backup" @click="backup"></image>
-		<view class="setps-container-top">
-			<text class="setps-container-top_title">STEP {{step}}</text>
-			<view class="setps-container-top_line">
-				<view class="setps-container-top_line__lineTow" v-if="step == 1"></view>
-				<view class="setps-container-top_line__lineTow2" v-if="step == 2"></view>
-				<view class="setps-container-top_line__lineTow3" v-if="step == 3"></view>
-				<view class="setps-container-top_line__lineTow4" v-if="step == 4"></view>
-				<view class="setps-container-top_line__lineTow5" v-if="step == 5"></view>
-			</view>
-			<text class="setps-container-top_desc">生成个人形象</text>
-		</view>
-		<view class="setps-container-center">
-			<block v-if="step == 1">
-				<image src="/static/me/xinxiang.png" class="avator step1"></image>
-			</block>
-			<block v-if="step == 2">
-				<image src="/static/make/1_12.png" class="avator step2" mode="widthFix"></image>
-			</block>
-			<block v-if="step == 3">
-				<view class="scroll-text step3">
-					<text class="scroll-text-content">
-						《凌音的二次元世界》
-						在二次元的领域中,有一位独特的少女,她名叫凌音。凌音拥有着令人心动的可爱外貌,同时又散发着一种高冷的气质,她的纤细身姿更是增添了几分独特的魅力。
-						凌音的性格温柔而婉约,她的安静和内向使她常常沉浸在自己的世界中。她虽然表面上给人一种高冷的感觉,但实际上她是外冷内热的,内心深处充满了温暖和关怀。她的敏感和多愁善感让她对周围的事物有着细腻的感受,也使得她在艺术方面有着独特的领悟力。
-						凌音对颜色有着特别的喜好,她钟情于白色和浅蓝色。白色代表着纯洁和无暇,而浅蓝色则给人一种宁静和清新的感觉,这两种颜色恰如她的内心世界,纯净而美好。她热爱冬天,尤其喜欢下雪的日子。雪花纷纷扬扬地飘落,整个世界变得银装素裹,这让她感受到一种宁静和美好,也让她的内心得到了慰藉。
-						凌音的爱好丰富多样。她热爱电影,通过电影她可以体验到不同的人生和情感,电影中的每一个画面和情节都能触动她的心灵。摄影也是她的喜好之一,她喜欢用镜头捕捉生活中的美好瞬间,将那些稍纵即逝的美丽定格为永恒。动漫和二次元是她的精神寄托,她沉浸在那个充满奇幻和想象的世界中,寻找着自己的梦想和希望。此外,她也喜欢宅在家里,享受一个人的宁静时光,阅读、思考或者做一些自己喜欢的事情。
-						凌音就是这样一个独特的二次元少女,她的存在仿佛是一首优美的诗篇,让人忍不住想要去了解她、接近她。在她的世界里,有着无尽的美好和梦想,等待着她去探索和发现。
-					</text>
-				</view>
-			</block>
-			<block v-if="step == 4">
-				<text class="cucang step4">
-					这纷扰世界,我凌音只在自己的角落,守着内心的宁静与热爱。
-				</text>
-			</block>
-			<block v-if="step == 5">
-				<view class="bg-content step5">
-					<image src="/static/make/music.png" class="avator" mode="widthFix"></image>
-				</view>
-			</block>
-
-
-			<!-- <view class="avator"></view> -->
-			<!-- <swiper class="swiper" :current="tabCurrentIndex" duration="300">
-				<swiper-item class="swiper-item">
-					
-				</swiper-item>
-			</swiper> -->
-			<!-- <setp-a></setp-a> -->
-		</view>
-		<view class="setps-container-bottom">
-			<text class="setps-container-bottom__tips"></text>
-			<view class="setps-container-bottom__btn step-btn" @click="next">{{btnName}}<text>(100彩豆)</text></view>
-		</view>
-		<view class="pop" v-if="step == 9">
-			<view class="blurred-background"></view>
-
-			<!-- <view class="video-container">
-				<view class="video-text">这纷扰世界,我凌音只在自己的角落,守着内心的宁静与热爱。</view>
-				
-			</view> -->
-			<image src="/static/make/1_12.png" class="xinxiang" mode="aspectFill"></image>
-			<image src="/static/make/play_video.png" class="play_video" mode="widthFix" @click="showVideo()"></image>
-
-			<block v-if="video_url != ''">
-				<video id="myVideo" autoplay="true" :src="video_url" style="width:100%;height:100%;z-index: 88;"
-					loop="true"></video>
-			</block>
-
-			<image src="/static/me/backup.png" class="backup" @click="backup"></image>
-			<view class="cucang">
-				这纷扰世界,我凌音只在自己的角落,守着内心的宁静与热爱。
-			</view>
-
-			<view class="scroll-text">
-				<text class="scroll-text-content">
-					《凌音的二次元世界》
-					在二次元的领域中,有一位独特的少女,她名叫凌音。凌音拥有着令人心动的可爱外貌,同时又散发着一种高冷的气质,她的纤细身姿更是增添了几分独特的魅力。
-					凌音的性格温柔而婉约,她的安静和内向使她常常沉浸在自己的世界中。她虽然表面上给人一种高冷的感觉,但实际上她是外冷内热的,内心深处充满了温暖和关怀。她的敏感和多愁善感让她对周围的事物有着细腻的感受,也使得她在艺术方面有着独特的领悟力。
-					凌音对颜色有着特别的喜好,她钟情于白色和浅蓝色。白色代表着纯洁和无暇,而浅蓝色则给人一种宁静和清新的感觉,这两种颜色恰如她的内心世界,纯净而美好。她热爱冬天,尤其喜欢下雪的日子。雪花纷纷扬扬地飘落,整个世界变得银装素裹,这让她感受到一种宁静和美好,也让她的内心得到了慰藉。
-					凌音的爱好丰富多样。她热爱电影,通过电影她可以体验到不同的人生和情感,电影中的每一个画面和情节都能触动她的心灵。摄影也是她的喜好之一,她喜欢用镜头捕捉生活中的美好瞬间,将那些稍纵即逝的美丽定格为永恒。动漫和二次元是她的精神寄托,她沉浸在那个充满奇幻和想象的世界中,寻找着自己的梦想和希望。此外,她也喜欢宅在家里,享受一个人的宁静时光,阅读、思考或者做一些自己喜欢的事情。
-					凌音就是这样一个独特的二次元少女,她的存在仿佛是一首优美的诗篇,让人忍不住想要去了解她、接近她。在她的世界里,有着无尽的美好和梦想,等待着她去探索和发现。
-				</text>
-			</view>
-		</view>
-		<!-- <modal ref="modal" content-text="注册完成后将无法更改生日,为了良好的使用体验,请慎重选择!"></modal> -->
-		<!-- 新手引导组件 -->
-		<novice-guidance :step="guideStep" :tipStyle="{
-			background: 'linear-gradient(180deg, #1cbbb4, #0081ff)',
-			borderRadius: '12rpx',
-			padding: '20rpx',
-			boxShadow: '0 4rpx 12rpx rgba(0,0,0,0.1)'
-		}"></novice-guidance>
-	</view>
-</template>
-
-<script>
-	export default {
-		components: {},
-		data() {
-			return {
-				innerAudioContext: null,
-				tabCurrentIndex: 0,
-				step: 1,
-				btnName: '生成形象',
-				danmuList: [{
-						text: '这纷扰世界',
-						color: '#ff0000',
-						time: 1
-					},
-					{
-						text: '我凌音只在自己的角落',
-						color: '#ff00ff',
-						time: 2
-					},
-					{
-						text: '守着内心的宁静与热爱',
-						color: '#ff00ff',
-						time: 3
-					}
-				],
-				video_url: '',
-				guideStep: {
-					name: "makeGuide",
-					guideList: [{
-						el: ".step1",
-						tips: "这是第一步,选择你的头像",
-						next: "下一步",
-						style: {
-							background: 'linear-gradient(180deg, #1cbbb4, #0081ff)',
-							borderRadius: '12rpx',
-							padding: '20rpx',
-							boxShadow: '0 4rpx 12rpx rgba(0,0,0,0.1)'
-						}
-					},
-					{
-						el: ".step2",
-						tips: "这是第二步,选择你的形象",
-						next: "下一步",
-						style: {
-							background: 'linear-gradient(180deg, #ff6b6b, #ff8e8e)',
-							borderRadius: '12rpx',
-							padding: '20rpx',
-							boxShadow: '0 4rpx 12rpx rgba(0,0,0,0.1)'
-						}
-					},
-					{
-						el: ".step3",
-						tips: "这是第三步,编辑你的个人介绍",
-						next: "下一步",
-						style: {
-							background: 'linear-gradient(180deg, #4facfe, #00f2fe)',
-							borderRadius: '12rpx',
-							padding: '20rpx',
-							boxShadow: '0 4rpx 12rpx rgba(0,0,0,0.1)'
-						}
-					},
-					{
-						el: ".step4",
-						tips: "这是第四步,设置你的出场台词",
-						next: "下一步",
-						style: {
-							background: 'linear-gradient(180deg, #a18cd1, #fbc2eb)',
-							borderRadius: '12rpx',
-							padding: '20rpx',
-							boxShadow: '0 4rpx 12rpx rgba(0,0,0,0.1)'
-						}
-					},
-					{
-						el: ".step5",
-						tips: "这是第五步,选择你的背景音乐",
-						next: "下一步",
-						style: {
-							background: 'linear-gradient(180deg, #84fab0, #8fd3f4)',
-							borderRadius: '12rpx',
-							padding: '20rpx',
-							boxShadow: '0 4rpx 12rpx rgba(0,0,0,0.1)'
-						}
-					},
-					{
-						el: ".step-btn",
-						tips: "点击按钮生成你的专属形象",
-						next: "完成",
-						style: {
-							background: 'linear-gradient(180deg, #f093fb, #f5576c)',
-							borderRadius: '12rpx',
-							padding: '20rpx',
-							boxShadow: '0 4rpx 12rpx rgba(0,0,0,0.1)'
-						}
-					}]
-				}
-			}
-		},
-		onReady: function(res) {
-			this.videoContext = uni.createVideoContext('myVideo')
-		},
-		onLoad() {
-			let that = this;
-			// setTimeout(function() {
-			// 	that.playBg();
-			// }, 2000);
-		},
-		onHide() {
-			if (this.innerAudioContext != null) {
-				try {
-					this.innerAudioContext.pause();
-					this.innerAudioContext.destroy()
-					this.innerAudioContext = null
-				} catch (e) {
-					//TODO handle the exception
-				}
-			}
-		},
-		onUnload() {
-			if (this.innerAudioContext != null) {
-				try {
-					this.innerAudioContext.pause();
-					this.innerAudioContext.destroy()
-					this.innerAudioContext = null
-				} catch (e) {
-					//TODO handle the exception
-				}
-			}
-		},
-		methods: {
-			backup() {
-				if (this.innerAudioContext != null) {
-					try {
-						this.innerAudioContext.pause();
-						this.innerAudioContext.destroy()
-						this.innerAudioContext = null
-					} catch (e) {
-						//TODO handle the exception
-					}
-				}
-				// uni.navigateBack({
-				// 	delta: 1
-				// });
-				// uni.switchTab({
-				// 	url: '/pages/make/index'
-				// })
-				uni.navigateBack();
-			},
-			next() {
-				// this.$refs.modal.open()
-				if (this.step == 1) {
-					uni.showLoading({});
-					let that = this;
-					setTimeout(function() {
-						that.showStep2();
-					}, 1000);
-				} else if (this.step == 2) {
-					uni.showLoading({});
-					let that = this;
-					setTimeout(function() {
-						that.showStep3();
-					}, 1000);
-
-				} else if (this.step == 3) {
-					uni.showLoading({});
-					let that = this;
-					setTimeout(function() {
-						that.showStep4();
-					}, 1000);
-
-				} else if (this.step == 4) {
-					uni.showLoading({});
-					let that = this;
-					setTimeout(function() {
-						that.showStep5();
-					}, 1000);
-
-				} else if (this.step == 5) {
-					uni.showLoading({});
-					let that = this;
-					setTimeout(function() {
-						that.step = 9;
-						that.playBg();
-						uni.hideLoading();
-					}, 1000);
-
-				} else {
-					// this.step = 5;
-					// uni.redirectTo({
-					// 	url:'/pages/make/'
-					// })
-					// this.playBg();
-				}
-			},
-			showStep2() {
-				uni.hideLoading();
-				this.step = 2;
-				this.btnName = "生成背景";
-			},
-			showStep3() {
-				uni.hideLoading();
-				this.step = 3;
-				this.btnName = "生成出场台词";
-			},
-			showStep4() {
-				uni.hideLoading();
-				this.step = 4;
-				this.btnName = "生成音乐";
-			},
-			showStep5() {
-				uni.hideLoading();
-				this.step = 5;
-				this.btnName = "查看形象";
-			},
-			showVideo() {
-				this.video_url = '/static/make/video.mp4';
-			},
-
-			playBg() {
-				this.innerAudioContext = uni.createInnerAudioContext();
-				this.innerAudioContext.autoplay = true;
-				this.innerAudioContext.loop = true;
-				this.innerAudioContext.sessionCategory = "soloAmbient";
-				this.innerAudioContext.src = 'https://t.yujianmate.com/images/1_12.mp3';
-				// console.log('this.innerAudioContext',this.innerAudioContext);
-				this.innerAudioContext.onPlay(() => {
-					console.log('开始播放');
-				});
-				this.innerAudioContext.onError((res) => {
-					// console.log(res.errMsg);
-					// console.log(res.errCode);
-				});
-				let self = this;
-				setTimeout(function() {
-					if (self.innerAudioContext != null) {
-						// if(self.innerAudioContext.paused) {
-						// }
-						// self.innerAudioContext.play();
-					}
-				}, 1000);
-			},
-		}
-	}
-</script>
-
-<style scoped lang="scss">
-	@import 'make.scss';
-</style>

+ 0 - 233
pages/make/make2.scss

@@ -1,233 +0,0 @@
-
-	.swiper {
-		height: 100%;
-	}
-
-	.swiper-item {
-		height: 100%;
-	}
-	.backup {
-		position: fixed;left:40rpx;width:80rpx;height:80rpx;
-		top: calc(30rpx + var(--status-bar-height));
-	}
-
-	.setps-container {
-		width: 100vw;
-		height: 100vh;
-		position: relative;
-		background: #F7F7F8;
-
-
-		&-title_image {
-			width: 100%;
-			height: calc(308rpx + var(--status-bar-height));
-		}
-
-		&-top {
-			width: 100%;
-			position: absolute;
-			top: calc(140rpx + var(--status-bar-height));
-			border-top-left-radius: 60rpx;
-			border-top-right-radius: 60rpx;
-			display: flex;
-			flex-direction: column;
-			align-items: center;
-			background: #F7F7F8;
-
-			&_title {
-				margin-top: 73rpx;
-				margin-bottom: 10rpx;
-				font-size: 36rpx;
-				font-weight: bold;
-				color: #3D3D3D;
-			}
-
-			&_line {
-				width: 600rpx;
-				height: 5rpx;
-				border-radius: 5rpx;
-				background: #D8D8D8;
-				margin-bottom: 30rpx;
-
-				&__lineTow {
-					width: 120rpx;
-					height: 5rpx;
-					border-radius: 5rpx;
-					background: #000000;
-				}
-				&__lineTow2 {
-					width: 120rpx;margin-left:120rpx;
-					height: 5rpx;
-					border-radius: 5rpx;
-					background: #000000;
-				}
-				&__lineTow3 {
-					width: 120rpx;margin-left:240rpx;
-					height: 5rpx;
-					border-radius: 5rpx;
-					background: #000000;
-				}
-				&__lineTow4 {
-					width: 120rpx;margin-left:360rpx;
-					height: 5rpx;
-					border-radius: 5rpx;
-					background: #000000;
-				}
-				&__lineTow5 {
-					width: 120rpx;margin-left:480rpx;
-					height: 5rpx;
-					border-radius: 5rpx;
-					background: #000000;
-				}
-			}
-
-			&_desc {
-				font-size: 42rpx;
-				font-weight: bold;
-				color: #3D3D3D;
-			}
-		}
-
-		&-center {
-			width: 100%;
-			height: 600rpx;
-			margin-top: 100rpx;
-			display: flex;flex-direction: column;justify-content: flex-start;align-items: center;
-			.avator {
-				width:380rpx;height:380rpx;
-			}
-			.scroll-text {
-			  width:700rpx;height: 500rpx;margin:25rpx;
-			  overflow: scroll;
-			}
-			.cucang {
-				font-size:38rpx;text-align: center;padding:30rpx;
-			}
-
-			.scroll-text-content {
-				color:#333;animation: scroll 20s linear infinite; /* 调整滚动速度和持续时间 */
-			}
-			.bg-content {
-				display: flex;flex-direction: column;justify-content: center;align-items: center;
-				.avator {
-					 animation: spin 5s linear infinite;
-				}
-			}
-
-		}
-
-		&-bottom {
-			width: 100%;
-			display: flex;
-			flex-direction: column;
-			align-items: center;
-
-			&__btn {
-				width: 516rpx;
-				height: 88rpx;
-				border-radius: 66rpx;
-				background: #AEE500;
-
-				font-size: 36rpx;
-				font-weight: 600;
-				color: #3D3D3D;
-				text-align: center;
-				line-height: 88rpx;
-				text {
-					color:#666;font-size: 24rpx;
-				}
-			}
-
-			&__tips {
-				font-size: 23rpx;
-				font-weight: 500;
-				color: #A3A3A3;
-				margin-bottom: 16rpx;
-			}
-		}
-
-
-
-
-	}
-.pop {
-	position: fixed;left:0;top:0;width:750rpx;height:100vh;
-	background-color: #fff;
-	 .blurred-background {
-		 position: absolute;
-	      width: 750rpx;
-	      height: 100vh;
-	      background-image: url('/static/make/1_12.png'); /* 替换为你的图片URL */
-	      background-size: cover;
-	      filter: blur(10px); /* 调整模糊程度 */
-		  z-index:1;
-	}
-	.xinxiang {
-		position: absolute;height:100vh;width:100vh;
-		z-index:99;
-	}
-	.play_video {
-		position: absolute;left:30rpx;top:40%;width:80rpx;height:80rpx;
-		z-index:100;
-	}
-	.backup {
-		position: absolute;left:40rpx;width:80rpx;height:80rpx;
-		z-index:9999;
-		top: calc(50rpx + var(--status-bar-height));
-	}
-	.cucang {
-		position: absolute;top:220rpx;z-index: 9999;
-		padding:30rpx;color:#fff;font-size: 38rpx;text-align: center;
-		animation: shine 1s ease-in-out infinite;
-		text-shadow: 0 0 10px #fff;
-	}
-	
-	.scroll-text {
-	  position: absolute;bottom:20rpx;z-index: 9999;
-	  width:700rpx;height: 500rpx;margin:25rpx;
-	  overflow: hidden;
-	}
-
-	.scroll-text-content {
-	  position: absolute;
-	  bottom: 0;color:#333;
-	  animation: scroll 20s linear infinite; /* 调整滚动速度和持续时间 */
-	}
-	
-	.video-container {
-	      position: relative;
-	      display: inline-block;
-		  width:100%;height:100%;
-	    }
-	
-	    .video-text {
-	      position: absolute;
-	      top: 100rpx;
-	      left: 20rpx;width:100%;
-	      transform: translate(-50%, -50%);
-	      color: #ff0000;
-	      font-size: 24px;
-	      text-shadow: 2px 2px 4px #000;z-index: 99999;
-	    }
-
-	@keyframes scroll {
-	  0% {
-		transform: translateY(100%); /* 从底部开始 */
-	  }
-	  100% {
-		transform: translateY(-50%); /* 滚动到顶部 */
-	  }
-	}
-		
-		
-}
-
-@keyframes spin {
-  0% { transform: rotate(0deg); }
-  100% { transform: rotate(360deg); }
-}
-@keyframes shine {
-  0% { text-shadow: 0 0 10px #fff; }
-  50% { text-shadow: 0 0 20px #ff00ff, 0 0 30px #ff0000; }
-  100% { text-shadow: 0 0 10px #fff; }
-}

+ 0 - 272
pages/make/make2.vue

@@ -1,272 +0,0 @@
-<template>
-	<view class="setps-container">
-		<image src="/static/icon/icon-11.png" class="setps-container-title_image"></image>
-		<image src="/static/me/backup.png" class="backup" @click="backup"></image>
-		<view class="setps-container-top">
-			<text class="setps-container-top_title">STEP {{step}}</text>
-			<view class="setps-container-top_line">
-				<view class="setps-container-top_line__lineTow" v-if="step == 1"></view>
-				<view class="setps-container-top_line__lineTow2" v-if="step == 2"></view>
-				<view class="setps-container-top_line__lineTow3" v-if="step == 3"></view>
-				<view class="setps-container-top_line__lineTow4" v-if="step == 4"></view>
-				<view class="setps-container-top_line__lineTow5" v-if="step == 5"></view>
-			</view>
-			<text class="setps-container-top_desc">生成个人形象</text>
-		</view>
-		<view class="setps-container-center">
-			<block v-if="step == 1">
-				<image src="/static/me/xinxiang.png" class="avator"></image>
-			</block>
-			<block v-if="step == 2">
-				<image src="/static/make/1_13.png" class="avator" mode="widthFix"></image>
-			</block>
-			<block v-if="step == 3">
-				<view class="scroll-text">
-					<text class="scroll-text-content">
-						在二次元的世界里,有一个充满活力的少女,她叫艾丽。她的形象可爱动人,带着泡泡玛特般的独特魅力。
-						艾丽是一个热情洋溢的女孩,她的乐天性格让她总是看到事情积极的一面。无论面对何种困难,她都能保持着勇敢的心态,积极地去寻找解决问题的方法。她的活泼与积极仿佛是一道阳光,照亮了周围的人,给大家带来无尽的欢乐和力量。
-						正义在艾丽的心中占据着重要的位置,她总是愿意挺身而出,为了公平和正义而努力。她的这种品质使她在朋友们中备受尊敬和喜爱。
-						艾丽对夏天有着特别的喜爱,她觉得夏天是充满活力和热情的季节。而海边则是她最喜欢的地方之一,那广阔的大海、柔软的沙滩和温暖的阳光,让她感到无比的放松和愉悦。
-						运动是艾丽生活中不可或缺的一部分,她尤其热爱网球和乒乓球。在球场上,她尽情地挥洒着汗水,展现出自己的活力和技巧。她积极参加各种比赛,不断挑战自己,追求更高的水平。除了亲自参与运动,艾丽也非常喜欢观看体育赛事。她会为运动员们的精彩表现欢呼喝彩,感受到体育精神的魅力。
-						艾丽的存在就像一个小太阳,她的热情、乐天、勇敢、活泼、积极和正义,让她成为了一个令人难以忘怀的二次元少女。她在自己热爱的领域中不断探索和成长,用自己的阳光感染着身边的每一个人。
-					</text>
-				</view>
-			</block>
-			<block v-if="step == 4">
-				<text class="cucang">
-					艾丽登场,带着阳光,传递快乐与力量!
-				</text>
-			</block>
-			<block v-if="step == 5">
-				<view class="bg-content">
-					<image src="/static/make/music.png" class="avator" mode="widthFix"></image>
-				</view>
-			</block>
-
-
-			<!-- <view class="avator"></view> -->
-			<!-- <swiper class="swiper" :current="tabCurrentIndex" duration="300">
-				<swiper-item class="swiper-item">
-					
-				</swiper-item>
-			</swiper> -->
-			<!-- <setp-a></setp-a> -->
-		</view>
-		<view class="setps-container-bottom">
-			<text class="setps-container-bottom__tips"></text>
-			<view class="setps-container-bottom__btn" @click="next">{{btnName}}<text>(100彩豆)</text></view>
-		</view>
-		<view class="pop" v-if="step == 9">
-			<view class="blurred-background"></view>
-
-			<!-- <view class="video-container">
-				<view class="video-text">这纷扰世界,我凌音只在自己的角落,守着内心的宁静与热爱。</view>
-				
-			</view> -->
-			<image src="/static/make/1_13.png" class="xinxiang" mode="aspectFill"></image>
-			<image src="/static/make/play_video.png" class="play_video" mode="widthFix" @click="showVideo()"></image>
-
-			<block v-if="video_url != ''">
-				<video id="myVideo" autoplay="true" :src="video_url" style="width:100%;height:100%;z-index: 88;"
-					loop="true"></video>
-			</block>
-
-			<image src="/static/me/backup.png" class="backup" @click="backup"></image>
-			<view class="cucang">
-				艾丽登场,带着阳光,传递快乐与力量!
-			</view>
-
-			<view class="scroll-text">
-				<text class="scroll-text-content">
-					在二次元的世界里,有一个充满活力的少女,她叫艾丽。她的形象可爱动人,带着泡泡玛特般的独特魅力。
-					艾丽是一个热情洋溢的女孩,她的乐天性格让她总是看到事情积极的一面。无论面对何种困难,她都能保持着勇敢的心态,积极地去寻找解决问题的方法。她的活泼与积极仿佛是一道阳光,照亮了周围的人,给大家带来无尽的欢乐和力量。
-					正义在艾丽的心中占据着重要的位置,她总是愿意挺身而出,为了公平和正义而努力。她的这种品质使她在朋友们中备受尊敬和喜爱。
-					艾丽对夏天有着特别的喜爱,她觉得夏天是充满活力和热情的季节。而海边则是她最喜欢的地方之一,那广阔的大海、柔软的沙滩和温暖的阳光,让她感到无比的放松和愉悦。
-					运动是艾丽生活中不可或缺的一部分,她尤其热爱网球和乒乓球。在球场上,她尽情地挥洒着汗水,展现出自己的活力和技巧。她积极参加各种比赛,不断挑战自己,追求更高的水平。除了亲自参与运动,艾丽也非常喜欢观看体育赛事。她会为运动员们的精彩表现欢呼喝彩,感受到体育精神的魅力。
-					艾丽的存在就像一个小太阳,她的热情、乐天、勇敢、活泼、积极和正义,让她成为了一个令人难以忘怀的二次元少女。她在自己热爱的领域中不断探索和成长,用自己的阳光感染着身边的每一个人。
-				</text>
-			</view>
-		</view>
-		<!-- <modal ref="modal" content-text="注册完成后将无法更改生日,为了良好的使用体验,请慎重选择!"></modal> -->
-	</view>
-</template>
-
-<script>
-	export default {
-		components: {},
-		data() {
-			return {
-				innerAudioContext: null,
-				tabCurrentIndex: 0,
-				step: 1,
-				btnName: '生成形象',
-				danmuList: [{
-						text: '这纷扰世界',
-						color: '#ff0000',
-						time: 1
-					},
-					{
-						text: '我凌音只在自己的角落',
-						color: '#ff00ff',
-						time: 2
-					},
-					{
-						text: '守着内心的宁静与热爱',
-						color: '#ff00ff',
-						time: 3
-					}
-				],
-				video_url: '',
-
-			}
-		},
-		onReady: function(res) {
-			this.videoContext = uni.createVideoContext('myVideo')
-		},
-		onLoad() {
-			let that = this;
-			// setTimeout(function() {
-			// 	that.playBg();
-			// }, 2000);
-		},
-		onHide() {
-			if (this.innerAudioContext != null) {
-				try {
-					this.innerAudioContext.pause();
-					this.innerAudioContext.destroy()
-					this.innerAudioContext = null
-				} catch (e) {
-					//TODO handle the exception
-				}
-			}
-		},
-		onUnload() {
-			if (this.innerAudioContext != null) {
-				try {
-					this.innerAudioContext.pause();
-					this.innerAudioContext.destroy()
-					this.innerAudioContext = null
-				} catch (e) {
-					//TODO handle the exception
-				}
-			}
-		},
-		methods: {
-			backup() {
-				if (this.innerAudioContext != null) {
-					try {
-						this.innerAudioContext.pause();
-						this.innerAudioContext.destroy()
-						this.innerAudioContext = null
-					} catch (e) {
-						//TODO handle the exception
-					}
-				}
-				// uni.navigateBack({
-				// 	delta: 1
-				// });
-				// uni.switchTab({
-				// 	url: '/pages/make/index'
-				// })
-				uni.navigateBack();
-			},
-			next() {
-				// this.$refs.modal.open()
-				if (this.step == 1) {
-					uni.showLoading({});
-					let that = this;
-					setTimeout(function() {
-						that.showStep2();
-					}, 1000);
-				} else if (this.step == 2) {
-					uni.showLoading({});
-					let that = this;
-					setTimeout(function() {
-						that.showStep3();
-					}, 1000);
-
-				} else if (this.step == 3) {
-					uni.showLoading({});
-					let that = this;
-					setTimeout(function() {
-						that.showStep4();
-					}, 1000);
-
-				} else if (this.step == 4) {
-					uni.showLoading({});
-					let that = this;
-					setTimeout(function() {
-						that.showStep5();
-					}, 1000);
-
-				} else if (this.step == 5) {
-					uni.showLoading({});
-					let that = this;
-					setTimeout(function() {
-						that.step = 9;
-						that.playBg();
-						uni.hideLoading();
-					}, 1000);
-
-				} else {
-					// this.step = 5;
-					// uni.redirectTo({
-					// 	url:'/pages/make/'
-					// })
-					// this.playBg();
-				}
-			},
-			showStep2() {
-				uni.hideLoading();
-				this.step = 2;
-				this.btnName = "生成背景";
-			},
-			showStep3() {
-				uni.hideLoading();
-				this.step = 3;
-				this.btnName = "生成出场台词";
-			},
-			showStep4() {
-				uni.hideLoading();
-				this.step = 4;
-				this.btnName = "生成音乐";
-			},
-			showStep5() {
-				uni.hideLoading();
-				this.step = 5;
-				this.btnName = "查看形象";
-			},
-			showVideo() {
-				this.video_url = '/static/make/video2.mp4';
-			},
-
-			playBg() {
-				this.innerAudioContext = uni.createInnerAudioContext();
-				this.innerAudioContext.autoplay = true;
-				this.innerAudioContext.loop = true;
-				this.innerAudioContext.sessionCategory = "soloAmbient";
-				this.innerAudioContext.src = 'https://e.zhichao.art/images/1_13.mp3';
-				// console.log('this.innerAudioContext',this.innerAudioContext);
-				this.innerAudioContext.onPlay(() => {
-					console.log('开始播放');
-				});
-				this.innerAudioContext.onError((res) => {
-					// console.log(res.errMsg);
-					// console.log(res.errCode);
-				});
-				let self = this;
-				setTimeout(function() {
-					if (self.innerAudioContext != null) {
-						// if(self.innerAudioContext.paused) {
-						// }
-						// self.innerAudioContext.play();
-					}
-				}, 1000);
-			},
-		}
-	}
-</script>
-
-<style scoped lang="scss">
-	@import 'make2.scss';
-</style>

+ 8 - 3
pages/makedetail/makeDetail.vue

@@ -647,14 +647,19 @@ export default {
 			uni.showLoading({
 				title: '删除中...'
 			});
-
+			let url = this.$apiHost + '/WorkAI/queueAction';
+			let id = this.arcID;
+			if (this.queueDetail.status == 9) {
+				url = this.$apiHost + '/Work/doAct';
+				id = this.queueId;
+			} 
 			uni.request({
-				url: this.$apiHost + '/WorkAI/queueAction',
+				url,
 				method: 'GET',
 				data: {
 					uuid: getApp().globalData.uuid,
 					act: 'del',
-					id: this.arcID
+					id,
 				},
 				header: {
 					'content-type': 'application/json',

+ 9 - 13
pages/makedetail/makeImgDetail.vue

@@ -154,25 +154,21 @@ export default {
 			environmentTags: ['都市大道', '大树底下', '办公室', '厨房'],
 			imageTags: ['戴着墨镜', '戴着耳机', '戴着帽子', '手持冲浪板'],
 			styleList: [{
-				name: '自然共生',
-				image: '../../static/dome/fenge.png'
+				name: '国风新绎',
+				image: '../../static/makedetail/style-1.png'
 			},
 			{
-				name: '国风新锋',
-				image: '../../static/dome/fenge.png'
+				name: '休闲自然',
+				image: '../../static/makedetail/style-2.png'
 			},
 			{
-				name: '萌系治愈',
-				image: '../../static/dome/fenge.png'
+				name: '西方魔法',
+				image: '../../static/makedetail/style-3.png'
 			},
 			{
-				name: '萌系治愈',
-				image: '../../static/dome/fenge.png'
-			},
-			{
-				name: '萌系治愈',
-				image: '../../static/dome/fenge.png'
-			}
+				name: '可爱甜蜜',
+				image: '../../static/makedetail/style-4.png'
+			} 
 			],
 			inQueue: false,//是否创作中
 			queuing: false,//是否排队中

+ 7 - 33
pages/my/my.vue

@@ -38,8 +38,8 @@
 								<text class="intro_text two-omit">添加简介</text>
 								<image src="@/static/icon/wd_icon_edit.png" mode="widthFix" class="add_icon"></image>
 							</block>
-							<uv-text v-else class="intro_text two-omit">
-								{{ myinfo.content }}
+							<uv-text v-else :text="myinfo.content" class="intro_text two-omit">
+							 
 							</uv-text>
 						</view>
 						<view class="bom">
@@ -66,7 +66,7 @@
 									<view class="money-add" v-if="isRecharge">+</view>
 								</view>
 								<view class="points" @click="isRecharge ?goPage('/pages/my/job?type=recharge')  : ''">
-									<image src="@/static/icon/wd_icon_xingyuan.png" mode=""></image>
+									<image src="@/static/icon/coin_cd.png" mode=""></image>
 									{{ myinfo.num_gmd | formatNumberToK }}
 									<view class="money-add" v-if="isRecharge">+</view>
 								</view>
@@ -187,8 +187,8 @@
 								<view class="incomplete-bg" style="background: #f8f9fa"></view>
 								<image class="incomplete-bg" v-if="item.status != 1"
 									src="@/static/me/wd_bg_zhizuozhong.png"></image>
-								<image class="incomplete-bg2" v-else-if="item.status == 1" :src="item.image"
-									mode="widthFix"></image>
+									<image class="incomplete-bg2" v-else-if="item.status == 1" :src="item.image"
+									mode="aspectFill" style="max-height: 520rpx;"></image>
 
 								<view class="maskLayer" v-if="item.status != 1"></view>
 								<!-- 当activeTab为1时显示队列状态 -->
@@ -363,37 +363,11 @@ export default {
 			}
 		},
 		goPage(page) {
-			if (page == "kefu") {
-				let that = this;
-				// #ifdef APP-PLUS
-				plus.share.getServices((res) => {
-					const wechat = res.find((i) => i.id === "weixin");
-					if (wechat) {
-						wechat.openCustomerServiceChat({
-							corpid: "wwbc06aa8311b6ac08",
-							// url: 'https://work.weixin.qq.com/kfid/kfc4b0bcb4038d00a50'
-							url: that.myinfo.wxkf,
-						},
-							(src) => {
-								console.log("success:");
-							},
-							(err) => {
-								console.log("error:");
-							}
-						);
-					} else {
-						uni.showToast({
-							title: "没有检测到微信,请先安装",
-							icon: "error",
-						});
-					}
-				});
-				// #endif
-			} else if (page != "") {
+		 
 				uni.navigateTo({
 					url: page,
 				});
-			}
+		 
 		},
 		loadInfo() {
 			console.log({

+ 4 - 3
pages/my/myStar.vue

@@ -199,7 +199,7 @@
 <script>
 import tabbarView from "@/components/tabbar/tabbar.vue";
 import value from '../../uni_modules/uv-text/components/uv-text/value';
-
+import { mapMutations } from 'vuex'
 export default {
 	components: {
 		tabbarView,
@@ -263,6 +263,7 @@ export default {
 		this.aIpipeiGetinfo("get");
 	},
 	methods: {
+		...mapMutations('switchingModule', ['setInformation','deleteInformation']),
 		// 返回上一页
 		goBack() {
 			uni.navigateBack({
@@ -420,10 +421,10 @@ export default {
 							res.data.info.tags = res.data.info.tags.split(",");
 							this.predefinedTags = res.data.info.tags.map(tag => { return { text: tag, value: tag } })
 							console.log(666, res);
-
+							this.setInformation(res.data.info) 
 						} else {
 							res.data.info.tags = []
-
+							this.deleteInformation()
 						}
 						// 实现状态的判断
 						// 更改状态为 用户还未匹配过 待输入匹配内容

+ 29 - 54
pages/my/setting.vue

@@ -4,30 +4,16 @@
       <view class="">
         <!-- 基础设置组 -->
         <view class="group-header">基础设置</view>
-        <view
-          class="item basic"
-          v-for="(item, index) in basicSettings"
-          :key="item.name + index"
-          @click="goPage(item.path)"
-        >
+        <view class="item basic" v-for="(item, index) in basicSettings" :key="item.name + index"
+          @click="goPage(item.path)">
           <view class="item-left">
             <image class="icon" :src="item.icon" mode="widthFix"></image>
             <text>{{ item.name }}</text>
           </view>
           <view class="item-right">
-            <switch
-              v-if="item.switch == 1"
-              checked
-              class="custom-switch"
-              color="#acf934"
-              style="transform: scale(0.7)"
-            />
-            <image
-              v-else
-              class="arrow"
-              src="../../static/me/arrow_right_gray.png"
-              mode="widthFix"
-            ></image>
+            <switch v-if="item.switch == 1" checked class="custom-switch" color="#acf934"
+              style="transform: scale(0.7)" />
+            <image v-else class="arrow" src="../../static/me/arrow_right_gray.png" mode="widthFix"></image>
           </view>
         </view>
       </view>
@@ -35,31 +21,16 @@
       <view class="">
         <!-- 更多设置组 -->
         <view class="group-header" style="margin-top: 20rpx">更多</view>
-        <view
-          class="item more"
-          v-for="(item, index) in moreSettings"
-          :key="index + item.name"
-          @click="goPage(item.path, item)"
-        >
+        <view class="item more" v-for="(item, index) in moreSettings" :key="index + item.name"
+          @click="goPage(item.path, item)">
           <view class="item-left">
             <image class="icon" :src="item.icon" mode="widthFix"></image>
             <text>{{ item.name }}</text>
           </view>
           <view class="item-right">
-            <switch
-              v-if="item.switch == 1"
-              color="#acf934"
-              @change="switch1Change"
-              :checked="isContentRecommendation"
-              class="custom-switch"
-              style="transform: scale(0.7)"
-            />
-            <image
-              v-else
-              class="arrow"
-              src="../../static/me/arrow_right_gray.png"
-              mode="widthFix"
-            ></image>
+            <switch v-if="item.switch == 1" color="#acf934" @change="switch1Change" :checked="isContentRecommendations"
+              class="custom-switch" style="transform: scale(0.7)" />
+            <image v-else class="arrow" src="../../static/me/arrow_right_gray.png" mode="widthFix"></image>
           </view>
         </view>
       </view>
@@ -81,8 +52,13 @@
 <script>
 import CustomerServicePopup from "@/components/CustomerServicePopup/CustomerServicePopup.vue";
 import { getStorage, setStorage, removeStorage } from "@/common/util.js";
+import { mapState, mapMutations ,mapGetters} from 'vuex';
 export default {
   components: { CustomerServicePopup },
+  computed: {
+    ...mapState('rightsManagement',['isContentRecommendation']),
+    ...mapGetters('rightsManagement',['isContent'])
+  },
   data() {
     return {
       title: "",
@@ -145,7 +121,7 @@ export default {
           propup: "customPopup",
         },
       ],
-      isContentRecommendation: true,
+      isContentRecommendations: true,
     };
   },
   onLoad() {
@@ -153,16 +129,14 @@ export default {
   },
   onShow() {
     this.loadData();
-    //
-    var isContentRecommendation = getStorage("isContentRecommendation");
-    if (isContentRecommendation != undefined) {
-      this.isContentRecommendation =
-        isContentRecommendation == "false" ? false : true;
+    if (this.isContent) {
+      this.isContentRecommendations = true
     } else {
-      setStorage("isContentRecommendation", true);
+      this.isContentRecommendations = false
     }
   },
   methods: {
+    ...mapMutations('rightsManagement',[ 'setIsContentRecommendation']),
     openCustomPopup() {
       this.$refs.customerServicePopup.open();
     },
@@ -184,9 +158,10 @@ export default {
       });
     },
     switch1Change(e) { 
-      setStorage("isContentRecommendation", e.detail.value);
+      this.setIsContentRecommendation(e.detail.value);
+     
     },
-    onBack() {},
+    onBack() { },
     chkSel() {
       if (this.sel == 1) {
         this.sel = 0;
@@ -235,13 +210,13 @@ export default {
           const main = plus.android.runtimeMainActivity();
           const NotificationManagerCompat = plus.android.importClass('androidx.core.app.NotificationManagerCompat');
           const Context = plus.android.importClass('android.content.Context');
-          
+
           // 获取NotificationManagerCompat实例
           const notificationManager = NotificationManagerCompat.from(main);
-          
+
           // 检查通知权限
           const areNotificationsEnabled = notificationManager.areNotificationsEnabled();
-          
+
           if (areNotificationsEnabled) {
             uni.showToast({
               title: '通知权限已开启',
@@ -259,7 +234,7 @@ export default {
                   const Intent = plus.android.importClass('android.content.Intent');
                   const Settings = plus.android.importClass('android.provider.Settings');
                   const Uri = plus.android.importClass('android.net.Uri');
-                  
+
                   const intent = new Intent();
                   intent.setAction(Settings.ACTION_APP_NOTIFICATION_SETTINGS);
                   intent.putExtra(Settings.EXTRA_APP_PACKAGE, main.getPackageName());
@@ -277,7 +252,7 @@ export default {
           application.openURL(setting);
         }
         // #endif
-        
+
         // #ifdef H5
         uni.showToast({
           title: 'H5环境不支持此功能',
@@ -290,7 +265,7 @@ export default {
         });
       }
     },
-	
+
     DelMem() {
       var that = this;
       this.$refs["DialogBox"]

+ 7 - 5
pages/my/teenagePassword.vue

@@ -32,6 +32,7 @@
 <script>
 import PageHeader from '@/components/PageHeader/PageHeader.vue'
 import { getStorage, setStorage, removeStorage } from "@/common/util.js";
+import { mapState,mapMutations } from 'vuex';
 export default {
 	components: { PageHeader },
 	data() {
@@ -62,6 +63,7 @@ export default {
 
 	},
 	methods: {
+		...mapMutations('rightsManagement',['setTeenageMode']),
 		openCustomPopup() {
 			this.$refs.customerServicePopup.$refs.customPopup.open()
 		},
@@ -224,12 +226,12 @@ export default {
 					success: (res) => {
 						console.log("切换结果:", res.data);
 						resolve(res.data);
-						if (res.data.is_open_young == 1) {
-							setStorage("isContentRecommendation", false);
-						} else if (res.data.is_open_young == 0) {
-							setStorage("isContentRecommendation", true);
+						if (res.data.is_open_young == 1) { 
+							this.setTeenageMode(1);
+						} else if (res.data.is_open_young == 0) { 
+							this.setTeenageMode(2);
 						}
-					},
+					}, 
 					fail: (e) => {
 						console.log("切换失败:", e);
 						reject(e);

+ 2 - 2
pages/my/userHomepage.vue

@@ -34,8 +34,8 @@
               <block v-if="myinfo.content == ''">
                 <text class="intro_text two-omit">简介</text>
               </block>
-              <uv-text v-else class="intro_text two-omit">
-                {{ myinfo.content }}
+              <uv-text v-else  :text="myinfo.content" class="intro_text two-omit">
+          
               </uv-text>
             </view>
             <view class="bom">

+ 11 - 11
pages/vip/index.vue

@@ -77,7 +77,7 @@
 					<text class="xy" @click="goPage('/pages/AboutUs/pay_xy')">
 						《充值服务协议》
 					</text>,充值M币仅【萌创星球】使用点击查看
-					<text class="xy" @click="goPage('yszc')">
+					<text class="xy" @click="goPage('/pages/vip/record?type=vip')">
 						充值记录
 					</text>
 				</view>
@@ -196,16 +196,16 @@ export default {
 				icon: '../../static/vip/hy_icon_quanyi04.png',
 				desc: '深度思考,提升50%'
 			},
-			{
-				name: 'VIP专属通道',
-				icon: '../../static/vip/hy_icon_quanyi05.png',
-				desc: '创作加速,更快生成'
-			},
-			{
-				name: '免广告',
-				icon: '../../static/vip/hy_icon_quanyi06.png',
-				desc: '无广告免费体验'
-			}
+			// {
+			// 	name: 'VIP专属通道',
+			// 	icon: '../../static/vip/hy_icon_quanyi05.png',
+			// 	desc: '创作加速,更快生成'
+			// },
+			// {
+			// 	name: '免广告',
+			// 	icon: '../../static/vip/hy_icon_quanyi06.png',
+			// 	desc: '无广告免费体验'
+			// }
 			],
 			paymentMethod: 'alipay', // 默认支付方式
 			privilegesHeight: 0, // 添加存储特权区域高度的变量

+ 96 - 0
pages/webview/index.vue

@@ -0,0 +1,96 @@
+<template>
+  <view class="webview-container">
+    <web-view :src="url" @message="handleMessage"></web-view>
+  </view>
+</template>
+
+<script>
+export default {
+  data() {
+    return {
+      url: ''
+    }
+  },
+  onLoad(options) {
+    if (options.url) {
+      // 解码 URL
+      this.url = decodeURIComponent(options.url)
+    }
+    if (options.title) {
+      // 解码 title
+      let title = decodeURIComponent(options.title)
+      if (title) {
+        uni.setNavigationBarTitle({
+          title: title
+        })
+      }
+    }
+  },
+  methods: {
+    handleMessage(e) {
+      const message = e.detail.data[0]
+      console.log('收到来自 web 页面的消息:', message)
+      
+      // 根据消息类型处理
+      switch (message.type) {
+        case 'close':
+          // 关闭页面
+          uni.navigateBack()
+          break
+        case 'share':
+          // 处理分享
+          this.handleShare(message.data)
+          break
+        case 'login':
+          // 处理登录
+          this.handleLogin(message.data)
+          break
+        case 'payment':
+          // 处理支付
+          this.handlePayment(message.data)
+          break
+        default:
+          console.log('未知消息类型:', message.type)
+      }
+    },
+    
+    // 处理分享
+    handleShare(data) {
+      uni.share({
+        provider: "weixin",
+        scene: "WXSceneSession",
+        type: 0,
+        title: data.title || '',
+        summary: data.desc || '',
+        imageUrl: data.imageUrl || '',
+        href: data.url || '',
+        success: function (res) {
+          console.log("success:" + JSON.stringify(res));
+        },
+        fail: function (err) {
+          console.log("fail:" + JSON.stringify(err));
+        }
+      });
+    },
+    
+    // 处理登录
+    handleLogin(data) {
+      // 这里可以根据实际需求处理登录逻辑
+      console.log('处理登录:', data)
+    },
+    
+    // 处理支付
+    handlePayment(data) {
+      // 这里可以根据实际需求处理支付逻辑
+      console.log('处理支付:', data)
+    }
+  }
+}
+</script>
+
+<style lang="scss">
+.webview-container {
+  width: 100%;
+  height: 100vh;
+}
+</style> 

BIN
static/home/icon_vip.png


BIN
static/home/meinv.png


BIN
static/home/nan.png


BIN
static/home/no.png


BIN
static/home/num_icon.png


BIN
static/home/talk.png


BIN
static/home/talk2.png


BIN
static/icon/boyA.png


BIN
static/icon/boyB.png


BIN
static/icon/cirlA.png


BIN
static/icon/cirlB.png


BIN
static/icon/coin_cd1.png


BIN
static/icon/otherA.png


BIN
static/icon/otherB.png


BIN
static/images/bg-1.png


BIN
static/images/bg-2.png


BIN
static/images/bg-3.png


BIN
static/images/black-bg.png


BIN
static/images/kongbai.png


BIN
static/images/white-bg.png


BIN
static/images/xiong-bg.png


BIN
static/img/img-1.png


BIN
static/img/img-2.png


BIN
static/img/img-3.png


BIN
static/make/bg1.mp3


BIN
static/make/bg2.mp3


BIN
static/make/video.mp4


BIN
static/make/video2.mp4


BIN
static/makedetail/style-1.png


BIN
static/makedetail/style-2.png


BIN
static/makedetail/style-3.png


BIN
static/makedetail/style-4.png


BIN
static/me/M_coin_bg1.png


BIN
static/me/job/rw_biaoqian_vip(1).png


+ 3 - 1
store/index.js

@@ -51,7 +51,9 @@ const store = new Vuex.Store({
       reducer(val) {
         return {
           // 只持久化指定的模块
-          switchingModule: val.switchingModule
+          switchingModule: val.switchingModule,
+          rightsManagement: val.rightsManagement,
+          starSpiritImage: val.starSpiritImage
         }
       }
     })

+ 36 - 0
store/modules/rightsManagement.js

@@ -0,0 +1,36 @@
+const state = {
+  teenageMode: 0, //0为设置青少年模式,1开启青少年模式 2 关闭青少年模式
+  iscontentRecommendation : true, //是否开启内容推荐
+}
+
+const mutations = {
+  setTeenageMode(state, falg) {
+    state.teenageMode = falg 
+  }, 
+  setIsContentRecommendation(state, falg) {
+    state.iscontentRecommendation = falg 
+  },
+  
+}
+
+const actions = {
+  // // 设置权限
+  // setPermissions({ commit }, permissions) {
+  //   commit('SET_PERMISSIONS', permissions)
+  // }
+}  
+
+const getters = {
+  teenageMode: state => state.teenageMode,  
+  isContent: state => state.iscontentRecommendation && state.teenageMode !=1,
+}
+ 
+ 
+
+export default {
+  namespaced: true,
+  state,
+  mutations,
+  actions,
+  getters
+} 

+ 36 - 0
store/modules/starSpiritImage.js

@@ -0,0 +1,36 @@
+const state = {
+  teenageMode: 0, //0为设置青少年模式,1开启青少年模式 2 关闭青少年模式
+  iscontentRecommendation : true, //是否开启内容推荐
+}
+
+const mutations = {
+  setTeenageMode(state, falg) {
+    state.teenageMode = falg 
+  }, 
+  setIsContentRecommendation(state, falg) {
+    state.iscontentRecommendation = falg 
+  },
+  
+}
+
+const actions = {
+  // // 设置权限
+  // setPermissions({ commit }, permissions) {
+  //   commit('SET_PERMISSIONS', permissions)
+  // }
+}  
+
+const getters = {
+  teenageMode: state => state.teenageMode,  
+  isContent: state => state.iscontentRecommendation && state.teenageMode !=1,
+}
+ 
+ 
+
+export default {
+  namespaced: true,
+  state,
+  mutations,
+  actions,
+  getters
+} 

+ 30 - 11
store/modules/switchingModule.js

@@ -1,17 +1,37 @@
 const state = {
-  isRecharge: false, // 隐藏充值模块
-  isGuiding: false, // 隐藏创作模块中的引导部分  需要手动去打开
-  isTheTask: false, // 首页任务隐藏
+  status:0,
+  picture:'',
+  name:'',
+  requestData:{},
 }
 
-const mutations = {
-  setIsRecharge(state, falg) {
-    state.isRecharge = falg 
+const mutations = { 
+  setState(state, value) {
+    state.status = value
   },
-  setIsGuiding(state, falg) {
-    state.isGuiding = falg 
+  setPicture(state, value) {
+    state.picture = value
   },
-  
+  setName(state, value) {
+    state.name = value
+  },
+  setRequestData(state, value) {
+    state.requestData = value
+  },
+  setInformation(state, value) {
+    state.status = value.status
+    state.picture = value.image_ai
+    state.name = value.nickname
+    state.requestData = value
+    console.log(state,'1状态');
+    
+  },  
+  deleteInformation(state){
+    state.status = 0
+    state.picture = ''
+    state.name = ''
+    state.requestData = {}
+  }
 }
 
 const actions = {
@@ -22,8 +42,7 @@ const actions = {
 }
 
 const getters = {
-  isRecharge: state => state.isRecharge, 
-  isGuiding: state => state.isGuiding, 
+
 }