小程序目录调整完成
This commit is contained in:
		@@ -1,353 +0,0 @@
 | 
			
		||||
<template>
 | 
			
		||||
  <div class="page">
 | 
			
		||||
    <div class="fixed-top">
 | 
			
		||||
      <div class="header-search">
 | 
			
		||||
        <div class="search-input-content">
 | 
			
		||||
          <img src="https://cdn.cunwuyun.cn/img/search-blue.svg" alt="" class="search-icon">
 | 
			
		||||
          <input type="text" placeholder="请输入活动名称或地点" class="search-input" placeholder-style="color:#E2E8F1;"
 | 
			
		||||
                 v-model="inputValue" @confirm="getListInit" confirm-type="search"/>
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
      <div class="header-select">
 | 
			
		||||
        <div class="select-item" @click="activeStatusShow = true">
 | 
			
		||||
          <span>{{ activeStatusLabel }}</span>
 | 
			
		||||
          <img src="https://cdn.cunwuyun.cn/img/down.svg" alt="" class="down-icon">
 | 
			
		||||
        </div>
 | 
			
		||||
        <div class="select-item" @click="checkStatusShow = true">
 | 
			
		||||
          <span>{{ checkStatusLabel }}</span>
 | 
			
		||||
          <img src="https://cdn.cunwuyun.cn/img/down.svg" alt="" class="down-icon">
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
    </div>
 | 
			
		||||
    <div class="active-list">
 | 
			
		||||
      <div class="item" v-for="(item, index) in list" :key="index" @click="isToken(`./detail?id=${item.id}`)">
 | 
			
		||||
        <div class="item-top">
 | 
			
		||||
          <p class="title">{{ item.title }}</p>
 | 
			
		||||
          <div class="info">
 | 
			
		||||
            <span class="label">活动时间:</span>
 | 
			
		||||
            <span class="value">{{ item.beginTime }} 至<br/>{{ item.endTime }}</span>
 | 
			
		||||
          </div>
 | 
			
		||||
          <div class="info">
 | 
			
		||||
            <span class="label">活动地点:</span>
 | 
			
		||||
            <span class="value">{{ item.address }}</span>
 | 
			
		||||
          </div>
 | 
			
		||||
        </div>
 | 
			
		||||
        <div class="item-btn">
 | 
			
		||||
          <span class="phone-btn" @click.stop="callPhone(item.contactPhone)" v-if="item.contactPhone">呼叫联系人</span>
 | 
			
		||||
          <span v-if="item.signupStatus == 0 && item.logStatus == null"
 | 
			
		||||
                @click="isToken(`./toAdd?id=${item.id}`)">去报名</span>
 | 
			
		||||
          <span v-if="item.actionStatus == 1 && item.logStatus == 0"
 | 
			
		||||
                @click="isToken(`./addContent?id=${item.id}&reportId=${item.reportId}`)">填写日志</span>
 | 
			
		||||
          <span v-if="item.logStatus == 2" @click="isToken(`./logDetail?id=${item.id}&title=${item.title}`)">查看日志</span>
 | 
			
		||||
        </div>
 | 
			
		||||
        <span class="item-status"
 | 
			
		||||
              :class="'color'+item.actionStatus">{{
 | 
			
		||||
            $dict.getLabel('partyReportActionStatus', item.actionStatus)
 | 
			
		||||
          }}</span>
 | 
			
		||||
      </div>
 | 
			
		||||
      <AiEmpty v-if="!list.length" class="pad-t168"/>
 | 
			
		||||
    </div>
 | 
			
		||||
    <div class="fixed-bottom btn-footer">
 | 
			
		||||
      <div :class="listType == 0 ? 'confirm-bg' : ''" @click="listTypeChange('0')">
 | 
			
		||||
        <img src="https://cdn.cunwuyun.cn/dvcp/activityList/more-icon-fff.png" alt="" v-if="listType == 0">
 | 
			
		||||
        <img src="https://cdn.cunwuyun.cn/dvcp/activityList/more-icon-999.png" alt="" v-else>
 | 
			
		||||
        活动列表
 | 
			
		||||
      </div>
 | 
			
		||||
      <div :class="listType == 3 ? 'confirm-bg' : ''" @click="listTypeChange('3')">
 | 
			
		||||
        <img src="https://cdn.cunwuyun.cn/dvcp/activityList/pen-icon-fff.png" alt="" v-if="listType == 3">
 | 
			
		||||
        <img src="https://cdn.cunwuyun.cn/dvcp/activityList/pen-icon-999.png" alt="" v-else>
 | 
			
		||||
        我的活动
 | 
			
		||||
      </div>
 | 
			
		||||
    </div>
 | 
			
		||||
    <u-select v-model="activeStatusShow" :list="activeStatusList" @confirm="confirmActiveStatus"
 | 
			
		||||
              confirm-color="#07c160"></u-select>
 | 
			
		||||
    <u-select v-model="checkStatusShow" :list="checkStatusList" @confirm="confirmActiveStatus"
 | 
			
		||||
              confirm-color="#07c160"></u-select>
 | 
			
		||||
    <AiLogin ref="login"/>
 | 
			
		||||
  </div>
 | 
			
		||||
</template>
 | 
			
		||||
<script>
 | 
			
		||||
import {mapState} from 'vuex'
 | 
			
		||||
 | 
			
		||||
