import { ModelTool, Util, MobMDCtrlViewInterface } from 'ibiz-core';
import { IPSDESearchForm, IPSSearchBar, IPSAppDEMultiDataView, IPSAppCodeList, IPSCodeItem, IPSAppDEField, IPSDEMobMDCtrl, IPSDEListItem, IPSDEListDataItem, IPSAppDataEntity } from '@ibiz/dynamic-model-api';
import { MainViewBase } from "./main-view-base";
/**
* 多数据视图基类
*
* @export
* @class MDViewBase
* @extends {MainViewBase}
*/
export class MDViewBase extends MainViewBase implements MobMDCtrlViewInterface {
/**
* 视图实例
*
* @memberof MDViewBase
*/
public declare viewInstance: any;
/**
* 多数据部件是否单选
*
* @type {boolean}
* @memberof MDViewBase
*/
public isSingleSelect?: boolean;
/**
* 搜索参数
*
* @memberof MDViewBase
*/
public queryParams = {
// 快速搜索
query: '',
// 快速分组数据对象
quickGroupData: {},
// 分类值
categoryValue: {},
// 排序值
sortValue: {}
}
/**
* 快速分组相关参数
*
* @type {*}
* @memberof MDViewBase
*/
public quickGroupParam: any = {
// 是否启用快速分组
isEnableQuickGroup: false,
// 快速分组是否有抛值
isEmitQuickGroupValue: false,
// 快速分组代码表
quickGroupCodeList: null,
}
/**
* 排序相关参数
*
* @memberof MDViewBase
*/
public sortParam = {
// 排序缓存
sortCache: { asc: "", desc: "" },
// 点击优先级加主题色
active: false
}
/**
* 搜索表单实例
*
* @type {IBizMobSearchFormModel}
* @memberof MDViewBase
*/
public searchFormInstance !: IPSDESearchForm;
/**
* 快速搜索表单实例
*
* @type {IBizMobSearchFormModel}
* @memberof MDViewBase
*/
public quickSearchFormInstance !: IPSDESearchForm;
/**
* 搜索栏实例
*
* @type {IBizSearchBarModel}
* @memberof MDViewBase
*/
public searchBarInstance!: IPSSearchBar;
/**
* 是否展开搜索表单
*
* @type {boolean}
* @memberof MDViewBase
*/
public isExpandSearchForm: boolean = false;
/**
* 部件计数
*
* @memberof MDViewBase
*/
public pageTotal: number = 0;
/**
* 视图实体对象
*
* @memberof MobMDViewBase
*/
get appDataEntity(){
return (this.viewInstance?.getPSAppDataEntity() as IPSAppDataEntity);
}
/**
* 初始化多数据视图实例
*
* @param opts
* @memberof MDViewBase
*/
public async viewModelInit() {
await super.viewModelInit();
this.searchFormInstance = ModelTool.findPSControlByName('searchform', this.viewInstance.getPSControls() || []) as IPSDESearchForm;
this.quickSearchFormInstance = ModelTool.findPSControlByName('quicksearchform', this.viewInstance.getPSControls() || []) as IPSDESearchForm;
this.searchBarInstance = ModelTool.findPSControlByType('SEARCHBAR', this.viewInstance.getPSControls() || []) as IPSSearchBar;
this.quickGroupParam.isEnableQuickGroup = this.viewInstance?.enableQuickGroup;
this.quickGroupParam.quickGroupCodeList = (this.viewInstance as IPSAppDEMultiDataView).getQuickGroupPSCodeList();
}
/**
* 多数据视图初始化
*
* @memberof MDViewBase
*/
public async viewInit() {
super.viewInit();
// 初始化属性值
this.queryParams.query = '';
this.quickGroupParam.isEnableQuickGroup = this.viewInstance?.enableQuickGroup;
}
/**
* 渲染快速搜索
*
* @memberof MDViewBase
*/
public renderQuickSearch() {
if (!this.viewInstance.enableQuickSearch) {
return;
}
return this.model && this.enableControlUIAuth ?