添加商品列表接口及优化多处细节
This commit is contained in:
parent
b0665d6d40
commit
cae5ba5cd5
@ -61,3 +61,14 @@ export const delProduct = (id: string | number | Array<string | number>) => {
|
||||
method: 'delete'
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* 获取所有商品列表,用于表单下拉选择
|
||||
* @returns
|
||||
*/
|
||||
export const productAll = () => {
|
||||
return request({
|
||||
url: '/manage/product/all',
|
||||
method: 'get'
|
||||
});
|
||||
};
|
||||
|
@ -4,6 +4,7 @@ export interface ArticleVO {
|
||||
/**
|
||||
* 景点ID/租赁ID/游艇ID
|
||||
*/
|
||||
name: string;
|
||||
id: string | number;
|
||||
tagId_copy: string[] | number[];
|
||||
region?: string;
|
||||
|
@ -1,7 +1,7 @@
|
||||
<!-- 笔记列表 -->
|
||||
<template>
|
||||
<div>
|
||||
<el-table :height="props.autoTableHeight" v-loading="loading" :data="tableList"
|
||||
<el-table :height="props.autoTableHeight" v-loading="loading" :data="props.articleList"
|
||||
@selection-change="handleSelectionChange" border>
|
||||
<el-table-column type="selection" width="55" align="center" v-if="props.parentName != 'dyUser'" />
|
||||
<!-- <el-table-column label="ID" align="center" prop="id" v-if="props.parentName != 'dyUser'" /> -->
|
||||
@ -91,6 +91,10 @@ import { listByTagIdNotebook } from '@/api/manage/scenic';
|
||||
|
||||
//导入父组件传递的值
|
||||
const props = defineProps({
|
||||
articleList: {
|
||||
type: Array,
|
||||
default: () => []
|
||||
},
|
||||
noteBookTagIds: {
|
||||
type: string,
|
||||
default: () => ''
|
||||
@ -130,12 +134,12 @@ const cancel = () => {
|
||||
noteDetail.visible = false;
|
||||
}
|
||||
// 获取笔记列表
|
||||
const getTableList = async () => {
|
||||
loading.value = true;
|
||||
let res = await listByTagIdNotebook(queryParams).finally(() => (loading.value = false));
|
||||
tableList.value = res.rows;
|
||||
total.value = res.total;
|
||||
};
|
||||
// const getTableList = async () => {
|
||||
// loading.value = true;
|
||||
// let res = await listByTagIdNotebook(queryParams).finally(() => (loading.value = false));
|
||||
// tableList.value = res.rows;
|
||||
// total.value = res.total;
|
||||
// };
|
||||
// 查看笔记详情
|
||||
const handleDetail = (row: any) => {
|
||||
noteDetail.visible = true;
|
||||
|
1
src/types/global.d.ts
vendored
1
src/types/global.d.ts
vendored
@ -32,6 +32,7 @@ declare global {
|
||||
*
|
||||
*/
|
||||
rowData?: any;
|
||||
type: string;
|
||||
}
|
||||
|
||||
declare interface UploadOption {
|
||||
|
@ -27,10 +27,10 @@
|
||||
<el-button icon="Refresh" @click="resetQuery">重置</el-button>
|
||||
<el-button type="primary" plain icon="Plus" @click="handleAdd"
|
||||
v-hasPermi="['manage:article:add']">新增</el-button>
|
||||
<el-button type="success" plain icon="Edit" :disabled="single" @click="handleUpdate()"
|
||||
<!-- <el-button type="success" plain icon="Edit" :disabled="single" @click="handleUpdate()"
|
||||
v-hasPermi="['manage:article:edit']">修改</el-button>
|
||||
<el-button type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete()"
|
||||
v-hasPermi="['manage:article:remove']">删除</el-button>
|
||||
v-hasPermi="['manage:article:remove']">删除</el-button> -->
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</el-card>
|
||||
@ -39,15 +39,15 @@
|
||||
|
||||
<el-table v-loading="loading" :height="autoTableHeight" border :data="articleList"
|
||||
@selection-change="handleSelectionChange">
|
||||
<el-table-column type="selection" width="55" align="center" />
|
||||
<!-- <el-table-column type="selection" width="55" align="center" /> -->
|
||||
<el-table-column label="ID" align="center" prop="id" v-if="true" width="180px" />
|
||||
<el-table-column label="标题" align="center" prop="title" width="300px" />
|
||||
<el-table-column label="标题" align="center" prop="title" />
|
||||
<el-table-column label="内容" align="center" prop="content" width="80px">
|
||||
<template #default="scope">
|
||||
<el-button link type="primary" @click="handleDetail(scope.row)">查看</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="标签" align="center" prop="tagId" width="180px">
|
||||
<el-table-column label="标签" align="center" prop="tagId">
|
||||
<template #default="scope">
|
||||
<span>{{ formatTag(scope.row.tagId) }}</span>
|
||||
</template>
|
||||
@ -56,9 +56,9 @@
|
||||
<el-table-column label="评论数" align="center" prop="commentCount" width="80px" />
|
||||
<el-table-column label="状态" align="center" prop="status" width="90px">
|
||||
<template #default="scope">
|
||||
<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="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="success">已发布</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="更新时间" align="center" prop="updateTime" width="120">
|
||||
@ -69,15 +69,15 @@
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="160px">
|
||||
<template #default="scope">
|
||||
<el-button link type="primary" v-if="scope.row.status === 0" @click="updateRow(scope.row,'2')"
|
||||
<el-button link type="primary" v-if="scope.row.status == 0" @click="updateRow(scope.row,'2')"
|
||||
v-hasPermi="['manage:article:edit']">发布</el-button>
|
||||
<el-button link type="primary" v-if="scope.row.status === 2" @click="updateRow(scope.row,'0')"
|
||||
<el-button link type="primary" v-if="scope.row.status == 2" @click="updateRow(scope.row,'0')"
|
||||
v-hasPermi="['manage:article:edit']">撤销发布</el-button>
|
||||
<el-tooltip content="修改" placement="top" v-if="scope.row.status === 0">
|
||||
<el-tooltip content="修改" placement="top" v-if="scope.row.status == 0">
|
||||
<el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)"
|
||||
v-hasPermi="['manage:article:edit']"></el-button>
|
||||
</el-tooltip>
|
||||
<el-tooltip content="删除" placement="top" v-if="scope.row.status === 0">
|
||||
<el-tooltip content="删除" placement="top" v-if="scope.row.status == 0">
|
||||
<el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)"
|
||||
v-hasPermi="['manage:article:remove']"></el-button>
|
||||
</el-tooltip>
|
||||
@ -151,7 +151,8 @@ const articleFormRef = ref<ElFormInstance>();
|
||||
|
||||
const dialog = reactive<DialogOption>({
|
||||
visible: false,
|
||||
title: ''
|
||||
title: '',
|
||||
type:''
|
||||
});
|
||||
|
||||
const initFormData: ArticleForm = {
|
||||
@ -213,7 +214,7 @@ const cancel = () => {
|
||||
// 获取标签库
|
||||
const getTag = async () => {
|
||||
const res = await tagAll();
|
||||
sys_user_tagOptions.value = res; //标签库
|
||||
Object.assign(sys_user_tagOptions.value, res);
|
||||
};
|
||||
/**
|
||||
* 标签格式化
|
||||
|
@ -14,7 +14,7 @@
|
||||
<el-input class="inputWidth" v-model="queryParams.phone" placeholder="请输入手机号码" clearable
|
||||
@keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="用户性别" prop="sex">
|
||||
<el-form-item label="性别" prop="sex">
|
||||
<el-select class="inputWidth" v-model="queryParams.sex" placeholder="请选择用户性别" clearable>
|
||||
<el-option v-for="dict in sys_user_sex" :key="dict.value" :label="dict.label" :value="dict.value" />
|
||||
</el-select>
|
||||
@ -25,8 +25,11 @@
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="会员等级" prop="leveId">
|
||||
<el-input class="inputWidth" v-model="queryParams.leveId" placeholder="请输入会员等级" clearable
|
||||
@keyup.enter="handleQuery" />
|
||||
<!-- <el-input class="inputWidth" v-model="queryParams.leveId" placeholder="请输入会员等级" clearable
|
||||
@keyup.enter="handleQuery" /> -->
|
||||
<el-select class="inputWidth" v-model="queryParams.leveId" placeholder="请选择会员等级" clearable>
|
||||
<el-option v-for="dict in levelList" :key="dict.id" :label="dict.levelName" :value="dict.id" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
|
||||
@ -44,14 +47,14 @@
|
||||
|
||||
<el-table :height="autoTableHeight" v-loading="loading" :data="dyUserList" @selection-change="handleSelectionChange"
|
||||
style="width: 100%" border>
|
||||
<el-table-column fixed type="selection" width="55" align="center" />
|
||||
<!-- <el-table-column fixed type="selection" width="55" align="center" /> -->
|
||||
<el-table-column fixed label="用户ID" align="center" prop="id" />
|
||||
<el-table-column fixed label="帐号状态" align="center" prop="status">
|
||||
<template #default="scope">
|
||||
<dict-tag :options="dy_user_status" :value="scope.row.status" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column fixed label="会员等级" align="center" prop="levelId" />
|
||||
<el-table-column fixed label="会员等级" align="center" prop="levelName" />
|
||||
<el-table-column fixed label="昵称" align="center" prop="nickName" />
|
||||
<el-table-column label="用户性别" align="center" prop="sex">
|
||||
<template #default="scope">
|
||||
@ -96,7 +99,7 @@
|
||||
</el-table-column>
|
||||
<el-table-column width="80" label="关注的人" align="center" prop="" />
|
||||
<el-table-column width="80" label="粉丝数" align="center" prop="" />
|
||||
<el-table-column width="90" label="点亮的景点" align="center" prop="">
|
||||
<el-table-column width="90" label="到过的景点" align="center" prop="">
|
||||
<template #default="scope">
|
||||
<span style="color: dodgerblue; cursor: pointer; text-decoration: underline"
|
||||
@click="openScenicListDialog(scope.row)">20</span>
|
||||
@ -178,8 +181,11 @@
|
||||
</template>
|
||||
</el-dialog>
|
||||
<!-- 笔记列表 -->
|
||||
<el-dialog title="发布的笔记" v-model="noteListDialog" width="1200px" append-to-body>
|
||||
<noteList :articleList="articleList" :autoTableHeight="300" parentName="dyUser"></noteList>
|
||||
<el-dialog title="发布的笔记" v-model="noteListDialog.visible" width="1200px" append-to-body>
|
||||
<noteList :articleList="noteListDialog.articleList" :autoTableHeight="300" parentName="dyUser"></noteList>
|
||||
<pagination v-show="noteListDialog.total > 0" :total="noteListDialog.total"
|
||||
v-model:page="noteListDialog.params.pageNum" v-model:limit="noteListDialog.params.pageSize"
|
||||
@pagination="openNoteListDialog" />
|
||||
<template #footer>
|
||||
<div class="dialog-footer">
|
||||
<el-button @click="cancel">关 闭</el-button>
|
||||
@ -195,7 +201,7 @@
|
||||
</div>
|
||||
</template>
|
||||
</el-dialog>
|
||||
<!-- 点亮的景点 -->
|
||||
<!-- 到过的景点 -->
|
||||
<el-dialog title="点亮的景点" v-model="scenicListDialog" width="500px" append-to-body>
|
||||
<el-table :height="300" v-loading="loading" :data="scenicList" @selection-change="handleSelectionChange" border>
|
||||
<el-table-column label="景点名称" align="center" fixed prop="" />
|
||||
@ -259,6 +265,8 @@
|
||||
</template>
|
||||
|
||||
<script setup name="DyUser" lang="ts">
|
||||
import { listUserLevel } from '@/api/manage/userLevel';
|
||||
import { listNotebook} from '@/api/manage/notebook';
|
||||
import { listDyUser, getDyUser, delDyUser, addDyUser, updateDyUser } from '@/api/manage/dyUser';
|
||||
import { DyUserVO, DyUserQuery, DyUserForm } from '@/api/manage/dyUser/types';
|
||||
|
||||
@ -268,7 +276,6 @@ const { dy_user_ban_days, dy_user_status, sys_user_sex, dy_user_ban_mode } = toR
|
||||
);
|
||||
const orderLists = ref([]); //用户订单列表
|
||||
const scenicList = ref([]); //用户点亮的景点
|
||||
const articleList = ref([]); //用户笔记列表
|
||||
const partyLists = ref([]); //用户活动列表
|
||||
const postcardList = ref([]); //用户明信片列表
|
||||
const dyUserList = ref<DyUserVO[]>([]);
|
||||
@ -287,7 +294,8 @@ const dyUserFormRef = ref<ElFormInstance>();
|
||||
const dialog = reactive<DialogOption>({
|
||||
rowData: {} as DyUserVO,
|
||||
visible: false,
|
||||
title: ''
|
||||
title: '',
|
||||
type:'',
|
||||
});
|
||||
const initFormData: DyUserForm = {
|
||||
id: undefined,
|
||||
@ -348,6 +356,7 @@ const data = reactive<PageData<DyUserForm, DyUserQuery>>({
|
||||
const { queryParams, form, rules } = toRefs(data);
|
||||
onMounted(() => {
|
||||
getList();
|
||||
getListUserLevel();
|
||||
nextTick(() => {
|
||||
autoTableHeight.value = proxy?.autoTableHeight();
|
||||
});
|
||||
@ -364,11 +373,19 @@ const getList = async () => {
|
||||
loading.value = false;
|
||||
};
|
||||
|
||||
/**
|
||||
* 获取用户等级列表
|
||||
*/
|
||||
const levelList = ref([]);
|
||||
const getListUserLevel = async () => {
|
||||
const res = await listUserLevel({pageNum:1,pageSize:999});
|
||||
levelList.value = res.rows;
|
||||
}
|
||||
/** 取消按钮 */
|
||||
const cancel = () => {
|
||||
reset();
|
||||
dialog.visible = false;
|
||||
noteListDialog.value = false;
|
||||
noteListDialog.visible = false;
|
||||
partyListDialog.value = false;
|
||||
scenicListDialog.value = false;
|
||||
cityListDialog.value = false;
|
||||
@ -449,9 +466,23 @@ const openbanned = async (row: DyUserVO) => {
|
||||
* 打开笔记列表弹层
|
||||
* @param row
|
||||
*/
|
||||
const noteListDialog = ref(false);
|
||||
const openNoteListDialog = async (row: DyUserVO) => {
|
||||
noteListDialog.value = true;
|
||||
const noteListDialog = reactive({
|
||||
visible: false,
|
||||
total: 0,
|
||||
articleList:[],
|
||||
params:{
|
||||
userId: null,
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
}
|
||||
});
|
||||
// 打开笔记列表弹层,获取笔记列表
|
||||
const openNoteListDialog = async (row?: DyUserVO) => {
|
||||
noteListDialog.params.userId = row?.id;
|
||||
let res=await listNotebook(noteListDialog.params);
|
||||
noteListDialog.articleList=res.rows;
|
||||
noteListDialog.total=res.total;
|
||||
noteListDialog.visible = true;
|
||||
};
|
||||
/**
|
||||
* 打开活动列表弹层
|
||||
|
@ -1,3 +1,4 @@
|
||||
<!-- 每日任务 大转盘 -->
|
||||
<template>
|
||||
<div class="p-2">
|
||||
<!-- <transition :enter-active-class="proxy?.animate.searchAnimate.enter"
|
||||
@ -31,7 +32,7 @@
|
||||
</el-table-column>
|
||||
<el-table-column label="详情" align="center" prop="">
|
||||
<template #default="scope">
|
||||
<el-button link type="primary" @click="handleAward(scope.row)">查看详情</el-button>
|
||||
<el-button link type="primary" @click="handleUpdate(scope.row,'preview')">查看详情</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="状态" align="center" prop="status">
|
||||
@ -49,7 +50,7 @@
|
||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
||||
<template #default="scope">
|
||||
<el-tooltip content="修改" placement="top">
|
||||
<el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)"
|
||||
<el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row,'edit')"
|
||||
v-hasPermi="['manage:mkConfig:edit']"></el-button>
|
||||
</el-tooltip>
|
||||
<el-button link type="primary" @click="handleStatus(scope.row,'1')" v-if="scope.row.status == 0"
|
||||
@ -67,7 +68,8 @@
|
||||
<div v-if="queryParams.type == '0'" style="height: 400px;overflow-y: auto;">
|
||||
<el-form ref="mkConfigFormRef" :model="form" :rules="rules" label-width="110px">
|
||||
<el-form-item label="每日封顶积分:" prop="name">
|
||||
<el-input style="width: 150px;" type="number" v-model="form.dailyConfig.dailyLimit" placeholder="请输入积分">
|
||||
<el-input style="width: 150px;" type="number" :disabled="dialog.type == 'preview'"
|
||||
v-model="form.dailyConfig.dailyLimit" placeholder="请输入积分">
|
||||
<template #append>分</template>
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
@ -75,25 +77,26 @@
|
||||
style="margin-bottom: 10px; margin-right: 5px !important">
|
||||
<el-col :span="11">
|
||||
<el-form-item :label="`奖励${index + 1}:`" prop="">
|
||||
<el-select v-model="item.rewardType" placeholder="请选择" style="width: 150px">
|
||||
<el-option label="服务" :value="1"></el-option>
|
||||
<el-option label="商品" :value="2"></el-option>
|
||||
<el-option label="商品2" :value="3"></el-option>
|
||||
<el-select v-model="item.rewardType" placeholder="请选择" style="width: 150px"
|
||||
:disabled="dialog.type == 'preview'">
|
||||
<!-- <el-option v-for="item in productAllList" :key="item.id" :label="item.productName" :value="item.id" /> -->
|
||||
<el-option v-for="dict in dy_mk_config_reward" :key="dict.value" :label="dict.label"
|
||||
:value="parseInt(dict.value)"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="11">
|
||||
<el-form-item label="所需积分:">
|
||||
<el-input style="width: 100px;" v-model="item.rewardNum" type="number" placeholder="请输入积分"
|
||||
class="no-arrows">
|
||||
:disabled="dialog.type == 'preview'" class="no-arrows">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="2">
|
||||
<vxe-button mode="text" v-if="index == 0" icon="vxe-icon-add" class="handle_btn add_btn"
|
||||
@click="amendDailyReward(index,'add')"></vxe-button>
|
||||
<vxe-button mode="text" v-else icon="vxe-icon-minus" class="handle_btn rem_btn"
|
||||
@click="amendDailyReward(index,'remove')"></vxe-button>
|
||||
<vxe-button mode="text" v-if="index == 0&&dialog.type == 'edit'" icon="vxe-icon-add"
|
||||
class="handle_btn add_btn" @click="amendDailyReward(index,'add')"></vxe-button>
|
||||
<vxe-button mode="text" v-else-if="index!=0&&dialog.type == 'edit'" icon="vxe-icon-minus"
|
||||
class="handle_btn rem_btn" @click="amendDailyReward(index,'remove')"></vxe-button>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-form>
|
||||
@ -105,40 +108,41 @@
|
||||
style="margin-bottom: 10px; margin-right: 5px !important">
|
||||
<el-col :span="14">
|
||||
<el-form-item :label="`奖品${index + 1}:`" prop="">
|
||||
<el-select v-model="item.rewardType" placeholder="请选择" style="width: 120px">
|
||||
<el-option label="服务" :value="1"></el-option>
|
||||
<el-option label="商品" :value="2"></el-option>
|
||||
<el-option label="商品2" :value="3"></el-option>
|
||||
<el-select v-model="item.rewardType" placeholder="请选择" style="width: 120px"
|
||||
:disabled="dialog.type == 'preview'" clearable>
|
||||
<el-option v-for="dict in dy_mk_config_reward" :key="dict.value" :label="dict.label"
|
||||
:value="parseInt(dict.value)" />
|
||||
</el-select>
|
||||
<span style="margin: 0px 10px;"> + </span>
|
||||
<el-select v-model="item.goodsId" placeholder="请选择" style="width: 120px">
|
||||
<el-option label="服务" :value="1"></el-option>
|
||||
<el-option label="商品" :value="2"></el-option>
|
||||
<el-option label="商品2" :value="3"></el-option>
|
||||
<el-select v-model="item.goodsId" placeholder="请选择" style="width: 120px"
|
||||
:disabled="dialog.type == 'preview'" clearable>
|
||||
<el-option v-for="item in productAllList" :key="item.id" :label="item.productName" :value="item.id" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="获奖概率:" label-width="95px">
|
||||
<el-input style="width: 100px;" v-model="item.rewardNum" type="number" placeholder="请输入概率"
|
||||
class="no-arrows">
|
||||
:disabled="dialog.type == 'preview'" class="no-arrows">
|
||||
<template #append>%</template>
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="2">
|
||||
<vxe-button mode="text" v-if="index == 0" icon="vxe-icon-add" class="handle_btn add_btn"
|
||||
@click="amendRoundConfig(index,'add')"></vxe-button>
|
||||
<vxe-button mode="text" v-else icon="vxe-icon-minus" class="handle_btn rem_btn"
|
||||
@click="amendRoundConfig(index,'remove')"></vxe-button>
|
||||
<vxe-button mode="text" v-if="index == 0&&dialog.type == 'edit'" icon="vxe-icon-add"
|
||||
class="handle_btn add_btn" @click="amendRoundConfig(index,'add')"></vxe-button>
|
||||
<vxe-button mode="text" v-else-if="index == 0&&dialog.type == 'edit'" icon="vxe-icon-minus"
|
||||
class="handle_btn rem_btn" @click="amendRoundConfig(index,'remove')"></vxe-button>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-form>
|
||||
</div>
|
||||
<template #footer>
|
||||
<div class="dialog-footer">
|
||||
<el-button :loading="buttonLoading" type="primary" @click="submitForm">确 定</el-button>
|
||||
<el-button @click="cancel">取 消</el-button>
|
||||
<el-button v-if="dialog.type == 'edit'" :loading="buttonLoading" type="primary" @click="submitForm">确
|
||||
定</el-button>
|
||||
<el-button v-if="dialog.type == 'edit'" @click="cancel">取 消</el-button>
|
||||
<el-button v-if="dialog.type == 'preview'" @click="cancel">关 闭</el-button>
|
||||
</div>
|
||||
</template>
|
||||
</el-dialog>
|
||||
@ -209,6 +213,8 @@
|
||||
</template>
|
||||
|
||||
<script setup name="MkConfig" lang="ts">
|
||||
import { productAll } from '@/api/manage/product';
|
||||
|
||||
import { listMkConfig, getMkConfig, delMkConfig, addMkConfig, updateMkConfig,mkRewardUserList } from '@/api/manage/mkConfig';
|
||||
import { MkConfigVO, MkConfigQuery, MkConfigForm } from '@/api/manage/mkConfig/types';
|
||||
import { getProduct } from '@/api/manage/product';
|
||||
@ -218,9 +224,9 @@ onMounted(() => {
|
||||
getList();
|
||||
getlistVendor(); //供应商列表
|
||||
getProductCategoryList(); //商品类别列表
|
||||
getProductAllList(); //商品列表 下拉选择 不分页
|
||||
});
|
||||
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
|
||||
|
||||
const mkConfigList = ref<MkConfigVO[]>([]);
|
||||
const buttonLoading = ref(false);
|
||||
const loading = ref(true);
|
||||
@ -238,7 +244,8 @@ const mkReward= reactive({
|
||||
})
|
||||
const dialog = reactive<DialogOption>({
|
||||
visible: false,
|
||||
title: ''
|
||||
title: '',
|
||||
type:''
|
||||
});
|
||||
const mkRewardUserParams = reactive({
|
||||
pageNum: 1,
|
||||
@ -287,6 +294,9 @@ const data = reactive<PageData<MkConfigForm, MkConfigQuery>>({
|
||||
}
|
||||
});
|
||||
const { queryParams, form, rules } = toRefs(data);
|
||||
const { dy_mk_config_reward } = toRefs<any>(
|
||||
proxy?.useDict('dy_mk_config_reward')
|
||||
);
|
||||
// 路由监听================================================
|
||||
let router = useRouter();
|
||||
watch(
|
||||
@ -352,14 +362,15 @@ const handleAdd = () => {
|
||||
}
|
||||
|
||||
/** 修改按钮操作 */
|
||||
const handleUpdate = async (row?: MkConfigVO) => {
|
||||
const handleUpdate = async (row?: MkConfigVO,type?:string) => {
|
||||
reset();
|
||||
const _id = row?.id
|
||||
const res = await getMkConfig(_id);
|
||||
Object.assign(form.value, res.data);
|
||||
form.value.id=_id;
|
||||
dialog.title = `${queryParams.value.type == '1' ? '大转盘' : '每日任务'}`;
|
||||
dialog.title = `${queryParams.value.type == '1' ? '大转盘' : '每日积分奖励'}`;
|
||||
dialog.visible = true;
|
||||
dialog.type = type;
|
||||
}
|
||||
|
||||
/** 提交按钮 */
|
||||
@ -489,6 +500,15 @@ const getlistVendor = async () => {
|
||||
let res = await listVendor({ pageNum: 1, pageSize: 9999 });
|
||||
listVendorList.value = res.rows;
|
||||
}
|
||||
/**
|
||||
* 商品列表 下拉选择
|
||||
*/
|
||||
const productAllList=ref([]);
|
||||
const getProductAllList=()=>{
|
||||
productAll().then(res=>{
|
||||
Object.assign(productAllList.value,res.data)
|
||||
})
|
||||
}
|
||||
/**
|
||||
* 格式化商品类别名称
|
||||
* @param row
|
||||
|
@ -1,3 +1,4 @@
|
||||
<!-- 明信片 -->
|
||||
<template>
|
||||
<div class="p-2">
|
||||
<transition :enter-active-class="proxy?.animate.searchAnimate.enter"
|
||||
@ -9,9 +10,13 @@
|
||||
<el-input class="inputWidth" v-model="queryParams.name" placeholder="请输入明信片类别名称" clearable
|
||||
@keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="排序" prop="sortNum">
|
||||
<el-input class="inputWidth" v-model="queryParams.sortNum" placeholder="请输入排序" clearable
|
||||
@keyup.enter="handleQuery" />
|
||||
<el-form-item label="状态" prop="status">
|
||||
<!-- <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-select>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
|
||||
@ -107,12 +112,14 @@
|
||||
<el-table v-loading="loading" border :data="postcardInfo.dataList" :height="300">
|
||||
<el-table-column label="明信片" align="center" prop="name">
|
||||
<template #default="scope">
|
||||
<el-image :src="scope.row.pic" style="width: 100px; height: 100px" fit="cover" />
|
||||
<el-image :src="scope.row.pic" style="width: 50px; height: 50px" fit="cover" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="打卡人数" align="center" prop="clockInCount" />
|
||||
<el-table-column label="邮寄人数" align="center" prop="mailingCount" />
|
||||
</el-table>
|
||||
<pagination v-show="postcardInfo.params.total > 0" :total="postcardInfo.params.total"
|
||||
v-model:page="postcardInfo.params.pageNum" v-model:limit="postcardInfo.params.pageSize" @pagination="getList" />
|
||||
<template #footer>
|
||||
<div class="dialog-footer">
|
||||
<el-button @click="cancel">关 闭</el-button>
|
||||
@ -145,7 +152,8 @@ const mkPostcardFormRef = ref<ElFormInstance>();
|
||||
|
||||
const dialog = reactive<DialogOption>({
|
||||
visible: false,
|
||||
title: ''
|
||||
title: '',
|
||||
type: '',
|
||||
});
|
||||
|
||||
const initFormData: MkPostcardForm = {
|
||||
@ -211,6 +219,7 @@ const cancel = () => {
|
||||
reset();
|
||||
dialog.visible = false;
|
||||
postcardInfo.visible=false;
|
||||
postcardInfo.params.pageNum=1;
|
||||
}
|
||||
|
||||
/** 表单重置 */
|
||||
@ -323,13 +332,21 @@ const formatterArticleId = (id: string) => {
|
||||
const postcardInfo=reactive({
|
||||
visible:false,
|
||||
dataList:[],
|
||||
title:''
|
||||
title:'',
|
||||
params:{
|
||||
postcardId:null,
|
||||
total:0,
|
||||
pageNum:1,
|
||||
pageSize:10,
|
||||
}
|
||||
})
|
||||
const handlePostcard = async (row:MkPostcardVO)=>{
|
||||
postcardInfo.title=row.name+'明信片';
|
||||
postcardInfo.visible=true;
|
||||
let res=await listMkPostcardDetail({pageNum:1,pageSize:1000});
|
||||
|
||||
postcardInfo.params.postcardId=row.id;
|
||||
let res=await listMkPostcardDetail(postcardInfo.params);
|
||||
postcardInfo.dataList=res.rows;
|
||||
postcardInfo.params.total=res.total;
|
||||
}
|
||||
onMounted(() => {
|
||||
getList();
|
||||
|
@ -106,7 +106,6 @@
|
||||
<script setup name="Orders" lang="ts">
|
||||
import { listOrders, getOrders, delOrders, addOrders, updateOrders } from '@/api/manage/orders';
|
||||
import { OrdersVO, OrdersQuery, OrdersForm } from '@/api/manage/orders/types';
|
||||
|
||||
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
|
||||
const { dy_order_status } = toRefs<any>(proxy?.useDict('dy_order_status'));
|
||||
const autoTableHeight = ref(750);
|
||||
@ -118,15 +117,13 @@ const ids = ref<Array<string | number>>([]);
|
||||
const single = ref(true);
|
||||
const multiple = ref(true);
|
||||
const total = ref(0);
|
||||
|
||||
const queryFormRef = ref<ElFormInstance>();
|
||||
const ordersFormRef = ref<ElFormInstance>();
|
||||
|
||||
const dialog = reactive<DialogOption>({
|
||||
visible: false,
|
||||
title: ''
|
||||
title: '',
|
||||
type: ''
|
||||
});
|
||||
|
||||
const initFormData: OrdersForm = {
|
||||
id: undefined,
|
||||
orderNumber: undefined,
|
||||
|
@ -1,3 +1,4 @@
|
||||
<!-- 商品列表 -->
|
||||
<template>
|
||||
<div class="p-2">
|
||||
<transition :enter-active-class="proxy?.animate.searchAnimate.enter"
|
||||
@ -105,7 +106,7 @@
|
||||
</el-row>
|
||||
<el-form-item label="供应商" prop="vendorId">
|
||||
<el-select v-model="form.vendorId" placeholder="请选择供应商" clearable>
|
||||
<el-option v-for="dict in listVendorList" :key="dict.id" :label="dict.vendorName" :value="dict.id" />
|
||||
<el-option v-for="item in listVendorList" :key="item.id" :label="item.vendorName" :value="item.id" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="商品图片" prop="productImage">
|
||||
|
@ -253,7 +253,7 @@ const submitForm = () => {
|
||||
/** 删除按钮操作 */
|
||||
const handleDelete = async (row?: ProductCategoryVO) => {
|
||||
const _ids = row?.id || ids.value;
|
||||
await proxy?.$modal.confirm('是否确认删除商品类别编号为"' + row.category + '"的数据项?').finally(() => loading.value = false);
|
||||
await proxy?.$modal.confirm('是否确认删除商品类别为"' + row.category + '"的数据项?').finally(() => loading.value = false);
|
||||
await delProductCategory(_ids);
|
||||
proxy?.$modal.msgSuccess("删除成功");
|
||||
await getList();
|
||||
|
@ -299,52 +299,52 @@
|
||||
</el-dialog>
|
||||
<!-- 预览弹层 -->
|
||||
<el-dialog title="预览" v-model="previewVisible" width="900px" append-to-body>
|
||||
<el-form ref="previewRef" :model="form" label-width="80px">
|
||||
<el-form ref="previewRef" :model="form" label-width="110px">
|
||||
<el-row :gutter="10">
|
||||
<el-col :span="12">
|
||||
<el-form-item :label="queryParams.type == '0' ? '景点名称' : '商家名称'" prop="name">
|
||||
<el-form-item :label="queryParams.type == '0' ? '景点名称:' : '商家名称:'" prop="name">
|
||||
<span>{{ form.name }}</span>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12" v-if="queryParams.type == '0'">
|
||||
<el-form-item label="景区等级" prop="level">
|
||||
<span>{{ form.level }}</span>
|
||||
<el-form-item label="景区等级:" prop="level">
|
||||
<span>{{ form.level!=null?levelList[form.level-1].label:'暂无'}}</span>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="推荐语" prop="recommend">
|
||||
<span>{{ form.recommend }}</span>
|
||||
<el-form-item label="推荐语:" prop="recommend">
|
||||
<span>{{ form.recommend?form.recommend:'暂无' }}</span>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="排序" prop="orderNum">
|
||||
<el-form-item label="排序:" prop="orderNum">
|
||||
<span>{{ form.orderNum }}</span>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="10">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="是否开放" prop="isOpen">
|
||||
<el-form-item label="是否开放:" prop="isOpen">
|
||||
<span>{{ form.isOpen == 1 ? '开放中' : '未开放' }}</span>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="10">
|
||||
<el-col :span="12">
|
||||
<el-form-item :label="queryParams.type == '0' ? '景点icon' : '商家icon'" prop="icon">
|
||||
<el-form-item :label="queryParams.type == '0' ? '景点icon:' : '商家icon:'" prop="icon">
|
||||
<el-image :src="form.icon" class="avatar" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="10">
|
||||
<el-col :span="12">
|
||||
<el-form-item :label="queryParams.type == '0' ? '景点属性' : '商家属性'" prop="attribute">
|
||||
<el-form-item :label="queryParams.type == '0' ? '景点属性:' : '商家属性:'" prop="attribute">
|
||||
<span>{{ form.attribute == 1 ? '标志性' : '非标志性' }}</span>
|
||||
<span>{{ queryParams.type == '0' ? '景点' : '商家' }}</span>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="标签" prop="tagId">
|
||||
<el-form-item label="标签:" prop="tagId">
|
||||
<!-- <el-select class="inputWidth" v-model="form.tagId_copy" placeholder="请选择标签" clearable disabled>
|
||||
<el-option v-for="item in sys_user_tagOptions" :key="item.id" :label="item.title" :value="item.id" />
|
||||
</el-select> -->
|
||||
@ -354,35 +354,36 @@
|
||||
</el-row>
|
||||
<el-row :gutter="10">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="联系电话" prop="number">
|
||||
<span>{{ form.number }}</span>
|
||||
<el-form-item label="联系电话:" prop="number">
|
||||
<span>{{ form.number?form.number:'暂无' }}</span>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="详细地址" prop="address" style="margin-top: 15px">
|
||||
<el-form-item label="详细地址:" prop="address" style="margin-top: 15px">
|
||||
<span>{{ form.address }}</span>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="经度" prop="longitude">
|
||||
<el-form-item label="经度:" prop="longitude">
|
||||
<span>{{ form.longitude }}</span>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="纬度" prop="latitude">
|
||||
<el-form-item label="纬度:" prop="latitude">
|
||||
<span>{{ form.latitude }}</span>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="10">
|
||||
<el-col :span="24">
|
||||
<el-form-item :label="`${queryParams.type == '0' ? '景点' : '商家'}照片/视频`" prop="" label-width="110px">
|
||||
<el-form-item :label="`${queryParams.type == '0' ? '景点' : '商家'}照片/视频:`" prop="" label-width="110px">
|
||||
<!-- <el-image v-for="item in fileList_1" :key="item" :src="item" class="avatar" /> -->
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-form-item :label="`${queryParams.type == '0' ? '景点' : '商家'}简介`" prop="intro">
|
||||
<div v-html="form.intro"></div>
|
||||
<el-form-item :label="`${queryParams.type == '0' ? '景点' : '商家'}简介:`" prop="intro">
|
||||
<div v-if="form.intro" v-html="form.intro"></div>
|
||||
<div v-else>暂无</div>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<template #footer>
|
||||
@ -433,7 +434,8 @@ const queryFormRef = ref<ElFormInstance>();
|
||||
const articleFormRef = ref<ElFormInstance>();
|
||||
const dialog = reactive<DialogOption>({
|
||||
visible: false,
|
||||
title: ''
|
||||
title: '',
|
||||
type:''
|
||||
});
|
||||
const noteLists = ref([]); // 相关笔记列表
|
||||
const previewRef = ref(null);
|
||||
@ -891,7 +893,7 @@ const updateRow = async (row: any, type: string) => {
|
||||
/** 删除按钮操作 */
|
||||
const handleDelete = async (row?: ArticleVO) => {
|
||||
const _ids = row?.id || ids.value;
|
||||
await proxy?.$modal.confirm('是否确认删除编号为"' + _ids + '"的数据项?').finally(() => (loading.value = false));
|
||||
await proxy?.$modal.confirm('是否确认删除名称为"' + row.name + '"的数据项?').finally(() => (loading.value = false));
|
||||
await delArticle(_ids);
|
||||
proxy?.$modal.msgSuccess('删除成功');
|
||||
await getList();
|
||||
|
@ -42,7 +42,7 @@
|
||||
<el-table-column label="用户等级" align="center" prop="levelName" />
|
||||
<el-table-column label="等级所达积分" align="center" prop="score" />
|
||||
<el-table-column label="排序" align="center" prop="orderNum" />
|
||||
<el-table-column label="创建者" align="center" prop="createBy" />
|
||||
<el-table-column label="创建者" align="center" prop="createByName" />
|
||||
<el-table-column label="创建时间" align="center" prop="createTime" width="180">
|
||||
<template #default="scope">
|
||||
<!-- <span>{{ parseTime(scope.row.createTime, '{y}-{m}-{d}') }}</span> -->
|
||||
@ -122,7 +122,8 @@ const userLevelFormRef = ref<ElFormInstance>();
|
||||
|
||||
const dialog = reactive<DialogOption>({
|
||||
visible: false,
|
||||
title: ''
|
||||
title: '',
|
||||
type: ''
|
||||
});
|
||||
|
||||
const initFormData: UserLevelForm = {
|
||||
|
2
src/views/manage/vendor/index.vue
vendored
2
src/views/manage/vendor/index.vue
vendored
@ -208,7 +208,7 @@ const submitForm = () => {
|
||||
/** 删除按钮操作 */
|
||||
const handleDelete = async (row?: VendorVO) => {
|
||||
const _ids = row?.id || ids.value;
|
||||
await proxy?.$modal.confirm('是否确认删除供应商编号为"' + row.vendorName + '"的数据项?').finally(() => loading.value = false);
|
||||
await proxy?.$modal.confirm('是否确认删除供应商为"' + row.vendorName + '"的数据项?').finally(() => loading.value = false);
|
||||
await delVendor(_ids);
|
||||
proxy?.$modal.msgSuccess("删除成功");
|
||||
await getList();
|
||||
|
Loading…
Reference in New Issue
Block a user