行程路线
This commit is contained in:
parent
8481bc676e
commit
5071d63dcb
@ -88,3 +88,17 @@ export const activityAnsweringlist = (query?: ActivityQuery): AxiosPromise<Activ
|
||||
params: query
|
||||
});
|
||||
};
|
||||
/**
|
||||
* 查询报名人数信息列表
|
||||
* @param query
|
||||
* @returns {*}
|
||||
*/
|
||||
|
||||
export const activityUsersList = (query?: ActivityQuery): AxiosPromise<ActivityVO[]> => {
|
||||
return request({
|
||||
url: '/manage/activityUsers/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
|
||||
|
@ -41,7 +41,11 @@
|
||||
<el-table-column label="活动描述" align="center" fixed prop="activityDescription" width="180px" show-overflow-tooltip />
|
||||
<el-table-column label="活动图片" align="center" prop="" />
|
||||
<el-table-column label="活动人数" align="center" prop="activityUserCount" />
|
||||
<el-table-column label="报名人数" align="center" prop="registrationCount" />
|
||||
<el-table-column label="报名人数" align="center" prop="registrationCount">
|
||||
<template #default="scope">
|
||||
<el-button type="primary" link @click="registrationCountnum(scope.row)">{{ scope.row.registrationCount }}</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="挑选玩友" align="center" prop="isSelected">
|
||||
<template #default="scope">
|
||||
<div>{{ scope.row.isSelected == 1 ? '是' : '否' }}</div>
|
||||
@ -205,7 +209,16 @@
|
||||
</template>
|
||||
|
||||
<script setup name="Activity" lang="ts">
|
||||
import { listActivity, getActivity, delActivity, addActivity, updateActivity, activityprocess, activityAnsweringlist } from '@/api/manage/activity';
|
||||
import {
|
||||
listActivity,
|
||||
getActivity,
|
||||
delActivity,
|
||||
addActivity,
|
||||
updateActivity,
|
||||
activityprocess,
|
||||
activityAnsweringlist,
|
||||
activityUsersList
|
||||
} from '@/api/manage/activity';
|
||||
import { ActivityVO, ActivityQuery, ActivityForm } from '@/api/manage/activity/types';
|
||||
|
||||
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
|
||||
@ -219,9 +232,11 @@ const single = ref(true);
|
||||
const multiple = ref(true);
|
||||
const total = ref(0);
|
||||
const Answeringtotal = ref(0);
|
||||
const activityUserstotal = ref(0);
|
||||
|
||||
const listdatatime = ref([{ activityTime: '', planContent: '' }]);
|
||||
const Answeringlist = ref([]);
|
||||
const activityUsersListarr = ref([]);
|
||||
const queryFormRef = ref<ElFormInstance>();
|
||||
const activityFormRef = ref<ElFormInstance>();
|
||||
|
||||
@ -255,6 +270,11 @@ const queryAnswerings = {
|
||||
pageSize: 10,
|
||||
activityId: undefined
|
||||
};
|
||||
const queryUsers = {
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
activityId: undefined
|
||||
};
|
||||
const data = reactive<PageData<ActivityForm, ActivityQuery>>({
|
||||
form: { ...initFormData },
|
||||
queryParams: {
|
||||
@ -411,6 +431,14 @@ const wendalist = async (row) => {
|
||||
Answeringtotal.value = res.total;
|
||||
wendadialog.visible = true;
|
||||
};
|
||||
//报名人数弹窗
|
||||
const registrationCountnum = async (row) => {
|
||||
queryUsers.activityId = row.id;
|
||||
const res = await activityUsersList(queryUsers);
|
||||
activityUsersListarr.value = res.rows;
|
||||
activityUserstotal.value = res.total;
|
||||
numdialog.visible = true;
|
||||
};
|
||||
onMounted(() => {
|
||||
getList();
|
||||
});
|
||||
|
@ -11,7 +11,6 @@
|
||||
<el-select v-model="queryParams.status" placeholder="请选择发布状态" style="width: 200px" @keyup.enter="handleQuery">
|
||||
<el-option label="未发布" value="0" />
|
||||
<el-option label="已发布" value="1" />
|
||||
<el-option label="全部" value="" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
@ -52,11 +51,7 @@
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="更新者" align="center" prop="updateByName" />
|
||||
<el-table-column label="更新时间" align="center" prop="updateTime" width="180">
|
||||
<template #default="scope">
|
||||
<span>{{ parseTime(scope.row.updateTime, '{y}-{m}-{d}') }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="更新时间" align="center" prop="updateTime" width="180"/>
|
||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
||||
<template #default="scope">
|
||||
<el-tooltip v-if="scope.row.status != 1" content="编辑" placement="top">
|
||||
@ -94,17 +89,17 @@
|
||||
<!-- </el-form-item>-->
|
||||
<el-row>
|
||||
<el-col :span="24">
|
||||
<el-form-item label="地理位置" prop="introduce">
|
||||
<el-form-item label="地理位置" prop="address">
|
||||
<!-- <el-input v-model="searchLocation" type="text" placeholder="请输入地址信息" clearable /> -->
|
||||
<el-input
|
||||
v-model="searchLocation"
|
||||
v-model="form.address"
|
||||
placeholder="请输入地址信息"
|
||||
class="input-with-select"
|
||||
style="width: 300px"
|
||||
@keyup.enter="debouncedSearch(searchLocation)"
|
||||
@keyup.enter="debouncedSearch(form.address)"
|
||||
>
|
||||
<template #append>
|
||||
<el-button :icon="Search" @click="debouncedSearch(searchLocation)" />
|
||||
<el-button :icon="Search" @click="debouncedSearch(form.address)" />
|
||||
</template>
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
@ -122,9 +117,6 @@
|
||||
</tlbs-map>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-form-item label="详细地址" prop="address" style="margin-top: 15px">
|
||||
<el-input v-model="form.address" placeholder="输入地理位置或点击度图上的地点" disabled />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<template #footer>
|
||||
<div class="dialog-footer">
|
||||
@ -199,7 +191,9 @@ const data = reactive<PageData<HotelForm, HotelQuery>>({
|
||||
latitude: [{ required: true, message: '纬度不能为空', trigger: 'blur' }],
|
||||
province: [{ required: true, message: '省份编码不能为空', trigger: 'blur' }],
|
||||
city: [{ required: true, message: '市级编码不能为空', trigger: 'blur' }],
|
||||
county: [{ required: true, message: '区县编码不能为空', trigger: 'blur' }]
|
||||
county: [{ required: true, message: '区县编码不能为空', trigger: 'blur' }],
|
||||
address: [{ required: true, message: '地理位置不能为空', trigger: 'blur' }]
|
||||
|
||||
}
|
||||
});
|
||||
const imgUrlList = reactive({
|
||||
|
@ -134,11 +134,14 @@
|
||||
</div>
|
||||
</div>
|
||||
<div>{{ item.description }}</div>
|
||||
<div style="font-weight: 600">景点 {{ item.articleName }}</div>
|
||||
<div>建议游玩{{ item.routeHours }}小时 | {{ item.address }}</div>
|
||||
<div>{{ item.recommend }}</div>
|
||||
<div>{{ item.addressDes }}</div>
|
||||
<div>{{ item.guide }}</div>
|
||||
<div v-for="(er, index_r) in item.lowerList">
|
||||
<div style="font-weight: 600">景点{{ index_r + 1 }} {{ er.articleName }}</div>
|
||||
<div>建议游玩{{ er.routeHours }}小时 | {{ er.address }}</div>
|
||||
<div>{{ er.recommend }}</div>
|
||||
<div>{{ er.addressDes }}</div>
|
||||
<div>{{ er.guide }}</div>
|
||||
</div>
|
||||
|
||||
<div class="hotellistcalss">
|
||||
<div v-for="rr in item.hotelVoList" class="hotelitem">
|
||||
<div class="title">{{ rr.name }}</div>
|
||||
@ -168,25 +171,26 @@
|
||||
<el-input v-model="routeDetailsList.description" placeholder="请输入描述" style="width: 500px" autosize type="textarea" />
|
||||
</el-form-item>
|
||||
<el-form-item label="添加地点">
|
||||
<el-button type="primary">添加景点</el-button>
|
||||
<el-button type="primary" @click="addjingdain">添加景点</el-button>
|
||||
</el-form-item>
|
||||
<div class="articlelist">
|
||||
<div v-for="(item, index) in routeDetailsList.lowerList" class="articlelist">
|
||||
<CircleClose v-if="index != 0" style="width: 2em; height: 2em; position: relative; left: 98%" @click="delLowerList(index)" />
|
||||
<el-form-item label="添加地点">
|
||||
<el-select v-model="routeDetailsList.articleId" placeholder="请选择标记地点" size="large" style="width: 500px">
|
||||
<el-select v-model="item.articleId" placeholder="请选择标记地点" size="large" style="width: 500px">
|
||||
<el-option v-for="item in sys_user_contentOptions" :key="item.id" :label="item.name" :value="item.id" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="建议游玩时长">
|
||||
<el-input v-model="routeDetailsList.routeHours" placeholder="请输入建议游玩时长" style="width: 500px" />
|
||||
<el-input v-model="item.routeHours" placeholder="请输入建议游玩时长" style="width: 500px" />
|
||||
</el-form-item>
|
||||
<el-form-item label="推荐语">
|
||||
<el-input v-model="routeDetailsList.recommend" placeholder="请输入推荐语" style="width: 500px" />
|
||||
<el-input v-model="item.recommend" placeholder="请输入推荐语" style="width: 500px" />
|
||||
</el-form-item>
|
||||
<el-form-item label="地点描述">
|
||||
<el-input v-model="routeDetailsList.addressDes" placeholder="请输入地点描述" style="width: 500px" autosize type="textarea" />
|
||||
<el-input v-model="item.addressDes" placeholder="请输入地点描述" style="width: 500px" autosize type="textarea" />
|
||||
</el-form-item>
|
||||
<el-form-item label="避坑指南">
|
||||
<el-input v-model="routeDetailsList.guide" placeholder="请输入避坑指南" style="width: 500px" autosize type="textarea" />
|
||||
<el-input v-model="item.guide" placeholder="请输入避坑指南" style="width: 500px" autosize type="textarea" />
|
||||
</el-form-item>
|
||||
</div>
|
||||
|
||||
@ -227,11 +231,14 @@
|
||||
<div class="title">DAY{{ index + 1 }}·{{ item.title }}</div>
|
||||
</div>
|
||||
<div>{{ item.description }}</div>
|
||||
<div style="font-weight: 600">景点 {{ item.articleName }}</div>
|
||||
<div>建议游玩{{ item.routeHours }}小时 | {{ item.address }}</div>
|
||||
<div>{{ item.recommend }}</div>
|
||||
<div>{{ item.addressDes }}</div>
|
||||
<div>{{ item.guide }}</div>
|
||||
<div v-for="(rr, index) in item.lowerList" :key="item.id">
|
||||
<div style="font-weight: 600">景点 {{ index + 1 }} {{ rr.articleName }}</div>
|
||||
<div>建议游玩{{ rr.routeHours }}小时 | {{ rr.address }}</div>
|
||||
<div>{{ rr.recommend }}</div>
|
||||
<div>{{ rr.addressDes }}</div>
|
||||
<div>{{ rr.guide }}</div>
|
||||
</div>
|
||||
|
||||
<div class="hotellistcalss">
|
||||
<div v-for="rr in item.hotelVoList" class="hotelitem">
|
||||
<div class="title">{{ rr.name }}</div>
|
||||
@ -284,7 +291,15 @@ const regiontree = ref([]);
|
||||
const props = { multiple: true, value: 'id' };
|
||||
const queryFormRef = ref<ElFormInstance>();
|
||||
const RouteFormRef = ref<ElFormInstance>();
|
||||
|
||||
const jingdianList = ref([
|
||||
{
|
||||
articleId: '',
|
||||
routeHours: '',
|
||||
recommend: '',
|
||||
addressDes: '',
|
||||
guide: ''
|
||||
}
|
||||
]);
|
||||
const dialog = reactive<DialogOption>({
|
||||
visible: false,
|
||||
title: ''
|
||||
@ -350,13 +365,13 @@ const data = reactive<PageData<RouteForm, RouteQuery>>({
|
||||
city: [{ required: true, message: '市/区不能为空', trigger: 'blur' }],
|
||||
remark: [{ required: true, message: '个人简介不能为空', trigger: 'blur' }],
|
||||
memberLevel: [{ required: true, message: '会员等级不能为空', trigger: 'blur' }],
|
||||
tagId: [{ required: true, message: '标签不能为空', trigger: 'blur' }],
|
||||
// tagId: [{ required: true, message: '标签不能为空', trigger: 'blur' }],
|
||||
appropriateTime: [{ required: true, message: '最佳时间', trigger: 'blur' }],
|
||||
routeDriveHour: [{ required: true, message: '行驶时长', trigger: 'blur' }],
|
||||
routeMileage: [{ required: true, message: '行程里数', trigger: 'blur' }],
|
||||
routeDays: [{ required: true, message: '行程天数', trigger: 'blur' }],
|
||||
treevalue: [{ required: true, message: '涉及的行政区', trigger: 'blur' }],
|
||||
tagvalue: [{ required: true, message: '路线标签', trigger: 'blur' }],
|
||||
region: [{ required: true, message: '涉及的行政区', trigger: 'blur' }],
|
||||
tagId: [{ required: true, message: '标签不能为空', trigger: 'blur' }],
|
||||
title: [{ required: true, message: '线路标题', trigger: 'blur' }]
|
||||
}
|
||||
});
|
||||
@ -370,7 +385,16 @@ const routeDetailsList = ref({
|
||||
articleId: '',
|
||||
addressDes: '',
|
||||
guide: '',
|
||||
hotelIds: ''
|
||||
hotelIds: '',
|
||||
lowerList: [
|
||||
{
|
||||
articleId: '',
|
||||
routeHours: '',
|
||||
recommend: '',
|
||||
addressDes: '',
|
||||
guide: ''
|
||||
}
|
||||
]
|
||||
});
|
||||
const bookrouteDetailsList = ref([]);
|
||||
const options = [
|
||||
@ -507,7 +531,7 @@ const submitForm = (type) => {
|
||||
form.value.status = Number(type);
|
||||
form.value.routeDetailsList = bookrouteDetailsList.value;
|
||||
console.log(form.value, bookrouteDetailsList.value);
|
||||
// return
|
||||
// return;
|
||||
RouteFormRef.value?.validate(async (valid: boolean) => {
|
||||
if (valid) {
|
||||
buttonLoading.value = true;
|
||||
@ -564,7 +588,26 @@ const gethotelall = async () => {
|
||||
|
||||
//添加行程
|
||||
const add = () => {
|
||||
routeDetailsList.value = {};
|
||||
routeDetailsList.value = {
|
||||
title: '',
|
||||
description: '',
|
||||
routeHours: '',
|
||||
recommend: '',
|
||||
articleId: '',
|
||||
addressDes: '',
|
||||
guide: '',
|
||||
hotelIds: '',
|
||||
lowerList: [
|
||||
{
|
||||
articleId: '',
|
||||
routeHours: '',
|
||||
recommend: '',
|
||||
addressDes: '',
|
||||
guide: ''
|
||||
}
|
||||
]
|
||||
};
|
||||
hotelallvalue.value = [];
|
||||
addressdialog.visible = true;
|
||||
addressdialog.title = `添加DAY${bookrouteDetailsList.value.length + 1}行程`;
|
||||
};
|
||||
@ -580,7 +623,9 @@ const editlistitem = (item, index) => {
|
||||
hotelallvalue.value = extractedIds;
|
||||
};
|
||||
//删除单个行程
|
||||
const dellistitem = (index) => {};
|
||||
const dellistitem = (index) => {
|
||||
bookrouteDetailsList.value.splice(index, 1);
|
||||
};
|
||||
const savecancel = () => {
|
||||
addressdialog.visible = false;
|
||||
};
|
||||
@ -674,6 +719,21 @@ const addressdata = (ids: string | null) => {
|
||||
console.log(addressarray, 'qqqq');
|
||||
return addressarray;
|
||||
};
|
||||
//添加景点
|
||||
const addjingdain = () => {
|
||||
routeDetailsList.value.lowerList.push({
|
||||
articleId: '',
|
||||
routeHours: '',
|
||||
recommend: '',
|
||||
addressDes: '',
|
||||
guide: ''
|
||||
});
|
||||
};
|
||||
//删除景点
|
||||
const delLowerList = (index) => {
|
||||
// bookrouteDetailsList.lowerList.splice(index, 1);
|
||||
routeDetailsList.value.lowerList.splice(index, 1);
|
||||
};
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
.el-card :deep(.el-card__body) {
|
||||
@ -723,6 +783,6 @@ const addressdata = (ids: string | null) => {
|
||||
margin: 20px auto;
|
||||
padding: 20px;
|
||||
border-radius: 20px;
|
||||
background-color:#f2f2f2 ;
|
||||
background-color: #f2f2f2;
|
||||
}
|
||||
</style>
|
||||
|
Loading…
Reference in New Issue
Block a user