shish před 8 hodinami
rodič
revize
089d02a947

+ 0 - 177
ghsApp/src/admin/book/ls.vue

@@ -1,177 +0,0 @@
-<template>
-	<view class="app-content">
-		<view class="book-banner">
-			<image v-if="showBanner" class="slide" :src="`${constant.imgUrl}/book/banner9.png`" mode="aspectFit"></image>
-		</view>
-		<view class="book-content">
-			<view v-for="(item, index) in book" :key="index" class="book-section">
-				<view class="category">
-					<image class="icon" :src="`${constant.imgUrl}${item.icon}`"></image>
-					<text class="category-text">{{item.class}}</text>
-				</view>
-				<view class="book-list">
-					<view v-for="(it, idx) in item.list" 
-						:key="idx" 
-						class="book-item"
-						:class="it.read ? 'read' : 'unread'"
-						@click="goDetail(it)">
-						<text :class="[it.style == 'red' ? 'red-title' : 'book-title']">{{it.title}}</text>
-					</view>
-				</view>
-			</view>
-		</view>
-	</view>
-</template>
-
-<script>
-import { getLsList} from "@/api/book";
-export default {
-	name: "ls",
-	components: {},
-	mixins: [],
-	data() {
-		return {
-			book: [],
-			showBanner: true
-		};
-	},
-	onShareAppMessage(res) {
-		return {
-			title: '花掌柜教学视频',
-			desc: "图文视频教学,带您快速上手",
-			imageUrl: `${this.$constant.imgUrl}/logo4.png`,
-			path: "admin/book/ls",
-		}
-	},
-	onLoad() {
-		let that = this
-		getLsList().then(res => {
-			that.book = res.data.list
-		})
-	},
-	methods: {
-		init(){
-
-		},
-		goDetail(item){
-			// 设置为已读状态
-			item.read = true;
-			// #ifdef MP-WEIXIN
-			this.$util.pageTo({url: '/admin/book/lsDetail?id='+item.id})
-			// #endif
-			// #ifdef APP-PLUS
-			this.$util.pageTo({url: '/admin/book/lsDetail?id='+item.id})
-			// #endif
-		}
-	}
-};
-</script>
-
-<style lang="scss" scoped>
-.app-content {
-	min-height: 100vh;
-	background-color: #f5f6fa;
-	
-	.book-banner {
-		width: 750upx;
-		height: 524upx;
-		box-shadow: 0 4upx 12upx rgba(0,0,0,0.1);
-		
-		.slide {
-			width: 750upx;
-			height: 524upx;
-			transition: opacity 0.3s ease;
-		}
-	}
-	
-	.book-content {
-		padding: 20upx 16upx;
-		
-		.book-section {
-			background: white;
-			border-radius: 16upx;
-			padding: 24upx 16upx;
-			margin-bottom: 24upx;
-			box-shadow: 0 2upx 8upx rgba(0,0,0,0.05);
-			
-			.category {
-				display: flex;
-				align-items: center;
-				padding-bottom: 20upx;
-				border-bottom: 2upx solid #f0f0f0;
-				margin-bottom: 16upx;
-				
-				.icon {
-					width: 40upx;
-					height: 40upx;
-					margin-right: 16upx;
-				}
-				
-				.category-text {
-					font-size: 36upx;
-					font-weight: 600;
-					color: #333;
-				}
-			}
-			
-			.book-list {
-				.book-item {
-					position: relative;
-					padding: 24upx 20upx;
-					margin: 12upx 0;
-					border-radius: 8upx;
-					background: #f8f9fb;
-					display: flex;
-					align-items: center;
-					.book-title {
-						font-size: 32upx;
-						color: #2c3e50;
-						line-height: 1.4;
-					}
-					.red-title{
-						font-size: 32upx;
-						line-height: 1.4;
-						font-weight: bold;
-						color: #f00;
-					}
-					&::before {
-						content: '';
-						display: inline-block;
-						width: 28upx;
-						height: 28upx;
-						background: #008000;
-						border-radius: 50%;
-						margin-right: 16upx;
-						flex-shrink: 0;
-					}
-					
-					// 未读样式
-					&.unread {
-						.book-title {
-							font-weight: 500;
-							color: #303133;
-						}
-					
-						&::before {
-							background: #2979ff;
-						}
-					}
-					
-					// 已读样式
-					&.read {
-						.book-title,
-						.red-title {
-							color: #909399;
-							font-weight: normal;
-						}
-					
-						&::before {
-							background: #c0c4cc;
-						}
-					}
-				}
-			}
-		}
-	}
-}
-</style>

+ 0 - 246
ghsApp/src/admin/book/lsDetail.vue

