dever 5 years ago
parent
commit
a9dd521ff3

+ 3 - 3
lib/community/y-DiaryItem/y-DiaryItem.vue

@@ -69,13 +69,13 @@
 			</view>
 		</view>
 		<view v-if="show">
-			<communityPush :title="title" :is_upload="false" @hideModal="hideModal" @getRefresh="getRefresh" :cate_id="cate_id" :type="type" :type_id="type_id" :to_id="to_id" :to_uid="to_uid"></communityPush>
+			<publish :title="title" :is_upload="false" @hideModal="hideModal" @getRefresh="getRefresh" :cate_id="cate_id" :type="type" :type_id="type_id" :to_id="to_id" :to_uid="to_uid"></publish>
 		</view>
 	</view>
 </template>
 
 <script>
-	import communityPush from "@/pages/dream/view/communityPush";
+	import publish from '@/lib/dever/components/publish.vue';
 	export default {
 		props: {
 			item: {
@@ -88,7 +88,7 @@
 			cate_id : null,
 		},
 		components:{
-			communityPush
+			publish
 		},
 		created() {
 			this.more = '展开'+(this.item.child_total-1)+'条回复';

+ 2 - 2
pages/dream/view/communityPush.vue → lib/dever/components/publish.vue

@@ -1,4 +1,4 @@
-<template name="communityPush">
+<template name="publish">
 	<view class="cu-modal show">
 		<view class="cu-dialog">
 			<view class="cu-bar bg-white justify-end">
@@ -43,7 +43,7 @@
 
 <script>
 	export default {
-		name : 'communityPush',
+		name : 'publish',
 		props: {
 			title : '',
 			cate_id : null,

+ 1 - 1
lib/dever/index.js

@@ -174,7 +174,7 @@ var http = {
 			//uni.request(Object.assign({}, config, options));
 			dever.debug(config.request);
 			if (options.noloading) {
-				
+				uni.stopPullDownRefresh();
 			} else {
 				dever.loading(loading_method, options, url);
 			}

+ 1 - 11
pages.json

@@ -20,16 +20,6 @@
 				}
 			}
 		},
-		{
-			"path": "pages/dream/comment",
-			"style": {
-				"app-plus": {
-					"titleNView": false,
-					"bounce": "none",
-					"navigationStyle": "custom"
-				}
-			}
-		},
         {
             "path" : "pages/dream/view",
             "style": {
@@ -38,7 +28,7 @@
             		"bounce": "none",
             		"navigationStyle": "custom"
             	},
-				"onReachBottomDistance":126 //距离底部多远时触发 单位px
+				"onReachBottomDistance":1 //距离底部多远时触发 单位px
             }
         },
 		{

+ 0 - 153
pages/dream/comment.vue

@@ -1,153 +0,0 @@
-<template>
-	<gracePage :customHeader="false" footerBg="#FFFFFF">
-		<!-- 页面主体 -->
-		<view slot="gBody" class="grace-body">
-			<view class="grace-margin-top">
-				<text class="grace-title">静态演示</text>
-			</view>
-			<view class="grace-comments">
-				<view class="grace-comments-items">
-					<image src="https://graceui.oss-cn-beijing.aliyuncs.com/faces/1.png" class="grace-comments-face"></image>
-					<view class="grace-comments-body">
-						<view class="grace-comments-header">
-							<text class="grace-comments-header-text">刘美丽</text>
-							<text class="grace-comments-info-text">08/10 08:12</text>
-						</view>
-						<text class="grace-comments-content">上天呀!我渴望与你相知相惜,长存此心永不褪减。</text>
-						<text class="grace-comments-replay">某某回复 : 回复文本</text>
-						<view class="grace-comments-info">
-							<text class="grace-comments-replay-btn">回复</text>
-							<text class="grace-comments-header-text grace-icons icon-zan"> 999</text>
-						</view>
-					</view>
-				</view>
-				<view class="grace-comments-items">
-					<image src="https://graceui.oss-cn-beijing.aliyuncs.com/faces/2.png" class="grace-comments-face"></image>
-					<view class="grace-comments-body">
-						<view class="grace-comments-header">
-							<text class="grace-comments-header-text">王小宝</text>
-						</view>
-						<text class="grace-comments-content">上天呀!我渴望与你相知相惜,长存此心永不褪减。</text>
-						<view class="grace-comments-imgs">
-							<view class="grace-comments-image"><image src="https://graceui.oss-cn-beijing.aliyuncs.com/scollimgs/4.png" class="grace-comments-img"></image></view>
-							<view class="grace-comments-image"><image src="https://graceui.oss-cn-beijing.aliyuncs.com/scollimgs/3.png" class="grace-comments-img"></image></view>
-							<view class="grace-comments-image"><image src="https://graceui.oss-cn-beijing.aliyuncs.com/scollimgs/2.png" class="grace-comments-img"></image></view>
-							<view class="grace-comments-image"><image src="https://graceui.oss-cn-beijing.aliyuncs.com/scollimgs/1.png" class="grace-comments-img"></image></view>
-							<view class="grace-comments-image"><image src="https://graceui.oss-cn-beijing.aliyuncs.com/scollimgs/4.png" class="grace-comments-img"></image></view>
-							<view class="grace-comments-image"><image src="https://graceui.oss-cn-beijing.aliyuncs.com/scollimgs/3.png" class="grace-comments-img"></image></view>
-						</view>
-						<view class="grace-comments-info">
-							<text class="grace-comments-info-text">08/10 08:1208/10 08:12</text>
-							<text class="grace-comments-info-text grace-icons icon-zan"> 999</text>
-						</view>
-					</view>
-				</view>
-			</view>
-			
-			<view class="grace-margin-top">
-				<text class="grace-title">动态数据演示</text>
-			</view>
-			<view class="grace-comments">
-				<view class="grace-comments-items" v-for="(item, index) in commentContents" :key="index">
-					<image  :src="item.face" class="grace-comments-face"></image>
-					<view class="grace-comments-body">
-						<view class="grace-comments-header">
-							<text class="grace-comments-header-text">{{item.name}}</text>
-							<text class="grace-comments-header-text grace-icons">&#xe6ea; {{item.zan}}</text>
-						</view>
-						<text class="grace-comments-content">{{item.content}}</text>
-						<view class="grace-comments-imgs" v-if="item.imgs">
-							<view class="grace-comments-image" v-for="(img, indexImg) in item.imgs" :key="indexImg">
-								<image :src="img" mode="widthFix" class="grace-comments-img" @click.stop="showImgs(index, indexImg)"></image>
-							</view>
-						</view>
-						<view v-if="item.Reply">
-							<text v-for="(itemRe, indexRe) in item.Reply" :key="indexRe" class="grace-comments-replay">{{itemRe.name}} : {{itemRe.content}}</text>
-						</view>
-						<view class="grace-comments-info">
-							<text class="grace-comments-replay-btn">回复</text>
-							<text class="grace-comments-info-text">{{item.date}}</text>
-						</view>
-					</view>
-				</view>
-			</view>
-			<!-- 占位视图 用于避开底部遮盖 -->
-			<view style="height:120rpx;"></view>
-		</view>
-		<!-- 底部提交输入框 -->
-		<view class="grace-nowrap grace-flex-vcenter grace-bg-white" slot="gFooter">
-			<view class="grace-footer-input-body">
-				<text class="grace-footer-input-icon grace-icons icon-write"></text>
-				<input type="text" value="" v-model="commentContent" placeholder="说点什么吧..." class="grace-footer-input" />
-			</view>
-			<text class="grace-footer-subtext grace-blue" @tap="submitCommnets">提交</text>
-		</view>
-	</gracePage>
-</template>
-<script>
-import gracePage from "@/lib/graceUI/components/gracePage.vue";
-export default {
-    data() {
-		return {
-			// 模拟评论数据 (实际项目来自api请求)
-			commentContents : [
-				{
-					"content":"故国三千里,深宫二十年。一声何满子,双泪落君前。",
-					"name":"graceUI - 小码",
-					"face":"https://graceui.oss-cn-beijing.aliyuncs.com/faces/1.png",
-					"date":"08/10 08:00",
-					"zan" : 188,
-					"Reply" : [
-						{'name' : "张晓曦", "content":"不错不错"},
-						{'name' : "王大陆", "content":"赞了~"},
-					]
-				},
-				{
-					"content":"而今渐行渐远,渐觉虽悔难追。漫寄消寄息,终久奚为。也拟重论缱绻,争奈翻覆思维。纵再会,只恐恩情,难似当时。",
-					"name":"路过繁华",
-					"face":"https://graceui.oss-cn-beijing.aliyuncs.com/faces/2.png",
-					"date":"02/10 18:00",
-					"zan" : 288
-				},
-				{
-					"content":"图片回复,点击图片可以预览......",
-					"name":"林夕阳",
-					"imgs" : [
-						"https://graceui.oss-cn-beijing.aliyuncs.com/scollimgs/4.png",
-						"https://graceui.oss-cn-beijing.aliyuncs.com/scollimgs/3.png",
-						"https://graceui.oss-cn-beijing.aliyuncs.com/scollimgs/1.png",
-					],
-					"face":"https://graceui.oss-cn-beijing.aliyuncs.com/faces/2.png",
-					"date":"08/12 09:00",
-					"zan" : 955
-				}
-			],
-			commentContent : ''
-		}
-	},
-	methods:{
-		submitCommnets : function(){
-			uni.showToast({
-				title:"评论内容 : " + this.commentContent,
-				icon:"none"
-			});
-		},
-		showImgs : function(commentsIndex, imgIndex){
-			console.log(commentsIndex, imgIndex);
-			uni.previewImage({
-				urls:this.commentContents[commentsIndex].imgs,
-				current:this.commentContents[commentsIndex].imgs[imgIndex]
-			})
-		}
-	},
-	components:{
-		gracePage
-	}
-}
-</script>
-<style>
-/* 请根据项目来规划自己的图片大小,请对图片进行等比缩放 
-.grace-comments-image{width:190rpx; height:138rpx; margin:5rpx; font-size:0; overflow:hidden;}
-.grace-comments-img{width:190rpx; height:138rpx; border-radius:3rpx;}
-*/
-</style>

+ 6 - 2
pages/dream/view/cate.vue → pages/dream/func/cate.vue

@@ -76,11 +76,15 @@ export default {
 	},
 	created() {
 		this.fetch = this.param;
-		this.getData();
 	},
 	methods:{
 		getData : function() {
-			
+			var info = {
+				info_id : this.info_id,
+				page_id : this.page_id,
+				parent_page_id : this.parent_page_id,
+			}
+			this.$emit('getCate', info);
 		},
 		choose : function(id) {
 			if (this.fetch.show[id] == 1) {

+ 3 - 3
pages/dream/view/community.vue → pages/dream/func/community.vue

@@ -16,13 +16,13 @@
 		</view>
 		
 		<view v-if="show">
-			<communityPush :title="title" :is_upload="true" @hideModal="hideModal" @getRefresh="getRefresh" :cate_id="cate_id" :type="type" :type_id="type_id"></communityPush>
+			<publish :title="title" :is_upload="true" @hideModal="hideModal" @getRefresh="getRefresh" :cate_id="cate_id" :type="type" :type_id="type_id"></publish>
 		</view>
 	</view>
 </template>
 
 <script>
-import communityPush from "@/pages/dream/view/communityPush";
+import publish from '@/lib/dever/components/publish.vue';
 import uniLoadMore from "@/lib/uni-load-more/uni-load-more.vue"
 export default {
 	name: "community",
@@ -124,7 +124,7 @@ export default {
 		}
 	},
 	components:{
-		communityPush,uniLoadMore
+		publish,uniLoadMore
 	}
 }
 </script>

+ 80 - 0
pages/dream/func/times.vue

@@ -0,0 +1,80 @@
+<template name="times">
+	<view>
+		<view class="cu-timeline" v-for="(v,k) in fetch.times" :key="v.id">
+			<view class="cu-time">{{v.name}}</view>
+			<view class="cu-item" :class="v1.id == times ? 'text-blue' : ''" v-for="(v1,k1) in v.child" :key="v1.id" :style="{backgroundImage: v1.icon}">
+				<view class="content" :style="{color:v1.color,backgroundColor:v1.bgcolor}" @click="go(v1)">
+					<view class="cu-capsule radius">
+						<view class="cu-tag bg-cyan">{{v1.name}}</view>
+					</view>
+					<view class="margin-top" v-if="v1.desc&& !v1.pic">{{v1.desc}}</view>
+					<view class="margin-top" v-if="v1.pic && !v1.desc"><image :src="v1.pic" mode="widthFix" class="slide-image" style="height:auto"></image></view>
+				</view>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+export default {
+	name: "times",
+	props: {
+		info_id : {
+			type : String,
+			value : null
+		},
+		content_id : {
+			type : String,
+			value : null
+		},
+		page_id : {
+			type : String,
+			value : null
+		},
+		parent_page_id : {
+			type : String,
+			value : null
+		},
+		width : {
+			type : String,
+			default : '100%'
+		},
+		param : {},
+		index : 0,
+		times : 0,
+	},
+	data() {
+		return {
+			
+		}
+	},
+	created() {
+		this.fetch = this.param;
+	},
+	methods:{
+		getData : function() {
+			var info = {
+				info_id : this.info_id,
+				page_id : this.page_id,
+				parent_page_id : this.parent_page_id,
+			}
+			this.$emit('getTimes', info);
+		},
+		go : function(times) {
+			var self = this;
+			this.Dever.alert('正在进入' + times.name);
+			// 要拿到最新的page_id
+			this.Dever.post('app/collection/?l=api.getPageId', {id:self.info_id,times:times.id}, function(t) {
+				self.Dever.location('dream/view?id=' + self.info_id + '&page_id='+t.id+'&index=0&times=' + times.id);
+			})
+			
+		},
+	},
+}
+</script>
+
+<style>
+.slide-image {
+	
+}
+</style>

+ 4 - 2
pages/dream/index.vue

@@ -47,7 +47,9 @@ export default{
 				page_id : 0,
 				is_buy : false,
 				info : {},
-				button : {}
+				button : {},
+				times : 0,
+				index : 0,
 			},
 			buyState : false,
 			rankingState : false,
@@ -77,7 +79,7 @@ export default{
 			}
 		},
 		view : function() {
-			this.Dever.location('dream/view?id='+this.id+'&page_id='+this.fetch.page_id+'&index=0');
+			this.Dever.location('dream/view?id='+this.id+'&page_id='+this.fetch.page_id+'&index='+this.fetch.index+'&times=' + this.fetch.times);
 		},
 		hideBuy : function() {
 			this.buyState = false;

+ 45 - 18
pages/dream/view.vue

@@ -5,8 +5,8 @@
 				<view class="container_main" slot="links">
 					<swiper class="swiper" @change="change" :circular="swiper.circular" :current="index">
 						<swiper-item v-for="(v, k) in fetch.items"  v-if="v.data" :key="k" >
-							<scroll-view scroll-y="true" scroll-x="true" class="scroll-height">
-								<dream ref="dream" @showDrawer="showDrawer" :index="k" :item="v" :control="control" class="item"></dream>
+							<scroll-view scroll-y="true" scroll-x="true" class="scroll-height" @scrolltolower="bottomCall">
+								<dream ref="dream" @showDrawer="showDrawer" :index="k" :item="v" :control="control" :bottom="bottom" class="item"></dream>
 							</scroll-view>
 						</swiper-item>
 					</swiper>
@@ -16,11 +16,15 @@
 			<drawerWindow v-for="(v, k) in drawer.item" :key="k" :show="v.show" :zIndex="v.index" padding="v.padding" :top="v.top" direction="v.direction" :width="v.width" v-on:closeDrawer="closeDrawer(k)">
 				<view slot="links">
 					<block v-if="k == 'cate'">
-						<cate ref="cate" @goIndex="goIndex" :index="index" :content_id="content_id" :info_id="fetch.info_id" :page_id="fetch.page_id" :parent_page_id="fetch.parent_page_id" :width="v.width"  :param="v.param"></cate>
+						<cate ref="cate" @goIndex="goIndex" :index="index" :content_id="content_id" :info_id="fetch.info_id" :page_id="fetch.page_id" :parent_page_id="fetch.parent_page_id" :width="v.width"  :param="v.param" @getCate="getCate"></cate>
 					</block>
 					
 					<block v-if="k == 'community'">
 						<community ref="community" @goIndex="goIndex" :index="index" :content_id="content_id" :info_id="fetch.info_id" :page_id="fetch.page_id" :parent_page_id="fetch.parent_page_id" :width="v.width"  :param="v.param"></community>
+					</block>
+					
+					<block v-if="k == 'times'">
+						<times ref="times" @goIndex="goIndex" :index="index" :content_id="content_id" :info_id="fetch.info_id" :page_id="fetch.page_id" :parent_page_id="fetch.parent_page_id" :width="v.width"  :param="v.param" :times="times" @getTimes="getTimes"></times>
 					</block>
 				</view>
 			</drawerWindow>
@@ -30,8 +34,9 @@
 	</gracePage>
 </template>
 <script>
-import cate from "@/pages/dream/view/cate.vue";
-import community from "@/pages/dream/view/community.vue";
+import cate from "@/pages/dream/func/cate.vue";
+import community from "@/pages/dream/func/community.vue";
+import times from "@/pages/dream/func/times.vue";
 import dream from "@/pages/dream/view/dream.vue";
 import drawerPage from "@/lib/dever/components/drawerPage.vue";
 import drawerWindow from "@/lib/dever/components/drawerWindow.vue";
@@ -42,7 +47,8 @@ export default{
 			id : 1,
 			page_id : 1,
 			index : 0,
-			content_id : 0,
+			content_id : 0,
+			times : 0,
 			swiper : {
 				index : 0,
 				circular : false,
@@ -54,7 +60,8 @@ export default{
 				page_id : 0,
 				parent_page_id : 0,
 			},
-			control : {},
+			control : {},
+			bottom : {},
 			drawer : {
 				// 是否显示
 				show : '',
@@ -101,24 +108,34 @@ export default{
 	onLoad(option) {
 		this.id = option.id;
 		this.page_id = option.page_id;
-		this.index = option.index;
+		this.index = option.index;
+		this.times = option.times;
+		this.Dever.data('page_id', this.page_id);
+		this.Dever.data('times', this.times);
 		this.getData();
 	},
 	// 重新加载
 	onPullDownRefresh: function() {
 		if (this.drawer.show && this.drawer.item[this.drawer.show].show == true) {
-			this.$refs[this.drawer.show].getData();
+			this.$refs[this.drawer.show][0].getData();
 		} else {
 			this.getData();
 		}
 	},
-	// 触底刷新
-	onReachBottom: function() {
-		console.info(222);
-	},
-	methods:{
+	methods:{
+		// 触底刷新
+		bottomCall: function() {
+			if (this.bottom && this.bottom[this.swiper.index]) {
+				this.bottom[this.swiper.index].getData(2);
+			}
+		},
+		record : function() {
+			this.Dever.post('app/collection/?l=api.record', {noloading:1, id:this.id, page_id:this.page_id, times:this.times, index: this.swiper.index});
+		},
 		change : function(e) {
-			this.swiper.index = e.detail.current;
+			this.swiper.index = e.detail.current;
+			//用户记录
+			this.record();
 			if (this.control) {
 				var i = 0;
 				for (i in this.control) {
@@ -148,7 +165,8 @@ export default{
 		},
 		getData : function() {
 			var self = this;
-			self.drawer.item = {};
+			self.drawer.item = {};
+			//this.record();
 			this.Dever.get(this, 'app/collection/?l=api.getContent', {id:this.id, page_id:this.page_id}, function(t) {
 				if (t && t['func']) {
 					self.drawer.item = t['func'];
@@ -156,14 +174,23 @@ export default{
 					if (t['func']['cate']) {
 						self.getCate(t);
 					}
+					if (t['func']['times']) {
+						self.getTimes(t);
+					}
 				}
 			});
 		},
 		getCate : function(info) {
 			var self = this;
-			this.Dever.get(this, 'app/collection/?l=api.category', {id:info.info_id, parent_page_id:info.parent_page_id, page_id:info.page_id, noloading:1}, function(t) {
+			this.Dever.get(this, 'app/collection/?l=api.category', {id:info.info_id, parent_page_id:info.parent_page_id, page_id:info.page_id, times:this.times,noloading:1}, function(t) {
 				self.drawer.item['cate'].param = t;
 			});
+		},
+		getTimes : function(info) {
+			var self = this;
+			this.Dever.get(this, 'app/collection/?l=api.times', {id:info.info_id, parent_page_id:info.parent_page_id, page_id:info.page_id, times:this.times,noloading:1}, function(t) {
+				self.drawer.item['times'].param = t;
+			});
 		},
 		goIndex : function(index) {
 			this.index = index;
@@ -192,7 +219,7 @@ export default{
 		}
 	},
 	components:{
-		dream,cate,community,drawerPage,drawerWindow
+		dream,cate,community,times,drawerPage,drawerWindow
 	}
 }
 </script>

+ 4 - 4
pages/dream/view/comment.vue

@@ -14,13 +14,13 @@
 		</view>
 		<y-Fab :bottom="20" :right="140" @click="showModal" bgColor="#0fa5e5" text="发布"></y-Fab>
 		<view v-if="show">
-			<communityPush :title="title" :is_upload="false" @hideModal="hideModal" @getRefresh="getRefresh" :type="type" :type_id="type_id" :api="api"></communityPush>
+			<publish :title="title" :is_upload="false" @hideModal="hideModal" @getRefresh="getRefresh" :type="type" :type_id="type_id" :api="api"></publish>
 		</view>
 	</view>
 </template>
 
 <script>
-import communityPush from "@/pages/dream/view/communityPush";
+import publish from '@/lib/dever/components/publish.vue';
 import deverContent from '@/lib/dever/components/content.vue';
 export default {
 	name: "comment",
@@ -65,7 +65,7 @@ export default {
 				self.$refs.barrage.start(self.info);
 				return;
 			}
-			this.Dever.get(this, 'app/community/?l=api.comment', {id:this.id,noloading:1,page:this.page,type:this.type,type_id:this.type_id,noconcat:1}, function(t) {
+			this.Dever.get(this, 'app/community/?l=api.comment', {noloading:1,page:this.page,type:this.type,type_id:this.type_id,noconcat:1}, function(t) {
 				if (t && t.info && t.info.length > 0) {
 					self.info = self.info.concat(t.info);
 					if (self.page == 1) {
@@ -106,7 +106,7 @@ export default {
 		}
 	},
 	components:{
-		communityPush,deverContent
+		publish,deverContent
 	}
 }
 </script>

+ 22 - 15
pages/dream/view/dream.vue

@@ -2,31 +2,31 @@
 	<view class="dream">
 		<!--文章-->
 		<view v-if="item.type == 1">
-			<news :index="index" :item="item.data" :control="control"></news>
+			<news :index="index" :item="item.data" :control="control" :bottom="bottom"></news>
 		</view>
 		<!--普通图片-->
 		<view v-else-if="item.type == 10">
-			<pic :index="index" :item="item.data" :control="control"></pic>
+			<pic :index="index" :item="item.data" :control="control" :bottom="bottom"></pic>
 		</view>
 		<!--多张图片-->
 		<view v-else-if="item.type == 11">
 			<swiper class="swiper" autoplay="false" vertical="true" interval="990000">
 				<swiper-item v-for="(v, k) in item.data" :key="k">
-					<pic :index="index" :item="v" :control="control"></pic>
+					<pic :index="index" :item="v" :control="control" :bottom="bottom"></pic>
 				</swiper-item>
 			</swiper>
 		</view>
 		
 		<!--四宫格图片-->
 		<view v-else-if="item.type == 12">
-			<picGrid :index="index" :item="item.data" :control="control"></picGrid>
+			<picGrid :index="index" :item="item.data" :control="control" :bottom="bottom"></picGrid>
 		</view>
 		
 		<!--多张四宫格图片-->
 		<view v-else-if="item.type == 13">
 			<swiper class="swiper" autoplay="false" vertical="true" interval="990000">
 				<swiper-item v-for="(v, k) in item.data" :key="k">
-					<picGrid :index="index" :item="v" :control="control"></picGrid>
+					<picGrid :index="index" :item="v" :control="control" :bottom="bottom"></picGrid>
 				</swiper-item>
 			</swiper>
 			
@@ -37,52 +37,52 @@
 		<view v-else-if="item.type == 20">
 			<swiper class="swiper" autoplay="false" vertical="true" interval="990000">
 				<swiper-item v-for="(v, k) in item.data" :key="k">
-					<vod :index="index" :item="v" :control="control"></vod>
+					<vod :index="index" :item="v" :control="control" :bottom="bottom"></vod>
 				</swiper-item>
 			</swiper>
 		</view>
 		<!--短视频-->
 		<view v-else-if="item.type == 21">
-			<vodShort :index="index" :item="item.data" :control="control"></vodShort>
+			<vodShort :index="index" :item="item.data" :control="control" :bottom="bottom"></vodShort>
 		</view>
 		<!--留言视频-->
 		<view v-else-if="item.type == 22">
-			<vodComment :index="index" :item="item.data" :control="control"></vodComment>
+			<vodComment :index="index" :item="item.data" :control="control" :bottom="bottom"></vodComment>
 		</view>
 		
 		
 		<!--音频播放-->
 		<view v-else-if="item.type == 30">
-			<audioList :index="index" :item="item.data" :control="control"></audioList>
+			<audioList :index="index" :item="item.data" :control="control" :bottom="bottom"></audioList>
 		</view>
 		<!--留言音频-->
 		<view v-else-if="item.type == 31">
-			<audioComment :index="index" :item="item.data" :control="control"></audioComment>
+			<audioComment :index="index" :item="item.data" :control="control" :bottom="bottom"></audioComment>
 		</view>
 		
 		<!--直播-->
 		<view v-else-if="item.type == 40">
-			<liveComment :index="index" :item="item.data" :control="control"></liveComment>
+			<liveComment :index="index" :item="item.data" :control="control" :bottom="bottom"></liveComment>
 		</view>
 		
 		<!--对话-->
 		<view v-else-if="item.type == 60">
-			<dialogue :index="index" :item="item.data" :control="control"></dialogue>
+			<dialogue :index="index" :item="item.data" :control="control" :bottom="bottom"></dialogue>
 		</view>
 		
 		<!--电商单个产品-->
 		<view v-else-if="item.type == 70">
-			<product :index="index" :item="item.data" :control="control"></product>
+			<product :index="index" :item="item.data" :control="control" :bottom="bottom"></product>
 		</view>
 		
 		<!--单个链接-->
 		<view v-else-if="item.type == 80">
-			<linkView :index="index" :item="item.data" :control="control"></linkView>
+			<linkView :index="index" :item="item.data" :control="control" :bottom="bottom"></linkView>
 		</view>
 		
 		<!--单页面-->
 		<view v-else-if="item.type == 82">
-			<webView :index="index" :item="item.data" :control="control"></webView>
+			<webView :index="index" :item="item.data" :control="control" :bottom="bottom"></webView>
 		</view>
 		
 		<!--<view class="page-num" @click="setShow" v-if="index != -1">P{{index+1}}</view>-->
@@ -112,6 +112,10 @@ export default {
 			type : Object,
 			value : null
 		},
+		bottom : {
+			type : Object,
+			value : null
+		},
 		item : {
 			type    : Object,
 			value	: null
@@ -127,6 +131,9 @@ export default {
 		}
 	},
 	methods:{
+		getData : function(page) {
+			
+		},
 		showDrawer : function(key) {
 			if (key) {
 				this.$emit('showDrawer', key);

+ 54 - 57
pages/dream/view/product.vue

@@ -38,17 +38,17 @@
 			</view>
 			<!-- 评论区 -->
 			<view class="grace-comments grace-product-padding" :hidden="active == 0">
-				<view class="grace-comments-items" v-for="(item, index) in commentContents" :key="index">
-					<image  :src="item.face" class="grace-comments-face"></image>
+				<view class="grace-comments-items" v-for="(v, k) in fetch.info" :key="k">
+					<image  :src="v.user.avatar" class="grace-comments-face"></image>
 					<view class="grace-comments-body">
 						<view class="grace-comments-header">
-							<text class="grace-comments-header-text">{{item.name}}</text>
-							<text class="grace-comments-info-text">{{item.date}}</text>
+							<text class="grace-comments-header-text">{{v.user.username}}</text>
+							<text class="grace-comments-info-text">{{v.cdate_string}}</text>
 						</view>
-						<text class="grace-comments-content">{{item.content}}</text>
-						<view class="grace-comments-imgs" v-if="item.imgs">
-							<view class="grace-comments-image" v-for="(img, indexImg) in item.imgs" :key="indexImg">
-								<image :src="img" mode="widthFix" class="grace-comments-img" @click.stop="showImgs(index, indexImg)" style="height:auto"></image>
+						<text class="grace-comments-content">{{v.content}}</text>
+						<view class="grace-comments-imgs" v-if="v.pic">
+							<view class="grace-comments-image" v-for="(v1, k1) in v.pic" :key="k1">
+								<image :src="v1" mode="widthFix" class="grace-comments-img" @click="Dever.viewPic(v.pic, v1)" style="height:auto"></image>
 							</view>
 						</view>
 					</view>
@@ -90,7 +90,10 @@
 				</form>
 			</graceBottomDialog>
 			<y-Fab :bottom="20" :right="140" v-if="!attrIsShow" @click="buyNow" bgColor="#e55d52" text="购买"></y-Fab>
-			<y-Fab :bottom="20" :right="240" v-if="!attrIsShow" @click="buyNow" bgColor="#e55d52" text="评价"></y-Fab>
+			<y-Fab :bottom="20" :right="260" v-if="!showComment" @click="showModal" bgColor="#0fa5e5" text="评价"></y-Fab>
+			<view v-if="showComment">
+				<publish :title="title" :is_upload="true" @hideModal="hideModal" @getRefresh="getRefresh" :type="key" :type_id="item.id" :api="api"></publish>
+			</view>
 		</view>
 		<!-- 底部 -->
 		
@@ -99,11 +102,7 @@
 
 <script>
 import deverContent from '@/lib/dever/components/content.vue';
-import gracePage from "@/lib/graceUI/components/gracePage.vue";
-import graceNavBar from "@/lib/graceUI/components/graceNavBar.vue";
-import graceBottomDialog from '@/lib/graceUI/components/graceBottomDialog.vue';
-import graceNumberBox from '@/lib/graceUI/components/graceNumberBox.vue';
-import graceSelectTags from '@/lib/graceUI/components/graceSelectTags.vue';
+import publish from '@/lib/dever/components/publish.vue';
 export default {
 	name: "product",
 	props: {
@@ -111,42 +110,27 @@ export default {
 			type : Object,
 			value : null
 		},
+		bottom : {
+			type : Object,
+			value : null
+		},
 		item : {
 			type    : Object,
 			value	: null
 		},
+		index : {
+			type    : Number,
+			value	: null
+		},
 	},
 	data() {
 		return {
+			title : '发表新评价',
+			api : 'app/community/?l=api.addComment',
+			key : 'content/product',
 			// 切换导航
 			navItems : ['商品详情', '全网评价'],
 			active:0,
-			// 模拟评论数据 (实际项目来自api请求)
-			commentContents : [
-				{
-					"content":"故国三千里,深宫二十年。一声何满子,双泪落君前。",
-					"name":"graceUI - 小码",
-					"face":"https://graceui.oss-cn-beijing.aliyuncs.com/faces/1.png",
-					"date":"08/10 08:00"
-				},
-				{
-					"content":"而今渐行渐远,渐觉虽悔难追。漫寄消寄息,终久奚为。也拟重论缱绻,争奈翻覆思维。纵再会,只恐恩情,难似当时。",
-					"name":"路过繁华",
-					"face":"https://graceui.oss-cn-beijing.aliyuncs.com/faces/2.png",
-					"date":"02/10 18:00"
-				},
-				{
-					"content":"图片回复,点击图片可以预览......",
-					"name":"林夕阳",
-					"imgs" : [
-						"https://graceui.oss-cn-beijing.aliyuncs.com/scollimgs/4.png",
-						"https://graceui.oss-cn-beijing.aliyuncs.com/scollimgs/3.png",
-						"https://graceui.oss-cn-beijing.aliyuncs.com/scollimgs/1.png",
-					],
-					"face":"https://graceui.oss-cn-beijing.aliyuncs.com/faces/2.png",
-					"date":"08/12 09:00"
-				}
-			],
 			// 购买选择属性层展示
 			attrIsShow : false,
 			attr : '',
@@ -156,23 +140,32 @@ export default {
 			payPrice : 0,
 			buyNum : 1,
 			kuNum : 9999,
+			showComment : false,
+			fetch : {
+				info : [],
+			}
 		}
 	},
-	onLoad:function () {},
+	created() {
+		
+	},
+	mounted() {
+		this.bottom[this.index] = this;
+		this.getData(1);
+	},
 	methods:{
-		// 分享
-		share: function(){uni.showToast({title:'请自行完善分享代码', icon: "none"});},
+		getData : function(page) {
+			if (this.active == 0) {
+				return;
+			}
+			this.Dever.page([page, 'info'], this, 'app/community/?l=api.comment', {type:this.key,type_id:this.item.id,user:true});
+		},
 		// 导航切换
 		navChange : function(e){
 			this.active = e;
-		},
-		// 评论图片展示
-		showImgs : function(commentsIndex, imgIndex){
-			console.log(commentsIndex, imgIndex);
-			uni.previewImage({
-				urls:this.commentContents[commentsIndex].imgs,
-				current:this.commentContents[commentsIndex].imgs[imgIndex]
-			})
+			if (e == 1) {
+				this.getData(1);
+			}
 		},
 		//打开属性视图
 		buyNow : function() {
@@ -223,14 +216,18 @@ export default {
 				this.skuId = this.item.goods.price.list[this.attrKey].id;
 			}
 		},
-		// 返回首页
-		gohome : function(){
-			uni.switchTab({
-				url:'../index/index'
-			});
+		showModal : function() {
+			this.showComment = true;
+		},
+		hideModal : function() {
+			this.showComment = false;
+		},
+		getRefresh : function(cate_id, type, type_id, content) {
+			this.getData(1);
+			this.hideModal();
 		}
 	},
-	components:{deverContent, gracePage, graceNavBar, graceBottomDialog, graceSelectTags, graceNumberBox}
+	components:{deverContent, publish}
 }
 </script>