Browse Source

update 所有删除功能

master
fanp 6 years ago
parent
commit
ba77e4e8f7
  1. 2
      config.js
  2. 14
      models/topic.js
  3. 54
      pages/topics/goodIdea/cell/index.js
  4. 5
      pages/topics/goodIdea/cell/index.wxml
  5. 46
      pages/topics/goodIdea/cell/index.wxss
  6. 3
      pages/topics/goodIdea/index.js
  7. 3
      pages/topics/goodIdea/index.wxml
  8. 25
      pages/topics/index.js
  9. 2
      pages/topics/index.wxml
  10. 2
      pages/topics/interactive/cell/index.wxss
  11. 92
      pages/topics/interactive/topicArticle/index.js
  12. 7
      pages/topics/interactive/topicArticle/index.wxml
  13. 46
      pages/topics/interactive/topicArticle/index.wxss
  14. 35
      pages/topics/message/index.js
  15. 17
      pages/topics/message/index.wxml
  16. 27
      pages/topics/message/index.wxss
  17. 36
      pages/user/index.js
  18. 22
      pages/user/myIdea/index.js
  19. 3
      pages/user/myIdea/index.wxml
  20. 2
      pages/user/myMessage/cell/index.wxml
  21. 9
      pages/user/myMessage/cell/index.wxss
  22. 8
      pages/user/myMessage/index.js
  23. 1
      pages/user/myTopics/index.js
  24. 5
      pages/user/myTopics/myParticipant/cell/index.js
  25. 2
      pages/user/myTopics/myParticipant/cell/index.wxss
  26. 2
      pages/user/myTopics/myParticipant/index.wxml
  27. 3
      pages/user/myTopics/myRelease/index.wxml

2
config.js

@ -1,5 +1,5 @@
const config = {
// api_url: 'http://192.168.42.44:8083/fqsb', // 服务器地址
api_url: 'http://121.42.41.42:8092/fqsb'
api_url: 'https://shibeirencai.elinkit.com.cn:8083/fqsb'
}
export { config }

14
models/topic.js

