8 files modified
3 files added
| | |
| | | "bottom": "0", |
| | | "background": "transparent", |
| | | "zindex": 1 |
| | | |
| | | |
| | | } |
| | | }, { |
| | | "id": "input-box", |
| | |
| | | "style": { |
| | | "navigationBarTitleText": "500" |
| | | } |
| | | }, { |
| | | "path": "pages/alarm_list/integral/integral", |
| | | "style": { |
| | | "navigationBarTitleText": "查积分", |
| | | "navigationBarBackgroundColor": "#103289", |
| | | "navigationBarTextStyle": "white" |
| | | } |
| | | |
| | | }, { |
| | | "path": "pages/alarm_list/organ/organ", |
| | | "style": { |
| | | "navigationBarTitleText": "组织申请", |
| | | "navigationBarBackgroundColor": "#103289", |
| | | "navigationBarTextStyle": "white" |
| | | } |
| | | |
| | | }, { |
| | | "path": "pages/alarm_list/industry/industry", |
| | | "style": { |
| | | "navigationBarTitleText": "行业政策", |
| | | "navigationBarBackgroundColor": "#103289", |
| | | "navigationBarTextStyle": "white" |
| | | } |
| | | |
| | | }, { |
| | | "path": "pages/alarm_list/industry/industry_detail", |
| | | "style": { |
| | | "navigationBarTitleText": "行业政策", |
| | | "navigationBarBackgroundColor": "#103289", |
| | | "navigationBarTextStyle": "white" |
| | | } |
| | | |
| | | }, { |
| | | "path": "pages/voting/vote", |
| | | "style": { |
| | | "navigationBarTitleText": "投票发起", |
| | | "navigationBarBackgroundColor": "#103289", |
| | | "navigationBarTextStyle": "white" |
| | | } |
| | | |
| | | }, { |
| | | "path": "pages/voting/voteManage", |
| | | "style": { |
| | | "navigationBarTitleText": "我的投票", |
| | | "navigationBarBackgroundColor": "#103289", |
| | | "navigationBarTextStyle": "white" |
| | | } |
| | | |
| | | }, { |
| | | "path": "pages/voting/voteDetail", |
| | | "style": { |
| | | "navigationBarTitleText": "投票详情", |
| | | "navigationBarBackgroundColor": "#103289", |
| | | "navigationBarTextStyle": "white" |
| | | } |
| | | |
| | | } |
| | | ,{ |
| | | "path" : "pages/alarm_list/integral/integral", |
| | | "style" : |
| | | { |
| | | "navigationBarTitleText": "查积分", |
| | | "navigationBarBackgroundColor": "#103289", |
| | | "navigationBarTextStyle": "white" |
| | | } |
| | | |
| | | } |
| | | ,{ |
| | | "path" : "pages/alarm_list/organ/organ", |
| | | "style" : |
| | | { |
| | | "navigationBarTitleText": "组织申请", |
| | | "navigationBarBackgroundColor": "#103289", |
| | | "navigationBarTextStyle": "white" |
| | | } |
| | | |
| | | } |
| | | ,{ |
| | | "path" : "pages/alarm_list/industry/industry", |
| | | "style" : |
| | | { |
| | | "navigationBarTitleText": "行业政策", |
| | | "navigationBarBackgroundColor": "#103289", |
| | | "navigationBarTextStyle": "white" |
| | | } |
| | | |
| | | } |
| | | ,{ |
| | | "path" : "pages/alarm_list/industry/industry_detail", |
| | | "style" : |
| | | { |
| | | "navigationBarTitleText": "行业政策", |
| | | "navigationBarBackgroundColor": "#103289", |
| | | "navigationBarTextStyle": "white" |
| | | } |
| | | |
| | | } |
| | | ], |
| | | ], |
| | | "globalStyle": { //将组件安装在项目的components目录下,并符合components/组件名称/组件名称.vue目录结构。可以不用引用、注册,直接在页面中使用。 |
| | | "autoscan": true |
| | | }, |
| | |
| | | <view class="bomList"> |
| | | <view class=""> |
| | | <u-dropdown border-bottom="true"> |
| | | <u-dropdown-item v-model="value1" title="收支类型" :options="options1"></u-dropdown-item> |
| | | <u-dropdown-item v-model="value1" @change="change" title="收支类型" :options="options1"></u-dropdown-item> |
| | | </u-dropdown> |
| | | </view> |
| | | |
| | |
| | | goDetail() { |
| | | |
| | | }, |
| | | change(e){ |
| | | alert(e) |
| | | }, |
| | | onReady() { |
| | | let that = this; |
| | | uni.getSystemInfo({ |
| | |
| | | <view class="nav-item-name">通讯录</view> |
| | | </navigator> |
| | | </u-grid-item> |
| | | </u-grid> |
| | | </view> |
| | | </view> |
| | | <!-- 我的订阅 end --> |
| | | |
| | | <view class="card wrap"> |
| | | <view class="title">管理</view> |
| | | <view class="list"> |
| | | <u-grid :col="4" :border="false"> |
| | | <u-grid-item bg-color="transparent"> |
| | | <navigator url="" hover-class="none" class="nav-item"> |
| | | <navigator url="/pages/voting/voteManage" hover-class="none" class="nav-item"> |
| | | <image src="../../static/workbench/task5.png" mode="widthFix" class="nav-item-img"></image> |
| | | <view class="nav-item-name">我的投票</view> |
| | | </navigator> |
| | | </u-grid-item> |
| | | <u-grid-item bg-color="transparent"> |
| | | <navigator url="" hover-class="none" class="nav-item"> |
| | | <navigator url="/pages/voting/vote" hover-class="none" class="nav-item"> |
| | | <image src="../../static/workbench/task6.png" mode="widthFix" class="nav-item-img"></image> |
| | | <view class="nav-item-name">投票发起</view> |
| | | </navigator> |
| | |
| | | </u-grid> |
| | | </view> |
| | | </view> |
| | | <!-- 我的订阅 end --> |
| | | |
| | | </view> |
| | | <!-- 底部导航条 --> |
| | | <u-tabbar :list="tabbar" :mid-button="true"></u-tabbar> |
| | |
| | | width: 5rpx; |
| | | height: 36rpx; |
| | | margin-right: 10rpx; |
| | | background: #3ac4d1; |
| | | background: #103289; |
| | | } |
| | | } |
| | | } |
| | |
| | | box-sizing: border-box; |
| | | } |
| | | |
| | | .but { |
| | | width: 30%; |
| | | margin: 0 auto; |
| | | // .but { |
| | | // width: 30%; |
| | | // margin: 0 auto; |
| | | |
| | | .custom-style { |
| | | background-image: linear-gradient(to right, #08EFF6, #0693FD); |
| | | border-radius: 20px; |
| | | margin-top: 2rem; |
| | | } |
| | | // .custom-style { |
| | | // background-image: linear-gradient(to right, #08EFF6, #0693FD); |
| | | // border-radius: 20px; |
| | | // margin-top: 2rem; |
| | | // } |
| | | // } |
| | | |
| | | .custom-style{ |
| | | margin: 30rpx 70rpx 50rpx; |
| | | border: none; |
| | | width: 572rpx; |
| | | height: 86rpx; |
| | | line-height: 86rpx; |
| | | box-sizing: border-box; |
| | | border-radius: 15rpx; |
| | | background-color: #103289; |
| | | color: #ffffff; |
| | | } |
| | | |
| | | |
| | | .shipMp4img { |
| | | position: absolute; |
| | |
| | | span { |
| | | font-weight: 600; |
| | | font-size: 6vw; |
| | | color: #14b9c8; |
| | | color: #103289; |
| | | } |
| | | } |
| | | .container { |
| | |
| | | line-height: 30rpx; |
| | | |
| | | text { |
| | | color: #14b9c8; |
| | | color: #103289; |
| | | } |
| | | } |
| | | |
| | |
| | | line-height: 86rpx; |
| | | box-sizing: border-box; |
| | | border-radius: 15rpx; |
| | | background-color: #14b9c8; |
| | | background-color: #103289; |
| | | color: #ffffff; |
| | | |
| | | &::after { |
| | |
| | | font-size: 22rpx; |
| | | font-family: Adobe Heiti Std; |
| | | font-weight: normal; |
| | | color: #14b9c8; |
| | | color: #103289; |
| | | line-height: 34rpx; |
| | | } |
| | | |
| | |
| | | .m-top { |
| | | width: 100%; |
| | | height: 12rem; |
| | | border-radius: 0px 0px 12px 12px; |
| | | border-radius: 0rpx 0rpx 60rpx 60rpx; |
| | | background-image: linear-gradient(to bottom, #103289, #174cd1); |
| | | color: #fff; |
| | | flex-direction: column; |
| | |
| | | line-height: 86rpx; |
| | | box-sizing: border-box; |
| | | border-radius: 15rpx; |
| | | background-color: #14b9c8; |
| | | background-color: #103289; |
| | | color: #ffffff; |
| | | |
| | | &::after { |
| | |
| | | <input v-model="place" placeholder="请输入地址" /> |
| | | </view> |
| | | <seeImgs :imgs="[]" :videos="videos" @del="delVideo" :type="'videos'"></seeImgs> |
| | | <view class="form-btn"> |
| | | <!-- <view class="form-btn"> |
| | | <view class="butb" @click="upData">提交</view> |
| | | </view> |
| | | </view> --> |
| | | <u-button class="butb" @click="upData">提交</u-button> |
| | | </view> |
| | | </template> |
| | | |
| | |
| | | for (var i = 0; i < tempFilePath.length; i++) { |
| | | uni.uploadFile({ |
| | | // url: 'https://web.byisf.com/api/blade-jfpts/depl/put-depl', //仅为示例,非真实的接口地址 |
| | | url: that.$store.state.piAPI+'/depl/put-depl', |
| | | url: that.$store.state.piAPI + '/depl/put-depl', |
| | | filePath: tempFilePath[i], |
| | | name: 'file', |
| | | formData: { |
| | |
| | | }) |
| | | uni.uploadFile({ |
| | | // url: 'https://web.byisf.com/api/blade-jfpts/depl/put-depl', |
| | | url: that.$store.state.piAPI+'/depl/put-depl', |
| | | url: that.$store.state.piAPI + '/depl/put-depl', |
| | | filePath: tempFilePath, |
| | | name: 'file', |
| | | formData: { |
| | |
| | | height: 15rem; |
| | | display: flex; |
| | | flex-direction: column; |
| | | border-bottom: 1px solid rgba($color: #f3f3f3, $alpha: 0.7); |
| | | // border-bottom: 1px solid rgba($color: #f3f3f3, $alpha: 0.7); |
| | | |
| | | .title { |
| | | height: 100rpx; |
| | |
| | | textarea { |
| | | // background-color: #00BFFF; |
| | | width: 100%; |
| | | border: 1px solid #808080; |
| | | // border: 1px solid #808080; |
| | | line-height: 1.5; |
| | | font-size: 14px; |
| | | flex: 1; |
| | |
| | | } |
| | | } |
| | | |
| | | .form-btn { |
| | | margin-top: 2rem; |
| | | display: flex; |
| | | justify-content: center; |
| | | |
| | | .butb { |
| | | margin-bottom: 4.5rem; |
| | | width: 100%; |
| | | height: 3rem; |
| | | // border: 1px solid rgb(46, 118, 228); |
| | | border-radius: 8px; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | color: #fff; |
| | | font-weight: 600; |
| | | font-size: 1.4rem; |
| | | letter-spacing: 10px; |
| | | background-image: linear-gradient(to bottom, #3CA7F4, #169BD5); |
| | | } |
| | | .butb { |
| | | margin: 30rpx 50rpx 50rpx; |
| | | border: none; |
| | | width: 572rpx; |
| | | height: 86rpx; |
| | | line-height: 86rpx; |
| | | box-sizing: border-box; |
| | | border-radius: 15rpx; |
| | | background-color: #103289; |
| | | color: #ffffff; |
| | | } |
| | | } |
| | | </style> |
| New file |
| | |
| | | <template> |
| | | <view> |
| | | <view class="content_1"> |
| | | <view class="titleOption">基本信息</view> |
| | | <u-form label-position="top"> |
| | | <u-form-item left-icon="pushpin-fill" :left-icon-style="{ fontSize: '16px', color: '#103289' }" |
| | | label="活动标题" :label-style="{ fontSize: '16px', fontWeight: 'bold' }"> |
| | | <u-input v-model="obj.activityTitle" maxlength="5000" placeholder="请输入活动标题" /> |
| | | </u-form-item> |
| | | <u-form-item :border-bottom="false" left-icon="edit-pen-fill" :left-icon-style="{ fontSize: '16px', color: '#103289' }" |
| | | label="投票介绍" :label-style="{ fontSize: '16px', fontWeight: 'bold' }"> |
| | | <u-input v-model="obj.voteIntroduce" maxlength="5000" placeholder="请输入投票介绍" /> |
| | | </u-form-item> |
| | | </u-form> |
| | | </view> |
| | | |
| | | <view class="content_1 voteOptionContent"> |
| | | <view class="titleOption">选项管理</view> |
| | | <u-form label-position="top"> |
| | | <u-form-item v-for="(item, index) in obj.voteItemlist" :key="index"> |
| | | <view style="display: flex;width: 100%;"> |
| | | <u-icon name="minus-circle" color="#103289" size="32" @click="deleteItem(index)"></u-icon> |
| | | <u-input class="u-input" v-model="item.content" maxlength="5000" placeholder="请输入投票选项" /> |
| | | </view> |
| | | </u-form-item> |
| | | <u-form-item :border-bottom="false"> |
| | | <view @click="addItem()" style="width:100%;"> |
| | | <u-icon name="plus-circle" color="#103289" size="32"></u-icon> |
| | | <text class="addItem">添加选项</text> |
| | | </view> |
| | | </u-form-item> |
| | | </u-form> |
| | | </view> |
| | | <view class="content_1"> |
| | | <view class="titleOption">投票规则</view> |
| | | <u-form class="voteRule"> |
| | | <u-form-item left-icon="clock-fill" :left-icon-style="{ fontSize: '16px', color: '#103289' }" |
| | | label="投票开始时间" :label-style="{ fontSize: '16px', fontWeight: 'bold' }"> |
| | | <view style="width:100%;text-align: end;" @click="ShowStart()"> |
| | | <text>{{ obj.startTime }}</text> |
| | | </view> |
| | | </u-form-item> |
| | | <u-form-item left-icon="clock-fill" :left-icon-style="{ fontSize: '16px', color: '#103289' }" |
| | | label="投票结束时间" :label-style="{ fontSize: '16px', fontWeight: 'bold' }"> |
| | | <view style="width:100%;text-align: end;" @click="ShowEnd()"> |
| | | <text>{{ obj.endTime }}</text> |
| | | </view> |
| | | </u-form-item> |
| | | <u-form-item left-icon="grid-fill" :left-icon-style="{ fontSize: '16px', color: '#103289' }" |
| | | label="投票次数" :label-style="{ fontSize: '16px', fontWeight: 'bold' }"> |
| | | <view style="width:100%;text-align: end;" @click="ShowNun()"> |
| | | <text>{{ obj.voteMoreTxt }}</text> |
| | | <u-icon name="arrow-right" color="#103289" size="32"></u-icon> |
| | | </view> |
| | | </u-form-item> |
| | | <u-form-item :border-bottom="false" left-icon="home-fill" :left-icon-style="{ fontSize: '16px', color: '#103289' }" |
| | | label="是否置顶展示" :label-style="{ fontSize: '16px', fontWeight: 'bold' }"> |
| | | <u-switch slot="right" v-model="obj.switchVal"></u-switch> |
| | | </u-form-item> |
| | | </u-form> |
| | | </view> |
| | | <!-- <view class="content_1" style="padding: 20rpx 0;"> |
| | | <u-button shape="circle" class="custom-style" @click="submitData" :ripple="true">发布投票</u-button> |
| | | </view> --> |
| | | |
| | | <view class="but"> |
| | | <u-button class="custom-style" type="primary" @click="submitData" :ripple="true">发布投票</u-button> |
| | | </view> |
| | | |
| | | <!-- 弹窗 --> |
| | | <u-toast ref="uToast" class="uToast" /> |
| | | <!-- 时间选择弹窗 --> |
| | | <u-picker v-model="startTimeShow" mode="time" :params="params" @confirm="confirmStartTime"></u-picker> |
| | | <!-- 时间选择弹窗 --> |
| | | <u-picker v-model="endTimeShow" mode="time" :params="params" @confirm="confirmEndTime"></u-picker> |
| | | <!-- 投票次数选择 --> |
| | | <u-select v-model="nunShow" mode="mutil-column-auto" :list="numlist" @confirm="confirmNum"></u-select> |
| | | </view> |
| | | </template> |
| | | |
| | | <script> |
| | | export default { |
| | | data() { |
| | | return { |
| | | params: { |
| | | year: true, |
| | | month: true, |
| | | day: true, |
| | | hour: true, |
| | | minute: true |
| | | }, |
| | | startTimeShow: false, |
| | | endTimeShow: false, |
| | | nunShow: false, //投票次数配置 |
| | | numlist: [{ |
| | | value: 1, |
| | | label: '每天', |
| | | children: [{ |
| | | value: 1, |
| | | label: '1次' |
| | | }, |
| | | { |
| | | value: 2, |
| | | label: '2次' |
| | | }, |
| | | { |
| | | value: 3, |
| | | label: '3次' |
| | | }, |
| | | { |
| | | value: 4, |
| | | label: '4次' |
| | | }, |
| | | { |
| | | value: 5, |
| | | label: '5次' |
| | | }, |
| | | { |
| | | value: 6, |
| | | label: '6次' |
| | | }, |
| | | { |
| | | value: 7, |
| | | label: '7次' |
| | | }, |
| | | { |
| | | value: 8, |
| | | label: '8次' |
| | | }, |
| | | { |
| | | value: 9, |
| | | label: '9次' |
| | | }, |
| | | { |
| | | value: 10, |
| | | label: '10次' |
| | | }, |
| | | { |
| | | value: 11, |
| | | label: '11次' |
| | | }, |
| | | { |
| | | value: 12, |
| | | label: '12次' |
| | | }, |
| | | { |
| | | value: 13, |
| | | label: '13次' |
| | | }, |
| | | { |
| | | value: 14, |
| | | label: '14次' |
| | | }, |
| | | { |
| | | value: 15, |
| | | label: '15次' |
| | | }, |
| | | { |
| | | value: 16, |
| | | label: '16次' |
| | | }, |
| | | { |
| | | value: 17, |
| | | label: '17次' |
| | | }, |
| | | { |
| | | value: 18, |
| | | label: '18次' |
| | | }, |
| | | { |
| | | value: 19, |
| | | label: '19次' |
| | | }, |
| | | { |
| | | value: 20, |
| | | label: '20次' |
| | | } |
| | | ] |
| | | }, |
| | | { |
| | | value: 2, |
| | | label: '总共', |
| | | children: [{ |
| | | value: 1, |
| | | label: '1次' |
| | | }, |
| | | { |
| | | value: 2, |
| | | label: '2次' |
| | | }, |
| | | { |
| | | value: 3, |
| | | label: '3次' |
| | | }, |
| | | { |
| | | value: 4, |
| | | label: '4次' |
| | | }, |
| | | { |
| | | value: 5, |
| | | label: '5次' |
| | | }, |
| | | { |
| | | value: 6, |
| | | label: '6次' |
| | | }, |
| | | { |
| | | value: 7, |
| | | label: '7次' |
| | | }, |
| | | { |
| | | value: 8, |
| | | label: '8次' |
| | | }, |
| | | { |
| | | value: 9, |
| | | label: '9次' |
| | | }, |
| | | { |
| | | value: 10, |
| | | label: '10次' |
| | | }, |
| | | { |
| | | value: 11, |
| | | label: '11次' |
| | | }, |
| | | { |
| | | value: 12, |
| | | label: '12次' |
| | | }, |
| | | { |
| | | value: 13, |
| | | label: '13次' |
| | | }, |
| | | { |
| | | value: 14, |
| | | label: '14次' |
| | | }, |
| | | { |
| | | value: 15, |
| | | label: '15次' |
| | | }, |
| | | { |
| | | value: 16, |
| | | label: '16次' |
| | | }, |
| | | { |
| | | value: 17, |
| | | label: '17次' |
| | | }, |
| | | { |
| | | value: 18, |
| | | label: '18次' |
| | | }, |
| | | { |
| | | value: 19, |
| | | label: '19次' |
| | | }, |
| | | { |
| | | value: 20, |
| | | label: '20次' |
| | | } |
| | | ] |
| | | } |
| | | ], |
| | | obj: { |
| | | pageview: 0, |
| | | activityTitle: '', |
| | | voteIntroduce: '', |
| | | voteItemlist: [{ |
| | | index: 1, |
| | | vote: 0, //票数 |
| | | content: '' |
| | | }, |
| | | { |
| | | index: 2, |
| | | vote: 0, //票数 |
| | | content: '' |
| | | } |
| | | ], |
| | | startTime: this.getTime(), |
| | | endTime: this.getTomorrow(), |
| | | voteMoreTxt: '总共1次', |
| | | voteMore: '1', |
| | | updateInfo: [], //更新用户信息 |
| | | switchVal: true, |
| | | status: 1, |
| | | openid: '', |
| | | creatUserInfo: '', |
| | | voteType: 'textVote' |
| | | } |
| | | }; |
| | | }, |
| | | methods: { |
| | | addItem() { |
| | | this.obj.voteItemlist.push({ |
| | | index: this.obj.voteItemlist.length + 1, |
| | | vote: 0, |
| | | content: '' |
| | | }); |
| | | }, |
| | | deleteItem(index) { |
| | | if (this.obj.voteItemlist.length == 2) { |
| | | this.$refs.uToast.show({ |
| | | title: '至少要有两个投票选项', |
| | | type: 'error', |
| | | position: 'top' |
| | | }); |
| | | return false; |
| | | } |
| | | this.obj.voteItemlist.splice(index, 1); |
| | | }, |
| | | ShowStart() { |
| | | this.startTimeShow = true; |
| | | }, |
| | | ShowEnd() { |
| | | this.endTimeShow = true; |
| | | }, |
| | | ShowNun() { |
| | | this.nunShow = true; |
| | | }, |
| | | confirmStartTime(obj) { |
| | | this.obj.startTime = `${obj.year}-${obj.month}-${obj.day} ${obj.hour}:${obj.minute}`; |
| | | }, |
| | | confirmEndTime(obj) { |
| | | this.obj.endTime = `${obj.year}-${obj.month}-${obj.day} ${obj.hour}:${obj.minute}`; |
| | | }, |
| | | confirmNum(obj) { |
| | | this.obj.voteMoreTxt = `${obj[0].label}${obj[1].label}`; |
| | | this.obj.voteMore = obj[1].value; |
| | | }, |
| | | submitData() { |
| | | uni.showLoading({ |
| | | title: '发布中' |
| | | }); |
| | | if (this.formVerify()) { |
| | | this.obj.creatUserInfo = uni.getStorageSync('userInfo'); |
| | | this.obj.openid = uni.getStorageSync('userInfo').openid; |
| | | //判断开始时间是否小于结束时间 小于只改为进行中状态2 |
| | | if (this.compare(this.obj.startTime, this.getTime()) == true) { |
| | | this.obj.status = 2; |
| | | } |
| | | let app = this; |
| | | uniCloud.callFunction({ |
| | | name: 'add_vote', |
| | | data: this.obj, |
| | | success(res) { |
| | | uni.hideLoading(); |
| | | if (res.result.code == 200) { |
| | | uni.showToast({ |
| | | title: res.result.msg, |
| | | duration: 2000 |
| | | }); |
| | | setTimeout(() => { |
| | | app.clearData(); |
| | | uni.switchTab({ |
| | | url: '/pages/index/index' |
| | | }); |
| | | }, 500); |
| | | } else { |
| | | app.$refs.uToast.show({ |
| | | title: res.result.msg, |
| | | type: 'error', |
| | | position: 'top' |
| | | }); |
| | | } |
| | | }, |
| | | fail(error) { |
| | | uni.hideLoading(); |
| | | app.$refs.uToast.show({ |
| | | title: '发布失败,请稍后重试!', |
| | | type: 'error', |
| | | position: 'top' |
| | | }); |
| | | } |
| | | }); |
| | | } else { |
| | | uni.hideLoading(); |
| | | } |
| | | }, |
| | | formVerify() { |
| | | for (let i = 0; i < this.obj.voteItemlist.length; i++) { |
| | | if (this.obj.voteItemlist[i].content == '') { |
| | | this.$refs.uToast.show({ |
| | | title: `请填写第${i + 1}个投票选项`, |
| | | type: 'error', |
| | | position: 'top' |
| | | }); |
| | | return false; |
| | | } |
| | | } |
| | | if (this.obj.activityTitle == '') { |
| | | this.$refs.uToast.show({ |
| | | title: `请填写活动标题`, |
| | | type: 'error', |
| | | position: 'top' |
| | | }); |
| | | return false; |
| | | } else if (this.obj.voteIntroduce == '') { |
| | | this.$refs.uToast.show({ |
| | | title: `请填写投票介绍`, |
| | | type: 'error', |
| | | position: 'top' |
| | | }); |
| | | return false; |
| | | } else if (this.compare(this.obj.startTime, this.obj.endTime) == false) { |
| | | this.$refs.uToast.show({ |
| | | title: `投票开始时间不能大于结束时间`, |
| | | type: 'error', |
| | | position: 'top' |
| | | }); |
| | | return false; |
| | | } |
| | | return true; |
| | | }, |
| | | compare(date1, date2) { |
| | | var oDate1 = new Date(date1); |
| | | var oDate2 = new Date(date2); |
| | | if (oDate1.getTime() > oDate2.getTime()) { |
| | | return false; //1d |
| | | } else { |
| | | return true; //2d |
| | | } |
| | | }, |
| | | clearData() { |
| | | this.obj = { |
| | | pageview: 0, |
| | | activityTitle: '', |
| | | voteIntroduce: '', |
| | | voteItemlist: [{ |
| | | index: 1, |
| | | vote: 0, //票数 |
| | | content: '' |
| | | }, |
| | | { |
| | | index: 2, |
| | | vote: 0, //票数 |
| | | content: '' |
| | | } |
| | | ], |
| | | startTime: this.getTime(), |
| | | endTime: this.getTomorrow(), |
| | | voteMoreTxt: '总共1次', |
| | | voteMore: '1', |
| | | updateInfo: [], //更新用户信息 |
| | | switchVal: true, |
| | | status: 1, |
| | | openid: '', |
| | | creatUserInfo: '', |
| | | voteType: 'textVote' |
| | | }; |
| | | }, |
| | | // 获取当前时间 |
| | | getTime() { |
| | | let date = new Date(); |
| | | let y = date.getFullYear(); |
| | | let m = date.getMonth() + 1; |
| | | let d = date.getDate(); |
| | | let h = date.getHours(); |
| | | let min = date.getMinutes(); |
| | | // let s = date.getSeconds() |
| | | if (m >= 1 && m <= 9) { |
| | | m = `0${m}`; |
| | | } |
| | | if (d >= 1 && d <= 9) { |
| | | d = `0${d}`; |
| | | } |
| | | if (h >= 0 && h <= 9) { |
| | | h = `0${h}`; |
| | | } |
| | | if (min >= 0 && min <= 9) { |
| | | min = `0${min}`; |
| | | } |
| | | // if (s >= 0 && s <= 9) { min = `0${s}` } |
| | | return `${y}-${m}-${d} ${h}:${min}`; |
| | | }, |
| | | // 获取当前时间的明天 |
| | | getTomorrow() { |
| | | let date = new Date(); |
| | | let y = date.getFullYear(); |
| | | let m = date.getMonth() + 1; |
| | | let d = date.getDate() + 1; |
| | | let h = date.getHours(); |
| | | let min = date.getMinutes(); |
| | | // let s = date.getSeconds() |
| | | if (m >= 1 && m <= 9) { |
| | | m = `0${m}`; |
| | | } |
| | | if (d >= 1 && d <= 9) { |
| | | d = `0${d}`; |
| | | } |
| | | if (h >= 0 && h <= 9) { |
| | | h = `0${h}`; |
| | | } |
| | | if (min >= 0 && min <= 9) { |
| | | min = `0${min}`; |
| | | } |
| | | // if (s >= 0 && s <= 9) { min = `0${s}` } |
| | | return `${y}-${m}-${d} ${h}:${min}`; |
| | | } |
| | | } |
| | | }; |
| | | </script> |
| | | |
| | | <style lang="scss"> |
| | | page { |
| | | background: #f7f7f7; |
| | | } |
| | | |
| | | .content_1 { |
| | | margin: 40rpx 30rpx 40rpx 30rpx; |
| | | background: #ffffff; |
| | | padding: 10rpx 20rpx 10rpx 20rpx; |
| | | border-radius: 20rpx; |
| | | } |
| | | |
| | | .titleOption { |
| | | padding: 36rpx 16rpx; |
| | | display: flex; |
| | | align-items: center; |
| | | font-size: 32rpx; |
| | | font-family: Source Han Sans CN; |
| | | font-weight: 500; |
| | | color: #000000; |
| | | |
| | | &::before { |
| | | content |
| | | : ""; |
| | | display: block; |
| | | width: 5rpx; |
| | | height: 36rpx; |
| | | margin-right: 10rpx; |
| | | background: #103289; |
| | | } |
| | | } |
| | | |
| | | .voteOptionContent { |
| | | .voteOptionContentTit { |
| | | padding: 0; |
| | | } |
| | | |
| | | .u-input { |
| | | width: 98%; |
| | | margin-left: 10rpx; |
| | | } |
| | | |
| | | .addItem { |
| | | margin-left: 20rpx; |
| | | } |
| | | } |
| | | |
| | | .uToast { |
| | | /deep/.u-text { |
| | | min-width: 300rpx; |
| | | } |
| | | } |
| | | |
| | | .voteRule { |
| | | /deep/.u-form-item--left { |
| | | width: auto !important; |
| | | flex: none !important; |
| | | } |
| | | } |
| | | |
| | | .custom-style { |
| | | background: #103289 !important; |
| | | color: #ffffff !important; |
| | | |
| | | /deep/ .u-btn--default { |
| | | background: #103289 !important; |
| | | color: #ffffff !important; |
| | | } |
| | | } |
| | | |
| | | .custom-style { |
| | | margin: 30rpx 85rpx 50rpx; |
| | | border: none; |
| | | width: 572rpx; |
| | | height: 86rpx; |
| | | line-height: 86rpx; |
| | | box-sizing: border-box; |
| | | border-radius: 15rpx; |
| | | background-color: #103289; |
| | | color: #ffffff; |
| | | } |
| | | </style> |
| New file |
| | |
| | | <template> |
| | | <view> |
| | | <view class="initiatorInfo"> |
| | | <view class="Info1"> |
| | | <u-avatar :src="src" class="uavatar"></u-avatar> |
| | | <view class="infotxt"> |
| | | <view class="name">{{ creatName }}</view> |
| | | <view class="fqr_txt">投票发起人</view> |
| | | </view> |
| | | </view> |
| | | <view class="Info2"> |
| | | <view class="tp_status"> |
| | | <u-tag text="待开始" v-if="data.status == 1" type="warning" mode="light" size="mini" /> |
| | | <u-tag text="投票中" v-if="data.status == 2" type="success" mode="light" size="mini" /> |
| | | <u-tag text="已结束" v-if="data.status == 3" type="info" mode="light" size="mini" /> |
| | | </view> |
| | | <view class="enddate" v-if="data.status != 1">{{ data.endTime }} 结束</view> |
| | | <view class="enddate" v-else>{{ data.startTime }} 开始</view> |
| | | </view> |
| | | </view> |
| | | |
| | | <view class="titInfo1"> |
| | | <view class="tit">{{ data.activityTitle }}</view> |
| | | <view class="sharer_"> |
| | | <u-button size="mini" @click="rankingBtn"> |
| | | 票数排名<u-icon name="arrow-right"></u-icon> |
| | | </u-button> |
| | | </view> |
| | | </view> |
| | | |
| | | |
| | | <view class="hd_rule"> |
| | | <view class=""> |
| | | <u-tag text="投票规则" type="warning" mode="dark" bg-color="#103289" /> |
| | | </view> |
| | | <view class="item_rule"> |
| | | <view class="startTit">开始时间</view> |
| | | <view class="">{{ data.startTime }}</view> |
| | | </view> |
| | | <view class="item_rule"> |
| | | <view class="startTit">结束时间</view> |
| | | <view class="">{{ data.endTime }}</view> |
| | | </view> |
| | | <view class="item_rule"> |
| | | <view class="startTit">投票规则</view> |
| | | <view class="">每人{{ data.voteMoreTxt }}</view> |
| | | </view> |
| | | </view> |
| | | <view class="hd_rule"> |
| | | <view class=""> |
| | | <u-tag text="投票详情" type="warning" mode="dark" bg-color="#103289" /> |
| | | </view> |
| | | <view class="item_rule"> |
| | | <view>{{ data.voteIntroduce }}</view> |
| | | </view> |
| | | </view> |
| | | |
| | | <view class="hdOption" :style="data.voteType=='videoTextVote'?'flex-wrap:wrap;':'flex-wrap:nowrap;'" |
| | | v-for="(item, index) in data.voteItemlist" :key="index"> |
| | | <view class="imgOption" v-if="data.voteType=='ImageTextVote'"> |
| | | <image @click="selectImage(item.imgList)" :src="item.imgList[0]" |
| | | style="width:110rpx;height:110rpx;overflow:hidden;border-radius: 10rpx;"></image> |
| | | </view> |
| | | <view class="videoOption" v-if="data.voteType=='videoTextVote'"> |
| | | <video :src="item.video" style="width:100%;height:100%;"></video> |
| | | </view> |
| | | <view :class="activeItem == index ? 'hdOptionBtn active-bgc' : 'hdOptionBtn'" |
| | | @click="selectItme(index, item)"> |
| | | <text>{{ item.content }}</text> |
| | | <u-count-to :start-val="0" font-size="40" :end-val="item.vote+''" class="voteNum"></u-count-to> |
| | | <!-- <u-icon name="checkbox-mark" color="#2979ff" size="28"></u-icon> --> |
| | | </view> |
| | | </view> |
| | | |
| | | <view class="zwf_"></view> |
| | | <!-- <view class="content_1"> |
| | | <u-button shape="circle" class="custom-style" @click="submitData" :ripple="true">投票</u-button> |
| | | </view> --> |
| | | |
| | | <view class="but"> |
| | | <u-button class="custom-style" type="primary" @click="submitData" :ripple="true">投票</u-button> |
| | | </view> |
| | | |
| | | </view> |
| | | </template> |
| | | |
| | | <script> |
| | | export default { |
| | | data() { |
| | | return { |
| | | banner: '', |
| | | src: '', |
| | | creatName: '', |
| | | data: '', |
| | | activeItem: '*', |
| | | activeobj: {}, |
| | | } |
| | | }, |
| | | onLoad(event) { |
| | | // TODO 后面把参数名替换成 payload |
| | | const payload = event.detailDate || event.payload; |
| | | // 目前在某些平台参数会被主动 decode,暂时这样处理。 |
| | | try { |
| | | this.banner = JSON.parse(decodeURIComponent(payload)); |
| | | } catch (error) { |
| | | this.banner = JSON.parse(payload); |
| | | } |
| | | console.log(this.banner); |
| | | uni.setNavigationBarTitle({ |
| | | title: this.banner.title |
| | | }); |
| | | this.getDetail(); |
| | | console.log(this.getUrl()); |
| | | }, |
| | | //分享给朋友 |
| | | onShareAppMessage(res) { |
| | | return { |
| | | title: this.banner.title, |
| | | path: this.getUrl(), |
| | | success: res => { |
| | | console.info(res) |
| | | } |
| | | } |
| | | }, |
| | | //分享到朋友圈 |
| | | onShareTimeline(res) { |
| | | return { |
| | | title: "迅投,快来投票吧!", |
| | | query: this.getUrl(), |
| | | } |
| | | }, |
| | | filters: { |
| | | total(data) { |
| | | let num = 0; |
| | | for (let i = 0; i < data.length; i++) { |
| | | num = num + data[i].vote; |
| | | } |
| | | return num; |
| | | } |
| | | }, |
| | | methods: { |
| | | getUrl() { |
| | | let pages = getCurrentPages() //获取加载的页面 |
| | | let currentPage = pages[pages.length - 1] //获取当前页面的对象 |
| | | let url = currentPage.route //当前页面url |
| | | let options = currentPage.options //如果要获取url中所带的参数可以查看options 参数多时通过&拼接url的参数 |
| | | let urlWithArgs = url + '?' |
| | | for (let key in options) { |
| | | let value = options[key] |
| | | urlWithArgs += key + '=' + value + '&' |
| | | } |
| | | urlWithArgs = urlWithArgs.substring(0, urlWithArgs.length - 1) |
| | | return urlWithArgs; |
| | | }, |
| | | // 进入排名 |
| | | rankingBtn() { |
| | | let detail = this.banner; |
| | | uni.navigateTo({ |
| | | url: "../rankinglist/rankinglist?detailDate=" + |
| | | encodeURIComponent(JSON.stringify(detail)), |
| | | }); |
| | | }, |
| | | getDetail() { |
| | | uni.showLoading({ |
| | | title: '加载中...', |
| | | mask: true |
| | | }); |
| | | let that = this; |
| | | console.log(that.banner.type); |
| | | uniCloud.callFunction({ |
| | | name: 'getDetail', |
| | | data: { |
| | | _id: that.banner._id, |
| | | type: that.banner.type |
| | | }, |
| | | success(res) { |
| | | uni.hideLoading(); |
| | | console.log(res); |
| | | if (res.result.data) { |
| | | that.data = res.result.data[0]; |
| | | that.src = that.data.creatUserInfo.avatarUrl; |
| | | that.creatName = that.data.creatUserInfo.nickName; |
| | | that.updateView(); |
| | | } |
| | | }, |
| | | fail(error) { |
| | | uni.hideLoading(); |
| | | that.$operate.toast({ |
| | | title: '网络请求错误!' |
| | | }); |
| | | } |
| | | }); |
| | | }, |
| | | updateView() { |
| | | let that = this; |
| | | uniCloud.callFunction({ |
| | | name: 'updatePageView', |
| | | data: { |
| | | name: that.banner.type, |
| | | _id: that.banner._id, |
| | | hot_id: that.data.hot_id, |
| | | voteType: that.data.voteType, |
| | | switchVal: that.data.switchVal |
| | | }, |
| | | success(res) { |
| | | console.log(res); |
| | | if (res.result.data) { |
| | | that.data = res.result.data[0]; |
| | | that.src = that.data.creatUserInfo.avatarUrl; |
| | | that.creatName = that.data.creatUserInfo.nickName; |
| | | } |
| | | }, |
| | | fail(error) { |
| | | that.$operate.toast({ |
| | | title: '网络请求错误!' |
| | | }); |
| | | } |
| | | }); |
| | | }, |
| | | selectItme(index, item) { |
| | | this.activeItem = index; |
| | | this.activeobj = item; |
| | | console.log(index, item); |
| | | }, |
| | | selectImage(url) { |
| | | uni.previewImage({ |
| | | urls: url, |
| | | current: 0 |
| | | }); |
| | | }, |
| | | submitData() { |
| | | if (JSON.stringify(this.activeobj) != '{}') { |
| | | let that = this; |
| | | uni.showLoading({ |
| | | title: '提交中...', |
| | | mask: true |
| | | }); |
| | | // uniCloud.callFunction({ |
| | | // name: 'update_vote', |
| | | // data: { |
| | | // name: that.banner.type, |
| | | // voteType:that.data.voteType, |
| | | // hot_id:that.data.hot_id, |
| | | // _id: that.banner._id, |
| | | // voteData: that.activeobj, |
| | | // userInfo: uni.getStorageSync('userInfo'), |
| | | // switchVal: that.data.switchVal, |
| | | // vcs:{ |
| | | // voteMoreTxt: that.data.voteMoreTxt, |
| | | // voteMore: that.data.voteMore, |
| | | // } |
| | | // }, |
| | | // success(res) { |
| | | // uni.hideLoading(); |
| | | // console.log(res); |
| | | // if (res.result.updated) { |
| | | // that.data.voteItemlist[that.activeItem].vote++; |
| | | // that.activeItem = '*'; |
| | | // that.activeobj = {}; |
| | | // uni.showToast({ |
| | | // title: "投票成功", |
| | | // duration: 2000 |
| | | // }); |
| | | // } else { |
| | | // that.$operate.toast({ |
| | | // title: res.result.msg |
| | | // }) |
| | | // } |
| | | // }, |
| | | // fail(error) { |
| | | // console.log(error); |
| | | // uni.hideLoading(); |
| | | // that.$operate.toast({ |
| | | // title: '网络请求错误!' |
| | | // }); |
| | | // } |
| | | // }); |
| | | } else { |
| | | this.$operate.toast({ |
| | | title: '请选择投票项!' |
| | | }); |
| | | } |
| | | } |
| | | } |
| | | }; |
| | | </script> |
| | | |
| | | <style lang="scss"> |
| | | page { |
| | | background: #ffffff; |
| | | } |
| | | |
| | | .initiatorInfo { |
| | | background: #ffffff; |
| | | display: flex; |
| | | justify-content: space-between; |
| | | align-items: center; |
| | | padding: 30rpx; |
| | | |
| | | .Info1 { |
| | | display: flex; |
| | | align-items: center; |
| | | |
| | | .uavatar { |
| | | margin-right: 20rpx; |
| | | } |
| | | } |
| | | |
| | | .name, |
| | | .tp_status { |
| | | line-height: 60rpx; |
| | | } |
| | | |
| | | .tp_status { |
| | | text-align: right; |
| | | } |
| | | |
| | | .fqr_txt, |
| | | .enddate { |
| | | color: #bababa; |
| | | // line-height: 40rpx; |
| | | } |
| | | } |
| | | |
| | | .titInfo1 { |
| | | padding: 0 30rpx; |
| | | margin-top: 40rpx; |
| | | display: flex; |
| | | |
| | | .tit { |
| | | // text-align: center; |
| | | font-size: 36rpx; |
| | | width: 85%; |
| | | margin-right: 20rpx; |
| | | } |
| | | |
| | | .sharer_ {} |
| | | } |
| | | |
| | | .hd_rule { |
| | | padding: 30rpx; |
| | | font-size: 32rpx; |
| | | |
| | | .item_rule { |
| | | margin: 36rpx 0; |
| | | display: flex; |
| | | |
| | | .startTit { |
| | | width: 200rpx; |
| | | font-weight: 600; |
| | | } |
| | | } |
| | | } |
| | | |
| | | .hdOption { |
| | | margin-bottom: 40rpx; |
| | | display: flex; |
| | | padding: 0 15px; |
| | | |
| | | .imgOption { |
| | | width: 110rpx; |
| | | height: 110rpx; |
| | | margin-right: 40rpx; |
| | | flex-grow: 0; |
| | | felx-shrink: 0; |
| | | } |
| | | |
| | | .videoOption { |
| | | width: 100%; |
| | | height: 400rpx; |
| | | } |
| | | |
| | | .hdOptionBtn { |
| | | border: 1px solid #dcdcdc; |
| | | padding: 36rpx; |
| | | width: 100%; |
| | | border-radius: 10rpx; |
| | | font-size: 40rpx; |
| | | } |
| | | |
| | | .voteNum { |
| | | margin-left: 20rpx; |
| | | float: right; |
| | | } |
| | | } |
| | | |
| | | .custom-style { |
| | | margin: 30rpx 85rpx 50rpx; |
| | | border: none; |
| | | width: 572rpx; |
| | | height: 86rpx; |
| | | line-height: 86rpx; |
| | | box-sizing: border-box; |
| | | border-radius: 15rpx; |
| | | background-color: #103289; |
| | | color: #ffffff; |
| | | } |
| | | |
| | | .zwf_ { |
| | | height: 140rpx; |
| | | } |
| | | |
| | | .active-bgc { |
| | | border-color: #103289 !important; |
| | | background-color: #fbeadc; |
| | | } |
| | | </style> |
| New file |
| | |
| | | <template> |
| | | <view> |
| | | |
| | | </view> |
| | | </template> |
| | | |
| | | <script> |
| | | export default { |
| | | data() { |
| | | return { |
| | | |
| | | } |
| | | }, |
| | | methods: { |
| | | |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style> |
| | | |
| | | </style> |