This commit is contained in:
花有清香月有阴
2022-01-06 17:46:23 +08:00
parent 2de7716506
commit fce99fc8ab
3 changed files with 171 additions and 173 deletions

View File

@@ -2,81 +2,115 @@
<div class="Transfer"> <div class="Transfer">
<div class="contents"> <div class="contents">
<u-form :model="forms" ref="uForm" label-width="auto" :border-bottom="false"> <u-form :model="forms" ref="uForm" label-width="auto" :border-bottom="false">
<u-form-item label="事件分类" prop="status" required :border-bottom="false" right-icon="arrow-right"> <u-form-item label="事件分类" prop="groupName" required :border-bottom="false" right-icon="arrow-right">
<u-input v-model="forms.status" placeholder="请选择事件分类" @click="show = true" /> <u-input v-model="forms.groupName" placeholder="请选择事件分类" @click="show = true" />
<u-select v-model="show" :list="$dict.getDict('realityStatus')" value-name="dictValue" label-name="dictName" @confirm="selectStatus"></u-select> <u-select v-model="show" :list="myList" value-name="id" label-name="groupName" @confirm="selectStatus"></u-select>
</u-form-item>
<u-form-item label="转交给" prop="status" required :border-bottom="false" right-icon="arrow-right" class="first-form">
<u-input v-model="forms.status" placeholder="请选择转交对象" @click="toSelectUser" disabled />
</u-form-item> </u-form-item>
<u-form-item label="办理意见" prop="content" :border-bottom="false" label-position="top" class="contents"> <!-- <u-form-item label="转交给" prop="status" required :border-bottom="false" right-icon="arrow-right" class="first-form">
<u-input v-model="forms.content" placeholder="请写下你的办理意见..." type="textarea" auto-height height="100" maxlength="500" /> <u-input v-model="forms.status" placeholder="请选择转交对象" @click="toSelectUser" disabled />
<AiTreePicker :ops="treeList" v-model="forms.status" @select="handerSelect"> </AiTreePicker>
<div :style="{ color: form.postFunction ? '' : '#c0c4cc' }" v-text="form.postFunction || '请选择岗位'" />
</u-form-item> -->
<u-form-item label="办结意见" prop="content" required :border-bottom="false" label-position="top" class="contents">
<u-input v-model="forms.content" placeholder="请写下你的办结意见..." type="textarea" auto-height height="100" maxlength="500" />
</u-form-item> </u-form-item>
<div class="line"></div> <div class="line"></div>
<u-form-item label="图片上传(最多9张)" prop="fileIds" :border-bottom="false" class="avatars" label-position="top"> <u-form-item label="图片上传(最多9张)" prop="files" :border-bottom="false" class="avatars" label-position="top">
<AiUploader :def.sync="forms.fileIds" multiple placeholder="上传图片" :limit="9"></AiUploader> <AiUploader :def.sync="forms.files" multiple placeholder="上传图片" :limit="9" action="/admin/file/add2"></AiUploader>
</u-form-item> </u-form-item>
</u-form> </u-form>
</div> </div>
<div class="btn" @click="submit">转交事件</div> <div class="btn" @click="submit">
<span v-if="this.number == 1">转交事件</span>
<span v-if="this.number == 2">拒绝受理</span>
<span v-if="this.number == 3">我来受理</span>
</div>
</div> </div>
</template> </template>
<script> <script>
export default { export default {
name: 'Transfer', name: 'Content',
components: {}, components: {},
props: {}, props: {},
data() { data() {
return { return {
forms: { forms: {
status: '', groupName: '',
groupId: '',
content: '', content: '',
fileIds: [], files: [],
}, },
flag: false, flag: false,
show: false show: false,
number: '',
treeList: [],
myList: [],
groupName: '',
groupId: '',
id: '',
} }
}, },
onLoad(o) {
console.log(o)
this.groupName = o.groupName
this.groupId = o.groupId
this.number = o.number
this.id = o.id
this.forms.groupId = this.groupId
this.forms.groupName = this.groupName
// this.getTree()
this.typeList()
},
methods: { methods: {
submit() { submit() {
if (this.flag) return if (this.flag) return
this.$refs.uForm.validate((valid) => { this.$refs.uForm.validate((valid) => {
if (valid) { if (valid) {
if (!this.forms.content) { if (this.number == 3) {
return this.$u.toast('请选择转交人') if (!this.forms.groupName) {
return this.$u.toast('请选择事件分类')
}
if (!this.forms.content) {
return this.$u.toast('请输入办结意见')
}
} }
const imgs = [] const imgs = []
if (this.forms.fileIds) { if (this.forms.files) {
this.forms.fileIds.map((e) => { this.forms.files.map((e) => {
imgs.push({ url: e.url, id: e.id }) imgs.push({ url: e.url, id: e.id })
}) })
} }
this.flag = true this.flag = true
this.$http this.$http
.post(`/app/appvisitvondolence/addOrUpdate`, { .post(`/app/appclapeventinfo/finishByGirdMember`, {
title: this.forms.title, groupName: this.forms.groupName,
groupId: this.forms.groupId,
content: this.forms.content, content: this.forms.content,
// images: JSON.stringify(imgs) || [], fileIds: imgs || [],
images: imgs || [],
people: this.forms.people,
phone: this.forms.phone,
id: this.id, id: this.id,
}) })
.then((res) => { .then((res) => {
if (res.code == 0) { if (res.code == 0) {
this.$u.toast('发布成功') this.$u.toast('发布成功')
this.flag = false this.flag = false
uni.navigateTo({ url: `./AppHandSnapshot` }) uni.$emit('nextList')
setTimeout(() => {
uni.navigateBack()
}, 600)
} }
}) })
} else { } else {
@@ -85,10 +119,44 @@ export default {
}) })
}, },
typeList() {
this.$http
.post(`/app/appclapeventgroup/list`, null, {
params: {
size: 9999,
},
})
.then((res) => {
if (res.code == 0) {
this.myList = res.data.records
this.$forceUpdate()
}
})
},
selectStatus(e) {
console.log(e)
if (this.show) {
this.forms.groupName = e[0].label
this.forms.groupId = e[0].value
} else {
}
},
getTree() {
this.$http.post('/app/wxcp/wxtag/tree').then((res) => {
if (res?.data) {
console.log(res.data)
this.treeList = res.data
}
})
},
handerSelect() {},
toSelectUser() { toSelectUser() {
console.log(123) uni.navigateTo({ url: './SelectUser' })
uni.navigateTo({url: './SelectUser'}) },
}
}, },
} }
</script> </script>

View File

@@ -6,53 +6,52 @@
<div class="right"> <div class="right">
<div class="names">{{ data.name }}的上报</div> <div class="names">{{ data.name }}的上报</div>
<div class="times">2021-05-06 13:45</div> <div class="times">{{ data.createTime }}</div>
</div> </div>
</div> </div>
<div class="header-middle"> <div class="header-middle">
<div class="titles">世纪花园南区一号楼前面因没有排水渠道多世纪花园南区一号楼前面因没有排水渠道多世纪花园南区一号楼前面因没有排水渠道</div> <div class="titles">{{ data.content }}</div>
<span class="status status0">待处理</span> <span class="status status0" :class="data.eventStatus == 0 ? 'status0' : data.eventStatus == 1 ? 'status1' : data.eventStatus == 2 ? 'status2' : 'status3'" v-if="data.eventStatus"> {{ $dict.getLabel('clapEventStatus', data.eventStatus) }}</span>
<div class="card"> <div class="card">
<span class="card-left">事件类型</span> <span class="card-left">事件类型</span>
<span class="card-right">聚众闹事</span> <span class="card-right">{{ data.groupName }}</span>
</div> </div>
<div class="card"> <div class="card">
<span class="card-left">所属网格</span> <span class="card-left">所属网格</span>
<span class="card-right">聚众闹事</span> <span class="card-right">{{ data.girdName }}</span>
</div> </div>
<div class="card"> <div class="card">
<span class="card-left">联系方式</span> <span class="card-left">联系方式</span>
<span class="card-right">聚众闹事</span>
</div>
<div class="card">
<span class="card-left">上报地址</span>
<span class="card-right"> <span class="card-right">
<span>{{ data.corpId }}</span> <span> {{ data.phone }}</span>
<u-icon name="phone-fill" color="#3D94FB"></u-icon> <u-icon name="phone-fill" color="#3D94FB" @click="callPhone(data.phone)"></u-icon>
</span> </span>
</div> </div>
<div class="card"> <div class="card">
<span class="card-left">上报地址</span> <span class="card-left">上报地址</span>
<span class="card-right">广东省中关村世纪花园北一组广东省中关村世纪花园北一组</span> <span class="card-right">
<span>{{ data.address }}</span>
</span>
</div> </div>
<div class="card"> <!-- 暂时先去掉 -->
<!-- <div class="card">
<span class="card-left">上报来源</span> <span class="card-left">上报来源</span>
<span class="card-right">三角湖居民社群 李毅 小程序填报三角湖居民社群 李毅 小程序填报三角湖居民社群 李毅 小程序填报</span> <span class="card-right">三角湖居民社群 李毅 小程序填报三角湖居民社群 李毅 小程序填报三角湖居民社群 李毅 小程序填报</span>
</div> </div> -->
<div class="card"> <div class="cards">
<span class="card-left">照片</span> <span class="card-left">照片</span>
</div> </div>
<img src="./components/yan.jpg" alt="" v-for="(item, i) in 4" :key="i" /> <img :src="item.url" alt="" v-for="(item, i) in data.files" :key="i" />
</div> </div>
<div class="header-bottom"> <div class="header-bottom">
@@ -61,100 +60,11 @@
<div class="plan"> <div class="plan">
<div class="nav"> <div class="nav">
<span>办理进度</span> <span>办理进度</span>
<span>(待受理)</span> <span> ({{ $dict.getLabel('clapEventStatus', data.eventStatus) }})</span>
</div> </div>
<div class="cards"> <div class="cards" v-for="(item, index) in data.processList" :key="index">
<div class="cardss"> <div class="cardss">
<!-- v-for="(item, index) in data.processNodes" :key="index" -->
<div class="cardss-left">
<span v-if="data.name">
李伟民
<!-- {{ data.name.split(',')[0].substring(data.name.split(',')[0].length - 2, data.name.split(',')[0].length) }} -->
</span>
<img src="./components/1.png" class="avatarIcon" alt="" />
</div>
<div class="cardss-right">
<div class="cardsss-right-left">
<div class="cardssss-right-left-top">
<span>李维民</span>
<span style="margin-left: 26px">
111
<!-- {{ item.status == 0 ? '驳回' : '通过' }} -->
</span>
</div>
<!-- <div class="cardssss-right-left-bottom" v-if="item.auditName.split(',').length > 3">
<span v-for="(items, i) in item.auditName.split(',')" :key="i" v-if="i < 3" style="margin-left: 5px">
<span> {{ items }} </span>
</span>
<span>...</span>
</div>
<div class="cardssss-right-left-bottom" v-else>{{ item.auditName }}</div> -->
</div>
<div class="cardees-right-right" v-if="">2021-12-17</div>
</div>
<div class="lines"></div>
</div>
<div class="cardes-msg-top">1111</div>
<div class="imgs">
<img src="./components/yan.jpg" alt="" v-for="(e, i) in 4" :key="i" />
</div>
</div>
<div class="cards">
<div class="cardss">
<!-- v-for="(item, index) in data.processNodes" :key="index" -->
<div class="cardss-left">
<span v-if="data.name">
李伟民
<!-- {{ data.name.split(',')[0].substring(data.name.split(',')[0].length - 2, data.name.split(',')[0].length) }} -->
</span>
<img src="./components/1.png" class="avatarIcon" alt="" />
</div>
<div class="cardss-right">
<div class="cardsss-right-left">
<div class="cardssss-right-left-top">
<span>李维民</span>
<span style="margin-left: 26px">
111
<!-- {{ item.status == 0 ? '驳回' : '通过' }} -->
</span>
</div>
<!-- <div class="cardssss-right-left-bottom" v-if="item.auditName.split(',').length > 3">
<span v-for="(items, i) in item.auditName.split(',')" :key="i" v-if="i < 3" style="margin-left: 5px">
<span> {{ items }} </span>
</span>
<span>...</span>
</div>
<div class="cardssss-right-left-bottom" v-else>{{ item.auditName }}</div> -->
</div>
<div class="cardees-right-right" v-if="">2021-12-17</div>
</div>
<div class="lines"></div>
</div>
<div class="cardes-msg-top">1111</div>
<div class="imgs">
<img src="./components/yan.jpg" alt="" v-for="(e, i) in 4" :key="i" />
</div>
</div>
<div class="cards">
<div class="cardss">
<!-- v-for="(item, index) in data.processNodes" :key="index" -->
<div class="cardss-left"> <div class="cardss-left">
<span v-if="data.name"> <span v-if="data.name">
李伟民 李伟民
@@ -199,22 +109,27 @@
</div> </div>
<div class="fixedBtn"> <div class="fixedBtn">
<div class="status00"> <div class="status00" v-if="data.eventStatus == 0">
<div class="columns border-r" @click="toContent"> <div class="columns border-r" @click="toContent(1)">
<img src="./components/img/zhuanjiao.png" alt="" /> <img src="./components/img/zhuanjiao.png" alt="" />
<span class="hint">转交事件</span> <span class="hint">转交事件</span>
</div> </div>
<div class="columns" @click="toContent"> <div class="columns" @click="toContent(2)">
<img src="./components/img/jujue.png" alt="" /> <img src="./components/img/jujue.png" alt="" />
<span class="hint">拒绝受理</span> <span class="hint">拒绝受理</span>
</div> </div>
<div class="doIt" @click="toContent">我来受理</div> <div class="doIt" @click="doItShow = true">我来受理</div>
</div> </div>
<!-- v-if="data.eventStatus == 0" -->
<!-- <div class="endDoIt">我已办结</div> --> <div class="endDoIt" v-if="data.eventStatus == 1" @click="toContent(3)">我已办结</div>
<!-- <div class="endDoIt" v-if="data.eventStatus == 3">我已办结</div> -->
</div> </div>
<u-modal v-model="doItShow" :mask-close-able="true" z-index="99" content="确定受理该事件?" :show-cancel-button="true" @confirm="doThings"></u-modal>
</div> </div>
</template> </template>
@@ -227,6 +142,7 @@ export default {
return { return {
data: {}, data: {},
id: '', id: '',
doItShow: false,
} }
}, },
computed: {}, computed: {},
@@ -236,18 +152,36 @@ export default {
this.$dict.load('realityStatus').then(() => { this.$dict.load('realityStatus').then(() => {
this.getDetail() this.getDetail()
}) })
uni.$on('nextList', () => {
this.getDetail()
})
}, },
onShow() {}, onShow() {},
methods: { methods: {
getDetail() { getDetail() {
this.$http.post(`/app/appvisitvondolence/queryDetailById?id=${this.id}`).then((res) => { this.$http.post(`/app/appclapeventinfo/queryDetailById?id=${this.id}`).then((res) => {
if (res?.data) { if (res?.data) {
this.data = res.data this.data = res.data
} }
}) })
}, },
toContent() {
uni.navigateTo({ url: `./Content` }) callPhone(phone) {
uni.makePhoneCall({ phoneNumber: phone })
},
doThings() {
this.$http.post(`/app/appclapeventinfo/acceptance?id=${this.id}`).then((res) => {
if (res.code == 0) {
this.$u.toast('受理成功!')
this.getDetail()
}
})
},
toContent(number) {
uni.navigateTo({ url: `./Content?number=${number}&groupId=${this.data.groupId}&groupName=${this.data.groupName}&id=${this.id}` })
}, },
}, },
} }
@@ -291,7 +225,7 @@ uni-page-body {
} }
.header-middle { .header-middle {
padding: 0 32px; padding: 0 32px 10px 32px;
.titles { .titles {
margin: 32px 0; margin: 32px 0;
line-height: 1.4; line-height: 1.4;
@@ -341,8 +275,12 @@ uni-page-body {
} }
} }
.card:last-child { // .card:last-child {
border-bottom: none; // border-bottom: none;
// }
.cards {
padding: 34px 0;
} }
img { img {
@@ -489,7 +427,7 @@ uni-page-body {
color: #666666; color: #666666;
} }
} }
.border-r{ .border-r {
border-right: 1px solid #ddd; border-right: 1px solid #ddd;
} }
.doIt { .doIt {

View File

@@ -8,7 +8,7 @@
<img src="./components/img/down-icon.png" alt="" /> <img src="./components/img/down-icon.png" alt="" />
</div> </div>
<u-select v-model="show" :list="myGirdList" @confirm="confirm"></u-select> <u-select v-model="show" :list="myGirdList" value-name="id" label-name="girdName" @confirm="confirm"></u-select>
<div class="tab-item" @click="showType = true"> <div class="tab-item" @click="showType = true">
<span class="color-666">办件状态</span> <span class="color-666">办件状态</span>
@@ -23,7 +23,7 @@
<AiCard v-for="(item, i) in datas" :key="i" @click.native="goDetail(item, 1)"> <AiCard v-for="(item, i) in datas" :key="i" @click.native="goDetail(item, 1)">
<template #custom> <template #custom>
<div class="card-top"> <div class="card-top">
<div class="titles">{{ item.groupName }}</div> <div class="titles">{{ item.content }}</div>
<div class="types"> <div class="types">
<span>事件类型</span> <span>事件类型</span>
@@ -52,6 +52,8 @@
</template> </template>
<script> <script>
import { mapState } from 'vuex'
export default { export default {
props: {}, props: {},
data() { data() {
@@ -65,16 +67,7 @@ export default {
name: '办件历史', name: '办件历史',
}, },
], ],
list: [
{
value: '1',
label: '江',
},
{
value: '2',
label: '湖',
},
],
currentTabs: 0, currentTabs: 0,
current: 1, current: 1,
size: 10, size: 10,
@@ -82,7 +75,7 @@ export default {
show: false, show: false,
myGirdList: [], myGirdList: [],
girdId: '', girdName: '',
showType: false, showType: false,
listType: [], listType: [],
@@ -90,6 +83,8 @@ export default {
} }
}, },
computed: { computed: {
...mapState(['user']),
loadmore() { loadmore() {
return this.pages <= this.current ? 'loading ' : 'nomore' return this.pages <= this.current ? 'loading ' : 'nomore'
}, },
@@ -101,11 +96,8 @@ export default {
}) })
this.current = 1 this.current = 1
this.girdList()
this.getList() this.getList()
uni.$on('nextList', () => {
this.current++
this.getList()
})
}, },
methods: { methods: {
getList() { getList() {
@@ -116,20 +108,19 @@ export default {
current: this.current, current: this.current,
searchType: this.currentTabs == 1 ? '1' : '0', searchType: this.currentTabs == 1 ? '1' : '0',
eventStatus: this.eventStatus, eventStatus: this.eventStatus,
girdName: this.girdName,
}, },
}) })
.then((res) => { .then((res) => {
if (res.code == 0) { if (res.code == 0) {
console.log(res.data) this.datas = this.current > 1 ? [...this.datas, ...res.data.records] : res.data.records
// this.datas = this.current > 1 ? [...this.datas, ...res.data.records] : res.data.records this.pages = res.data.pages
// this.pages = res.data.pages
} }
}) })
}, },
toGirdList() { toGirdList() {
this.show = true this.show = true
this.girdList()
}, },
girdList() { girdList() {
@@ -141,7 +132,6 @@ export default {
}) })
.then((res) => { .then((res) => {
if (res.code == 0) { if (res.code == 0) {
console.log(res.data)
this.myGirdList = res.data this.myGirdList = res.data
} }
}) })
@@ -152,7 +142,7 @@ export default {
if (e[0].value) { if (e[0].value) {
console.log(e) console.log(e)
this.girdId = e[0].value this.girdName = e[0].label
this.current = 1 this.current = 1
this.getList() this.getList()
} }
@@ -173,6 +163,8 @@ export default {
change(index) { change(index) {
this.current = 1 this.current = 1
this.datas = [] this.datas = []
this.eventStatus = ''
this.girdName = ''
this.currentTabs = index this.currentTabs = index
this.getList() this.getList()
}, },