Merge remote-tracking branch 'origin/dev' into dev

This commit is contained in:
aixianling
2023-03-20 15:47:54 +08:00
19 changed files with 479 additions and 221 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 42 KiB

View File

@@ -31,7 +31,7 @@
<switch color="#2D7DFF" @change="onSwitchChange"></switch>
</div>
<div class="btn-wrapper">
<div class="btn" hover-class="text-hover" @click="submit">发布服务</div>
<div class="btn" hover-class="text-hover" :class="[!form.content ? 'active' : '']" @click="submit">发布服务</div>
</div>
<u-popup v-model="isShow" mode="bottom" hidden height="700rpx" border-radius="30">
<div class="popup">
@@ -125,6 +125,10 @@
background: #fff;
}
.btn-wrapper .active {
background: rgba(45, 125, 255, 0.6);
}
.popup {
height: 700px;
border-radius: 20px 20px 0 0;

View File

@@ -24,7 +24,12 @@
</div>
</div>
<div class="AppCircle-list">
<div class="item" v-for="(item, index) in list" :key="index" @click="$linkTo('./Detail?id=' + item.id + '&name=' + item.topicName + '&themeId=' + item.themeId)">
<div class="item"
v-for="(item, index) in list"
:key="index"
hover-class="text-hover"
hover-stop-propagation
@click="$linkTo('./Detail?id=' + item.id + '&name=' + item.topicName + '&themeId=' + item.themeId)">
<div class="item-top">
<image :src="item.createUserAvatar || 'https://cdn.cunwuyun.cn/wxmp/fengdu/avatar.png'" />
<div class="right">
@@ -33,19 +38,19 @@
</div>
</div>
<div class="item-content">
<span v-if="item.themeId" @click.stop="$linkTo('./TopicDetail?themeId=' + item.themeId + '&name=' + item.topicName)">#{{ item.topicName }}</span>
<span hover-stop-propagation v-if="item.themeId" @click.stop="$linkTo('./TopicDetail?themeId=' + item.themeId + '&name=' + item.topicName)">#{{ item.topicName }}</span>
<text>{{ item.content }}</text>
</div>
<div class="item-imgs" v-if="item.files.length">
<image mode="aspectFill" v-for="(item, index) in item.files" :key="index" :src="item.url" />
<image mode="aspectFill" @click.stop="previewImage(e.url, item.files)" v-for="(e, i) in item.files" :key="i" :src="e.url" />
</div>
<p>{{ item.createTime }}</p>
<div class="item-bottom">
<div>
<button hover-stop-propagation @click.stop="onBtnClick" open-type="share" :data-content="item.content" :data-themeid="item.themeId" :data-id="item.id" :data-name="item.topicName">
<image src="https://cdn.cunwuyun.cn/wxmp/fengdu/ic-zhuanfa.png" />
<i>{{ item.sharedCount }}</i>
</div>
<div>
</button>
<div hover-stop-propagation @click.stop="reciate(item.id, item.appreciateStatus)">
<image :src="item.appreciateStatus ? 'https://cdn.cunwuyun.cn/wxmp/fengdu/zan-active.png' : 'https://cdn.cunwuyun.cn/wxmp/fengdu/zan.png'" />
<i>{{ item.appreciateCount }}</i>
</div>
@@ -57,7 +62,7 @@
</div>
<AiEmpty v-if="!list.length"></AiEmpty>
</div>
<div class="add" hover-class="text-hover" @click="$linkTo('./Add')">
<div class="add" hover-class="text-hover" @click="toAdd">
<image src="https://cdn.cunwuyun.cn/wxmp/fengdu/ic-fatie.png" />
</div>
<AiLogin ref="login"/>
@@ -69,6 +74,8 @@
export default {
name: 'AppCircle',
appName: '邻里互助',
navigationBarBackgroundColor: '#ffffff',
navigationBarTextStyle: 'black',
data () {
return {
@@ -85,23 +92,54 @@
...mapState(['user', 'token']),
topic () {
return this.topicList.filter((v, index) => index < 8)
return this.topicList.filter((v, index) => index < 7)
}
},
onLoad() {
onLoad () {
this.getTopicList()
uni.$on('updateList', () => {
this.getMyPublishCount()
this.changeTab(this.currIndex)
})
if (this.token) {
if (!this.token) {
this.autoLogin().then(() => {
this.getMyPublishCount()
})
} else {
this.getMyPublishCount()
}
},
onUnload () {
uni.$off('updateList')
},
methods: {
...mapActions(['autoLogin']),
previewImage (url, files) {
uni.previewImage({
current: url,
urls: files.map(v => v.url)
})
},
onBtnClick (e) {
},
reciate (id, appreciateStatus) {
this.$instance.post(`/app/appneighborhoodassistance/appreciate?id=${id}`).then(res => {
if (res.code === 0) {
this.$toast(appreciateStatus ? '取消点赞' : '点赞成功')
this.changeTab(this.currIndex)
}
})
},
getMyPublishCount () {
this.$instance.post(`/app/appneighborhoodassistance/list`, null, {
params: {
@@ -117,6 +155,12 @@
})
},
toAdd () {
if (!this.user.AreaId) {
this.$linkTo('./Add')
}
},
getTopicList () {
this.$instance.post(`/app/appneighborhoodassistancetheme/list`, null, {
withoutToken: true,
@@ -147,8 +191,8 @@
this.$loading()
this.$instance.post(`/app/appneighborhoodassistance/list`, null, {
withoutToken: this.token ? false : true,
params: {
withoutToken: this.token ? false : true,
current: this.current,
size: 10,
visibleRange: this.currIndex === 0 ? 1 : 0
@@ -190,6 +234,19 @@
onReachBottom () {
this.getList()
},
onShareAppMessage (e) {
this.$instance.post(`/app/appneighborhoodassistance/share?id=${e.target.dataset.id}`).then(res => {
if (res.code === 0) {
this.changeTab(this.currIndex)
}
})
return {
title: e.target.dataset.content.substr(0, 20),
path: `/pages/AppCircle/Detail?id=${e.target.dataset.id}&themeId=${e.target.dataset.themeid}&name=${e.target.dataset.name}`
}
}
}
</script>
@@ -283,20 +340,23 @@
.item-imgs {
display: flex;
align-items: center;
flex-wrap: wrap;
image {
flex: 1;
height: 202px;
margin-right: 12px;
height: 208px;
width: 33.33%;
padding-right: 12px;
margin-bottom: 12px;
box-sizing: border-box;
&:nth-of-type(3n) {
margin-right: 0;
padding-right: 0;
}
}
}
& > p {
margin: 24px 0;
margin: 12px 0;
font-size: 28px;
color: #333333;
}
@@ -307,7 +367,7 @@
height: 88px;
border-top: 1px solid #eeeeee;
div {
div, button {
display: flex;
align-items: center;
justify-content: center;
@@ -326,10 +386,17 @@
}
}
.item-content {
margin: 16px 0;
line-height: 1.3;
text-align: justify;
word-break: break-all;
text-overflow: ellipsis;
overflow: hidden;
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 2;
span {
font-size: 28px;

View File

@@ -13,14 +13,14 @@
<text>{{ info.content }}</text>
</div>
<div class="item-imgs" v-if="info.files && info.files.length">
<image mode="aspectFill" v-for="(item, index) in item.files" :key="index" :src="item.url" />
<image mode="aspectFill" @click="previewImage(item.url, info.files)" v-for="(item, index) in info.files" :key="index" :src="item.url" />
</div>
<p>{{ info.createTime }}</p>
<div class="item-bottom">
<div @click="isShow = true">
<button open-type="share">
<image src="https://cdn.cunwuyun.cn/wxmp/fengdu/ic-zhuanfa.png" />
<i>{{ info.sharedCount }}</i>
</div>
</button>
<div>
<image :src="info.appreciateStatus ? 'https://cdn.cunwuyun.cn/wxmp/fengdu/zan-active.png' : 'https://cdn.cunwuyun.cn/wxmp/fengdu/zan.png'" @click="reciate"/>
<i>{{ info.appreciateCount }}</i>
@@ -65,7 +65,7 @@
</div>
</div>
<div class="footer">
<input :placeholder="commentId ? '回复' + replyName : '请输入'" :focus="focus" v-model="content">
<input :placeholder="commentId ? '回复' + replyName : '请输入评论内容'" :focus="focus" v-model="content">
<div hover-class="hover-class" @click="send">发送</div>
</div>
<u-popup v-model="isShow" mode="bottom" hidden height="350rpx" border-radius="30">
@@ -95,6 +95,7 @@
</template>
<script>
import { mapActions, mapState } from 'vuex'
export default {
name: 'Detail',
appName: '详情',
@@ -118,6 +119,10 @@
}
},
computed: {
...mapState(['user', 'token'])
},
onLoad (query) {
this.isFrom = query.isFrom
this.id = query.id
@@ -125,13 +130,31 @@
this.name = query.name || ''
this.$loading()
this.getInfo(query.id)
this.getCommontList(query.id)
if (!this.token) {
this.autoLogin().then(() => {
this.getInfo(query.id)
this.getCommontList(query.id)
})
} else {
this.getInfo(query.id)
this.getCommontList(query.id)
}
},
methods: {
...mapActions(['autoLogin']),
previewImage (url, files) {
uni.previewImage({
current: url,
urls: files.map(v => v.url)
})
},
getInfo (id) {
this.$instance.post(`/app/appneighborhoodassistance/queryDetailById?id=${id}`).then(res => {
this.$instance.post(`/app/appneighborhoodassistance/queryDetailById?id=${id}`, null, {
withoutToken: this.token ? false : true,
}).then(res => {
if (res.code === 0) {
this.info = res.data
@@ -147,7 +170,7 @@
this.$instance.post(`/app/appneighborhoodassistance/appreciate?id=${this.id}`).then(res => {
if (res.code === 0) {
this.$toast(this.info.appreciateStatus ? '取消点赞' : '点赞成功')
uni.$emit('updateList')
this.getInfo(this.id)
}
uni.hideLoading()
@@ -199,8 +222,8 @@
this.$loading()
this.$instance.post(`/app/appneighborhoodassistance/commontList`, null, {
withoutToken: this.token ? false : true,
params: {
withoutToken: this.token ? false : true,
id,
current: this.current,
size: 10
@@ -236,15 +259,21 @@
onShareTimeline () {
return {
title: this.title,
path: `/pages/AppCircle/Detail?id=${this.id}`
title: this.info.content,
path: `/pages/AppCircle/Detail?id=${this.id}&themeId=${this.themeId}&name=${this.name}`
}
},
onShareAppMessage () {
this.$instance.post(`/app/appneighborhoodassistance/share?id=${this.id}`).then(res => {
if (res.code === 0) {
uni.$emit('updateList')
this.getInfo(this.id)
}
})
return {
title: this.title,
path: `/pages/AppCircle/Detail?id=${this.id}`
title: this.info.content,
path: `/pages/AppCircle/Detail?id=${this.id}&themeId=${this.themeId}&name=${this.name}`
}
},
}
@@ -516,20 +545,23 @@
.item-imgs {
display: flex;
align-items: center;
flex-wrap: wrap;
image {
flex: 1;
height: 202px;
margin-right: 12px;
height: 208px;
width: 33.33%;
padding-right: 12px;
margin-bottom: 12px;
box-sizing: border-box;
&:nth-of-type(3n) {
margin-right: 0;
padding-right: 0;
}
}
}
& > p {
margin: 24px 0;
margin: 12px 0;
font-size: 28px;
color: #333333;
}
@@ -540,7 +572,7 @@
height: 88px;
border-top: 1px solid #eeeeee;
div {
div, button {
display: flex;
align-items: center;
justify-content: center;

View File

@@ -39,7 +39,7 @@
<text>{{ item.content }}</text>
</div>
<div class="item-imgs" v-if="item.files.length">
<image mode="aspectFill" v-for="(item, index) in item.files" :key="index" :src="item.url" />
<image mode="aspectFill" hover-stop-propagation @click.stop="previewImage(e.url, item.files)" v-for="(e, i) in item.files" :key="i" :src="e.url" />
</div>
<p>{{ item.createTime }}</p>
<div class="item-bottom">
@@ -73,7 +73,7 @@
<text>{{ item.content }}</text>
</div>
<div class="item-imgs" v-if="item.files.length">
<image mode="aspectFill" v-for="(item, index) in item.files" :key="index" :src="item.url" />
<image mode="aspectFill" hover-stop-propagation @click.stop="previewImage(e.url, item.files)" v-for="(e, i) in item.files" :key="i" :src="e.url" />
</div>
<p>{{ item.createTime }}</p>
<div class="item-bottom">
@@ -112,7 +112,7 @@
<text>{{ item.content }}</text>
</div>
<div class="item-imgs" v-if="item.files.length">
<image mode="aspectFill" v-for="(item, index) in item.files" :key="index" :src="item.url" />
<image mode="aspectFill" hover-stop-propagation @click.stop="previewImage(e.url, item.files)" v-for="(e, i) in item.files" :key="i" :src="e.url" />
</div>
</div>
</div>
@@ -171,6 +171,13 @@
})
},
previewImage (url, files) {
uni.previewImage({
current: url,
urls: files.map(v => v.url)
})
},
remove (id) {
this.$dialog.confirm({
title: '温馨提示',
@@ -180,6 +187,7 @@
if (res.code === 0) {
this.$toast('删除成功!')
this.getInfo()
uni.$emit('updateList')
this.changeTab(this.currIndex)
}
})
@@ -195,6 +203,7 @@
if (res.code === 0) {
this.$toast('删除成功!')
this.getInfo()
uni.$emit('updateList')
this.changeTab(this.currIndex)
}
})
@@ -366,9 +375,17 @@
<style scoped lang="scss">
.MyPostList {
padding-bottom: 40px;
box-sizing: border-box;
* {
box-sizing: border-box;
}
.userinfo {
margin: 24px 0;
position: sticky;
top: 0px;
margin: 0 0 24px;
border-top: 24px solid #eee;
background: #fff;
.top {
@@ -522,6 +539,24 @@
}
}
.item-imgs {
display: flex;
align-items: center;
flex-wrap: wrap;
image {
height: 208px;
width: 33.33%;
padding-right: 12px;
margin-bottom: 12px;
box-sizing: border-box;
&:nth-of-type(3n) {
padding-right: 0;
}
}
}
.item-content {
margin: 16px 0;
line-height: 1.3;
@@ -536,21 +571,6 @@
font-size: 28px;
color: #333333;
}
.item-imgs {
display: flex;
align-items: center;
image {
flex: 1;
height: 202px;
margin-right: 12px;
&:nth-of-type(3n) {
margin-right: 0;
}
}
}
}
}
}
@@ -600,20 +620,23 @@
.item-imgs {
display: flex;
align-items: center;
flex-wrap: wrap;
image {
flex: 1;
height: 202px;
margin-right: 12px;
height: 208px;
width: 33.33%;
padding-right: 12px;
margin-bottom: 12px;
box-sizing: border-box;
&:nth-of-type(3n) {
margin-right: 0;
padding-right: 0;
}
}
}
& > p {
margin: 24px 0;
margin: 12px 0;
font-size: 28px;
color: #333333;
}
@@ -644,7 +667,7 @@
}
.item-content {
margin: 16px;
margin: 16px 0;
line-height: 1.3;
// text-align: justify;

View File

@@ -11,6 +11,7 @@
class="item"
v-for="(item, index) in list"
:key="index"
hover-class="text-hover"
@click="$linkTo('./Detail?isFrom=topic&id=' + item.id + '&name=' + name + '&themeId=' + themeId)">
<div class="item-top">
<image :src="item.createUserAvatar || 'https://cdn.cunwuyun.cn/wxmp/fengdu/avatar.png'" />
@@ -23,15 +24,22 @@
<text>{{ item.content }}</text>
</div>
<div class="item-imgs" v-if="item.files.length">
<image mode="aspectFill" v-for="(item, index) in item.files" :key="index" :src="item.url" />
<image mode="aspectFill" hover-stop-propagation @click.stop="previewImage(e.url, item.files)" v-for="(e, i) in item.files" :key="i" :src="e.url" />
</div>
<p>{{ item.createTime }}</p>
<div class="item-bottom">
<div>
<button
hover-stop-propagation
@click.stop=""
open-type="share"
:data-content="item.content"
:data-themeid="item.themeId"
:data-id="item.id"
:data-name="item.topicName">
<image src="https://cdn.cunwuyun.cn/wxmp/fengdu/ic-zhuanfa.png" />
<i>{{ item.sharedCount }}</i>
</div>
<div>
</button>
<div hover-stop-propagation @click.stop="reciate(item.id, item.appreciateStatus)">
<image :src="item.appreciateStatus ? 'https://cdn.cunwuyun.cn/wxmp/fengdu/zan-active.png' : 'https://cdn.cunwuyun.cn/wxmp/fengdu/zan.png'" />
<i>{{ item.appreciateCount }}</i>
</div>
@@ -91,6 +99,23 @@
})
},
reciate (id, appreciateStatus) {
this.$instance.post(`/app/appneighborhoodassistance/appreciate?id=${id}`).then(res => {
if (res.code === 0) {
this.$toast(appreciateStatus ? '取消点赞' : '点赞成功')
this.changeTab(this.currIndex)
}
})
},
previewImage (url, files) {
uni.previewImage({
current: url,
urls: files.map(v => v.url)
})
},
getList () {
if (this.isMore) return
@@ -133,10 +158,16 @@
this.getList()
},
onShareAppMessage() {
onShareAppMessage (e) {
this.$instance.post(`/app/appneighborhoodassistance/share?id=${e.target.dataset.id}`).then(res => {
if (res.code === 0) {
this.changeTab(this.currIndex)
}
})
return {
title: '欢迎使用数字乡村治理服务一体化平台~',
path: `/pages/AppCircle/AppCircle`
title: e.target.dataset.content,
path: `/pages/AppCircle/Detail?id=${e.target.dataset.id}&themeId=${e.target.dataset.themeid}&name=${e.target.dataset.name}`
}
}
}
@@ -203,20 +234,23 @@
.item-imgs {
display: flex;
align-items: center;
flex-wrap: wrap;
image {
flex: 1;
height: 202px;
margin-right: 12px;
height: 208px;
width: 33.33%;
padding-right: 12px;
margin-bottom: 12px;
box-sizing: border-box;
&:nth-of-type(3n) {
margin-right: 0;
padding-right: 0;
}
}
}
& > p {
margin: 24px 0;
margin: 12px 0;
font-size: 28px;
color: #333333;
}
@@ -227,7 +261,7 @@
height: 88px;
border-top: 1px solid #eeeeee;
div {
div, button {
display: flex;
align-items: center;
justify-content: center;

View File

@@ -1,6 +1,6 @@
<template>
<div class="AppHelpEachOther">
<AiEmpty :description="`丰收号 内容建设中…`" class="emptyWrap"></AiEmpty>
<AiEmpty img='https://cdn.cunwuyun.cn/fengdu/mdpi_img-jianshezhong.png' :description="`丰收号 内容建设中…`" class="emptyWrap"></AiEmpty>
</div>
</template>
@@ -17,6 +17,11 @@ export default {
}
</script>
<style>
<style lang="scss" scoped>
.AppHelpEachOther {
::v-deep .emptyWrap .emptyImg {
width: 442px;
height: 312px;
}
}
</style>

View File

@@ -1,32 +1,35 @@
<template>
<div class="page">
<u-navbar :is-back="false" title="首页" title-color="#000" title-width="300" title-size="32" :background="backgroundNavbar" :title-bold="true"></u-navbar>
<div class="swiper-content">
<u-swiper :list="swiperList" mode="none" height="240" bg-color="none" @click="handleBannerClick"/>
</div>
<div class="grid-content">
<u-grid :col="4" hover-class="text-hover" :border="false">
<u-grid-item v-for="(item, index) in grids" :key="index" :custom-style="{padding:'8px 0'}" bg-color="none"
class="grid-item" @click="handleClick(item)">
<img :src="item.pictureUrl" alt=""/>
<div class="grid-text">{{ item.name }}</div>
</u-grid-item>
</u-grid>
</div>
<div class="notice">
<img :src="`${cdn}/notice-new.png`" alt="">
<u-notice-bar mode="vertical" color="#4181FF" style="flex: 1;" :volume-icon="false" :is-circular="false"
duration="5000" speed="5000" :list="noticeList" @click="clickNotice"/>
</div>
<div class="container">
<div class="swiper-content">
<u-swiper :list="swiperList" mode="none" height="240" bg-color="none" @click="handleBannerClick"/>
</div>
<div class="grid-content">
<u-grid :col="4" hover-class="text-hover" :border="false">
<u-grid-item v-for="(item, index) in grids" :key="index" :custom-style="{padding:'8px 0'}" bg-color="none"
class="grid-item" @click="handleClick(item)">
<img :src="item.pictureUrl" alt=""/>
<div class="grid-text">{{ item.name }}</div>
</u-grid-item>
</u-grid>
</div>
<div class="notice">
<img :src="`${cdn}/notice-new.png`" alt="">
<u-notice-bar mode="vertical" color="#4181FF" style="flex: 1;" :volume-icon="false" :is-circular="false"
duration="5000" speed="5000" :list="noticeList" @click="clickNotice"/>
</div>
<div class="card">
<img class="card-left" src="./img/img-fengshouyinhang.png" @click="$linkTo('/mods/newFarmerBank/newFarmerBank')" alt="">
<div class="card-right">
<img src="./img/img-fengduxinnongren.png" alt="" @click="$linkTo('./mods/newFarmer/newFarmer')">
<img src="./img/ic-jiaoyuhuzhu.png" alt="" @click="$linkTo('./mods/helpEachOther/helpEachOther')">
<div class="card">
<img class="card-left" src="https://cdn.cunwuyun.cn/fengdu/img-fengshouyinhang.png" @click="$linkTo('/mods/newFarmerBank/newFarmerBank')" alt="">
<div class="card-right">
<img src="https://cdn.cunwuyun.cn/fengdu/img-fengduxinnongren.png" alt="" @click="$linkTo('./mods/newFarmer/newFarmer')">
<img src="https://cdn.cunwuyun.cn/fengdu/ic-jiaoyuhuzhu.png" alt="" @click="$linkTo('./mods/helpEachOther/helpEachOther')">
</div>
</div>
<AiLogin ref="login"/>
</div>
</div>
<AiLogin ref="login"/>
</div>
</template>
<script>
@@ -45,7 +48,8 @@ export default {
notices: [],
search: {areaId: ''},
backgroundNavbar: {
background: '#FFF'
background: 'url(https://cdn.cunwuyun.cn/fengdu/mdpi_img-bg1.png) no-repeat',
backgroundSize: '100% auto',
}
}
},
@@ -168,80 +172,85 @@ export default {
width: 100%;
min-height: 100%;
// background-color: #F3F6F9;
// background: url('./img/img-bg2.png') no-repeat;
// background: url('https://cdn.cunwuyun.cn/fengdu/mdpi_img-bg2.png') no-repeat;
position: relative;
.swiper-content {
width: 100%;
height: 292px;
padding: 20px 32px 32px;
box-sizing: border-box;
background: #FFF;
}
.grid-content {
box-sizing: border-box;
background: #FFF;
.grid-item {
img {
width: 108px;
height: 108px;
object-fit: fill;
}
.container{
background: url('https://cdn.cunwuyun.cn/fengdu/mdpi_img-bg2.png') no-repeat;
background: 100% auto;
.swiper-content {
width: 100%;
height: 292px;
padding: 20px 32px 32px;
box-sizing: border-box;
// background: 'url(https://cdn.cunwuyun.cn/fengdu/img-bg2) no-repeat',;
}
.grid-text {
font-size: 26px;
font-weight: 400;
color: #333333;
line-height: 36px;
.grid-content {
box-sizing: border-box;
background: #FFF;
.grid-item {
img {
width: 108px;
height: 108px;
object-fit: fill;
}
.grid-text {
font-size: 26px;
font-weight: 400;
color: #333333;
line-height: 36px;
}
}
}
}
::v-deep .notice {
width: 684px;
height: 88px;
box-sizing: border-box;
padding: 0 24px;
margin: 30px auto 30px;
background: #FFFFFF;
box-shadow: 0 0 8px 0 rgba(0, 0, 0, 0.02);
border-radius: 16px;
display: flex;
align-items: center;
justify-content: center;
::v-deep .notice {
width: 684px;
height: 88px;
box-sizing: border-box;
padding: 0 24px;
margin: 30px auto 30px;
background: #FFFFFF;
box-shadow: 0 0 8px 0 rgba(0, 0, 0, 0.02);
border-radius: 16px;
display: flex;
align-items: center;
justify-content: center;
& > img {
width: 128px;
height: 52px;
& > img {
width: 128px;
height: 52px;
}
.u-news-item {
text-overflow: ellipsis;
overflow: hidden;
white-space: nowrap;
}
}
.u-news-item {
text-overflow: ellipsis;
overflow: hidden;
white-space: nowrap;
}
}
.card {
background: #FFF;
padding: 32px;
box-sizing: border-box;
display: flex;
justify-content: space-between;
width: 100%;
.card-left {
width: 322px;
height: 462px;
}
.card-right {
width: 334px;
height: 462px;
img {
.card {
background: #FFF;
padding: 32px;
box-sizing: border-box;
display: flex;
justify-content: space-between;
width: 100%;
.card-left {
width: 322px;
height: 462px;
}
.card-right {
width: 334px;
height: 216px;
}
img:last-child {
margin-top: 24px;
height: 462px;
img {
width: 334px;
height: 216px;
}
img:last-child {
margin-top: 24px;
}
}
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

View File

@@ -1,24 +1,39 @@
<template>
<div class="openPage">
<img class="images" src="./img/kaiping3.png" alt="">
<img class="images" :src="picUrl" alt="">
</div>
</template>
<script>
export default {
name: "openPage",
appName: "openPage",
customNavigation: true,
data() {
return {
picUrl: '',
}
},
methods: {
getList() {
this.$instance.post('/app/appwechatguidepage/listForXCX',null, {
params: {
current: 1,
size: 100,
}
}).then(res=> {
if(res?.data) {
this.picUrl = res.data.records[0].picUrl
}
})
}
},
onShow() {
onLoad() {
this.getList()
setTimeout(()=> {
uni.switchTab({
url: '/pages/AppHome/AppHome'
})
}, 2000)
},
}
</script>

View File

@@ -46,7 +46,7 @@
</div>
</div>
</div>
<div class="logout">
<div class="logout" v-if="token">
<b class="login-out" @click="onLogout">退出登录</b>
</div>
<AiLogin ref="login" @success="getAuth()"/>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 68 KiB

View File

@@ -1,45 +1,54 @@
<template>
<div class="AppHarvestQR">
<u-navbar :is-back="false" title="我的丰收码" title-color="#000" title-width="300" title-size="32"
:background="backgroundNavbar" :title-bold="true"></u-navbar>
<div class="card">
<div class="myself">
<img class="avatar" src="https://cdn.cunwuyun.cn/dvcp/myFamily/tx.png" alt="">
<img class="avatar" :src="user.avatarUrl" alt="" v-if="user.avatarUrl">
<img class="avatar" src="https://cdn.cunwuyun.cn/dvcp/myFamily/tx.png" alt="" v-else>
<div class="info">
<div class="name">百里守约</div>
<div class="area">百地社区</div>
<div class="name">{{ user.nickName }}</div>
<div class="area">{{ user.areaName }}</div>
</div>
</div>
<div class="qr">
<img src="https://cdn.cunwuyun.cn/dvcp/myFamily/tx.png" alt="">
<img :src="qrCode" alt="">
</div>
<div class="my-qr">我的丰收码</div>
<div class="pic">
<img src="./img-zhuangshi.png" alt="">
<img src="https://cdn.cunwuyun.cn/fengdu/img-zhuangshi.png" alt="">
</div>
</div>
</div>
</template>
<script>
import { mapState } from 'vuex'
export default {
name: "AppHarvestQR",
appName: '丰收码',
customNavigation: true,
data() {
return {
backgroundNavbar: {
background: '#FFF'
}
qrCode: '',
}
},
methods: {
getQrCode() {
this.$instance.post('/app/appwechatuserqujing/queryMyQrCode').then(res=> {
if(res?.data) {
this.qrCode = res.data
}
})
}
},
onShow() {
computed: {
...mapState(['user'])
},
onLoad() {
this.getQrCode()
uni.setNavigationBarTitle({
title: '我的丰收码'
})
}
}
</script>
@@ -51,8 +60,8 @@ export default {
width: 100%;
height: 100%;
box-sizing: border-box;
background: #FFF;
border-radius: 16px;
background: #FFF;
.myself {
padding: 72px;

View File

@@ -1,7 +1,5 @@
<template>
<div class="page">
<u-navbar :is-back="false" title="个人认证" title-color="#000" title-width="300" title-size="32"
:background="{background: '#FFF'}" :title-bold="true"></u-navbar>
<div class="info-list">
<div class="item-content mar-b8">
<div class="item solid">
@@ -54,7 +52,7 @@
<div class="item-right" v-if="!editArea">
<p class="name">{{ user.areaName || '' }}</p>
</div>
<AiAreaPicker v-else class="item-right" :areaId="$areaId" v-model="userAreaId" :fullName.sync="userAreaName">
<AiAreaPicker v-else :selectRoot="false" class="item-right" :areaId="$areaId" v-model="userAreaId" :fullName.sync="userAreaName">
<div class="ai-area__wrapper">
<span class="label" v-if="userAreaName">{{ userAreaName }}</span>
<i v-else>请选择</i>
@@ -74,13 +72,14 @@ import {mapActions, mapState} from 'vuex'
export default {
name: "userInfo",
appName: "个人中心",
customNavigation: true,
computed: {
...mapState(['user', 'token']),
},
onLoad() {
this.getUserInfo('qujing')
uni.setNavigationBarTitle({
title: '个人中心'
})
},
data() {
return {
@@ -135,6 +134,9 @@ export default {
if (!this.userIdNumber) {
return this.$u.toast('请输入身份证号')
}
if (!this.$idCardNoUtil.checkIdCardNo(this.userIdNumber)) {
return this.$u.toast('请输入正确的身份证号码')
}
if (!this.userAreaId) {
return this.$u.toast('请选择所属地区')
}

View File

@@ -1,6 +1,6 @@
<template>
<div class="AppNewFarmer">
<AiEmpty :description="`丰收号 内容建设中…`" class="emptyWrap"></AiEmpty>
<AiEmpty img='https://cdn.cunwuyun.cn/fengdu/mdpi_img-jianshezhong.png' :description="`丰收号 内容建设中…`" class="emptyWrap"></AiEmpty>
</div>
</template>
@@ -19,6 +19,11 @@ export default {
}
</script>
<style>
<style lang="scss" scoped>
.AppNewFarmer {
::v-deep .emptyWrap .emptyImg {
width: 442px;
height: 312px;
}
}
</style>

View File

@@ -1,6 +1,6 @@
<template>
<div class="AppNewFarmerBank">
<AiEmpty :description="`丰收号 内容建设中…`" class="emptyWrap"></AiEmpty>
<AiEmpty img='https://cdn.cunwuyun.cn/fengdu/mdpi_img-jianshezhong.png' :description="`丰收号 内容建设中…`" class="emptyWrap"></AiEmpty>
</div>
</template>
@@ -24,6 +24,14 @@ export default {
}
</script>
<style>
<style lang="scss" scoped>
.AppNewFarmerBank {
::v-deep .emptyWrap .emptyImg {
width: 442px;
height: 312px;
}
}
</style>

View File

@@ -1,21 +1,30 @@
<template>
<div class="AppWxworkQrcode">
<div class="header">
<AiSelect v-model="id" :list="list" ></AiSelect>
<AiSelect v-model="id" :list="dictList">
<span class="label" v-if="id">{{ dictList[id].label }}</span>
<span v-else class="col-666">请选择</span>
<u-icon name="arrow-down" color="#666" size="24" style="margin-left: 4px"></u-icon>
</AiSelect>
<div v-if="user.areaId" class="qrcode-content">
<AiImage :src="list.codeUrl" class="qrcode-img" preview/>
<img :src="picUrl" class="qrcode-img" v-if="picUrl"/>
<div v-else class="tips">
<u-icon name="error-circle" color="#909399" size="34" style="display: inline"></u-icon>
<div class="col-666">请选择居民群</div>
</div>
</div>
<div v-else class="qrcode-content flex column">
<div>请先去个人中心进行实名认证</div>
<div>请先去个人中心进行个人信息认证</div>
<div class="mar-t8 btn pad-v8 pad-h16" @click="goAuth">去实名</div>
</div>
<div class="jionGroup">
<div>加入群聊</div>
<!-- bind:startmessage='startmessage' @completemessage="completemessage" -->
<cell url='https://wework.qpic.cn/wwpic/71159_FwGG4OEPQM6LxsZ_1679023053/0' class="join-btn">加入群聊</cell>
</div>
<div class="pic">
<img src="./mdpi_img-chongqing.png" alt="">
<img src="https://cdn.cunwuyun.cn/fengdu/mdpi_img-chongqing.png" alt="">
</div>
</div>
</div>
@@ -30,15 +39,32 @@ export default {
},
data() {
return {
list: {},
dictList: [],
id: '',
current: 0,
list: [],
picUrl: '',
}
},
onShow() {
this.getSelect()
},
watch: {
id: {
handler(v) {
if(v) {
this.picUrl = this.list.filter(i=> i.id == v)[0].qrCode
}
}
}
},
methods: {
startmessage(i) {
console.log(i);
},
completemessage(e) {
console.log(e);
},
getSelect() {
const {areaId} = this.user
areaId && this.$instance.post(`/app/wxcp/wxgroup/listByAreaId`, null, {
@@ -46,11 +72,16 @@ export default {
areaId: areaId,
current: this.current,
size: 3000,
}
}).then(res => {
if (res?.data) {
this.list = res.data.records
this.dictList = res.data.records.map(e=> {
return {
value: e.id,
label: e.name
}
})
}
})
},
@@ -58,12 +89,12 @@ export default {
uni.navigateTo({url: "/mods/AppAuth/AppAuth"})
}
},
onShareAppMessage() {
return {
title: '入群二维码',
path: `/mods/AppWxworkQrcode/AppWxworkQrcode`
}
}
// onShareAppMessage() {
// return {
// title: '',
// path: `/mods/AppWxworkQrcode/AppWxworkQrcode`
// }
// }
}
</script>
<style scoped lang="scss">
@@ -90,12 +121,20 @@ export default {
line-height: 80px;
padding: 0 72px;
box-sizing: border-box;
div {
::v-deep .join-btn {
display: block;
width: 100%;
height: 100%;
text-align: center;
background: #2D7DFF;
color: #FFFFFF;
border-radius: 40px;
}
.join-bg {
background: #999999;
color: #333333;
}
}
.header {
@@ -110,20 +149,23 @@ export default {
margin: 10% auto 10%;
background: #F6F9FF;
border-radius: 12px;
border: 4px solid #E6EEFF;
border: 8px solid #f6f5f8;
padding: 36px;
box-sizing: border-box;
::v-deep .qrcode-img {
width: 420px;
height: 420px;
margin-bottom: 24px;
.qrcode-img {
width: 100%;
height: 100%;
image {
width: 420px;
height: 420px;
width: 100%;
height: 100%;
}
}
.tips {
margin-top: 200px;
}
div {
font-size: 26px;
@@ -149,5 +191,8 @@ export default {
height: 100%;
}
}
.col-666 {
color: #666;
}
}
</style>