guhongwei 2 년 전
부모
커밋
ee50d079f6
44개의 변경된 파일1737개의 추가작업 그리고 65개의 파일을 삭제
  1. 14 1
      common/config.js
  2. 1 1
      pages/index/index.vue
  3. 4 0
      pagesHome/account/index.vue
  4. 11 4
      pagesHome/home/index.vue
  5. 20 8
      pagesHome/hot/index.vue
  6. 14 1
      pagesVideo/more/index.vue
  7. 7 1
      pagesVideo/search/index.vue
  8. 244 4
      pagesVideo/video/index.vue
  9. 9 0
      uni_modules/uni-segmented-control/changelog.md
  10. 145 0
      uni_modules/uni-segmented-control/components/uni-segmented-control/uni-segmented-control.vue
  11. 87 0
      uni_modules/uni-segmented-control/package.json
  12. 13 0
      uni_modules/uni-segmented-control/readme.md
  13. 1 1
      unpackage/dist/dev/.sourcemap/mp-weixin/common/vendor.js.map
  14. 1 1
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/index/index.js.map
  15. 1 1
      unpackage/dist/dev/.sourcemap/mp-weixin/pagesHome/account/index.js.map
  16. 1 1
      unpackage/dist/dev/.sourcemap/mp-weixin/pagesHome/home/index.js.map
  17. 1 1
      unpackage/dist/dev/.sourcemap/mp-weixin/pagesHome/hot/index.js.map
  18. 1 1
      unpackage/dist/dev/.sourcemap/mp-weixin/pagesVideo/more/index.js.map
  19. 1 1
      unpackage/dist/dev/.sourcemap/mp-weixin/pagesVideo/search/index.js.map
  20. 1 1
      unpackage/dist/dev/.sourcemap/mp-weixin/pagesVideo/video/index.js.map
  21. 1 0
      unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uni-segmented-control/components/uni-segmented-control/uni-segmented-control.js.map
  22. 2 2
      unpackage/dist/dev/app-plus/app-service.js
  23. 339 5
      unpackage/dist/dev/app-plus/app-view.js
  24. 43 3
      unpackage/dist/dev/app-plus/pagesHome/app-sub-service.js
  25. 281 7
      unpackage/dist/dev/app-plus/pagesVideo/app-sub-service.js
  26. 13 0
      unpackage/dist/dev/mp-weixin/common/vendor.js
  27. 1 1
      unpackage/dist/dev/mp-weixin/pages/index/index.js
  28. 4 0
      unpackage/dist/dev/mp-weixin/pagesHome/account/index.js
  29. 6 0
      unpackage/dist/dev/mp-weixin/pagesHome/home/index.js
  30. 1 1
      unpackage/dist/dev/mp-weixin/pagesHome/home/index.wxml
  31. 6 0
      unpackage/dist/dev/mp-weixin/pagesHome/hot/index.js
  32. 1 1
      unpackage/dist/dev/mp-weixin/pagesHome/hot/index.wxml
  33. 23 8
      unpackage/dist/dev/mp-weixin/pagesVideo/more/index.js
  34. 1 1
      unpackage/dist/dev/mp-weixin/pagesVideo/more/index.wxml
  35. 6 0
      unpackage/dist/dev/mp-weixin/pagesVideo/search/index.js
  36. 1 1
      unpackage/dist/dev/mp-weixin/pagesVideo/search/index.wxml
  37. 271 5
      unpackage/dist/dev/mp-weixin/pagesVideo/video/index.js
  38. 3 1
      unpackage/dist/dev/mp-weixin/pagesVideo/video/index.json
  39. 1 1
      unpackage/dist/dev/mp-weixin/pagesVideo/video/index.wxml
  40. 101 0
      unpackage/dist/dev/mp-weixin/pagesVideo/video/index.wxss
  41. 1 0
      unpackage/dist/dev/mp-weixin/uni_modules/uni-segmented-control/components/uni-segmented-control/uni-segmented-control.js
  42. 4 0
      unpackage/dist/dev/mp-weixin/uni_modules/uni-segmented-control/components/uni-segmented-control/uni-segmented-control.json
  43. 1 0
      unpackage/dist/dev/mp-weixin/uni_modules/uni-segmented-control/components/uni-segmented-control/uni-segmented-control.wxml
  44. 49 0
      unpackage/dist/dev/mp-weixin/uni_modules/uni-segmented-control/components/uni-segmented-control/uni-segmented-control.wxss

+ 14 - 1
common/config.js

@@ -17,5 +17,18 @@ export default {
 			dict_label: '电影节目',
 			dict_value: '1',
 		},
-	]
+	],
+	// video:标签说明
+	// src--视频
+	// poster--封面
+	// title--全屏顶部标题
+	// controls--默认播放控件true
+	// show-fullscreen-btn--是否显示全屏按钮true
+	// show-play-btn-是否显示底部控制栏播放按钮true
+	// show-center-play-btn--是否显示视频中间按钮
+	// enable-progress-gesture--是否开启控制进度的手势true
+	// show-mute-btn--是否开启静音false
+	// enable-play-gesture--是否开启播放手势,双击播放/暂停false
+	// vslide-gesture(page-gesture)--非全屏开启亮度/音量false
+	// vslide-gesture-in-fullscreen--全屏开启亮度/音量true
 };

