feat(glt): 更新票券模板和门店相关功能

- 移除起始发送数量和计入购买量字段
- 修改用户票券释放页面状态显示和列配置
- 调整订单页面标签页顺序和默认激活项
- 优化门店编辑页面布局和移除电子围栏功能
- 添加门店围栏范围输入和状态选择功能
- 更新门店围栏列表页面状态标签和类型渲染
- 移除仓库编辑页面图片上传相关代码
This commit is contained in:
2026-02-09 16:39:34 +08:00
parent d28226bbf0
commit ebed9edb64
8 changed files with 115 additions and 108 deletions

View File

@@ -120,17 +120,17 @@
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :span="12"> <!-- <a-col :span="12">-->
<a-form-item label="起始发送数量" name="startSendQty"> <!-- <a-form-item label="起始发送数量" name="startSendQty">-->
<a-input-number <!-- <a-input-number-->
:min="0" <!-- :min="0"-->
:max="999999" <!-- :max="999999"-->
class="ele-fluid" <!-- class="ele-fluid"-->
placeholder="支付成功后起始发放数量" <!-- placeholder="支付成功后起始发放数量"-->
v-model:value="form.startSendQty" <!-- v-model:value="form.startSendQty"-->
/> <!-- />-->
</a-form-item> <!-- </a-form-item>-->
</a-col> <!-- </a-col>-->
<a-col :span="12"> <a-col :span="12">
<a-form-item label="买赠倍率" name="giftMultiplier"> <a-form-item label="买赠倍率" name="giftMultiplier">
@@ -144,15 +144,15 @@
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :span="12"> <!-- <a-col :span="12">-->
<a-form-item label="计入购买量" name="includeBuyQty"> <!-- <a-form-item label="计入购买量" name="includeBuyQty">-->
<a-switch <!-- <a-switch-->
v-model:checked="form.includeBuyQty" <!-- v-model:checked="form.includeBuyQty"-->
checked-children="" <!-- checked-children="是"-->
un-checked-children="" <!-- un-checked-children="否"-->
/> <!-- />-->
</a-form-item> <!-- </a-form-item>-->
</a-col> <!-- </a-col>-->
<a-col :span="12"> <a-col :span="12">
<a-form-item label="每期释放数量" name="monthlyReleaseQty"> <a-form-item label="每期释放数量" name="monthlyReleaseQty">

View File

