添加明信片类别及详情管理API和界面
This commit is contained in:
parent
cd73a82baa
commit
7c50b43949
63
src/api/manage/index.ts
Normal file
63
src/api/manage/index.ts
Normal file
@ -0,0 +1,63 @@
|
|||||||
|
import request from '@/utils/request';
|
||||||
|
import { AxiosPromise } from 'axios';
|
||||||
|
import { MkPostcardDetailVO, MkPostcardDetailForm, MkPostcardDetailQuery } from '@/api/manage/mkPostcardDetail/types';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询明信片详情列表
|
||||||
|
* @param query
|
||||||
|
* @returns {*}
|
||||||
|
*/
|
||||||
|
|
||||||
|
export const listMkPostcardDetail = (query?: MkPostcardDetailQuery): AxiosPromise<MkPostcardDetailVO[]> => {
|
||||||
|
return request({
|
||||||
|
url: '/manage/mkPostcardDetail/list',
|
||||||
|
method: 'get',
|
||||||
|
params: query
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询明信片详情详细
|
||||||
|
* @param id
|
||||||
|
*/
|
||||||
|
export const getMkPostcardDetail = (id: string | number): AxiosPromise<MkPostcardDetailVO> => {
|
||||||
|
return request({
|
||||||
|
url: '/manage/mkPostcardDetail/' + id,
|
||||||
|
method: 'get'
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增明信片详情
|
||||||
|
* @param data
|
||||||
|
*/
|
||||||
|
export const addMkPostcardDetail = (data: MkPostcardDetailForm) => {
|
||||||
|
return request({
|
||||||
|
url: '/manage/mkPostcardDetail',
|
||||||
|
method: 'post',
|
||||||
|
data: data
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改明信片详情
|
||||||
|
* @param data
|
||||||
|
*/
|
||||||
|
export const updateMkPostcardDetail = (data: MkPostcardDetailForm) => {
|
||||||
|
return request({
|
||||||
|
url: '/manage/mkPostcardDetail',
|
||||||
|
method: 'put',
|
||||||
|
data: data
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除明信片详情
|
||||||
|
* @param id
|
||||||
|
*/
|
||||||
|
export const delMkPostcardDetail = (id: string | number | Array<string | number>) => {
|
||||||
|
return request({
|
||||||
|
url: '/manage/mkPostcardDetail/' + id,
|
||||||
|
method: 'delete'
|
||||||
|
});
|
||||||
|
};
|
76
src/api/manage/mkPostcard/index.ts
Normal file
76
src/api/manage/mkPostcard/index.ts
Normal file
@ -0,0 +1,76 @@
|
|||||||
|
import request from '@/utils/request';
|
||||||
|
import { AxiosPromise } from 'axios';
|
||||||
|
import { MkPostcardVO, MkPostcardForm, MkPostcardQuery } from '@/api/manage/mkPostcard/types';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询明信片类别列表
|
||||||
|
* @param query
|
||||||
|
* @returns {*}
|
||||||
|
*/
|
||||||
|
|
||||||
|
export const listMkPostcard = (query?: MkPostcardQuery): AxiosPromise<MkPostcardVO[]> => {
|
||||||
|
return request({
|
||||||
|
url: '/manage/mkPostcard/list',
|
||||||
|
method: 'get',
|
||||||
|
params: query
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询明信片类别详细
|
||||||
|
* @param id
|
||||||
|
*/
|
||||||
|
export const getMkPostcard = (id: string | number): AxiosPromise<MkPostcardVO> => {
|
||||||
|
return request({
|
||||||
|
url: '/manage/mkPostcard/' + id,
|
||||||
|
method: 'get'
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增明信片类别
|
||||||
|
* @param data
|
||||||
|
*/
|
||||||
|
export const addMkPostcard = (data: MkPostcardForm) => {
|
||||||
|
return request({
|
||||||
|
url: '/manage/mkPostcard',
|
||||||
|
method: 'post',
|
||||||
|
data: data
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改明信片类别
|
||||||
|
* @param data
|
||||||
|
*/
|
||||||
|
export const updateMkPostcard = (data: MkPostcardForm) => {
|
||||||
|
return request({
|
||||||
|
url: '/manage/mkPostcard',
|
||||||
|
method: 'put',
|
||||||
|
data: data
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除明信片类别
|
||||||
|
* @param id
|
||||||
|
*/
|
||||||
|
export const delMkPostcard = (id: string | number | Array<string | number>) => {
|
||||||
|
return request({
|
||||||
|
url: '/manage/mkPostcard/' + id,
|
||||||
|
method: 'delete'
|
||||||
|
});
|
||||||
|
};
|
||||||
|
/**
|
||||||
|
* 查询明信片详情列表
|
||||||
|
* @param query
|
||||||
|
* @returns {*}
|
||||||
|
*/
|
||||||
|
|
||||||
|
export const listMkPostcardDetail = (query?: any) => {
|
||||||
|
return request({
|
||||||
|
url: '/manage/mkPostcardDetail/list',
|
||||||
|
method: 'get',
|
||||||
|
params: query
|
||||||
|
});
|
||||||
|
};
|
91
src/api/manage/mkPostcard/types.ts
Normal file
91
src/api/manage/mkPostcard/types.ts
Normal file
@ -0,0 +1,91 @@
|
|||||||
|
export interface MkPostcardVO {
|
||||||
|
/**
|
||||||
|
* ID
|
||||||
|
*/
|
||||||
|
id: string | number;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 明信片类别名称
|
||||||
|
*/
|
||||||
|
name: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 关联景点ID
|
||||||
|
*/
|
||||||
|
articleId: string | number;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 状态 0-未上架 1-已上架
|
||||||
|
*/
|
||||||
|
status: number | string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 排序
|
||||||
|
*/
|
||||||
|
sortNum: number;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建者
|
||||||
|
*/
|
||||||
|
createBy: number;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建时间
|
||||||
|
*/
|
||||||
|
createTime: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface MkPostcardForm extends BaseEntity {
|
||||||
|
/**
|
||||||
|
* ID
|
||||||
|
*/
|
||||||
|
id?: string | number;
|
||||||
|
postcardImage?: string;
|
||||||
|
coverImage?: string;
|
||||||
|
/**
|
||||||
|
* 明信片类别名称
|
||||||
|
*/
|
||||||
|
name?: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 关联景点ID
|
||||||
|
*/
|
||||||
|
articleId?: string | number;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 状态 0-未上架 1-已上架
|
||||||
|
*/
|
||||||
|
status?: number | string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 排序
|
||||||
|
*/
|
||||||
|
sortNum?: number;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface MkPostcardQuery extends PageQuery {
|
||||||
|
/**
|
||||||
|
* 明信片类别名称
|
||||||
|
*/
|
||||||
|
name?: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 关联景点ID
|
||||||
|
*/
|
||||||
|
articleId?: string | number;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 状态 0-未上架 1-已上架
|
||||||
|
*/
|
||||||
|
status?: number;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 排序
|
||||||
|
*/
|
||||||
|
sortNum?: number;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 日期范围参数
|
||||||
|
*/
|
||||||
|
params?: any;
|
||||||
|
}
|
@ -15,7 +15,18 @@ export const listArticle = (query?: ArticleQuery): AxiosPromise<ArticleVO[]> =>
|
|||||||
params: query
|
params: query
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
/**
|
||||||
|
* 查询景点管理下拉列表 不分页
|
||||||
|
* @param query
|
||||||
|
* @returns
|
||||||
|
*/
|
||||||
|
export const contentAll = (query?: any) => {
|
||||||
|
return request({
|
||||||
|
url: '/manage/content/all',
|
||||||
|
method: 'get',
|
||||||
|
params: query
|
||||||
|
});
|
||||||
|
};
|
||||||
/**
|
/**
|
||||||
* 查询景点管理详细
|
* 查询景点管理详细
|
||||||
* @param id
|
* @param id
|
||||||
|
@ -1,7 +1,8 @@
|
|||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
<el-dialog v-model="roleDialog.visible.value" :title="roleDialog.title.value" width="80%" append-to-body>
|
<el-dialog v-model="roleDialog.visible.value" :title="roleDialog.title.value" width="80%" append-to-body>
|
||||||
<transition :enter-active-class="proxy?.animate.searchAnimate.enter" :leave-active-class="proxy?.animate.searchAnimate.leave">
|
<transition :enter-active-class="proxy?.animate.searchAnimate.enter"
|
||||||
|
:leave-active-class="proxy?.animate.searchAnimate.leave">
|
||||||
<div v-show="showSearch" class="mb-[10px]">
|
<div v-show="showSearch" class="mb-[10px]">
|
||||||
<el-card shadow="hover">
|
<el-card shadow="hover">
|
||||||
<el-form ref="queryFormRef" :model="queryParams" :inline="true">
|
<el-form ref="queryFormRef" :model="queryParams" :inline="true">
|
||||||
@ -23,24 +24,15 @@
|
|||||||
|
|
||||||
<el-card shadow="hover">
|
<el-card shadow="hover">
|
||||||
<template #header>
|
<template #header>
|
||||||
<el-tag v-for="role in selectRoleList" :key="role.roleId" closable style="margin: 2px" @close="handleCloseTag(role)">
|
<el-tag v-for="role in selectRoleList" :key="role.roleId" closable style="margin: 2px"
|
||||||
|
@close="handleCloseTag(role)">
|
||||||
{{ role.roleName }}
|
{{ role.roleName }}
|
||||||
</el-tag>
|
</el-tag>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<vxe-table
|
<vxe-table ref="tableRef" height="400px" border show-overflow :data="roleList" :loading="loading"
|
||||||
ref="tableRef"
|
:row-config="{ keyField: 'roleId' }" :checkbox-config="{ reserve: true, checkRowKeys: defaultSelectRoleIds }"
|
||||||
height="400px"
|
highlight-current-row @checkbox-all="handleCheckboxAll" @checkbox-change="handleCheckboxChange">
|
||||||
border
|
|
||||||
show-overflow
|
|
||||||
:data="roleList"
|
|
||||||
:loading="loading"
|
|
||||||
:row-config="{ keyField: 'roleId' }"
|
|
||||||
:checkbox-config="{ reserve: true, checkRowKeys: defaultSelectRoleIds }"
|
|
||||||
highlight-current-row
|
|
||||||
@checkbox-all="handleCheckboxAll"
|
|
||||||
@checkbox-change="handleCheckboxChange"
|
|
||||||
>
|
|
||||||
<vxe-column type="checkbox" width="50" align="center" />
|
<vxe-column type="checkbox" width="50" align="center" />
|
||||||
<vxe-column v-if="false" key="roleId" label="角色编号" />
|
<vxe-column v-if="false" key="roleId" label="角色编号" />
|
||||||
<vxe-column field="roleName" title="角色名称" />
|
<vxe-column field="roleName" title="角色名称" />
|
||||||
@ -53,18 +45,14 @@
|
|||||||
</vxe-column>
|
</vxe-column>
|
||||||
<vxe-column field="createTime" title="创建时间" align="center">
|
<vxe-column field="createTime" title="创建时间" align="center">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<span>{{ parseTime(scope.row.createTime) }}</span>
|
<!-- <span>{{ parseTime(scope.row.createTime) }}</span> -->
|
||||||
|
<span>{{ scope.row.createTime }}</span>
|
||||||
</template>
|
</template>
|
||||||
</vxe-column>
|
</vxe-column>
|
||||||
</vxe-table>
|
</vxe-table>
|
||||||
|
|
||||||
<pagination
|
<pagination v-if="total > 0" v-model:total="total" v-model:page="queryParams.pageNum"
|
||||||
v-if="total > 0"
|
v-model:limit="queryParams.pageSize" @pagination="pageList" />
|
||||||
v-model:total="total"
|
|
||||||
v-model:page="queryParams.pageNum"
|
|
||||||
v-model:limit="queryParams.pageSize"
|
|
||||||
@pagination="pageList"
|
|
||||||
/>
|
|
||||||
</el-card>
|
</el-card>
|
||||||
<template #footer>
|
<template #footer>
|
||||||
<el-button @click="close">取消</el-button>
|
<el-button @click="close">取消</el-button>
|
||||||
|
@ -63,7 +63,8 @@
|
|||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="更新时间" align="center" prop="updateTime" width="120">
|
<el-table-column label="更新时间" align="center" prop="updateTime" width="120">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<span>{{ parseTime(scope.row.updateTime, '{y}-{m}-{d}') }}</span>
|
<!-- <span>{{ parseTime(scope.row.updateTime, '{y}-{m}-{d}') }}</span> -->
|
||||||
|
<span>{{ scope.row.updateTime }}</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="160px">
|
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="160px">
|
||||||
|
@ -1,15 +1,18 @@
|
|||||||
<!-- 用户列表 -->
|
<!-- 用户列表 -->
|
||||||
<template>
|
<template>
|
||||||
<div class="p-2">
|
<div class="p-2">
|
||||||
<transition :enter-active-class="proxy?.animate.searchAnimate.enter" :leave-active-class="proxy?.animate.searchAnimate.leave">
|
<transition :enter-active-class="proxy?.animate.searchAnimate.enter"
|
||||||
|
:leave-active-class="proxy?.animate.searchAnimate.leave">
|
||||||
<div v-show="showSearch" class="mb-[10px]" id="search_div">
|
<div v-show="showSearch" class="mb-[10px]" id="search_div">
|
||||||
<el-card shadow="hover">
|
<el-card shadow="hover">
|
||||||
<el-form ref="queryFormRef" :model="queryParams" :inline="true" label-width="80px">
|
<el-form ref="queryFormRef" :model="queryParams" :inline="true" label-width="80px">
|
||||||
<el-form-item label="用户昵称" prop="nickName">
|
<el-form-item label="用户昵称" prop="nickName">
|
||||||
<el-input class="inputWidth" v-model="queryParams.nickName" placeholder="请输入用户昵称" clearable @keyup.enter="handleQuery" />
|
<el-input class="inputWidth" v-model="queryParams.nickName" placeholder="请输入用户昵称" clearable
|
||||||
|
@keyup.enter="handleQuery" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="手机号码" prop="phone">
|
<el-form-item label="手机号码" prop="phone">
|
||||||
<el-input class="inputWidth" v-model="queryParams.phone" placeholder="请输入手机号码" clearable @keyup.enter="handleQuery" />
|
<el-input class="inputWidth" v-model="queryParams.phone" placeholder="请输入手机号码" clearable
|
||||||
|
@keyup.enter="handleQuery" />
|
||||||
</el-form-item>
|
</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-select class="inputWidth" v-model="queryParams.sex" placeholder="请选择用户性别" clearable>
|
||||||
@ -22,7 +25,8 @@
|
|||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="会员等级" prop="leveId">
|
<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-form-item>
|
</el-form-item>
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
<el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
|
<el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
|
||||||
@ -30,16 +34,16 @@
|
|||||||
<!-- <el-button type="success" plain icon="Edit" :disabled="single" @click="handleUpdate()" v-hasPermi="['manage:dyUser:edit']"
|
<!-- <el-button type="success" plain icon="Edit" :disabled="single" @click="handleUpdate()" v-hasPermi="['manage:dyUser:edit']"
|
||||||
>封禁</el-button
|
>封禁</el-button
|
||||||
> -->
|
> -->
|
||||||
<el-button type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete()" v-hasPermi="['manage:dyUser:remove']"
|
<el-button type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete()"
|
||||||
>注销</el-button
|
v-hasPermi="['manage:dyUser:remove']">注销</el-button>
|
||||||
>
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
</el-card>
|
</el-card>
|
||||||
</div>
|
</div>
|
||||||
</transition>
|
</transition>
|
||||||
|
|
||||||
<el-table :height="autoTableHeight" v-loading="loading" :data="dyUserList" @selection-change="handleSelectionChange" style="width: 100%" border>
|
<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="用户ID" align="center" prop="id" />
|
||||||
<el-table-column fixed label="帐号状态" align="center" prop="status">
|
<el-table-column fixed label="帐号状态" align="center" prop="status">
|
||||||
@ -68,7 +72,8 @@
|
|||||||
<el-table-column width="130" label="绑定微信账号" align="center" prop="openId" />
|
<el-table-column width="130" label="绑定微信账号" align="center" prop="openId" />
|
||||||
<el-table-column label="生日" align="center" prop="birthday" width="100">
|
<el-table-column label="生日" align="center" prop="birthday" width="100">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<span>{{ parseTime(scope.row.birthday, '{y}-{m}-{d}') }}</span>
|
<!-- <span>{{ parseTime(scope.row.birthday, '{y}-{m}-{d}') }}</span> -->
|
||||||
|
<span>{{ scope.row.birthday }}</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column width="55" label="年龄" align="center" prop="age" />
|
<el-table-column width="55" label="年龄" align="center" prop="age" />
|
||||||
@ -79,29 +84,34 @@
|
|||||||
<el-table-column width="80" label="IP形象" align="center" prop="" />
|
<el-table-column width="80" label="IP形象" align="center" prop="" />
|
||||||
<el-table-column width="80" label="发布笔记" align="center" prop="">
|
<el-table-column width="80" label="发布笔记" align="center" prop="">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<span style="color: dodgerblue; cursor: pointer; text-decoration: underline" @click="openNoteListDialog(scope.row)">12</span>
|
<span style="color: dodgerblue; cursor: pointer; text-decoration: underline"
|
||||||
|
@click="openNoteListDialog(scope.row)">12</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column width="90" label="发布的活动" align="center" prop="">
|
<el-table-column width="90" label="发布的活动" align="center" prop="">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<span style="color: dodgerblue; cursor: pointer; text-decoration: underline" @click="openPartyListDialog(scope.row)">15</span>
|
<span style="color: dodgerblue; cursor: pointer; text-decoration: underline"
|
||||||
|
@click="openPartyListDialog(scope.row)">15</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</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="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">
|
<template #default="scope">
|
||||||
<span style="color: dodgerblue; cursor: pointer; text-decoration: underline" @click="openScenicListDialog(scope.row)">20</span>
|
<span style="color: dodgerblue; cursor: pointer; text-decoration: underline"
|
||||||
|
@click="openScenicListDialog(scope.row)">20</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column width="90" label="点亮的城市" align="center" prop="">
|
<el-table-column width="90" label="点亮的城市" align="center" prop="">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<span style="color: dodgerblue; cursor: pointer; text-decoration: underline" @click="openCityListDialog(scope.row)">25</span>
|
<span style="color: dodgerblue; cursor: pointer; text-decoration: underline"
|
||||||
|
@click="openCityListDialog(scope.row)">25</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column width="110" label="获得的明信片" align="center" prop="">
|
<el-table-column width="110" label="获得的明信片" align="center" prop="">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<span style="color: dodgerblue; cursor: pointer; text-decoration: underline" @click="openPostcardListDialog(scope.row)">12</span>
|
<span style="color: dodgerblue; cursor: pointer; text-decoration: underline"
|
||||||
|
@click="openPostcardListDialog(scope.row)">12</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column width="80" label="我的愿望" align="center" prop="" />
|
<el-table-column width="80" label="我的愿望" align="center" prop="" />
|
||||||
@ -115,7 +125,8 @@
|
|||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column width="80" label="邀请人数" align="center" prop="">
|
<el-table-column width="80" label="邀请人数" align="center" prop="">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<span style="color: dodgerblue; cursor: pointer; text-decoration: underline" @click="openInviteListDialog(scope.row)">35</span>
|
<span style="color: dodgerblue; cursor: pointer; text-decoration: underline"
|
||||||
|
@click="openInviteListDialog(scope.row)">35</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column width="80" label="处理方式" align="center" prop="" />
|
<el-table-column width="80" label="处理方式" align="center" prop="" />
|
||||||
@ -135,30 +146,27 @@
|
|||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
|
|
||||||
<pagination
|
<pagination id="table_page" v-show="total > 0" :total="total" v-model:page="queryParams.pageNum"
|
||||||
id="table_page"
|
v-model:limit="queryParams.pageSize" @pagination="getList" />
|
||||||
v-show="total > 0"
|
|
||||||
:total="total"
|
|
||||||
v-model:page="queryParams.pageNum"
|
|
||||||
v-model:limit="queryParams.pageSize"
|
|
||||||
@pagination="getList"
|
|
||||||
/>
|
|
||||||
<!-- 添加或修改C端用户信息对话框 -->
|
<!-- 添加或修改C端用户信息对话框 -->
|
||||||
<el-dialog :title="dialog.title" v-model="dialog.visible" width="500px" append-to-body center>
|
<el-dialog :title="dialog.title" v-model="dialog.visible" width="500px" append-to-body center>
|
||||||
<el-form ref="dyUserFormRef" :model="form" :rules="rules" label-width="80px">
|
<el-form ref="dyUserFormRef" :model="form" :rules="rules" label-width="80px">
|
||||||
<el-form-item label="封禁原因" prop="reason">
|
<el-form-item label="封禁原因" prop="reason">
|
||||||
<el-select v-model="form.reason" placeholder="请选择封禁原因">
|
<el-select v-model="form.reason" placeholder="请选择封禁原因">
|
||||||
<el-option v-for="dict in dy_user_ban_mode" :key="dict.value" :label="dict.label" :value="parseInt(dict.value)"></el-option>
|
<el-option v-for="dict in dy_user_ban_mode" :key="dict.value" :label="dict.label"
|
||||||
|
:value="parseInt(dict.value)"></el-option>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="处理方式" prop="status">
|
<el-form-item label="处理方式" prop="status">
|
||||||
<el-radio-group v-model="form.status">
|
<el-radio-group v-model="form.status">
|
||||||
<el-radio v-for="dict in dy_user_status" :key="dict.value" :label="dict.label" :value="parseInt(dict.value)">{{ dict.label }}</el-radio>
|
<el-radio v-for="dict in dy_user_status" :key="dict.value" :label="dict.label"
|
||||||
|
:value="parseInt(dict.value)">{{ dict.label }}</el-radio>
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="处理天数" prop="banDays">
|
<el-form-item label="处理天数" prop="banDays">
|
||||||
<el-select v-model="form.banDays" placeholder="请选择封禁天数">
|
<el-select v-model="form.banDays" placeholder="请选择封禁天数">
|
||||||
<el-option v-for="dict in dy_user_ban_days" :key="dict.value" :label="dict.label" :value="parseInt(dict.value)"></el-option>
|
<el-option v-for="dict in dy_user_ban_days" :key="dict.value" :label="dict.label"
|
||||||
|
:value="parseInt(dict.value)"></el-option>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
@ -512,12 +520,15 @@ const bannedUser = async () => {
|
|||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
text-overflow: ellipsis;
|
text-overflow: ellipsis;
|
||||||
}
|
}
|
||||||
|
|
||||||
.inputWidth {
|
.inputWidth {
|
||||||
width: 130px;
|
width: 130px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.el-card :deep(.el-card__body) {
|
.el-card :deep(.el-card__body) {
|
||||||
padding-bottom: 0px !important;
|
padding-bottom: 0px !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
#table_page {
|
#table_page {
|
||||||
height: 50px !important;
|
height: 50px !important;
|
||||||
margin-top: 10px !important;
|
margin-top: 10px !important;
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
<el-input class="inputWidth" v-model="queryParams.remark" placeholder="请输入反馈内容" clearable
|
<el-input class="inputWidth" v-model="queryParams.remark" placeholder="请输入反馈内容" clearable
|
||||||
@keyup.enter="handleQuery" />
|
@keyup.enter="handleQuery" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="用户昵称" prop="userId">
|
<el-form-item label="用户昵称" prop="nickName">
|
||||||
<el-input v-model="queryParams.nickName" class="inputWidth" placeholder="请输入用户昵称" clearable
|
<el-input v-model="queryParams.nickName" class="inputWidth" placeholder="请输入用户昵称" clearable
|
||||||
@keyup.enter="handleQuery" />
|
@keyup.enter="handleQuery" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@ -35,7 +35,8 @@
|
|||||||
<el-table-column label="联系方式" align="center" prop="contact" width="120px" />
|
<el-table-column label="联系方式" align="center" prop="contact" width="120px" />
|
||||||
<el-table-column label="反馈时间" align="center" prop="updateTime" width="180">
|
<el-table-column label="反馈时间" align="center" prop="updateTime" width="180">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<span>{{ parseTime(scope.row.updateTime, '{y}-{m}-{d}') }}</span>
|
<!-- <span>{{ parseTime(scope.row.updateTime, '{y}-{m}-{d}') }}</span> -->
|
||||||
|
<span>{{ scope.row.updateTime }}</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="p-2">
|
<div class="p-2">
|
||||||
<transition :enter-active-class="proxy?.animate.searchAnimate.enter" :leave-active-class="proxy?.animate.searchAnimate.leave">
|
<transition :enter-active-class="proxy?.animate.searchAnimate.enter"
|
||||||
|
:leave-active-class="proxy?.animate.searchAnimate.leave">
|
||||||
<div v-show="showSearch" class="mb-[10px]">
|
<div v-show="showSearch" class="mb-[10px]">
|
||||||
<el-card shadow="hover">
|
<el-card shadow="hover">
|
||||||
<el-form ref="queryFormRef" :model="queryParams" :inline="true">
|
<el-form ref="queryFormRef" :model="queryParams" :inline="true">
|
||||||
@ -23,16 +24,20 @@
|
|||||||
<template #header>
|
<template #header>
|
||||||
<el-row :gutter="10" class="mb8">
|
<el-row :gutter="10" class="mb8">
|
||||||
<el-col :span="1.5">
|
<el-col :span="1.5">
|
||||||
<el-button type="primary" plain icon="Plus" @click="handleAdd" v-hasPermi="['manage:ipImage:add']">新增</el-button>
|
<el-button type="primary" plain icon="Plus" @click="handleAdd"
|
||||||
|
v-hasPermi="['manage:ipImage:add']">新增</el-button>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="1.5">
|
<el-col :span="1.5">
|
||||||
<el-button type="success" plain icon="Edit" :disabled="single" @click="handleUpdate()" v-hasPermi="['manage:ipImage:edit']">修改</el-button>
|
<el-button type="success" plain icon="Edit" :disabled="single" @click="handleUpdate()"
|
||||||
|
v-hasPermi="['manage:ipImage:edit']">修改</el-button>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="1.5">
|
<el-col :span="1.5">
|
||||||
<el-button type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete()" v-hasPermi="['manage:ipImage:remove']">删除</el-button>
|
<el-button type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete()"
|
||||||
|
v-hasPermi="['manage:ipImage:remove']">删除</el-button>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="1.5">
|
<el-col :span="1.5">
|
||||||
<el-button type="warning" plain icon="Download" @click="handleExport" v-hasPermi="['manage:ipImage:export']">导出</el-button>
|
<el-button type="warning" plain icon="Download" @click="handleExport"
|
||||||
|
v-hasPermi="['manage:ipImage:export']">导出</el-button>
|
||||||
</el-col>
|
</el-col>
|
||||||
<right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
|
<right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
|
||||||
</el-row>
|
</el-row>
|
||||||
@ -46,22 +51,26 @@
|
|||||||
<el-table-column label="创建者" align="center" prop="createBy" />
|
<el-table-column label="创建者" align="center" prop="createBy" />
|
||||||
<el-table-column label="创建时间" align="center" prop="createTime" width="180">
|
<el-table-column label="创建时间" align="center" prop="createTime" width="180">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<span>{{ parseTime(scope.row.createTime, '{y}-{m}-{d}') }}</span>
|
<!-- <span>{{ parseTime(scope.row.createTime, '{y}-{m}-{d}') }}</span> -->
|
||||||
|
<span>{{ scope.row.createTime }}</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<el-tooltip content="修改" placement="top">
|
<el-tooltip content="修改" placement="top">
|
||||||
<el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['manage:ipImage:edit']"></el-button>
|
<el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)"
|
||||||
|
v-hasPermi="['manage:ipImage:edit']"></el-button>
|
||||||
</el-tooltip>
|
</el-tooltip>
|
||||||
<el-tooltip content="删除" placement="top">
|
<el-tooltip content="删除" placement="top">
|
||||||
<el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['manage:ipImage:remove']"></el-button>
|
<el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)"
|
||||||
|
v-hasPermi="['manage:ipImage:remove']"></el-button>
|
||||||
</el-tooltip>
|
</el-tooltip>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
|
|
||||||
<pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize" @pagination="getList" />
|
<pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum"
|
||||||
|
v-model:limit="queryParams.pageSize" @pagination="getList" />
|
||||||
</el-card>
|
</el-card>
|
||||||
<!-- 添加或修改IP形象对话框 -->
|
<!-- 添加或修改IP形象对话框 -->
|
||||||
<el-dialog :title="dialog.title" v-model="dialog.visible" width="500px" append-to-body>
|
<el-dialog :title="dialog.title" v-model="dialog.visible" width="500px" append-to-body>
|
||||||
|
@ -42,7 +42,8 @@
|
|||||||
<el-table-column label="创建者" align="center" prop="createName" />
|
<el-table-column label="创建者" align="center" prop="createName" />
|
||||||
<el-table-column label="创建时间" align="center" prop="createTime" width="180">
|
<el-table-column label="创建时间" align="center" prop="createTime" width="180">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<span>{{ parseTime(scope.row.createTime, '{y}-{m}-{d}') }}</span>
|
<!-- <span>{{ parseTime(scope.row.createTime, '{y}-{m}-{d}') }}</span> -->
|
||||||
|
<span>{{ scope.row.createTime }}</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
||||||
@ -149,7 +150,7 @@
|
|||||||
<el-table-column prop="nickName" label="昵称" width="170" />
|
<el-table-column prop="nickName" label="昵称" width="170" />
|
||||||
<el-table-column prop="" label="获得奖品" width="100">
|
<el-table-column prop="" label="获得奖品" width="100">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<el-button link type="primary" @click="">查看详情</el-button>
|
<el-button link type="primary" @click="getproductInfo(scope.row.productId)">查看详情</el-button>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="" label="邀请人数" width="80">
|
<el-table-column prop="" label="邀请人数" width="80">
|
||||||
@ -165,13 +166,59 @@
|
|||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
|
<!-- 奖品详情 -->
|
||||||
|
<el-dialog title="奖品详情" v-model="productInfo.visible" 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>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup name="MkConfig" lang="ts">
|
<script setup name="MkConfig" lang="ts">
|
||||||
import { listMkConfig, getMkConfig, delMkConfig, addMkConfig, updateMkConfig,mkRewardUserList } from '@/api/manage/mkConfig';
|
import { listMkConfig, getMkConfig, delMkConfig, addMkConfig, updateMkConfig,mkRewardUserList } from '@/api/manage/mkConfig';
|
||||||
import { MkConfigVO, MkConfigQuery, MkConfigForm } from '@/api/manage/mkConfig/types';
|
import { MkConfigVO, MkConfigQuery, MkConfigForm } from '@/api/manage/mkConfig/types';
|
||||||
|
import { getProduct } from '@/api/manage/product';
|
||||||
|
import { listProductCategory } from '@/api/manage/productCategory';
|
||||||
|
import { listVendor } from '@/api/manage/vendor';
|
||||||
|
onMounted(() => {
|
||||||
|
getList();
|
||||||
|
getlistVendor(); //供应商列表
|
||||||
|
getProductCategoryList(); //商品类别列表
|
||||||
|
});
|
||||||
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
|
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
|
||||||
|
|
||||||
const mkConfigList = ref<MkConfigVO[]>([]);
|
const mkConfigList = ref<MkConfigVO[]>([]);
|
||||||
@ -198,6 +245,16 @@ const mkRewardUserParams = reactive({
|
|||||||
pageSize: 10,
|
pageSize: 10,
|
||||||
bizId:null,
|
bizId:null,
|
||||||
})
|
})
|
||||||
|
const productInfo = reactive({
|
||||||
|
visible: false,
|
||||||
|
form:{
|
||||||
|
image:null,
|
||||||
|
vendorId:null,
|
||||||
|
categoryId:null,
|
||||||
|
productName:null,
|
||||||
|
productShows:null
|
||||||
|
}
|
||||||
|
})
|
||||||
const initFormData: MkConfigForm = {
|
const initFormData: MkConfigForm = {
|
||||||
id: undefined,
|
id: undefined,
|
||||||
name: undefined,
|
name: undefined,
|
||||||
@ -229,7 +286,6 @@ const data = reactive<PageData<MkConfigForm, MkConfigQuery>>({
|
|||||||
rules: {
|
rules: {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
const { queryParams, form, rules } = toRefs(data);
|
const { queryParams, form, rules } = toRefs(data);
|
||||||
// 路由监听================================================
|
// 路由监听================================================
|
||||||
let router = useRouter();
|
let router = useRouter();
|
||||||
@ -259,7 +315,10 @@ const cancel = () => {
|
|||||||
dialog.visible = false;
|
dialog.visible = false;
|
||||||
mkReward.visible = false;
|
mkReward.visible = false;
|
||||||
}
|
}
|
||||||
|
//关闭奖品详情
|
||||||
|
const cancelProductInfo = () => {
|
||||||
|
productInfo.visible = false;
|
||||||
|
}
|
||||||
/** 表单重置 */
|
/** 表单重置 */
|
||||||
const reset = () => {
|
const reset = () => {
|
||||||
form.value = {...initFormData};
|
form.value = {...initFormData};
|
||||||
@ -405,9 +464,55 @@ const amendRoundConfig= async (index:number,type:string) => {
|
|||||||
form.value.roundConfig.splice(index,1)
|
form.value.roundConfig.splice(index,1)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
onMounted(() => {
|
/**
|
||||||
getList();
|
* 查看奖品详情
|
||||||
});
|
* @param productId
|
||||||
|
*/
|
||||||
|
const getproductInfo = async (productId: any) => {
|
||||||
|
const res = await getProduct(productId);
|
||||||
|
productInfo.form = res.data;
|
||||||
|
productInfo.visible = true;
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* 商品类别列表
|
||||||
|
*/
|
||||||
|
const productCategoryList = ref([]);
|
||||||
|
const getProductCategoryList = async () => {
|
||||||
|
let res = await listProductCategory({ pageNum: 1, pageSize: 9999 });
|
||||||
|
productCategoryList.value = res.rows;
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* 供应商列表
|
||||||
|
*/
|
||||||
|
const listVendorList = ref([]);
|
||||||
|
const getlistVendor = async () => {
|
||||||
|
let res = await listVendor({ pageNum: 1, pageSize: 9999 });
|
||||||
|
listVendorList.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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* 格式化 供应商名称
|
||||||
|
* @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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
.handle_btn {
|
.handle_btn {
|
||||||
|
370
src/views/manage/mkPostcard/index.vue
Normal file
370
src/views/manage/mkPostcard/index.vue
Normal file
@ -0,0 +1,370 @@
|
|||||||
|
<template>
|
||||||
|
<div class="p-2">
|
||||||
|
<transition :enter-active-class="proxy?.animate.searchAnimate.enter"
|
||||||
|
:leave-active-class="proxy?.animate.searchAnimate.leave">
|
||||||
|
<div v-show="showSearch" class="mb-[10px]" id="search_div">
|
||||||
|
<el-card shadow="hover">
|
||||||
|
<el-form ref="queryFormRef" :model="queryParams" :inline="true">
|
||||||
|
<el-form-item label="名称" prop="name">
|
||||||
|
<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>
|
||||||
|
<el-form-item>
|
||||||
|
<el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
|
||||||
|
<el-button icon="Refresh" @click="resetQuery">重置</el-button>
|
||||||
|
<el-button type="primary" plain icon="Plus" @click="handleAdd"
|
||||||
|
v-hasPermi="['manage:mkPostcard:add']">新增</el-button>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
</el-card>
|
||||||
|
</div>
|
||||||
|
</transition>
|
||||||
|
|
||||||
|
<el-table v-loading="loading" border :data="mkPostcardList" :height="autoTableHeight"
|
||||||
|
@selection-change="handleSelectionChange">
|
||||||
|
<el-table-column label="ID" align="center" prop="id" v-if="true" width="150" />
|
||||||
|
<el-table-column label="明信片名称" align="center" prop="name" />
|
||||||
|
<el-table-column label="关联景点" align="center" prop="articleId">
|
||||||
|
<template #default="scope">
|
||||||
|
<span>{{ formatterArticleId(scope.row.articleId)}}</span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="排序" align="center" prop="sortNum" />
|
||||||
|
<el-table-column label="封面" align="center" prop="">
|
||||||
|
<template #default="scope">
|
||||||
|
<el-image :src="scope.row.imgUrl" :preview-src-list="[scope.row.imgUrl]" :initial-index="0" fit="cover"
|
||||||
|
style="width: 100px; height: 100px" />
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="明信片" align="center" prop="">
|
||||||
|
<template #default="scope">
|
||||||
|
<el-button link type="primary" @click="handlePostcard(scope.row)">查看详情</el-button>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<!-- 0-未上架 1-已上架 -->
|
||||||
|
<el-table-column label="状态" align="center" prop="status">
|
||||||
|
<template #default="scope">
|
||||||
|
<span>{{ scope.row.status == 1 ? '已上架' : '未上架'}}</span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="创建者" align="center" prop="createByName" />
|
||||||
|
<el-table-column label="创建时间" align="center" prop="createTime" width="180" />
|
||||||
|
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
||||||
|
<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"
|
||||||
|
v-hasPermi="['manage:mkPostcard:edit']">下架</el-button>
|
||||||
|
<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:mkPostcard:edit']"></el-button>
|
||||||
|
</el-tooltip>
|
||||||
|
<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:mkPostcard:remove']"></el-button>
|
||||||
|
</el-tooltip>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</el-table>
|
||||||
|
|
||||||
|
<pagination v-show="total > 0" id="table_page" :total="total" v-model:page="queryParams.pageNum"
|
||||||
|
v-model:limit="queryParams.pageSize" @pagination="getList" />
|
||||||
|
<!-- 添加或修改明信片类别对话框 -->
|
||||||
|
<el-dialog :title="dialog.title" v-model="dialog.visible" width="500px" append-to-body>
|
||||||
|
<el-form ref="mkPostcardFormRef" :model="form" :rules="rules" label-width="80px">
|
||||||
|
<el-form-item label="名称" prop="name">
|
||||||
|
<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-option v-for="(item,index) in contentAllList" :key="item.id" :label="item.name"
|
||||||
|
:value="item.id"></el-option>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="排序" prop="sortNum">
|
||||||
|
<el-input-number v-model="form.sortNum" :min="1" :max="10000" />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="封面" prop="coverImage">
|
||||||
|
<image-upload v-model="form.coverImage" />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="明信片" prop="postcardImage">
|
||||||
|
<image-upload v-model="form.postcardImage" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
<template #footer>
|
||||||
|
<div class="dialog-footer">
|
||||||
|
<el-button :loading="buttonLoading" type="primary" @click="submitForm">确 定</el-button>
|
||||||
|
<el-button @click="cancel">取 消</el-button>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
</el-dialog>
|
||||||
|
<!-- 明显片详情 -->
|
||||||
|
<el-dialog :title="postcardInfo.title" v-model="postcardInfo.visible" width="700px" append-to-body>
|
||||||
|
<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" />
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="打卡人数" align="center" prop="clockInCount" />
|
||||||
|
<el-table-column label="邮寄人数" align="center" prop="mailingCount" />
|
||||||
|
</el-table>
|
||||||
|
<template #footer>
|
||||||
|
<div class="dialog-footer">
|
||||||
|
<el-button @click="cancel">关 闭</el-button>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
</el-dialog>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup name="MkPostcard" lang="ts">
|
||||||
|
import { contentAll } from '@/api/manage/scenic';
|
||||||
|
import { listMkPostcard, getMkPostcard, delMkPostcard, addMkPostcard, updateMkPostcard,listMkPostcardDetail } from '@/api/manage/mkPostcard';
|
||||||
|
import { MkPostcardVO, MkPostcardQuery, MkPostcardForm } from '@/api/manage/mkPostcard/types';
|
||||||
|
import { Postcard } from '@element-plus/icons-vue';
|
||||||
|
import { title } from 'process';
|
||||||
|
|
||||||
|
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
|
||||||
|
const autoTableHeight = ref<number>(750);
|
||||||
|
const mkPostcardList = ref<MkPostcardVO[]>([]);
|
||||||
|
const buttonLoading = ref(false);
|
||||||
|
const loading = ref(true);
|
||||||
|
const showSearch = ref(true);
|
||||||
|
const ids = ref<Array<string | number>>([]);
|
||||||
|
const single = ref(true);
|
||||||
|
const multiple = ref(true);
|
||||||
|
const total = ref(0);
|
||||||
|
|
||||||
|
const queryFormRef = ref<ElFormInstance>();
|
||||||
|
const mkPostcardFormRef = ref<ElFormInstance>();
|
||||||
|
|
||||||
|
const dialog = reactive<DialogOption>({
|
||||||
|
visible: false,
|
||||||
|
title: ''
|
||||||
|
});
|
||||||
|
|
||||||
|
const initFormData: MkPostcardForm = {
|
||||||
|
id: undefined,
|
||||||
|
name: undefined,
|
||||||
|
articleId: undefined,
|
||||||
|
status: 0,
|
||||||
|
sortNum: 0,
|
||||||
|
postcardImage: undefined,
|
||||||
|
coverImage: undefined,
|
||||||
|
}
|
||||||
|
const data = reactive<PageData<MkPostcardForm, MkPostcardQuery>>({
|
||||||
|
form: {...initFormData},
|
||||||
|
queryParams: {
|
||||||
|
pageNum: 1,
|
||||||
|
pageSize: 10,
|
||||||
|
name: undefined,
|
||||||
|
articleId: undefined,
|
||||||
|
status: undefined,
|
||||||
|
sortNum: undefined,
|
||||||
|
params: {
|
||||||
|
}
|
||||||
|
},
|
||||||
|
rules: {
|
||||||
|
name: [
|
||||||
|
{ required: true, message: "明信片名称不能为空", trigger: "blur" }
|
||||||
|
],
|
||||||
|
articleId: [
|
||||||
|
{ required: true, message: "关联景点不能为空", trigger: "change" }
|
||||||
|
],
|
||||||
|
sortNum: [
|
||||||
|
{ required: true, message: "排序不能为空", trigger: "change" }
|
||||||
|
],
|
||||||
|
coverImage: [
|
||||||
|
{ required: false, message: "封面不能为空", trigger: "blur" }
|
||||||
|
],
|
||||||
|
postcardImage: [
|
||||||
|
{ required: false, message: "明信片不能为空", trigger: "blur" }
|
||||||
|
],
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
const { queryParams, form, rules } = toRefs(data);
|
||||||
|
|
||||||
|
/** 查询明信片类别列表 */
|
||||||
|
const getList = async () => {
|
||||||
|
loading.value = true;
|
||||||
|
const res = await listMkPostcard(queryParams.value);
|
||||||
|
mkPostcardList.value = res.rows;
|
||||||
|
total.value = res.total;
|
||||||
|
loading.value = false;
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* 查询景点下拉列表
|
||||||
|
*/
|
||||||
|
const contentAllList= ref([]);
|
||||||
|
const getContentAll = async () => {
|
||||||
|
const res = await contentAll({type:'0'});
|
||||||
|
Object.assign(contentAllList.value, res);
|
||||||
|
}
|
||||||
|
/** 取消按钮 */
|
||||||
|
const cancel = () => {
|
||||||
|
reset();
|
||||||
|
dialog.visible = false;
|
||||||
|
postcardInfo.visible=false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** 表单重置 */
|
||||||
|
const reset = () => {
|
||||||
|
form.value = {...initFormData};
|
||||||
|
mkPostcardFormRef.value?.resetFields();
|
||||||
|
}
|
||||||
|
|
||||||
|
/** 搜索按钮操作 */
|
||||||
|
const handleQuery = () => {
|
||||||
|
queryParams.value.pageNum = 1;
|
||||||
|
getList();
|
||||||
|
}
|
||||||
|
|
||||||
|
/** 重置按钮操作 */
|
||||||
|
const resetQuery = () => {
|
||||||
|
queryFormRef.value?.resetFields();
|
||||||
|
handleQuery();
|
||||||
|
}
|
||||||
|
|
||||||
|
/** 多选框选中数据 */
|
||||||
|
const handleSelectionChange = (selection: MkPostcardVO[]) => {
|
||||||
|
ids.value = selection.map(item => item.id);
|
||||||
|
single.value = selection.length != 1;
|
||||||
|
multiple.value = !selection.length;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** 新增按钮操作 */
|
||||||
|
const handleAdd = () => {
|
||||||
|
reset();
|
||||||
|
dialog.visible = true;
|
||||||
|
dialog.title = "添加明信片";
|
||||||
|
}
|
||||||
|
|
||||||
|
/** 修改按钮操作 */
|
||||||
|
const handleUpdate = async (row?: MkPostcardVO) => {
|
||||||
|
reset();
|
||||||
|
const _id = row?.id || ids.value[0]
|
||||||
|
const res = await getMkPostcard(_id);
|
||||||
|
Object.assign(form.value, res.data);
|
||||||
|
dialog.visible = true;
|
||||||
|
dialog.title = "修改明信片";
|
||||||
|
}
|
||||||
|
|
||||||
|
/** 提交按钮 */
|
||||||
|
const submitForm = () => {
|
||||||
|
mkPostcardFormRef.value?.validate(async (valid: boolean) => {
|
||||||
|
if (valid) {
|
||||||
|
buttonLoading.value = true;
|
||||||
|
if (form.value.id) {
|
||||||
|
await updateMkPostcard(form.value).finally(() => buttonLoading.value = false);
|
||||||
|
} else {
|
||||||
|
await addMkPostcard(form.value).finally(() => buttonLoading.value = false);
|
||||||
|
}
|
||||||
|
proxy?.$modal.msgSuccess("操作成功");
|
||||||
|
dialog.visible = false;
|
||||||
|
await getList();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/** 删除按钮操作 */
|
||||||
|
const handleDelete = async (row?: MkPostcardVO) => {
|
||||||
|
const _ids = row?.id;
|
||||||
|
await proxy?.$modal.confirm('是否确认删除名称为"' + row.name + '"的明信片?').finally(() => loading.value = false);
|
||||||
|
await delMkPostcard(_ids);
|
||||||
|
proxy?.$modal.msgSuccess("删除成功");
|
||||||
|
await getList();
|
||||||
|
}
|
||||||
|
|
||||||
|
/** 导出按钮操作 */
|
||||||
|
const handleExport = () => {
|
||||||
|
proxy?.download('manage/mkPostcard/export', {
|
||||||
|
...queryParams.value
|
||||||
|
}, `mkPostcard_${new Date().getTime()}.xlsx`)
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* 明信片 上下架
|
||||||
|
* @param row
|
||||||
|
* @param type
|
||||||
|
*/
|
||||||
|
const handleStatus=async (row:MkPostcardVO,type:string)=>{
|
||||||
|
if (type=='1') {
|
||||||
|
await proxy?.$modal.confirm('是否确认上架名称为"' + row.name + '"的明信片?')
|
||||||
|
}else{
|
||||||
|
await proxy?.$modal.confirm('是否确认下架名称为"' + row.name + '"的明信片?')
|
||||||
|
}
|
||||||
|
row.status=type;
|
||||||
|
loading.value=true;
|
||||||
|
await updateMkPostcard(row).finally(() => loading.value = false);
|
||||||
|
proxy?.$modal.msgSuccess("操作成功");
|
||||||
|
await getList();
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* 格式化列表景点名称
|
||||||
|
* @param row
|
||||||
|
*/
|
||||||
|
const formatterArticleId = (id: string) => {
|
||||||
|
for (let i = 0; i < contentAllList.value.length; i++) {
|
||||||
|
const element = contentAllList.value[i];
|
||||||
|
if (element.id == id) {
|
||||||
|
return element.name;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* 查看明信片详情
|
||||||
|
* @param row
|
||||||
|
*/
|
||||||
|
const postcardInfo=reactive({
|
||||||
|
visible:false,
|
||||||
|
dataList:[],
|
||||||
|
title:''
|
||||||
|
})
|
||||||
|
const handlePostcard = async (row:MkPostcardVO)=>{
|
||||||
|
postcardInfo.title=row.name+'明信片';
|
||||||
|
postcardInfo.visible=true;
|
||||||
|
let res=await listMkPostcardDetail({pageNum:1,pageSize:1000});
|
||||||
|
|
||||||
|
}
|
||||||
|
onMounted(() => {
|
||||||
|
getList();
|
||||||
|
getContentAll();
|
||||||
|
nextTick(() => {
|
||||||
|
autoTableHeight.value = proxy?.autoTableHeight();
|
||||||
|
});
|
||||||
|
window.onresize = () => {
|
||||||
|
autoTableHeight.value = proxy?.autoTableHeight();
|
||||||
|
};
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
.el-card :deep(.el-card__body) {
|
||||||
|
padding-bottom: 0px !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
#table_page {
|
||||||
|
height: 50px !important;
|
||||||
|
margin-top: 10px !important;
|
||||||
|
padding-bottom: 10px !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.el-upload {
|
||||||
|
:deep(.el-upload-dragger) {
|
||||||
|
padding: 0;
|
||||||
|
height: 100%;
|
||||||
|
|
||||||
|
i {
|
||||||
|
top: 30%;
|
||||||
|
left: 50%;
|
||||||
|
position: absolute;
|
||||||
|
transform: translateX(-50%);
|
||||||
|
font-size: 45px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
@ -63,7 +63,8 @@
|
|||||||
@selection-change="handleSelectionChange">
|
@selection-change="handleSelectionChange">
|
||||||
<el-table-column label="创建时间" align="center" prop="createTime" width="120">
|
<el-table-column label="创建时间" align="center" prop="createTime" width="120">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<span>{{ parseTime(scope.row.createTime, '{y}-{m}-{d}') }}</span>
|
<!-- <span>{{ parseTime(scope.row.createTime, '{y}-{m}-{d}') }}</span> -->
|
||||||
|
<span>{{ scope.row.createTime }}</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="订单号" align="center" prop="orderNumber" />
|
<el-table-column label="订单号" align="center" prop="orderNumber" />
|
||||||
|
@ -58,7 +58,8 @@
|
|||||||
<el-table-column label="操作者" align="center" prop="updateByName" />
|
<el-table-column label="操作者" align="center" prop="updateByName" />
|
||||||
<el-table-column label="操作时间" align="center" prop="updateTime" width="180">
|
<el-table-column label="操作时间" align="center" prop="updateTime" width="180">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<span>{{ parseTime(scope.row.updateTime, '{y}-{m}-{d}') }}</span>
|
<!-- <span>{{ parseTime(scope.row.updateTime, '{y}-{m}-{d}') }}</span> -->
|
||||||
|
<span>{{ scope.row.updateTime }}</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
||||||
@ -291,7 +292,7 @@ const submitForm = () => {
|
|||||||
/** 删除按钮操作 */
|
/** 删除按钮操作 */
|
||||||
const handleDelete = async (row?: ProductVO) => {
|
const handleDelete = async (row?: ProductVO) => {
|
||||||
const _ids = row?.id || ids.value;
|
const _ids = row?.id || ids.value;
|
||||||
await proxy?.$modal.confirm('是否确认删除商品信息编号为"' + _ids + '"的数据项?').finally(() => loading.value = false);
|
await proxy?.$modal.confirm('是否确认删除商品名称为"' + row.productName + '"的数据项?').finally(() => loading.value = false);
|
||||||
await delProduct(_ids);
|
await delProduct(_ids);
|
||||||
proxy?.$modal.msgSuccess("删除成功");
|
proxy?.$modal.msgSuccess("删除成功");
|
||||||
await getList();
|
await getList();
|
||||||
|
@ -15,10 +15,10 @@
|
|||||||
<el-button icon="Refresh" @click="resetQuery">重置</el-button>
|
<el-button icon="Refresh" @click="resetQuery">重置</el-button>
|
||||||
<el-button type="primary" plain icon="Plus" @click="handleAdd"
|
<el-button type="primary" plain icon="Plus" @click="handleAdd"
|
||||||
v-hasPermi="['manage:productCategory:add']">新增</el-button>
|
v-hasPermi="['manage:productCategory: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:productCategory:edit']">修改</el-button>
|
v-hasPermi="['manage:productCategory:edit']">修改</el-button>
|
||||||
<el-button type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete()"
|
<el-button type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete()"
|
||||||
v-hasPermi="['manage:productCategory:remove']">删除</el-button>
|
v-hasPermi="['manage:productCategory:remove']">删除</el-button> -->
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
</el-card>
|
</el-card>
|
||||||
@ -27,7 +27,7 @@
|
|||||||
|
|
||||||
<el-table v-loading="loading" :height="autoTableHeight" border :data="productCategoryList"
|
<el-table v-loading="loading" :height="autoTableHeight" border :data="productCategoryList"
|
||||||
@selection-change="handleSelectionChange">
|
@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="类别名称" align="center" prop="category" />
|
<el-table-column label="类别名称" align="center" prop="category" />
|
||||||
<el-table-column label="类别排序" align="center" prop="sortNum" />
|
<el-table-column label="类别排序" align="center" prop="sortNum" />
|
||||||
<el-table-column label="商品图" align="center" prop="image.imgUrl">
|
<el-table-column label="商品图" align="center" prop="image.imgUrl">
|
||||||
@ -50,7 +50,8 @@
|
|||||||
<el-table-column label="操作者" align="center" prop="updateByName" />
|
<el-table-column label="操作者" align="center" prop="updateByName" />
|
||||||
<el-table-column label="操作时间" align="center" prop="updateTime" width="180">
|
<el-table-column label="操作时间" align="center" prop="updateTime" width="180">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<span>{{ parseTime(scope.row.updateTime, '{y}-{m}-{d}') }}</span>
|
<!-- <span>{{ parseTime(scope.row.updateTime, '{y}-{m}-{d}') }}</span> -->
|
||||||
|
<span>{{ scope.row.updateTime }}</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
||||||
@ -96,7 +97,8 @@
|
|||||||
<el-table-column label="用户昵称" align="center" prop="nickName" />
|
<el-table-column label="用户昵称" align="center" prop="nickName" />
|
||||||
<el-table-column label="许愿时间" align="center" prop="updateTime" width="180">
|
<el-table-column label="许愿时间" align="center" prop="updateTime" width="180">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<span>{{ parseTime(scope.row.updateTime, '{y}-{m}-{d}') }}</span>
|
<!-- <span>{{ parseTime(scope.row.updateTime, '{y}-{m}-{d}') }}</span> -->
|
||||||
|
<span>{{ scope.row.updateTime }}</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
@ -251,7 +253,7 @@ const submitForm = () => {
|
|||||||
/** 删除按钮操作 */
|
/** 删除按钮操作 */
|
||||||
const handleDelete = async (row?: ProductCategoryVO) => {
|
const handleDelete = async (row?: ProductCategoryVO) => {
|
||||||
const _ids = row?.id || ids.value;
|
const _ids = row?.id || ids.value;
|
||||||
await proxy?.$modal.confirm('是否确认删除商品类别编号为"' + _ids + '"的数据项?').finally(() => loading.value = false);
|
await proxy?.$modal.confirm('是否确认删除商品类别编号为"' + row.category + '"的数据项?').finally(() => loading.value = false);
|
||||||
await delProductCategory(_ids);
|
await delProductCategory(_ids);
|
||||||
proxy?.$modal.msgSuccess("删除成功");
|
proxy?.$modal.msgSuccess("删除成功");
|
||||||
await getList();
|
await getList();
|
||||||
|
@ -50,10 +50,10 @@
|
|||||||
<el-button icon="Refresh" @click="resetQuery">重置</el-button>
|
<el-button icon="Refresh" @click="resetQuery">重置</el-button>
|
||||||
<el-button type="primary" plain icon="Plus" @click="handleAdd"
|
<el-button type="primary" plain icon="Plus" @click="handleAdd"
|
||||||
v-hasPermi="['system:article:add']">新增</el-button>
|
v-hasPermi="['system: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="['system:article:edit']">修改</el-button>
|
v-hasPermi="['system:article:edit']">修改</el-button>
|
||||||
<el-button type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete()"
|
<el-button type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete()"
|
||||||
v-hasPermi="['system:article:remove']">删除</el-button>
|
v-hasPermi="['system:article:remove']">删除</el-button> -->
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
</el-card>
|
</el-card>
|
||||||
@ -62,7 +62,6 @@
|
|||||||
|
|
||||||
<el-table :height="autoTableHeight" v-loading="loading" :data="articleList"
|
<el-table :height="autoTableHeight" v-loading="loading" :data="articleList"
|
||||||
@selection-change="handleSelectionChange" border>
|
@selection-change="handleSelectionChange" border>
|
||||||
<el-table-column type="selection" width="55" align="center" />
|
|
||||||
<el-table-column label="ID" align="center" prop="id" fixed v-if="false" width="50px" />
|
<el-table-column label="ID" align="center" prop="id" fixed v-if="false" width="50px" />
|
||||||
<el-table-column label="景点名称" align="center" prop="name" fixed v-if="queryParams.type == '0'" width="180px" />
|
<el-table-column label="景点名称" align="center" prop="name" fixed v-if="queryParams.type == '0'" width="180px" />
|
||||||
<el-table-column label="商家名称" align="center" prop="name" fixed v-if="queryParams.type != '0'" width="180px" />
|
<el-table-column label="商家名称" align="center" prop="name" fixed v-if="queryParams.type != '0'" width="180px" />
|
||||||
@ -109,17 +108,20 @@
|
|||||||
<el-table-column label="收藏数量" align="center" prop="collectionCount" />
|
<el-table-column label="收藏数量" align="center" prop="collectionCount" />
|
||||||
<el-table-column label="相关笔记" align="center" prop="pubNotebookCount">
|
<el-table-column label="相关笔记" align="center" prop="pubNotebookCount">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<el-button link type="primary" @click="handleNote(scope.row)">11{{ scope.row.noteNumber }}</el-button>
|
<el-button link type="primary" v-if="scope.row.status!==3" @click="handleNote(scope.row)">11{{
|
||||||
|
scope.row.noteNumber }}</el-button>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="笔记评论数" align="center" prop="notebookCommentCount" width="90px">
|
<el-table-column label="笔记评论数" align="center" prop="notebookCommentCount" width="90px">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<el-button link type="primary" @click="handleNote(scope.row)">11{{ scope.row.noteNumber }}</el-button>
|
<el-button link type="primary" v-if="scope.row.status!==3" @click="handleNote(scope.row)">11{{
|
||||||
|
scope.row.noteNumber }}</el-button>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="笔记点赞数" align="center" prop="notebookAgreeCount" width="90px">
|
<el-table-column label="笔记点赞数" align="center" prop="notebookAgreeCount" width="90px">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<el-button link type="primary" @click="handleNote(scope.row)">11{{ scope.row.noteNumber }}</el-button>
|
<el-button link type="primary" v-if="scope.row.status!==3" @click="handleNote(scope.row)">11{{
|
||||||
|
scope.row.noteNumber }}</el-button>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<!-- 0-未发布 1-审核中 2-发布 -->
|
<!-- 0-未发布 1-审核中 2-发布 -->
|
||||||
@ -833,15 +835,18 @@ const submitForm = async (type: string) => {
|
|||||||
if (type == 'draft') {
|
if (type == 'draft') {
|
||||||
// 存草稿,不验证必填项
|
// 存草稿,不验证必填项
|
||||||
form.value.status = '3'; //草稿状态为3
|
form.value.status = '3'; //草稿状态为3
|
||||||
|
if (!form.value.name) {
|
||||||
|
proxy?.$modal.msgError('请输入名称');
|
||||||
|
return
|
||||||
|
}
|
||||||
buttonLoading.value = true;
|
buttonLoading.value = true;
|
||||||
|
|
||||||
if (form.value.id) {
|
if (form.value.id) {
|
||||||
await updateArticle(form.value).finally(() => (buttonLoading.value = false));
|
await updateArticle(form.value).finally(() => (buttonLoading.value = false));
|
||||||
} else {
|
} else {
|
||||||
await addArticle(form.value).finally(() => (buttonLoading.value = false));
|
await addArticle(form.value).finally(() => (buttonLoading.value = false));
|
||||||
}
|
}
|
||||||
proxy?.$modal.msgSuccess('操作成功');
|
proxy?.$modal.msgSuccess('操作成功');
|
||||||
dialog.visible = false;
|
// dialog.visible = false;
|
||||||
await getList();
|
await getList();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -859,6 +864,7 @@ const submitForm = async (type: string) => {
|
|||||||
// form.value.attribute = 0;
|
// form.value.attribute = 0;
|
||||||
// }
|
// }
|
||||||
if (form.value.id) {
|
if (form.value.id) {
|
||||||
|
form.value.status = '0'; //未发布状态为0
|
||||||
await updateArticle(form.value).finally(() => (buttonLoading.value = false));
|
await updateArticle(form.value).finally(() => (buttonLoading.value = false));
|
||||||
} else {
|
} else {
|
||||||
await addArticle(form.value).finally(() => (buttonLoading.value = false));
|
await addArticle(form.value).finally(() => (buttonLoading.value = false));
|
||||||
|
@ -35,7 +35,8 @@
|
|||||||
<el-table-column label="更新者" align="center" prop="updateByName" />
|
<el-table-column label="更新者" align="center" prop="updateByName" />
|
||||||
<el-table-column label="更新时间" align="center" prop="updateTime" width="180">
|
<el-table-column label="更新时间" align="center" prop="updateTime" width="180">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<span>{{ parseTime(scope.row.updateTime, '{y}-{m}-{d}') }}</span>
|
<!-- <span>{{ parseTime(scope.row.updateTime, '{y}-{m}-{d}') }}</span> -->
|
||||||
|
<span>{{ scope.row.updateTime }}</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
||||||
|
@ -1,39 +1,43 @@
|
|||||||
<!-- 用户等级列表 -->
|
<!-- 用户等级列表 -->
|
||||||
<template>
|
<template>
|
||||||
<div class="p-2">
|
<div class="p-2">
|
||||||
<transition :enter-active-class="proxy?.animate.searchAnimate.enter" :leave-active-class="proxy?.animate.searchAnimate.leave">
|
<transition :enter-active-class="proxy?.animate.searchAnimate.enter"
|
||||||
|
:leave-active-class="proxy?.animate.searchAnimate.leave">
|
||||||
<div v-show="showSearch" class="mb-[10px]" id="search_div">
|
<div v-show="showSearch" class="mb-[10px]" id="search_div">
|
||||||
<el-card shadow="hover">
|
<el-card shadow="hover">
|
||||||
<el-form ref="queryFormRef" :model="queryParams" :inline="true">
|
<el-form ref="queryFormRef" :model="queryParams" :inline="true">
|
||||||
<el-form-item label="等级名称" prop="levelName">
|
<el-form-item label="等级名称" prop="levelName">
|
||||||
<el-input class="inputWidth" v-model="queryParams.levelName" placeholder="请输入等级名称" clearable @keyup.enter="handleQuery" />
|
<el-input class="inputWidth" v-model="queryParams.levelName" placeholder="请输入等级名称" clearable
|
||||||
|
@keyup.enter="handleQuery" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="积分上限" prop="score">
|
<el-form-item label="积分上限" prop="score">
|
||||||
<el-input class="inputWidth" v-model="queryParams.score" placeholder="请输入积分上限" clearable @keyup.enter="handleQuery" />
|
<el-input class="inputWidth" v-model="queryParams.score" placeholder="请输入积分上限" clearable
|
||||||
|
@keyup.enter="handleQuery" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="状态" prop="status">
|
<el-form-item label="状态" prop="status">
|
||||||
<el-select class="inputWidth" v-model="queryParams.status" placeholder="请选择状态" clearable>
|
<el-select class="inputWidth" v-model="queryParams.status" placeholder="请选择状态" clearable>
|
||||||
<el-option v-for="dict in dy_user_level_status" :key="dict.value" :label="dict.label" :value="dict.value" />
|
<el-option v-for="dict in dy_user_level_status" :key="dict.value" :label="dict.label"
|
||||||
|
:value="dict.value" />
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
<el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
|
<el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
|
||||||
<el-button icon="Refresh" @click="resetQuery">重置</el-button>
|
<el-button icon="Refresh" @click="resetQuery">重置</el-button>
|
||||||
<el-button type="primary" plain icon="Plus" @click="handleAdd" v-hasPermi="['manage:userLevel:add']">新增</el-button>
|
<el-button type="primary" plain icon="Plus" @click="handleAdd"
|
||||||
|
v-hasPermi="['manage:userLevel:add']">新增</el-button>
|
||||||
|
|
||||||
<el-button type="success" plain icon="Edit" :disabled="single" @click="handleUpdate()" v-hasPermi="['manage:userLevel:edit']"
|
<el-button type="success" plain icon="Edit" :disabled="single" @click="handleUpdate()"
|
||||||
>修改</el-button
|
v-hasPermi="['manage:userLevel:edit']">修改</el-button>
|
||||||
>
|
<el-button type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete()"
|
||||||
<el-button type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete()" v-hasPermi="['manage:userLevel:remove']"
|
v-hasPermi="['manage:userLevel:remove']">删除</el-button>
|
||||||
>删除</el-button
|
|
||||||
>
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
</el-card>
|
</el-card>
|
||||||
</div>
|
</div>
|
||||||
</transition>
|
</transition>
|
||||||
|
|
||||||
<el-table :height="autoTableHeight" v-loading="loading" :data="userLevelList" @selection-change="handleSelectionChange" border>
|
<el-table :height="autoTableHeight" v-loading="loading" :data="userLevelList"
|
||||||
|
@selection-change="handleSelectionChange" border>
|
||||||
<el-table-column type="selection" width="55" align="center" />
|
<el-table-column type="selection" width="55" align="center" />
|
||||||
<el-table-column label="用户等级" align="center" prop="levelName" />
|
<el-table-column label="用户等级" align="center" prop="levelName" />
|
||||||
<el-table-column label="等级所达积分" align="center" prop="score" />
|
<el-table-column label="等级所达积分" align="center" prop="score" />
|
||||||
@ -41,7 +45,8 @@
|
|||||||
<el-table-column label="创建者" align="center" prop="createBy" />
|
<el-table-column label="创建者" align="center" prop="createBy" />
|
||||||
<el-table-column label="创建时间" align="center" prop="createTime" width="180">
|
<el-table-column label="创建时间" align="center" prop="createTime" width="180">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<span>{{ parseTime(scope.row.createTime, '{y}-{m}-{d}') }}</span>
|
<!-- <span>{{ parseTime(scope.row.createTime, '{y}-{m}-{d}') }}</span> -->
|
||||||
|
<span>{{ scope.row.createTime }}</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="状态" align="center" prop="status">
|
<el-table-column label="状态" align="center" prop="status">
|
||||||
@ -54,23 +59,19 @@
|
|||||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<el-tooltip content="修改" placement="top">
|
<el-tooltip content="修改" placement="top">
|
||||||
<el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['manage:userLevel:edit']"></el-button>
|
<el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)"
|
||||||
|
v-hasPermi="['manage:userLevel:edit']"></el-button>
|
||||||
</el-tooltip>
|
</el-tooltip>
|
||||||
<el-tooltip content="删除" placement="top">
|
<el-tooltip content="删除" placement="top">
|
||||||
<el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['manage:userLevel:remove']"></el-button>
|
<el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)"
|
||||||
|
v-hasPermi="['manage:userLevel:remove']"></el-button>
|
||||||
</el-tooltip>
|
</el-tooltip>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
|
|
||||||
<pagination
|
<pagination id="table_page" v-show="total > 0" :total="total" v-model:page="queryParams.pageNum"
|
||||||
id="table_page"
|
v-model:limit="queryParams.pageSize" @pagination="getList" />
|
||||||
v-show="total > 0"
|
|
||||||
:total="total"
|
|
||||||
v-model:page="queryParams.pageNum"
|
|
||||||
v-model:limit="queryParams.pageSize"
|
|
||||||
@pagination="getList"
|
|
||||||
/>
|
|
||||||
<!-- 添加或修改用户等级对话框 -->
|
<!-- 添加或修改用户等级对话框 -->
|
||||||
<el-dialog :title="dialog.title" v-model="dialog.visible" width="500px" append-to-body>
|
<el-dialog :title="dialog.title" v-model="dialog.visible" width="500px" append-to-body>
|
||||||
<el-form ref="userLevelFormRef" :model="form" :rules="rules" label-width="80px">
|
<el-form ref="userLevelFormRef" :model="form" :rules="rules" label-width="80px">
|
||||||
@ -85,7 +86,8 @@
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="状态" prop="status">
|
<el-form-item label="状态" prop="status">
|
||||||
<el-radio-group v-model="form.status">
|
<el-radio-group v-model="form.status">
|
||||||
<el-radio v-for="dict in dy_user_level_status" :key="dict.value" :value="parseInt(dict.value)">{{ dict.label }}</el-radio>
|
<el-radio v-for="dict in dy_user_level_status" :key="dict.value"
|
||||||
|
:value="parseInt(dict.value)">{{ dict.label }}</el-radio>
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
@ -247,6 +249,7 @@ const handleDelete = async (row?: UserLevelVO) => {
|
|||||||
.el-card :deep(.el-card__body) {
|
.el-card :deep(.el-card__body) {
|
||||||
padding-bottom: 0px !important;
|
padding-bottom: 0px !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
#table_page {
|
#table_page {
|
||||||
height: 50px !important;
|
height: 50px !important;
|
||||||
margin-top: 10px !important;
|
margin-top: 10px !important;
|
||||||
|
@ -192,7 +192,10 @@ const handleQuery = () => {
|
|||||||
|
|
||||||
/** 重置按钮操作 */
|
/** 重置按钮操作 */
|
||||||
const resetQuery = () => {
|
const resetQuery = () => {
|
||||||
|
timeGroup.value = [];
|
||||||
queryFormRef.value?.resetFields();
|
queryFormRef.value?.resetFields();
|
||||||
|
queryParams.value.startTime=undefined;
|
||||||
|
queryParams.value.endTime=undefined;
|
||||||
handleQuery();
|
handleQuery();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
11
src/views/manage/vendor/index.vue
vendored
11
src/views/manage/vendor/index.vue
vendored
@ -14,10 +14,10 @@
|
|||||||
<el-button icon="Refresh" @click="resetQuery">重置</el-button>
|
<el-button icon="Refresh" @click="resetQuery">重置</el-button>
|
||||||
<el-button type="primary" plain icon="Plus" @click="handleAdd"
|
<el-button type="primary" plain icon="Plus" @click="handleAdd"
|
||||||
v-hasPermi="['manage:vendor:add']">新增</el-button>
|
v-hasPermi="['manage:vendor: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:vendor:edit']">修改</el-button>
|
v-hasPermi="['manage:vendor:edit']">修改</el-button>
|
||||||
<el-button type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete()"
|
<el-button type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete()"
|
||||||
v-hasPermi="['manage:vendor:remove']">删除</el-button>
|
v-hasPermi="['manage:vendor:remove']">删除</el-button> -->
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
</el-card>
|
</el-card>
|
||||||
@ -26,13 +26,14 @@
|
|||||||
|
|
||||||
<el-table v-loading="loading" :height="autoTableHeight" :data="vendorList"
|
<el-table v-loading="loading" :height="autoTableHeight" :data="vendorList"
|
||||||
@selection-change="handleSelectionChange">
|
@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="供应商名称" align="center" prop="vendorName" />
|
<el-table-column label="供应商名称" align="center" prop="vendorName" />
|
||||||
<el-table-column label="排序" align="center" prop="sortNum" />
|
<el-table-column label="排序" align="center" prop="sortNum" />
|
||||||
<el-table-column label="操作人" align="center" prop="updateByName" />
|
<el-table-column label="操作人" align="center" prop="updateByName" />
|
||||||
<el-table-column label="操作时间" align="center" prop="updateTime" width="180">
|
<el-table-column label="操作时间" align="center" prop="updateTime" width="180">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<span>{{ parseTime(scope.row.updateTime, '{y}-{m}-{d}') }}</span>
|
<!-- <span>{{ parseTime(scope.row.updateTime, '{y}-{m}-{d}') }}</span> -->
|
||||||
|
<span>{{ scope.row.updateTime }}</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
||||||
@ -207,7 +208,7 @@ const submitForm = () => {
|
|||||||
/** 删除按钮操作 */
|
/** 删除按钮操作 */
|
||||||
const handleDelete = async (row?: VendorVO) => {
|
const handleDelete = async (row?: VendorVO) => {
|
||||||
const _ids = row?.id || ids.value;
|
const _ids = row?.id || ids.value;
|
||||||
await proxy?.$modal.confirm('是否确认删除供应商编号为"' + _ids + '"的数据项?').finally(() => loading.value = false);
|
await proxy?.$modal.confirm('是否确认删除供应商编号为"' + row.vendorName + '"的数据项?').finally(() => loading.value = false);
|
||||||
await delVendor(_ids);
|
await delVendor(_ids);
|
||||||
proxy?.$modal.msgSuccess("删除成功");
|
proxy?.$modal.msgSuccess("删除成功");
|
||||||
await getList();
|
await getList();
|
||||||
|
Loading…
Reference in New Issue
Block a user