@@ -1,246 +0,0 @@
-<template>
-	<view class="app-content">
-		<view class="content-wrapper">
-			<template v-for="(item, index) in bookList">
-				<!-- 主标题 -->
-				<block v-if="item.style == 'title'">
-					<view :key="index" class="page-title">{{item.value}}</view>
-				</block>
-
-				<!-- 信息文本 -->
-				<block v-if="item.style == 'info'">
-					<view :key="index" class="text-content">{{item.value}}</view>
-				</block>
-
-				<block v-if="item.style == 'blankLine'">
-					<view :key="index" class="blank-line-content">{{item.value}}</view>
-				</block>
-
-				<!-- 小标题 -->
-				<block v-if="item.style == 'smallTitle'">
-					<view :key="index" class="section-title">{{item.value}}</view>
-				</block>
-
-				<!-- 小标题 -->
-				<block v-if="item.style == 'miniTitle'">
-					<view :key="index" class="mini-title">{{item.value}}</view>
-				</block>
-
-				<!-- 视频 -->
-				<block v-if="item.style == 'video'">
-					<view :key="index" class="video-block">
-						<video 
-							:id="`myVideo${index}`" 
-							:src="item.value" 
-							show-mute-btn="true"
-							object-fit="contain"
-							class="video-content">
-						</video>
-					</view>
-				</block>
-
-				<!-- 图片 -->
-				<block v-if="item.style == 'image'">
-					<view :key="index" class="image-block">
-						<image 
-							:src="`${constant.imgUrl}${item.value}`" 
-							mode="widthFix"
-							@click="previewImage(`${constant.imgUrl}${item.value}`)"
-							class="image-content">
-						</image>
-					</view>
-				</block>
-
-				<!-- 按钮 -->
-				<block v-if="item.style == 'button'">
-					<view :key="index" class="button-block">
-						<button @click="goTo(item)" class="link-button">{{item.value}}</button>
-					</view>
-				</block>
-			</template>
-
-			<!-- 底部返回按钮 -->
-			<view class="back-block">
-				<button class="admin-button-com big blue" @click="goBack()">返回列表</button>
-			</view>
-		</view>
-	</view>
-</template>
-<script>
-import { getLsBookDetail} from "@/api/book";
-import { mapGetters } from "vuex"
-export default {
-	name: "book-what",
-	components: {
-	},
-	mixins: [],
-	data() {
-		return {
-			bookList:[],
-			pageTitle:''
-		};
-	},
-	onLoad() {
-		let that = this
-		getLsBookDetail({id:this.option.id}).then(res => {
-			that.bookList = res.data.list
-			that.bookList.forEach((item) => {
-				if(item.style == 'title'){
-					this.pageTitle = item.value
-					uni.setNavigationBarTitle({title: item.value})
-				}
-			})
-			
-		});
-	},
-  	onShareAppMessage(res) {
-		return {
-			title: this.pageTitle,
-			desc: "",
-			imageUrl: "",
-			path: "admin/book/detail?id="+this.option.id,
-		}
-	},
-	methods: {
-		init(){
-
-		},
-		goBack(){
-			// #ifdef MP-WEIXIN
-			uni.navigateBack()
-			// #endif
-			// #ifdef APP-PLUS
-			uni.navigateBack()
-			// #endif
-		},
-		goTo(item){
-			this.$util.pageTo({ url: item.page})
-		},
-		playVide(index){
-			this.videoContext = uni.createVideoContext('myVideo'+index,this)
-			this.videoContext.play()
-		},
-		previewImage(url) {
-			uni.previewImage({ urls: [url], current: url })
-		}
-	},
-};
-</script>
-<style lang="scss" scoped>
-.app-content {
-	min-height: 100vh;
-	background: #fff;
-	padding-bottom: 140upx;
-
-	.content-wrapper {
-		padding: 0 30upx;
-		
-		// 主标题
-		.page-title {
-			font-size: 44upx;
-			font-weight: bold;
-			color: #333;
-			padding: 40upx 0 20upx;
-			position: relative;
-			
-			&::after {
-				content: '';
-				display: block;
-				width: 60upx;
-				height: 6upx;
-				background: #3498db;
-				margin-top: 16upx;
-			}
-		}
-
-		// 文本内容
-		.text-content {
-			font-size: 32upx;
-			color: #666;
-			line-height: 1.8;
-			margin: 20upx 0 30upx;
-			text-align: justify;
-		}
-		.blank-line-content{
-			height: 20upx;
-			background: white;
-		}
-		// 小标题
-		.section-title {
-			font-size: 36upx;
-			font-weight: bold;
-			color: #333;
-			margin: 40upx 0 20upx;
-		}
-
-		.mini-title {
-			font-size: 32upx;
-			font-weight: bold;
-			color: #333;
-			margin: 20upx 0 30upx;
-		}
-
-		// 视频区块
-		.video-block {
-			margin: 20upx 0;
-			background: #000;
-			
-			.video-content {
-				width: 700upx;
-				height: 1100upx;
-				margin: 0 auto;
-				display: block;
-			}
-		}
-
-		// 图片区块
-		.image-block {
-			margin: 20upx 0;
-			
-			.image-content {
-				width: 100%;
-				display: block;
-				transition: opacity 0.3s;
-
-				&:active {
-					opacity: 0.8;
-				}
-			}
-		}
-
-		// 按钮区块
-		.button-block {
-			margin: 30upx 0;
-			text-align: center;
-
-			.link-button {
-				display: inline-block;
-				background: #3498db;
-				color: #fff;
-				font-size: 32upx;
-				padding: 20upx 40upx;
-				border-radius: 4upx;
-				border: none;
-				transition: background-color 0.3s;
-
-				&:active {
-					background: #2980b9;
-				}
-			}
-		}
-
-		// 返回按钮区块
-		.back-block {
-			position: fixed;
-			bottom: 0;
-			left: 0;
-			right: 0;
-			padding: 30upx;
-			background: rgba(255,255,255,0.98);
-			text-align: center;
-			border-top: 1upx solid #eee;
-			z-index: 99;
-		}
-	}
-}
-</style>