@@ -122,12 +122,12 @@
key: 'minBuyQty', key: 'minBuyQty',
align: 'center' align: 'center'
}, },
{ // {
title: '起始发送数', // title: '起始发送数',
dataIndex: 'startSendQty', // dataIndex: 'startSendQty',
key: 'startSendQty', // key: 'startSendQty',
align: 'center' // align: 'center'
}, // },
{ {
title: '买赠', title: '买赠',
dataIndex: 'giftMultiplier', dataIndex: 'giftMultiplier',

View File

@@ -36,8 +36,8 @@
<a-image :src="record.image" :width="50" /> <a-image :src="record.image" :width="50" />
</template> </template>
<template v-if="column.key === 'status'"> <template v-if="column.key === 'status'">
<a-tag v-if="record.status === 0" color="green">显示</a-tag> <a-tag v-if="record.status === 0">未释放</a-tag>
<a-tag v-if="record.status === 1" color="red">隐藏</a-tag> <a-tag v-if="record.status === 1" color="green">已完成</a-tag>
</template> </template>
<template v-if="column.key === 'action'"> <template v-if="column.key === 'action'">
<a-space> <a-space>
@@ -136,20 +136,21 @@
key: 'releaseQty', key: 'releaseQty',
width: 120 width: 120
}, },
{
title: '状态',
dataIndex: 'status',
key: 'status',
width: 120,
align: 'center'
},
{ {
title: '释放时间', title: '释放时间',
dataIndex: 'releaseTime', dataIndex: 'releaseTime',
key: 'releaseTime', key: 'releaseTime',
width: 120 width: 120
}, },
// {
// title: '状态',
// dataIndex: 'status',
// key: 'status',
// width: 120
// },
{ {
title: '释放时间', title: '创建时间',
dataIndex: 'createTime', dataIndex: 'createTime',
key: 'createTime', key: 'createTime',
width: 200, width: 200,

View File

@@ -11,13 +11,13 @@
</a-card> </a-card>
<a-card :bordered="false" :body-style="{ padding: '16px' }"> <a-card :bordered="false" :body-style="{ padding: '16px' }">
<a-tabs type="card" v-model:activeKey="activeKey" @change="onTabs"> <a-tabs type="card" v-model:activeKey="activeKey" @change="onTabs">
<a-tab-pane key="all" tab="全部" />
<a-tab-pane key="unpaid" tab="待付款" />
<a-tab-pane key="undelivered" tab="待发货" /> <a-tab-pane key="undelivered" tab="待发货" />
<a-tab-pane key="unreceived" tab="待收货" /> <a-tab-pane key="unreceived" tab="待收货" />
<a-tab-pane key="completed" tab="已完成" /> <a-tab-pane key="completed" tab="已完成" />
<!-- <a-tab-pane key="unpaid" tab="待付款" />-->
<a-tab-pane key="refunded" tab="退货/售后" /> <a-tab-pane key="refunded" tab="退货/售后" />
<a-tab-pane key="cancelled" tab="已关闭" /> <a-tab-pane key="cancelled" tab="已关闭" />
<a-tab-pane key="all" tab="全部" />
</a-tabs> </a-tabs>
<ele-pro-table <ele-pro-table
ref="tableRef" ref="tableRef"
@@ -297,7 +297,7 @@
// 加载状态 // 加载状态
const loading = ref(true); const loading = ref(true);
// 激活的标签 // 激活的标签
const activeKey = ref<string>('all'); const activeKey = ref<string>('undelivered');
// 表格数据源 // 表格数据源
const datasource: DatasourceFunction = ({ const datasource: DatasourceFunction = ({
page, page,

View File

@@ -61,30 +61,31 @@
<a-input <a-input
allow-clear allow-clear
placeholder="请输入经纬度" placeholder="请输入经纬度"
style="width: 300px"
v-model:value="form.lngAndLat" v-model:value="form.lngAndLat"
/> />
<a-button type="primary" @click="openUrl(`https://lbs.qq.com/getPoint/`)">获取经纬度</a-button> <a-button type="primary" @click="openUrl(`https://lbs.qq.com/getPoint/`)">获取经纬度</a-button>
</a-space> </a-space>
</a-form-item> </a-form-item>
<a-form-item label="轮廓" name="points"> <!-- <a-form-item label="轮廓" name="points">-->
<div class="flex"> <!-- <div class="flex">-->
<a-input <!-- <a-input-->
allow-clear <!-- allow-clear-->
placeholder="请选取电子围栏的轮廓" <!-- placeholder="请选取电子围栏的轮廓"-->
v-model:value="form.points" <!-- v-model:value="form.points"-->
/> <!-- />-->
</div> <!-- </div>-->
<template #extra> <!-- <template #extra>-->
<p class="py-2"> <!-- <p class="py-2">-->
<a <!-- <a-->
class="text-blue-500" <!-- class="text-blue-500"-->
href="https://lbs.qq.com/dev/console/cloud/placeCloud/datamanage?table_id=0q3W4MrK1-_6Xag7V1" <!-- href="https://lbs.qq.com/dev/console/cloud/placeCloud/datamanage?table_id=0q3W4MrK1-_6Xag7V1"-->
target="_blank" <!-- target="_blank"-->
>使用腾讯地图的工具绘制电子围栏</a <!-- >使用腾讯地图的工具绘制电子围栏</a-->
> <!-- >-->
</p> <!-- </p>-->
</template> <!-- </template>-->
</a-form-item> <!-- </a-form-item>-->
<a-form-item label="备注" name="comments"> <a-form-item label="备注" name="comments">
<a-textarea <a-textarea
:rows="4" :rows="4"

View File

@@ -16,7 +16,7 @@
:model="form" :model="form"
:rules="rules" :rules="rules"
:disabled="loading" :disabled="loading"
:label-col="styleResponsive ? { md: 5, sm: 5, xs: 24 } : { flex: '90px' }" :label-col="styleResponsive ? { md: 4, sm: 5, xs: 24 } : { flex: '90px' }"
:wrapper-col=" :wrapper-col="
styleResponsive ? { md: 19, sm: 19, xs: 24 } : { flex: '1' } styleResponsive ? { md: 19, sm: 19, xs: 24 } : { flex: '1' }
" "
@@ -40,6 +40,23 @@
</a-col> </a-col>
</a-row> </a-row>
<a-form-item label="围栏范围" name="points" :extra="pointsHelp">
<a-textarea
:auto-size="{ minRows: 3, maxRows: 6 }"
allow-clear
:placeholder="pointsPlaceholder"
v-model:value="form.points"
/>
<p class="py-2">
<a
class="text-blue-500"
href="https://lbs.qq.com/dev/console/cloud/placeCloud/datamanage?table_id=0q3W4MrK1-_6Xag7V1"
target="_blank"
>使用腾讯地图的工具绘制电子围栏</a
>
</p>
</a-form-item>
<a-form-item label="定位描述" name="location"> <a-form-item label="定位描述" name="location">
<a-input <a-input
allow-clear allow-clear
@@ -56,15 +73,6 @@
/> />
</a-form-item> </a-form-item>
<a-form-item label="围栏范围" name="points" :extra="pointsHelp">
<a-textarea
:auto-size="{ minRows: 3, maxRows: 6 }"
allow-clear
:placeholder="pointsPlaceholder"
v-model:value="form.points"
/>
</a-form-item>
<a-form-item label="排序" name="sortNumber"> <a-form-item label="排序" name="sortNumber">
<a-input-number <a-input-number
:min="0" :min="0"
@@ -74,6 +82,14 @@
v-model:value="form.sortNumber" v-model:value="form.sortNumber"
/> />
</a-form-item> </a-form-item>
<a-form-item label="状态" name="status">
<a-radio-group v-model:value="form.status">
<a-radio :value="0">启用</a-radio>
<a-radio :value="1">禁用</a-radio>
</a-radio-group>
</a-form-item>
<a-form-item label="备注" name="comments"> <a-form-item label="备注" name="comments">
<a-textarea <a-textarea
:rows="4" :rows="4"

View File

@@ -24,8 +24,8 @@
<a-image :src="record.image" :width="50" /> <a-image :src="record.image" :width="50" />
</template> </template>
<template v-if="column.key === 'status'"> <template v-if="column.key === 'status'">
<a-tag v-if="record.status === 0" color="green">显示</a-tag> <a-tag v-if="record.status === 0" color="green">启用</a-tag>
<a-tag v-if="record.status === 1" color="red">隐藏</a-tag> <a-tag v-if="record.status === 1" color="red">禁用</a-tag>
</template> </template>
<template v-if="column.key === 'action'"> <template v-if="column.key === 'action'">
<a-space> <a-space>
@@ -107,12 +107,23 @@
{ {
title: '类型', title: '类型',
dataIndex: 'type', dataIndex: 'type',
key: 'type' key: 'type',
align: 'center',
customRender: ({ text }) => {
if (text === 0) {
return '圆形';
}
if (text === 1) {
return '方形/多边形';
}
return text;
}
}, },
{ {
title: '排序', title: '排序',
dataIndex: 'sortNumber', dataIndex: 'sortNumber',
key: 'sortNumber' key: 'sortNumber',
align: 'center'
}, },
// { // {
// title: '备注', // title: '备注',
@@ -120,12 +131,12 @@
// key: 'comments', // key: 'comments',
// ellipsis: true // ellipsis: true
// }, // },
// { {
// title: '状态', title: '状态',
// dataIndex: 'status', dataIndex: 'status',
// key: 'status', key: 'status',
// width: 120 width: 120
// }, },
{ {
title: '创建时间', title: '创建时间',
dataIndex: 'createTime', dataIndex: 'createTime',

View File

@@ -113,14 +113,13 @@
<script lang="ts" setup> <script lang="ts" setup>
import { ref, reactive, watch } from 'vue'; import { ref, reactive, watch } from 'vue';
import { Form, message } from 'ant-design-vue'; import { Form, message } from 'ant-design-vue';
import { assignObject, uuid } from 'ele-admin-pro'; import { assignObject } from 'ele-admin-pro';
import { addShopStoreWarehouse, updateShopStoreWarehouse } from '@/api/shop/shopStoreWarehouse'; import { addShopStoreWarehouse, updateShopStoreWarehouse } from '@/api/shop/shopStoreWarehouse';
import { ShopStoreWarehouse } from '@/api/shop/shopStoreWarehouse/model'; import { ShopStoreWarehouse } from '@/api/shop/shopStoreWarehouse/model';
import { useThemeStore } from '@/store/modules/theme'; import { useThemeStore } from '@/store/modules/theme';
import { storeToRefs } from 'pinia'; import { storeToRefs } from 'pinia';
import { ItemType } from 'ele-admin-pro/es/ele-image-upload/types'; import { ItemType } from 'ele-admin-pro/es/ele-image-upload/types';
import { FormInstance } from 'ant-design-vue/es/form'; import { FormInstance } from 'ant-design-vue/es/form';
import { FileRecord } from '@/api/system/file/model';
// 是否是修改 // 是否是修改
const isUpdate = ref(false); const isUpdate = ref(false);
@@ -188,20 +187,6 @@
] ]
}); });
const chooseImage = (data: FileRecord) => {
images.value.push({
uid: data.id,
url: data.path,
status: 'done'
});
form.image = data.path;
};
const onDeleteItem = (index: number) => {
images.value.splice(index, 1);
form.image = '';
};
const { resetFields } = useForm(form, rules); const { resetFields } = useForm(form, rules);
/* 保存编辑 */ /* 保存编辑 */
@@ -239,13 +224,6 @@
images.value = []; images.value = [];
if (props.data) { if (props.data) {
assignObject(form, props.data); assignObject(form, props.data);
if(props.data.image){
images.value.push({
uid: uuid(),
url: props.data.image,
status: 'done'
})
}
isUpdate.value = true; isUpdate.value = true;
} else { } else {
isUpdate.value = false; isUpdate.value = false;