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

This commit is contained in:
aixianling
2021-12-23 11:07:51 +08:00
29 changed files with 1797 additions and 38 deletions

View File

@@ -0,0 +1,44 @@
<template>
<div class="AppPageBasic">
<AppListPage :label="label" :appList="appList" />
</div>
</template>
<script>
import AppListPage from '@/components/AppListPage/AppListPage'
export default {
name: 'AppPageBasic',
appName: '工作台(基层办公)',
components: { AppListPage },
data() {
return {
label: '基层办公',
appList: [
{
name: '会议通知',
icon: require('./img/hytz.png'),
url: '../AppMeetingNotice/AppMeetingNotice'
},
{
name: '三务公开',
icon: require('./img/shgk.png'),
url: '../AppServicePublic/AppServicePublic?moduleId=b03d1ea68c8449ecb00685644e3f0192'
}
]
}
},
methods: {
},
}
</script>
<style lang="scss" scoped>
uni-page-body{
height: 100%;
}
.AppPageBasic{
height: 100%;
}
</style>

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 222 KiB

View File

@@ -0,0 +1,49 @@
<template>
<div class="AppPageCivilization">
<AppListPage :label="label" :appList="appList" />
</div>
</template>
<script>
import AppListPage from '@/components/AppListPage/AppListPage'
export default {
name: 'AppPageCivilization',
appName: '工作台(文明乡风)',
components: { AppListPage },
data() {
return {
label: '文明乡风',
appList: [
{
name: '婚丧嫁娶',
icon: require('./img/hjsq.png'),
url: '../AppMarryAndDie/AppMarryAndDie'
},
{
name: '好人好事',
icon: require('./img/hrhs.png'),
url: '../AppServicePublic/AppServicePublic?moduleId=5da220f3182047aba92d64ac08b93b55'
},
{
name: '五好家庭',
icon: require('./img/whjt.png'),
url: '../AppServicePublic/AppServicePublic?moduleId=6afadf4cd44f4b73be29390b30ca88bb'
}
]
}
},
methods: {
},
}
</script>
<style lang="scss" scoped>
uni-page-body{
height: 100%;
}
.AppPageCivilization{
height: 100%;
}
</style>

Binary file not shown.

After

Width:  |  Height:  |  Size: 271 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 89 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 87 KiB

View File

@@ -0,0 +1,49 @@
<template>
<div class="AppPageInteraction">
<AppListPage :label="label" :appList="appList" />
</div>
</template>
<script>
import AppListPage from '@/components/AppListPage/AppListPage'
export default {
name: 'AppPageInteraction',
appName: '工作台(居民互动)',
components: { AppListPage },
data() {
return {
label: '居民互动',
appList: [
{
name: '居民活动',
icon: require('./img/jmhd.png'),
url: '../AppResidentActivitie/AppResidentActivities'
},
{
name: '小程序公告',
icon: require('./img/xcxgg.png'),
url: '../AppUniMsg/AppUniMsg'
},
{
name: '问卷表单',
icon: require('./img/wjbd.png'),
url: '../AppAskForm/AppForm'
}
]
}
},
methods: {
},
}
</script>
<style lang="scss" scoped>
uni-page-body{
height: 100%;
}
.AppPageInteraction{
height: 100%;
}
</style>

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

View File

@@ -0,0 +1,54 @@
<template>
<div class="AppPageParty">
<AppListPage :label="label" :appList="appList" />
</div>
</template>
<script>
import AppListPage from '@/components/AppListPage/AppListPage'
export default {
name: 'AppPageParty',
appName: '工作台(基层党建)',
components: { AppListPage },
data() {
return {
label: '基层党建',
appList: [
{
name: '三会一课',
icon: require('./img/shyk.png'),
url: '../party/AppThreeSessions/AppThreeSessions'
},
{
name: '党建要闻',
icon: require('./img/djyw.png'),
url: '../AppServicePublic/AppServicePublic?moduleId=95f0f1c509e44d528069bc9f9dc19e53'
},
{
name: '党员学习',
icon: require('./img/dyxx.png'),
url: '../party/AppPartyStudy/AppPartyStudy'
},
{
name: '在线答题',
icon: require('./img/zxdt.png'),
url: '../party/AppOnlineAnswer/AppOnlineAnswer'
}
]
}
},
methods: {
},
}
</script>
<style lang="scss" scoped>
uni-page-body{
height: 100%;
}
.AppPageParty{
height: 100%;
}
</style>

Binary file not shown.

After

