20 changed files with 2007 additions and 310 deletions
@ -1,5 +1,6 @@ |
|||
NODE_ENV='development' |
|||
# must start with VUE_APP_ |
|||
VUE_APP_ENV = 'development' |
|||
VUE_APP_BASE_URL = http://192.168.1.140/api' |
|||
VUE_APP_BASE_URL = 'http://192.168.1.144/api' |
|||
# VUE_APP_BASE_URL = http://192.168.1.140/api' |
|||
outputDir = 'epmet-work-wx-dev' |
|||
|
After Width: | Height: | Size: 604 KiB |
After Width: | Height: | Size: 24 KiB |
After Width: | Height: | Size: 15 KiB |
After Width: | Height: | Size: 16 KiB |
@ -0,0 +1,122 @@ |
|||
<template> |
|||
<div> |
|||
<div class="flex flex-mean" style="background-color: #FFFFFF; height: 200px;"> |
|||
<img src="../../assets/images/peoSuggestion/6.jpg" style="width: 100%; height: 200px;" /> |
|||
<span class="title" style="position: fixed; top: 30;">{{ tableList.title }}</span> |
|||
</div> |
|||
<div class='' style="position: relative;top: -10px;"> |
|||
<div class="card"> |
|||
<div v-html=" tableList.content"></div> |
|||
<!-- <span> |
|||
各位建议人: |
|||
</span> |
|||
<br> |
|||
<span>  为贯彻落实"以人民为中心"的发展思想,坚持 新时代党的群众路线,践行'大社会、大治理、大服 务"工作</span> |
|||
<br> |
|||
<span> |
|||
注意事项: |
|||
</span> |
|||
<br> |
|||
<span> 1、人民建议,是指公民、法人或社会组织(简称建 议人)为了社会公共利益,针对社会公共事务,对 我市经济建设、政治建 </span> |
|||
<br> |
|||
<span> 2、人民建议,是指公民、法人或社会组织(简称建 议人)为了社会公共利益,针对社会公共事务,对 我市经济建设、政治建 </span> |
|||
--> </div> |
|||
</div> |
|||
<div class="flex flex-center1 "> |
|||
<van-button block color="linear-gradient(to right, #81B5FB, #3E92FF)" style="width: 300px;" round @click="onClickdaily">开始填写</van-button> |
|||
</div> |
|||
|
|||
<Android @send-number="handleNumber" /> |
|||
</div> |
|||
|
|||
</template> |
|||
|
|||
<script> |
|||
import {sphereLifeSearcdetail } from "@/api/lingCircle" |
|||
import Share from "@/components/Share" |
|||
import registerDialog from '@/components/registerDialog'; |
|||
import { setConfig } from '@/utils/jweixin' |
|||
import { Toast, Dialog } from 'vant' |
|||
|
|||
export default { |
|||
data() { |
|||
return { |
|||
tableList:{ |
|||
title:"70岁以上高龄老人补贴福利发放于1月1日", |
|||
content:" 2、人民建议,是指公民、法人或社会组织(简称建 议人)为了社会公共利益,针对社会公共事务,对 我市经济建设、政治建 " |
|||
} |
|||
|
|||
}; |
|||
}, |
|||
created() { |
|||
|
|||
}, |
|||
async mounted() { |
|||
|
|||
}, |
|||
methods: { |
|||
//建议征集 |
|||
onClickdaily(){ |
|||
this.$router.push({path:`solicitationDaily`}) |
|||
}, |
|||
|
|||
|
|||
|
|||
|
|||
}, |
|||
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; |
|||
} |
|||
:deep img{ |
|||
max-width: 100%; |
|||
} |
|||
:deep(.p0>.van-cell) { |
|||
padding: 0; |
|||
} |
|||
|
|||
:deep(.van-cell) { |
|||
padding: 16px 8px; |
|||
} |
|||
|
|||
:deep(.van-cell__title) { |
|||
color: #666666; |
|||
display: flex; |
|||
|
|||
&>span { |
|||
flex: 1; |
|||
} |
|||
} |
|||
|
|||
:deep(.van-cell__value) { |
|||
text-align: left; |
|||
} |
|||
|
|||
:deep(.van-cell--required) { |
|||
&::before { |
|||
left: -5px; |
|||
} |
|||
} |
|||
.title{ |
|||
padding: 0 24px; |
|||
position: fixed; |
|||
color: #FFFF; |
|||
font-size: 27px; |
|||
top: 55px; |
|||
} |
|||
</style> |
@ -0,0 +1,165 @@ |
|||
<template> |
|||
<div> |
|||
<div style="width: 100%;background: #fff; padding: 10px 10px 10px 20px; text-align: left; font-weight: 500;">请输入公民姓名、法人或社会组织名称</div> |
|||
<div class="container"> |
|||
<!-- <div class="block"> |
|||
<div class="textarea"> |
|||
<van-field v-model="eventContent" autosize label="诉求描述" maxlength="20" placeholder="请输入建议主题(20字以内)" |
|||
required rows="2" type="textarea"> |
|||
<template #extra> |
|||
</template> |
|||
</van-field> |
|||
</div> |
|||
</div> --> |
|||
<div class="block"> |
|||
<div class="textarea"> |
|||
<van-field v-model="eventContent" autosize label="建议内容" maxlength="800" |
|||
placeholder="请输入主要建议内容(内容描述不少于10个 字,不超过800字)" required rows="6" type="textarea"> |
|||
<template #extra> |
|||
<span style="color:#C1C1C1; font-size: 15px;line-height: 0">800字以内,简要陈述基本事实和情况以及对我市经济建 |
|||
设、政治建设、文化建设、社会建设、生态文明建设等方 面提出的对策措施。</span> |
|||
</template> |
|||
</van-field> |
|||
|
|||
</div> |
|||
</div> |
|||
<div class="block"> |
|||
<van-field v-model="eventContent" label="是否愿意公开"> |
|||
<template #extra> |
|||
<van-radio-group v-model="radio" direction="horizontal"> |
|||
<van-radio name="1">是</van-radio> |
|||
<van-radio name="2">否</van-radio> |
|||
</van-radio-group> |
|||
</template> |
|||
</van-field> |
|||
</div> |
|||
<div class="block"> |
|||
<van-cell title="上传图片/视频"> |
|||
<template #label> |
|||
<van-uploader v-model="fileList" :after-read="afterRead" :max-count="3" accept="image/*,video/*" |
|||
:max-size="10 * 1024 * 1024" /> |
|||
</template> |
|||
</van-cell> |
|||
</div> |
|||
<div class="block"> |
|||
<van-field v-model="name" label="建议人" placeholder="请输入联系人" required> |
|||
<template #message> |
|||
<div style="color:#C1C1C1; font-size: 15px; line-height: 1.5; padding-top: 4px;"> |
|||
请输入公民姓名、法人或社会组织名称 |
|||
</div> |
|||
</template> |
|||
|
|||
</van-field> |
|||
|
|||
|
|||
</div> |
|||
<div class="block"> |
|||
<van-field v-model="phone" label="手机号码" maxlength="11" placeholder="请输入联系电话" required type="number" /> |
|||
</div> |
|||
|
|||
<div class="flex flex-center1 "> |
|||
<van-button block color="linear-gradient(to right, #81B5FB, #3E92FF)" style="width: 300px;" round |
|||
@click="onClickdaily">提交</van-button> |
|||
</div> |
|||
<Android @send-number="handleNumber" /> |
|||
</div> |
|||
</div> |
|||
|
|||
|
|||
</template> |
|||
|
|||
<script> |
|||
import {uploadvariedfile} from '@/api/basic' |
|||
import {sphereLifeSearcdetail } from "@/api/lingCircle" |
|||
import Share from "@/components/Share" |
|||
import registerDialog from '@/components/registerDialog'; |
|||
import { setConfig } from '@/utils/jweixin' |
|||
import { Toast, Dialog } from 'vant' |
|||
|
|||
export default { |
|||
data() { |
|||
return { |
|||
radio:"", |
|||
fileList: [], |
|||
title:"", |
|||
}; |
|||
}, |
|||
created() { |
|||
this.title= console.log(this.$route.query.title,"sdlkfjsdlkfj"); |
|||
|
|||
|
|||
}, |
|||
async mounted() { |
|||
|
|||
}, |
|||
methods: { |
|||
//建议征集 |
|||
onClickdaily(){ |
|||
// this.$router.push({path:`solicitationDaily`}) |
|||
}, |
|||
//上传 |
|||
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 = '上传失败' |
|||
}) |
|||
}, |
|||
|
|||
|
|||
|
|||
|
|||
}, |
|||
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; |
|||
} |
|||
.block { |
|||
border-radius: 8px; |
|||
overflow: hidden; |
|||
margin-bottom: 10px; |
|||
} |
|||
.textarea { |
|||
/deep/ .van-cell { |
|||
display: block; |
|||
} |
|||
/deep/ .van-field__label { |
|||
width: 100%; |
|||
} |
|||
/deep/ .van-cell__value { |
|||
margin-top: 20px; |
|||
background: #F7F7F7; |
|||
padding: 14px 16px; |
|||
} |
|||
} |
|||
|
|||
.speech { |
|||
margin-top: 17px; |
|||
|
|||
} |
|||
|
|||
</style> |
@ -0,0 +1,306 @@ |
|||
<template> |
|||
<div> |
|||
<div class="flex flex-mean" style="background-color: #FFFFFF;"> |
|||
<van-search class="flex flex-1" v-model="searchValue" shape="round" placeholder="请输入搜索关键词"> |
|||
<template #action> |
|||
<!-- 添加样式确保按钮显示,并设置合适的宽高和对齐 --> |
|||
<!-- <div @click="onSearch" |
|||
style="display: flex; align-items: center; justify-content: center; padding: 0 10px; cursor: pointer;"> |
|||
a搜索 |
|||
</div> --> |
|||
</template> |
|||
</van-search> |
|||
<van-button round type="info" class="custom-button font-size13 m-top10 m-right12" @click="handleSearch">查询</van-button> |
|||
|
|||
</div> |
|||
<!-- <van-search v-model="searchKey" placeholder="请输入搜索关键词" shape="round" class="custom-search" |
|||
@search="$router.push({ path: '/search', query: { searchKey: searchKey } })" /> --> |
|||
<div class='container'> |
|||
<van-tabs v-mow="handelChangeTags"> |
|||
<van-tab v-for="item in tagList" :key="item.id" :title="item.tagName"> |
|||
<div class="flex flex-y flex1 flex-end" v-if="PublicityList.length !== 0"> |
|||
<van-list v-model="loading" :finished="finished" finished-text="没有更多了" |
|||
@load="communityPublicity" class="card" :offset="50"> |
|||
<div class="activity_content flex flex-y" v-for="(item, index) in PublicityList" |
|||
: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" > |
|||
{{ item.title }} |
|||
</span> |
|||
<div class="flex flex-end text2"> |
|||
<span class="van-ellipsis y66666 font-size15"> |
|||
{{ item.name }} </span> |
|||
|
|||
<div class="">{{ item.time }}</div> |
|||
</div> |
|||
|
|||
</div> |
|||
<img v-if="item.coverPic" :src="item.coverPic" style="width: 130px;height: 100px;border-radius: 20;" |
|||
alt=""> |
|||
</div> |
|||
<div class="flex flex-end flex-center gray m-top10 font-size13"> |
|||
<!-- <div class="flex flex-center"><img src="@/assets/images/icons/support.png" alt="" |
|||
class="img_16 m-right7"><span>{{ item.likes || 0 }}</span> |
|||
</div> --> |
|||
|
|||
</div> |
|||
</div> |
|||
</van-list> |
|||
</div> |
|||
<div v-else class="no-data"> |
|||
暂无数据~ |
|||
</div> |
|||
</van-tab> |
|||
</van-tabs> |
|||
</div> |
|||
<Android></Android> |
|||
</div> |
|||
|
|||
|
|||
</template> |
|||
|
|||
<script> |
|||
import { advertisingTag, communityPublicity } from '@/api/home'; |
|||
export default { |
|||
data() { |
|||
return { |
|||
PublicityList: [ |
|||
{ |
|||
title:"70岁以上高龄老人补贴福利发放于1月1日", |
|||
name:"胡冰", |
|||
time:"2024-09-10 09:30" |
|||
}, |
|||
{ |
|||
title:"70岁以上高龄老人补贴福利发放于1月1日", |
|||
name:"胡冰", |
|||
time:"2024-09-10 09:30" |
|||
}, |
|||
{ |
|||
title:"70岁以上高龄老人补贴福利发放于1月1日", |
|||
name:"胡冰", |
|||
time:"2024-09-10 09:30" |
|||
}, |
|||
{ |
|||
title:"70岁以上高龄老人补贴福利发放于1月1日", |
|||
name:"胡冰", |
|||
time:"2024-09-10 09:30" |
|||
}, |
|||
], |
|||
tagList:[{ |
|||
id:"0", |
|||
tagName:"日常征集" |
|||
}, |
|||
{ |
|||
id:"1", |
|||
tagName:"专题征集" |
|||
}, |
|||
], |
|||
tagActive: 'new', |
|||
tagId: null, |
|||
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; |
|||
// this.advertisingTag();//获取社区讯息菜单 |
|||
// this.communityPublicity()//获取讯息列表 |
|||
}, |
|||
methods: { |
|||
toDetail(item){ |
|||
this.$router.push({name:'goldenIdeaDetail',query:{id:item.id}}) |
|||
}, |
|||
handleSearch(){ |
|||
this.PublicityList = []; |
|||
this.pageNo = 1; |
|||
this.communityPublicity() |
|||
}, |
|||
filterTagId(tagId) { |
|||
return this.tagList.filter(item => item.id === tagId)[0].tagName || '--'; |
|||
}, |
|||
// async advertisingTag() { |
|||
// let parm = { |
|||
// pageSize: 10, |
|||
// pageNo: 1, |
|||
// status: 1, |
|||
// tagName: null |
|||
// } |
|||
// let res = await advertisingTag(parm) |
|||
// if (res.code === 0) { |
|||
// this.tagList = res.data.list; |
|||
// this.tagList.unshift({ tagName: '最新', id: 'new' }) |
|||
// } |
|||
// }, |
|||
async communityPublicity() { |
|||
let parm = { |
|||
pageSize: 10, |
|||
pageNo: 1, |
|||
title: this.searchValue, |
|||
tagId: this.tagId, |
|||
startTime: '', |
|||
endTime: '', |
|||
agencyId: this.agencyId, |
|||
status:1 |
|||
} |
|||
let res = await communityPublicity(parm) |
|||
if (res.code === 0) { |
|||
this.loading = false; |
|||
res.data.list.forEach(item => { |
|||
if (item.content) { |
|||
item.newContent = this.extractChineseCharactersAndPunctuation(item.content) |
|||
} |
|||
}) |
|||
if (!res.data || res.data.list.length < this.pageSize) { |
|||
this.finished = true; |
|||
} |
|||
this.PublicityList = this.PublicityList.concat(res.data.list); |
|||
} |
|||
}, |
|||
extractChineseCharactersAndPunctuation(str) { |
|||
const chineseCharsAndPunctuation = str.match(/[\u4e00-\u9fa5\u3000-\u303F\uff00-\uffef]/g); |
|||
return chineseCharsAndPunctuation ? chineseCharsAndPunctuation.join('') : ''; |
|||
}, |
|||
handelChangeTags(val, title) { |
|||
this.PublicityList = []; |
|||
if (val !== 0) { |
|||
this.tagId = this.tagList[val].id; |
|||
} else { |
|||
this.tagId = ''; |
|||
} |
|||
this.communityPublicity() |
|||
}, |
|||
}, |
|||
components: {}, |
|||
computed: {}, |
|||
watch: {}, |
|||
} |
|||
</script> |
|||
|
|||
<style lang='less' scoped> |
|||
.text2{ |
|||
font-family: PingFang SC; |
|||
font-weight: 500; |
|||
font-size: 12px; |
|||
color: #999999; |
|||
line-height: 30px; |
|||
} |
|||
.text1{ |
|||
font-family: PingFang SC; |
|||
font-weight: 500; |
|||
font-size: 18px; |
|||
color: #000000; |
|||
; |
|||
} |
|||
.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; /* 平均分布 */ |
|||
} |
|||
|
|||
</style> |
@ -0,0 +1,264 @@ |
|||
<template> |
|||
<div> |
|||
<div class='container' style="height: 85vh; overflow: auto;"> |
|||
<div class="card flex flex-y "> |
|||
<div class="m-bottom5">{{ ProblemDescription.eventContent }}</div> |
|||
<div class="font-size13 gray">{{ ProblemDescription.happenTime }}</div> |
|||
<div class="image-grid" v-for="item in ProblemDescription.imageList" > |
|||
<div class="grid-item "> |
|||
<img :src="item" style="width: 105px; height: 75px;"> |
|||
</div> |
|||
</div> |
|||
<div class="flex flex-y flex-center1 flex-center2 gray back_color m-top15"> |
|||
<div class="flex m-top16 flex-center1 flex-center2 vote white"> |
|||
<div :style="{ width:support1Width}"> |
|||
<span class="van-ellipsis" style="width: 100px;">支持 {{ ProblemDescription.supportNum }}</span> |
|||
<img src="@/assets/images/discusion/VS.png" alt=""> |
|||
</div> |
|||
<div :style="{ width:oppose1Width}"class="text-right van-ellipsis"> |
|||
反对 {{ ProblemDescription.opposeNum }} |
|||
</div> |
|||
</div> |
|||
<div class="gray font-size13 p-12">{{dataValue}}人参与</div> |
|||
|
|||
</div> |
|||
</div> |
|||
<div class="bot_btn flex flex-x flex-mean m-bot50 back_color back_color"> |
|||
<van-button :disabled="disableAllButtons" round class="support" |
|||
:icon="require('@/assets/images/icons/support.png')" type="info" @click="handelClicsupport"> |
|||
支持 |
|||
</van-button> |
|||
|
|||
<van-button :disabled="disableAllButtons" round class="support" |
|||
:icon="require('@/assets/images/icons/oppose.png')" type="info" @click="handelClicopposeNum"> |
|||
反对 |
|||
</van-button> |
|||
</div> |
|||
</div> |
|||
<Android/> |
|||
</div> |
|||
|
|||
</template> |
|||
|
|||
<script> |
|||
import { andelClicDetail, handelClicsupport } from '@/api/home'; |
|||
export default { |
|||
data() { |
|||
return { |
|||
signUp: [ |
|||
{}, |
|||
], |
|||
dataValue: null, |
|||
support: false, |
|||
oppose: false, |
|||
supportNum: null, |
|||
opposeNum: null, |
|||
disableAllButtons: false, |
|||
eventId: "", |
|||
ProblemDescription: {}, |
|||
vote: {} |
|||
}; |
|||
|
|||
}, |
|||
components:{}, |
|||
created() { |
|||
this.eventId = this.$route.query.eventId |
|||
this.id = this.$route.query.eventId |
|||
this.agencyId = this.$store.state.app.agencyId; |
|||
this.userId = this.$store.state.app.userInfo.id; |
|||
this.icEventOldDiscussDetil1() |
|||
}, |
|||
computed: { |
|||
support1() { |
|||
return (this.ProblemDescription.supportNum / this.dataValue) |
|||
}, |
|||
oppose1() { |
|||
return (this.ProblemDescription.opposeNum / this.dataValue) |
|||
}, |
|||
support1Width() { |
|||
return (!this.support1?50:this.support1.toFixed(2) * 100) + '%'; |
|||
}, |
|||
oppose1Width() { |
|||
return (!this.oppose1?50:this.oppose1.toFixed(2) * 100) + '%'; |
|||
} |
|||
}, |
|||
methods: { |
|||
async handelClicsupport() { |
|||
let parm = { |
|||
eventId: this.eventId, |
|||
agencyId: this.agencyId, |
|||
userId: this.userId, |
|||
opinionFlag: 0 |
|||
} |
|||
let res = await handelClicsupport(parm) |
|||
if(res.code == 0){ |
|||
await this.icEventOldDiscussDetil1() |
|||
} |
|||
}, |
|||
async handelClicopposeNum(data) { |
|||
let parm = { |
|||
eventId: this.eventId, |
|||
agencyId: this.agencyId, |
|||
userId: this.userId, |
|||
opinionFlag: 1 |
|||
} |
|||
let res = await handelClicsupport(parm) |
|||
if(res.code === 0){ |
|||
await this.icEventOldDiscussDetil1() |
|||
} |
|||
}, |
|||
async icEventOldDiscussDetil1() { |
|||
console.log(this.id, "this.id"); |
|||
let parm = { |
|||
icEventId: this.eventId |
|||
} |
|||
await andelClicDetail(parm).then(res => { |
|||
this.ProblemDescription = res.data; |
|||
this.dataValue = res.data.opposeNum + res.data.supportNum |
|||
}) |
|||
}, |
|||
handsupport() { |
|||
this.support = true; |
|||
}, |
|||
}, |
|||
|
|||
} |
|||
</script> |
|||
|
|||
<style lang='less' scoped> |
|||
.image-container { |
|||
position: relative; |
|||
display: inline-block; |
|||
} |
|||
|
|||
.image-grid { |
|||
margin-top: 20px; |
|||
display: grid; |
|||
grid-template-columns: repeat(3, 1fr); |
|||
grid-auto-flow: row; |
|||
/* 自动换行 */ |
|||
} |
|||
|
|||
.z_img { |
|||
width: 10px; |
|||
height: 35px; |
|||
background: url('@/assets/images/discusion/f-y.png'); |
|||
background-size: cover; |
|||
} |
|||
|
|||
.image-with-text { |
|||
position: relative; |
|||
display: inline-block; |
|||
} |
|||
|
|||
.grid-item { |
|||
text-align: center; |
|||
} |
|||
|
|||
.support { |
|||
background-color: #ffffff; |
|||
color: black; |
|||
} |
|||
|
|||
.t_sup { |
|||
display: inline-flex; |
|||
position: absolute; |
|||
} |
|||
|
|||
.support_img1 { |
|||
height: 35px; |
|||
} |
|||
|
|||
.support_img2 { |
|||
height: 35px; |
|||
} |
|||
|
|||
.header_img_left { |
|||
// background:"@/assets/images/discusion/1.png"; |
|||
background: url('@/assets/images/discusion/h-l.png'); |
|||
width: 10px; |
|||
height: 35px; |
|||
background-size: cover; |
|||
/* 使背景图片覆盖整个元素 */ |
|||
} |
|||
|
|||
.header_img_right { |
|||
background: url('@/assets/images/discusion/f-l.png'); |
|||
width: 10px; |
|||
height: 35px; |
|||
background-size: cover; |
|||
/* 使背景图片覆盖整个元素 */ |
|||
} |
|||
|
|||
.text-overlay { |
|||
position: absolute; |
|||
bottom: 10px; |
|||
/* 文字距离图片底部的距离 */ |
|||
color: white; |
|||
/* 文字颜色,可以根据需要调整 */ |
|||
padding: 5px; |
|||
border-radius: 3px; |
|||
/* 可选,圆角 */ |
|||
font-size: 13px; |
|||
text-align: center; |
|||
|
|||
} |
|||
|
|||
.text-overlay1 { |
|||
position: absolute; |
|||
bottom: 10px; |
|||
/* 文字距离图片底部的距离 */ |
|||
color: white; |
|||
/* 文字颜色,可以根据需要调整 */ |
|||
padding: 5px; |
|||
border-radius: 3px; |
|||
/* 可选,圆角 */ |
|||
font-size: 13px; |
|||
text-align: center; |
|||
right: 0px; |
|||
|
|||
} |
|||
|
|||
.footer_img_left { |
|||
background: url('@/assets/images/discusion/h-y.png'); |
|||
width: 10px; |
|||
height: 35px; |
|||
background-size: cover; |
|||
} |
|||
|
|||
.vote { |
|||
width: 100%; |
|||
|
|||
&>:nth-child(1), |
|||
>:nth-child(2) { |
|||
height: 35px; |
|||
line-height: 35px; |
|||
padding: 0 11px; |
|||
box-sizing: border-box; |
|||
font-size: 13px; |
|||
} |
|||
|
|||
&>:nth-child(1) { |
|||
background: url('@/assets/images/discusion/left-bg.png') no-repeat; |
|||
background-size: 97% 100%; |
|||
padding: 0 10px; |
|||
box-sizing: border-box; |
|||
position: relative; |
|||
z-index: 4; |
|||
&>img{ |
|||
width: 25px; |
|||
height: 25px; |
|||
position: absolute; |
|||
right: -10px; |
|||
top: 5px; |
|||
z-index: 10; |
|||
} |
|||
} |
|||
|
|||
&>:nth-child(2) { |
|||
background: url('@/assets/images/discusion/right-bg.png') no-repeat; |
|||
background-size: 100% 100%; |
|||
z-index: 3; |
|||
} |
|||
} |
|||
</style> |
@ -0,0 +1,161 @@ |
|||
<template> |
|||
<div class="container"> |
|||
<div class="block"> |
|||
<div class="textarea"> |
|||
<van-field v-model="eventContent" autosize label="诉求描述" maxlength="20" placeholder="请输入建议主题(20字以内)" |
|||
required rows="2" type="textarea"> |
|||
<template #extra> |
|||
</template> |
|||
</van-field> |
|||
</div> |
|||
</div> |
|||
<div class="block"> |
|||
<div class="textarea"> |
|||
<van-field v-model="eventContent" autosize label="建议内容" maxlength="800" |
|||
placeholder="请输入主要建议内容(内容描述不少于10个 字,不超过800字)" required rows="6" type="textarea"> |
|||
<template #extra> |
|||
<span style="color:#C1C1C1; font-size: 15px;line-height: 0">800字以内,简要陈述基本事实和情况以及对我市经济建 |
|||
设、政治建设、文化建设、社会建设、生态文明建设等方 面提出的对策措施。</span> |
|||
</template> |
|||
|
|||
</van-field> |
|||
|
|||
</div> |
|||
</div> |
|||
<div class="block"> |
|||
<van-field v-model="eventContent" label="是否愿意公开"> |
|||
<template #extra> |
|||
<van-radio-group v-model="radio" direction="horizontal"> |
|||
<van-radio name="1">是</van-radio> |
|||
<van-radio name="2">否</van-radio> |
|||
</van-radio-group> |
|||
</template> |
|||
</van-field> |
|||
</div> |
|||
<div class="block"> |
|||
<van-cell title="上传图片/视频"> |
|||
<template #label> |
|||
<van-uploader v-model="fileList" :after-read="afterRead" :max-count="3" accept="image/*,video/*" |
|||
:max-size="10 * 1024 * 1024" /> |
|||
</template> |
|||
</van-cell> |
|||
</div> |
|||
<div class="block"> |
|||
<van-field v-model="name" label="建议人" placeholder="请输入联系人" required> |
|||
<template #message> |
|||
<div style="color:#C1C1C1; font-size: 15px; line-height: 1.5; padding-top: 4px;"> |
|||
请输入公民姓名、法人或社会组织名称 |
|||
</div> |
|||
</template> |
|||
|
|||
</van-field> |
|||
|
|||
|
|||
</div> |
|||
<div class="block"> |
|||
<van-field v-model="phone" label="联系电话" maxlength="11" placeholder="请输入联系电话" required type="number" /> |
|||
</div> |
|||
|
|||
<div class="flex flex-center1 "> |
|||
<van-button block color="linear-gradient(to right, #81B5FB, #3E92FF)" style="width: 300px;" round |
|||
@click="onClickdaily">提交</van-button> |
|||
</div> |
|||
|
|||
<Android @send-number="handleNumber" /> |
|||
</div> |
|||
|
|||
</template> |
|||
|
|||
<script> |
|||
import {uploadvariedfile} from '@/api/basic' |
|||
import {sphereLifeSearcdetail } from "@/api/lingCircle" |
|||
import Share from "@/components/Share" |
|||
import registerDialog from '@/components/registerDialog'; |
|||
import { setConfig } from '@/utils/jweixin' |
|||
import { Toast, Dialog } from 'vant' |
|||
|
|||
export default { |
|||
data() { |
|||
return { |
|||
radio:"", |
|||
fileList: [], |
|||
|
|||
}; |
|||
}, |
|||
created() { |
|||
|
|||
}, |
|||
async mounted() { |
|||
|
|||
}, |
|||
methods: { |
|||
//建议征集 |
|||
onClickdaily(){ |
|||
this.$router.push({path:`solicitationDaily`}) |
|||
}, |
|||
//上传 |
|||
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 = '上传失败' |
|||
}) |
|||
}, |
|||
|
|||
|
|||
|
|||
|
|||
}, |
|||
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; |
|||
} |
|||
.block { |
|||
border-radius: 8px; |
|||
overflow: hidden; |
|||
margin-bottom: 10px; |
|||
} |
|||
.textarea { |
|||
/deep/ .van-cell { |
|||
display: block; |
|||
} |
|||
/deep/ .van-field__label { |
|||
width: 100%; |
|||
} |
|||
/deep/ .van-cell__value { |
|||
margin-top: 20px; |
|||
background: #F7F7F7; |
|||
padding: 14px 16px; |
|||
} |
|||
} |
|||
|
|||
.speech { |
|||
margin-top: 17px; |
|||
|
|||
} |
|||
|
|||
</style> |
@ -0,0 +1,218 @@ |
|||
<template> |
|||
<div> |
|||
<div class='container'> |
|||
<van-list class="card" :offset="50"> |
|||
|
|||
<div class="activity_content " v-for="(item, index) in discussionList" :key="index" > |
|||
<div @click="$router.push({ path: `/SpecialsolicitationFill`,query: { title:item.title} })"> |
|||
<div class="van-multi-ellipsis--l2 m-bottom10" style="line-height: 28px; font-size: 20px; font-weight: 500; line-height: 28px; font-family: PingFang SC;" > |
|||
{{ item.title }} |
|||
</div> |
|||
<div class="flex flex-end"> |
|||
<div class="font-size13 AAA flex flex-center2"> |
|||
{{ item.total }}条 |
|||
</div> |
|||
<div class="font-size13 AAA flex flex-center2">{{ item.time }}</div> |
|||
</div> |
|||
</div> |
|||
|
|||
</div> |
|||
</van-list> |
|||
<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 registerDialog from '@/components/registerDialog'; |
|||
export default { |
|||
data() { |
|||
return { |
|||
discussionList: [ |
|||
{ |
|||
title:"70岁以上高龄老人补贴福利发放于1月1日", |
|||
total:110, |
|||
time:"2024-09-10 09:30" |
|||
}, |
|||
{ |
|||
title:"70岁以上高龄老人补贴福利发放于1月1日", |
|||
total:110, |
|||
time:"2024-09-10 09:30" |
|||
}, |
|||
{ |
|||
title:"70岁以上高龄老人补贴福利发放于1月1日", |
|||
total:110, |
|||
time:"2024-09-10 09:30" |
|||
}, |
|||
{ |
|||
title:"70岁以上高龄老人补贴福利发放于1月1日", |
|||
total:110, |
|||
time:"2024-09-10 09:30" |
|||
}, |
|||
], |
|||
pageSize: 5, |
|||
pageNo: 1, |
|||
agencyId: null, |
|||
finished: false, |
|||
loading: false, |
|||
showRegister: false, |
|||
searchValue: "", |
|||
userId:"" |
|||
}; |
|||
}, |
|||
created() { |
|||
this.agencyId = this.$route.query.agencyId?this.$route.query.agencyId: this.$store.state.app.agencyId; |
|||
this.userId = this.$store.state.app.appId; |
|||
// this.icEventOldDiscuss(); |
|||
}, |
|||
methods: { |
|||
|
|||
async handelClicsupport(data){ |
|||
let parm = { |
|||
eventId:data, |
|||
agencyId: this.agencyId, |
|||
userId: this.userId, |
|||
opinionFlag:0 |
|||
} |
|||
console.log(parm); |
|||
let res = await handelClicsupport(parm) |
|||
if(res.code === 0){ |
|||
this.icEventOldDiscuss() |
|||
} |
|||
}, |
|||
async handelClicopposeNum(data){ |
|||
let parm = { |
|||
eventId:data, |
|||
agencyId: this.agencyId, |
|||
userId: this.userId, |
|||
opinionFlag:1 |
|||
} |
|||
console.log(parm); |
|||
let res = await handelClicsupport(parm) |
|||
if(res.code === 0){ |
|||
this.icEventOldDiscuss() |
|||
} |
|||
}, |
|||
async icEventOldDiscuss(){ |
|||
let parm = { |
|||
pageSize: 10, |
|||
pageNo: 1, |
|||
agencyId: this.agencyId, |
|||
icEventId:null |
|||
} |
|||
|
|||
let res = await icEventOldDiscuss(parm) |
|||
|
|||
if (res.code === 0) { |
|||
this.discussionList = res.data.list |
|||
} |
|||
|
|||
|
|||
}, |
|||
|
|||
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> |
|||
.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; |
|||
} |
|||
</style> |
@ -0,0 +1,304 @@ |
|||
<template> |
|||
<div> |
|||
<div class="flex flex-mean" style="background-color: #FFFFFF;"> |
|||
<van-search class="flex flex-1" v-model="searchValue" shape="round" placeholder="请输入搜索关键词"> |
|||
<template #action> |
|||
<!-- 添加样式确保按钮显示,并设置合适的宽高和对齐 --> |
|||
<!-- <div @click="onSearch" |
|||
style="display: flex; align-items: center; justify-content: center; padding: 0 10px; cursor: pointer;"> |
|||
a搜索 |
|||
</div> --> |
|||
</template> |
|||
</van-search> |
|||
<van-button round type="info" class="custom-button font-size13 m-top10 m-right12" @click="handleSearch">查询</van-button> |
|||
|
|||
</div> |
|||
<!-- <van-search v-model="searchKey" placeholder="请输入搜索关键词" shape="round" class="custom-search" |
|||
@search="$router.push({ path: '/search', query: { searchKey: searchKey } })" /> --> |
|||
<div class='container'> |
|||
<div class="flex flex-y flex1 flex-end" v-if="PublicityList.length !== 0"> |
|||
<van-list v-model="loading" :finished="finished" finished-text="没有更多了" |
|||
@load="communityPublicity" class="card" :offset="50"> |
|||
<div class="activity_content flex flex-y" v-for="(item, index) in PublicityList" |
|||
: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" > |
|||
{{ item.title }} |
|||
</span> |
|||
<div class="flex flex-end text2"> |
|||
<span class="van-ellipsis y66666 font-size15"> |
|||
{{ item.name }} </span> |
|||
|
|||
<div class="">{{ item.time }}</div> |
|||
</div> |
|||
|
|||
</div> |
|||
<img v-if="item.coverPic" :src="item.coverPic" style="width: 130px;height: 100px;border-radius: 20;" |
|||
alt=""> |
|||
</div> |
|||
<div class="flex flex-end flex-center gray m-top10 font-size13"> |
|||
<!-- <div class="flex flex-center"><img src="@/assets/images/icons/support.png" alt="" |
|||
class="img_16 m-right7"><span>{{ item.likes || 0 }}</span> |
|||
</div> --> |
|||
|
|||
</div> |
|||
</div> |
|||
</van-list> |
|||
</div> |
|||
<div v-else class="no-data"> |
|||
暂无数据~ |
|||
</div> |
|||
|
|||
|
|||
</div> |
|||
<Android></Android> |
|||
</div> |
|||
|
|||
|
|||
</template> |
|||
|
|||
<script> |
|||
import { advertisingTag, communityPublicity } from '@/api/home'; |
|||
export default { |
|||
data() { |
|||
return { |
|||
PublicityList: [ |
|||
{ |
|||
title:"70岁以上高龄老人补贴福利发放于1月1日", |
|||
name:"胡冰", |
|||
time:"2024-09-10 09:30" |
|||
}, |
|||
{ |
|||
title:"70岁以上高龄老人补贴福利发放于1月1日", |
|||
name:"胡冰", |
|||
time:"2024-09-10 09:30" |
|||
}, |
|||
{ |
|||
title:"70岁以上高龄老人补贴福利发放于1月1日", |
|||
name:"胡冰", |
|||
time:"2024-09-10 09:30" |
|||
}, |
|||
{ |
|||
title:"70岁以上高龄老人补贴福利发放于1月1日", |
|||
name:"胡冰", |
|||
time:"2024-09-10 09:30" |
|||
}, |
|||
], |
|||
tagList:[{ |
|||
id:"0", |
|||
tagName:"日常征集" |
|||
}, |
|||
{ |
|||
id:"1", |
|||
tagName:"专题征集" |
|||
}, |
|||
], |
|||
tagActive: 'new', |
|||
tagId: null, |
|||
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; |
|||
// this.advertisingTag();//获取社区讯息菜单 |
|||
// this.communityPublicity()//获取讯息列表 |
|||
}, |
|||
methods: { |
|||
toDetail(item){ |
|||
this.$router.push({name:'topicListDetail',query:{id:item.id}}) |
|||
}, |
|||
handleSearch(){ |
|||
this.PublicityList = []; |
|||
this.pageNo = 1; |
|||
this.communityPublicity() |
|||
}, |
|||
filterTagId(tagId) { |
|||
return this.tagList.filter(item => item.id === tagId)[0].tagName || '--'; |
|||
}, |
|||
// async advertisingTag() { |
|||
// let parm = { |
|||
// pageSize: 10, |
|||
// pageNo: 1, |
|||
// status: 1, |
|||
// tagName: null |
|||
// } |
|||
// let res = await advertisingTag(parm) |
|||
// if (res.code === 0) { |
|||
// this.tagList = res.data.list; |
|||
// this.tagList.unshift({ tagName: '最新', id: 'new' }) |
|||
// } |
|||
// }, |
|||
async communityPublicity() { |
|||
let parm = { |
|||
pageSize: 10, |
|||
pageNo: 1, |
|||
title: this.searchValue, |
|||
tagId: this.tagId, |
|||
startTime: '', |
|||
endTime: '', |
|||
agencyId: this.agencyId, |
|||
status:1 |
|||
} |
|||
let res = await communityPublicity(parm) |
|||
if (res.code === 0) { |
|||
this.loading = false; |
|||
res.data.list.forEach(item => { |
|||
if (item.content) { |
|||
item.newContent = this.extractChineseCharactersAndPunctuation(item.content) |
|||
} |
|||
}) |
|||
if (!res.data || res.data.list.length < this.pageSize) { |
|||
this.finished = true; |
|||
} |
|||
this.PublicityList = this.PublicityList.concat(res.data.list); |
|||
} |
|||
}, |
|||
extractChineseCharactersAndPunctuation(str) { |
|||
const chineseCharsAndPunctuation = str.match(/[\u4e00-\u9fa5\u3000-\u303F\uff00-\uffef]/g); |
|||
return chineseCharsAndPunctuation ? chineseCharsAndPunctuation.join('') : ''; |
|||
}, |
|||
handelChangeTags(val, title) { |
|||
this.PublicityList = []; |
|||
if (val !== 0) { |
|||
this.tagId = this.tagList[val].id; |
|||
} else { |
|||
this.tagId = ''; |
|||
} |
|||
this.communityPublicity() |
|||
}, |
|||
}, |
|||
components: {}, |
|||
computed: {}, |
|||
watch: {}, |
|||
} |
|||
</script> |
|||
|
|||
<style lang='less' scoped> |
|||
.text2{ |
|||
font-family: PingFang SC; |
|||
font-weight: 500; |
|||
font-size: 12px; |
|||
color: #999999; |
|||
line-height: 30px; |
|||
} |
|||
.text1{ |
|||
font-family: PingFang SC; |
|||
font-weight: 500; |
|||
font-size: 18px; |
|||
color: #000000; |
|||
; |
|||
} |
|||
.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; /* 平均分布 */ |
|||
} |
|||
|
|||
</style> |
@ -0,0 +1,271 @@ |
|||
<template> |
|||
<div> |
|||
<div class='container' style="height: 85vh; overflow: auto;"> |
|||
<div class="card flex flex-y "> |
|||
<div class="m-bottom5">{{ ProblemDescription.eventContent }}</div> |
|||
<div class="font-size13 gray">{{ ProblemDescription.happenTime }}</div> |
|||
<div class="image-grid" v-for="item in ProblemDescription.imageList" > |
|||
<div class="grid-item "> |
|||
<img :src="item" style="width: 105px; height: 75px;"> |
|||
</div> |
|||
</div> |
|||
<!-- <div class="flex flex-y flex-center1 flex-center2 gray back_color m-top15"> |
|||
<div class="flex m-top16 flex-center1 flex-center2 vote white"> |
|||
<div :style="{ width:support1Width}"> |
|||
<span class="van-ellipsis" style="width: 100px;">支持 {{ ProblemDescription.supportNum }}</span> |
|||
<img src="@/assets/images/discusion/VS.png" alt=""> |
|||
</div> |
|||
<div :style="{ width:oppose1Width}"class="text-right van-ellipsis"> |
|||
反对 {{ ProblemDescription.opposeNum }} |
|||
</div> |
|||
</div> |
|||
<div class="gray font-size13 p-12">{{dataValue}}人参与</div> |
|||
|
|||
</div> --> |
|||
|
|||
</div> |
|||
<!-- <div class="bot_btn flex flex-x flex-mean m-bot50 back_color back_color"> |
|||
<van-button :disabled="disableAllButtons" round class="support" |
|||
:icon="require('@/assets/images/icons/support.png')" type="info" @click="handelClicsupport"> |
|||
支持 |
|||
</van-button> |
|||
|
|||
<van-button :disabled="disableAllButtons" round class="support" |
|||
:icon="require('@/assets/images/icons/oppose.png')" type="info" @click="handelClicopposeNum"> |
|||
反对 |
|||
</van-button> |
|||
</div> --> |
|||
<div class="flex flex-center1 "> |
|||
<van-button block color="linear-gradient(to right, #81B5FB, #3E92FF)" style="width: 300px;" round @click="onClickdaily">我要征集</van-button> |
|||
</div> |
|||
</div> |
|||
<Android/> |
|||
</div> |
|||
|
|||
</template> |
|||
|
|||
<script> |
|||
import { andelClicDetail, handelClicsupport } from '@/api/home'; |
|||
export default { |
|||
data() { |
|||
return { |
|||
signUp: [ |
|||
{}, |
|||
], |
|||
dataValue: null, |
|||
support: false, |
|||
oppose: false, |
|||
supportNum: null, |
|||
opposeNum: null, |
|||
disableAllButtons: false, |
|||
eventId: "", |
|||
ProblemDescription: {}, |
|||
vote: {} |
|||
}; |
|||
|
|||
}, |
|||
components:{}, |
|||
created() { |
|||
this.eventId = this.$route.query.eventId |
|||
this.id = this.$route.query.eventId |
|||
this.agencyId = this.$store.state.app.agencyId; |
|||
this.userId = this.$store.state.app.userInfo.id; |
|||
this.icEventOldDiscussDetil1() |
|||
}, |
|||
computed: { |
|||
support1() { |
|||
return (this.ProblemDescription.supportNum / this.dataValue) |
|||
}, |
|||
oppose1() { |
|||
return (this.ProblemDescription.opposeNum / this.dataValue) |
|||
}, |
|||
support1Width() { |
|||
return (!this.support1?50:this.support1.toFixed(2) * 100) + '%'; |
|||
}, |
|||
oppose1Width() { |
|||
return (!this.oppose1?50:this.oppose1.toFixed(2) * 100) + '%'; |
|||
} |
|||
}, |
|||
methods: { |
|||
onClickdaily(){ |
|||
this.$router.push({path:'peoSuggestionexplain'}) |
|||
}, |
|||
async handelClicsupport() { |
|||
let parm = { |
|||
eventId: this.eventId, |
|||
agencyId: this.agencyId, |
|||
userId: this.userId, |
|||
opinionFlag: 0 |
|||
} |
|||
let res = await handelClicsupport(parm) |
|||
if(res.code == 0){ |
|||
await this.icEventOldDiscussDetil1() |
|||
} |
|||
}, |
|||
async handelClicopposeNum(data) { |
|||
let parm = { |
|||
eventId: this.eventId, |
|||
agencyId: this.agencyId, |
|||
userId: this.userId, |
|||
opinionFlag: 1 |
|||
} |
|||
let res = await handelClicsupport(parm) |
|||
if(res.code === 0){ |
|||
await this.icEventOldDiscussDetil1() |
|||
} |
|||
}, |
|||
async icEventOldDiscussDetil1() { |
|||
console.log(this.id, "this.id"); |
|||
let parm = { |
|||
icEventId: this.eventId |
|||
} |
|||
await andelClicDetail(parm).then(res => { |
|||
this.ProblemDescription = res.data; |
|||
this.dataValue = res.data.opposeNum + res.data.supportNum |
|||
}) |
|||
}, |
|||
handsupport() { |
|||
this.support = true; |
|||
}, |
|||
}, |
|||
|
|||
} |
|||
</script> |
|||
|
|||
<style lang='less' scoped> |
|||
.image-container { |
|||
position: relative; |
|||
display: inline-block; |
|||
} |
|||
|
|||
.image-grid { |
|||
margin-top: 20px; |
|||
display: grid; |
|||
grid-template-columns: repeat(3, 1fr); |
|||
grid-auto-flow: row; |
|||
/* 自动换行 */ |
|||
} |
|||
|
|||
.z_img { |
|||
width: 10px; |
|||
height: 35px; |
|||
background: url('@/assets/images/discusion/f-y.png'); |
|||
background-size: cover; |
|||
} |
|||
|
|||
.image-with-text { |
|||
position: relative; |
|||
display: inline-block; |
|||
} |
|||
|
|||
.grid-item { |
|||
text-align: center; |
|||
} |
|||
|
|||
.support { |
|||
background-color: #ffffff; |
|||
color: black; |
|||
} |
|||
|
|||
.t_sup { |
|||
display: inline-flex; |
|||
position: absolute; |
|||
} |
|||
|
|||
.support_img1 { |
|||
height: 35px; |
|||
} |
|||
|
|||
.support_img2 { |
|||
height: 35px; |
|||
} |
|||
|
|||
.header_img_left { |
|||
// background:"@/assets/images/discusion/1.png"; |
|||
background: url('@/assets/images/discusion/h-l.png'); |
|||
width: 10px; |
|||
height: 35px; |
|||
background-size: cover; |
|||
/* 使背景图片覆盖整个元素 */ |
|||
} |
|||
|
|||
.header_img_right { |
|||
background: url('@/assets/images/discusion/f-l.png'); |
|||
width: 10px; |
|||
height: 35px; |
|||
background-size: cover; |
|||
/* 使背景图片覆盖整个元素 */ |
|||
} |
|||
|
|||
.text-overlay { |
|||
position: absolute; |
|||
bottom: 10px; |
|||
/* 文字距离图片底部的距离 */ |
|||
color: white; |
|||
/* 文字颜色,可以根据需要调整 */ |
|||
padding: 5px; |
|||
border-radius: 3px; |
|||
/* 可选,圆角 */ |
|||
font-size: 13px; |
|||
text-align: center; |
|||
|
|||
} |
|||
|
|||
.text-overlay1 { |
|||
position: absolute; |
|||
bottom: 10px; |
|||
/* 文字距离图片底部的距离 */ |
|||
color: white; |
|||
/* 文字颜色,可以根据需要调整 */ |
|||
padding: 5px; |
|||
border-radius: 3px; |
|||
/* 可选,圆角 */ |
|||
font-size: 13px; |
|||
text-align: center; |
|||
right: 0px; |
|||
|
|||
} |
|||
|
|||
.footer_img_left { |
|||
background: url('@/assets/images/discusion/h-y.png'); |
|||
width: 10px; |
|||
height: 35px; |
|||
background-size: cover; |
|||
} |
|||
|
|||
.vote { |
|||
width: 100%; |
|||
|
|||
&>:nth-child(1), |
|||
>:nth-child(2) { |
|||
height: 35px; |
|||
line-height: 35px; |
|||
padding: 0 11px; |
|||
box-sizing: border-box; |
|||
font-size: 13px; |
|||
} |
|||
|
|||
&>:nth-child(1) { |
|||
background: url('@/assets/images/discusion/left-bg.png') no-repeat; |
|||
background-size: 97% 100%; |
|||
padding: 0 10px; |
|||
box-sizing: border-box; |
|||
position: relative; |
|||
z-index: 4; |
|||
&>img{ |
|||
width: 25px; |
|||
height: 25px; |
|||
position: absolute; |
|||
right: -10px; |
|||
top: 5px; |
|||
z-index: 10; |
|||
} |
|||
} |
|||
|
|||
&>:nth-child(2) { |
|||
background: url('@/assets/images/discusion/right-bg.png') no-repeat; |
|||
background-size: 100% 100%; |
|||
z-index: 3; |
|||
} |
|||
} |
|||
</style> |
Loading…
Reference in new issue