From 2d18d32907f5224a29ca2a6e983c3427d691a6a4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E7=A3=8A?= <45566618@qq.com> Date: Thu, 17 Apr 2025 15:10:01 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9C=BA=E6=9E=84=E7=AE=A1=E7=90=86=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E6=95=B0=E6=8D=AE=E6=BA=90=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../monitor/datasource/DataSourceDrawer.vue | 2 - .../monitor/datasource/datasource.api.ts | 9 ++ .../monitor/datasource/datasource.data.ts | 79 ++++++++++- .../depart/components/DataSourceTab.vue | 134 ++++++++++++++++++ .../depart/components/DepartLeftTree.vue | 14 +- src/views/system/depart/depart.data.ts | 57 +++++++- src/views/system/depart/index.vue | 10 +- 7 files changed, 286 insertions(+), 19 deletions(-) create mode 100644 src/views/system/depart/components/DataSourceTab.vue diff --git a/src/views/monitor/datasource/DataSourceDrawer.vue b/src/views/monitor/datasource/DataSourceDrawer.vue index 67058ba..f0dcc5e 100644 --- a/src/views/monitor/datasource/DataSourceDrawer.vue +++ b/src/views/monitor/datasource/DataSourceDrawer.vue @@ -61,7 +61,6 @@ showFooter.value = data?.showFooter ?? true; setDrawerProps({ confirmLoading: false, showFooter: showFooter.value }); isUpdate.value = !!data?.isUpdate; - console.log(unref(isUpdate)); if (unref(isUpdate)){ await getDepartOptions(''); }else{ @@ -93,7 +92,6 @@ async function getDepartOptions(addFLag){ departOptions.value = []; const data = await queryDeparts({ addFLag : addFLag }); - console.log(data); Object.assign(departOptions.value, data); } diff --git a/src/views/monitor/datasource/datasource.api.ts b/src/views/monitor/datasource/datasource.api.ts index 7b9a0f6..76a5116 100644 --- a/src/views/monitor/datasource/datasource.api.ts +++ b/src/views/monitor/datasource/datasource.api.ts @@ -10,6 +10,7 @@ enum Api { testConnection = '/online/cgreport/api/testConnection', deleteBatch = '/sys/dataSource/deleteBatch', departList = '/sys/dataSource/departList', + getByCode = '/sys/dataSource/queryBySysOrgCode', // exportXlsUrl = 'sys/dataSource/exportXls', // importExcelUrl = 'sys/dataSource/importExcel', } @@ -90,3 +91,11 @@ export const batchDeleteDataSource = (params, handleSuccess) => { export const queryDeparts = (params) => { return defHttp.get({ url: Api.departList, params }); }; + +/** + * 查询数据源详情 + * @param params + */ +export const getDataSourceByCode = (params) => { + return defHttp.get({ url: Api.getByCode, params }); +}; diff --git a/src/views/monitor/datasource/datasource.data.ts b/src/views/monitor/datasource/datasource.data.ts index 8de6db7..b0624a1 100644 --- a/src/views/monitor/datasource/datasource.data.ts +++ b/src/views/monitor/datasource/datasource.data.ts @@ -187,7 +187,7 @@ export const formSchema: FormSchema[] = [ field: 'dbUrl', label: '数据源地址', required: true, - component: 'Input', + component: 'InputTextArea', }, { field: 'dbUsername', @@ -208,3 +208,80 @@ export const formSchema: FormSchema[] = [ component: 'InputTextArea', }, ]; + +// 数据源基础表单 +export function useDataSourceFormSchema() { + const dataSourceFormSchema: FormSchema[] = [ + { + field: 'id', + label: 'id', + component: 'Input', + show: false, + }, + { + field: 'sysOrgCode', + label: '所属机构', + component: 'Input', + required: true, + show: false, + }, + { + field: 'code', + label: '数据源编码', + component: 'Input', + // required: true, + dynamicDisabled: true + }, + { + field: 'name', + label: '数据源名称', + component: 'Input', + required: true, + }, + { + field: 'dbType', + label: '数据库类型', + component: 'JDictSelectTag', + required: true, + componentProps: ({ formModel }) => { + return { + dictCode: 'database_type', + onChange: (e: any) => { + formModel = Object.assign(formModel, dbDriverMap[e], dbUrlMap[e]); + }, + }; + }, + }, + { + field: 'dbDriver', + label: '驱动类', + required: true, + component: 'Input', + }, + { + field: 'dbUrl', + label: '数据源地址', + required: true, + component: 'InputTextArea', + }, + { + field: 'dbUsername', + label: '用户名', + required: true, + component: 'Input', + }, + { + field: 'dbPassword', + label: '密码', + required: true, + component: 'InputPassword', + slot: 'pwd', + }, + { + field: 'remark', + label: '备注', + component: 'InputTextArea', + }, + ]; + return { dataSourceFormSchema }; +} diff --git a/src/views/system/depart/components/DataSourceTab.vue b/src/views/system/depart/components/DataSourceTab.vue new file mode 100644 index 0000000..d91121a --- /dev/null +++ b/src/views/system/depart/components/DataSourceTab.vue @@ -0,0 +1,134 @@ + + + + diff --git a/src/views/system/depart/components/DepartLeftTree.vue b/src/views/system/depart/components/DepartLeftTree.vue index f4cad96..52a69a9 100644 --- a/src/views/system/depart/components/DepartLeftTree.vue +++ b/src/views/system/depart/components/DepartLeftTree.vue @@ -1,12 +1,12 @@