bd 2 tahun lalu
induk
melakukan
18633777be

+ 338 - 0
activityPages/specialDetail/specialDetail.vue

@@ -0,0 +1,338 @@
+<template>
+  <view class="container activity-detail">
+    <view class="" v-if="haveAuth == 1">
+      <view class="content">
+        <view class="dialog-title" :class="1 == 1 ? 'brackets-title' : ''">{{ detailData.ResearchTheme }}</view>
+        <view class="network">
+          <view class="network-left">活动类型:</view>
+          <view class="network-right">{{ detailData.ActivityTypeName }}</view>
+        </view>
+        <view class="network">
+          <view class="network-left">所属行业:</view>
+          <view class="network-right">{{ detailData.ChartPermissionName }}</view>
+        </view>
+        <view class="network">
+          <view class="network-left">预期时间:</view>
+          <view class="network-right">{{ detailData.ActivityTimeText }}</view>
+        </view>
+        <view class="network">
+          <view class="network-left">调研形式:</view>
+          <view class="network-right">{{ detailData.SpecialType == 1 ? "线上" : "线下" }}</view>
+        </view>
+        <block v-if="detailData.IndustrialName || detailData.IndustrialSubjectName">
+          <view class="network">
+            <view class="network-left">产业名称:</view>
+            <view class="network-right">{{ detailData.IndustrialName }}</view>
+          </view>
+          <view class="network">
+            <view class="network-left">相关公司:</view>
+            <view class="network-right">{{ detailData.IndustrialSubjectName }}</view>
+          </view>
+        </block>
+        <block v-else>
+          <view class="network">
+            <view class="network-left">相关主题:</view>
+            <view class="network-right">{{ detailData.Label }}</view>
+          </view>
+        </block>
+      </view>
+      <view class="" style="height: 50rpx"></view>
+      <view class="look-Trip" @click="lookImg">
+        查看行程安排
+        <van-icon name="arrow" />
+      </view>
+      <view class="interest-btn">
+        <text class="button" v-if="detailData.IsSignup !== 1" @click="interest">感兴趣</text>
+        <text class="button" @click="beNotInterested" v-else>已预报名</text>
+        若对该活动感兴趣,欢迎点击感兴趣进行预报名
+      </view>
+    </view>
+    <!-- 权限部分 -->
+    <view v-else>
+      <jurisdiction :idAct="id" :haveAuth="haveAuth" :industryMsg="industryMsg" :msgType="msgType" :sellerMobile="sellerMobile" :sellerName="sellerName"></jurisdiction>
+    </view>
+    <freeCharge class="free-charge" :isShowFreeBtn="isShowFree" />
+  </view>
+</template>
+
+<script>
+import { activity, User } from "@/config/api.js";
+import jurisdiction from "../activityDetail/jurisdiction/components.vue";
+import freeCharge from "@/components/freeCharge";
+let app = getApp({ allowDefault: true });
+export default {
+  data() {
+    return {
+      id: "",
+      detailData: {},
+      haveAuth: "",
+      industryMsg: "",
+      sellerMobile: "",
+      sellerName: "", //销售名称
+      msgType: "",
+    };
+  },
+  components: {
+    jurisdiction,
+    freeCharge,
+  },
+  watch: {
+    haveAuth: {
+      handler() {
+        //上传页面统计
+        // if (this.haveAuth == 1) {
+        //   this.$store.dispatch("statistics", { PageType: "ActivitParticulars", DetailId: this.id });
+        // }
+      },
+      immediate: true,
+    },
+  },
+  methods: {
+    async getActivityDetail() {
+      const res = await activity.getSpecialDetailList({ ActivityId: this.id });
+      if (res.Ret == 200) {
+        this.haveAuth = res.Data.HasPermission;
+        this.industryMsg = res.Data.PopupMsg;
+        this.sellerMobile = res.Data.SellerMobile;
+        this.sellerName = res.Data.SellerName;
+        this.msgType = res.Data.MsgType;
+        if (res.Data.HasPermission == 1) {
+          this.detailData = res.Data.Detail;
+        }
+      }
+    },
+    //感兴趣
+    async interest() {
+      const res = await activity.postSpecialSignupAdd({
+        ActivityId: this.detailData.ActivityId,
+      });
+      if (res.Ret === 200) {
+        this.detailData.IsSignup = 1;
+        this.currentPages();
+        uni.showModal({
+          content: "预报名成功,已通知您的销售",
+          confirmText: "知道了",
+          showCancel: false,
+          confirmColor: "#3385FF",
+        });
+      }
+    },
+    //已预报名、就是不感兴趣
+    beNotInterested() {
+      uni.showModal({
+        content: "您要取消此次专研调研的预报名吗?",
+        confirmColor: "#3385FF",
+        cancelColor: "#606266",
+        success: async (res) => {
+          if (res.confirm) {
+            const res = await activity.postSpecialSignupAdd({
+              ActivityId: this.detailData.ActivityId,
+            });
+            if (res.Ret === 200) {
+              this.detailData.IsSignup = 0;
+              this.currentPages();
+            }
+          }
+        },
+      });
+    },
+    currentPages() {
+      let pages = getCurrentPages();
+      let prevPage = pages[pages.length - 2];
+      let path = prevPage.$page.fullPath;
+      if (path == "/activityPages/specialResearchPage/specialResearchPage") {
+        const index = prevPage.$vm.collectList.findIndex((item) => item.ActivityId == this.id);
+        prevPage.$vm.collectList[index].IsSignup = this.detailData.IsSignup;
+      }
+    },
+    //查看行程的事件
+    lookImg() {
+      uni.previewImage({
+        urls: [this.detailData.TripImgLink], //查看图片的数组
+      });
+    },
+  },
+  onLoad(option) {
+    console.log(option);
+    this.id = option.id || "";
+  },
+  async onShow() {
+    await this.$store.dispatch("checkHandle");
+    if (!this.$store.state.isAuth && !this.$store.state.isBind) {
+      //已授权已绑定
+      this.getActivityDetail();
+    }
+  },
+  /**
+   * 用户点击分享
+   */
+  onShareAppMessage: function (res) {
+    return {
+      title: this.isHorzMobile ? "好友向您推荐此内容,上传名片享查研观向免费试用月卡!" : "活动详情",
+      path: "/activityPages/activityDetail/activityDetail?id=" + this.id,
+      success: (res) => {},
+      fail: (err) => {},
+    };
+  },
+};
+</script>
+
+<style lang="scss">
+.activity-detail {
+  padding-bottom: 100rpx;
+  .notice {
+    height: 60rpx;
+    width: 100%;
+  }
+  .choose-limit {
+    position: relative;
+    display: flex;
+    align-items: center;
+    // margin-left: 20rpx;
+    image {
+      width: 93rpx;
+      height: 38rpx;
+    }
+    .limit-img {
+      position: absolute;
+      top: -13rpx;
+      right: -30rpx;
+      width: 46rpx;
+      height: 26rpx;
+    }
+  }
+  .content {
+    padding: 34rpx 34rpx 0rpx;
+    margin-bottom: -20rpx;
+    color: #333333;
+    font-size: 28rpx;
+    view {
+      padding-left: 20rpx;
+    }
+
+    text {
+      line-height: 80rpx;
+      padding-left: 20rpx;
+    }
+
+    .phone {
+      padding: 0;
+      display: inline-block;
+      color: #2c83ff;
+    }
+
+    .dialog-title {
+      width: 682rpx;
+      padding: 20rpx;
+      background: #f2f2f2;
+      opacity: 0.8;
+      text-align: center;
+      font-size: 30rpx;
+      font-weight: bold;
+      margin-bottom: 15rpx;
+      color: #000;
+    }
+    .brackets-title {
+      padding-left: 20rpx;
+    }
+    .city-box {
+      display: flex;
+      align-items: center;
+
+      text {
+        padding: 0;
+      }
+
+      .city {
+        display: flex;
+        color: #2088ff;
+        align-items: center;
+
+        image {
+          width: 27rpx;
+          height: 32rpx;
+          margin-right: 12rpx;
+        }
+      }
+    }
+  }
+
+  .network {
+    margin-bottom: 30rpx;
+    padding: 0 !important;
+    display: flex;
+    .network-left {
+      width: 160rpx;
+      text-align-last: justify;
+      text-align: justify;
+    }
+
+    .network-right {
+      width: 480rpx;
+    }
+    .network-zoom {
+      .text_zoom {
+        width: 100%;
+        word-break: break-all;
+        color: #333333;
+      }
+      view {
+        padding: 0 !important;
+        margin: 0 !important;
+      }
+      .copy-zoom {
+        display: inline-block;
+        padding: 5rpx 17rpx !important;
+        border-radius: 34rpx;
+        background-color: #ebf4ff;
+        font-size: 24rpx;
+        color: #2c83ff;
+        margin: 0 10rpx;
+        margin-top: 30rpx;
+      }
+    }
+    .network-link {
+      width: 520rpx !important;
+      view {
+        padding: 0 !important;
+        margin: 0 !important;
+        width: 100%;
+        display: flex;
+        justify-content: space-between;
+        :first-child {
+          width: 350rpx;
+        }
+        .copy-link {
+          padding: 5rpx 17rpx !important;
+          border-radius: 34rpx;
+          background-color: #ebf4ff;
+          font-size: 24rpx;
+          color: #2c83ff;
+        }
+      }
+    }
+  }
+  .look-Trip {
+    width: 100%;
+    text-align: center;
+    font-size: 28rpx;
+    color: #3385ff;
+    font-weight: 500;
+  }
+  .interest-btn {
+    width: 100%;
+    text-align: center;
+    text {
+      width: 318rpx;
+      height: 67rpx;
+      background: #3385ff;
+      font-size: 28rpx;
+      color: #fff;
+      font-weight: 500;
+      border-radius: 4rpx;
+      line-height: 67rpx;
+      margin: 90rpx auto 40rpx;
+    }
+  }
+}
+</style>

