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 };
+};