Compare commits

...

5 Commits

Author SHA1 Message Date
1a0cfaac2b 优化客服话术和图片素材界面 2024-10-29 11:29:11 +08:00
c6c4dd7693 Merge branch 'master' of http://101.43.112.107:3000/root/allLikeMall into sjy-two 2024-10-29 11:01:31 +08:00
e68b6ed573 Merge pull request '添加客服话术分类,图片素材分类' (#88) from sjy-two into master
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #88
2024-10-28 11:34:10 +08:00
eadb727812 Merge pull request '会员记录支付状态' (#89) from khy1 into master
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #89
2024-10-28 11:14:16 +08:00
khy
cbdbf6fa01 会员记录支付状态 2024-10-28 11:09:09 +08:00
4 changed files with 86 additions and 90 deletions

View File

@ -221,6 +221,8 @@ export enum DICT_TYPE {
PAID_MEMBER_USER_PAID = 'paid_member_user_paid', //付费会员支付状态 PAID_MEMBER_USER_PAID = 'paid_member_user_paid', //付费会员支付状态
MEMBER_USER_PAID = 'member_user_paid', //会员支付状态
MEMBER_USER_PAY_TYPE = 'member_user_pay_type',// 会员记录支付方式 MEMBER_USER_PAY_TYPE = 'member_user_pay_type',// 会员记录支付方式
// ========== MALL - 商品模块 ========== // ========== MALL - 商品模块 ==========

View File

@ -5,22 +5,23 @@
<!-- 菜单区域 --> <!-- 菜单区域 -->
<div class="menu-area"> <div class="menu-area">
<el-button type="primary" plain @click="createType"> <el-button type="primary" plain @click="createType" style="width: 90;font-size: 12px;">
<Icon icon="ep:plus" class="mr-5px" /> 新增分类 <Icon icon="ep:plus" class="mr-5px" /> 新增分类
</el-button> </el-button>
<el-menu :default-active="targetMenuId"> <el-menu :default-active="targetMenuId" style="width:182px">
<el-menu-item :index="targetMenuId" :key="targetMenuId" @click="clickMenu(targetMenuId)"> <el-menu-item :index="targetMenuId" :key="targetMenuId" @click="clickMenu(targetMenuId)">
全部类型 全部类型
</el-menu-item> </el-menu-item>
<el-menu-item v-for="item in typeMenu" :index="item.value" :key="item.value" <el-menu-item v-for="item in typeMenu" :index="item.value" :key="item.value"
@click="clickMenu(item.value)"> @click="clickMenu(item.value)">
{{ item.label }} {{ item.label }}
<el-icon style="margin-left: 40px;" @mouseover="showActions = item.value" <el-icon style="margin-left: 60px;width: 10px;" @mouseover="showActions = item.value"
@mouseleave="showActions = null"> @mouseleave="showActions = null">
<MoreFilled /> <MoreFilled />
<div v-if="showActions === item.value" class="action-buttons"> <div v-if="showActions === item.value" class="action-buttons">
<el-button size="small" @click.stop="editItem(item.id,item.label)">编辑</el-button> <el-button size="small" @click.stop="editItem(item.id,item.label)">编辑</el-button>
<br />
<el-button size="small" @click.stop="deleteItem(item.id)">删除</el-button> <el-button size="small" @click.stop="deleteItem(item.id)">删除</el-button>
</div> </div>
</el-icon> </el-icon>
@ -355,9 +356,10 @@
} }
.menu-area { .menu-area {
padding: 25px;
width: 200px; background-color: white;
height: 100vh; width: 180px;
height: 1000px;
/* 固定高度 */ /* 固定高度 */
overflow-y: hidden; overflow-y: hidden;
/* 禁止滚动 */ /* 禁止滚动 */

View File

@ -3,10 +3,10 @@
<div class="flex-container"> <div class="flex-container">
<!-- 菜单区域 --> <!-- 菜单区域 -->
<div class="menu-area"> <div class="menu-area">
<el-button type="primary" plain @click="createType"> <el-button type="primary" plain @click="createType" style="width: 90;font-size: 12px;">
<Icon icon="ep:plus" class="mr-5px" /> 新增分类 <Icon icon="ep:plus" class="mr-5px" /> 新增分类
</el-button> </el-button>
<el-menu :default-active="targetMenuId"> <el-menu :default-active="targetMenuId" style="width:183px">
<el-menu-item v-for="item in huashuType" :index="item.value" :key="item.value" <el-menu-item v-for="item in huashuType" :index="item.value" :key="item.value"
@click="clickMenu(item.value)">{{item.label}}</el-menu-item> @click="clickMenu(item.value)">{{item.label}}</el-menu-item>
</el-menu> </el-menu>
@ -79,11 +79,11 @@
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<!-- 分页 -->
<Pagination :total="total" v-model:page="queryParams.pageNo" v-model:limit="queryParams.pageSize"
@pagination="getList" />
</ContentWrap>
</ContentWrap>
<!-- 分页 -->
<Pagination :total="total" v-model:page="queryParams.pageNo" v-model:limit="queryParams.pageSize"
@pagination="getList" />
</div> </div>
</div> </div>
@ -94,26 +94,20 @@
<Dialog v-model="dialogVisible" :title="dialogTitle"> <Dialog v-model="dialogVisible" :title="dialogTitle">
<el-form <el-form ref="formRef" v-loading="formLoading" :model="formData" :rules="formRules" label-width="80px">
ref="formRef"
v-loading="formLoading"
:model="formData"
:rules="formRules"
label-width="80px"
>
<el-form-item label="数据标签" prop="label"> <el-form-item label="数据标签" prop="label">
<el-input v-model="formData.label" placeholder="请输入数据标签" /> <el-input v-model="formData.label" placeholder="请输入数据标签" />
</el-form-item> </el-form-item>
<el-form-item label="显示排序" prop="sort"> <el-form-item label="显示排序" prop="sort">
<el-input-number v-model="formData.sort" :min="0" controls-position="right" /> <el-input-number v-model="formData.sort" :min="0" controls-position="right" />
</el-form-item> </el-form-item>
</el-form> </el-form>
<template #footer> <template #footer>
<el-button :disabled="formLoading" type="primary" @click="submitForm"> </el-button> <el-button :disabled="formLoading" type="primary" @click="submitForm"> </el-button>
<el-button @click="dialogVisible = false"> </el-button> <el-button @click="dialogVisible = false"> </el-button>
</template> </template>
</Dialog> </Dialog>
@ -133,19 +127,19 @@
const dialogTitle = ref('新增分类') // const dialogTitle = ref('新增分类') //
const formLoading = ref(false) // 12 const formLoading = ref(false) // 12
const formData = ref({ const formData = ref({
id: undefined, id: undefined,
sort: undefined, sort: undefined,
label: '', label: '',
value: '', value: '',
dictType: '', dictType: '',
// status: CommonStatusEnum.ENABLE, // status: CommonStatusEnum.ENABLE,
colorType: '', colorType: '',
cssClass: '', cssClass: '',
remark: '' remark: ''
}) })
const formRules = reactive({ const formRules = reactive({
label: [{ required: true, message: '数据标签不能为空', trigger: 'blur' }], label: [{ required: true, message: '数据标签不能为空', trigger: 'blur' }],
sort: [{ required: true, message: '数据顺序不能为空', trigger: 'blur' }], sort: [{ required: true, message: '数据顺序不能为空', trigger: 'blur' }],
}) })
/** 客服话术 列表 */ /** 客服话术 列表 */
@ -181,32 +175,32 @@
} }
// //
const createType = () =>{ const createType = () => {
dialogVisible.value = true dialogVisible.value = true
} }
/** 提交表单 */ /** 提交表单 */
const emit = defineEmits(['success']) // success const emit = defineEmits(['success']) // success
const submitForm = async () => { const submitForm = async () => {
// //
if (!formRef) return if (!formRef) return
const valid = await formRef.value.validate() const valid = await formRef.value.validate()
if (!valid) return if (!valid) return
// //
formLoading.value = true formLoading.value = true
try { try {
const data = formData.value as DictDataApi.DictDataVO const data = formData.value as DictDataApi.DictDataVO
await DictDataApi.createType(data) await DictDataApi.createType(data)
message.success(t('common.createSuccess')) message.success(t('common.createSuccess'))
dialogVisible.value = false dialogVisible.value = false
// //
emit('success') emit('success')
queryParams.type = targetMenuId.value queryParams.type = targetMenuId.value
getList() getList()
getHuaShuTypeList() getHuaShuTypeList()
} finally { } finally {
formLoading.value = false formLoading.value = false
} }
} }
@ -284,9 +278,10 @@
} }
.menu-area { .menu-area {
padding: 25px;
width: 200px; background-color: white;
height: 100vh; width: 180px;
height: 1000px;
/* 固定高度 */ /* 固定高度 */
overflow-y: hidden; overflow-y: hidden;
/* 禁止滚动 */ /* 禁止滚动 */

View File

@ -9,13 +9,6 @@
label-width="68px" label-width="68px"
> >
<el-form-item label="会员类型" prop="payMemberType"> <el-form-item label="会员类型" prop="payMemberType">
<!-- <el-input-->
<!-- v-model="queryParams.payMemberType"-->
<!-- placeholder="请输入用户会员类型"-->
<!-- clearable-->
<!-- @keyup.enter="handleQuery"-->
<!-- class="!w-240px"-->
<!-- />-->
<el-select v-model ="queryParams.payMemberType" placeholder="请选择会员类型" @keyup.enter="handleQuery" class="!w-240px"> <el-select v-model ="queryParams.payMemberType" placeholder="请选择会员类型" @keyup.enter="handleQuery" class="!w-240px">
<el-option v-for ="item in cardlist" <el-option v-for ="item in cardlist"
:key="item.id" :key="item.id"
@ -24,13 +17,6 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="支付方式" prop="payType"> <el-form-item label="支付方式" prop="payType">
<!-- <el-input-->
<!-- v-model="queryParams.payType"-->
<!-- placeholder="请输入支付方式"-->
<!-- clearable-->
<!-- @keyup.enter="handleQuery"-->
<!-- class="!w-240px"-->
<!-- />-->
<el-select v-model="queryParams.payType" class="!w-240px" clearable placeholder="请选择状态"> <el-select v-model="queryParams.payType" class="!w-240px" clearable placeholder="请选择状态">
<el-option <el-option
v-for="dict in getIntDictOptions(DICT_TYPE.MEMBER_USER_PAY_TYPE)" v-for="dict in getIntDictOptions(DICT_TYPE.MEMBER_USER_PAY_TYPE)"
@ -40,6 +26,16 @@
/> />
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="支付状态" prop="paid">
<el-select v-model="queryParams.paid" class="!w-240px" clearable placeholder="请选择状态">
<el-option
v-for="dict in getIntDictOptions(DICT_TYPE.PAID_MEMBER_USER_PAID)"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item label="支付时间" prop="payTime"> <el-form-item label="支付时间" prop="payTime">
<el-date-picker <el-date-picker
v-model="queryParams.payTime" v-model="queryParams.payTime"
@ -76,7 +72,7 @@
<el-table-column label="会员类型" align="center" prop="payMemberType" /> <el-table-column label="会员类型" align="center" prop="payMemberType" />
<el-table-column label="是否支付" align="center" prop="paid"> <el-table-column label="是否支付" align="center" prop="paid">
<template #default="scope"> <template #default="scope">
<dict-tag :type="DICT_TYPE.PAID_MEMBER_USER_PAID" :value="scope.row.paid"/> <dict-tag :type="DICT_TYPE.MEMBER_USER_PAID" :value="scope.row.paid"/>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="有效期限(天)" align="center" prop="deadlineDay" /> <el-table-column label="有效期限(天)" align="center" prop="deadlineDay" />
@ -163,6 +159,7 @@ const getList = async () => {
loading.value = true loading.value = true
try { try {
const data = await PaidMemberUserApi.getPaidMemberUserPage(queryParams) const data = await PaidMemberUserApi.getPaidMemberUserPage(queryParams)
console.log("query",queryParams)
list.value = data.list list.value = data.list
total.value = data.total total.value = data.total
} finally { } finally {