Ver código fonte

跟进评论暂存

xiaohaizhao 1 ano atrás
pai
commit
cf1aea524d

+ 101 - 0
pages/trace/comment/list.js

@@ -0,0 +1,101 @@
+const _Http = getApp().globalData.http;
+Component({
+    properties: {
+        title: {
+            type: String,
+            value: '评论(0)'
+        },
+        comments: {
+            type: Array,
+            value: []
+        },
+        ownertable: {
+            type: String,
+            value: 'sys_datafollowup'
+        },
+        ownerid: {
+            type: String
+        },
+        updateCommentList: {
+            type: Function
+        }
+    },
+    data: {
+        show: true,
+        content: {
+            comment: '',
+            reply: ''
+        }
+    },
+    methods: {
+        onInput(e) {
+            this.setData({
+                [`content.${e.currentTarget.dataset.key}`]: e.detail.value
+            })
+        },
+        onSend() {
+            this.setData({
+                loading: true
+            })
+            _Http.basic({
+                "id": 20240429161601,
+                "content": {
+                    "ownertable": this.data.ownertable, //数据表
+                    "ownerid": this.data.ownerid,
+                    "content": this.data.content.comment,
+                    "replyid": "0"
+                }
+            }).then(res => {
+                console.log("发送评论", res)
+                this.setData({
+                    loading: false
+                })
+                wx.showToast({
+                    title: res.code == '1' ? '评论成功' : res.msg,
+                    icon: "none"
+                })
+                if (res.code == '1') {
+                    this.setData({
+                        'content.comment': ""
+                    })
+                    this.triggerEvent("updateCommentList", {
+                        "ownertable": this.data.ownertable,
+                        "ownerid": this.data.ownerid,
+                    })
+                }
+            })
+        },
+        deleteItem(e) {
+            const {
+                item
+            } = e.currentTarget.dataset,
+                that = this;
+            wx.showModal({
+                title: '提示',
+                content: `是否确定删除该评论`,
+                complete: ({
+                    confirm
+                }) => {
+                    if (confirm) _Http.basic({
+                        "id": 20240429161701,
+                        "content": {
+                            "sys_datacommentid": item.sys_datacommentid
+                        }
+                    }).then(res => {
+                        console.log("删除评论", res)
+                        wx.showToast({
+                            title: res.msg == '成功' ? '删除成功' : res.msg,
+                            icon: "none"
+                        });
+                        if (res.msg == '成功') {
+                            that.triggerEvent("updateCommentList", {
+                                "ownertable": that.data.ownertable,
+                                "ownerid": that.data.ownerid,
+                            })
+                        }
+                    })
+                }
+            })
+        },
+    }
+})

+ 4 - 0
pages/trace/comment/list.json

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

+ 62 - 0
pages/trace/comment/list.scss

@@ -0,0 +1,62 @@
+.box {
+	width: 680rpx;
+	margin: 0 auto 20rpx;
+
+	.comment-box {
+		width: 100%;
+		background: #FFFFFF;
+		padding: 20rpx;
+		box-sizing: border-box;
+		border-radius: 8rpx;
+		border: 2rpx solid #CCCCCC;
+
+		textarea {
+			width: 100%;
+			font-size: 28rpx;
+		}
+
+		.but-box {
+			display: flex;
+			justify-content: flex-end;
+			border-top: 2rpx solid #eee;
+			margin-top: 12rpx;
+			padding-top: 20rpx;
+		}
+
+		.but {
+			width: 120rpx;
+			height: 60rpx;
+			background: #3874F6;
+			border-radius: 8rpx;
+			font-weight: 400;
+			font-size: 28rpx;
+			color: #FFFFFF;
+		}
+	}
+
+	.list {
+		width: 680rpx;
+		height: 840rpx;
+		background: #F5F5F5;
+		border-radius: 8rpx;
+		margin-top: 20rpx;
+
+		.title {
+			font-weight: bold;
+			font-size: 32rpx;
+			color: #333333;
+			line-height: 36rpx;
+			padding: 20rpx;
+		}
+
+		.scroll {
+			height: 748rpx;
+			.scroll-content {
+				padding: 20rpx;
+				padding-top: 0;
+				width: 100%;
+				box-sizing: border-box;
+			}
+		}
+	}
+}

+ 18 - 0
pages/trace/comment/list.wxml

@@ -0,0 +1,18 @@
+<view class="box" wx:if="{{show}}">
+	<view class="comment-box">
+		<textarea maxlength='499'  value="{{content.comment}}" placeholder='我评论:' placeholder-style='font-size:28rpx; color:#BBBBBB;' auto-height data-key="comment" bind:input="onInput" />
+		<view class="but-box">
+			<van-button custom-class='but' disabled='{{!content.comment.length}}' loading='{{loading}}' bind:tap="onSend">发布</van-button>
+		</view>
+	</view>
+	<view class="list">
+		<view class="title">{{title}}</view>
+		<scroll-view class="scroll" scroll-y>
+			<view class="scroll-content">
+				<view class="item" wx:for="{{comments}}" wx:key="sys_datacommentid">
+					<view class="name">{{item.createby}}</view>
+				</view>
+			</view>
+		</scroll-view>
+	</view>
+</view>

+ 31 - 0
pages/trace/index.js

