<#--  BEGIN:获取父关系路由参数  -->
<#macro getDeResParameters currentView>
  <#if currentView.isPSDEView()>
    [
    <#if currentView.getPSAppDERSPathCount() gt 0>
      <#list currentView.getPSAppDERSPath(currentView.getPSAppDERSPathCount() - 1) as deRSPath>
      <#assign majorPSAppDataEntity = deRSPath.getMajorPSAppDataEntity()/>
        { pathName: '${srfpluralize(majorPSAppDataEntity.codeName)?lower_case}', parameterName: '${majorPSAppDataEntity.getCodeName()?lower_case}' }, 
      </#list>
    </#if>
    ]
  <#else>
    []
  </#if>
</#macro>
<#--  END:获取父关系路由参数  -->

<#--  BEGIN:获取视图本身路由参数  -->
<#macro getParameters currentView>
  [
  <#if currentView.isPSDEView()>
    <#assign appDataEntity = currentView.getPSAppDataEntity()/>
    { pathName: '${srfpluralize(appDataEntity.codeName)?lower_case}', parameterName: '${appDataEntity.getCodeName()?lower_case}' }, 
    { pathName: '${currentView.getPSDEViewCodeName()?lower_case}', parameterName: '${currentView.getPSDEViewCodeName()?lower_case}' } 
  <#else>
    { pathName: '${currentView.getCodeName()?lower_case}', parameterName: '${currentView.getCodeName()?lower_case}' } 
  </#if>
  ]
</#macro>
<#--  END:获取视图本身路由参数  -->

<#--  BEGIN:插入空格  -->
<#macro insertBlank num>
  <#assign blank_space = " " />
  <#list 1..num as i>
  ${blank_space}<#t>
  </#list>
</#macro>
<#--  END:插入空格  -->

<#--  BEGIN:表格列标题自定义绘制  -->
<#macro getColumnHeader item blankNum>
<@insertBlank blankNum /><template v-slot:header="{column}">
<@insertBlank blankNum />  <span class="column-header <#if item.getHeaderPSSysCss?? && item.getHeaderPSSysCss()??>${item.getHeaderPSSysCss().getCssName()}</#if>">
                         <#if item.getPSSysImage?? && item.getPSSysImage()??>
                           <#assign img=item.getPSSysImage()>
<@insertBlank blankNum />      <i class='<#if img.getCssClass?? && img.getCssClass()?? && (img.getCssClass()?length gt 0)>${img.getCssClass()}</#if>'></i>
                         </#if>