+ 1 - 1
pages/index/index.vue

@@ -37,7 +37,7 @@
 		methods: {
 			async search() {
 				const that = this;
-				let url = '/pagesHome/home/index';
+				let url = '/pagesVideo/video/index';
 				let res = await that.$api('appbasic', 'GET', {});
 				if (res.errcode == '0') {
 					if (res.data &&res.data._id ) {

+ 4 - 0
pagesHome/account/index.vue

@@ -150,6 +150,10 @@
 						},
 						fail: function(err) {
 							console.log("fail:" + JSON.stringify(err));
+							uni.showToast({
+								title: JSON.stringify(err),
+								icon: 'none'
+							})
 						}
 					});
 				} else if (system.uniPlatform == 'mp-weixin') {

+ 11 - 4
pagesHome/home/index.vue

@@ -46,7 +46,8 @@
 								</view>
 							</view>
 							<view class="info">
-								<view class="list" v-for="(item,index) in nvideoList" :key="index">
+								<view class="list" v-for="(item,index) in nvideoList" :key="index"
+									@tap="videoView(item)">
 									<image class="image"
 										:src="item.img_url&&item.img_url.length>0?item.img_url[0].url:''" mode="">
 									</image>
@@ -81,7 +82,7 @@
 								</view>
 							</view>
 							<view class="info">
-								<view class="list" v-for="(item,index) in hotList" :key="index">
+								<view class="list" v-for="(item,index) in hotList" :key="index" @tap="videoView(item)">
 									<image class="image"
 										:src="item.img_url&&item.img_url.length>0?item.img_url[0].url:''" mode="">
 									</image>
@@ -116,7 +117,7 @@
 								</view>
 							</view>
 							<view class="info">
-								<view class="list" v-for="(item,index) in oneList" :key="index">
+								<view class="list" v-for="(item,index) in oneList" :key="index" @tap="videoView(item)">
 									<image class="image"
 										:src="item.img_url&&item.img_url.length>0?item.img_url[0].url:''" mode="">
 									</image>
@@ -152,7 +153,7 @@
 								</view>
 							</view>
 							<view class="info">
-								<view class="list" v-for="(item,index) in twoList" :key="index">
+								<view class="list" v-for="(item,index) in twoList" :key="index" @tap="videoView(item)">
 									<image class="image"
 										:src="item.img_url&&item.img_url.length>0?item.img_url[0].url:''" mode="">
 									</image>
@@ -278,6 +279,12 @@
 					url: `/${route}?${query}`
 				})
 			},
+			// 视频查看
+			videoView(e) {
+				uni.navigateTo({
+					url: `/pagesVideo/video/index?id=${e._id}`
+				})
+			},
 			// 跳转页面
 			toPath(e) {
 				let url = `/${e.route}`;

+ 20 - 8
pagesHome/hot/index.vue

@@ -47,7 +47,7 @@
 								</view>
 							</view>
 							<view class="info">
-								<view class="list" v-for="(item,index) in oneList" :key="index">
+								<view class="list" v-for="(item,index) in oneList" :key="index" @tap="videoView(item)">
 									<image class="image"
 										:src="item.img_url&&item.img_url.length>0?item.img_url[0].url:''" mode="">
 									</image>
@@ -84,7 +84,7 @@
 								</view>
 							</view>
 							<view class="info">
-								<view class="list" v-for="(item,index) in twoList" :key="index">
+								<view class="list" v-for="(item,index) in twoList" :key="index" @tap="videoView(item)">
 									<image class="image"
 										:src="item.img_url&&item.img_url.length>0?item.img_url[0].url:''" mode="">
 									</image>
@@ -113,12 +113,14 @@
 									<span>{{thr_title}}</span>
 								</view>
 								<view class="top_2">
-									<span @tap="toCommon('pagesVideo/more/index','head_actor=63f7177f21efa85eb49b8ced')">更多<uni-icons color="var(--rgbfff)" size="12" type="forward"></uni-icons>
+									<span
+										@tap="toCommon('pagesVideo/more/index','head_actor=63f7177f21efa85eb49b8ced')">更多
+										<uni-icons color="var(--rgbfff)" size="12" type="forward"></uni-icons>
 									</span>
 								</view>
 							</view>
 							<view class="info">
-								<view class="list" v-for="(item,index) in thrList" :key="index">
+								<view class="list" v-for="(item,index) in thrList" :key="index" @tap="videoView(item)">
 									<image class="image"
 										:src="item.img_url&&item.img_url.length>0?item.img_url[0].url:''" mode="">
 									</image>
@@ -137,7 +139,8 @@
 								</view>
 							</view>
 							<view class="btn">
-								<button @tap="toCommon('pagesVideo/more/index','head_actor=63f7177f21efa85eb49b8ced')">查看更多</button>
+								<button
+									@tap="toCommon('pagesVideo/more/index','head_actor=63f7177f21efa85eb49b8ced')">查看更多</button>
 							</view>
 						</view>
 						<view class="two_0 two_6">
@@ -146,12 +149,14 @@
 									<span>{{four_title}}</span>
 								</view>
 								<view class="top_2">
-									<span @tap="toCommon('pagesVideo/more/index','head_actor=63f729ff3271105df0a88859')">更多<uni-icons color="var(--rgbfff)" size="12" type="forward"></uni-icons>
+									<span
+										@tap="toCommon('pagesVideo/more/index','head_actor=63f729ff3271105df0a88859')">更多
+										<uni-icons color="var(--rgbfff)" size="12" type="forward"></uni-icons>
 									</span>
 								</view>
 							</view>
 							<view class="info">
-								<view class="list" v-for="(item,index) in fourList" :key="index">
+								<view class="list" v-for="(item,index) in fourList" :key="index" @tap="videoView(item)">
 									<image class="image"
 										:src="item.img_url&&item.img_url.length>0?item.img_url[0].url:''" mode="">
 									</image>
@@ -170,7 +175,8 @@
 								</view>
 							</view>
 							<view class="btn">
-								<button @tap="toCommon('pagesVideo/more/index','head_actor=63f729ff3271105df0a88859')">查看更多</button>
+								<button
+									@tap="toCommon('pagesVideo/more/index','head_actor=63f729ff3271105df0a88859')">查看更多</button>
 							</view>
 						</view>
 					</view>
@@ -291,6 +297,12 @@
 					url: `/${route}?${query}`
 				})
 			},
