bding 1 year ago
parent
commit
3abb6c4fac

+ 2 - 2
components/ItemComponent/roadshowItem.vue

@@ -101,7 +101,7 @@ export default {
       if (item.AudioActivityId) {
         content_item = {
           ActivityId: item.AudioActivityId,
-          PlaySeconds: item.AudioPlaySeconds,
+          PlaySeconds: +item.AudioPlaySeconds,
           ResourceUrl: item.AudioResourceUrl,
           Title: item.AudioTitle,
           Type: item.AudioType,
@@ -149,7 +149,7 @@ export default {
         let VoiceList = {
           Url: item.ResourceUrl,
           Name: item.Title,
-          PlaySeconds: item.PlaySeconds,
+          PlaySeconds: +item.PlaySeconds,
         };
         this.$store.commit("audioBg/addAudio", { list: VoiceList, indexId: item.ActivityId, activityTitle: item.Title });
       }

+ 156 - 0
pages-purchaser/columnAuthor/columnAuthor.vue

@@ -0,0 +1,156 @@
+<template>
+  <view class="container author-column-pages">
+    <view class="item-ul">
+      <view class="item-li" v-for="item in specialList" :key="item.Id" @click="goDetailPages(item)">
+        <view class="item-title"> {{ item.SpecialName }}</view>
+        <view class="item-name-time">
+          <view class="name">
+            <image :src="item.HeadImg"></image>
+            <text> {{ item.NickName }}</text>
+          </view>
+          <view class="time"> {{ item.LatestPublishDate }}</view>
+        </view>
+        <view class="item-content"> 专栏介绍: {{ item.Introduction }} </view>
+        <view class="item-new" v-if="item.YanxuanSpecialCenter">
+          <view class="item-new-time">
+            <text>最近更新</text>
+            <text>{{item.YanxuanSpecialCenter.PublishTime}}</text>
+          </view>
+          <view class="item-new-title text_twoLine"> {{item.YanxuanSpecialCenter.Title}} </view>
+        </view>
+      </view>
+      <u-loadmore :status="status" icon-type="flower" :load-text="loadText" margin-top="20" v-if="page_no > 1" />
+    </view>
+    <Loading />
+  </view>
+</template>
+
+<script>
+import { purchaserApi } from "@/config/api";
+export default {
+  data() {
+    return {
+      specialList: [], // 专栏列表
+      isAuthor: false, // 是否是作者
+      refresh: false,
+      page_no: 1,
+      pageSize: 10,
+      status: "loadmore",
+      loadText: {
+        loadmore: "上拉加载更多",
+        loading: "加载中",
+        nomore: "已经到底了",
+      },
+    };
+  },
+  methods: {
+    async getColumnList() {
+      const res = await purchaserApi.yanxuanSpecialAuthorList({
+        PageSize: this.pageSize,
+        CurrentIndex: this.page_no,
+      });
+      if (res.Ret === 200) {
+        this.status = res.Data.Paging.IsEnd ? "nomore" : "loadmore";
+        this.specialList = this.page_no == 1 ? res.Data.List || [] : this.specialList.concat(res.Data.List);
+        this.isAuthor = res.Data.IsAuthor;
+        if (this.refresh) {
+          uni.stopPullDownRefresh();
+          this.refresh = false;
+        }
+      }
+    },
+    // 去往专栏详情
+    goDetailPages(item) {
+      uni.navigateTo({ url: "/pages-purchaser/columnDetail/columnDetail?id=" + item.UserId });
+    },
+  },
+  onShow() {
+    this.getColumnList();
+  },
+  /** 用户点击分享 */
+  //   onShareAppMessage: function (res) {
+  //     return {
+  //       title: "研选专栏",
+  //       path: "",
+  //     };
+  //   },
+  /* 下拉刷新 */
+  onPullDownRefresh() {
+    this.refresh = true;
+    this.getColumnList();
+  },
+  // 下滑触底
+  onReachBottom() {
+    if (this.status == "nomore") return;
+    this.page_no++;
+    this.getColumnList();
+    this.status = "loading";
+  },
+};
+</script>
+
+<style lang="scss" scope>
+.author-column-pages {
+  background-color: $uni-bg-color;
+  .item-ul {
+    padding: 30rpx;
+    .item-li {
+      padding: 0 30rpx 30rpx;
+      background-color: white;
+      border-radius: 16rpx;
+      border-top: 10rpx solid #8fa4c4;
+      margin-bottom: 20rpx;
+      .item-title {
+        margin-top: 20rpx;
+        font-size: 34rpx;
+        font-weight: 500;
+      }
+      .item-name-time {
+        display: flex;
+        justify-content: space-between;
+        align-items: center;
+        height: 80rpx;
+        font-size: 28rpx;
+        color: #999;
+        .name {
+          display: flex;
+          align-items: center;
+          image {
+            width: 48rpx;
+            height: 48rpx;
+            border-radius: 50%;
+            margin-right: 10rpx;
+          }
+        }
+      }
+      .item-content {
+        text-overflow: -o-ellipsis-lastline;
+        overflow: hidden;
+        text-overflow: ellipsis;
+        display: -webkit-box;
+        -webkit-line-clamp: 4;
+        line-clamp: 4;
+        -webkit-box-orient: vertical;
+      }
+      .item-new {
+        margin-top: 20rpx;
+        padding-top: 15rpx;
+        border-top: 1rpx solid #dcdfe6;
+        line-height: 34rpx;
+        .item-new-time {
+          display: flex;
+          align-items: center;
+          justify-content: space-between;
+          font-size: 24rpx;
+          color: #999;
+          margin-bottom: 18rpx;
+        }
+        .item-new-title {
+          font-size: 24rpx;
+          color: #333;
+        }
+      }
+    }
+  }
+}
+</style>

+ 7 - 1
pages-purchaser/contentAllPage/contentAllPage.vue

@@ -147,7 +147,13 @@ export default {
 
     // 去往详情
     goDetail(item) {
-      uni.navigateTo({ url: "/pages-purchaser/noteAndViewpoint/noteAndViewpoint?id=" + item.Id });
+      if (item.Status == 2) {
+        uni.navigateTo({
+          url: "/pages-purchaser/toExamine/toExamine?id=" + item.Id,
+        });
+      } else {
+        uni.navigateTo({ url: "/pages-purchaser/noteAndViewpoint/noteAndViewpoint?id=" + item.Id });
+      }
     },
   },
   onLoad(options) {

+ 359 - 0
pages-purchaser/myColumnDetail/myColumnDetail.vue

@@ -0,0 +1,359 @@
+<template>
+  <view class="container my-column-detail">
+    <view class="set-up-info">
+      <block v-if="(authorDetail.NickName || authorDetail.SpecialName) && isEditInfo">
+        <info-card :authorDetail="authorDetail" pagesType="专栏详情" @editColumnHandler="editColumnHandler" />
+        <view class="column-list-content">
+          <column-list-content :authorDetail="authorDetail" :mySpecialList="mySpecialList" @upDateCollectHandler="upDateCollectHandler" />
+          <u-loadmore :status="status" icon-type="flower" :load-text="loadText" margin-top="20" v-if="page_no > 1" />
+        </view>
+        <view class="write-note-button">
+          <view class="draft" @click="goContentPage"> 内容中心</view>
+          <view class="release" @click="goReleaseContent"> 发布新内容</view>
+        </view>
+      </block>
+      <block v-else>
+        <view class="info-name info-box">
+          <block v-if="isEditInfo">
+            <text class="seting-txt">首次进入我的专栏</text>
+            <text class="seting-txt">请设置您的专栏信息</text>
+          </block>
+          <text class="seting-txt" v-else>编辑专栏</text>
+          <input v-model="columnName" placeholder="请输入专栏名称(最多12个字)" />
+          <input v-model="columnNickname" placeholder="请输入昵称(最多12个字)" />
+        </view>
+        <view class="set-up-lable info-box">
+          <view class="top-box">
+            <view class="lable-txt">
+              专栏标签
+              <text>(选填)</text>
+            </view>
+            <view v-if="columnLableList.length < 6" class="new-lable" @click="addlableShow = true">+ 新建标签</view>
+          </view>
+          <view class="column-lable">
+            <view class="lable-item" v-for="(item, index) in columnLableList" :key="index">
+              <text>{{ item }}</text>
+              <van-icon name="cross" @click="deleteLablehandle(index)" />
+            </view>
+          </view>
+        </view>
+        <view class="set-up-info info-box" style="height: 480rpx">
+          <view class="lable-txt"> 专栏介绍 </view>
+          <u-input :maxlength="30" v-model="columnIntroduce" type="textarea" :clearable="false" placeholder="请输入专栏介绍 " height="300" class="ipt" />
+        </view>
+        <view class="my-btn" @click="infoDetermineHandler"> {{ isEditInfo ? "进入我的专栏" : "保存" }} </view>
+      </block>
+    </view>
+    <u-modal
+      v-model="addlableShow"
+      :show-title="false"
+      show-cancel-button
+      confirm-text="确定"
+      cancel-text="取消"
+      :content-style="{ fontSize: '32rpx' }"
+      :cancel-style="{ borderRight: '1rpx solid #EBEBEB' }"
+      :confirm-style="{ fontWeight: '700' }"
+      @confirm="confirmModal"
+      @cancel="cancelModal"
+    >
+      <view class="slot-content slot-content-text">
+        <text class="add-lable-txt">新建标签</text>
+        <input v-model="addLableName" placeholder="请输入标签名称(最多8个字)" />
+      </view>
+    </u-modal>
+  </view>
+</template>
+
+<script>
+import ColumnListContent from "../components/columnListContent.vue";
+import infoCard from "../components/infoCard.vue";
+import { purchaserApi } from "@/config/api";
+export default {
+  components: { infoCard, ColumnListContent },
+  data() {
+    return {
+      tabList: [
+        { name: "专栏列表", value: "1" },
+        { name: "我的专栏", value: "2" },
+      ],
+      specialList: [], // 专栏列表
+      mySpecialList: [], // 专栏列表
+      isAuthor: false, // 是否是作者
+      authorDetail: {}, // 作者的详情信息
+      tabActive: "1",
+      addlableShow: false,
+      columnName: "",
+      columnNickname: "",
+      columnIntroduce: "",
+      columnLableList: [],
+      addLableName: "",
+      isEditInfo: true,
+      refresh: false,
+      page_no: 1,
+      pageSize: 10,
+      status: "loadmore",
+      loadText: {
+        loadmore: "上拉加载更多",
+        loading: "加载中",
+        nomore: "已经到底了",
+      },
+    };
+  },
+  methods: {
+    // 添加标签的确认事件
+    confirmModal() {
+      if (!this.addLableName) return this.$util.toast("未添加标签");
+      this.columnLableList.push(this.addLableName.slice(0, 8));
+      this.addLableName = "";
+    },
+    // 添加标签的取消事件
+    cancelModal() {
+      this.addLableName = "";
+    },
+    // 信息填写完成 进入我的专栏
+    async infoDetermineHandler() {
+      if (this.columnName && this.columnNickname && this.columnIntroduce) {
+        const res = await purchaserApi.yanxuanSpecialAuthorSave({
+          SpecialName: this.columnName.slice(0, 12),
+          NickName: this.columnNickname.slice(0, 12),
+          Introduction: this.columnIntroduce,
+          Label: this.columnLableList.join(","),
+          UserId: this.authorDetail.UserId,
+        });
+        if (res.Ret === 200) {
+          this.getAuthorDetail();
+          this.isEditInfo = true;
+        }
+      } else {
+        let str = !this.columnName ? "专栏名称" : !this.columnNickname ? "专栏昵称" : !this.columnIntroduce ? "专栏介绍" : "";
+        this.$util.toast("请输入" + str);
+      }
+    },
+    // 删除新建标签
+    deleteLablehandle(index) {
+      this.columnLableList.splice(index, 1);
+    },
+    async getAuthorDetail() {
+      const res = await purchaserApi.yanxuanSpecialAuthorDetail();
+      if (res.Ret === 200) {
+        this.authorDetail = res.Data || {};
+        this.getYanxuanSpecialList();
+      }
+    },
+    async getYanxuanSpecialList() {
+      const res = await purchaserApi.yanxuanSpecialList({
+        UserId: this.authorDetail.UserId,
+        PageSize: this.pageSize,
+        CurrentIndex: this.page_no,
+      });
+      if (res.Ret === 200) {
+        this.status = res.Data.Paging.IsEnd ? "nomore" : "loadmore";
+        this.isAuthor = res.Data.IsAuthor;
+        this.isImproveInformation = res.Data.IsImproveInformation;
+        this.mySpecialList = this.page_no == 1 ? res.Data.List || [] : this.mySpecialList.concat(res.Data.List);
+      }
+    },
+    // 去往专栏详情
+    goDetailPages(item) {
+      uni.navigateTo({ url: "/pages-purchaser/columnDetail/columnDetail?id=" + item.UserId });
+    },
+    // 去往内容中心
+    goContentPage() {
+      uni.navigateTo({ url: "/pages-purchaser/contentAllPage/contentAllPage" });
+    },
+    // 去发布新内容
+    goReleaseContent() {
+      uni.navigateTo({ url: "/pages-purchaser/writeNote/writeNote" });
+    },
+    // 编辑专栏
+    editColumnHandler() {
+      this.columnName = this.authorDetail.SpecialName;
+      this.columnNickname = this.authorDetail.NickName;
+      this.columnIntroduce = this.authorDetail.Introduction;
+      this.columnLableList = this.authorDetail.Label ? this.authorDetail.Label.split(",") : [];
+      this.isEditInfo = false;
+    },
+    // 更新收藏
+    upDateCollectHandler(item) {
+      this.mySpecialList.forEach((key) => {
+        if (key.Id === item.Id) {
+          key.CollectNum = item.IsCollect == 1 ? item.CollectNum - 1 : item.CollectNum + 1;
+          key.IsCollect = item.IsCollect == 1 ? 0 : 1;
+        }
+      });
+    },
+  },
+  /** 用户点击分享 */
+  //   onShareAppMessage: function (res) {
+  //     return {
+  //       title: "研选专栏",
+  //       path: "",
+  //     };
+  //   },
+  /* 下拉刷新 */
+  onPullDownRefresh() {},
+  onShow() {
+    this.getAuthorDetail();
+  },
+  // 下滑触底
+  onReachBottom() {
+    if (this.status == "nomore") return;
+    this.page_no++;
+    this.getYanxuanSpecialList();
+    this.status = "loading";
+  },
+};
+</script>
+
+<style lang="scss" scope>
+.my-column-detail {
+  background-color: $uni-bg-color;
+  input {
+    height: 72rpx;
+    background-color: #f0f1f3;
+    padding-left: 24rpx;
+    border-radius: 12rpx;
+  }
+
+  .set-up-info {
+    padding: 30rpx;
+    overflow: hidden;
+    .info-name {
+      width: 100%;
+      padding: 40rpx;
+      border-radius: 16rpx;
+      color: #333;
+      background-color: #fff;
+      .seting-txt {
+        text-align: center;
+        font-size: 36rpx;
+        font-weight: 500;
+        line-height: 50rpx;
+      }
+      .item-txt {
+        margin-top: 40rpx;
+        margin-bottom: 5rpx;
+        font-size: 28rpx;
+        font-weight: 500;
+        line-height: 40rpx;
+      }
+      input {
+        margin-top: 40rpx;
+      }
+    }
+    .set-up-lable {
+      .top-box {
+        display: flex;
+        background-color: #fff;
+        justify-content: space-between;
+
+        .new-lable {
+          color: #376cbb;
+        }
+      }
+    }
+    .lable-txt {
+      font-size: 28rpx;
+      font-weight: 500;
+      line-height: 40rpx;
+      display: flex;
+      text {
+        color: #999;
+        flex-wrap: 400;
+      }
+    }
+    .info-box {
+      padding: 40rpx;
+      border-radius: 16rpx;
+      color: #333;
+      background-color: #fff;
+      margin-bottom: 30rpx;
+    }
+    .ipt {
+      height: 300rpx;
+    }
+  }
+  .u-input {
+    margin-top: 10rpx;
+    background-color: #f0f1f3;
+  }
+  .u-input__textarea {
+    padding: 20rpx !important;
+  }
+  .my-btn {
+    margin: 50rpx 0;
+    width: 100%;
+    height: 72rpx;
+    padding: 18rpx 30rpx 18rpx 30rpx;
+    border-radius: 9rpx;
+    background: #376cbb;
+    color: #fff;
+    display: flex;
+    align-items: center;
+    justify-content: center;
+  }
+  .add-lable-txt {
+    color: #000;
+    font-size: 36rpx;
+    flex-wrap: 600;
+    margin-bottom: 20rpx;
+
+    width: 100%;
+    text-align: center;
+  }
+  .column-lable {
+    display: flex;
+    flex-wrap: wrap;
+    .lable-item {
+      display: flex;
+      color: #fff;
+      font-size: 28rpx;
+      padding: 10rpx 24rpx;
+      background-color: #376cbb;
+      border-radius: 153px;
+      margin: 20rpx 20rpx 0 0;
+      text {
+        margin-right: 12rpx;
+      }
+    }
+  }
+  .slot-content-text {
+    text-align: left;
+  }
+  .write-note-button {
+    position: fixed;
+    width: 100%;
+    bottom: 10rpx;
+    left: 0rpx;
+    z-index: 99;
+    display: flex;
+    padding: 0 35rpx;
+    padding-bottom: constant(safe-area-inset-bottom);
+    padding-bottom: env(safe-area-inset-bottom);
+    .draft {
+      margin-right: 20rpx;
+      display: flex;
+      align-items: center;
+      justify-content: center;
+      width: 216rpx;
+      height: 72rpx;
+      color: #376cbb;
+      background-color: #e5efff;
+      border-radius: 9rpx;
+    }
+    .release {
+      flex: 1;
+      display: flex;
+      align-items: center;
+      justify-content: center;
+      height: 72rpx;
+      border-radius: 9rpx;
+      color: #ffff;
+      background-color: #376cbb;
+    }
+  }
+  .column-list-content {
+    margin-top: 20rpx;
+  }
+}
+</style>

+ 51 - 17
pages-purchaser/noteAndViewpoint/noteAndViewpoint.vue

@@ -1,5 +1,5 @@
 <template>
-  <view class="container note-and-viewpoint">
+  <view class="container note-and-viewpoint" v-if="detailDataForm.HasPermission == 1">
     <view class="content-item">
       <view class="author-name">
         <view class="img-box">
@@ -28,14 +28,24 @@
       <view class="lable-conten">
         <view class="item" v-for="key in dataProcessing(detailDataForm.Tags)" :key="key">{{ key }}</view>
       </view>
-      <view class="collect-conten">
-        <image @click="collectHandler(2)" v-if="detailDataForm.IsCollect == 1" src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/czbk/collect_act.png"></image>
-        <image @click="collectHandler(1)" v-else src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/czbk/collect_icon.png"></image>
-        {{ detailDataForm.CollectNum }}
-      </view>
+    </view>
+    <view class="statement-content">
+      <text>郑重声明:</text>
+      本文为用户投稿,用户在平台中发表的所有资料、言论等仅代表个人或嘉宾观点,与本网站、任何公司与任何机构立场无关。本平台对文中陈述、观点判断保持中立,不对所包含内容及数据的真实性、准确性、可靠性或完整性提供任何明示或暗示的保证。
+      股市波动与很多因素有关,任何用户或嘉宾的发言,都有其特定立场,投资决策是个人基于自己的研究分析所做的决定,本文章或会议目的在于事实、观点分享,不构成任何的投资建议。投资者应当自主进行投资决策,对投资者因依赖上述信息进行投资决策而导致的财产损失,本平台不承担法律责任。
+      本文章或会议未经本平台和作者的书面许可,任何机构和个人不得以任何形式转发、转载、翻版、复制、刊登、发表、修改、仿制或引用文章或会议的全部或部分内容。本平台对任何第三方的未经授权行为所产生的的影响不承担任何责任,同时保持实施法律行动的权利。
+    </view>
+    <view class="collect-conten">
+      <image @click="collectHandler(2)" v-if="detailDataForm.IsCollect == 1" src="https://hzchart.oss-cn-shanghai.aliyuncs.com/new_cygx/collected_icon.png"></image>
+      <image @click="collectHandler(1)" v-else src="https://hzchart.oss-cn-shanghai.aliyuncs.com/new_cygx/collect_ico.png"></image>
+      {{ detailDataForm.IsCollect == 1 ? "已收藏" : "收藏" }}
     </view>
     <Loading />
   </view>
+  <view class="nodata" v-else>
+    <image src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/czbk/act_search.png" mode="" class="nodata_ico"></image>
+    <text>报告加急审核中,请耐心等待~</text>
+  </view>
 </template>
 
 <script>
@@ -187,17 +197,7 @@ export default {
         margin: 0 20rpx 20rpx 0;
       }
     }
-    .collect-conten {
-      display: flex;
-      justify-content: flex-end;
-      align-items: center;
-      color: #666666;
-      image {
-        width: 27rpx;
-        height: 26rpx;
-        padding: 10rpx;
-      }
-    }
+
     .author-name {
       display: flex;
       align-items: center;
@@ -215,5 +215,39 @@ export default {
       }
     }
   }
+  .collect-conten {
+    position: fixed;
+    bottom: 0;
+    left: 0;
+    width: 100%;
+    padding: 20rpx 0 10rpx;
+    background-color: #fff;
+    padding-bottom: constant(safe-area-inset-bottom);
+    padding-bottom: env(safe-area-inset-bottom);
+    display: flex;
+    flex-direction: column;
+    align-items: center;
+    color: #666666;
+    font-size: 24rpx;
+    line-height: 28rpx;
+    image {
+      display: inline-block;
+      flex-shrink: 0;
+      width: 44rpx;
+      height: 44rpx;
+    }
+  }
+  .statement-content {
+    margin-top: 20rpx;
+    padding-bottom: 200rpx;
+    font-size: 28rpx;
+    line-height: 48rpx;
+    color: #666;
+    text {
+      font-weight: 500;
+      font-size: 34rpx;
+      line-height: 48rpx;
+    }
+  }
 }
 </style>

+ 76 - 379
pages-purchaser/specialColumn/specialColumn.vue

@@ -1,197 +1,69 @@
 <template>
   <view class="container special-column">
-    <view class="tab-content" v-if="isAuthor">
-      <view class="item" v-for="item in tabList" :key="item.value" @click="tabClickHandler(item)">
-        {{ item.name }}
-        <view class="line-active" v-if="tabActive == item.value"> </view>
+    <view class="top-content">
+      <view class="global_card_content column-author" @click="goColumnAuthor">
+        <text>专栏作者</text>
+        <van-icon name="arrow" color="#999999" size="16" />
       </view>
-    </view>
-    <view class="item-ul" v-if="tabActive == 1">
-      <view class="item-li" v-for="item in specialList" :key="item.Id" @click="goDetailPages(item)">
-        <view class="item-title"> {{ item.SpecialName }}</view>
-        <view class="item-name-time">
-          <view class="name">
-            <image :src="item.HeadImg"></image>
-            <text> {{ item.NickName }}</text>
-          </view>
-          <view class="time"> {{ item.LatestPublishDate }}</view>
+      <view class="global_card_content column-my" @click="goColumnMy" v-if="isAuthor">
+        <text>我的专栏</text>
+        <view class="is-info">
+          <view v-if="!isImproveInformation">待完善信息</view>
+          <van-icon name="arrow" color="#999999" size="16" />
         </view>
-        <view class="item-content"> 专栏介绍: {{ item.Introduction }} </view>
       </view>
     </view>
-    <view class="set-up-info" v-if="tabActive == 2">
-      <block v-if="(authorDetail.NickName || authorDetail.SpecialName) && isEditInfo">
-        <info-card :authorDetail="authorDetail" pagesType="专栏详情" @editColumnHandler="editColumnHandler" />
-        <view class="column-list-content">
-          <column-list-content :authorDetail="authorDetail" :mySpecialList="mySpecialList" @upDateCollectHandler="upDateCollectHandler" />
-        </view>
-        <view class="write-note-button">
-          <view class="draft" @click="goContentPage"> 内容中心</view>
-          <view class="release" @click="goReleaseContent"> 发布新内容</view>
-        </view>
-      </block>
-      <block v-else>
-        <view class="info-name info-box">
-          <block v-if="isEditInfo">
-            <text class="seting-txt">首次进入我的专栏</text>
-            <text class="seting-txt">请设置您的专栏信息</text>
-          </block>
-          <text class="seting-txt" v-else>编辑专栏</text>
-          <input v-model="columnName" placeholder="请输入专栏名称(最多12个字)" />
-          <input v-model="columnNickname" placeholder="请输入昵称(最多12个字)" />
-        </view>
-        <view class="set-up-lable info-box">
-          <view class="top-box">
-            <view class="lable-txt">
-              专栏标签
-              <text>(选填)</text>
-            </view>
-            <view v-if="columnLableList.length < 6" class="new-lable" @click="addlableShow = true">+ 新建标签</view>
-          </view>
-          <view class="column-lable">
-            <view class="lable-item" v-for="(item, index) in columnLableList" :key="index">
-              <text>{{ item }}</text>
-              <van-icon name="cross" @click="deleteLablehandle(index)" />
-            </view>
-          </view>
-        </view>
-        <view class="set-up-info info-box" style="height: 480rpx">
-          <view class="lable-txt"> 专栏介绍 </view>
-          <u-input :maxlength="30" v-model="columnIntroduce" type="textarea" :clearable="false" placeholder="请输入专栏介绍 " height="300" class="ipt" />
-        </view>
-        <view class="my-btn" @click="infoDetermineHandler"> {{ isEditInfo ? "进入我的专栏" : "保存" }} </view>
-      </block>
+    <view class="column-list-content">
+      <column-list-content :mySpecialList="mySpecialList" @upDateCollectHandler="upDateCollectHandler" />
+      <u-loadmore :status="status" icon-type="flower" :load-text="loadText" margin-top="20" v-if="page_no > 1" />
     </view>
-    <u-modal
-      v-model="addlableShow"
-      :show-title="false"
-      show-cancel-button
-      confirm-text="确定"
-      cancel-text="取消"
-      :content-style="{ fontSize: '32rpx' }"
-      :cancel-style="{ borderRight: '1rpx solid #EBEBEB' }"
-      :confirm-style="{ fontWeight: '700' }"
-      @confirm="confirmModal"
-      @cancel="cancelModal"
-    >
-      <view class="slot-content slot-content-text">
-        <text class="add-lable-txt">新建标签</text>
-        <input v-model="addLableName" placeholder="请输入标签名称(最多8个字)" />
-      </view>
-    </u-modal>
     <Loading />
   </view>
 </template>
 
 <script>
 import ColumnListContent from "../components/columnListContent.vue";
-import infoCard from "../components/infoCard.vue";
 import { purchaserApi } from "@/config/api";
 export default {
-  components: { infoCard, ColumnListContent },
+  components: { ColumnListContent },
+
   data() {
     return {
-      tabList: [
-        { name: "专栏列表", value: "1" },
-        { name: "我的专栏", value: "2" },
-      ],
-      specialList: [], // 专栏列表
-      mySpecialList: [], // 专栏列表
-      isAuthor: false, // 是否是作者
-      authorDetail: {}, // 作者的详情信息
-      tabActive: "1",
-      addlableShow: false,
-      columnName: "",
-      columnNickname: "",
-      columnIntroduce: "",
-      columnLableList: [],
-      addLableName: "",
-      isEditInfo: true,
-      refresh:false
+      mySpecialList: [],
+      isAuthor: true,
+      isImproveInformation: true,
+      refresh: false, //正在下拉
+      page_no: 1,
+      pageSize: 10,
+      status: "loadmore",
+      loadText: {
+        loadmore: "上拉加载更多",
+        loading: "加载中",
+        nomore: "已经到底了",
+      },
     };
   },
   methods: {
-    // top标签点击事件
-    tabClickHandler(item) {
-      this.tabActive = item.value;
+    // 去往专栏作者
+    goColumnAuthor() {
+      uni.navigateTo({ url: "/pages-purchaser/columnAuthor/columnAuthor" });
     },
-    // 添加标签的确认事件
-    confirmModal() {
-      if (!this.addLableName) return this.$util.toast("未添加标签");
-      this.columnLableList.push(this.addLableName.slice(0, 8));
-      this.addLableName = "";
+    // 去往我的专栏
+    goColumnMy() {
+      uni.navigateTo({ url: "/pages-purchaser/myColumnDetail/myColumnDetail" });
     },
-    // 添加标签的取消事件
-    cancelModal() {
-      this.addLableName = "";
-    },
-    // 信息填写完成 进入我的专栏
-    async infoDetermineHandler() {
-      if (this.columnName && this.columnNickname && this.columnIntroduce) {
-        const res = await purchaserApi.yanxuanSpecialAuthorSave({
-          SpecialName: this.columnName.slice(0, 12),
-          NickName: this.columnNickname.slice(0, 12),
-          Introduction: this.columnIntroduce,
-          Label: this.columnLableList.join(","),
-          UserId: this.authorDetail.UserId,
-        });
-        if (res.Ret === 200) {
-          this.getAuthorDetail();
-          this.isEditInfo = true;
-        }
-      } else {
-        let str = !this.columnName ? "专栏名称" : !this.columnNickname ? "专栏昵称" : !this.columnIntroduce ? "专栏介绍" : "";
-        this.$util.toast("请输入" + str);
-      }
-    },
-    // 删除新建标签
-    deleteLablehandle(index) {
-      this.columnLableList.splice(index, 1);
-    },
-    async getColumnList() {
-      const res = await purchaserApi.yanxuanSpecialAuthorList();
+    async getYanxuanSpecialList() {
+      const res = await purchaserApi.yanxuanSpecialList({
+        PageSize: this.pageSize,
+        CurrentIndex: this.page_no,
+      });
       if (res.Ret === 200) {
-        this.specialList = res.Data.List || [];
+        this.status = res.Data.Paging.IsEnd ? "nomore" : "loadmore";
         this.isAuthor = res.Data.IsAuthor;
-        this.isAuthor && this.getAuthorDetail();
-        if (this.refresh) {
-          uni.stopPullDownRefresh();
-          this.refresh = false;
-        }
-      }
-    },
-    async getAuthorDetail() {
-      const res = await purchaserApi.yanxuanSpecialAuthorDetail();
-      if (res.Ret === 200) {
-        this.authorDetail = res.Data || {};
-        const myRes = await purchaserApi.yanxuanSpecialList({
-          UserId: this.authorDetail.UserId,
-        });
-        if (myRes.Ret === 200) {
-          this.mySpecialList = myRes.Data.List || [];
-        }
+        this.isImproveInformation = res.Data.IsImproveInformation;
+        this.mySpecialList = this.page_no == 1 ? res.Data.List || [] : this.mySpecialList.concat(res.Data.List);
       }
     },
-    // 去往专栏详情
-    goDetailPages(item) {
-      uni.navigateTo({ url: "/pages-purchaser/columnDetail/columnDetail?id=" + item.UserId });
-    },
-    // 去往内容中心
-    goContentPage() {
-      uni.navigateTo({ url: "/pages-purchaser/contentAllPage/contentAllPage" });
-    },
-    // 去发布新内容
-    goReleaseContent() {
-      uni.navigateTo({ url: "/pages-purchaser/writeNote/writeNote" });
-    },
-    // 编辑专栏
-    editColumnHandler() {
-      this.columnName = this.authorDetail.SpecialName;
-      this.columnNickname = this.authorDetail.NickName;
-      this.columnIntroduce = this.authorDetail.Introduction;
-      this.columnLableList = this.authorDetail.Label ? this.authorDetail.Label.split(",") : [];
-      this.isEditInfo = false;
-    },
     // 更新收藏
     upDateCollectHandler(item) {
       this.mySpecialList.forEach((key) => {
@@ -203,7 +75,7 @@ export default {
     },
   },
   onShow() {
-    this.getColumnList();
+    this.getYanxuanSpecialList();
   },
   /** 用户点击分享 */
   onShareAppMessage: function (res) {
@@ -212,10 +84,12 @@ export default {
       path: "/pages-purchaser/specialColumn/specialColumn",
     };
   },
-  /* 下拉刷新 */
-  onPullDownRefresh() {
-    this.refresh = true;
-    this.getColumnList();
+  // 下滑触底
+  onReachBottom() {
+    if (this.status == "nomore") return;
+    this.page_no++;
+    this.getYanxuanSpecialList();
+    this.status = "loading";
   },
 };
 </script>
@@ -223,222 +97,45 @@ export default {
 <style lang="scss" scope>
 .special-column {
   background-color: $uni-bg-color;
-  input {
-    height: 72rpx;
-    background-color: #f0f1f3;
-    padding-left: 24rpx;
-    border-radius: 12rpx;
-  }
-  .tab-content {
-    position: sticky;
-    top: 0;
-    left: 0;
-    z-index: 99;
-    margin-top: 1rpx;
-    background-color: #fff;
-    height: 96rpx;
+  padding: 38rpx 35rpx 35rpx;
+  .top-content {
     display: flex;
-    view {
-      flex: 1;
-      text-align: center;
-      line-height: 96rpx;
-      border-bottom: 2rpx solid #e7e7e7;
-    }
-    .item {
-      position: relative;
-      .line-active {
-        position: absolute;
-        left: 50%;
-        bottom: 0rpx;
-        width: 32rpx;
-        height: 6rpx;
-        border-radius: 6rpx;
-        background-color: #376cbb;
-        transform: translateX(-50%);
-      }
-    }
-  }
-  .item-ul {
-    padding: 30rpx;
-    .item-li {
-      padding: 0 30rpx 30rpx;
-      background-color: white;
-      border-radius: 16rpx;
-      border-top: 10rpx solid #8fa4c4;
-      margin-bottom: 20rpx;
-      .item-title {
-        margin-top: 20rpx;
-        font-size: 34rpx;
-        font-weight: 500;
-      }
-      .item-name-time {
-        display: flex;
-        justify-content: space-between;
-        align-items: center;
-        height: 80rpx;
-        font-size: 28rpx;
-        color: #999;
-        .name {
-          display: flex;
-          align-items: center;
-          image {
-            width: 48rpx;
-            height: 48rpx;
-            border-radius: 50%;
-            margin-right: 10rpx;
-          }
-        }
-      }
-      .item-content {
-        text-overflow: -o-ellipsis-lastline;
-        overflow: hidden;
-        text-overflow: ellipsis;
-        display: -webkit-box;
-        -webkit-line-clamp: 4;
-        line-clamp: 4;
-        -webkit-box-orient: vertical;
-      }
-    }
-  }
-  .set-up-info {
-    padding: 30rpx;
-    overflow: hidden;
-    .info-name {
-      width: 100%;
-      padding: 40rpx;
-      border-radius: 16rpx;
-      color: #333;
-      background-color: #fff;
-      .seting-txt {
-        text-align: center;
-        font-size: 36rpx;
-        font-weight: 500;
-        line-height: 50rpx;
-      }
-      .item-txt {
-        margin-top: 40rpx;
-        margin-bottom: 5rpx;
-        font-size: 28rpx;
-        font-weight: 500;
-        line-height: 40rpx;
-      }
-      input {
-        margin-top: 40rpx;
-      }
-    }
-    .set-up-lable {
-      .top-box {
-        display: flex;
-        background-color: #fff;
-        justify-content: space-between;
-
-        .new-lable {
-          color: #376cbb;
-        }
-      }
-    }
-    .lable-txt {
-      font-size: 28rpx;
-      font-weight: 500;
-      line-height: 40rpx;
-      display: flex;
-      text {
-        color: #999;
-        flex-wrap: 400;
-      }
-    }
-    .info-box {
-      padding: 40rpx;
-      border-radius: 16rpx;
-      color: #333;
-      background-color: #fff;
-      margin-bottom: 30rpx;
-    }
-    .ipt {
-      height: 300rpx;
-    }
-  }
-  .u-input {
-    margin-top: 10rpx;
-    background-color: #f0f1f3;
-  }
-  .u-input__textarea {
-    padding: 20rpx !important;
-  }
-  .my-btn {
-    margin: 50rpx 0;
-    width: 100%;
-    height: 72rpx;
-    padding: 18rpx 30rpx 18rpx 30rpx;
-    border-radius: 9rpx;
-    background: #376cbb;
-    color: #fff;
-    display: flex;
-    align-items: center;
-    justify-content: center;
-  }
-  .add-lable-txt {
-    color: #000;
-    font-size: 36rpx;
-    flex-wrap: 600;
+    font-weight: 500;
+    font-size: 28rpx;
+    line-height: 40rpx;
+    color: #333;
     margin-bottom: 20rpx;
-
-    width: 100%;
-    text-align: center;
-  }
-  .column-lable {
-    display: flex;
-    flex-wrap: wrap;
-    .lable-item {
-      display: flex;
-      color: #fff;
-      font-size: 28rpx;
-      padding: 10rpx 24rpx;
-      background-color: #376cbb;
-      border-radius: 153px;
-      margin: 20rpx 20rpx 0 0;
-      text {
-        margin-right: 12rpx;
-      }
-    }
-  }
-  .slot-content-text {
-    text-align: left;
-  }
-  .write-note-button {
-    position: fixed;
-    width: 100%;
-    bottom: 10rpx;
-    left: 0rpx;
-    z-index: 99;
-    display: flex;
-    padding: 0 35rpx;
-    padding-bottom: constant(safe-area-inset-bottom);
-    padding-bottom: env(safe-area-inset-bottom);
-    .draft {
-      margin-right: 20rpx;
+    .column-author,
+    .column-my {
       display: flex;
       align-items: center;
-      justify-content: center;
-      width: 216rpx;
-      height: 72rpx;
-      color: #376cbb;
-      background-color: #e5efff;
-      border-radius: 9rpx;
-    }
-    .release {
+      justify-content: space-between;
+      height: 107;
+      background-color: #fff;
       flex: 1;
+    }
+    .column-my {
+      margin-left: 20rpx;
+    }
+    .is-info {
       display: flex;
       align-items: center;
-      justify-content: center;
-      height: 72rpx;
-      border-radius: 9rpx;
-      color: #ffff;
-      background-color: #376cbb;
+      justify-content: flex-end;
+      view {
+        color: #999;
+        font-size: 24rpx;
+        font-weight: 400;
+        line-height: 34rpx;
+      }
     }
   }
   .column-list-content {
-    margin-top: 20rpx;
+    border-radius: 16rpx;
+    background-color: #fff;
+    /deep/ .column-list-content-detail {
+      padding: 0 40rpx !important;
+      border-bottom: 2rpx solid #f0f1f3;
+    }
   }
 }
 </style>

+ 21 - 2
pages-purchaser/toExamine/toExamine.vue

@@ -1,6 +1,6 @@
 <template>
   <!-- 笔记审核 -->
-  <view class="container to-examine">
+  <view class="container to-examine" v-if="detailDataForm.HasPermission == 1">
     <view class="content-item">
       <view class="author-name">
         <view class="img-box">
@@ -25,8 +25,12 @@
       <view class="lable-conten">
         <view class="item" v-for="key in dataProcessing(detailDataForm.Tags)" :key="key">{{ key }}</view>
       </view>
+      <block v-if="detailDataForm.IsShowExamine">
+        <image v-if="detailDataForm.ExamineStatus == 3" class="label-image" src="https://hzchart.oss-cn-shanghai.aliyuncs.com/new_cygx/pass_through.png"></image>
+        <image v-if="detailDataForm.ExamineStatus == 4" class="label-image" src="https://hzchart.oss-cn-shanghai.aliyuncs.com/new_cygx/overrule_icon.png"></image>
+      </block>
     </view>
-    <view class="bottom-btn" v-if="isShow">
+    <view class="bottom-btn" v-if="detailDataForm.ExamineStatus == 2 && isShow">
       <view @click="rejectTextShow = true">驳回</view>
       <view @click="passRhrouhg">通过</view>
     </view>
@@ -49,6 +53,10 @@
     </u-modal>
     <Loading />
   </view>
+  <view class="nodata" v-else>
+    <image src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/czbk/act_search.png" mode="" class="nodata_ico"></image>
+    <text>报告加急审核中,请耐心等待~</text>
+  </view>
 </template>
 
 <script>
@@ -127,6 +135,7 @@ export default {
     async getDetaliData() {
       const res = await purchaserApi.yanxuanSpecialDetail({
         Id: this.detailId,
+        IsSendWx: 1,
       });
       if (res.Ret === 200) {
         this.detailDataForm = res.Data;
@@ -165,8 +174,10 @@ export default {
   padding: 30rpx;
   background: $uni-bg-color;
   .content-item {
+    position: relative;
     padding: 40rpx;
     background-color: #fff;
+    border-radius: 16rpx;
     .type-time {
       display: flex;
       align-items: center;
@@ -298,5 +309,13 @@ export default {
       background-color: #f8f8fa;
     }
   }
+  .label-image {
+    position: absolute;
+    top: 0;
+    right: 0;
+    z-index: 9;
+    width: 222rpx;
+    height: 222rpx;
+  }
 }
 </style>

+ 14 - 0
pages.json

@@ -584,6 +584,20 @@
             "navigationBarTitleText": "编辑专栏",
             "enablePullDownRefresh": false
           }
+        },
+        {
+          "path": "columnAuthor/columnAuthor",
+          "style": {
+            "navigationBarTitleText": "专栏作者",
+            "enablePullDownRefresh": false
+          }
+        },
+        {
+          "path": "myColumnDetail/myColumnDetail",
+          "style": {
+            "navigationBarTitleText": "我的专栏",
+            "enablePullDownRefresh": false
+          }
         }
       ]
     },