@@ -174,6 +174,37 @@ Component({
       this.setData({
         "content.total": this.data.content.total - 1
       })
+    },
+    comment() {
+      let page = this.selectComponent("#Comment");
+      page.setData({
+        show: !page.data.show
+      })
+    },
+    updateCommentList({
+      detail
+    }) {
+      detail.pageSize = 99999;
+      _Http.basic({
+        "id": 20240920092204,
+        content: detail
+      }).then(res => {
+        console.log("更新列表", res)
+        console.log("更新列表1", this.data.list)
+        if (res.code == 1) {
+          let idName = detail.ownertable + 'id';
+
+          const index = this.data.list.findIndex(v => v[idName] == detail.ownerid)
+          if (index != -1) {
+            let item = this.data.list[index];
+            item.commentqty = res.total == 0 ? 0 : res.data[0].totalqty;
+            item.comment = res.data;
+            this.setData({
+              [`list[${index}]`]: item
+            })
+          }
+        }
+      })
     }
   }
 })

+ 1 - 0
pages/trace/index.json

@@ -1,5 +1,6 @@
 {
     "component": true,
     "usingComponents": {
+        "commentList": "/pages/trace/comment/list"
     }
 }

+ 17 - 23
pages/trace/index.scss

@@ -47,7 +47,6 @@
         width: 100vw;
         padding: 20rpx 30rpx;
         box-sizing: border-box;
-        border-bottom: 1px solid #DDDDDD;
 
         .user {
             display: flex;
@@ -108,6 +107,7 @@
     }
 
     .bottom {
+        border-top: 1px solid #DDDDDD;
         display: flex;
         justify-content: space-between;
         align-items: center;
@@ -117,32 +117,26 @@
         box-sizing: border-box;
         padding: 0 30rpx;
 
+        navigator {
+            padding: 0 20rpx;
+            line-height: 70rpx;
+            border-radius: 8rpx;
+
+            .iconfont {
+                font-size: 28rpx;
+                color: #999999;
+                margin-right: 8rpx;
+            }
 
-        .date {
             font-size: 24rpx;
-            font-family: PingFang SC-Regular, PingFang SC;
-            color: #999999;
-            margin-top: 6rpx;
+            font-family: PingFang SC-Regular,
+            PingFang SC;
+            color: #333333;
         }
 
-        .but {
-            display: flex;
-
-            navigator {
-                padding: 0 20rpx;
-                line-height: 70rpx;
-
-                .iconfont {
-                    font-size: 28rpx;
-                    color: #999999;
-                    margin-right: 8rpx;
-                }
-
-                font-size: 24rpx;
-                font-family: PingFang SC-Regular,
-                PingFang SC;
-                color: #333333;
-            }
+        .comment {
+            padding: 0 10rpx;
+            margin-left: -10rpx;
         }
     }
 }

+ 15 - 15
pages/trace/index.wxml

@@ -48,23 +48,23 @@
             营销费用:<text style="color: #FF3B30;">{{item.showsalesfeesamount||' --'}}</text>
         </view>
     </navigator>
+    <commentList id="Comment" comments='{{item.comment}}' title="评论({{item.commentqty}})" ownerid='{{item.sys_datafollowupid}}' bind:updateCommentList='updateCommentList' />
     <view class="bottom">
-        <view class="date">
-            {{item.createdate}}
-        </view>
-        <view class="but">
-            <navigator url="#" bindtap="expenseBreakdown" data-item="{{item}}" data-index="{{index}}">
-                <text class="iconfont icon-yingxiaofeiyongmingxi" />费用明细
+        <navigator url="#" class="comment" bind:tap="comment">
+            <text class="iconfont icon-huifu" /><text style="color: #3874F6;">评论({{item.commentqty}})</text>
+        </navigator>
+        <view style="flex:1;" />
+        <navigator url="#" bindtap="expenseBreakdown" data-item="{{item}}" data-index="{{index}}">
+            <text class="iconfont icon-yingxiaofeiyongmingxi" />费用明细
+        </navigator>
+        <block wx:if="{{disabled}}">
+            <navigator url="#" bindtap="editItem" data-item="{{item}}">
+                <text class="iconfont icon-bianji" />编辑
             </navigator>
-            <block wx:if="{{disabled}}">
-                <navigator url="#" bindtap="editItem" data-item="{{item}}">
-                    <text class="iconfont icon-bianji" />编辑
-                </navigator>
-                <navigator url="#" bindtap="deleteItem" data-item="{{item}}">
-                    <text class="iconfont icon-qunzu" />删除
-                </navigator>
-            </block>
-        </view>
+            <navigator url="#" bindtap="deleteItem" data-item="{{item}}">
+                <text class="iconfont icon-qunzu" />删除
+            </navigator>
+        </block>
     </view>
 </view>
 <My_empty wx:if="{{list.length==0}}" />

+ 7 - 0
project.private.config.json

@@ -8,6 +8,13 @@
     "condition": {
         "miniprogram": {
             "list": [
+                {
+                    "name": "客户跟进",
+                    "pathName": "packageA/setclient/detail",
+                    "query": "id=4595",
+                    "launchMode": "default",
+                    "scene": null
+                },
                 {
                     "name": "packageA/project/addAndEdit",
                     "pathName": "packageA/project/addAndEdit",