添加商品列表接口及优化多处细节

This commit is contained in:
钊钊 2024-12-24 16:06:56 +08:00
parent b0665d6d40
commit cae5ba5cd5
14 changed files with 193 additions and 106 deletions

View File

@ -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'
});
};

View File

@ -4,6 +4,7 @@ export interface ArticleVO {
/**
* ID/ID/ID
*/
name: string;
id: string | number;
tagId_copy: string[] | number[];
region?: string;

View File

@ -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;

View File

@ -32,6 +32,7 @@ declare global {
*
*/
rowData?: any;
type: string;
}
declare interface UploadOption {

View File

@ -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);
};
/**
* 标签格式化

View File

@ -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;
};
/**
* 打开活动列表弹层

View File

@ -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

View File

@ -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();

View File

@ -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,

View File

@ -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">

View File

@ -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();

View File

@ -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();

View File

@ -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 = {

View File

@ -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();