提交 124a6575 编写于 作者: ibizdev's avatar ibizdev

Mosher 发布系统代码 [后台服务,演示应用]

上级 dfc6be96
...@@ -5,7 +5,16 @@ ...@@ -5,7 +5,16 @@
<div slot='title' class="header-container"> <div slot='title' class="header-container">
<span class='caption-info' :title="$t(model.srfCaption)">{{$t(model.srfCaption)}}</span> <span class='caption-info' :title="$t(model.srfCaption)">{{$t(model.srfCaption)}}</span>
</div> </div>
<div slot="extra">
<div class='toolbar-container'>
<tooltip :transfer="true" :max-width="600" v-for="(linkItem, index) in linkModel" :key="index">
<i-button @click="dynamic_toolbar_click(linkItem, $event)">
<span class='caption'>{{linkItem.sequenceFlowName}}</span>
</i-button>
<div slot='content'>{{linkItem.sequenceFlowName}}</div>
</tooltip>
</div>
</div>
</card> </card>
</div> </div>
</template> </template>
...@@ -665,6 +674,141 @@ export default class IBIZSample0021Usr1114865995WFDynaEditView3Base extends Vue ...@@ -665,6 +674,141 @@ export default class IBIZSample0021Usr1114865995WFDynaEditView3Base extends Vue
}) })
} }
} }
/**
* 工具栏模型数据
*
* @memberof IBIZSample0021Usr1114865995WFDynaEditView3Base
*/
public linkModel:Array<any> = [];
/**
* 激活表单
*
* @memberof IBIZSample0021Usr1114865995WFDynaEditView3Base
*/
public activeForm:any = {};
/**
* 所有表单数据
*
* @memberof IBIZSample0021Usr1114865995WFDynaEditView3Base
*/
public allForm: any = {
"wfform_operationform":{name:"view_wfform_operationform",autosave:"false",showBusyIndicator:"true",updateAction:"Update",removeAction:"Remove",loaddraftAction:"GetDraft",loadAction:"Get",createAction:"Create",WFSubmitAction:"",WFStartAction:""},
"form":{name:"view_form",autosave:"false",showBusyIndicator:"true",updateAction:"Update",removeAction:"Remove",loaddraftAction:"GetDraft",loadAction:"Get",createAction:"Create",WFSubmitAction:"",WFStartAction:""},
};
/**
* 视图引用数据
*
* @memberof IBIZSample0021Usr1114865995WFDynaEditView3Base
*/
public viewRefData:any = {
"WFACTION@WFDynaActionView":{viewname:"ibizsample0021-wfdyna-action-view",title:this.$t("entities.ibizsample0021.views.wfdynaactionview.caption"), width: 800, height: 500}
};
/**
* 获取工具栏按钮
*
* @memberof IBIZSample0021Usr1114865995WFDynaEditView3Base
*/
public getWFLinkModel():Promise<any>{
return new Promise((resolve:any, reject:any) =>{
let datas: {} = {};
if (Object.keys(this.viewparams).length > 0) {
Object.assign(datas, { 'processDefinitionKey': this.viewparams.processDefinitionKey });
Object.assign(datas, { 'taskDefinitionKey': this.viewparams.taskDefinitionKey || this.viewparams.userTaskId });
}
this.appEntityService.GetWFLink(JSON.parse(JSON.stringify(this.context)),datas,true).then((response:any) =>{
if (response && response.status === 200) {
this.linkModel = response.data;
if(response.headers && response.headers['process-form']){
this.computeActivedForm(response.headers['process-form']);
}else{
this.computeActivedForm(null);
}
resolve(response.data);
}
}).catch((response: any) => {
if (response && response.status) {
this.$Notice.error({ title: '错误', desc: response.message });
return;
}
if (!response || !response.status || !response.data) {
this.$Notice.error({ title: '错误', desc: '系统异常' });
return;
}
});
});
}
/**
* 计算激活表单
*
* @memberof IBIZSample0021Usr1114865995WFDynaEditView3Base
*/
public computeActivedForm(inputForm:any){
if(!inputForm){
this.activeForm = this.allForm && Object.values(this.allForm)[0];
return;
}
if(this.allForm && Object.keys(this.allForm).length >0){
Object.keys(this.allForm).forEach((name:string) =>{
if(Object.is(name,`wfform_${inputForm.toLowerCase()}`)){
this.activeForm = this.allForm[name];
}
})
}
}
/**
* 动态工具栏点击
*
* @memberof IBIZSample0021Usr1114865995WFDynaEditView3Base
*/
public dynamic_toolbar_click(linkItem:any, $event:any){
let datas: any[] = [];
let xData: any = this.$refs.form;
if (xData.getDatas && xData.getDatas instanceof Function) {
datas = [...xData.getDatas()];
}
const submit:Function = (submitData:any,linkItem:any) =>{
xData.wfsubmit(submitData,linkItem).then((response: any) => {
if (!response || response.status !== 200) {
return;
}
const { data: _data } = response;
if (this.viewdata) {
this.$emit('viewdataschange', [{ ..._data }]);
this.$emit('close');
} else if (this.$tabPageExp) {
this.$tabPageExp.onClose(this.$route.fullPath);
}
});
}
if(linkItem && linkItem.sequenceflowview && this.viewRefData[`WFACTION@${linkItem.sequenceflowview}`]){
let tempContext:any = Util.deepCopy(this.context);
Object.assign(tempContext,{ibizsample0021:datas && datas[0].srfkey});
let tempViewParam:any = {actionView:linkItem.sequenceflowview,actionForm:linkItem.sequenceflowform};
let targetView:any = this.viewRefData[`WFACTION@${linkItem.sequenceflowview}`];
const appmodal = this.$appmodal.openModal({viewname:targetView.viewname, title:(this.$t(targetView.title) as string), height: targetView.height, width: targetView.width}, tempContext,tempViewParam);
appmodal.subscribe((result: any) => {
if (!result || !Object.is(result.ret, 'OK')) {
return;
}
let tempSubmitData:any = Util.deepCopy(datas);
tempSubmitData.forEach((element:any) => {
Object.assign(element,result.datas && result.datas[0]);
});
submit(tempSubmitData,linkItem);
});
}else{
submit(datas,linkItem);
}
}
} }
</script> </script>
......
...@@ -639,7 +639,7 @@ export default class DefaultBase extends Vue implements ControlInterface { ...@@ -639,7 +639,7 @@ export default class DefaultBase extends Vue implements ControlInterface {
*/ */
public load(opt: any = {}): void { public load(opt: any = {}): void {
if(!this.loadAction){ if(!this.loadAction){
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZAPPEDITORListView' + (this.$t('app.searchForm.notConfig.loadAction') as string) }); this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZAPPEDITORGridView' + (this.$t('app.searchForm.notConfig.loadAction') as string) });
return; return;
} }
const arg: any = { ...opt }; const arg: any = { ...opt };
...@@ -675,7 +675,7 @@ export default class DefaultBase extends Vue implements ControlInterface { ...@@ -675,7 +675,7 @@ export default class DefaultBase extends Vue implements ControlInterface {
*/ */
public async loadDraft(opt: any = {},mode?:string): Promise<any> { public async loadDraft(opt: any = {},mode?:string): Promise<any> {
if(!this.loaddraftAction){ if(!this.loaddraftAction){
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZAPPEDITORListView' + (this.$t('app.searchForm.notConfig.loaddraftAction') as string) }); this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZAPPEDITORGridView' + (this.$t('app.searchForm.notConfig.loaddraftAction') as string) });
return; return;
} }
const arg: any = { ...opt } ; const arg: any = { ...opt } ;
......
...@@ -712,7 +712,7 @@ export default class DefaultBase extends Vue implements ControlInterface { ...@@ -712,7 +712,7 @@ export default class DefaultBase extends Vue implements ControlInterface {
*/ */
public load(opt: any = {}): void { public load(opt: any = {}): void {
if(!this.loadAction){ if(!this.loadAction){
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKCustomView_layout' + (this.$t('app.searchForm.notConfig.loadAction') as string) }); this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKUsr9GridView' + (this.$t('app.searchForm.notConfig.loadAction') as string) });
return; return;
} }
const arg: any = { ...opt }; const arg: any = { ...opt };
...@@ -748,7 +748,7 @@ export default class DefaultBase extends Vue implements ControlInterface { ...@@ -748,7 +748,7 @@ export default class DefaultBase extends Vue implements ControlInterface {
*/ */
public async loadDraft(opt: any = {},mode?:string): Promise<any> { public async loadDraft(opt: any = {},mode?:string): Promise<any> {
if(!this.loaddraftAction){ if(!this.loaddraftAction){
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKCustomView_layout' + (this.$t('app.searchForm.notConfig.loaddraftAction') as string) }); this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKUsr9GridView' + (this.$t('app.searchForm.notConfig.loaddraftAction') as string) });
return; return;
} }
const arg: any = { ...opt } ; const arg: any = { ...opt } ;
......
...@@ -1378,7 +1378,7 @@ export default class GuideBorrowFormBase extends Vue implements ControlInterface ...@@ -1378,7 +1378,7 @@ export default class GuideBorrowFormBase extends Vue implements ControlInterface
*/ */
public async load(opt: any = {}): Promise<any> { public async load(opt: any = {}): Promise<any> {
if(!this.loadAction){ if(!this.loadAction){
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKWizardView_layout' + (this.$t('app.formpage.notconfig.loadaction') as string) }); this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKWizardView' + (this.$t('app.formpage.notconfig.loadaction') as string) });
return; return;
} }
const arg: any = { ...opt }; const arg: any = { ...opt };
...@@ -1425,7 +1425,7 @@ export default class GuideBorrowFormBase extends Vue implements ControlInterface ...@@ -1425,7 +1425,7 @@ export default class GuideBorrowFormBase extends Vue implements ControlInterface
*/ */
public async loadDraft(opt: any = {}): Promise<any> { public async loadDraft(opt: any = {}): Promise<any> {
if (!this.loaddraftAction) { if (!this.loaddraftAction) {
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKWizardView_layout' + (this.$t('app.formpage.notconfig.loaddraftaction') as string) }); this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKWizardView' + (this.$t('app.formpage.notconfig.loaddraftaction') as string) });
return; return;
} }
const arg: any = { ...opt } ; const arg: any = { ...opt } ;
...@@ -1495,7 +1495,7 @@ export default class GuideBorrowFormBase extends Vue implements ControlInterface ...@@ -1495,7 +1495,7 @@ export default class GuideBorrowFormBase extends Vue implements ControlInterface
const action: any = Object.is(data.srfuf, '1') ? this.updateAction : this.createAction; const action: any = Object.is(data.srfuf, '1') ? this.updateAction : this.createAction;
if(!action){ if(!action){
let actionName:any = Object.is(data.srfuf, '1')?"updateAction":"createAction"; let actionName:any = Object.is(data.srfuf, '1')?"updateAction":"createAction";
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKWizardView_layout' + (this.$t('app.formpage.notconfig.actionname') as string) }); this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKWizardView' + (this.$t('app.formpage.notconfig.actionname') as string) });
return; return;
} }
Object.assign(arg,{viewparams:this.viewparams}); Object.assign(arg,{viewparams:this.viewparams});
...@@ -1603,7 +1603,7 @@ export default class GuideBorrowFormBase extends Vue implements ControlInterface ...@@ -1603,7 +1603,7 @@ export default class GuideBorrowFormBase extends Vue implements ControlInterface
const action: any = Object.is(data.srfuf, '1') ? this.updateAction : this.createAction; const action: any = Object.is(data.srfuf, '1') ? this.updateAction : this.createAction;
if(!action){ if(!action){
let actionName:any = Object.is(data.srfuf, '1')?"updateAction":"createAction"; let actionName:any = Object.is(data.srfuf, '1')?"updateAction":"createAction";
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKWizardView_layout' + (this.$t('app.formpage.notconfig.actionname') as string) }); this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKWizardView' + (this.$t('app.formpage.notconfig.actionname') as string) });
return; return;
} }
Object.assign(arg, { viewparams: this.viewparams }); Object.assign(arg, { viewparams: this.viewparams });
...@@ -1695,7 +1695,7 @@ export default class GuideBorrowFormBase extends Vue implements ControlInterface ...@@ -1695,7 +1695,7 @@ export default class GuideBorrowFormBase extends Vue implements ControlInterface
public remove(opt:Array<any> = [],showResultInfo?: boolean): Promise<any> { public remove(opt:Array<any> = [],showResultInfo?: boolean): Promise<any> {
return new Promise((resolve: any, reject: any) => { return new Promise((resolve: any, reject: any) => {
if(!this.removeAction){ if(!this.removeAction){
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKWizardView_layout' + (this.$t('app.formpage.notconfig.removeaction') as string) }); this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKWizardView' + (this.$t('app.formpage.notconfig.removeaction') as string) });
return; return;
} }
const arg: any = opt[0]; const arg: any = opt[0];
......
...@@ -1344,7 +1344,7 @@ export default class GuideReturnFormBase extends Vue implements ControlInterface ...@@ -1344,7 +1344,7 @@ export default class GuideReturnFormBase extends Vue implements ControlInterface
*/ */
public async load(opt: any = {}): Promise<any> { public async load(opt: any = {}): Promise<any> {
if(!this.loadAction){ if(!this.loadAction){
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKWizardView_layout' + (this.$t('app.formpage.notconfig.loadaction') as string) }); this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKWizardView' + (this.$t('app.formpage.notconfig.loadaction') as string) });
return; return;
} }
const arg: any = { ...opt }; const arg: any = { ...opt };
...@@ -1391,7 +1391,7 @@ export default class GuideReturnFormBase extends Vue implements ControlInterface ...@@ -1391,7 +1391,7 @@ export default class GuideReturnFormBase extends Vue implements ControlInterface
*/ */
public async loadDraft(opt: any = {}): Promise<any> { public async loadDraft(opt: any = {}): Promise<any> {
if (!this.loaddraftAction) { if (!this.loaddraftAction) {
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKWizardView_layout' + (this.$t('app.formpage.notconfig.loaddraftaction') as string) }); this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKWizardView' + (this.$t('app.formpage.notconfig.loaddraftaction') as string) });
return; return;
} }
const arg: any = { ...opt } ; const arg: any = { ...opt } ;
...@@ -1461,7 +1461,7 @@ export default class GuideReturnFormBase extends Vue implements ControlInterface ...@@ -1461,7 +1461,7 @@ export default class GuideReturnFormBase extends Vue implements ControlInterface
const action: any = Object.is(data.srfuf, '1') ? this.updateAction : this.createAction; const action: any = Object.is(data.srfuf, '1') ? this.updateAction : this.createAction;
if(!action){ if(!action){
let actionName:any = Object.is(data.srfuf, '1')?"updateAction":"createAction"; let actionName:any = Object.is(data.srfuf, '1')?"updateAction":"createAction";
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKWizardView_layout' + (this.$t('app.formpage.notconfig.actionname') as string) }); this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKWizardView' + (this.$t('app.formpage.notconfig.actionname') as string) });
return; return;
} }
Object.assign(arg,{viewparams:this.viewparams}); Object.assign(arg,{viewparams:this.viewparams});
...@@ -1569,7 +1569,7 @@ export default class GuideReturnFormBase extends Vue implements ControlInterface ...@@ -1569,7 +1569,7 @@ export default class GuideReturnFormBase extends Vue implements ControlInterface
const action: any = Object.is(data.srfuf, '1') ? this.updateAction : this.createAction; const action: any = Object.is(data.srfuf, '1') ? this.updateAction : this.createAction;
if(!action){ if(!action){
let actionName:any = Object.is(data.srfuf, '1')?"updateAction":"createAction"; let actionName:any = Object.is(data.srfuf, '1')?"updateAction":"createAction";
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKWizardView_layout' + (this.$t('app.formpage.notconfig.actionname') as string) }); this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKWizardView' + (this.$t('app.formpage.notconfig.actionname') as string) });
return; return;
} }
Object.assign(arg, { viewparams: this.viewparams }); Object.assign(arg, { viewparams: this.viewparams });
...@@ -1661,7 +1661,7 @@ export default class GuideReturnFormBase extends Vue implements ControlInterface ...@@ -1661,7 +1661,7 @@ export default class GuideReturnFormBase extends Vue implements ControlInterface
public remove(opt:Array<any> = [],showResultInfo?: boolean): Promise<any> { public remove(opt:Array<any> = [],showResultInfo?: boolean): Promise<any> {
return new Promise((resolve: any, reject: any) => { return new Promise((resolve: any, reject: any) => {
if(!this.removeAction){ if(!this.removeAction){
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKWizardView_layout' + (this.$t('app.formpage.notconfig.removeaction') as string) }); this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKWizardView' + (this.$t('app.formpage.notconfig.removeaction') as string) });
return; return;
} }
const arg: any = opt[0]; const arg: any = opt[0];
......
...@@ -11,16 +11,6 @@ ...@@ -11,16 +11,6 @@
"path" : "PSSYSAPPS/Web/PSAPPDATAENTITIES/IBIZBOOK.json" "path" : "PSSYSAPPS/Web/PSAPPDATAENTITIES/IBIZBOOK.json"
}, },
"getPSDETreeColumns" : [ { "getPSDETreeColumns" : [ {
"caption" : "作者",
"codeName" : "author",
"columnType" : "DEFGRIDCOLUMN",
"dataItemName" : "author",
"name" : "author",
"width" : 200,
"widthUnit" : "px",
"enableExpand" : false,
"enableSort" : false
}, {
"caption" : "图书名称", "caption" : "图书名称",
"codeName" : "ibizbookname", "codeName" : "ibizbookname",
"columnType" : "DEFGRIDCOLUMN", "columnType" : "DEFGRIDCOLUMN",
...@@ -60,6 +50,16 @@ ...@@ -60,6 +50,16 @@
"widthUnit" : "px", "widthUnit" : "px",
"enableExpand" : false, "enableExpand" : false,
"enableSort" : false "enableSort" : false
}, {
"caption" : "作者",
"codeName" : "author",
"columnType" : "DEFGRIDCOLUMN",
"dataItemName" : "author",
"name" : "author",
"width" : 200,
"widthUnit" : "px",
"enableExpand" : false,
"enableSort" : false
} ], } ],
"getPSDETreeNodeRSs" : [ { "getPSDETreeNodeRSs" : [ {
"getChildPSDETreeNode" : { "getChildPSDETreeNode" : {
......
...@@ -19,16 +19,6 @@ ...@@ -19,16 +19,6 @@
} }
} ], } ],
"getPSDETreeColumns" : [ { "getPSDETreeColumns" : [ {
"caption" : "图书描述",
"codeName" : "subtext",
"columnType" : "DEFGRIDCOLUMN",
"dataItemName" : "subtext",
"name" : "subtext",
"width" : 50,
"widthUnit" : "px",
"enableExpand" : false,
"enableSort" : false
}, {
"caption" : "图书名称", "caption" : "图书名称",
"codeName" : "ibizbookname", "codeName" : "ibizbookname",
"columnType" : "DEFGRIDCOLUMN", "columnType" : "DEFGRIDCOLUMN",
...@@ -48,6 +38,16 @@ ...@@ -48,6 +38,16 @@
"widthUnit" : "px", "widthUnit" : "px",
"enableExpand" : false, "enableExpand" : false,
"enableSort" : false "enableSort" : false
}, {
"caption" : "图书描述",
"codeName" : "subtext",
"columnType" : "DEFGRIDCOLUMN",
"dataItemName" : "subtext",
"name" : "subtext",
"width" : 50,
"widthUnit" : "px",
"enableExpand" : false,
"enableSort" : false
} ], } ],
"getPSDETreeNodeRSs" : [ { "getPSDETreeNodeRSs" : [ {
"getChildPSDETreeNode" : { "getChildPSDETreeNode" : {
......
...@@ -34,16 +34,6 @@ ...@@ -34,16 +34,6 @@
"id" : "GANTT" "id" : "GANTT"
}, },
"getPSDETreeColumns" : [ { "getPSDETreeColumns" : [ {
"caption" : "作者",
"codeName" : "author",
"columnType" : "DEFGRIDCOLUMN",
"dataItemName" : "author",
"name" : "author",
"width" : 200,
"widthUnit" : "px",
"enableExpand" : false,
"enableSort" : false
}, {
"caption" : "图书名称", "caption" : "图书名称",
"codeName" : "ibizbookname", "codeName" : "ibizbookname",
"columnType" : "DEFGRIDCOLUMN", "columnType" : "DEFGRIDCOLUMN",
...@@ -83,6 +73,16 @@ ...@@ -83,6 +73,16 @@
"widthUnit" : "px", "widthUnit" : "px",
"enableExpand" : false, "enableExpand" : false,
"enableSort" : false "enableSort" : false
}, {
"caption" : "作者",
"codeName" : "author",
"columnType" : "DEFGRIDCOLUMN",
"dataItemName" : "author",
"name" : "author",
"width" : 200,
"widthUnit" : "px",
"enableExpand" : false,
"enableSort" : false
} ], } ],
"getPSDETreeNodeRSs" : [ { "getPSDETreeNodeRSs" : [ {
"getChildPSDETreeNode" : { "getChildPSDETreeNode" : {
......
...@@ -75,16 +75,6 @@ ...@@ -75,16 +75,6 @@
"id" : "TREEGRIDEX" "id" : "TREEGRIDEX"
}, },
"getPSDETreeColumns" : [ { "getPSDETreeColumns" : [ {
"caption" : "图书描述",
"codeName" : "subtext",
"columnType" : "DEFGRIDCOLUMN",
"dataItemName" : "subtext",
"name" : "subtext",
"width" : 50,
"widthUnit" : "px",
"enableExpand" : false,
"enableSort" : false
}, {
"caption" : "图书名称", "caption" : "图书名称",
"codeName" : "ibizbookname", "codeName" : "ibizbookname",
"columnType" : "DEFGRIDCOLUMN", "columnType" : "DEFGRIDCOLUMN",
...@@ -104,6 +94,16 @@ ...@@ -104,6 +94,16 @@
"widthUnit" : "px", "widthUnit" : "px",
"enableExpand" : false, "enableExpand" : false,
"enableSort" : false "enableSort" : false
}, {
"caption" : "图书描述",
"codeName" : "subtext",
"columnType" : "DEFGRIDCOLUMN",
"dataItemName" : "subtext",
"name" : "subtext",
"width" : 50,
"widthUnit" : "px",
"enableExpand" : false,
"enableSort" : false
} ], } ],
"getPSDETreeNodeRSs" : [ { "getPSDETreeNodeRSs" : [ {
"getChildPSDETreeNode" : { "getChildPSDETreeNode" : {
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册