<@insertBlank blankNum />    {{<#if langbase??>$t('${langbase}.columns.${item.getName()?lower_case}')<#else>'${item.getCaption()}'</#if>}}
<@insertBlank blankNum />  </span>
<@insertBlank blankNum /></template>
</#macro>
<#--  END:表格列标题自定义绘制  -->
<#ibizinclude>
../@MACRO/CONTROL/LANGBASE.vue.ftl
</#ibizinclude>
<#ibizinclude>
../../@MACRO/LANG_FUN.ftl
</#ibizinclude>
<template v-if="getColumnState('${item.getName()?lower_case}')">
<#if item.getColumnType() == 'GROUPGRIDCOLUMN' && item.getPSDEGridColumns()??>
<#--  BEGIN:分组列  -->
    <el-table-column show-overflow-tooltip :align="'${item.getAlign()?lower_case}'" :label="<#if langbase??>$t('${langbase}.columns.${item.getName()?lower_case}')<#else>'${item.getCaption()}'</#if>">
    <@getColumnHeader item 4 />
    <#list item.getPSDEGridColumns() as column>
        ${P.getPartCode(column,'COLUMN').code}
    </#list>
    </el-table-column>
<#--  END:分组列  -->
<#elseif item.getColumnType() == 'UAGRIDCOLUMN'>
<#--  BEGIN:操作列  -->
    <el-table-column :column-key="'${item.getName()?lower_case}'" :label="<#if langbase??>$t('${langbase}.columns.${item.getName()?lower_case}')<#else>'${item.getCaption()}'</#if>"<#if item.getWidthUnit()!='STAR'> :width="${item.width?c}" <#else> :min-width="${item.width?c}" </#if> :align="'${item.getAlign()?lower_case}'">
        <@getColumnHeader item 8 />
        <template slot-scope="scope">
            <span>
  <#if item.getPSDEUIActionGroup().getPSDEUIActions()??>
    <#list item.getPSDEUIActionGroup().getPSUIActions() as uiaction>
                <#if uiaction_index gt 0><divider type='vertical'></divider></#if>
                <a @click="uiAction(scope.row, '${uiaction.getUIActionTag()}', $event)">
                  <i class='<#if uiaction.getIconCls?? && uiaction.getIconCls()??>${uiaction.getIconCls()}</#if>'></i>
                  {{<#if langbase??>$t('${langbase}.uiactions.${uiaction.getUIActionTag()?lower_case}')<#else>'${uiaction.getCaption()}'</#if>}}
                </a>
    </#list>
  </#if>
            </span>
        </template>
    </el-table-column>
<#--  END:操作列  -->
<#elseif item.getColumnType() == 'DEFGRIDCOLUMN'>
<#--  BEGIN:数据列  -->
    <el-table-column show-overflow-tooltip :prop="'${item.getName()?lower_case}'" :label="<#if langbase??>$t('${langbase}.columns.${item.getName()?lower_case}')<#else>'${item.getCaption()}'</#if>"<#if item.getWidthUnit()!='STAR'> :width="${item.width?c}" <#else> :min-width="${item.width?c}" </#if> :align="'${item.getAlign()?lower_case}'"<#if (!ctrl.isNoSort()) && item.isEnableSort()> :sortable="'custom'"</#if>>
        <@getColumnHeader item 8 />
        <template v-slot="{row,column,$index}">
        <#if (item.render??) || (item.getCodeList()?? && item.getCLConvertMode() == 'FRONT') || item.isEnableRowEdit()>
        <#--  BEGIN:列绘制、前端绘制代码表、行编辑  -->
            <#if (ctrl.isEnableRowEdit() && item.isEnableRowEdit())>
            <#--  BEGIN:行编辑  -->
              <#if (item.render??)>
              <#--  BEGIN:列绘制  -->
                    <span>${item.render.code}</span>
              <#--  END:列绘制  -->
              <#else>
            <template v-if="actualIsOpenEdit">
                <app-form-item :error="gridItemsModel[$index][column.property].error">
                    ${P.getEditorCode(item, "GRIDEIDTOR.vue").code}
                </app-form-item>
            </template>
              </#if>
            <#--  END:行编辑  -->
            </#if>
            <template <#if (ctrl.isEnableRowEdit() && item.isEnableRowEdit())>v-if="!actualIsOpenEdit"</#if>>
                <#if (item.render??)>
                <#--  BEGIN:列绘制  -->
                    <span>${item.render.code}</span>
                <#--  END:列绘制  -->
                <#elseif (item.getCodeList()?? && item.getCLConvertMode() == 'FRONT')>
                <#--  BEGIN:前端绘制代码表  --> 
                <#assign codelist = item.getPSCodeList()>
                <#if codelist.getCodeListType() == 'STATIC' || codelist.getCodeListType() == 'DYNAMIC'>
                    <codelist <#t>
                      :value="row.${item.getName()?lower_case}" <#t>
                      <#assign codelist=item.getPSCodeList() />
                      tag='${codelist.codeName}' <#t>
                      codelistType='${codelist.getCodeListType()}' <#t>
                    <#if codelist.getOrMode?? && codelist.getOrMode()?has_content>
                      renderMode="${codelist.getOrMode()}" <#t>
                    </#if>
                    <#if codelist.valueSeparator?has_content>
                      valueSeparator="${codelist.valueSeparator}" <#t>
                    </#if>
                    <#if codelist.textSeparator?has_content>
                      textSeparator="${codelist.textSeparator}" <#t>
                    </#if>><#t>
                    </codelist><#lt>
                </#if>
                <#--  END:前端绘制代码表  -->
                <#else>
                  <#if item.isEnableLinkView()>
                  <#-- 支持链接视图-->
                  <#if item.getLinkPSAppView()??>
                  <#assign dataview = item.getLinkPSAppView() />
                  <#assign appLinkView>
                    viewname: '${srffilepath2(dataview.getCodeName())}', height: ${dataview.getHeight()?c},width: ${dataview.getWidth()?c},title: <@getViewLanguageTitle dataview />,placement: '${dataview.getOpenMode()}', isRedirectView: <#if dataview.isRedirectView()>true<#else>false</#if>,deResParameters: <@getDeResParameters dataview />,parameters: <@getParameters dataview />
                  </#assign>
                  </#if>
                  <app-column-link deKeyField='<#if dataview.isPSDEView()>${dataview.getPSAppDataEntity().getCodeName()?lower_case}</#if>' :context="JSON.parse(JSON.stringify(context))" :viewparams="JSON.parse(JSON.stringify(viewparams))" :data="row" :linkview="{<#compress><#if appLinkView??>${appLinkView}</#if></#compress>}" valueitem="<#if item.getLinkValueItem()??>${item.getLinkValueItem()}</#if>">
                  <#--  BEGIN:常规显示  -->
                  <#if item.getPSDEGridEditItem()?? && item.getPSDEGridEditItem().getPSEditorType?? && item.getPSDEGridEditItem().getPSEditorType()??>
                    <app-span name='${item.name}' editorType="${item.getPSDEGridEditItem().getPSEditorType().getStandardPSEditorType()}" :value="row.${item.getName()?lower_case}"></app-span>
                  <#else>
                    <span>{{row.${item.getName()?lower_case}}}</span>
                  </#if>
                  </app-column-link>
                  <#else>
                  <#if item.getPSDEGridEditItem()?? && item.getPSDEGridEditItem().getPSEditorType?? && item.getPSDEGridEditItem().getPSEditorType()??>
                    <app-span name='${item.name}' editorType="${item.getPSDEGridEditItem().getPSEditorType().getStandardPSEditorType()}" :value="row.${item.getName()?lower_case}"></app-span>
                  <#else>
                  <#if item.getValueFormat()?? && item.getValueFormat() != "%1$s">
                    <app-format-data format="${item.getValueFormat()}" :data="row.${item.getName()?lower_case}"></app-format-data>
                  <#elseif item.getPSDEField?? && item.getPSDEField()?? && (item.getPSDEField().getDataType() == "DECIMAL" || item.getPSDEField().getDataType() == "FLOAT" || item.getPSDEField().getDataType() == "CURRENCY")>
                    <app-format-data dataType="${item.getPSDEField().getDataType()}" precision="${item.getPSDEField().getPrecision()}" :data="row.${item.getName()?lower_case}"></app-format-data>
                  <#else>
                    <span>{{row.${item.getName()?lower_case}}}</span>
                  </#if>
                  </#if>
                  </#if>
                <#--  END:常规显示  -->
                </#if>
            </template>
        <#--  END:列绘制、前端绘制代码表、行编辑  -->
        <#else>
            <#if item.isEnableLinkView()>
            <#-- 支持链接视图-->
            <#if item.getLinkPSAppView()??>
            <#assign dataview = item.getLinkPSAppView() />
            <#assign appLinkView>
            viewname: '${srffilepath2(dataview.getCodeName())}', height: ${dataview.getHeight()?c},width: ${dataview.getWidth()?c},title: <@getViewLanguageTitle dataview />,placement: '${dataview.getOpenMode()}', isRedirectView: <#if dataview.isRedirectView()>true<#else>false</#if>,deResParameters: <@getDeResParameters dataview />,parameters: <@getParameters dataview />
            </#assign>
            </#if>
            <app-column-link deKeyField='<#if dataview.isPSDEView()>${dataview.getPSAppDataEntity().getCodeName()?lower_case}</#if>' :context="JSON.parse(JSON.stringify(context))" :viewparams="JSON.parse(JSON.stringify(viewparams))" :data="row" :linkview="{<#compress><#if appLinkView??>${appLinkView}</#if></#compress>}" valueitem="<#if item.getLinkValueItem()??>${item.getLinkValueItem()}</#if>">
                <span>{{row.${item.getName()?lower_case}}}</span>
            </app-column-link >
            <#else>
            <#if item.getValueFormat()?? && item.getValueFormat() != "%1$s">
            <app-format-data format="${item.getValueFormat()}" :data="row.${item.getName()?lower_case}"></app-format-data>
            <#elseif item.getPSDEField?? && item.getPSDEField()?? && (item.getPSDEField().getDataType() == "DECIMAL" || item.getPSDEField().getDataType() == "FLOAT" || item.getPSDEField().getDataType() == "CURRENCY")>
                <app-format-data dataType="${item.getPSDEField().getDataType()}" precision="${item.getPSDEField().getPrecision()}" :data="row.${item.getName()?lower_case}"></app-format-data>
            <#else>
            <span>{{row.${item.getName()?lower_case}}}</span>
            </#if>
            </#if>
         </#if>
        </template>
    </el-table-column>
<#--  END:数据列  -->
</#if>
</template>