<#ibizinclude> ../@MACRO/LAYOUTPANEL_VIEW.template.ftl </#ibizinclude> <#assign watch_viewparam_block> if(this.viewparams.selectedData){ this.selectedData = JSON.stringify(this.viewparams.selectedData); } </#assign> <#ibizinclude> ../@MACRO/VIEW_HEADER-BASE.vue.ftl </#ibizinclude> <#assign mounted_block> if(this.viewparams.selectedData){ this.engine.onCtrlEvent('pickupviewpanel', 'selectionchange', this.viewparams.selectedData); this.onCLickRight(); } </#assign> <#ibizinclude> ../@MACRO/VIEW_CONTENT-BASE.vue.ftl </#ibizinclude> /** * 是否显示按钮 * * @type {boolean} * @memberof ${srfclassname('${view.name}')} */ @Prop({default: true}) public isShowButton!: boolean; /** * 选中数据的字符串 * * @type {string} * @memberof ${srfclassname('${view.name}')} */ public selectedData: string = ""; /** * 是否初始化已选中项 * * @type {any[]} * @memberof ${srfclassname('${view.name}')} */ public isInitSelected:boolean = false; /** * 视图选中数据 * * @type {any[]} * @memberof ${srfclassname('${view.name}')} */ public viewSelections:any[] = []; /** * 是否单选 * * @type {boolean} * @memberof ${srfclassname('${view.name}')} */ public isSingleSelect: boolean = false; /** * 选中数据单击 * * @param {*} item * @memberof ${srfclassname('${view.name}')} */ public selectionsClick(item:any):void { item._select = !item._select; const removeSelect: boolean = this.viewSelections.some((selection: any) => selection._select); this.containerModel.view_leftbtn.disabled = !removeSelect; } /** * 选中树双击 * * @param {*} item * @memberof ${srfclassname('${view.name}')} */ public selectionsDBLClick(item:any):void { const index: number = this.viewSelections.findIndex((selection: any) => Object.is(selection.srfkey, item.srfkey)); if (index !== -1) { this.viewSelections.splice(index, 1); } const removeSelect: boolean = this.viewSelections.some((selection: any) => selection._select); this.containerModel.view_leftbtn.disabled = !removeSelect; this.selectedData = JSON.stringify(this.viewSelections); } /** * 删除右侧全部选中数据 * * @memberof ${srfclassname('${view.name}')} */ public onCLickLeft():void { const _selectiions = [...JSON.parse(JSON.stringify(this.viewSelections))]; _selectiions.forEach((item: any) => { if (!item._select) { return; } const index = this.viewSelections.findIndex((selection: any) => Object.is(item.srfkey, selection.srfkey)); if (index !== -1) { this.viewSelections.splice(index, 1); } }); const removeSelect: boolean = this.viewSelections.some((selection: any) => selection._select); this.containerModel.view_leftbtn.disabled = !removeSelect; this.selectedData = JSON.stringify(this.viewSelections); } /** * 添加左侧选中数据 * * @memberof ${srfclassname('${view.name}')} */ public onCLickRight():void { Object.values(this.containerModel).forEach((model: any) => { if (!Object.is(model.type, 'PICKUPVIEWPANEL')) { return; } let newSelections:any[] = []; model.selections.forEach((item: any) => { const index: number = this.viewSelections.findIndex((selection: any) => Object.is(item.srfkey, selection.srfkey)); if (index === -1) { let _item: any = { ...JSON.parse(JSON.stringify(item)) }; Object.assign(_item, { _select: false }) newSelections.push(_item); }else{ newSelections.push(this.viewSelections[index]); } }); this.viewSelections = newSelections; }); } /** * 选中数据全部删除 * * @memberof ${srfclassname('${view.name}')} */ public onCLickAllLeft():void { this.viewSelections = []; this.containerModel.view_leftbtn.disabled = true; this.selectedData = JSON.stringify(this.viewSelections); } /** * 添加左侧面板所有数据到右侧 * * @memberof ${srfclassname('${view.name}')} */ public onCLickAllRight():void { Object.values(this.containerModel).forEach((model: any) => { if (!Object.is(model.type, 'PICKUPVIEWPANEL')) { return; } if(model.datas.length>0){ model.datas.forEach((data:any,index:any)=>{ Object.assign(data,{srfmajortext: data['${view.getPSAppDataEntity().getMajorPSAppDEField().getCodeName()?lower_case}']}); }) } model.datas.forEach((item: any) => { const index: number = this.viewSelections.findIndex((selection: any) => Object.is(item.srfkey, selection.srfkey)); if (index === -1) { let _item: any = { ...JSON.parse(JSON.stringify(item)) }; Object.assign(_item, { _select: false }) this.viewSelections.push(_item); } }); }); } /** * 确定 * * @memberof ${srfclassname('${view.name}')} */ public onClickOk(): void { this.$emit('viewdataschange', this.viewSelections); this.$emit('close', null); } /** * 取消 * * @memberof ${srfclassname('${view.name}')} */ public onClickCancel(): void { this.$emit('close', null); } <#ibizinclude> ../@MACRO/VIEW_BOTTOM-BASE.vue.ftl </#ibizinclude> <#ibizinclude> ../@MACRO/VIEW-BASE.style.ftl </#ibizinclude>