Przeglądaj źródła

始宁农业小程序:农事天地

panyong 1 rok temu
rodzic
commit
c0fec18664

BIN
htmldev/shiningWxMini/image/common/del.png


+ 6 - 0
htmldev/shiningWxMini/mixin/pages.js

@@ -53,6 +53,12 @@ module.exports = {
         })
         if (status) {
           const { list } = data
+          if (that.data.hasOwnProperty('fans_num')) {
+            that.setData({
+              fans_num: data.fans_num,
+              follow_num: data.follow_num
+            })
+          }
           if (Array.isArray(list)) {
             const listFormat = list.map(item => {
               if (that.data.listUrl === '/api/user/goods/shop/list') {

+ 1 - 1
htmldev/shiningWxMini/pages/businessDetail/businessDetail.wxml

@@ -24,7 +24,7 @@
   class="business-name">
   <view class="name-wrap">
     <text
-      wx:for="{{objShopDetail.shop_name + objShopDetail.shop_name + objShopDetail.shop_name}}"
+      wx:for="{{objShopDetail.shop_name}}"
       wx:key="index">{{item}}</text>
   </view>
   <view

+ 139 - 0
htmldev/shiningWxMini/pages/myNews/myNews.js

@@ -0,0 +1,139 @@
+const pages = require('../../mixin/pages')
+const { postDelComment } = require('../news/api/index')
+const app = getApp()
+
+Page({
+
+  /**
+   * 页面的初始数据
+   */
+  data: {
+    ...pages.data(),
+    listUrl: '/api/user/track/list',
+    searchForm: {},
+    booLock: false,
+    booDeleteNews: false,
+    itemData: {},
+    userInfo: {},
+    fans_num: 0,
+    follow_num: 0
+  },
+  currentItem: {}, // 当前选中的动态
+  ...pages.methods,
+
+  /**
+   * 生命周期函数--监听页面加载
+   */
+  onLoad(options) {
+    const { user_id } = options
+
+    this.setData({
+      'searchForm.user_id': user_id
+    }, () => {
+      this.fetchOrderList()
+    })
+  },
+
+  /**
+   * 生命周期函数--监听页面初次渲染完成
+   */
+  onReady() {
+
+  },
+
+  /**
+   * 生命周期函数--监听页面显示
+   */
+  onShow() {
+    this.setData({
+      userInfo: app.globalData.userInfo
+    })
+  },
+
+  /**
+   * 生命周期函数--监听页面隐藏
+   */
+  onHide() {
+
+  },
+
+  /**
+   * 生命周期函数--监听页面卸载
+   */
+  onUnload() {
+
+  },
+
+  /**
+   * 页面相关事件处理函数--监听用户下拉动作
+   */
+  onPullDownRefresh() {
+    if (this.data.freshing) {
+      return
+    }
+    this.setData({
+      freshing: true
+    })
+    this.bindCallBack()
+  },
+
+  /**
+   * 页面上拉触底事件的处理函数
+   */
+  onReachBottom() {
+    this.fetchOrderList()
+  },
+  bindCallBack() {
+    this.refreshOrderList()
+  },
+  showDeleteNews(e) {
+    const { item } = e.currentTarget.dataset
+
+    this.setData({
+      booDeleteNews: true,
+      itemData: item
+    })
+  },
+  hideDeleteNews() {
+    this.setData({
+      booDeleteNews: false,
+      itemData: {}
+    })
+  },
+  // 删除动态
+  async confirmDeleteNews(e) {
+    this.setData({
+      booLock: true
+    })
+    try {
+      const { status, msg } = await postDelComment(this.data.itemData.id)
+      if (status) {
+        wx.showToast({
+          title: '已删除',
+          icon: 'none'
+        })
+        this.hideDeleteNews()
+        this.refreshOrderList()
+      } else {
+        wx.showToast({
+          title: msg,
+          icon: 'none'
+        })
+      }
+    } catch (err) {}
+
+    this.setData({
+      booLock: false
+    })
+  },
+  handlePreviewImage(e) {
+    const { imgs, index } = e.currentTarget.dataset
+
+    if (Array.isArray(imgs)) {
+      wx.previewImage({
+        urls: imgs,
+        current: imgs[index]
+      })
+    }
+  }
+})

+ 10 - 0
htmldev/shiningWxMini/pages/myNews/myNews.json

@@ -0,0 +1,10 @@
+{
+  "usingComponents": {
+    "van-loading": "@vant/weapp/loading/index",
+    "van-popup": "@vant/weapp/popup/index"
+  },
+  "backgroundColor": "#F6F6F6",
+  "backgroundTextStyle": "dark",
+  "enablePullDownRefresh": true,
+  "onReachBottomDistance": 50
+}

+ 187 - 0
htmldev/shiningWxMini/pages/myNews/myNews.scss

@@ -0,0 +1,187 @@
+.wrapper {
+  padding-top: 20rpx;
+}
+
+.app_page-header {
+  display: flex;
+  flex-direction: column;
+  align-items: center;
+  padding-top: 40rpx;
+
+  .portrait {
+    width: 165rpx;
+    height: 165rpx;
+    border-radius: 50%;
+    overflow: hidden;
+
+    image {
+      display: block;
+      width: 100%;
+    }
+  }
+
+  .user-name {
+    margin-top: 16rpx;
+    line-height: 60rpx;
+    font-size: 36rpx;
+    color: rgba(51, 51, 51, 1);
+  }
+}
+
+.dashborad-box {
+  display: flex;
+  align-items: center;
+  width: 100%;
+  margin-top: 14rpx;
+
+  view {
+    width: 50%;
+    line-height: 40rpx;
+    font-size: 24rpx;
+    color: rgba(153, 153, 153, 1);
+
+    &:nth-of-type(1) {
+      padding-right: 47rpx;
+      text-align: right;
+    }
+
+    &:nth-of-type(2) {
+      padding-left: 47rpx;
+    }
+  }
+}
+
+.main {
+  padding: 42rpx 0 134rpx;
+}
+
+.list {
+  width: 690rpx;
+  margin: 20rpx auto 0;
+}
+
+.top {
+  display: flex;
+  align-items: center;
+  padding-left: 12rpx;
+}
+
+.portrait {
+  width: 88rpx;
+  height: 88rpx;
+  border-radius: 50%;
+  overflow: hidden;
+
+  image {
+    display: block;
+    width: 100%;
+    height: 100%;
+  }
+}
+
+.blogger-name-wrap {
+  width: 450rpx;
+  padding: 0 16rpx;
+
+  view {
+    width: 100%;
+    white-space: nowrap;
+    overflow: hidden;
+    text-overflow: ellipsis;
+  }
+
+  .user-name {
+    line-height: 36rpx;
+    font-size: 30rpx;
+    font-weight: 500;
+    color: rgba(29, 29, 31, 1);
+  }
+
+  .business-name {
+    margin-top: 2rpx;
+    line-height: 32rpx;
+    font-size: 24rpx;
+    color: rgba(0, 0, 0, 0.4);
+  }
+}
+
+.btn-del {
+  display: flex;
+  justify-content: flex-end;
+  align-items: center;
+  width: 140rpx;
+  height: 56rpx;
+
+  image {
+    width: 32rpx;
+    height: 32rpx;
+  }
+}
+
+.news {
+  margin-top: 20rpx;
+
+  .text {
+    line-height: 44rpx;
+    font-size: 28rpx;
+    color: rgba(102, 102, 102, 1);
+    word-break: break-all;
+    word-wrap: break-word;
+  }
+
+  .photo-wrap {
+    display: flex;
+    flex-flow: row wrap;
+  }
+
+  .box {
+    width: 222rpx;
+    height: 218rpx;
+    margin-top: 24rpx;
+    margin-left: 12rpx;
+    border-radius: 8rpx;
+    overflow: hidden;
+
+    &:nth-of-type(1),
+    &:nth-of-type(2),
+    &:nth-of-type(3) {
+      margin-top: 20rpx;
+    }
+
+    &:nth-of-type(3n + 1) {
+      margin-left: 0;
+    }
+  }
+
+  image {
+    display: block;
+    width: 100%;
+    height: 100%;
+  }
+}
+
+.message-list {
+  margin-bottom: 74rpx;
+
+  .list {
+    display: flex;
+    margin-top: 20rpx;
+  }
+
+  .message {
+    width: 100%;
+    line-height: 44rpx;
+    font-size: 28rpx;
+    color: rgba(153, 153, 153, 1);
+    word-break: break-all;
+    word-wrap: break-word;
+  }
+
+  .btn-reply {
+    width: 76rpx;
+    line-height: 44rpx;
+    font-size: 24rpx;
+    color: rgba(153, 153, 153, 1);
+    text-align: center;
+  }
+}

+ 100 - 0
htmldev/shiningWxMini/pages/myNews/myNews.wxml

@@ -0,0 +1,100 @@
+<page-meta page-style="{{ booPopop ? 'overflow: hidden;' : '' }}"/>
+<view class="wrapper">
+  <view class="app_page-header">
+    <view class="portrait">
+      <image
+        mode="aspectFill"
+        src="{{userInfo.user_head_img_url}}"></image>
+    </view>
+    <view class="user-name">{{userInfo.user_nickname}}</view>
+    <view class="dashborad-box">
+      <view>粉丝:{{fans_num}}</view>
+      <view>关注:{{follow_num}}</view>
+    </view>
+  </view>
+  <view class="main">
+    <view
+      class="list"
+      wx:for="{{listData}}"
+      wx:key="id">
+      <view class="top">
+        <view class="portrait">
+          <image src="{{item.user_head_img_url}}"></image>
+        </view>
+        <view class="blogger-name-wrap">
+          <view class="user-name">{{item.user_nickname}}</view>
+          <view class="business-name" wx:if="{{!!item.shop_name}}">商铺:{{item.shop_name}}</view>
+        </view>
+        <!-- 删除按钮 -->
+        <view
+          class="btn-del"
+          data-item="{{item}}"
+          bind:tap="showDeleteNews">
+          <image src="../../image/common/del.png"></image>
+        </view>
+      </view>
+      <view class="news">
+        <view class="text">{{item.track_content}}</view>
+        <view class="photo-wrap">
+          <view
+            class="box"
+            wx:for="{{item.track_img_url}}"
+            wx:for-item="img"
+            wx:for-index="idx"
+            wx:key="idx"
+            data-index="{{idx}}"
+            data-imgs="{{item.track_img_url}}"
+            bind:tap="handlePreviewImage">
+            <image src="{{img}}"></image>
+          </view>
+        </view>
+      </view>
+      <view class="message-list">
+        <view
+          class="list"
+          wx:for="{{item.comments}}"
+          wx:for-item="msg"
+          wx:for-index="idx"
+          wx:key="idx">
+          <view class="message">{{msg.user_nickname}}:{{msg.track_comment}}</view>
+        </view>
+      </view>
+    </view>
+    <!-- 无数据 -->
+    <view class="list-bitmap" wx:if="{{finished && listData.length < 1}}">
+      <image src="../../image/common/bitmap.png"></image>
+      <text>暂无数据</text>
+    </view>
+    <view
+      class="pullup-wrapper"
+      wx:if="{{!isRefresh}}">
+      <van-loading
+        wx:if="{{!finished}}"
+        size="24px"
+        type="spinner">加载中...
+      </van-loading>
+    </view>
+  </view>
+</view>
+  <!-- 弹窗:删除动态 -->
+<van-popup
+  custom-class="customer-van-model"
+  show="{{ booDeleteNews }}"
+  bind:close="hideDeleteNews">
+  <view class="customer-van-model_body">
+    <view class="content">确定删除动态吗?</view>
+  </view>
+  <view class="customer-van-model_footer">
+    <button class="customer-van-model_cancel"
+            hover-class="none"
+            type="default"
+            bind:tap="hideDeleteNews">取消
+    </button>
+    <button class="customer-van-model_confirm"
+            hover-class="none"
+            type="primary"
+            disabled="{{booLock}}"
+            bind:tap="confirmDeleteNews">确定
+    </button>
+  </view>
+</van-popup>

+ 14 - 0
htmldev/shiningWxMini/pages/news/api/index.js

@@ -46,3 +46,17 @@ export const postGood = (postData) => request({
   },
   showLoading: true
 })
+
+/**
+ * 删除动态
+ * @param track_id
+ * @returns {Promise<*>}
+ */
+export const postDelComment = (track_id) => request({
+  url: '/api/user/track/delete',
+  method: 'POST',
+  data: {
+    'track_id': track_id // 动态ID
+  },
+  showLoading: true
+})