This commit is contained in:
aaron 2025-03-23 16:00:55 +08:00
parent 86d882770c
commit 41c7a9512e
2 changed files with 30 additions and 9 deletions

View File

@ -90,6 +90,7 @@
:step="0.5" :step="0.5"
style="width: 100%" style="width: 100%"
placeholder="请输入优惠金额" placeholder="请输入优惠金额"
addonAfter="元"
/> />
</a-form-item> </a-form-item>
</a-form> </a-form>
@ -100,14 +101,25 @@
<script> <script>
import { defineComponent, ref, onMounted } from 'vue' import { defineComponent, ref, onMounted } from 'vue'
import { message } from 'ant-design-vue' import { message, Table, Modal, Button, Form, Input, Select, Tag, Space, InputNumber } from 'ant-design-vue'
import PageContainer from '@/components/PageContainer.vue' import PageContainer from '@/components/PageContainer.vue'
import dayjs from 'dayjs' import dayjs from 'dayjs'
import request from '@/utils/request' import request from '@/utils/request'
export default defineComponent({ export default defineComponent({
components: { components: {
PageContainer PageContainer,
ATable: Table,
AModal: Modal,
AButton: Button,
AForm: Form,
AFormItem: Form.Item,
AInput: Input,
AInputNumber: InputNumber,
ASelect: Select,
ASelectOption: Select.Option,
ATag: Tag,
ASpace: Space
}, },
setup() { setup() {
@ -176,7 +188,8 @@ export default defineComponent({
// //
const getCouponTypeColor = (type) => { const getCouponTypeColor = (type) => {
const colorMap = { const colorMap = {
'CASH': 'blue' 'CASH': 'blue',
'PRODUCT': 'green'
} }
return colorMap[type] || 'default' return colorMap[type] || 'default'
} }
@ -230,6 +243,13 @@ export default defineComponent({
coupon_type: undefined coupon_type: undefined
}) })
//
const rules = {
name: [{ required: true, message: '请输入模板名称' }],
coupon_type: [{ required: true, message: '请选择优惠券类型' }],
amount: [{ required: true, message: '请输入优惠金额' }]
}
// //
const showAddModal = () => { const showAddModal = () => {
isEdit.value = false isEdit.value = false
@ -248,7 +268,7 @@ export default defineComponent({
currentId.value = record.id currentId.value = record.id
formState.value = { formState.value = {
name: record.name, name: record.name,
amount: record.coupon_type === 'CASH' ? record.amount : undefined, amount: record.coupon_type === 'CASH' ? (record.amount || 0) : undefined,
coupon_type: record.coupon_type coupon_type: record.coupon_type
} }
modalVisible.value = true modalVisible.value = true
@ -257,9 +277,9 @@ export default defineComponent({
// //
const handleCouponTypeChange = (value) => { const handleCouponTypeChange = (value) => {
if (value === 'PRODUCT') { if (value === 'PRODUCT') {
formState.value.amount = undefined formState.value.amount = undefined;
} else if (value === 'CASH' && !formState.value.amount) { } else if (value === 'CASH') {
formState.value.amount = 0 formState.value.amount = formState.value.amount || 0;
} }
} }
@ -324,7 +344,8 @@ export default defineComponent({
handleEdit, handleEdit,
handleSubmit, handleSubmit,
handleCancel, handleCancel,
handleCouponTypeChange handleCouponTypeChange,
rules
} }
} }
}) })

View File

@ -355,7 +355,7 @@ export default defineComponent({
const fetchCommunityList = async () => { const fetchCommunityList = async () => {
communityLoading.value = true communityLoading.value = true
try { try {
const res = await request.get('/api/community', { const res = await request.get('/api/community?limit=1000', {
params: { params: {
limit: 1000, limit: 1000,
skip: 0, skip: 0,