Browse Source

人民建议征集的更改

xiaowang-feature
是小王呀\24601 9 months ago
parent
commit
066bea69a5
  1. 3
      src/assets/css/index.less
  2. BIN
      src/assets/images/peoSuggestion/10.png
  3. 5
      src/plugins/vant.js
  4. 135
      src/views/peoSuggestion/SpecialsolicitationFill.vue
  5. 10
      src/views/peoSuggestion/explain.vue
  6. 58
      src/views/peoSuggestion/index.vue
  7. 34
      src/views/peoSuggestion/topicList.vue
  8. 18
      src/views/peoSuggestion/topicListDetail.vue

3
src/assets/css/index.less

@ -272,6 +272,9 @@ body #app {
.font-size18{
font-size: 18px;
}
.font-size17{
font-size: 17px;
}
.font-size21{
font-size: 21px;
}

BIN
src/assets/images/peoSuggestion/10.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

5
src/plugins/vant.js

@ -32,6 +32,9 @@ import {
Cascader,
TreeSelect,
DatetimePicker,
Checkbox,
CheckboxGroup,
} from 'vant'
Vue.use(Button)
.use(Field)
@ -64,3 +67,5 @@ Vue.use(Button)
.use(Cascader)
.use(TreeSelect)
.use(DatetimePicker)
.use(Checkbox)
.use(CheckboxGroup)

135
src/views/peoSuggestion/SpecialsolicitationFill.vue

