|
@@ -1,7 +1,9 @@
|
|
|
<script lang="ts" setup>
|
|
|
-import { addQuestionReportData, pageQuestionReportData } from '@/api/questionReqort';
|
|
|
+import { addQuestionReportData, pageQuestionReportData } from '@/api/questionReqort'
|
|
|
import { AddQuestionReportDataReq, QuestionListRes } from '@/api/questionReqort/types'
|
|
|
import { ref } from 'vue'
|
|
|
+import GridAddress from '@/components/address/gridAddress/index.vue'
|
|
|
+import { showNotify } from 'vant';
|
|
|
|
|
|
const active = ref(0)
|
|
|
|
|
@@ -15,8 +17,25 @@ const rules = ref({
|
|
|
})
|
|
|
|
|
|
/** 上报问题 */
|
|
|
+const addressList = ref([])
|
|
|
+const handleAddressFinish = (value) => {
|
|
|
+ formData.value.addrName = value.selectedOptions[value.tabIndex].areaName
|
|
|
+ addressList.value = value
|
|
|
+}
|
|
|
const submit = async () => {
|
|
|
- const { data } = await addQuestionReportData(formData.value)
|
|
|
+ if (!addressList.value || addressList.value.length === 0) {
|
|
|
+ showNotify('请选择问题所在地')
|
|
|
+ return
|
|
|
+ }
|
|
|
+ const { data } = await addQuestionReportData({
|
|
|
+ ...formData.value,
|
|
|
+ streetCode: addressList.value.selectedOptions[1] ? addressList.value.selectedOptions[1].areaCode : '',
|
|
|
+ streetName: addressList.value.selectedOptions[1] ? addressList.value.selectedOptions[1].areaName : '',
|
|
|
+ communityCode: addressList.value.selectedOptions[2] ? addressList.value.selectedOptions[2].areaCode : '',
|
|
|
+ communityName: addressList.value.selectedOptions[2] ? addressList.value.selectedOptions[2].areaName : '',
|
|
|
+ grid: addressList.value.selectedOptions[3] ? addressList.value.selectedOptions[3].areaCode : '',
|
|
|
+ gridName: addressList.value.selectedOptions[3] ? addressList.value.selectedOptions[3].areaName : '',
|
|
|
+ })
|
|
|
if (data) {
|
|
|
uni.showToast({
|
|
|
title: '上报成功',
|
|
@@ -58,6 +77,10 @@ const handleGoDetail = (item: QuestionListRes) => {
|
|
|
})
|
|
|
}
|
|
|
|
|
|
+const areaShow = ref(false)
|
|
|
+const hanleSelectArea = () => {
|
|
|
+ areaShow.value = true
|
|
|
+}
|
|
|
</script>
|
|
|
|
|
|
<template>
|
|
@@ -78,7 +101,8 @@ const handleGoDetail = (item: QuestionListRes) => {
|
|
|
</uni-forms-item>
|
|
|
<!-- 问题所在地 -->
|
|
|
<uni-forms-item label="问题所在地" required name="addrName">
|
|
|
- <uni-easyinput v-model="formData.addrName" placeholder="请输入问题所在地"></uni-easyinput>
|
|
|
+ <uni-easyinput v-model="formData.addrName" placeholder="请输入问题所在地" @focus="hanleSelectArea"></uni-easyinput>
|
|
|
+ <GridAddress v-model="areaShow" @finish="handleAddressFinish"></GridAddress>
|
|
|
</uni-forms-item>
|
|
|
</uni-forms>
|
|
|
<van-button class="w-full mb-3" type="primary" @click="submit">提交</van-button>
|
|
@@ -87,7 +111,7 @@ const handleGoDetail = (item: QuestionListRes) => {
|
|
|
<van-tab title="已上报问题">
|
|
|
<view class="tab-container">
|
|
|
<van-list v-model:loading="loading" :finished="finished" finished-text="没有更多了" @load="questList">
|
|
|
- <view v-for="item in list" :key="item.uuid" class="list-item-style">
|
|
|
+ <view v-for="item in list" :key="item.uuid" class="list-item-style">
|
|
|
<view class="top">
|
|
|
<view class="title">{{ item.questionTitle }}</view>
|
|
|
<van-button plain hairline size="mini" type="primary" @click="handleGoDetail(item)">查看详情</van-button>
|
|
@@ -115,8 +139,8 @@ const handleGoDetail = (item: QuestionListRes) => {
|
|
|
padding-bottom: 30px;
|
|
|
min-height: calc(100vh - var(--van-tabs-card-height));
|
|
|
box-sizing: border-box;
|
|
|
- display: flex;
|
|
|
- flex-direction: column;
|
|
|
+ display: flex;
|
|
|
+ flex-direction: column;
|
|
|
> uni-view:first-child {
|
|
|
flex: 1;
|
|
|
}
|