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