Width:  |  Height:  |  Size: 118 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 100 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 107 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 74 KiB

View File

@@ -0,0 +1,49 @@
<template>
<div class="AppPageResident">
<AppListPage :label="label" :appList="appList" />
</div>
</template>
<script>
import AppListPage from '@/components/AppListPage/AppListPage'
export default {
name: 'AppPageResident',
appName: '工作台(居民)',
components: { AppListPage },
data() {
return {
label: '居民管理',
appList: [
{
name: '居民信息管理',
icon: require('./img/jmxxgl.png'),
url: '../AppResidentFile/AppResidentFile?tabIndex=1'
},
{
name: '居民群管理',
icon: require('./img/jmqgl.png'),
url: '../AppResidentFile/AppResidentFile?tabIndex=2'
},
{
name: '居民档案',
icon: require('./img/jmda.png'),
url: '../AppResidentFile/AppResidentFile'
}
]
}
},
methods: {
},
}
</script>
<style lang="scss" scoped>
uni-page-body{
height: 100%;
}
.AppPageResident{
height: 100%;
}
</style>

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

View File

@@ -13,7 +13,7 @@
<div class="line"></div>
<u-form-item label="活动封面图" prop="fileIds" required :border-bottom="false" class="avatars" label-position="top">
<AiUploader :def.sync="forms.fileIds" multiple placeholder="上传图片" :limit="9"></AiUploader>
<AiUploader :def.sync="forms.fileIds" multiple placeholder="上传图片" :limit="1"></AiUploader>
</u-form-item>
<div class="line"></div>
@@ -25,9 +25,7 @@
</u-form-item>
<u-form-item label="报名范围" prop="fanwe" required :border-bottom="false" right-icon="arrow-right">
<u-input v-model="forms.fanwe" disabled placeholder="请选择报名范围" @click="showStstus = true" />
<u-select v-model="showStstus" :list="$dict.getDict('realityStatus')" value-name="dictValue" label-name="dictName" @confirm="selectStatus"></u-select>
<AiAreaPicker v-model="forms.areaId" :areaId="areaIdProps" @select="areaSelect" style="color: #333"></AiAreaPicker>
</u-form-item>
<u-form-item label="活动名额" prop="nums" required :border-bottom="false">
@@ -194,11 +192,11 @@ export default {
this.flag = true
this.$http
.post(`/app/appvisitvondolence/addOrUpdate`, {
.post(`/app/appvillageactivityinfo/addOrUpdate`, {
title: this.forms.title,
content: this.forms.content,
// images: JSON.stringify(imgs) || [],
images: imgs || [],
images: JSON.stringify(imgs) || [],
// images: imgs || [],
status: this.forms.statusValue ? this.forms.statusValue : this.forms.status,
fanwe: this.forms.fanwe,
@@ -217,7 +215,7 @@ export default {
if (res.code == 0) {
this.$u.toast('发布成功')
this.flag = false
uni.navigateTo({ url: `./AppActive` })
uni.navigateTo({ url: `./AppResidentActivities` })
}
})
} else {
@@ -255,6 +253,7 @@ export default {
padding-bottom: 112px;
.header-description {
padding-bottom: 112px;
::v-deep .u-form {
.u-form-item {
padding: 0 45px !important;

View File

@@ -7,32 +7,32 @@
<div class="dataRight">
<span></span>
<span class="specialColor">12</span>
<span class="specialColor">{{ total }}</span>
<span>个活动</span>
</div>
</div>
<template v-if="datas.length > 0">
<AiCard v-for="(item, i) in 6" :key="i" @click.native="toDetail(item, 1)">
<AiCard v-for="(item, i) in datas" :key="i" @click.native="toDetail(item, 1)">
<template #custom>
<div class="left">
<div class="titles">敬老爱幼带你在洞庭湖兜兜风 寻觅江豚的身影</div>
<div class="titles">{{ item.title }}</div>
<div class="nums">
<span class="specialColor">6</span>
<span class="specialColor">{{ item.realNum }}</span>
<span>已报名</span>
</div>
<div class="times">
<span class="timesCont">2021-12-16</span>
<span class="timesCont">{{ item.beginTime }}</span>
<span>| 2</span>
</div>
<div class="areaNmae">湖南省岳阳市岳阳县荣家湾镇六湖南省岳阳市岳阳县荣家湾镇六</div>
<div class="areaNmae">{{ item.areaName }}</div>
</div>
<img src="./yan.jpg" alt="" />
<img :src="item.url[0].url" alt="" />
</template>
</AiCard>
</template>
@@ -44,6 +44,8 @@
</template>
<script>
import { mapState } from 'vuex'
export default {
name: 'AppResidentActivities',
appName: '居民活动',
@@ -62,16 +64,45 @@ export default {
],
currentTabs: 0,
current: 1,
size: 6,
total: '',
}
},
computed: {},
computed: {
...mapState(['user']),
},
watch: {},
onLoad() {
this.getList()
},
mounted() {},
methods: {
getList() {},
getList() {
this.$http
.post('/app/appvillageactivityinfo/list', null, {
params: {
size: this.size,
current: this.current,
createUserId: this.currentTabs == 1 ? this.user.id : '',
},
})
.then((res) => {
if (res.code == 0) {
this.datas = this.current > 1 ? [...this.datas, ...res.data.records] : res.data.records
this.total = res.data.total
this.pages = res.data.pages
if (this.datas) {
this.datas.map((item) => {
if (item.url) {
item.url = JSON.parse(item.url || '[]')
}
return item
})
}
}
})
},
change(index) {
this.currentTabs = index
@@ -83,8 +114,7 @@ export default {
},
toDetail(item) {
uni.navigateTo({ url: `./Detail` })
// uni.navigateTo({ url: `./Detail?id=${item.id}` })
uni.navigateTo({ url: `./Detail?id=${item.id}` })
},
},
onReachBottom() {
@@ -149,16 +179,19 @@ uni-page-body {
overflow: hidden;
}
.nums {
margin-top: 8px;
.specialColor {
color: #4181ff;
}
}
.times {
margin-top: 8px;
.timesCont {
margin-right: 10px;
}
}
.areaNmae {
margin-top: 8px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;

View File

@@ -103,7 +103,7 @@
</div>
</div>
<div class="addicon" @click="toPublicPage()">
<!-- <div class="addicon" @click="toPublicPage()">
<u-icon name="plus" color="#1365DD" size="50"></u-icon>
</div>
@@ -129,21 +129,21 @@
<div class="btn" v-if="detail.realNum == detail.total && detail.status == 1 && detail.status == 1 && detail.total != 0">
<div class="max">已满员</div>
</div>
</div> -->
<div class="btn" v-if="detail.myReport == 1 && detail.status == 2">
<!-- <div class="btn" v-if="detail.myReport == 1 && detail.status == 2">
<div class="edit" @click="callPhone(detail.contactPhone)">联系负责人</div>
<div class="public" style="background: #ffd8df; color: #ff4466" v-if="detail.allow1 == 0">未签到</div>
<div class="public" style="background: #3671ee; color: #ffffff" v-if="detail.allow1 == 1" @click="sign(0)">签到</div>
<div class="public" style="background: #cbead9; color: #20bc65" v-if="detail.allow1 == 2">已签到</div>
</div>
</div> -->
<div class="btn" v-if="detail.status == 5">
<!-- <div class="btn" v-if="detail.status == 5">
<div class="edit" @click="callPhone(detail.contactPhone)">联系负责人</div>
<div class="public" style="background: #cbead9; color: #20bc65" v-if="detail.allow2 == 1" @click="sign(1)">离场签到</div>
<div class="public" style="background: #cbead9; color: #20bc65" v-if="detail.allow2 == 2">已离场签到</div>
<div class="public" style="background: #ffd8df; color: #ff4466" v-if="detail.allow2 == 0">未离场签到</div>
</div>
</div> -->
</div>
</template>
@@ -180,7 +180,7 @@ export default {
},
methods: {
getDetail() {
this.$instance.post(`/app/appactivityinfo/queryDetailById?id=${this.id}&partyId=${this.user.partyId}`).then((res) => {
this.$http.post(`/app/appactivityinfo/queryDetailById?id=${this.id}&partyId=${this.user.partyId}`).then((res) => {
if (res?.data) {
res.data.beginTime = res.data.beginTime.substring(0, 16)
res.data.endTime = res.data.endTime.substring(0, 16)
@@ -191,7 +191,7 @@ export default {
},
getActiveList() {
this.$instance.post(`/app/apppostinfo/list?activityId=${this.id}`).then((res) => {
this.$http.post(`/app/apppostinfo/list?activityId=${this.id}`).then((res) => {
if (res?.data) {
this.activeList = res.data.records

View File

@@ -136,6 +136,7 @@ export default {
props: {},
data() {
return {
indexBar: '',
lists: [
{
iconPath: 'home',
@@ -198,9 +199,16 @@ export default {
...mapState(['user', 'global']),
},
watch: {},
onLoad() {
onLoad(o) {
if (o.index) {
this.indexBar = o.index
}
this.getEchart1()
this.getEchart2()
this.getList()
this.getList2()
this.currentTabBar = this.indexBar
this.areaId = this.user.areaId
},
mounted() {

View File

@@ -57,12 +57,14 @@ export default {
showStstus: false,
flag: false,
areaIdProps: '',
moduleId: ''
}
},
computed: { ...mapState(['user']) },
onLoad(o) {
console.log(o)
this.id = o.id
this.moduleId = o.moduleId
this.areaIdProps = this.user.areaId
this.$dict.load('realityStatus').then(() => {
this.getDetail()
@@ -113,6 +115,7 @@ export default {
// images: JSON.stringify(imgs) || [],
images: imgs || [],
id: this.id,
moduleId: this.moduleId
})
.then((res) => {
if (res.code == 0) {

View File

@@ -66,6 +66,7 @@ export default {
pages: 0,
deletShow: false,
deletId: '',
moduleId: ''
}
},
computed: {
@@ -76,8 +77,9 @@ export default {
},
},
watch: {},
onLoad() {
onLoad(o) {
this.areaId = this.user.areaId
this.moduleId = o.moduleId
this.getList()
},
mounted() {},
@@ -90,6 +92,7 @@ export default {
current: this.current,
areaId: this.areaId,
title: this.keyword,
moduleId: this.moduleId
},
})
.then((res) => {
@@ -116,7 +119,7 @@ export default {
}
if (type == null) {
console.log('添加')
uni.navigateTo({ url: `./Add` })
uni.navigateTo({ url: `./Add?moduleId=${this.moduleId}` })
}
},

View File

@@ -17,13 +17,7 @@
<div class="plan">
<span>审批进度</span>
<span class="business_status" v-if="item.approvalStatus == 0"> {{ $dict.getLabel('listApprovalStatusHb', item.approvalStatus) }}</span>
<span class="business_status_blue" v-if="item.approvalStatus == 1"> {{ $dict.getLabel('listApprovalStatusHb', item.approvalStatus) }}</span>
<span class="business_status_gray" v-if="item.approvalStatus == 2">
{{ $dict.getLabel('listApprovalStatusHb', item.approvalStatus) }}
</span>
<span class="business_status" :style="{ color: item.approvalStatus == 0 ? '#FF9B2B' : item.approvalStatus == 1 ? '#3078E1' : '#666666' }"> {{ $dict.getLabel('listApprovalStatusHb', item.approvalStatus) }}</span>
</div>
</view>
@@ -111,7 +105,7 @@ export default {
},
goDetail(item) {
uni.navigateTo({ url: `./detail?id=${item.id}&listType=${this.listType}` })
uni.navigateTo({ url: `./Detail?id=${item.id}&listType=${this.listType}` })
},
change(index) {

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,86 @@
<template>
<section class="AppListPage">
<div class="content">
<div class="title">{{label}}</div>
<div class="app-list">
<div class="item" v-for="(item, index) in appList" :key="index" @click="linkTo(item.url)">
<div class="icon" :style="`backgroundImage: url(${item.icon});`"></div>
<p>{{item.name}}</p>
</div>
</div>
</div>
</section>
</template>
<script>
export default {
name: "AppListPage",
props: {
label: String,
appList: Array,
},
methods: {
linkTo(url) {
console.log(url)
uni.navigateTo({url})
}
}
}
</script>
<style lang="scss" scoped>
.AppListPage {
padding-top: 20px;
.content{
margin: 0 20px 20px;
width: calc(100% - 40px);
background: #FFF;
border-radius: 16px;
.title{
line-height: 70px;
border-bottom: 1px solid #eee;
padding-left: 20px;
font-size: 26px;
font-family: PingFangSC-Medium, PingFang SC;
font-weight: 500;
color: #999;
}
.app-list{
overflow: hidden;
.item{
text-align: center;
padding-bottom: 38px;
border-right: 1px solid #eee;
border-top: 1px solid #eee;
width: calc(33% - 1px);
float: left;
.icon{
display: inline-block;
width: 58px;
height: 58px;
margin: 40px 0 18px 0;
background-size: 100% 100%;
text-align: center;
}
p{
font-size: 28px;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #3D434A;
line-height: 40px;
}
}
.item:nth-of-type(3n) {
border-right: 0;
}
.item:nth-child(1),
.item:nth-child(2),
.item:nth-child(3) {
border-top: 0;
}
}
}
}
</style>