import { IPSDEList } from '@ibizstudio/runtime'; import { ControlServiceBase } from '@ibizstudio/runtime'; import { GlobalService } from '@ibizstudio/runtime'; import { AppListModel } from '../ctrl-model'; /** * Main 部件服务对象 * * @export * @class AppListService */ export class AppListService extends ControlServiceBase { /** * 表单实例对象 * * @memberof AppListService */ declare controlInstance: IPSDEList; /** * 数据服务对象 * * @type {any} * @memberof AppListService */ appEntityService!: any; /** * 初始化服务参数 * * @type {boolean} * @memberof AppListService */ async initServiceParam(opts: any) { this.controlInstance = opts; this.appEntityService = await new GlobalService().getService(this.appDeCodeName, this.context); this.model = new AppListModel(opts); } /** * Creates an instance of AppListService. * * @param {*} [opts={}] * @memberof AppListService */ constructor(opts: any = {}, context?: any) { super(opts, context); } /** * async loaded */ async loaded(opts: any) { await this.initServiceParam(opts); } /** * 查询数据 * * @param {string} action * @param {*} [context={}] * @param {*} [data={}] * @param {boolean} [isloading] * @returns {Promise} * @memberof AppListService */ search(action: string, context: any = {}, data: any = {}, isloading?: boolean): Promise { const { data: Data, context: Context } = this.handleRequestData(action, context, data, true); return new Promise((resolve: any, reject: any) => { const _appEntityService: any = this.appEntityService; let result: Promise; if (_appEntityService[action] && _appEntityService[action] instanceof Function) { result = _appEntityService[action](Context, Data, isloading); } else { result = _appEntityService.FetchDefault(Context, Data, isloading); } result .then(async response => { await this.handleResponse(action, response); resolve(response); }) .catch(response => { reject(response); }); }); } /** * 删除数据 * * @param {string} action * @param {*} [context={}] * @param {*} [data={}] * @param {boolean} [isloading] * @returns {Promise} * @memberof AppListService */ delete(action: string, context: any = {}, data: any = {}, isloading?: boolean): Promise { const { data: Data, context: Context } = this.handleRequestData(action, context, data, true); return new Promise((resolve: any, reject: any) => { const _appEntityService: any = this.appEntityService; let result: Promise; if (_appEntityService[action] && _appEntityService[action] instanceof Function) { result = _appEntityService[action](Context, Data, isloading); } else { result = _appEntityService.remove(Context, Data, isloading); } result .then(response => { this.handleResponse(action, response); resolve(response); }) .catch(response => { reject(response); }); }); } /** * 添加数据 * * @param {string} action * @param {*} [context={}] * @param {*} [data={}] * @param {boolean} [isloading] * @returns {Promise} * @memberof AppListService */ add(action: string, context: any = {}, data: any = {}, isloading?: boolean): Promise { const { data: Data, context: Context } = this.handleRequestData(action, context, data, true); return new Promise((resolve: any, reject: any) => { const _appEntityService: any = this.appEntityService; let result: Promise; if (_appEntityService[action] && _appEntityService[action] instanceof Function) { result = _appEntityService[action](Context, Data, isloading); } else { result = _appEntityService.Create(Context, Data, isloading); } result .then(response => { this.handleResponse(action, response); resolve(response); }) .catch(response => { reject(response); }); }); } /** * 修改数据 * * @param {string} action * @param {*} [context={}] * @param {*} [data={}] * @param {boolean} [isloading] * @returns {Promise} * @memberof AppListService */ update(action: string, context: any = {}, data: any = {}, isloading?: boolean): Promise { const { data: Data, context: Context } = this.handleRequestData(action, context, data, true); return new Promise((resolve: any, reject: any) => { const _appEntityService: any = this.appEntityService; let result: Promise; if (_appEntityService[action] && _appEntityService[action] instanceof Function) { result = _appEntityService[action](Context, Data, isloading); } else { result = _appEntityService.Update(Context, Data, isloading); } result .then(response => { this.handleResponse(action, response); resolve(response); }) .catch(response => { reject(response); }); }); } /** * 批量更新数据 * * @author zhanghengfeng * @date 2023-07-06 21:07:21 * @param {Record} context * @param {unknown[]} items * @return {*} */ async updateBatch(context: Record, items: unknown[]) { const result = await this.appEntityService.updateBatchLocal(context, items); return result; } }