@ -8,6 +8,7 @@ const TopicBaseUrl = {
topic_detail_url:'/api/group/queryById/', // 议题详情
topic_detailComment_url:'/api/comment/page', // 评论列表
topic_addComment_url:'/api/comment/addComment',// 新建议题评论
topic_deleteComment_url:'/api/comment/deleteComment/', // 删除议题评论
topic_collect_url:'/api/group/collectGroup/', // 收藏
topic_unCollect_url: '/api/collect/deleteCollection/', // 取消收藏
topic_commentPraise_url: '/api/comment/addSupport/', // 点赞
@ -68,6 +69,16 @@ class TopicModel extends HTTP {
this.request(params)
}
deleteComment(id, success) {
let params = {
url: TopicBaseUrl.topic_deleteComment_url + `${id}`,
method: Method.POST,
data: {},
success: success
}
this.request(params)
}
getTopicDetailComment(id, page,success) {
let params = {
@ -140,11 +151,12 @@ class TopicModel extends HTTP {
this.request(params)
}
addMessage(content,success){
addMessage(title,content,success){
let params = {
url: TopicBaseUrl.topic_addMessage_url,
method: Method.POST,
data: {
title:title,
content: content
},
success: success

54
pages/topics/goodIdea/cell/index.js

@ -1,4 +1,6 @@
// pages/topics/common/goodIdea/cell/index.js
import { store } from '../../../../utils/store.js'
Component({
/**
@ -17,7 +19,10 @@ Component({
*/
data: {
unPraise: '/images/common/zan.png',
praise: '/images/common/star_light.png'
praise: '/images/common/star_light.png',
isTouchMove:false,
startX: 0, //开始坐标
startY: 0
},
/**
@ -32,6 +37,53 @@ Component({
wx.navigateTo({
url: `/pages/topics/interactive/topicArticle/index?topicId=${topicId}`,
})
},
touchstart: function (e) {
let { nickName } = store.readUserInfo()
if (e.currentTarget.dataset.name === nickName) {
//开始触摸时 重置所有删除
if (this.data.isTouchMove) {
this.setData({
isTouchMove: false
})
}
this.setData({
startX: e.changedTouches[0].clientX,
startY: e.changedTouches[0].clientY,
})
}
},
touchmove: function (e) {
let { nickName } = store.readUserInfo()
if (e.currentTarget.dataset.name === nickName) {
var that = this
// index = e.currentTarget.dataset.index,//当前索引
const startX = that.data.startX//开始X坐标
const startY = that.data.startY//开始Y坐标
const touchMoveX = e.changedTouches[0].clientX//滑动变化坐标
const touchMoveY = e.changedTouches[0].clientY//滑动变化坐标
//获取滑动角度
const angle = that.angle({ X: startX, Y: startY }, { X: touchMoveX, Y: touchMoveY })
if (Math.abs(angle) > 30) return;
if (touchMoveX > startX) //右滑
that.setData({
isTouchMove: false
})
else //左滑
that.setData({
isTouchMove: true
})
}
},
angle: function (start, end) {
var _X = end.X - start.X,
_Y = end.Y - start.Y
//返回角度 /Math.atan()返回数字的反正切值
return 360 * Math.atan(_Y / _X) / (2 * Math.PI);
},
del: function (e) {
this.triggerEvent('deleteTopicComment', { id: e.currentTarget.dataset.id })
}
}
})

5
pages/topics/goodIdea/cell/index.wxml

@ -1,5 +1,7 @@
<!--pages/topics/common/goodIdea/cell/index.wxml-->
<view class="cell" id="cell" >
<view class="touch-item {{isTouchMove ? 'touch-move-active' : ''}}" data-index="{{itemIndex}}" data-name="{{itemData.commentName}}" bindtouchstart="touchstart" bindtouchmove="touchmove" >
<view class="content">
<view class="content-left">
<image src="{{itemData.commentIcon}}" style="width:20px;height:20px;"></image>
</view>
@ -38,3 +40,6 @@
</view>
</view>
</view>
<view class="del" data-index="{{itemIndex}}" data-id="{{itemData.commentId}}" catchtap="del">删除</view>
</view>
</view>

46
pages/topics/goodIdea/cell/index.wxss

@ -1,8 +1,8 @@
/* pages/topics/common/goodIdea/cell/index.wxss */
.cell{
display: flex;
/* display: flex;
flex-direction: row;
padding: 10px;
padding: 10px; */
}
.content-left{
width: 20px;
@ -115,3 +115,45 @@ image{
font-size: 13px;
/* padding: 0 10px 0 10px; */
}
.touch-item {
font-size: 14px;
display: flex;
justify-content: space-between;
border-bottom:1px solid #E7E7E7;
width: 100%;
overflow: hidden
}
.content {
width: 100%;
/* padding: 10px; */
line-height: 22px;
margin-right:0;
-webkit-transition: all 0.4s;
transition: all 0.4s;
-webkit-transform: translateX(120px);
transform: translateX(120px);
margin-left: -120px;
display: flex;
flex-direction: row;
padding: 10px;
}
.del {
background-color: orangered;
width: 120px;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
color: #fff;
-webkit-transform: translateX(120px);
transform: translateX(120px);
-webkit-transition: all 0.4s;
transition: all 0.4s;
}
.touch-move-active .content,
.touch-move-active .del {
-webkit-transform: translateX(0);
transform: translateX(0);
}

3
pages/topics/goodIdea/index.js

@ -27,6 +27,9 @@ Component({
onClickPraise(e){
const itemData = e.detail.itemData;
this.triggerEvent('tapGoodIdeaPraise', { commentId: itemData.commentId })
},
deleteTopicComment(e){
this.triggerEvent('deleteTopicComment', { id: e.detail.id })
}
}
})

3
pages/topics/goodIdea/index.wxml

@ -4,6 +4,7 @@
<cell
itemData="{{item}}"
itemIndex="{{index}}"
bind:onClickPraise="onClickPraise"/>
bind:onClickPraise="onClickPraise"
bind:deleteTopicComment="deleteTopicComment"/>
</block>
</view>

25
pages/topics/index.js

@ -204,7 +204,7 @@ Page({
}
},
deleteTopic(e) {
console.log(e.detail.id)
// console.log(e.detail.id)
let that = this
topicModel.deleteGroup(e.detail.id, res => {
console.log(res)
@ -227,6 +227,29 @@ Page({
}
})
},
deleteTopicComment(e){
let that = this
topicModel.deleteComment(e.detail.id,res=>{
if(res.code === 200){
wx.showToast({
title: '删除成功',
icon: 'none',
success() {
that.setData({
currPage: 1,
})
switch (that.data.segmentIndex) {
case 0:
return that.fetchTopicList()
case 1:
return that.fetchGoodIdeaList()
}
}
})
}
})
},
tapGoodIdeaPraise(e){
this.fetchGoodIdeaPraise(e.detail.commentId)
},

2
pages/topics/index.wxml

@ -2,6 +2,6 @@
<view class="content-wrapper">
<e-segment bind:tapSegment="tapSegment" headerTitles="{{headerTitles}}" defaultSelectIndex="{{selectedTitle}}"/>
<interactive wx:if="{{segmentIndex==0}}" list="{{topicList}}" bind:deleteTopic="deleteTopic"/>
<goodIdea wx:if="{{segmentIndex==1}}" list="{{goodIdeaList}}" bind:tapGoodIdeaPraise="tapGoodIdeaPraise"/>
<goodIdea wx:if="{{segmentIndex==1}}" list="{{goodIdeaList}}" bind:tapGoodIdeaPraise="tapGoodIdeaPraise" bind:deleteTopicComment="deleteTopicComment"/>
<message wx:if="{{segmentIndex==2}}" />
</view>

2
pages/topics/interactive/cell/index.wxss

@ -114,7 +114,7 @@ image{
font-size: 14px;
display: flex;
justify-content: space-between;
border-bottom:1px solid #ccc;
border-bottom:1px solid #E7E7E7;
width: 100%;
overflow: hidden
}

92
pages/topics/interactive/topicArticle/index.js

@ -2,6 +2,7 @@
import dayjs from '../../../../utils/dayjs/index.js'
import relativeTime from '../../../../utils/dayjs/relativeTime.js'
dayjs.extend(relativeTime);
import { store } from '../../../../utils/store.js'
import { TopicModel } from '../../../../models/topic.js'
let topicModel = new TopicModel()
@ -31,6 +32,9 @@ Page({
praise: '/images/common/zan.png',
hiddenmodalput:true,
currentComment:'',
startX: 0, //开始坐标
startY: 0,
},
/**
@ -90,7 +94,8 @@ Page({
isGoldenIdea: item.isGoldenIdea,
detail: item.comment,
time: item.createTime,
praiseNum: item.supportNum
praiseNum: item.supportNum,
isTouchMove:false,
})
})
if (page == 1) {
@ -157,6 +162,19 @@ Page({
}
})
},
fetchDeleteComment(commentId){
topicModel.deleteComment(commentId, res => {
if (res.code === 200) {
wx.showToast({
title: res.message,
icon: 'none'
})
this.fetchDetailComment()
}
})
},
onClickCollect() {
this.setData({
isCollect: !this.data.isCollect
@ -175,13 +193,7 @@ Page({
if (sIndex === index){
this.fetchTopicCommentPraise(selectItem.id)
}
// tempList.push(item)
})
// this.setData({
// commentList:tempList,
// })
// this.fetchTopicCommentPraise(selectItem.id)
// 评论点赞
},
// 点击查看图片
@ -238,5 +250,71 @@ Page({
this.setData({
currentComment: e.detail.value
})
},
touchstart: function (e) {
let { nickName } = store.readUserInfo()
if (e.currentTarget.dataset.name === nickName) {
//开始触摸时 重置所有删除
this.data.commentList.forEach( item=>{
if (item.isTouchMove) {
item.isTouchMove = false
}
})
this.setData({
startX: e.changedTouches[0].clientX,
startY: e.changedTouches[0].clientY,
commentList: this.data.commentList
})
}
},
touchmove: function (e) {
let { nickName } = store.readUserInfo()
if (e.currentTarget.dataset.name === nickName) {
var that = this
const currentIndex = e.currentTarget.dataset.index//当前索引
const startX = that.data.startX//开始X坐标
const startY = that.data.startY//开始Y坐标
const touchMoveX = e.changedTouches[0].clientX//滑动变化坐标
const touchMoveY = e.changedTouches[0].clientY//滑动变化坐标
//获取滑动角度
const angle = that.angle({ X: startX, Y: startY }, { X: touchMoveX, Y: touchMoveY })
this.data.commentList.forEach((item,index) => {
item.isTouchMove = false
if (currentIndex == index) {
if (touchMoveX > startX) //右滑
item.isTouchMove = false
else //左滑
item.isTouchMove = true
}
})
that.setData({
commentList: that.data.commentList
})
}
},
angle: function (start, end) {
var _X = end.X - start.X,
_Y = end.Y - start.Y
//返回角度 /Math.atan()返回数字的反正切值
return 360 * Math.atan(_Y / _X) / (2 * Math.PI);
},
del: function (e) {
let that = this
let id = e.currentTarget.dataset.id
topicModel.deleteComment(id,res=>{
if (res.code === 200) {
wx.showToast({
title: '删除成功',
icon: 'none',
success() {
that.setData({
currPage: 1,
})
that.fetchDetailComment()
}
})
}
})
}
})

7
pages/topics/interactive/topicArticle/index.wxml

@ -44,7 +44,9 @@
</view>
<button class="commnetBtn" size="mini" bindtap="onTapComment">评论</button>
</view>
<view class="comment_info" wx:for="{{commentList}}" wx:key="{{index}}">
<view class="comment_info" >
<view class="touch-item {{item.isTouchMove ? 'touch-move-active' : ''}}" data-index="{{index}}" data-name="{{item.userName}}" bindtouchstart="touchstart" bindtouchmove="touchmove" wx:for="{{commentList}}" wx:key="{{index}}">
<view class="comment_content">
<view class="comment_info_left">
<image class="comment_icon" src="{{item.commentAvator}}"></image>
</view>
@ -65,6 +67,9 @@
</view>
</view>
</view>
<view class="del" data-index="{{index}}" data-id="{{item.id}}" catchtap="del">删除</view>
</view>
</view>
</view>
</view>
<modal hidden="{{hiddenmodalput}}" confirm-text="提交" cancel-text="取消" bindcancel="cancel" bindconfirm="confirm">

46
pages/topics/interactive/topicArticle/index.wxss

@ -117,10 +117,10 @@ image{
margin: 0;
}
.comment_info{
padding: 10px 0;
/* padding: 10px 0;
display: flex;
flex-direction: row;
border-top: 1px solid #E7E7E7;
border-top: 1px solid #E7E7E7; */
}
.comment_info_left{
width: 30px;
@ -174,3 +174,45 @@ image{
width: 10px;
height: 10px;
}
.touch-item {
font-size: 14px;
display: flex;
justify-content: space-between;
/* border-top: 1px solid #E7E7E7; */
width: 100%;
overflow: hidden
}
.comment_content {
width: 100%;
line-height: 22px;
margin-right:0;
-webkit-transition: all 0.4s;
transition: all 0.4s;
-webkit-transform: translateX(120px);
transform: translateX(120px);
margin-left: -120px;
padding: 10px 0;
display: flex;
flex-direction: row;
border-top: 1px solid #E7E7E7;
}
.del {
background-color: orangered;
width: 120px;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
color: #fff;
-webkit-transform: translateX(120px);
transform: translateX(120px);
-webkit-transition: all 0.4s;
transition: all 0.4s;
}
.touch-move-active .comment_content,
.touch-move-active .del {
-webkit-transform: translateX(0);
transform: translateX(0);
}

35
pages/topics/message/index.js

@ -14,42 +14,55 @@ Component({
* 组件的初始数据
*/
data: {
textAreaString:""
messageTitle:"",
messageDetail:"",
},
/**
* 组件的方法列表
*/
methods: {
bindTextInput(e) {
this.setData({
messageTitle: e.detail.value
})
},
bindTextAreaInput(e) {
this.setData({
textAreaString: e.detail.value
messageDetail: e.detail.value
})
},
submit() {
if (this.data.textAreaString === ''){
if (this.data.messageTitle === '') {
wx.showModal({
title: '提示',
content: '请输入留言内容',
content: '请输入标题',
showCancel: false
})
return
}
if (this.data.messageDetail === ''){
wx.showModal({
title: '提示',
content: '请输入正文内容',
showCancel:false
})
return
}
topicModel.addMessage(this.data.textAreaString,res=>{
console.log(res)
topicModel.addMessage(this.data.messageTitle, this.data.messageDetail,res=>{
if(res.code === 200){
this.setData({
textAreaString: ''
})
messageTitle:'',
messageDetail: ''
},()=>{
wx.showToast({
title: res.message,
icon: 'success'
icon: 'none'
})
})
}
})
}
}
})

17
pages/topics/message/index.wxml

@ -1,11 +1,16 @@
<!--pages/topics/common/message/index.wxml-->
<view class="mian">
<view class="content-wrapper">
<view class="section">
<textarea class="textArea" value="{{textAreaString}}" bindinput="bindTextAreaInput" placeholder="有什么想留言的内容?" />
<view class="btnView">
<e-ibutton title="提交" bind:onTap="submit"/>
<view class="container">
<view class="item">
<view class="must_fill">*</view>
<input class="title" value="{{messageTitle}}" bindinput="bindTextInput" placeholder="请输入标题"></input>
</view>
<view class="line-view"></view>
<view class="item">
<view class="must_fill">*</view>
<textarea class="textArea" value="{{messageDetail}}" bindinput="bindTextAreaInput" placeholder="请输入正文" />
</view>
<view class="btnView">
<e-ibutton title="提交" bind:onTap="submit"/>
</view>
</view>

27
pages/topics/message/index.wxss

@ -1,16 +1,29 @@
/* pages/topics/common/message/index.wxss */
.main{
position: relative;
.container{
padding: 20px;
}
.section{
.item{
display: flex;
flex-direction: column;
padding: 5px 20px 5px 20px;
flex-direction: row;
/* align-items: center; */
}
.must_fill{
font-size: 13px;
color: red;
margin-right: 5px;
}
.title{
font-size: 15px;
}
.textArea{
width: 100%;
height: 400px;
font-size: 14px;
line-height: 10px;
}
.line-view{
height: 1px;
background-color: #F1F1F1;
margin: 10px 0 10px 0;
}
.btnView{
position: fixed;

36
pages/user/index.js

@ -37,42 +37,6 @@ Page({
onShow: function () {
this.getUserInfo()
},
// isAuthUserInfo () {
// let that = this
// wx.showLoading()
// console.log('未授权')
// return new Promise(resolve => {
// wx.getSetting({
// success (res) {
// if (res.authSetting['scope.userInfo']) {
// // 已经授权,可以直接调用 getUserInfo 获取头像昵称
// wx.getUserInfo({
// success: function (res) {
// let nickName = res.userInfo.nickName
// let avatarUrl = res.userInfo.avatarUrl
// store.saveUserInfo({
// nickName: nickName,
// avatarUrl: avatarUrl,
// phone: ''
// })
// if (nickName && avatarUrl) {
// that.setData({
// isAuth: false
// }, () => {
// wx.hideLoading()
// })
// }
// that.getUserInfo()
// }
// })
// }
// }
// })
// })
// },
// 授权登录
bindGetUserInfo (e) {

22
pages/user/myIdea/index.js

@ -121,5 +121,27 @@ Page({
this.onPullDownRefresh()
}
})
},
deleteTopicComment(e) {
let that = this
topicModel.deleteComment(e.detail.id, res => {
if (res.code === 200) {
wx.showToast({
title: '删除成功',
icon: 'none',
success() {
that.setData({
currPage: 1,
})
switch (that.data.segmentIndex) {
case 0:
return that.fetchTopicList()
case 1:
return that.fetchGoodIdeaList()
}
}
})
}
})
}
})

3
pages/user/myIdea/index.wxml

@ -3,7 +3,8 @@
<block wx:for="{{list}}" wx:key="{{index}}">
<cell
itemData="{{item}}"
bind:onClickPraise="onClickPraise"/>
bind:onClickPraise="onClickPraise"
bind:deleteTopicComment="deleteTopicComment"/>
</block>
<e-empty empty="{{list.length <= 0}}" message="暂无内容"/>
</view>

2
pages/user/myMessage/cell/index.wxml

@ -1,5 +1,6 @@
<!--pages/user/myMessage/cell/index.wxml-->
<view class="cell" id="cell" bindtap="onTap">
<view class="content">
<view class="item-left">
<!-- <image wx:if="{{itemData.msgType === 0}}" src="/images/user/activity_icon.png"></image> -->
<image class="img" wx:if="{{itemData.msgType === 1}}" src="/images/user/msg_icon.png"></image>
@ -13,3 +14,4 @@
<view class="item-time">{{itemData.time}}</view>
</view>
</view>
</view>

9
pages/user/myMessage/cell/index.wxss

@ -1,8 +1,6 @@
/* pages/user/myMessage/cell/index.wxss */
.cell{
display: flex;
flex-direction: row;
align-items: center;
padding: 5px 10px 5px 10px;
}
.item-left{
@ -33,3 +31,8 @@
font-size: 13px;
color: #ABABAB;
}
.content {
display: flex;
flex-direction: row;
align-items: center;
}

8
pages/user/myMessage/index.js

@ -4,6 +4,8 @@ import relativeTime from '../../../utils/dayjs/relativeTime.js'
dayjs.extend(relativeTime);
import { UserModel } from '../../../models/user.js'
let userModel = new UserModel()
import { TopicModel } from '../../../models/topic.js'
let topicModel = new TopicModel()
Page({
@ -28,7 +30,7 @@ Page({
console.log('我的消息')
const datas = res.result.list
let tempDatas = []
datas.forEach(item => {
datas.forEach((item,index) => {
tempDatas.push({
contentId: item.contentId,
messageId:item.id,
@ -36,7 +38,9 @@ Page({
time: item.createTime,
messageStatus: item.messageStatus,
msgType: Number(item.messageType),
msgName: item.messageType === '1' ? '评论消息' : '活动消息'
msgName: item.messageType === '1' ? '评论消息' : '活动消息',
dataIndex: index + ((page - 1) * 10),
isTouchMove: false,
})
})
if (page == 1) {

1
pages/user/myTopics/index.js

@ -65,6 +65,7 @@ Page({
time: item.createTime,
dataIndex: index + ((page - 1) * 10),
isTouchMove: false,
selectedTitle: this.data.selectedTitle,
})
})
if (page == 1) {

5
pages/user/myTopics/myParticipant/cell/index.js

@ -14,6 +14,7 @@ Component({
type:String,
dataIndex: Number,
isTouchMove: Boolean,
selectedTitle:Number,
},
/**
@ -42,6 +43,7 @@ Component({
this.triggerEvent('clickListItem', { item: item })
},
touchstart: function (e) {
if(this.properties.selectedTitle === 1){
//开始触摸时 重置所有删除
if (this.properties.isTouchMove) {
this.setData({
@ -52,8 +54,10 @@ Component({
startX: e.changedTouches[0].clientX,
startY: e.changedTouches[0].clientY,
})
}
},
touchmove: function (e) {
if (this.properties.selectedTitle === 1) {
var that = this
// index = e.currentTarget.dataset.index,//当前索引
const startX = that.data.startX//开始X坐标
@ -71,6 +75,7 @@ Component({
that.setData({
isTouchMove: true
})
}
},
angle: function (start, end) {
var _X = end.X - start.X,

2
pages/user/myTopics/myParticipant/cell/index.wxss

@ -114,7 +114,7 @@ image{
font-size: 14px;
display: flex;
justify-content: space-between;
border-bottom:1px solid #ccc;
border-bottom:1px solid #E7E7E7;
width: 100%;
overflow: hidden
}

2
pages/user/myTopics/myParticipant/index.wxml

@ -4,7 +4,7 @@
<cell
topicId="{{item.topicId}}"
title="{{item.title}}"
userIcon="{{item.groupAvator}}"
userIcon="{{item.userIcon}}"
topicImg="{{item.topicImg}}"
userName="{{item.userName}}"
time="{{item.time}}"

3
pages/user/myTopics/myRelease/index.wxml

@ -9,6 +9,9 @@
userName="{{item.userName}}"
time="{{item.time}}"
commentNum="{{item.commentNum}}"
dataIndex="{{item.dataIndex}}"
selectedTitle="{{item.selectedTitle}}"
isTouchMove="{{item.isTouchMove}}"
bind:clickListItem="clickListItem"
bind:deleteListItem="deleteListItem"/>
</block>

Loading…
Cancel
Save