Compare commits
11
Commits
4d0e340fee
..
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
812c6d263f | ||
|
|
40b6b8d447 | ||
|
|
ef98909864 | ||
|
|
9026b27169 | ||
|
|
a02c8656c6 | ||
|
|
858c27502c | ||
|
|
4bd54e8fb1 | ||
|
|
d6b952ecc5 | ||
|
|
e3f734b8d3 | ||
|
|
9768b04c88 | ||
|
|
95a14f596c |
@@ -8,7 +8,7 @@ export interface ActivityVO {
|
||||
* 活动名称
|
||||
*/
|
||||
activityName: string;
|
||||
|
||||
activityId: string | number;
|
||||
/**
|
||||
* 活动描述
|
||||
*/
|
||||
@@ -83,7 +83,6 @@ export interface ActivityVO {
|
||||
* 操作时间
|
||||
*/
|
||||
updateTime: string;
|
||||
|
||||
}
|
||||
|
||||
export interface ActivityForm extends BaseEntity {
|
||||
@@ -151,16 +150,14 @@ export interface ActivityForm extends BaseEntity {
|
||||
* 发布状态 0-未发布 1-审核中 2-发布
|
||||
*/
|
||||
status?: string;
|
||||
|
||||
}
|
||||
|
||||
export interface ActivityQuery extends PageQuery {
|
||||
|
||||
/**
|
||||
* 活动名称
|
||||
*/
|
||||
activityName?: string;
|
||||
|
||||
activityId?: string | number;
|
||||
/**
|
||||
* 活动描述
|
||||
*/
|
||||
@@ -221,6 +218,3 @@ export interface ActivityQuery extends PageQuery {
|
||||
*/
|
||||
params?: any;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -43,9 +43,9 @@ export const addBanned = (data: BannedForm) => {
|
||||
* 修改举报
|
||||
* @param data
|
||||
*/
|
||||
export const updateBanned = (data: BannedForm) => {
|
||||
export const updatemanage = (data: BannedForm) => {
|
||||
return request({
|
||||
url: '/manage/banned',
|
||||
url: '/manage/report',
|
||||
method: 'put',
|
||||
data: data
|
||||
});
|
||||
|
||||
@@ -47,7 +47,7 @@ export interface DyUserVO {
|
||||
/**
|
||||
* 会员等级
|
||||
*/
|
||||
leveId: string | number;
|
||||
levelId: string | number;
|
||||
|
||||
/**
|
||||
* 生日
|
||||
@@ -154,7 +154,7 @@ export interface DyUserForm extends BaseEntity {
|
||||
/**
|
||||
* 会员等级
|
||||
*/
|
||||
leveId?: string | number;
|
||||
levelId?: string | number;
|
||||
|
||||
/**
|
||||
* 生日
|
||||
@@ -251,7 +251,7 @@ export interface DyUserQuery extends PageQuery {
|
||||
/**
|
||||
* 会员等级
|
||||
*/
|
||||
leveId?: string | number;
|
||||
levelId?: string | number;
|
||||
|
||||
/**
|
||||
* 生日
|
||||
|
||||
@@ -95,3 +95,14 @@ export const productCategoryall = (query?: MkJigsawQuery): AxiosPromise<MkJigsaw
|
||||
params: query
|
||||
});
|
||||
};
|
||||
/**
|
||||
* 参与游戏人数
|
||||
* @param query
|
||||
*/
|
||||
export const mkJoinlist = (query?: MkJigsawQuery): AxiosPromise<MkJigsawVO[]> => {
|
||||
return request({
|
||||
url: '/manage/mkJoin/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
|
||||
@@ -2,17 +2,25 @@
|
||||
<!-- 带有搜索地点的地图 -->
|
||||
<div>
|
||||
<el-form-item :label="title">
|
||||
<el-input
|
||||
v-model="form.address"
|
||||
:placeholder="`请输入${title}`"
|
||||
class="input-with-select"
|
||||
<el-select
|
||||
v-model="searchLocation"
|
||||
filterable
|
||||
remote
|
||||
reserve-keyword
|
||||
clearable
|
||||
placeholder="请输入地址信息"
|
||||
:remote-method="remoteMethod"
|
||||
@change="selectChnange"
|
||||
style="width: 300px"
|
||||
@keyup.enter="debouncedSearch(form.address)"
|
||||
>
|
||||
<template #append>
|
||||
<el-button :icon="Search" @click="debouncedSearch(form.address)" />
|
||||
</template>
|
||||
</el-input>
|
||||
<el-option
|
||||
v-for="item in locationOptions"
|
||||
:key="item.id"
|
||||
:label="item.title + '      ' + item.province + ' - ' + item.city"
|
||||
:value="item.province + item.city + item.title"
|
||||
/>
|
||||
<!-- :value="item.ad_info.province+item.ad_info.city+item.title" /> -->
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<tlbs-map
|
||||
ref="map"
|
||||
@@ -26,6 +34,15 @@
|
||||
>
|
||||
<tlbs-multi-marker :geometries="geometries" :styles="styles" :options="options" />
|
||||
</tlbs-map>
|
||||
<el-form-item label="详细地址" prop="address" style="margin-top: 15px">
|
||||
<el-input v-model="form.address" placeholder="输入地理位置或点击度图上的地点" disabled />
|
||||
</el-form-item>
|
||||
<el-form-item label="经度" prop="longitude">
|
||||
<el-input v-model="form.longitude" placeholder="输入地理位置或点击度图上的地点" disabled />
|
||||
</el-form-item>
|
||||
<el-form-item label="纬度" prop="latitude">
|
||||
<el-input v-model="form.latitude" placeholder="输入地理位置或点击度图上的地点" disabled />
|
||||
</el-form-item>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -73,7 +90,39 @@ const form = ref(
|
||||
regionCode: ''
|
||||
}
|
||||
);
|
||||
const searchLocation = ref(props.datas.address||''); // 搜索地点
|
||||
|
||||
const locationOptions = ref([]); //腾讯地图返回的搜索地址列表
|
||||
watch(() => props.modelValue);
|
||||
// 地理位置 输入实时搜索
|
||||
const remoteMethod = (query: string) => {
|
||||
if (query !== '') {
|
||||
// 调用腾讯地图API进行搜索,并展示在地图上
|
||||
// geocoder(query).then((result) => {
|
||||
// console.log(result);
|
||||
// });
|
||||
console.log(query);
|
||||
// jsonp(`https://apis.map.qq.com/ws/place/v1/search?key=${'6XFBZ-SAVLT-JGIX2-VOLMK-6S2H3-XUBGO'}&keyword=${encodeURI(query)}&boundary=nearby(20.018883,110.348801,1000)&output=jsonp`, {}).then((res) => {
|
||||
jsonp(
|
||||
`https://apis.map.qq.com/ws/place/v1/suggestion?key=${'6XFBZ-SAVLT-JGIX2-VOLMK-6S2H3-XUBGO'}&keyword=${encodeURI(query)}®ion=三亚市®ion_fix=0&output=jsonp`,
|
||||
{}
|
||||
).then((res) => {
|
||||
// if (res.region.title!=='海南省') {
|
||||
// proxy?.$modal.msgError('仅支持海南省地理位置');
|
||||
// return
|
||||
// }
|
||||
if (res.status == 0) {
|
||||
locationOptions.value = res.data;
|
||||
}
|
||||
});
|
||||
}
|
||||
};
|
||||
// 选择地理位置 下拉框值变化
|
||||
const selectChnange = (val: string) => {
|
||||
if (val) {
|
||||
debouncedSearch(searchLocation.value);
|
||||
}
|
||||
};
|
||||
// 点击地点,获取经纬度及地址信息
|
||||
const onClick = (e: any) => {
|
||||
jsonp(
|
||||
@@ -82,15 +131,15 @@ const onClick = (e: any) => {
|
||||
).then((data) => {
|
||||
if (data.status == 0) {
|
||||
if (form.value) {
|
||||
// form.value.address =
|
||||
// data.result.address_component.province +
|
||||
// data.result.address_component.city +
|
||||
// data.result.address_component.district +
|
||||
// data.result.address_component.street +
|
||||
// data.result.address_component.street_number;
|
||||
form.value.address =
|
||||
data.result.address_component.province +
|
||||
data.result.address_component.city +
|
||||
data.result.address_component.district +
|
||||
data.result.address_component.street +
|
||||
data.result.address_component.street_number + data.result.formatted_addresses.recommend;
|
||||
form.value.latitude = data.result.location.lat;
|
||||
form.value.longitude = data.result.location.lng;
|
||||
form.value.address = data.result.formatted_addresses.recommend;
|
||||
// form.value.address = data.result.formatted_addresses.recommend;
|
||||
// form.value.city = data.result.address_component.city;
|
||||
// form.value.region = data.result.ad_info.adcode; //行政区划编码
|
||||
form.value.regionCode = data.result.ad_info.adcode; //行政区划编码
|
||||
@@ -119,18 +168,18 @@ const performSearch = async (text) => {
|
||||
jsonp(`https://apis.map.qq.com/ws/geocoder/v1/?address=${text}&key=${'6XFBZ-SAVLT-JGIX2-VOLMK-6S2H3-XUBGO'}&output=jsonp`, {}).then((data) => {
|
||||
console.log(data);
|
||||
if (data.status == 0) {
|
||||
// form.value.address =
|
||||
// data.result.address_components.province +
|
||||
// data.result.address_components.city +
|
||||
// data.result.address_components.district +
|
||||
// data.result.address_components.street +
|
||||
// data.result.address_components.street_number;
|
||||
form.value.address =
|
||||
data.result.address_components.province +
|
||||
data.result.address_components.city +
|
||||
data.result.address_components.district +
|
||||
data.result.address_components.street +
|
||||
data.result.address_components.street_number + data.result.title;
|
||||
form.value.latitude = data.result.location.lat;
|
||||
form.value.longitude = data.result.location.lng;
|
||||
// form.value.region = data.result.ad_info.adcode; //行政区划编码
|
||||
// form.value.regionCode = data.result.ad_info.adcode; //行政区划编码
|
||||
|
||||
form.value.address = text;
|
||||
// form.value.address = text;
|
||||
// form.value.city = data.result.address_components.city;
|
||||
center.value = { lat: data.result.location.lat, lng: data.result.location.lng };
|
||||
geometries.value = [{ styleId: 'marker', position: { lat: data.result.location.lat, lng: data.result.location.lng } }];
|
||||
@@ -147,16 +196,15 @@ const performSearch = async (text) => {
|
||||
const debouncedSearch = debounce(performSearch, 300); // 创建防抖后的搜索函数,延迟设为300毫秒
|
||||
|
||||
const map = ref(null);
|
||||
const center = ref({ lat: form.value.latitude || 39.145902, lng: form.value.longitude || 117.17546 });
|
||||
const zoom = ref(20);
|
||||
const center = ref({ lat: form.value.latitude || 20.018883, lng: form.value.longitude || 110.348801 });
|
||||
const zoom = ref(147);
|
||||
const control = reactive({
|
||||
scale: {},
|
||||
zoom: {
|
||||
position: 'topLeft'
|
||||
}
|
||||
});
|
||||
const searchLocation = ref(''); // 搜索地点
|
||||
const geometries = ref([{ styleId: 'marker', position: { lat: form.value.latitude || 39.145902, lng: form.value.longitude || 117.17546 } }]);
|
||||
const geometries = ref([{ styleId: 'marker', position: { lat: form.value.latitude || 20.018883, lng: form.value.longitude || 110.348801 } }]);
|
||||
const styles = reactive({
|
||||
marker: {
|
||||
width: 20,
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
<!-- <img :src="comment.avatar" alt="用户昵称" class="avatar"> -->
|
||||
<image-preview :src="comment.avatar" :width="25" :height="25" />
|
||||
<div class="username">
|
||||
<div style="margin-right: 5px;">
|
||||
<div style="margin-right: 5px">
|
||||
{{ comment.nickName }}
|
||||
</div>
|
||||
<!-- <div v-if="comment.parentId" class="reply-to"></div>
|
||||
@@ -18,7 +18,7 @@
|
||||
<div class="comment-content">{{ comment.content }}</div>
|
||||
<div class="comment-info">
|
||||
<span class="comment-time">{{ comment.createTime }}</span>
|
||||
<span class="ip-address">IP: {{ comment.address?comment.address:'未知' }}</span>
|
||||
<span class="ip-address">IP: {{ comment.address ? comment.address : '未知' }}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div v-if="comment.daList && comment.daList.length" class="replies">
|
||||
@@ -32,10 +32,10 @@
|
||||
<div class="reply-to"></div>
|
||||
<span>{{ reply.replyNickName }}</span>
|
||||
</div>
|
||||
<div class="comment-content" style="margin-left: 10px;">{{ reply.content }}</div>
|
||||
<div class="comment-info" style="margin-left: 10px;">
|
||||
<div class="comment-content" style="margin-left: 10px">{{ reply.content }}</div>
|
||||
<div class="comment-info" style="margin-left: 10px">
|
||||
<span class="comment-time">{{ reply.createTime }}</span>
|
||||
<span class="ip-address">IP: {{ reply.address?reply.address:'未知' }}</span>
|
||||
<span class="ip-address">IP: {{ reply.address ? reply.address : '未知' }}</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -43,27 +43,37 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<pagination v-show="total > 0" id="table_page" :total="total" v-model:page="queryParams.pageNum"
|
||||
v-model:limit="queryParams.pageSize" @pagination="getCommentList" />
|
||||
<pagination
|
||||
v-show="total > 0"
|
||||
id="table_page"
|
||||
v-model:page="queryParams.pageNum"
|
||||
v-model:limit="queryParams.pageSize"
|
||||
:total="total"
|
||||
@pagination="getCommentList"
|
||||
/>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts" name="commentList">
|
||||
import { ref, reactive, onMounted, nextTick } from 'vue';
|
||||
import {commentList } from '@/api/manage/scenic';
|
||||
import { commentList } from '@/api/manage/scenic';
|
||||
|
||||
//导入父组件传递的值
|
||||
const props = defineProps({
|
||||
bizId:{
|
||||
bizId: {
|
||||
type: Number,
|
||||
default: null,
|
||||
default: null
|
||||
},
|
||||
type: {
|
||||
type: Number,
|
||||
default: null
|
||||
}
|
||||
});
|
||||
const queryParams = reactive({
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
bizId: null,
|
||||
status: 0,
|
||||
type: props.type
|
||||
});
|
||||
// 监听父组件传递的tagIds,当tagIds发生变化时,重新获取数据
|
||||
watch(
|
||||
@@ -80,7 +90,7 @@ watch(
|
||||
},
|
||||
{ immediate: true }
|
||||
);
|
||||
const total=ref(0)
|
||||
const total = ref(0);
|
||||
const loading = ref(false);
|
||||
const commentListData = ref([]);
|
||||
// 导入父组件定义的函数
|
||||
@@ -90,11 +100,11 @@ const emit = defineEmits(['hideDialog']);
|
||||
*/
|
||||
const getCommentList = async () => {
|
||||
loading.value = true;
|
||||
let res=await commentList(queryParams).finally(() => (loading.value = false));
|
||||
console.log('评论列表:',res);
|
||||
total.value=res.total;
|
||||
let res = await commentList(queryParams).finally(() => (loading.value = false));
|
||||
console.log('评论列表:', res);
|
||||
total.value = res.total;
|
||||
commentListData.value = res.rows;
|
||||
}
|
||||
};
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
.commentList {
|
||||
@@ -147,7 +157,6 @@ const getCommentList = async () => {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
.ip-address {
|
||||
margin-left: 15px;
|
||||
}
|
||||
|
||||
@@ -26,17 +26,17 @@
|
||||
</el-table-column>
|
||||
<el-table-column label="问答" align="center" prop="" width="100px">
|
||||
<template #default="scope">
|
||||
<el-button link type="primary" @click="wendalist(scope.row)">查看详情</el-button>
|
||||
<el-button link type="primary" @click="wendalistid(scope.row)">查看详情</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="发布状态" align="center" prop="status" width="100px">
|
||||
<template #default="scope">
|
||||
<el-tag v-if="scope.row.status == 1" type="primary">审核中</el-tag>
|
||||
<el-tag v-if="scope.row.status == 2" type="success">发布</el-tag>
|
||||
<el-tag v-if="scope.row.status == 0" type="info">未发布</el-tag>
|
||||
<el-tag v-if="scope.row.status == 1" type="success">审核中</el-tag>
|
||||
<el-tag v-if="scope.row.status == 2" type="primary">已发布</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="发布时间" align="center" prop="publishTime" />
|
||||
<el-table-column label="操作时间" align="center" prop="updateTime" />
|
||||
<el-table-column label="操作" align="center" width="150px" fixed="right" class-name="small-padding fixed-width"
|
||||
v-if="props.parentName != 'dyUser'">
|
||||
<template #default="scope">
|
||||
@@ -87,12 +87,46 @@
|
||||
</div>
|
||||
</template>
|
||||
</el-dialog>
|
||||
<!-- 查看活动流程 -->
|
||||
<el-dialog v-model="seedialog.visible" :title="seedialog.title" width="60%" append-to-body>
|
||||
<activitylink :form="form" :listdatatime="seedialog.listdatatime"></activitylink>
|
||||
</el-dialog>
|
||||
<!-- 问答弹窗-->
|
||||
<el-dialog v-model="wendadialog.visible" title="问答" width="40%" append-to-body>
|
||||
<div v-if="wendadialog.Answeringlist.length>0">
|
||||
<div style="height: 400px;overflow: auto;">
|
||||
<div v-for="item in wendadialog.Answeringlist" style="line-height: 30px; padding: 0 20px">
|
||||
<div style="display: flex; justify-content: space-between">
|
||||
<div style="font-weight: 600; font-size: 14px">Q:{{ item.declaration }}</div>
|
||||
<div style="font-size: 12px">{{ item.quserName }} {{ item.createTime }}
|
||||
</div>
|
||||
</div>
|
||||
<div style="font-size: 12px">A:{{ item.answer }}</div>
|
||||
</div>
|
||||
</div>
|
||||
<pagination v-show="wendadialog.total > 0" id="table_page" v-model:page="wendadialog.params.pageNum"
|
||||
v-model:limit="wendadialog.params.pageSize" :total="wendadialog.total" @pagination="wendalistid" />
|
||||
</div>
|
||||
<div v-else>
|
||||
<el-empty description="暂无数据" />
|
||||
</div>
|
||||
<template #footer>
|
||||
<div class="dialog-footer">
|
||||
<el-button @click="cancel">关 闭</el-button>
|
||||
</div>
|
||||
</template>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts" name="partyList">
|
||||
import { ref, reactive, onMounted, nextTick } from 'vue';
|
||||
import {activityUsersList} from '@/api/manage/activity';
|
||||
import {
|
||||
getActivity,
|
||||
activityprocess,
|
||||
activityUsersList,
|
||||
activityAnsweringlist
|
||||
} from '@/api/manage/activity';
|
||||
//导入父组件传递的值
|
||||
const props = defineProps({
|
||||
partyList: {
|
||||
@@ -108,8 +142,26 @@ const props = defineProps({
|
||||
default: () => ''
|
||||
}
|
||||
});
|
||||
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
|
||||
const { sys_user_sex } = toRefs<any>(
|
||||
proxy?.useDict('sys_user_sex')
|
||||
);
|
||||
const loading = ref(false);
|
||||
|
||||
const form = reactive({
|
||||
id: undefined,
|
||||
activityName: undefined,
|
||||
activityDescription: undefined,
|
||||
sortNum: undefined,
|
||||
activityUserCount: undefined,
|
||||
registrationCount: undefined,
|
||||
isSelected: undefined,
|
||||
activityTime: undefined,
|
||||
registrationDeadline: undefined,
|
||||
publisherAddress: undefined,
|
||||
activityLocation: undefined,
|
||||
paymentMethod: undefined,
|
||||
status: undefined
|
||||
});
|
||||
/** 多选框选中数据 */
|
||||
const handleSelectionChange = (selection: any) => {
|
||||
// ids.value = selection.map((item) => item.id);
|
||||
@@ -129,6 +181,9 @@ const cancel = () => {
|
||||
numdialog.visible = false;
|
||||
numdialog.params.pageNum = 1;
|
||||
numdialog.params.activityId = undefined;
|
||||
wendadialog.visible = false;
|
||||
wendadialog.params.pageNum = 1;
|
||||
wendadialog.params.activityId = undefined;
|
||||
}
|
||||
// 报名人数弹窗
|
||||
const numdialog = reactive({
|
||||
@@ -153,6 +208,46 @@ const baominglist = async (row:any) => {
|
||||
numdialog.total = res.total;
|
||||
numdialog.visible = true;
|
||||
};
|
||||
// 查看活动流程
|
||||
const seedialog = reactive({
|
||||
visible: false,
|
||||
title: '活动流程',
|
||||
form: {},
|
||||
listdatatime: [{ activityTime: '', planContent: '' }],
|
||||
});
|
||||
const chakanhandle = async (row: any) => {
|
||||
const res = await getActivity(row.id);
|
||||
const arr = await activityprocess({ activityId: row.id });
|
||||
console.log(arr);
|
||||
// = arr.data;
|
||||
Object.assign(form, res.data);
|
||||
// Object.assign(listdatatime.value, arr.data);
|
||||
seedialog.listdatatime = arr.data;
|
||||
seedialog.visible = true;
|
||||
}
|
||||
// 问答弹窗
|
||||
const wendadialog = reactive({
|
||||
visible: false,
|
||||
title: '问答',
|
||||
total: 0,
|
||||
params:{
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
activityId: undefined
|
||||
},
|
||||
Answeringlist:[]
|
||||
});
|
||||
const wendalistid = async (row:any) => {
|
||||
if (row.id) {
|
||||
wendadialog.params.activityId = row.id;
|
||||
}
|
||||
loading.value = true;
|
||||
const res = await activityAnsweringlist(wendadialog.params).finally(()=>{loading.value = false});
|
||||
console.log(res);
|
||||
wendadialog.Answeringlist = res.rows;
|
||||
wendadialog.total = res.total;
|
||||
wendadialog.visible = true;
|
||||
};
|
||||
// 导入父组件定义的函数
|
||||
const emit = defineEmits(['hideDialog', 'handleUpdate', 'handleDelete']);
|
||||
</script>
|
||||
|
||||
@@ -77,9 +77,8 @@
|
||||
<el-table-column label="发布状态" align="center" prop="status" width="100px">
|
||||
<template #default="scope">
|
||||
<el-tag v-if="scope.row.status == 0" type="info">未发布</el-tag>
|
||||
<el-tag v-if="scope.row.status == 1" type="warning">草稿</el-tag>
|
||||
<el-tag v-if="scope.row.status == 2" type="success">审核中</el-tag>
|
||||
<el-tag v-if="scope.row.status == 3" type="primary">已发布</el-tag>
|
||||
<el-tag v-if="scope.row.status == 1" type="success">审核中</el-tag>
|
||||
<el-tag v-if="scope.row.status == 2" type="primary">已发布</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="发布人员" align="center" prop="publishName" />
|
||||
@@ -87,26 +86,16 @@
|
||||
<el-table-column label="操作" align="center" width="150px" fixed="right" class-name="small-padding fixed-width">
|
||||
<template #default="scope">
|
||||
<div v-if="scope.row.userZombie == true">
|
||||
<el-button
|
||||
v-if="scope.row.status == 0 || scope.row.status == 1"
|
||||
v-hasPermi="['system:article:edit']"
|
||||
link
|
||||
type="primary"
|
||||
@click="handleUpdate(scope.row, 1)"
|
||||
<el-button v-if="scope.row.status == 0" v-hasPermi="['system:article:edit']" link type="primary" @click="handleUpdate(scope.row, 1)"
|
||||
>编辑</el-button
|
||||
>
|
||||
<el-button v-if="scope.row.status == 0" v-hasPermi="['system:article:edit']" link type="primary" @click="saveupdate(scope.row, 1)"
|
||||
<el-button v-if="scope.row.status == 0" v-hasPermi="['system:article:edit']" link type="primary" @click="saveupdate(scope.row, 0)"
|
||||
>发布</el-button
|
||||
>
|
||||
<el-button v-if="scope.row.status == 3" v-hasPermi="['system:article:edit']" link type="primary" @click="saveupdate(scope.row, 2)"
|
||||
<el-button v-if="scope.row.status == 2" v-hasPermi="['system:article:edit']" link type="primary" @click="saveupdate(scope.row, 2)"
|
||||
>撤销发布</el-button
|
||||
>
|
||||
<el-button
|
||||
v-if="scope.row.status == 0 || scope.row.status == 1"
|
||||
v-hasPermi="['system:article:remove']"
|
||||
link
|
||||
type="primary"
|
||||
@click="handleDelete(scope.row)"
|
||||
<el-button v-if="scope.row.status == 0" v-hasPermi="['system:article:remove']" link type="primary" @click="handleDelete(scope.row)"
|
||||
>删除</el-button
|
||||
>
|
||||
</div>
|
||||
@@ -207,7 +196,6 @@
|
||||
<!-- 查看活动流程 -->
|
||||
<el-dialog v-model="seedialog.visible" :title="seedialog.title" width="60%" append-to-body>
|
||||
<activitylink :form="form" :listdatatime="listdatatime"></activitylink>
|
||||
|
||||
</el-dialog>
|
||||
<!-- 问答弹窗-->
|
||||
<el-dialog v-model="wendadialog.visible" title="问答" width="40%" append-to-body>
|
||||
@@ -302,10 +290,9 @@ const publisherAddress = ref({});
|
||||
const Mapvalue = ref({});
|
||||
const Mapvaluetwo = ref({});
|
||||
const note_publish_list = ref([
|
||||
{ label: '已发布', value: 3 },
|
||||
{ label: '审核中', value: 2 },
|
||||
{ label: '未发布', value: 0 },
|
||||
{ label: '草稿', value: 1 }
|
||||
{ label: '审核中', value: 1 },
|
||||
{ label: '已发布', value: 2 }
|
||||
]);
|
||||
const activityFormRef = ref<ElFormInstance>();
|
||||
const getMapValue = (value: any) => {
|
||||
@@ -466,10 +453,10 @@ const saveupdate = async (row?: ActivityVO, type) => {
|
||||
const res = await getActivity(_id);
|
||||
const arr = await activityprocess({ activityId: _id });
|
||||
Object.assign(form.value, res.data);
|
||||
form.value.status = type == 1 ? 2 : 0;
|
||||
const test = type == 1 ? '发布' : '撤销发布';
|
||||
form.value.status = type == 0 ? 1 : 0;
|
||||
const test = type == 0 ? '发布' : '撤销发布';
|
||||
const _ids = row?.activityName || ids.value;
|
||||
await proxy?.$modal.confirm('是否确认' + test + '活动名称 为' + _ids + '的数据项?').finally(() => (loading.value = false));
|
||||
await proxy?.$modal.confirm('是否确认' + test + '活动名称为"' + _ids + '"的数据项?').finally(() => (loading.value = false));
|
||||
await updateActivity(form.value).finally(() => (buttonLoading.value = false));
|
||||
proxy?.$modal.msgSuccess(test + '成功');
|
||||
await getList();
|
||||
|
||||
@@ -99,7 +99,8 @@
|
||||
<el-input v-model="form.title" placeholder="请输入文章标题" />
|
||||
</el-form-item>
|
||||
<el-form-item label="标签" prop="tagId_copy">
|
||||
<el-select class="inputWidth" v-model="form.tagId_copy" multiple filterable placeholder="请选择标签" clearable>
|
||||
<el-select class="inputWidth" v-model="form.tagId_copy" multiple filterable placeholder="请选择标签" clearable
|
||||
@visible-change="getTagList">
|
||||
<el-option v-for="dict in sys_user_tagOptions" :key="dict.id" :label="dict.title"
|
||||
:value="String(dict.id)" />
|
||||
</el-select>
|
||||
@@ -286,6 +287,11 @@ const handleUpdate = async (row?:any) => {
|
||||
dialog.visible = true;
|
||||
dialog.title = "修改文章";
|
||||
}
|
||||
const getTagList = async (visible: boolean) => {
|
||||
if (visible) {
|
||||
getTag(); //标签库
|
||||
}
|
||||
}
|
||||
/**
|
||||
*
|
||||
* @param row 发布,撤销发布
|
||||
@@ -319,6 +325,8 @@ const submitForm = () => {
|
||||
proxy?.$modal.msgSuccess("操作成功");
|
||||
dialog.visible = false;
|
||||
await getList();
|
||||
}else{
|
||||
proxy?.$modal.msgError("缺少必填项");
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@@ -24,10 +24,10 @@
|
||||
<el-option v-for="dict in dy_user_status" :key="dict.value" :label="dict.label" :value="dict.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="会员等级" prop="leveId">
|
||||
<!-- <el-input class="inputWidth" v-model="queryParams.leveId" placeholder="请输入会员等级" clearable
|
||||
<el-form-item label="会员等级" prop="levelId">
|
||||
<!-- <el-input class="inputWidth" v-model="queryParams.levelId" placeholder="请输入会员等级" clearable
|
||||
@keyup.enter="handleQuery" /> -->
|
||||
<el-select class="inputWidth" v-model="queryParams.leveId" placeholder="请选择会员等级" clearable>
|
||||
<el-select class="inputWidth" v-model="queryParams.levelId" placeholder="请选择会员等级" clearable>
|
||||
<el-option v-for="dict in levelList" :key="dict.id" :label="dict.levelName" :value="dict.id" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
@@ -131,19 +131,24 @@
|
||||
@click="openPostcardListDialog(scope.row)">{{ scope.row.postcardCount }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column width="80" label="我的愿望" align="center" prop="" />
|
||||
<el-table-column width="150" label="我的愿望" align="center" prop="wish" show-overflow-tooltip />
|
||||
<el-table-column width="80" label="我的背包" align="center" prop="" />
|
||||
<el-table-column width="90" label="获得的物品" align="center" prop="obtainedItemsCount" />
|
||||
<el-table-column width="90" label="获得的物品" align="center" prop="obtainedItemsCount">
|
||||
<template #default="scope">
|
||||
<span style="color: dodgerblue; cursor: pointer; text-decoration: underline"
|
||||
@click="openObtainedItemsListDialog(scope.row)">{{ scope.row.obtainedItemsCount }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column width="70" label="积分" align="center" prop="userScore" />
|
||||
<el-table-column width="90" label="我的订单" align="center" prop="">
|
||||
<template #default="scope">
|
||||
<span style="color: dodgerblue; cursor: pointer" @click="openOrderListDialog(scope.row)">查看详情</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column width="80" label="邀请人数" align="center" prop="">
|
||||
<el-table-column width="100" label="邀请人数(大转盘)" align="center" prop="inviteCount">
|
||||
<template #default="scope">
|
||||
<span style="color: dodgerblue; cursor: pointer; text-decoration: underline"
|
||||
@click="openInviteListDialog(scope.row)">35</span>
|
||||
@click="openInviteListDialog(scope.row)">{{ scope.row.inviteCount }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column width="80" label="处理方式" align="center" prop="">
|
||||
@@ -311,6 +316,23 @@
|
||||
</div>
|
||||
</template>
|
||||
</el-dialog>
|
||||
<!-- 用户邀请人数 -->
|
||||
<el-dialog title="获得物品" v-model="obtainedItemsDialog.visible" width="500px" append-to-body>
|
||||
<el-table :height="300" v-loading="loading" :data="obtainedItemsDialog.obtainedList" border>
|
||||
<el-table-column label="名称" align="center" fixed prop="" />
|
||||
<el-table-column label="来源" align="center" fixed prop="" />
|
||||
<el-table-column label="获得时间" align="center" fixed prop="" />
|
||||
<el-table-column label="邮寄/使用状态" align="center" fixed prop="" />
|
||||
</el-table>
|
||||
<pagination v-show="obtainedItemsDialog.total > 0" :total="obtainedItemsDialog.total"
|
||||
v-model:page="obtainedItemsDialog.params.pageNum" v-model:limit="obtainedItemsDialog.params.pageSize"
|
||||
@pagination="openInviteListDialog" />
|
||||
<template #footer>
|
||||
<div class="dialog-footer">
|
||||
<el-button @click="cancel">关 闭</el-button>
|
||||
</div>
|
||||
</template>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -358,7 +380,7 @@ const initFormData: DyUserForm = {
|
||||
loginIp: undefined,
|
||||
loginDate: undefined,
|
||||
remark: undefined,
|
||||
leveId: undefined,
|
||||
levelId: undefined,
|
||||
birthday: undefined,
|
||||
age: undefined,
|
||||
address: undefined,
|
||||
@@ -383,7 +405,7 @@ const data = reactive<PageData<DyUserForm, DyUserQuery>>({
|
||||
status: undefined,
|
||||
loginIp: undefined,
|
||||
loginDate: undefined,
|
||||
leveId: undefined,
|
||||
levelId: undefined,
|
||||
birthday: undefined,
|
||||
age: undefined,
|
||||
address: undefined,
|
||||
@@ -451,6 +473,8 @@ const cancel = () => {
|
||||
inviteListDialog.params.pageNum = 1;
|
||||
orderListDialog.visible = false;
|
||||
orderListDialog.params.pageNum = 1;
|
||||
obtainedItemsDialog.visible = false;
|
||||
obtainedItemsDialog.params.pageNum = 1;
|
||||
};
|
||||
|
||||
/** 表单重置 */
|
||||
@@ -554,7 +578,8 @@ const openNoteListDialog = async (row?: any) => {
|
||||
if (row.id) {
|
||||
noteListDialog.params.userId = row?.id;
|
||||
}
|
||||
let res = await listNotebook(noteListDialog.params);
|
||||
loading.value = true;
|
||||
let res = await listNotebook(noteListDialog.params).finally(()=>{loading.value = false});
|
||||
noteListDialog.articleList=res.rows;
|
||||
noteListDialog.total=res.total;
|
||||
noteListDialog.visible = true;
|
||||
@@ -577,7 +602,8 @@ const openPartyListDialog = async (row: any) => {
|
||||
if (row.id) {
|
||||
partyListDialog.params.userId = row?.id;
|
||||
}
|
||||
let res = await listActivity(partyListDialog.params);
|
||||
loading.value = true;
|
||||
let res = await listActivity(partyListDialog.params).finally(()=>{loading.value = false});;
|
||||
partyListDialog.partyList = res.rows;
|
||||
partyListDialog.total = res.total;
|
||||
partyListDialog.visible = true;
|
||||
@@ -603,7 +629,8 @@ const openScenicListDialog = async (row: DyUserVO) => {
|
||||
if (row.id) {
|
||||
scenicListDialog.params.userId = row?.id;
|
||||
}
|
||||
let res = await userSights(scenicListDialog.params);
|
||||
loading.value = true;
|
||||
let res = await userSights(scenicListDialog.params).finally(()=>{loading.value = false});;
|
||||
scenicListDialog.scenicList = res.rows;
|
||||
scenicListDialog.total = res.total;
|
||||
scenicListDialog.visible = true;
|
||||
@@ -629,7 +656,8 @@ const openCityListDialog = async (row: DyUserVO) => {
|
||||
if (row.id) {
|
||||
cityListDialog.params.userId = row?.id;
|
||||
}
|
||||
let res = await userCity(cityListDialog.params);
|
||||
loading.value = true;
|
||||
let res = await userCity(cityListDialog.params).finally(()=>{loading.value = false});;
|
||||
cityListDialog.cityList = res.rows;
|
||||
cityListDialog.total = res.total;
|
||||
cityListDialog.visible = true;
|
||||
@@ -652,7 +680,8 @@ const openPostcardListDialog = async (row: DyUserVO) => {
|
||||
if (row.id) {
|
||||
postcardListDialog.params.userId = row?.id;
|
||||
}
|
||||
let res = await userPostcard(postcardListDialog.params);
|
||||
loading.value = true;
|
||||
let res = await userPostcard(postcardListDialog.params).finally(()=>{loading.value = false});;
|
||||
postcardListDialog.postcardList = res.rows;
|
||||
postcardListDialog.total = res.total;
|
||||
postcardListDialog.visible = true;
|
||||
@@ -675,12 +704,36 @@ const openOrderListDialog = async (row: DyUserVO) => {
|
||||
if (row.id) {
|
||||
orderListDialog.params.userId = row?.id;
|
||||
}
|
||||
let res = await userOrders(orderListDialog.params);
|
||||
loading.value = true;
|
||||
let res = await userOrders(orderListDialog.params).finally(()=>{loading.value = false});;
|
||||
orderListDialog.postcardList = res.rows;
|
||||
orderListDialog.total = res.total;
|
||||
orderListDialog.visible = true;
|
||||
orderListDialog.visible = true;
|
||||
};
|
||||
/**
|
||||
* 获得的物品
|
||||
*/
|
||||
const obtainedItemsDialog = reactive({
|
||||
visible: false,
|
||||
total: 0,
|
||||
obtainedList: [],
|
||||
params: {
|
||||
userId: null,
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
},
|
||||
})
|
||||
const openObtainedItemsListDialog = async (row: DyUserVO) => {
|
||||
if (row.id) {
|
||||
obtainedItemsDialog.params.userId = row?.id;
|
||||
}
|
||||
loading.value = true;
|
||||
let res = await userOrders(obtainedItemsDialog.params).finally(()=>{loading.value = false});;
|
||||
obtainedItemsDialog.obtainedList = res.rows;
|
||||
obtainedItemsDialog.total = res.total;
|
||||
obtainedItemsDialog.visible = true;
|
||||
};
|
||||
/**
|
||||
* 用户邀请列表
|
||||
*/
|
||||
@@ -698,7 +751,8 @@ const openInviteListDialog = async (row: DyUserVO) => {
|
||||
if (row.id) {
|
||||
inviteListDialog.params.userId = row?.id;
|
||||
}
|
||||
let res = await userInvite(inviteListDialog.params);
|
||||
loading.value = true;
|
||||
let res = await userInvite(inviteListDialog.params).finally(()=>{loading.value = false});;
|
||||
inviteListDialog.inviteList = res.rows;
|
||||
inviteListDialog.total = res.total;
|
||||
inviteListDialog.visible = true;
|
||||
|
||||
@@ -10,7 +10,8 @@
|
||||
<el-form-item label="发布状态" prop="status">
|
||||
<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="1" />
|
||||
<el-option label="已发布" value="2" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
@@ -24,7 +25,7 @@
|
||||
</transition>
|
||||
|
||||
<el-card shadow="never">
|
||||
<el-table v-loading="loading" :data="hotelList">
|
||||
<el-table v-loading="loading" :data="hotelList" border>
|
||||
<el-table-column fixed label="序号" align="center" width="80">
|
||||
<template #default="scope">
|
||||
<span>{{ (queryParams.pageNum - 1) * queryParams.pageSize + scope.$index + 1 }}</span>
|
||||
@@ -36,7 +37,8 @@
|
||||
<el-table-column label="联系方式" align="center" prop="number" />
|
||||
<el-table-column label="状态" align="center" prop="status">
|
||||
<template #default="scope">
|
||||
<el-tag v-if="scope.row.status == 1" type="primary">已发布</el-tag>
|
||||
<el-tag v-if="scope.row.status == 1" type="success">审核中</el-tag>
|
||||
<el-tag v-if="scope.row.status == 2" type="primary">已发布</el-tag>
|
||||
<el-tag v-if="scope.row.status == 0" type="info">未发布</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
@@ -44,16 +46,16 @@
|
||||
<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">
|
||||
<el-tooltip v-if="scope.row.status == 0" content="编辑" placement="top">
|
||||
<el-button v-hasPermi="['manage:hotel:edit']" link type="primary" @click="handleUpdate(scope.row)">编辑</el-button>
|
||||
</el-tooltip>
|
||||
<el-tooltip v-if="scope.row.status != 1" content="删除" placement="top">
|
||||
<el-tooltip v-if="scope.row.status == 0" content="删除" placement="top">
|
||||
<el-button v-hasPermi="['manage:hotel:remove']" link type="primary" @click="handleDelete(scope.row)">删除</el-button>
|
||||
</el-tooltip>
|
||||
<el-tooltip v-if="scope.row.status == 0" content="发布" placement="top">
|
||||
<el-button v-hasPermi="['manage:hotel:remove']" link type="primary" @click="handleEdit(scope.row)">发布</el-button>
|
||||
</el-tooltip>
|
||||
<el-tooltip v-if="scope.row.status == 1" content="撤销发布" placement="top">
|
||||
<el-tooltip v-if="scope.row.status == 2" content="撤销发布" placement="top">
|
||||
<el-button v-hasPermi="['manage:hotel:remove']" link type="primary" @click="handleEdit(scope.row)">撤销发布</el-button>
|
||||
</el-tooltip>
|
||||
</template>
|
||||
@@ -87,17 +89,24 @@
|
||||
<el-col :span="24">
|
||||
<el-form-item label="地理位置" prop="address">
|
||||
<!-- <el-input v-model="searchLocation" type="text" placeholder="请输入地址信息" clearable /> -->
|
||||
<el-input
|
||||
v-model="form.address"
|
||||
<el-select
|
||||
v-model="searchLocation"
|
||||
filterable
|
||||
remote
|
||||
reserve-keyword
|
||||
clearable
|
||||
placeholder="请输入地址信息"
|
||||
class="input-with-select"
|
||||
style="width: 300px"
|
||||
@keyup.enter="debouncedSearch(form.address)"
|
||||
:remote-method="remoteMethod"
|
||||
@change="selectChnange"
|
||||
>
|
||||
<template #append>
|
||||
<el-button :icon="Search" @click="debouncedSearch(form.address)" />
|
||||
</template>
|
||||
</el-input>
|
||||
<el-option
|
||||
v-for="item in locationOptions"
|
||||
:key="item.id"
|
||||
:label="item.title + '      ' + item.province + ' - ' + item.city + '-' + item.district"
|
||||
:value="item.province + item.city + item.title"
|
||||
/>
|
||||
<!-- :value="item.ad_info.province+item.ad_info.city+item.title" /> -->
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<tlbs-map
|
||||
v-if="dialog.visible"
|
||||
@@ -112,6 +121,15 @@
|
||||
>
|
||||
<tlbs-multi-marker :geometries="geometries" :styles="styles" :options="options" />
|
||||
</tlbs-map>
|
||||
<el-form-item label="详细地址" prop="address" style="margin-top: 15px">
|
||||
<el-input v-model="form.address" placeholder="输入地理位置或点击度图上的地点" disabled />
|
||||
</el-form-item>
|
||||
<el-form-item label="经度" prop="longitude">
|
||||
<el-input v-model="form.longitude" placeholder="输入地理位置或点击度图上的地点" disabled />
|
||||
</el-form-item>
|
||||
<el-form-item label="纬度" prop="latitude">
|
||||
<el-input v-model="form.latitude" placeholder="输入地理位置或点击度图上的地点" disabled />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-form>
|
||||
@@ -143,6 +161,7 @@ const idsname = ref([]);
|
||||
const single = ref(true);
|
||||
const multiple = ref(true);
|
||||
const total = ref(0);
|
||||
const locationOptions = ref([]); //腾讯地图返回的搜索地址列表
|
||||
|
||||
const queryFormRef = ref<ElFormInstance>();
|
||||
const hotelFormRef = ref<ElFormInstance>();
|
||||
@@ -251,8 +270,9 @@ const handleAdd = () => {
|
||||
reset();
|
||||
dialog.visible = true;
|
||||
dialog.title = '添加住宿';
|
||||
geometries.value = [{ styleId: 'marker', position: { lat: form.value.latitude || 39.145902, lng: form.value.longitude || 117.17546 } }];
|
||||
center.value = { lat: form.value.latitude || 39.145902, lng: form.value.longitude || 117.17546 };
|
||||
searchLocation.value = '';
|
||||
geometries.value = [{ styleId: 'marker', position: { lat: form.value.latitude || 20.018883, lng: form.value.longitude || 110.348801 } }];
|
||||
center.value = { lat: form.value.latitude || 20.018883, lng: form.value.longitude || 110.348801 };
|
||||
};
|
||||
|
||||
/** 修改按钮操作 */
|
||||
@@ -264,6 +284,7 @@ const handleUpdate = async (row?: HotelVO) => {
|
||||
Object.assign(form.value, res.data);
|
||||
center.value = { lat: row.latitude, lng: row.longitude };
|
||||
geometries.value = [{ styleId: 'marker', position: { lat: row.latitude, lng: row.longitude } }];
|
||||
searchLocation.value = form.value.address;
|
||||
dialog.visible = true;
|
||||
dialog.title = '修改住宿';
|
||||
};
|
||||
@@ -303,12 +324,12 @@ const handleEdit = async (row?: HotelVO) => {
|
||||
const res = await getHotel(_id);
|
||||
Object.assign(form.value, res.data);
|
||||
const _idname = row?.name;
|
||||
const text = row?.status != 1 ? '是否确认发布商家名称为"' : '是否撤销发布商家名称为"';
|
||||
const messages = row?.status != 1 ? '发布成功' : '撤销成功';
|
||||
const text = row?.status == 0 ? '是否确认发布商家名称为"' : '是否撤销发布商家名称为"';
|
||||
const messages = row?.status == 0 ? '发布成功' : '撤销成功';
|
||||
await proxy?.$modal.confirm(text + _idname + '"的数据项?').finally(() => (loading.value = false));
|
||||
const template = {
|
||||
...row,
|
||||
status: row.status == 1 ? 0 : 1,
|
||||
status: row.status == 0 ? 1 : 0,
|
||||
regionCode: row?.county || row?.city || row?.province
|
||||
};
|
||||
// form.value.name = row.name
|
||||
@@ -316,7 +337,35 @@ const handleEdit = async (row?: HotelVO) => {
|
||||
proxy?.$modal.msgSuccess(messages);
|
||||
await getList();
|
||||
};
|
||||
|
||||
// 地理位置 输入实时搜索
|
||||
const remoteMethod = (query: string) => {
|
||||
if (query !== '') {
|
||||
// 调用腾讯地图API进行搜索,并展示在地图上
|
||||
// geocoder(query).then((result) => {
|
||||
// console.log(result);
|
||||
// });
|
||||
console.log(query);
|
||||
// jsonp(`https://apis.map.qq.com/ws/place/v1/search?key=${'6XFBZ-SAVLT-JGIX2-VOLMK-6S2H3-XUBGO'}&keyword=${encodeURI(query)}&boundary=nearby(20.018883,110.348801,1000)&output=jsonp`, {}).then((res) => {
|
||||
jsonp(
|
||||
`https://apis.map.qq.com/ws/place/v1/suggestion?key=${'6XFBZ-SAVLT-JGIX2-VOLMK-6S2H3-XUBGO'}&keyword=${encodeURI(query)}®ion=三亚市®ion_fix=0&output=jsonp`,
|
||||
{}
|
||||
).then((res) => {
|
||||
// if (res.region.title!=='海南省') {
|
||||
// proxy?.$modal.msgError('仅支持海南省地理位置');
|
||||
// return
|
||||
// }
|
||||
if (res.status == 0) {
|
||||
locationOptions.value = res.data;
|
||||
}
|
||||
});
|
||||
}
|
||||
};
|
||||
// 选择地理位置 下拉框值变化
|
||||
const selectChnange = (val: string) => {
|
||||
if (val) {
|
||||
debouncedSearch(searchLocation.value);
|
||||
}
|
||||
};
|
||||
//输入位置,搜索位置
|
||||
const performSearch = async (text) => {
|
||||
// 这里简单模拟延迟,模拟真实的异步请求耗时
|
||||
@@ -338,7 +387,8 @@ const performSearch = async (text) => {
|
||||
data.result.address_components.city +
|
||||
data.result.address_components.district +
|
||||
data.result.address_components.street +
|
||||
data.result.address_components.street_number;
|
||||
data.result.address_components.street_number +
|
||||
data.result.title;
|
||||
form.value.latitude = data.result.location.lat;
|
||||
form.value.longitude = data.result.location.lng;
|
||||
// form.value.region = data.result.ad_info.adcode; //行政区划编码
|
||||
@@ -368,7 +418,8 @@ const onClick = (e: any) => {
|
||||
data.result.address_component.city +
|
||||
data.result.address_component.district +
|
||||
data.result.address_component.street +
|
||||
data.result.address_component.street_number;
|
||||
data.result.address_component.street_number +
|
||||
data.result.formatted_addresses.recommend;
|
||||
form.value.latitude = data.result.location.lat;
|
||||
form.value.longitude = data.result.location.lng;
|
||||
// form.value.province = data.result.address_component.province;
|
||||
@@ -385,8 +436,8 @@ const onClick = (e: any) => {
|
||||
const debouncedSearch = debounce(performSearch, 300); // 创建防抖后的搜索函数,延迟设为300毫秒
|
||||
|
||||
const map = ref(null);
|
||||
const center = ref({ lat: form.value.latitude || 39.145902, lng: form.value.longitude || 117.17546 });
|
||||
const zoom = ref(20);
|
||||
const center = ref({ lat: form.value.latitude || 20.018883, lng: form.value.longitude || 110.348801 });
|
||||
const zoom = ref(17);
|
||||
const control = reactive({
|
||||
scale: {},
|
||||
zoom: {
|
||||
@@ -394,7 +445,7 @@ const control = reactive({
|
||||
}
|
||||
});
|
||||
const searchLocation = ref(''); // 搜索地点
|
||||
const geometries = ref([{ styleId: 'marker', position: { lat: form.value.latitude || 39.145902, lng: form.value.longitude || 117.17546 } }]);
|
||||
const geometries = ref([{ styleId: 'marker', position: { lat: form.value.latitude || 20.018883, lng: form.value.longitude || 110.348801 } }]);
|
||||
const styles = reactive({
|
||||
marker: {
|
||||
width: 20,
|
||||
|
||||
@@ -116,7 +116,7 @@
|
||||
</el-select>
|
||||
<span style="margin: 0px 10px;"> + </span>
|
||||
<el-select v-model="item.goodsId" placeholder="请选择" style="width: 120px"
|
||||
:disabled="dialog.type == 'preview'" clearable>
|
||||
:disabled="dialog.type == 'preview'" clearable @visible-change="getProductAllList">
|
||||
<el-option v-for="item in productAllList" :key="item.id" :label="item.productName" :value="item.id" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
@@ -223,9 +223,9 @@ import { listProductCategory } from '@/api/manage/productCategory';
|
||||
import { listVendor } from '@/api/manage/vendor';
|
||||
onMounted(() => {
|
||||
getList();
|
||||
getProductAllList(true); //商品列表
|
||||
getlistVendor(); //供应商列表
|
||||
getProductCategoryList(); //商品类别列表
|
||||
getProductAllList(); //商品列表 下拉选择 不分页
|
||||
});
|
||||
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
|
||||
const mkConfigList = ref<MkConfigVO[]>([]);
|
||||
@@ -505,13 +505,16 @@ const getlistVendor = async () => {
|
||||
listVendorList.value = res.rows;
|
||||
}
|
||||
/**
|
||||
* 商品列表 下拉选择
|
||||
* 商品列表 下拉选择 //商品列表 下拉选择 不分页
|
||||
*/
|
||||
const productAllList=ref([]);
|
||||
const getProductAllList=()=>{
|
||||
productAll({status:1}).then(res=>{
|
||||
const getProductAllList=(e:any)=>{
|
||||
console.log(e);
|
||||
if (e) {
|
||||
productAll({status:2}).then(res=>{
|
||||
Object.assign(productAllList.value,res.data)
|
||||
})
|
||||
}
|
||||
}
|
||||
/**
|
||||
* 格式化商品类别名称
|
||||
|
||||
@@ -47,12 +47,12 @@
|
||||
<el-table-column label="设置得奖人数" align="center" prop="awardConfigCount" />
|
||||
<el-table-column label="参与人数" align="center" prop="joinCount">
|
||||
<template #default="scope">
|
||||
<el-button type="primary" link>{{ scope.row.joinCount }}</el-button>
|
||||
<el-button type="primary" link @click="handleJoin(scope.row)">{{ scope.row.joinCount }}</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="实际得奖人数" align="center" prop="awardCount">
|
||||
<template #default="scope">
|
||||
<el-button type="primary" link>{{ scope.row.awardCount }}</el-button>
|
||||
<el-button link type="primary" @click="handleAward(scope.row)">{{ scope.row.awardCount }}</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="拼图碎片获得人数" align="center" prop="awardCount">
|
||||
@@ -222,6 +222,79 @@
|
||||
<el-table-column prop="joinCount" label="获得人数" />
|
||||
</el-table>
|
||||
</el-dialog>
|
||||
<!-- 拼图参与人数-->
|
||||
<el-dialog v-model="mkpeoplenum.visible" :title="mkpeoplenum.title" width="50%" append-to-body>
|
||||
<el-table :data="mkpeoplenumdata" border style="width: 100%">
|
||||
<el-table-column prop="nickName" label="用户昵称" width="180" />
|
||||
<el-table-column prop="avatar" label="用户图片" width="180" />
|
||||
<el-table-column prop="createTime" label="参与时间" />
|
||||
</el-table>
|
||||
<pagination
|
||||
v-show="mkpeopletotal > 0"
|
||||
v-model:page="mkpeoplenumParams.pageNum"
|
||||
v-model:limit="mkpeoplenumParams.pageSize"
|
||||
:total="mkpeopletotal"
|
||||
@pagination="getList"
|
||||
/>
|
||||
</el-dialog>
|
||||
<!-- 获奖人员 -->
|
||||
<el-dialog v-model="mkReward.visible" title="获奖人员" width="600px" append-to-body>
|
||||
<div>
|
||||
<el-table :data="mkRewardUserLists" border style="width: 100%">
|
||||
<el-table-column prop="userId" label="用户ID" />
|
||||
<el-table-column prop="nickName" label="昵称" />
|
||||
<el-table-column prop="" label="获得奖品">
|
||||
<template #default="scope">
|
||||
<el-button link type="primary" @click="getproductInfo(scope.row.productId)">查看详情</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</div>
|
||||
<template #footer>
|
||||
<div class="dialog-footer">
|
||||
<el-button @click="cancel">关 闭</el-button>
|
||||
</div>
|
||||
</template>
|
||||
</el-dialog>
|
||||
<!-- 奖品详情 -->
|
||||
<el-dialog v-model="productInfo.visible" title="奖品详情" width="600px" append-to-body>
|
||||
<div>
|
||||
<el-form ref="" :model="productInfo.form" label-width="70px">
|
||||
<el-row :gutter="10" style="margin-bottom: 10px; margin-right: 5px !important">
|
||||
<el-col :span="8">
|
||||
<el-form-item label="商品名称" prop="">
|
||||
<span>{{ productInfo.form.productName }}</span>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="商品类别" prop="">
|
||||
<span>{{ formatCategoryName(productInfo.form.categoryId) }}</span>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="供应商" prop="">
|
||||
<span>{{ formatVendorName(productInfo.form.vendorId) }}</span>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="商品图片" prop="">
|
||||
<image-preview :src="productInfo.form.image" :width="100" :height="100" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="商品说明" prop="">
|
||||
<span>{{ productInfo.form.productShows }}</span>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-form>
|
||||
</div>
|
||||
<template #footer>
|
||||
<div class="dialog-footer">
|
||||
<el-button @click="cancelProductInfo()">关 闭</el-button>
|
||||
</div>
|
||||
</template>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -234,9 +307,13 @@ import {
|
||||
updateMkJigsaw,
|
||||
productall,
|
||||
mkJigsawDetaillist,
|
||||
productCategoryall
|
||||
productCategoryall,
|
||||
mkJoinlist
|
||||
} from '@/api/manage/mkJigsaw';
|
||||
import { MkJigsawVO, MkJigsawQuery, MkJigsawForm } from '@/api/manage/mkJigsaw/types';
|
||||
import { mkRewardUserList } from '@/api/manage/mkConfig';
|
||||
import { listProductCategory } from '@/api/manage/productCategory';
|
||||
import { getProduct } from '@/api/manage/product';
|
||||
|
||||
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
|
||||
const { mk_jigsaw_task_catagory } = toRefs<any>(proxy?.useDict('mk_jigsaw_task_catagory'));
|
||||
@@ -249,12 +326,14 @@ const ids = ref<Array<string | number>>([]);
|
||||
const single = ref(true);
|
||||
const multiple = ref(true);
|
||||
const total = ref(0);
|
||||
const mkpeopletotal = ref(0);
|
||||
const value2 = ref('');
|
||||
const queryFormRef = ref<ElFormInstance>();
|
||||
const mkJigsawFormRef = ref<ElFormInstance>();
|
||||
const imagegoodsoptions = ref([]);
|
||||
const goodsdata = ref([]);
|
||||
const imagelistdata = ref([]);
|
||||
const mkpeoplenumdata = ref([]);
|
||||
const note_publish_list = ref([
|
||||
{ label: '已发布', value: 2 },
|
||||
{ label: '审核中', value: 1 },
|
||||
@@ -266,11 +345,40 @@ const dialog = reactive<DialogOption>({
|
||||
visible: false,
|
||||
title: ''
|
||||
});
|
||||
|
||||
const mkRewardUserParams = reactive({
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
bizId: null
|
||||
});
|
||||
const taskid = ref('');
|
||||
const mkReward = reactive({
|
||||
visible: false
|
||||
});
|
||||
const productInfo = reactive({
|
||||
visible: false,
|
||||
form: {
|
||||
image: null,
|
||||
vendorId: null,
|
||||
categoryId: null,
|
||||
productName: null,
|
||||
productShows: null
|
||||
}
|
||||
});
|
||||
const mkpeoplenumParams = reactive({
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
bizId: null,
|
||||
type: 2
|
||||
});
|
||||
const mksave = reactive<DialogOption>({
|
||||
visible: false,
|
||||
title: '拼图详情'
|
||||
});
|
||||
const mkpeoplenum = reactive<DialogOption>({
|
||||
visible: false,
|
||||
title: '参与人数'
|
||||
});
|
||||
|
||||
const imagedialog = reactive<DialogOption>({
|
||||
visible: false,
|
||||
title: '拼图碎片获得人数'
|
||||
@@ -364,6 +472,7 @@ const getList = async () => {
|
||||
const cancel = () => {
|
||||
reset();
|
||||
dialog.visible = false;
|
||||
mkReward.visible = false;
|
||||
};
|
||||
|
||||
/** 表单重置 */
|
||||
@@ -395,6 +504,8 @@ const handleSelectionChange = (selection: MkJigsawVO[]) => {
|
||||
/** 新增按钮操作 */
|
||||
const handleAdd = () => {
|
||||
reset();
|
||||
getlistVendor(); //供应商列表
|
||||
getProductCategoryList(); //商品类别列表
|
||||
dialog.visible = true;
|
||||
goodsdata.value = [];
|
||||
value2.value = [];
|
||||
@@ -570,10 +681,89 @@ const mkdatetime = () => {
|
||||
form.value.endDate = value2.value[1];
|
||||
}
|
||||
};
|
||||
//参与人数
|
||||
const handleJoin = async (row) => {
|
||||
taskid.value = row.id;
|
||||
getmkpeoplenlist();
|
||||
};
|
||||
const getmkpeoplenlist = async () => {
|
||||
mkpeoplenumParams.bizId = taskid;
|
||||
const res = await mkJoinlist(mkpeoplenumParams);
|
||||
mkpeoplenumdata.value = res.rows;
|
||||
mkpeopletotal.value = res.total;
|
||||
mkpeoplenum.visible = true;
|
||||
};
|
||||
|
||||
//关闭奖品详情
|
||||
const cancelProductInfo = () => {
|
||||
productInfo.visible = false;
|
||||
};
|
||||
/**
|
||||
* 查看奖品详情
|
||||
* @param productId
|
||||
*/
|
||||
const getproductInfo = async (productId: any) => {
|
||||
const res = await getProduct(productId);
|
||||
productInfo.form = res.data;
|
||||
productInfo.visible = true;
|
||||
};
|
||||
const mkRewardUserLists = ref([]);
|
||||
|
||||
const handleAward = async (row: any) => {
|
||||
loading.value = true;
|
||||
mkRewardUserParams.bizId = row.id;
|
||||
const res = await mkRewardUserList(mkRewardUserParams).finally(() => (loading.value = false));
|
||||
mkRewardUserLists.value = res.rows;
|
||||
mkReward.visible = true;
|
||||
|
||||
// dialog.title = "修改营销配置";
|
||||
};
|
||||
/**
|
||||
* 供应商列表
|
||||
*/
|
||||
const listVendorList = ref([]);
|
||||
const getlistVendor = async () => {
|
||||
let res = await listVendor({ pageNum: 1, pageSize: 9999 });
|
||||
listVendorList.value = res.rows;
|
||||
};
|
||||
/**
|
||||
* 格式化 供应商名称
|
||||
* @param id
|
||||
*/
|
||||
const formatVendorName = (id: any) => {
|
||||
for (let i = 0; i < listVendorList.value.length; i++) {
|
||||
const element = listVendorList.value[i];
|
||||
if (element.id == id) {
|
||||
return element.vendorName;
|
||||
}
|
||||
}
|
||||
};
|
||||
/**
|
||||
* 商品类别列表
|
||||
*/
|
||||
const productCategoryList = ref([]);
|
||||
const getProductCategoryList = async () => {
|
||||
let res = await listProductCategory({ pageNum: 1, pageSize: 9999 });
|
||||
productCategoryList.value = res.rows;
|
||||
};
|
||||
/**
|
||||
* 格式化商品类别名称
|
||||
* @param row
|
||||
*/
|
||||
const formatCategoryName = (id: any) => {
|
||||
for (let i = 0; i < productCategoryList.value.length; i++) {
|
||||
const element = productCategoryList.value[i];
|
||||
if (element.id == id) {
|
||||
return element.category;
|
||||
}
|
||||
}
|
||||
};
|
||||
onMounted(() => {
|
||||
getList();
|
||||
getproductall();
|
||||
goodleibie();
|
||||
getlistVendor(); //供应商列表
|
||||
getProductCategoryList(); //商品类别列表
|
||||
});
|
||||
</script>
|
||||
<style>
|
||||
|
||||
@@ -14,8 +14,9 @@
|
||||
<!-- <el-input class="inputWidth" v-model="queryParams.sortNum" placeholder="请输入排序" clearable
|
||||
@keyup.enter="handleQuery" /> -->
|
||||
<el-select v-model="queryParams.status" placeholder="请选择状态" clearable class="inputWidth">
|
||||
<el-option label="已上架" :value="1"></el-option>
|
||||
<el-option label="未上架" :value="0"></el-option>
|
||||
<el-option label="审核中" :value="1"></el-option>
|
||||
<el-option label="已上架" :value="2"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
@@ -58,7 +59,8 @@
|
||||
<el-table-column label="状态" align="center" prop="status">
|
||||
<template #default="scope">
|
||||
<el-tag v-if="scope.row.status == 0" type="info">未上架</el-tag>
|
||||
<el-tag v-if="scope.row.status == 1" type="primary">已上架</el-tag>
|
||||
<el-tag v-if="scope.row.status == 1" type="success">审核中</el-tag>
|
||||
<el-tag v-if="scope.row.status == 2" type="primary">已上架</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="创建者" align="center" prop="updateByName" />
|
||||
@@ -67,7 +69,7 @@
|
||||
<template #default="scope">
|
||||
<el-button link type="primary" @click="handleStatus(scope.row,'1')" v-if="scope.row.status == 0"
|
||||
v-hasPermi="['manage:mkPostcard:edit']">上架</el-button>
|
||||
<el-button link type="primary" @click="handleStatus(scope.row,'0')" v-if="scope.row.status == 1"
|
||||
<el-button link type="primary" @click="handleStatus(scope.row,'0')" v-if="scope.row.status == 2"
|
||||
v-hasPermi="['manage:mkPostcard:edit']">下架</el-button>
|
||||
<el-tooltip content="编辑" placement="top" v-if="scope.row.status == 0">
|
||||
<el-button link type="primary" @click="handleUpdate(scope.row)"
|
||||
@@ -90,7 +92,7 @@
|
||||
<el-input v-model="form.name" placeholder="请输入明信片名称" />
|
||||
</el-form-item>
|
||||
<el-form-item label="关联景点" prop="articleId">
|
||||
<el-select v-model="form.articleId" placeholder="请选择关联景点" clearable>
|
||||
<el-select v-model="form.articleId" placeholder="请选择关联景点" clearable @visible-change="getContentAll">
|
||||
<el-option v-for="(item,index) in contentAllList" :key="item.id" :label="item.name"
|
||||
:value="item.id"></el-option>
|
||||
</el-select>
|
||||
@@ -215,9 +217,11 @@ const getList = async () => {
|
||||
* 查询景点下拉列表
|
||||
*/
|
||||
const contentAllList= ref([]);
|
||||
const getContentAll = async () => {
|
||||
const getContentAll = async (e:any) => {
|
||||
if (e) {
|
||||
const res = await contentAll({type:'0',status:2});
|
||||
Object.assign(contentAllList.value, res);
|
||||
}
|
||||
}
|
||||
/** 取消按钮 */
|
||||
const cancel = () => {
|
||||
@@ -355,7 +359,6 @@ const handlePostcard = async (row:MkPostcardVO)=>{
|
||||
}
|
||||
onMounted(() => {
|
||||
getList();
|
||||
getContentAll();
|
||||
nextTick(() => {
|
||||
autoTableHeight.value = proxy?.autoTableHeight();
|
||||
});
|
||||
|
||||
@@ -74,9 +74,9 @@
|
||||
<el-table-column label="发布状态" align="center" prop="status">
|
||||
<template #default="scope">
|
||||
<el-tag v-if="scope.row.status == 0" type="info">未发布</el-tag>
|
||||
<el-tag v-if="scope.row.status == 1" type="warning">草稿</el-tag>
|
||||
<el-tag v-if="scope.row.status == 2" type="success">审核中</el-tag>
|
||||
<el-tag v-if="scope.row.status == 3" type="primary">已发布</el-tag>
|
||||
<el-tag v-if="scope.row.status == 1" type="warning">审核中</el-tag>
|
||||
<el-tag v-if="scope.row.status == 2" type="success">已发布</el-tag>
|
||||
<el-tag v-if="scope.row.status == 3" type="primary">草稿</el-tag>
|
||||
|
||||
<!-- <image-preview :src="scope.row.productImageUrl" /> -->
|
||||
</template>
|
||||
@@ -85,8 +85,9 @@
|
||||
<el-table-column label="操作时间" align="center" prop="updateTime" width="200px" />
|
||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="150px">
|
||||
<template #default="scope">
|
||||
<div v-if="scope.row.userZombie == true">
|
||||
<el-button
|
||||
v-if="scope.row.status == 0 || scope.row.status == 1"
|
||||
v-if="scope.row.status == 0 || scope.row.status == 3"
|
||||
v-hasPermi="['manage:notebook:edit']"
|
||||
link
|
||||
type="primary"
|
||||
@@ -96,20 +97,21 @@
|
||||
<el-button v-if="scope.row.status == 0" v-hasPermi="['manage:notebook:edit']" link type="primary" @click="fabudata(scope.row)"
|
||||
>发布</el-button
|
||||
>
|
||||
<el-button v-if="scope.row.status == 3" v-hasPermi="['manage:notebook:edit']" link type="primary" @click="fabudata(scope.row)"
|
||||
<el-button v-if="scope.row.status == 2" v-hasPermi="['manage:notebook:edit']" link type="primary" @click="fabudata(scope.row)"
|
||||
>撤销发布</el-button
|
||||
>
|
||||
<!-- <el-tooltip content="发布" placement="top">-->
|
||||
<!-- <el-button v-hasPermi="['manage:notebook:edit']" link type="primary" icon="Edit" @click="handleUpdate(scope.row)"></el-button>-->
|
||||
<!-- </el-tooltip>-->
|
||||
<el-button
|
||||
v-if="scope.row.status == 0 || scope.row.status == 1"
|
||||
v-if="scope.row.status == 0 || scope.row.status == 3"
|
||||
v-hasPermi="['manage:notebook:remove']"
|
||||
link
|
||||
type="primary"
|
||||
@click="handleDelete(scope.row)"
|
||||
>删除</el-button
|
||||
>
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
@@ -143,7 +145,7 @@
|
||||
<div style="display: flex; justify-content: space-between">
|
||||
<div>
|
||||
<el-button :loading="buttonLoading" type="primary" @click="yulansave">预 览</el-button>
|
||||
<el-button @click="submitForm('1')">存草稿</el-button>
|
||||
<el-button @click="submitForm('3')">存草稿</el-button>
|
||||
</div>
|
||||
<div>
|
||||
<el-button @click="cancel">取 消</el-button>
|
||||
@@ -159,7 +161,7 @@
|
||||
<!-- 评论详情 -->
|
||||
<el-dialog v-model="comment.visible" title="评论详情" width="600px" append-to-body>
|
||||
<div class="commentList">
|
||||
<commentRows :biz-id="comment.bizId"></commentRows>
|
||||
<commentRows :biz-id="comment.bizId" :type="1"></commentRows>
|
||||
</div>
|
||||
<template #footer>
|
||||
<div class="dialog-footer noTopPadding">
|
||||
@@ -218,10 +220,10 @@ const props = defineProps({
|
||||
|
||||
const addressvalue = ref('');
|
||||
const statusoptions = ref([
|
||||
{ label: '已发布', value: 3 },
|
||||
{ label: '审核中', value: 2 },
|
||||
{ label: '未发布', value: 0 },
|
||||
{ label: '草稿', value: 1 }
|
||||
{ label: '审核中', value: 1 },
|
||||
{ label: '已发布', value: 2 },
|
||||
{ label: '草稿', value: 3 }
|
||||
]);
|
||||
const dialog = reactive<DialogOption>({
|
||||
visible: false,
|
||||
@@ -339,7 +341,7 @@ const getTag = async () => {
|
||||
};
|
||||
const getContent = async () => {
|
||||
const res = await contentall({ status: 2 });
|
||||
const arr = await hotelall({ status: 1 });
|
||||
const arr = await hotelall({ status: 2 });
|
||||
sys_user_contentOptions.value = res.concat(arr); //地点
|
||||
};
|
||||
|
||||
@@ -365,6 +367,9 @@ const handleQuery = () => {
|
||||
/** 重置按钮操作 */
|
||||
const resetQuery = () => {
|
||||
queryParams.value.status = '';
|
||||
queryParams.value.title = '';
|
||||
queryParams.value.location = '';
|
||||
queryParams.value.updateByName = '';
|
||||
queryFormRef.value?.resetFields();
|
||||
handleQuery();
|
||||
};
|
||||
@@ -379,6 +384,9 @@ const handleSelectionChange = (selection: NotebookVO[]) => {
|
||||
/** 新增按钮操作 */
|
||||
const handleAdd = () => {
|
||||
reset();
|
||||
getTag(); //标签库
|
||||
getContent();
|
||||
|
||||
dialog.visible = true;
|
||||
tagvalue.value = '';
|
||||
addressvalue.value = '';
|
||||
@@ -403,10 +411,10 @@ const fabudata = async (row?: NotebookVO) => {
|
||||
const _idtitle = row?.title;
|
||||
const res = await getNotebook(_id);
|
||||
Object.assign(form.value, res.data);
|
||||
form.value.status = row.status == 3 ? 0 : 2;
|
||||
const text = row.status == 3 ? '撤销发布' : '确认发布';
|
||||
const textmessage = row.status == 3 ? '撤销发布成功' : '发布成功';
|
||||
await proxy?.$modal.confirm('是否' + text + '笔记标题为' + _idtitle + '"的数据项?').finally(() => (loading.value = false));
|
||||
form.value.status = row.status == 2 ? 0 : 1;
|
||||
const text = row.status == 2 ? '撤销发布' : '确认发布';
|
||||
const textmessage = row.status == 2 ? '撤销发布成功' : '发布成功';
|
||||
await proxy?.$modal.confirm('是否' + text + '笔记标题为"' + _idtitle + '"的数据项?').finally(() => (loading.value = false));
|
||||
await updateNotebook(form.value).finally(() => (buttonLoading.value = false));
|
||||
proxy?.$modal.msgSuccess(`${textmessage}`);
|
||||
await getList();
|
||||
@@ -419,8 +427,8 @@ const contenttext = async (row?: NotebookVO) => {
|
||||
};
|
||||
/** 提交按钮 */
|
||||
const submitForm = async (type) => {
|
||||
form.value.tagId = tagvalue.value.join(',');
|
||||
form.value.location = addressvalue.value.join(',');
|
||||
form.value.tagId = tagvalue.value == '' ? '' : tagvalue.value.join(',');
|
||||
form.value.location = addressvalue.value == '' ? '' : addressvalue.value.join(',');
|
||||
form.value.cover = '';
|
||||
form.value.status = Number(type);
|
||||
form.value.content = form.value.content == '<p><br></p>' ? '' : form.value.content;
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
<el-input class="inputWidth" v-model="queryParams.productName" placeholder="请输入商品名称" clearable
|
||||
@keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="商品状态" prop="productShows">
|
||||
<el-form-item label="商品状态" prop="status">
|
||||
<el-select class="inputWidth" v-model="queryParams.status" placeholder="请选择商品状态" clearable>
|
||||
<el-option v-for="dict in sys_shelf_status" :key="dict.value" :label="dict.label" :value="dict.value" />
|
||||
</el-select>
|
||||
@@ -53,9 +53,9 @@
|
||||
<el-table-column label="排序" align="center" prop="sortNum" />
|
||||
<el-table-column label="商品状态" align="center" prop="status">
|
||||
<template #default="scope">
|
||||
<!-- <dict-tag :options="sys_shelf_status" :value="scope.row.status" /> -->
|
||||
<el-tag v-if="scope.row.status == 0" type="info">未上架</el-tag>
|
||||
<el-tag v-if="scope.row.status == 1" type="primary">已上架</el-tag>
|
||||
<dict-tag :options="sys_shelf_status" :value="scope.row.status" />
|
||||
<!-- <el-tag v-if="scope.row.status == 0" type="info">未上架</el-tag>
|
||||
<el-tag v-if="scope.row.status == 1" type="primary">已上架</el-tag> -->
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="供应商" align="center" prop="vendorId">
|
||||
@@ -76,7 +76,7 @@
|
||||
<el-button link type="primary" @click="handleStatus(scope.row,'1')" v-hasPermi="['manage:product:edit']"
|
||||
v-if="scope.row.status==0">上架</el-button>
|
||||
<el-button link type="primary" @click="handleStatus(scope.row,'0')" v-hasPermi="['manage:product:edit']"
|
||||
v-if="scope.row.status==1">下架</el-button>
|
||||
v-if="scope.row.status==2">下架</el-button>
|
||||
<el-tooltip content="编辑" placement="top" v-if="scope.row.status==0">
|
||||
<el-button link type="primary" @click="handleUpdate(scope.row)"
|
||||
v-hasPermi="['manage:product:edit']">编辑</el-button>
|
||||
|
||||
@@ -45,17 +45,17 @@
|
||||
<el-table v-loading="loading" :data="bannedList">
|
||||
<el-table-column v-if="queryParams.type == 1" label="笔记名称" align="center" prop="contentId">
|
||||
<template #default="scope">
|
||||
<el-button type="primary" link>{{ scope.row.contentName }}</el-button>
|
||||
<el-button type="primary" link :disabled="scope.row.handlingStatus == 1">{{ scope.row.contentName }}</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column v-if="queryParams.type == 2" label="活动名称" align="center" prop="contentId">
|
||||
<template #default="scope">
|
||||
<el-button type="primary" link>{{ scope.row.contentName }}</el-button>
|
||||
<el-button type="primary" link :disabled="scope.row.handlingStatus == 1">{{ scope.row.contentName }}</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column v-if="queryParams.type == 3" label="评论内容" align="center" prop="contentId">
|
||||
<template #default="scope">
|
||||
<el-button type="primary" link>{{ scope.row.contentName }}</el-button>
|
||||
<el-button type="primary" link :disabled="scope.row.handlingStatus == 1">{{ scope.row.contentName }}</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="用户ID" align="center" prop="reportUserId" />
|
||||
@@ -71,27 +71,54 @@
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="头像" align="center" prop="avatar" />
|
||||
<el-table-column label="举报理由" align="center" prop="reportReason" width="200px" show-overflow-tooltip />
|
||||
<el-table-column label="举报理由" align="center" prop="reportReason" width="150px" show-overflow-tooltip />
|
||||
<el-table-column label="举报人" align="center" prop="informerUserName" />
|
||||
<el-table-column label="举报时间" align="center" prop="createTime" width="200px" />
|
||||
<el-table-column label="操作时间" align="center" prop="updateTime" width="200px" />
|
||||
<el-table-column label="操作人" align="center" prop="updateName" width="150px" />
|
||||
<el-table-column label="用户状态" align="center" prop="status" width="150px">
|
||||
<template #default="scope">
|
||||
<el-tag v-if="scope.row.status == 1" type="info">禁言</el-tag>
|
||||
<el-tag v-if="scope.row.status == 2" type="warning">封禁</el-tag>
|
||||
<el-tag v-if="scope.row.status == 0" type="primary">正常</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="状态" align="center" prop="handlingStatus">
|
||||
<template #default="scope">
|
||||
<el-tag v-if="scope.row.handlingStatus == 0" type="info">未处理</el-tag>
|
||||
<el-tag v-if="scope.row.handlingStatus == 1" type="warning">已处理</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="150px">
|
||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="160px">
|
||||
<template #default="scope">
|
||||
<el-button v-hasPermi="['manage:report:edit']" link type="primary" @click="handleUpdate(scope.row)">封禁</el-button>
|
||||
<el-button v-if="queryParams.type == 1" v-hasPermi="['manage:report:remove']" link type="primary" @click="handleDelete(scope.row)"
|
||||
<el-button v-hasPermi="['manage:report:edit']" link type="primary" :disabled="scope.row.status != 0" @click="handleUpdate(scope.row)"
|
||||
>封禁</el-button
|
||||
>
|
||||
<el-button
|
||||
v-if="queryParams.type == 1"
|
||||
v-hasPermi="['manage:report:remove']"
|
||||
link
|
||||
type="primary"
|
||||
:disabled="scope.row.handlingStatus == 1"
|
||||
@click="handleDelete(scope.row)"
|
||||
>删除笔记</el-button
|
||||
>
|
||||
<el-button v-if="queryParams.type == 2" v-hasPermi="['manage:report:remove']" link type="primary" @click="handleDelete(scope.row)"
|
||||
<el-button
|
||||
v-if="queryParams.type == 2"
|
||||
v-hasPermi="['manage:report:remove']"
|
||||
link
|
||||
type="primary"
|
||||
:disabled="scope.row.handlingStatus == 1"
|
||||
@click="handleDelete(scope.row)"
|
||||
>删除活动</el-button
|
||||
>
|
||||
<el-button v-if="queryParams.type == 3" v-hasPermi="['manage:report:remove']" link type="primary" @click="handleDelete(scope.row)"
|
||||
<el-button
|
||||
v-if="queryParams.type == 3"
|
||||
v-hasPermi="['manage:report:remove']"
|
||||
link
|
||||
type="primary"
|
||||
:disabled="scope.row.handlingStatus == 1"
|
||||
@click="handleDelete(scope.row)"
|
||||
>删除评论</el-button
|
||||
>
|
||||
</template>
|
||||
@@ -103,13 +130,13 @@
|
||||
<!-- 添加或修改举报对话框 -->
|
||||
<el-dialog v-model="dialog.visible" :title="dialog.title" width="500px" append-to-body>
|
||||
<el-form ref="bannedFormRef" :model="form" :rules="rules" label-width="80px">
|
||||
<el-form-item label="封禁原因" prop="banReason">
|
||||
<el-form-item label="封禁原因" prop="reason">
|
||||
<el-select v-model="form.reason" placeholder="请选择封禁理由" clearable>
|
||||
<el-option v-for="dict in dy_banned_ban_reason" :key="dict.value" :label="dict.label" :value="dict.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="处理方式" prop="handlingMethod">
|
||||
<el-radio-group v-model="form.handlingMethod">
|
||||
<el-form-item label="处理方式" prop="status">
|
||||
<el-radio-group v-model="form.status">
|
||||
<el-radio value="1" size="large">禁言</el-radio>
|
||||
<el-radio value="2" size="large">封禁</el-radio>
|
||||
</el-radio-group>
|
||||
@@ -131,7 +158,7 @@
|
||||
</template>
|
||||
|
||||
<script setup name="Banned" lang="ts">
|
||||
import { listBanned, getBanned, delBanned, addBanned, updateBanned, userLevelall } from '@/api/manage/banned';
|
||||
import { listBanned, getBanned, delBanned, addBanned, updatemanage, userLevelall } from '@/api/manage/banned';
|
||||
import { BannedVO, BannedQuery, BannedForm } from '@/api/manage/banned/types';
|
||||
import { delNotebook } from '@/api/manage/notebook';
|
||||
|
||||
@@ -198,13 +225,13 @@ const data = reactive<PageData<BannedForm, BannedQuery>>({
|
||||
id: [{ required: true, message: '唯一标识ID不能为空', trigger: 'blur' }],
|
||||
contentId: [{ required: true, message: '被举报内容id不能为空', trigger: 'blur' }],
|
||||
reportUserId: [{ required: true, message: '被举报用户ID不能为空', trigger: 'blur' }],
|
||||
reportReason: [{ required: true, message: '举报理由不能为空', trigger: 'blur' }],
|
||||
reason: [{ required: true, message: '封禁理由不能为空', trigger: 'blur' }],
|
||||
reportDetails: [{ required: true, message: '举报详细信息不能为空', trigger: 'blur' }],
|
||||
informerUserId: [{ required: true, message: '举报人id不能为空', trigger: 'blur' }],
|
||||
banReason: [{ required: true, message: '封禁理由不能为空', trigger: 'blur' }],
|
||||
banDays: [{ required: true, message: '封禁天数不能为空', trigger: 'blur' }],
|
||||
handlingMethod: [{ required: true, message: '处理方式(0=未处理,1=已下架)不能为空', trigger: 'change' }],
|
||||
handlingStatus: [{ required: true, message: '状态(0=已发布,1=已下架)不能为空', trigger: 'change' }]
|
||||
status: [{ required: true, message: '处理方式不能为空', trigger: 'change' }]
|
||||
}
|
||||
});
|
||||
|
||||
@@ -265,22 +292,24 @@ const handleAdd = () => {
|
||||
const handleUpdate = async (row?: BannedVO) => {
|
||||
reset();
|
||||
const _id = row?.id || ids.value[0];
|
||||
const res = await getBanned(_id);
|
||||
Object.assign(form.value, res.data);
|
||||
// const res = await getBanned(_id);
|
||||
Object.assign(form.value,row);
|
||||
dialog.visible = true;
|
||||
dialog.title = `封禁【${row.nickname}】`;
|
||||
dialog.title = `封禁【${row.nickName}】`;
|
||||
};
|
||||
|
||||
/** 提交按钮 */
|
||||
const submitForm = () => {
|
||||
bannedFormRef.value?.validate(async (valid: boolean) => {
|
||||
const arr = {
|
||||
...form.value,
|
||||
id: form.value.reportUserId,
|
||||
type: queryParams.value.type,
|
||||
deleteType: 0
|
||||
};
|
||||
if (valid) {
|
||||
buttonLoading.value = true;
|
||||
if (form.value.id) {
|
||||
await updateBanned(form.value).finally(() => (buttonLoading.value = false));
|
||||
} else {
|
||||
await addBanned(form.value).finally(() => (buttonLoading.value = false));
|
||||
}
|
||||
await updatemanage(arr).finally(() => (buttonLoading.value = false));
|
||||
proxy?.$modal.msgSuccess('操作成功');
|
||||
dialog.visible = false;
|
||||
await getList();
|
||||
@@ -292,9 +321,16 @@ const submitForm = () => {
|
||||
const handleDelete = async (row?: BannedVO) => {
|
||||
const _ids = row?.contentId;
|
||||
const _idsname = row?.contentName;
|
||||
const arr = {
|
||||
id: row?.id,
|
||||
contentId: row?.contentId,
|
||||
type: queryParams.value.type,
|
||||
handlingStatus: 1,
|
||||
deleteType: 1
|
||||
};
|
||||
const text = queryParams.value.type == 1 ? '笔记名称为“' : queryParams.value.type == 2 ? '活动名称为“' : '评论内容为“';
|
||||
await proxy?.$modal.confirm('是否确认删除' + text + _idsname + '"的数据项?').finally(() => (loading.value = false));
|
||||
await delNotebook(_ids);
|
||||
await updatemanage(arr);
|
||||
proxy?.$modal.msgSuccess('删除成功');
|
||||
await getList();
|
||||
};
|
||||
|
||||
@@ -72,15 +72,15 @@
|
||||
<el-table-column label="发布状态" align="center" prop="status">
|
||||
<template #default="scope">
|
||||
<el-tag v-if="scope.row.status == 0" type="info">未发布</el-tag>
|
||||
<el-tag v-if="scope.row.status == 1" type="warning">草稿</el-tag>
|
||||
<el-tag v-if="scope.row.status == 2" type="success">审核中</el-tag>
|
||||
<el-tag v-if="scope.row.status == 3" type="primary">已发布</el-tag>
|
||||
<el-tag v-if="scope.row.status == 1" type="warning">审核中</el-tag>
|
||||
<el-tag v-if="scope.row.status == 2" type="success">已发布</el-tag>
|
||||
<el-tag v-if="scope.row.status == 3" type="primary">草稿</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="160px" fixed="right">
|
||||
<template #default="scope">
|
||||
<el-button
|
||||
v-if="scope.row.status == 0 || scope.row.status == 1"
|
||||
v-if="scope.row.status == 0 || scope.row.status == 3"
|
||||
v-hasPermi="['system:Route:edit']"
|
||||
link
|
||||
type="primary"
|
||||
@@ -88,7 +88,7 @@
|
||||
>编辑</el-button
|
||||
>
|
||||
<el-button
|
||||
v-if="scope.row.status == 0 || scope.row.status == 1"
|
||||
v-if="scope.row.status == 0 || scope.row.status == 3"
|
||||
v-hasPermi="['system:Route:remove']"
|
||||
link
|
||||
type="primary"
|
||||
@@ -98,7 +98,7 @@
|
||||
<el-button v-if="scope.row.status == 0" v-hasPermi="['system:Route:remove']" link type="primary" @click="savelistrow(scope.row)"
|
||||
>发布</el-button
|
||||
>
|
||||
<el-button v-if="scope.row.status == 3" v-hasPermi="['system:Route:remove']" link type="primary" @click="savelistrow(scope.row)"
|
||||
<el-button v-if="scope.row.status == 2" v-hasPermi="['system:Route:remove']" link type="primary" @click="savelistrow(scope.row)"
|
||||
>撤销发布</el-button
|
||||
>
|
||||
</template>
|
||||
@@ -181,7 +181,7 @@
|
||||
<template #footer>
|
||||
<div class="dialog-footer">
|
||||
<el-button :loading="buttonLoading" type="primary" @click="yulanform">预 览</el-button>
|
||||
<el-button :loading="buttonLoading" type="primary" @click="submitForm('1')">存 草 稿</el-button>
|
||||
<el-button :loading="buttonLoading" type="primary" @click="submitForm('3')">存 草 稿</el-button>
|
||||
<el-button :loading="buttonLoading" type="primary" @click="submitForm('0')">提 交</el-button>
|
||||
<el-button @click="cancel">取 消</el-button>
|
||||
</div>
|
||||
@@ -310,10 +310,10 @@ const treevalue = ref('');
|
||||
const hotelallvalue = ref('');
|
||||
|
||||
const note_publish_list = ref([
|
||||
{ label: '已发布', value: 3 },
|
||||
{ label: '审核中', value: 2 },
|
||||
{ label: '未发布', value: 0 },
|
||||
{ label: '草稿', value: 1 }
|
||||
{ label: '审核中', value: 1 },
|
||||
{ label: '已发布', value: 2 },
|
||||
{ label: '草稿', value: 3 }
|
||||
]);
|
||||
const regiontree = ref([]);
|
||||
const props = { multiple: true, value: 'id' };
|
||||
@@ -507,6 +507,9 @@ const handleSelectionChange = (selection: RouteVO[]) => {
|
||||
/** 新增按钮操作 */
|
||||
const handleAdd = () => {
|
||||
reset();
|
||||
getContent();
|
||||
getTag();
|
||||
gethotelall();
|
||||
dialog.visible = true;
|
||||
dialog.title = '添加路线';
|
||||
bookrouteDetailsList.value = [];
|
||||
@@ -622,7 +625,7 @@ const getTag = async () => {
|
||||
sys_user_tagOptions.value = res; //标签库
|
||||
};
|
||||
const gethotelall = async () => {
|
||||
const res = await hotelall({ status: 1 });
|
||||
const res = await hotelall({ status: 2 });
|
||||
sys_user_hotelall.value = res;
|
||||
};
|
||||
|
||||
@@ -684,10 +687,10 @@ const savelistrow = async (row, type) => {
|
||||
const _id = row?.id || ids.value[0];
|
||||
const res = await getRoute(_id);
|
||||
Object.assign(form.value, res.data);
|
||||
form.value.status = type == 1 ? 2 : 0;
|
||||
const test = type == 1 ? '发布' : '撤销发布';
|
||||
form.value.status = row.status == 0 ? 1 : 0;
|
||||
const test = type == 0 ? '发布' : '撤销发布';
|
||||
const _ids = row?.title || ids.value;
|
||||
await proxy?.$modal.confirm('是否确认' + test + '行程标题为' + _ids + '的数据项?').finally(() => (loading.value = false));
|
||||
await proxy?.$modal.confirm('是否确认' + test + '行程标题为"' + _ids + '"的数据项?').finally(() => (loading.value = false));
|
||||
await updateRoute(form.value).finally(() => (buttonLoading.value = false));
|
||||
proxy?.$modal.msgSuccess(test + '成功');
|
||||
await getList();
|
||||
|
||||
@@ -112,15 +112,15 @@
|
||||
</el-table-column>
|
||||
<el-table-column label="相关笔记" align="center" prop="recommendNotebookCount">
|
||||
<template #default="scope">
|
||||
<el-button link type="primary" v-if="scope.row.status!==3" @click="handleNote(scope.row)">1{{
|
||||
scope.row.pubNotebookCount }}</el-button>
|
||||
<el-button link type="primary" v-if="scope.row.status!==3" @click="handleNote(scope.row)">{{
|
||||
scope.row.recommendNotebookCount }}</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column :label="queryParams.type == '0' ?'景点评论数':queryParams.type == '1' ?'租车评论数':'游艇评论数'" align="center"
|
||||
prop="commentCount" width="90px">
|
||||
<template #default="scope">
|
||||
<el-button link type="primary" v-if="scope.row.status!==3" @click="handleNote(scope.row)">1{{
|
||||
scope.row.notebookCommentCount }}</el-button>
|
||||
<el-button link type="primary" v-if="scope.row.status!==3" @click="handleNote(scope.row)">{{
|
||||
scope.row.commentCount }}</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column :label="queryParams.type == '0' ?'景点喜欢数':queryParams.type == '1' ?'租车喜欢数':'游艇喜欢数'" align="center"
|
||||
@@ -262,7 +262,7 @@
|
||||
<el-select v-model="searchLocation" filterable remote reserve-keyword clearable placeholder="请输入地址信息"
|
||||
@change="selectChnange" :remote-method="remoteMethod">
|
||||
<el-option v-for="item in locationOptions" :key="item.id"
|
||||
:label="item.title + '      ' + item.province+' - '+item.city"
|
||||
:label="item.title + '      ' +'('+ item.province+' - '+item.city+`${item.district?' - '+item.district:''}`+')'"
|
||||
:value="item.province+item.city+item.title" />
|
||||
<!-- :value="item.ad_info.province+item.ad_info.city+item.title" /> -->
|
||||
</el-select>
|
||||
@@ -674,7 +674,8 @@ const performSearch = async (text) => {
|
||||
data.result.address_components.city +
|
||||
data.result.address_components.district +
|
||||
data.result.address_components.street +
|
||||
data.result.address_components.street_number;
|
||||
data.result.address_components.street_number+
|
||||
data.result.title;
|
||||
form.value.latitude = data.result.location.lat;
|
||||
form.value.longitude = data.result.location.lng;
|
||||
form.value.region = data.result.ad_info.adcode; //行政区划编码
|
||||
@@ -950,6 +951,8 @@ const submitForm = async (type: string) => {
|
||||
proxy?.$modal.msgSuccess('操作成功');
|
||||
dialog.visible = false;
|
||||
await getList();
|
||||
}else{
|
||||
proxy?.$modal.msgError("缺少必填项");
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
@@ -213,7 +213,7 @@ const submitForm = () => {
|
||||
/** 删除按钮操作 */
|
||||
const handleDelete = async (row?: TagVO) => {
|
||||
const _ids = row?.id || ids.value;
|
||||
await proxy?.$modal.confirm('是否确认删除标签编号为"' + _ids + '"的数据项?').finally(() => (loading.value = false));
|
||||
await proxy?.$modal.confirm('是否确认删除标签名称为"' + row.title + '"的数据项?').finally(() => (loading.value = false));
|
||||
await delTag(_ids);
|
||||
proxy?.$modal.msgSuccess('删除成功');
|
||||
await getList();
|
||||
|
||||
@@ -28,11 +28,11 @@
|
||||
<el-col :span="1.5">
|
||||
<el-button v-hasPermi="['system:client:add']" type="primary" plain icon="Plus" @click="handleAdd">新增</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button v-hasPermi="['system:client:edit']" type="success" plain icon="Edit" :disabled="single" @click="handleUpdate()">
|
||||
修改
|
||||
</el-button>
|
||||
</el-col>
|
||||
<!-- <el-col :span="1.5">-->
|
||||
<!-- <el-button v-hasPermi="['system:client:edit']" type="success" plain icon="Edit" :disabled="single" @click="handleUpdate()">-->
|
||||
<!-- 修改-->
|
||||
<!-- </el-button>-->
|
||||
<!-- </el-col>-->
|
||||
<el-col :span="1.5">
|
||||
<el-button v-hasPermi="['system:client:remove']" type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete()">
|
||||
删除
|
||||
|
||||
@@ -40,11 +40,11 @@
|
||||
<el-col :span="1.5">
|
||||
<el-button v-hasPermi="['system:config:add']" type="primary" plain icon="Plus" @click="handleAdd">新增</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button v-hasPermi="['system:config:edit']" type="success" plain icon="Edit" :disabled="single" @click="handleUpdate()">
|
||||
修改
|
||||
</el-button>
|
||||
</el-col>
|
||||
<!-- <el-col :span="1.5">-->
|
||||
<!-- <el-button v-hasPermi="['system:config:edit']" type="success" plain icon="Edit" :disabled="single" @click="handleUpdate()">-->
|
||||
<!-- 修改-->
|
||||
<!-- </el-button>-->
|
||||
<!-- </el-col>-->
|
||||
<el-col :span="1.5">
|
||||
<el-button v-hasPermi="['system:config:remove']" type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete()">
|
||||
删除
|
||||
|
||||
@@ -35,9 +35,9 @@
|
||||
<el-col :span="1.5">
|
||||
<el-button v-hasPermi="['system:dict:add']" type="primary" plain icon="Plus" @click="handleAdd">新增</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button v-hasPermi="['system:dict:edit']" type="success" plain icon="Edit" :disabled="single" @click="handleUpdate()">修改</el-button>
|
||||
</el-col>
|
||||
<!-- <el-col :span="1.5">-->
|
||||
<!-- <el-button v-hasPermi="['system:dict:edit']" type="success" plain icon="Edit" :disabled="single" @click="handleUpdate()">修改</el-button>-->
|
||||
<!-- </el-col>-->
|
||||
<el-col :span="1.5">
|
||||
<el-button v-hasPermi="['system:dict:remove']" type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete()">
|
||||
删除
|
||||
|
||||
@@ -30,11 +30,11 @@
|
||||
<el-col :span="1.5">
|
||||
<el-button v-hasPermi="['system:notice:add']" type="primary" plain icon="Plus" @click="handleAdd">新增</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button v-hasPermi="['system:notice:edit']" type="success" plain icon="Edit" :disabled="single" @click="handleUpdate()"
|
||||
>修改</el-button
|
||||
>
|
||||
</el-col>
|
||||
<!-- <el-col :span="1.5">-->
|
||||
<!-- <el-button v-hasPermi="['system:notice:edit']" type="success" plain icon="Edit" :disabled="single" @click="handleUpdate()"-->
|
||||
<!-- >修改</el-button-->
|
||||
<!-- >-->
|
||||
<!-- </el-col>-->
|
||||
<el-col :span="1.5">
|
||||
<el-button v-hasPermi="['system:notice:remove']" type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete()">
|
||||
删除
|
||||
|
||||
@@ -68,11 +68,11 @@
|
||||
<el-col :span="1.5">
|
||||
<el-button v-hasPermi="['system:post:add']" type="primary" plain icon="Plus" @click="handleAdd">新增</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button v-hasPermi="['system:post:edit']" type="success" plain icon="Edit" :disabled="single" @click="handleUpdate()"
|
||||
>修改</el-button
|
||||
>
|
||||
</el-col>
|
||||
<!-- <el-col :span="1.5">-->
|
||||
<!-- <el-button v-hasPermi="['system:post:edit']" type="success" plain icon="Edit" :disabled="single" @click="handleUpdate()"-->
|
||||
<!-- >修改</el-button-->
|
||||
<!-- >-->
|
||||
<!-- </el-col>-->
|
||||
<el-col :span="1.5">
|
||||
<el-button v-hasPermi="['system:post:remove']" type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete()">
|
||||
删除
|
||||
|
||||
@@ -42,9 +42,9 @@
|
||||
<el-col :span="1.5">
|
||||
<el-button v-hasPermi="['system:role:add']" type="primary" plain icon="Plus" @click="handleAdd()">新增</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button v-hasPermi="['system:role:edit']" type="success" plain :disabled="single" icon="Edit" @click="handleUpdate()">修改</el-button>
|
||||
</el-col>
|
||||
<!-- <el-col :span="1.5">-->
|
||||
<!-- <el-button v-hasPermi="['system:role:edit']" type="success" plain :disabled="single" icon="Edit" @click="handleUpdate()">修改</el-button>-->
|
||||
<!-- </el-col>-->
|
||||
<el-col :span="1.5">
|
||||
<el-button v-hasPermi="['system:role:delete']" type="danger" plain :disabled="ids.length === 0" @click="handleDelete()">删除</el-button>
|
||||
</el-col>
|
||||
|
||||
@@ -62,11 +62,11 @@
|
||||
<el-col :span="1.5">
|
||||
<el-button v-has-permi="['system:user:add']" type="primary" plain icon="Plus" @click="handleAdd()">新增</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button v-has-permi="['system:user:add']" type="success" plain :disabled="single" icon="Edit" @click="handleUpdate()">
|
||||
修改
|
||||
</el-button>
|
||||
</el-col>
|
||||
<!-- <el-col :span="1.5">-->
|
||||
<!-- <el-button v-has-permi="['system:user:add']" type="success" plain :disabled="single" icon="Edit" @click="handleUpdate()">-->
|
||||
<!-- 修改-->
|
||||
<!-- </el-button>-->
|
||||
<!-- </el-col>-->
|
||||
<el-col :span="1.5">
|
||||
<el-button v-has-permi="['system:user:delete']" type="danger" plain :disabled="multiple" icon="Delete" @click="handleDelete()">
|
||||
删除
|
||||
|
||||
Reference in New Issue
Block a user