zouling hace 4 meses
padre
commit
550729d7a4
Se han modificado 97 ficheros con 867 adiciones y 198 borrados
  1. 101 0
      property_ui/api/work/manage.js
  2. BIN
      property_ui/manage/components/car/img/face/aini.gif
  3. BIN
      property_ui/manage/components/car/img/face/baibai.gif
  4. BIN
      property_ui/manage/components/car/img/face/baiyan.gif
  5. BIN
      property_ui/manage/components/car/img/face/baobao.gif
  6. BIN
      property_ui/manage/components/car/img/face/beishang.gif
  7. BIN
      property_ui/manage/components/car/img/face/bishi.gif
  8. BIN
      property_ui/manage/components/car/img/face/bizui.gif
  9. BIN
      property_ui/manage/components/car/img/face/caonima.gif
  10. BIN
      property_ui/manage/components/car/img/face/chanzui.gif
  11. BIN
      property_ui/manage/components/car/img/face/chijing.gif
  12. BIN
      property_ui/manage/components/car/img/face/dangao.gif
  13. BIN
      property_ui/manage/components/car/img/face/fahongbao.gif
  14. BIN
      property_ui/manage/components/car/img/face/fennu.gif
  15. BIN
      property_ui/manage/components/car/img/face/fuyun.gif
  16. BIN
      property_ui/manage/components/car/img/face/ganmao.gif
  17. BIN
      property_ui/manage/components/car/img/face/geili.gif
  18. BIN
      property_ui/manage/components/car/img/face/good.gif
  19. BIN
      property_ui/manage/components/car/img/face/guzhang.gif
  20. BIN
      property_ui/manage/components/car/img/face/haha.gif
  21. BIN
      property_ui/manage/components/car/img/face/haixiu.gif
  22. BIN
      property_ui/manage/components/car/img/face/han.gif
  23. BIN
      property_ui/manage/components/car/img/face/haqian.gif
  24. BIN
      property_ui/manage/components/car/img/face/heixian.gif
  25. BIN
      property_ui/manage/components/car/img/face/heng.gif
  26. BIN
      property_ui/manage/components/car/img/face/huatong.gif
  27. BIN
      property_ui/manage/components/car/img/face/hufen.gif
  28. BIN
      property_ui/manage/components/car/img/face/jiong.gif
  29. BIN
      property_ui/manage/components/car/img/face/jiyan.gif
  30. BIN
      property_ui/manage/components/car/img/face/keai.gif
  31. BIN
      property_ui/manage/components/car/img/face/kelian.gif
  32. BIN
      property_ui/manage/components/car/img/face/ku.gif
  33. BIN
      property_ui/manage/components/car/img/face/kun.gif
  34. BIN
      property_ui/manage/components/car/img/face/lai.gif
  35. BIN
      property_ui/manage/components/car/img/face/lazhu.gif
  36. BIN
      property_ui/manage/components/car/img/face/lei.gif
  37. BIN
      property_ui/manage/components/car/img/face/no.gif
  38. BIN
      property_ui/manage/components/car/img/face/nu.gif
  39. BIN
      property_ui/manage/components/car/img/face/numa.gif
  40. BIN
      property_ui/manage/components/car/img/face/ok.gif
  41. BIN
      property_ui/manage/components/car/img/face/qian.gif
  42. BIN
      property_ui/manage/components/car/img/face/qinqin.gif
  43. BIN
      property_ui/manage/components/car/img/face/ruo.gif
  44. BIN
      property_ui/manage/components/car/img/face/se.gif
  45. BIN
      property_ui/manage/components/car/img/face/shangxin.gif
  46. BIN
      property_ui/manage/components/car/img/face/shengbing.gif
  47. BIN
      property_ui/manage/components/car/img/face/shenma.gif
  48. BIN
      property_ui/manage/components/car/img/face/shiwang.gif
  49. BIN
      property_ui/manage/components/car/img/face/shuai.gif
  50. BIN
      property_ui/manage/components/car/img/face/shudaizi.gif
  51. BIN
      property_ui/manage/components/car/img/face/shui.gif
  52. BIN
      property_ui/manage/components/car/img/face/sikao.gif
  53. BIN
      property_ui/manage/components/car/img/face/taikaixin.gif
  54. BIN
      property_ui/manage/components/car/img/face/touxiao.gif
  55. BIN
      property_ui/manage/components/car/img/face/tu.gif
  56. BIN
      property_ui/manage/components/car/img/face/tuzi.gif
  57. BIN
      property_ui/manage/components/car/img/face/wabi.gif
  58. BIN
      property_ui/manage/components/car/img/face/weiguan.gif
  59. BIN
      property_ui/manage/components/car/img/face/weiqu.gif
  60. BIN
      property_ui/manage/components/car/img/face/weiwu.gif
  61. BIN
      property_ui/manage/components/car/img/face/weixiao.gif
  62. BIN
      property_ui/manage/components/car/img/face/xin.gif
  63. BIN
      property_ui/manage/components/car/img/face/xiongmao.gif
  64. BIN
      property_ui/manage/components/car/img/face/xixi.gif
  65. BIN
      property_ui/manage/components/car/img/face/xu.gif
  66. BIN
      property_ui/manage/components/car/img/face/ye.gif
  67. BIN
      property_ui/manage/components/car/img/face/yinxian.gif
  68. BIN
      property_ui/manage/components/car/img/face/yiwen.gif
  69. BIN
      property_ui/manage/components/car/img/face/youhengheng.gif
  70. BIN
      property_ui/manage/components/car/img/face/yun.gif
  71. BIN
      property_ui/manage/components/car/img/face/zan.gif
  72. BIN
      property_ui/manage/components/car/img/face/zhu.gif
  73. BIN
      property_ui/manage/components/car/img/face/zhuakuang.gif
  74. BIN
      property_ui/manage/components/car/img/face/zuohengheng.gif
  75. BIN
      property_ui/manage/components/car/img/hbl.jpg
  76. BIN
      property_ui/manage/components/car/img/icon/avatar.jpg
  77. BIN
      property_ui/manage/components/car/img/icon/avtar.png
  78. BIN
      property_ui/manage/components/car/img/icon/reply.png
  79. 166 2
      property_ui/manage/components/car/list.vue
  80. 150 0
      property_ui/manage/pages/community/djdetail.vue
  81. 45 7
      property_ui/manage/pages/community/newsdj.vue
  82. 25 17
      property_ui/manage/pages/community/newssq.vue
  83. 278 106
      property_ui/manage/pages/community/newssqdetail.vue
  84. BIN
      property_ui/manage/static/news/delb.png
  85. BIN
      property_ui/manage/static/news/nonews.png
  86. 16 10
      property_ui/mine/components/box/list.vue
  87. 10 9
      property_ui/mine/pages/news/index.vue
  88. 27 3
      property_ui/mine/pages/news/myhd.vue
  89. 3 3
      property_ui/mine/pages/news/sh.vue
  90. 9 0
      property_ui/pages.json
  91. 34 40
      property_ui/pages/mine/index.vue
  92. 1 1
      property_ui/service/pages/service/patrolrecord.vue
  93. BIN
      property_ui/static/applogo.png
  94. BIN
      property_ui/static/images/mine/mtabo.png
  95. BIN
      property_ui/static/images/mine/mtabp.png
  96. BIN
      property_ui/static/images/mine/mtabq.png
  97. 2 0
      property_ui/static/style.css

+ 101 - 0
property_ui/api/work/manage.js

@@ -171,6 +171,106 @@ export function newsDet(data) {
     method: 'get',
   })
 }
