<#ibizinclude>
../@MACRO/LAYOUTPANEL_VIEW.template.ftl
</#ibizinclude>

<#ibizinclude>
../@MACRO/VIEW_HEADER-BASE.vue.ftl
</#ibizinclude>

<#ibizinclude>
../@MACRO/VIEW_CONTENT-BASE.vue.ftl
</#ibizinclude>
<#if view.hasPSControl('searchform')>
<#assign searchform = view.getPSControl('searchform')>

    /**
     * 搜索表单状态
     *
     * @type {boolean}
     * @memberof ${srfclassname('${view.name}')}Base
     */
    public searchformState: boolean = false;

    /**
     * 是否展开搜索表单
     *
     * @type {boolean}
     * @memberof ${srfclassname('${view.name}')}Base
     */
    public isExpandSearchForm: boolean = false;

    /**
     * 执行搜索表单
     *
     * @memberof ${srfclassname('${view.name}')}Base
     */
    public onSearch(): void {
        this.searchformState = false;
        this.isExpandSearchForm = true;
        const form: any = this.$refs.${searchform.name};
        if (form) {
            form.onSearch();
        }
        this.closeSearchform();
    }

    /**
     * 重置搜索表单
     *
     * @memberof ${srfclassname('${view.name}')}Base
     */
    public onReset(): void {
        this.searchformState = false;
        this.isExpandSearchForm = false;
        const form: any = this.$refs.${searchform.name};
        if (form) {
            form.onReset();
        }
        this.closeSearchform();
    }
</#if>
<#--  输出快速搜索:BEGIN  -->
<#if view.isEnableQuickSearch?? && view.isEnableQuickSearch() == true>

    /**
     * 搜索值
     *
     * @type {string}
     * @memberof ${srfclassname('${view.name}')}Base
     */
    public query: string = '';

    /**
     * 快速搜索值变化
     *
     * @param {*} event
     * @returns
     * @memberof ${srfclassname('${view.name}')}Base
     */
    public async quickValueChange(event: any) {
        let { detail } = event;
        if (!detail) {
            return;
        }
        let { value } = detail;
        this.query = value;

        const mdctrl: any = this.$refs.mdctrl;
        if (mdctrl) {
            let response = await mdctrl.quickSearch(this.query);
            if (response) {
                <#--  console.log(1231231231);  -->
            }
        }
    }
</#if>
<#--  输出快速搜索:END  -->

   /**
     * 是否单选
     *
     * @type {boolean}
     * @memberof ${srfclassname('${view.name}')}Base
     */
    @Prop({ default: true }) protected isSingleSelect!: boolean;
<#if view.getPSViewType().getId() == 'DEMOBMDVIEW' && view.hasPSControl('mdctrl')>
<#assign mdctrl = view.getPSControl('mdctrl')>
    <#if !mdctrl.isNoSort()>
        <#assign state = false />
        <#list mdctrl.getPSListItems() as item>
            <#if item.isEnableSort()>
            <#assign state = true/>
            <#break>
            </#if>
        </#list>
        <#if state>

    /**
     * 排序对象
     *
     * @type {*}
     * @memberof ${srfclassname('${view.name}')}Base
     */
    public sort: any = { asc: "", desc: "" };

    /**
     * 分类参数
     *
     * @type {*}
     * @memberof ${srfclassname('${view.name}')}Base
     */
    public queryparam:any = {};

    /**
     * 排序
     *
     * @param {*} field
     * @memberof ${srfclassname('${view.name}')}Base
     */
    public setSort(field: any) {
        if (this.sort.desc == field) {
            this.sort.desc = "";
            this.viewState.next({ tag: 'mdctrl', action: 'load', data: {} });
            return
        }
        if (this.sort.asc == field) {
            this.sort.asc = "";
            this.sort.desc = field;
            this.viewState.next({ tag: 'mdctrl', action: 'load', data: { sort: field + ",desc" } });
        } else {
            this.sort.asc = field;
            this.sort.desc = "";
            this.viewState.next({ tag: 'mdctrl', action: 'load', data: { sort: field + ",asc" } });
        }
    }


    /**
     * 分类搜索
     *
     * @param {*} value
     * @memberof ${srfclassname('${view.name}')}Base
     */
    public setQueryparam(value:any){
        this.queryparam[value.srcElement.name]= value.detail.value;
        let sortvalue :any ="";
        if (this.sort.desc != "") {
            sortvalue = this.sort.desc + ",desc";
            
        }
        if (this.sort.asc != "") {
            sortvalue = this.sort.asc + ",asc";
        }
        this.viewState.next({ tag: 'mdctrl', action: 'load', data: { sort: sortvalue,...this.queryparam} });
    }

        </#if>
    </#if>
</#if>

    /**
     * 刷新视图
     *
     * @memberof ${srfclassname('${view.name}')}Base
     */
    public onRefreshView() {
        let mdctrl: any = this.$refs.mdctrl;
        if (mdctrl) {
            mdctrl.refresh();
        }
    }

    /**
     * 打开搜索表单
     *
     * @memberof ${srfclassname('${view.name}')}Base
     */
    public openSearchform() {
      let search :any = this.$refs.searchform<#if view.getName()??>${view.getName()?lower_case}</#if>;
      if(search){
          search.open();
      }
    }

    /**
     * 关闭搜索表单
     *
     * @memberof ${srfclassname('${view.name}')}Base
     */
    public closeSearchform(){
      let search :any = this.$refs.searchform<#if view.getName()??>${view.getName()?lower_case}</#if>;
      if(search){
          search.close();
      }
    }

    /**
     * 多选状态改变事件
     *
     * @memberof ${srfclassname('${view.name}')}Base
     */
    public showCheackChange(value:any){
        this.showCheack = value;
    }

    /**
     * 多选状态
     *
     * @memberof ${srfclassname('${view.name}')}Base
     */
    public showCheack = false;

    /**
     * 取消选择状态
     * @memberof ${srfclassname('${view.name}')}Base
     */
    public cancelSelect() {
        this.showCheackChange(false);
    }

    <#if view.hasPSControl('mdctrl')>
    <#assign mdctrl = view.getPSControl('mdctrl')>
    <#if mdctrl.getBatchPSDEToolbar?? && mdctrl.getBatchPSDEToolbar()??>
    <#assign batchToolbar = mdctrl.getBatchPSDEToolbar()>
    public <#if batchToolbar.getName()??> ${batchToolbar.getName()}_click</#if>(tag:string,event:any) {
       let mdctrl: any = this.$refs.mdctrl;
        if(mdctrl && mdctrl.<#if batchToolbar.getName()??> ${batchToolbar.getName()}_click</#if> instanceof Function){
            mdctrl.<#if batchToolbar.getName()??> ${batchToolbar.getName()}_click</#if>(tag,event);
        }
    }
    </#if>
    </#if>

<#ibizinclude>
../@MACRO/VIEW_BOTTOM-BASE.vue.ftl
</#ibizinclude>

<#ibizinclude>
../@MACRO/VIEW-BASE.style.ftl
</#ibizinclude>