Merge branch 'dev' of http://git.sinoecare.com/sinoecare/digital_village_v2/dvcp_v2_wechat_app into dev
@@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<section class="AppOnlineAnswer">
|
||||
<div class="page" v-if="list.length">
|
||||
<img src="./static/img/answer-bg.png" alt="" class="bg-img">
|
||||
<img src="https://cdn.cunwuyun.cn/tengxun/miniapp/answer-bg.png" alt="" class="bg-img">
|
||||
<div class="subject-content" v-if="!showAnwser">
|
||||
<div class="btn" v-if="showTopBtn" @click="confirm()">{{ topBtnText }}</div>
|
||||
<div class="bg-fff pad-b48">
|
||||
@@ -18,8 +18,8 @@
|
||||
<div v-if="list[index].type == 1">
|
||||
<div class="item" v-for="(item, i) in list[index].items" :key="i" @click="itemClick(i)"
|
||||
:class="{ 'item-click': clickIndex === i, 'item-success': showAnalysis && item.checked == 1, 'item-error': showAnalysis && clickIndex == i && item.checked == 0}">
|
||||
<img src="./static/img/success-icon.png" alt="" v-if="showAnalysis && item.checked == 1">
|
||||
<img src="./static/img/error-icon.png" alt=""
|
||||
<img src="https://cdn.cunwuyun.cn/tengxun/miniapp/success-icon.png" alt="" v-if="showAnalysis && item.checked == 1">
|
||||
<img src="https://cdn.cunwuyun.cn/tengxun/miniapp/error-icon.png" alt=""
|
||||
v-if="showAnalysis && clickIndex == i && item.checked == 0">
|
||||
{{ item.sort }} {{ item.content }}
|
||||
</div>
|
||||
@@ -28,16 +28,16 @@
|
||||
<div v-if="list[index].type == 2">
|
||||
<div class="item" v-for="(item, i) in list[index].items" :key="i" @click="itemClick(i)"
|
||||
:class="{ 'item-click': item.isCheked, 'item-success': showAnalysis && item.checked == 1, 'item-error': showAnalysis && item.isCheked && item.checked == 0}">
|
||||
<img src="./static/img/success-icon.png" alt="" v-if="showAnalysis && item.checked == 1">
|
||||
<img src="./static/img/error-icon.png" alt=""
|
||||
<img src="https://cdn.cunwuyun.cn/tengxun/miniapp/success-icon.png" alt="" v-if="showAnalysis && item.checked == 1">
|
||||
<img src="https://cdn.cunwuyun.cn/tengxun/miniapp/error-icon.png" alt=""
|
||||
v-if="showAnalysis && clickIndex == i && item.checked == 0">
|
||||
{{ item.sort }} {{ item.content }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- <div class="item item-click">A. 吴起镇</div>
|
||||
<div class="item item-success"> <img src="./static/img/success-icon.png" alt="">吴起镇</div>
|
||||
<div class="item item-error"> <img src="./static/img/error-icon.png" alt="">吴起镇</div>
|
||||
<div class="item item-success"> <img src="https://cdn.cunwuyun.cn/tengxun/miniapp/success-icon.png" alt="">吴起镇</div>
|
||||
<div class="item item-error"> <img src="https://cdn.cunwuyun.cn/tengxun/miniapp/error-icon.png" alt="">吴起镇</div>
|
||||
<div class="item">A. 吴起镇</div> -->
|
||||
</div>
|
||||
<div class="bg-fff mar-t32" v-if="showAnalysis">
|
||||
@@ -54,7 +54,7 @@
|
||||
</div>
|
||||
<div class="subject-content" v-else>
|
||||
<div class="bg-fff pad-b48">
|
||||
<img src="./static/img/answer-head.png" alt="" class="head-img">
|
||||
<img src="https://cdn.cunwuyun.cn/tengxun/miniapp/answer-head.png" alt="" class="head-img">
|
||||
<div class="head-content">
|
||||
<p>本次答对题目数</p>
|
||||
<div>{{ resultInfo.right }}</div>
|
||||
|
||||
|
Before Width: | Height: | Size: 92 KiB |
|
Before Width: | Height: | Size: 136 KiB |
|
Before Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 1.1 KiB |
@@ -528,6 +528,8 @@ export default {
|
||||
this.form.description = res.data.description || ''
|
||||
this.form.arriveAreaId = res.data.arriveAreaId
|
||||
this.form.arriveAreaName = res.data.arriveAreaName
|
||||
this.form.startAddress = res.data.startAddress || ''
|
||||
this.form.arriveAddress = res.data.arriveAddress || ''
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
<div class="approve">
|
||||
<img class="icon" src="./authentication-img.png" alt="">
|
||||
<div class="flex">
|
||||
<span class="cert" v-if="isApprove" v-text="approveLabel" @click="$linkTo('/mods/AppAuth/AppAuth')"/>
|
||||
<span class="cert" v-if="isApprove" v-text="approveLabel" @click="$linkTo('/mods/AppPartyAuth/AppPartyAuth')"/>
|
||||
<u-icon v-else name="arrow-right" color="#E7F2FF" size="28"
|
||||
:label="approveLabel" label-color="#E7F2FF" label-pos="left" @click="approve"/>
|
||||
</div>
|
||||
@@ -53,7 +53,7 @@
|
||||
import {mapActions, mapState} from "vuex";
|
||||
|
||||
export default {
|
||||
name: "AppMine",
|
||||
name: "AppPcMine",
|
||||
appName: "我的",
|
||||
customNavigation: true,
|
||||
computed: {
|
||||
|
Before Width: | Height: | Size: 22 KiB After Width: | Height: | Size: 22 KiB |
|
Before Width: | Height: | Size: 993 B After Width: | Height: | Size: 993 B |
|
Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 1.0 KiB |
@@ -3,9 +3,8 @@
|
||||
<div class="photo-list__wrapper">
|
||||
|
||||
<div class="photo-item" v-for="(item, index) in list" :key="index">
|
||||
<u-swipe-action @content-click="$linkTo('./PhotoDetail?id=' + item.id)" :index="item.id"
|
||||
:options="itemOptions" @click="handleDelete">
|
||||
<div class="photo-item__top">
|
||||
<u-swipe-action :index="item.id" :options="itemOptions" @click="handleDelete(item.id)">
|
||||
<div class="photo-item__top" @click="$linkTo('./PhotoDetail?id=' + item.id)">
|
||||
<h2>{{ item.content }}</h2>
|
||||
<div class="photo-item__top--info">
|
||||
<div class="photo-item__top--info-item">
|
||||
@@ -13,27 +12,27 @@
|
||||
<span>{{ item.groupName }}</span>
|
||||
</div>
|
||||
<div class="photo-item__top--info-item">
|
||||
<label>所属网格</label>
|
||||
<span>{{ item.girdName }}</span>
|
||||
<label>所属地区</label>
|
||||
<span>{{ item.areaName }}</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="photo-item__bottom flex">
|
||||
<div class="flex fill">
|
||||
<i :class="'status-' + item.eventStatus"></i>
|
||||
<span :class="'status-' + item.eventStatus">{{ item.statusName }}</span>
|
||||
<span :class="'status-' + item.eventStatus">{{ $dict.getLabel('clapEventStatus',item.eventStatus) }}</span>
|
||||
</div>
|
||||
<div v-if="item.eventStatus>1">
|
||||
<div class="itemBtn" @click="toEvaluate" v-show="!item.evaluation">去评价</div>
|
||||
<div slot="finish" class="finish" v-show="item.evaluation">已评价</div>
|
||||
</div>
|
||||
<AiEvaluation :bid="item.id" v-if="item.eventStatus>1">
|
||||
<div class="itemBtn">去评价</div>
|
||||
<div slot="finish" class="finish">已评价</div>
|
||||
</AiEvaluation>
|
||||
</div>
|
||||
</u-swipe-action>
|
||||
</div>
|
||||
<AiEmpty v-if="!list.length"/>
|
||||
</div>
|
||||
<div class="btn-wrapper">
|
||||
<div class="btn" @click="toReport" hover-class="text-hover">我要上报</div>
|
||||
<div class="btn" @click="toReport" hover-class="text-hover">新增微心愿</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
@@ -66,11 +65,12 @@ export default {
|
||||
this.$dict.load(['clapEventStatus']).then(() => {
|
||||
this.getList()
|
||||
})
|
||||
|
||||
uni.setNavigationBarTitle({
|
||||
title: '微心愿'
|
||||
})
|
||||
uni.$on('update', () => {
|
||||
this.current = 1
|
||||
this.isMore = false
|
||||
|
||||
this.getList()
|
||||
})
|
||||
},
|
||||
@@ -80,43 +80,23 @@ export default {
|
||||
this.$linkTo('./PhotoForm')
|
||||
},
|
||||
|
||||
toEvaluate() {
|
||||
this.$linkTo('./evaluate')
|
||||
},
|
||||
|
||||
getList() {
|
||||
if (this.isMore) return
|
||||
|
||||
this.$instance.post(`/app/appclapeventinfo/listByWxApplet`, null, {
|
||||
this.$instance.post(`/app/appclapeventinfopingchang/listByWxApplet`, null, {
|
||||
params: {
|
||||
current: this.current,
|
||||
size: 15
|
||||
size: 15,
|
||||
}
|
||||
}).then(res => {
|
||||
if (res.code == 0) {
|
||||
this.total = res.data.total
|
||||
if (this.current > 1) {
|
||||
this.list = [...this.list, ...res.data.records].map(v => {
|
||||
return {
|
||||
...v,
|
||||
statusName: this.$dict.getLabel('clapEventStatus', v.eventStatus)
|
||||
}
|
||||
})
|
||||
} else {
|
||||
this.list = res.data.records.map(v => {
|
||||
return {
|
||||
...v,
|
||||
statusName: this.$dict.getLabel('clapEventStatus', v.eventStatus)
|
||||
}
|
||||
})
|
||||
}
|
||||
this.list = this.current == 1? res.data.records : [...this.list, ...res.data.records]
|
||||
uni.hideLoading()
|
||||
this.pageShow = true
|
||||
if (res.data.records.length < 15) {
|
||||
this.isMore = true
|
||||
|
||||
return false
|
||||
}
|
||||
|
||||
this.current = this.current + 1
|
||||
} else {
|
||||
uni.hideLoading()
|
||||
}
|
||||
}).catch(() => {
|
||||
uni.hideLoading()
|
||||
@@ -124,7 +104,7 @@ export default {
|
||||
},
|
||||
handleDelete(ids) {
|
||||
this.$dialog.confirm({content: "是否要进行删除?"}).then(() => {
|
||||
this.$instance.post("/app/appclapeventinfo/delete", null, {
|
||||
this.$instance.post("/app/appclapeventinfopingchang/delete", null, {
|
||||
params: {ids}
|
||||
}).then(res => {
|
||||
if (res?.code == 0) {
|
||||
@@ -139,6 +119,7 @@ export default {
|
||||
},
|
||||
|
||||
onReachBottom() {
|
||||
this.current++
|
||||
this.getList()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,26 +2,30 @@
|
||||
<div class="photo-detail" v-if="pageShow">
|
||||
<AiGroup noBorder>
|
||||
<h2>{{ info.content }}</h2>
|
||||
<div class="status-name" :class="detailStatus.cls" v-text="detailStatus.label"/>
|
||||
<div class="status-name" :class="detailStatus.cls">{{ $dict.getLabel('clapEventStatus',info.eventStatus) }}</div>
|
||||
</AiGroup>
|
||||
<AiGroup description noBorder labelColor="#999">
|
||||
<AiItem label="姓名" :value="info.name"/>
|
||||
<AiItem label="联系方式" :value="info.phone"/>
|
||||
|
||||
<AiItem label="事件类型" :value="info.groupName"/>
|
||||
<AiItem label="所属网格" :value="info.girdName"/>
|
||||
<AiItem label="上报时间" :value="info.createTime"/>
|
||||
<AiItem label="照片" top-label>
|
||||
<image v-for="(item, index) in info.files" @click="preview(item.url)" :key="index" :src="item.url"/>
|
||||
<AiItem label="上报位置" :value="info.address"/>
|
||||
|
||||
<AiItem label="所属地区" :value="info.areaName"/>
|
||||
<AiItem label="现场照片" top-label>
|
||||
<image v-for="(item, index) in info.files" @click="previewImg(item.url,info.files)" :key="index" :src="item.url"/>
|
||||
<span v-if="!info.files.length">暂无照片</span>
|
||||
</AiItem>
|
||||
</AiGroup>
|
||||
<u-gap height="24"/>
|
||||
<AiGroup title="处理详情" v-if="info.eventStatus > 1" description noBorder labelColor="#999">
|
||||
<!-- <AiGroup title="处理详情" v-if="info.eventStatus > 1" description noBorder labelColor="#999">
|
||||
<AiItem label="处理结果" top-label :value="result.doExplain"/>
|
||||
<AiItem label="照片" top-label>
|
||||
<image v-for="(item, index) in result.files" @click="preview(item.url)" :key="index" :src="item.url"/>
|
||||
<AiUploader v-model="result.files" disabled></AiUploader>
|
||||
<span v-if="!result.files.length">暂无照片</span>
|
||||
</AiItem>
|
||||
</AiGroup>
|
||||
<u-gap height="24"/>
|
||||
<u-gap height="24"/> -->
|
||||
<u-tabs :list="[{name:'办理进度'},{name:'我的评价'}]" :current="currentTab" @change="v=>currentTab=v"/>
|
||||
<u-gap height="24"/>
|
||||
<AiGroup noBorder v-if="currentTab=='0'">
|
||||
@@ -31,19 +35,38 @@
|
||||
<div class="color-999 mar-r32 stepTime" v-text="item.doTime"/>
|
||||
</div>
|
||||
<div v-if="item.doExplain" class="stepContent mar-t8" v-text="item.doExplain"/>
|
||||
<image class="content_img" :src="e.accessUrl" v-for="(e, indexs) in item.files" :key="indexs" @click="previewImg(e.accessUrl,item.files)"/>
|
||||
<u-gap height="48"/>
|
||||
</AiStep>
|
||||
<div class="bottomBtn" v-show="info.eventStatus > 1 && !info.evaluation" @click="$linkTo(`./evaluate?id=${info.id}`)">去评价</div>
|
||||
</AiGroup>
|
||||
<AiEvaluation v-if="currentTab=='1'" :bid="info.id" type="show"/>
|
||||
<AiEvaluation v-if="info.eventStatus > 1" v-model="evaluation" class="fixed-bottom bg-fff" :bid="info.id">
|
||||
<div class="bottomBtn">去评价</div>
|
||||
</AiEvaluation>
|
||||
<div v-if="currentTab=='1'">
|
||||
<div v-if="info.evaluation" class="evaluation">
|
||||
<div class="rate">
|
||||
<span class="title">心愿评价:</span>
|
||||
<span><u-rate active-color="#F8B425" v-model="info.evaluation.evaluationScore"
|
||||
inactive-color="#b2b2b2" gutter="20" disabled></u-rate></span>
|
||||
</div>
|
||||
<div class="detail">
|
||||
<div class="titles">评价详情:</div>
|
||||
<div>{{ info.evaluation.evaluationDetail }}</div>
|
||||
</div>
|
||||
<div class="photo">
|
||||
<div class="titles">照片</div>
|
||||
<div>
|
||||
<!-- <AiUploader v-model="info.evaluation.files" disabled></AiUploader> -->
|
||||
<image class="content_img" :src="v.accessUrl" v-for="(v, ind) in info.evaluation.files" :key="ind" @click="previewImg(v.accessUrl,info.evaluation.files)"/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<AiEmpty :description="`暂无数据`" class="emptyWrap" v-else/>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
appName: "随手拍详情",
|
||||
appName: "微心愿详情",
|
||||
data() {
|
||||
return {
|
||||
pageShow: false,
|
||||
@@ -58,7 +81,7 @@ export default {
|
||||
const status = !v.evaluation.id ? v.info.eventStatus : 'evaluation'
|
||||
return {
|
||||
cls: 'status-' + status,
|
||||
label: !v.evaluation.id ? v.$dict.getLabel('clapEventStatus', v.info.eventStatus) : "已评价"
|
||||
// label: !v.evaluation.id ? v.$dict.getLabel('clapEventStatus', v.info.eventStatus) : "已评价"
|
||||
}
|
||||
},
|
||||
process() {
|
||||
@@ -81,7 +104,7 @@ export default {
|
||||
},
|
||||
methods: {
|
||||
getInfo(id) {
|
||||
this.$instance.post(`/app/appclapeventinfo/queryDetailById?id=${id}`).then(res => {
|
||||
this.$instance.post(`/app/appclapeventinfopingchang/queryDetailById?id=${id}`).then(res => {
|
||||
if (res.code === 0) {
|
||||
this.info = res.data
|
||||
if (res.data.eventStatus > 1) {
|
||||
@@ -93,27 +116,25 @@ export default {
|
||||
}
|
||||
}).finally(() => this.$hideLoading())
|
||||
},
|
||||
|
||||
previewResult(url) {
|
||||
previewImg(url,imgList) {
|
||||
let imgs = imgList.map(v => v.url)
|
||||
uni.previewImage({
|
||||
urls: this.result.files.map(v => v.url),
|
||||
urls: imgs,
|
||||
current: url
|
||||
})
|
||||
},
|
||||
|
||||
preview(url) {
|
||||
uni.previewImage({
|
||||
urls: this.info.files.map(v => v.url),
|
||||
current: url
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
::v-deep .itemContent image {
|
||||
width: 220px;
|
||||
height: 220px;
|
||||
margin-right: 8px;
|
||||
}
|
||||
.photo-detail {
|
||||
padding: 32px 0 160px;
|
||||
padding: 32px 0 50px;
|
||||
margin-bottom: 60px;
|
||||
background: #fff;
|
||||
|
||||
@@ -164,4 +185,43 @@ export default {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.evaluation {
|
||||
padding: 0 32px;
|
||||
box-sizing: border-box;
|
||||
|
||||
.rate {
|
||||
display: flex;
|
||||
padding-bottom: 24px;
|
||||
box-sizing: border-box;
|
||||
justify-content: space-between;
|
||||
border-bottom: 1px solid #DDDDDD;
|
||||
}
|
||||
.detail,
|
||||
.photo {
|
||||
padding: 24px 0;
|
||||
}
|
||||
.detail {
|
||||
border-bottom: 1px solid #DDDDDD;
|
||||
}
|
||||
}
|
||||
|
||||
.title,
|
||||
.titles {
|
||||
color: #999999;
|
||||
}
|
||||
|
||||
.titles {
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
|
||||
.content_img {
|
||||
width: 200px;
|
||||
height: 200px;
|
||||
margin-right: 8px;
|
||||
}
|
||||
|
||||
.bottomBtn {
|
||||
margin: 16px 32px 16px 0;
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<div class="album">
|
||||
<div class="PhotoForm">
|
||||
<div class="form-item__group">
|
||||
<div class="form-item">
|
||||
<div class="form-item__wrapper">
|
||||
@@ -46,10 +46,13 @@
|
||||
<h2>所属地区</h2>
|
||||
</div>
|
||||
<div class="form-item__right">
|
||||
<!-- <AiPagePicker type="gird" v-model="form.girdId" :params="{formType:2}" @select="handleSelectGrid" nodeKey="id">
|
||||
<AiMore v-model="form.girdName"/>
|
||||
</AiPagePicker> -->
|
||||
|
||||
<AiAreaPicker class="ai-area" v-model="form.areaId" :fullName.sync="form.areaName" @input="areaSelect">
|
||||
<div class="ai-area__wrapper">
|
||||
<span class="label" v-if="form.areaName">{{ form.areaName }}</span>
|
||||
<span v-else>请选择</span>
|
||||
<u-icon name="arrow-right" style="display: inline-block;" color="#ddd"/>
|
||||
</div>
|
||||
</AiAreaPicker>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -100,7 +103,6 @@
|
||||
import {mapState} from 'vuex'
|
||||
|
||||
export default {
|
||||
appName: "上报随手拍",
|
||||
data() {
|
||||
return {
|
||||
form: {
|
||||
@@ -114,10 +116,12 @@ export default {
|
||||
groupName: '',
|
||||
girdName: '',
|
||||
girdId: '',
|
||||
files: []
|
||||
files: [],
|
||||
areaId: '',
|
||||
areaName: '',
|
||||
},
|
||||
dictList: [],
|
||||
flag: false
|
||||
flag: false,
|
||||
}
|
||||
},
|
||||
|
||||
@@ -129,6 +133,9 @@ export default {
|
||||
this.getDict()
|
||||
this.form.phone = this.user.phone
|
||||
this.form.name = this.user.realName || ''
|
||||
uni.setNavigationBarTitle({
|
||||
title: '微心愿'
|
||||
})
|
||||
},
|
||||
|
||||
methods: {
|
||||
@@ -166,7 +173,7 @@ export default {
|
||||
},
|
||||
getDict() {
|
||||
this.$instance.post(`/app/appclapeventgroup/list?current=1&size=100000`).then(res => {
|
||||
if (res.code == 0) {
|
||||
if (res?.code == 0) {
|
||||
this.dictList = res.data.records.map(v => {
|
||||
return {
|
||||
value: v.id,
|
||||
@@ -176,6 +183,9 @@ export default {
|
||||
}
|
||||
})
|
||||
},
|
||||
areaSelect(v) {
|
||||
console.log(v);
|
||||
},
|
||||
submit() {
|
||||
if (!this.form.groupId) {
|
||||
return this.$toast('请选择事件类型')
|
||||
@@ -195,18 +205,20 @@ export default {
|
||||
if (!this.form.phone) {
|
||||
return this.$toast('请输入上报人联系方式')
|
||||
}
|
||||
if (!this.form.girdId) {
|
||||
return this.$toast('请选择所属网格')
|
||||
|
||||
if (this.form.areaId.substr(this.form.areaId.length - 3, 3) === '000') {
|
||||
return this.$toast('所属地区必须选到村或社区')
|
||||
}
|
||||
|
||||
if (this.flag) return
|
||||
this.flag = true
|
||||
|
||||
this.$loading()
|
||||
this.$instance.post(`/app/appclapeventinfo/addOrUpdate`, {
|
||||
this.$instance.post(`/app/appclapeventinfopingchang/addOrUpdate`, {
|
||||
...this.form,
|
||||
openid: this.user.openid,
|
||||
portrait: this.user.avatarUrl,
|
||||
files: this.form.files,
|
||||
// portrait: this.user.avatarUrl,
|
||||
// files: this.form.files,
|
||||
groupName: this.dictList.filter(v => v.value === this.form.groupId)[0].label
|
||||
}).then(res => {
|
||||
this.$hideLoading()
|
||||
@@ -229,8 +241,8 @@ export default {
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
.album {
|
||||
<style lang="scss" scoped>
|
||||
.PhotoForm {
|
||||
padding-bottom: 140px;
|
||||
|
||||
.form-item__group {
|
||||
|
||||
101
src/project/pingchang/AppPhotoReport/evaluate.vue
Normal file
@@ -0,0 +1,101 @@
|
||||
<template>
|
||||
<div class="evaluate">
|
||||
<div class="card">
|
||||
<div class="title"><span class="red">*</span><span>心愿评价</span></div>
|
||||
<u-rate active-color="#F8B425" v-model="form.evaluationScore" inactive-color="#b2b2b2" size="70" gutter="70"></u-rate>
|
||||
</div>
|
||||
|
||||
<div class="card">
|
||||
<div class="title"><span class="red">*</span><span>评价详情</span></div>
|
||||
<div class="textarea">
|
||||
<u-input v-model="form.evaluationDetail" type="textarea" height="200" :clearable="false" placeholder="请简要描述…"
|
||||
placeholder-style="font-size: 16px" maxlength="500" />
|
||||
<div class="tips">{{ form.evaluationDetail.length }}/500</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="card">
|
||||
<div class="title"><span style="width: 8px;"></span><span>图片上传</span><span class="nine">(最多9张)</span></div>
|
||||
<AiUploader v-model="form.files" :limit="9"></AiUploader>
|
||||
</div>
|
||||
|
||||
<div class="btn-wrapper">
|
||||
<div class="btn" hover-class="text-hover" @click="submit">提交</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: "evaluate",
|
||||
appName: "心愿评价",
|
||||
data() {
|
||||
return {
|
||||
images: [],
|
||||
form: {
|
||||
eventId: '',
|
||||
evaluationScore: '',
|
||||
evaluationDetail: '',
|
||||
files: [],
|
||||
}
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
submit() {
|
||||
if(!this.form.evaluationScore) {
|
||||
return this.$toast('请选择心愿评价')
|
||||
}
|
||||
if(!this.form.evaluationDetail) {
|
||||
return this.$toast('请输入评价详情')
|
||||
}
|
||||
this.$instance.post(`/app/appclapeventinfopingchang/addEvaluation`,{
|
||||
...this.form
|
||||
}).then(res => {
|
||||
if(res?.code == 0) {
|
||||
this.$u.toast("评价成功")
|
||||
uni.redirectTo({url: './AppPhotoReport'})
|
||||
}
|
||||
})
|
||||
}
|
||||
},
|
||||
onLoad(o) {
|
||||
this.form.eventId = o.id
|
||||
uni.setNavigationBarTitle({title: "心愿评价"})
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.evaluate {
|
||||
padding-bottom: 120px;
|
||||
box-sizing: border-box;
|
||||
.card {
|
||||
padding: 32px;
|
||||
box-sizing: border-box;
|
||||
background: #FFF;
|
||||
margin-bottom: 24px;
|
||||
}
|
||||
|
||||
.title {
|
||||
font-size: 34px;
|
||||
// color: #666666;
|
||||
font-weight: 500;
|
||||
margin-bottom: 24px;
|
||||
.red {
|
||||
color: #FF4466;
|
||||
}
|
||||
}
|
||||
.textarea {
|
||||
padding: 0 15px;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
.tips {
|
||||
text-align: right;
|
||||
color: #666666;
|
||||
}
|
||||
.nine {
|
||||
font-size: 30px;
|
||||
color: #666666;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@@ -435,6 +435,9 @@ export default {
|
||||
this.startAreaName = res.data.records?.[0]?.startAreaName
|
||||
this.form.arriveAreaId = res.data.records?.[0]?.arriveAreaId
|
||||
this.form.arriveAreaName = res.data.records?.[0]?.arriveAreaName
|
||||
this.form.startAddress = res.data.records?.[0]?.startAddress || ''
|
||||
this.form.arriveAddress = res.data.records?.[0]?.arriveAddress || ''
|
||||
this.form.description = res.data.records?.[0]?.description || ''
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||