+ 260 - 0
activityPages/specialResearchPage/specialResearchPage.vue

@@ -0,0 +1,260 @@
+<template>
+  <view class="container special-research">
+    <view class="top-notice">
+      <view class="notice">
+        <van-notice-bar color="#FFFFFF" background="#FE9000" text="专项调研行程持续更新中,满五家即开团,欢迎点击感兴趣预报名" />
+      </view>
+      <view class="inform-btn" @click="specialFollow">{{ isFollow ? "取消通知" : "新调研通知" }}</view>
+    </view>
+    <!-- 活动列表 -->
+    <view>
+      <view class="collect-ul">
+        <view class="collect-ltem" v-for="(item, index) in collectList" :key="index">
+          <view class="title-date" @click="goDetail(item)">
+            <text :class="item.SpecialType == 1 ? 'on-line' : 'xianxia'">{{ item.SpecialType == 1 ? "线上" : "线下" }}</text>
+            <view class="city-img" v-if="item.City">
+              <image src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/czbk/location.png"></image>
+              {{ item.City }}
+            </view>
+          </view>
+          <view class="item-li">
+            <view class="item-img" @click="goDetail(item)">
+              <image :src="item.ImgUrl" />
+            </view>
+            <view class="item">
+              <view class="item-text" @click="goDetail(item)">
+                <text class="activity-title"> {{ item.ResearchTheme }} </text>
+                <text class="text_twoLine">预期时间:{{ item.ActivityTimeText }} </text>
+              </view>
+              <view class="bottom-box">
+                <view class="" style="width: 130rpx"> </view>
+                <text @click="lookImg(item)">行程安排</text>
+                <text class="button" v-if="item.IsSignup !== 1" @click="interest(item)">感兴趣</text>
+                <text class="button" @click="beNotInterested(item)" v-else>已预报名</text>
+              </view>
+            </view>
+          </view>
+        </view>
+        <u-loadmore :status="status" icon-type="flower" :load-text="loadText" margin-top="20" v-if="totalPage > 1" />
+      </view>
+      <view class="select-box"> </view>
+      <!-- 所有自定义弹框 -->
+    </view>
+    <freeCharge class="free-charge" :isShowFreeBtn="isShowFree" />
+    <u-modal
+      v-model="goFollowShow"
+      :content-style="{ fontSize: '32rpx' }"
+      :show-cancel-button="false"
+      confirm-text="知道了"
+      @cancel="isCancelBtn = false"
+      :show-title="false"
+      :cancel-style="{ borderRight: '1rpx solid #EBEBEB' }"
+      :confirm-style="{ fontWeight: '700' }"
+    >
+      <view class="slot-content">
+        <rich-text :nodes="accounts"></rich-text>
+      </view>
+    </u-modal>
+  </view>
+</template>
+
+<script>
+import { activity, User } from "@/config/api.js";
+import { Throttle } from "@/config/util.js";
+import freeCharge from "@/components/freeCharge";
+export default {
+  data() {
+    return {
+      page_no: 1,
+      pageSize: 10,
+      collectList: [],
+      status: "loadmore",
+      refresh: false, //正在下拉
+      loadText: {
+        loadmore: "上拉加载更多",
+        loading: "加载中",
+        nomore: "已经到底了",
+      },
+      isFollow: false,
+      accounts: `您已开启【专项调研】新活动通知<br/><br/>请关注【查研观向小助手】公众号,及时获取微信消息提醒`,
+      goFollowShow: false,
+    };
+  },
+  components: {
+    freeCharge,
+  },
+  methods: {
+    //获取事件
+    async getActivityList() {
+      const res = await activity.getSpecialList({
+        PageSize: this.pageSize,
+        CurrentIndex: this.page_no,
+      });
+      if (res.Ret === 200) {
+        this.isFollow = res.Data.IsFollow;
+        this.status = this.page_no < res.Data.Paging.Pages ? "loadmore" : "nomore";
+        if (this.page_no === 1) {
+          this.collectList = res.Data.List || [];
+          if (this.refresh) {
+            uni.stopPullDownRefresh();
+            this.refresh = false;
+          }
+        } else {
+          this.collectList = this.collectList.concat(res.Data.List);
+        }
+      }
+    },
+    //查看行程的事件
+    lookImg(item) {
+      uni.previewImage({
+        urls: [item.TripImgLink], //查看图片的数组
+      });
+    },
+    //去往详情页面
+    goDetail(item) {
+      this.$store.dispatch("checkHandle", "/activityPages/specialDetail/specialDetail?id=" + item.ActivityId);
+    },
+    //感兴趣
+    async interest(item) {
+      const res = await activity.postSpecialSignupAdd({
+        ActivityId: item.ActivityId,
+      });
+      if (res.Ret === 200) {
+        item.IsSignup = 1;
+        uni.showModal({
+          content: "预报名成功,已通知您的销售",
+          confirmText: "知道了",
+          showCancel: false,
+          confirmColor: "#3385FF",
+        });
+      }
+    },
+    //已预报名、就是不感兴趣
+    beNotInterested(item) {
+      uni.showModal({
+        content: "您要取消此次专研调研的预报名吗?",
+        confirmColor: "#3385FF",
+        cancelColor: "#606266",
+        success: async (res) => {
+          if (res.confirm) {
+            const res = await activity.postSpecialSignupAdd({
+              ActivityId: item.ActivityId,
+            });
+            if (res.Ret === 200) {
+              item.IsSignup = 0;
+            }
+          }
+        },
+      });
+    },
+    //新调研通知
+    async specialFollow() {
+      if (this.isFollow) {
+        uni.showModal({
+          content: "您要取消【专项调研】新活动通知吗?",
+          confirmColor: "#3385FF",
+          cancelColor: "#606266",
+          success: async (res) => {
+            if (res.confirm) {
+              const res = await activity.postSpecialFollow();
+              if (res.Ret === 200) {
+                this.isFollow = !this.isFollow;
+              }
+            }
+          },
+        });
+      } else {
+        const res = await activity.postSpecialFollow();
+        if (res.Ret === 200) {
+          this.isFollow = !this.isFollow;
+          this.goFollowShow = true;
+        }
+      }
+    },
+  },
+  onLoad(option) {
+    this.getActivityList();
+  },
+  onShow() {
+    this.$store.dispatch("checkHandle");
+  },
+  /* 触底 */
+  onReachBottom: Throttle(function () {
+    if (this.status === "nomore") return;
+    this.status = "loading";
+    this.page_no++;
+    this.getActivityList();
+  }),
+  /* 下拉刷新 */
+  onPullDownRefresh: Throttle(function () {
+    this.page_no = 1;
+    this.refresh = true;
+    this.getActivityList();
+  }),
+  /** 用户点击分享 */
+  onShareAppMessage: function (res) {
+    return {
+      title: this.isHorzMobile ? "好友向您推荐此内容,上传名片享查研观向免费试用月卡!" : "专项产业调研",
+      path: "/activityPages/themeActivity/themeActivity?title=" + this.label + "&permissionIds=" + this.permissionIds + "&whichDay=" + this.whichDay + "&type=" + this.type,
+    };
+  },
+};
+</script>
+
+<style lang="scss" scoped>
+.special-research {
+  background: #f7f7f7;
+  padding-bottom: 30rpx;
+  position: relative;
+  .top-notice {
+    position: sticky;
+    top: 0;
+    z-index: 99;
+    background-color: #fe9000;
+    display: flex;
+    align-items: center;
+    height: 96rpx;
+    display: flex;
+    padding-right: 20rpx;
+    .notice {
+      width: 80%;
+    }
+    .inform-btn {
+      width: 147rpx;
+      height: 40rpx;
+      background: #ffffff;
+      border-radius: 4rpx;
+      text-align: center;
+      line-height: 40rpx;
+      font-size: 24rpx;
+      color: #ff9e58;
+    }
+  }
+  .collect-ul {
+    padding-top: 10rpx;
+  }
+
+  .city-img {
+    display: flex;
+    align-items: center;
+    image {
+      width: 27rpx;
+      height: 32rpx;
+      margin-right: 12rpx;
+    }
+  }
+}
+@import "../components/indexActivity.scss";
+.special-research {
+  .title-date {
+    .on-line {
+      color: #3385FF;
+      border: 1px solid #3385FF;
+      background: #fff;
+    }
+    .xianxia {
+      background:#3385FF;
+    }
+  }
+}
+</style>