+			// 视频查看
+			videoView(e) {
+				uni.navigateTo({
+					url: `/pagesVideo/video/index?id=${e._id}`
+				})
+			},
 			// 跳转页面
 			toPath(e) {
 				let url = `/${e.route}`;

+ 14 - 1
pagesVideo/more/index.vue

@@ -7,7 +7,7 @@
 			<scroll-view scroll-y="true" class="scroll-view" @scrolltolower="toPage" @scroll="toScroll">
 				<view class="list-scroll-view">
 					<view class="two_1">
-						<view class="list" v-for="(item,index) in list" :key="index">
+						<view class="list" v-for="(item,index) in list" :key="index" @tap="videoView(item)">
 							<image class="image" :src="item.img_url&&item.img_url.length>0?item.img_url[0].url:''"
 								mode="">
 							</image>
@@ -97,6 +97,13 @@
 						res = await that.$api(`scenedata/${that.searchInfo.year}`)
 					} else if (that.searchInfo.head_actor) {
 						res = await that.$api(`scenedata/${that.searchInfo.head_actor}`)
+					} else {
+						res = {
+							errcode: '0',
+							data: {
+								title: '最新'
+							}
+						}
 					}
 					if (res.errcode == '0') {
 						uni.setNavigationBarTitle({
@@ -138,6 +145,12 @@
 				let num = Math.sign(up - e.detail.scrollTop);
 				if (num == 1) that.$set(that, `is_bottom`, false);
 			},
+			// 视频查看
+			videoView(e) {
+				uni.navigateTo({
+					url: `/pagesVideo/video/index?id=${e._id}`
+				})
+			},
 			// 清空列表
 			clearPage() {
 				const that = this;

+ 7 - 1
pagesVideo/search/index.vue

@@ -12,7 +12,7 @@
 			<scroll-view scroll-y="true" class="scroll-view" @scrolltolower="toPage" @scroll="toScroll">
 				<view class="list-scroll-view">
 					<view class="two_1">
-						<view class="list" v-for="(item,index) in list" :key="index">
+						<view class="list" v-for="(item,index) in list" :key="index" @tap="videoView(item)">
 							<image class="image" :src="item.img_url&&item.img_url.length>0?item.img_url[0].url:''"
 								mode="">
 							</image>
@@ -230,6 +230,12 @@
 					mode: 'right'
 				})
 			},
