diff --git a/package.json b/package.json index 560c1a9..d5dac4f 100644 --- a/package.json +++ b/package.json @@ -21,6 +21,7 @@ "@vueuse/core": "^14.2.1", "axios": "^1.13.5", "crypto-js": "^4.2.0", + "dayjs": "^1.11.20", "element-plus": "^2.13.2", "pinia": "^3.0.4", "vue": "^3.5.29", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d034b5d..67f03b7 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -26,6 +26,9 @@ importers: crypto-js: specifier: ^4.2.0 version: 4.2.0 + dayjs: + specifier: ^1.11.20 + version: 1.11.20 element-plus: specifier: ^2.13.2 version: 2.13.2(vue@3.5.29(typescript@5.9.3)) @@ -1220,8 +1223,8 @@ packages: csstype@3.2.3: resolution: {integrity: sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==} - dayjs@1.11.19: - resolution: {integrity: sha512-t5EcLVS6QPBNqM2z8fakk/NKel+Xzshgt8FFKAn+qwlD1pzZWxh0nVCrvFK7ZDb6XucZeF9z8C7CBWTRIVApAw==} + dayjs@1.11.20: + resolution: {integrity: sha512-YbwwqR/uYpeoP4pu043q+LTDLFBLApUP6VxRihdfNTqu4ubqMlGDLd6ErXhEgsyvY0K6nCs7nggYumAN+9uEuQ==} debug@4.4.3: resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} @@ -3162,7 +3165,7 @@ snapshots: csstype@3.2.3: {} - dayjs@1.11.19: {} + dayjs@1.11.20: {} debug@4.4.3: dependencies: @@ -3202,7 +3205,7 @@ snapshots: '@types/lodash-es': 4.17.12 '@vueuse/core': 10.11.1(vue@3.5.29(typescript@5.9.3)) async-validator: 4.2.5 - dayjs: 1.11.19 + dayjs: 1.11.20 lodash: 4.17.23 lodash-es: 4.17.23 lodash-unified: 1.0.3(@types/lodash-es@4.17.12)(lodash-es@4.17.23)(lodash@4.17.23) diff --git a/src/api/modules/trade/group.ts b/src/api/modules/trade/group.ts new file mode 100644 index 0000000..31734b1 --- /dev/null +++ b/src/api/modules/trade/group.ts @@ -0,0 +1,21 @@ +import { request } from '@/api'; + +// 获取交易组列表 +export async function getGroupListApi(): Promise { + return request.get('/contractVariety/getGroupList') +} + +// 创建交易组 +export async function addGroupApi(params: any): Promise { + return request.post('/contractVariety/createGroup', {...params}) +} + +//编辑交易组 +export async function editGroupApi(params: any): Promise { + return request.post('/contractVariety/editGroup', {...params}) +} + +// 删除交易组 +export async function deleteGroupApi(params: any): Promise { + return request.post('/contractVariety/delGroup', {...params}) +} \ No newline at end of file diff --git a/src/components/common/Form.vue b/src/components/common/Form.vue index 415c8b8..0ee6261 100644 --- a/src/components/common/Form.vue +++ b/src/components/common/Form.vue @@ -49,6 +49,13 @@ + + @@ -75,6 +82,13 @@ interface FormItem { labelPosition?: 'left' | 'right' labelWidth?: string class?: string + dateType?: 'date' | 'daterange' | 'monthrange' | 'yearrange' | 'datetimerange' + rangeSeparator?: string + startPlaceholder?: string + endPlaceholder?: string + valueFormat?: string + clearable?: boolean + disabledDate?: (time: Date) => boolean } diff --git a/src/views/trade/group/index.vue b/src/views/trade/group/index.vue index 6087460..2dec88a 100644 --- a/src/views/trade/group/index.vue +++ b/src/views/trade/group/index.vue @@ -1,3 +1,207 @@ \ No newline at end of file +
+ + 添加 + + + + + + + +
+ + + + + + + + + + diff --git a/src/views/trade/group/options.ts b/src/views/trade/group/options.ts new file mode 100644 index 0000000..c51c064 --- /dev/null +++ b/src/views/trade/group/options.ts @@ -0,0 +1,40 @@ +/** + * @description: 搜索配置 + */ +export const search = [ + { label: '交易组名称', prop: 'tradeGroupName', type: 'input' as const, placeholder: '请输入交易组名称' }, + { label: '状态', prop: 'status', type: 'select' as const, options: [{ label: '全部', value: '0' }, { label: '开启', value: '1' }, { label: '关闭', value: '2' }] }, +] + +/** + * @description: 表格配置 + */ +export const tableColumns = [ + { label: '交易组名称', prop: 'tradeGroupName' }, + //交易所编号 + { label: '交易所编号', prop: 'exchangeId' }, + // 交易时间 + { label: '交易时间', slotName: 'tradeTime' }, + // 交易状态 + { label: '交易状态', slotName: 'status' }, + // 操作 + { label: '操作', slotName: 'action' }, +] + +/** + * @description: dialog form配置 + */ +export const addFormItem = [ + { label: '交易组名称', prop: 'tradeGroupName', type: 'input' as const, placeholder: '请输入交易组名称' }, + // { label: '交易所ID', prop: 'exchangeId', type: 'select' as const, options: [] }, + // { label: '状态', prop: 'status', type: 'select' as const, options: [{ label: '开启', value: '1' }, { label: '关闭', value: '2' }] }, + { label: '冬季交易时间', prop: 'winterTime', type: 'date' as const, dateType: 'datetimerange' as const, placeholder: '请选择冬季交易时间', valueFormat: 'YYYY-MM-DD HH:mm:ss', labelWidth: '110px' }, + { label: '夏季交易时间', prop: 'summerTime', type: 'date' as const, dateType: 'datetimerange' as const, placeholder: '请选择夏季交易时间', valueFormat: 'YYYY-MM-DD HH:mm:ss' , labelWidth: '110px' }, +] +export const editFormItem = [ + { label: '交易组名称', prop: 'tradeGroupName', type: 'input' as const, placeholder: '请输入交易组名称' }, + { label: '冬季交易时间', prop: 'winterTime', type: 'date' as const, dateType: 'datetimerange' as const, placeholder: '请选择冬季交易时间', valueFormat: 'YYYY-MM-DD HH:mm:ss' , labelWidth: '110px'}, + { label: '夏季交易时间', prop: 'summerTime', type: 'date' as const, dateType: 'datetimerange' as const, placeholder: '请选择夏季交易时间', valueFormat: 'YYYY-MM-DD HH:mm:ss' , labelWidth: '110px'}, + { label: '状态', prop: 'status', type: 'radio' as const}, + { label: '排序', prop: 'sort', type: 'number' as const, placeholder: '请输入排序' }, +] \ No newline at end of file diff --git a/src/views/trade/group/rules.ts b/src/views/trade/group/rules.ts new file mode 100644 index 0000000..d97152b --- /dev/null +++ b/src/views/trade/group/rules.ts @@ -0,0 +1,14 @@ +import type { FormRules } from 'element-plus' +export const rules = (): FormRules => { + return { + tradeGroupName: [ + { required: true, message: '请输入交易组名称', trigger: ['blur'] } + ], + winterTime: [ + { required: true, message: '请选择冬季交易时间', trigger: ['change'] } + ], + summerTime: [ + { required: true, message: '请选择夏季交易时间', trigger: ['change'] } + ], + } +} \ No newline at end of file diff --git a/src/views/trade/time/index.vue b/src/views/trade/time/index.vue deleted file mode 100644 index 7d90269..0000000 --- a/src/views/trade/time/index.vue +++ /dev/null @@ -1,3 +0,0 @@ - \ No newline at end of file