Compare commits
15 Commits
d524d11596
...
cedb41c720
Author | SHA1 | Date |
---|---|---|
|
cedb41c720 | 11 months ago |
|
c896a53df9 | 11 months ago |
|
ee0cba27c6 | 11 months ago |
|
c61409f926 | 11 months ago |
|
674b16f9de | 11 months ago |
|
59fb2020f0 | 11 months ago |
|
46b45ccac4 | 11 months ago |
|
13b2f7f6f8 | 11 months ago |
|
c6be276bc1 | 11 months ago |
|
c9a3fa0ede | 11 months ago |
|
3c86775442 | 11 months ago |
|
086857493f | 12 months ago |
|
8429ee9366 | 12 months ago |
|
6b4cb7b826 | 12 months ago |
|
db04d7d924 | 1 year ago |
@ -0,0 +1,26 @@ |
|||
// axios
|
|||
import request from '@/utils/request' |
|||
|
|||
//扫描二维码获取房屋信息
|
|||
export function communityDemocry(data) { |
|||
return request({ |
|||
url: `/governance/democracyelection/resi/list`, |
|||
method: 'post', |
|||
data |
|||
}) |
|||
} |
|||
|
|||
export function getDemocryDetail(data) { |
|||
return request({ |
|||
url: `/governance/democracyelection/resi/info?electionId=${data.electionId}&resiId=${data.resiId}`, |
|||
method: 'get' |
|||
}) |
|||
} |
|||
|
|||
export function democraticVote(data) { |
|||
return request({ |
|||
url: `/governance/democracyelection/resi/vote`, |
|||
method: 'post', |
|||
data |
|||
}) |
|||
} |
@ -0,0 +1,8 @@ |
|||
import request from '@/utils/request' |
|||
//扫描二维码获取房屋信息
|
|||
export function newsTrendsdetail(id) { |
|||
return request({ |
|||
url: `/voluntary/newsTrends/detail/${id}`, |
|||
method: 'get', |
|||
}) |
|||
} |
@ -0,0 +1,10 @@ |
|||
// axios
|
|||
import request from '@/utils/request' |
|||
|
|||
//扫描二维码获取房屋信息
|
|||
export function getGoodInfoQR(id) { |
|||
return request({ |
|||
url: `/actual/base/materialcode/hfive/info/${id}`, |
|||
method: 'get', |
|||
}) |
|||
} |
@ -0,0 +1,17 @@ |
|||
// axios
|
|||
import request from '@/utils/request' |
|||
|
|||
//获取生活圈
|
|||
export function sphereLifeSearchList(parm) { |
|||
return request({ |
|||
url: `/voluntary/sphereLife/searchList?lon=${parm.lon}&lat=${parm.lat}&name=${parm.name}`, |
|||
method: 'get', |
|||
}) |
|||
} |
|||
//获取生活圈
|
|||
export function sphereLifeSearcdetail(id) { |
|||
return request({ |
|||
url: `/voluntary/sphereLife/detail/${id}`, |
|||
method: 'get', |
|||
}) |
|||
} |
@ -0,0 +1,11 @@ |
|||
// axios
|
|||
import request from '@/utils/request' |
|||
// 获取需求列表
|
|||
export function treeList(data) { |
|||
return request({ |
|||
url: `/governance/commonServiceType/treeList`, |
|||
method: 'get', |
|||
message: '获取列表中...', |
|||
data |
|||
}) |
|||
} |
@ -0,0 +1,8 @@ |
|||
import request from '@/utils/request' |
|||
export function listAllCategory(data) { |
|||
return request({ |
|||
url: `/actual/base/serviceitem/listAllCategory`, |
|||
method: 'post', |
|||
data |
|||
}) |
|||
} |
@ -0,0 +1,8 @@ |
|||
import request from '@/utils/request' |
|||
export function allgrids(data) { |
|||
return request({ |
|||
url: `/gov/org/grid/allgrids`, |
|||
method: 'post', |
|||
data |
|||
}) |
|||
} |
After Width: | Height: | Size: 926 B |
After Width: | Height: | Size: 837 B |
After Width: | Height: | Size: 4.5 KiB |
After Width: | Height: | Size: 4.5 KiB |
After Width: | Height: | Size: 3.4 KiB |
After Width: | Height: | Size: 3.3 KiB |
After Width: | Height: | Size: 5.1 KiB |
After Width: | Height: | Size: 3.2 KiB |
After Width: | Height: | Size: 4.8 KiB |
After Width: | Height: | Size: 4.8 KiB |
After Width: | Height: | Size: 5.5 KiB |
After Width: | Height: | Size: 436 B |
After Width: | Height: | Size: 391 B |
After Width: | Height: | Size: 412 B |
After Width: | Height: | Size: 377 B |
After Width: | Height: | Size: 472 B |
After Width: | Height: | Size: 1.5 KiB |
After Width: | Height: | Size: 7.0 KiB |
After Width: | Height: | Size: 6.1 KiB |
After Width: | Height: | Size: 7.2 KiB |
After Width: | Height: | Size: 243 KiB |
After Width: | Height: | Size: 4.3 KiB |
After Width: | Height: | Size: 98 KiB |
After Width: | Height: | Size: 4.6 KiB |
After Width: | Height: | Size: 4.9 KiB |
After Width: | Height: | Size: 4.9 KiB |
After Width: | Height: | Size: 105 KiB |
After Width: | Height: | Size: 14 KiB |
After Width: | Height: | Size: 1.8 KiB |
After Width: | Height: | Size: 5.4 KiB |
After Width: | Height: | Size: 3.4 KiB |
After Width: | Height: | Size: 2.5 KiB |
After Width: | Height: | Size: 3.7 KiB |
After Width: | Height: | Size: 144 KiB |
After Width: | Height: | Size: 2.8 KiB |
After Width: | Height: | Size: 3.2 KiB |
After Width: | Height: | Size: 8.8 KiB |
After Width: | Height: | Size: 1.5 KiB |
After Width: | Height: | Size: 1.6 KiB |
After Width: | Height: | Size: 6.2 KiB |
After Width: | Height: | Size: 4.3 KiB |
After Width: | Height: | Size: 3.9 KiB |
After Width: | Height: | Size: 4.0 KiB |
After Width: | Height: | Size: 4.6 KiB |
After Width: | Height: | Size: 13 KiB |
After Width: | Height: | Size: 752 KiB |
After Width: | Height: | Size: 46 KiB |
After Width: | Height: | Size: 46 KiB |
After Width: | Height: | Size: 634 KiB |
After Width: | Height: | Size: 604 KiB |
After Width: | Height: | Size: 24 KiB |
After Width: | Height: | Size: 15 KiB |
After Width: | Height: | Size: 16 KiB |
After Width: | Height: | Size: 61 KiB |
After Width: | Height: | Size: 68 KiB |
After Width: | Height: | Size: 253 KiB |
After Width: | Height: | Size: 3.1 KiB |
After Width: | Height: | Size: 1.2 KiB |
After Width: | Height: | Size: 1.6 KiB |
After Width: | Height: | Size: 1.8 KiB |
After Width: | Height: | Size: 981 B |
After Width: | Height: | Size: 1.5 KiB |
After Width: | Height: | Size: 1.1 KiB |
After Width: | Height: | Size: 1.6 KiB |
After Width: | Height: | Size: 1.1 KiB |
After Width: | Height: | Size: 1.4 KiB |
After Width: | Height: | Size: 1.9 KiB |
After Width: | Height: | Size: 1.9 KiB |
After Width: | Height: | Size: 1.4 KiB |
After Width: | Height: | Size: 6.4 KiB |
@ -0,0 +1,113 @@ |
|||
|
|||
var x_PI = (3.14159265358979324 * 3000.0) / 180.0; |
|||
var PI = 3.1415926535897932384626; |
|||
var a = 6378245.0; //卫星椭球坐标投影到平面地图坐标系的投影因子。
|
|||
var ee = 0.00669342162296594323; //椭球的偏心率。
|
|||
|
|||
|
|||
//判断是否在国内,在中国国内的经纬度才需要做偏移
|
|||
function out_of_china(lng, lat) { |
|||
return ( |
|||
lng < 72.004 || |
|||
lng > 137.8347 || |
|||
(lat < 0.8293 || lat > 55.8271 || false) |
|||
); |
|||
} |
|||
|
|||
//转化经度
|
|||
function transformlng(lng, lat) { |
|||
var ret = |
|||
300.0 + |
|||
lng + |
|||
2.0 * lat + |
|||
0.1 * lng * lng + |
|||
0.1 * lng * lat + |
|||
0.1 * Math.sqrt(Math.abs(lng)); |
|||
ret += |
|||
((20.0 * Math.sin(6.0 * lng * PI) + |
|||
20.0 * Math.sin(2.0 * lng * PI)) * |
|||
2.0) / |
|||
3.0; |
|||
ret += |
|||
((20.0 * Math.sin(lng * PI) + |
|||
40.0 * Math.sin((lng / 3.0) * PI)) * |
|||
2.0) / |
|||
3.0; |
|||
ret += |
|||
((150.0 * Math.sin((lng / 12.0) * PI) + |
|||
300.0 * Math.sin((lng / 30.0) * PI)) * |
|||
2.0) / |
|||
3.0; |
|||
return ret; |
|||
} |
|||
|
|||
//转化纬度
|
|||
function transformlat(lng, lat) { |
|||
var ret = |
|||
-100.0 + |
|||
2.0 * lng + |
|||
3.0 * lat + |
|||
0.2 * lat * lat + |
|||
0.1 * lng * lat + |
|||
0.2 * Math.sqrt(Math.abs(lng)); |
|||
ret += |
|||
((20.0 * Math.sin(6.0 * lng * PI) + |
|||
20.0 * Math.sin(2.0 * lng * PI)) * |
|||
2.0) / |
|||
3.0; |
|||
ret += |
|||
((20.0 * Math.sin(lat * PI) + |
|||
40.0 * Math.sin((lat / 3.0) * PI)) * |
|||
2.0) / |
|||
3.0; |
|||
ret += |
|||
((160.0 * Math.sin((lat / 12.0) * PI) + |
|||
320 * Math.sin((lat * PI) / 30.0)) * |
|||
2.0) / |
|||
3.0; |
|||
return ret; |
|||
} |
|||
|
|||
//wgs84 to gcj02 地球坐标系 转 火星坐标系
|
|||
export function wgs84_to_gcj02(lng, lat) { |
|||
if (out_of_china(lng, lat)) { |
|||
return [lng, lat]; |
|||
} else { |
|||
var dlat = transformlat(lng - 105.0, lat - 35.0); |
|||
var dlng = transformlng(lng - 105.0, lat - 35.0); |
|||
var radlat = (lat / 180.0) * PI; |
|||
var magic = Math.sin(radlat); |
|||
magic = 1 - ee * magic * magic; |
|||
var sqrtmagic = Math.sqrt(magic); |
|||
dlat = |
|||
(dlat * 180.0) / |
|||
(((a * (1 - ee)) / (magic * sqrtmagic)) * PI); |
|||
dlng = |
|||
(dlng * 180.0) / ((a / sqrtmagic) * Math.cos(radlat) * PI); |
|||
var mglat = lat + dlat; |
|||
var mglng = lng + dlng; |
|||
|
|||
return [mglng, mglat]; |
|||
} |
|||
} |
|||
|
|||
|
|||
//gcj02 to wgs84 火星坐标系 转 地球坐标系
|
|||
export function gcj02_to_wgs84(lng, lat) { |
|||
if (out_of_china(lng, lat)) { |
|||
return [lng, lat] |
|||
} |
|||
else { |
|||
var dlat = transformlat(lng - 105.0, lat - 35.0); |
|||
var dlng = transformlng(lng - 105.0, lat - 35.0); |
|||
var radlat = lat / 180.0 * PI; |
|||
var magic = Math.sin(radlat); |
|||
magic = 1 - ee * magic * magic; |
|||
var sqrtmagic = Math.sqrt(magic); |
|||
dlat = (dlat * 180.0) / ((a * (1 - ee)) / (magic * sqrtmagic) * PI); |
|||
dlng = (dlng * 180.0) / (a / sqrtmagic * Math.cos(radlat) * PI); |
|||
mglat = lat + dlat; |
|||
mglng = lng + dlng; |
|||
return [lng * 2 - mglng, lat * 2 - mglat] |
|||
} |
|||
} |
@ -0,0 +1,447 @@ |
|||
<template> |
|||
<div> |
|||
<div class="content"> |
|||
<div class="card"> |
|||
<div class="title"> {{type==='sign'?'打卡描述':'实况描述'}}</div> |
|||
<textarea style="width: 100%; height: 260px; border: none; resize: none; margin-top: 10px;" v-model="content" bind:input="handelChangTextarea" placeholder="请输入500字以内" maxlength="500px"/> |
|||
</div> |
|||
<div class="card"> |
|||
<div class="title">上传图片或视频</div> |
|||
<van-uploader v-model="fileList" :after-read="afterRead" :max-count="3" :max-size="10 * 1024 * 1024" style="margin-top: 10px;" /> |
|||
</div> |
|||
<div class="card flex flex-sb address flex-center-i" style="margin-top: 20px;" > |
|||
<image src="../../../../images/icon/address.png" mode="" /> |
|||
<span class="flex-1">{{address}}</span> |
|||
<van-icon name="replay" color="#0d957f"/> |
|||
</div> |
|||
</div> |
|||
<div class="bot-btn"> |
|||
<van-button style="width: 120px; margin-top: 20px;" slot="button" size="small" type="primary" round color="#f53e1f"@click="submit"> |
|||
{{type==='sign'?'打卡签到':'发布实况'}} |
|||
</van-button> |
|||
</div> |
|||
<Android @send-number="handleNumber" /> |
|||
</div> |
|||
|
|||
</template> |
|||
|
|||
<script> |
|||
import {clockIn,activitySignIn,activityApply,addActivityRecord,cancelSignUp, detail, communityActivityApplicationRecordDelete,getById,activityApplySave} from "@/api/activity" |
|||
import Share from "@/components/Share" |
|||
import registerDialog from '@/components/registerDialog'; |
|||
import { setConfig } from '@/utils/jweixin' |
|||
import { Toast, Dialog } from 'vant' |
|||
import {uploadvariedfile} from '@/api/basic' |
|||
import Map from '@/components/Map' |
|||
import {mapKey} from '@/config' |
|||
export default { |
|||
data() { |
|||
return { |
|||
content:"", |
|||
address:"", |
|||
fileList: [], |
|||
applyedTimeType:false, |
|||
ActName:"", |
|||
info:null, |
|||
signInList:[], |
|||
applyType:false, |
|||
activityId:null, |
|||
realTimeList:[], |
|||
projectList:[], |
|||
realTimeList:[], |
|||
signInList:[], |
|||
applyList:[], |
|||
activityList: [], |
|||
signUp: [ |
|||
{ name: "", mobile: "", remark: "" }, |
|||
], |
|||
info: {}, |
|||
isPast: false, |
|||
showShare: false, |
|||
showRegister: false, |
|||
phone:"" |
|||
}; |
|||
}, |
|||
created() { |
|||
|
|||
}, |
|||
async mounted() { |
|||
|
|||
// 初始化腾讯地图 |
|||
this.geolocation = new qq.maps.Geolocation(mapKey, 'myapp') |
|||
// 获取定位 |
|||
this.getMyLocation() |
|||
setConfig(['updateAppMessageShareData', 'onMenuShareAppMessage', 'updateTimelineShareData']) |
|||
if (this.$route.query.id) { |
|||
this.activityId= this.$route.query.id |
|||
await this.detail(this.$route.query.id) |
|||
if(this.$route.query.flag === 'share'){ |
|||
await this.getById(this.$route.query.id) |
|||
} |
|||
await this.share() |
|||
this.activityApplyList() |
|||
this.activitySignIn(1) |
|||
this.activitySignIn(0) |
|||
} |
|||
}, |
|||
methods: { |
|||
//发布实况 |
|||
submit(){ |
|||
if (!this.content || this.content==='undefined') { |
|||
Dialog.alert({ |
|||
// title: '标题', |
|||
message: '实况描述不能为空', |
|||
}).then(() => { |
|||
return |
|||
}); |
|||
} |
|||
if (!this.fileList) { |
|||
Dialog.alert({ |
|||
// title: '标题', |
|||
message: '请上传图片或视频', |
|||
}).then(() => { |
|||
return |
|||
}); |
|||
} |
|||
let parm = { |
|||
activityId: this.activityId, |
|||
address: this.address, |
|||
content: this.content, |
|||
longitude: this.longitude, |
|||
latitude: this.latitude, |
|||
attrs: this.fileList |
|||
} |
|||
clockIn(parm).then(res => { |
|||
if (res.code === 0) { |
|||
} |
|||
}).catch(err => { |
|||
console.log(err); |
|||
}) |
|||
}, |
|||
getMyLocation() { |
|||
this.geolocation.getLocation(this.showPosition, this.errorPosition) //开启定位 |
|||
}, |
|||
showPosition(position) { |
|||
this.longitude = position.lng |
|||
this.latitude = position.lat |
|||
this.address = position.city + position.addr |
|||
console.log(position, this.longitude, this.latitude ,"dsjfdsk"); |
|||
|
|||
}, |
|||
locationChange(data) { |
|||
this.longitude = data.latlng.lng |
|||
this.latitude = data.latlng.lat |
|||
this.address = data.poiaddress |
|||
this.ifRange(this.longitude,this.latitude) |
|||
}, |
|||
afterRead(file) { |
|||
file.status = 'uploading' |
|||
file.message = '上传中...' |
|||
uploadvariedfile(file.file) |
|||
.then(res => { |
|||
file.status = '' |
|||
file.message = '上传成功' |
|||
file.url = res.data.url |
|||
|
|||
// this.uploadFileList.push(res.url) |
|||
}) |
|||
.catch(() => { |
|||
file.status = 'failed' |
|||
file.message = '上传失败' |
|||
}) |
|||
}, |
|||
//取消报名 |
|||
cancelSignUp(){ |
|||
Dialog.confirm({ |
|||
title: '提示', |
|||
message: '确定取消报名吗?', |
|||
}) |
|||
.then(() => { |
|||
cancelSignUp(this.data.activityId).then(res=>{ |
|||
if(res.code === 0){ |
|||
this.setData({ |
|||
applyType:true |
|||
}) |
|||
} |
|||
}) |
|||
}) |
|||
.catch(() => { |
|||
}); |
|||
}, |
|||
//报名 |
|||
toApply() { |
|||
console.log("dsklfjklsf"); |
|||
Dialog.confirm({ |
|||
title: '提示', |
|||
message: '您确定要报名吗?', |
|||
}) |
|||
.then(() => { |
|||
activityApplySave(this.activityId).then(res => { |
|||
console.log(res,"sdflkjlsfjd"); |
|||
Dialog.alert({ |
|||
// title: '吧', |
|||
message: '报名成功', |
|||
}) |
|||
// wx.showToast({ |
|||
// title: '报名成功', |
|||
// duration: 2000, |
|||
// success: () => { |
|||
// setTimeout(() => { |
|||
// wx.navigateBack() |
|||
// }, 2000) |
|||
// } |
|||
// }) |
|||
}).catch(err => { |
|||
console.log(err); |
|||
}) |
|||
}) |
|||
.catch(() => { |
|||
// on cancel |
|||
}); |
|||
|
|||
}, |
|||
share() { |
|||
let than = this |
|||
if (wx.updateAppMessageShareData) { |
|||
wx.ready(function () { |
|||
wx.updateAppMessageShareData({ |
|||
title: than.info.activityName || '活动详情', |
|||
desc: '', |
|||
link: `https://epmet-prediv.elinkservice.cn/epmet-wx-pa/#/activityDetail?id=${than.$route.query.id}&appId=${than.$store.state.app.appId}&flag=share`, |
|||
imgUrl: than.info.coverPic || 'https://elink-esua-epdc.oss-cn-qingdao.aliyuncs.com/epmet/test/20240710/617f7fb327064d89892823b81b11cd70.png', |
|||
success: function () {} |
|||
}) |
|||
wx.updateTimelineShareData({ |
|||
title: than.info.activityName, |
|||
desc: '', |
|||
link: `https://epmet-prediv.elinkservice.cn/epmet-wx-pa/#/activityDetail?id=${than.$route.query.id}&appId=${than.$store.state.app.appId}`, |
|||
imgUrl: than.info.coverPic || 'https://elink-esua-epdc.oss-cn-qingdao.aliyuncs.com/epmet/test/20240710/617f7fb327064d89892823b81b11cd70.png', |
|||
success: function () {} |
|||
}) |
|||
}); |
|||
} else { |
|||
wx.onMenuShareAppMessage({ |
|||
title: than.info.activityName, |
|||
desc: '', |
|||
link: `https://epmet-prediv.elinkservice.cn/epmet-wx-pa/#/activityDetail?id=${than.$route.query.id}&appId=${than.$store.state.app.appId}`, |
|||
imgUrl: than.info.coverPic || 'https://elink-esua-epdc.oss-cn-qingdao.aliyuncs.com/epmet/test/20240710/617f7fb327064d89892823b81b11cd70.png', |
|||
success: function () {} |
|||
}) |
|||
} |
|||
}, |
|||
//获取打卡信息 |
|||
activitySignIn(whether) { |
|||
let parm = { |
|||
pageNo: 1, |
|||
pageSize: 100, |
|||
activityId: this.activityId, |
|||
whether: whether |
|||
} |
|||
activitySignIn(parm).then(res => { |
|||
if (res.code === 0) { |
|||
if (whether === 1) { |
|||
this.signInList=res.data.list |
|||
|
|||
} else { |
|||
this.realTimeList=res.data.list |
|||
|
|||
|
|||
} |
|||
} |
|||
}).catch(err => { |
|||
|
|||
}) |
|||
}, |
|||
//获取报名志愿者 |
|||
activityApplyList() { |
|||
let parm = { |
|||
pageNo: 1, |
|||
pageSize: 100, |
|||
activityId: this.activityId |
|||
} |
|||
activityApply(parm).then(res => { |
|||
if (res.code === 0) { |
|||
|
|||
this.applyList=res.data.list |
|||
|
|||
} |
|||
}).catch(err => { |
|||
|
|||
}) |
|||
}, |
|||
handleNumber(value){ |
|||
console.log(value,"wl kgnsl, "); |
|||
this.phone=value |
|||
}, |
|||
checkIfPast() { |
|||
const currentTimestamp = Date.now(); |
|||
const specifiedTimestamp = new Date(this.info.cutOffTime.replace(/-/g, '/')).getTime(); |
|||
this.isPast = specifiedTimestamp < currentTimestamp; |
|||
}, |
|||
//获取信息 |
|||
async detail(id, delId) { |
|||
const handleResponse = (res) => { |
|||
if (res.code === 0) { |
|||
this.info = res.data; |
|||
this.info.signInTime=res.data.signInTime.slice(0, 16), |
|||
this.info.signOutTime=res.data.signOutTime.slice(0, 16), |
|||
console.log(this.info,"wl info"); |
|||
// this.applyType = res.data.applyed === 0 ? true : false, |
|||
this.applyedTimeType = this.isCurrentTimeBefore(res.data.deadline), |
|||
console.log(this.applyedTimeType,"sdfkjdskfl"); |
|||
|
|||
this.signOutTimeType = this.isCurrentTimeBetween(res.data.signInTime, res.data.signOutTime) |
|||
// this.info.participants = res.data.participants; |
|||
// this.info.currentParticipants = res.data.currentParticipants; |
|||
// if (res.data.recordList && res.data.recordList.length > 0) { |
|||
// this.signUp = res.data.recordList; |
|||
// } |
|||
// if (res.data.cutOffTime) { |
|||
// this.checkIfPast(); |
|||
// } |
|||
} |
|||
}; |
|||
// if (delId) { |
|||
// this.signUp = this.signUp.filter(item => item.id != delId); |
|||
// } |
|||
let res = await detail(id); |
|||
handleResponse(res); |
|||
}, |
|||
async getById(id) { |
|||
const handleResponse = (res) => { |
|||
if (res.code === 0) { |
|||
this.info = res.data; |
|||
this.info.participants = res.data.participants; |
|||
this.info.currentParticipants = res.data.currentParticipants; |
|||
if (res.data.recordList && res.data.recordList.length > 0) { |
|||
this.signUp = res.data.recordList; |
|||
} |
|||
if (res.data.cutOffTime) { |
|||
this.checkIfPast(); |
|||
} |
|||
} |
|||
}; |
|||
if (delId) { |
|||
this.signUp = this.signUp.filter(item => item.id != delId); |
|||
} |
|||
|
|||
let res = await getById(id); |
|||
handleResponse(res); |
|||
}, |
|||
handelAddResi() { |
|||
this.signUp.push({ name: "", mobile: "", remark: "", }) |
|||
}, |
|||
isCurrentTimeBetween(startTime, endTime) { |
|||
const current = new Date().getTime(); |
|||
const startTimestamp = new Date(startTime).getTime(); |
|||
const endTimestamp = new Date(endTime).getTime(); |
|||
return current >= startTimestamp && current <= endTimestamp; |
|||
}, |
|||
isCurrentTimeBefore(targetTime) { |
|||
const current = new Date().getTime(); |
|||
const targetTimestamp = new Date(targetTime).getTime(); |
|||
return current < targetTimestamp; |
|||
}, |
|||
handelDelResi(item, index) { |
|||
if (item.id) { |
|||
let than = this |
|||
communityActivityApplicationRecordDelete([item.id]).then(res => { |
|||
if (res.code === 0) { |
|||
than.detail(this.$route.query.id, item.id); |
|||
} |
|||
}).catch(err => { |
|||
console.log(err); |
|||
}) |
|||
} else { |
|||
this.signUp.splice(index, 1) |
|||
} |
|||
}, |
|||
async save() { |
|||
if (this.$store.state.app.userInfo.mobile) { |
|||
this.signUp.forEach((item) => { |
|||
item.activityId = this.info.id; |
|||
item.applicationId = this.$store.state.app.userInfo.id; |
|||
item.customerId = this.$store.state.app.userInfo.customerId; |
|||
}) |
|||
if(this.signUp.findIndex(item=>!item.name) != -1){ |
|||
this.$toast('人员姓名不能为空') |
|||
return |
|||
} |
|||
if(this.signUp.findIndex(item=>!item.mobile) != -1){ |
|||
this.$toast('联系电话不能为空') |
|||
return |
|||
} |
|||
let parm = { |
|||
formDTOList: this.signUp |
|||
} |
|||
let res = await addActivityRecord(parm) |
|||
if (res.code === 0) { |
|||
this.$toast.success(res.data) |
|||
this.signUp = [{ name: "", mobile: "", remark: "" }] |
|||
this.detail(this.$route.query.id) |
|||
} |
|||
} else { |
|||
this.showRegister = true; |
|||
} |
|||
|
|||
}, |
|||
}, |
|||
components: { Share, registerDialog }, |
|||
computed: { |
|||
disabledRecord() { |
|||
return (item) => { |
|||
if (!item.cutOffTime || item.online != 1) return true |
|||
let flag = new Date(item.cutOffTime.replace(/-/g, '/')).getTime() < Date.now() || item.currentParticipants >= item.participants || item.currentParticipants >= item.participants; |
|||
return flag || false |
|||
} |
|||
}, |
|||
}, |
|||
watch: {}, |
|||
} |
|||
</script> |
|||
|
|||
<style lang='less' scoped> |
|||
.phone{ |
|||
height: 50px; |
|||
bottom:8vh; |
|||
} |
|||
/* subpages/activity/pages/sign/sign.wxss */ |
|||
page { |
|||
height: 100vh; |
|||
background-color:#f7f7f7; |
|||
} |
|||
.title{ |
|||
color: #222222; |
|||
font-size: 32rpx; |
|||
font-weight: 600; |
|||
} |
|||
.content{ |
|||
width: calc(100% - 40rpx); |
|||
margin: 0 auto; |
|||
} |
|||
textarea{ |
|||
margin-top: 24rpx; |
|||
background-color:#f7f7f7 ; |
|||
width: 100%; |
|||
height: 460rpx; |
|||
padding: 24rpx; |
|||
box-sizing: border-box; |
|||
} |
|||
.address{ |
|||
image{ |
|||
width: 24rpx; |
|||
height: 24rpx; |
|||
margin-right: 11rpx; |
|||
} |
|||
} |
|||
.card{ |
|||
margin-top: 14rpx; |
|||
} |
|||
.bot-btn{ |
|||
margin-top: 84rpx; |
|||
text-align: center; |
|||
button{ |
|||
width:400rpx ; |
|||
} |
|||
} |
|||
</style> |
@ -0,0 +1,349 @@ |
|||
<template> |
|||
<div> |
|||
<div class='container'> |
|||
<div class="flex flex-y flex1 flex-end" > |
|||
<div class="activity_content flex flex-y"> |
|||
<div class="flex flex1 oh"> |
|||
<div class="flex flex-y flex1 m-right10 oh"> |
|||
<span class="van-multi-ellipsis--l2 text1" style="line-height: 28px;"> |
|||
{{ info.title }}({{ info.multiFlag==1 ? '多选' : '单选' }}) |
|||
</span> |
|||
|
|||
</div> |
|||
</div> |
|||
<div class="flex flex-end flex-center gray m-top10 font-size13"> |
|||
<div class="flex flex-center"> |
|||
<span style="color: #FF9C00;margin-right: 10px;">{{ info.multiFlag==1 ? '进行中' : '已截止' }}</span> |
|||
<span>{{ info.resiCount || 0 }}人参与</span> |
|||
</div> |
|||
|
|||
<div v-if="info.endTime">截止{{ info.endTime }}</div> |
|||
|
|||
</div> |
|||
|
|||
</div> |
|||
</div> |
|||
<div class="intro" v-html="info.introduce"></div> |
|||
|
|||
<div class="vote-page"> |
|||
|
|||
<div v-for="(option, index) in voteOptions" :key="index" class="vote-option"> |
|||
<input |
|||
type="radio" |
|||
:id="'option-' + index" |
|||
:value="option.electionId" |
|||
:checked="selectedOption === option.electionId" |
|||
@click="toggleSelection(option.electionId)" |
|||
:disabled="hasVoted" |
|||
class="custom-radio" |
|||
/> |
|||
<label :for="'option-' + index" class="vote-label"> |
|||
<img :src="option.avatar || require('@/assets/images/user1.png')" alt="avatar" class="avatar" /> |
|||
<div class="option-details"> |
|||
<div class="option-header"> |
|||
<h2 class="option-name">{{ option.name }}</h2> |
|||
<span class="vote-count" v-if="hasVoted"> |
|||
{{ option.optionCount }}票 |
|||
</span> |
|||
</div> |
|||
|
|||
<div class="progress-bar" v-if="hasVoted"> |
|||
<div |
|||
class="progress-fill" |
|||
:style="{ width: (option.optionCount / totalVotes * 100) + '%' }" |
|||
></div> |
|||
</div> |
|||
<p class="option-description">{{ option.remark }}</p> |
|||
</div> |
|||
</label> |
|||
</div> |
|||
|
|||
|
|||
</div> |
|||
<div class="button-container"> |
|||
<button |
|||
:class="{'voted': hasVoted}" |
|||
class="vote-button" |
|||
@click="handleVote" |
|||
:disabled="hasVoted" |
|||
> |
|||
{{ hasVoted ? '已投票' : '投票' }} |
|||
</button> |
|||
</div> |
|||
|
|||
</div> |
|||
<Android></Android> |
|||
</div> |
|||
|
|||
|
|||
</template> |
|||
|
|||
<script> |
|||
import {getDemocryDetail,democraticVote } from '@/api/democratic'; |
|||
import { Toast, Dialog } from 'vant' |
|||
export default { |
|||
data() { |
|||
return { |
|||
info: { |
|||
}, |
|||
selectedOption: null, // 存储选中的投票选项 |
|||
voteOptions: [ |
|||
], |
|||
hasVoted: false, // 用于跟踪是否已投票 |
|||
electionId:null, |
|||
resiId:null, |
|||
}; |
|||
}, |
|||
created() { |
|||
this.electionId = this.$route.query.id; |
|||
this.resiId = this.$store.state.app.userInfo.id; |
|||
this.communityDemocryDetail() |
|||
}, |
|||
mounted() { |
|||
|
|||
}, |
|||
methods: { |
|||
toggleSelection(optionId) { |
|||
this.selectedOption = this.selectedOption === optionId ? null : optionId; |
|||
}, |
|||
handleVote() { |
|||
|
|||
if (this.selectedOption) { |
|||
// 发送投票请求 |
|||
let params = { |
|||
electionOptionId:this.electionId, |
|||
resiId:this.resiId |
|||
} |
|||
democraticVote(params).then(res => { |
|||
if (res.code === 0) { |
|||
if (!this.hasVoted) { |
|||
this.hasVoted = true; // 设置为已投票状态 |
|||
} |
|||
Dialog.confirm({ |
|||
title: '提示', |
|||
message: '投票成功', |
|||
}) |
|||
.then(() => {}) |
|||
.catch(() => {}); |
|||
} |
|||
}).catch(err => { |
|||
|
|||
}) |
|||
|
|||
}else{ |
|||
Dialog.confirm({ |
|||
title: '提示', |
|||
message: '您尚未选择投票人', |
|||
}) |
|||
.then(() => { |
|||
}) |
|||
.catch(() => { |
|||
}); |
|||
} |
|||
|
|||
}, |
|||
//获取信息 |
|||
async communityDemocryDetail() { |
|||
const handleResponse = (res) => { |
|||
if (res.code === 0) { |
|||
this.info = res.data; |
|||
|
|||
// 投票项 |
|||
if (res.data.option && res.data.option.length > 0) { |
|||
this.voteOptions = res.data.option; |
|||
} |
|||
// 是否可选 |
|||
if (res.data.isCanSelect==0) { |
|||
console.log("已投票") |
|||
this.hasVoted = true; // 设置为已投票状态 |
|||
} |
|||
} |
|||
} |
|||
let params = { |
|||
electionId:this.electionId, |
|||
resiId:this.resiId |
|||
} |
|||
let res = await getDemocryDetail(params); |
|||
handleResponse(res); |
|||
} |
|||
}, |
|||
components: {}, |
|||
computed: { |
|||
totalVotes() { |
|||
return this.voteOptions.reduce((sum, option) => sum + option.votes, 0); |
|||
}, |
|||
}, |
|||
watch: {}, |
|||
} |
|||
</script> |
|||
|
|||
<style lang='less' scoped> |
|||
.activity_content { |
|||
padding-bottom: 10px; |
|||
box-sizing: border-box; |
|||
width: 100%; |
|||
border-bottom: 1px solid #EAEAEA; |
|||
margin-top: 14px; |
|||
min-height: 50px; |
|||
|
|||
.img { |
|||
width: 231px; |
|||
height: 33px; |
|||
margin: 5px 3px 0 3px; |
|||
} |
|||
|
|||
&:last-child { |
|||
border-bottom: none; |
|||
} |
|||
|
|||
|
|||
.content { |
|||
|
|||
width: 325px; |
|||
height: 40px; |
|||
font-family: PingFang SC; |
|||
font-weight: 500; |
|||
font-size: 16px; |
|||
color: #333333; |
|||
line-height: 23px; |
|||
} |
|||
|
|||
.dianzan { |
|||
width: 325px; |
|||
height: 20px; |
|||
display: flex; |
|||
font-size: 13px; |
|||
color: #AAAAAA; |
|||
flex-direction: row; |
|||
justify-content: space-evenly; |
|||
align-items: center; |
|||
|
|||
.img { |
|||
width: 14.5px; |
|||
height: 15px; |
|||
} |
|||
} |
|||
|
|||
|
|||
} |
|||
|
|||
.vote-page { |
|||
width: 100%; |
|||
// max-width: 600px; |
|||
margin: auto; |
|||
// padding: 5px; |
|||
// background-color: #fff; |
|||
border-radius: 8px; |
|||
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1); |
|||
background: linear-gradient(to top, #E1F7F3, #DAE6FF); |
|||
} |
|||
.vote-option { |
|||
display: flex; |
|||
align-items: center; |
|||
padding: 5px 0; |
|||
border-bottom: 1px solid #eee; |
|||
width: 100%; |
|||
} |
|||
.custom-radio { |
|||
appearance: none; |
|||
width: 20px; |
|||
height: 20px; |
|||
border-radius: 50%; |
|||
border: 2px solid white; |
|||
margin-right: 15px; |
|||
cursor: pointer; |
|||
position: relative; |
|||
} |
|||
.custom-radio:checked::before { |
|||
content: ''; |
|||
display: block; |
|||
width: 10px; |
|||
height: 10px; |
|||
background-color: #007bff; |
|||
border-radius: 50%; |
|||
position: absolute; |
|||
top: 3px; |
|||
left: 2px; |
|||
} |
|||
.vote-label { |
|||
display: flex; |
|||
align-items: center; |
|||
cursor: pointer; |
|||
width: 100%; |
|||
min-height: 60px; |
|||
background-color: white; |
|||
border-radius: 5px; /* 修改为圆角 */ |
|||
} |
|||
.avatar { |
|||
width: 50px; |
|||
height: 50px; |
|||
border-radius: 50%; |
|||
margin-right: 15px; |
|||
} |
|||
.option-details { |
|||
flex: 1; |
|||
} |
|||
.option-header { |
|||
display: flex; |
|||
justify-content: space-between; |
|||
align-items: center; |
|||
} |
|||
.option-name { |
|||
font-size: 0.8em; |
|||
margin: 0; |
|||
} |
|||
.option-description { |
|||
color: #666; |
|||
font-size: 0.7em; |
|||
margin: 5px 0; |
|||
} |
|||
.vote-count { |
|||
font-size: 0.9em; |
|||
color: orange; |
|||
} |
|||
.progress-bar { |
|||
width: 100%; |
|||
height: 8px; |
|||
background-color: #eee; |
|||
border-radius: 4px; |
|||
overflow: hidden; |
|||
margin-top: 8px; |
|||
} |
|||
.progress-fill { |
|||
height: 100%; |
|||
background: linear-gradient(to right, #3887F8, #3FC7FF); |
|||
} |
|||
|
|||
|
|||
.button-container { |
|||
display: flex; |
|||
justify-content: center; /* 水平居中 */ |
|||
width: 100%; |
|||
margin-top: 20px; /* 可选,设置按钮上方的间距 */ |
|||
} |
|||
|
|||
.vote-button { |
|||
width: 100px; |
|||
height: 40px; |
|||
background-color: #3887F8; |
|||
color: white; |
|||
border: none; |
|||
border-radius: 20px; |
|||
cursor: pointer; |
|||
font-size: 16px; |
|||
transition: background-color 0.3s; |
|||
} |
|||
|
|||
.vote-button.voted { |
|||
background-color: #cccccc; |
|||
cursor: not-allowed; |
|||
} |
|||
|
|||
.intro { |
|||
text-indent: 2em; |
|||
font-size: 16px; |
|||
color: #333333; |
|||
line-height: 25px; |
|||
} |
|||
|
|||
</style> |
@ -0,0 +1,231 @@ |
|||
<template> |
|||
<div> |
|||
<div class='container'> |
|||
<div class="flex flex-y flex1 flex-end" v-if="democraticList.length !== 0"> |
|||
<van-list v-model="loading" :finished="finished" finished-text="没有更多了" |
|||
@load="democraticList" class="card" :offset="50"> |
|||
<div class="activity_content flex flex-y" v-for="(item, index) in democraticList" |
|||
:key="index" @click="toDetail(item)"> |
|||
<div class="flex flex1 oh"> |
|||
<div class="flex flex-y flex1 m-right10 oh"> |
|||
<span class="van-multi-ellipsis--l2 text1" style="line-height: 28px;"> |
|||
{{ item.title }} |
|||
</span> |
|||
|
|||
</div> |
|||
</div> |
|||
<div class="flex flex-end flex-center gray m-top10 font-size13"> |
|||
<div class="flex flex-center"> |
|||
<span style="color: #FF9C00;margin-right: 10px;">进行中</span> |
|||
<span>{{ item.resiCount || 0 }}人参与</span> |
|||
</div> |
|||
|
|||
<div v-if="item.endTime">截止{{ item.endTime }}</div> |
|||
|
|||
</div> |
|||
|
|||
</div> |
|||
</van-list> |
|||
</div> |
|||
<div v-else class="no-data"> |
|||
暂无数据~ |
|||
</div> |
|||
|
|||
</div> |
|||
<Android></Android> |
|||
</div> |
|||
|
|||
|
|||
</template> |
|||
|
|||
<script> |
|||
import {communityDemocry } from '@/api/democratic'; |
|||
export default { |
|||
data() { |
|||
return { |
|||
democraticList: [ |
|||
|
|||
], |
|||
pageSize: 5, |
|||
pageNo: 1, |
|||
agencyId: null, |
|||
finished: false, |
|||
loading: true, |
|||
showRegister: false, |
|||
searchValue: "" |
|||
}; |
|||
}, |
|||
created() { |
|||
this.agencyId = this.$route.query.agencyId?this.$route.query.agencyId: this.$store.state.app.agencyId; |
|||
|
|||
// todo: |
|||
// this.agencyId = "1846432703164649473"; |
|||
this.communityDemocryList() |
|||
}, |
|||
methods: { |
|||
toDetail(item){ |
|||
this.$router.push({name:'democraticDetail',query:{id:item.id}}) |
|||
}, |
|||
handleSearch(){ |
|||
this.PublicityList = []; |
|||
this.pageNo = 1; |
|||
this.communityDemocryList() |
|||
}, |
|||
async communityDemocryList() { |
|||
let parm = { |
|||
pageSize: 10, |
|||
pageNo: 1, |
|||
agencyId: this.agencyId |
|||
} |
|||
let res = await communityDemocry(parm) |
|||
console.log("***********************************") |
|||
console.log(res) |
|||
if (res.code === 0) { |
|||
this.loading = false; |
|||
|
|||
if (!res.data || res.data.list.length < this.pageSize) { |
|||
this.finished = true; |
|||
} |
|||
this.democraticList = this.democraticList.concat(res.data.list); |
|||
} |
|||
}, |
|||
}, |
|||
components: {}, |
|||
computed: {}, |
|||
watch: {}, |
|||
} |
|||
</script> |
|||
|
|||
<style lang='less' scoped> |
|||
.text2{ |
|||
font-family: PingFang SC; |
|||
font-weight: 500; |
|||
font-size: 12px; |
|||
color: #999999; |
|||
line-height: 48px; |
|||
} |
|||
.text1{ |
|||
font-family: PingFang SC; |
|||
font-weight: 500; |
|||
font-size: 20px; |
|||
color: #000000; |
|||
line-height: 44px; |
|||
} |
|||
.custom-button { |
|||
width: 60px; |
|||
height: 33px; |
|||
} |
|||
|
|||
.activity_content { |
|||
padding-bottom: 10px; |
|||
box-sizing: border-box; |
|||
width: 100%; |
|||
border-bottom: 1px solid #EAEAEA; |
|||
margin-top: 14px; |
|||
min-height: 50px; |
|||
|
|||
.img { |
|||
width: 231px; |
|||
height: 33px; |
|||
margin: 5px 3px 0 3px; |
|||
} |
|||
|
|||
&:last-child { |
|||
border-bottom: none; |
|||
} |
|||
|
|||
|
|||
.content { |
|||
|
|||
width: 325px; |
|||
height: 40px; |
|||
font-family: PingFang SC; |
|||
font-weight: 500; |
|||
font-size: 16px; |
|||
color: #333333; |
|||
line-height: 23px; |
|||
} |
|||
|
|||
.dianzan { |
|||
width: 325px; |
|||
height: 20px; |
|||
display: flex; |
|||
font-size: 13px; |
|||
color: #AAAAAA; |
|||
flex-direction: row; |
|||
justify-content: space-evenly; |
|||
align-items: center; |
|||
|
|||
.img { |
|||
width: 14.5px; |
|||
height: 15px; |
|||
} |
|||
} |
|||
|
|||
|
|||
} |
|||
|
|||
.header {} |
|||
|
|||
.header .input_search { |
|||
width: 279px; |
|||
height: 33px; |
|||
background: rgba(193, 193, 193, 0.16); |
|||
border-radius: 17px; |
|||
// flex: 1; |
|||
color: #333333; |
|||
border: none; |
|||
/* 取消边框 */ |
|||
margin-left: 10px; |
|||
} |
|||
|
|||
.header .btn_search { |
|||
width: 60px; |
|||
height: 33px; |
|||
background: #3974F6; |
|||
border-radius: 17px; |
|||
font-family: PingFang SC; |
|||
font-weight: 500; |
|||
font-size: 14px; |
|||
color: #FFFFFF; |
|||
line-height: 23px; |
|||
border: none; |
|||
/* 取消边框 */ |
|||
margin-right: 10px; |
|||
} |
|||
::v-deep .van-search__content { |
|||
background-color: white; |
|||
border: 1px solid #3974F6; |
|||
} |
|||
|
|||
::v-deep .van-search__input { |
|||
color: #000; |
|||
} |
|||
|
|||
::v-deep .van-field__control::placeholder { |
|||
color: #A0A0A0; |
|||
} |
|||
:deep(.van-field__control) { |
|||
font-size: 13px; |
|||
} |
|||
.van-tab__title { |
|||
padding: 5px 12px; /* 内边距调整 */ |
|||
font-size: 14px; /* 字体大小 */ |
|||
} |
|||
|
|||
.van-tabs__nav { |
|||
justify-content: space-between; /* 平均分布 */ |
|||
} |
|||
|
|||
.grid-container { |
|||
display: grid; |
|||
grid-template-columns: repeat(4, 1fr); /* 每列4个 */ |
|||
gap: 10px; /* 图片之间的间距 */ |
|||
// padding: 16px; |
|||
align-items: start; /* 子元素顶对齐 */ |
|||
} |
|||
|
|||
.font-size12{ |
|||
font-size: 12px; |
|||
} |
|||
</style> |
@ -0,0 +1,192 @@ |
|||
<template> |
|||
<div> |
|||
<div class="flex flex-mean" style="background-color: #FFFFFF;"> |
|||
<!-- <van-search class=".flex flex-1" v-model="searchValue" left-icon="" shape="round" placeholder="请输入搜索关键词" /> |
|||
<van-button round type="info" class="custom-button font-size13 m-top10 m-right12" @click="onSearch()">查询</van-button> --> |
|||
<!-- <van-image src="../../assets/images/servicePhone/" /> --> |
|||
<img :src="discussionList.coverImg" style="width: 100%; height: 150px; " /> |
|||
</div> |
|||
<div class='' style="position: relative;top: -10px;"> |
|||
|
|||
<div class="activity_content card" > |
|||
<div class="van-multi-ellipsis--l2 text"> |
|||
{{ discussionList.title }} |
|||
</div> |
|||
<div class="flex flex-end"> |
|||
<div class="font-size13 flex flex-y"> |
|||
<!-- <img src="@/assets/images/icons/resi.png" class="img_17"> --> |
|||
<!-- <div class="text3"><span class="text2">联系人:</span>{{ discussionList.releaseTime }}</div> --> |
|||
<div class="text3"><span class="text2">发布单位:</span>{{ discussionList.agencyName }}</div> |
|||
</div> |
|||
|
|||
</div> |
|||
<div class="van-hairline--bottom"></div> |
|||
<div v-html="discussionList.content" ></div> |
|||
</div> |
|||
|
|||
<register-dialog v-if="showRegister" @close="showRegister = false" :registerFlag="registerFlag" :content="'请您先进行注册。'"></register-dialog> |
|||
|
|||
</div> |
|||
<Android></Android> |
|||
</div> |
|||
|
|||
|
|||
</template> |
|||
|
|||
<script> |
|||
// import { communityActivity,icEventOldDiscuss,handelClicsupport } from '@/api/home'; |
|||
import {newsTrendsdetail} from '@/api/dynamic' |
|||
import registerDialog from '@/components/registerDialog'; |
|||
export default { |
|||
data() { |
|||
return { |
|||
discussionList: [ |
|||
], |
|||
pageSize: 5, |
|||
pageNo: 1, |
|||
agencyId: null, |
|||
finished: false, |
|||
loading: false, |
|||
showRegister: false, |
|||
searchValue: "", |
|||
userId:"" |
|||
}; |
|||
}, |
|||
created() { |
|||
this.id = this.$route.query.id?this.$route.query.id:''; |
|||
this.userId = this.$store.state.app.appId; |
|||
this.newsTrendsdetail() |
|||
}, |
|||
methods: { |
|||
callPhone(phone){ |
|||
window.location.href = `tel:${phone}`; |
|||
}, |
|||
async newsTrendsdetail(){ |
|||
|
|||
let res = await newsTrendsdetail(this.id) |
|||
if (res.code === 0) { |
|||
this.discussionList = res.data |
|||
} |
|||
}, |
|||
|
|||
handelClickJump(path) { |
|||
if (path === 'activityDetail') { |
|||
if (this.$store.state.app.userInfo.mobile) { |
|||
this.$router.push({ path: `/${path}` }); |
|||
} else { |
|||
this.showRegister = true; |
|||
} |
|||
} |
|||
|
|||
} |
|||
}, |
|||
components: { registerDialog }, |
|||
computed: {}, |
|||
watch: {}, |
|||
} |
|||
</script> |
|||
|
|||
<style lang='less' scoped> |
|||
.text{ |
|||
font-family: PingFang SC; |
|||
font-weight: 600; |
|||
font-size: 16px; |
|||
color: #000000; |
|||
|
|||
} |
|||
.text2{ |
|||
font-family: PingFang SC; |
|||
font-weight: 500; |
|||
font-size: 15px; |
|||
color: #999999; |
|||
line-height:25px |
|||
} |
|||
.text3{ |
|||
font-family: PingFang SC; |
|||
font-weight: 500; |
|||
font-size: 15px; |
|||
color: #333333; |
|||
line-height:25px |
|||
|
|||
} |
|||
.custom-button { |
|||
width: 60px; |
|||
height: 33px; |
|||
} |
|||
|
|||
.activity_content { |
|||
padding-bottom: 10px; |
|||
box-sizing: border-box; |
|||
width: 100%; |
|||
min-height: 50px; |
|||
|
|||
.img { |
|||
width: 231px; |
|||
height: 33px; |
|||
margin: 5px 3px 0 3px; |
|||
} |
|||
|
|||
&:last-child { |
|||
border-bottom: none; |
|||
} |
|||
|
|||
|
|||
.content { |
|||
|
|||
width: 325px; |
|||
height: 40px; |
|||
font-family: PingFang SC; |
|||
font-weight: 500; |
|||
font-size: 16px; |
|||
color: #333333; |
|||
line-height: 23px; |
|||
} |
|||
|
|||
.dianzan { |
|||
width: 325px; |
|||
height: 20px; |
|||
display: flex; |
|||
font-size: 13px; |
|||
color: #AAAAAA; |
|||
flex-direction: row; |
|||
justify-content: space-evenly; |
|||
align-items: center; |
|||
|
|||
.img { |
|||
width: 14.5px; |
|||
height: 15px; |
|||
} |
|||
} |
|||
|
|||
|
|||
} |
|||
|
|||
.header {} |
|||
|
|||
.header .input_search { |
|||
width: 279px; |
|||
height: 33px; |
|||
background: rgba(193, 193, 193, 0.16); |
|||
border-radius: 17px; |
|||
// flex: 1; |
|||
color: #333333; |
|||
border: none; |
|||
/* 取消边框 */ |
|||
margin-left: 10px; |
|||
} |
|||
|
|||
.header .btn_search { |
|||
width: 60px; |
|||
height: 33px; |
|||
background: #3974F6; |
|||
border-radius: 17px; |
|||
font-family: PingFang SC; |
|||
font-weight: 500; |
|||
font-size: 14px; |
|||
color: #FFFFFF; |
|||
line-height: 23px; |
|||
border: none; |
|||
/* 取消边框 */ |
|||
margin-right: 10px; |
|||
} |
|||
</style> |