123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212 |
- <template>
- <view>
- <view class="cu-list menu-avatar comment solids-top">
- <block v-for="(item,index) in plist" :key="item.id">
- <view class="cu-item">
- <view class="cu-avatar round" :style="'background-image:url('+item.user.avatar+');'"></view>
- <view class="content">
- <view class="padding-bottom-sm flex justify-between">
- <view class="text-grey">{{item.user.nickname}}</view>
- <view class="text-gray">
- {{item.createtime}}
- <text class="cuIcon-comment padding-left-sm" :data-puserid="item.userid" :data-nickname="item.user.nickname" @click="replyComment"></text>
- </view>
- </view>
- <view class="text-content padding-bottom-xs">
- <text v-if="item.puserid">回复 <text class="text-red">{{item.puser.nickname}}</text>:</text>
- {{item.details}}
- </view>
- </view>
- </view>
- </block>
- </view>
- <uni-load-more :status="pstatus"></uni-load-more>
-
- <view class="cu-modal bottom-modal" :class="modalname=='commentModal'?'show':''">
- <view class="cu-dialog" style="height: calc(100vh)">
- <view class="cu-bar bg-white">
- <view class="action text-grey" @tap="hideModal">取消</view>
- <view class="action text-green" @click="sendComment">发表</view>
- </view>
- <view class="padding-xl text-left">
- <textarea class="solid padding-sm" style="width: 100%;" v-show="modalname=='commentModal'?true:false" :focus="modalfocus" :fixed="true" :placeholder="placeholder" @input="bindInput" maxlength="140" :value="details"></textarea>
- </view>
- </view>
- </view>
-
-
- <view class="padding"></view>
- <view class="padding"></view>
- <view class="cu-bar input foot">
- <input :placeholder="placeholder" @tap="showModal" disabled class="solid-bottom"></input>
- <button class="cu-btn bg-blue shadow-blur" @click="sendComment">发表</button>
- </view>
-
-
- </view>
- </template>
- <script>
- import uniLoadMore from "@/components/uni-load-more/uni-load-more.vue";
- var _this;
- export default {
- components: {
- uniLoadMore
- },
- data() {
- return {
- isRotate: false,
- userinfo: {},
-
- articleid: 0,
- count: 0,
-
- pstatus: 'more',
- ppage: 1,
- psize: 20,
- plist: [],
-
- modalname: "",
- modalfocus: false,
- puserid: 0,
- placeholder: "说点什么吧...",
- details: ""
- }
- },
- onLoad: function(option) {
- _this = this;
- _this.articleid = option.articleid || 0;
- _this.modalname = option.modalname || "";
- _this.userinfo = uni.getStorageSync('userinfo');
- if (_this.articleid==0){
- uni.showModal({
- title: '信息提示',
- content: '文章资讯不存在',
- showCancel: false,
- success: function(res) {
- if (res.confirm) {
- uni.navigateBack({
- delta: 1
- });
- }
- }
- });
- }else{
- _this.getMore();
- }
- if (_this.modalname!=""){
- _this.showModal();
- }
- },
- onShareAppMessage: function(res) {
- return {
- title: "文章资讯评论",
- path: "/pages/article/comment?articleid="+_this.articleid
- }
- },
- onShow: function() {
- _this.userinfo = uni.getStorageSync('userinfo');
- },
- onPullDownRefresh: function() {
- _this.ppage = 1;
- _this.pstatus = 'more';
- _this.plist = [];
- _this.getMore();
- },
- onReachBottom: function() {
- if (_this.pstatus !== 'more') {
- return;
- }
- _this.getMore();
- },
- methods: {
- showModal: function() {
- _this.userinfo = _this.checkLogin("/pages/article/comment?articleid="+_this.articleid);
- if (_this.userinfo===false){
- _this.sendInitialize();
- return false;
- }
- _this.modalname = "commentModal";
- setTimeout(function (){
- _this.modalfocus = true;
- }, 500);
- },
- hideModal: function() {
- _this.sendInitialize();
- },
- bindInput: function(e) {
- _this.details = e.detail.value;
- },
- replyComment: function(e) {
- _this.puserid = e.currentTarget.dataset.puserid;
- _this.placeholder = "回复 "+e.currentTarget.dataset.nickname+":";
- _this.showModal();
- },
- sendInitialize: function() {
- _this.modalfocus = false;
- _this.modalname = "";
- _this.puserid = 0;
- _this.placeholder = "说点什么吧...";
- _this.details = "";
- },
- sendComment: function() {
- _this.userinfo = _this.checkLogin("/pages/article/comment?articleid="+_this.articleid);
- if (_this.userinfo===false){
- return false;
- }
- if(_this.isRotate){
- return false;
- }
- _this.isRotate = true;
- _this.$req.ajax({
- path: "article/sendcomment",
- data: {
- userid: _this.userinfo.id || 0,
- articleid: _this.articleid,
- puserid: _this.puserid,
- details: _this.details
- }
- }).then((data) => {
- var comment = data.comment;
- _this.plist = comment.concat(_this.plist);
- _this.sendInitialize();
- _this.isRotate = false;
- }).catch((err) => {
- uni.showModal({
- title: '信息提示',
- content: err,
- showCancel: false
- });
- _this.isRotate = false;
- });
- },
- getMore: function() {
- _this.$req.ajax({
- path: "article/listcomment",
- data: {
- ppage: _this.ppage,
- psize: _this.psize,
- articleid: _this.articleid,
- userid: _this.userinfo.id || 0
- }
- }).then((data) => {
- _this.count = data.count;
- _this.pstatus = data.pstatus;
- _this.plist = _this.plist.concat(data.plist);
- _this.ppage += 1;
- uni.stopPullDownRefresh();
- }).catch((err) => {
- uni.showModal({
- title: '信息提示',
- content: err,
- showCancel: false
- });
- });
- },
- }
- }
- </script>
- <style>
- </style>
|