+ 9 - 39
ghsApp/src/admin/home/me.vue

@@ -112,24 +112,18 @@
               <text class="emoji-icon">🎓</text>
               <text class="emoji-icon">🎓</text>
               <text>学习中心</text>
               <text>学习中心</text>
             </view>
             </view>
-            <view class="function-grid three-cols">
+            <view class="function-grid">
               <view class="function-item" @click="getDnVideo()">
               <view class="function-item" @click="getDnVideo()">
                 <view class="function-icon city">
                 <view class="function-icon city">
                   <text class="emoji-icon">▶️</text>
                   <text class="emoji-icon">▶️</text>
                 </view>
                 </view>
-                <text class="function-name">斗南批发教程</text>
+                <text class="function-name">斗南批发教程</text>
               </view>
               </view>
               <view class="function-item" @click="getCityVideo()">
               <view class="function-item" @click="getCityVideo()">
                 <view class="function-icon market">
                 <view class="function-icon market">
                   <text class="emoji-icon">▶️</text>
                   <text class="emoji-icon">▶️</text>
                 </view>
                 </view>
-                <text class="function-name">城市批发教程</text>
-              </view>
-              <view class="function-item" @click="getHdVideo()">
-                <view class="function-icon retail">
-                  <text class="emoji-icon">▶️</text>
-                </view>
-                <text class="function-name">零售版教程</text>
+                <text class="function-name">城市端批发教程</text>
               </view>
               </view>
             </view>
             </view>
           </view>
           </view>