+			// 视频查看
+			videoView(e) {
+				uni.navigateTo({
+					url: `/pagesVideo/video/index?id=${e._id}`
+				})
+			},
 			// 查询其他信息
 			async searchOther() {
 				const that = this;

+ 244 - 4
pagesVideo/video/index.vue

@@ -1,6 +1,61 @@
 <template>
 	<view class="content">
-		更多
+		<view class="one">
+			<video :src="info.vUrl" :poster="info.iUrl" :title="info.title" controls :show-center-play-btn="false"
+				:show-mute-btn="true" :enable-play-gesture="true" :vslide-gesture-in-fullscreen="true"></video>
+		</view>
+		<view class="two">
+			<view class="two_1">
+				<view :class="['list',active==index?'active':'']" v-for="(item,index) in tabList" :key="index"
+					@tap="tabChange(index)">
+					<span>{{item.title}}</span>
+				</view>
+			</view>
+			<view class="two_2">
+				<view class="tab_1" v-if="active===0">
+					<view class="title">
+						<span>标题:</span>
+						<span>{{info.title}}</span>
+					</view>
+					<view class="actor">
+						待写
+					</view>
+					<view class="brief">
+						<span>简介:</span>
+						<span>{{info.brief}}</span>
+					</view>
+					<view class="other">
+						<view class="other_1">
+							相关视频
+						</view>
+						<view class="other_2">
+							<view class="firmvideoList" v-for="(item,index) in firmvideoList" :key="index"
+								@tap="videoView(item)">
+								<image class="image" :src="item.img_url&&item.img_url.length>0?item.img_url[0].url:''"
+									mode="">
+								</image>
+								<view class="name textOver">
+									{{item.title}}
+								</view>
+								<view class="other">
+									<view class="other_1">
+										<uni-icons type="eye" color="var(--rgbfff)" size="12"></uni-icons>
+										{{item.view_num}}
+									</view>
+									<view class="other_2">
+										{{item.time_num}}
+									</view>
+								</view>
+							</view>
+						</view>
+
+					</view>
+				</view>
+				<view class="tab_2" v-else-if="active===1">
+					第二部分
+				</view>
+			</view>
+		</view>
 	</view>
 </template>
 
@@ -8,15 +63,200 @@
 	export default {
 		data() {
 			return {
-				
+				id: '',
+				info: {},
+				// 相关视频
+				firmvideoList: [],
+				tabList: [ // 选项卡
+					{
+						title: '详情'
+					},
+					{
+						title: '评论'
+					}
+				],
+				active: 0,
+
 			}
 		},
+		onLoad(options) {
+			const that = this;
+			that.$set(that, `id`, options.id || '63fd915b134900004000482c')
+			that.search()
+		},
 		methods: {
-			
+			async search() {
+				const that = this;
+				let res;
+				res = await that.$api(`videos/${that.id}`, 'GET', {})
+				if (res.errcode == '0') {
+					// 赋值名字
+					let data = res.data;
+					uni.setNavigationBarTitle({
+						title: data.title
+					});
+					if (data.video_url && data.video_url.length > 0) data.vUrl = data.video_url[0].url;
+					if (data.img_url && data.img_url.length > 0) data.iUrl = data.img_url[0].url;
+					if (data && data.head_actor) data.head_actor_name = await that.searchNmae(data.head_actor)
+					that.$set(that, `info`, data);
+					// 查询相关视频,相同厂商
+					that.searchfirm(data.firm_id)
+				}
+			},
+			// 其他信息
+			async searchNmae(e) {
+				const that = this;
+				let res;
+				res = await that.$api(`scenedata/${e}`, 'GET', {});
+				if (res.errcode == '0') {
+					if (res.data && res.data.title) return res.data.title
+					else return '暂无'
+				}
+			},
+			async searchfirm(firm_id) {
+				const that = this;
+				let res;
+				res = await that.$api('videos', 'GET', {
+					firm_id: firm_id,
+					skip: 0,
+					limit: 6
+				})
+				if (res.errcode == '0') {
+					that.$set(that, `firmvideoList`, res.data)
+				}
+			},
+			// 视频查看
+			videoView(e) {
+				uni.navigateTo({
+					url: `/pagesVideo/video/index?id=${e._id}`
+				})
+			},
+			tabChange(e) {
+				const that = this;
+				that.$set(that, `active`, e)
+			}
 		}
 	}
 </script>
 
-<style>
+<style lang="scss">
+	.content {
+		background-color: var(--rgb111);
+		overflow: hidden;
+
+		.one {
+			padding: 0 2vw;
+			margin: 0 0 2vw 0;
+
+			video {
+				width: 100%;
+				height: 210px;
+				overflow: hidden;
+				border: 1px solid var(--rgbf1f);
+			}
+		}
+
+		.two {
+			position: relative;
+			flex-grow: 1;
+			padding: 0 2vw;
+
+			.two_1 {
+				display: flex;
+				justify-content: space-around;
+				margin: 0 0 2vw 0;
+
+				.list {
+					span {
+						background-color: var(--rgbfff);
+						color: var(--rgb000);
+						padding: 1vw 4vw;
+						font-size: 14px;
+						border-radius: 5px;
+					}
+				}
+
+				.active {
+					span {
+						background-color: var(--rgbfa4);
+						color: var(--rgbfff);
+					}
+				}
+			}
+
+			.two_2 {
+				.tab_1 {
+					display: flex;
+					flex-direction: column;
+					width: 96vw;
+					height: 58vh;
+					overflow-y: auto;
 
+					.title {
+						font-size: 15px;
+						color: var(--rgbfff);
+						margin: 0 0 2vw 0;
+					}
+
+					.actor {
+						margin: 0 0 2vw 0;
+					}
+
+					.brief {
+						font-size: 15px;
+						color: var(--rgbfff);
+						margin: 0 0 2vw 0;
+					}
+
+					.other {
+						margin: 0 0 2vw 0;
+
+						.other_1 {
+							font-size: 15px;
+							color: var(--rgbfff);
+							margin: 0 0 2vw 0;
+						}
+
+						.other_2 {
+							display: flex;
+							flex-wrap: wrap;
+
+							.firmvideoList {
+								width: 48%;
+								margin: 0 10px 5px 0;
+
+								.image {
+									width: 100%;
+									height: 100px;
+									overflow: hidden;
+									border-radius: 5px;
+									box-shadow: 0 0 5px var(--rgbf1f);
+									margin: 0 0 5px 0;
+								}
+
+								.name {
+									font-size: 14px;
+									color: var(--rgbfff);
+									margin: 0 0 5px 0;
+								}
+
+								.other {
+									display: flex;
+									color: var(--rgbfff);
+									font-size: 12px;
+									justify-content: space-between;
+								}
+							}
+
+							.firmvideoList:nth-child(2n) {
+								margin: 0 0 5px 0;
+							}
+						}
+					}
+				}
+
+				.tab_2 {}
+			}
+		}
+	}
 </style>

+ 9 - 0
uni_modules/uni-segmented-control/changelog.md

@@ -0,0 +1,9 @@
+## 1.2.0(2021-11-19)
+- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource)
+- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-segmented-control](https://uniapp.dcloud.io/component/uniui/uni-segmented-control)
+## 1.1.0(2021-07-30)
+- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834)
+## 1.0.5(2021-05-12)
+- 新增 项目示例地址
+## 1.0.4(2021-02-05)
+- 调整为uni_modules目录规范

