From 8f5009a3d57821c2c97690b8419e428967b5e981 Mon Sep 17 00:00:00 2001 From: Ben Lin <maobin001@msn.com> Date: 星期一, 03 六月 2024 22:48:41 +0800 Subject: [PATCH] 低代码更新 --- src/api/tigerapi/system.ts | 143 ++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 133 insertions(+), 10 deletions(-) diff --git a/src/api/tigerapi/system.ts b/src/api/tigerapi/system.ts index 0242820..3ead966 100644 --- a/src/api/tigerapi/system.ts +++ b/src/api/tigerapi/system.ts @@ -1,4 +1,5 @@ import { UserConfigFn } from 'vite'; +import { useGlobSetting } from '/@/hooks/setting'; import { buildUUID } from '../../utils/uuid'; import { DateFormat } from '../../utils/dataformat'; import { ApiAction, ApiActionJob, ApiActionPage } from '../model/baseModel'; @@ -25,9 +26,11 @@ LoginLogPageListGetResultModel, iSYS_ROLE_ORG, iSYS_ROLE_WH, + EntityParams, + EntityList, } from './model/systemModel'; import { defHttp } from '/@/utils/http/axios'; -import { isNullOrEmpty } from '/@/utils/is'; +import { isNullOrEmpty, isTimeType } from '/@/utils/is'; export enum Api { QueryUrl = '/Base/Query', @@ -76,7 +79,10 @@ //瀵煎叆 ValidateTableImport = '/SMT/ValidateTableImport', SaveValidateTableImport = '/SMT/SaveValidateTableImport', + GetEntityNameList = '/System/Entitys/Get', } + +const globSetting = useGlobSetting(); /** * 鐢熸垚apiaction,甯﹀垎椤� @@ -649,35 +655,92 @@ /* 閫氱敤鏌ヨ鍒嗛〉 */ export async function getListByPage<T>(params: T) { const Keys = Object.getOwnPropertyNames(params); - let sqlcmd = ''; + let sqlcmd = '1=1 '; + let order = ''; for (const k in Keys) { console.log(`${k}:${Keys[k]}`); if ( !isNullOrEmpty(params[Keys[k]]) && Keys[k] != 'page' && Keys[k] != 'pageSize' && - Keys[k] != 'TABLE_NAME' //蹇呴渶鍦ㄩ〉闈㈢殑鏌ヨ閮ㄥ垎鍔犲叆'TABLE_NAME'瀛楁骞惰祴鍊艰〃鍚� + Keys[k] != 'TABLE_NAME' && + Keys[k] != 'order' && + Keys[k] != 'field' && + Keys[k] != '0' ) { - sqlcmd += `And ${Keys[k]} like '%${params[Keys[k]]}%'`; + if (!isNullOrEmpty(params[Keys[k]].length) && isTimeType(params[Keys[k]][0])) { + sqlcmd += ` And ${Keys[k]} > '${params[Keys[k]][0]}'`; + sqlcmd += ` And ${Keys[k]} < '${params[Keys[k]][1]}'`; + } else { + sqlcmd += `And ${Keys[k]} like '%${params[Keys[k]]}%'`; + } } } - const rParams = genActionPage(params['TABLE_NAME'], sqlcmd, params['page'], params['pageSize']); + if (!isNullOrEmpty(params['order'])) { + order = params['order'] == 'descend' ? params['field'] + ' desc' : params['field']; + } + const rParams = genAction(params['TABLE_NAME'], { + QueryAble_T: '', + where: sqlcmd, + order: order, + page: { + pageAble_T: 'string', + draw: 1, + pageIndex: params['page'], + pageSize: params['pageSize'], + }, + }); return getListByPageAsync(rParams); } -async function getListByPageAsync(params: ApiActionPage) { - const data = await defHttp.post<ApiActionPage>( - { url: Api.EntityPageList, params }, +async function getListByPageAsync(params: any) { + const data = await defHttp.post( + { url: Api.QueryUrl, params }, { isTransformResponse: false, }, ); const model = { - items: data.Data.data, - total: data.Data.totals, + items: data.Data.page.data, + total: data.Data.page.totals, }; return model; } +export async function SaveEntity<T>(params: T, isUpdate: boolean, entityName: string) { + let data; + if (isUpdate) { + data = await defHttp.post( + { url: Api.UpdateEntity, params: genAction(entityName, params) }, + { + errorMessageMode: 'none', + isTransformResponse: false, + }, + ); + } else { + params.ID = buildUUID(); //鐢熸垚GUID + data = await defHttp.post( + { url: Api.AddEntity, params: genAction(entityName, params) }, + { + errorMessageMode: 'none', + isTransformResponse: false, + }, + ); + } + return data; +} + +export async function DeleteEntity<T>(params: T, entityName: string) { + const usParams = genAction(entityName, [params]); + return await defHttp.post( + { url: Api.DeleteList, params: usParams }, + { + errorMessageMode: 'none', + isTransformResponse: false, + }, + ); +} + +//鑾峰彇鏈嶅姟鍣↗son鏂囦欢杩斿洖Json鏁版嵁 export async function fetchJson(url: string) { try { const response = await fetch(url); @@ -686,3 +749,63 @@ console.error('Error fetching columns:', error); } } + +// 娉涘瀷鍑芥暟锛岃幏鍙栫被鐨勫悕绉� +export function getClassName<T>(ctor: new () => T): string { + return ctor.name; +} + +export const getEntityList = (params?: EntityParams) => + defHttp.get<EntityList>( + { url: Api.GetEntityNameList, params }, + { + isTransformResponse: false, + apiUrl: globSetting.sysApiUrl, + }, + ); + +export async function getEntityNameList(params?: EntityParams) { + const data = await defHttp.get<EntityList>( + { url: Api.GetEntityNameList, params }, + { + isTransformResponse: false, + apiUrl: globSetting.sysApiUrl, + }, + ); + const model = { + items: data.Data, + total: data.Total, + }; + return model; +} + +export async function getEntityPropertieList(params?: EntityParams) { + const data = await defHttp.get<EntityList>( + { url: Api.GetEntityNameList, params }, + { + isTransformResponse: false, + apiUrl: globSetting.sysApiUrl, + }, + ); + const model = { + items: data.Data.filter((x) => x.Name == params?.StartWith)[0].Properties, + total: data.Total, + }; + return model; +} + +/* 閫氱敤鑾峰彇瀹炰綋璁板綍 */ +export const getEntity = async (params: { sqlcmd: string; entityName: string }) => { + const usParams = genAction(params.entityName, { + QueryAble_T: '', + where: params.sqlcmd, + order: '', + }); + return await defHttp.post( + { url: Api.QueryUrl, params: usParams }, + { + errorMessageMode: 'none', + isTransformResponse: false, + }, + ); +}; -- Gitblit v1.9.3