| | |
| | | import { UserConfigFn } from 'vite'; |
| | | import { useGlobSetting } from '/@/hooks/setting'; |
| | | import { buildUUID } from '../../utils/uuid'; |
| | | import { DateFormat } from '../../utils/dataformat'; |
| | |
| | | EntityParams, |
| | | EntityList, |
| | | iSYS_ROLE_PROD, |
| | | pParams, |
| | | } from './model/systemModel'; |
| | | import { defHttp } from '/@/utils/http/axios'; |
| | | import { isArray, isDate, isNullOrEmpty, isTimeType, isTimeViaRegExp8601, isTimeViaRegExpSimple } from '/@/utils/is'; |
| | | import { isArray, isNullOrEmpty, isTimeViaRegExp8601 } from '/@/utils/is'; |
| | | import { isNumber } from 'xe-utils'; |
| | | |
| | | export enum Api { |
| | | QueryUrl = '/Base/Query', |
| | |
| | | EntitySqlList = '/Base/QuerySQL', |
| | | EntityPageList = '/Base/QueryCustomPage', |
| | | IsAccountExist = '/Base/IsExist', |
| | | AddAfterDelete = '/Base/AddAfterDelete', |
| | | setRoleStatus = '/system/setRoleStatus', |
| | | MenuList = '/SYS/getMenuListAll', |
| | | SaveMenu = '/SYS/SaveMenu', |
| | | SaveRole = '/SYS/SaveRole', |
| | | getSysParam = '/SYS/getSysParam', |
| | | AddEntity = '/Base/Add', |
| | | AddListEntity = '/Base/AddList', |
| | | UpdateEntity = '/Base/Update', |
| | |
| | | /** |
| | | * @description: 树形表结构转树形Json |
| | | * @param {T} data |
| | | * @param {string} parentId |
| | | * @param {string} id |
| | | * @param {string} pid |
| | | * @param {string} parentField 父字段名 |
| | | * @param {string} idField 唯一key字段名 |
| | | * @param {string} pid_val 父id值 |
| | | * @return {*} |
| | | */ |
| | | export function convertToTree<T>(data: T[], parentId: string, id: string, pid?: string) { |
| | | export function convertToTree<T>(data: T[], parentField: string, idField: string, pid?: string) { |
| | | const result: T[] = []; |
| | | let temp: T[] = []; |
| | | const _pid = isNullOrEmpty(pid) ? '' : pid; |
| | | for (let i = 0; i < data.length; i++) { |
| | | const currPid = data[i][parentId] == null ? '' : data[i][parentId]; |
| | | const currPid = data[i][parentField] == null ? '' : data[i][parentField]; |
| | | if (currPid === _pid) { |
| | | const obj = data[i] as {}; |
| | | temp = convertToTree(data, parentId, id, data[i][id]); |
| | | const obj = data[i] as T; |
| | | temp = convertToTree(data, parentField, idField, data[i][idField]); |
| | | if (temp.length > 0) { |
| | | obj['children'] = temp; |
| | | } |
| | |
| | | * @return {*} |
| | | */ |
| | | export async function getListByPage<T>(params: T) { |
| | | const Keys = Object.getOwnPropertyNames(params); |
| | | let sqlcmd = '1=1 '; |
| | | const sqlcmd = ReturnSqlcmd(params); |
| | | 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' && |
| | | Keys[k] != 'order' && |
| | | Keys[k] != 'field' && |
| | | Keys[k] != '0' && |
| | | !Keys[k].toString().endsWith('PSelect_0') |
| | | ) { |
| | | if (!isNullOrEmpty(params[Keys[k]].length) && isTimeViaRegExp8601(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]]}%'`; |
| | | } |
| | | } |
| | | } |
| | | 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'], |
| | | const rParams = genAction( |
| | | params['TABLE_NAME'], |
| | | { |
| | | QueryAble_T: '', |
| | | where: sqlcmd, |
| | | order: order, |
| | | page: { |
| | | pageAble_T: 'string', |
| | | draw: 1, |
| | | pageIndex: params['page'], |
| | | pageSize: params['pageSize'], |
| | | }, |
| | | }, |
| | | }); |
| | | params['option'], |
| | | ); |
| | | return getListByPageAsync(rParams); |
| | | } |
| | | async function getListByPageAsync(params: any) { |
| | | const data = await defHttp.post( |
| | | { url: Api.QueryUrl, params }, |
| | | { url: Api.QueryUrl, params, timeout: 50000 }, |
| | | { |
| | | isTransformResponse: false, |
| | | }, |
| | |
| | | return model; |
| | | } |
| | | |
| | | /** |
| | | * @description: 根据查询条件参数拼接查询条件 |
| | | * @param {T} params |
| | | * @return {*} |
| | | */ |
| | | export function ReturnSqlcmd<T>(params: T) { |
| | | const Keys = Object.getOwnPropertyNames(params); |
| | | let sqlcmd = '1=1 '; |
| | | 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' && |
| | | Keys[k] != 'order' && |
| | | Keys[k] != 'field' && |
| | | Keys[k] != 'option' && |
| | | Keys[k] != '0' && |
| | | !Keys[k].toString().endsWith('PSelect_0') |
| | | ) { |
| | | if (!isNullOrEmpty(params[Keys[k]].length) && isTimeViaRegExp8601(params[Keys[k]][0])) { |
| | | sqlcmd += ` And ${Keys[k]} > '${params[Keys[k]][0]}'`; |
| | | sqlcmd += ` And ${Keys[k]} < '${params[Keys[k]][1]}'`; |
| | | } else if (isNumber(params[Keys[k]])) { |
| | | sqlcmd += `And ${Keys[k]} = ${params[Keys[k]]}`; |
| | | } else { |
| | | sqlcmd += `And ${Keys[k]} like '%${params[Keys[k]]}%'`; |
| | | } |
| | | } |
| | | } |
| | | return sqlcmd; |
| | | } |
| | | |
| | | export async function SaveEntity<T>(params: T, isUpdate: boolean, entityName: string, ...args) { |
| | | let data; |
| | | /* 针对模板地址做替换,特殊处理 */ |
| | | if(params['TEMP_PATH']){ |
| | | params['TEMP_PATH'] = params['TEMP_PATH'].toString().replace('/','//'); |
| | | } |
| | | if (isUpdate) { |
| | | data = await defHttp.post( |
| | | { url: Api.UpdateEntity, params: genAction(entityName, params) }, |
| | |
| | | ); |
| | | } else { |
| | | var check = await isExist(genAction(entityName, args[0])); |
| | | if(check.Data){ |
| | | if (check.Data) { |
| | | check.IsSuccessed = false; |
| | | check.Message = '记录已经存在,不能新增!'; |
| | | return check; |
| | | } |
| | | params.ID = buildUUID(); //生成GUID |
| | | params['ID'] = args[1] == true ? params['ID'] : buildUUID(); //生成GUID |
| | | data = await defHttp.post( |
| | | { url: Api.AddEntity, params: genAction(entityName, params) }, |
| | | { |
| | |
| | | isTransformResponse: false, |
| | | }, |
| | | ); |
| | | } |
| | | |
| | | /** |
| | | * @description: 先删除后添加Api |
| | | * @param {T} params |
| | | * @param {string} entityName |
| | | * @param {*} items |
| | | * @return {*} |
| | | */ |
| | | export async function AddAfterDelete(entityName: string, items: [], where: string) { |
| | | let data = await defHttp.post( |
| | | { |
| | | url: Api.AddAfterDelete, |
| | | params: genAction(entityName, { |
| | | QueryAble_T: '', |
| | | where: where, |
| | | Items: items, |
| | | }), |
| | | }, |
| | | { |
| | | errorMessageMode: 'none', |
| | | isTransformResponse: false, |
| | | }, |
| | | ); |
| | | return data; |
| | | } |
| | | |
| | | /** |
| | |
| | | } |
| | | |
| | | /* 通用获取实体记录 */ |
| | | export const getEntity = async (params: { sqlcmd: string; entityName: string }) => { |
| | | export const getEntity = async (params: { sqlcmd: string; entityName: string; order: string }) => { |
| | | const usParams = genAction(params.entityName, { |
| | | QueryAble_T: '', |
| | | where: params.sqlcmd, |
| | | order: '', |
| | | order: params.order, |
| | | }); |
| | | return await defHttp.post( |
| | | { url: Api.QueryUrl, params: usParams }, |
| | |
| | | } |
| | | return values; |
| | | } |
| | | |
| | | /** |
| | | * @description: 获取参数 |
| | | * @param {pParams} params |
| | | * @return {*} |
| | | */ |
| | | export const getSysParam = (params?: pParams) => |
| | | defHttp.get<ApiAction<treeParamsListItem[]>>( |
| | | { url: Api.getSysParam, params }, |
| | | { |
| | | isTransformResponse: false, |
| | | }, |
| | | ); |