@@ -424,9 +418,6 @@ export default {
     goOldRenew(){
     goOldRenew(){
       this.$util.pageTo({ url: '/admin/shop/renewal'})
       this.$util.pageTo({ url: '/admin/shop/renewal'})
     },
     },
-    getHdVideo(){
-      this.$util.pageTo({ url: '/admin/book/ls' })
-    },
     getCityVideo(){
     getCityVideo(){
 			const that = this;
 			const that = this;
       that.$util.pageTo({ url: '/admin/book/index' })
       that.$util.pageTo({ url: '/admin/book/index' })
@@ -435,11 +426,6 @@ export default {
 			const that = this;
 			const that = this;
       that.$util.pageTo({ url: '/admin/book/jdIndex' })
       that.$util.pageTo({ url: '/admin/book/jdIndex' })
     },
     },
-    getRetailVideo(){
-			const that = this;
-      // 这里可以添加零售版视频的跳转逻辑
-      that.$util.pageTo({ url: '/admin/book/retailIndex' })
-    },
     goAdmin(){
     goAdmin(){
       this.$util.pageTo({ url: '/admin/staff/admin'})
       this.$util.pageTo({ url: '/admin/staff/admin'})
     },
     },
@@ -1131,12 +1117,6 @@ export default {
   .function-grid {
   .function-grid {
     display: flex;
     display: flex;
     flex-wrap: nowrap;
     flex-wrap: nowrap;
-    gap: 8upx;
-  }
-
-  .function-grid.three-cols .function-item {
-    width: calc(33.33% - 8upx);
-    flex-shrink: 0;
   }
   }
 
 
   .function-item {
   .function-item {
@@ -1152,6 +1132,11 @@ export default {
     min-height: 90upx;
     min-height: 90upx;
     flex: 1;
     flex: 1;
     min-width: 0;
     min-width: 0;
+    margin-left: 8upx;
+
+    &:first-child {
+      margin-left: 0;
+    }
   }
   }
 
 
   .function-icon {
   .function-icon {
@@ -1176,11 +1161,6 @@ export default {
     box-shadow: 0 2upx 8upx rgba(67, 233, 123, 0.25);
     box-shadow: 0 2upx 8upx rgba(67, 233, 123, 0.25);
   }
   }
 
 
-  .function-icon.retail {
-    background: linear-gradient(135deg, #fa709a 0%, #fee140 100%);
-    box-shadow: 0 2upx 8upx rgba(250, 112, 154, 0.25);
-  }
-
   .function-icon .emoji-icon {
   .function-icon .emoji-icon {
     font-size: 20upx;
     font-size: 20upx;
     filter: drop-shadow(0 1upx 2upx rgba(255, 255, 255, 0.3));
     filter: drop-shadow(0 1upx 2upx rgba(255, 255, 255, 0.3));
@@ -1200,18 +1180,8 @@ export default {
     max-width: 100%;
     max-width: 100%;
   }
   }
 
 
-  /* 响应式优化 */
-  @media (max-width: 600upx) {
-    .function-grid.three-cols .function-item {
-      width: calc(50% - 6upx);
-    }
-  }
-  
+  /* 窄屏时教程入口改成左右排布,避免文字被挤扁 */
   @media (max-width: 400upx) {
   @media (max-width: 400upx) {
-    .function-grid.three-cols .function-item {
-      width: 100%;
-    }
-    
     .function-item {
     .function-item {
       flex-direction: row;
       flex-direction: row;
       justify-content: flex-start;
       justify-content: flex-start;

+ 0 - 8
ghsApp/src/api/book/index.js

@@ -90,18 +90,10 @@ export const getBookList = data => {
 	return https.get('/book/list', data)
 	return https.get('/book/list', data)
 }
 }
 
 
-export const getLsList = data => {
-	return https.get('/book/ls-list', data)
-}
-
 export const getBookDetail = data => {
 export const getBookDetail = data => {
 	return https.get('/book/detail', data)
 	return https.get('/book/detail', data)
 }
 }
 
 
-export const getLsBookDetail = data => {
-	return https.get('/book/ls-detail', data)
-}
-
 export const closeBook = data => {
 export const closeBook = data => {
 	return https.get('/book/close-book', data)
 	return https.get('/book/close-book', data)
 }
 }

+ 0 - 2
ghsApp/src/pages.json

@@ -550,10 +550,8 @@
 			"root": "admin/book",
 			"root": "admin/book",
 			"pages": [
 			"pages": [
 				{"path": "index","style": {"navigationBarTitleText": "城市批发教程"}},
 				{"path": "index","style": {"navigationBarTitleText": "城市批发教程"}},
-				{"path": "ls","style": {"navigationBarTitleText": "零售版教程"}},
 				{"path": "jdIndex","style": {"navigationBarTitleText": "斗南批发教程"}},
 				{"path": "jdIndex","style": {"navigationBarTitleText": "斗南批发教程"}},
 				{"path": "detail","style": {"navigationBarTitleText": ""}},
 				{"path": "detail","style": {"navigationBarTitleText": ""}},
-				{"path": "lsDetail","style": {"navigationBarTitleText": ""}},
 				{"path": "itemCustom","style": {"navigationBarTitleText": "明细","enablePullDownRefresh": true}},
 				{"path": "itemCustom","style": {"navigationBarTitleText": "明细","enablePullDownRefresh": true}},
 				{"path": "itemCustomDetail","style": {"navigationBarTitleText": "供货信息"}},
 				{"path": "itemCustomDetail","style": {"navigationBarTitleText": "供货信息"}},
 				{"path": "custom","style": {"navigationBarTitleText": "预订客户","enablePullDownRefresh": true}},
 				{"path": "custom","style": {"navigationBarTitleText": "预订客户","enablePullDownRefresh": true}},

+ 1 - 1
hdApp/src/admin/book/index.vue

@@ -38,7 +38,7 @@ export default {
 		return {
 		return {
 			title: '花掌柜教学视频',
 			title: '花掌柜教学视频',
 			desc: "视频教学,带您快速上手",
 			desc: "视频教学,带您快速上手",
-			imageUrl: `${this.$constant.imgUrl}/logo4.png`,
+			imageUrl: `${this.$constant.imgUrl}/logo7.png`,
 			path: "admin/book/index",
 			path: "admin/book/index",
 		}
 		}
 	},
 	},