+ 21 - 1
config/api.js

@@ -101,6 +101,10 @@ export const User = {
   getAskList: (params) => {
     return getHttp("/user/ask/list");
   },
+  //更改用户微信头像
+  headimgurlUpdate: (params) => {
+    return postHttp("/user/headimgurl/update",params);
+  },
 };
 
 /* 首页 */
@@ -303,12 +307,28 @@ export const activity = {
   },
   /*获取活动类型下的主题列表接口(4.3版本)*/
   getActivityLabelTypeList: (params) => {
-    return getHttp("/activity/labelTypeList", params);
+    return getHttp("/activity/labelTypeListV5", params);
   },
   /* 校验活动带问是否有权限接口 */
   checkAskActivity: (params) => {
     return postHttp("/activity/checkAsk", params, 0);
   },
+  /*获取专项产业调研列表接口*/
+  getSpecialList: (params) => {
+    return getHttp("/activity/special/list", params);
+  },
+  /*获取专项产业调研列表接口*/
+  getSpecialDetailList: (params) => {
+    return getHttp("/activity/special/detail", params);
+  },
+  /*获取专项产业调研列表接口*/
+  postSpecialFollow: (params) => {
+    return postHttp("/activity/special/follow", params);
+  },
+  /*感兴趣、不感兴趣接口*/
+  postSpecialSignupAdd: (params) => {
+    return postHttp("/activity/special/signup/add", params);
+  },
 };
 export const FreeButton = {
   /*获取是否展示免费试用按钮接口*/

+ 180 - 0
pageMy/mySchedulepage/mySchedulepage.vue

@@ -0,0 +1,180 @@
+<template>
+  <view class="container activity-content">
+
+    <view class="collect-ul" v-if="haveData">
+      <view class="collect-ltem" v-for="(item, index) in collectList" :key="index">
+        <view class="title-date" @click="goDetail(item)">
+          <text :class="item.ActivityType == 1 ? '' : 'xianxia'">{{ item.ActivityType == 1 ? "线上" : "线下" }}</text>
+          {{ item.ActivityTimeText }}
+        </view>
+        <view class="item-li">
+          <view class="item-img" @click="goDetail(item)">
+            <image :src="item.ImgUrl">
+            <text v-if="item.ActiveState == 1" class="img-status begin">未开始</text>
+            <text v-else-if="item.ActiveState == 2" class="img-status proceed">进行中</text>
+            <text v-else class="img-status">已结束</text>
+            <view class="img-type">
+              <image :src="item.ImgUrlText" mode=""></image>
+            </view>
+          </view>
+          <view class="item">
+            <view class="item-text" @click="goDetail(item)">
+              <text class="activity-title"> {{ item.ActivityName }} </text>
+              <text class="text_twoLine" v-if="item.ActivityTypeName == '专家电话会' || item.ActivityTypeName == '专家线下沙龙' || item.ActivityTypeName == '研选电话会'">专家背景:{{ item.Expert }} </text>
+              <text class="text_twoLine" v-if="item.ActivityTypeName == '公司调研电话会' || item.ActivityTypeName == '公司线下调研'">嘉宾:{{ item.DistinguishedGuest }} </text>
+              <text class="text_twoLine" v-if="item.ActivityTypeName == '分析师电话会' || item.ActivityTypeName == '分析师线下沙龙'">主讲人:{{ item.Speaker }}</text>
+            </view>
+            <block v-if="item.ActiveState == 1">
+              <view class="bottom-box city" v-if="item.ActiveState == 1 && item.IsLimitPeople == 1 && item.ActivityTypeName == '公司调研电话会'">
+                <view class="city-img">
+                  <image v-if="item.City" src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/czbk/location.png" />
+                  {{ item.City }}
+                </view>
+                <text class="button" v-if="item.IsSignup !== 1" @click="wanttosignup(item.ActivityId)">我要报名</text>
+                <text class="button" v-else @click="signupCancel(item.ActivityId, 2, item.ActivityTime)">{{ item.SignupType == 1 ? "取消外呼" : "取消报名" }}</text>
+              </view>
+              <view class="bottom-box" v-else-if="item.ActivityType == 1">
+                <view class="" style="width: 130rpx">
+                  <text v-if="item.ActivityTypeId == 1" @click="askingGo(item)">帮我带问</text>
+                </view>
+                <text @click="meetingReminderAdd(item.ActivityId)" v-if="item.IsCancelMeetingReminder == 0">会议提醒</text>
+                <text @click="meetingReminderCancel(item.ActivityId)" v-else>取消提醒</text>
+                <text class="button" v-if="item.IsSignup !== 1" @click="signupAdd(item.ActivityId, 1)">预约外呼</text>
+                <text class="button" @click="signupCancel(item.ActivityId, 1, item.ActivityTime)" v-else>取消外呼</text>
+              </view>
+              <view class="bottom-box city" v-else>
+                <view class="city-img">
+                  <image src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/czbk/location.png" />
+                  {{ item.City }}
+                </view>
+                <text class="button" v-if="item.IsSignup !== 1" @click="signupAdd(item.ActivityId, 3)">我要报名</text>
+                <text class="button" v-else @click="signupCancel(item.ActivityId, 3, item.ActivityTime)">取消报名</text>
+              </view>
+            </block>
+            <block v-else>
+               <view class="bottom-box city" v-if="item.City">
+                <view class="city-img">
+                  <image src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/czbk/location.png" />
+                  {{ item.City }}
+                </view>
+               </view>  
+               <view class="bottom-box real-time" v-if="item.ActiveState == 2 && item.ActivityTypeId == 1">
+                 <text class="button"  @click="askingGo(item,'提问')">实时提问</text>
+                </view>
+            </block>
+          </view>
+        </view>
+      </view>
+      <u-loadmore :status="status" icon-type="flower" :load-text="loadText" margin-top="20" v-if="totalPage > 1" />
+    </view>
+    <view class="nodata" v-if="!haveData">
+      <image src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/czbk/act_search.png" mode="" class="nodata_ico"></image>
+      <text>{{ tabsActive == 0 ? "暂时没有符合条件的活动" : "暂无我的日程" }}</text>
+    </view>
+      <!-- 所有自定义弹框 -->
+      <modalDialog
+        :isShow="isShow"
+        :signupType="signupType"
+        :goFollow="goFollow"
+        :signupStatus="signupStatus"
+        :hasPermission="hasPermission"
+        :jurisdictionList="jurisdictionList"
+        :editIsShow="editIsShow"
+        :isCancelShow="isCancelShow"
+        :idTypeCancel="idTypeCancel"
+        @cancelShowBtn="cancelEnsure"
+        :countryCode="countryCode"
+        :mobileEdit="mobileEdit"
+        :goOnNextStep="goOnNextStep"
+        :isShowhasPermission="isShowhasPermission"
+        :applyForIsShow="applyForIsShow"
+        :mailboxBinding="mailboxBinding"
+      />
+   <freeCharge class="free-charge" :isShowFreeBtn="isShowFree"/>
+  </view>
+</template>
+
+<script>
+import { activity } from "@/config/api.js";
+import { Throttle } from "@/config/util.js";
+import myActivityMixin from "@/activityPages/components/indexActivity.js";
+import modalDialog from "@/components/modalDialog.vue";
+import freeCharge from '@/components/freeCharge'
+let app = getApp();
+export default {
+  mixins: [myActivityMixin],
+  components: {
+    modalDialog, freeCharge
+  },
+  data() {
+    return {
+      collectTypeList: [],
+      haveData: true,
+      whichDay: "",
+      listChartPermission: [],
+      listChartPermissionInit: [],
+      chartPermissionIds: "",
+      isShowJurisdiction: false, //
+      isGetJurisdiction: 0,
+      isrefresh: true,
+      activityTypeId: '',
+    };
+  },
+  methods: {
+    //
+    async getActivityList() {
+      const res = await activity.getScheduleList({ PageSize: this.pageSize, CurrentIndex: this.page_no });
+      if (res.Ret === 200) {
+        this.contentImg = res.Data.ImgUrl;
+        this.contentLabel = res.Data.Label;
+        this.status = this.page_no < res.Data.Paging.Pages ? "loadmore" : "nomore";
+        if (this.page_no === 1) {
+          this.collectList = res.Data.List || [];
+          this.haveData = this.collectList.length ? true : false;
+          if (this.refresh) {
+            uni.stopPullDownRefresh();
+            this.refresh = false;
+          }
+        } else {
+          this.collectList = this.collectList.concat(res.Data.List);
+        }
+      }
+    },
+  },
+  //load
+  onLoad(option) {
+   this.getActivityList();
+  },
+  async onShow() {
+    await this.$store.dispatch("checkHandle", "noGO");
+  },
+  /* 触底 */
+  onReachBottom: Throttle(function () {
+    if (this.status === "nomore") return;
+    this.status = "loading";
+    this.page_no++;
+     this.getActivityList();
+  }),
+  /* 下拉刷新 */
+  onPullDownRefresh: Throttle(function () {
+    this.page_no = 1;
+    this.refresh = true;
+    this.getActivityList();
+  }),
+ 
+};
+</script>
+
+<style scoped lang="scss">
+.activity-content {
+  background-color: #f7f7f7;
+  padding-bottom: 90rpx;
+  position: relative;
+  padding-top: 20rpx;
+  .nodata_ico {
+    width: 374rpx;
+    height: 288rpx;
+  }
+}
+@import "@/activityPages/components/indexActivity.scss";
+</style>

+ 21 - 0
pages.json

@@ -92,6 +92,20 @@
             "navigationBarTitleText": "主题活动",
             "enablePullDownRefresh": false
           }
