Files
dvcp_v2_wechat_app/src/mods/AppPlease/add.vue
2022-02-14 17:25:54 +08:00

223 lines
5.6 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<div class="page">
<div class="add-form">
<div class="form-item mar-b8">
<span class="item-tips">*</span>
<span class="label">提问类型</span>
<span :class="typeName ? 'value color-333' : 'value color-999'"
@click="leaveMessageTypeShow = true">{{ typeName || '请选择' }}</span>
<img src="https://cdn.cunwuyun.cn/img/right-icon-999.png" alt="" class="right-icon">
</div>
<div class="form-item mar-b8">
<span class="item-tips">*</span>
<span class="label">所在地区</span>
<span class="value color-999">
<AiAreaPicker v-model="areaId" class="picker" :name.sync="areaName">
<div :class="areaName == '请选择' ? 'text color-999' : 'text color-333' ">{{ areaName || "请选择" }}</div>
</AiAreaPicker>
</span>
<img src="https://cdn.cunwuyun.cn/img/right-icon-999.png" alt="" class="right-icon">
</div>
<div class="form-item title-line">
<span class="item-tips">*</span>
<span class="label">提问标题</span>
<div class="item-input">
<input type="text" placeholder="请输入标题30字以内" placeholder-style="color:#999;" maxlength="30" v-model="title">
</div>
</div>
<div class="form-item mar-b8">
<span class="item-tips">*</span>
<span class="label">提问内容</span>
<div class="item-input fs-32">
<u-input type="textarea" height="140" placeholder="请输入提问内容500字以内" placeholder-style="color:#999;"
maxlength="500" v-model="content"/>
</div>
</div>
<div class="form-item">
<span class="item-tips"></span>
<span class="label">图片上传<span class="mini-label">最多9张</span></span>
<div class="upload">
<AiUploader :limit="9" v-model="files"></AiUploader>
</div>
</div>
</div>
<u-select v-model="leaveMessageTypeShow" :list="leaveMessageTypeList" @confirm="confirmMessageType"
confirm-color="#07c160"></u-select>
<div class="fixed-bottom confirm-btn" @click="confirm">提交</div>
</div>
</template>
<script>
import {mapState} from 'vuex'
export default {
name: "my",
computed: {
...mapState(['global'])
},
data() {
return {
type: '',
typeName: '',
areaId: '',
areaName: "",
areaRange: "",
title: '',
content: '',
files: [],
flag: false,
leaveMessageTypeList: [],
leaveMessageTypeShow: false
}
},
onLoad() {
this.$dict.load('leaveMessageType').then((res) => {
this.$nextTick(() => {
this.$dict.getDict('leaveMessageType').map(i => {
var item = {
label: i.dictName,
value: i.dictValue
}
this.leaveMessageTypeList.push(item)
})
})
})
},
methods: {
confirm() {
if (this.flag) return
this.$loading()
var params = {
type: this.type,
areaId: this.areaId,
title: this.title,
content: this.content,
images: JSON.stringify(this.files),
status: 0
}
if (!params.type) {
return this.$toast('请选择留言类型')
}
if (!params.areaId) {
return this.$toast('请选择所在地区')
}
if (!params.title) {
return this.$toast('请输入提问标题')
}
if (!params.content) {
return this.$toast('请输入提问内容')
}
this.flag = true
this.$instance.post(`/app/appleavemessage/addOrUpdate-wx`, params).then(res => {
if (res && res.code == 0) {
this.$hideLoading()
uni.showModal({
title: '您已成功提交留言',
confirmText: "查看记录",
confirmColor: "#197DF0",
showCancel: false,
success: (res) => {
if (res.confirm) {
this.flag = false
uni.redirectTo({
url: './questionList'
})
} else {
this.flag = false
}
}
})
} else {
this.flag = false
}
}).catch(err => {
console.log(err)
this.flag = false
})
},
confirmMessageType(e) {
this.typeName = e[0].label
this.type = e[0].value
}
}
}
</script>
<style scoped lang="scss">
@import "../../common/common.scss";
.page {
width: 100%;
background-color: #F3F6F9;
.add-form {
padding-bottom: 112px;
}
.form-item {
padding: 34px 32px 34px 12px;
line-height: 44px;
background-color: #fff;
.item-tips {
display: inline-block;
width: 12px;
font-size: 32px;
color: #FF4466;
}
.label {
display: inline-block;
min-width: 126px;
color: #333;
font-size: 32px;
margin-left: 8px;
.mini-label {
color: #999;
font-size: 28px;
}
}
.value {
display: inline-block;
width: 518px;
text-align: right;
}
.text {
display: inline-block;
width: 520px;
text-align: right;
}
.color-333 {
color: #333 !important;
}
.right-icon {
width: 32px;
height: 32px;
margin-left: 8px;
vertical-align: middle;
}
.item-input {
padding-bottom: 4px;
margin-left: 24px;
margin-top: 32px input {
line-height: 42px;
font-size: 32px;
}
}
.upload {
margin: 32px 0 024px;
}
}
.mar-b8 {
margin-bottom: 16px;
}
}
</style>