[fix]优化代码

This commit is contained in:
黄少君
2024-02-23 18:37:21 +08:00
parent 2db2822b04
commit 44e1c7c408
8 changed files with 78 additions and 24 deletions

View File

@ -16,3 +16,11 @@ export interface FormData {
attribute1: string | undefined,
checkInScore: number
}
// 会员标签
export interface GroupItem {
groupName: string; // 分组名称
id: number; // 用户id
createTime: string; // 添加时间
}

View File

@ -18,6 +18,11 @@ interface EquityArrayItem {
equityValue: number;
}
interface CouponItem {
id?: number,
couponName: string
}
const { t } = useI18n() // 国际化
const message = useMessage() // 消息弹窗
@ -34,7 +39,7 @@ const formData = ref({
backgroundUrl: undefined,
status: false,
remarks: undefined,
levelEquityList: []
levelEquityList: [] as EquityArrayItem[]
})
const formRules = reactive({
levelName: [{ required: true, message: '等级名称不能为空', trigger: 'blur' }],
@ -48,7 +53,9 @@ const formRef = ref() // 表单 Ref
const open = async (type: string, id?: number) => {
getAllEquityList()
dialogVisible.value = true
tableRadio.value = null
tableRadio.value = {
couponName: ''
}
dialogTitle.value = t('action.' + type)
formType.value = type
resetForm()
@ -88,7 +95,7 @@ const submitForm = async () => {
if (!formRef.value) return
const valid = await formRef.value.validate()
if (!valid) return
let equityArray = ref<EquityArrayItem[]>([]);
let equityArray: EquityArrayItem[] = []
let errorMessageMap = {
'integral': '积分需大于0',
'discount': '折扣需大于0',
@ -102,7 +109,7 @@ const submitForm = async () => {
} else if (item.type === 'coupon') {
if (tableRadio.value?.id) {
item.equityValue = tableRadio.value.id
equityArray.value.push({
equityArray.push({
equityId: item.id,
equityValue: item.equityValue
});
@ -111,14 +118,14 @@ const submitForm = async () => {
return false
}
} else {
equityArray.value.push({
equityArray.push({
equityId: item.id,
equityValue: item.equityValue
});
}
}
}
formData.value.levelEquityList = equityArray.value
formData.value.levelEquityList = equityArray
console.log(formData.value, 'formData')
// 提交请求
formLoading.value = true
@ -181,7 +188,7 @@ const handleCurrentChange = (val) => {
}
// 选中商品
const multipleTableRef = ref(null)
const multipleTableRef = ref()
const handleSelectionChange = (val) => {
if (val.length > 1) {
let del_row = val.shift();
@ -190,7 +197,9 @@ const handleSelectionChange = (val) => {
multipleSelection.value = val
}
// 保存选择优惠券ID
const tableRadio = ref(null)
const tableRadio = ref<CouponItem>({
couponName: ''
})
const saveIdList = () => {
tableRadio.value = multipleSelection.value[0]
console.log(multipleSelection.value, 'multipleSelection', tableRadio.value, 'tableRadio')
@ -318,7 +327,7 @@ const resetForm = () => {
<div class="flex items-center mb-1" v-else-if="item.type === 'coupon'">
<el-checkbox v-model="item.selected" :label="item.typeName" />
<span class="select-coupon-btn mr-1" @click="oponCoupon">选择优惠券</span>
<span v-if="tableRadio">已选优惠券:{{tableRadio.couponName}}</span>
<span v-if="tableRadio.id">已选优惠券:{{tableRadio.couponName}}</span>
</div>
<div class="flex items-center mb-1" v-else>
<el-checkbox v-model="item.selected" :label="item.typeName" />

View File

@ -109,16 +109,27 @@
<script setup lang="ts" name="UserLevelEquityRef">
import { dateFormatter } from '@/utils/formatTime'
import { ref, reactive } from "vue";
import download from '@/utils/download'
import * as UserLevelEquityRefApi from '@/api/member/userLevelEquityRef'
import UserLevelEquityRefForm from './UserLevelEquityRefForm.vue'
interface QueryParams {
pageNo: number;
pageSize: number;
levelId: number | null;
equityId: number | null;
createTime: any;
}
const message = useMessage() // 消息弹窗
const { t } = useI18n() // 国际化
const loading = ref(true) // 列表的加载中
const total = ref(0) // 列表的总页数
const list = ref([]) // 列表的数据
const queryParams = reactive({
const queryParams = reactive<QueryParams>({
pageNo: 1,
pageSize: 10,
levelId: null,

View File

@ -121,18 +121,28 @@
<script setup lang="ts" name="UserLevelGrowthValueConfig">
import { dateFormatter } from '@/utils/formatTime'
import download from '@/utils/download'
import { ref, reactive } from 'vue'
import * as UserLevelGrowthValueConfigApi from '@/api/member/userLevelGrowthValueConfig'
import UserLevelGrowthValueConfigForm from './UserLevelGrowthValueConfigForm.vue'
interface QueryParams {
pageNo: number
pageSize: number
type?: number
typeName: string | null
growthValue: number | null
createTime: any
}
const message = useMessage() // 消息弹窗
const { t } = useI18n() // 国际化
const loading = ref(true) // 列表的加载中
const total = ref(0) // 列表的总页数
const list = ref([]) // 列表的数据
const queryParams = reactive({
const queryParams = reactive<QueryParams>({
pageNo: 1,
pageSize: 10,
type: null,
type: undefined,
typeName: null,
growthValue: null,
createTime: []

View File

@ -35,18 +35,23 @@
<script setup lang="ts">
import * as UserTagApi from '@/api/member/userTag'
import * as UserTagGroupApi from '@/api/member/userTagGroup'
import { ref, reactive } from 'vue'
interface GroupData {
id: number
groupName: string
}
const { t } = useI18n() // 国际化
const message = useMessage() // 消息弹窗
const dialogVisible = ref(false) // 弹窗的是否展示
const dialogTitle = ref('') // 弹窗的标题
const formLoading = ref(false) // 表单的加载中1修改时的数据加载2提交的按钮禁用
const formType = ref('') // 表单的类型create - 新增update - 修改
const list = ref([]) // 列表的数据
const list = ref<GroupData[]>([]) // 列表的数据
const formData = ref({
id: undefined,
tagName: undefined,
tagName: '',
groupId: undefined
})
const formRules = reactive({
@ -77,7 +82,7 @@ defineExpose({ open }) // 提供 open 方法,用于打开弹窗
const emit = defineEmits(['success']) // 定义 success 事件,用于操作成功后的回调
const submitForm = async () => {
// 校验表单
if (!formRef) return
if (!formRef.value) return
const valid = await formRef.value.validate()
if (!valid) return
// 提交请求
@ -110,7 +115,7 @@ const getList = async () => {
const resetForm = () => {
formData.value = {
id: undefined,
tagName: undefined,
tagName: '',
groupId: undefined
}
formRef.value?.resetFields()

View File

@ -1,17 +1,18 @@
<script setup lang="ts" name="TagGroup">
import { defineProps, toRefs, ref } from 'vue';
import * as UserTagGroupApi from '@/api/member/userTagGroup'
import { GroupItem } from "@/types/member";
import UserGroupForm from "@/views/member/userTag/components/UserGroupForm.vue";
const { t } = useI18n() // 国际化
const message = useMessage() // 消息弹窗
const activeId = ref<number | null>(null)
const props = defineProps({
groupList: {
type: Array,
type: Array as () => GroupItem[],
default: () => []
}
})
const emit = defineEmits(['changeGroup', 'delSuccess'])
const emit = defineEmits(['changeGroup', 'delSuccess', 'success'])
// 切换分组
const changeGroup = (id:number | null) => {
activeId.value = id

View File

@ -86,16 +86,17 @@
import * as UserTagApi from '@/api/member/userTag'
import UserTagForm from './UserTagForm.vue'
import TagGroup from "@/views/member/userTag/components/TagGroup.vue";
import { ref } from 'vue'
import { ref, reactive } from 'vue'
import * as UserTagGroupApi from "@/api/member/userTagGroup";
import UserGroupForm from "@/views/member/userTag/components/UserGroupForm.vue";
import {GroupItem} from "@/types/member";
const message = useMessage() // 消息弹窗
const { t } = useI18n() // 国际化
const loading = ref(true) // 列表的加载中
const total = ref(0) // 列表的总页数
const list = ref([]) // 列表的数据
const groupList = ref([]) // 列表的数据
const groupList = ref<GroupItem[]>([]) // 列表的数据
const queryParams = reactive({
pageNo: 1,
pageSize: 10,

View File

@ -110,15 +110,24 @@
<script setup lang="ts" name="UserTagGroup">
import { dateFormatter } from '@/utils/formatTime'
import download from '@/utils/download'
import { ref, reactive } from 'vue'
import * as UserTagGroupApi from '@/api/member/userTagGroup'
import UserTagGroupForm from './UserTagGroupForm.vue'
interface QueryParams {
pageNo: number;
pageSize: number;
groupName: string | null;
sorted: string | null;
createTime: any;
}
const message = useMessage() // 消息弹窗
const { t } = useI18n() // 国际化
const loading = ref(true) // 列表的加载中
const total = ref(0) // 列表的总页数
const list = ref([]) // 列表的数据
const queryParams = reactive({
const queryParams = reactive<QueryParams>({
pageNo: 1,
pageSize: 10,
groupName: null,