mk 1 year ago
parent
commit
f4326841a5
  1. 8
      src/api/user.js
  2. BIN
      src/assets/images/icons/link.png
  3. BIN
      src/assets/images/icons/link2.png
  4. 18
      src/router/router.config.js
  5. 4
      src/utils/jweixin.js
  6. 126
      src/views/comMessages/detail.vue
  7. 109
      src/views/comMessages/index.vue
  8. 101
      src/views/communityPublicity/detail.vue
  9. 9
      src/views/communityPublicity/index.vue
  10. 2
      src/views/home/index.vue
  11. 34
      src/views/selectAgency/index.vue

8
src/api/user.js

@ -116,3 +116,11 @@ export function getWxmpEventAndDemandMessageList(params) {
params
})
}
// 获取组织树
export function getAllOrgTreeList(params) {
return request({
url: `/gov/org/customerAgencyTree/getAllOrgTreeList`,
method: 'get',
params
})
}

BIN
src/assets/images/icons/link.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

BIN
src/assets/images/icons/link2.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

18
src/router/router.config.js

@ -95,12 +95,6 @@ export const constantRouterMap = [
component: () => import('@/views/discussion'),
meta: { title: '居民议事', keepAlive: false }
},
{
path: '/comMessages',
name: 'comMessages',
component: () => import('@/views/comMessages'),
meta: { title: '社区讯息', keepAlive: false }
},
{
path: '/activityDetail',
name: 'activityDetail',
@ -113,12 +107,6 @@ export const constantRouterMap = [
component: () => import('@/views/discussion/discusionDetail'),
meta: { title: '议事详情', keepAlive: false }
},
{
path: '/detail',
name: 'detail',
component: () => import('@/views/comMessages/detail'),
meta: { title: '讯息详情', keepAlive: false }
},
{
path: '/Enjoyableservices',
name: 'Enjoyableservices',
@ -136,6 +124,12 @@ export const constantRouterMap = [
component: () => import('@/views/communityPublicity'),
meta: { title: '社区讯息', keepAlive: false }
}
,{
path: '/communityPublicityDetail',
name: 'communityPublicityDetail',
component: () => import('@/views/communityPublicity/detail'),
meta: { title: '详情', keepAlive: false }
}
]

4
src/utils/jweixin.js

@ -1,5 +1,5 @@
import { getAutograph } from '@/api/basic'
export const setConfig = function (jsApiList = []) {
export const setConfig = function () {
getAutograph({ url: location.href.split('#')[0] }).then(res => {
console.log(res)
wx.config({
@ -8,7 +8,7 @@ export const setConfig = function (jsApiList = []) {
timestamp: res.timestamp,
nonceStr: res.nonceStr,
signature: res.signature,
jsApiList
jsApiList:['updateAppMessageShareData','onMenuShareAppMessage', 'updateTimelineShareData']
})
})
}

126
src/views/comMessages/detail.vue

@ -1,126 +0,0 @@
<template>
<div>
<div class="container">
<div class="card">
<div class="flex flex-y">
<div class="font-size18 font-bold m-top12">{{ discussionList.title }}</div>
<div class="flex flex-x flex-end font-size13 AAA m-top5">
<div class="font-size13 AAA">{{ discussionList.address }}</div>
<div class="font-size13 AAA">{{ discussionList.dataTime }}</div>
</div>
<img src="../../assets/images/comMessages/1718095003122.png" alt="" class="img_100 m-top12">
<div class="m-top12">{{ discussionList.content }}</div>
</div>
<div class="bot_btn flex flex-x flex-mean m-bot50 back_color">
<van-button v-if="like" :disabled="disableAllButtons" round class="support"
:icon="require('@/assets/images/comMessages/like.png')" type="info" @click="">
已点赞 {{ likeNum }}
</van-button>
<van-button v-else="!like" :disabled="disableAllButtons" round class="support"
:icon="require('@/assets/images/comMessages/nolike.png')" type="info" @click="OnLike">
点赞
</van-button>
<van-button :disabled="disableAllButtons" round class="support"
:icon="require('@/assets/images/icons/share.png')" type="info" @click="Onoppose">
转发
</van-button>
</div>
</div>
</div>
</div>
</template>
<script>
export default {
data() {
return {
labelList: ["最新", "通知公告", "社区新闻", "政策发布", "生活"],
discussionList:
{ title: '嘉定山社区育龄妇女免费体检通知', address: "嘉定山社区", content: ' 为了使生殖健康优质服务惠及更多已婚育龄 妇女,按照区卫健局统一部署,街道卫生和计 划生育综合管理办公室联系庙后街卫生服务', imge: "@/assets/images/comMessages/1.png", likeCount: 1111, dataTime: '2022-05-06 12:00:00' },
pageSize: 5,
pageNo: 1,
agencyId: null,
finished: false,
loading: true,
showRegister: false,
searchValue: "",
like: false,
likeNum: 3000
};
},
created() {
this.agencyId = this.$store.state.app.agencyId;
},
methods: {
OnLike() {
console.log("123");
this.likeNum++;
this.like = !this.like;
},
Onoppose() {
wx.checkJsApi({
jsApiList: ['chooseImage'], // JSJS2,
success: function (res) {
// apitruefalse
// {"checkResult":{"chooseImage":true},"errMsg":"checkJsApi:ok"}
console.log("123");
wx.ready(function () {
console.log("453");//
wx.updateAppMessageShareData({
title: '', //
desc: '', //
link: '', // JS
imgUrl: '', //
success: function () {
console.log("123");
//
}
})
});
}
});
console.log("123");
}
},
components: {},
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;
}
.support {
background-color: #ffffff;
color: black;
}
.imge_100 {
width: 250px;
height: 128px;
}
</style>

109
src/views/comMessages/index.vue

@ -1,109 +0,0 @@
<template>
<div>
<div class="flex flex-y" style="background-color: #FFFFFF;">
<div class="flex flex-mean">
<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 ">查询</van-button>
</div>
</div>
<van-tabs v-model="active" scrollspy sticky>
<van-tab v-for="item in labelList" :title="item">
</van-tab>
</van-tabs>
<div class="container">
<van-list class="card" :finished="finished" finished-text="没有更多了" @load="onLoad">
<div v-for="item in discussionList" :key="item" :title="item" class="activity_content" @click="$router.push({ path: `/detail` })">
<div v-if="!item.imge" class="flex flex-y">
<div class=" m-bottom10">{{ item.title }}</div>
<div class="font-size15 gray">{{ item.content }}</div>
<div class="flex flex-x flex-end m-top10">
<div class="flex flex-x">
<img src="@/assets/images/icons/support.png" class="img_16">
<div class="gray font-size13">{{ item.likeCount }}</div>
</div>
<div class="gray font-size13">{{ item.dataTime }}</div>
</div>
</div>
<div v-if="item.imge" class="flex flex-y">
<div class="flex flex-x">
<div class="flex flex-y" style="width: 212px; height: 80px;">
<div class="m-bottom10">{{ item.title }}</div>
<div class="font-size15 gray van-ellipsis">{{ item.content }}</div>
</div>
<img src="@/assets/images/comMessages/1.png" class="imge_100">
</div>
<div class="flex flex-x flex-end m-top10">
<div class="flex flex-x">
<img src="@/assets/images/icons/support.png" class="img_16">
<div class="gray font-size13">{{ item.likeCount }}</div>
</div>
<div class="gray font-size13">{{ item.dataTime }}</div>
</div>
</div>
</div>
</van-list>
</div>
</div>
</template>
<script>
import registerDialog from '@/components/registerDialog';
export default {
data() {
return {
labelList: ["最新", "通知公告", "社区新闻", "政策发布", "生活"],
discussionList: [
{ title: '重庆南路暖气管道施工通知', content: '从5月7日到6月1日,重庆南路需要进行暖气管道 施工改造,请大家提前做好出行准备。', imge: "@/assets/images/comMessages/1.png", likeCount: 1111, dataTime: '2022-05-06 12:00:00' },
{ title: '嘉定山社区育龄妇女免费体检通知', content: '从5月7日到6月1日,重庆南路需要进行暖气管道 施工改造,请大家提前做好出行准备。', imge: "@/assets/images/comMessages/1.png", likeCount: 1111, dataTime: '2022-05-06 12:00:00' },
{ title: '社区组织志愿者为社区高龄老人提供上门理发服务', content: '从5月7日到6月1日,重庆南路需要进行暖气管道 施工改造,请大家提前做好出行准备。', imge: "", likeCount: 1111, dataTime: '2022-05-06 12:00:00' },
],
pageSize: 5,
pageNo: 1,
agencyId: null,
finished: false,
loading: true,
showRegister: false,
searchValue: ""
};
},
created() {
this.agencyId = this.$store.state.app.agencyId;
},
methods: {
},
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;
}
.imge_100{
width: 100px;
height:60px ;
}
</style>

101
src/views/communityPublicity/detail.vue

@ -0,0 +1,101 @@
<template>
<div class='container m-bot50'>
<div class="card">
<div class="m-top15 p0">
<h2 style="margin: 0; font-size: 21px;">{{ info.title }}</h2>
<div class="flex flex-end">
<van-cell :border="false" :value="info.agencyName" class="font-size13 y66666"></van-cell>
<van-cell :border="false" :value="info.releaseTime" class="font-size13 y66666"></van-cell>
</div>
<van-divider />
<div v-html="info.content">
</div>
</div>
</div>
<div class="bot_btn flex flex-center2" style="height: 50px;">
<div class="flex1 flex flex-center1 flex-center2">
<van-button size="small" class="m-right7" round>
<template #icon>
<img src="@/assets/images/icons/link.png" alt="" class="img_20">
</template> 点赞{{ info.likes }}1200 </van-button>
</div>
<div class="flex1 flex flex-center1 flex-center2">
<van-button size="small" class="m-right7" round @click="share">
<template #icon>
<img src="@/assets/images/icons/share.png" alt="" class="img_20">
</template> 转发 {{ info.likes }}420 </van-button>
</div>
</div>
</div>
</template>
<script>
export default {
data() {
return {
info: {},
};
},
created() {
if (this.$route.query) {
this.info = JSON.parse(this.$route.query.item);
}
},
methods: {
share() {
if (wx.updateAppMessageShareData) {
wx.updateAppMessageShareData({
title: 'e智社区',
desc: this.info.title,
link: `http://epmet-cloud.elinkservice.cn/#/communityPublicityDetail?item=${JSON.stringify(this.info)}`,
imgUrl: '',
success: function () {
}
})
} else {
wx.onMenuShareAppMessage({
title: 'e智社区',
desc: this.info.title,
link: `http://epmet-cloud.elinkservice.cn/#/communityPublicityDetail?id=${JSON.stringify(this.info)}`,
imgUrl: '',
success: function () {
}
})
}
}
},
components: {},
computed: {},
watch: {},
}
</script>
<style lang='less' scoped>
: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;
}
}
</style>

9
src/views/communityPublicity/index.vue

@ -11,14 +11,14 @@
<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">
: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 " style="line-height: 28px;">
{{ item.title }}
</span>
<span class="van-ellipsis y66666 font-size15">
{{ item.content }}
{{ item.newContent }}
</span>
</div>
<img v-if="item.coverPic" :src="item.coverPic" style="width: 100px;height: 60px;"
@ -69,6 +69,9 @@ export default {
this.communityPublicity()//
},
methods: {
toDetail(item){
this.$router.push({name:'communityPublicityDetail',query:{item:JSON.stringify(item)}})
},
handleSearch(){
this.PublicityList = [];
this.pageNo = 1;
@ -105,7 +108,7 @@ export default {
this.loading = false;
res.list.forEach(item => {
if (item.content) {
item.content = this.extractChineseCharactersAndPunctuation(item.content)
item.newContent = this.extractChineseCharactersAndPunctuation(item.content)
}
})
if (res.list.length < this.pageSize) {

2
src/views/home/index.vue

@ -3,7 +3,7 @@
<div class="blueBg"></div>
<div class="content">
<div class="flex flex-end">
<div class="flex flex-center2 white">
<div class="flex flex-center2 white" @click="$router.push('/selectAgency')">
<img src="@/assets/images/icons/home.png" class="img_17 m-right10" alt="">
<span>{{ this.$store.state.app.userInfo.agencyName || '--' }}</span>
</div>

34
src/views/selectAgency/index.vue

@ -2,15 +2,20 @@
<div>
<div class="selfCity flex flex-center2 p-12 flex-end">
<div class="flex flex-center2 flex-1">
<img src="@/assets/images/icons/homeBlue.png" alt="" />
<span style="color: #666666;" v-if="!selfCityName">请选择您所在城市</span>
<span v-else>{{ selfCityName}}</span>
<img src="@/assets/images/icons/homeBlue.png" alt="" @click="getAgency"/>
<span style="color: #666666;" v-if="!selfCity">请选择您所在城市</span>
<span v-else class="flex">
<div v-for="(item, index) in selfCity">
<span @click="handelClickAgencyName(item,index)"> {{ item.label }}</span>
<span v-if="index != selfCity.length - 1"></span>
</div>
</span>
</div>
<van-button v-show="false" type="info" size="small" round class="m-right10">手动选择</van-button>
</div>
<div class="container">
<van-list finished-text="没有更多了" @load="getAgency" class="selectAgency">
<van-cell v-for="(item, index) in cityJson" :title="item.agencyName" :key="index" is-link
<van-list finished-text="没有更多了" class="selectAgency">
<van-cell v-for="(item, index) in cityJson" :title="item.label" :key="index" is-link
@click="handelClickAgency(item)"></van-cell>
</van-list>
</div>
@ -18,26 +23,33 @@
</template>
<script>
import { editUser } from "@/api/user";
import cityJson from "./1.json"
import { editUser, getAllOrgTreeList } from "@/api/user";
export default {
data() {
return {
cityJson: [cityJson],
cityJson: [],
selfCity: [],
selfCityName:null
};
},
created() {
this.getAgency()
},
methods: {
getAgency() {
async getAgency() {
// this.cityJson = [cityJson]
this.selfCity = [];
let res = await getAllOrgTreeList()
if (res) {
this.cityJson = res;
}
},
handelClickAgencyName(item,index){
if(item.id === this.selfCity[this.selfCity.length -1].id) return
this.selfCity.splice(index + 1);
this.cityJson = item.children;
},
async handelClickAgency(item) {
this.selfCity.push(item);
this.selfCityName = this.selfCity.map(item=>item.agencyName).join(',')
if (item.level === 'community') {
let parm = this.$store.state.app.userInfo;
parm.agencyId = item.agencyId;

Loading…
Cancel
Save