+        },
+        {
+          "path": "specialResearchPage/specialResearchPage",
+          "style": {
+            "navigationBarTitleText": "专项产业调研",
+            "enablePullDownRefresh": false
+          }
+        },
+        {
+          "path": "specialDetail/specialDetail",
+          "style": {
+            "navigationBarTitleText": "活动详情",
+            "enablePullDownRefresh": false
+          }
         }
       ]
     },
@@ -252,6 +266,13 @@
             "navigationBarTitleText": "免费试用",
             "enablePullDownRefresh": false
           }
+        },
+        {
+          "path": "mySchedulepage/mySchedulepage",
+          "style": {
+            "navigationBarTitleText": "我的日程",
+            "enablePullDownRefresh": false
+          }
         }
       ]
     }

+ 81 - 75
pages/activity/activity.vue

@@ -39,14 +39,14 @@
     <view class="collect-activity" v-if="haveData && tabsActive == 0">
       <view class="content-list">
         <view class="half">
-          <view class="activity-ltem" v-for="(item, index) in collectTypeList" :key="index" v-if="index % 2 == 0">
+          <view class="activity-ltem" v-for="(item, index) in collectTypeList" :key="index" v-if="item.Position==1">
             <image class="zindex-one" :src="item.ImgUrl"></image>
             <image class="zindex-two" :src="item.ImgUrlBg"></image>
             <view class="content">
-              <view class="item-img" @click="goDetails(item.ActivityTypeId,item.ActivityTypeName)">
+              <view class="item-img" @click="goDetails(item)">
                 {{ item.ActivityTypeName }}
               </view>
-              <view class="activity-li" v-for="val in item.List" :key="val.KeyWord" @click="goDetails(val.KeyWord)">
+              <view class="activity-li" v-for="val in item.List" :key="val.KeyWord" @click="goDetails(val,item.Resource)">
                 <image class="item-image" lazy-load :src="val.ImgUrlBg"></image>
                 <text class="text_oneLine"> {{ val.KeyWord }}</text>
               </view>
@@ -54,14 +54,14 @@
           </view>
         </view>
         <view class="half">
-          <view class="activity-ltem" v-for="(item, index) in collectTypeList" :key="index" v-if="index % 2 != 0">
+          <view class="activity-ltem" v-for="(item, index) in collectTypeList" :key="index" v-if="item.Position==2">
             <image class="zindex-one" :src="item.ImgUrl"></image>
             <image class="zindex-two" :src="item.ImgUrlBg"></image>
             <view class="content">
-              <view class="item-img"  @click="goDetails(item.ActivityTypeId,item.ActivityTypeName)">
+              <view class="item-img"  @click="goDetails(item)">
                 {{ item.ActivityTypeName }}
               </view>
-              <view class="activity-li" v-for="val in item.List" :key="val.KeyWord" @click="goDetails(val.KeyWord)">
+              <view class="activity-li" v-for="val in item.List" :key="val.KeyWord" @click="goDetails(val,item.Resource)">
                 <image class="item-image" lazy-load :src="val.ImgUrlBg"></image>
                 <text class="text_oneLine"> {{ val.KeyWord }}</text>
               </view>
