提交 f7a0a322 编写于 作者: tony001's avatar tony001

Merge branch 'dev'

...@@ -40,10 +40,10 @@ ...@@ -40,10 +40,10 @@
<span class="date">{{ item.srfdate }}</span> <span class="date">{{ item.srfdate }}</span>
</div> </div>
<div class="app-list-item-action"> <div class="app-list-item-action">
<template v-for="(action,index) in Object.keys(ActionModel)"> <template v-for="(action,index) in Object.keys(actionModel)">
<a :key="index" style="display: inline-block;margin: 0 12px;" @click="uiAction(item, action, $event)"> <a :key="index" style="display: inline-block;margin: 0 12px;" @click="uiAction(item, action, $event)">
<i :class="ActionModel[action].icon" style="margin-right:2px;"></i> <i :class="actionModel[action].icon" style="margin-right:2px;"></i>
<span>{{ActionModel[action].caption}}</span> <span>{{actionModel[action].caption}}</span>
</a> </a>
</template> </template>
</div> </div>
...@@ -67,10 +67,10 @@ ...@@ -67,10 +67,10 @@
<#else> <#else>
<div class="app-list-item-content">{{item.srfmajortext}}</div> <div class="app-list-item-content">{{item.srfmajortext}}</div>
<div calss="app-list-item-action"> <div calss="app-list-item-action">
<template v-for="(action,index) in Object.keys(ActionModel)"> <template v-for="(action,index) in Object.keys(actionModel)">
<a :key="index" style="display: inline-block;margin: 0 12px;" @click="uiAction(item, action, $event)"> <a :key="index" style="display: inline-block;margin: 0 12px;" @click="uiAction(item, action, $event)">
<i :class="ActionModel[action].icon" style="margin-right:2px;"></i> <i :class="actionModel[action].icon" style="margin-right:2px;"></i>
<span>{{ActionModel[action].caption}}</span> <span>{{actionModel[action].caption}}</span>
</a> </a>
</template> </template>
</div> </div>
...@@ -238,12 +238,12 @@ import CodeListService from "@/codelist/codelist-service"; ...@@ -238,12 +238,12 @@ import CodeListService from "@/codelist/codelist-service";
public groupField: string = "<#if ctrl.getGroupPSDEField?? && ctrl.getGroupPSDEField()??>${ctrl.getGroupPSDEField().getCodeName()?lower_case}</#if>"; public groupField: string = "<#if ctrl.getGroupPSDEField?? && ctrl.getGroupPSDEField()??>${ctrl.getGroupPSDEField().getCodeName()?lower_case}</#if>";
/** /**
* 分组属性代码表 * 分组属性是否配置代码表
* *
* @type {string} * @type {string}
* @memberof ${srfclassname('${ctrl.codeName}')}Base * @memberof ${srfclassname('${ctrl.codeName}')}Base
*/ */
public groupFieldCodelist: any = {<#if ctrl.getGroupPSDEField()?? && ctrl.getGroupPSDEField().getPSCodeList?? && ctrl.getGroupPSDEField().getPSCodeList()??>type: '${ctrl.getGroupPSDEField().getPSCodeList().getCodeListType()}',tag: '${ctrl.getGroupPSDEField().getPSCodeList().getCodeName()}'</#if>}; public groupFieldCodelist: boolean = <#if ctrl.getGroupPSDEField()?? && ctrl.getGroupPSDEField().getPSCodeList?? && ctrl.getGroupPSDEField().getPSCodeList()??>true<#else>false</#if>;
/** /**
* 分组数据 * 分组数据
...@@ -301,22 +301,17 @@ import CodeListService from "@/codelist/codelist-service"; ...@@ -301,22 +301,17 @@ import CodeListService from "@/codelist/codelist-service";
groups = Util.deepCopy(groupCodelist); groups = Util.deepCopy(groupCodelist);
} }
if(Object.keys(this.groupFieldCodelist).length > 0){
let fieldCodelist: any = await this.codeListService.getDataItems(this.groupFieldCodelist);
fields = Util.deepCopy(fieldCodelist);
}
if(groups.length == 0){ if(groups.length == 0){
console.warn("分组数据无效"); console.warn("分组数据无效");
} }
groups.forEach((group: any,i: number)=>{ groups.forEach((group: any,i: number)=>{
let children:Array<any> = []; let children:Array<any> = [];
data.forEach((item: any,j: number)=>{ data.forEach((item: any,j: number)=>{
if(fields && fields.length > 0){ if(this.groupFieldCodelist){
const arr:Array<any> = fields.filter((field:any)=>{return field.value == item[this.groupField]}); if(Object.is(group.label,item[this.groupField])) {
if(arr && arr.length>0 && Object.is(group.label,arr[0].label)) {
children.push(item); children.push(item);
} }
}else if(Object.is(group.label,item[this.groupField])){ }else if(Object.is(group.value,item[this.groupField])){
children.push(item); children.push(item);
} }
}); });
...@@ -329,13 +324,10 @@ import CodeListService from "@/codelist/codelist-service"; ...@@ -329,13 +324,10 @@ import CodeListService from "@/codelist/codelist-service";
let child:Array<any> = []; let child:Array<any> = [];
data.forEach((item: any)=>{ data.forEach((item: any)=>{
let i: number = 0; let i: number = 0;
if(fields && fields.length > 0){ if(this.groupFieldCodelist){
const arr:Array<any> = fields.filter((field:any)=>{return field.value == item[this.groupField]});
if(arr && arr.length>0) {
i = groups.findIndex((group: any)=>Object.is(group.label,arr[0].label));
}
}else{
i = groups.findIndex((group: any)=>Object.is(group.label,item[this.groupField])); i = groups.findIndex((group: any)=>Object.is(group.label,item[this.groupField]));
}else{
i = groups.findIndex((group: any)=>Object.is(group.value,item[this.groupField]));
} }
if(i < 0){ if(i < 0){
child.push(item); child.push(item);
...@@ -362,19 +354,10 @@ import CodeListService from "@/codelist/codelist-service"; ...@@ -362,19 +354,10 @@ import CodeListService from "@/codelist/codelist-service";
let data:Array<any> = [...this.items]; let data:Array<any> = [...this.items];
let groups:Array<any> = []; let groups:Array<any> = [];
let fields: Array<any> = []; let fields: Array<any> = [];
if(Object.keys(this.groupFieldCodelist).length > 0){
let fieldCodelist: any = await this.codeListService.getDataItems(this.groupFieldCodelist);
fields = Util.deepCopy(fieldCodelist);
}
data.forEach((item: any)=>{ data.forEach((item: any)=>{
if(item.hasOwnProperty(this.groupField)){ if(item.hasOwnProperty(this.groupField)){
if(fields && fields.length > 0){
const arr:Array<any> = fields.filter((field:any)=>{return field.value == item[this.groupField]});
groups.push(arr[0].label);
}else{
groups.push(item[this.groupField]); groups.push(item[this.groupField]);
} }
}
}); });
groups = [...new Set(groups)]; groups = [...new Set(groups)];
if(groups.length == 0){ if(groups.length == 0){
...@@ -941,7 +924,7 @@ import CodeListService from "@/codelist/codelist-service"; ...@@ -941,7 +924,7 @@ import CodeListService from "@/codelist/codelist-service";
* @type {*} * @type {*}
* @memberof ${srfclassname('${ctrl.codeName}')}Base * @memberof ${srfclassname('${ctrl.codeName}')}Base
*/ */
public ActionModel:any ={ public actionModel:any ={
<#if ctrl.getPSDEListItems?? && ctrl.getPSDEListItems()??> <#if ctrl.getPSDEListItems?? && ctrl.getPSDEListItems()??>
<#list ctrl.getPSDEListItems() as listItem> <#list ctrl.getPSDEListItems() as listItem>
<#if listItem.getPSDEUIActionGroup?? && listItem.getPSDEUIActionGroup()??> <#if listItem.getPSDEUIActionGroup?? && listItem.getPSDEUIActionGroup()??>
......
...@@ -46,10 +46,10 @@ ...@@ -46,10 +46,10 @@
</div> </div>
</div> </div>
<div class="data-view-item-action"> <div class="data-view-item-action">
<template v-for="(action,index) in Object.keys(ActionModel)"> <template v-for="(action,index) in Object.keys(actionModel)">
<button type="info" :key="index" @click="uiAction(item, action, $event)"> <button type="info" :key="index" @click="uiAction(item, action, $event)">
<i :class="ActionModel[action].icon" style="margin-right:2px;"></i> <i :class="actionModel[action].icon" style="margin-right:2px;"></i>
<span>{{ActionModel[action].caption}}</span> <span>{{actionModel[action].caption}}</span>
</button> </button>
</template> </template>
</div> </div>
...@@ -85,10 +85,10 @@ ...@@ -85,10 +85,10 @@
</div> </div>
</div> </div>
<div class="data-view-item-action"> <div class="data-view-item-action">
<template v-for="(action,index) in Object.keys(ActionModel)"> <template v-for="(action,index) in Object.keys(actionModel)">
<button type="info" :key="index" @click="uiAction(item, action, $event)"> <button type="info" :key="index" @click="uiAction(item, action, $event)">
<i :class="ActionModel[action].icon" style="margin-right:2px;"></i> <i :class="actionModel[action].icon" style="margin-right:2px;"></i>
<span>{{ActionModel[action].caption}}</span> <span>{{actionModel[action].caption}}</span>
</button> </button>
</template> </template>
</div> </div>
...@@ -258,12 +258,12 @@ import CodeListService from "@/codelist/codelist-service"; ...@@ -258,12 +258,12 @@ import CodeListService from "@/codelist/codelist-service";
public groupField: string = "<#if ctrl.getGroupPSDEField?? && ctrl.getGroupPSDEField()??>${ctrl.getGroupPSDEField().getCodeName()?lower_case}</#if>"; public groupField: string = "<#if ctrl.getGroupPSDEField?? && ctrl.getGroupPSDEField()??>${ctrl.getGroupPSDEField().getCodeName()?lower_case}</#if>";
/** /**
* 分组属性代码表 * 分组属性是否配置代码表
* *
* @type {string} * @type {string}
* @memberof ${srfclassname('${ctrl.codeName}')}Base * @memberof ${srfclassname('${ctrl.codeName}')}Base
*/ */
public groupFieldCodelist: any = {<#if ctrl.getGroupPSDEField()?? && ctrl.getGroupPSDEField().getPSCodeList?? && ctrl.getGroupPSDEField().getPSCodeList()??>type: '${ctrl.getGroupPSDEField().getPSCodeList().getCodeListType()}',tag: '${ctrl.getGroupPSDEField().getPSCodeList().getCodeName()}'</#if>}; public groupFieldCodelist: boolean = <#if ctrl.getGroupPSDEField()?? && ctrl.getGroupPSDEField().getPSCodeList?? && ctrl.getGroupPSDEField().getPSCodeList()??>true<#else>false</#if>;
/** /**
* 分组数据 * 分组数据
...@@ -358,11 +358,6 @@ import CodeListService from "@/codelist/codelist-service"; ...@@ -358,11 +358,6 @@ import CodeListService from "@/codelist/codelist-service";
if(Object.keys(this.groupCodelist).length > 0){ if(Object.keys(this.groupCodelist).length > 0){
let groupCodelist: any = await this.codeListService.getDataItems(this.groupCodelist); let groupCodelist: any = await this.codeListService.getDataItems(this.groupCodelist);
groups = Util.deepCopy(groupCodelist); groups = Util.deepCopy(groupCodelist);
}
if(Object.keys(this.groupFieldCodelist).length > 0){
let fieldCodelist: any = await this.codeListService.getDataItems(this.groupFieldCodelist);
fields = Util.deepCopy(fieldCodelist);
} }
if(groups.length == 0){ if(groups.length == 0){
console.warn("分组数据无效"); console.warn("分组数据无效");
...@@ -370,12 +365,11 @@ import CodeListService from "@/codelist/codelist-service"; ...@@ -370,12 +365,11 @@ import CodeListService from "@/codelist/codelist-service";
groups.forEach((group: any,i: number)=>{ groups.forEach((group: any,i: number)=>{
let children:Array<any> = []; let children:Array<any> = [];
data.forEach((item: any,j: number)=>{ data.forEach((item: any,j: number)=>{
if(fields && fields.length > 0){ if(this.groupFieldCodelist){
const arr:Array<any> = fields.filter((field:any)=>{return field.value == item[this.groupField]}); if(Object.is(group.label,item[this.groupField])) {
if(arr && arr.length>0 && Object.is(group.label,arr[0].label)) {
children.push(item); children.push(item);
} }
}else if(Object.is(group.label,item[this.groupField])){ }else if(Object.is(group.value,item[this.groupField])){
children.push(item); children.push(item);
} }
}); });
...@@ -388,13 +382,10 @@ import CodeListService from "@/codelist/codelist-service"; ...@@ -388,13 +382,10 @@ import CodeListService from "@/codelist/codelist-service";
let child:Array<any> = []; let child:Array<any> = [];
data.forEach((item: any)=>{ data.forEach((item: any)=>{
let i: number = 0; let i: number = 0;
if(fields && fields.length > 0){ if(this.groupFieldCodelist){
const arr:Array<any> = fields.filter((field:any)=>{return field.value == item[this.groupField]});
if(arr && arr.length>0) {
i = groups.findIndex((group: any)=>Object.is(group.label,arr[0].label));
}
}else{
i = groups.findIndex((group: any)=>Object.is(group.label,item[this.groupField])); i = groups.findIndex((group: any)=>Object.is(group.label,item[this.groupField]));
}else{
i = groups.findIndex((group: any)=>Object.is(group.value,item[this.groupField]));
} }
if(i < 0){ if(i < 0){
child.push(item); child.push(item);
...@@ -421,19 +412,10 @@ import CodeListService from "@/codelist/codelist-service"; ...@@ -421,19 +412,10 @@ import CodeListService from "@/codelist/codelist-service";
let data:Array<any> = [...this.items]; let data:Array<any> = [...this.items];
let groups:Array<any> = []; let groups:Array<any> = [];
let fields: Array<any> = []; let fields: Array<any> = [];
if(Object.keys(this.groupFieldCodelist).length > 0){
let fieldCodelist: any = await this.codeListService.getDataItems(this.groupFieldCodelist);
fields = Util.deepCopy(fieldCodelist);
}
data.forEach((item: any)=>{ data.forEach((item: any)=>{
if(item.hasOwnProperty(this.groupField)){ if(item.hasOwnProperty(this.groupField)){
if(fields && fields.length > 0){
const arr:Array<any> = fields.filter((field:any)=>{return field.value == item[this.groupField]});
groups.push(arr[0].label);
}else{
groups.push(item[this.groupField]); groups.push(item[this.groupField]);
} }
}
}); });
groups = [...new Set(groups)]; groups = [...new Set(groups)];
if(groups.length == 0){ if(groups.length == 0){
...@@ -489,7 +471,7 @@ import CodeListService from "@/codelist/codelist-service"; ...@@ -489,7 +471,7 @@ import CodeListService from "@/codelist/codelist-service";
* @type {*} * @type {*}
* @memberof ${srfclassname('${ctrl.codeName}')}Base * @memberof ${srfclassname('${ctrl.codeName}')}Base
*/ */
public ActionModel:any ={ public actionModel:any ={
<#if ctrl.getPSDEDataViewItems?? && ctrl.getPSDEDataViewItems()??> <#if ctrl.getPSDEDataViewItems?? && ctrl.getPSDEDataViewItems()??>
<#list ctrl.getPSDEDataViewItems() as dataViewItem> <#list ctrl.getPSDEDataViewItems() as dataViewItem>
<#if dataViewItem.getPSDEUIActionGroup?? && dataViewItem.getPSDEUIActionGroup()??> <#if dataViewItem.getPSDEUIActionGroup?? && dataViewItem.getPSDEUIActionGroup()??>
......
...@@ -699,7 +699,7 @@ import UIService from '@/uiservice/ui-service'; ...@@ -699,7 +699,7 @@ import UIService from '@/uiservice/ui-service';
this.selectedNodes = [this.currentselectedNode]; this.selectedNodes = [this.currentselectedNode];
}else{ }else{
this.selectedNodes = this.selectedNodes.concat(checkedNodes); this.selectedNodes = this.selectedNodes.concat(checkedNodes);
const tree: any = this.$refs.treeexpbar_tree; const tree: any = this.$refs.${ctrl.name};
tree.setCheckedNodes(this.selectedNodes); tree.setCheckedNodes(this.selectedNodes);
} }
} }
......
...@@ -176,7 +176,7 @@ ${gridColumn.getName()} ...@@ -176,7 +176,7 @@ ${gridColumn.getName()}
* @type {*} * @type {*}
* @memberof ${srfclassname('${ctrl.codeName}')}Base * @memberof ${srfclassname('${ctrl.codeName}')}Base
*/ */
public ActionModel:any ={ public actionModel:any ={
<#if ctrl.getPSUIActions()??> <#if ctrl.getPSUIActions()??>
<#list ctrl.getPSUIActions() as item> <#list ctrl.getPSUIActions() as item>
${item.getUIActionTag()}: { name: '${item.getUIActionTag()}',disabled: false, visabled: true,noprivdisplaymode:<#if item.getNoPrivDisplayMode(view)??>${item.getNoPrivDisplayMode(view)}</#if>,dataaccaction: '<#if item.getDataAccessAction()??>${item.getDataAccessAction()}</#if>', actiontarget: '${item.getActionTarget()}'}<#if item_has_next>,</#if> ${item.getUIActionTag()}: { name: '${item.getUIActionTag()}',disabled: false, visabled: true,noprivdisplaymode:<#if item.getNoPrivDisplayMode(view)??>${item.getNoPrivDisplayMode(view)}</#if>,dataaccaction: '<#if item.getDataAccessAction()??>${item.getDataAccessAction()}</#if>', actiontarget: '${item.getActionTarget()}'}<#if item_has_next>,</#if>
...@@ -655,7 +655,7 @@ ${gridColumn.getName()} ...@@ -655,7 +655,7 @@ ${gridColumn.getName()}
* @memberof ${srfclassname('${ctrl.codeName}')}Base * @memberof ${srfclassname('${ctrl.codeName}')}Base
*/ */
public getActionState(data:any){ public getActionState(data:any){
let tempActionModel:any = JSON.parse(JSON.stringify(this.ActionModel)); let tempActionModel:any = JSON.parse(JSON.stringify(this.actionModel));
let targetData:any = this.transformData(data); let targetData:any = this.transformData(data);
ViewTool.calcActionItemAuthState(targetData,tempActionModel,this.appUIService); ViewTool.calcActionItemAuthState(targetData,tempActionModel,this.appUIService);
return tempActionModel; return tempActionModel;
...@@ -1360,6 +1360,10 @@ ${gridColumn.getName()} ...@@ -1360,6 +1360,10 @@ ${gridColumn.getName()}
return; return;
} }
if(Object.is(action,'appRefresh')){ if(Object.is(action,'appRefresh')){
if(this.selections && this.selections.length > 0) {
this.selections = [];
this.$emit('selectionchange', this.selections);
}
this.refresh([data]); this.refresh([data]);
} }
}) })
...@@ -1481,6 +1485,7 @@ ${gridColumn.getName()} ...@@ -1481,6 +1485,7 @@ ${gridColumn.getName()}
} }
return codelist; return codelist;
} }
/** /**
* 根据分组代码表绘制分组列表 * 根据分组代码表绘制分组列表
* *
...@@ -1501,13 +1506,12 @@ ${gridColumn.getName()} ...@@ -1501,13 +1506,12 @@ ${gridColumn.getName()}
let children:Array<any> = []; let children:Array<any> = [];
this.items.forEach((item: any,j: number)=>{ this.items.forEach((item: any,j: number)=>{
if(allGroupField && allGroupField.length > 0){ if(allGroupField && allGroupField.length > 0){
const arr:Array<any> = allGroupField.filter((field:any)=>{return field.value == item[this.groupAppField]}); if(Object.is(group.label,item[this.groupAppField])){
if(Object.is(group.label,arr[0].label)){
item.groupById = Number((i+1) * 100 + (j+1) * 1); item.groupById = Number((i+1) * 100 + (j+1) * 1);
item.group = ''; item.group = '';
children.push(item); children.push(item);
} }
}else if(Object.is(group.label,item[this.groupAppField])){ }else if(Object.is(group.value,item[this.groupAppField])){
item.groupById = Number((i+1) * 100 + (j+1) * 1); item.groupById = Number((i+1) * 100 + (j+1) * 1);
item.group = ''; item.group = '';
children.push(item); children.push(item);
...@@ -1546,10 +1550,9 @@ ${gridColumn.getName()} ...@@ -1546,10 +1550,9 @@ ${gridColumn.getName()}
this.items.forEach((item: any,index: number)=>{ this.items.forEach((item: any,index: number)=>{
let i: number = 0; let i: number = 0;
if(allGroupField && allGroupField.length > 0){ if(allGroupField && allGroupField.length > 0){
const arr:Array<any> = allGroupField.filter((field:any)=>{return field.value == item[this.groupAppField]});
i = allGroup.findIndex((group: any)=>Object.is(group.label,arr[0].label));
}else{
i = allGroup.findIndex((group: any)=>Object.is(group.label,item[this.groupAppField])); i = allGroup.findIndex((group: any)=>Object.is(group.label,item[this.groupAppField]));
}else{
i = allGroup.findIndex((group: any)=>Object.is(group.value,item[this.groupAppField]));
} }
if(i < 0){ if(i < 0){
item.groupById = Number((allGroup.length+1) * 100 + (index+1) * 1); item.groupById = Number((allGroup.length+1) * 100 + (index+1) * 1);
...@@ -1609,17 +1612,10 @@ ${gridColumn.getName()} ...@@ -1609,17 +1612,10 @@ ${gridColumn.getName()}
if(!this.isEnableGroup) return; if(!this.isEnableGroup) return;
// 分组 // 分组
let allGroup: Array<any> = []; let allGroup: Array<any> = [];
let allGroupField: Array<any> =[];
allGroupField = this.getGroupCodelist(this.groupAppFieldCodelistType,this.groupAppFieldCodelistTag);
this.items.forEach((item: any)=>{ this.items.forEach((item: any)=>{
if(item.hasOwnProperty(this.groupAppField)){ if(item.hasOwnProperty(this.groupAppField)){
if(allGroupField && allGroupField.length > 0){
const arr:Array<any> = allGroupField.filter((field:any)=>{return field.value == item[this.groupAppField]});
allGroup.push(arr[0].label);
}else{
allGroup.push(item[this.groupAppField]); allGroup.push(item[this.groupAppField]);
} }
}
}); });
let groupTree:Array<any> = []; let groupTree:Array<any> = [];
allGroup = [...new Set(allGroup)]; allGroup = [...new Set(allGroup)];
...@@ -1630,14 +1626,7 @@ ${gridColumn.getName()} ...@@ -1630,14 +1626,7 @@ ${gridColumn.getName()}
allGroup.forEach((group: any, groupIndex: number)=>{ allGroup.forEach((group: any, groupIndex: number)=>{
let children:Array<any> = []; let children:Array<any> = [];
this.items.forEach((item: any,itemIndex: number)=>{ this.items.forEach((item: any,itemIndex: number)=>{
if(allGroupField && allGroupField.length > 0){ if(Object.is(group,item[this.groupAppField])){
const arr:Array<any> = allGroupField.filter((field:any)=>{return field.value == item[this.groupAppField]});
if(Object.is(group,arr[0].label)){
item.groupById = Number((groupIndex+1) * 100 + (itemIndex+1) * 1);
item.group = '';
children.push(item);
}
}else if(Object.is(group,item[this.groupAppField])){
item.groupById = Number((groupIndex+1) * 100 + (itemIndex+1) * 1); item.groupById = Number((groupIndex+1) * 100 + (itemIndex+1) * 1);
item.group = ''; item.group = '';
children.push(item); children.push(item);
......
...@@ -50,6 +50,14 @@ import UIService from '@/uiservice/ui-service'; ...@@ -50,6 +50,14 @@ import UIService from '@/uiservice/ui-service';
*/ */
@Prop() public inputData?: any; @Prop() public inputData?: any;
/**
* 操作栏模型数据
*
* @type {*}
* @memberof ${srfclassname('${ctrl.codeName}')}Base
*/
@Prop() public actionModel?: any;
/** /**
* UI数据对象 * UI数据对象
* *
......
...@@ -4,6 +4,8 @@ ...@@ -4,6 +4,8 @@
:context="context" :context="context"
:parentRef="thisRef" :parentRef="thisRef"
:inputData="item" :inputData="item"
:actionModel="actionModel ? actionModel : null"
@uiAction="(item, action, event) => { uiAction(item, action, event); }"
@panelDataChange="($event)=>{onPanelDataChange(item,$event)}" @panelDataChange="($event)=>{onPanelDataChange(item,$event)}"
name="${ctrl.name}" name="${ctrl.name}"
ref='${ctrl.name}'> ref='${ctrl.name}'>
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册