在职党员社区报到,换届选举
This commit is contained in:
		
							
								
								
									
										221
									
								
								src/project/pingchang/AppGeneralElection/AppGeneralElection.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										221
									
								
								src/project/pingchang/AppGeneralElection/AppGeneralElection.vue
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,221 @@
 | 
				
			|||||||
 | 
					<template>
 | 
				
			||||||
 | 
					  <view class="page">
 | 
				
			||||||
 | 
					    <view v-if="isShow" style="height:100%;">
 | 
				
			||||||
 | 
					      <view class="session-list">
 | 
				
			||||||
 | 
					        <view class="session-item" v-for="(item, index) in list" :key="index">
 | 
				
			||||||
 | 
					          <view class="item-top">
 | 
				
			||||||
 | 
					            <view class="item-title mar-b9">{{item.title}}</view>
 | 
				
			||||||
 | 
					            <view class="item-info">
 | 
				
			||||||
 | 
					              <text class="info-label">选举状态:</text>
 | 
				
			||||||
 | 
					              <text class="info-value" :class="'item-status'+item.status">
 | 
				
			||||||
 | 
					                {{$dict.getLabel('electionStatus',item.status)||'-'}}
 | 
				
			||||||
 | 
					              </text>
 | 
				
			||||||
 | 
					            </view>
 | 
				
			||||||
 | 
					            <view class="item-info mar-b9">
 | 
				
			||||||
 | 
					              <text class="info-label">应选人数:</text>
 | 
				
			||||||
 | 
					              <text class="info-value" style="display:inline-block;width: 100rpx;">{{item.chooseNumber || '0'}}</text>
 | 
				
			||||||
 | 
					              <text class="info-label">候选人数:</text>
 | 
				
			||||||
 | 
					              <text class="info-value">{{item.candidatesNumber || '0'}}</text>
 | 
				
			||||||
 | 
					            </view>
 | 
				
			||||||
 | 
					          </view>
 | 
				
			||||||
 | 
					          <view class="item-bottom">
 | 
				
			||||||
 | 
					            <text class="item-btn" v-if="item.status == 1 && item.partyVoteStatus === null" @click="toDetail(item.id)">去投票</text>
 | 
				
			||||||
 | 
					            <text class="item-btn border-999" v-if="item.status == 2 && item.partyVoteStatus != null" @click="showTips(item.status)">已投票</text>
 | 
				
			||||||
 | 
					            <text class="item-btn border-999" v-if="item.status == 1 && item.partyVoteStatus != null" @click="showTips(item.status)">已投票</text>
 | 
				
			||||||
 | 
					            <text class="item-btn border-999" v-if="item.status == 0" @click="showTips(item.status)">未开始</text>
 | 
				
			||||||
 | 
					            <text class="item-btn border-999" v-if="item.status == 2 && item.partyVoteStatus === null" @click="showTips(item.status)">未投票</text>
 | 
				
			||||||
 | 
					          </view>
 | 
				
			||||||
 | 
					          <view class="item-status" :class="'item-status'+item.status">
 | 
				
			||||||
 | 
					            {{$dict.getLabel('electionStatus',item.status)||'-'}}
 | 
				
			||||||
 | 
					          </view>
 | 
				
			||||||
 | 
					        </view>
 | 
				
			||||||
 | 
					      </view>
 | 
				
			||||||
 | 
					      <AiEmpty v-if="list.length == 0"/>
 | 
				
			||||||
 | 
					    </view>
 | 
				
			||||||
 | 
					  </view>
 | 
				
			||||||
 | 
					</template>
 | 
				
			||||||
 | 
					<script>
 | 
				
			||||||
 | 
					  import {mapState} from 'vuex'
 | 
				
			||||||
 | 
					  export default {
 | 
				
			||||||
 | 
					    name: 'AppGeneralElection',
 | 
				
			||||||
 | 
					    appName: "换届选举",
 | 
				
			||||||
 | 
					    computed: {
 | 
				
			||||||
 | 
					      ...mapState(['user', 'token']),
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    data() {
 | 
				
			||||||
 | 
					      return {
 | 
				
			||||||
 | 
					        isShow: true,
 | 
				
			||||||
 | 
					        list: [],
 | 
				
			||||||
 | 
					        pageNum: 1,
 | 
				
			||||||
 | 
					        pageSize: 10,
 | 
				
			||||||
 | 
					        pages: 2,
 | 
				
			||||||
 | 
					        partyId: ''
 | 
				
			||||||
 | 
					      };
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    onLoad() {
 | 
				
			||||||
 | 
					      this.$dict.load('electionStatus').then(() => {
 | 
				
			||||||
 | 
					        this.partyId =this.user.partyId
 | 
				
			||||||
 | 
					        this.getList()
 | 
				
			||||||
 | 
					      })
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    onShow() {
 | 
				
			||||||
 | 
					      this.$dict.load('electionStatus').then(() => {
 | 
				
			||||||
 | 
					        this.partyId = this.user.partyId
 | 
				
			||||||
 | 
					        this.getList()
 | 
				
			||||||
 | 
					      })
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    methods: {
 | 
				
			||||||
 | 
					      getList() {
 | 
				
			||||||
 | 
					        if (this.pageNum > this.pages) return
 | 
				
			||||||
 | 
					        this.$instance.post(`/app/appgeneralelectioninfo/list-xcx?partyId=${this.partyId}¤t=${this.pageNum}&size=${this.pageSize}`, null, {}).then(res => {
 | 
				
			||||||
 | 
					          console.log(res)
 | 
				
			||||||
 | 
					          if (res.code == 0) {
 | 
				
			||||||
 | 
					            const list = this.pageNum > 1 ? [...this.list, ...res.data.records] : res.data.records
 | 
				
			||||||
 | 
					            this.pages = Math.ceil(res.data.total / 10)
 | 
				
			||||||
 | 
					            this.list = list
 | 
				
			||||||
 | 
					            console.log(this.list)
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
 | 
					        })
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      toSessionDetail(id) {
 | 
				
			||||||
 | 
					        // uni.navigateTo({
 | 
				
			||||||
 | 
					        //   url: '../threeSessions/threeSessionsDetail?id=' + id
 | 
				
			||||||
 | 
					        // })
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      toDetail(id) {
 | 
				
			||||||
 | 
					        uni.navigateTo({
 | 
				
			||||||
 | 
					          url: `./generalElectionDetail?id=${id}`
 | 
				
			||||||
 | 
					        })
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      showTips(status) {
 | 
				
			||||||
 | 
					        var title = '投票未开始'
 | 
				
			||||||
 | 
					        if (status == 1) {
 | 
				
			||||||
 | 
					          title = '已投票'
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        if (status == 2) {
 | 
				
			||||||
 | 
					          title = '已结束'
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        uni.showToast({
 | 
				
			||||||
 | 
					          title: title,
 | 
				
			||||||
 | 
					          icon: "none"
 | 
				
			||||||
 | 
					        })
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    onReachBottom() {
 | 
				
			||||||
 | 
					      this.pageNum = this.pageNum + 1
 | 
				
			||||||
 | 
					      this.getList()
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					</script>
 | 
				
			||||||
 | 
					<style lang="scss" scope>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  .page {
 | 
				
			||||||
 | 
					    background-color: #F3F6F9;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    .session-list {
 | 
				
			||||||
 | 
					      .session-item {
 | 
				
			||||||
 | 
					        width: 686px;
 | 
				
			||||||
 | 
					        margin: 32px auto 0 auto;
 | 
				
			||||||
 | 
					        background-color: #fff;
 | 
				
			||||||
 | 
					        // min-height: 308px;
 | 
				
			||||||
 | 
					        position: relative;
 | 
				
			||||||
 | 
					        overflow: hidden;
 | 
				
			||||||
 | 
					        border-radius: 8px;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        .item-top {
 | 
				
			||||||
 | 
					          padding: 32px 32px 0 32px;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        .item-title {
 | 
				
			||||||
 | 
					          font-size: 32px;
 | 
				
			||||||
 | 
					          font-family: PingFangSC-Medium, PingFang SC;
 | 
				
			||||||
 | 
					          font-weight: 500;
 | 
				
			||||||
 | 
					          color: #333;
 | 
				
			||||||
 | 
					          line-height: 44px;
 | 
				
			||||||
 | 
					          word-break: break-all;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        .item-info {
 | 
				
			||||||
 | 
					          line-height: 42px;
 | 
				
			||||||
 | 
					          font-size: 28px;
 | 
				
			||||||
 | 
					          margin-bottom: 8px;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          .info-label {
 | 
				
			||||||
 | 
					            color: #999;
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        .item-bottom {
 | 
				
			||||||
 | 
					          border-top: 2px solid #EEE;
 | 
				
			||||||
 | 
					          text-align: right;
 | 
				
			||||||
 | 
					          padding-right: 34px;
 | 
				
			||||||
 | 
					          box-sizing: border-box;
 | 
				
			||||||
 | 
					          line-height: 96px;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          .item-btn {
 | 
				
			||||||
 | 
					            display: inline-block;
 | 
				
			||||||
 | 
					            width: 152px;
 | 
				
			||||||
 | 
					            height: 52px;
 | 
				
			||||||
 | 
					            line-height: 52px;
 | 
				
			||||||
 | 
					            border-radius: 28px;
 | 
				
			||||||
 | 
					            text-align: center;
 | 
				
			||||||
 | 
					            font-size: 28px;
 | 
				
			||||||
 | 
					            margin-left: 32px;
 | 
				
			||||||
 | 
					            border: 2px solid #E1E1E1;
 | 
				
			||||||
 | 
					            color: #1365DD;
 | 
				
			||||||
 | 
					            border: 2px solid #1365DD;
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        .info-value {
 | 
				
			||||||
 | 
					          color: #343D65;
 | 
				
			||||||
 | 
					          background-color: #fff !important;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        .item-status {
 | 
				
			||||||
 | 
					          position: absolute;
 | 
				
			||||||
 | 
					          top: 14px;
 | 
				
			||||||
 | 
					          right: -30rpx;
 | 
				
			||||||
 | 
					          width: 140px;
 | 
				
			||||||
 | 
					          text-align: center;
 | 
				
			||||||
 | 
					          line-height: 44px;
 | 
				
			||||||
 | 
					          font-size: 24px;
 | 
				
			||||||
 | 
					          transform: rotate(45deg);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        .item-status0 {
 | 
				
			||||||
 | 
					          color: #FF9B2B;
 | 
				
			||||||
 | 
					          background-color: #FFF3E8;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        .item-status1 {
 | 
				
			||||||
 | 
					          color: #5A98F2;
 | 
				
			||||||
 | 
					          background-color: #F1F6FF;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        .item-status2 {
 | 
				
			||||||
 | 
					          color: #f46;
 | 
				
			||||||
 | 
					          background-color: #FFECF0;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        .border-999 {
 | 
				
			||||||
 | 
					          color: #999 !important;
 | 
				
			||||||
 | 
					          border-color: #999 !important;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        .mar-b9 {
 | 
				
			||||||
 | 
					          margin-bottom: 18px !important;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    .no-affairs {
 | 
				
			||||||
 | 
					      width: 100%;
 | 
				
			||||||
 | 
					      height: calc(100% - 210rpx);
 | 
				
			||||||
 | 
					      display: flex;
 | 
				
			||||||
 | 
					      justify-content: center;
 | 
				
			||||||
 | 
					      align-items: center;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					</style>
 | 
				
			||||||
@@ -0,0 +1,330 @@
 | 
				
			|||||||
 | 
					<template>
 | 
				
			||||||
 | 
					  <view class="page">
 | 
				
			||||||
 | 
					    <div class="line-bg"></div>
 | 
				
			||||||
 | 
					    <div class="banner-top">
 | 
				
			||||||
 | 
					      <image src="https://cdn.cunwuyun.cn/img/election-banner.png" class="banner-img"></image>
 | 
				
			||||||
 | 
					      <span class="tips" @click="viewMask()"><image src="https://cdn.cunwuyun.cn/img/explain-icon.png" class="tips-icon"></image>投票说明</span>
 | 
				
			||||||
 | 
					      <image src="https://cdn.cunwuyun.cn/img/party-icon.png" class="party-icon"></image>
 | 
				
			||||||
 | 
					      <div class="banner-info">
 | 
				
			||||||
 | 
					        <div class="title">{{ title }}</div>
 | 
				
			||||||
 | 
					        <div class="num-info">应选人{{ chooseNumber || '0' }}人</div>
 | 
				
			||||||
 | 
					        <div class="user-list">
 | 
				
			||||||
 | 
					          <div class="user-item user-item-title">
 | 
				
			||||||
 | 
					            <span>候选人</span>
 | 
				
			||||||
 | 
					            <span>赞成</span>
 | 
				
			||||||
 | 
					            <span>反对</span>
 | 
				
			||||||
 | 
					            <span>弃权</span>
 | 
				
			||||||
 | 
					          </div>
 | 
				
			||||||
 | 
					          <div class="user-item" v-for="(item, index) in userList" :key="index">
 | 
				
			||||||
 | 
					            <span>{{ item.candidateUserName }}</span>
 | 
				
			||||||
 | 
					            <span>
 | 
				
			||||||
 | 
					                            <image
 | 
				
			||||||
 | 
					                                :src="item.voteStatus == '0' ? 'https://cdn.cunwuyun.cn/img/circle-check.png' : 'https://cdn.cunwuyun.cn/img/circle-icon.png'"
 | 
				
			||||||
 | 
					                                class="check-icon" @click="checkClick(index, '0')"></image>
 | 
				
			||||||
 | 
					                        </span>
 | 
				
			||||||
 | 
					            <span>
 | 
				
			||||||
 | 
					                            <image
 | 
				
			||||||
 | 
					                                :src="item.voteStatus == '1' ? 'https://cdn.cunwuyun.cn/img/circle-check.png' : 'https://cdn.cunwuyun.cn/img/circle-icon.png'"
 | 
				
			||||||
 | 
					                                class="check-icon" @click="checkClick(index, '1')"></image>
 | 
				
			||||||
 | 
					                        </span>
 | 
				
			||||||
 | 
					            <span>
 | 
				
			||||||
 | 
					                            <image
 | 
				
			||||||
 | 
					                                :src="item.voteStatus == '2' ? 'https://cdn.cunwuyun.cn/img/circle-check.png' : 'https://cdn.cunwuyun.cn/img/circle-icon.png'"
 | 
				
			||||||
 | 
					                                class="check-icon" @click="checkClick(index, '2')"></image>
 | 
				
			||||||
 | 
					                        </span>
 | 
				
			||||||
 | 
					          </div>
 | 
				
			||||||
 | 
					        </div>
 | 
				
			||||||
 | 
					      </div>
 | 
				
			||||||
 | 
					    </div>
 | 
				
			||||||
 | 
					    <div class="btn-bottom">
 | 
				
			||||||
 | 
					      <div class="btn" @click="submitVote()">提交投票</div>
 | 
				
			||||||
 | 
					    </div>
 | 
				
			||||||
 | 
					    <view class="mask" v-if="showMask">
 | 
				
			||||||
 | 
					      <view class="mask-content">
 | 
				
			||||||
 | 
					        <view class="mask-title">投票说明</view>
 | 
				
			||||||
 | 
					        <view class="mask-text">1、本次选举采用无记名投票方式,差额选举的办法,选举第十一届村民委员会主任1名。选举工作由选举委员会主持,未尽事宜由选举委员会研究决定;</view>
 | 
				
			||||||
 | 
					        <view class="mask-text">2、差额选举的办法,选举第十一届村民委员会主任1名。选举工作由选举委员会主持,未尽事宜由选举委员会研究决定。</view>
 | 
				
			||||||
 | 
					        <view class="mask-btn" @click="closeMask()">关闭</view>
 | 
				
			||||||
 | 
					      </view>
 | 
				
			||||||
 | 
					    </view>
 | 
				
			||||||
 | 
					  </view>
 | 
				
			||||||
 | 
					</template>
 | 
				
			||||||
 | 
					<script>
 | 
				
			||||||
 | 
					import {mapState} from 'vuex'
 | 
				
			||||||
 | 
					export default {
 | 
				
			||||||
 | 
					  computed: {
 | 
				
			||||||
 | 
					    ...mapState(['user']),
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  data() {
 | 
				
			||||||
 | 
					    return {
 | 
				
			||||||
 | 
					      detailId: '',
 | 
				
			||||||
 | 
					      userList: [],
 | 
				
			||||||
 | 
					      showMask: false,
 | 
				
			||||||
 | 
					      title: '',
 | 
				
			||||||
 | 
					      chooseNumber: '',
 | 
				
			||||||
 | 
					      partyId: ''
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  onLoad(options) {
 | 
				
			||||||
 | 
					    this.detailId = options.id
 | 
				
			||||||
 | 
					    this.partyId = this.user.partyId
 | 
				
			||||||
 | 
					    this.getDetailInfo()
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  methods: {
 | 
				
			||||||
 | 
					    submitVote() {
 | 
				
			||||||
 | 
					      var flags = true
 | 
				
			||||||
 | 
					      var checkNum = 0
 | 
				
			||||||
 | 
					      var checkList = []
 | 
				
			||||||
 | 
					      this.userList.map((item) => {
 | 
				
			||||||
 | 
					        if (item.voteStatus) {
 | 
				
			||||||
 | 
					          checkNum++
 | 
				
			||||||
 | 
					          checkList.push(item)
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					      })
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      if (checkNum > this.chooseNumber) {
 | 
				
			||||||
 | 
					        uni.showToast({title: `投票人数大于应选人数,请重试`, icon: 'none'})
 | 
				
			||||||
 | 
					        flags = false
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					      // if (checkNum < this.chooseNumber) {
 | 
				
			||||||
 | 
					      //   uni.showToast({title: `请给候选人投票`, icon: 'none'})
 | 
				
			||||||
 | 
					      //   flags = false
 | 
				
			||||||
 | 
					      // }
 | 
				
			||||||
 | 
					      if (checkNum < this.userList.length) {
 | 
				
			||||||
 | 
					        uni.showToast({title: `请给候选人投票`, icon: 'none'})
 | 
				
			||||||
 | 
					        flags = false
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					      
 | 
				
			||||||
 | 
					      if (!flags) return
 | 
				
			||||||
 | 
					      this.$instance.post('/app/appgeneralelectioninfo/vote', checkList).then(res => {
 | 
				
			||||||
 | 
					        if (res.code == 0) {
 | 
				
			||||||
 | 
					          uni.showToast({title: '投票成功!'})
 | 
				
			||||||
 | 
					          setTimeout(function () {
 | 
				
			||||||
 | 
					            uni.navigateBack({
 | 
				
			||||||
 | 
					              delta: 1
 | 
				
			||||||
 | 
					            });
 | 
				
			||||||
 | 
					          }, 1000)
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					      })
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    checkClick(index, status) {
 | 
				
			||||||
 | 
					      if (this.userList[index].voteStatus == status) {
 | 
				
			||||||
 | 
					        this.userList[index].voteStatus = ''
 | 
				
			||||||
 | 
					      } else {
 | 
				
			||||||
 | 
					        this.userList[index].voteStatus = status
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    closeMask() {
 | 
				
			||||||
 | 
					      this.showMask = false
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    viewMask() {
 | 
				
			||||||
 | 
					      this.showMask = true
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    getDetailInfo() {
 | 
				
			||||||
 | 
					      this.$instance.post(`/app/appgeneralelectioninfo/queryDetailById?id=${this.detailId}`, null).then(res => {
 | 
				
			||||||
 | 
					        if (res.data) {
 | 
				
			||||||
 | 
					          this.chooseNumber = res.data.chooseNumber
 | 
				
			||||||
 | 
					          this.title = res.data.title
 | 
				
			||||||
 | 
					          res.data.candidateUsers.map((item) => {
 | 
				
			||||||
 | 
					            var info = {
 | 
				
			||||||
 | 
					              "candidateUserId": item.id,
 | 
				
			||||||
 | 
					              "candidateUserName": item.name,
 | 
				
			||||||
 | 
					              "electionId": this.detailId,
 | 
				
			||||||
 | 
					              "voteStatus": '',
 | 
				
			||||||
 | 
					              "voterUserId": this.partyId
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            this.userList.push(info)
 | 
				
			||||||
 | 
					          })
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					      });
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					</script>
 | 
				
			||||||
 | 
					<style lang="scss" scope>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.page {
 | 
				
			||||||
 | 
					  .line-bg {
 | 
				
			||||||
 | 
					    width: 100%;
 | 
				
			||||||
 | 
					    height: 12px;
 | 
				
			||||||
 | 
					    background-color: #E60012;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  .banner-top {
 | 
				
			||||||
 | 
					    width: 100%;
 | 
				
			||||||
 | 
					    height: 340px;
 | 
				
			||||||
 | 
					    position: relative;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    .banner-img {
 | 
				
			||||||
 | 
					      position: absolute;
 | 
				
			||||||
 | 
					      width: 100%;
 | 
				
			||||||
 | 
					      height: 340px;
 | 
				
			||||||
 | 
					      top: 0;
 | 
				
			||||||
 | 
					      left: 0;
 | 
				
			||||||
 | 
					      z-index: 1;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    .tips {
 | 
				
			||||||
 | 
					      position: absolute;
 | 
				
			||||||
 | 
					      right: 42px;
 | 
				
			||||||
 | 
					      color: #fff;
 | 
				
			||||||
 | 
					      font-size: 30px;
 | 
				
			||||||
 | 
					      z-index: 88;
 | 
				
			||||||
 | 
					      top: 116px;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      .tips-icon {
 | 
				
			||||||
 | 
					        width: 40px;
 | 
				
			||||||
 | 
					        height: 40px;
 | 
				
			||||||
 | 
					        vertical-align: text-top;
 | 
				
			||||||
 | 
					        margin-right: 8px;
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    .party-icon {
 | 
				
			||||||
 | 
					      position: absolute;
 | 
				
			||||||
 | 
					      z-index: 3;
 | 
				
			||||||
 | 
					      width: 140px;
 | 
				
			||||||
 | 
					      height: 140px;
 | 
				
			||||||
 | 
					      left: 50%;
 | 
				
			||||||
 | 
					      margin-left: -70rpx;
 | 
				
			||||||
 | 
					      top: 180px;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    .banner-info {
 | 
				
			||||||
 | 
					      position: absolute;
 | 
				
			||||||
 | 
					      top: 0;
 | 
				
			||||||
 | 
					      left: 0;
 | 
				
			||||||
 | 
					      z-index: 2;
 | 
				
			||||||
 | 
					      width: 100%;
 | 
				
			||||||
 | 
					      color: #fff;
 | 
				
			||||||
 | 
					      padding-bottom: 136px;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      .title {
 | 
				
			||||||
 | 
					        width: 100%;
 | 
				
			||||||
 | 
					        font-size: 44px;
 | 
				
			||||||
 | 
					        font-family: PingFangSC-Semibold, PingFang SC;
 | 
				
			||||||
 | 
					        font-weight: 600;
 | 
				
			||||||
 | 
					        line-height: 60px;
 | 
				
			||||||
 | 
					        text-align: center;
 | 
				
			||||||
 | 
					        padding: 12px 0 40px 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      .num-info {
 | 
				
			||||||
 | 
					        width: 100%;
 | 
				
			||||||
 | 
					        font-size: 36px;
 | 
				
			||||||
 | 
					        font-family: PingFangSC-Semibold, PingFang SC;
 | 
				
			||||||
 | 
					        line-height: 50px;
 | 
				
			||||||
 | 
					        text-align: center;
 | 
				
			||||||
 | 
					        margin-bottom: 80px;
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      .user-list {
 | 
				
			||||||
 | 
					        width: 710px;
 | 
				
			||||||
 | 
					        background: #fff;
 | 
				
			||||||
 | 
					        border-radius: 24px 24px 0 0;
 | 
				
			||||||
 | 
					        margin: 0 auto;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        .user-item {
 | 
				
			||||||
 | 
					          width: 688px;
 | 
				
			||||||
 | 
					          height: 112px;
 | 
				
			||||||
 | 
					          line-height: 112px;
 | 
				
			||||||
 | 
					          margin: 0 auto;
 | 
				
			||||||
 | 
					          border-bottom: 2px solid #eee;
 | 
				
			||||||
 | 
					          display: flex;
 | 
				
			||||||
 | 
					          font-size: 32px;
 | 
				
			||||||
 | 
					          color: #666;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          span {
 | 
				
			||||||
 | 
					            flex: 1;
 | 
				
			||||||
 | 
					            text-align: center;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            .check-icon {
 | 
				
			||||||
 | 
					              width: 40px;
 | 
				
			||||||
 | 
					              height: 40px;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        .user-item:nth-last-of-type(1) {
 | 
				
			||||||
 | 
					          border-bottom: 0;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        .user-item-title {
 | 
				
			||||||
 | 
					          color: #333;
 | 
				
			||||||
 | 
					          font-size: 34px;
 | 
				
			||||||
 | 
					          padding-top: 88px;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  .btn-bottom {
 | 
				
			||||||
 | 
					    position: fixed;
 | 
				
			||||||
 | 
					    bottom: 0;
 | 
				
			||||||
 | 
					    left: 0;
 | 
				
			||||||
 | 
					    z-index: 9;
 | 
				
			||||||
 | 
					    width: 100%;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    .btn {
 | 
				
			||||||
 | 
					      width: 100%;
 | 
				
			||||||
 | 
					      line-height: 112px;
 | 
				
			||||||
 | 
					      background: #E60012;
 | 
				
			||||||
 | 
					      color: #fff;
 | 
				
			||||||
 | 
					      font-size: 32px;
 | 
				
			||||||
 | 
					      text-align: center;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  .mask {
 | 
				
			||||||
 | 
					    position: fixed;
 | 
				
			||||||
 | 
					    top: 0;
 | 
				
			||||||
 | 
					    left: 0;
 | 
				
			||||||
 | 
					    width: 100%;
 | 
				
			||||||
 | 
					    height: 100%;
 | 
				
			||||||
 | 
					    background: rgba(0, 0, 0, .3);
 | 
				
			||||||
 | 
					    z-index: 99;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    .mask-content {
 | 
				
			||||||
 | 
					      width: 560px;
 | 
				
			||||||
 | 
					      height: 680px;
 | 
				
			||||||
 | 
					      background: #fff;
 | 
				
			||||||
 | 
					      border-radius: 8px;
 | 
				
			||||||
 | 
					      border: 2px solid rgba(151, 151, 151, 1);
 | 
				
			||||||
 | 
					      margin: 200px auto 0;
 | 
				
			||||||
 | 
					      padding: 48px 48px 0;
 | 
				
			||||||
 | 
					      box-sizing: border-box;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      .mask-title {
 | 
				
			||||||
 | 
					        font-size: 32px;
 | 
				
			||||||
 | 
					        font-family: PingFangSC-Medium, PingFang SC;
 | 
				
			||||||
 | 
					        font-weight: 600;
 | 
				
			||||||
 | 
					        color: #333;
 | 
				
			||||||
 | 
					        line-height: 44px;
 | 
				
			||||||
 | 
					        margin-bottom: 36px;
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      .mask-text {
 | 
				
			||||||
 | 
					        width: 100%;
 | 
				
			||||||
 | 
					        line-height: 44px;
 | 
				
			||||||
 | 
					        font-size: 28px;
 | 
				
			||||||
 | 
					        font-family: PingFangSC-Medium, PingFang SC;
 | 
				
			||||||
 | 
					        color: #333;
 | 
				
			||||||
 | 
					        word-break: break-all;
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      .mask-btn {
 | 
				
			||||||
 | 
					        width: 128px;
 | 
				
			||||||
 | 
					        height: 40px;
 | 
				
			||||||
 | 
					        font-size: 28px;
 | 
				
			||||||
 | 
					        font-family: PingFangSC-Medium, PingFang SC;
 | 
				
			||||||
 | 
					        font-weight: 500;
 | 
				
			||||||
 | 
					        color: #1365DD;
 | 
				
			||||||
 | 
					        line-height: 40px;
 | 
				
			||||||
 | 
					        margin: 60px 0 0 332px;
 | 
				
			||||||
 | 
					        text-align: center;
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					</style>
 | 
				
			||||||
							
								
								
									
										432
									
								
								src/project/pingchang/AppPartyReport/AppPartyReport.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										432
									
								
								src/project/pingchang/AppPartyReport/AppPartyReport.vue
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,432 @@
 | 
				
			|||||||
 | 
					<template>
 | 
				
			||||||
 | 
					  <view class="page">
 | 
				
			||||||
 | 
					    <ul class="nav_bar">
 | 
				
			||||||
 | 
					      <li
 | 
				
			||||||
 | 
					        v-for="(e, index) in navList"
 | 
				
			||||||
 | 
					        :key="index"
 | 
				
			||||||
 | 
					        :class="{ active: navId == e.id }"
 | 
				
			||||||
 | 
					        @click="getList(e.id)"
 | 
				
			||||||
 | 
					      >
 | 
				
			||||||
 | 
					        {{ e.name }}
 | 
				
			||||||
 | 
					      </li>
 | 
				
			||||||
 | 
					    </ul>
 | 
				
			||||||
 | 
					    <view class="list_content" v-if="list.length > 0">
 | 
				
			||||||
 | 
					      <ul class="list_div">
 | 
				
			||||||
 | 
					        <li v-for="(e, index) in list" :key="index">
 | 
				
			||||||
 | 
					          <view class="up" @click="goToDetail(e)">
 | 
				
			||||||
 | 
					            <h3>{{ e.title }}</h3>
 | 
				
			||||||
 | 
					            <view class="info">
 | 
				
			||||||
 | 
					              <span>活动时间:</span>
 | 
				
			||||||
 | 
					              <p>
 | 
				
			||||||
 | 
					                {{ e.beginTime | timeVal }}至<br />{{ e.endTime | timeVal }}
 | 
				
			||||||
 | 
					              </p>
 | 
				
			||||||
 | 
					            </view>
 | 
				
			||||||
 | 
					            <view class="info">
 | 
				
			||||||
 | 
					              <span>活动地点:</span>
 | 
				
			||||||
 | 
					              <span class="address">{{ e.address }}</span>
 | 
				
			||||||
 | 
					            </view>
 | 
				
			||||||
 | 
					          </view>
 | 
				
			||||||
 | 
					          <view class="btn">
 | 
				
			||||||
 | 
					            <view
 | 
				
			||||||
 | 
					              class="button"
 | 
				
			||||||
 | 
					              :class="{
 | 
				
			||||||
 | 
					                color4: e.nowUsersignupStatus == null,
 | 
				
			||||||
 | 
					                color5: e.nowUsersignupStatus == 1,
 | 
				
			||||||
 | 
					              }"
 | 
				
			||||||
 | 
					              v-if="
 | 
				
			||||||
 | 
					                e.nowUsersignupStatus == null &&
 | 
				
			||||||
 | 
					                e.actionStatus != 2 &&
 | 
				
			||||||
 | 
					                e.signupStatus == 0
 | 
				
			||||||
 | 
					              "
 | 
				
			||||||
 | 
					            >
 | 
				
			||||||
 | 
					              <span @click="signUp(e)">去报名</span>
 | 
				
			||||||
 | 
					            </view>
 | 
				
			||||||
 | 
					            <view
 | 
				
			||||||
 | 
					              class="button callBtn"
 | 
				
			||||||
 | 
					              :class="{
 | 
				
			||||||
 | 
					                color4: e.actionStatus == 0,
 | 
				
			||||||
 | 
					                color5:
 | 
				
			||||||
 | 
					                  (e.actionStatus == 1 && e.signupStatus == 1) ||
 | 
				
			||||||
 | 
					                  (e.actionStatus == 2 && e.signupStatus == 1),
 | 
				
			||||||
 | 
					              }"
 | 
				
			||||||
 | 
					              v-if="navId == 1"
 | 
				
			||||||
 | 
					              @click="handlerCall(e)"
 | 
				
			||||||
 | 
					            >
 | 
				
			||||||
 | 
					              <span>呼叫联系人</span>
 | 
				
			||||||
 | 
					            </view>
 | 
				
			||||||
 | 
					            <view
 | 
				
			||||||
 | 
					              class="button color4"
 | 
				
			||||||
 | 
					              v-if="
 | 
				
			||||||
 | 
					                navId == 1 &&
 | 
				
			||||||
 | 
					                e.nowUsersignupStatus &&
 | 
				
			||||||
 | 
					                e.signupContent == null &&
 | 
				
			||||||
 | 
					                e.signupStatus == 1 &&
 | 
				
			||||||
 | 
					                ['1', '2'].includes(e.actionStatus)
 | 
				
			||||||
 | 
					              "
 | 
				
			||||||
 | 
					            >
 | 
				
			||||||
 | 
					              <span @click="goToLog(e)">填写日志</span>
 | 
				
			||||||
 | 
					            </view>
 | 
				
			||||||
 | 
					            <view
 | 
				
			||||||
 | 
					              class="button color4"
 | 
				
			||||||
 | 
					              v-if="
 | 
				
			||||||
 | 
					                navId == 1 &&
 | 
				
			||||||
 | 
					                e.nowUsersignupStatus &&
 | 
				
			||||||
 | 
					                e.signupContent &&
 | 
				
			||||||
 | 
					                e.signupStatus == 1 &&
 | 
				
			||||||
 | 
					                ['1', '2'].includes(e.actionStatus)
 | 
				
			||||||
 | 
					              "
 | 
				
			||||||
 | 
					            >
 | 
				
			||||||
 | 
					              <span @click="goToLog(e)">编辑日志</span>
 | 
				
			||||||
 | 
					            </view>
 | 
				
			||||||
 | 
					          </view>
 | 
				
			||||||
 | 
					          <p
 | 
				
			||||||
 | 
					            class="tip"
 | 
				
			||||||
 | 
					            :class="{
 | 
				
			||||||
 | 
					              color1: e.actionStatus == 0,
 | 
				
			||||||
 | 
					              color2: e.actionStatus == 1,
 | 
				
			||||||
 | 
					              color3: e.actionStatus == 2,
 | 
				
			||||||
 | 
					            }"
 | 
				
			||||||
 | 
					          >
 | 
				
			||||||
 | 
					            <span v-if="e.actionStatus == 0">未开始</span>
 | 
				
			||||||
 | 
					            <span v-if="e.actionStatus == 1">进行中</span>
 | 
				
			||||||
 | 
					            <span v-if="e.actionStatus == 2">已结束</span>
 | 
				
			||||||
 | 
					          </p>
 | 
				
			||||||
 | 
					        </li>
 | 
				
			||||||
 | 
					      </ul>
 | 
				
			||||||
 | 
					    </view>
 | 
				
			||||||
 | 
					    <AiEmpty v-if="list.length == 0" />
 | 
				
			||||||
 | 
					    <view class="footer">
 | 
				
			||||||
 | 
					      <p
 | 
				
			||||||
 | 
					        v-for="(e, index) in footerList"
 | 
				
			||||||
 | 
					        :key="index"
 | 
				
			||||||
 | 
					        :class="{ active: navId == e.id }"
 | 
				
			||||||
 | 
					        @click="goToList(e.id)"
 | 
				
			||||||
 | 
					      >
 | 
				
			||||||
 | 
					        <image
 | 
				
			||||||
 | 
					          src="https://cdn.cunwuyun.cn/img/party_detail.png"
 | 
				
			||||||
 | 
					          v-if="e.id == 2"
 | 
				
			||||||
 | 
					        ></image>
 | 
				
			||||||
 | 
					        <image
 | 
				
			||||||
 | 
					          src="https://cdn.cunwuyun.cn/img/party_now_reg.png"
 | 
				
			||||||
 | 
					          v-if="e.id == 3"
 | 
				
			||||||
 | 
					        ></image>
 | 
				
			||||||
 | 
					        <span>{{ e.name }}</span>
 | 
				
			||||||
 | 
					      </p>
 | 
				
			||||||
 | 
					    </view>
 | 
				
			||||||
 | 
					  </view>
 | 
				
			||||||
 | 
					</template>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<script>
 | 
				
			||||||
 | 
					import mixins from "./mixins/mixin";
 | 
				
			||||||
 | 
					import { mapState } from "vuex";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export default {
 | 
				
			||||||
 | 
					  name: "AppPartyReport",
 | 
				
			||||||
 | 
					  appName: "报到服务",
 | 
				
			||||||
 | 
					  mixins: [mixins],
 | 
				
			||||||
 | 
					  computed: {
 | 
				
			||||||
 | 
					    ...mapState(["user"]),
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  data() {
 | 
				
			||||||
 | 
					    return {
 | 
				
			||||||
 | 
					      navList: [
 | 
				
			||||||
 | 
					        { name: "可报名的活动", id: 0 },
 | 
				
			||||||
 | 
					        { name: "我的活动日程", id: 1 },
 | 
				
			||||||
 | 
					      ],
 | 
				
			||||||
 | 
					      footerList: [
 | 
				
			||||||
 | 
					        { name: "社区活动列表", id: 2 },
 | 
				
			||||||
 | 
					        { name: "我的活动记录", id: 3 },
 | 
				
			||||||
 | 
					      ],
 | 
				
			||||||
 | 
					      navId: 0,
 | 
				
			||||||
 | 
					      list: [],
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  filters: {
 | 
				
			||||||
 | 
					    timeVal(val) {
 | 
				
			||||||
 | 
					      if (val) {
 | 
				
			||||||
 | 
					        return val.substring(0, 16);
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  onLoad() {
 | 
				
			||||||
 | 
					    uni.setNavigationBarColor({
 | 
				
			||||||
 | 
					      frontColor: "#ffffff",
 | 
				
			||||||
 | 
					      backgroundColor: "#e60012",
 | 
				
			||||||
 | 
					    })
 | 
				
			||||||
 | 
					    this.getList(0);
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  onShow() {
 | 
				
			||||||
 | 
					    this.getList(this.navId);
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  methods: {
 | 
				
			||||||
 | 
					    getList(id) {
 | 
				
			||||||
 | 
					      this.navId = id;
 | 
				
			||||||
 | 
					      this.list = [];
 | 
				
			||||||
 | 
					      this.$instance
 | 
				
			||||||
 | 
					        .post(
 | 
				
			||||||
 | 
					          `/app/apppartyreport/list-xcx?listType=${id}&partyId=${
 | 
				
			||||||
 | 
					            this.user.partyId
 | 
				
			||||||
 | 
					          }&partyOrgId=${this.user.partyOrgId}&size=${10000}`
 | 
				
			||||||
 | 
					        )
 | 
				
			||||||
 | 
					        .then((res) => {
 | 
				
			||||||
 | 
					          if (res.code == 0) {
 | 
				
			||||||
 | 
					            if (res.data.records == null) {
 | 
				
			||||||
 | 
					              this.list = [];
 | 
				
			||||||
 | 
					            } else {
 | 
				
			||||||
 | 
					              this.list = res.data.records;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
 | 
					        });
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    goToList(id) {
 | 
				
			||||||
 | 
					      if (id == 2) {
 | 
				
			||||||
 | 
					        uni.navigateTo({
 | 
				
			||||||
 | 
					          url: `./communityList?id=${id}`,
 | 
				
			||||||
 | 
					        });
 | 
				
			||||||
 | 
					      } else if (id == 3) {
 | 
				
			||||||
 | 
					        uni.navigateTo({
 | 
				
			||||||
 | 
					          url: `./myList?id=${id}`,
 | 
				
			||||||
 | 
					        });
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    goToDetail(e) {
 | 
				
			||||||
 | 
					      uni.navigateTo({
 | 
				
			||||||
 | 
					        url: `./partyDetail?id=${e.id}&listType=${this.navId}`,
 | 
				
			||||||
 | 
					      });
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					</script>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<style lang="scss" scoped>
 | 
				
			||||||
 | 
					.page {
 | 
				
			||||||
 | 
					  width: 100%;
 | 
				
			||||||
 | 
					  height: 100%;
 | 
				
			||||||
 | 
					  overflow: hidden;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  .nav_bar {
 | 
				
			||||||
 | 
					    width: 100%;
 | 
				
			||||||
 | 
					    height: 112px;
 | 
				
			||||||
 | 
					    background: #e60012;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    li {
 | 
				
			||||||
 | 
					      width: 50%;
 | 
				
			||||||
 | 
					      float: left;
 | 
				
			||||||
 | 
					      height: 90px;
 | 
				
			||||||
 | 
					      line-height: 90px;
 | 
				
			||||||
 | 
					      text-align: center;
 | 
				
			||||||
 | 
					      color: #fff;
 | 
				
			||||||
 | 
					      font-size: 28px;
 | 
				
			||||||
 | 
					      opacity: 0.8;
 | 
				
			||||||
 | 
					      position: relative;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      &:after {
 | 
				
			||||||
 | 
					        content: "";
 | 
				
			||||||
 | 
					        position: absolute;
 | 
				
			||||||
 | 
					        bottom: 0;
 | 
				
			||||||
 | 
					        left: 0;
 | 
				
			||||||
 | 
					        right: 0;
 | 
				
			||||||
 | 
					        margin: auto;
 | 
				
			||||||
 | 
					        height: 4px;
 | 
				
			||||||
 | 
					        width: 40px;
 | 
				
			||||||
 | 
					        background-color: transparent;
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    li.active {
 | 
				
			||||||
 | 
					      opacity: 1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      &:after {
 | 
				
			||||||
 | 
					        background-color: #fff;
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  .list_content {
 | 
				
			||||||
 | 
					    width: calc(100% - 64px);
 | 
				
			||||||
 | 
					    height: calc(100% - 284px);
 | 
				
			||||||
 | 
					    padding: 32px;
 | 
				
			||||||
 | 
					    overflow: auto;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    .list_div {
 | 
				
			||||||
 | 
					      width: 100%;
 | 
				
			||||||
 | 
					      height: 100%;
 | 
				
			||||||
 | 
					      padding-bottom: 400px;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      li {
 | 
				
			||||||
 | 
					        width: 100%;
 | 
				
			||||||
 | 
					        height: 446px;
 | 
				
			||||||
 | 
					        background-color: #fff;
 | 
				
			||||||
 | 
					        border-radius: 4px;
 | 
				
			||||||
 | 
					        margin-bottom: 32px;
 | 
				
			||||||
 | 
					        position: relative;
 | 
				
			||||||
 | 
					        overflow: hidden;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        .up {
 | 
				
			||||||
 | 
					          height: 330px;
 | 
				
			||||||
 | 
					          width: 100%;
 | 
				
			||||||
 | 
					          padding: 32px;
 | 
				
			||||||
 | 
					          word-break: break-all;
 | 
				
			||||||
 | 
					          box-sizing: border-box;
 | 
				
			||||||
 | 
					          border-bottom: 2px solid #eeeeee;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          h3 {
 | 
				
			||||||
 | 
					            color: #333333;
 | 
				
			||||||
 | 
					            font-size: 32px;
 | 
				
			||||||
 | 
					            font-weight: bold;
 | 
				
			||||||
 | 
					            width: 90%;
 | 
				
			||||||
 | 
					            display: -webkit-box;
 | 
				
			||||||
 | 
					            word-break: break-all;
 | 
				
			||||||
 | 
					            -webkit-line-clamp: 1;
 | 
				
			||||||
 | 
					            overflow: hidden;
 | 
				
			||||||
 | 
					            text-overflow: ellipsis;
 | 
				
			||||||
 | 
					            -webkit-box-orient: vertical;
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          .info {
 | 
				
			||||||
 | 
					            width: 100%;
 | 
				
			||||||
 | 
					            display: flex;
 | 
				
			||||||
 | 
					            font-size: 30px;
 | 
				
			||||||
 | 
					            margin-top: 32px;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            span {
 | 
				
			||||||
 | 
					              width: 150px;
 | 
				
			||||||
 | 
					              color: rgba(153, 153, 153, 1);
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            p {
 | 
				
			||||||
 | 
					              flex: 1;
 | 
				
			||||||
 | 
					              color: #343d65;
 | 
				
			||||||
 | 
					              word-break: break-all;
 | 
				
			||||||
 | 
					              display: -webkit-box;
 | 
				
			||||||
 | 
					              -webkit-line-clamp: 2;
 | 
				
			||||||
 | 
					              overflow: hidden;
 | 
				
			||||||
 | 
					              text-overflow: ellipsis;
 | 
				
			||||||
 | 
					              -webkit-box-orient: vertical;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            .address {
 | 
				
			||||||
 | 
					              width: 320px;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          .endTime {
 | 
				
			||||||
 | 
					            box-sizing: border-box;
 | 
				
			||||||
 | 
					            padding-left: 150px;
 | 
				
			||||||
 | 
					            font-size: 30px;
 | 
				
			||||||
 | 
					            color: #343d65;
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        .btn {
 | 
				
			||||||
 | 
					          height: 118px;
 | 
				
			||||||
 | 
					          display: flex;
 | 
				
			||||||
 | 
					          align-items: center;
 | 
				
			||||||
 | 
					          justify-content: flex-end;
 | 
				
			||||||
 | 
					          padding: 0 32px;
 | 
				
			||||||
 | 
					          box-sizing: border-box;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          .button {
 | 
				
			||||||
 | 
					            width: 152px;
 | 
				
			||||||
 | 
					            height: 56px;
 | 
				
			||||||
 | 
					            border-radius: 28px;
 | 
				
			||||||
 | 
					            color: #1365dd;
 | 
				
			||||||
 | 
					            text-align: center;
 | 
				
			||||||
 | 
					            line-height: 56px;
 | 
				
			||||||
 | 
					            margin-left: 16px;
 | 
				
			||||||
 | 
					            font-size: 28px;
 | 
				
			||||||
 | 
					            border: 2px solid rgba(19, 101, 221, 1);
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          .callBtn {
 | 
				
			||||||
 | 
					            width: 196px !important;
 | 
				
			||||||
 | 
					            margin-left: 0 !important;
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          .color4 {
 | 
				
			||||||
 | 
					            color: #1365dd;
 | 
				
			||||||
 | 
					            border: 2px solid rgba(19, 101, 221, 1);
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          .color5 {
 | 
				
			||||||
 | 
					            color: #606060;
 | 
				
			||||||
 | 
					            border: 2px solid #e1e1e1;
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        .tip {
 | 
				
			||||||
 | 
					          position: absolute;
 | 
				
			||||||
 | 
					          width: 200px;
 | 
				
			||||||
 | 
					          height: 56px;
 | 
				
			||||||
 | 
					          text-align: center;
 | 
				
			||||||
 | 
					          line-height: 56px;
 | 
				
			||||||
 | 
					          right: -50px;
 | 
				
			||||||
 | 
					          -webkit-transform: rotate(45deg);
 | 
				
			||||||
 | 
					          -ms-transform: rotate(45deg);
 | 
				
			||||||
 | 
					          transform: rotate(45deg);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          top: 20px;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          &.color1 {
 | 
				
			||||||
 | 
					            color: #ff8822;
 | 
				
			||||||
 | 
					            background-color: #fff3e9;
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          &.color2 {
 | 
				
			||||||
 | 
					            color: #5a98f2;
 | 
				
			||||||
 | 
					            background-color: #eef5ff;
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          &.color3 {
 | 
				
			||||||
 | 
					            color: #999999;
 | 
				
			||||||
 | 
					            background-color: #f2f2f2;
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  .footer {
 | 
				
			||||||
 | 
					    width: 100%;
 | 
				
			||||||
 | 
					    position: fixed;
 | 
				
			||||||
 | 
					    left: 0;
 | 
				
			||||||
 | 
					    bottom: 0;
 | 
				
			||||||
 | 
					    height: 104px;
 | 
				
			||||||
 | 
					    background: rgba(255, 228, 221, 1);
 | 
				
			||||||
 | 
					    color: #d73d3d;
 | 
				
			||||||
 | 
					    display: flex;
 | 
				
			||||||
 | 
					    justify-content: center;
 | 
				
			||||||
 | 
					    align-items: center;
 | 
				
			||||||
 | 
					    font-size: 32px;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    image {
 | 
				
			||||||
 | 
					      width: 32px;
 | 
				
			||||||
 | 
					      height: 32px;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    p {
 | 
				
			||||||
 | 
					      width: 50%;
 | 
				
			||||||
 | 
					      height: 100%;
 | 
				
			||||||
 | 
					      display: flex;
 | 
				
			||||||
 | 
					      justify-content: center;
 | 
				
			||||||
 | 
					      align-items: center;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      &.active {
 | 
				
			||||||
 | 
					        background-color: #d73d3d;
 | 
				
			||||||
 | 
					        color: #ffffff;
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    p:nth-child(1) {
 | 
				
			||||||
 | 
					      border-right: 2px solid rgb(241, 178, 178);
 | 
				
			||||||
 | 
					      box-sizing: border-box;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    p:nth-child(2) {
 | 
				
			||||||
 | 
					      background-color: #fe5a49;
 | 
				
			||||||
 | 
					      box-sizing: border-box;
 | 
				
			||||||
 | 
					      color: #fff;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					</style>
 | 
				
			||||||
							
								
								
									
										492
									
								
								src/project/pingchang/AppPartyReport/communityList.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										492
									
								
								src/project/pingchang/AppPartyReport/communityList.vue
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,492 @@
 | 
				
			|||||||
 | 
					<template>
 | 
				
			||||||
 | 
					  <view class="page">
 | 
				
			||||||
 | 
					    <view v-if="isShow" style="height:100%;width:100%">
 | 
				
			||||||
 | 
					      <div class="party_header" v-if="list.length > 0">
 | 
				
			||||||
 | 
					        <view class="search-box">
 | 
				
			||||||
 | 
					          <view class="search-input flex-row" @click="changeSearchBox">
 | 
				
			||||||
 | 
					            <image src="https://cdn.cunwuyun.cn/img/search-red.svg"/>
 | 
				
			||||||
 | 
					            <text>{{ title || '请输入活动名称或活动地点' }}</text>
 | 
				
			||||||
 | 
					          </view>
 | 
				
			||||||
 | 
					        </view>
 | 
				
			||||||
 | 
					      </div>
 | 
				
			||||||
 | 
					      <div class="party_header" v-if="list.length == 0" style="height: auto;">
 | 
				
			||||||
 | 
					        <view class="search-box">
 | 
				
			||||||
 | 
					          <view class="search-input flex-row" @click="changeSearchBox">
 | 
				
			||||||
 | 
					            <image src="https://cdn.cunwuyun.cn/img/search-red.svg"/>
 | 
				
			||||||
 | 
					            <text>{{ title || '请输入活动名称或活动地点' }}</text>
 | 
				
			||||||
 | 
					          </view>
 | 
				
			||||||
 | 
					        </view>
 | 
				
			||||||
 | 
					      </div>
 | 
				
			||||||
 | 
					      <view class='slect flex-row'>
 | 
				
			||||||
 | 
					        <view class="uni-list type-slect">
 | 
				
			||||||
 | 
					          <view class="uni-list-cell">
 | 
				
			||||||
 | 
					            <view class="uni-list-cell-db">
 | 
				
			||||||
 | 
					              <picker @change="bindPickerChange" :range="activeTypeArr">
 | 
				
			||||||
 | 
					                <view class="uni-input">{{ actionName }}</view>
 | 
				
			||||||
 | 
					                <image src="https://cdn.cunwuyun.cn/img/down.svg"></image>
 | 
				
			||||||
 | 
					              </picker>
 | 
				
			||||||
 | 
					            </view>
 | 
				
			||||||
 | 
					          </view>
 | 
				
			||||||
 | 
					        </view>
 | 
				
			||||||
 | 
					        <view class="uni-list type-slect">
 | 
				
			||||||
 | 
					          <view class="uni-list-cell">
 | 
				
			||||||
 | 
					            <view class="uni-list-cell-db">
 | 
				
			||||||
 | 
					              <picker @change="bindStatusChange" :range="applyStatusArr">
 | 
				
			||||||
 | 
					                <view class="uni-input">{{ signupName }}</view>
 | 
				
			||||||
 | 
					                <image src="https://cdn.cunwuyun.cn/img/down.svg"></image>
 | 
				
			||||||
 | 
					              </picker>
 | 
				
			||||||
 | 
					            </view>
 | 
				
			||||||
 | 
					          </view>
 | 
				
			||||||
 | 
					        </view>
 | 
				
			||||||
 | 
					      </view>
 | 
				
			||||||
 | 
					      <view class="list_content" v-if="list.length > 0">
 | 
				
			||||||
 | 
					        <ul class="list_div">
 | 
				
			||||||
 | 
					          <li v-for="(e,index) in list" :key="index">
 | 
				
			||||||
 | 
					            <view class="up" @click="goToDetail(e)">
 | 
				
			||||||
 | 
					              <h3>{{ e.title }}</h3>
 | 
				
			||||||
 | 
					              <view class="info">
 | 
				
			||||||
 | 
					                <span>活动时间:</span>
 | 
				
			||||||
 | 
					                <p>{{ e.beginTime|timeVal }}至<br/>{{ e.endTime|timeVal }}</p>
 | 
				
			||||||
 | 
					              </view>
 | 
				
			||||||
 | 
					              <view class="info">
 | 
				
			||||||
 | 
					                <span>活动地点:</span>
 | 
				
			||||||
 | 
					                <p>{{ e.address }}</p>
 | 
				
			||||||
 | 
					              </view>
 | 
				
			||||||
 | 
					            </view>
 | 
				
			||||||
 | 
					            <view class="btn">
 | 
				
			||||||
 | 
					              <view class="button callBtn"
 | 
				
			||||||
 | 
					                    :class="{color4:e.actionStatus==0,color5:e.actionStatus==1&&e.signupStatus==1 || e.actionStatus==2&&e.signupStatus==1}"
 | 
				
			||||||
 | 
					                    @click="handlerCall(e)" v-if="e.nowUsersignupStatus">
 | 
				
			||||||
 | 
					                <span>呼叫联系人</span>
 | 
				
			||||||
 | 
					              </view>
 | 
				
			||||||
 | 
					              <view class="button" :class="{color4:e.nowUsersignupStatus==null,color5:e.nowUsersignupStatus==1}"
 | 
				
			||||||
 | 
					                    v-if="e.nowUsersignupStatus==null&&e.actionStatus!=2&&e.signupStatus==0">
 | 
				
			||||||
 | 
					                <span @click="signUp(e)">去报名</span>
 | 
				
			||||||
 | 
					              </view>
 | 
				
			||||||
 | 
					              <view class="button color4"
 | 
				
			||||||
 | 
					                    v-if="e.nowUsersignupStatus && e.signupContent==null && e.signupStatus==1 && ['1','2'].includes(e.actionStatus)">
 | 
				
			||||||
 | 
					                <span @click="goToLog(e)">填写日志</span>
 | 
				
			||||||
 | 
					              </view>
 | 
				
			||||||
 | 
					              <view class="button color4"
 | 
				
			||||||
 | 
					                    v-if="e.nowUsersignupStatus && e.signupContent && e.signupStatus==1 && ['1','2'].includes(e.actionStatus)">
 | 
				
			||||||
 | 
					                <span @click="goToLog(e)">编辑日志</span>
 | 
				
			||||||
 | 
					              </view>
 | 
				
			||||||
 | 
					            </view>
 | 
				
			||||||
 | 
					            <p class="tip" :class="{color1:e.actionStatus==0,color2:e.actionStatus==1,color3:e.actionStatus==2}">
 | 
				
			||||||
 | 
					              <span v-if="e.actionStatus==0">未开始</span>
 | 
				
			||||||
 | 
					              <span v-if="e.actionStatus==1">进行中</span>
 | 
				
			||||||
 | 
					              <span v-if="e.actionStatus==2">已结束</span>
 | 
				
			||||||
 | 
					            </p>
 | 
				
			||||||
 | 
					          </li>
 | 
				
			||||||
 | 
					        </ul>
 | 
				
			||||||
 | 
					      </view>
 | 
				
			||||||
 | 
					      <AiEmpty v-if="list.length==0" />
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    </view>
 | 
				
			||||||
 | 
					    <view v-if="!isShow" class="search-input">
 | 
				
			||||||
 | 
					      <view class="input-box flex-row">
 | 
				
			||||||
 | 
					        <input type="text" class="input" placeholder="请输入活动名称或活动地点" focus="false" v-model="title"/>
 | 
				
			||||||
 | 
					        <image class="sousuo" src="https://cdn.cunwuyun.cn/img/search-active.svg"/>
 | 
				
			||||||
 | 
					        <image v-if="title" @tap="clearInput" class="clear" src="https://cdn.cunwuyun.cn/img/empty-Input.svg"/>
 | 
				
			||||||
 | 
					        <view class="search-word" @click="getList()">搜索</view>
 | 
				
			||||||
 | 
					      </view>
 | 
				
			||||||
 | 
					    </view>
 | 
				
			||||||
 | 
					  </view>
 | 
				
			||||||
 | 
					</template>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<script>
 | 
				
			||||||
 | 
					import mixins from "./mixins/mixin";
 | 
				
			||||||
 | 
					import {mapState} from 'vuex'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export default {
 | 
				
			||||||
 | 
					  name: "partyReportList",
 | 
				
			||||||
 | 
					  mixins: [mixins],
 | 
				
			||||||
 | 
					  computed: {
 | 
				
			||||||
 | 
					    ...mapState(['user']),
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  data() {
 | 
				
			||||||
 | 
					    return {
 | 
				
			||||||
 | 
					      navId: 0,
 | 
				
			||||||
 | 
					      list: [],
 | 
				
			||||||
 | 
					      title: '',
 | 
				
			||||||
 | 
					      isShow: true,
 | 
				
			||||||
 | 
					      applyStatusArr: [],
 | 
				
			||||||
 | 
					      activeTypeArr: [],
 | 
				
			||||||
 | 
					      actionStatus: '',
 | 
				
			||||||
 | 
					      signupStatus: '',
 | 
				
			||||||
 | 
					      actionName: '活动状态',
 | 
				
			||||||
 | 
					      signupName: '报名状态'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  filters: {
 | 
				
			||||||
 | 
					    timeVal(val) {
 | 
				
			||||||
 | 
					      if (val) {
 | 
				
			||||||
 | 
					        return val.substring(0, 16)
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  onLoad(options) {
 | 
				
			||||||
 | 
					    uni.setNavigationBarColor({
 | 
				
			||||||
 | 
					      frontColor: "#ffffff",
 | 
				
			||||||
 | 
					      backgroundColor: "#e60012",
 | 
				
			||||||
 | 
					    })
 | 
				
			||||||
 | 
					    this.navId = options.id;
 | 
				
			||||||
 | 
					    this.$dict.load('partyReportActionStatus', 'partyReportSignupStatus');
 | 
				
			||||||
 | 
					    this.$dict.getDict('partyReportActionStatus').map(i => {
 | 
				
			||||||
 | 
					      this.activeTypeArr.push(i.dictName)
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					    this.$dict.getDict('partyReportSignupStatus').map(i => {
 | 
				
			||||||
 | 
					      this.applyStatusArr.push(i.dictName)
 | 
				
			||||||
 | 
					    })
 | 
				
			||||||
 | 
					    this.getList();
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  onShow() {
 | 
				
			||||||
 | 
					    this.getList();
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  methods: {
 | 
				
			||||||
 | 
					    getList() {
 | 
				
			||||||
 | 
					      this.$instance.post(`/app/apppartyreport/list-xcx?listType=${this.navId}&partyId=${this.user.partyId}&partyOrgId=${this.user.partyOrgId}&title=${this.title}&actionStatus=${this.actionStatus}&signupStatus=${this.signupStatus}&size=${10000}`, null, {}).then(res => {
 | 
				
			||||||
 | 
					        if (res.code == 0) {
 | 
				
			||||||
 | 
					          if (res.data.records == null) {
 | 
				
			||||||
 | 
					            this.list = [];
 | 
				
			||||||
 | 
					          } else {
 | 
				
			||||||
 | 
					            this.list = res.data.records;
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
 | 
					          this.isShow = true;
 | 
				
			||||||
 | 
					        } else {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					      }).catch(err => {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      })
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    changeSearchBox() {
 | 
				
			||||||
 | 
					      this.isShow = false
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    clearInput() {
 | 
				
			||||||
 | 
					      this.title = ''
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    bindPickerChange(e) {
 | 
				
			||||||
 | 
					      this.actionName = this.activeTypeArr[Number(e.detail.value)];
 | 
				
			||||||
 | 
					      this.actionStatus = e.detail.value;
 | 
				
			||||||
 | 
					      this.getList();
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    bindStatusChange(e) {
 | 
				
			||||||
 | 
					      this.signupName = this.applyStatusArr[Number(e.detail.value)];
 | 
				
			||||||
 | 
					      this.signupStatus = e.detail.value;
 | 
				
			||||||
 | 
					      this.getList();
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    goToDetail(e) {
 | 
				
			||||||
 | 
					      uni.navigateTo({
 | 
				
			||||||
 | 
					        url: `./partyDetail?id=${e.id}&listType=${this.navId}`
 | 
				
			||||||
 | 
					      })
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    signUp(e) {
 | 
				
			||||||
 | 
					      uni.navigateTo({
 | 
				
			||||||
 | 
					        url: `./signUp?reportId=${e.id}`
 | 
				
			||||||
 | 
					      })
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					</script>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<style lang="scss" scoped>
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.page {
 | 
				
			||||||
 | 
					  width: 100%;
 | 
				
			||||||
 | 
					  height: 100%;
 | 
				
			||||||
 | 
					  overflow: hidden;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  .slect {
 | 
				
			||||||
 | 
					    width: 100%;
 | 
				
			||||||
 | 
					    height: 96px;
 | 
				
			||||||
 | 
					    background-color: #fff;
 | 
				
			||||||
 | 
					    color: #666;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    .type-slect {
 | 
				
			||||||
 | 
					      width: 50%;
 | 
				
			||||||
 | 
					      border-right: 1px solid #F7F7F7;
 | 
				
			||||||
 | 
					      margin: 30px 0;
 | 
				
			||||||
 | 
					      box-sizing: border-box;
 | 
				
			||||||
 | 
					      text-align: center;
 | 
				
			||||||
 | 
					      font-size: 26px;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      .uni-input {
 | 
				
			||||||
 | 
					        display: inline-block;
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      image {
 | 
				
			||||||
 | 
					        width: 32px;
 | 
				
			||||||
 | 
					        height: 32px;
 | 
				
			||||||
 | 
					        display: inline-block;
 | 
				
			||||||
 | 
					        position: relative;
 | 
				
			||||||
 | 
					        top: 6px;
 | 
				
			||||||
 | 
					        margin-left: 8px;
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    .type-slect:nth-child(2) {
 | 
				
			||||||
 | 
					      border: none;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  .party_header {
 | 
				
			||||||
 | 
					    background: #E60012;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    .search-box {
 | 
				
			||||||
 | 
					      width: 100%;
 | 
				
			||||||
 | 
					      padding: 24px 32px;
 | 
				
			||||||
 | 
					      box-sizing: border-box;
 | 
				
			||||||
 | 
					      background: #E60012;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      .search-input {
 | 
				
			||||||
 | 
					        line-height: 64px;
 | 
				
			||||||
 | 
					        width: 100%;
 | 
				
			||||||
 | 
					        height: 100%;
 | 
				
			||||||
 | 
					        border-radius: 32px;
 | 
				
			||||||
 | 
					        background: #CE0010;
 | 
				
			||||||
 | 
					        color: #fff;
 | 
				
			||||||
 | 
					        font-size: 26px;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        text {
 | 
				
			||||||
 | 
					          white-space: nowrap;
 | 
				
			||||||
 | 
					          overflow: hidden;
 | 
				
			||||||
 | 
					          color: #fff;
 | 
				
			||||||
 | 
					          text-overflow: ellipsis;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        image {
 | 
				
			||||||
 | 
					          width: 40px;
 | 
				
			||||||
 | 
					          height: 40px;
 | 
				
			||||||
 | 
					          margin: 8px 8px 8px 24px;
 | 
				
			||||||
 | 
					          position: relative;
 | 
				
			||||||
 | 
					          top: 6px;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  .search-input {
 | 
				
			||||||
 | 
					    .input-box {
 | 
				
			||||||
 | 
					      width: 100%;
 | 
				
			||||||
 | 
					      height: 112px;
 | 
				
			||||||
 | 
					      background-color: #fff;
 | 
				
			||||||
 | 
					      padding: 24px 32px;
 | 
				
			||||||
 | 
					      box-sizing: border-box;
 | 
				
			||||||
 | 
					      position: relative;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      .sousuo {
 | 
				
			||||||
 | 
					        position: absolute;
 | 
				
			||||||
 | 
					        top: 35px;
 | 
				
			||||||
 | 
					        left: 60px;
 | 
				
			||||||
 | 
					        width: 40px;
 | 
				
			||||||
 | 
					        height: 40px;
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      .input {
 | 
				
			||||||
 | 
					        background-color: #F3F3F3;
 | 
				
			||||||
 | 
					        width: 598px;
 | 
				
			||||||
 | 
					        height: 64px;
 | 
				
			||||||
 | 
					        color: #999999;
 | 
				
			||||||
 | 
					        font-size: 26px;
 | 
				
			||||||
 | 
					        margin-left: 8px;
 | 
				
			||||||
 | 
					        border-radius: 32px;
 | 
				
			||||||
 | 
					        padding-left: 70px;
 | 
				
			||||||
 | 
					        padding-right: 60px;
 | 
				
			||||||
 | 
					        box-sizing: border-box;
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      .clear {
 | 
				
			||||||
 | 
					        width: 32px;
 | 
				
			||||||
 | 
					        height: 32px;
 | 
				
			||||||
 | 
					        position: absolute;
 | 
				
			||||||
 | 
					        top: 40px;
 | 
				
			||||||
 | 
					        right: 130px;
 | 
				
			||||||
 | 
					        z-index: 10;
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      .search-word {
 | 
				
			||||||
 | 
					        font-size: 28px;
 | 
				
			||||||
 | 
					        color: #135AB8;
 | 
				
			||||||
 | 
					        line-height: 60px;
 | 
				
			||||||
 | 
					        margin-left: 20px;
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  .list_content {
 | 
				
			||||||
 | 
					    width: calc(100% - 64rpx);
 | 
				
			||||||
 | 
					    height: calc(100% - 260rpx);
 | 
				
			||||||
 | 
					    padding: 32px 32px 0 32px;
 | 
				
			||||||
 | 
					    overflow: auto;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    .list_div {
 | 
				
			||||||
 | 
					      width: 100%;
 | 
				
			||||||
 | 
					      height: 100%;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      li {
 | 
				
			||||||
 | 
					        width: 100%;
 | 
				
			||||||
 | 
					        height: 426px;
 | 
				
			||||||
 | 
					        background-color: #fff;
 | 
				
			||||||
 | 
					        border-radius: 4px;
 | 
				
			||||||
 | 
					        margin-bottom: 32px;
 | 
				
			||||||
 | 
					        position: relative;
 | 
				
			||||||
 | 
					        overflow: hidden;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        .up {
 | 
				
			||||||
 | 
					          height: 330px;
 | 
				
			||||||
 | 
					          width: 100%;
 | 
				
			||||||
 | 
					          padding: 32px;
 | 
				
			||||||
 | 
					          box-sizing: border-box;
 | 
				
			||||||
 | 
					          border-bottom: 2px solid #eeeeee;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          h3 {
 | 
				
			||||||
 | 
					            color: #333333;
 | 
				
			||||||
 | 
					            font-size: 32px;
 | 
				
			||||||
 | 
					            font-weight: bold;
 | 
				
			||||||
 | 
					            width: 90%;
 | 
				
			||||||
 | 
					            word-break: break-all;
 | 
				
			||||||
 | 
					            display: -webkit-box;
 | 
				
			||||||
 | 
					            -webkit-line-clamp: 1;
 | 
				
			||||||
 | 
					            overflow: hidden;
 | 
				
			||||||
 | 
					            text-overflow: ellipsis;
 | 
				
			||||||
 | 
					            -webkit-box-orient: vertical;
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          .info {
 | 
				
			||||||
 | 
					            width: 100%;
 | 
				
			||||||
 | 
					            display: flex;
 | 
				
			||||||
 | 
					            font-size: 30px;
 | 
				
			||||||
 | 
					            margin-top: 32px;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            span {
 | 
				
			||||||
 | 
					              width: 150px;
 | 
				
			||||||
 | 
					              color: rgba(153, 153, 153, 1);
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            p {
 | 
				
			||||||
 | 
					              flex: 1;
 | 
				
			||||||
 | 
					              color: #343D65;
 | 
				
			||||||
 | 
					              word-break: break-all;
 | 
				
			||||||
 | 
					              display: -webkit-box;
 | 
				
			||||||
 | 
					              -webkit-line-clamp: 2;
 | 
				
			||||||
 | 
					              overflow: hidden;
 | 
				
			||||||
 | 
					              text-overflow: ellipsis;
 | 
				
			||||||
 | 
					              -webkit-box-orient: vertical;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        .btn {
 | 
				
			||||||
 | 
					          height: 96px;
 | 
				
			||||||
 | 
					          display: flex;
 | 
				
			||||||
 | 
					          align-items: center;
 | 
				
			||||||
 | 
					          justify-content: flex-end;
 | 
				
			||||||
 | 
					          padding: 0 32px;
 | 
				
			||||||
 | 
					          box-sizing: border-box;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          .button {
 | 
				
			||||||
 | 
					            width: 152px;
 | 
				
			||||||
 | 
					            height: 56px;
 | 
				
			||||||
 | 
					            border-radius: 28px;
 | 
				
			||||||
 | 
					            color: #1365DD;
 | 
				
			||||||
 | 
					            text-align: center;
 | 
				
			||||||
 | 
					            line-height: 56px;
 | 
				
			||||||
 | 
					            font-size: 28px;
 | 
				
			||||||
 | 
					            margin-left: 16px;
 | 
				
			||||||
 | 
					            border: 2px solid rgba(19, 101, 221, 1);
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          .callBtn {
 | 
				
			||||||
 | 
					            width: 196px !important;
 | 
				
			||||||
 | 
					            margin-left: 0 !important;
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          .color4 {
 | 
				
			||||||
 | 
					            color: #1365DD;
 | 
				
			||||||
 | 
					            border: 2px solid rgba(19, 101, 221, 1);
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          .color5 {
 | 
				
			||||||
 | 
					            color: #606060;
 | 
				
			||||||
 | 
					            border: 2px solid #E1E1E1;
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        .tip {
 | 
				
			||||||
 | 
					          position: absolute;
 | 
				
			||||||
 | 
					          width: 200px;
 | 
				
			||||||
 | 
					          height: 56px;
 | 
				
			||||||
 | 
					          text-align: center;
 | 
				
			||||||
 | 
					          line-height: 56px;
 | 
				
			||||||
 | 
					          right: -50rpx;
 | 
				
			||||||
 | 
					          -webkit-transform: rotate(45deg);
 | 
				
			||||||
 | 
					          -ms-transform: rotate(45deg);
 | 
				
			||||||
 | 
					          transform: rotate(45deg);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          top: 20px;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          &.color1 {
 | 
				
			||||||
 | 
					            color: #ff8822;
 | 
				
			||||||
 | 
					            background-color: #FFF3E9;
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          &.color2 {
 | 
				
			||||||
 | 
					            color: #5A98F2;
 | 
				
			||||||
 | 
					            background-color: #EEF5FF;
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          &.color3 {
 | 
				
			||||||
 | 
					            color: #999999;
 | 
				
			||||||
 | 
					            background-color: #F2F2F2;
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  .no-affairs {
 | 
				
			||||||
 | 
					    width: 100%;
 | 
				
			||||||
 | 
					    height: calc(100% - 210rpx);
 | 
				
			||||||
 | 
					    display: flex;
 | 
				
			||||||
 | 
					    justify-content: center;
 | 
				
			||||||
 | 
					    align-items: center;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  .footer {
 | 
				
			||||||
 | 
					    width: 100%;
 | 
				
			||||||
 | 
					    position: fixed;
 | 
				
			||||||
 | 
					    left: 0;
 | 
				
			||||||
 | 
					    bottom: 0;
 | 
				
			||||||
 | 
					    height: 104px;
 | 
				
			||||||
 | 
					    background: rgba(255, 228, 221, 1);
 | 
				
			||||||
 | 
					    color: #D73D3D;
 | 
				
			||||||
 | 
					    display: flex;
 | 
				
			||||||
 | 
					    justify-content: center;
 | 
				
			||||||
 | 
					    align-items: center;
 | 
				
			||||||
 | 
					    font-size: 32px;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    p {
 | 
				
			||||||
 | 
					      width: 50%;
 | 
				
			||||||
 | 
					      height: 100%;
 | 
				
			||||||
 | 
					      display: flex;
 | 
				
			||||||
 | 
					      justify-content: center;
 | 
				
			||||||
 | 
					      align-items: center;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      &.active {
 | 
				
			||||||
 | 
					        background-color: #D73D3D;
 | 
				
			||||||
 | 
					        color: #ffffff;
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					</style>
 | 
				
			||||||
							
								
								
									
										394
									
								
								src/project/pingchang/AppPartyReport/fillLog.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										394
									
								
								src/project/pingchang/AppPartyReport/fillLog.vue
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,394 @@
 | 
				
			|||||||
 | 
					<template>
 | 
				
			||||||
 | 
					    <view class="page">
 | 
				
			||||||
 | 
					        <header></header>
 | 
				
			||||||
 | 
					        <view class="form">           
 | 
				
			||||||
 | 
					           <view class="main">
 | 
				
			||||||
 | 
					                <div class="textarea">
 | 
				
			||||||
 | 
					            	    <div class="color-333"><span class="color-red">*</span>活动总结</div>
 | 
				
			||||||
 | 
					            	    <textarea type="textarea" placeholder="填写本次活动参与心得体会(200字以内)" v-model="baseInfo.content" adjust-position="false" maxlength="200"></textarea>
 | 
				
			||||||
 | 
					            	</div>
 | 
				
			||||||
 | 
					                <view class="uni-uploader">
 | 
				
			||||||
 | 
											<view class="title-box title-box-margin">
 | 
				
			||||||
 | 
												<text class="title">活动照片(最多9张)</text>
 | 
				
			||||||
 | 
											</view>
 | 
				
			||||||
 | 
											<view class="uni-uploader-body">
 | 
				
			||||||
 | 
												<view class="uni-uploader__files">
 | 
				
			||||||
 | 
													<block v-for="(image,index) in imageList" :key="index">
 | 
				
			||||||
 | 
														<view class="uni-uploader__file">
 | 
				
			||||||
 | 
															<image class="uni-uploader__img" :src="image.accessUrl" :data-index="index" @tap="previewImage"></image>
 | 
				
			||||||
 | 
															<AiUniIcon type="clear" class="icon" color="#8f8f94" size="20" @click="deleteImage(index)"></AiUniIcon>
 | 
				
			||||||
 | 
														</view>
 | 
				
			||||||
 | 
													</block>
 | 
				
			||||||
 | 
													<view class="pre-view" @tap="chooseImageType" v-if="imageList.length < 9">
 | 
				
			||||||
 | 
														<text class="pre-label">+</text>
 | 
				
			||||||
 | 
														<text class="add-image">添加照片</text>
 | 
				
			||||||
 | 
													</view>
 | 
				
			||||||
 | 
												</view>
 | 
				
			||||||
 | 
											</view>
 | 
				
			||||||
 | 
									</view>
 | 
				
			||||||
 | 
					           </view>
 | 
				
			||||||
 | 
					        </view>
 | 
				
			||||||
 | 
					         <view class="report" @click="report()">提交</view>
 | 
				
			||||||
 | 
					    </view>
 | 
				
			||||||
 | 
					</template>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<script>
 | 
				
			||||||
 | 
					    import axios from "@/utils/axios.js"
 | 
				
			||||||
 | 
					    export default {
 | 
				
			||||||
 | 
					        name:"fillLog",
 | 
				
			||||||
 | 
					        data(){
 | 
				
			||||||
 | 
					            return{
 | 
				
			||||||
 | 
					                reportId:'',
 | 
				
			||||||
 | 
					                baseInfo:{
 | 
				
			||||||
 | 
					                    content:'',
 | 
				
			||||||
 | 
					                    fileIds:[],
 | 
				
			||||||
 | 
					                    reportId:'',
 | 
				
			||||||
 | 
					                    id:''
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                imageList:[],
 | 
				
			||||||
 | 
					                sourceTypeIndex: 2,
 | 
				
			||||||
 | 
					                sourceType:[   // 图片来源类型
 | 
				
			||||||
 | 
					                  ['camera'],
 | 
				
			||||||
 | 
					                  ['album'],
 | 
				
			||||||
 | 
					                ],
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					         onLoad(options){
 | 
				
			||||||
 | 
					          uni.setNavigationBarColor({
 | 
				
			||||||
 | 
					            frontColor: "#ffffff",
 | 
				
			||||||
 | 
					            backgroundColor: "#e60012",
 | 
				
			||||||
 | 
					          })
 | 
				
			||||||
 | 
					            this.baseInfo.reportId= options.reportId;
 | 
				
			||||||
 | 
					            this.baseInfo.id= options.signupId;
 | 
				
			||||||
 | 
					            options.signupContent?this.logReport():null ;
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        methods:{
 | 
				
			||||||
 | 
					            	// 选择照片类型
 | 
				
			||||||
 | 
								      chooseImageType(){
 | 
				
			||||||
 | 
					              let that = this
 | 
				
			||||||
 | 
					              uni.showActionSheet({
 | 
				
			||||||
 | 
					                itemList:['拍照','从相册选择'],
 | 
				
			||||||
 | 
					                success: function(res){
 | 
				
			||||||
 | 
					                  that.sourceTypeIndex = res.tapIndex
 | 
				
			||||||
 | 
					                  that.chooseImage()
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					              })
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            showModel(title){
 | 
				
			||||||
 | 
					                uni.showModal({
 | 
				
			||||||
 | 
					                title: '温馨提示',
 | 
				
			||||||
 | 
					                content: title,
 | 
				
			||||||
 | 
					                showCancel:false,
 | 
				
			||||||
 | 
					                confirmColor:"#135AB8",
 | 
				
			||||||
 | 
					                })
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            chooseImage: async function() {
 | 
				
			||||||
 | 
					            let that = this
 | 
				
			||||||
 | 
					            if (that.imageList.length === 9) {
 | 
				
			||||||
 | 
					              let isContinue = await that.isFullImg();
 | 
				
			||||||
 | 
					              if (!isContinue) {
 | 
				
			||||||
 | 
					                return;
 | 
				
			||||||
 | 
					              }
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            uni.chooseImage({
 | 
				
			||||||
 | 
					              // 从相册选择或相机拍摄
 | 
				
			||||||
 | 
					              sourceType: that.sourceType[that.sourceTypeIndex],
 | 
				
			||||||
 | 
					              // 最多可以选择的图片数量
 | 
				
			||||||
 | 
					              count: 9,
 | 
				
			||||||
 | 
					              success: (res) => {
 | 
				
			||||||
 | 
					                // 图片的本地文件路径列表
 | 
				
			||||||
 | 
					                that.tempFilePaths = res.tempFilePaths
 | 
				
			||||||
 | 
					                // console.log(res.tempFilePaths)
 | 
				
			||||||
 | 
					                for(let i=0 ;i<that.tempFilePaths.length;i++){
 | 
				
			||||||
 | 
					                  let str = ''
 | 
				
			||||||
 | 
					                  let token = uni.getStorageSync("token")
 | 
				
			||||||
 | 
					                  // console.log('token',token)
 | 
				
			||||||
 | 
					                  let params = {
 | 
				
			||||||
 | 
					                    token:token,
 | 
				
			||||||
 | 
					                  }
 | 
				
			||||||
 | 
					                  // url String 是 开发者服务器 url
 | 
				
			||||||
 | 
					                  // files Aarry 否 需要上传的文件列表。使用 files 时,filePath 和 name 不生效。 5+App
 | 
				
			||||||
 | 
					                  // filePath String 是 要上传文件资源的路径。
 | 
				
			||||||
 | 
					                  // name String 是 文件对应的 key , 开发者在服务器端通过这个 key 可以获取到文件二进制内容
 | 
				
			||||||
 | 
					                  // header Object 否 HTTP 请求 Header, header 中不能设置 Referer
 | 
				
			||||||
 | 
					                  // formData Object 否 HTTP 请求中其他额外的 form data
 | 
				
			||||||
 | 
					                  // success Function 否 接口调用成功的回调函数
 | 
				
			||||||
 | 
					                  // fail Function 否 接口调用失败的回调函数
 | 
				
			||||||
 | 
					                  // complete Function 否 接口调用结束的回调函数(调用成功、失败都会执行)
 | 
				
			||||||
 | 
					                  uni.uploadFile({
 | 
				
			||||||
 | 
					                    url: axios.baseURL + '/admin/file/add',
 | 
				
			||||||
 | 
					                    filePath:that.tempFilePaths[i],
 | 
				
			||||||
 | 
					                    name: 'file',
 | 
				
			||||||
 | 
					                    // formData:params,
 | 
				
			||||||
 | 
					                    header: {
 | 
				
			||||||
 | 
					                      "Content-Type": "multipart/form-data",
 | 
				
			||||||
 | 
					                      'access_token': token,
 | 
				
			||||||
 | 
					                      "Authorization": token
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                    success(res){
 | 
				
			||||||
 | 
					                      str = JSON.stringify(JSON.parse(res.data).data[0]).replace(/\"/g, "")
 | 
				
			||||||
 | 
					                      var temp = {
 | 
				
			||||||
 | 
					                        fileId:str.split(";")[1],
 | 
				
			||||||
 | 
					                        accessUrl:str.split(";")[0],
 | 
				
			||||||
 | 
					                      }
 | 
				
			||||||
 | 
					                      that.imageList = that.imageList.concat(temp)
 | 
				
			||||||
 | 
					                      if (that.imageList.length > 9) {
 | 
				
			||||||
 | 
					                            that.imageList = that.imageList.slice(0, 9)
 | 
				
			||||||
 | 
					                            uni.showToast({
 | 
				
			||||||
 | 
					                              title: '图片最多只能上传9张',
 | 
				
			||||||
 | 
					                              icon: "none"
 | 
				
			||||||
 | 
					                            })
 | 
				
			||||||
 | 
					                           }
 | 
				
			||||||
 | 
					                      that.imgUrl = JSON.stringify(that.imageList)
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                    fail(res) {
 | 
				
			||||||
 | 
					                      console.log('error',res)
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                  })
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					              }
 | 
				
			||||||
 | 
					            })
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            // 预览图片(大图预览)
 | 
				
			||||||
 | 
							    	previewImage: function(e) {
 | 
				
			||||||
 | 
									let that = this
 | 
				
			||||||
 | 
									var current = e.target.dataset.index
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									var tempList = []
 | 
				
			||||||
 | 
									for (var i in that.imageList) {
 | 
				
			||||||
 | 
										tempList.push(that.imageList[i].accessUrl)
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									uni.previewImage({
 | 
				
			||||||
 | 
										// 当前图片的索引、链接
 | 
				
			||||||
 | 
										current: tempList[current],
 | 
				
			||||||
 | 
										urls: tempList,
 | 
				
			||||||
 | 
										longPressActions:{
 | 
				
			||||||
 | 
											itemList: ['发送给朋友', '保存图片', '收藏'],
 | 
				
			||||||
 | 
											success: function(data) {
 | 
				
			||||||
 | 
												// console.log('选中了第' + (data.tapIndex + 1) + '个按钮,第' + (data.index + 1) + '张图片');
 | 
				
			||||||
 | 
											},
 | 
				
			||||||
 | 
											fail: function(err) {
 | 
				
			||||||
 | 
												// console.log(err.errMsg);
 | 
				
			||||||
 | 
											}
 | 
				
			||||||
 | 
										}
 | 
				
			||||||
 | 
									})
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            // 删除照片
 | 
				
			||||||
 | 
								    deleteImage(index){
 | 
				
			||||||
 | 
					            this.imageList.splice(index, 1);
 | 
				
			||||||
 | 
					          },
 | 
				
			||||||
 | 
					          report(){
 | 
				
			||||||
 | 
								          let arr = [] ;
 | 
				
			||||||
 | 
					                if(!this.baseInfo.content){
 | 
				
			||||||
 | 
					                    this.showModel('请填写活动总结')
 | 
				
			||||||
 | 
					                    return false
 | 
				
			||||||
 | 
					                };
 | 
				
			||||||
 | 
					                  this.imageList.map((e)=>{
 | 
				
			||||||
 | 
					                    arr.push(e.fileId) ;
 | 
				
			||||||
 | 
					                  })
 | 
				
			||||||
 | 
					                this.baseInfo.fileIds = arr ;
 | 
				
			||||||
 | 
					                this.$instance.post(`/app/apppartyreport/log-add`,this.baseInfo,null).then(res => {
 | 
				
			||||||
 | 
					                    if (res.code == 0 ) {
 | 
				
			||||||
 | 
					                        uni.showToast({
 | 
				
			||||||
 | 
					                            title: '提交',
 | 
				
			||||||
 | 
					                            icon: 'success',
 | 
				
			||||||
 | 
					                            duration: 2000
 | 
				
			||||||
 | 
					                        })
 | 
				
			||||||
 | 
					                        uni.navigateBack({
 | 
				
			||||||
 | 
					                             delta: 1
 | 
				
			||||||
 | 
					                        });
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                }).catch(err=>{
 | 
				
			||||||
 | 
					                    uni.showToast({
 | 
				
			||||||
 | 
					                    title: err,
 | 
				
			||||||
 | 
					                    icon: "none",
 | 
				
			||||||
 | 
					                    duration:1000
 | 
				
			||||||
 | 
					                    })
 | 
				
			||||||
 | 
					                })
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          logReport(){
 | 
				
			||||||
 | 
					            const userInfo = uni.getStorageSync("userInfo") ;
 | 
				
			||||||
 | 
					            this.$instance.post(`/app/apppartyreport/log-report?partyId=${userInfo.partyId}&reportId=${this.baseInfo.reportId}`)
 | 
				
			||||||
 | 
					              .then((res)=>{
 | 
				
			||||||
 | 
					                  if(res.code==0&&res.data){
 | 
				
			||||||
 | 
					                      this.baseInfo.content = res.data.content ;
 | 
				
			||||||
 | 
					                      this.baseInfo.fileIds = res.data.fileIds ;
 | 
				
			||||||
 | 
					                      res.data.files.map((e)=>{
 | 
				
			||||||
 | 
					                        this.imageList.push({accessUrl:e.accessUrl,fileId:e.id});
 | 
				
			||||||
 | 
					                      })
 | 
				
			||||||
 | 
					                  }
 | 
				
			||||||
 | 
					              })
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					</script>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<style lang="scss" scoped>
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					.page{
 | 
				
			||||||
 | 
					    width: 100%;
 | 
				
			||||||
 | 
					    height: 100%;
 | 
				
			||||||
 | 
					    header{
 | 
				
			||||||
 | 
					        width: 100%;
 | 
				
			||||||
 | 
					        height: 112rpx;
 | 
				
			||||||
 | 
					        background-color: #E60012;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    .form{
 | 
				
			||||||
 | 
					        width: 100%;
 | 
				
			||||||
 | 
					        padding: 32rpx;
 | 
				
			||||||
 | 
					        box-sizing: border-box;
 | 
				
			||||||
 | 
					        margin-top: -100rpx;
 | 
				
			||||||
 | 
					        .main{
 | 
				
			||||||
 | 
					             background-color: #fff;
 | 
				
			||||||
 | 
					             border-radius:8rpx;
 | 
				
			||||||
 | 
					             padding: 16rpx;
 | 
				
			||||||
 | 
					             box-sizing: border-box;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        .basic-item{
 | 
				
			||||||
 | 
					            font-size: 32rpx;
 | 
				
			||||||
 | 
					            justify-content: space-between;
 | 
				
			||||||
 | 
					            width:100%;
 | 
				
			||||||
 | 
					            height:112rpx;
 | 
				
			||||||
 | 
					            padding:32rpx 32rpx 32rpx 12rpx;
 | 
				
			||||||
 | 
					            box-sizing: border-box;
 | 
				
			||||||
 | 
					            background-color:#fff;
 | 
				
			||||||
 | 
					            border-bottom:1rpx solid #eee;
 | 
				
			||||||
 | 
					            input{
 | 
				
			||||||
 | 
					                text-align: right;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            .wid-110{
 | 
				
			||||||
 | 
					                width:214rpx;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            .skill-text{
 | 
				
			||||||
 | 
					                max-width:432rpx;
 | 
				
			||||||
 | 
					                text-align:right;
 | 
				
			||||||
 | 
					                display:inline-block;
 | 
				
			||||||
 | 
					                overflow: hidden;
 | 
				
			||||||
 | 
					                text-overflow: ellipsis;
 | 
				
			||||||
 | 
					                white-space: nowrap;
 | 
				
			||||||
 | 
					                font-size:30rpx;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            .picker{
 | 
				
			||||||
 | 
					                justify-content: flex-end;
 | 
				
			||||||
 | 
					                align-items: center;
 | 
				
			||||||
 | 
					                color: #999999;
 | 
				
			||||||
 | 
					                font-size: 32rpx;
 | 
				
			||||||
 | 
					                background-color: #FFFFFF;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            .picker > .AiArea{
 | 
				
			||||||
 | 
					                background-color: #fff !important;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            .image{
 | 
				
			||||||
 | 
					                width: 32rpx;
 | 
				
			||||||
 | 
					                height: 32rpx;
 | 
				
			||||||
 | 
					                vertical-align: middle;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            .wei-text{
 | 
				
			||||||
 | 
					                width:40%;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            .msg-value {
 | 
				
			||||||
 | 
					            width: 60%;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            .msg-btn {
 | 
				
			||||||
 | 
					            width: 160px;
 | 
				
			||||||
 | 
					            text-align: right;
 | 
				
			||||||
 | 
					            background-color:#fff !important;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            
 | 
				
			||||||
 | 
					            button {
 | 
				
			||||||
 | 
					            font-size: 28rpx;
 | 
				
			||||||
 | 
					            background-color: #fff;
 | 
				
			||||||
 | 
					            line-height:48rpx;
 | 
				
			||||||
 | 
					            padding:0;
 | 
				
			||||||
 | 
					            
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            
 | 
				
			||||||
 | 
					            button::after {
 | 
				
			||||||
 | 
					            border: 0;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            
 | 
				
			||||||
 | 
					            .button-hover {
 | 
				
			||||||
 | 
					            background-color: #fff;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            
 | 
				
			||||||
 | 
					            button[disabled] {
 | 
				
			||||||
 | 
					            background-color: #fff  !important;
 | 
				
			||||||
 | 
					            font-size: 28rpx;
 | 
				
			||||||
 | 
					            border-radius: 0;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        /* 上传照片 */
 | 
				
			||||||
 | 
					        .uni-uploader {
 | 
				
			||||||
 | 
					            flex: 1;
 | 
				
			||||||
 | 
					            flex-direction: column;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        .uni-uploader-head {
 | 
				
			||||||
 | 
					            display: flex;
 | 
				
			||||||
 | 
					            flex-direction: row;
 | 
				
			||||||
 | 
					            justify-content: space-between;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        .uni-uploader-info {
 | 
				
			||||||
 | 
					            color: #B2B2B2;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        .uni-uploader-body {
 | 
				
			||||||
 | 
					            margin-top: 16rpx;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        .uni-uploader__files {
 | 
				
			||||||
 | 
					            display: flex;
 | 
				
			||||||
 | 
					            flex-direction: row;
 | 
				
			||||||
 | 
					            flex-wrap: wrap;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        .uni-uploader__file {
 | 
				
			||||||
 | 
					            margin-right: 10rpx;
 | 
				
			||||||
 | 
					            margin-bottom: 20rpx;
 | 
				
			||||||
 | 
					            width: 160rpx;
 | 
				
			||||||
 | 
					            height: 160rpx;
 | 
				
			||||||
 | 
					            position: relative;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        .uni-uploader__img {
 | 
				
			||||||
 | 
					            display: block;
 | 
				
			||||||
 | 
					            width: 160rpx;
 | 
				
			||||||
 | 
					            height: 160rpx;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        .pre-label{
 | 
				
			||||||
 | 
					            font-size: 80rpx;
 | 
				
			||||||
 | 
					            color: #DDDDDD;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        .add-image{
 | 
				
			||||||
 | 
					            color: #DDDDDD;
 | 
				
			||||||
 | 
					            font-size: 24rpx;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        .pre-view{
 | 
				
			||||||
 | 
					            width: 160rpx;
 | 
				
			||||||
 | 
					            height: 160rpx;
 | 
				
			||||||
 | 
					            display: flex;
 | 
				
			||||||
 | 
					            flex-direction: column;
 | 
				
			||||||
 | 
					            justify-content: flex-start;
 | 
				
			||||||
 | 
					            align-items: center;
 | 
				
			||||||
 | 
					            border-radius: 8rpx;
 | 
				
			||||||
 | 
					            border: 2rpx solid #DDDDDD;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        .icon{
 | 
				
			||||||
 | 
					            position: absolute;
 | 
				
			||||||
 | 
					            top: -15rpx;
 | 
				
			||||||
 | 
					            right: -10rpx;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    .report{
 | 
				
			||||||
 | 
					        position: fixed;
 | 
				
			||||||
 | 
					        left:0;
 | 
				
			||||||
 | 
					        bottom: 0;
 | 
				
			||||||
 | 
					        height:112rpx;
 | 
				
			||||||
 | 
					        line-height: 112rpx;
 | 
				
			||||||
 | 
					        font-size:32rpx;
 | 
				
			||||||
 | 
					        text-align: center;
 | 
				
			||||||
 | 
					        background:rgba(230,0,18,1);
 | 
				
			||||||
 | 
					        color:#fff;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					</style>
 | 
				
			||||||
							
								
								
									
										36
									
								
								src/project/pingchang/AppPartyReport/mixins/mixin.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										36
									
								
								src/project/pingchang/AppPartyReport/mixins/mixin.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,36 @@
 | 
				
			|||||||
 | 
					export default {
 | 
				
			||||||
 | 
					  methods:{
 | 
				
			||||||
 | 
					    handlerCall({contactPerson,contactPhone}){
 | 
				
			||||||
 | 
					      uni.showModal({
 | 
				
			||||||
 | 
					        title:contactPerson,
 | 
				
			||||||
 | 
					        content:contactPhone,
 | 
				
			||||||
 | 
					        confirmText:"拨打",
 | 
				
			||||||
 | 
					        cancelText:"复制",
 | 
				
			||||||
 | 
					        confirmColor:"#135AB8",
 | 
				
			||||||
 | 
					        success(res){
 | 
				
			||||||
 | 
					          if (res.confirm) {
 | 
				
			||||||
 | 
					            uni.makePhoneCall({
 | 
				
			||||||
 | 
					              phoneNumber: contactPhone
 | 
				
			||||||
 | 
					            });
 | 
				
			||||||
 | 
					          } else if (res.cancel) {
 | 
				
			||||||
 | 
					            uni.setClipboardData({
 | 
				
			||||||
 | 
					              data:contactPhone,
 | 
				
			||||||
 | 
					            })
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					      })
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    goToLog(e){
 | 
				
			||||||
 | 
					      uni.navigateTo({
 | 
				
			||||||
 | 
					        url:`/subPages/partyReport/fillLog?reportId=${e.id}&signupId=${e.signupId}&signupContent=${e.signupContent}`
 | 
				
			||||||
 | 
					      })
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    signUp(e){
 | 
				
			||||||
 | 
					      uni.navigateTo({
 | 
				
			||||||
 | 
					        url:`/subPages/partyReport/signUp?reportId=${e.id}`
 | 
				
			||||||
 | 
					      })
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										497
									
								
								src/project/pingchang/AppPartyReport/myList.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										497
									
								
								src/project/pingchang/AppPartyReport/myList.vue
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,497 @@
 | 
				
			|||||||
 | 
					<template>
 | 
				
			||||||
 | 
					  <view class="page">
 | 
				
			||||||
 | 
					    <view v-if="isShow" style="height:100%;width:100%">
 | 
				
			||||||
 | 
					      <ul class="nav_bar">
 | 
				
			||||||
 | 
					        <li v-for="(e,index) in navList" :key="index" :class="{active:navId==e.id}" @click="navClick(e.id)">
 | 
				
			||||||
 | 
					          <span>{{ e.name }}</span>
 | 
				
			||||||
 | 
					          <span v-if="e.id==4">({{ total }})</span>
 | 
				
			||||||
 | 
					        </li>
 | 
				
			||||||
 | 
					      </ul>
 | 
				
			||||||
 | 
					      <div class="party_header" v-if="list.length > 0">
 | 
				
			||||||
 | 
					        <view class="search-box">
 | 
				
			||||||
 | 
					          <view class="search-input flex-row" @click="changeSearchBox">
 | 
				
			||||||
 | 
					            <image src="https://cdn.cunwuyun.cn/img/search-red.svg"/>
 | 
				
			||||||
 | 
					            <text>{{ title || '请输入活动名称或活动地点' }}</text>
 | 
				
			||||||
 | 
					          </view>
 | 
				
			||||||
 | 
					        </view>
 | 
				
			||||||
 | 
					      </div>
 | 
				
			||||||
 | 
					      <div class="party_header" v-if="list.length == 0" style="height: auto;">
 | 
				
			||||||
 | 
					        <view class="search-box">
 | 
				
			||||||
 | 
					          <view class="search-input flex-row" @click="changeSearchBox">
 | 
				
			||||||
 | 
					            <image src="https://cdn.cunwuyun.cn/img/search-red.svg"/>
 | 
				
			||||||
 | 
					            <text>{{ title || '请输入活动名称或活动地点' }}</text>
 | 
				
			||||||
 | 
					          </view>
 | 
				
			||||||
 | 
					        </view>
 | 
				
			||||||
 | 
					      </div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      <view class="list_content" v-if="list.length > 0">
 | 
				
			||||||
 | 
					        <ul class="list_div">
 | 
				
			||||||
 | 
					          <li v-for="(e,index) in list" :key="index">
 | 
				
			||||||
 | 
					            <view class="up" @click="goToDetail(e)">
 | 
				
			||||||
 | 
					              <h3>{{ e.title }}</h3>
 | 
				
			||||||
 | 
					              <view class="info">
 | 
				
			||||||
 | 
					                <span>活动时间:</span>
 | 
				
			||||||
 | 
					                <p>{{ e.beginTime }}至<br/>{{ e.endTime }}</p>
 | 
				
			||||||
 | 
					              </view>
 | 
				
			||||||
 | 
					              <view class="info">
 | 
				
			||||||
 | 
					                <span>活动地点:</span>
 | 
				
			||||||
 | 
					                <p>{{ e.address }}</p>
 | 
				
			||||||
 | 
					              </view>
 | 
				
			||||||
 | 
					            </view>
 | 
				
			||||||
 | 
					            <view class="btn">
 | 
				
			||||||
 | 
					              <view class="button callBtn"
 | 
				
			||||||
 | 
					                    :class="{color4:e.actionStatus==0,color5:e.actionStatus==1&&e.signupStatus==1 || e.actionStatus==2&&e.signupStatus==1}"
 | 
				
			||||||
 | 
					                    @click="handlerCall(e)">
 | 
				
			||||||
 | 
					                <span>呼叫联系人</span>
 | 
				
			||||||
 | 
					              </view>
 | 
				
			||||||
 | 
					              <view class="button color4"
 | 
				
			||||||
 | 
					                    v-if="e.logStatus==0 && e.nowUsersignupStatus==1 && ['1','2'].includes(e.actionStatus)">
 | 
				
			||||||
 | 
					                <span @click="goToLog(e)">填写日志</span>
 | 
				
			||||||
 | 
					              </view>
 | 
				
			||||||
 | 
					              <view class="button color4"
 | 
				
			||||||
 | 
					                    v-if="['1','3'].includes(e.logStatus)&& e.nowUsersignupStatus==1 && ['1','2'].includes(e.actionStatus)">
 | 
				
			||||||
 | 
					                <span @click="goToLog(e)">编辑日志</span>
 | 
				
			||||||
 | 
					              </view>
 | 
				
			||||||
 | 
					            </view>
 | 
				
			||||||
 | 
					            <p class="tip" :class="{color1:e.actionStatus==0,color2:e.actionStatus==1,color3:e.actionStatus==2}">
 | 
				
			||||||
 | 
					              <span v-if="e.actionStatus==0">未开始</span>
 | 
				
			||||||
 | 
					              <span v-if="e.actionStatus==1">进行中</span>
 | 
				
			||||||
 | 
					              <span v-if="e.actionStatus==2">已结束</span>
 | 
				
			||||||
 | 
					            </p>
 | 
				
			||||||
 | 
					          </li>
 | 
				
			||||||
 | 
					        </ul>
 | 
				
			||||||
 | 
					      </view>
 | 
				
			||||||
 | 
					      <AiEmpty v-if="list.length==0" />
 | 
				
			||||||
 | 
					    </view>
 | 
				
			||||||
 | 
					    <view v-if="!isShow" class="search-input">
 | 
				
			||||||
 | 
					      <view class="input-box flex-row">
 | 
				
			||||||
 | 
					        <input type="text" class="input" placeholder="请输入活动名称或活动地点" focus="false" v-model="title"/>
 | 
				
			||||||
 | 
					        <image class="sousuo" src="https://cdn.cunwuyun.cn/img/search-active.svg"/>
 | 
				
			||||||
 | 
					        <image v-if="title" @tap="clearInput" class="clear" src="https://cdn.cunwuyun.cn/img/empty-Input.svg"/>
 | 
				
			||||||
 | 
					        <view class="search-word" @click="getList()">搜索</view>
 | 
				
			||||||
 | 
					      </view>
 | 
				
			||||||
 | 
					    </view>
 | 
				
			||||||
 | 
					  </view>
 | 
				
			||||||
 | 
					</template>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<script>
 | 
				
			||||||
 | 
					import mixins from "./mixins/mixin";
 | 
				
			||||||
 | 
					import {mapState} from 'vuex'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export default {
 | 
				
			||||||
 | 
					  name: "partyReportList",
 | 
				
			||||||
 | 
					  mixins: [mixins],
 | 
				
			||||||
 | 
					  data() {
 | 
				
			||||||
 | 
					    return {
 | 
				
			||||||
 | 
					      navId: 0,
 | 
				
			||||||
 | 
					      list: [],
 | 
				
			||||||
 | 
					      title: '',
 | 
				
			||||||
 | 
					      isShow: true,
 | 
				
			||||||
 | 
					      applyStatusArr: [],
 | 
				
			||||||
 | 
					      activeTypeArr: [],
 | 
				
			||||||
 | 
					      actionStatus: '',
 | 
				
			||||||
 | 
					      signupStatus: '',
 | 
				
			||||||
 | 
					      navList: [
 | 
				
			||||||
 | 
					        {name: "全部活动", id: 3},
 | 
				
			||||||
 | 
					        {name: "日志未提交", id: 4}
 | 
				
			||||||
 | 
					      ],
 | 
				
			||||||
 | 
					      total: 0
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  computed: {
 | 
				
			||||||
 | 
					    ...mapState(['user'])
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  onLoad(options) {
 | 
				
			||||||
 | 
					    uni.setNavigationBarColor({
 | 
				
			||||||
 | 
					      frontColor: "#ffffff",
 | 
				
			||||||
 | 
					      backgroundColor: "#e60012",
 | 
				
			||||||
 | 
					    })
 | 
				
			||||||
 | 
					    this.navId = options.id;
 | 
				
			||||||
 | 
					    this.$dict.load('partyReportActionStatus', 'partyReportSignupStatus').then(() => {
 | 
				
			||||||
 | 
					      this.$dict.getDict('partyReportActionStatus').map(i => {
 | 
				
			||||||
 | 
					        this.activeTypeArr.push(i.dictName)
 | 
				
			||||||
 | 
					      });
 | 
				
			||||||
 | 
					      this.$dict.getDict('partyReportSignupStatus').map(i => {
 | 
				
			||||||
 | 
					        this.applyStatusArr.push(i.dictName)
 | 
				
			||||||
 | 
					      })
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					    this.getList();
 | 
				
			||||||
 | 
					    this.getToatal();
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  filters: {
 | 
				
			||||||
 | 
					    timeVal(val) {
 | 
				
			||||||
 | 
					      if (val) {
 | 
				
			||||||
 | 
					        return val.substring(0, 16)
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  onShow() {
 | 
				
			||||||
 | 
					    this.getList();
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  methods: {
 | 
				
			||||||
 | 
					    getList() {
 | 
				
			||||||
 | 
					      this.$instance.post(`/app/apppartyreport/list-xcx?listType=${this.navId}&partyId=${this.user.partyId}&partyOrgId=${this.user.partyOrgId}&title=${this.title}&size=${10000}`, null, {}).then(res => {
 | 
				
			||||||
 | 
					        if (res.code == 0) {
 | 
				
			||||||
 | 
					          if (res.data.records == null) {
 | 
				
			||||||
 | 
					            this.list = [];
 | 
				
			||||||
 | 
					          } else {
 | 
				
			||||||
 | 
					            this.list = res.data.records;
 | 
				
			||||||
 | 
					            if (this.navId == 4) {
 | 
				
			||||||
 | 
					              this.total = res.data.total;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
 | 
					          this.isShow = true;
 | 
				
			||||||
 | 
					        } else {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					      }).catch(err => {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      })
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    getToatal() {
 | 
				
			||||||
 | 
					      this.$instance.post(`/app/apppartyreport/list-xcx?listType=4&partyId=${this.user.partyId}&partyOrgId=${this.user.partyOrgId}&title=${this.title}&size=${10000}`, null, {}).then(res => {
 | 
				
			||||||
 | 
					        if (res.code == 0) {
 | 
				
			||||||
 | 
					          if (res.data.records == null) {
 | 
				
			||||||
 | 
					            this.total = 0
 | 
				
			||||||
 | 
					          } else {
 | 
				
			||||||
 | 
					            this.total = res.data.total;
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
 | 
					        } else {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					      }).catch(err => {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      })
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    changeSearchBox() {
 | 
				
			||||||
 | 
					      this.isShow = false
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    clearInput() {
 | 
				
			||||||
 | 
					      this.title = ''
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    bindPickerChange(e) {
 | 
				
			||||||
 | 
					      this.actionStatus = e.detail.value;
 | 
				
			||||||
 | 
					      this.getList();
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    bindStatusChange(e) {
 | 
				
			||||||
 | 
					      this.signupStatus = e.detail.value;
 | 
				
			||||||
 | 
					      this.getList();
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    navClick(id) {
 | 
				
			||||||
 | 
					      this.navId = id;
 | 
				
			||||||
 | 
					      this.getList();
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    goToDetail(e) {
 | 
				
			||||||
 | 
					      uni.navigateTo({
 | 
				
			||||||
 | 
					        url: `./partyDetail?id=${e.id}&listType=${this.navId}`
 | 
				
			||||||
 | 
					      })
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					</script>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<style lang="scss" scoped>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.page {
 | 
				
			||||||
 | 
					  width: 100%;
 | 
				
			||||||
 | 
					  height: 100%;
 | 
				
			||||||
 | 
					  overflow: hidden;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  .party_header {
 | 
				
			||||||
 | 
					    background: #E60012;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    .search-box {
 | 
				
			||||||
 | 
					      width: 100%;
 | 
				
			||||||
 | 
					      padding: 24px 32px;
 | 
				
			||||||
 | 
					      box-sizing: border-box;
 | 
				
			||||||
 | 
					      background: #E60012;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      .search-input {
 | 
				
			||||||
 | 
					        line-height: 64px;
 | 
				
			||||||
 | 
					        width: 100%;
 | 
				
			||||||
 | 
					        height: 100%;
 | 
				
			||||||
 | 
					        border-radius: 32px;
 | 
				
			||||||
 | 
					        background: #CE0010;
 | 
				
			||||||
 | 
					        color: #fff;
 | 
				
			||||||
 | 
					        font-size: 26px;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        text {
 | 
				
			||||||
 | 
					          white-space: nowrap;
 | 
				
			||||||
 | 
					          overflow: hidden;
 | 
				
			||||||
 | 
					          color: #fff;
 | 
				
			||||||
 | 
					          text-overflow: ellipsis;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        image {
 | 
				
			||||||
 | 
					          width: 40px;
 | 
				
			||||||
 | 
					          height: 40px;
 | 
				
			||||||
 | 
					          margin: 8px 8px 8px 24px;
 | 
				
			||||||
 | 
					          position: relative;
 | 
				
			||||||
 | 
					          top: 6px;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  .nav_bar {
 | 
				
			||||||
 | 
					    width: 100%;
 | 
				
			||||||
 | 
					    height: 112px;
 | 
				
			||||||
 | 
					    background: #E60012;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    li {
 | 
				
			||||||
 | 
					      width: 50%;
 | 
				
			||||||
 | 
					      float: left;
 | 
				
			||||||
 | 
					      height: 90px;
 | 
				
			||||||
 | 
					      line-height: 90px;
 | 
				
			||||||
 | 
					      text-align: center;
 | 
				
			||||||
 | 
					      color: #fff;
 | 
				
			||||||
 | 
					      font-size: 28px;
 | 
				
			||||||
 | 
					      opacity: 0.8;
 | 
				
			||||||
 | 
					      position: relative;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      &:after {
 | 
				
			||||||
 | 
					        content: '';
 | 
				
			||||||
 | 
					        position: absolute;
 | 
				
			||||||
 | 
					        bottom: 0;
 | 
				
			||||||
 | 
					        left: 0;
 | 
				
			||||||
 | 
					        right: 0;
 | 
				
			||||||
 | 
					        margin: auto;
 | 
				
			||||||
 | 
					        height: 4px;
 | 
				
			||||||
 | 
					        width: 40px;
 | 
				
			||||||
 | 
					        background-color: transparent;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    li.active {
 | 
				
			||||||
 | 
					      opacity: 1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      &:after {
 | 
				
			||||||
 | 
					        background-color: #fff;
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  .search-input {
 | 
				
			||||||
 | 
					    .input-box {
 | 
				
			||||||
 | 
					      width: 100%;
 | 
				
			||||||
 | 
					      height: 112px;
 | 
				
			||||||
 | 
					      background-color: #fff;
 | 
				
			||||||
 | 
					      padding: 24px 32px;
 | 
				
			||||||
 | 
					      box-sizing: border-box;
 | 
				
			||||||
 | 
					      position: relative;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      .sousuo {
 | 
				
			||||||
 | 
					        position: absolute;
 | 
				
			||||||
 | 
					        top: 35px;
 | 
				
			||||||
 | 
					        left: 60px;
 | 
				
			||||||
 | 
					        width: 40px;
 | 
				
			||||||
 | 
					        height: 40px;
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      .input {
 | 
				
			||||||
 | 
					        background-color: #F3F3F3;
 | 
				
			||||||
 | 
					        width: 598px;
 | 
				
			||||||
 | 
					        height: 64px;
 | 
				
			||||||
 | 
					        color: #999999;
 | 
				
			||||||
 | 
					        font-size: 26px;
 | 
				
			||||||
 | 
					        margin-left: 8px;
 | 
				
			||||||
 | 
					        border-radius: 32px;
 | 
				
			||||||
 | 
					        padding-left: 70px;
 | 
				
			||||||
 | 
					        padding-right: 60px;
 | 
				
			||||||
 | 
					        box-sizing: border-box;
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      .clear {
 | 
				
			||||||
 | 
					        width: 32px;
 | 
				
			||||||
 | 
					        height: 32px;
 | 
				
			||||||
 | 
					        position: absolute;
 | 
				
			||||||
 | 
					        top: 40px;
 | 
				
			||||||
 | 
					        right: 130px;
 | 
				
			||||||
 | 
					        z-index: 10;
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      .search-word {
 | 
				
			||||||
 | 
					        font-size: 28px;
 | 
				
			||||||
 | 
					        color: #135AB8;
 | 
				
			||||||
 | 
					        line-height: 60px;
 | 
				
			||||||
 | 
					        margin-left: 20px;
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  .list_content {
 | 
				
			||||||
 | 
					    width: calc(100% - 64rpx);
 | 
				
			||||||
 | 
					    height: calc(100% - 300rpx);
 | 
				
			||||||
 | 
					    padding: 32px 32px 0 32px;
 | 
				
			||||||
 | 
					    overflow: auto;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    .list_div {
 | 
				
			||||||
 | 
					      width: 100%;
 | 
				
			||||||
 | 
					      height: 100%;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      li {
 | 
				
			||||||
 | 
					        width: 100%;
 | 
				
			||||||
 | 
					        height: 426px;
 | 
				
			||||||
 | 
					        background-color: #fff;
 | 
				
			||||||
 | 
					        border-radius: 4px;
 | 
				
			||||||
 | 
					        margin-bottom: 32px;
 | 
				
			||||||
 | 
					        position: relative;
 | 
				
			||||||
 | 
					        overflow: hidden;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        .up {
 | 
				
			||||||
 | 
					          height: 330px;
 | 
				
			||||||
 | 
					          width: 100%;
 | 
				
			||||||
 | 
					          padding: 32px;
 | 
				
			||||||
 | 
					          box-sizing: border-box;
 | 
				
			||||||
 | 
					          border-bottom: 2px solid #eeeeee;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          h3 {
 | 
				
			||||||
 | 
					            color: #333333;
 | 
				
			||||||
 | 
					            font-size: 32px;
 | 
				
			||||||
 | 
					            font-weight: bold;
 | 
				
			||||||
 | 
					            word-break: break-all;
 | 
				
			||||||
 | 
					            width: 90%;
 | 
				
			||||||
 | 
					            display: -webkit-box;
 | 
				
			||||||
 | 
					            -webkit-line-clamp: 1;
 | 
				
			||||||
 | 
					            overflow: hidden;
 | 
				
			||||||
 | 
					            text-overflow: ellipsis;
 | 
				
			||||||
 | 
					            -webkit-box-orient: vertical;
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          .info {
 | 
				
			||||||
 | 
					            width: 100%;
 | 
				
			||||||
 | 
					            display: flex;
 | 
				
			||||||
 | 
					            font-size: 30px;
 | 
				
			||||||
 | 
					            margin-top: 32px;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            span {
 | 
				
			||||||
 | 
					              width: 150px;
 | 
				
			||||||
 | 
					              color: rgba(153, 153, 153, 1);
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            p {
 | 
				
			||||||
 | 
					              flex: 1;
 | 
				
			||||||
 | 
					              color: #343D65;
 | 
				
			||||||
 | 
					              word-break: break-all;
 | 
				
			||||||
 | 
					              display: -webkit-box;
 | 
				
			||||||
 | 
					              -webkit-line-clamp: 2;
 | 
				
			||||||
 | 
					              overflow: hidden;
 | 
				
			||||||
 | 
					              text-overflow: ellipsis;
 | 
				
			||||||
 | 
					              -webkit-box-orient: vertical;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        .btn {
 | 
				
			||||||
 | 
					          height: 96px;
 | 
				
			||||||
 | 
					          display: flex;
 | 
				
			||||||
 | 
					          align-items: center;
 | 
				
			||||||
 | 
					          justify-content: flex-end;
 | 
				
			||||||
 | 
					          padding: 0 32px;
 | 
				
			||||||
 | 
					          box-sizing: border-box;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          .button {
 | 
				
			||||||
 | 
					            width: 152px;
 | 
				
			||||||
 | 
					            height: 56px;
 | 
				
			||||||
 | 
					            border-radius: 28px;
 | 
				
			||||||
 | 
					            color: #1365DD;
 | 
				
			||||||
 | 
					            text-align: center;
 | 
				
			||||||
 | 
					            font-size: 28px;
 | 
				
			||||||
 | 
					            line-height: 56px;
 | 
				
			||||||
 | 
					            margin-left: 16px;
 | 
				
			||||||
 | 
					            border: 2px solid rgba(19, 101, 221, 1);
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          .callBtn {
 | 
				
			||||||
 | 
					            width: 196px !important;
 | 
				
			||||||
 | 
					            margin-left: 0 !important;
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          .color4 {
 | 
				
			||||||
 | 
					            color: #1365DD;
 | 
				
			||||||
 | 
					            border: 2px solid rgba(19, 101, 221, 1);
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          .color5 {
 | 
				
			||||||
 | 
					            color: #606060;
 | 
				
			||||||
 | 
					            border: 2px solid #E1E1E1;
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        .tip {
 | 
				
			||||||
 | 
					          position: absolute;
 | 
				
			||||||
 | 
					          width: 200px;
 | 
				
			||||||
 | 
					          height: 56px;
 | 
				
			||||||
 | 
					          text-align: center;
 | 
				
			||||||
 | 
					          line-height: 56px;
 | 
				
			||||||
 | 
					          right: -50rpx;
 | 
				
			||||||
 | 
					          -webkit-transform: rotate(45deg);
 | 
				
			||||||
 | 
					          -ms-transform: rotate(45deg);
 | 
				
			||||||
 | 
					          transform: rotate(45deg);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          top: 20px;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          &.color1 {
 | 
				
			||||||
 | 
					            color: #ff8822;
 | 
				
			||||||
 | 
					            background-color: #FFF3E9;
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          &.color2 {
 | 
				
			||||||
 | 
					            color: #5A98F2;
 | 
				
			||||||
 | 
					            background-color: #EEF5FF;
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          &.color3 {
 | 
				
			||||||
 | 
					            color: #999999;
 | 
				
			||||||
 | 
					            background-color: #F2F2F2;
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  .no-affairs {
 | 
				
			||||||
 | 
					    width: 100%;
 | 
				
			||||||
 | 
					    height: calc(100% - 210rpx);
 | 
				
			||||||
 | 
					    display: flex;
 | 
				
			||||||
 | 
					    justify-content: center;
 | 
				
			||||||
 | 
					    align-items: center;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  .footer {
 | 
				
			||||||
 | 
					    width: 100%;
 | 
				
			||||||
 | 
					    position: fixed;
 | 
				
			||||||
 | 
					    left: 0;
 | 
				
			||||||
 | 
					    bottom: 0;
 | 
				
			||||||
 | 
					    height: 104px;
 | 
				
			||||||
 | 
					    background: rgba(255, 228, 221, 1);
 | 
				
			||||||
 | 
					    color: #D73D3D;
 | 
				
			||||||
 | 
					    display: flex;
 | 
				
			||||||
 | 
					    justify-content: center;
 | 
				
			||||||
 | 
					    align-items: center;
 | 
				
			||||||
 | 
					    font-size: 32px;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    p {
 | 
				
			||||||
 | 
					      width: 50%;
 | 
				
			||||||
 | 
					      height: 100%;
 | 
				
			||||||
 | 
					      display: flex;
 | 
				
			||||||
 | 
					      justify-content: center;
 | 
				
			||||||
 | 
					      align-items: center;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      &.active {
 | 
				
			||||||
 | 
					        background-color: #D73D3D;
 | 
				
			||||||
 | 
					        color: #ffffff;
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					</style>
 | 
				
			||||||
							
								
								
									
										169
									
								
								src/project/pingchang/AppPartyReport/myLog.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										169
									
								
								src/project/pingchang/AppPartyReport/myLog.vue
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,169 @@
 | 
				
			|||||||
 | 
					<template>
 | 
				
			||||||
 | 
					  <view class="page">
 | 
				
			||||||
 | 
					    <header>
 | 
				
			||||||
 | 
					      <p class="title">{{ title }}</p>
 | 
				
			||||||
 | 
					      <view class="time">
 | 
				
			||||||
 | 
					        <span>提交时间:</span>
 | 
				
			||||||
 | 
					        <span>{{ baseInfo.submitTime }}</span>
 | 
				
			||||||
 | 
					      </view>
 | 
				
			||||||
 | 
					    </header>
 | 
				
			||||||
 | 
					    <view class="mylog_main">
 | 
				
			||||||
 | 
					      <view class="mylog_main_summary">
 | 
				
			||||||
 | 
					        <p class="word">活动总结</p>
 | 
				
			||||||
 | 
					        <p class="value">{{ baseInfo.content }}</p>
 | 
				
			||||||
 | 
					      </view>
 | 
				
			||||||
 | 
					      <view class="imageList">
 | 
				
			||||||
 | 
					        <p class="word">活动照片</p>
 | 
				
			||||||
 | 
					        <image v-for="(e, index) in baseInfo.files" :key="index" @click="previewImage(baseInfo.files,index)"
 | 
				
			||||||
 | 
					               mode="aspectFill" :src="e.accessUrl"></image>
 | 
				
			||||||
 | 
					      </view>
 | 
				
			||||||
 | 
					    </view>
 | 
				
			||||||
 | 
					    <view class="editLog" @click="editLog">
 | 
				
			||||||
 | 
					      <div class="iconfont"></div>
 | 
				
			||||||
 | 
					    </view>
 | 
				
			||||||
 | 
					  </view>
 | 
				
			||||||
 | 
					</template>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<script>
 | 
				
			||||||
 | 
					export default {
 | 
				
			||||||
 | 
					  name: "myLog",
 | 
				
			||||||
 | 
					  data() {
 | 
				
			||||||
 | 
					    return {
 | 
				
			||||||
 | 
					      signupId: '',
 | 
				
			||||||
 | 
					      baseInfo: {},
 | 
				
			||||||
 | 
					      title: ''
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  onLoad(options) {
 | 
				
			||||||
 | 
					    uni.setNavigationBarColor({
 | 
				
			||||||
 | 
					      frontColor: "#ffffff",
 | 
				
			||||||
 | 
					      backgroundColor: "#e60012",
 | 
				
			||||||
 | 
					    })
 | 
				
			||||||
 | 
					    this.signupId = options.signupId;
 | 
				
			||||||
 | 
					    this.title = options.title;
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  methods: {
 | 
				
			||||||
 | 
					    editLog() {
 | 
				
			||||||
 | 
					      uni.navigateTo({
 | 
				
			||||||
 | 
					        url: `./fillLog?reportId=${this.baseInfo.reportId}&signupId=${this.signupId}&signupContent=${this.baseInfo.signupContent}`
 | 
				
			||||||
 | 
					      })
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    searchDetail() {
 | 
				
			||||||
 | 
					      this.$instance.post(`/app/apppartyreport/log?id=${this.signupId}`).then(res => {
 | 
				
			||||||
 | 
					        if (res.code == 0) {
 | 
				
			||||||
 | 
					          this.baseInfo = {...res.data};
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					      })
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    previewImage(arr, index) {
 | 
				
			||||||
 | 
					      let list = [];
 | 
				
			||||||
 | 
					      let current = index;
 | 
				
			||||||
 | 
					      arr.map((e, index) => {
 | 
				
			||||||
 | 
					        list.push(e.accessUrl)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      })
 | 
				
			||||||
 | 
					      uni.previewImage({
 | 
				
			||||||
 | 
					        urls: list,
 | 
				
			||||||
 | 
					        current: current,
 | 
				
			||||||
 | 
					        longPressActions: {
 | 
				
			||||||
 | 
					          itemList: ['发送给朋友', '保存图片'],
 | 
				
			||||||
 | 
					          success: function (data) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          },
 | 
				
			||||||
 | 
					          fail: function (err) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					      });
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  onShow(){
 | 
				
			||||||
 | 
					    this.searchDetail();
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					</script>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<style lang="scss" scoped>
 | 
				
			||||||
 | 
					.page{
 | 
				
			||||||
 | 
					    width: 100%;
 | 
				
			||||||
 | 
					    height: 100%;
 | 
				
			||||||
 | 
					    position: relative;
 | 
				
			||||||
 | 
					    header{
 | 
				
			||||||
 | 
					        width: 100%;
 | 
				
			||||||
 | 
					        min-height: 256rpx;
 | 
				
			||||||
 | 
					        background:rgba(230,0,18,1);
 | 
				
			||||||
 | 
					        padding: 32rpx;
 | 
				
			||||||
 | 
					        box-sizing: border-box;
 | 
				
			||||||
 | 
					        .title{
 | 
				
			||||||
 | 
					            font-size:40rpx;
 | 
				
			||||||
 | 
					            color:#fff;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        .time{
 | 
				
			||||||
 | 
					            height: 112rpx;
 | 
				
			||||||
 | 
					            line-height: 112rpx;
 | 
				
			||||||
 | 
					            font-size:28rpx;
 | 
				
			||||||
 | 
					            color:#fff;
 | 
				
			||||||
 | 
					            span:nth-child(2){
 | 
				
			||||||
 | 
					                opacity: 0.7;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    .mylog_main{
 | 
				
			||||||
 | 
					        width: 100%;
 | 
				
			||||||
 | 
					        .word{
 | 
				
			||||||
 | 
					            height: 44rpx;
 | 
				
			||||||
 | 
					            width: 100%;
 | 
				
			||||||
 | 
					            border-left: 6rpx solid  #E60012;
 | 
				
			||||||
 | 
					            box-sizing: border-box;
 | 
				
			||||||
 | 
					            color:#333333;
 | 
				
			||||||
 | 
					            font-size:38rpx;
 | 
				
			||||||
 | 
					            line-height: 44rpx;
 | 
				
			||||||
 | 
					            text-indent: 16rpx;
 | 
				
			||||||
 | 
					            font-weight: 600;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        .mylog_main_summary{
 | 
				
			||||||
 | 
					             width: 100%;
 | 
				
			||||||
 | 
					             padding: 32rpx;
 | 
				
			||||||
 | 
					             background-color: #fff;
 | 
				
			||||||
 | 
					             box-sizing: border-box;
 | 
				
			||||||
 | 
					            .value{
 | 
				
			||||||
 | 
					                margin-top: 56rpx;
 | 
				
			||||||
 | 
					                color:#333333;
 | 
				
			||||||
 | 
					                font-size:32rpx;
 | 
				
			||||||
 | 
					                word-break: break-all;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        .imageList{
 | 
				
			||||||
 | 
					            width: 100%;
 | 
				
			||||||
 | 
					            background-color: #fff;
 | 
				
			||||||
 | 
					            padding: 32rpx;
 | 
				
			||||||
 | 
					            box-sizing: border-box;
 | 
				
			||||||
 | 
					            margin-top: 16rpx;
 | 
				
			||||||
 | 
					            image{
 | 
				
			||||||
 | 
					                width: 100%;
 | 
				
			||||||
 | 
					                height: 384rpx;
 | 
				
			||||||
 | 
					                border-radius: 4rpx;
 | 
				
			||||||
 | 
					                margin-top:32rpx;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    .editLog{
 | 
				
			||||||
 | 
					      width: 96px;
 | 
				
			||||||
 | 
					      height: 96px;
 | 
				
			||||||
 | 
					      border-radius: 48px;
 | 
				
			||||||
 | 
					      background: #FFFFFF;
 | 
				
			||||||
 | 
					      position: fixed;
 | 
				
			||||||
 | 
					      right: 0;
 | 
				
			||||||
 | 
					      top: calc(100% - 400px);
 | 
				
			||||||
 | 
					      display: flex;
 | 
				
			||||||
 | 
					      align-items: center;
 | 
				
			||||||
 | 
					      justify-content: center;
 | 
				
			||||||
 | 
					      box-shadow:0px 8px 16px 0px rgba(0,0,0,0.2);
 | 
				
			||||||
 | 
					      .iconfont {
 | 
				
			||||||
 | 
					        font-size: 66px;
 | 
				
			||||||
 | 
					        color: #F85461;
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					</style>
 | 
				
			||||||
							
								
								
									
										349
									
								
								src/project/pingchang/AppPartyReport/partyDetail.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										349
									
								
								src/project/pingchang/AppPartyReport/partyDetail.vue
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,349 @@
 | 
				
			|||||||
 | 
					<template>
 | 
				
			||||||
 | 
					  <view class="page">
 | 
				
			||||||
 | 
					    <view class="baseInfo">
 | 
				
			||||||
 | 
					      <view class="content" style="transition:height .5s ease;">
 | 
				
			||||||
 | 
					        <p class="title">{{ baseInfo.title }}</p>
 | 
				
			||||||
 | 
					        <ul>
 | 
				
			||||||
 | 
					          <li>
 | 
				
			||||||
 | 
					            <span class="label">活动发起方:</span>
 | 
				
			||||||
 | 
					            <view class="value">{{ baseInfo.areaName }}</view>
 | 
				
			||||||
 | 
					          </li>
 | 
				
			||||||
 | 
					          <li>
 | 
				
			||||||
 | 
					            <span class="label">活动时间:</span>
 | 
				
			||||||
 | 
					            <view class="value"> {{ baseInfo.beginTime|timeVal }} 至 {{ baseInfo.endTime|timeVal }}</view>
 | 
				
			||||||
 | 
					          </li>
 | 
				
			||||||
 | 
					          <template v-if="stretchWord=='收起'">
 | 
				
			||||||
 | 
					            <li>
 | 
				
			||||||
 | 
					              <span class="label">活动地点:</span>
 | 
				
			||||||
 | 
					              <view class="value">{{ baseInfo.address || '-' }}</view>
 | 
				
			||||||
 | 
					            </li>
 | 
				
			||||||
 | 
					            <li>
 | 
				
			||||||
 | 
					              <span class="label">参与名额:</span>
 | 
				
			||||||
 | 
					              <view class="value">{{ baseInfo.total ? baseInfo.total : "不限" }}</view>
 | 
				
			||||||
 | 
					            </li>
 | 
				
			||||||
 | 
					            <li>
 | 
				
			||||||
 | 
					              <span class="label">报名截止时间:</span>
 | 
				
			||||||
 | 
					              <view class="value">
 | 
				
			||||||
 | 
					                {{ baseInfo.stopSignupTime || '-' }}
 | 
				
			||||||
 | 
					                <text v-if="baseInfo.signupStatus==0">({{ "剩余" + baseInfo.timeRemaining }})</text>
 | 
				
			||||||
 | 
					              </view>
 | 
				
			||||||
 | 
					              <!-- <view class="value" v-else>-</view> -->
 | 
				
			||||||
 | 
					            </li>
 | 
				
			||||||
 | 
					            <li>
 | 
				
			||||||
 | 
					              <span class="label">活动报名人数:</span>
 | 
				
			||||||
 | 
					              <view class="value">{{ baseInfo.signupCount || '-' }}</view>
 | 
				
			||||||
 | 
					            </li>
 | 
				
			||||||
 | 
					            <li>
 | 
				
			||||||
 | 
					              <span class="label">活动状态:</span>
 | 
				
			||||||
 | 
					              <!--<view class="value">{{ $dict.getLabel('partyReportActionStatus', baseInfo.actionStatus) }}</view>-->
 | 
				
			||||||
 | 
					              <view class="value">{{ activeStatus }}</view>
 | 
				
			||||||
 | 
					            </li>
 | 
				
			||||||
 | 
					            <li>
 | 
				
			||||||
 | 
					              <span class="label">联系人:</span>
 | 
				
			||||||
 | 
					              <view class="value">{{ baseInfo.contactPerson || '-' }}</view>
 | 
				
			||||||
 | 
					            </li>
 | 
				
			||||||
 | 
					            <li>
 | 
				
			||||||
 | 
					              <span class="label">联系电话:</span>
 | 
				
			||||||
 | 
					              <view class="value">{{ baseInfo.contactPhone || '-' }}</view>
 | 
				
			||||||
 | 
					            </li>
 | 
				
			||||||
 | 
					          </template>
 | 
				
			||||||
 | 
					        </ul>
 | 
				
			||||||
 | 
					      </view>
 | 
				
			||||||
 | 
					      <view class="footer" @click="stretch()">
 | 
				
			||||||
 | 
					        <span>{{ stretchWord }}</span>
 | 
				
			||||||
 | 
					        <image :src="dowm" v-if="stretchWord=='展开'"></image>
 | 
				
			||||||
 | 
					        <image :src="up" v-if="stretchWord=='收起'"></image>
 | 
				
			||||||
 | 
					      </view>
 | 
				
			||||||
 | 
					    </view>
 | 
				
			||||||
 | 
					    <view class="html">
 | 
				
			||||||
 | 
					      <header>活动介绍</header>
 | 
				
			||||||
 | 
					      <!-- <AiWxparse :content="baseInfo.content"/> -->
 | 
				
			||||||
 | 
					      <u-parse :html="baseInfo.content"></u-parse>
 | 
				
			||||||
 | 
					      <AiTransSpeech v-if="showTrans" :src="baseInfo.speech"/>
 | 
				
			||||||
 | 
					    </view>
 | 
				
			||||||
 | 
					    <view class="page_footer">
 | 
				
			||||||
 | 
					      <p @click="seeSignUpList(baseInfo)">
 | 
				
			||||||
 | 
					        <image src="https://cdn.cunwuyun.cn/img/party_detail.png"></image>
 | 
				
			||||||
 | 
					        <span>查看报名情况</span>
 | 
				
			||||||
 | 
					      </p>
 | 
				
			||||||
 | 
					      <p v-if="baseInfo.nowUsersignupStatus==null&&baseInfo.actionStatus!=2&&baseInfo.signupStatus==0"
 | 
				
			||||||
 | 
					         @click="signUp(baseInfo)">
 | 
				
			||||||
 | 
					        <image src="https://cdn.cunwuyun.cn/img/party_now_reg.png"></image>
 | 
				
			||||||
 | 
					        <span>立即报名</span>
 | 
				
			||||||
 | 
					      </p>
 | 
				
			||||||
 | 
					      <p v-if="baseInfo.nowUsersignupStatus==1&&baseInfo.actionStatus!=2&&baseInfo.signupStatus==0"
 | 
				
			||||||
 | 
					         @click="open()">
 | 
				
			||||||
 | 
					        <image src="https://cdn.cunwuyun.cn/img/party_cancel_reg.png"></image>
 | 
				
			||||||
 | 
					        <span>取消报名</span>
 | 
				
			||||||
 | 
					      </p>
 | 
				
			||||||
 | 
					      <p v-if="baseInfo.nowUsersignupStatus==1&&baseInfo.signupContent==null&&['1','2'].includes(baseInfo.actionStatus)&&baseInfo.signupStatus==1"
 | 
				
			||||||
 | 
					         @click="goLog(baseInfo)">
 | 
				
			||||||
 | 
					        <image src="https://cdn.cunwuyun.cn/img/party_add_log.png"></image>
 | 
				
			||||||
 | 
					        <span>填写活动日志</span>
 | 
				
			||||||
 | 
					      </p>
 | 
				
			||||||
 | 
					      <p v-if="baseInfo.nowUsersignupStatus==1&&baseInfo.signupContent!=null&&['1','2'].includes(baseInfo.actionStatus)&&baseInfo.signupStatus==1"
 | 
				
			||||||
 | 
					         @click="goMyLog(baseInfo)">
 | 
				
			||||||
 | 
					        <image src="https://cdn.cunwuyun.cn/img/party_log.png"></image>
 | 
				
			||||||
 | 
					        <span>我的活动日志</span>
 | 
				
			||||||
 | 
					      </p>
 | 
				
			||||||
 | 
					    </view>
 | 
				
			||||||
 | 
					  </view>
 | 
				
			||||||
 | 
					</template>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<script>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export default {
 | 
				
			||||||
 | 
					  name: 'partyDetail',
 | 
				
			||||||
 | 
					  computed: {
 | 
				
			||||||
 | 
					    user() {
 | 
				
			||||||
 | 
					      return uni.getStorageSync("userInfo")
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  data() {
 | 
				
			||||||
 | 
					    return {
 | 
				
			||||||
 | 
					      baseInfo: {},
 | 
				
			||||||
 | 
					      height: 210,
 | 
				
			||||||
 | 
					      stretchWord: "展开",
 | 
				
			||||||
 | 
					      listType: '',
 | 
				
			||||||
 | 
					      footerList: [
 | 
				
			||||||
 | 
					        {name: "查看报名情况", id: 0},
 | 
				
			||||||
 | 
					        {name: "立即报名", id: 1}
 | 
				
			||||||
 | 
					      ],
 | 
				
			||||||
 | 
					      id: '',
 | 
				
			||||||
 | 
					      dowm: 'https://cdn.cunwuyun.cn/img/party_down.png',
 | 
				
			||||||
 | 
					      up: 'https://cdn.cunwuyun.cn/img/party_up.png',
 | 
				
			||||||
 | 
					      showTrans: false,
 | 
				
			||||||
 | 
					      activeStatus:""
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  onLoad(options) {
 | 
				
			||||||
 | 
					    uni.setNavigationBarColor({
 | 
				
			||||||
 | 
					      frontColor: "#ffffff",
 | 
				
			||||||
 | 
					      backgroundColor: "#e60012",
 | 
				
			||||||
 | 
					    })
 | 
				
			||||||
 | 
					    this.id = options.id;
 | 
				
			||||||
 | 
					    this.searchDetail(options.id);
 | 
				
			||||||
 | 
					    this.listType = options.listType;
 | 
				
			||||||
 | 
					    this.$dict.load('partyReportActionStatus');
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  onShow() {
 | 
				
			||||||
 | 
					    this.showTrans = true;
 | 
				
			||||||
 | 
					    this.searchDetail(this.id);
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  onHide() {
 | 
				
			||||||
 | 
					    this.showTrans = false
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  filters: {
 | 
				
			||||||
 | 
					    timeVal(val) {
 | 
				
			||||||
 | 
					      if (val) {
 | 
				
			||||||
 | 
					        return val.substring(0, 16)
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  methods: {
 | 
				
			||||||
 | 
					    getActiveStatus(){
 | 
				
			||||||
 | 
					      uni.getStorage({
 | 
				
			||||||
 | 
					        key: "dicts",
 | 
				
			||||||
 | 
					        success: (res) => {
 | 
				
			||||||
 | 
					          const jsonDicts = JSON.parse(res.data)
 | 
				
			||||||
 | 
					          this.activeStatus = jsonDicts.find((e) => e.key == "partyReportActionStatus").values[this.baseInfo.actionStatus].dictName || "-"
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        fail() {
 | 
				
			||||||
 | 
					          this.activeStatus = "-"
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					      })
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    searchDetail(id) {
 | 
				
			||||||
 | 
					      this.$instance.post(`/app/apppartyreport/queryDetailById?id=${id}&partyId=${this.user.partyId}`).then(res => {
 | 
				
			||||||
 | 
					        if (res && res.data) {
 | 
				
			||||||
 | 
					          this.baseInfo = {...res.data};
 | 
				
			||||||
 | 
					          this.baseInfo.stopSignupTime = this.baseInfo.stopSignupTime && this.baseInfo.stopSignupTime.substring(0, 16);
 | 
				
			||||||
 | 
					          this.getActiveStatus() ;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					      })
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    stretch() {
 | 
				
			||||||
 | 
					      this.stretchWord == '展开' ? this.stretchWord = '收起' : this.stretchWord = '展开';
 | 
				
			||||||
 | 
					      this.height == 210 ? this.height = 506 : this.height = 210;
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    signUp(e) {
 | 
				
			||||||
 | 
					      uni.navigateTo({
 | 
				
			||||||
 | 
					        url: `./signUp?reportId=${e.id}`
 | 
				
			||||||
 | 
					      })
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    seeSignUpList(e) {
 | 
				
			||||||
 | 
					      uni.navigateTo({
 | 
				
			||||||
 | 
					        url: `./signUpList?reportId=${e.id}`
 | 
				
			||||||
 | 
					      })
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    goLog(e) {
 | 
				
			||||||
 | 
					      uni.navigateTo({
 | 
				
			||||||
 | 
					        url: `./fillLog?reportId=${e.id}&signupId=${e.signupId}`
 | 
				
			||||||
 | 
					      })
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    goMyLog(e) {
 | 
				
			||||||
 | 
					      uni.navigateTo({
 | 
				
			||||||
 | 
					        url: `./myLog?signupId=${e.signupId}&title=${e.title}`
 | 
				
			||||||
 | 
					      })
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    open() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      uni.showModal({
 | 
				
			||||||
 | 
					        title: '提示',
 | 
				
			||||||
 | 
					        content: '取消报名后,本次活动不允许再次报名,是否确定取消?',
 | 
				
			||||||
 | 
					        success: (res) => {
 | 
				
			||||||
 | 
					          if (res.confirm) {
 | 
				
			||||||
 | 
					            this.cale();
 | 
				
			||||||
 | 
					          } else if (res.cancel) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					      });
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    cale() {
 | 
				
			||||||
 | 
					      this.$instance.post(`/app/apppartyreport/signup-cancel?id=${this.baseInfo.signupId}`,).then(res => {
 | 
				
			||||||
 | 
					        if (res.code == 0) {
 | 
				
			||||||
 | 
					          uni.navigateBack({
 | 
				
			||||||
 | 
					            delta: 1
 | 
				
			||||||
 | 
					          });
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					      }).catch(err => {
 | 
				
			||||||
 | 
					        uni.showToast({
 | 
				
			||||||
 | 
					          title: err,
 | 
				
			||||||
 | 
					          icon: "none",
 | 
				
			||||||
 | 
					          duration: 1000
 | 
				
			||||||
 | 
					        })
 | 
				
			||||||
 | 
					      })
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					</script>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<style lang="scss" scoped>
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.page {
 | 
				
			||||||
 | 
					  width: 100%;
 | 
				
			||||||
 | 
					  height: 100%;
 | 
				
			||||||
 | 
					  background-color: #fff;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  .baseInfo {
 | 
				
			||||||
 | 
					    width: 100%;
 | 
				
			||||||
 | 
					    background: rgba(230, 0, 18, 1);
 | 
				
			||||||
 | 
					    overflow: hidden;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    .content {
 | 
				
			||||||
 | 
					      width: 100%;
 | 
				
			||||||
 | 
					      background: rgba(230, 0, 18, 1);
 | 
				
			||||||
 | 
					      overflow: hidden;
 | 
				
			||||||
 | 
					      padding: 0 32px;
 | 
				
			||||||
 | 
					      box-sizing: border-box;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      .title {
 | 
				
			||||||
 | 
					        font-size: 40px;
 | 
				
			||||||
 | 
					        color: #fff;
 | 
				
			||||||
 | 
					        word-break: break-all;
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      ul {
 | 
				
			||||||
 | 
					        width: 100%;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        li {
 | 
				
			||||||
 | 
					          width: 100%;
 | 
				
			||||||
 | 
					          display: flex;
 | 
				
			||||||
 | 
					          font-size: 30px;
 | 
				
			||||||
 | 
					          margin-bottom: 16px;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          .label {
 | 
				
			||||||
 | 
					            font-size: 28px;
 | 
				
			||||||
 | 
					            color: #fff;
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          .value {
 | 
				
			||||||
 | 
					            flex: 1;
 | 
				
			||||||
 | 
					            font-size: 28px;
 | 
				
			||||||
 | 
					            color: rgba(255, 232, 232, 1);
 | 
				
			||||||
 | 
					            opacity: 0.8;
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    .footer {
 | 
				
			||||||
 | 
					      width: 100%;
 | 
				
			||||||
 | 
					      height: 80px;
 | 
				
			||||||
 | 
					      color: #fff;
 | 
				
			||||||
 | 
					      font-size: 28px;
 | 
				
			||||||
 | 
					      display: flex;
 | 
				
			||||||
 | 
					      align-items: center;
 | 
				
			||||||
 | 
					      justify-content: center;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      image {
 | 
				
			||||||
 | 
					        width: 28px;
 | 
				
			||||||
 | 
					        height: 28px;
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  .html {
 | 
				
			||||||
 | 
					    width: 100%;
 | 
				
			||||||
 | 
					    padding: 0 32px 180px 32px;
 | 
				
			||||||
 | 
					    box-sizing: border-box;
 | 
				
			||||||
 | 
					    background-color: #fff;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    header {
 | 
				
			||||||
 | 
					      height: 96px;
 | 
				
			||||||
 | 
					      line-height: 96px;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  .page_footer {
 | 
				
			||||||
 | 
					    width: 100%;
 | 
				
			||||||
 | 
					    position: fixed;
 | 
				
			||||||
 | 
					    left: 0;
 | 
				
			||||||
 | 
					    bottom: 0;
 | 
				
			||||||
 | 
					    height: 104px;
 | 
				
			||||||
 | 
					    background: rgba(255, 228, 221, 1);
 | 
				
			||||||
 | 
					    color: #D73D3D;
 | 
				
			||||||
 | 
					    display: flex;
 | 
				
			||||||
 | 
					    justify-content: center;
 | 
				
			||||||
 | 
					    align-items: center;
 | 
				
			||||||
 | 
					    font-size: 32px;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    image {
 | 
				
			||||||
 | 
					      width: 32px;
 | 
				
			||||||
 | 
					      height: 32px;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    p {
 | 
				
			||||||
 | 
					      width: 50%;
 | 
				
			||||||
 | 
					      height: 100%;
 | 
				
			||||||
 | 
					      display: flex;
 | 
				
			||||||
 | 
					      justify-content: center;
 | 
				
			||||||
 | 
					      align-items: center;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      &.active {
 | 
				
			||||||
 | 
					        background-color: #D73D3D;
 | 
				
			||||||
 | 
					        color: #ffffff;
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    p:nth-child(1) {
 | 
				
			||||||
 | 
					      border-right: 2px solid rgb(241, 178, 178);
 | 
				
			||||||
 | 
					      box-sizing: border-box;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    p:nth-child(2) {
 | 
				
			||||||
 | 
					      background-color: #FE5A49;
 | 
				
			||||||
 | 
					      box-sizing: border-box;
 | 
				
			||||||
 | 
					      color: #fff;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    p:only-child {
 | 
				
			||||||
 | 
					      width: 100%;
 | 
				
			||||||
 | 
					      border-right: none;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					</style>
 | 
				
			||||||
							
								
								
									
										357
									
								
								src/project/pingchang/AppPartyReport/signUp.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										357
									
								
								src/project/pingchang/AppPartyReport/signUp.vue
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,357 @@
 | 
				
			|||||||
 | 
					<template>
 | 
				
			||||||
 | 
					  <view class="page">
 | 
				
			||||||
 | 
					    <view class="form">
 | 
				
			||||||
 | 
					      <div class=" basic-item flex-row">
 | 
				
			||||||
 | 
					        <div class="color-333"><span class="color-red">*</span>活动报名类型</div>
 | 
				
			||||||
 | 
					        <div class="select" @click="open()">
 | 
				
			||||||
 | 
					          <text class="content-text" :class="reportName == '请选择' ? 'colo-999' : 'color-333'">{{ reportName }}</text>
 | 
				
			||||||
 | 
					          <image src="https://cdn.cunwuyun.cn/img/jiantou.png" class="image"></image>
 | 
				
			||||||
 | 
					        </div>
 | 
				
			||||||
 | 
					      </div>
 | 
				
			||||||
 | 
					      <div class=" basic-item flex-row">
 | 
				
			||||||
 | 
					        <div class="color-333"><span class="color-red">*</span>联系手机</div>
 | 
				
			||||||
 | 
					        <input type="text" placeholder="请输入手机号码" maxlength="11" v-model="baseInfo.phone" adjust-position="false">
 | 
				
			||||||
 | 
					      </div>
 | 
				
			||||||
 | 
					      <div class="textarea">
 | 
				
			||||||
 | 
					        <div class="color-333">报名备注</div>
 | 
				
			||||||
 | 
					        <textarea type="textarea" v-if="showTextarea" placeholder="填写报名备注(100字以内)" v-model="baseInfo.remark"
 | 
				
			||||||
 | 
					                  adjust-position="false" maxlength="100"></textarea>
 | 
				
			||||||
 | 
					        <p v-else style="color:#999;font-size:34rpx;width:100%;height:302rpx;">填写报名备注(100字以内)</p>
 | 
				
			||||||
 | 
					      </div>
 | 
				
			||||||
 | 
					    </view>
 | 
				
			||||||
 | 
					    <view class="notice">
 | 
				
			||||||
 | 
					      <p>报到类型说明:</p>
 | 
				
			||||||
 | 
					      <p>1、单位联系社区报到服务:党员所属单位联系的社区参与活动,到社区服务;</p>
 | 
				
			||||||
 | 
					      <p>2、居住地社区报到服务:党员所在本人居住的社区参与活动,到社区服务;</p>
 | 
				
			||||||
 | 
					      <p>3、其他村(社区)报到服务:党员所在除单位联系社区与居住社区以外的其他社区参与活动,到社区服务;</p>
 | 
				
			||||||
 | 
					    </view>
 | 
				
			||||||
 | 
					    <view class="report" @click="report()">提交</view>
 | 
				
			||||||
 | 
					    <u-popup v-model="showPopup" mode="right">
 | 
				
			||||||
 | 
					      <view class="drawer_main">
 | 
				
			||||||
 | 
					        <header>
 | 
				
			||||||
 | 
					          <p>活动报到类型</p>
 | 
				
			||||||
 | 
					          <span>(单选)</span>
 | 
				
			||||||
 | 
					        </header>
 | 
				
			||||||
 | 
					        <ul>
 | 
				
			||||||
 | 
					          <li v-for="(e,index) in list" :key="index" @click="selectType(e)" :class="{active:activeId==e.dictValue}">
 | 
				
			||||||
 | 
					            {{ e.dictName }}
 | 
				
			||||||
 | 
					          </li>
 | 
				
			||||||
 | 
					        </ul>
 | 
				
			||||||
 | 
					        <view class="footer" @click="saveType()">
 | 
				
			||||||
 | 
					          保存
 | 
				
			||||||
 | 
					        </view>
 | 
				
			||||||
 | 
					      </view>
 | 
				
			||||||
 | 
					    </u-popup>
 | 
				
			||||||
 | 
					    <!-- <AiDrawer mode="right" ref="drawer" @status="drawerStatus">
 | 
				
			||||||
 | 
					      <view class="drawer_main">
 | 
				
			||||||
 | 
					        <header>
 | 
				
			||||||
 | 
					          <p>活动报到类型</p>
 | 
				
			||||||
 | 
					          <span>(单选)</span>
 | 
				
			||||||
 | 
					        </header>
 | 
				
			||||||
 | 
					        <ul>
 | 
				
			||||||
 | 
					          <li v-for="(e,index) in list" :key="index" @click="selectType(e)" :class="{active:activeId==e.dictValue}">
 | 
				
			||||||
 | 
					            {{ e.dictName }}
 | 
				
			||||||
 | 
					          </li>
 | 
				
			||||||
 | 
					        </ul>
 | 
				
			||||||
 | 
					        <view class="footer" @click="saveType()">
 | 
				
			||||||
 | 
					          保存
 | 
				
			||||||
 | 
					        </view>
 | 
				
			||||||
 | 
					      </view>
 | 
				
			||||||
 | 
					    </AiDrawer> -->
 | 
				
			||||||
 | 
					  </view>
 | 
				
			||||||
 | 
					</template>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<script>
 | 
				
			||||||
 | 
					import {mapState} from 'vuex'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export default {
 | 
				
			||||||
 | 
					  name: "signUp",
 | 
				
			||||||
 | 
					  computed: {
 | 
				
			||||||
 | 
					    ...mapState(['user'])
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  data() {
 | 
				
			||||||
 | 
					    return {
 | 
				
			||||||
 | 
					      baseInfo: {
 | 
				
			||||||
 | 
					        reportId: '',
 | 
				
			||||||
 | 
					        remark: '',
 | 
				
			||||||
 | 
					        phone: '',
 | 
				
			||||||
 | 
					        reportType: '',
 | 
				
			||||||
 | 
					        partyId: ''
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      reportName: '请选择',
 | 
				
			||||||
 | 
					      show: false,
 | 
				
			||||||
 | 
					      list: [],
 | 
				
			||||||
 | 
					      activeId: '',
 | 
				
			||||||
 | 
					      activeObj: {},
 | 
				
			||||||
 | 
					      showTextarea: true,
 | 
				
			||||||
 | 
					      showPopup: false
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  onLoad(options) {
 | 
				
			||||||
 | 
					    uni.setNavigationBarColor({
 | 
				
			||||||
 | 
					      frontColor: "#ffffff",
 | 
				
			||||||
 | 
					      backgroundColor: "#e60012",
 | 
				
			||||||
 | 
					    })
 | 
				
			||||||
 | 
					    this.$dict.load('partyReportSignupReportType');
 | 
				
			||||||
 | 
					    this.baseInfo.reportId = options.reportId;
 | 
				
			||||||
 | 
					    this.baseInfo.partyId = this.user.partyId;
 | 
				
			||||||
 | 
					    this.baseInfo.phone = this.user.phone;
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  methods: {
 | 
				
			||||||
 | 
					    showModel(title) {
 | 
				
			||||||
 | 
					      uni.showModal({
 | 
				
			||||||
 | 
					        title: '温馨提示',
 | 
				
			||||||
 | 
					        content: title,
 | 
				
			||||||
 | 
					        showCancel: false,
 | 
				
			||||||
 | 
					        confirmColor: "#135AB8",
 | 
				
			||||||
 | 
					        success(res) {
 | 
				
			||||||
 | 
					          if (res.confirm) {
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					      })
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    open() {
 | 
				
			||||||
 | 
					      this.list = this.$dict.getDict('partyReportSignupReportType');
 | 
				
			||||||
 | 
					      this.showPopup = true
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    selectType(e) {
 | 
				
			||||||
 | 
					      this.activeId = e.dictValue;
 | 
				
			||||||
 | 
					      this.activeObj = e;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    drawerStatus(val) {
 | 
				
			||||||
 | 
					      this.showTextarea = !val;
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    saveType() {
 | 
				
			||||||
 | 
					      this.reportName = this.activeObj.dictName;
 | 
				
			||||||
 | 
					      this.showPopup = false
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    report() {
 | 
				
			||||||
 | 
					      if (this.reportName == null || this.reportName == '' || this.reportName == '请选择') {
 | 
				
			||||||
 | 
					        this.showModel('请选择活动报名类型')
 | 
				
			||||||
 | 
					        return false
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					      if (!this.baseInfo.phone) {
 | 
				
			||||||
 | 
					        this.showModel('请填写手机号码')
 | 
				
			||||||
 | 
					        return false
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					      this.baseInfo.reportType = this.$dict.getValue('partyReportSignupReportType', this.reportName);
 | 
				
			||||||
 | 
					      this.$instance.post(`/app/apppartyreport/signup`, this.baseInfo, null).then(res => {
 | 
				
			||||||
 | 
					        if (res.code == 0) {
 | 
				
			||||||
 | 
					          uni.showToast({
 | 
				
			||||||
 | 
					            title: '提交成功',
 | 
				
			||||||
 | 
					            icon: 'success',
 | 
				
			||||||
 | 
					            duration: 2000
 | 
				
			||||||
 | 
					          })
 | 
				
			||||||
 | 
					          setTimeout(() => {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            uni.navigateBack({
 | 
				
			||||||
 | 
					              delta: 1
 | 
				
			||||||
 | 
					            });
 | 
				
			||||||
 | 
					          }, 2000)
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					      }).catch(err => {
 | 
				
			||||||
 | 
					        uni.showToast({
 | 
				
			||||||
 | 
					          title: err,
 | 
				
			||||||
 | 
					          icon: "none",
 | 
				
			||||||
 | 
					          duration: 1000
 | 
				
			||||||
 | 
					        })
 | 
				
			||||||
 | 
					      })
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					</script>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<style lang="scss" scoped>
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.page {
 | 
				
			||||||
 | 
					  width: 100%;
 | 
				
			||||||
 | 
					  height: 100%;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  .form {
 | 
				
			||||||
 | 
					    width: 100%;
 | 
				
			||||||
 | 
					    background-color: #fff;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    .basic-item {
 | 
				
			||||||
 | 
					      font-size: 32px;
 | 
				
			||||||
 | 
					      justify-content: space-between;
 | 
				
			||||||
 | 
					      width: 100%;
 | 
				
			||||||
 | 
					      height: 112px;
 | 
				
			||||||
 | 
					      padding: 32px 32px 32px 12px;
 | 
				
			||||||
 | 
					      box-sizing: border-box;
 | 
				
			||||||
 | 
					      background-color: #fff;
 | 
				
			||||||
 | 
					      border-bottom: 1px solid #eee;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      input {
 | 
				
			||||||
 | 
					        text-align: right;
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      .wid-110 {
 | 
				
			||||||
 | 
					        width: 214px;
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      .skill-text {
 | 
				
			||||||
 | 
					        max-width: 432px;
 | 
				
			||||||
 | 
					        text-align: right;
 | 
				
			||||||
 | 
					        display: inline-block;
 | 
				
			||||||
 | 
					        overflow: hidden;
 | 
				
			||||||
 | 
					        text-overflow: ellipsis;
 | 
				
			||||||
 | 
					        white-space: nowrap;
 | 
				
			||||||
 | 
					        font-size: 30px;
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      .picker {
 | 
				
			||||||
 | 
					        justify-content: flex-end;
 | 
				
			||||||
 | 
					        align-items: center;
 | 
				
			||||||
 | 
					        color: #999999;
 | 
				
			||||||
 | 
					        font-size: 32px;
 | 
				
			||||||
 | 
					        background-color: #FFFFFF;
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      .picker > .AiArea {
 | 
				
			||||||
 | 
					        background-color: #fff !important;
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      .image {
 | 
				
			||||||
 | 
					        width: 32px;
 | 
				
			||||||
 | 
					        height: 32px;
 | 
				
			||||||
 | 
					        vertical-align: middle;
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      .wei-text {
 | 
				
			||||||
 | 
					        width: 40%;
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      .msg-value {
 | 
				
			||||||
 | 
					        width: 60%;
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      .msg-btn {
 | 
				
			||||||
 | 
					        width: 160px;
 | 
				
			||||||
 | 
					        text-align: right;
 | 
				
			||||||
 | 
					        background-color: #fff !important;
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      button {
 | 
				
			||||||
 | 
					        font-size: 28px;
 | 
				
			||||||
 | 
					        background-color: #fff;
 | 
				
			||||||
 | 
					        line-height: 48px;
 | 
				
			||||||
 | 
					        padding: 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      button::after {
 | 
				
			||||||
 | 
					        border: 0;
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      .button-hover {
 | 
				
			||||||
 | 
					        background-color: #fff;
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      button[disabled] {
 | 
				
			||||||
 | 
					        background-color: #fff !important;
 | 
				
			||||||
 | 
					        font-size: 28px;
 | 
				
			||||||
 | 
					        border-radius: 0;
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    .textarea {
 | 
				
			||||||
 | 
					      padding: 32px;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  ::v-deep .uni-drawer {
 | 
				
			||||||
 | 
					    z-index: 20000 !important;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  .drawer_main {
 | 
				
			||||||
 | 
					    width: 100%;
 | 
				
			||||||
 | 
					    height: 100%;
 | 
				
			||||||
 | 
					    padding: 64px 32px 0 32px;
 | 
				
			||||||
 | 
					    box-sizing: border-box;
 | 
				
			||||||
 | 
					    position: relative;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    header {
 | 
				
			||||||
 | 
					      width: 100%;
 | 
				
			||||||
 | 
					      height: 96px;
 | 
				
			||||||
 | 
					      display: flex;
 | 
				
			||||||
 | 
					      align-items: center;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      p {
 | 
				
			||||||
 | 
					        color: #333333;
 | 
				
			||||||
 | 
					        font-size: 32px;
 | 
				
			||||||
 | 
					        width: 192px;
 | 
				
			||||||
 | 
					        font-weight: 600;
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      span {
 | 
				
			||||||
 | 
					        font-size: 24px;
 | 
				
			||||||
 | 
					        color: #666;
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ul {
 | 
				
			||||||
 | 
					      width: 100%;
 | 
				
			||||||
 | 
					      overflow: hidden;
 | 
				
			||||||
 | 
					      height: 500px;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      li {
 | 
				
			||||||
 | 
					        width: 344px;
 | 
				
			||||||
 | 
					        height: 96px;
 | 
				
			||||||
 | 
					        background: rgba(249, 249, 249, 1);
 | 
				
			||||||
 | 
					        margin-bottom: 40px;
 | 
				
			||||||
 | 
					        font-size: 28px;
 | 
				
			||||||
 | 
					        display: flex;
 | 
				
			||||||
 | 
					        justify-content: center;
 | 
				
			||||||
 | 
					        align-items: center;
 | 
				
			||||||
 | 
					        border-radius: 2px;
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      li.active {
 | 
				
			||||||
 | 
					        background: rgba(255, 228, 221, 1);
 | 
				
			||||||
 | 
					        color: #D73D3D;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    .footer {
 | 
				
			||||||
 | 
					      position: absolute;
 | 
				
			||||||
 | 
					      left: 0;
 | 
				
			||||||
 | 
					      bottom: 0;
 | 
				
			||||||
 | 
					      width: 100%;
 | 
				
			||||||
 | 
					      height: 112px;
 | 
				
			||||||
 | 
					      line-height: 112px;
 | 
				
			||||||
 | 
					      text-align: center;
 | 
				
			||||||
 | 
					      color: #ffffff;
 | 
				
			||||||
 | 
					      font-size: 36px;
 | 
				
			||||||
 | 
					      background: rgba(230, 0, 18, 1);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  .notice {
 | 
				
			||||||
 | 
					    width: 100%;
 | 
				
			||||||
 | 
					    font-weight: 400;
 | 
				
			||||||
 | 
					    box-sizing: border-box;
 | 
				
			||||||
 | 
					    padding: 64px 32px 0 32px;
 | 
				
			||||||
 | 
					    color: rgba(153, 153, 153, 1);
 | 
				
			||||||
 | 
					    font-size: 24px;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  .report {
 | 
				
			||||||
 | 
					    position: fixed;
 | 
				
			||||||
 | 
					    left: 0;
 | 
				
			||||||
 | 
					    bottom: 0;
 | 
				
			||||||
 | 
					    height: 112px;
 | 
				
			||||||
 | 
					    line-height: 112px;
 | 
				
			||||||
 | 
					    font-size: 32px;
 | 
				
			||||||
 | 
					    text-align: center;
 | 
				
			||||||
 | 
					    background: rgba(230, 0, 18, 1);
 | 
				
			||||||
 | 
					    color: #fff;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					</style>
 | 
				
			||||||
							
								
								
									
										107
									
								
								src/project/pingchang/AppPartyReport/signUpList.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										107
									
								
								src/project/pingchang/AppPartyReport/signUpList.vue
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,107 @@
 | 
				
			|||||||
 | 
					<template>
 | 
				
			||||||
 | 
					    <view class="page">
 | 
				
			||||||
 | 
					        <header>
 | 
				
			||||||
 | 
					            报名记录(已有 <span class="num">{{list.length}}</span>人报名)
 | 
				
			||||||
 | 
					        </header>
 | 
				
			||||||
 | 
					        <ul>
 | 
				
			||||||
 | 
					            <li v-for="(e,index) in list" :key="index">
 | 
				
			||||||
 | 
					               <p>
 | 
				
			||||||
 | 
					                   <image :src="e.partyAvatar" v-if="e.partyAvatar"></image>
 | 
				
			||||||
 | 
					                   <image src="https://cdn.cunwuyun.cn/img/no-content.png" v-else></image>
 | 
				
			||||||
 | 
					                   <span>{{e.partyName.replace(/^./g,'*')}}</span>
 | 
				
			||||||
 | 
					               </p>
 | 
				
			||||||
 | 
					               <p>{{e.signupTime.substring(0,16)}}</p>
 | 
				
			||||||
 | 
					            </li>
 | 
				
			||||||
 | 
					        </ul>
 | 
				
			||||||
 | 
					    </view>
 | 
				
			||||||
 | 
					</template>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<script>
 | 
				
			||||||
 | 
					    export default {
 | 
				
			||||||
 | 
					        name:"signUpList",
 | 
				
			||||||
 | 
					        data(){
 | 
				
			||||||
 | 
					            return{
 | 
				
			||||||
 | 
					                reportId:'',
 | 
				
			||||||
 | 
					                list:[]
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        onLoad(options){
 | 
				
			||||||
 | 
					            uni.setNavigationBarColor({
 | 
				
			||||||
 | 
					                frontColor: "#ffffff",
 | 
				
			||||||
 | 
					                backgroundColor: "#e60012",
 | 
				
			||||||
 | 
					            })
 | 
				
			||||||
 | 
					            this.reportId= options.reportId;
 | 
				
			||||||
 | 
					            this.getList();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        methods:{
 | 
				
			||||||
 | 
					             getList(){
 | 
				
			||||||
 | 
					                this.$instance.post(`/app/apppartyreport/signup-info?id=${this.reportId}`,null,{}).then( res => {
 | 
				
			||||||
 | 
					                    if(res.code == 0){
 | 
				
			||||||
 | 
					                        this.list = res.data;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    }else{
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                }).catch( err => {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                })
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					</script>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<style lang="scss" scoped>
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					.page{
 | 
				
			||||||
 | 
					    width: 100%;
 | 
				
			||||||
 | 
					    height: 100%;
 | 
				
			||||||
 | 
					    background-color: #fff;
 | 
				
			||||||
 | 
					    header{
 | 
				
			||||||
 | 
					        width: 100%;
 | 
				
			||||||
 | 
					        height: 112rpx;
 | 
				
			||||||
 | 
					        padding: 0 32rpx;
 | 
				
			||||||
 | 
					        font-size:32rpx;
 | 
				
			||||||
 | 
					        line-height: 112rpx;
 | 
				
			||||||
 | 
					        color:#333333;
 | 
				
			||||||
 | 
					        border-bottom: 1px solid #eee;
 | 
				
			||||||
 | 
					        box-sizing: border-box;
 | 
				
			||||||
 | 
					        .num{
 | 
				
			||||||
 | 
					            color:#D73D3D;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    ul{
 | 
				
			||||||
 | 
					        width: 100%;
 | 
				
			||||||
 | 
					        height: calc(100% - 112rpx) ;
 | 
				
			||||||
 | 
					        overflow: auto;
 | 
				
			||||||
 | 
					        li{
 | 
				
			||||||
 | 
					            width: 100%;
 | 
				
			||||||
 | 
					            height: 148rpx;
 | 
				
			||||||
 | 
					            display: flex;
 | 
				
			||||||
 | 
					            align-items: center;
 | 
				
			||||||
 | 
					            justify-content: space-between;
 | 
				
			||||||
 | 
					            border-bottom: 1px solid #eee;
 | 
				
			||||||
 | 
					            padding: 0 32rpx;
 | 
				
			||||||
 | 
					            box-sizing: border-box;
 | 
				
			||||||
 | 
					            p:nth-child(2){
 | 
				
			||||||
 | 
					                color:#999999;
 | 
				
			||||||
 | 
					                font-size:30rpx;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					             p:nth-child(1){
 | 
				
			||||||
 | 
					                display: flex;
 | 
				
			||||||
 | 
					                align-items: center;
 | 
				
			||||||
 | 
					               image{
 | 
				
			||||||
 | 
					                   width: 80rpx;
 | 
				
			||||||
 | 
					                   height: 80rpx;
 | 
				
			||||||
 | 
					                   border-radius: 50%;
 | 
				
			||||||
 | 
					               }
 | 
				
			||||||
 | 
					               span{
 | 
				
			||||||
 | 
					                   font-size:30rpx;
 | 
				
			||||||
 | 
					                   color:#2D2D2E;
 | 
				
			||||||
 | 
					                   margin-left: 8rpx;
 | 
				
			||||||
 | 
					               }
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					</style>
 | 
				
			||||||
		Reference in New Issue
	
	Block a user