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

This commit is contained in:
aixianling
2022-02-11 17:11:34 +08:00
21 changed files with 578 additions and 347 deletions

View File

@@ -171,12 +171,17 @@ uni-page-body {
font-family: PingFang-SC-Heavy, PingFang-SC;
font-weight: 800;
color: #333333;
display: inline-block;
width: 140px;
vertical-align: top;
}
.boxesRight {
margin-left: 40px;
font-size: 28px;
font-family: PingFangSC-Regular, PingFang SC;
color: #666666;
display: inline-block;
width: calc(100% - 200px);
}
}
}

View File

@@ -550,12 +550,13 @@ export default {
this.flag = false;
if (res.code == 0) {
uni.$emit("update");
this.$u.toast("提交成功");
setTimeout(() => {
uni.navigateBack();
uni.navigateTo({url: './Success?status=1'})
}, 400);
}
});
}).catch(() => {
uni.navigateTo({url: './Success?status=0'})
})
},
},
};

View File

@@ -0,0 +1,68 @@
<template>
<div class="success">
<img src="./components/img/success.png" alt="" v-if="status">
<img src="./components/img/fail.png" alt="" v-else>
<p>{{status ? '上报成功!' : '上报失败!'}}</p>
<div class="footer">{{status ? '确定' : '我知道了'}}</div>
</div>
</template>
<script>
import { mapState } from 'vuex'
export default {
data() {
return {
status: 1
}
},
onShow() {
document.title = '返乡登记'
},
onLoad(option) {
this.status = option.status
},
methods: {
back() {
uni.navigateBack({delta: 2})
}
},
}
</script>
<style lang="scss" scoped>
uni-page-body{
height: 100%;
background-color: #fff;
}
.success {
text-align: center;
img{
width: 192px;
height: 192px;
margin: 96px 0 16px 0;
}
p{
line-height: 50px;
color: #333;
font-size: 36px;
font-weight: 500;
text-align: center;
margin-bottom: 72px;
}
.footer{
width: calc(100% - 96px);
height: 88px;
line-height: 88px;
background: #1365DD;
box-shadow: inset 0px 1px 0px 0px #EEEEEE;
font-size: 32px;
font-family: PingFangSC-Medium, PingFang SC;
font-weight: 500;
color: #FFF;
text-align: center;
border-radius: 8px;
margin-left: 48px;
}
}
</style>

View File