@@ -170,12 +170,12 @@ import { activity } from "@/config/api.js";
 import { Throttle } from "@/config/util.js";
 import myActivityMixin from "@/activityPages/components/indexActivity.js";
 import modalDialog from "@/components/modalDialog.vue";
-import freeCharge  from '@/components/freeCharge'
+import freeCharge from '@/components/freeCharge'
 let app = getApp();
 export default {
   mixins: [myActivityMixin],
   components: {
-    modalDialog,freeCharge
+    modalDialog, freeCharge
   },
   data() {
     return {
@@ -189,7 +189,7 @@ export default {
           id: 2,
         },
       ],
-      collectTypeList:[],
+      collectTypeList: [],
       chartPermissionName: "所有行业",
       haveData: true,
       activityTimeList: [
@@ -203,7 +203,7 @@ export default {
       isShowJurisdiction: false, //
       isGetJurisdiction: 0,
       isrefresh: true,
-      activityTypeId:'',
+      activityTypeId: '',
     };
   },
   computed: {
@@ -224,7 +224,7 @@ export default {
         this.listChartPermission = res.Data.ListChartPermission;
         this.listChartPermissionInit = res.Data.ListChartPermission2;
         this.clickPermission()
-         if (this.chartPermissionIds) {
+        if (this.chartPermissionIds) {
           this.closeTheWindow();
         }
       }
@@ -239,22 +239,22 @@ export default {
       });
       if (res.Ret === 200) {
         this.collectTypeList = res.Data.List || [];
-        this.haveData= this.collectTypeList.length ? true : false;
+        this.haveData = this.collectTypeList.length ? true : false;
         if (this.refresh) {
           uni.stopPullDownRefresh();
           this.refresh = false;
         }
       }
     },
-    async getActivityList(){
-    const res=  await activity.getScheduleList({ PageSize: this.pageSize, CurrentIndex: this.page_no });
-    if (res.Ret === 200) {
+    async getActivityList() {
+      const res = await activity.getScheduleList({ PageSize: this.pageSize, CurrentIndex: this.page_no });
+      if (res.Ret === 200) {
         this.contentImg = res.Data.ImgUrl;
         this.contentLabel = res.Data.Label;
         this.status = this.page_no < res.Data.Paging.Pages ? "loadmore" : "nomore";
         if (this.page_no === 1) {
           this.collectList = res.Data.List || [];
-          this.haveData= this.collectList.length ? true : false;
+          this.haveData = this.collectList.length ? true : false;
           if (this.refresh) {
             uni.stopPullDownRefresh();
             this.refresh = false;
@@ -265,26 +265,26 @@ export default {
       }
     },
     //头部tabs切换
-  toggleTab(item, index) {
-    if (!this.$store.state.isAuth && !this.$store.state.isBind) {
-         //已授权已绑定
-       if (index != this.tabsActive) {
-         this.tabsActive = index;
-         this.page_no = 1;
-         this.collectTypeList = [];
-         this.collectList=[]
-         this.tabsActive==0 ? this.getActivityLabelTypeList() : this.getActivityList()
-         if(this.tabsActive !==0 ){ 
-           this.selectComponent("#industry").toggle(false);
-         }
-       }
-    } else {
-         //已授权未绑定
-         uni.navigateTo({
-           url: "/pageMy/login/login",
-         });
-    }
-     
+    toggleTab(item, index) {
+      if (!this.$store.state.isAuth && !this.$store.state.isBind) {
+        //已授权已绑定
+        if (index != this.tabsActive) {
+          this.tabsActive = index;
+          this.page_no = 1;
+          this.collectTypeList = [];
+          this.collectList = []
+          this.tabsActive == 0 ? this.getActivityLabelTypeList() : this.getActivityList()
+          if (this.tabsActive !== 0) {
+            this.selectComponent("#industry").toggle(false);
+          }
+        }
+      } else {
+        //已授权未绑定
+        uni.navigateTo({
+          url: "/pageMy/login/login",
+        });
+      }
+
     },
     // 下拉的选择的关闭事件
     closeTheWindow() {
@@ -299,7 +299,7 @@ export default {
             item.IsChoose = false;
           }
         });
-        this.chartPermissionName = str.length==6?"所有行业" : str.join(",") 
+        this.chartPermissionName = str.length == 6 ? "所有行业" : str.join(",")
       }
     },
     // 下拉的选择的选中事件
@@ -351,39 +351,36 @@ export default {
       this.getActivityLabelTypeList()
     },
     //是否有权限的点击事件
-  async  permissioActivity() {
+    async permissioActivity() {
       if (!this.$store.state.isAuth && !this.$store.state.isBind) {
-      this.selectComponent("#industry").toggle(false);
-      this.isShowJurisdiction = !this.isShowJurisdiction;
-      this.isGetJurisdiction = this.isShowJurisdiction ? 1 : 2;
-      await  this.getUserSearchContent();
-      this.selectComponent("#industry").toggle(false);
-      if(this.isShowJurisdiction){
-        this.getActivityLabelTypeList()
-      }else{
-        this.replacementBtn()
-      }    
-      }else {
-          //已授权未绑定
-          uni.navigateTo({
-            url: "/pageMy/login/login",
-          });
+        this.selectComponent("#industry").toggle(false);
+        this.isShowJurisdiction = !this.isShowJurisdiction;
+        this.isGetJurisdiction = this.isShowJurisdiction ? 1 : 2;
+        await this.getUserSearchContent();
+        this.selectComponent("#industry").toggle(false);
+        if (this.isShowJurisdiction) {
+          this.getActivityLabelTypeList()
+        } else {
+          this.replacementBtn()
+        }
+      } else {
+        //已授权未绑定
+        uni.navigateTo({
+          url: "/pageMy/login/login",
+        });
       }
-
-      
-      
     },
-     //点击后有权限的
-    clickPermission(){
-              if(this.isShowJurisdiction){     
+    //点击后有权限的
+    clickPermission() {
+      if (this.isShowJurisdiction) {
         const arr = [];
-         this.listChartPermission.forEach((key) => {
+        this.listChartPermission.forEach((key) => {
           if (key.IsChoose) {
-          arr.push(key.ChartPermissionId);
-        }
+            arr.push(key.ChartPermissionId);
+          }
         });
         this.chartPermissionIds = arr.join(",");
-        }
+      }
     },
     loadShare(option) {
       if (option && Object.keys(option).length !== 0) {
@@ -400,12 +397,22 @@ export default {
         });
       }
     },
-    goDetails(key,type='') {
-       this.$store.dispatch("checkHandle", "/activityPages/themeActivity/themeActivity?title=" + key + "&type=" + type + "&permissionIds=" + this.chartPermissionIds + "&whichDay="+ this.whichDay)
+    goDetails(item, key) {
+      if (item.Resource === 1 || key === 1) {
+        let type = item.ActivityTypeName || '';
+        let key = item.ActivityTypeId || item.KeyWord;
+        this.$store.dispatch("checkHandle", "/activityPages/themeActivity/themeActivity?title=" + key + "&type=" + type + "&permissionIds=" + this.chartPermissionIds + "&whichDay=" + this.whichDay)
+      } else {
+        if (key) {
+          this.$store.dispatch("checkHandle", "/activityPages/specialDetail/specialDetail?id=" + item.ActivityId);
+        } else {
+          this.$store.dispatch("checkHandle", "/activityPages/specialResearchPage/specialResearchPage")
+        }
+      }
     },
     //去往搜索事件
     goSearch() {
-       this.$store.dispatch("checkHandle", "/activityPages/activitySearch/activitySearch")
+      this.$store.dispatch("checkHandle", "/activityPages/activitySearch/activitySearch")
     },
   },
   //load
@@ -416,11 +423,11 @@ export default {
   },
   async onShow() {
     await this.$store.dispatch("checkHandle", "noGO");
-    },
+  },
   /** 用户点击分享 */
   onShareAppMessage: function (res) {
     return {
-      title: this.isHorzMobile ? "好友向您推荐此内容,上传名片享查研观向免费试用月卡!" :  this.messageTitle,
+      title: this.isHorzMobile ? "好友向您推荐此内容,上传名片享查研观向免费试用月卡!" : this.messageTitle,
       path: "/pages/activity/activity?whichDay=" + this.whichDay + "&chartPermissionIds=" + this.chartPermissionIds + "&isGetJurisdiction=" + this.isGetJurisdiction,
     };
   },
@@ -429,16 +436,16 @@ export default {
     if (this.status === "nomore") return;
     this.status = "loading";
     this.page_no++;
-     this.getActivityList();
+     this.tabsActive == 1 && this.getActivityList() 
   }),
   /* 下拉刷新 */
   onPullDownRefresh: Throttle(function () {
-      this.page_no = 1;
+    this.page_no = 1;
     this.refresh = true;
     this.tabsActive == 0 ? this.getActivityLabelTypeList() : this.getActivityList();
   }),
   // 页面滚动事件
-  onPageScroll() {},
+  onPageScroll() { },
 
 };
 </script>
@@ -630,17 +637,17 @@ export default {
       width: 100%;
       height: 86rpx;
       position: relative;
-      .item-image{
+      .item-image {
         width: 100%;
         height: 100%;
       }
       .text_oneLine {
-        position:absolute;
+        position: absolute;
         width: 100%;
         height: 50rpx;
         padding: 0 30rpx;
         text-align: center;
-        font-size:28rpx;
+        font-size: 28rpx;
         top: 15rpx;
         color: #fff;
       }
@@ -686,5 +693,4 @@ export default {
   font-size: 24rpx;
 }
 @import "@/activityPages/components/indexActivity.scss";
-
 </style>

+ 29 - 9
pages/my/my.vue

@@ -16,7 +16,7 @@
         <view class="info">
           <view class="info-img">
             <button class="avatar-wrapper" open-type="chooseAvatar" @chooseavatar="onChooseAvatar">
-              <image class="avatar" v-if="Headimgurl" :src="Headimgurl"></image>
+              <image class="avatar" v-if="headimgurl" :src="headimgurl"></image>
               <image src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/czbk/logo.png" class="avatar" v-else></image>
             </button>
           </view>
@@ -44,16 +44,16 @@
           <text v-else class="no-auth">暂无品种权限信息</text>
         </view>
         <view class="info-item">
-          <view class="item">
-            <text class="item-number">10</text>
+          <view class="item" @click="itemClickHandle('mySchedulepage')">
+            <text class="item-number">{{ userInfo.ScheduleNum }}</text>
             <text class="item-text">活动日程</text>
           </view>
-          <view class="item item-label">
-            <text class="item-number">10</text>
+          <view class="item item-label" @click="itemClickHandle('myCollection')">
+            <text class="item-number">{{ userInfo.ConNum }}</text>
             <text class="item-text">收藏</text>
           </view>
-          <view class="item">
-            <text class="item-number">10</text>
+          <view class="item" @click="itemClickHandle('browseHistory')">
+            <text class="item-number">{{ userInfo.HistoryNum }}</text>
             <text class="item-text">足迹</text>
           </view>
         </view>
@@ -76,7 +76,7 @@
 </template>
 
 <script>
-import { Mine, checkToken, User } from "@/config/api.js";
+import { uploadurl, Mine, checkToken, User } from "@/config/api.js";
 import freeCharge from "@/components/freeCharge";
 let app = getApp();
 export default {
@@ -124,7 +124,23 @@ export default {
   methods: {
     //点击了头像
     onChooseAvatar(e) {
-      this.headimgurl = e.detail.avatarUrl;
+      let token = this.$db.get("access_token");
+      let authHeader = token || "";
+      let that = this;
+      uni.uploadFile({
+        url: uploadurl,
+        filePath: e.detail.avatarUrl,
+        header: {
+          "Content-Type": "multipart/form-data",
+          Authorization: authHeader,
+        },
+        name: "file",
+        success(res) {
+          let data = JSON.parse(res.data);
+          that.headimgurl = data.Data.ResourceUrl;
+          User.headimgurlUpdate({ Headimgurl: data.Data.ResourceUrl });
+        },
+      });
     },
     //导航条的高度
     initNavBar() {
@@ -200,6 +216,10 @@ export default {
           uni.navigateTo({
             url: "/reportPages/myAskPage/myAskPage",
           });
+        } else if (type == "myCollection" || type == "browseHistory" || type == "mySchedulepage") {
+          uni.navigateTo({
+            url: `/pageMy/${type}/${type}`,
+          });
         } else {
           let path = this.typeObj.get(type);
           uni.navigateTo({

+ 305 - 150
pages/my/my1.vue

@@ -1,82 +1,109 @@
 <template>
   <view class="container my-container" v-if="haveData">
-    <view class="my-top-info">
-      <image :src="userInfo.Headimgurl" class="avatar" v-if="isLogin && userInfo.Headimgurl"></image>
-      <image src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/czbk/default_avatar.png" class="avatar" v-else></image>
-      <view class="right-section">
-        <template v-if="isLogin">
-          <view class="info-item space-item text_oneLine" v-if="userInfo.Mobile || userInfo.Email">
-            <view class="item-label" decode="true">{{ userInfo.Mobile ? "手机号" : "邮&nbsp;&nbsp;&nbsp;箱" }}</view>
-            :{{ userInfo.Mobile || userInfo.Email }}
-          </view>
-          <view class="info-item space-item text_oneLine"> <view class="item-label" decode="true">姓&nbsp;&nbsp;&nbsp;名</view>:{{ userInfo.RealName || "暂无" }} </view>
-          <view class="info-item text_oneLine"> <view class="item-label" decode="true">公&nbsp;&nbsp;&nbsp;司</view>:{{ userInfo.CompanyName || "暂无" }} </view>
-        </template>
-        <button class="no-log" v-else @click="loginHandle">{{ login_txt }}</button>
+    <view class="nav-bar-wrap" :style="{ height: navBarStyle.height, paddingTop: navBarStyle.paddingTop, paddingBottom: navBarStyle.paddingBottom }">
+      <view class="content">
+        <view class="text">我的</view>
       </view>
     </view>
-    <view class="auth-cont">
-      <image src="https://hzstatic.hzinsights.com/cygx/czbk/auth_bg.png" class="auth_bg"></image>
-      <view class="auth-info">
-        <template v-if="isLogin">
-          <text class="info-label">我的权限:</text>
-          <scroll-view scroll-x="true" scroll-with-animation class="auth-ul" v-if="userInfo.HasPermission === 0">
-            <text class="auth-li" v-for="item in authList" :key="item">{{ item }}</text>
-          </scroll-view>
-          <block v-else>
-            <text class="no-auth">{{ userInfo.HasPermission === 3 ? "权限申请已提交,请等待审核" : "暂未开通行业权限" }}</text>
-            <button class="auth-btn" @click="applyAuth" v-if="userInfo.HasPermission != 3">申请开通</button>
-          </block>
-        </template>
-        <text class="notlog-tip" v-else>让好的研究不再是奢侈品</text>
+    <view class="my-background">
+      <view class="my-notice" v-if="myNotice">
+        添加到我的小程序,做您手边的弘则研究素材库
+        <van-icon @click="myNotice = false" class="my-icon" name="cross" />
       </view>
     </view>
-    <view class="my-bot-cont">
-      <view class="list-item border_bottom" @click="itemClickHandle('外呼')">
-        <text>外呼号码</text>
-        <view class="my-bot-box">
-          <text v-if="userInfo.OutboundCountryCode && userInfo.OutboundMobile" style="margin-right: 40rpx; font-size: 28rpx">{{ userInfo.OutboundCountryCode }}-{{ userInfo.OutboundMobile }}</text>
-          <text v-else style="margin-right: 40rpx; font-size: 28rpx">未设置</text>
-          <u-icon name="arrow-right" color="#BDBDBD" size="34"></u-icon>
+    <view class="my-info">
+      <view class="my-top-info">
+        <view class="info">
+          <view class="info-img">
+            <button class="avatar-wrapper" open-type="chooseAvatar" @chooseavatar="onChooseAvatar">
+              <image class="avatar" v-if="headimgurl" :src="headimgurl"></image>
+              <image src="https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/czbk/logo.png" class="avatar" v-else></image>
+            </button>
+          </view>
+          <view class="info-list">
+            <block v-if="isLogin">
+              <text class="name">{{ userInfo.RealName || "--" }}</text>
+              <text class="mobile">{{ userInfo.Mobile || userInfo.Email }}</text>
+              <text class="company-name">{{ userInfo.CompanyName || "--" }}</text>
+            </block>
+            <block v-else>
+              <text class="name">Hi,请绑定联系方式~</text>
+              <text class="bind-btn" @click="loginHandle">绑定联系方式</text>
+            </block>
+          </view>
+        </view>
+        <view class="auth-info">
+          <template v-if="isLogin">
+            <scroll-view scroll-x="true" scroll-with-animation class="auth-ul" v-if="userInfo.HasPermission === 0">
+              <text class="auth-li" v-for="item in authList" :key="item">{{ item }}</text>
+            </scroll-view>
+            <block v-else>
+              <button class="auth-btn" @click="applyAuth" v-if="userInfo.HasPermission != 3">申请开通权限</button>
+            </block>
+          </template>
+          <text v-else class="no-auth">暂无品种权限信息</text>
+        </view>
+        <view class="info-item">
+          <view class="item" @click="itemClickHandle('mySchedulepage')">
+            <text class="item-number">{{ userInfo.ScheduleNum }}</text>
+            <text class="item-text">活动日程</text>
+          </view>
+          <view class="item item-label" @click="itemClickHandle('myCollection')">
+            <text class="item-number">{{ userInfo.ConNum }}</text>
+            <text class="item-text">收藏</text>
+          </view>
+          <view class="item" @click="itemClickHandle('browseHistory')">
+            <text class="item-number">{{ userInfo.HistoryNum }}</text>
+            <text class="item-text">足迹</text>
+          </view>
         </view>
       </view>
-    </view>
-    <view class="my-bot-cont">
-      <view class="list-item border_bottom" @click="itemClickHandle('提问')">
-        <text>我的提问</text>
-        <u-icon name="arrow-right" color="#BDBDBD" size="34"></u-icon>
-      </view>
-      <view class="list-item border_bottom" v-for="type in typeArr" :key="type" @click="itemClickHandle(type)">
-        <text>{{ type }}</text>
-        <u-icon name="arrow-right" color="#BDBDBD" size="34"></u-icon>
+      <view class="info-bot">
+        <view class="list-item border_bottom" v-for="type in typeArr" :key="type" @click="itemClickHandle(type)">
+          <text>{{ type }}</text>
+          <view class="my-bot-box">
+            <block v-if="type == '外呼号码'">
+              <text v-if="userInfo.OutboundCountryCode && userInfo.OutboundMobile" style="margin-right: 40rpx; font-size: 28rpx">{{ userInfo.OutboundCountryCode }}-{{ userInfo.OutboundMobile }}</text>
+              <text v-else style="margin-right: 40rpx; font-size: 28rpx">未设置</text>
+            </block>
+            <u-icon name="arrow-right" color="#BDBDBD" size="34"></u-icon>
+          </view>
+        </view>
       </view>
     </view>
-   <freeCharge class="free-charge" :isShowFreeBtn="isShowFree"/>
+    <view class="bottom-text">您手边的弘则研究素材库</view>
   </view>
 </template>
 
 <script>
-import { Mine, checkToken, User } from "@/config/api.js";
-import freeCharge  from '@/components/freeCharge'
+import { uploadurl, Mine, checkToken, User } from "@/config/api.js";
+import freeCharge from "@/components/freeCharge";
 let app = getApp();
 export default {
   components: {
-    freeCharge
+    freeCharge,
   },
   data() {
     return {
       isLogin: false, //是否绑定且授权
       login_txt: "",
       haveData: null, //显示页面
-      typeArr: ["我的收藏", "访谈申请", "浏览历史", "优化建议"],
+      typeArr: ["外呼号码", "访谈申请", "我的提问", "优化建议"],
       typeObj: new Map([
-        ["我的收藏", "myCollection"],
+        ["外呼号码", "editOutbound"],
         ["访谈申请", "applyInterview"],
-        ["浏览历史", "browseHistory"],
+        ["我的提问", "myAskPage"],
         ["优化建议", "advice"],
       ]),
       userInfo: {},
       authList: [],
+      navBarStyle: {
+        height: 60 + "px",
+        paddingTop: 40 + "px",
+        paddingBottom: "4px",
+      },
+      myNotice: true,
+      headimgurl: "",
     };
   },
   async onShow() {
@@ -91,7 +118,39 @@ export default {
       this.isLogin = false;
     }
   },
+  onLoad() {
+    this.initNavBar();
+  },
   methods: {
+    //点击了头像
+    onChooseAvatar(e) {
+      let token = this.$db.get("access_token");
+      let authHeader = token || "";
+      let that = this;
+      uni.uploadFile({
+        url: uploadurl,
+        filePath: e.detail.avatarUrl,
+        header: {
+          "Content-Type": "multipart/form-data",
+          Authorization: authHeader,
+        },
+        name: "file",
+        success(res) {
+          let data = JSON.parse(res.data);
+          that.headimgurl = data.Data.ResourceUrl;
+          User.headimgurlUpdate({ Headimgurl: data.Data.ResourceUrl });
+        },
+      });
+    },
+    //导航条的高度
+    initNavBar() {
+      let menuButtonInfo = uni.getMenuButtonBoundingClientRect();
+      this.navBarStyle = {
+        height: menuButtonInfo.height + menuButtonInfo.top + 8 + "px",
+        paddingTop: menuButtonInfo.top - 4 + "px",
+        paddingBottom: "4px",
+      };
+    },
     /* 检查状态 */
     /* 获取用户信息 */
     getUser() {
@@ -99,6 +158,7 @@ export default {
         if (res.Ret === 200) {
           this.authList = res.Data.PermissionName && res.Data.PermissionName.split(",");
           this.userInfo = res.Data;
+          this.headimgurl = res.Data.Headimgurl;
           res.Data.Mobile && this.$db.set("mobile", res.Data.Mobile);
         }
       });
@@ -148,14 +208,18 @@ export default {
     itemClickHandle(type) {
       /* 是否登录 */
       if (this.isLogin) {
-        if (type == "外呼") {
+        if (type == "外呼号码") {
           uni.navigateTo({
             url: "/activityPages/editOutbound/editOutbound?title=设置外呼号码&identification=我的",
           });
-        } else if (type == "提问") {
+        } else if (type == "我的提问") {
           uni.navigateTo({
             url: "/reportPages/myAskPage/myAskPage",
           });
+        } else if (type == "myCollection" || type == "browseHistory" || type == "mySchedulepage") {
+          uni.navigateTo({
+            url: `/pageMy/${type}/${type}`,
+          });
         } else {
           let path = this.typeObj.get(type);
           uni.navigateTo({
@@ -172,119 +236,210 @@ export default {
 
 <style lang="scss" scoped>
 .my-container {
-  background-color: #fff;
-  .my-top-info {
-    padding: 30rpx 34rpx;
-    display: flex;
-    align-items: center;
-    .avatar {
-      width: 168rpx;
-      height: 168rpx;
-      border-radius: 50%;
-      margin-right: 45rpx;
-      border: 1rpx solid #ccc;
-    }
-    .right-section {
-      font-size: 34rpx;
-      .info-item {
-        width: 450rpx;
-        .item-label {
-          // text-align: justify;
-          // text-align-last: justify;
-          display: inline-block;
-          // width: 110rpx;
-        }
-        &.space-item {
-          margin-bottom: 10rpx;
-        }
-      }
-      .no-log {
-        padding: 0 20rpx;
-        height: 56rpx;
-        line-height: 52rpx;
-        background-color: #fff;
-        color: #3385ff;
-        font-size: 24rpx;
-        border: 2rpx solid #3385ff;
+  background: #f9f9f9;
+  position: relative;
+  .nav-bar-wrap {
+    color: #fff;
+    position: fixed;
+    top: 0;
+    left: 0;
+    width: 100%;
+    z-index: 999;
+    .content {
+      position: relative;
+      height: 100%;
+      .text {
+        text-align: center;
+        width: 50vw;
+        position: absolute;
+        left: 50%;
+        top: 50%;
+        transform: translate(-50%, -50%);
+        font-weight: bold;
+        font-size: 30rpx;
       }
     }
   }
-  .auth-cont {
-    width: 682rpx;
-    height: 153rpx;
-    margin: 38rpx auto;
-    padding: 24rpx 36rpx;
-    position: relative;
-    color: #4a4a4a;
-    .auth_bg {
-      width: 682rpx;
-      height: 153rpx;
-      position: absolute;
-      left: 0;
-      top: 0;
-    }
-    .auth-info {
+  .my-background {
+    height: 480rpx;
+    width: 100%;
+    background: url("https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/my_bg.jpg") no-repeat;
+    background-size: 100% 100%;
+    padding-top: 206rpx;
+    .my-notice {
+      height: 55rpx;
+      width: 690rpx;
+      margin: 0 auto;
+      background: rgba(255, 255, 255, 0.5);
+      border-radius: 8px 8px 8px 8px;
+      line-height: 55rpx;
+      text-align: center;
+      color: #ffffff;
       position: relative;
-      .notlog-tip {
-        font-size: 30rpx;
-        color: #333333;
-        line-height: 105rpx;
-        text-align: center;
+      .my-icon {
+        position: absolute;
+        right: 20rpx;
+        top: 50%;
+        transform: translateY(-50%);
+        font-weight: bold;
+        font-size: 16px;
       }
-      .info-label {
-        font-size: 34rpx;
+    }
+  }
+  .my-info {
+    position: absolute;
+    top: 301rpx;
+    left: 50%;
+    transform: translateX(-50%);
+    .my-top-info {
+      width: 690rpx;
+      margin: 0 auto;
+      height: 436rpx;
+      background: url("https://hzchart.oss-cn-shanghai.aliyuncs.com/cygx/czbk/my_log.png") no-repeat;
+      background-color: #ffffff;
+      background-position: right top;
+      background-size: 267rpx 274rpx;
+      box-sizing: border-box;
+      box-shadow: 0px 0rpx 7rpx 1rpx #f0f3f5;
+      border-radius: 8rpx;
+      .info {
+        padding: 61rpx 0 0 30rpx;
+        display: flex;
+        .info-img {
+          width: 126rpx;
+          height: 126rpx;
+          background: #c4c4c4;
+          border-radius: 50%;
+          overflow: hidden;
+          .avatar-wrapper {
+            width: 126rpx;
+            height: 126rpx;
+          }
+          .avatar {
+            width: 126rpx;
+            height: 126rpx;
+            border-radius: 50%;
+          }
+        }
+        .info-list {
+          display: flex;
+          flex-direction: column;
+          justify-content: space-between;
+          margin-left: 32rpx;
+          font-size: 24rpx;
+          font-weight: 400;
+          color: #666666;
+          .name {
+            font-size: 30rpx;
+            color: #000000;
+            line-height: 35rpx;
+            font-weight: 500;
+          }
+          .bind-btn {
+            color: #3385ff;
+            width: 181rpx;
+            height: 49rpx;
+            background: #ffffff;
+            border-radius: 8rpx;
+            border: 2rpx solid #3385ff;
+            text-align: center;
+            line-height: 47rpx;
+          }
+        }
       }
-      .auth-ul {
+      .auth-info {
         width: 100%;
-        white-space: nowrap;
-        margin-top: 15rpx;
-        color: #333;
-        .auth-li {
-          display: inline-block;
-          padding: 6rpx 20rpx;
-          border: 1rpx solid #333333;
-          border-radius: 4rpx;
+        overflow: hidden;
+        margin-top: 36rpx;
+        .auth-ul {
+          white-space: nowrap;
+          padding: 0 30rpx;
+          color: #3385ff;
+          .auth-li {
+            display: inline-block;
+            padding: 1rpx 20rpx;
+            border: 1rpx solid #3385ff;
+            border-radius: 4rpx;
+            font-size: 24rpx;
+            margin-right: 20rpx;
+            background: #edf4ff;
+            &:last-child {
+              margin-right: 50rpx;
+            }
+          }
+        }
+        .no-auth {
+          text-align: center;
+          font-size: 28rpx;
+          color: #999999;
+        }
+        .auth-btn {
+          width: 181rpx;
+          height: 49rpx;
+          margin: 0 auto;
+          color: #3385ff;
           font-size: 24rpx;
-          margin-right: 20rpx;
-          &:last-child {
-            margin-right: 0;
+          line-height: 47rpx;
+          border: 2rpx solid #3385ff;
+        }
+      }
+      .info-item {
+        display: flex;
+        padding-left: 30rpx;
+        margin: 36rpx auto 0;
+        .item {
+          width: 208rpx;
+          height: 76rpx;
+          display: flex;
+          flex-direction: column;
+          justify-content: space-between;
+          text-align: center;
+          .item-number {
+            font-size: 40rpx;
+            font-weight: 500;
           }
         }
+        .item-label {
+          border-right: 1rpx solid #ececec;
+          border-left: 1rpx solid #ececec;
+        }
       }
-      .no-auth {
-        font-size: 28rpx;
-        margin-top: 20rpx;
+    }
+
+    .info-bot {
+      padding: 0 20rpx;
+      background-color: #fff;
+      box-shadow: 0px 0rpx 7rpx 1rpx #f0f3f5;
+      border-radius: 8rpx;
+      margin-top: 20rpx;
+      .list-item {
+        display: flex;
+        align-items: center;
+        justify-content: space-between;
+        font-size: 34rpx;
+        color: #4a4a4a;
+        padding: 33rpx 34rpx;
+        .icon-area {
+          width: 100rpx;
+        }
+        &:last-child {
+          position: static;
+        }
       }
-      .auth-btn {
-        width: 139rpx;
-        height: 56rpx;
-        background: rgba(255, 255, 255, 0.1);
-        color: #3385ff;
-        font-size: 24rpx;
-        position: absolute;
-        right: 0;
-        top: 50%;
-        transform: translateY(-50%);
-        line-height: 56rpx;
-        border: 2rpx solid #3385ff;
+      .my-bot-box {
+        display: flex;
       }
     }
   }
-  .my-bot-cont {
-    .my-bot-box {
-      display: flex;
-    }
-    .list-item {
-      display: flex;
-      align-items: center;
-      justify-content: space-between;
-      font-size: 34rpx;
-      color: #4a4a4a;
-      padding: 33rpx 34rpx;
-      .icon-area {
-        width: 100rpx;
-      }
-    }
+  .bottom-text {
+    position: fixed;
+    bottom: 130rpx;
+    right: 0;
+    z-index: 9;
+    font-size: 20rpx;
+    color: #999999;
+    width: 100%;
+    text-align: center;
   }
 }
 </style>