@ -1,15 +1,22 @@
<template>
<div>
<div style="width: 100%;background: #fff; padding: 10px 10px 10px 20px; text-align: left; font-weight: 500;">{{formData.subjectTitle}}</div>
<div style="width: 100%;background: #fff; padding: 10px 10px 10px 20px; text-align: left; font-weight: 500;">
{{formData.subjectTitle}}</div>
<div class="container">
<div class="block">
<div class="textarea">
<van-field v-model="formData.eventContent" autosize label="建议内容" maxlength="800"
placeholder="请输入主要建议内容(内容描述不少于10个 字,不超过800字)" required rows="6" type="textarea">
placeholder="请输入主要建议内容(内容描述不少于50个字,不超过2000字).提出的建议应当具备主要事由及对策措施等内容,真实有效,具备可操作性。" required
rows="6" type="textarea">
<template #extra>
<span style="color:#C1C1C1; font-size: 15px;line-height: 0">800字以内简要陈述基本事实和情况以及对我市经济建
政治建设文化建设社会建设生态文明建设等方 面提出的对策措施</span>
<div class="flex flex-y" style="margin-top: 10px;">
<van-uploader max-size="10 * 1024 * 1024" v-model="fileList1" show-upload
:after-read="afterReadFile" :before-read="beforeRead" accept=".doc,.docx,.pdf" />
<span
style="color:#C1C1C1; font-size: 15px;line-height: 18px">您也可以将建议内容整理成文档上传支持wordpdf格式文件大小不超过5Mb.</span>
</div>
</template>
</van-field>
@ -34,25 +41,40 @@
</van-cell>
</div>
<div class="block">
<van-field v-model="formData.name" label="建议人" placeholder="请输入联系人" required>
<van-field v-model="formData.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="formData.mobile" label="手机号码" maxlength="11" placeholder="请输入联系电话" required type="number" />
<van-field v-model="formData.mobile" label="手机号码" maxlength="11" placeholder="请输入联系电话" required
type="number" />
</div>
<div class="block">
<van-field v-model="formData.age" label="年龄" placeholder="请输入联系人" type="number" @input="onInput"
required>
</van-field>
</div>
<div class="block">
<van-cell required is-link @click="onClickPopup">你的身份(可多选)</van-cell>
</div>
<div class="flex flex-center1 ">
<van-button block color="linear-gradient(to right, #81B5FB, #3E92FF)" style="width: 300px; margin-bottom: 50px;" round
@click="onClickdaily">提交</van-button>
<van-button block color="linear-gradient(to right, #81B5FB, #3E92FF)"
style="width: 300px; margin-bottom: 50px;" round @click="onClickdaily">提交</van-button>
</div>
<van-popup v-model="showPopup" position="bottom" :style="{ height: '50%' }" @close="onClose" round closeable>
<div style="margin: 10px">
<van-checkbox-group v-model="formData.identityTypeCode" ref="checkboxGroup" @change="onCheck">
<van-checkbox v-for="(item, index) in ideaIdentityList" :key="index" :name="item.value"
style="margin: 10px;" shape="square">
{{ item.label }}
</van-checkbox>
</van-checkbox-group>
</div>
</van-popup>
<Android @send-number="handleNumber" />
</div>
</div>
@ -61,6 +83,7 @@
</template>
<script>
import { dictlist } from '@/api/user'
import {
ideaList,icEventSpecialSubject,icEventOldAdd
} from "@/api/peoSuggestion"
@ -74,7 +97,12 @@ import { Toast, Dialog } from 'vant'
export default {
data() {
return {
showPopup:false,
ideaIdentityList:[],
formData:{
fileList:[],
identityTypeCode:[],
age:"",
specialSubjectId:"",
operationType:"4",
demandType:"idea",
@ -91,11 +119,11 @@ export default {
},
radio:"",
fileList: [],
fileList1:[]
};
},
created() {
console.log(this.$route.query.title);
this.formData.subjectTitle=this.$route.query.title;
this.formData.specialSubjectId=this.$route.query.id
this.formData.agencyId = this.$store.state.app.agencyId;
@ -103,13 +131,90 @@ export default {
},
async mounted() {
this.getDictionaries()
},
methods: {
onCheck(name){
console.log(this.formData.identityTypeCode,"但是克莱斯勒开发接口是");
},
onClose(){
this.showPopup = false;
},
onClickPopup() {
console.log("sdkjfkldsj");
this.showPopup = true;
},
//
async getDictionaries() {
let params = {
dictType: "ideaIdentityType",
};
dictlist(params).then(res => {
this.ideaIdentityList = res.data
})
},
handleNumber(value){
this.phone=value
},
//
onInput(value) {
const num = parseInt(value, 10);
if (/^\d*$/.test(value) && (num >= 1 && num <= 120 || value === '')) {
this.formData.age = value; //
} else {
this.$toast.fail('请输入 1 到 120 的数字');
}
},
//
afterReadFile(file) {
console.log(file, "dsfjklsdlk");
file.status = 'uploading'
file.message = '上传中...'
uploadvariedfile(file.file)
.then(res => {
console.log(res, "dsfjksldf");
let type = file.file.type.split('/')[0].toString();
let format = file.file.type.split('/')[1].toString();
let name = file.file.name
let url = res.data.url
file.status = ''
file.message = '上传成功'
file.url = res.data.url
let fileInfo = {
type: type,
format: format,
name: name,
url: url
};
this.formData.imageList.push(res.data.url)
console.log(fileInfo,"sdlkjdslgfjdgls");
// this.attrs.push(fileInfo)
})
.catch(() => {
file.status = 'failed'
file.message = '上传失败'
})
},
//
beforeRead(file) {
const allowedTypes = ['application/pdf',
'application/msword',
'application/vnd.openxmlformats-officedocument.wordprocessingml.document'];
if (!allowedTypes.includes(file.type)) {
this.$toast.fail('仅支持上传 Word 或 PDF 文件');
return false; //
}
return true; //
},
//
onClickdaily(){
const params={
...this.formData
...this.formData,
identityTypeCode: this.formData.identityTypeCode.join(','), //
}
icEventOldAdd(params).then(res=>{
if (res.code==0) {

10
src/views/peoSuggestion/explain.vue

@ -20,8 +20,13 @@
<span>2申诉求决类检举控告类事项和依法应通过诉讼仲裁行政复议等法定途径可解决的事项不纳入人民征集事项范畴</span>
</div>
</div>
<div class="flex flex-center1 ">
<van-button block color="linear-gradient(to right, #81B5FB, #3E92FF)" style="width: 300px; margin-bottom: 50px;" round @click="onClickdaily">开始填写</van-button>
<div class="flex flex-center1 flex-y flex-center2">
<van-checkbox v-model="radio" shape="square">
我已阅读并知晓以上内容
</van-checkbox>
<van-button block color="linear-gradient(to right, #81B5FB, #3E92FF)"
style="width: 300px; margin-bottom: 50px; margin-top: 20px;" round @click="onClickdaily">开始填写</van-button>
</div>
<Android @send-number="handleNumber" />
@ -39,6 +44,7 @@ import { Toast, Dialog } from 'vant'
export default {
data() {
return {
radio:"1",
title:"",
subjectContent:"",
id:""

58
src/views/peoSuggestion/index.vue

@ -9,19 +9,46 @@
<div style="position: fixed; top: 5px; right: 5px; " @click="$router.push({ path: `/mySuggestions`, })">
<img src="../../assets/images/peoSuggestion/9.png" style="width: 25px; height:25px ;" />
</div>
<div class='container' style="position: relative;top: -35px;">
<div class='container' style="position: relative;top: -40px;">
<div class="card">
<div>各位建议人:</div>
<span>为深入践行全过程人民民主进一步畅通人民建议征集渠道鼓励和引导人民群众积极建言献策
切实把人民群众的金点子转化为城阳区经济发展和社会治理的金钥匙特向您征集建议</span>
<!-- <div class="activity_content flex m-top10" v-for="(item, index) in eventList" :key="index"
@click="$router.push({ path: `/topicListDetail`, query: { id: item.id } })">
<div class="flex flex-y flex1 flex-end" style="overflow: hidden;">
<span class="van-multi-ellipsis--l2">
{{ item.subjectTitle }}
</span>
<div class="flex flex-end flex-end gray m-top10 font-size13">
<div class="flex flex-center">
<span>{{ item.eventNum }} 人参与 </span>
</div>
<div class="flex flex-x">
<div class="flex flex-center">
<span> {{ item.publicationTime }}</span>
</div>
</div>
</div>
</div>
</div> -->
</div>
</div>
<!-- <div class='container' style="position: relative;top: -35px;">
<div class="flex flex-x flex-end">
<img @click="onClickdaily" src="../../assets/images/peoSuggestion/7.jpg" style="width: 180px;">
<img @click="toSpecialList" src="../../assets/images/peoSuggestion/8.jpg" style="width: 180px;">
</div>
</div>
</div> -->
<div class='container' style="position: relative;top: -40px;">
<div class="card">
<div class="title">
<div class="flex flex-center2">
<img style="height:20px;" src="@/assets/images/home/biaoqian.png" alt="">
<span class="m-left5" style=" color: black; font-family:pingfang-bold;
font-size: 20px;">最新专题 </span>
font-size: 20px;">专题征集 </span>
</div>
<span @click="$router.push('/topicList')">更多</span>
@ -29,12 +56,21 @@
<div class="activity_content flex m-top10" v-for="(item, index) in eventList" :key="index"
@click="$router.push({ path: `/topicListDetail`, query: { id: item.id } })">
<div class="flex flex-y flex1 flex-end" style="overflow: hidden;">
<span class="van-multi-ellipsis--l2">
<div class="flex flex-x" style="align-items: flex-start;">
<div>
<van-tag size="medium" style="margin-right: 5px; width: 40px;"
:color="item.status == '1' ? '#07c160' : '#b6b6b6'">
{{ item.status ? "征集中" : "已结束" }}
</van-tag>
</div>
<span class="van-multi-ellipsis--l2" style="flex: 1; line-height: 1.5;">
{{ item.subjectTitle }}
</span>
</div>
<div class="flex flex-end flex-end gray m-top10 font-size13">
<div class="flex flex-center">
<span>{{ item.eventNum }} 人参与 </span>
<div class="flex flex-center" style="margin-left: 5px;">
<span>{{ item.eventNum }} </span>
</div>
<div class="flex flex-x">
<div class="flex flex-center">
@ -54,7 +90,7 @@
<div class="flex flex-center2">
<img style="height:20px;" src="@/assets/images/home/biaoqian.png" alt="">
<span class="m-left5" style=" color: black; font-family:pingfang-bold;
font-size: 20px;">金点子 </span>
font-size: 20px;">金点子建议 </span>
</div>
<span @click="$router.push('/goldenIdea')">更多</span>
@ -67,7 +103,8 @@
</van-tabs>
<div v-if="!showGold" class="activity_content flex m-top10" v-for="(item, index) in goldIdealist"
:key="index" @click="$router.push({ path: `/goldenIdeaDetail`, query: { eventId: item.icEventId,specialSubjectId:item.specialSubjectId } })">
:key="index"
@click="$router.push({ path: `/goldenIdeaDetail`, query: { eventId: item.icEventId,specialSubjectId:item.specialSubjectId } })">
<div class="flex flex-y flex1 flex-end" style="overflow: hidden;">
<span class="van-multi-ellipsis--l2">
{{ item.subjectTitle }}
@ -87,7 +124,8 @@
</div>
</div>
<div v-if="showGold" class="activity_content flex m-top10" v-for="(item, index) in goldIdealList"
:key="index" @click="$router.push({ path: `/goldenIdeaDetail`, query: { eventId: item.icEventId,specialSubjectId:item.specialSubjectId } })">
:key="index"
@click="$router.push({ path: `/goldenIdeaDetail`, query: { eventId: item.icEventId,specialSubjectId:item.specialSubjectId } })">
<div class="flex flex-y flex1 flex-end" style="overflow: hidden;">
<span class="van-multi-ellipsis--l2">
{{ item.subjectTitle }}
@ -241,7 +279,7 @@ export default {
goldenIdeaFlag:0,
agencyId:"",
reportUserId:"",
status:1
status:""
}
let res = await icEventSpecialSubject(parm)
if (res.code === 0) {

34
src/views/peoSuggestion/topicList.vue

@ -10,22 +10,31 @@
</div> -->
</template>
</van-search>
<van-button round type="info" class="custom-button font-size13 m-top10 m-right12" @click="handleSearch">查询</van-button>
<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)">
<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" >
<div class="flex flex-x" style="align-items: flex-start;">
<div>
<van-tag size="medium" style="margin-right: 5px; width: 40px;"
:color="item.status == '1' ? '#07c160' : '#b6b6b6'">
{{ item.status=='1' ? "征集中" : "已结束" }}
</van-tag>
</div>
<span class="van-multi-ellipsis--l2" style="flex: 1; line-height: 1.5;">
{{ item.subjectTitle }}
</span>
</div>
<div class="flex flex-end text2">
<span class="van-ellipsis y66666 font-size15">
{{ item.eventNum }} </span>
@ -34,8 +43,8 @@
</div>
</div>
<img v-if="item.coverPic" :src="item.coverPic" style="width: 130px;height: 100px;border-radius: 20;"
alt="">
<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=""
@ -74,7 +83,7 @@ export default {
pageSize: 5,
pageNo: 1,
agencyId: null,
finished: false,
finished: true,
loading: true,
showRegister: false,
searchValue: ""
@ -137,14 +146,15 @@ export default {
let res = await communityPublicity(parm)
if (res.code === 0) {
this.loading = false;
this.finished = true;
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;
}
// if (!res.data || res.data.list.length < this.pageSize) {
// this.finished = true;
// }
this.PublicityList = this.PublicityList.concat(res.data.list);
}
},

18
src/views/peoSuggestion/topicListDetail.vue

@ -2,10 +2,15 @@
<div>
<div class='container' style="height: 85vh; overflow: auto;">
<div class="card flex flex-y ">
<h2>{{ ProblemDescription.subjectTitle }}</h2>
<div class="m-bottom5">{{ ProblemDescription.subjectContent }}</div>
<div class="font-size13 gray">{{ ProblemDescription.updatedTime }}</div>
<h3>{{ ProblemDescription.subjectTitle }}</h3>
<div class="flex flex-end">
<div class="font-size15 gray">{{ ProblemDescription.agencyId }}</div>
<div class="font-size15 gray">{{ ProblemDescription.updatedTime }}</div>
</div>
<div class="m-bottom5 font-size18">{{ ProblemDescription.subjectContent }}</div>
<div class="image-grid" v-for="item in ProblemDescription.attachmentList" >
<div class="grid-item ">
<img :src="item" style="width: 105px; height: 75px;">
</div>
@ -37,7 +42,12 @@
</van-button>
</div> -->
<div class="flex flex-center1 " style="position: fixed; bottom:60px; left: 0px; right:0px;">
<van-button block color="linear-gradient(to right, #81B5FB, #3E92FF)" style="width: 300px;" round @click="onClickdaily">开始填写</van-button>
<van-button block color="linear-gradient(to right, #81B5FB, #3E92FF)" style="width: 300px;" round @click="onClickdaily">
<div class="flex flex-x">
<img style="width:18px; height: 18px;" src="../../assets/images/peoSuggestion/10.png">
<div style="margin-left: 10px;">我要建议</div>
</div>
</van-button>
</div>
</div>
<Android/>

Loading…
Cancel
Save