export default {
 | 
			
		||||
  name: "AppActivityList",
 | 
			
		||||
  appName: "活动列表",
 | 
			
		||||
  computed: {
 | 
			
		||||
    ...mapState(['user', 'token'])
 | 
			
		||||
  },
 | 
			
		||||
  data() {
 | 
			
		||||
    return {
 | 
			
		||||
      inputValue: '',
 | 
			
		||||
      current: 1,
 | 
			
		||||
      list: [],
 | 
			
		||||
      activeStatus: '',
 | 
			
		||||
      activeStatusLabel: '活动状态',
 | 
			
		||||
      activeStatusShow: false,
 | 
			
		||||
      activeStatusList: [],
 | 
			
		||||
      checkStatusShow: false,
 | 
			
		||||
      checkStatusList: [],
 | 
			
		||||
      checkStatus: '',
 | 
			
		||||
      checkStatusLabel: '报名状态',
 | 
			
		||||
      listType: '0',
 | 
			
		||||
      partyId: '',
 | 
			
		||||
      areaId: ''
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  onLoad() {
 | 
			
		||||
    this.areaId = uni.getStorageSync('areaId')
 | 
			
		||||
    if (this.user.partyId) {
 | 
			
		||||
      this.partyId = this.user.partyId
 | 
			
		||||
    } else {
 | 
			
		||||
      this.partyId = this.user.residentId
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  onShow() {
 | 
			
		||||
    this.$dict.load('partyReportActionStatus', 'partyReportSignupStatus').then(() => {
 | 
			
		||||
      this.activeStatusList = this.getSelectList('partyReportActionStatus')
 | 
			
		||||
      this.checkStatusList = this.getSelectList('partyReportSignupStatus')
 | 
			
		||||
      this.getListInit()
 | 
			
		||||
    })
 | 
			
		||||
  },
 | 
			
		||||
  methods: {
 | 
			
		||||
    confirmActiveStatus(e) {
 | 
			
		||||
      if (this.activeStatusShow) {
 | 
			
		||||
        this.activeStatusLabel = e[0].label
 | 
			
		||||
        this.activeStatus = e[0].value
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      if (this.checkStatusShow) {
 | 
			
		||||
        this.checkStatusLabel = e[0].label
 | 
			
		||||
        this.checkStatus = e[0].value
 | 
			
		||||
      }
 | 
			
		||||
      this.getListInit()
 | 
			
		||||
    },
 | 
			
		||||
    getListInit() {
 | 
			
		||||
      this.current = 1
 | 
			
		||||
      this.list = []
 | 
			
		||||
      this.getList()
 | 
			
		||||
    },
 | 
			
		||||
    getList() {
 | 
			
		||||
      this.$instance.post(`/app/apppartyreport/list-xcx?title=${this.inputValue}&size=10¤t=${this.current}&listType=${this.listType}&actionStatus=${this.activeStatus}&signupStatus=${this.checkStatus}&partyId=${this.partyId}&areaId=${this.areaId}`).then(res => {
 | 
			
		||||
        if (res.code == 0) {
 | 
			
		||||
          if (this.current > res.data.pages) {
 | 
			
		||||
            return
 | 
			
		||||
          }
 | 
			
		||||
          this.list = this.current > 1 ? [...this.list, ...res.data.records] : res.data.records;
 | 
			
		||||
        }
 | 
			
		||||
      })
 | 
			
		||||
    },
 | 
			
		||||
    isToken(url) {
 | 
			
		||||
      if (this.token) {//判断是否登录
 | 
			
		||||
        if (this.user.status == 0) {
 | 
			
		||||
          if (!this.user.phone) {//判断已经绑定手机
 | 
			
		||||
            this.$linkTo('/pages/phone/bingPhoneNumber?from=auth')
 | 
			
		||||
          } else {
 | 
			
		||||
            this.$linkTo('/mods/AppAuth/AppAuth')
 | 
			
		||||
          }
 | 
			
		||||
        } else {
 | 
			
		||||
          this.$linkTo(url)
 | 
			
		||||
        }
 | 
			
		||||
      } else {
 | 
			
		||||
        // this.$getUserProfile().then((v) => {
 | 
			
		||||
        //   this.$autoLogin(v.userInfo).then(() => {
 | 
			
		||||
        //     this.isToken(url)
 | 
			
		||||
        //   })
 | 
			
		||||
        // }).catch(() => {
 | 
			
		||||
        //   this.$toast('请先登录')
 | 
			
		||||
        // })
 | 
			
		||||
        this.login()
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    login() {
 | 
			
		||||
      this.$refs.login.show()
 | 
			
		||||
    },
 | 
			
		||||
    // toDetail(id) {
 | 
			
		||||
    //   this.$linkTo(`./detail?id=${id}`)
 | 
			
		||||
    // },
 | 
			
		||||
    // toAddContent(id, reportId) {
 | 
			
		||||
    //   this.$linkTo(`./addContent?id=${id}&reportId=${reportId}`)
 | 
			
		||||
    // },
 | 
			
		||||
    // toAdd(id) {
 | 
			
		||||
    //   this.$linkTo(`./add?id=${id}`)
 | 
			
		||||
    // },
 | 
			
		||||
    // toLogDetail(id) {
 | 
			
		||||
    //   this.$linkTo(`./logDetail?id=${id}`)
 | 
			
		||||
    // },
 | 
			
		||||
    listTypeChange(type) {
 | 
			
		||||
      this.listType = type
 | 
			
		||||
      this.activeStatus = ''
 | 
			
		||||
      this.activeStatusLabel = '活动状态'
 | 
			
		||||
      this.checkStatus = ''
 | 
			
		||||
      this.checkStatusLabel = '报名状态'
 | 
			
		||||
      this.getListInit()
 | 
			
		||||
    },
 | 
			
		||||
    getSelectList(dictName) {
 | 
			
		||||
      var list = []
 | 
			
		||||
      this.$dict.getDict(dictName).map(i => {
 | 
			
		||||
        var item = {
 | 
			
		||||
          label: i.dictName,
 | 
			
		||||
          value: i.dictValue
 | 
			
		||||
        }
 | 
			
		||||
        list.push(item)
 | 
			
		||||
      })
 | 
			
		||||
      list.unshift({label: '全部', value: ''})
 | 
			
		||||
      return list
 | 
			
		||||
    },
 | 
			
		||||
    callPhone(phone) {
 | 
			
		||||
      wx.makePhoneCall({
 | 
			
		||||
        phoneNumber: phone,
 | 
			
		||||
      })
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  onReachBottom() {
 | 
			
		||||
    this.current = this.current + 1;
 | 
			
		||||
    this.getList()
 | 
			
		||||
  },
 | 
			
		||||
}
 | 
			
		||||
</script>
 | 
			
		||||
<style scoped lang="scss">
 | 
			
		||||
@import "~dvcp-wui/common";
 | 
			
		||||
 | 
			
		||||
.page {
 | 
			
		||||
  width: 100%;
 | 
			
		||||
  background-color: #F3F6F9;
 | 
			
		||||
 | 
			
		||||
  .fixed-top {
 | 
			
		||||
    z-index: 99;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .active-list {
 | 
			
		||||
    padding: 234px 32px 112px;
 | 
			
		||||
    margin-top: 8px;
 | 
			
		||||
    background-color: #F3F6F9;
 | 
			
		||||
    box-sizing: border-box;
 | 
			
		||||
 | 
			
		||||
    .item {
 | 
			
		||||
      width: 100%;
 | 
			
		||||
      background: #FFF;
 | 
			
		||||
      padding: 32px 0 0;
 | 
			
		||||
      box-sizing: border-box;
 | 
			
		||||
      margin-bottom: 34px;
 | 
			
		||||
      position: relative;
 | 
			
		||||
      overflow: hidden;
 | 
			
		||||
 | 
			
		||||
      .item-top {
 | 
			
		||||
        padding: 0 32px;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      .title {
 | 
			
		||||
        width: 576px;
 | 
			
		||||
        font-size: 32px;
 | 
			
		||||
        font-family: PingFangSC-Medium, PingFang SC;
 | 
			
		||||
        font-weight: 500;
 | 
			
		||||
        color: #333;
 | 
			
		||||
        line-height: 44px;
 | 
			
		||||
        word-break: break-all;
 | 
			
		||||
        margin-bottom: 32px;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      .info {
 | 
			
		||||
        font-size: 30px;
 | 
			
		||||
        line-height: 42px;
 | 
			
		||||
        margin-bottom: 8px;
 | 
			
		||||
 | 
			
		||||
        .label {
 | 
			
		||||
          display: inline-block;
 | 
			
		||||
          width: 150px;
 | 
			
		||||
          color: #999;
 | 
			
		||||
          vertical-align: top;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        .value {
 | 
			
		||||
          display: inline-block;
 | 
			
		||||
          width: calc(100% - 150px);
 | 
			
		||||
          color: #343D65;
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      .item-btn {
 | 
			
		||||
        margin-top: 32px;
 | 
			
		||||
        padding: 20px 32px;
 | 
			
		||||
        border-top: 2px solid #eee;
 | 
			
		||||
        text-align: right;
 | 
			
		||||
 | 
			
		||||
        span {
 | 
			
		||||
          display: inline-block;
 | 
			
		||||
          padding: 0 24px;
 | 
			
		||||
          line-height: 56px;
 | 
			
		||||
          border-radius: 28px;
 | 
			
		||||
          border: 2px solid #1365DD;
 | 
			
		||||
          color: #1365DD;
 | 
			
		||||
          font-size: 28px;
 | 
			
		||||
          margin-left: 32px;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        .phone-btn {
 | 
			
		||||
          border: 2px solid #E1E1E1;
 | 
			
		||||
          color: #606060;
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      .item-status {
 | 
			
		||||
        width: 160px;
 | 
			
		||||
        height: 40px;
 | 
			
		||||
        line-height: 36px;
 | 
			
		||||
        font-size: 26px;
 | 
			
		||||
        font-weight: 500;
 | 
			
		||||
        position: absolute;
 | 
			
		||||
        right: -38px;
 | 
			
		||||
        top: 24px;
 | 
			
		||||
        -webkit-transform: rotate(90deg);
 | 
			
		||||
        transform: rotate(45deg);
 | 
			
		||||
        text-align: center;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      .color0 {
 | 
			
		||||
        background: #FFF3E9;
 | 
			
		||||
        color: #FF8822;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      .color1 {
 | 
			
		||||
        background: #EEF5FF;
 | 
			
		||||
        color: #5A98F2;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      .color2 {
 | 
			
		||||
        background: #F2F2F2;
 | 
			
		||||
        color: #999;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .btn-footer {
 | 
			
		||||
    display: flex;
 | 
			
		||||
    height: 112px;
 | 
			
		||||
    line-height: 112px;
 | 
			
		||||
    background-color: #fff;
 | 
			
		||||
    border-top: 2px solid #ddd;
 | 
			
		||||
    box-sizing: border-box;
 | 
			
		||||
 | 
			
		||||
    div {
 | 
			
		||||
      flex: 1;
 | 
			
		||||
      text-align: center;
 | 
			
		||||
      font-size: 32px;
 | 
			
		||||
      font-family: PingFangSC-Regular, PingFang SC;
 | 
			
		||||
      font-weight: 400;
 | 
			
		||||
      color: #666;
 | 
			
		||||
 | 
			
		||||
      img {
 | 
			
		||||
        width: 36px;
 | 
			
		||||
        height: 36px;
 | 
			
		||||
        margin-right: 8px;
 | 
			
		||||
        vertical-align: sub;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .confirm-bg {
 | 
			
		||||
      background-color: #197DF0;
 | 
			
		||||
      color: #fff;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
</style>
 | 
			
		||||
@@ -1,206 +0,0 @@
 | 
			
		||||
<template>
 | 
			
		||||
  <div class="page">
 | 
			
		||||
    <div class="add-form">
 | 
			
		||||
      <div class="form-item">
 | 
			
		||||
        <span class="item-tips">*</span>
 | 
			
		||||
        <span class="label">活动报名类型</span>
 | 
			
		||||
        <span :class="reportType ? 'value color-333' : 'value color-999'"
 | 
			
		||||
              @click="reportTypeShow = true">{{ reportTypeList[reportType].label || '请选择' }}</span>
 | 
			
		||||
        <img src="https://cdn.cunwuyun.cn/img/right-icon-999.png" alt="" class="right-icon">
 | 
			
		||||
      </div>
 | 
			
		||||
      <div class="form-item">
 | 
			
		||||
        <span class="item-tips">*</span>
 | 
			
		||||
        <span class="label">联系手机</span>
 | 
			
		||||
        <div class="item-input">
 | 
			
		||||
          <input type="tel" placeholder="请输入手机号码" placeholder-style="color:#999;" maxlength="11" v-model="phone">
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
      <div class="form-item">
 | 
			
		||||
        <span class="item-tips"></span>
 | 
			
		||||
        <span class="label">报名备注</span>
 | 
			
		||||
        <div class="item-input fs-32">
 | 
			
		||||
          <u-input type="textarea" height="140" placeholder="填写报名备注(1000字以内)" placeholder-style="color:#999;"
 | 
			
		||||
                   maxlength="1000" v-model="remark"/>
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
    </div>
 | 
			
		||||
    <div class="tips-content">
 | 
			
		||||
      <p>报到类型说明:</p>
 | 
			
		||||
      <p>1、单位联系社区报到服务:党员所属单位联系的社区参与活动,到社区服务;</p>
 | 
			
		||||
      <p>2、居住地社区报到服务:党员所在本人居住的社区参与活动,到社区服务;</p>
 | 
			
		||||
      <p>3、其他村(社区)报到服务:党员所在除单位联系社区与居住社区以外的其他社区参与活动,到社区服务;</p>
 | 
			
		||||
    </div>
 | 
			
		||||
    <u-select v-model="reportTypeShow" :list="reportTypeList" @confirm="confirmReportType"
 | 
			
		||||
              confirm-color="#07c160"></u-select>
 | 
			
		||||
    <div class="fixed-bottom confirm-btn" @click="confirm">提交</div>
 | 
			
		||||
  </div>
 | 
			
		||||
</template>
 | 
			
		||||
<script>
 | 
			
		||||
import {mapState} from 'vuex'
 | 
			
		||||
 | 
			
		||||
export default {
 | 
			
		||||
  name: "add",
 | 
			
		||||
  appName:"活动报名",
 | 
			
		||||
  computed: {
 | 
			
		||||
    ...mapState(['user'])
 | 
			
		||||
  },
 | 
			
		||||
  data() {
 | 
			
		||||
    return {
 | 
			
		||||
      reportType: '',
 | 
			
		||||
      title: '',
 | 
			
		||||
      content: '',
 | 
			
		||||
      reportTypeList: [],
 | 
			
		||||
      reportTypeShow: false,
 | 
			
		||||
      flag: false,
 | 
			
		||||
      id: '',
 | 
			
		||||
      phone: ''
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  onLoad(option) {
 | 
			
		||||
    this.id = option.id
 | 
			
		||||
    this.$dict.load('partyReportSignupReportType').then((res) => {
 | 
			
		||||
      this.$nextTick(() => {
 | 
			
		||||
        this.$dict.getDict('partyReportSignupReportType').map(i => {
 | 
			
		||||
          var item = {
 | 
			
		||||
            label: i.dictName,
 | 
			
		||||
            value: i.dictValue
 | 
			
		||||
          }
 | 
			
		||||
          this.reportTypeList.push(item)
 | 
			
		||||
        })
 | 
			
		||||
      })
 | 
			
		||||
    })
 | 
			
		||||
    this.phone = this.user.phone
 | 
			
		||||
  },
 | 
			
		||||
  methods: {
 | 
			
		||||
    confirm() {
 | 
			
		||||
      if (this.flag) return
 | 
			
		||||
      this.$loading()
 | 
			
		||||
      var params = {
 | 
			
		||||
        reportType: this.reportType,
 | 
			
		||||
        phone: this.phone,
 | 
			
		||||
        remark: this.remark,
 | 
			
		||||
        reportId: this.id,
 | 
			
		||||
        avatar: this.user.avatarUrl,
 | 
			
		||||
        partyId: this.user.partyId || this.user.residentId
 | 
			
		||||
      }
 | 
			
		||||
      if (!params.reportType) {
 | 
			
		||||
        return this.$toast('请选择活动报名类型')
 | 
			
		||||
      }
 | 
			
		||||
      if (!params.phone) {
 | 
			
		||||
        return this.$toast('请输入联系手机')
 | 
			
		||||
      }
 | 
			
		||||
      this.flag = true
 | 
			
		||||
      this.$instance.post(`/app/apppartyreport/signup`, params).then(res => {
 | 
			
		||||
        if (res && res.code == 0) {
 | 
			
		||||
          this.$hideLoading()
 | 
			
		||||
          this.$toast('活动报名成功!')
 | 
			
		||||
          setTimeout(() => {
 | 
			
		||||
            uni.navigateBack()
 | 
			
		||||
          }, 1000)
 | 
			
		||||
        } else {
 | 
			
		||||
          this.flag = false
 | 
			
		||||
        }
 | 
			
		||||
      }).catch(err => {
 | 
			
		||||
        console.log(err)
 | 
			
		||||
        this.flag = false
 | 
			
		||||
      })
 | 
			
		||||
    },
 | 
			
		||||
    confirmReportType(e) {
 | 
			
		||||
      this.reportType = e[0].value
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
</script>
 | 
			
		||||
<style scoped lang="scss">
 | 
			
		||||
@import "~dvcp-wui/common";
 | 
			
		||||
 | 
			
		||||
.page {
 | 
			
		||||
  width: 100%;
 | 
			
		||||
  background-color: #F3F6F9;
 | 
			
		||||
 | 
			
		||||
  .form-item {
 | 
			
		||||
    padding: 34px 32px 34px 12px;
 | 
			
		||||
    line-height: 44px;
 | 
			
		||||
    background-color: #fff;
 | 
			
		||||
    border-bottom: 2px solid #ddd;
 | 
			
		||||
 | 
			
		||||
    .item-tips {
 | 
			
		||||
      display: inline-block;
 | 
			
		||||
      width: 12px;
 | 
			
		||||
      font-size: 32px;
 | 
			
		||||
      color: #FF4466;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .label {
 | 
			
		||||
      display: inline-block;
 | 
			
		||||
      min-width: 126px;
 | 
			
		||||
      color: #333;
 | 
			
		||||
      font-size: 32px;
 | 
			
		||||
      margin-left: 8px;
 | 
			
		||||
 | 
			
		||||
      .mini-label {
 | 
			
		||||
        color: #999;
 | 
			
		||||
        font-size: 28px;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .value {
 | 
			
		||||
      display: inline-block;
 | 
			
		||||
      width: 454px;
 | 
			
		||||
      text-align: right;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .text {
 | 
			
		||||
      display: inline-block;
 | 
			
		||||
      width: 520px;
 | 
			
		||||
      text-align: right;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .color-333 {
 | 
			
		||||
      color: #333 !important;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .right-icon {
 | 
			
		||||
      width: 32px;
 | 
			
		||||
      height: 32px;
 | 
			
		||||
      margin-left: 8px;
 | 
			
		||||
      vertical-align: middle;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .item-input {
 | 
			
		||||
      padding-bottom: 4px;
 | 
			
		||||
      margin-left: 24px;
 | 
			
		||||
      margin-top: 32px;
 | 
			
		||||
 | 
			
		||||
      input {
 | 
			
		||||
        line-height: 42px;
 | 
			
		||||
        font-size: 32px;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .upload {
 | 
			
		||||
      margin: 32px 0 024px;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .form-item:nth-last-child(1) {
 | 
			
		||||
    border-bottom: none;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .mar-b8 {
 | 
			
		||||
    margin-bottom: 16px;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .tips-content {
 | 
			
		||||
    padding: 64px 32px 0;
 | 
			
		||||
 | 
			
		||||
    p {
 | 
			
		||||
      color: #999999;
 | 
			
		||||
      line-height: 40px;
 | 
			
		||||
      font-size: 28px;
 | 
			
		||||
      word-break: break-all;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
</style>
 | 
			
		||||
@@ -1,175 +0,0 @@
 | 
			
		||||
<template>
 | 
			
		||||
  <div class="page">
 | 
			
		||||
    <div class="header-bg"></div>
 | 
			
		||||
    <div class="add-form">
 | 
			
		||||
      <div class="form-item">
 | 
			
		||||
        <span class="item-tips">*</span>
 | 
			
		||||
        <span class="label">活动总结</span>
 | 
			
		||||
        <div class="item-input fs-32">
 | 
			
		||||
          <u-input type="textarea" height="140" placeholder="填写本次活动参与心得体会(1000字以内)" placeholder-style="color:#999;"
 | 
			
		||||
                   maxlength="1000" v-model="content"/>
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
      <div class="form-item">
 | 
			
		||||
        <span class="item-tips"></span>
 | 
			
		||||
        <span class="label">活动照片<span class="mini-label">(最多9张)</span></span>
 | 
			
		||||
        <div class="upload">
 | 
			
		||||
          <AiUploader :limit="9" v-model="files"></AiUploader>
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
    </div>
 | 
			
		||||
    <div class="fixed-bottom confirm-btn" @click="confirm">提交</div>
 | 
			
		||||
  </div>
 | 
			
		||||
</template>
 | 
			
		||||
<script>
 | 
			
		||||
import {mapState} from 'vuex'
 | 
			
		||||
 | 
			
		||||
export default {
 | 
			
		||||
  name: "addContent",
 | 
			
		||||
  appName: "填写活动日志",
 | 
			
		||||
  computed: {
 | 
			
		||||
    ...mapState(['user'])
 | 
			
		||||
  },
 | 
			
		||||
  data() {
 | 
			
		||||
    return {
 | 
			
		||||
      content: '',
 | 
			
		||||
      files: [],
 | 
			
		||||
      flag: false,
 | 
			
		||||
      id: '',
 | 
			
		||||
      reportId: ''
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  onLoad(option) {
 | 
			
		||||
    this.id = option.id
 | 
			
		||||
    this.reportId = option.reportId
 | 
			
		||||
  },
 | 
			
		||||
  methods: {
 | 
			
		||||
    confirm() {
 | 
			
		||||
      if (this.flag) return
 | 
			
		||||
      this.$loading()
 | 
			
		||||
 | 
			
		||||
      var fileIds = []
 | 
			
		||||
      if (this.files.length) {
 | 
			
		||||
        this.files.map((item) => {
 | 
			
		||||
          fileIds.push(item.id)
 | 
			
		||||
        })
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      var params = {
 | 
			
		||||
        reportId: this.reportId,
 | 
			
		||||
        id: this.id,
 | 
			
		||||
        content: this.content,
 | 
			
		||||
        files: this.files,
 | 
			
		||||
        fileIds: fileIds
 | 
			
		||||
      }
 | 
			
		||||
      if (!params.content) {
 | 
			
		||||
        return this.$toast('请输入本次活动参与心得体会')
 | 
			
		||||
      }
 | 
			
		||||
      this.flag = true
 | 
			
		||||
      this.$instance.post(`/app/apppartyreport/log-add`, params).then(res => {
 | 
			
		||||
        if (res && res.code == 0) {
 | 
			
		||||
          this.$hideLoading()
 | 
			
		||||
          this.$toast('日志填写成功!')
 | 
			
		||||
          setTimeout(() => {
 | 
			
		||||
            uni.navigateBack()
 | 
			
		||||
          }, 1000)
 | 
			
		||||
        } else {
 | 
			
		||||
          this.flag = false
 | 
			
		||||
        }
 | 
			
		||||
      }).catch(err => {
 | 
			
		||||
        console.log(err)
 | 
			
		||||
        this.flag = false
 | 
			
		||||
      })
 | 
			
		||||
    },
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
</script>
 | 
			
		||||
<style scoped lang="scss">
 | 
			
		||||
@import "~dvcp-wui/common";
 | 
			
		||||
 | 
			
		||||
.page {
 | 
			
		||||
  width: 100%;
 | 
			
		||||
  background-color: #F3F6F9;
 | 
			
		||||
 | 
			
		||||
  .header-bg {
 | 
			
		||||
    width: 100%;
 | 
			
		||||
    height: 112px;
 | 
			
		||||
    background: #197DF0;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .add-form {
 | 
			
		||||
    margin: -96px 0 0 32px;
 | 
			
		||||
    border-radius: 8px;
 | 
			
		||||
    background-color: #fff;
 | 
			
		||||
    width: 686px;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .form-item {
 | 
			
		||||
    padding: 34px 32px 34px 12px;
 | 
			
		||||
    line-height: 44px;
 | 
			
		||||
 | 
			
		||||
    .item-tips {
 | 
			
		||||
      display: inline-block;
 | 
			
		||||
      width: 12px;
 | 
			
		||||
      font-size: 32px;
 | 
			
		||||
      color: #FF4466;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .label {
 | 
			
		||||
      display: inline-block;
 | 
			
		||||
      min-width: 126px;
 | 
			
		||||
      color: #333;
 | 
			
		||||
      font-size: 32px;
 | 
			
		||||
      margin-left: 8px;
 | 
			
		||||
 | 
			
		||||
      .mini-label {
 | 
			
		||||
        color: #999;
 | 
			
		||||
        font-size: 28px;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .value {
 | 
			
		||||
      display: inline-block;
 | 
			
		||||
      width: 518px;
 | 
			
		||||
      text-align: right;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .text {
 | 
			
		||||
      display: inline-block;
 | 
			
		||||
      width: 520px;
 | 
			
		||||
      text-align: right;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .color-333 {
 | 
			
		||||
      color: #333 !important;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .right-icon {
 | 
			
		||||
      width: 32px;
 | 
			
		||||
      height: 32px;
 | 
			
		||||
      margin-left: 8px;
 | 
			
		||||
      vertical-align: middle;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .item-input {
 | 
			
		||||
      padding-bottom: 4px;
 | 
			
		||||
      margin-left: 24px;
 | 
			
		||||
      margin-top: 32px;
 | 
			
		||||
 | 
			
		||||
      input {
 | 
			
		||||
        line-height: 42px;
 | 
			
		||||
        font-size: 32px;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .upload {
 | 
			
		||||
      margin: 32px 0 0 24px;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .mar-b8 {
 | 
			
		||||
    margin-bottom: 16px;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
</style>
 | 
			
		||||
@@ -1,238 +0,0 @@
 | 
			
		||||
<template>
 | 
			
		||||
  <div class="page">
 | 
			
		||||
    <div class="header-info">
 | 
			
		||||
      <p class="title">{{ info.title }}</p>
 | 
			
		||||
      <div class="info">
 | 
			
		||||
        <span class="label">联系人:</span>
 | 
			
		||||
        <span class="value">{{ info.contactPerson }}</span>
 | 
			
		||||
      </div>
 | 
			
		||||
      <div class="info">
 | 
			
		||||
        <span class="label">联系电话:</span>
 | 
			
		||||
        <span class="value">{{ info.contactPhone }}</span>
 | 
			
		||||
      </div>
 | 
			
		||||
      <div class="info">
 | 
			
		||||
        <span class="label">活动时间:</span>
 | 
			
		||||
        <span class="value">{{ info.beginTime }} 至 {{ info.endTime }}</span>
 | 
			
		||||
      </div>
 | 
			
		||||
      <div v-if="viewMore">
 | 
			
		||||
        <div class="info">
 | 
			
		||||
          <span class="label">活动地点:</span>
 | 
			
		||||
          <span class="value">{{ info.address }}</span>
 | 
			
		||||
        </div>
 | 
			
		||||
        <div class="info">
 | 
			
		||||
          <span class="label">参与名额:</span>
 | 
			
		||||
          <span class="value" v-if="info.total > 0">限{{ info.total }}人</span>
 | 
			
		||||
          <span class="value" v-else>不限额</span>
 | 
			
		||||
        </div>
 | 
			
		||||
        <div class="info">
 | 
			
		||||
          <span class="label">报名截止时间:</span>
 | 
			
		||||
          <span class="value">{{ info.stopSignupTime }}({{ info.timeRemaining }})</span>
 | 
			
		||||
        </div>
 | 
			
		||||
        <div class="info">
 | 
			
		||||
          <span class="label">活动报名人数:</span>
 | 
			
		||||
          <span class="value">共{{ info.signupCount }}人报名</span>
 | 
			
		||||
        </div>
 | 
			
		||||
        <div class="info">
 | 
			
		||||
          <span class="label">活动状态:</span>
 | 
			
		||||
          <span class="value">{{ $dict.getLabel('partyReportActionStatus', info.actionStatus) }}</span>
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
      <div class="view-btn" @click="viewMore = !viewMore">{{ viewMore ? '收起' : '展开' }}<img
 | 
			
		||||
          :class="viewMore ? 'view-btn-active' : ''" src="https://cdn.cunwuyun.cn/img/down-icon-fff.png" alt=""/></div>
 | 
			
		||||
    </div>
 | 
			
		||||
    <div class="content">
 | 
			
		||||
      <p class="title">活动介绍</p>
 | 
			
		||||
      <!-- <div class="html" v-html="info.content"></div> -->
 | 
			
		||||
      <u-parse :html="info.content"></u-parse>
 | 
			
		||||
    </div>
 | 
			
		||||
    <div class="fixed-bottom btn-footer">
 | 
			
		||||
      <div @click="$linkTo(`./userList?id=${info.id}`)"><img
 | 
			
		||||
          src="https://cdn.cunwuyun.cn/dvcp/activityList/more-icon-999.png" alt=""/>查看报名情况
 | 
			
		||||
      </div>
 | 
			
		||||
      <div class="confirm-bg" v-if="info.signupStatus == 0 && info.logStatus == null"
 | 
			
		||||
           @click="$linkTo(`./add?id=${info.id}`)"><img src="https://cdn.cunwuyun.cn/dvcp/activityList/edit-icon"
 | 
			
		||||
                                                        alt=""/>立即报名
 | 
			
		||||
      </div>
 | 
			
		||||
      <!-- <div class="confirm-bg" v-if="info.logStatus != null && info.logStatus != 0" @click="cancel()">
 | 
			
		||||
        <img src="https://cdn.cunwuyun.cn/dvcp/activityList/cancel-icon" alt="">取消报名
 | 
			
		||||
      </div> -->
 | 
			
		||||
      <div class="confirm-bg" v-if="info.actionStatus == 1 && info.logStatus == 0"
 | 
			
		||||
           @click="$linkTo(`./addContent?id=${info.signupId}&reportId=${info.id}`)"><img
 | 
			
		||||
          src="https://cdn.cunwuyun.cn/dvcp/activityList/edit-icon" alt=""/>填写活动日志
 | 
			
		||||
      </div>
 | 
			
		||||
      <div class="confirm-bg" v-if="info.logStatus == 2"
 | 
			
		||||
           @click="$linkTo(`./logDetail?id=${info.id}&title=${info.title}`)"><img
 | 
			
		||||
          src="https://cdn.cunwuyun.cn/dvcp/activityList/tips-icon" alt=""/>我的活动日志
 | 
			
		||||
      </div>
 | 
			
		||||
    </div>
 | 
			
		||||
  </div>
 | 
			
		||||
</template>
 | 
			
		||||
<script>
 | 
			
		||||
import {mapState} from 'vuex'
 | 
			
		||||
 | 
			
		||||
export default {
 | 
			
		||||
  name: 'detail',
 | 
			
		||||
  computed: {
 | 
			
		||||
    ...mapState(['user', 'token']),
 | 
			
		||||
  },
 | 
			
		||||
  data() {
 | 
			
		||||
    return {
 | 
			
		||||
      viewMore: false,
 | 
			
		||||
      id: '',
 | 
			
		||||
      info: {},
 | 
			
		||||
      partyId: '',
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  onLoad(option) {
 | 
			
		||||
    this.id = option.id
 | 
			
		||||
    if (this.user.partyId) {
 | 
			
		||||
      this.partyId = this.user.partyId
 | 
			
		||||
    } else {
 | 
			
		||||
      this.partyId = this.user.residentId
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  onShow() {
 | 
			
		||||
    this.$dict.load('partyReportActionStatus').then((res) => {
 | 
			
		||||
      this.getDetail()
 | 
			
		||||
    })
 | 
			
		||||
  },
 | 
			
		||||
  methods: {
 | 
			
		||||
    getDetail() {
 | 
			
		||||
      this.$instance.post(`/app/apppartyreport/queryDetailById?id=${this.id}&partyId=${this.partyId}`).then((res) => {
 | 
			
		||||
        if (res.code == 0) {
 | 
			
		||||
          this.info = res.data
 | 
			
		||||
          this.info.beginTime = this.info.beginTime.substring(0, 16)
 | 
			
		||||
          this.info.endTime = this.info.endTime.substring(0, 16)
 | 
			
		||||
          this.info.stopSignupTime = this.info.stopSignupTime.substring(0, 16)
 | 
			
		||||
        }
 | 
			
		||||
      })
 | 
			
		||||
    },
 | 
			
		||||
    cancel() {
 | 
			
		||||
      this.$instance.post(`/app/apppartyreport/signup-cancel?id=${this.id}&partyId=${this.partyId}`).then((res) => {
 | 
			
		||||
        if (res.code == 0) {
 | 
			
		||||
          this.$toast('取消报名成功!')
 | 
			
		||||
          this.getDetail()
 | 
			
		||||
        }
 | 
			
		||||
      })
 | 
			
		||||
    },
 | 
			
		||||
  },
 | 
			
		||||
  onShareAppMessage() {
 | 
			
		||||
    return {
 | 
			
		||||
      title: this.info.title,
 | 
			
		||||
      path: `/mods/AppActivityList/AppActivityList?id=${this.id}`,
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
}
 | 
			
		||||
</script>
 | 
			
		||||
<style scoped lang="scss">
 | 
			
		||||
@import "~dvcp-wui/common";
 | 
			
		||||
 | 
			
		||||
.page {
 | 
			
		||||
  width: 100%;
 | 
			
		||||
  background-color: #fff;
 | 
			
		||||
 | 
			
		||||
  .header-info {
 | 
			
		||||
    background-color: #197df0;
 | 
			
		||||
    padding: 24px 32px 0;
 | 
			
		||||
 | 
			
		||||
    .title {
 | 
			
		||||
      width: 100%;
 | 
			
		||||
      word-break: break-all;
 | 
			
		||||
      font-size: 40px;
 | 
			
		||||
      font-family: PingFangSC-Medium, PingFang SC;
 | 
			
		||||
      font-weight: 500;
 | 
			
		||||
      color: #ffffff;
 | 
			
		||||
      line-height: 64px;
 | 
			
		||||
      letter-spacing: 2px;
 | 
			
		||||
      margin-bottom: 16px;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .info {
 | 
			
		||||
      margin-bottom: 16px;
 | 
			
		||||
      font-size: 28px;
 | 
			
		||||
      font-family: PingFangSC-Medium, PingFang SC;
 | 
			
		||||
      font-weight: 500;
 | 
			
		||||
      line-height: 40px;
 | 
			
		||||
 | 
			
		||||
      .label {
 | 
			
		||||
        display: inline-block;
 | 
			
		||||
        color: #fff;
 | 
			
		||||
        // width:192px;      // text-align: justify;
 | 
			
		||||
        // text-align-last:justify
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      .value {
 | 
			
		||||
        color: #fff;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .view-btn {
 | 
			
		||||
      font-size: 28px;
 | 
			
		||||
      color: #fff;
 | 
			
		||||
      line-height: 40px;
 | 
			
		||||
      text-align: center;
 | 
			
		||||
      padding: 52px 0 20px 0;
 | 
			
		||||
 | 
			
		||||
      img {
 | 
			
		||||
        width: 32px;
 | 
			
		||||
        height: 32px;
 | 
			
		||||
        vertical-align: middle;
 | 
			
		||||
        margin-left: 4px;
 | 
			
		||||
        transition: all 0.3s ease;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      .view-btn-active {
 | 
			
		||||
        transform: rotate(-180deg);
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .content {
 | 
			
		||||
    background-color: #fff;
 | 
			
		||||
    padding-bottom: 112px;
 | 
			
		||||
 | 
			
		||||
    .title {
 | 
			
		||||
      width: 100%;
 | 
			
		||||
      line-height: 96px;
 | 
			
		||||
      background: #fff;
 | 
			
		||||
      padding-left: 32px;
 | 
			
		||||
      box-sizing: border-box;
 | 
			
		||||
      color: #666;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .html {
 | 
			
		||||
      padding: 16px 32px;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .btn-footer {
 | 
			
		||||
    display: flex;
 | 
			
		||||
    height: 112px;
 | 
			
		||||
    line-height: 112px;
 | 
			
		||||
    background-color: #fff;
 | 
			
		||||
    border-top: 2px solid #ddd;
 | 
			
		||||
    box-sizing: border-box;
 | 
			
		||||
 | 
			
		||||
    div {
 | 
			
		||||
      flex: 1;
 | 
			
		||||
      text-align: center;
 | 
			
		||||
      font-size: 32px;
 | 
			
		||||
      font-family: PingFangSC-Regular, PingFang SC;
 | 
			
		||||
      font-weight: 400;
 | 
			
		||||
      color: #666;
 | 
			
		||||
 | 
			
		||||
      img {
 | 
			
		||||
        width: 36px;
 | 
			
		||||
        height: 36px;
 | 
			
		||||
        margin-right: 8px;
 | 
			
		||||
        vertical-align: sub;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .confirm-bg {
 | 
			
		||||
      background-color: #197df0;
 | 
			
		||||
      color: #fff;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
</style>
 | 
			
		||||
@@ -1,161 +0,0 @@
 | 
			
		||||
<template>
 | 
			
		||||
  <div class="page">
 | 
			
		||||
    <div class="header-info">
 | 
			
		||||
      <p class="title">{{ title }}</p>
 | 
			
		||||
      <div class="info">
 | 
			
		||||
        <span class="label">提交时间:</span>
 | 
			
		||||
        <span class="value">{{ info.submitTime }}</span>
 | 
			
		||||
      </div>
 | 
			
		||||
    </div>
 | 
			
		||||
    <div class="content">
 | 
			
		||||
      <p class="title"><span class="title-line"></span>活动总结</p>
 | 
			
		||||
      <div class="html" v-html="info.content"></div>
 | 
			
		||||
    </div>
 | 
			
		||||
    <div class="content" v-if="info.files.length">
 | 
			
		||||
      <p class="title"><span class="title-line"></span>活动照片</p>
 | 
			
		||||
      <div class="img-list">
 | 
			
		||||
        <img :src="item.accessUrl" alt="" v-for="(item, index) in info.files" :key="index"
 | 
			
		||||
             @click="$previewImage(info.files, index, 'accessUrl')"/>
 | 
			
		||||
      </div>
 | 
			
		||||
    </div>
 | 
			
		||||
  </div>
 | 
			
		||||
</template>
 | 
			
		||||
<script>
 | 
			
		||||
import {mapState} from 'vuex'
 | 
			
		||||
 | 
			
		||||
export default {
 | 
			
		||||
  name: 'logDetail',
 | 
			
		||||
  appName:"活动日志",
 | 
			
		||||
  computed: {
 | 
			
		||||
    ...mapState(['user']),
 | 
			
		||||
  },
 | 
			
		||||
  data() {
 | 
			
		||||
    return {
 | 
			
		||||
      id: '',
 | 
			
		||||
      info: {},
 | 
			
		||||
      partyId: '',
 | 
			
		||||
      title: ''
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  onLoad(option) {
 | 
			
		||||
    if (this.user.partyId) {
 | 
			
		||||
      this.partyId = this.user.partyId
 | 
			
		||||
    } else {
 | 
			
		||||
      this.partyId = this.user.residentId
 | 
			
		||||
    }
 | 
			
		||||
    this.id = option.id
 | 
			
		||||
    this.title = option.title
 | 
			
		||||
    this.getDetail()
 | 
			
		||||
  },
 | 
			
		||||
  methods: {
 | 
			
		||||
    getDetail() {
 | 
			
		||||
      this.$instance.post(`/app/apppartyreport/log-report?reportId=${this.id}&partyId=${this.partyId}`).then((res) => {
 | 
			
		||||
        if (res.code == 0) {
 | 
			
		||||
          this.info = res.data
 | 
			
		||||
          this.info.submitTime = this.info.submitTime.substring(0, 16)
 | 
			
		||||
        }
 | 
			
		||||
      })
 | 
			
		||||
    },
 | 
			
		||||
  },
 | 
			
		||||
}
 | 
			
		||||
</script>
 | 
			
		||||
<style scoped lang="scss">
 | 
			
		||||
@import "~dvcp-wui/common";
 | 
			
		||||
 | 
			
		||||
.page {
 | 
			
		||||
  width: 100%;
 | 
			
		||||
  background-color: #f3f6f9;
 | 
			
		||||
 | 
			
		||||
  .header-info {
 | 
			
		||||
    background-color: #197df0;
 | 
			
		||||
    padding: 24px 32px 48px;
 | 
			
		||||
    margin-bottom: 16px;
 | 
			
		||||
 | 
			
		||||
    .title {
 | 
			
		||||
      width: 100%;
 | 
			
		||||
      word-break: break-all;
 | 
			
		||||
      font-size: 40px;
 | 
			
		||||
      font-family: PingFangSC-Medium, PingFang SC;
 | 
			
		||||
      font-weight: 500;
 | 
			
		||||
      color: #ffffff;
 | 
			
		||||
      line-height: 64px;
 | 
			
		||||
      letter-spacing: 2px;
 | 
			
		||||
      margin-bottom: 16px;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .info {
 | 
			
		||||
      margin-bottom: 16px;
 | 
			
		||||
      font-size: 28px;
 | 
			
		||||
      font-family: PingFangSC-Medium, PingFang SC;
 | 
			
		||||
      font-weight: 500;
 | 
			
		||||
      line-height: 40px;
 | 
			
		||||
 | 
			
		||||
      .label {
 | 
			
		||||
        display: inline-block;
 | 
			
		||||
        color: #fff;
 | 
			
		||||
        // width:192px;      // text-align: justify;
 | 
			
		||||
        // text-align-last:justify
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      .value {
 | 
			
		||||
        color: #ffe8e8;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .view-btn {
 | 
			
		||||
      font-size: 28px;
 | 
			
		||||
      color: #fff;
 | 
			
		||||
      line-height: 40px;
 | 
			
		||||
      text-align: center;
 | 
			
		||||
      padding: 52px 0 20px 0;
 | 
			
		||||
 | 
			
		||||
      img {
 | 
			
		||||
        width: 32px;
 | 
			
		||||
        height: 32px;
 | 
			
		||||
        vertical-align: middle;
 | 
			
		||||
        margin-left: 4px;
 | 
			
		||||
        transition: all 0.3s ease;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      .view-btn-active {
 | 
			
		||||
        transform: rotate(-180deg);
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .content {
 | 
			
		||||
    background-color: #fff;
 | 
			
		||||
    margin-bottom: 16px;
 | 
			
		||||
 | 
			
		||||
    .title {
 | 
			
		||||
      width: 100%;
 | 
			
		||||
      line-height: 96px;
 | 
			
		||||
      background: #fff;
 | 
			
		||||
      padding-left: 32px;
 | 
			
		||||
      box-sizing: border-box;
 | 
			
		||||
      color: #666;
 | 
			
		||||
 | 
			
		||||
      .title-line {
 | 
			
		||||
        display: inline-block;
 | 
			
		||||
        width: 6px;
 | 
			
		||||
        height: 32px;
 | 
			
		||||
        background: #D7261E;
 | 
			
		||||
        margin-right: 12px;
 | 
			
		||||
        vertical-align: sub;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .html {
 | 
			
		||||
      padding: 16px 32px;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .img-list {
 | 
			
		||||
      img {
 | 
			
		||||
        width: 686px;
 | 
			
		||||
        height: 384px;
 | 
			
		||||
        margin: 0 0 32px 32px;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
</style>
 | 
			
		||||
@@ -1,120 +0,0 @@
 | 
			
		||||
<template>
 | 
			
		||||
  <div class="page">
 | 
			
		||||
    <p class="title">报名记录(已有<span>{{ list.length }}</span>人报名)</p>
 | 
			
		||||
    <div class="user-list">
 | 
			
		||||
      <div class="item" v-for="(item, index) in list" :key="index">
 | 
			
		||||
        <div class="left">
 | 
			
		||||
          <img :src="item.avatar" alt="">
 | 
			
		||||
          <span>{{ nameInit(item.partyName) }}</span>
 | 
			
		||||
        </div>
 | 
			
		||||
        <div class="time">{{ item.signupTime }}</div>
 | 
			
		||||
      </div>
 | 
			
		||||
      <AiEmpty v-if="!list.length" class="pad-t168"/>
 | 
			
		||||
    </div>
 | 
			
		||||
  </div>
 | 
			
		||||
</template>
 | 
			
		||||
<script>
 | 
			
		||||
 | 
			
		||||
export default {
 | 
			
		||||
  name: "userList",
 | 
			
		||||
  appName: "活动报名情况",
 | 
			
		||||
  data() {
 | 
			
		||||
    return {
 | 
			
		||||
      id: '',
 | 
			
		||||
      list: []
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  onLoad(option) {
 | 
			
		||||
    this.id = option.id
 | 
			
		||||
    this.getList()
 | 
			
		||||
  },
 | 
			
		||||
  methods: {
 | 
			
		||||
    getList() {
 | 
			
		||||
      this.$instance.post(`/app/apppartyreport/signup-info?id=${this.id}`).then(res => {
 | 
			
		||||
        if (res.code == 0) {
 | 
			
		||||
          this.list = res.data
 | 
			
		||||
          if (this.list.length) {
 | 
			
		||||
            this.list.map((item) => {
 | 
			
		||||
              if (!item.partyName && item.residentName) {
 | 
			
		||||
                item.partyName = item.residentName
 | 
			
		||||
              }
 | 
			
		||||
            })
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      })
 | 
			
		||||
    },
 | 
			
		||||
    nameInit(name) {
 | 
			
		||||
      if (!name) {
 | 
			
		||||
        return '-'
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      var newStr;
 | 
			
		||||
      if (name.length === 2) {
 | 
			
		||||
        newStr = '*' + name.substr(1, 2)
 | 
			
		||||
      } else if (name.length > 2) {
 | 
			
		||||
        var char = '';
 | 
			
		||||
        for (var i = 0, len = name.length - 2; i < len; i++) {
 | 
			
		||||
          char += '*';
 | 
			
		||||
        }
 | 
			
		||||
        newStr = char + name.substr(name.length - 2, name.length);
 | 
			
		||||
      } else {
 | 
			
		||||
        newStr = name;
 | 
			
		||||
      }
 | 
			
		||||
      return newStr;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
</script>
 | 
			
		||||
<style scoped lang="scss">
 | 
			
		||||
@import "~dvcp-wui/common";
 | 
			
		||||
 | 
			
		||||
.page {
 | 
			
		||||
  width: 100%;
 | 
			
		||||
  background-color: #F3F6F9;
 | 
			
		||||
  padding-top: 16px;
 | 
			
		||||
 | 
			
		||||
  .title {
 | 
			
		||||
    line-height: 96px;
 | 
			
		||||
    background-color: #fff;
 | 
			
		||||
    padding-left: 32px;
 | 
			
		||||
    color: #333;
 | 
			
		||||
    font-size: 32px;
 | 
			
		||||
    margin-bottom: 4px span {
 | 
			
		||||
      color: #D73D3D;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .user-list {
 | 
			
		||||
    .item {
 | 
			
		||||
      width: 100%;
 | 
			
		||||
      height: 148px;
 | 
			
		||||
      background: #FFFFFF;
 | 
			
		||||
      display: flex;
 | 
			
		||||
      justify-content: space-between;
 | 
			
		||||
      font-size: 30px;
 | 
			
		||||
      padding: 32px;
 | 
			
		||||
      box-sizing: border-box;
 | 
			
		||||
      box-shadow: 0 8px 34px -8px rgba(213, 213, 213, 0.5);
 | 
			
		||||
 | 
			
		||||
      .left {
 | 
			
		||||
        color: #2D2D2E;
 | 
			
		||||
        line-height: 46px;
 | 
			
		||||
        vertical-align: middle;
 | 
			
		||||
 | 
			
		||||
        img {
 | 
			
		||||
          width: 80px;
 | 
			
		||||
          height: 80px;
 | 
			
		||||
          border-radius: 50%;
 | 
			
		||||
          vertical-align: middle;
 | 
			
		||||
          margin-right: 16px;
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      .time {
 | 
			
		||||
        color: #999;
 | 
			
		||||
        line-height: 80px;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
</style>
 | 
			
		||||
@@ -45,7 +45,7 @@ export default {
 | 
			
		||||
}
 | 
			
		||||
</script>
 | 
			
		||||
<style scoped lang="scss">
 | 
			
		||||
@import "~dvcp-wui/common";
 | 
			
		||||
@import "../../../../../node_modules/dvcp-wui/common";
 | 
			
		||||
 | 
			
		||||
.page {
 | 
			
		||||
  width: 100vw;
 | 
			
		||||
@@ -142,7 +142,7 @@ export default {
 | 
			
		||||
}
 | 
			
		||||
</script>
 | 
			
		||||
<style scoped lang="scss">
 | 
			
		||||
@import "~dvcp-wui/common";
 | 
			
		||||
@import "../../../../../node_modules/dvcp-wui/common";
 | 
			
		||||
 | 
			
		||||
.page {
 | 
			
		||||
  width: 100vw;
 | 
			
		||||
@@ -85,7 +85,7 @@ export default {
 | 
			
		||||
}
 | 
			
		||||
</script>
 | 
			
		||||
<style scoped lang="scss">
 | 
			
		||||
@import "~dvcp-wui/common";
 | 
			
		||||
@import "../../../../../../node_modules/dvcp-wui/common";
 | 
			
		||||
 | 
			
		||||
.page {
 | 
			
		||||
  width: 100vw;
 | 
			
		||||
@@ -122,7 +122,7 @@ export default {
 | 
			
		||||
}
 | 
			
		||||
</script>
 | 
			
		||||
<style scoped lang="scss">
 | 
			
		||||
@import "~dvcp-wui/common";
 | 
			
		||||
@import "../../../../../../node_modules/dvcp-wui/common";
 | 
			
		||||
 | 
			
		||||
.page {
 | 
			
		||||
  width: 100vw;
 | 
			
		||||
@@ -31,7 +31,7 @@ export default {
 | 
			
		||||
}
 | 
			
		||||
</script>
 | 
			
		||||
<style scoped lang="scss">
 | 
			
		||||
@import "~dvcp-wui/common";
 | 
			
		||||
@import "../../../../../node_modules/dvcp-wui/common";
 | 
			
		||||
 | 
			
		||||
.page {
 | 
			
		||||
  width: 100%;
 | 
			
		||||
@@ -94,7 +94,7 @@ export default {
 | 
			
		||||
};
 | 
			
		||||
</script>
 | 
			
		||||
<style lang="scss" scope>
 | 
			
		||||
@import "~dvcp-wui/common";
 | 
			
		||||
@import "../../../../node_modules/dvcp-wui/common";
 | 
			
		||||
 | 
			
		||||
.top {
 | 
			
		||||
  height: 480px;
 | 
			
		||||
@@ -86,7 +86,7 @@ export default {
 | 
			
		||||
}
 | 
			
		||||
</script>
 | 
			
		||||
<style lang="scss">
 | 
			
		||||
@import "~dvcp-wui/common";
 | 
			
		||||
@import "../../../../node_modules/dvcp-wui/common";
 | 
			
		||||
 | 
			
		||||
.success {
 | 
			
		||||
  height: 100vh;
 | 
			
		||||
@@ -19,7 +19,7 @@
 | 
			
		||||
      <div class="list-wrap">
 | 
			
		||||
        <div class="card" v-for="(item,index) in list" :key="index">
 | 
			
		||||
          <img
 | 
			
		||||
              :src="item.picture || require('../../static/img/police.png')"
 | 
			
		||||
              :src="item.picture || require('../../../static/img/police.png')"
 | 
			
		||||
              @click="preview(index)"
 | 
			
		||||
              alt="">
 | 
			
		||||
          <div class="right">
 | 
			
		||||
@@ -175,7 +175,6 @@ export default {
 | 
			
		||||
      stepList: [],
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
  onLoad(query) {
 | 
			
		||||
    this.id = query.id
 | 
			
		||||
    this.getInfo(query.id)
 | 
			
		||||
@@ -147,7 +147,7 @@ export default {
 | 
			
		||||
}
 | 
			
		||||
</script>
 | 
			
		||||
<style scoped lang="scss">
 | 
			
		||||
@import "~dvcp-wui/common";
 | 
			
		||||
@import "../../../../node_modules/dvcp-wui/common";
 | 
			
		||||
 | 
			
		||||
.page {
 | 
			
		||||
  width: 100%;
 | 
			
		||||
@@ -143,7 +143,7 @@ export default {
 | 
			
		||||
}
 | 
			
		||||
</script>
 | 
			
		||||
<style scoped lang="scss">
 | 
			
		||||
@import "~dvcp-wui/common";
 | 
			
		||||
@import "../../../../node_modules/dvcp-wui/common";
 | 
			
		||||
 | 
			
		||||
.page {
 | 
			
		||||
  width: 100%;
 | 
			
		||||
@@ -126,7 +126,7 @@ export default {
 | 
			
		||||
}
 | 
			
		||||
</script>
 | 
			
		||||
<style scoped lang="scss">
 | 
			
		||||
@import "~dvcp-wui/common";
 | 
			
		||||
@import "../../../../node_modules/dvcp-wui/common";
 | 
			
		||||
 | 
			
		||||
.page {
 | 
			
		||||
  width: 100%;
 | 
			
		||||
@@ -151,7 +151,7 @@ export default {
 | 
			
		||||
}
 | 
			
		||||
</script>
 | 
			
		||||
<style scoped lang="scss">
 | 
			
		||||
@import "~dvcp-wui/common";
 | 
			
		||||
@import "../../../../node_modules/dvcp-wui/common";
 | 
			
		||||
 | 
			
		||||
.page {
 | 
			
		||||
  width: 100%;
 | 
			
		||||
@@ -75,7 +75,7 @@ export default {
 | 
			
		||||
}
 | 
			
		||||
</script>
 | 
			
		||||
<style scoped lang="scss">
 | 
			
		||||
@import "~dvcp-wui/common";
 | 
			
		||||
@import "../../../../node_modules/dvcp-wui/common";
 | 
			
		||||
 | 
			
		||||
.page {
 | 
			
		||||
  width: 100%;
 | 
			
		||||
		Reference in New Issue
	
	Block a user