+ 145 - 0
uni_modules/uni-segmented-control/components/uni-segmented-control/uni-segmented-control.vue

@@ -0,0 +1,145 @@
+<template>
+	<view :class="[styleType === 'text'?'segmented-control--text' : 'segmented-control--button' ]"
+		:style="{ borderColor: styleType === 'text' ? '' : activeColor }" class="segmented-control">
+		<view v-for="(item, index) in values" :class="[ styleType === 'text' ? '': 'segmented-control__item--button',
+		index === currentIndex&&styleType === 'button' ? 'segmented-control__item--button--active': '',
+		index === 0&&styleType === 'button' ? 'segmented-control__item--button--first': '',
+			index === values.length - 1&&styleType === 'button' ? 'segmented-control__item--button--last': '' ]" :key="index"
+			:style="{ backgroundColor: index === currentIndex && styleType === 'button' ? activeColor : '',borderColor: index === currentIndex&&styleType === 'text'||styleType === 'button'?activeColor:'transparent' }"
+			class="segmented-control__item" @click="_onClick(index)">
+			<view>
+				<text :style="{color:
+				    index === currentIndex
+				      ? styleType === 'text'
+				        ? activeColor
+				        : '#fff'
+				      : styleType === 'text'
+				        ? '#000'
+				        : activeColor}" class="segmented-control__text" :class="styleType === 'text' && index === currentIndex ? 'segmented-control__item--text': ''">{{ item }}</text>
+			</view>
+
+		</view>
+	</view>
+</template>
+
+<script>
+	/**
+	 * SegmentedControl 分段器
+	 * @description 用作不同视图的显示
+	 * @tutorial https://ext.dcloud.net.cn/plugin?id=54
+	 * @property {Number} current 当前选中的tab索引值,从0计数
+	 * @property {String} styleType = [button|text] 分段器样式类型
+	 * 	@value button 按钮类型
+	 * 	@value text 文字类型
+	 * @property {String} activeColor 选中的标签背景色与边框颜色
+	 * @property {Array} values 选项数组
+	 * @event {Function} clickItem 组件触发点击事件时触发,e={currentIndex}
+	 */
+
+	export default {
+		name: 'UniSegmentedControl',
+		emits: ['clickItem'],
+		props: {
+			current: {
+				type: Number,
+				default: 0
+			},
+			values: {
+				type: Array,
+				default () {
+					return []
+				}
+			},
+			activeColor: {
+				type: String,
+				default: '#2979FF'
+			},
+			styleType: {
+				type: String,
+				default: 'button'
+			}
+		},
+		data() {
+			return {
+				currentIndex: 0
+			}
+		},
+		watch: {
+			current(val) {
+				if (val !== this.currentIndex) {
+					this.currentIndex = val
+				}
+			}
+		},
+		created() {
+			this.currentIndex = this.current
+		},
+		methods: {
+			_onClick(index) {
+				if (this.currentIndex !== index) {
+					this.currentIndex = index
+					this.$emit('clickItem', {
+						currentIndex: index
+					})
+				}
+			}
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	.segmented-control {
+		/* #ifndef APP-NVUE */
+		display: flex;
+		box-sizing: border-box;
+		/* #endif */
+		flex-direction: row;
+		height: 36px;
+		overflow: hidden;
+		/* #ifdef H5 */
+		cursor: pointer;
+		/* #endif */
+	}
+
+	.segmented-control__item {
+		/* #ifndef APP-NVUE */
+		display: inline-flex;
+		box-sizing: border-box;
+		/* #endif */
+		position: relative;
+		flex: 1;
+		justify-content: center;
+		align-items: center;
+	}
+
+	.segmented-control__item--button {
+		border-style: solid;
+		border-top-width: 1px;
+		border-bottom-width: 1px;
+		border-right-width: 1px;
+		border-left-width: 0;
+	}
+
+	.segmented-control__item--button--first {
+		border-left-width: 1px;
+		border-top-left-radius: 5px;
+		border-bottom-left-radius: 5px;
+	}
+
+	.segmented-control__item--button--last {
+		border-top-right-radius: 5px;
+		border-bottom-right-radius: 5px;
+	}
+
+	.segmented-control__item--text {
+		border-bottom-style: solid;
+		border-bottom-width: 2px;
+		padding: 6px 0;
+	}
+
+	.segmented-control__text {
+		font-size: 14px;
+		line-height: 20px;
+		text-align: center;
+	}
+</style>

+ 87 - 0
uni_modules/uni-segmented-control/package.json

@@ -0,0 +1,87 @@
+{
+  "id": "uni-segmented-control",
+  "displayName": "uni-segmented-control 分段器",
+  "version": "1.2.0",
+  "description": "分段器由至少 2 个分段控件组成,用作不同视图的显示",
+  "keywords": [
+    "uni-ui",
+    "uniui",
+    "分段器",
+    "segement",
+    "顶部选择"
+],
+  "repository": "https://github.com/dcloudio/uni-ui",
+  "engines": {
+    "HBuilderX": ""
+  },
+  "directories": {
+    "example": "../../temps/example_temps"
+  },
+  "dcloudext": {
+    "category": [
+      "前端组件",
+      "通用组件"
+    ],
+    "sale": {
+      "regular": {
+        "price": "0.00"
+      },
+      "sourcecode": {
+        "price": "0.00"
+      }
+    },
+    "contact": {
+      "qq": ""
+    },
+    "declaration": {
+      "ads": "无",
+      "data": "无",
+      "permissions": "无"
+    },
+    "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui"
+  },
+  "uni_modules": {
+    "dependencies": ["uni-scss"],
+    "encrypt": [],
+    "platforms": {
+      "cloud": {
+        "tcb": "y",
+        "aliyun": "y"
+      },
+      "client": {
+        "App": {
+          "app-vue": "y",
+          "app-nvue": "y"
+        },
+        "H5-mobile": {
+          "Safari": "y",
+          "Android Browser": "y",
+          "微信浏览器(Android)": "y",
+          "QQ浏览器(Android)": "y"
+        },
+        "H5-pc": {
+          "Chrome": "y",
+          "IE": "y",
+          "Edge": "y",
+          "Firefox": "y",
+          "Safari": "y"
+        },
+        "小程序": {
+          "微信": "y",
+          "阿里": "y",
+          "百度": "y",
+          "字节跳动": "y",
+          "QQ": "y"
+        },
+        "快应用": {
+          "华为": "u",
+          "联盟": "u"
+        },
+        "Vue": {
+            "vue2": "y",
+            "vue3": "y"
+        }
+      }
+    }
+  }
+}

+ 13 - 0
uni_modules/uni-segmented-control/readme.md

@@ -0,0 +1,13 @@
+
+
+## SegmentedControl 分段器
+> **组件名:uni-segmented-control**
+> 代码块: `uSegmentedControl`
+
+
+用作不同视图的显示
+
+### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-segmented-control)
+#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 
+
+

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 1 - 1
unpackage/dist/dev/.sourcemap/mp-weixin/common/vendor.js.map


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 1 - 1
unpackage/dist/dev/.sourcemap/mp-weixin/pages/index/index.js.map


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 1 - 1
unpackage/dist/dev/.sourcemap/mp-weixin/pagesHome/account/index.js.map


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 1 - 1
unpackage/dist/dev/.sourcemap/mp-weixin/pagesHome/home/index.js.map


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 1 - 1
unpackage/dist/dev/.sourcemap/mp-weixin/pagesHome/hot/index.js.map


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 1 - 1
unpackage/dist/dev/.sourcemap/mp-weixin/pagesVideo/more/index.js.map


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 1 - 1
unpackage/dist/dev/.sourcemap/mp-weixin/pagesVideo/search/index.js.map


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 1 - 1
unpackage/dist/dev/.sourcemap/mp-weixin/pagesVideo/video/index.js.map


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 1 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uni-segmented-control/components/uni-segmented-control/uni-segmented-control.js.map


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 2 - 2
unpackage/dist/dev/app-plus/app-service.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 339 - 5
unpackage/dist/dev/app-plus/app-view.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 43 - 3
unpackage/dist/dev/app-plus/pagesHome/app-sub-service.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 281 - 7
unpackage/dist/dev/app-plus/pagesVideo/app-sub-service.js


+ 13 - 0
unpackage/dist/dev/mp-weixin/common/vendor.js

@@ -18830,6 +18830,19 @@ var _default = {
     dict_label: '电影节目',
     dict_value: '1'
   }]
+  // video:标签说明
+  // src--视频
+  // poster--封面
+  // title--全屏顶部标题
+  // controls--默认播放控件true
+  // show-fullscreen-btn--是否显示全屏按钮true
+  // show-play-btn-是否显示底部控制栏播放按钮true
+  // show-center-play-btn--是否显示视频中间按钮
+  // enable-progress-gesture--是否开启控制进度的手势true
+  // show-mute-btn--是否开启静音false
+  // enable-play-gesture--是否开启播放手势,双击播放/暂停false
+  // vslide-gesture(page-gesture)--非全屏开启亮度/音量false
+  // vslide-gesture-in-fullscreen--全屏开启亮度/音量true
 };
 exports.default = _default;
 /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/uni-mp-weixin/dist/index.js */ 2)["default"]))

