From 1b6de5f6fd96fea735feba0735f779aa9269e4cf Mon Sep 17 00:00:00 2001 From: qianlishi <1432731663@qq.com> Date: Fri, 10 Jan 2025 15:18:06 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8A=A5=E8=A1=A8=E8=AE=BE=E8=AE=A1-=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E9=9B=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Report-V3-TS/src/api/report/resultSet.ts | 57 ++++ .../src/views/report/resultSet/index.vue | 59 +++- .../views/report/resultSet/utils/schemas.ts | 270 ++++++++++++++++++ 3 files changed, 384 insertions(+), 2 deletions(-) create mode 100644 Report-V3-TS/src/api/report/resultSet.ts create mode 100644 Report-V3-TS/src/views/report/resultSet/utils/schemas.ts diff --git a/Report-V3-TS/src/api/report/resultSet.ts b/Report-V3-TS/src/api/report/resultSet.ts new file mode 100644 index 00000000..b1b5ad96 --- /dev/null +++ b/Report-V3-TS/src/api/report/resultSet.ts @@ -0,0 +1,57 @@ +import { http } from '@/utils/http/axios'; + + +export function toGetPageList(params) { + return http.request({ + url: 'dataSet/pageList', + method: 'GET', + params, + }) +} + +export function toAddApi(data) { + return http.request({ + url: 'dataSet', + method: 'post', + data + }) +} + +export function toDeleteApi(data) { + return http.request({ + url: 'dataSet/delete/batch', + method: 'post', + data + }) +} + +export function toUpdateApi(data) { + return http.request({ + url: 'dataSet', + method: 'put', data, + }) +} + +export function toGetDataDetailApi(data) { + return http.request({ + url: 'dataSet/' + data.id, + method: 'get', + params: { accessKey: data.accessKey } + }) +} + +export function reportDataSetCopy(data) { + return http.request({ + url: '/dataSet/copy', + method: 'post', + data + }) +} + +// 数据源 +export function getReportData() { + return http.request({ + url: '/dataSource/queryAllDataSource', + method: 'get' + }) +} diff --git a/Report-V3-TS/src/views/report/resultSet/index.vue b/Report-V3-TS/src/views/report/resultSet/index.vue index 2f9548a0..48679e30 100644 --- a/Report-V3-TS/src/views/report/resultSet/index.vue +++ b/Report-V3-TS/src/views/report/resultSet/index.vue @@ -3,13 +3,68 @@ * @Author: qianlishi * @Date: 2024-12-08 16:34:50 * @LastEditors: qianlishi - * @LastEditTime: 2024-12-08 16:36:34 + * @LastEditTime: 2025-01-10 15:17:45 --> diff --git a/Report-V3-TS/src/views/report/resultSet/utils/schemas.ts b/Report-V3-TS/src/views/report/resultSet/utils/schemas.ts new file mode 100644 index 00000000..5492bb42 --- /dev/null +++ b/Report-V3-TS/src/views/report/resultSet/utils/schemas.ts @@ -0,0 +1,270 @@ +/* + * @Description: + * @Author: qianlishi + * @Date: 2025-01-03 01:01:14 + * @LastEditors: qianlishi + * @LastEditTime: 2025-01-10 15:16:58 + */ +import { computed, h } from 'vue'; +import { cloneDeep } from 'lodash-es'; +import { isObject } from '@/utils/is'; +import { NButton } from 'naive-ui' +import { editFormShow } from '@/enums/common' +import { FormSchema } from '@/components/Base/Jsq-crud/src/components/Jsq-searchForm'; +import { getReportData } from '@/api/report/resultSet' + +// 表单配置 +export const getFormSchemas = ({ params }: Record) => { + const schemas = computed(() => { + const formItems: FormSchema[] = [ + { + label: '数据集编码', + field: 'setCode', + component: 'NInput', + componentProps: { + placeholder: '请输入数据源编码', + }, + }, + { + label: '数据集名称', + field: 'setName', + component: 'NInput', + componentProps: { + placeholder: '请输入数据源名称', + }, + }, + { + label: '数据源', + component: 'JsqSelect', + field: 'enableFlag', + componentProps: { + api: getReportData, + labelField: "sourceName", + valueField: "sourceCode", + }, + }, + { + label: '数据集类型', + component: 'JsqSelect', + field: 'setType', + componentProps: { + dictCode: "SET_TYPE" + }, + }, + ].map((item: any) => { + const tempObj = cloneDeep(item); + for (const key in params) { + if (tempObj.field == key) { + for (const n in params[key]) { + if (isObject(params[key][n])) { + tempObj[n] = { ...params[key][n], ...tempObj[n] }; + } else { + tempObj[n] = params[key][n]; + } + } + } + } + return tempObj; + }); + return formItems; + }); + return schemas; +}; + + +// 批量操作 +export const getTableButtons = ({ addClick, removeAll }) => { + const rowsButtons = computed(() => { + return [ + { + label: '新增', + type: '', + permission: 'asd', // 权限嘛 + plain: true, + click: () => { + addClick() + } + }, + { + label: '删除', + type: 'warning', + permission: '', // 权限嘛 + plain: true, + click: () => { + removeAll() + } + } + ] + }) + return {rowsButtons} +} + +// 新增表单数据 +export const getDialogRecordingSchemas = () => { + const schemas = [ + { + label: '角色编码', + field: 'roleCode', + component: "NInput", // 表单类型 + componentProps: { // 组件配置 + placeholder: '', + }, + rules: [ + { required: true, message: "角色编码必填", trigger: "blur" }, + { min: 1, max: 64, message: "不超过64个字符", trigger: "blur" } + ], + }, + { + label: '角色名称', + field: 'roleName', + component: 'NInput', + componentProps: { // 组件配置 + placeholder: '', + }, + rules: [ + { required: true, message: "角色名称必填", trigger: "blur" }, + { min: 1, max: 128, message: "不超过128个字符", trigger: "blur" } + ], + }, + { + label: '启用状态', + field: "enableFlag", + component: 'JsqSelect', + componentProps: { // 组件配置 + placeholder: '', + dictCode: 'ENABLE_FLAG', + }, + rules: [ + { required: true, message: "启用状态必填", trigger: ['blur', 'change'] } + ], + }, + { + label: '创建人', + field: 'createBy', + component: "NInput", + componentProps: { // 组件配置 + placeholder: '', + disabled: true + }, + editHide: editFormShow.HIDE_ON_ADD, + }, + { + label: '创建时间', + field: 'createTime', + component: "NInput", + componentProps: { // 组件配置 + placeholder: '', + disabled: true + }, + editHide: editFormShow.HIDE_ON_ADD, + }, + { + label: '修改人', + field: 'updateBy', + component: "NInput", + componentProps: { // 组件配置 + placeholder: '', + disabled: true + }, + editHide: editFormShow.HIDE_ON_ADD, + }, + { + label: '修改时间', + field: 'updateTime', + component: "NInput", + componentProps: { // 组件配置 + placeholder: '', + disabled: true + }, + editHide: editFormShow.HIDE_ON_ADD, + }, + ] + + return schemas +} + +// 表格 +export const getTableColumns = ({ updateClick, removeSingle }) => { + const columns= [ + { + type: 'selection', + align: 'center', + }, + { + title: '序号', + width: '60px', + align: 'center', + key: 'key', + render: (_, index) => { + return `${index + 1}` + }, + }, + { + title: '数据源编码', + key: 'setCode', // 表格展示字段 + align: 'center', + }, + { + title: '数据集名称', + key: 'setName', + align: 'center', + }, + { + title: '描述', + key: 'setDesc', + align: 'center' + }, + { + title: '数据源编码', + key: 'sourceCode', + align: 'center', + }, + { + title: '数据集类型', + key: 'setType', + align: 'center', + }, + { + title: '状态', + key: 'enableFlag', + align: 'center', + }, + { + title: '操作', + key: 'actions', + align: 'center', + width: "120px", + editHide: true, + render(row) { + return [ + h( + NButton, + { + size: 'small', + quaternary: true, + type:"primary", + onClick: () => { + updateClick(row) + } + }, + { default: () => '编辑' } + ), + h( + NButton, + { + size: 'small', + quaternary: true, + 'v-permission': 'asd', + type:"primary", + onClick: () => { + removeSingle(row) + } + }, + { default: () => '删除' } + ) + ] + } + } + ]; + return { columns }; +};