@@ -281,7 +281,7 @@ export default {
color: #f46;
}
.color-2{
color: #1365DD;
color: #f46;
}
}
.img-list{

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

View File

@@ -3,7 +3,7 @@
<search-map v-if="show && isAdmin"/>
<div v-if="!isAdmin" class="empty">
<img src="https://cdn.cunwuyun.cn/dvcp/h5/no-data.png" alt="">
<p>没有网格员/网格长权限<br/>无法查看楼栋信息哦~</p>
<p>没有网格员权限<br/>无法查看楼栋信息哦~</p>
</div>
</div>
</template>
@@ -35,7 +35,7 @@ export default {
this.isAdmin = false
this.$http.post('/app/appgirdmemberinfo/checkLogOnUser').then((res) => {
if (res.code == 0) {
if (res.data.checkType == '2') {
if (res.data.checkType != '0') {
this.isAdmin = true
}
}

View File

@@ -47,13 +47,13 @@
</div>
<div class="info-flex">
<span class="label">所属网格</span>
<span class="value" v-if="detailInfo.gird && detailInfo.gird.girdName">{{ detailInfo.gird.girdName || '' }}</span>
<span class="value" v-if="detailInfo.build && detailInfo.build.appGirdInfo">{{ detailInfo.build.appGirdInfo.girdName || '' }}</span>
</div>
<div class="info-flex">
<span class="label">网格管理员</span>
<span class="value" v-if="detailInfo.gird && detailInfo.gird.girdMemberNames && detailInfo.gird.girdMemberNames.length">
<span v-for="(item, index) in detailInfo.gird.girdMemberNames" :key="index">
<AiOpenData v-if="item" type="userName" :openid="item" style="display:inline-block;" /><span v-if="index<detailInfo.gird.girdMemberNames.length-1">,</span>
<span class="value" v-if="detailInfo.build.appGirdInfo && detailInfo.build.appGirdInfo.girdMemberNames && detailInfo.build.appGirdInfo.girdMemberNames.length">
<span v-for="(item, index) in detailInfo.build.appGirdInfo.girdMemberNames" :key="index">
<AiOpenData v-if="item" type="userName" :openid="item" style="display:inline-block;" /><span v-if="index<detailInfo.build.appGirdInfo.girdMemberNames.length-1">,</span>
</span>
</span>
</div>
@@ -337,12 +337,15 @@ export default {
getBuildingInfo(item) {
this.$http.post(`/app/appcommunityhouseinfo/queryDetailByIdWithBuilding?buildId=${item.buildingId}&houseId=${item.id}`).then(res => {
if (res?.data) {
this.detailInfo = {...res.data}
console.log(this.detailInfo)
if(this.detailInfo.build.appGirdInfo.girdMemberNames && this.detailInfo.build.appGirdInfo.girdMemberNames) {
this.detailInfo.build.appGirdInfo.girdMemberNames = this.detailInfo.build.appGirdInfo.girdMemberNames.split(',')
}
this.show = false
this.showPop = true
this.detailInfo = {...res.data}
if(this.detailInfo.gird && this.detailInfo.gird.girdMemberNames) {
this.detailInfo.gird.girdMemberNames = this.detailInfo.gird.girdMemberNames.split(',')
}
}
})
},

View File

@@ -13,7 +13,7 @@
<!-- 事件列表 -->
<div class="title">
<div class="title-name">事件列表</div>
<div class="title-type" @click="showGird = true">{{ status? status: '全部类型' }}<u-icon name="arrow-down"></u-icon></div>
<div class="title-type" @click="showGird = true">{{ status ? status : '全部类型' }}<u-icon name="arrow-down"></u-icon></div>
</div>
<template>
@@ -23,13 +23,13 @@
<div class="titles">{{ item.content }}</div>
<div class="types">
<span>事件类型</span>
<span class="label label1">事件类型</span>
<span class="types-right">{{ item.groupName }}</span>
</div>
<div class="gards">
<span>所属网格</span>
<span class="gards-right">{{ item.girdName }}</span>
<div class="gards gird">
<div class="label">所属网格</div>
<div class="gards-right">{{ item.girdName }}</div>
</div>
</div>
@@ -45,8 +45,7 @@
<AiEmpty v-if="!datas.length"></AiEmpty>
</template>
<u-select v-model="showGird" :list="$dict.getDict('clapEventStatusAll')" label-name="dictName" value-name="dictValue"
@confirm="changeType"/>
<u-select v-model="showGird" :list="$dict.getDict('clapEventStatusAll')" label-name="dictName" value-name="dictValue" @confirm="changeType" />
<div class="pad-b120" v-if="datas.length"></div>
</div>
@@ -80,22 +79,22 @@ export default {
staticName: [
{
label: '待处理',
value: 0
value: 0,
},
{
label: '上报数',
value: 0
value: 0,
},
{
label: '已办数',
value: 0
value: 0,
},
{
label: '今日办结',
value: 0
}
value: 0,
},
],
statisticsList: []
statisticsList: [],
}
},
computed: {
@@ -109,15 +108,14 @@ export default {
this.current = 1
this.girdList()
this.getList()
uni.$on('nextList', ()=>{
this.current ++
uni.$on('nextList', () => {
this.current++
this.getList()
})
uni.$on('getListInit', ()=>{
uni.$on('getListInit', () => {
this.current = 1
this.getList()
})
},
onShow() {
document.title = '矛盾调解'
@@ -141,7 +139,8 @@ export default {
current: this.current,
searchType: this.currentTabs == 1 ? '1' : '0',
eventStatus: this.eventStatus,
girdId: this.girdId
girdId: this.girdId,
openId: this.eventStatus == 4 ? this.user.openId : '',
},
})
.then((res) => {
@@ -154,8 +153,8 @@ export default {
},
getStaticList() {
this.$http.post('/app/appclapeventinfo/clapEventStatisticByGirdMember').then((res) => {
if (res.code == 0){
Object.keys(res.data).forEach(( ) => {
if (res.code == 0) {
Object.keys(res.data).forEach(() => {
// var info = {
// label: key,
// value: res.data[key]
@@ -171,33 +170,39 @@ export default {
},
// 切换类型
changeType(e) {
// if (e[0].value != 1) {
this.status = e[0].label
this.datas = []
this.eventStatus = e[0].value
// } else {
// this.eventStatus = 4
// }
this.current = 1
this.datas = []
this.getList()
},
// 新增事件
addEvent() {
uni.navigateTo({url: './add'})
uni.navigateTo({ url: './add' })
},
girdList() {
this.$http.post(`/app/appgirdmemberinfo/queryMyGirdListWithOut01`, null, {
params: {
size: 9999,
},
})
.then((res) => {
if (res.code == 0) {
this.myGirdList = res.data
var all = {
id: '',
girdName: '全部'
this.$http
.post(`/app/appgirdmemberinfo/queryMyGirdListWithOut01`, null, {
params: {
size: 9999,
},
})
.then((res) => {
if (res.code == 0) {
this.myGirdList = res.data
var all = {
id: '',
girdName: '全部',
}
this.myGirdList.unshift(all)
}
this.myGirdList.unshift(all)
}
})
})
},
confirm(e) {
@@ -226,9 +231,9 @@ export default {
this.girdNameText = '所属网格'
this.eventStatusText = '办件状态'
this.currentTabs = index
if(index == 0) {
if (index == 0) {
this.listType = this.listTypeAll
}else {
} else {
this.listType = this.listTypeHistory
}
this.getList()
@@ -254,7 +259,7 @@ uni-page-body {
.content-list {
display: flex;
background: #FFFFFF;
background: #ffffff;
border-radius: 16px;
margin-bottom: 20px;
width: 100%;
@@ -269,7 +274,7 @@ uni-page-body {
h3 {
font-size: 64px;
color: #1E88E8;
color: #1e88e8;
}
p {
@@ -277,7 +282,7 @@ uni-page-body {
color: #999999;
}
}
}
}
}
.title {
@@ -291,7 +296,7 @@ uni-page-body {
color: #333333;
font-weight: 800;
}
.title-type {
font-size: 26px;
color: #666666;
@@ -334,6 +339,9 @@ uni-page-body {
margin-left: 32px;
color: #333333;
}
.label1 {
margin-right: 12px;
}
}
}
@@ -378,7 +386,19 @@ uni-page-body {
}
}
}
.gird {
display: flex;
.label {
width: 120px;
vertical-align: top;
}
.gards-right {
width: calc(100% - 120px);
}
}
.addbtn {
position: fixed;
left: 0;
@@ -387,9 +407,9 @@ uni-page-body {
height: 120px;
line-height: 120px;
text-align: center;
background-color: #3975C6;
background-color: #3975c6;
font-size: 32px;
color: #FFFFFF;
color: #ffffff;
}
.pad-b120 {

View File

@@ -1,10 +1,9 @@
<template>
<div class="SelectUser">
<div class="header-middle">
<!-- 去掉网格名称 -->
<!-- <div class="hint">
<div class="hint">
<span v-for="(item, index) in slectList" :key="index"><span v-if="index" style="margin:0 4px;">/</span><span style="color:#3F8DF5" @click="girdNameClick(item, index)">{{item.girdName}}</span></span>
</div> -->
</div>
<div class="showTypes" v-if="!userList.length">
<div v-if="treeList.length > 0">
@@ -37,7 +36,7 @@
</div>
<div class="rights">
<div class="applicationNames">{{ e.name }}</div>
<div class="applicationNames"><AiOpenData v-if="e.name" type="userName" :openid="e.name" style="display: block;"/></div>
<div class="idNumbers">{{ e.phone }}</div>
</div>
</div>
@@ -209,7 +208,10 @@ export default {
box-shadow: 0px 1px 0px 0px #e4e5e6;
font-size: 30px;
font-weight: 500;
word-break: break-all;
// word-break: break-all;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
.showTypes {
@@ -223,13 +225,12 @@ export default {
align-items: center;
height: 120px;
line-height: 120px;
// background: pink;
padding: 0 0 0 32px;
.imges {
display: flex;
align-items: center;
// width: 200px;
.imgselect {
width: 48px;
height: 48px;
@@ -249,16 +250,21 @@ export default {
border-radius: 8px;
}
.rightes {
width: 100%;
width: calc(100% - 160px);
display: flex;
justify-content: space-between;
align-items: center;
margin-left: 32px;
border-bottom: 1px solid #e4e5e6;
.applicationNames {
max-width: calc(100% - 80px);
font-size: 36px;
font-weight: 500;
color: #333333;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
.imgs {
width: 40px;
@@ -275,7 +281,6 @@ export default {
align-items: center;
height: 120px;
line-height: 120px;
// background: pink;
padding: 0 0 0 32px;
.imges {
@@ -296,7 +301,7 @@ export default {
}
.rights {
width: 100%;
width: 70%;
display: flex;
justify-content: space-between;
align-items: center;
@@ -307,6 +312,9 @@ export default {
font-size: 36px;
font-weight: 500;
color: #333333;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
.idNumbers {
color: #666;

View File

@@ -18,7 +18,7 @@
<div class="form-item form-item__imgs">
<div class="form-item__wrapper">
<div class="form-item__title">
<i style="opacity: 0;">*</i>
<i style="opacity: 0">*</i>
<h2>图片上传</h2>
<span>(最多9张)</span>
</div>
@@ -60,7 +60,7 @@
<i>*</i>
<h2>上报网格</h2>
</div>
<div class="form-item__right" @click="showSelect= true">
<div class="form-item__right" @click="showSelect = true">
<span v-if="form.girdName">{{ form.girdName }}</span>
<i v-else>请选择</i>
<u-icon name="arrow-right" color="#ddd" />
@@ -75,8 +75,8 @@
</div>
</div>
<div class="flow-option">
<div class="byself" :class="!form.opts? 'current': ''" @click="form.opts = 0">自己办结</div>
<div class="report" :class="form.opts? 'current': ''" @click="form.opts = 1">上报处理</div>
<div class="byself" :class="!form.opts ? 'current' : ''" @click="form.opts = 0">自己办结</div>
<div class="report" :class="form.opts ? 'current' : ''" @click="form.opts = 1">上报处理</div>
</div>
</div>
</div>
@@ -90,7 +90,7 @@
<h2>办理结果</h2>
</div>
<div class="form-item__right">
<textarea v-model="form.result" :maxlength="500" placeholder="请简要描述事件…"></textarea>
<textarea v-model="form.result" :maxlength="500" placeholder="请输入办理结果信息"></textarea>
</div>
</div>
</div>
@@ -99,7 +99,7 @@
<div class="form-item form-item__imgs">
<div class="form-item__wrapper">
<div class="form-item__title">
<i style="opacity: 0;">*</i>
<i style="opacity: 0">*</i>
<h2>图片上传</h2>
<span>(最多9张)</span>
</div>
@@ -112,305 +112,305 @@
</div>
<div class="btn" @click="submit">上报</div>
<u-select v-model="showSelect" :list="girdList" label-name="girdName" value-name="id" @confirm="confirmSelect"/>
<u-select v-model="showSelect" :list="girdList" label-name="girdName" value-name="id" @confirm="confirmSelect" />
</div>
</template>
<script>
import { mapState } from 'vuex'
import { mapState } from 'vuex'
export default {
appName: '矛盾调解',
data () {
return {
isShowType: false,
form: {
content: '',
files: [],
groupId: '',
address: '',
girdName: '',
flow: '',
girdId: '',
flag: false,
result: '',
resultFiles: [],
opts: 1,
name: ''
export default {
appName: '矛盾调解',
data() {
return {
isShowType: false,
form: {
content: '',
files: [],
groupId: '',
address: '',
girdName: '',
flow: '',
girdId: '',
flag: false,
result: '',
resultFiles: [],
opts: 1,
name: '',
lat: '',
lng: '',
},
dictList: [],
arr: [],
showSelect: false,
girdList: [],
}
},
computed: {
...mapState(['user']),
},
onLoad() {
this.getDict()
this.form.phone = this.user.phone
this.form.name = this.user.name || ''
this.getGirdList()
},
methods: {
chooseAddress() {
uni.chooseLocation({
success: (res) => {
this.form.address = res.address
this.form.lat = res.latitude
this.form.lng = res.longitude
},
dictList: [],
arr: [],
showSelect: false,
girdList: [],
})
},
confirmSelect(e) {
this.form.girdId = e[0].value
this.girdList.map((item) => {
if (item.id == this.form.girdId) {
this.form.girdName = item.girdName
}
})
},
getDict() {
this.$http.post(`/app/appclapeventgroup/list`).then((res) => {
if (res.code == 0) {
this.dictList = res.data.records.map((v) => {
return {
value: v.id,
label: v.groupName,
}
})
}
})
},
getGirdData(x) {
if (x > -1) {
this.$set(this.gridList, '1', this.arr[0].girdList[x].girdList)
}
},
computed: {
...mapState(['user'])
getGirdList() {
this.$http.post(`/app/appgirdmemberinfo/queryMyGirdListByLevel2AndUser`).then((res) => {
if (res.code == 0) {
this.arr = res.data
this.girdList = res.data
}
})
},
onLoad () {
this.getDict()
this.form.phone = this.user.phone
this.form.name = this.user.name || ''
this.getGirdList()
onColumnChange(e) {
const column = e.detail.column
const value = e.detail.value
if (column === column) {
this.getGirdData(value)
}
},
methods: {
chooseAddress () {
uni.chooseLocation({
success: (res) => {
this.form.address = res.address
}
});
},
onChange(e) {
const v = e.detail.value[1]
if (this.gridList[1][v]) {
this.form.girdName = this.gridList[1][v].girdName
this.form.girdId = this.gridList[1][v].id
} else {
return this.$u.toast('所属网格必须选第三级网格')
}
},
confirmSelect(e) {
this.form.girdId = e[0].value
this.girdList.map((item) => {
if(item.id == this.form.girdId) {
this.form.girdName = item.girdName
}
})
},
getDict () {
this.$http.post(`/app/appclapeventgroup/list`).then(res => {
if (res.code == 0) {
this.dictList = res.data.records.map(v => {
return {
value: v.id,
label: v.groupName
}
})
}
})
},
getGirdData (x) {
if (x > -1) {
this.$set(this.gridList, '1', this.arr[0].girdList[x].girdList)
submit() {
if (!this.form.content) {
return this.$u.toast('请输入事件描述')
}
if (!this.form.groupId) {
return this.$u.toast('请选择事件类型')
}
if (!this.form.address) {
return this.$u.toast('请选择发生地点')
}
if (!this.form.girdName) {
return this.$u.toast('请选择上报网格')
}
if (this.form.opts == 0) {
if (!this.form.result) {
return this.$u.toast('请输入事件办理结果')
}
},
}
getGirdList () {
this.$http.post(`/app/appgirdmemberinfo/queryMyGirdListByLevel2AndUser`).then(res => {
if (res.code == 0) {
this.arr = res.data
this.girdList = res.data
}
})
},
if (this.flag) return
this.flag = true
onColumnChange (e) {
const column = e.detail.column
const value = e.detail.value
if (column === column) {
this.getGirdData(value)
}
},
onChange (e) {
const v = e.detail.value[1]
if (this.gridList[1][v]) {
this.form.girdName = this.gridList[1][v].girdName
this.form.girdId = this.gridList[1][v].id
} else {
return this.$u.toast('所属网格必须选第三级网格')
}
},
submit () {
if (!this.form.content) {
return this.$u.toast('请输入事件描述')
}
if (!this.form.groupId) {
return this.$u.toast('请选择事件类型')
}
if (!this.form.address) {
return this.$u.toast('请选择发生地点')
}
if (!this.form.girdName) {
return this.$u.toast('请选择上报网格')
}
if (this.form.opts == 0) {
if (!this.form.result) {
return this.$u.toast('请输入事件办理结果')
}
}
if(this.flag) return
this.flag = true
this.$loading()
this.$http.post(`/app/appclapeventinfo/addOrUpdate`, {
this.$http
.post(`/app/appclapeventinfo/addOrUpdate?`, {
...this.form,
files: this.form.files,
groupName: this.dictList.filter(v => v.value === this.form.groupId)[0].label
}).then(res => {
this.$hideLoading()
groupName: this.dictList.filter((v) => v.value === this.form.groupId)[0].label,
eventStatus: this.form.opts == 0 ? '2' : '0',
})
.then((res) => {
this.$u.toast('上报成功')
this.flag = false
if (res.code == 0) {
uni.$emit('update')
setTimeout(() => {
uni.navigateTo({
url: './List'
})
uni.navigateBack()
}, 600)
}
this.$hideLoading()
})
}
}
}
},
},
}
</script>
<style lang="scss">
.album {
padding-bottom: 140px;
.album {
padding-bottom: 140px;
.form-item__group {
margin-bottom: 24px;
background: #fff;
}
.form-item__group {
margin-bottom: 24px;
background: #fff;
}
.limit {
text-align: right;
font-size: 28px;
color: #999;
}
.limit {
text-align: right;
font-size: 28px;
color: #999;
}
.form-item {
padding-left: 32px;
.form-item {
padding-left: 32px;
.form-item__wrapper {
display: flex;
align-items: center;
justify-content: space-between;
height: 128px;
padding-right: 28px;
border-bottom: 1px solid #DDDDDD;
.form-item__wrapper {
display: flex;
align-items: center;
justify-content: space-between;
height: 128px;
padding-right: 28px;
border-bottom: 1px solid #dddddd;
input {
flex: 1;
height: 100%;
text-align: right;
padding-right: 10px;
}
.form-item__right {
display: flex;
align-items: center;
font-size: 32px;
span {
max-width: 400px;
margin-right: 8px;
color: #333333;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
i {
font-style: normal;
margin-right: 8px;
color: #999999;
font-size: 30px;
}
}
input {
flex: 1;
height: 100%;
text-align: right;
padding-right: 10px;
}
&:last-child {
.form-item__wrapper {
border-bottom: none;
.form-item__right {
display: flex;
align-items: center;
font-size: 32px;
span {
max-width: 400px;
margin-right: 8px;
color: #333333;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
i {
font-style: normal;
margin-right: 8px;
color: #999999;
font-size: 30px;
}
}
}
&:last-child {
.form-item__wrapper {
border-bottom: none;
}
}
.form-item__title {
display: flex;
align-items: center;
i {
font-size: 30px;
color: #ff4466;
}
span {
font-size: 28px;
color: #999999;
}
h2 {
padding: 0 4px;
font-weight: 600;
font-size: 32px;
color: #333333;
}
}
&.form-item__imgs,
&.form-item__textarea {
.form-item__wrapper {
display: block;
height: auto;
padding-bottom: 32px;
}
textarea {
width: 100%;
height: 160px;
}
.form-item__title {
display: flex;
align-items: center;
i {
font-size: 30px;
color: #FF4466;
}
span {
font-size: 28px;
color: #999999;
}
h2 {
padding: 0 4px;
font-weight: 600;
font-size: 32px;
color: #333333;
}
padding: 32px 0;
}
&.form-item__imgs, &.form-item__textarea {
.form-item__wrapper {
display: block;
height: auto;
padding-bottom: 32px;
}
textarea {
width: 100%;
height: 160px;
}
.form-item__title {
padding: 32px 0;
}
.form-item__right {
padding-left: 18px;
}
.form-item__right {
padding-left: 18px;
}
}
.form-flow {
height: 280px;
padding-right: 40px;
}
.flow-option {
display: flex;
justify-content: space-between;
.byself,
.report {
height: 112px;
width: 45%;
background: #F5F5F5;
line-height: 112px;
text-align: center;
font-size: 30px;
color: #333333;
}
.current {
color: #1174fe;
background: #e7f1fe !important;
position: relative;
}
}
.btn {
position: fixed;
bottom: 0;
width: 100%;
height: 120px;
background: #3975C6;
line-height: 120px;
text-align: center;
color: #FFFFFF;
}
}
.form-flow {
height: 280px;
padding-right: 40px;
}
.flow-option {
display: flex;
justify-content: space-between;
.byself,
.report {
height: 112px;
width: 45%;
background: #f5f5f5;
line-height: 112px;
text-align: center;
font-size: 30px;
color: #333333;
}
.current {
color: #1174fe;
background: #e7f1fe !important;
position: relative;
}
}
.btn {
position: fixed;
bottom: 0;
width: 100%;
height: 120px;
background: #3975c6;
line-height: 120px;
text-align: center;
color: #ffffff;
}
}
</style>

View File

@@ -4,7 +4,8 @@
<div class="avatars" v-if="data.name">{{ data.name.substring(data.name.length, data.name.length - 2) }}</div>
<div class="right">
<div class="names">{{ data.name }}的上报</div>
<!-- {{ data.name }} -->
<div class="names"><AiOpenData v-if="data.name" type="userName" :openid="data.name" />的上报</div>
<div class="times">{{ data.createTime }}</div>
</div>
@@ -41,10 +42,10 @@
</div>
<div class="cards">
<span class="card-left" style="color:#999">照片</span>
<span class="card-left" style="color: #999">照片</span>
</div>
<img :src="item.url" alt="" v-for="(item, i) in data.files" :key="i" @click="previewImage(data.files, item.url)" />
<img :src="item.url" alt="" v-for="(item, i) in data.files" :key="i" @click="previewImage(data.files, item.url)" />
</div>
<div class="header-bottom">
@@ -70,7 +71,8 @@
<div class="cardss-right">
<div class="cardsss-right-left">
<div class="cardssss-right-left-top">
<span>{{ item.systemExplain }}</span>
<!-- <span>{{ item.systemExplain }}</span> -->
<AiOpenData v-if="item.systemExplain" type="userName" :openid="item.systemExplain" />
<div style="color: #2ea222; font-size: 16px; margin-top: 5px">
{{ $dict.getLabel('clapDoStatus', item.doStatus) }}
</div>
@@ -86,7 +88,7 @@
<div class="cardes-msg-top" v-if="item.doExplain">{{ item.doExplain }}</div>
<div class="imgs">
<img :src="e.url" alt="" v-for="(e, index) in item.files" :key="index" @click="previewImage(item.files, e.url)" />
<img :src="e.url" alt="" v-for="(e, index) in item.files" :key="index" @click="previewImage(item.files, e.url)" />
</div>
</div>
</div>
@@ -108,6 +110,8 @@
</template>
<script>
import { mapState } from 'vuex'
export default {
name: 'Detail',
components: {},
@@ -120,7 +124,9 @@ export default {
showPage: false,
}
},
computed: {},
computed: {
...mapState(['user']),
},
watch: {},
onLoad(o) {
this.$dict.load('realityStatus', 'clapDoStatus').then(() => {
@@ -154,8 +160,8 @@ export default {
},
previewImage(images, img) {
uni.previewImage({
urls: images.map(v => v.url),
current: img
urls: images.map((v) => v.url),
current: img,
})
},
},
@@ -314,7 +320,7 @@ uni-page-body {
}
}
.cardss-right {
width: calc(100% - 110px);
width: calc(100% - 184px);
display: flex;
justify-content: space-between;
.cardsss-right-left {

View File

@@ -0,0 +1,25 @@
<template>
<div class="myReply">1</div>
</template>
<script>
export default {
name: 'myReply',
components: {},
props: {},
data() {
return {}
},
computed: {},
watch: {},
onLoad() {},
onShow() {},
methods: {},
}
</script>
<style scoped lang="scss">
.myReply {
height: 100%;
}
</style>

View File

@@ -174,12 +174,17 @@ uni-page-body {
font-family: PingFang-SC-Heavy, PingFang-SC;
font-weight: 800;
color: #333333;
display: inline-block;
width: 140px;
vertical-align: top;
}
.boxesRight {
margin-left: 40px;
font-size: 28px;
font-family: PingFangSC-Regular, PingFang SC;
color: #666666;
display: inline-block;
width: calc(100% - 200px);
}
}
}

View File

@@ -207,11 +207,13 @@ export default {
health: this.form.health.join(',')
}).then((res) => {
if (res.code == 0) {
this.$u.toast("上报成功");
this.getCheckTodayReport()
this.getStatis()
uni.navigateTo({url: './Success?status=1'})
}
});
}).catch(() => {
uni.navigateTo({url: './Success?status=0'})
})
},
getCheckTodayReport() {
this.$http.post(`/app/appepidemichealthreport/checkTodayReport`).then((res) => {
@@ -631,7 +633,7 @@ uni-page-body {
color: #f46;
}
.color-2{
color: #1365DD;
color: #f46;
}
}
</style>

View File

@@ -113,7 +113,11 @@ export default {
},
getStatis() {
this.dayList = []
this.$http.post(`/app/appepidemichealthreport/statistic?userId=${this.userId}`).then((res) => {
this.$http.post(`/app/appepidemichealthreport/statistic`, this.userId, {
headers: {
'Content-Type': 'text/plain'
}
}).then((res) => {
if (res.code == 0) {
Object.keys(res.data).forEach((key) => {
var info = {

View File

@@ -0,0 +1,68 @@
<template>
<div class="success">
<img src="./components/img/success.png" alt="" v-if="status">
<img src="./components/img/fail.png" alt="" v-else>
<p>{{status ? '上报成功!' : '上报失败!'}}</p>
<div class="footer">{{status ? '确定' : '我知道了'}}</div>
</div>
</template>
<script>
import { mapState } from 'vuex'
export default {
data() {
return {
status: 1
}
},
onShow() {
document.title = '健康上报'
},
onLoad(option) {
this.status = option.status
},
methods: {
back() {
uni.navigateBack()
}
},
}
</script>
<style lang="scss" scoped>
uni-page-body{
height: 100%;
background-color: #fff;
}
.success {
text-align: center;
img{
width: 192px;
height: 192px;
margin: 96px 0 16px 0;
}
p{
line-height: 50px;
color: #333;
font-size: 36px;
font-weight: 500;
text-align: center;
margin-bottom: 72px;
}
.footer{
width: calc(100% - 96px);
height: 88px;
line-height: 88px;
background: #1365DD;
box-shadow: inset 0px 1px 0px 0px #EEEEEE;
font-size: 32px;
font-family: PingFangSC-Medium, PingFang SC;
font-weight: 500;
color: #FFF;
text-align: center;
border-radius: 8px;
margin-left: 48px;
}
}
</style>

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

View File

@@ -52,7 +52,7 @@
<span class="label"><span class="tips">*</span>所属区域</span>
<div class="value">
<AiAreaPicker v-model="form.areaId" @select="areaSelect" :fullName.sync="form.areaName" mode="custom" all>
<span class="label" v-if="form.areaName" >{{ form.areaName }}</span>
<span class="label" v-if="form.areaName" style="font-size: 16px">{{ form.areaName }}</span>
<span v-else :class="form.areaName === '' ? 'color-999' : ''" >请选择</span>
<u-icon name="arrow-right" color="#cccccc" size="24" style="margin-left:4px;"/>
</AiAreaPicker>
@@ -62,7 +62,7 @@
<span class="label"><span class="tips"></span>详细地址</span>
<div class="value">
<u-input type="textarea" placeholder="请输入" v-model="form.address"
placeholder-style="color:#999;font-size:16px;" :maxlength="20" auto-height/>
placeholder-style="color:#999;font-size:16px;" :maxlength="20" auto-height style="font-size: 16px"/>
</div>
</div>
@@ -95,6 +95,14 @@
</div>
</div>
<div class="item" v-if="item.type == 'money'">
<span class="label"><span class="tips"></span>{{ item.label }}</span>
<div class="value">
<u-input type="number" placeholder="请输入" v-model="form[item.formDbName]" input-align="right"
placeholder-style="color:#999;font-size:16px;" height="48" :maxlength="item.maxlength" :clearable="false" @input="changeMoney"/>
</div>
</div>
<div class="item" v-if="item.type == 'select'">
<span class="label"><span class="tips"></span>{{ item.label }}</span>
<div class="value" @click="selectClick(item.dict, item.formDbName)">
@@ -197,7 +205,7 @@ export default {
list: [ // 精神病人
{
label: '家庭年收入',
type: 'number',
type: 'money',
formDbName: 'income',
maxlength: 9
},
@@ -442,6 +450,13 @@ export default {
}
},
changeMoney() {
let moneyReg = /^([0-9]{1,5})(\.[0-9]{1,3}){0,1}$/
if (!moneyReg.test(this.form.income)) {
return this.$u.toast('输入的数字不能超过10万')
}
},
confirmGirdSelect(e) {
this.form.girdId = e[0].value
this.form.girdName = e[0].label
@@ -536,6 +551,7 @@ export default {
<style lang="scss" scoped>
.add {
padding-bottom: 112px;
font-size: 32px;
.item {
width: 100%;

View File

@@ -51,7 +51,7 @@
</div>
<div class="user-info">
<p class="name">{{e.name}}
<span class="btn-icon" v-if="userGird != 0">
<span class="btn-icon" v-if="userGird != 0 && user.wxUserId == e.createUserId">
<img src="./img/edit-icon.png" alt="" @click="toEdit(e,item.dictValue)">
<img src="./img/del-icon.png" alt="" @click="del(e,item.dictValue)">
</span>