+// 评论-新增wuYe:commentIndex:add
+export function commentIndex(data) {
+  return request({
+    url: '/wuYe/commentIndex',
+    method: 'post',
+    'data': data
+  })
+}
+// 进行点赞操作
+export function giveTheThumbs(data) {
+  return request({
+    url: '/wuYe/commentLikes/giveTheThumbs',
+    method: 'post',
+    'data': data
+  })
+}
+// 进行收藏操作
+export function getStars(data) {
+  return request({
+    url: '/wuYe/commentStars/getStars',
+    method: 'post',
+    'data': data
+  })
+}
+
+//评论-列表父集
+//根据查询所有一级评论组带子集总数组装成前端所需要的数据结构 带分页
+export function getRootComment(data) {
+  return request({
+    url: '/wuYe/commentIndex/getRootComment',
+    method: 'post',
+    'data': data
+  })
+}
+// 列表子集
+//根据parent_id查询所有评论组装成前端所需要的子集数据结构 带分页
+export function getParentComment(data) {
+  return request({
+    url: '/wuYe/commentIndex/getParentComment',
+    method: 'post',
+    'data': data
+  })
+}
+// 审核列表wuYe:commentIndex:commentSh
+export function commentSh(data) {
+  return request({
+    url: '/wuYe/commentIndex/commentSh',
+    method: 'get',
+    'data': data
+  })
+}
+// 评论-审核wuYe:commentContent:edit
+export function commentContentPut(data) {
+  return request({
+    url: '/wuYe/commentContent/put',
+    method: 'post',
+    'data': data
+  })
+}
+
+// 我的评论-列表wuYe:commentIndex:list
+export function mycommentIndex(data) {
+  return request({
+    url: '/wuYe/commentIndex/list',
+    method: 'get',
+    'data': data
+  })
+}
+// 我的点赞-列表wuYe:commentLikes:list
+export function mycommentLikes(data) {
+  return request({
+    url: '/wuYe/commentLikes/list',
+    method: 'get',
+    'data': data
+  })
+}
+// 我的收藏-列表wuYe:commentStars:list
+export function mycommentStars(data) {
+  return request({
+    url: '/wuYe/commentStars/list',
+    method: 'get',
+    'data': data
+  })
+}
+// 进行收藏操作
+export function getStarsDj(data) {
+  return request({
+    url: '/wuYe/commentStars/getPartyNewsStars',
+    method: 'post',
+    'data': data
+  })
+}
+// 社区资讯评论-删除wuYe:commentIndex:remove
+export function deletepl(data) {
+  return request({
+    url: '/wuYe/commentIndex/delete/'+data,
+    method: 'get',
+  })
+}
+
 // 获取未读互动数量wuYe:news:getCommentInteractionCount
 export function getCommentInteractionCount(data) {
   return request({
@@ -187,6 +287,7 @@ export function getCommentInteraction(data) {
     'data': data
   })
 }
+
 // 员工培训手册-新增wuYe:manual:add
 export function manualAdd(data) {
   return request({

BIN
property_ui/manage/components/car/img/face/aini.gif


BIN
property_ui/manage/components/car/img/face/baibai.gif


BIN
property_ui/manage/components/car/img/face/baiyan.gif


BIN
property_ui/manage/components/car/img/face/baobao.gif


BIN
property_ui/manage/components/car/img/face/beishang.gif


BIN
property_ui/manage/components/car/img/face/bishi.gif


BIN
property_ui/manage/components/car/img/face/bizui.gif


BIN
property_ui/manage/components/car/img/face/caonima.gif


BIN
property_ui/manage/components/car/img/face/chanzui.gif


BIN
property_ui/manage/components/car/img/face/chijing.gif


BIN
property_ui/manage/components/car/img/face/dangao.gif


BIN
property_ui/manage/components/car/img/face/fahongbao.gif


BIN
property_ui/manage/components/car/img/face/fennu.gif


BIN
property_ui/manage/components/car/img/face/fuyun.gif


BIN
property_ui/manage/components/car/img/face/ganmao.gif


BIN
property_ui/manage/components/car/img/face/geili.gif


BIN
property_ui/manage/components/car/img/face/good.gif


BIN
property_ui/manage/components/car/img/face/guzhang.gif


BIN
property_ui/manage/components/car/img/face/haha.gif


BIN
property_ui/manage/components/car/img/face/haixiu.gif


BIN
property_ui/manage/components/car/img/face/han.gif


BIN
property_ui/manage/components/car/img/face/haqian.gif


BIN
property_ui/manage/components/car/img/face/heixian.gif


BIN
property_ui/manage/components/car/img/face/heng.gif


BIN
property_ui/manage/components/car/img/face/huatong.gif


BIN
property_ui/manage/components/car/img/face/hufen.gif


BIN
property_ui/manage/components/car/img/face/jiong.gif


BIN
property_ui/manage/components/car/img/face/jiyan.gif


BIN
property_ui/manage/components/car/img/face/keai.gif


BIN
property_ui/manage/components/car/img/face/kelian.gif


BIN
property_ui/manage/components/car/img/face/ku.gif


BIN
property_ui/manage/components/car/img/face/kun.gif


BIN
property_ui/manage/components/car/img/face/lai.gif


BIN
property_ui/manage/components/car/img/face/lazhu.gif


BIN
property_ui/manage/components/car/img/face/lei.gif


BIN
property_ui/manage/components/car/img/face/no.gif


BIN
property_ui/manage/components/car/img/face/nu.gif


BIN
property_ui/manage/components/car/img/face/numa.gif


BIN
property_ui/manage/components/car/img/face/ok.gif


BIN
property_ui/manage/components/car/img/face/qian.gif


BIN
property_ui/manage/components/car/img/face/qinqin.gif


BIN
property_ui/manage/components/car/img/face/ruo.gif


BIN
property_ui/manage/components/car/img/face/se.gif


BIN
property_ui/manage/components/car/img/face/shangxin.gif


BIN
property_ui/manage/components/car/img/face/shengbing.gif


BIN
property_ui/manage/components/car/img/face/shenma.gif


BIN
property_ui/manage/components/car/img/face/shiwang.gif


BIN
property_ui/manage/components/car/img/face/shuai.gif


BIN
property_ui/manage/components/car/img/face/shudaizi.gif


BIN
property_ui/manage/components/car/img/face/shui.gif


BIN
property_ui/manage/components/car/img/face/sikao.gif


BIN
property_ui/manage/components/car/img/face/taikaixin.gif


BIN
property_ui/manage/components/car/img/face/touxiao.gif


BIN
property_ui/manage/components/car/img/face/tu.gif


BIN
property_ui/manage/components/car/img/face/tuzi.gif


BIN
property_ui/manage/components/car/img/face/wabi.gif


BIN
property_ui/manage/components/car/img/face/weiguan.gif


BIN
property_ui/manage/components/car/img/face/weiqu.gif


BIN
property_ui/manage/components/car/img/face/weiwu.gif


BIN
property_ui/manage/components/car/img/face/weixiao.gif


BIN
property_ui/manage/components/car/img/face/xin.gif


BIN
property_ui/manage/components/car/img/face/xiongmao.gif


BIN
property_ui/manage/components/car/img/face/xixi.gif


BIN
property_ui/manage/components/car/img/face/xu.gif


BIN
property_ui/manage/components/car/img/face/ye.gif


BIN
property_ui/manage/components/car/img/face/yinxian.gif


BIN
property_ui/manage/components/car/img/face/yiwen.gif


BIN
property_ui/manage/components/car/img/face/youhengheng.gif


BIN
property_ui/manage/components/car/img/face/yun.gif


BIN
property_ui/manage/components/car/img/face/zan.gif


BIN
property_ui/manage/components/car/img/face/zhu.gif


BIN
property_ui/manage/components/car/img/face/zhuakuang.gif


BIN
property_ui/manage/components/car/img/face/zuohengheng.gif


BIN
property_ui/manage/components/car/img/hbl.jpg


BIN
property_ui/manage/components/car/img/icon/avatar.jpg


BIN
property_ui/manage/components/car/img/icon/avtar.png


BIN
property_ui/manage/components/car/img/icon/reply.png


+ 166 - 2
property_ui/manage/components/car/list.vue

@@ -275,7 +275,7 @@
 					</view>
 					<view class="stabox flexc">
 						<view class="time flex1">{{ite.publishTime}}</view>
-						<view class="btns flexc">
+						<view class="btns flexc" @click.stop="getScFn(ite,idx)">
 							<image :src="star" class="imga" v-if="ite.isStars=='Y'"></image>
 							<image :src="stara" class="imga" v-else></image>{{ite.starsCount||0}}
 						</view>
@@ -284,7 +284,7 @@
 						</view>
 					</view>
 				</view>
-				<view class="spdel" v-if="ite.right>0&&checkPermi(['wuYe:partyIds:remove'])" @click.stop="getDelFn(ite.partyId)">删除</view>
+				<view class="spdel" v-if="ite.right>0&&checkPermi(['wuYe:partyNews:remove'])" @click.stop="getDelFn(ite.partyId)">删除</view>
 			</view>
 			<!-- checkPermi(['system:menuFood:remove'])&& -->
 		</block>
@@ -312,6 +312,76 @@
 				<view class="spdel" v-if="ite.right>0&&checkPermi(['wuYe:news:remove'])" @click.stop="getDelFn(ite.communityId)">删除</view>
 			</view>
 		</block>
+		<!-- 评论信息 -->
+		<block v-if="type=='comment'">
+			<view class="pllist flex" v-for="(ite,idx) in datainfo" :key="`yj${idx}`">
+				<image :src="ite.commentUser.avatar?baseUrl+ite.commentUser.avatar:head" class="head"></image>
+				<view class="flex1 overh">
+					<view class="flexat mb14 ">
+						<view class="plname flex1 over">{{ite.commentUser.nickName}}</view>
+						<view class="plrbtn flexc flex0" @click.stop="getDzFn(ite.id,'2',ite.content,idx)">
+							<image :src="nicond" v-if="ite.isLike=='Y'"></image>
+							<image :src="niconb" class="imga" v-else></image>
+							<view>点赞</view>
+						</view>
+						<view class="plrbtn flexc flex0" @click.stop="getHfFn('yjhf',ite,ite.id)">
+							<image :src="nicone" class="imgb"></image>
+							<view>回复</view>
+						</view>
+						<view class="plrbtn flexc flex0" @click.stop="getDelFn(ite.id)" v-if="checkPermi(['wuYe:commentIndex:remove'])&&ite.isMyself=='Y'">
+							<image :src="del" class="imgc"></image>
+							<view class="cof4">删除</view>
+						</view>
+					</view>
+					<view class="infotxt">
+						<rich-text v-if="ite.content" :nodes="analyzeEmoji(ite.content)"></rich-text>
+					<view class="infotime">{{ite.createDate}}</view></view>
+				
+					<!-- 二级回复 -->
+					<view class="pllist flex" v-for="(aite,aidx) in ite.childrenList" :key="`ej${aidx}`">
+						<image :src="aite.commentUser.avatar?baseUrl+aite.commentUser.avatar:head" class="head"></image>
+						<view class="flex1 overh">
+							<view class="flexat mb14 ">
+								<view class="plname flex1 over flexc">
+									<view class="over">{{aite.commentUser.nickName}}</view>
+									<block v-if="aite.toRoot=='Y'">
+										<image :src="rimg" class="rimg"></image>
+										<view class="over">{{aite.targetUser.nickName}}</view>
+									</block>
+									<!-- 判断是不是二级回复的回复 加字段-->
+									<!-- <block v-if="ite."></block> -->
+								</view>
+								<view class="plrbtn flexc flex0" @click.stop="getDzFn(aite.id,'2',aite.content,idx,aidx,'ejdz')">
+									<image :src="nicond" v-if="aite.isLike=='Y'"></image>
+									<image :src="niconb" class="imga" v-else></image>
+									<view>点赞</view>
+								</view>
+								<view class="plrbtn flexc flex0" @click.stop="getHfFn('ejhf',aite,ite.id)">
+									<image :src="nicone" class="imgb"></image>
+									<view>回复</view>
+								</view>
+								<view class="plrbtn flexc flex0" @click.stop="getDelFn(aite.id)" v-if="checkPermi(['wuYe:commentIndex:remove'])&&aite.isMyself=='Y'">
+									<image :src="del" class="imgc"></image>
+									<view class="cof4">删除</view>
+								</view>
+							</view>
+							<view class="infotxt">
+								<rich-text v-if="aite.content" :nodes="analyzeEmoji(aite.content)"></rich-text>
+								<view class="infotime">{{aite.createDate}}</view></view>
+						</view>
+					</view>
+					<view class="flexc" v-if="ite.childrenListCount>0">
+						<view class="zhanbox flexc" v-if="ite.reachflag" @click.stop="getZhanFn(ite,idx)">
+							<block v-if="ite.childrenList&&ite.childrenList.length">展开更多</block>
+							<block v-else>展开{{ite.childrenListCount}}条回复</block>
+							<image :src="upimg" class="zhan"></image>
+						</view>
+						<view v-if="ite.childrenList&&ite.childrenList.length" class="zhanbox flexc ml10" @click.stop="getShouFn(idx)">收起<image :src="upimg"></view>
+					</view>
+					<!-- <view style="height: 16rpx;" v-else></view>	 -->
+				</view>
+			</view>
+		</block>
 		<!-- 员工图文 -->
 		<block v-if="type=='ystv'">
 			<view class="walists" v-for="(ite,idx) in datainfo" :key="idx" @click="getPut(ite.manualId)"
@@ -457,6 +527,12 @@
 				star:require('@/manage/static/news/starb.png'),
 				stara:require('@/manage/static/news/stara.png'),
 				eye:require('@/manage/static/community/eye.png'),
+				nicona:require('@/manage/static/news/nicona.png'),
+				niconb:require('@/manage/static/news/niconb.png'),
+				niconc:require('@/manage/static/news/niconc.png'),
+				nicond:require('@/manage/static/news/nicond.png'),
+				nicone:require('@/manage/static/news/nicone.png'),
+				del:require('@/manage/static/news/delb.png'),
 				baseUrl:config.baseUrl,
 				delBtnWidth:66,//左滑默认宽度
 			}
@@ -547,6 +623,67 @@
 				// this.datainfo.splice(idx,1,obj);
 				this.datainfo[idx].zhanflag=!this.datainfo[idx].zhanflag
 			},
+			analyzeEmoji(cont){
+			      //编译表情替换成图片展示出来
+			      var pattern1 = /\[[\u4e00-\u9fa5]+\]/g;
+			      var pattern2 = /\[[\u4e00-\u9fa5]+\]/;
+			      var content = cont.match(pattern1);
+			      var str = cont;
+			      if (content) {
+			        for (var i = 0; i < content.length; i++) {
+			          for (var j = 0; j < this.OwOlist.length; j++) {
+			            if ("[" + this.OwOlist[j].title + "]" == content[i]) {
+			              var src = this.OwOlist[j].url;
+			              break;
+			            }
+			          }
+			          var s = require("./img/face/" + src);
+			          var imoj = "<img src='" + s + "'/>";
+			
+			          str = str.replace(pattern2, imoj);
+			        }
+			      }
+			      return str;
+			    },
+			getZhanFn(ite,idx){
+				var obj={
+					ite:ite,
+					idx:idx
+				}
+				this.$emit("getZhanFn",obj)
+			},
+			getDzFn(id,type,content,idx,aidx,atype){
+				var obj={
+					id:id,
+					type:type,
+					content:content,
+					idx:idx,
+					aidx:aidx,
+					atype:atype
+				}
+				this.$emit("getDzFn",obj)
+			},
+			getScFn(ite,idx){
+				var obj={
+					ite:ite,
+					idx:idx
+				}
+				this.$emit("getScFn",obj)
+			},
+			getHfFn(type,ite,id){
+				var cuser=JSON.parse(JSON.stringify(ite.commentUser))
+				var obj={
+					parentId:id,
+					toUserId:cuser.id,
+					toNickName:cuser.nickName,
+					toAvatar:cuser.avatar,
+					type:type||""
+				}
+				this.$emit("getHfFn",obj)
+			},
+			getShouFn(idx){
+				this.$emit("getShouFn",idx)
+			},
 			getPreview(idx,arr) {
 				var newArr=[];
 				arr.forEach(ite=>{
@@ -772,6 +909,33 @@ font-size: 26rpx;color: #272727;display: flex;line-height: 34rpx;
 		
 	}
 }
+//评论
+.pllist{padding-top: 20rpx;margin-bottom: 16rpx;border-bottom: 2rpx solid #DADADA;
+	.head{width: 40rpx;height: 40rpx;margin-right: 18rpx;flex: 0 0 auto;border-radius: 50%;}
+	.plname{font-weight: bold;font-size: 30rpx;color: #161616;
+		view{max-width: 50%;}
+	}
+	.plrbtn{margin-left: 36rpx;
+		image{width: 26rpx;height: 24rpx;margin-right: 16rpx;
+			&.imga{width: 26rpx;height: 26rpx;}
+			&.imgb{width: 26rpx;height: 22rpx;}
+		}
+		view{font-weight: bold;font-size: 24rpx;color: #314081;}
+	}
+	.infotxt{font-weight: 500;font-size: 26rpx;color: #161616;line-height: 40rpx;margin-bottom: 30rpx;
+		&:before {content: "";float: right;width: 0;height: calc(100% - 16px);background: red;}
+		.infotime{font-weight: 500;font-size: 24rpx;color: #666666; float: right;clear: both;}	
+		image{width: 44rpx;height: 44rpx;}
+	}
+	.pllist{
+		padding-top: 0;border-bottom: none;margin-bottom: 0;
+	}
+	.zhanbox{font-weight: 500;font-size: 24rpx;color: #AAAAAA;padding: 16rpx 0;
+		image{width: 20rpx;height: 12rpx;margin-left: 18rpx;transition: all 0.3s;
+			&.zhan{transform: rotate(-180deg);}
+		}
+	}
+}
 // 视频
 .videolists{
 	background: #FFFFFF;margin-bottom: 24rpx;border-radius: 20rpx;

+ 150 - 0
property_ui/manage/pages/community/djdetail.vue

@@ -0,0 +1,150 @@
+<template>
+	<view class="ndetail ">
+		<image :src="nonews" v-if="datainfo.status==2" class="noimg"></image>
+		<!-- 详情 -->
+		<view class="ndbox mb12" v-else>
+			<view class="plr15">
+				<view class="tit">{{datainfo.partyTitle}}</view>
+				<view class="time mb12">{{datainfo.publishTime}}</view>
+				<view class="rich">
+					<rich-text :nodes="partyContent" style="word-break: break-all;"></rich-text>
+				</view>
+			</view>
+			<view class="ndbfox flexc">
+			<!-- 	<view class="flexcc ndbflist">
+					<image :src="nicona"></image>
+					<view>32</view>
+				</view> -->
+				<view class="flexcc ndbflist">
+					<image :src="eye" class="imgb"></image>
+					<view>{{datainfo.viewCount}}</view>
+				</view>
+				<view class="flexcc ndbflist" @click="getScFn()">
+					<image :src="starb" v-if="datainfo.isStars=='Y'"></image>
+					<image :src="niconc" v-else></image>
+					<view>{{datainfo.starsCount}}</view>
+				</view>
+			</view>
+		</view>
+	<loading></loading>	
+	</view>
+</template>
+
+<script>
+	import config from '@/config'
+	const baseUrl = config.baseUrl
+	import { checkPermi, checkRole } from "@/utils/permission"; // 权限判断函数
+	import {partyNewsDet,getStarsDj} from "@/api/work/manage.js"
+	export default{
+		components:{},
+		data(){
+			return{
+				nicona:require('@/manage/static/news/nicona.png'),
+				niconb:require('@/manage/static/news/niconb.png'),
+				niconc:require('@/manage/static/news/niconc.png'),
+				nicond:require('@/manage/static/news/nicond.png'),
+				nicone:require('@/manage/static/news/nicone.png'),
+				head:require('@/manage/static/news/head.png'),
+				starb:require('@/manage/static/news/starb.png'),
+				eye:require('@/manage/static/news/eye.png'),
+				nonews:require('@/manage/static/news/nonews.png'),
+				datainfo:{
+					
+				},
+				partyContent:'',
+				text:'',
+				id:"",
+				userId:this.$store.state.user.userId,
+				nickName:this.$store.state.user.nickName,
+				avatar:this.$store.state.user.avatar,
+			}
+		},
+		onLoad: function(e) {
+			this.id=e.id;
+			this.getDetailFn()
+		},
+		// 上拉触底加载更多触发事件
+		onReachBottom() {
+			if (this.reachflag) {
+				this.pageNum++
+				this.getDataFn()
+			}
+		},
+		methods:{
+			checkPermi, checkRole,
+			getDetailFn(){
+				partyNewsDet(this.id).then(res=>{
+					if(res.code==200){
+						this.datainfo=res.data;
+						var data=JSON.parse(JSON.stringify(res.data))
+						if(data.partyContent){
+							this.partyContent=this.formatRichText(data.partyContent)
+						}
+					}
+				})
+			},
+			getScFn(type){
+				var params={
+					userId:this.userId,
+					nickName:this.nickName,
+					avatar:this.avatar,
+					targetType:'2',//目标类型(1:社区 2:党建 )
+					targetId:this.id,
+					targetTitle:this.datainfo.partyTitle,
+				}
+				getStarsDj(params).then(res=>{
+					if(res.code==200){
+						uni.$emit('partyNewsList')
+						if(this.datainfo.isStars=='Y'){
+							this.$toast("取消收藏成功");
+							this.datainfo.isStars='N';
+							this.datainfo.starsCount--;
+						}else{
+							this.$toast("收藏成功");
+							this.datainfo.isStars='Y';
+							this.datainfo.starsCount++
+						}
+					}
+				})
+			},
+			//解析富文本方法
+			formatRichText(html) {
+					let newContent = html.replace(/<img[^>]*>/gi, function(match, capture) {
+						match = match.replace(/style="[^"]+"/gi, '').replace(/style='[^']+'/gi, '').replace(/style=""/gi, '');
+						match = match.replace(/width="[^"]+"/gi, '').replace(/width='[^']+'/gi, '');
+						match = match.replace(/height="[^"]+"/gi, '').replace(/height='[^']+'/gi, '');
+						return match;
+					});
+					newContent = newContent.replace(/style="[^"]+"/gi, function(match, capture) {
+						match = match.replace(/width:[^;]+;/gi, 'max-width:100%;').replace(/width:[^;]+;/gi, 'max-width:100%;');
+						return match;
+					});
+					newContent = newContent.replace(/<br[^>]*\/>/gi, '');
+					newContent = newContent.replace(/\<img src="/gi,
+						'<img style="max-width:100%;height:auto;display:block;margin:10rpx auto;" src="' +baseUrl);
+					return newContent;
+			},
+		}
+	}
+</script>
+<style>
+	page{background: #F3F3F0;}
+</style>
+<style lang="scss" scoped>
+.ndetail{
+	min-height: 100vh;padding: 20rpx 18rpx 100rpx;
+	.ndbox{background: #FFFFFF;border-radius: 20rpx;padding-top: 30rpx;
+		.tit{font-weight: bold;font-size: 32rpx;color: #272727;margin-bottom: 14rpx;text-align: center;padding-top: 4rpx;}
+		.time{font-weight: 500;font-size: 24rpx;color: #AAAAAA;text-align: center;}
+		.rich{border-top: 2rpx solid #E5E5E5;padding: 28rpx 0;}	
+		.ndbfox{
+			border-top: 2rpx solid #E5E5E5;
+			.ndbflist{width: 33.3%;min-height: 78rpx;padding: 16rpx 0;box-sizing: border-box;
+				image{width: 26rpx;height: 26rpx;margin-right: 26rpx;}
+				view{font-weight: 500;font-size: 26rpx;color: #666666;}
+				.imgb{width: 24rpx;height: 18rpx;margin-right: 10rpx;}
+			}
+		}
+	}
+}
+</style>

+ 45 - 7
property_ui/manage/pages/community/newsdj.vue

@@ -5,12 +5,12 @@
 				<image :src="djtop"></image>本社区党员共<text>{{count}}</text>人
 			</view>
 			<view class="tabtop flexc">
-				<view class="tabt" :class="tabval==ite.dictValue?'act':''" v-for="(ite,idx) in wzlxList" :key="idx" @click="getTabFn(ite.dictValue)">{{ite.dictLabel}}</view>
+				<view class="tabt" :class="tabval==ite.dictValue?'act':''" v-for="(ite,idx) in tablist" :key="idx" @click="getTabFn(ite.dictValue)">{{ite.dictLabel}}</view>
 			</view>
 		</view>
 		<!-- 列表 -->
 		<view class="carlists">
-			<car-list :datainfo="list" :wzlxList="wzlxList" :wtdt="wtdt" type='newsdj' @getDetail="getDetail" @getDelFn="getDelFn"></car-list>
+			<car-list :datainfo="list" :wzlxList="wzlxList" :wtdt="wtdt" type='newsdj' @getDetail="getDetail"  @getScFn="getScFn"></car-list>
 		</view>
 		<block v-if="checkPermi(['wuYe:partyNews:add'])">
 			<view style="height: 100rpx;"></view>
@@ -27,7 +27,7 @@
 	import carList from "@/manage/components/car/list.vue"
 	import { checkPermi, checkRole } from "@/utils/permission"; // 权限判断函数
 	import {getDictionaryFn} from "@/api/system/user.js"
-	import {partyNewsList,partyNewsDel,partyNewsCount} from "@/api/work/manage.js"
+	import {partyNewsList,partyNewsDel,partyNewsCount,getStarsDj} from "@/api/work/manage.js"
 	export default{
 		components:{carList},
 		data(){
@@ -41,6 +41,7 @@
 				reachflag: true,
 				wtdt:'',
 				tabval:'',
+				tablist:[{dictLabel:"已停用",dictValue:'yty'}],
 				wzlxList:[],
 				baseUrl:config.baseUrl,
 				count:'',
@@ -77,6 +78,8 @@
 									dictValue: v.dictValue
 								}
 							})
+							var newArr=JSON.parse(JSON.stringify(this.tablist))
+							this.tablist=this.wzlxList.concat(newArr)
 							this.getDataFn()
 						}
 					}
@@ -94,7 +97,7 @@
 				this.$tab.navigateTo("/manage/pages/community/newsadddj")
 			},
 			getDetail(id){
-				this.$tab.navigateTo("/manage/pages/community/newsadddj?id="+id)
+				this.$tab.navigateTo("/manage/pages/community/djdetail?id="+id)
 			},
 			getrefreshData(){
 				this.pageNum=1;
@@ -133,11 +136,46 @@
 						'<img style="max-width:100%;height:auto;display:block;margin:10rpx auto;" src="' +this.baseUrl);
 					return newContent;
 			},
+			// 收藏
+			getScFn(ite){
+				var data=JSON.parse(JSON.stringify(ite))
+				var info=data.ite;
+				var idx=data.idx;
+				var params={
+					userId:this.userId,
+					nickName:this.nickName,
+					avatar:this.avatar,
+					targetTitle:info.partyTitle,
+					targetId:info.partyId,
+					targetType:'2',//目标类型(1:社区 2:党建 )
+				}
+				getStarsDj(params).then(res=>{
+					if(res.code==200){
+						if(info.isStars=='Y'){
+							this.$toast("取消收藏成功");
+							this.list[idx].isStars='N';
+							this.list[idx].starsCount--;
+							// this.datainfo.isStar='N';
+							// this.datainfo.userStars--;
+						}else{
+							this.$toast("收藏成功");
+							this.list[idx].isStars='Y';
+							this.list[idx].starsCount++;
+						}	
+					}
+				})
+			},
 			getDataFn(){
 				var params={
 					pageSize:this.pageSize,
 					pageNum: this.pageNum,
-					partyType:this.tabval
+					
+				}
+				if(this.tabval=='yty'){
+					params.status='2'
+				}else{
+					params.partyType=this.tabval;
+					params.status='1'
 				}
 				partyNewsList(params).then(res=>{
 					if(res.code==200){
@@ -186,8 +224,8 @@ background: #E4EDFF;
 		text{font-size: 32rpx;color: #0156FE;padding: 0 10rpx;}
 		image{width: 28rpx;height: 26rpx;flex: 0 0 auto;margin-right: 12rpx;}
 	}
-	.tabtop{padding-bottom: 40rpx;padding-top: 14rpx;
-		.tabt{font-weight: 500;font-size: 32rpx;color: #666666;position: relative;line-height: 56rpx;padding: 0 40rpx;
+	.tabtop{padding-bottom: 40rpx;padding-top: 14rpx;overflow: auto;
+		.tabt{font-weight: 500;font-size: 32rpx;color: #666666;position: relative;line-height: 56rpx;flex: 0 0 auto;text-align: center;min-width: 140rpx;margin: 0 20rpx;
 			&.act{font-weight: bold;font-size: 32rpx;color: #272727;
 			&::after{content: '';width: 40rpx;height: 10rpx;background: #0156FE;border-radius: 6rpx;position: absolute;left: 50%;margin-left: -20rpx;bottom: -10rpx;}
 			}

+ 25 - 17
property_ui/manage/pages/community/newssq.vue

@@ -2,10 +2,10 @@
 	<view class="car">
 		<view class="cartop">
 			<view class="tabtop flexc">
-				<view class="tabt" :class="tabval==ite.dictValue?'act':''" v-for="(ite,idx) in wzlxList" :key="idx" @click="getTabFn(ite.dictValue)">{{ite.dictLabel}}</view>
-				<view class="numbox">
-					未读互动<text>{{hdcount}}</text>
-				</view>
+				<view class="tabt" :class="tabval==ite.dictValue?'act':''" v-for="(ite,idx) in tablist" :key="idx" @click="getTabFn(ite.dictValue)">{{ite.dictLabel}}</view>	
+			</view>
+			<view class="numbox" @click="getHdFn">
+				未读互动<text>{{hdcount}}</text>
 			</view>
 		</view>
 		<!-- 列表 -->
@@ -36,6 +36,7 @@
 				reachflag: true,
 				wtdt:'',
 				tabval:'',
+				tablist:[{dictLabel:"已停用",dictValue:'yty'}],
 				wzlxList:[],
 				hdcount:0,
 			}
@@ -79,6 +80,8 @@
 									dictValue: v.dictValue
 								}
 							})
+							var newArr=JSON.parse(JSON.stringify(this.tablist))
+							this.tablist=this.wzlxList.concat(newArr)
 							this.getDataFn()
 						}
 					}
@@ -87,11 +90,15 @@
 			getAddFn(){
 				this.$tab.navigateTo("/manage/pages/community/newsaddsq")
 			},
+			getHdFn(){
+				this.$tab.navigateTo("/mine/pages/news/index");
+				this.hdcount=0;
+			},
 			getPut(id){
 				if(checkPermi((['wuye:news:edit']))){
 					this.$tab.navigateTo("/manage/pages/community/newsaddsq?id="+id)
 				}else{
-					this.$tab.navigateTo("/manage/pages/community/newsygdetail?id="+id)
+					this.$tab.navigateTo("/manage/pages/community/newssqdetail?id="+id)
 				}
 			},
 			getDetail(id){
@@ -142,7 +149,12 @@
 				var params={
 					pageSize:this.pageSize,
 					pageNum: this.pageNum,
-					communityType:this.tabval
+				}
+				if(this.tabval=='yty'){
+					params.status='2'
+				}else{
+					params.communityType=this.tabval;
+					params.status='1'
 				}
 				newsList(params).then(res=>{
 					if(res.code==200){
@@ -186,21 +198,17 @@
 <style lang="scss" scoped>
 .car{padding: 148rpx 0 110rpx;}
 .cartop{position: fixed;left: 0;right: 0;top: 0;background-color: #ffffff;z-index: 2;
-	.tabtop{padding:28rpx 200rpx 40rpx 0;position: relative;
-		.tabt{font-weight: 500;font-size: 32rpx;color: #666666;position: relative;line-height: 56rpx;padding: 0 40rpx;
+	.tabtop{padding:28rpx 200rpx 40rpx 0;position: relative;overflow: auto;
+		.tabt{font-weight: 500;font-size: 32rpx;color: #666666;position: relative;line-height: 56rpx;flex: 0 0 auto;text-align: center;margin: 0 10rpx;padding: 0 20rpx;
 			&.act{font-weight: bold;font-size: 32rpx;color: #272727;
 			&::after{content: '';width: 40rpx;height: 10rpx;background: #0156FE;border-radius: 6rpx;position: absolute;left: 50%;margin-left: -20rpx;bottom: -10rpx;}
 			}
-		}
-		.numbox{width: 188rpx;height: 58rpx;background-color: #E6E6E6;border-radius: 29rpx 0 0 29rpx;font-weight: 500;font-size: 26rpx;color: #0156FE;display: flex;align-items: center;justify-content: center;position: absolute;right: 0;
-			text{height: 20rpx;min-width: 20rpx;padding: 0 8rpx;box-sizing: border-box;line-height: 20rpx;margin-left: 10rpx;font-weight: bold;
-font-size:16rpx;
-color: #FCF9F1;
-
-background: #D32C26;
-border-radius: 5px;}
-		}
+		}	
 	}
+	.numbox{width: 188rpx;height: 58rpx;background-color: #E6E6E6;border-radius: 29rpx 0 0 29rpx;font-weight: 500;font-size: 26rpx;color: #0156FE;display: flex;align-items: center;justify-content: center;position: absolute;right: 0;top: 28rpx;
+				text{height: 20rpx;min-width: 20rpx;padding: 0 8rpx;box-sizing: border-box;line-height: 20rpx;margin-left: 10rpx;font-weight: bold;
+	font-size:16rpx;color: #FCF9F1;background: #D32C26;border-radius: 5px;}
+			}
 }
 .carlists{padding: 0 18rpx;}
 </style>

+ 278 - 106
property_ui/manage/pages/community/newssqdetail.vue

@@ -1,95 +1,46 @@
 <template>
-	<view class="ndetail ">
-		<!-- 详情 -->
-		<view class="ndbox mb12">
-			<view class="plr15">
-				<view class="tit">{{datainfo.communityTitle}}</view>
-				<view class="time mb12">{{datainfo.publishTime}}</view>
-				<view class="rich">
-					<rich-text :nodes="communityContent" style="word-break: break-all;"></rich-text>
-				</view>
-			</view>
-			<view class="ndbfox flexc">
-				<view class="flexcc ndbflist">
-					<image :src="nicona"></image>
-					<view>32</view>
-				</view>
-				<view class="flexcc ndbflist">
-					<image :src="niconb"></image>
-					<view>32</view>
-				</view>
-				<view class="flexcc ndbflist">
-					<image :src="niconc"></image>
-					<view>32</view>
-				</view>
-			</view>
-		</view>
-		<view class="ndbox mb12 plr15">
-			<view class="pltit">评论<text>(31)</text></view>
-			<!-- 评论列表 -->
-			<view class="pllist flex">
-				<image :src="head" class="head"></image>
-				<view class="flex1 overh">
-					<view class="flexat mb14 ">
-						<view class="plname flex1 over">床前明月光</view>
-						<view class="plrbtn flexc flex0">
-							<!-- <image :src="niconb" class="imga"></image> -->
-							<image :src="nicond"></image>
-							<view>点赞</view>
-						</view>
-						<view class="plrbtn flexc flex0">
-							<image :src="nicone" class="imgb"></image>
-							<view>回复</view>
-						</view>
+	<view class="ndetail">
+		<image :src="nonews" v-if="datainfo.status==2" class="noimg"></image>
+		<block v-else>
+			<!-- 详情 -->
+			<view class="ndbox mb12">
+				<view class="plr15">
+					<view class="tit">{{datainfo.communityTitle}}</view>
+					<view class="time mb12">{{datainfo.publishTime}}</view>
+					<view class="rich">
+						<rich-text :nodes="communityContent" style="word-break: break-all;"></rich-text>
 					</view>
-					<view class="infotxt mb15">支持!去看一下优惠政策!<view class="infotime">12-3</view></view>
 				</view>
-			</view>
-			<view class="pllist flex">
-				<image :src="head" class="head"></image>
-				<view class="flex1 overh">
-					<view class="flexat mb14 ">
-						<view class="plname flex1 over">疑是地上霜</view>
-						<view class="plrbtn flexc flex0">
-							<image :src="niconb" class="imga"></image>
-							<!-- <image :src="nicond"></image> -->
-							<view>点赞</view>
-						</view>
-						<view class="plrbtn flexc flex0">
-							<image :src="nicone" class="imgb"></image>
-							<view>回复</view>
-						</view>
+				<view class="ndbfox flexc">
+					<view class="flexcc ndbflist" @click="getHfFn">
+						<image :src="nicona"></image>
+						<view>{{datainfo.userComment}}</view>
 					</view>
-					<view class="infotxt mb15">提前缴一年的物业费,可以免一个月吗?<view class="infotime">12-3</view></view>
-					<!-- 二级回复 -->
-					<view class="pllist flex">
-						<image :src="head" class="head"></image>
-						<view class="flex1 overh">
-							<view class="flexat mb14 ">
-								<view class="plname flex1 over">幸福小区物业</view>
-								<view class="plrbtn flexc flex0">
-									<image :src="niconb" class="imga"></image>
-									<!-- <image :src="nicond"></image> -->
-									<view>点赞</view>
-								</view>
-								<view class="plrbtn flexc flex0">
-									<image :src="nicone" class="imgb"></image>
-									<view>回复</view>
-								</view>
-							</view>
-							<view class="infotxt mb15">尊敬的业主朋友,您的建议我司已收到,将在内 部讨论后于物业公告中告知结果,谢谢您的宝贵 建议!<view class="infotime">12-3</view></view>
-						</view>
+					<view class="flexcc ndbflist" @click="getDzFn('1')">
+						<image :src="nicond" v-if="datainfo.isLike=='Y'"></image>
+						<image :src="niconb" v-else></image>
+						<view>{{datainfo.userLikes}}</view>
+					</view>
+					<view class="flexcc ndbflist" @click="getScFn('1')">
+						<image :src="starb" v-if="datainfo.isStar=='Y'"></image>
+						<image :src="niconc" v-else></image>
+						<view>{{datainfo.userStars}}</view>
 					</view>
 				</view>
 			</view>
-		</view>
-		<!-- 评论 -->
-		<view class="pjfbtn">
-			<view class="flexc pjfbox">
-				<uni-easyinput type="textarea" autoHeight v-model="text" :inputBorder='false' placeholder="发表我的评论…" />
-				<view class="btns">发送</view>
+			<view class="ndbox mb12 plr15">
+				<view class="pltit">评论<text>({{commenttotal}})</text></view>
+				<!-- 评论列表 -->
+				<box-list :datainfo="commentlist" type="comment" @getZhanFn="getZhanFn" @getShouFn="getShouFn" @getDzFn="getplDzFn" @getHfFn="getplHfFn" @getDelFn="getDelFn"></box-list>
+			</view>
+			<!-- 评论 -->
+			<view class="pjfbtn">
+				<view class="flexc pjfbox">
+					<uni-easyinput :focus="isfocus" type="textarea" autoHeight v-model="text" :inputBorder='false' placeholder="发表我的评论…" />
+					<view class="btns" @click="getPinLunFn">发送</view>
+				</view>
 			</view>
-		</view>
+		</block>
 	<loading></loading>	
 	</view>
 </template>
@@ -98,9 +49,10 @@
 	import config from '@/config'
 	const baseUrl = config.baseUrl
 	import { checkPermi, checkRole } from "@/utils/permission"; // 权限判断函数
-	import {newsDet} from "@/api/work/manage.js"
+	import boxList from "@/manage/components/car/list.vue"
+	import {getRootComment,getParentComment,commentIndex,giveTheThumbs,getStars,commentContentPut,deletepl,newsDet} from "@/api/work/manage.js"
 	export default{
-		components:{},
+		components:{boxList},
 		data(){
 			return{
 				nicona:require('@/manage/static/news/nicona.png'),
@@ -109,17 +61,31 @@
 				nicond:require('@/manage/static/news/nicond.png'),
 				nicone:require('@/manage/static/news/nicone.png'),
 				head:require('@/manage/static/news/head.png'),
+				starb:require('@/manage/static/news/starb.png'),
+				nonews:require('@/manage/static/news/nonews.png'),
+				baseUrl:config.baseUrl,
 				datainfo:{
 					
 				},
 				communityContent:'<span>hello uni-app x!</span><br/><span>uni-app x,终极跨平台方案</span>',
 				text:'',
 				id:"",
+				commentlist:[],//评论列表
+				commenttotal:"0",
+				pageSize: 10,
+				pageNum: 1,
+				userId:this.$store.state.user.userId,
+				nickName:this.$store.state.user.nickName,
+				avatar:this.$store.state.user.avatar,
+				isRoot:'1',//isRoot,根评论id 1:根评论 2:子评论
+				isfocus:false,
+				plinfo:'',//二级评论信息
 			}
 		},
 		onLoad: function(e) {
 			this.id=e.id;
-			// this.getDetailFn()
+			this.getDetailFn();
+			this.getRootComment()
 		},
 		// 上拉触底加载更多触发事件
 		onReachBottom() {
@@ -141,6 +107,228 @@
 					}
 				})
 			},
+			// 删除
+			getDelFn(id){
+				var that=this;
+				// var info=JSON.parse(JSON.stringify(data))
+				// var type=info.type;
+				// var pid=info.pid;
+				deletepl(id).then(res=>{
+					if(res.code==200){
+						this.$toast("删除成功");
+						uni.$emit('partyNewsList')
+						setTimeout(function(){
+							// 删除数据
+							that.getRootComment()
+						},1500)
+					}
+				})
+			},
+			getZhanFn(obj){
+				// 获取自己
+				var obj=JSON.parse(JSON.stringify(obj));
+				var idx=obj.idx;
+				var list=JSON.parse(JSON.stringify(this.commentlist))[idx]
+				var params={
+					parentId:list.id,
+					pageSize:list.pageSize,
+					pageNum: list.pageNum,
+				}
+				getParentComment(params).then(res=>{
+					if(res.code==200){
+						var reachflag=true;
+						if (res.data.length < obj.pageSize) {
+							list.reachflag = false
+						} else {
+							var num = parseInt(res.data.length) + parseInt(obj.pageSize) * parseInt(obj.pageNum -	1)
+							if (num < obj.childrenListCount) {
+								list.reachflag = true
+							} else {
+								list.reachflag = false
+							}
+						}
+						list.childrenList=list.childrenList.concat(res.data)
+						list.pageNum=obj.pageNum++
+						this.commentlist.splice(idx,1,list)
+					}
+				})
+			},
+			
+			// 点赞
+			getDzFn(type,info){
+				var params={
+					userId:this.userId,
+					nickName:this.nickName,
+					avatar:this.avatar,
+					targetType:type,
+					communityId:this.id,
+				}
+				if(type==1){
+					params.targetId=this.id;
+					params.targetTitle=this.datainfo.communityTitle;
+				}else {
+					params.targetId=info.id;
+					params.targetTitle=info.content;
+				}
+				giveTheThumbs(params).then(res=>{
+					if(res.code==200){
+						uni.$emit('partyNewsList')
+						if(type==1){
+							if(this.datainfo.isLike=='Y'){
+								this.$toast("取消点赞成功");
+								this.datainfo.isLike='N';
+								this.datainfo.userLikes--;
+							}else{
+								this.$toast("点赞成功");
+								this.datainfo.isLike='Y';
+								this.datainfo.userLikes++;
+							}
+						}else{
+							var idx=info.idx;
+							var aidx=info.aidx;
+							var atype=info.atype;
+							var obj=JSON.parse(JSON.stringify(this.commentlist))[idx];
+							if(atype&&atype=='ejdz'){
+								var erobj=obj.childrenList[aidx];
+								if(erobj.isLike=='Y'){
+									this.$toast("取消点赞成功");
+									erobj.isLike='N';
+								}else{
+									this.$toast("点赞成功");
+									erobj.isLike='Y';
+								}
+								obj.childrenList[aidx]=JSON.parse(JSON.stringify(erobj))
+								this.commentlist.splice(idx,1,obj)
+							}else{
+								if(obj.isLike=='Y'){
+									this.$toast("取消点赞成功");
+									obj.isLike='N';
+								}else{
+									this.$toast("点赞成功");
+									obj.isLike='Y';
+								}
+								this.commentlist.splice(idx,1,obj)
+							}
+						}	
+					}
+				})
+			},
+			getplDzFn(data){
+				var info=JSON.parse(JSON.stringify(data))
+				console.log(info,1)
+				this.getDzFn('2',info)
+			},
+			// 收藏
+			getScFn(type){
+				var params={
+					userId:this.userId,
+					nickName:this.nickName,
+					avatar:this.avatar,
+					targetType:'1',//目标类型(1:社区 2:党建 )
+				}
+				params.targetId=this.id;
+				params.targetTitle=this.datainfo.communityTitle;
+				getStars(params).then(res=>{
+					if(res.code==200){
+						uni.$emit('partyNewsList')
+						if(this.datainfo.isStar=='Y'){
+							this.$toast("取消收藏成功");
+							this.datainfo.isStar='N';
+							this.datainfo.userStars--;
+						}else{
+							this.$toast("收藏成功");
+							this.datainfo.isStar='Y';
+							this.datainfo.userStars++
+						}	
+					}
+				})
+			},
+			// 评论回复
+			getHfFn(data){
+				this.isRoot='1';
+				this.isfocus=true;
+			},
+			getplHfFn(data){
+				this.plinfo=JSON.parse(JSON.stringify(data))
+				this.isRoot='2';
+				this.isfocus=true;
+			},
+			getPinLunFn(){
+				var params={
+					userId:this.userId,
+					nickName:this.nickName,
+					avatar:this.avatar,
+					isRoot:this.isRoot,
+					communityId:this.id,
+					communityType:this.datainfo.communityType,
+					communityTitle:this.datainfo.communityTitle,
+					commentContent:this.text,	
+				}
+				
+				if(this.isRoot==2){
+					var info=JSON.parse(JSON.stringify(this.plinfo))
+					if(info.type=='ejhf'){
+						params.toRoot='Y';
+					}
+					params.parentId=info.parentId;
+					params.toUserId=info.toUserId;
+					params.toNickName=info.toNickName;
+					params.toAvatar=info.toAvatar;
+				}
+				commentIndex(params).then(res=>{
+					if(res.code==200){
+						this.$toast('评论成功,等待审核')
+						this.text='';
+						this.isfocus=false;
+					}
+				})
+			},
+			getShouFn(idx){
+				var list=JSON.parse(JSON.stringify(this.commentlist))[idx];
+				list.childrenList=[];
+				list.pageNum=1;
+				list.reachflag=true;
+				this.commentlist.splice(idx,1,list)
+			},
+			getRootComment(){
+				var that=this;
+				var params={
+					communityId:this.id,
+					pageSize:this.pageSize,
+					pageNum: this.pageNum,
+				}
+				// userid,头像,nickname,标题(或者评论对象的内容)  点赞收藏评论,   
+				getRootComment(params).then(res=>{
+					if(res.code==200){
+						this.commenttotal=res.total;
+						if (res.rows.length < this.pageSize) {
+							this.reachflag = false
+							this.wtdt = '到底了~';
+						} else {
+							var num = parseInt(res.rows.length) + parseInt(this.pageSize) * parseInt(this.pageNum -	1)
+							if (num < res.total) {
+								this.reachflag = true
+								this.wtdt = ''
+							} else {
+								this.reachflag = false
+								this.wtdt = '到底了~';
+							}
+						}
+						var newArr=JSON.parse(JSON.stringify(res.rows))
+						newArr.forEach(ite=>{
+							ite.pageSize=1
+							ite.pageNum=10
+							ite.reachflag=true
+						})
+						if (this.pageNum == 1) {
+							this.commentlist = newArr;
+						} else {
+							this.commentlist = this.list.concat(newArr)
+						}
+						console.log(this.commentlist)
+					}
+				})
+			},
 			//解析富文本方法
 			formatRichText(html) {
 					let newContent = html.replace(/<img[^>]*>/gi, function(match, capture) {
@@ -155,7 +343,7 @@
 					});
 					newContent = newContent.replace(/<br[^>]*\/>/gi, '');
 					newContent = newContent.replace(/\<img src="/gi,
-						'<img style="max-width:100%;height:auto;display:block;margin:10rpx auto;" src="' +baseUrlimg);
+						'<img style="max-width:100%;height:auto;display:block;margin:10rpx auto;" src="' +baseUrl);
 					return newContent;
 			},
 		}
@@ -183,24 +371,7 @@
 .pltit{font-weight: bold;font-size: 30rpx;color: #272727;
 	text{margin-left: 24rpx;font-size: 24rpx;color: #666666;}
 }
-.pllist{padding-top: 20rpx;margin-bottom: 16rpx;border-bottom: 2rpx solid #DADADA;
-	.head{width: 40rpx;height: 40rpx;margin-right: 18rpx;flex: 0 0 auto;}
-	.plname{font-weight: bold;font-size: 30rpx;color: #161616;}
-	.plrbtn{margin-left: 36rpx;
-		image{width: 26rpx;height: 24rpx;margin-right: 16rpx;
-			&.imga{width: 26rpx;height: 26rpx;}
-			&.imgb{width: 26rpx;height: 22rpx;}
-		}
-		view{font-weight: bold;font-size: 24rpx;color: #314081;}
-	}
-	.infotxt{font-weight: 500;font-size: 26rpx;color: #161616;line-height: 40rpx;
-		&:before {content: "";float: right;width: 0;height: calc(100% - 16px);background: red;}
-		.infotime{font-weight: 500;font-size: 24rpx;color: #666666; float: right;clear: both;}	
-	}
-	.pllist{
-		padding-top: 0;border-bottom: none;margin-bottom: 0;
-	}
-}
+
 .pjfbtn{background: #FFFFFF;position: fixed;bottom: 0;left: 0;right: 0;padding:20rpx 48rpx;box-shadow: 0px 0px 18rpx 0px rgba(159,159,159,0.47);
 	.pjfbox{background: #E6E6E6;border-radius: 10rpx;
 		.btns{nt-weight: bold;padding: 0 34rpx;height: 60rpx;line-height: 60rpx;flex: 0 0 auto;
@@ -209,6 +380,7 @@
 	
 color: #314081;}
 }
+
 .pjfbtn /deep/ .uni-easyinput{flex: 1;font-size: 26rpx;color: #222327;}
 .pjfbtn /deep/ .uni-easyinput__content-textarea{min-height: 40rpx;font-size: 26rpx;margin: 0;background: #E6E6E6;box-sizing: border-box;padding: 10rpx 0 10rpx 36rpx;border-radius:10rpx 0 0 10rpx;}
 </style>

BIN
property_ui/manage/static/news/delb.png


BIN
property_ui/manage/static/news/nonews.png


+ 16 - 10
property_ui/mine/components/box/list.vue

@@ -12,13 +12,19 @@
 					<image :src="man" class="mhead flex0"></image>
 					<view class="flex1 overh">
 						<view class="flexc mb6">
-							<view class="name flex1 over">喜欢耶耶耶</view>
-							<view class="tit flex0 ml10">点赞了你的文章</view>
-							<view class="time flex0 ml10">02-26</view>
+							<view class="name flex1 over">{{ite.nickName}}</view>
+							<view class="tit flex0 ml10">
+								<block v-if="ite.targetType==1">评论</block>
+								<block v-if="ite.targetType==2">点赞</block>
+								<block v-if="ite.targetType==3">收藏</block>
+								<block v-if="ite.targetType==4">回复</block>
+								<block v-if="ite.targetType==5 ">点赞</block>
+								了你的文章</view>
+							<view class="time flex0 ml10">{{ite.createTime}}</view>
 						</view>
 						<view class="flexc overh mb4">
 							<view class="line bga"></view>
-							<view class="txt over flex1">物业服务费缴费公告</view>
+							<view class="txt over flex1">{{ite.targetTitle}}</view>
 							<image :src="rimg" class="rimg ml10"></image>
 						</view>
 					</view>
@@ -57,11 +63,10 @@
 					<view class="spdel" v-if="ite.right>0&&checkPermi(['wuYe:residentInfo:remove'])" @click.stop="getDelFn(ite.residentId)">删除</view>
 				</view>
 		</block>
-		<!-- 我的点赞,收藏,评论 -->
+		<!-- 我的点赞,收藏,评论 :data-idx="idx"
+					@touchstart="drawStart" @touchmove="drawMove" @touchend="drawEnd" :style="'right:'+ite.right+'px'"-->
 		<block v-if="type=='wdhd'">
-			<view class="mb12 pr"  v-for="(ite,idx) in datainfo" :key="idx"
-					:data-idx="idx"
-					@touchstart="drawStart" @touchmove="drawMove" @touchend="drawEnd" :style="'right:'+ite.right+'px'">
+			<view class="mb12 pr"  v-for="(ite,idx) in datainfo" :key="idx" @click="getDetail(ite)">
 				<view class="hdlist ">
 					<view class="pd12 flex">
 						<image :src="ite.avatar?baseUrl+ite.avatar:man" class="mhead flex0"></image>
@@ -80,7 +85,7 @@
 						</view>
 					</view>
 				</view>
-				<view class="spdel" v-if="ite.right>0&&checkPermi(['wuYe:residentInfo:remove'])" @click.stop="getDelFn(ite.residentId)">删除</view>
+				<!-- <view class="spdel" v-if="ite.right>0&&checkPermi(['wuYe:residentInfo:remove'])" @click.stop="getDelFn(ite.residentId)">删除</view> -->
 			</view>
 		</block>
 		<view class="shax" v-if="wtdt">{{wtdt}}</view>
@@ -158,6 +163,7 @@
 				return selectDictValue(list, data);
 			},
 			getDetail(e){
+				console.log(222)
 				this.$emit('getDetail',e)
 			},
 			getDelFn(e){
@@ -321,7 +327,7 @@
 // 互动
 .pd12{padding: 24rpx;}
 .hdlist{background: #FFFFFF;border-radius: 20rpx;position: relative;z-index: 1;
-	.mhead{width: 56rpx;height: 56rpx;margin-right: 20rpx;}
+	.mhead{width: 56rpx;height: 56rpx;margin-right: 20rpx;border-radius: 50%;}
 	.name{font-size: 28rpx;font-weight: bold;color: #272727;height: 56rpx;line-height: 56rpx;}
 	.tit{font-weight: 500;font-size: 22rpx;color: #666666;}
 	.time{font-weight: 500;font-size: 22rpx;color: #666666;}

+ 10 - 9
property_ui/mine/pages/news/index.vue

@@ -1,6 +1,6 @@
 <template>
 	<view class="news">
-		<box-list :datainfo="list" :wtdt="wtdt" type="myhd" @getDetail='getDetail'></box-list>
+		<box-list :datainfo="list" :wtdt="wtdt" type="myhd"></box-list>
 	<loading></loading>	
 	</view>
 </template>
@@ -10,11 +10,12 @@
 	const baseUrl = config.baseUrl
 	import boxList from "@/mine/components/box/list.vue"
 	import { checkPermi, checkRole } from "@/utils/permission"; // 权限判断函数
+	import {getCommentInteraction} from "@/api/work/manage.js"
 	export default{
 		components:{boxList},
 		data(){
 			return{
-				hrimg:require('@/static/logo.png'),
+				// hrimg:require('@/static/logo.png'),
 				list:[],
 				pageSize: 10,
 				pageNum: 1,
@@ -23,7 +24,7 @@
 			}
 		},
 		onLoad: function() {
-		
+			this.getDataFn()
 		},
 		onPageScroll(e) {
 			var scrollTop = Number(e.scrollTop);
@@ -68,14 +69,14 @@
 					pageSize:this.pageSize,
 					pageNum: this.pageNum,
 				}
-				params.noticeType=this.tabidx
-				getNoticeList(params).then(res=>{
+				getCommentInteraction(params).then(res=>{
 					if(res.code==200){
-						if (res.rows.length < this.pageSize) {
+						var data=res.data.list;
+						if (data.length < this.pageSize) {
 							this.reachflag = false
 							this.wtdt = '到底了~';
 						} else {
-							var num = parseInt(res.rows.length) + parseInt(this.pageSize) * parseInt(this.pageNum -	1)
+							var num = parseInt(data.length) + parseInt(this.pageSize) * parseInt(this.pageNum -	1)
 							if (num < res.total) {
 								this.reachflag = true
 								this.wtdt = ''
@@ -85,9 +86,9 @@
 							}
 						}
 						if (this.pageNum == 1) {
-							this.list = res.rows;
+							this.list = data;
 						} else {
-							this.list = this.list.concat(res.rows)
+							this.list = this.list.concat(data)
 						}
 					}else{
 						this.$toast(res.msg)

+ 27 - 3
property_ui/mine/pages/news/myhd.vue

@@ -16,23 +16,30 @@
 	const baseUrl = config.baseUrl
 	import boxList from "@/mine/components/box/list.vue"
 	import { checkPermi, checkRole } from "@/utils/permission"; // 权限判断函数
-	// import {mycommentStars,mycommentLikes,mycommentIndex} from "@/api/work/news.js"
+	import {mycommentStars,mycommentLikes,mycommentIndex} from "@/api/work/manage.js"
 	export default{
 		components:{boxList},
 		data(){
 			return{
-				hrimg:require('@/static/logo.png'),
+				// hrimg:require('@/static/logo.png'),
 				list:[],
 				pageSize: 10,
 				pageNum: 1,
 				reachflag: true,
 				wtdt:'',
 				tabval:'mypl',
+				userId:this.$store.state.user.userId,
 				tablist:[{tit:"评论",val:'mypl'},{tit:"点赞",val:'mydz'},{tit:"收藏",val:'mysc'},]
 			}
 		},
+		onUnload() {
+			uni.$off('partyNewsList')
+		},
 		onLoad: function() {
-			// this.getDataFn()
+			uni.$on('partyNewsList',(res)=>{
+				this.getrefreshData()
+			})
+			this.getDataFn()
 		},
 		onPageScroll(e) {
 			var scrollTop = Number(e.scrollTop);
@@ -55,6 +62,22 @@
 			// getNextFn(){
 			// 	this.$tab.navigateTo("/work/pages/business/add")
 			// },
+			getDetail(data){
+				var info=JSON.parse(JSON.stringify(data))
+				var type=this.tabval;
+				var targetType=info.targetType;//1:社区 2:党建 
+				if(type=='mypl'){
+					var id=info.communityId;
+					this.$tab.navigateTo("/manage/pages/community/newssqdetail?id="+id)
+				}else{
+					var id=info.targetId;
+					if(targetType==1){
+						this.$tab.navigateTo("/manage/pages/community/newssqdetail?id="+id)
+					}else if(targetType==2){
+						this.$tab.navigateTo("/manage/pages/community/djdetail?id="+id)
+					}
+				}
+			},
 			getDelFn(id){
 				var that=this;
 				// reservDel(data).then(res=>{
@@ -92,6 +115,7 @@
 				var params={
 					pageSize:this.pageSize,
 					pageNum: this.pageNum,
+					userId:this.userId
 				}
 				var tabval=this.tabval
 				if(tabval=='mypl'){

+ 3 - 3
property_ui/mine/pages/news/sh.vue

@@ -10,12 +10,12 @@
 	const baseUrl = config.baseUrl
 	import boxList from "@/mine/components/box/list.vue"
 	import { checkPermi, checkRole } from "@/utils/permission"; // 权限判断函数
-	// import {commentSh,commentContentPut} from "@/api/work/news.js"
+	import {commentSh,commentContentPut} from "@/api/work/manage.js"
 	export default{
 		components:{boxList},
 		data(){
 			return{
-				hrimg:require('@/static/logo.png'),
+				// hrimg:require('@/static/logo.png'),
 				list:[],
 				pageSize: 10,
 				pageNum: 1,
@@ -24,7 +24,7 @@
 			}
 		},
 		onLoad: function() {
-			// this.getDataFn()
+			this.getDataFn()
 		},
 		onPageScroll(e) {
 			var scrollTop = Number(e.scrollTop);

+ 9 - 0
property_ui/pages.json

@@ -216,6 +216,15 @@
 					}
 				}
 			},
+			{
+				"path": "pages/community/djdetail",
+				"style": {
+					"navigationBarTitleText": "党建资讯",
+					"h5":{
+						"titleNView":false
+					}
+				}
+			},
 			{
 				"path": "pages/community/newssq",
 				"style": {

+ 34 - 40
property_ui/pages/mine/index.vue

@@ -74,6 +74,27 @@
 					<view class="tit flex1">物业费催缴</view>
 					<image :src="rimg" class="rimg"></image>
 				</view>
+				<view class="flexc mine_list" @click="getMyHdFn">
+					<view class="limg">
+						<image :src="listimgo" class="imga"></image>
+					</view>
+					<view class="tit flex1">我的互动</view>
+					<image :src="rimg" class="rimg"></image>
+				</view>
+				<view class="flexc mine_list" @click="getWdHdFn" >
+					<view class="limg">
+						<image :src="listimgq" class="imga"></image>
+					</view>
+					<view class="tit flex1">我的点评赞</view>
+					<image :src="rimg" class="rimg"></image>
+				</view>
+				<view class="flexc mine_list" @click="getPlShFn">
+					<view class="limg">
+						<image :src="listimgp" class="imgg"></image>
+					</view>
+					<view class="tit flex1">评论审核</view>
+					<image :src="rimg" class="rimg"></image>
+				</view>
 				<view class="flexc mine_list" @click="handleUpassword">
 					<view class="limg">
 						<image :src="listimgg" class="imgc"></image>
@@ -151,9 +172,9 @@
 				listimgh: require('@/static/images/mine/mtabh.png'),
 				listimgi: require('@/static/images/mine/mtabi.png'),
 				listimgj: require('@/static/images/mine/mtabj.png'),
-				// listimgk: require('@/static/images/mine/minek.png'),
-				// listimgl: require('@/static/images/mine/minel.png'),
-				// listimgm: require('@/static/images/mine/minem.png'),
+				listimgo: require('@/static/images/mine/mtabo.png'),
+				listimgp: require('@/static/images/mine/mtabp.png'),
+				listimgq: require('@/static/images/mine/mtabq.png'),
 				// avatar:'',
 				head:require('@/static/images/mine/head.png'),
 				wrimg:require("@/static/images/mine/wrimg.png"),
@@ -217,47 +238,19 @@
 			kaType(data, list) {
 				return selectDictValue(list, data);
 			},
-			// 待我审批
-			handleToYy(){
-				this.$tab.navigateTo("/pages/order/list")
-			},
-			//访客预约
-			handleToAddYy(){
-				this.$tab.navigateTo("/pages/order/come")
-			},
-			//在线会议
-			getYqMeetFn(){
-				// var url='https://www.baidu.com'
-				this.$tab.navigateTo("/pages/common/webview/index?url="+webUrl)
-			},
-			//我的会议
-			handleToMyhy(){
-				this.$tab.navigateTo("/work/pages/yyorder/meetlist")
-			},
-			//我的就餐
-			handleToMyjc(){
-				this.$tab.navigateTo("/work/pages/yyorder/eatlist")
-			},
-			//我的申报
-			handleToMysb(){
-				// this.$tab.navigateTo("/work/pages/business/list?from=my&type=0")
-			},
-			// 考勤设置
-			handleToKq(){
-				this.$tab.navigateTo('/work/pages/clock/kaorules')
-			},
-			// 考勤记录
-			getClockjlFn(){
-				this.$tab.navigateTo("/work/pages/record/clockin")
-			},
-			// 考勤统计
-			getClockcontFn(){
-				this.$tab.navigateTo("/work/pages/clock/personnel")
-			},
 			// 设置
 			handleToSetting() {
 			  this.$tab.navigateTo('/pages/mine/setting/index')
 			},
+			getPlShFn(){//评论审核
+				this.$tab.navigateTo('/mine/pages/news/sh')
+			},
+			getMyHdFn(){//我的互动
+				this.$tab.navigateTo('/mine/pages/news/index')
+			},
+			getWdHdFn(){//我的点评赞
+				this.$tab.navigateTo('/mine/pages/news/myhd')
+			},
 			// 修改密码
 			handleUpassword(){
 				this.$tab.navigateTo(`/pages/mine/pwd/index`)  
@@ -398,6 +391,7 @@ page{background-color: #ffffff;}
 					.imgb{width: 32rpx;height: 30rpx;}
 					.imgc{width: 30rpx;height: 32rpx;}
 					.imgd{width: 26rpx;height: 32rpx;}
+					.imgg{width: 32rpx;height: 30rpx;}//16 15
 				}
 				.tit{font-weight: bold;font-size: 26rpx;color: #272727;}
 				.txt{font-weight: 500;font-size: 26rpx;color: #666666;margin-left: 20rpx;flex: 0 0 auto;}

+ 1 - 1
property_ui/service/pages/service/patrolrecord.vue

@@ -121,7 +121,7 @@
 					pageNum: this.pageNum,
 				}
 				if(this.cxrq){
-					params.checkTime=this.cxrq
+					params.createTime=this.cxrq
 				}
 				xgdjlList(params).then(res=>{
 					if(res.code==200){

BIN
property_ui/static/applogo.png


BIN
property_ui/static/images/mine/mtabo.png


BIN
property_ui/static/images/mine/mtabp.png


BIN
property_ui/static/images/mine/mtabq.png


+ 2 - 0
property_ui/static/style.css

@@ -4,6 +4,7 @@
 .flex1{flex: 1;}
 .flex0{flex: 0 0 auto;}
 .flex01{flex: 0 1 auto;}
+.flexat{display: flex;align-items: flex-start;}
 .flexcj{display: flex;align-items: center;justify-content: space-between;}
 .flexdcc{display: flex;align-items: center;justify-content: center;flex-direction: column;}
 .flexccc{display: flex;flex-direction: column;align-items: center;justify-content: center;}
@@ -33,6 +34,7 @@ font-weight: bold;font-size: 26rpx;color: #FFFFFF;background: #0256FD;border-rad
 .txr{text-align: right;}
 .overh{overflow: hidden;}
 .delleft{background-color: #ffffff;border-radius: 20rpx;position: relative;z-index: 1;}
+.noimg{width: 251rpx;height: 292rpx;margin: 100rpx auto;display: block;}
 .w50{min-width: 50%;}
 .cof4{color: #F40027 !important;}