[fix]优化代码
This commit is contained in:
@ -16,3 +16,11 @@ export interface FormData {
|
||||
attribute1: string | undefined,
|
||||
checkInScore: number
|
||||
}
|
||||
|
||||
// 会员标签
|
||||
|
||||
export interface GroupItem {
|
||||
groupName: string; // 分组名称
|
||||
id: number; // 用户id
|
||||
createTime: string; // 添加时间
|
||||
}
|
||||
|
@ -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" />
|
||||
|
@ -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,
|
||||
|
@ -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: []
|
||||
|
@ -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()
|
||||
|
@ -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
|
||||
|
@ -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,
|
||||
|
@ -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,
|
||||
|
Reference in New Issue
Block a user