fix: combinationActivity 调整

This commit is contained in:
puhui999 2023-08-02 23:58:32 +08:00
parent 39df9be988
commit c327f79177
4 changed files with 43 additions and 24 deletions

View File

@ -1,8 +1,6 @@
import request from '@/config/axios' import request from '@/config/axios'
import { Sku, Spu } from '@/api/mall/product/spu' import { Sku, Spu } from '@/api/mall/product/spu'
// TODO @puhui999: combinationActivity.ts
export interface CombinationActivityVO { export interface CombinationActivityVO {
id?: number id?: number
name?: string name?: string

View File

@ -6,6 +6,7 @@
:is-col="true" :is-col="true"
:rules="rules" :rules="rules"
:schema="allSchemas.formSchema" :schema="allSchemas.formSchema"
class="mt-10px"
> >
<template #spuId> <template #spuId>
<el-button @click="spuSelectRef.open()">选择商品</el-button> <el-button @click="spuSelectRef.open()">选择商品</el-button>
@ -37,8 +38,8 @@
<SpuSelect ref="spuSelectRef" :isSelectSku="true" @confirm="selectSpu" /> <SpuSelect ref="spuSelectRef" :isSelectSku="true" @confirm="selectSpu" />
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
import * as CombinationActivityApi from '@/api/mall/promotion/combination/combinationactivity' import * as CombinationActivityApi from '@/api/mall/promotion/combination/combinationActivity'
import { CombinationProductVO } from '@/api/mall/promotion/combination/combinationactivity' import { CombinationProductVO } from '@/api/mall/promotion/combination/combinationActivity'
import { allSchemas, rules } from './combinationActivity.data' import { allSchemas, rules } from './combinationActivity.data'
import { SpuAndSkuList, SpuProperty, SpuSelect } from '@/views/mall/promotion/components' import { SpuAndSkuList, SpuProperty, SpuSelect } from '@/views/mall/promotion/components'
import { getPropertyList, RuleConfig } from '@/views/mall/product/spu/components' import { getPropertyList, RuleConfig } from '@/views/mall/product/spu/components'

View File

@ -1,5 +1,5 @@
import type { CrudSchema } from '@/hooks/web/useCrudSchemas' import type { CrudSchema } from '@/hooks/web/useCrudSchemas'
import { dateFormatter, getNowDateTime } from '@/utils/formatTime' import { dateFormatter2 } from '@/utils/formatTime'
// 表单校验 // 表单校验
export const rules = reactive({ export const rules = reactive({
@ -26,29 +26,49 @@ const crudSchemas = reactive<CrudSchema[]>([
} }
}, },
{ {
label: '活动时间', label: '活动开始时间',
field: 'activityTime', field: 'startTime',
formatter: dateFormatter, formatter: dateFormatter2,
isSearch: true,
search: { search: {
show: true,
component: 'DatePicker', component: 'DatePicker',
componentProps: { componentProps: {
valueFormat: 'x', valueFormat: 'YYYY-MM-DD',
type: 'datetimerange', type: 'daterange'
rangeSeparator: '至'
} }
}, },
form: { form: {
component: 'DatePicker', component: 'DatePicker',
componentProps: { componentProps: {
valueFormat: 'x', type: 'date',
type: 'datetimerange', valueFormat: 'x'
rangeSeparator: '至'
},
value: [getNowDateTime().valueOf(), getNowDateTime().valueOf()],
colProps: {
span: 24
} }
},
table: {
width: 120
}
},
{
label: '活动结束时间',
field: 'endTime',
formatter: dateFormatter2,
isSearch: true,
search: {
component: 'DatePicker',
componentProps: {
valueFormat: 'YYYY-MM-DD',
type: 'daterange'
}
},
form: {
component: 'DatePicker',
componentProps: {
type: 'date',
valueFormat: 'x'
}
},
table: {
width: 120
} }
}, },
{ {

View File

@ -63,7 +63,7 @@
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
import { allSchemas } from './combinationActivity.data' import { allSchemas } from './combinationActivity.data'
import * as CombinationActivityApi from '@/api/mall/promotion/combination/combinationactivity' import * as CombinationActivityApi from '@/api/mall/promotion/combination/combinationActivity'
import CombinationActivityForm from './CombinationActivityForm.vue' import CombinationActivityForm from './CombinationActivityForm.vue'
import { cloneDeep } from 'lodash-es' import { cloneDeep } from 'lodash-es'
import { createImageViewer } from '@/components/ImageViewer' import { createImageViewer } from '@/components/ImageViewer'
@ -102,10 +102,10 @@ const handleDelete = (id: number) => {
/** 初始化 **/ /** 初始化 **/
onMounted(() => { onMounted(() => {
/** /**
TODO TODO
后面准备封装成一个函数来操作 tableColumns 重新排列比如说需求是表单上商品选择是在后面的而列表展示的时候需要调到位置 后面准备封装成一个函数来操作 tableColumns 重新排列比如说需求是表单上商品选择是在后面的而列表展示的时候需要调到位置
封装效果支持批量操作给出 field 和需要插入的位置[{field:'spuId',index: 1}] 效果为把 field spuId column 移动到第一个位置 封装效果支持批量操作给出 field 和需要插入的位置[{field:'spuId',index: 1}] 效果为把 field spuId column 移动到第一个位置
*/ */
// //
const index = allSchemas.tableColumns.findIndex((item) => item.field === 'spuId') const index = allSchemas.tableColumns.findIndex((item) => item.field === 'spuId')
const column = cloneDeep(allSchemas.tableColumns[index]) const column = cloneDeep(allSchemas.tableColumns[index])