import { UILogicParamType } from "@/logic/const/ui-logic-param-type"; import { UILogicParamBase } from "./ui-logic-param-base"; /** * 逻辑数据对象列表参数 * * @export * @class AppDeUILogicEntityListParam */ export class AppDeUILogicEntityListParam extends UILogicParamBase { /** * Creates an instance of AppDeUILogicEntityListParam. * @param {*} opts * @memberof AppDeUILogicEntityListParam */ public constructor(opts: any) { super(opts); } /** * 初始化 * * @protected * @memberof AppDeUILogicEntityListParam */ protected init(params: any) { this.setReal(this.getDefaultValue(params, [])); this.logicParamType = UILogicParamType.entityListParam; } /** * 重置全部 * * @memberof AppDeUILogicEntityListParam */ public resetAll() { this.realValue = []; } /** * 绑定指定参数对象 * * @param {*} opts * @memberof AppDeUILogicEntityListParam */ public bind(opts: any) { if (Object.prototype.toString.call(opts) !== '[object Array]') { throw new Error(`逻辑参数${this.strCodeName}无法绑定非数组类型参数`); } this.setReal(opts); } /** * 重新建立参数对象 * * @memberof AppDeUILogicEntityListParam */ public renew() { this.realValue = []; } /** * 获取指定属性值 * * @param {string} strName * @memberof AppDeUILogicEntityListParam */ public get(strName: string) { if (Object.prototype.toString.call(this.realValue) !== '[object Array]') { throw new Error(`逻辑参数${this.strCodeName}非对象类型参数无法执行获取指定属性值`); } if (!isNaN(Number(strName))) { return this.realValue[Number(strName)]; } throw new Error(`逻辑参数${this.strCodeName}对象列表类型参数无法获取非数值下标属性`); } /** * 设置指定属性值 * * @param {string} strName * @param {*} value * @memberof AppDeUILogicEntityListParam */ public set(strName: string, value: any) { if (Object.prototype.toString.call(this.realValue) !== '[object Array]') { throw new Error(`逻辑参数${this.strCodeName}无法执行绑定非对象列表类型参数`); } if (isNaN(Number(strName))) { throw new Error(`逻辑参数${this.strCodeName}对象列表类型参数无法执行绑定到非数值下标`); } this.realValue[Number(strName)] = value; } }