This commit is contained in:
花有清香月有阴
2021-12-16 17:13:42 +08:00
26 changed files with 355 additions and 105 deletions

View File

@@ -1,15 +1,15 @@
<template>
<div class="info">
<div class="info-top">
<div class="info-top__item" @click="linkTo('/pages/Monitor/Monitor')">
<div class="info-top__item" @click="linkTo('./Monitor')">
<image src="/static/images/wdbf.png"/>
<h2>监测对象</h2>
</div>
<div class="info-top__item" @click="linkTo('/pages/povertyMonitor/povertyMonitor')">
<div class="info-top__item" @click="linkTo('./povertyMonitor')">
<image src="/static/images/yjjk.png"/>
<h2>预警监控</h2>
</div>
<div class="info-top__item" @click="linkTo('/pages/PovertyAlleviation/News')">
<div class="info-top__item" @click="linkTo('./News')">
<image src="/static/images/news.png"/>
<h2>政策动态</h2>
</div>
@@ -18,7 +18,7 @@
<h2>最新动态</h2>
<div class="news-list">
<div class="news-item" v-for="(item, index) in list" :key="index"
@click="linkTo(`/pages/PovertyAlleviation/NewsDetail?id=${item.id}`)">
@click="linkTo(`./NewsDetail?id=${item.id}`)">
<div class="left">
<h2>{{ item.title }}</h2>
<div class="item-bottom">
@@ -35,12 +35,13 @@
<script>
export default {
name: "AppPovertyAlleviation",
appName: "防返贫",
data() {
return {
list: []
}
},
onLoad() {
this.$dict.load(['newsCenterPolicyType']).then(() => {
this.getList()
@@ -49,11 +50,8 @@ export default {
methods: {
linkTo(url) {
uni.navigateTo({
url
})
uni.navigateTo({url})
},
getList() {
this.$http.post(`/app/appnewscenterinfo/listForWx`, null, {
params: {

View File

@@ -12,8 +12,8 @@
</template>
<script>
import Statistics from './components/Statistics.vue'
import List from './components/List.vue'
import Statistics from './Monitor/Statistics.vue'
import List from './Monitor/List.vue'
export default {
data() {

View File

@@ -36,19 +36,15 @@
</div>
</div>
</div>
<ai-empty v-if="!list.length && isMore" style="padding-bottom: 20px;"></ai-empty>
<AiEmpty v-if="!list.length && isMore" style="padding-bottom: 20px;"></AiEmpty>
</div>
<ai-fixed-btn>
<AiFixedBtn>
<div class="addBtn iconfont iconfont-iconfangda" @tap="toAdd"></div>
</ai-fixed-btn>
</AiFixedBtn>
</div>
</template>
<script>
import AiArea from '@/components/AiArea'
import AiFixedBtn from '@/components/AiFixedBtn'
import AiEmpty from '@/components/AiEmpty/AiEmpty'
import AiAreaPicker from '@/components/AiAreaPicker'
export default {
name: 'list',
@@ -66,13 +62,6 @@ export default {
}
},
components: {
AiArea,
AiEmpty,
AiAreaPicker,
AiFixedBtn
},
created() {
uni.showLoading()
this.areaId = this.$store.state.user.areaId
@@ -92,7 +81,7 @@ export default {
methods: {
toDetail(id) {
uni.navigateTo({
url: '/pages/Monitor/Detail?id=' + id
url: './MonitorDetail?id=' + id
})
},
@@ -106,7 +95,7 @@ export default {
toAdd() {
uni.navigateTo({
url: '/pages/Monitor/Add'
url: './MonitorAdd'
})
},
@@ -235,8 +224,8 @@ export default {
span {
position: relative;
flex: 1;
height: 96 rpx;
line-height: 96 rpx;
height: 96px;
line-height: 96px;
color: #000000;
text-align: center;
font-size: 32px;

View File

@@ -56,8 +56,6 @@
<script>
import echarts from 'echarts'
import AiArea from '@/components/AiArea'
import AiAreaPicker from '@/components/AiAreaPicker'
export default {
name: 'statistics',
@@ -76,10 +74,6 @@ export default {
}
},
components: {
AiArea,
AiAreaPicker
},
created() {
this.areaId = this.$store.state.user.areaId

View File

@@ -107,10 +107,6 @@
</template>
<script>
import AiUploader from '@/components/AiUploader'
import AiSelect from '@/components/AiSelect'
import AiArea from '@/components/AiArea'
import AiAreaPicker from '@/components/AiAreaPicker'
export default {
data() {
@@ -132,13 +128,6 @@ export default {
}
},
components: {
AiArea,
AiSelect,
AiUploader,
AiAreaPicker
},
created() {
this.$areaId = this.$store.state.user.areaId
this.areaName = this.$store.state.user.areaFullName

View File

@@ -15,7 +15,7 @@
<p>{{ info.phone }}</p>
</div>
</div>
<span @click="linkTo('/pages/Monitor/Add?id=' + info.id)">编辑</span>
<span @click="linkTo('./MonitorAdd?id=' + info.id)">编辑</span>
</div>
<div class="item-info">
<label>行政区划</label>
@@ -59,7 +59,7 @@
info.familyList.length ? '已填写' : '未填写'
}})</i>
</div>
<span @click="linkTo('/pages/Monitor/FamilyMember?id=' + info.id)">编辑</span>
<span @click="linkTo('./MonitorFamilyMember?id=' + info.id)">编辑</span>
</div>
<div class="item-info">
<label>未参加医疗参保</label>
@@ -78,7 +78,7 @@
isFamilySituation ? '已填写' : '未填写'
}})</i>
</div>
<span @click="linkTo('/pages/Monitor/FamilySituation?id=' + info.id)">编辑</span>
<span @click="linkTo('./MonitorFamilySituation?id=' + info.id)">编辑</span>
</div>
<div class="item-info">
<label>是否危房</label>
@@ -95,7 +95,7 @@
<h2>收支情况</h2>
<i :style="{color: isIncome ? '#2EA222' : '#FF4466'}">({{ isIncome ? '已填写' : '未填写' }})</i>
</div>
<span @click="linkTo('/pages/Monitor/Income?id=' + info.id)">编辑</span>
<span @click="linkTo('./MonitorIncome?id=' + info.id)">编辑</span>
</div>
<div class="item-info">
<label>家庭纯收入</label>
@@ -112,7 +112,7 @@
<h2>风险解除</h2>
<i :style="{color: isPoorStatus ? '#2EA222' : '#FF4466'}">({{ isPoorStatus ? '已填写' : '未填写' }})</i>
</div>
<span @click="linkTo('/pages/Monitor/PoorStatus?id=' + info.id)">编辑</span>
<span @click="linkTo('./MonitorPoorStatus?id=' + info.id)">编辑</span>
</div>
<div class="item-info">
<label>是否消除风险</label>
@@ -142,18 +142,16 @@
</div>
</div>
</div>
<ai-empty v-if="!list.length" style="padding-bottom: 20px;"></ai-empty>
<AiEmpty v-if="!list.length" style="padding-bottom: 20px;"></AiEmpty>
</div>
</div>
<ai-fixed-btn v-if="currIndex === 1">
<AiFixedBtn v-if="currIndex === 1">
<div class="addBtn iconfont iconfont-iconfangda" @tap="toAddLog"></div>
</ai-fixed-btn>
</AiFixedBtn>
</div>
</template>
<script>
import AiFixedBtn from '@/components/AiFixedBtn'
import AiEmpty from '@/components/AiEmpty/AiEmpty'
export default {
name: 'detail',
@@ -168,10 +166,6 @@ export default {
}
},
components: {
AiEmpty,
AiFixedBtn
},
computed: {
isIncome() {
@@ -225,9 +219,7 @@ export default {
methods: {
linkTo(url) {
uni.navigateTo({
url
})
uni.navigateTo({url})
},
call(phone) {
@@ -244,7 +236,7 @@ export default {
success: res => {
if (res.tapIndex === 0) {
uni.navigateTo({
url: `/pages/Monitor/AddLog?pid=${this.info.id}&id=${id}`
url: `./MonitorAddLog?pid=${this.info.id}&id=${id}`
})
} else if (res.tapIndex === 1) {
this.$confirm('确定删除该数据?').then(() => {
@@ -273,7 +265,7 @@ export default {
toAddLog() {
uni.navigateTo({
url: '/pages/Monitor/AddLog?pid=' + this.info.id
url: './MonitorAddLog?pid=' + this.info.id
})
},
@@ -362,8 +354,8 @@ export default {
span {
position: relative;
flex: 1;
height: 96 rpx;
line-height: 96 rpx;
height: 96px;
line-height: 96px;
color: #000000;
text-align: center;
font-size: 32px;

View File

@@ -76,9 +76,9 @@
<span @click="remove(index)">删除</span>
</div>
</div>
<ai-fixed-btn>
<AiFixedBtn>
<div class="addBtn iconfont iconfont-iconfangda" @tap="toAdd"></div>
</ai-fixed-btn>
</AiFixedBtn>
<div class="no-more" v-if="!list.length">
<image src="/static/images/empty.png"/>
<div>
@@ -125,14 +125,14 @@ export default {
methods: {
toAdd() {
uni.navigateTo({
url: '/pages/Monitor/AddFamilyMember?id=' + this.id
url: './MonitorAddFamilyMember?id=' + this.id
})
},
toEdit(index) {
this.$confirm('确定编辑该数据?').then(() => {
uni.navigateTo({
url: `/pages/Monitor/AddFamilyMember?id=${this.id}&index=${index}`
url: `./MonitorAddFamilyMember?id=${this.id}&index=${index}`
})
}).catch(() => {
})

View File

@@ -11,7 +11,7 @@
</div>
<div class="list">
<div class="item" v-for="(item, index) in list" :key="index"
@click="linkTo('/pages/PovertyAlleviation/NewsDetail?id=' + item.id)">
@click="linkTo('./NewsDetail?id=' + item.id)">
<div class="left">
<h2>{{ item.title }}</h2>
<div class="item-bottom">
@@ -21,13 +21,12 @@
</div>
<image v-if="item.coverFile" :src="item.coverFile ? item.coverFile.url : ''"/>
</div>
<ai-empty v-if="!list.length && isMore" style="padding-bottom: 20px;"></ai-empty>
<AiEmpty v-if="!list.length && isMore" style="padding-bottom: 20px;"></AiEmpty>
</div>
</div>
</template>
<script>
import AiEmpty from '@/components/AiEmpty/AiEmpty'
export default {
data() {
@@ -42,9 +41,6 @@ export default {
}
},
components: {
AiEmpty
},
onLoad() {
uni.showLoading()
@@ -70,9 +66,7 @@ export default {
},
linkTo(url) {
uni.navigateTo({
url
})
uni.navigateTo({url})
},
getList() {
@@ -200,8 +194,8 @@ export default {
span {
position: relative;
flex: 1;
height: 96 rpx;
line-height: 96 rpx;
height: 96px;
line-height: 96px;
color: #999999;
text-align: center;
font-size: 28px;

View File

@@ -12,8 +12,8 @@
</template>
<script>
import Statistics from './components/Statistics.vue'
import List from './components/List.vue'
import Statistics from './povertyMonitor/Statistics.vue'
import List from './povertyMonitor/List.vue'
export default {
data() {

View File

@@ -15,13 +15,12 @@
<p>{{ item.addressArea }} {{ item.address }}</p>
<div class="item-bottom">家庭收入</div>
</div>
<ai-empty v-if="!list.length && isMore" style="padding-bottom: 20px;"></ai-empty>
<AiEmpty v-if="!list.length && isMore" style="padding-bottom: 20px;"></AiEmpty>
</div>
</div>
</template>
<script>
import AiEmpty from '@/components/AiEmpty/AiEmpty'
export default {
name: 'list',
@@ -35,10 +34,6 @@ export default {
}
},
components: {
AiEmpty
},
created() {
uni.showLoading()
this.$nextTick(() => {
@@ -56,7 +51,7 @@ export default {
toDetail(id) {
uni.navigateTo({
url: `/pages/Monitor/Detail?id=${id}&isFrom=1`
url: `./MonitorDetail?id=${id}&isFrom=1`
})
},
@@ -130,8 +125,8 @@ export default {
span {
position: relative;
flex: 1;
height: 96 rpx;
line-height: 96 rpx;
height: 96px;
line-height: 96px;
color: #000000;
text-align: center;
font-size: 32px;
@@ -194,14 +189,14 @@ export default {
}
&.status1 {
color: 已解除风险;
color: #3975C6;
}
}
}
p {
line-height: 1.4;
margin-bottom: 32 rpx;
margin-bottom: 32px;
padding: 0 32px;
color: #999999;
font-size: 26px;

View File

@@ -89,7 +89,7 @@ export default {
methods: {
linkTo() {
uni.navigateTo({
url: '/pages/povertyMonitor/Form'
url: './povertyMonitorForm'
})
},
@@ -110,7 +110,7 @@ export default {
<style lang="scss">
.detail {
padding-bottom: 122 rpx;
padding-bottom: 122px;
* {
box-sizing: border-box;
@@ -224,7 +224,7 @@ export default {
line-height: 1.3;
text-align: right;
color: #999999;
font-size: 30 rpx;
font-size: 30px;
}
span {

View File

@@ -18,7 +18,7 @@ export default {
data() {
return {
component: 'add',
component: 'Detail',
params: {}
}
},

View File

@@ -1,6 +1,102 @@
<template>
<div class="detail">
<div class="tab-select">
<div class="item active">统计信息<span></span></div>
<div class="item">人员信息<span></span></div>
</div>
<div class="area-select">
<div class="select-content">
<div class="area-content">
<AiAreaPicker ref="areaIds" :areaId="areaId" mode="custom" all @select="areaSelect">
<img src="./img/local-icon.png" alt="">
<span class="label" v-if="addressArea">{{ addressArea }}</span>
<span v-else>请选择</span>
<u-icon name="arrow-down" color="#666" size="24" />
</AiAreaPicker>
</div>
<div class="search-input">
<img src="./img/search-icon.png" alt="">
<u-input type="text" placeholder="请输入姓名" placeholder-style="color:#999;font-size:13px;" height="18" />
</div>
</div>
</div>
<div v-if="!tabIndex">
<div class="info-content">
<div class="title">特殊人群</div>
<div class="num-content">
<div class="num-item">
<h3>18</h3>
<p>残疾人</p>
</div>
<div class="num-item">
<h3>18</h3>
<p>精神疾病患者</p>
</div>
<div class="num-item">
<h3>18</h3>
<p>社区矫正人群</p>
</div>
<div class="num-item">
<h3>18</h3>
<p>吸毒人员</p>
</div>
<div class="num-item">
<h3>18</h3>
<p>刑满释放人员</p>
</div>
</div>
</div>
<div class="info-content">
<div class="title">本月新增</div>
<div class="num-content color-org">
<div class="num-item">
<h3>18</h3>
<p>残疾人</p>
</div>
<div class="num-item">
<h3>18</h3>
<p>精神疾病患者</p>
</div>
<div class="num-item">
<h3>18</h3>
<p>社区矫正人群</p>
</div>
<div class="num-item">
<h3>18</h3>
<p>吸毒人员</p>
</div>
<div class="num-item">
<h3>18</h3>
<p>刑满释放人员</p>
</div>
</div>
</div>
</div>
<div>
<div class="item-content">
<div class="title">
<h2>精神病患者</h2>
<img src="./img/down-icon.png" alt="">
</div>
<div class="user-list">
<div class="user-item">
<div class="user-img">
<img src="./img/user-img.png" alt="">
</div>
<div class="user-info">
<p class="name">李毅</p>
<div class="phone">
<span>428008******8765</span>
<span>18164065235</span>
</div>
</div>
</div>
</div>
</div>
<div class="footer">
<div class="btn">新增特殊人群信息</div>
</div>
</div>
</div>
</template>
@@ -10,16 +106,20 @@ export default {
data() {
return {
areaId: '',
tabIndex: 1,
addressArea: ''
}
},
computed: { ...mapState(['user']) },
mounted() {
this.areaId = this.user.areaId
},
methods: {
areaSelect() {
}
}
}
@@ -27,6 +127,205 @@ export default {
<style lang="scss" scoped>
.detail {
.tab-select{
width: 100%;
height: 96px;
line-height: 96px;
background: #3975C6;
display: flex;
.item{
flex: 1;
text-align: center;
font-size: 28px;
font-family: PingFangSC-Regular, PingFang SC;
color: #CDDCF0;
}
.active{
font-family: PingFangSC-Medium, PingFang SC;
font-weight: 500;
position: relative;
color: #fff;
span{
width: 48px;
height: 4px;
background: #FFF;
position: absolute;
bottom: 14px;
left: 50%;
margin-left: -24px;
}
}
}
.area-select{
width: 100%;
background: #FFF;
padding-left: 32px;
box-sizing: border-box;
.select-content{
width: 100%;
padding: 24px 32px 24px 0;
border-bottom: 1px solid #D8DDE6;
display: flex;
justify-content: space-between;
font-family: PingFangSC-Regular, PingFang SC;
color: #333;
line-height: 44px;
box-sizing: border-box;
display: flex;
.area-content{
width: calc(100% - 402px);
line-height: 64px;
img{
width: 42px;
vertical-align: middle;
margin-right: 16px;
}
.u-icon{
margin-left: 6px;
}
}
.search-input{
width: 402px;
height: 64px;
background: #F5F5F5;
border-radius: 32px;
padding: 14px 32px;
box-sizing: border-box;
img{
width: 32px;
height: 32px;
margin-right: 12px;
}
::v-deep .u-input{
display: inline-block;
width: 280px;
font-size: 26px;
}
}
}
}
.info-content{
width: calc(100% - 64px);
background: #FFF;
border-radius: 8px;
margin: 24px 32px 0;
.title{
padding-left: 32px;
line-height: 94px;
border-bottom: 1px solid #ddd;
font-size: 32px;
font-family: PingFangSC-Medium, PingFang SC;
font-weight: 500;
color: #333;
}
.num-content{
overflow: hidden;
.num-item{
float: left;
width: 33%;
padding: 40px 0;
text-align: center;
h3{
font-size: 64px;
font-family: DINAlternate-Bold, DINAlternate;
font-weight: bold;
color: #3192F4;
line-height: 74px;
margin-bottom: 10px;
}
p{
font-size: 28px;
font-family: PingFangSC-Medium, PingFang SC;
font-weight: 500;
color: #999;
line-height: 40px;
}
}
}
.color-org{
.num-item{
h3{
color: #FF8700;
}
}
}
}
.item-content{
margin-bottom: 4px;
.title{
width: 100%;
height: 108px;
line-height: 108px;
background: #FFF;
padding: 0 32px;
box-sizing: border-box;
display: flex;
justify-content: space-between;
h2{
font-size: 32px;
font-family: PingFangSC-Semibold, PingFang SC;
font-weight: 600;
color: #333;
}
img{
width: 34px;
height: 34px;
margin-top: 38px;
transition: all .3s ease-in-out;
}
.img-active {
transform: rotate(180deg);
}
}
.user-list{
background-color: #fff;
.user-item{
padding: 24px 32px;
display: flex;
.user-img{
width: 112px;
img{
width: 80px;
height: 80px;
}
}
.user-info{
.name{
font-size: 32px;
font-family: PingFangSC-Medium, PingFang SC;
font-weight: 500;
color: #333;
line-height: 44px;
margin-bottom: 8px;
}
.phone{
font-size: 26px;
font-family: PingFangSC-Regular, PingFang SC;
color: #999;
line-height: 36px;
display: flex;
justify-content: space-between;
}
}
}
}
}
.footer{
width: 100%;
position: fixed;
bottom: 0;
left: 0;
}
.btn{
width: 100%;
height: 112px;
line-height: 112px;
text-align: center;
background: #1365DD;
font-size: 32px;
font-family: PingFangSC-Medium, PingFang SC;
font-weight: 500;
color: #FFF;
}
}
</style>

Binary file not shown.

After

Width:  |  Height:  |  Size: 282 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 766 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

View File

@@ -54,7 +54,7 @@ export default {
return this.fullArea?.slice(-1)?.[0] || {}
},
icon() {
return this.$cdn + '/img/location.svg'
return this.$cdn + 'location.svg'
},
},
data() {