+ 1 - 1
unpackage/dist/dev/mp-weixin/pages/index/index.js

@@ -198,7 +198,7 @@ var _default = {
             switch (_context.prev = _context.next) {
               case 0:
                 that = _this;
-                url = '/pagesHome/home/index';
+                url = '/pagesVideo/video/index';
                 _context.next = 4;
                 return that.$api('appbasic', 'GET', {});
               case 4:

+ 4 - 0
unpackage/dist/dev/mp-weixin/pagesHome/account/index.js

@@ -321,6 +321,10 @@ var _default = {
           },
           fail: function fail(err) {
             console.log("fail:" + JSON.stringify(err));
+            uni.showToast({
+              title: JSON.stringify(err),
+              icon: 'none'
+            });
           }
         });
       } else if (system.uniPlatform == 'mp-weixin') {

+ 6 - 0
unpackage/dist/dev/mp-weixin/pagesHome/home/index.js

@@ -367,6 +367,12 @@ var _default = {
         url: "/".concat(route, "?").concat(query)
       });
     },
+    // 视频查看
+    videoView: function videoView(e) {
+      uni.navigateTo({
+        url: "/pagesVideo/video/index?id=".concat(e._id)
+      });
+    },
     // 跳转页面
     toPath: function toPath(e) {
       var url = "/".concat(e.route);

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 1 - 1
unpackage/dist/dev/mp-weixin/pagesHome/home/index.wxml


+ 6 - 0
unpackage/dist/dev/mp-weixin/pagesHome/hot/index.js

@@ -392,6 +392,12 @@ var _default = {
         url: "/".concat(route, "?").concat(query)
       });
     },
