DATAVIEW_VIEW.vue.ftl 6.4 KB
Newer Older
1 2 3 4 5

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

tony001's avatar
tony001 committed
6 7 8 9 10 11 12 13
<#assign import_block>
import CodeListService from "@service/app/codelist-service";
<#if view.getPSSysCounterRef?? && view.getPSSysCounterRef()?? && view.getPSSysCounterRef().getPSAppCounter()??>
<#assign appCounter = view.getPSSysCounterRef().getPSAppCounter() />
import  ${srfclassname('${appCounter.getCodeName()}')}CounterService  from '@/counter/${srffilepath2(appCounter.getCodeName())}/${srffilepath2(appCounter.getCodeName())}-counter';
</#if>
</#assign>

14 15 16 17
<#ibizinclude>
./VIEW_HEADER-BASE.vue.ftl
</#ibizinclude>

tony001's avatar
tony001 committed
18 19 20 21
<#assign mounted_block>
<#if view.isEnableQuickGroup()>_this.loadQuickGroupModel();</#if>
</#assign>

22 23 24 25 26 27 28 29 30 31
<#ibizinclude>
./VIEW_CONTENT-BASE.vue.ftl
</#ibizinclude>

<#if view.hasPSControl('dataview')>
<#assign dataview = view.getPSControl('dataview')>
    /**
     * 是否单选
     *
     * @type {boolean}
32
     * @memberof ${srfclassname('${view.name}')}Base
33 34 35 36 37 38 39 40
     */
    public isSingleSelect: boolean = ${dataview.isSingleSelect()?c};
</#if>

    /**
     * 视图唯一标识
     *
     * @type {string}
41
     * @memberof ${srfclassname('${view.name}')}Base
42 43 44 45 46 47 48
     */
    public viewUID: string = '${srffilepath2(view.getPSAppModule().getCodeName())}-${srffilepath2(view.getCodeName())}';

    /**
     * 搜索值
     *
     * @type {string}
49
     * @memberof ${srfclassname('${view.name}')}Base
50 51 52 53 54 55 56
     */
    public query: string = '';

    /**
     * 是否展开搜索表单
     *
     * @type {boolean}
57
     * @memberof ${srfclassname('${view.name}')}Base
58 59 60 61 62 63 64
     */
    public isExpandSearchForm: boolean = ${view.isExpandSearchForm()?c};

    /**
     * 快速搜索
     *
     * @param {*} $event
65
     * @memberof ${srfclassname('${view.name}')}Base
66 67 68 69 70 71 72 73
     */
    public onSearch($event: any): void {
        const refs: any = this.$refs;
        if (refs.dataview) {
            refs.dataview.refresh({});
        }
    }

tony001's avatar
tony001 committed
74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99
<#if view.getPSSysCounterRef?? && view.getPSSysCounterRef()?? && view.getPSSysCounterRef().getPSAppCounter()??>
    <#assign appCounter = view.getPSSysCounterRef().getPSAppCounter() />
    /**
     * ${srfclassname('${appCounter.getCodeName()}')}CounterService计数器服务对象
     *
     * @type {${srfclassname('${appCounter.getCodeName()}')}CounterService}
     * @memberof ${srfclassname('${view.name}')}Base
     */
    public ${srfclassname('${appCounter.getCodeName()}')}counterservice: ${srfclassname('${appCounter.getCodeName()}')}CounterService = new ${srfclassname('${appCounter.getCodeName()}')}CounterService({ $store: this.$store });
</#if>

<#if view.isEnableQuickGroup()>

    /**
     * 代码表服务对象
     *
     * @type {CodeListService}
     * @memberof ${srfclassname('${view.name}')}Base
     */  
    public codeListService:CodeListService = new CodeListService({ $store: this.$store });

    /**
     * 快速分组数据对象
     *
     * @memberof ${srfclassname('${view.name}')}Base
     */
100
    public quickGroupData:any;
tony001's avatar
tony001 committed
101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173

    /**
     * 快速分组是否有抛值
     *
     * @memberof ${srfclassname('${view.name}')}Base
     */
    public isEmitQuickGroupValue:boolean = false;

    /**
     * 快速分组模型
     *
     * @memberof ${srfclassname('${view.name}')}Base
     */
    public quickGroupModel:Array<any> = [];

    /**
     * 加载快速分组模型
     *
     * @memberof ${srfclassname('${view.name}')}Base
     */
    public loadQuickGroupModel(){
        <#if view.getQuickGroupPSCodeList()??>
        <#assign codelist=view.getQuickGroupPSCodeList() />
        let quickGroupCodeList:any = {tag:'${codelist.codeName}',codelistType:'${codelist.getCodeListType()}'};
        if(quickGroupCodeList.tag && Object.is(quickGroupCodeList.codelistType,"STATIC")){
            const codelist = this.$store.getters.getCodeList(quickGroupCodeList.tag);
            if (codelist) {
                this.quickGroupModel = [...this.handleDynamicData(JSON.parse(JSON.stringify(codelist.items)))];
            } else {
                <#noparse>console.log(`----${quickGroupCodeList.tag}----代码表不存在`);</#noparse>
            }
        }else if(quickGroupCodeList.tag && Object.is(quickGroupCodeList.codelistType,"DYNAMIC")){
            this.codeListService.getItems(quickGroupCodeList.tag,{},{}).then((res:any) => {
                this.quickGroupModel = res;
            }).catch((error:any) => {
                <#noparse>console.log(`----${quickGroupCodeList.tag}----代码表不存在`);</#noparse>
            });
        }
        </#if>
    }

    /**
     * 处理快速分组模型动态数据部分(%xxx%)
     *
     * @memberof ${srfclassname('${view.name}')}Base
     */
    public handleDynamicData(inputArray:Array<any>){
        if(inputArray.length >0){
            inputArray.forEach((item:any) =>{
               if(item.data && Object.keys(item.data).length >0){
                   Object.keys(item.data).forEach((name:any) =>{
                        let value: any = item.data[name];
                        if (value && typeof(value)=='string' && value.startsWith('%') && value.endsWith('%')) {
                            const key = (value.substring(1, value.length - 1)).toLowerCase();
                            if (this.context[key]) {
                                value = this.context[key];
                            } else if(this.viewparams[key]){
                                value = this.viewparams[key];
                            }
                        }
                        item.data[name] = value;
                   })
               }
            })
        }
        return inputArray;
    }

    /**
     * 快速分组值变化
     *
     * @memberof ${srfclassname('${view.name}')}Base
     */
174
    public quickGroupValueChange($event:any){
tony001's avatar
tony001 committed
175
        if($event && $event.data){
176
            this.quickGroupData = $event.data;
tony001's avatar
tony001 committed
177 178 179 180 181 182 183 184 185 186 187 188 189 190
            if(this.isEmitQuickGroupValue){
                this.onSearch($event);
            }
        }
        this.isEmitQuickGroupValue = true;
    }
</#if>
<#if view.getQuickPSDESearchForm()??>

    /**
     * 快速搜索栏数据对象
     *
     * @memberof ${srfclassname('${view.name}')}Base
     */
191
    public quickFormData:any;
tony001's avatar
tony001 committed
192 193 194 195 196 197

    /**
     * 快速搜索栏值变化
     *
     * @memberof ${srfclassname('${view.name}')}Base
     */
198 199
    public quickFormValueChange($event:any){
        this.quickFormData = $event;
tony001's avatar
tony001 committed
200 201 202 203
        this.onSearch($event);
    }
</#if>

204 205 206 207 208 209 210
<#ibizinclude>
./VIEW_BOTTOM-BASE.vue.ftl
</#ibizinclude>

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