123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386 |
- <template>
- <view class="InviteFriends">
- <ujp-navbar title="朋友圈集赞领优惠券"></ujp-navbar>
- <view class="InviteFriends-head">
- <u-image width="298rpx" class="img1" height="64rpx" src="@/assets/static/img/logo3Ud.png"></u-image>
- <u-image width="350rpx" class="img2" style="margin-top: 28rpx ;" height="142rpx"
- src="@/assets/img/20250625/info3-1.png"></u-image>
- </view>
- <view class="body">
- <view class="title">活动时间:</view>
- <view class="text">2025年7月10日至7月24日</view>
- <view class="title">活动规则:</view>
- <view class="text">转发
- <span style="color: red;">本次活动推文至朋友圈</span>,集齐18个赞,可领<span
- style="color: red;">10元服务费抵扣券</span>,限{{totalNum}}张,领完即止, 先后顺序以上传时间为准。(每个微信仅可参与1次)
- </view>
- <view class="title"><span style="color: red;">*</span>上传截图(仅需上传1张截图)</view>
- <view class="text">
- <view class="cameraImg" v-if="!authImg" @click="uploadPhoto">
- <img class="camera" src="@/assets/img/camera-fill.svg" alt="">
-
- </view>
- <view class="cameraImg2" v-else @click="uploadPhoto">
- <img class="camera" :src="authImg" alt="">
-
- </view>
-
- <u-button type="info" v-if="totalNum<=examineNum"
-
- shape="circle">活动已结束</u-button>
-
- <u-button type="warning" v-else-if="byUser.length==0" @click="submit"
-
- shape="circle">提交</u-button>
-
- <u-button type="info" v-else
-
- shape="circle">已提交</u-button>
- </view>
- <view class="title">您的进度:</view>
- <view class="text">
- <u-steps :list="numList" active-color="#00B962" mode="number" :current="current"></u-steps>
- </view>
- </view>
- <view class="body">
- <view class="title">发放记录<span style="color: red;" v-if="totalNum>examineNum">(仅剩{{totalNum-examineNum}}张)</span> </view>
- <view class="list">
- <view class="item" v-for="(item,index) in informationList" :key="index" v-show="showBt||index<5">
- <view class="name">
- <u-avatar src="@/assets/img/head.png" size="48"></u-avatar>
-
- {{substringTxt(item.createByName,1)}}******
- </view>
- <view class="phone">
- {{substringTxt(item.phone,3)}}******
- </view>
- <view class="time">
- {{formatTimeAgo(item.createTime)}}
- </view>
- </view>
-
- </view>
- <u-divider margin-top="20" bg-color="#F2F4F4" @click="showBt=true" v-if="!showBt&&informationList.length>5">点击查看全部</u-divider>
-
- </view>
- </view>
- </template>
- <script>
-
- import * as API from '@/apis/temporary.js'
-
- export default {
- data() {
- return {
- authImg: "",
- current: -1,
- numList: [{
- name: '提交截图'
- }, {
- name: '后台审核'
- }, {
- name: '发放奖券'
- }, ],
- informationList:[],
- acInfo:{},
- byUser:{},
- totalNum:0,
- examineNum:0,
- showBt:false,
-
-
- }
- },
- onReady() {
- this.getInfo()
- this.getList()
- },
- methods: {
-
- formatTimeAgo(inputTime) {
- // 转换输入为Date对象
- const inputDate = typeof inputTime === 'string'
- ? new Date(inputTime)
- : inputTime;
-
- // 计算时间差(毫秒)
- const now = new Date();
- const diffMs = now - inputDate;
-
- // 各时间单位的毫秒数
- const minuteMs = 60 * 1000;
- const hourMs = 60 * minuteMs;
- const dayMs = 24 * hourMs;
-
- // 根据时间差返回不同格式
- if (diffMs < minuteMs) {
- return '刚刚';
- } else if (diffMs < hourMs) {
- const minutes = Math.floor(diffMs / minuteMs);
- return `${minutes}分钟前`;
- } else if (diffMs < dayMs) {
- const hours = Math.floor(diffMs / hourMs);
- return `${hours}小时前`;
- } else {
- const days = Math.floor(diffMs / dayMs);
- return `${days}天前`;
- }
- },
-
- substringTxt(t,num){
- if(t){
- return t.substring(0,num)
- }else{
- return ''
- }
- },
-
- submit(){
- if(this.byUser.length){
- return
- }
- if(!this.authImg){
- uni.showToast({
- title: "请上传朋友圈点赞截图"
- })
- return
- }
- var obj=[{"name":"","value":this.authImg,"type":"img"}]
-
- uni.showLoading({
- title: "加载中",
- mask: true,
- })
- API.loginSubmit({
- openId:this.carhelp.getOpenId(),
- type:"3",
- content:JSON.stringify(obj)
- }).then((res) => {
- //this.byUser = res.data.helpList
- uni.showModal({
- title:"提示",
- content: "操作成功",
- showCancel: false,
- success: res => {
-
- }
- })
-
- uni.hideLoading()
- this.getInfo()
- }).catch(error => {
- uni.showToast({
- title: error
- })
- })
- },
- getInfo(){
- uni.showLoading({
- title: "加载中",
- mask: true,
- })
- API.informationByUser({
- type:"3"
- }).then((res) => {
- this.byUser = res.data.joinList
-
- if(this.byUser.length){
- this.current=0
- var item= this.byUser[0]
- if(item.examine){
- this.current=1
- if(item.status){
- this.current=2
- }
- }
- }
- uni.hideLoading()
-
- }).catch(error => {
- uni.showToast({
- title: error
- })
- })
- },
- getList(){
-
- API.informationList({
- type:"3",
- pageSize:200
- }).then((res) => {
- this.informationList = res.data.joinList
-
- this.informationList =this.informationList.sort((a1,a2)=>{
-
- return a1.createTime>a2.createTime?-1:1
- })
- this.examineNum=res.data.examineNum
- this.totalNum=res.data.totalNum
-
- // this.examineNum=100
- // this.totalNum=99
- }).catch(error => {
- uni.showToast({
- title: error
- })
- })
- },
- uploadPhoto() {
- if(this.byUser.length||this.totalNum<=this.examineNum){
- return
- }
- uni.chooseImage({
- count: 1,
- sizeType: ['compressed'],
- success: async (res) => {
- console.log(res)
- var imageSrc = res.tempFilePaths[0]
- this.uploadFile(imageSrc);
- },
- fail: (err) => {
- console.log('chooseImage fail', err)
- }
- })
- },
- uploadFile(imageSrc) {
- var action = process.car.BASE_URL + "uploadPicture"
- var token = this.carhelp.getToken()
- var header = {
- 'Authorization': token
- }
- var formData = {
- subFolder: "/team51/20250625v4"
- }
- var _this = this
- uni.showLoading({
- title: '上传中'
- })
- uni.uploadFile({
- url: action, //仅为示例,非真实的接口地址
- filePath: imageSrc,
- name: 'photoFile',
- header: header,
- formData: formData,
- success: (res) => {
- uni.hideLoading();
- uni.showToast({
- title: '上传成功',
- icon: 'success',
- duration: 1000
- })
- _this.authImg = JSON.parse(res.data).data
- _this.$forceUpdate()
- },
- fail: (err) => {
- console.log('uploadImage fail', err);
- uni.hideLoading();
- uni.showModal({
- content: err.errMsg,
- showCancel: false
- });
- },
- });
- },
- }
- }
- </script>
- <style lang="scss" scoped>
- .InviteFriends {
- background: linear-gradient(180deg, rgba(31, 85, 255, 1) 0%, rgba(39, 171, 255, 1) 100%);
- padding-bottom: 160rpx;
- }
- .InviteFriends-head {
- display: flex;
- flex-direction: column;
- align-items: center;
- .img1 {
- margin-top: 52rpx;
- }
- }
- .body {
- border-radius: 16px;
- background-color: rgba(255, 255, 255, 1);
- padding: 40rpx 36rpx;
- margin: 48rpx;
- .title {
- font-size: 36rpx;
- margin-bottom: 16rpx;
- color: rgba(16, 16, 16, 1);
- font-weight: bold;
- }
- .text {
- margin-bottom: 40rpx;
- font-size: 28rpx;
- color: rgba(51, 51, 51, 1);
- }
- .list {
- margin-top: 24rpx;
- .item {
- display: flex;
- justify-content: space-between;
- margin-bottom: 16rpx;
- align-items: center;
- .name {
- display: flex;
- align-items: center;
- }
- }
- }
- }
- .cameraImg {
- background-color: #D5D7D9;
- width: 160rpx;
- height: 160rpx;
- border-radius: 4px;
- padding: 60rpx;
- margin-bottom: 40rpx;
- }
- .cameraImg2 {
- background-color: #D5D7D9;
-
- border-radius: 4px;
- //padding: 60rpx;
- margin-bottom: 40rpx;
- width: 160rpx;
- height: 160rpx;
- .camera{
- width: 160rpx;
- height: 160rpx;
- }
- }
- </style>
|