|
@@ -7,6 +7,7 @@
|
|
|
left-arrow
|
|
|
@click-left="onClickLeft"
|
|
|
@click-right="onClickRight"
|
|
|
+ :style="{ 'background-color': selectColor }"
|
|
|
>
|
|
|
<template #right>
|
|
|
<van-icon name="plus" size="18" />
|
|
@@ -15,15 +16,25 @@
|
|
|
<div class="main">
|
|
|
<van-search
|
|
|
v-model="searchVal"
|
|
|
+ readonly
|
|
|
clearable
|
|
|
show-action
|
|
|
shape="round"
|
|
|
- placeholder="请输入搜索关键词"
|
|
|
+ placeholder="请选择地点"
|
|
|
label="地点"
|
|
|
input-align="center"
|
|
|
- @search="onSearch"
|
|
|
@cancel="onCancel"
|
|
|
- />
|
|
|
+ @click-input="showArea = true"
|
|
|
+ /><van-popup v-model:show="showArea" round position="bottom">
|
|
|
+ <van-cascader
|
|
|
+ v-model="cascaderValue"
|
|
|
+ title="请选择所在地区"
|
|
|
+ :options="options"
|
|
|
+ @close="showArea = false"
|
|
|
+ @finish="onFinish"
|
|
|
+ :field-names="fieldNames"
|
|
|
+ />
|
|
|
+ </van-popup>
|
|
|
<van-tabs
|
|
|
v-show="!searchShow"
|
|
|
v-model:active="active"
|
|
@@ -153,12 +164,15 @@
|
|
|
import { ref } from "vue";
|
|
|
import PrivatePartyPointService from "@/api/privateparty/PrivatePartyPointService";
|
|
|
import { useRouter } from "vue-router";
|
|
|
+import tools from "@/api/sys/tools";
|
|
|
export default {
|
|
|
name: "selfMeetingList",
|
|
|
setup() {
|
|
|
const onClickLeft = () => {
|
|
|
history.back();
|
|
|
};
|
|
|
+ // 导航栏颜色
|
|
|
+ const selectColor = ref(window.localStorage.getItem("MZ_COLOR"));
|
|
|
// 上报
|
|
|
const onClickRight = () => {
|
|
|
router.push("/selfMeeting");
|
|
@@ -217,11 +231,23 @@ export default {
|
|
|
index1++;
|
|
|
});
|
|
|
};
|
|
|
- // 搜索
|
|
|
- let searchShow = ref(false);
|
|
|
- let searchList = ref([]);
|
|
|
- const searchVal = ref("");
|
|
|
- const onSearch = () => {
|
|
|
+ // 地区选择
|
|
|
+ let showArea = ref(false);
|
|
|
+ const cascaderValue = ref("");
|
|
|
+ const fieldNames = {
|
|
|
+ text: "name",
|
|
|
+ value: "code",
|
|
|
+ children: "children",
|
|
|
+ };
|
|
|
+ // 选项列表,children 代表子选项,支持多级嵌套
|
|
|
+ let options = ref([]);
|
|
|
+ new tools().treeData().then((res) => {
|
|
|
+ options.value.push(res[0]);
|
|
|
+ });
|
|
|
+ // 全部选项选择完毕后,会触发 finish 事件
|
|
|
+ const onFinish = ({ selectedOptions }) => {
|
|
|
+ showArea.value = false;
|
|
|
+ searchVal.value = selectedOptions.map((option) => option.name).join("/");
|
|
|
searchShow.value = true;
|
|
|
searchList.value = [];
|
|
|
new PrivatePartyPointService()
|
|
@@ -236,6 +262,13 @@ export default {
|
|
|
loading.value = false;
|
|
|
});
|
|
|
};
|
|
|
+ // 搜索
|
|
|
+ let searchShow = ref(false);
|
|
|
+ let searchList = ref([]);
|
|
|
+ const searchVal = ref("");
|
|
|
+ // const onSearch = () => {
|
|
|
+
|
|
|
+ // };
|
|
|
const onCancel = () => {
|
|
|
searchVal.value = "";
|
|
|
searchShow.value = false;
|
|
@@ -280,6 +313,7 @@ export default {
|
|
|
return {
|
|
|
active,
|
|
|
onClickLeft,
|
|
|
+ selectColor,
|
|
|
list,
|
|
|
readList,
|
|
|
onLoad,
|
|
@@ -288,10 +322,16 @@ export default {
|
|
|
onLoad1,
|
|
|
loading1,
|
|
|
finished1,
|
|
|
+ // 地区选择
|
|
|
+ showArea,
|
|
|
+ fieldNames,
|
|
|
+ options,
|
|
|
+ onFinish,
|
|
|
+ cascaderValue,
|
|
|
searchShow,
|
|
|
searchVal,
|
|
|
searchList,
|
|
|
- onSearch,
|
|
|
+ // onSearch,
|
|
|
onCancel,
|
|
|
onClickRight,
|
|
|
updateItem,
|