<div class="view-container ${view.getViewType()?lower_case} ${srffilepath2(view.getCodeName())}<#if view.getPSSysCss?? && view.getPSSysCss()??> ${view.getPSSysCss().getCssName()}</#if>"> <app-studioaction :viewTitle="$t(model.srfCaption)" viewName="${view.getCodeName()?lower_case}"></app-studioaction> <card class='view-card <#if !view.isShowCaptionBar()> view-no-caption</#if> <#if !view.hasPSControl('toolbar')> view-no-toolbar</#if>' :disHover="true" :padding="0" :bordered="false"> <#ibizinclude> ../@MACRO/VIEW_CAPTION.vue.ftl </#ibizinclude> <div slot="extra"> <div class='toolbar-container'> <tooltip :transfer="true" :max-width="600" v-for="(linkItem, index) in linkModel" :key="index"> <i-button :disabled="linkItem.disabled" @click="dynamic_toolbar_click(linkItem, $event)"> <span class='caption'>{{linkItem.sequenceFlowName}}</span> </i-button> <div slot='content'>{{linkItem.sequenceFlowName}}</div> </tooltip> </div> </div> <split id="${view.getCodeName()?lower_case}" v-model="split" mode="horizontal"> <div slot='left'> <el-tree ref="tree" :data="wfStepModel" node-key="userTaskId" :highlight-current="true" :props="defaultProps" @node-click="handleNodeClick"> <span class="custom-tree-node" slot-scope="{ node, data }"> <span class="tree-node-label">{{data.userTaskName}}</span> <span class="tree-node-count"><badge :count="data.cnt"></badge></span> </span> </el-tree> </div> <div slot="right"> <div class="content-container"> <#if view.hasPSControl('searchform')> ${P.getCtrlCode('searchform', 'CONTROL.html').code} </#if> <#if view.hasPSControl('grid')> ${P.getCtrlCode('grid', 'CONTROL.html').code} </#if> </div> </div> </split> </card> </div>