+    // 视频查看
+    videoView: function videoView(e) {
+      uni.navigateTo({
+        url: "/pagesVideo/video/index?id=".concat(e._id)
+      });
+    },
     // 跳转页面
     toPath: function toPath(e) {
       var url = "/".concat(e.route);

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 1 - 1
unpackage/dist/dev/mp-weixin/pagesHome/hot/index.wxml


+ 23 - 8
unpackage/dist/dev/mp-weixin/pagesVideo/more/index.js

@@ -317,7 +317,7 @@ var _default = {
                 uni.setNavigationBarTitle({
                   title: '热播'
                 });
-                _context3.next = 34;
+                _context3.next = 37;
                 break;
               case 5:
                 if (!that.searchInfo.firm_id) {
@@ -328,7 +328,7 @@ var _default = {
                 return that.$api("scenedata/".concat(that.searchInfo.firm_id));
               case 8:
                 res = _context3.sent;
-                _context3.next = 33;
+                _context3.next = 36;
                 break;
               case 11:
                 if (!that.searchInfo.type_id) {
@@ -339,7 +339,7 @@ var _default = {
                 return that.$api("scenedata/".concat(that.searchInfo.type_id));
               case 14:
                 res = _context3.sent;
-                _context3.next = 33;
+                _context3.next = 36;
                 break;
               case 17:
                 if (!that.searchInfo.place_id) {
@@ -350,7 +350,7 @@ var _default = {
                 return that.$api("scenedata/".concat(that.searchInfo.place_id));
               case 20:
                 res = _context3.sent;
-                _context3.next = 33;
+                _context3.next = 36;
                 break;
               case 23:
                 if (!that.searchInfo.year) {
@@ -361,24 +361,33 @@ var _default = {
                 return that.$api("scenedata/".concat(that.searchInfo.year));
               case 26:
                 res = _context3.sent;
-                _context3.next = 33;
+                _context3.next = 36;
                 break;
               case 29:
                 if (!that.searchInfo.head_actor) {
-                  _context3.next = 33;
+                  _context3.next = 35;
                   break;
                 }
                 _context3.next = 32;
                 return that.$api("scenedata/".concat(that.searchInfo.head_actor));
               case 32:
                 res = _context3.sent;
-              case 33:
+                _context3.next = 36;
+                break;
+              case 35:
+                res = {
+                  errcode: '0',
+                  data: {
+                    title: '最新'
+                  }
+                };
+              case 36:
                 if (res.errcode == '0') {
                   uni.setNavigationBarTitle({
                     title: res.data.title
                   });
                 }
-              case 34:
+              case 37:
               case "end":
                 return _context3.stop();
             }
@@ -417,6 +426,12 @@ var _default = {
       var num = Math.sign(up - e.detail.scrollTop);
       if (num == 1) that.$set(that, "is_bottom", false);
     },
+    // 视频查看
+    videoView: function videoView(e) {
+      uni.navigateTo({
+        url: "/pagesVideo/video/index?id=".concat(e._id)
+      });
+    },
     // 清空列表
     clearPage: function clearPage() {
       var that = this;

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 1 - 1
unpackage/dist/dev/mp-weixin/pagesVideo/more/index.wxml


+ 6 - 0
unpackage/dist/dev/mp-weixin/pagesVideo/search/index.js

@@ -378,6 +378,12 @@ var _default = {
         mode: 'right'
       });
     },
+    // 视频查看
+    videoView: function videoView(e) {
+      uni.navigateTo({
+        url: "/pagesVideo/video/index?id=".concat(e._id)
+      });
+    },
     // 查询其他信息
     searchOther: function searchOther() {
       var _this3 = this;

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 1 - 1
unpackage/dist/dev/mp-weixin/pagesVideo/search/index.wxml


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 271 - 5
unpackage/dist/dev/mp-weixin/pagesVideo/video/index.js


+ 3 - 1
unpackage/dist/dev/mp-weixin/pagesVideo/video/index.json

@@ -1,5 +1,7 @@
 {
   "navigationBarTitleText": "详细信息",
   "enablePullDownRefresh": true,
-  "usingComponents": {}
+  "usingComponents": {
+    "uni-icons": "/uni_modules/uni-icons/components/uni-icons/uni-icons"
+  }
 }

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 1 - 1
unpackage/dist/dev/mp-weixin/pagesVideo/video/index.wxml


+ 101 - 0
unpackage/dist/dev/mp-weixin/pagesVideo/video/index.wxss

@@ -0,0 +1,101 @@
+.content {
+  display: flex;
+  flex-direction: column;
+  box-sizing: border-box;
+  width: 100vw;
+  height: 100vh;
+}
+.content {
+  background-color: var(--rgb111);
+  overflow: hidden;
+}
+.content .one {
+  padding: 0 2vw;
+  margin: 0 0 2vw 0;
+}
+.content .one video {
+  width: 100%;
+  height: 210px;
+  overflow: hidden;
+  border: 1px solid var(--rgbf1f);
+}
+.content .two {
+  position: relative;
+  flex-grow: 1;
+  padding: 0 2vw;
+}
+.content .two .two_1 {
+  display: flex;
+  justify-content: space-around;
+  margin: 0 0 2vw 0;
+}
+.content .two .two_1 .list ._span {
+  background-color: var(--rgbfff);
+  color: var(--rgb000);
+  padding: 1vw 4vw;
+  font-size: 14px;
+  border-radius: 5px;
+}
+.content .two .two_1 .active ._span {
+  background-color: var(--rgbfa4);
+  color: var(--rgbfff);
+}
+.content .two .two_2 .tab_1 {
+  display: flex;
+  flex-direction: column;
+  width: 96vw;
+  height: 58vh;
+  overflow-y: auto;
+}
+.content .two .two_2 .tab_1 .title {
+  font-size: 15px;
+  color: var(--rgbfff);
+  margin: 0 0 2vw 0;
+}
+.content .two .two_2 .tab_1 .actor {
+  margin: 0 0 2vw 0;
+}
+.content .two .two_2 .tab_1 .brief {
+  font-size: 15px;
+  color: var(--rgbfff);
+  margin: 0 0 2vw 0;
+}
+.content .two .two_2 .tab_1 .other {
+  margin: 0 0 2vw 0;
+}
+.content .two .two_2 .tab_1 .other .other_1 {
+  font-size: 15px;
+  color: var(--rgbfff);
+  margin: 0 0 2vw 0;
+}
+.content .two .two_2 .tab_1 .other .other_2 {
+  display: flex;
+  flex-wrap: wrap;
+}
+.content .two .two_2 .tab_1 .other .other_2 .firmvideoList {
+  width: 48%;
+  margin: 0 10px 5px 0;
+}
+.content .two .two_2 .tab_1 .other .other_2 .firmvideoList .image {
+  width: 100%;
+  height: 100px;
+  overflow: hidden;
+  border-radius: 5px;
+  box-shadow: 0 0 5px var(--rgbf1f);
+  margin: 0 0 5px 0;
+}
+.content .two .two_2 .tab_1 .other .other_2 .firmvideoList .name {
+  font-size: 14px;
+  color: var(--rgbfff);
+  margin: 0 0 5px 0;
+}
+.content .two .two_2 .tab_1 .other .other_2 .firmvideoList .other {
+  display: flex;
+  color: var(--rgbfff);
+  font-size: 12px;
+  justify-content: space-between;
+}
+.content .two .two_2 .tab_1 .other .other_2 .firmvideoList:nth-child(2n) {
+  margin: 0 0 5px 0;
+}
+

+ 1 - 0
unpackage/dist/dev/mp-weixin/uni_modules/uni-segmented-control/components/uni-segmented-control/uni-segmented-control.js

@@ -0,0 +1 @@
+Component({})

+ 4 - 0
unpackage/dist/dev/mp-weixin/uni_modules/uni-segmented-control/components/uni-segmented-control/uni-segmented-control.json

@@ -0,0 +1,4 @@
+{
+  "usingComponents": {},
+  "component": true
+}

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 1 - 0
unpackage/dist/dev/mp-weixin/uni_modules/uni-segmented-control/components/uni-segmented-control/uni-segmented-control.wxml


+ 49 - 0
unpackage/dist/dev/mp-weixin/uni_modules/uni-segmented-control/components/uni-segmented-control/uni-segmented-control.wxss

@@ -0,0 +1,49 @@
+.content.data-v-064e9cd1 {
+  display: flex;
+  flex-direction: column;
+  box-sizing: border-box;
+  width: 100vw;
+  height: 100vh;
+}
+.segmented-control.data-v-064e9cd1 {
+  display: flex;
+  box-sizing: border-box;
+  flex-direction: row;
+  height: 36px;
+  overflow: hidden;
+}
+.segmented-control__item.data-v-064e9cd1 {
+  display: inline-flex;
+  box-sizing: border-box;
+  position: relative;
+  flex: 1;
+  justify-content: center;
+  align-items: center;
+}
+.segmented-control__item--button.data-v-064e9cd1 {
+  border-style: solid;
+  border-top-width: 1px;
+  border-bottom-width: 1px;
+  border-right-width: 1px;
+  border-left-width: 0;
+}
+.segmented-control__item--button--first.data-v-064e9cd1 {
+  border-left-width: 1px;
+  border-top-left-radius: 5px;
+  border-bottom-left-radius: 5px;
+}
+.segmented-control__item--button--last.data-v-064e9cd1 {
+  border-top-right-radius: 5px;
+  border-bottom-right-radius: 5px;
+}
+.segmented-control__item--text.data-v-064e9cd1 {
+  border-bottom-style: solid;
+  border-bottom-width: 2px;
+  padding: 6px 0;
+}
+.segmented-control__text.data-v-064e9cd1 {
+  font-size: 14px;
+  line-height: 20px;
+  text-align: center;
+}
+