提交 7257ddc8 编写于 作者: ibizdev's avatar ibizdev

ibizdev提交

上级 31d56abd
......@@ -167,7 +167,7 @@ export default class CodeList extends Vue {
}
});
} else {
let values: any[] = Object.is(_this.$util.typeOf(_this.value), 'NUM') ? [_this.value] : [...(_this.value as any).split(_this.valueSeparator)];
let values: any[] = Object.is(_this.$util.typeOf(_this.value), 'number') ? [_this.value] : [...(_this.value as any).split(_this.valueSeparator)];
values.map((value:any ,index: number)=>{
const item = _this.getItem(items, value);
if(item){
......
......@@ -61,9 +61,11 @@ export default {
},
},
},
entities: {
ibzdictitem: ibzdictitem_en_US,
ibzdict: ibzdict_en_US,
},
components: components_en_US,
codelist: codelist_en_US,
userCustom: userCustom_en_US,
ibzdictitem: ibzdictitem_en_US,
ibzdict: ibzdict_en_US,
};
\ No newline at end of file
......@@ -61,9 +61,11 @@ export default {
},
},
},
entities: {
ibzdictitem: ibzdictitem_zh_CN,
ibzdict: ibzdict_zh_CN,
},
components: components_zh_CN,
codelist: codelist_zh_CN,
userCustom: userCustom_zh_CN,
ibzdictitem: ibzdictitem_zh_CN,
ibzdict: ibzdict_zh_CN,
};
\ No newline at end of file
......@@ -53,11 +53,11 @@ export default {
},
tbitem4: {
caption: "Edit",
tip: "Edit",
tip: "Edit {0}",
},
tbitem6: {
caption: "Copy",
tip: "Copy",
tip: "Copy {0}",
},
tbitem7: {
caption: "-",
......@@ -65,7 +65,7 @@ export default {
},
tbitem8: {
caption: "Remove",
tip: "Remove",
tip: "Remove {0}",
},
tbitem9: {
caption: "-",
......@@ -73,7 +73,7 @@ export default {
},
tbitem13: {
caption: "Export",
tip: "Export",
tip: "Export {0} Data To Excel",
},
tbitem10: {
caption: "-",
......@@ -115,7 +115,7 @@ export default {
},
tbitem5: {
caption: "Save And Close",
tip: "Save And Close",
tip: "Save And Close Window",
},
tbitem6: {
caption: "-",
......@@ -123,7 +123,7 @@ export default {
},
tbitem7: {
caption: "Remove And Close",
tip: "Remove And Close",
tip: "Remove And Close Window",
},
tbitem8: {
caption: "-",
......@@ -139,7 +139,7 @@ export default {
},
tbitem14: {
caption: "Copy",
tip: "Copy",
tip: "Copy {0}",
},
tbitem16: {
caption: "-",
......
......@@ -65,11 +65,11 @@ export default {
},
tbitem4: {
caption: "Edit",
tip: "Edit",
tip: "Edit {0}",
},
tbitem6: {
caption: "Copy",
tip: "Copy",
tip: "Copy {0}",
},
tbitem7: {
caption: "-",
......@@ -77,7 +77,7 @@ export default {
},
tbitem8: {
caption: "Remove",
tip: "Remove",
tip: "Remove {0}",
},
tbitem9: {
caption: "-",
......@@ -85,7 +85,7 @@ export default {
},
tbitem13: {
caption: "Export",
tip: "Export",
tip: "Export {0} Data To Excel",
},
tbitem10: {
caption: "-",
......@@ -127,7 +127,7 @@ export default {
},
tbitem5: {
caption: "Save And Close",
tip: "Save And Close",
tip: "Save And Close Window",
},
tbitem6: {
caption: "-",
......@@ -135,7 +135,7 @@ export default {
},
tbitem7: {
caption: "Remove And Close",
tip: "Remove And Close",
tip: "Remove And Close Window",
},
tbitem8: {
caption: "-",
......@@ -151,7 +151,7 @@ export default {
},
tbitem14: {
caption: "Copy",
tip: "Copy",
tip: "Copy {0}",
},
tbitem16: {
caption: "-",
......
......@@ -24,7 +24,7 @@ const router = new Router({
});
},
meta: {
caption: '字典管理',
caption: 'app.views.appindexview.caption',
viewType: 'APPINDEX',
parameters: [
{ pathName: 'appindexview', parameterName: 'appindexview' },
......@@ -36,7 +36,7 @@ const router = new Router({
{
path: 'ibzdicts/:ibzdict?/gridview/:gridview?',
meta: {
caption: 'ibzdict.views.gridview.caption',
caption: 'entities.ibzdict.views.gridview.caption',
parameters: [
{ pathName: 'appindexview', parameterName: 'appindexview' },
{ pathName: 'ibzdicts', parameterName: 'ibzdict' },
......@@ -49,7 +49,7 @@ const router = new Router({
{
path: 'ibzdicts/:ibzdict?/editview/:editview?',
meta: {
caption: 'ibzdict.views.editview.caption',
caption: 'entities.ibzdict.views.editview.caption',
parameters: [
{ pathName: 'appindexview', parameterName: 'appindexview' },
{ pathName: 'ibzdicts', parameterName: 'ibzdict' },
......@@ -64,7 +64,7 @@ const router = new Router({
{
path: '/ibzdicts/:ibzdict?/gridview/:gridview?',
meta: {
caption: 'ibzdict.views.gridview.caption',
caption: 'entities.ibzdict.views.gridview.caption',
parameters: [
{ pathName: 'ibzdicts', parameterName: 'ibzdict' },
{ pathName: 'gridview', parameterName: 'gridview' },
......@@ -76,7 +76,7 @@ const router = new Router({
{
path: '/ibzdicts/:ibzdict?/editview/:editview?',
meta: {
caption: 'ibzdict.views.editview.caption',
caption: 'entities.ibzdict.views.editview.caption',
parameters: [
{ pathName: 'ibzdicts', parameterName: 'ibzdict' },
{ pathName: 'editview', parameterName: 'editview' },
......
......@@ -12,79 +12,79 @@
<tooltip :transfer="true" :max-width="600">
<i-button v-show="toolBarModels.tbitem3.visabled" :disabled="toolBarModels.tbitem3.disabled" class='' @click="toolbar_click({ tag: 'tbitem3' }, $event)">
<i class='fa fa-save'></i>
<span class='caption'>{{$t('ibzdict.editviewtoolbar_toolbar.tbitem3.caption')}}</span>
<span class='caption'>{{$t('entities.ibzdict.editviewtoolbar_toolbar.tbitem3.caption')}}</span>
</i-button>
<div slot='content'>{{$t('ibzdict.editviewtoolbar_toolbar.tbitem3.tip')}}</div>
<div slot='content'>{{$t('entities.ibzdict.editviewtoolbar_toolbar.tbitem3.tip')}}</div>
</tooltip>
<tooltip :transfer="true" :max-width="600">
<i-button v-show="toolBarModels.tbitem4.visabled" :disabled="toolBarModels.tbitem4.disabled" class='' @click="toolbar_click({ tag: 'tbitem4' }, $event)">
<i class='sx-tb-saveandnew'></i>
<span class='caption'>{{$t('ibzdict.editviewtoolbar_toolbar.tbitem4.caption')}}</span>
<span class='caption'>{{$t('entities.ibzdict.editviewtoolbar_toolbar.tbitem4.caption')}}</span>
</i-button>
<div slot='content'>{{$t('ibzdict.editviewtoolbar_toolbar.tbitem4.tip')}}</div>
<div slot='content'>{{$t('entities.ibzdict.editviewtoolbar_toolbar.tbitem4.tip')}}</div>
</tooltip>
<tooltip :transfer="true" :max-width="600">
<i-button v-show="toolBarModels.tbitem5.visabled" :disabled="toolBarModels.tbitem5.disabled" class='' @click="toolbar_click({ tag: 'tbitem5' }, $event)">
<i class='sx-tb-saveandclose'></i>
<span class='caption'>{{$t('ibzdict.editviewtoolbar_toolbar.tbitem5.caption')}}</span>
<span class='caption'>{{$t('entities.ibzdict.editviewtoolbar_toolbar.tbitem5.caption')}}</span>
</i-button>
<div slot='content'>{{$t('ibzdict.editviewtoolbar_toolbar.tbitem5.tip')}}</div>
<div slot='content'>{{$t('entities.ibzdict.editviewtoolbar_toolbar.tbitem5.tip')}}</div>
</tooltip>
<span class='seperator'>|</span> <tooltip :transfer="true" :max-width="600">
<i-button v-show="toolBarModels.tbitem7.visabled" :disabled="toolBarModels.tbitem7.disabled" class='' @click="toolbar_click({ tag: 'tbitem7' }, $event)">
<i class='fa fa-remove'></i>
<span class='caption'>{{$t('ibzdict.editviewtoolbar_toolbar.tbitem7.caption')}}</span>
<span class='caption'>{{$t('entities.ibzdict.editviewtoolbar_toolbar.tbitem7.caption')}}</span>
</i-button>
<div slot='content'>{{$t('ibzdict.editviewtoolbar_toolbar.tbitem7.tip')}}</div>
<div slot='content'>{{$t('entities.ibzdict.editviewtoolbar_toolbar.tbitem7.tip')}}</div>
</tooltip>
<span class='seperator'>|</span> <tooltip :transfer="true" :max-width="600">
<i-button v-show="toolBarModels.tbitem12.visabled" :disabled="toolBarModels.tbitem12.disabled" class='' @click="toolbar_click({ tag: 'tbitem12' }, $event)">
<i class='fa fa-file-text-o'></i>
<span class='caption'>{{$t('ibzdict.editviewtoolbar_toolbar.tbitem12.caption')}}</span>
<span class='caption'>{{$t('entities.ibzdict.editviewtoolbar_toolbar.tbitem12.caption')}}</span>
</i-button>
<div slot='content'>{{$t('ibzdict.editviewtoolbar_toolbar.tbitem12.tip')}}</div>
<div slot='content'>{{$t('entities.ibzdict.editviewtoolbar_toolbar.tbitem12.tip')}}</div>
</tooltip>
<span class='seperator'>|</span> <tooltip :transfer="true" :max-width="600">
<i-button v-show="toolBarModels.tbitem14.visabled" :disabled="toolBarModels.tbitem14.disabled" class='' @click="toolbar_click({ tag: 'tbitem14' }, $event)">
<i class='fa fa-copy'></i>
<span class='caption'>{{$t('ibzdict.editviewtoolbar_toolbar.tbitem14.caption')}}</span>
<span class='caption'>{{$t('entities.ibzdict.editviewtoolbar_toolbar.tbitem14.caption')}}</span>
</i-button>
<div slot='content'>{{$t('ibzdict.editviewtoolbar_toolbar.tbitem14.tip')}}</div>
<div slot='content'>{{$t('entities.ibzdict.editviewtoolbar_toolbar.tbitem14.tip')}}</div>
</tooltip>
<span class='seperator'>|</span> <tooltip :transfer="true" :max-width="600">
<i-button v-show="toolBarModels.tbitem23.visabled" :disabled="toolBarModels.tbitem23.disabled" class='' @click="toolbar_click({ tag: 'tbitem23' }, $event)">
<i class='fa fa-fast-backward'></i>
</i-button>
<div slot='content'>{{$t('ibzdict.editviewtoolbar_toolbar.tbitem23.tip')}}</div>
<div slot='content'>{{$t('entities.ibzdict.editviewtoolbar_toolbar.tbitem23.tip')}}</div>
</tooltip>
<tooltip :transfer="true" :max-width="600">
<i-button v-show="toolBarModels.tbitem24.visabled" :disabled="toolBarModels.tbitem24.disabled" class='' @click="toolbar_click({ tag: 'tbitem24' }, $event)">
<i class='fa fa-step-backward'></i>
</i-button>
<div slot='content'>{{$t('ibzdict.editviewtoolbar_toolbar.tbitem24.tip')}}</div>
<div slot='content'>{{$t('entities.ibzdict.editviewtoolbar_toolbar.tbitem24.tip')}}</div>
</tooltip>
<tooltip :transfer="true" :max-width="600">
<i-button v-show="toolBarModels.tbitem25.visabled" :disabled="toolBarModels.tbitem25.disabled" class='' @click="toolbar_click({ tag: 'tbitem25' }, $event)">
<i class='fa fa-step-forward'></i>
</i-button>
<div slot='content'>{{$t('ibzdict.editviewtoolbar_toolbar.tbitem25.tip')}}</div>
<div slot='content'>{{$t('entities.ibzdict.editviewtoolbar_toolbar.tbitem25.tip')}}</div>
</tooltip>
<tooltip :transfer="true" :max-width="600">
<i-button v-show="toolBarModels.tbitem26.visabled" :disabled="toolBarModels.tbitem26.disabled" class='' @click="toolbar_click({ tag: 'tbitem26' }, $event)">
<i class='fa fa-fast-forward'></i>
</i-button>
<div slot='content'>{{$t('ibzdict.editviewtoolbar_toolbar.tbitem26.tip')}}</div>
<div slot='content'>{{$t('entities.ibzdict.editviewtoolbar_toolbar.tbitem26.tip')}}</div>
</tooltip>
<span class='seperator'>|</span> <tooltip :transfer="true" :max-width="600">
<i-button v-show="toolBarModels.tbitem22.visabled" :disabled="toolBarModels.tbitem22.disabled" class='' @click="toolbar_click({ tag: 'tbitem22' }, $event)">
<i class='fa fa-question'></i>
<span class='caption'>{{$t('ibzdict.editviewtoolbar_toolbar.tbitem22.caption')}}</span>
<span class='caption'>{{$t('entities.ibzdict.editviewtoolbar_toolbar.tbitem22.caption')}}</span>
</i-button>
<div slot='content'>{{$t('ibzdict.editviewtoolbar_toolbar.tbitem22.tip')}}</div>
<div slot='content'>{{$t('entities.ibzdict.editviewtoolbar_toolbar.tbitem22.tip')}}</div>
</tooltip>
</div>
......@@ -223,9 +223,9 @@ export default class IBZDictEditViewBase extends Vue {
* @memberof IBZDictEditViewBase
*/
protected model: any = {
srfCaption: 'ibzdict.views.editview.caption',
srfTitle: 'ibzdict.views.editview.title',
srfSubTitle: 'ibzdict.views.editview.subtitle',
srfCaption: 'entities.ibzdict.views.editview.caption',
srfTitle: 'entities.ibzdict.views.editview.title',
srfSubTitle: 'entities.ibzdict.views.editview.subtitle',
dataInfo: ''
}
......
......@@ -15,52 +15,52 @@
<tooltip :transfer="true" :max-width="600">
<i-button v-show="toolBarModels.tbitem3.visabled" :disabled="toolBarModels.tbitem3.disabled" class='' @click="toolbar_click({ tag: 'tbitem3' }, $event)">
<i class='fa fa-file-text-o'></i>
<span class='caption'>{{$t('ibzdict.gridviewtoolbar_toolbar.tbitem3.caption')}}</span>
<span class='caption'>{{$t('entities.ibzdict.gridviewtoolbar_toolbar.tbitem3.caption')}}</span>
</i-button>
<div slot='content'>{{$t('ibzdict.gridviewtoolbar_toolbar.tbitem3.tip')}}</div>
<div slot='content'>{{$t('entities.ibzdict.gridviewtoolbar_toolbar.tbitem3.tip')}}</div>
</tooltip>
<tooltip :transfer="true" :max-width="600">
<i-button v-show="toolBarModels.tbitem4.visabled" :disabled="toolBarModels.tbitem4.disabled" class='' @click="toolbar_click({ tag: 'tbitem4' }, $event)">
<i class='fa fa-edit'></i>
<span class='caption'>{{$t('ibzdict.gridviewtoolbar_toolbar.tbitem4.caption')}}</span>
<span class='caption'>{{$t('entities.ibzdict.gridviewtoolbar_toolbar.tbitem4.caption')}}</span>
</i-button>
<div slot='content'>{{$t('ibzdict.gridviewtoolbar_toolbar.tbitem4.tip')}}</div>
<div slot='content'>{{$t('entities.ibzdict.gridviewtoolbar_toolbar.tbitem4.tip')}}</div>
</tooltip>
<tooltip :transfer="true" :max-width="600">
<i-button v-show="toolBarModels.tbitem6.visabled" :disabled="toolBarModels.tbitem6.disabled" class='' @click="toolbar_click({ tag: 'tbitem6' }, $event)">
<i class='fa fa-copy'></i>
<span class='caption'>{{$t('ibzdict.gridviewtoolbar_toolbar.tbitem6.caption')}}</span>
<span class='caption'>{{$t('entities.ibzdict.gridviewtoolbar_toolbar.tbitem6.caption')}}</span>
</i-button>
<div slot='content'>{{$t('ibzdict.gridviewtoolbar_toolbar.tbitem6.tip')}}</div>
<div slot='content'>{{$t('entities.ibzdict.gridviewtoolbar_toolbar.tbitem6.tip')}}</div>
</tooltip>
<span class='seperator'>|</span> <tooltip :transfer="true" :max-width="600">
<i-button v-show="toolBarModels.tbitem8.visabled" :disabled="toolBarModels.tbitem8.disabled" class='' @click="toolbar_click({ tag: 'tbitem8' }, $event)">
<i class='fa fa-remove'></i>
<span class='caption'>{{$t('ibzdict.gridviewtoolbar_toolbar.tbitem8.caption')}}</span>
<span class='caption'>{{$t('entities.ibzdict.gridviewtoolbar_toolbar.tbitem8.caption')}}</span>
</i-button>
<div slot='content'>{{$t('ibzdict.gridviewtoolbar_toolbar.tbitem8.tip')}}</div>
<div slot='content'>{{$t('entities.ibzdict.gridviewtoolbar_toolbar.tbitem8.tip')}}</div>
</tooltip>
<span class='seperator'>|</span> <tooltip :transfer="true" :max-width="600">
<app-export-excel :item="toolBarModels.tbitem13" :caption="$t('ibzdict.gridviewtoolbar_toolbar.tbitem13.caption')" @exportexcel="toolbar_click({ tag: 'tbitem13' }, $event)"></app-export-excel>
<div slot='content'>{{$t('ibzdict.gridviewtoolbar_toolbar.tbitem13.tip')}}</div>
<app-export-excel :item="toolBarModels.tbitem13" :caption="$t('entities.ibzdict.gridviewtoolbar_toolbar.tbitem13.caption')" @exportexcel="toolbar_click({ tag: 'tbitem13' }, $event)"></app-export-excel>
<div slot='content'>{{$t('entities.ibzdict.gridviewtoolbar_toolbar.tbitem13.tip')}}</div>
</tooltip>
<span class='seperator'>|</span> <dropdown v-show="toolBarModels.tbitem16.visabled" trigger='click'>
<tooltip :transfer="true" :max-width="600">
<i-button class=''>
<i class=''></i>
<span class='caption'>{{$t('ibzdict.gridviewtoolbar_toolbar.tbitem16.caption')}}</span>
<span class='caption'>{{$t('entities.ibzdict.gridviewtoolbar_toolbar.tbitem16.caption')}}</span>
<icon type="ios-arrow-down"></icon>
</i-button>
<div slot='content'>{{$t('ibzdict.gridviewtoolbar_toolbar.tbitem16.tip')}}</div>
<div slot='content'>{{$t('entities.ibzdict.gridviewtoolbar_toolbar.tbitem16.tip')}}</div>
</tooltip>
<dropdown-menu slot='list'>
<dropdown-item>
<tooltip :transfer="true" :max-width="600">
<i-button v-show="toolBarModels.tbitem21.visabled" :disabled="toolBarModels.tbitem21.disabled" class='' @click="toolbar_click({ tag: 'tbitem21' }, $event)">
<i class='fa fa-download'></i>
<span class='caption'>{{$t('ibzdict.gridviewtoolbar_toolbar.tbitem21.caption')}}</span>
<span class='caption'>{{$t('entities.ibzdict.gridviewtoolbar_toolbar.tbitem21.caption')}}</span>
</i-button>
<div slot='content'>{{$t('ibzdict.gridviewtoolbar_toolbar.tbitem21.tip')}}</div>
<div slot='content'>{{$t('entities.ibzdict.gridviewtoolbar_toolbar.tbitem21.tip')}}</div>
</tooltip>
......@@ -69,9 +69,9 @@
<tooltip :transfer="true" :max-width="600">
<i-button v-show="toolBarModels.tbitem23.visabled" :disabled="toolBarModels.tbitem23.disabled" class='' @click="toolbar_click({ tag: 'tbitem23' }, $event)">
<i class='fa fa-upload'></i>
<span class='caption'>{{$t('ibzdict.gridviewtoolbar_toolbar.tbitem23.caption')}}</span>
<span class='caption'>{{$t('entities.ibzdict.gridviewtoolbar_toolbar.tbitem23.caption')}}</span>
</i-button>
<div slot='content'>{{$t('ibzdict.gridviewtoolbar_toolbar.tbitem23.tip')}}</div>
<div slot='content'>{{$t('entities.ibzdict.gridviewtoolbar_toolbar.tbitem23.tip')}}</div>
</tooltip>
......@@ -81,16 +81,16 @@
<span class='seperator'>|</span> <tooltip :transfer="true" :max-width="600">
<i-button v-show="toolBarModels.tbitem19.visabled" :disabled="toolBarModels.tbitem19.disabled" class='' @click="toolbar_click({ tag: 'tbitem19' }, $event)">
<i class='fa fa-filter'></i>
<span class='caption'>{{$t('ibzdict.gridviewtoolbar_toolbar.tbitem19.caption')}}</span>
<span class='caption'>{{$t('entities.ibzdict.gridviewtoolbar_toolbar.tbitem19.caption')}}</span>
</i-button>
<div slot='content'>{{$t('ibzdict.gridviewtoolbar_toolbar.tbitem19.tip')}}</div>
<div slot='content'>{{$t('entities.ibzdict.gridviewtoolbar_toolbar.tbitem19.tip')}}</div>
</tooltip>
<tooltip :transfer="true" :max-width="600">
<i-button v-show="toolBarModels.tbitem18.visabled" :disabled="toolBarModels.tbitem18.disabled" class='' @click="toolbar_click({ tag: 'tbitem18' }, $event)">
<i class='fa fa-question'></i>
<span class='caption'>{{$t('ibzdict.gridviewtoolbar_toolbar.tbitem18.caption')}}</span>
<span class='caption'>{{$t('entities.ibzdict.gridviewtoolbar_toolbar.tbitem18.caption')}}</span>
</i-button>
<div slot='content'>{{$t('ibzdict.gridviewtoolbar_toolbar.tbitem18.tip')}}</div>
<div slot='content'>{{$t('entities.ibzdict.gridviewtoolbar_toolbar.tbitem18.tip')}}</div>
</tooltip>
</div>
</div>
......@@ -245,9 +245,9 @@ export default class IBZDictGridViewBase extends Vue {
* @memberof IBZDictGridViewBase
*/
protected model: any = {
srfCaption: 'ibzdict.views.gridview.caption',
srfTitle: 'ibzdict.views.gridview.title',
srfSubTitle: 'ibzdict.views.gridview.subtitle',
srfCaption: 'entities.ibzdict.views.gridview.caption',
srfTitle: 'entities.ibzdict.views.gridview.title',
srfSubTitle: 'entities.ibzdict.views.gridview.subtitle',
dataInfo: ''
}
......
......@@ -12,79 +12,79 @@
<tooltip :transfer="true" :max-width="600">
<i-button v-show="toolBarModels.tbitem3.visabled" :disabled="toolBarModels.tbitem3.disabled" class='' @click="toolbar_click({ tag: 'tbitem3' }, $event)">
<i class='fa fa-save'></i>
<span class='caption'>{{$t('ibzdictitem.editviewtoolbar_toolbar.tbitem3.caption')}}</span>
<span class='caption'>{{$t('entities.ibzdictitem.editviewtoolbar_toolbar.tbitem3.caption')}}</span>
</i-button>
<div slot='content'>{{$t('ibzdictitem.editviewtoolbar_toolbar.tbitem3.tip')}}</div>
<div slot='content'>{{$t('entities.ibzdictitem.editviewtoolbar_toolbar.tbitem3.tip')}}</div>
</tooltip>
<tooltip :transfer="true" :max-width="600">
<i-button v-show="toolBarModels.tbitem4.visabled" :disabled="toolBarModels.tbitem4.disabled" class='' @click="toolbar_click({ tag: 'tbitem4' }, $event)">
<i class='sx-tb-saveandnew'></i>
<span class='caption'>{{$t('ibzdictitem.editviewtoolbar_toolbar.tbitem4.caption')}}</span>
<span class='caption'>{{$t('entities.ibzdictitem.editviewtoolbar_toolbar.tbitem4.caption')}}</span>
</i-button>
<div slot='content'>{{$t('ibzdictitem.editviewtoolbar_toolbar.tbitem4.tip')}}</div>
<div slot='content'>{{$t('entities.ibzdictitem.editviewtoolbar_toolbar.tbitem4.tip')}}</div>
</tooltip>
<tooltip :transfer="true" :max-width="600">
<i-button v-show="toolBarModels.tbitem5.visabled" :disabled="toolBarModels.tbitem5.disabled" class='' @click="toolbar_click({ tag: 'tbitem5' }, $event)">
<i class='sx-tb-saveandclose'></i>
<span class='caption'>{{$t('ibzdictitem.editviewtoolbar_toolbar.tbitem5.caption')}}</span>
<span class='caption'>{{$t('entities.ibzdictitem.editviewtoolbar_toolbar.tbitem5.caption')}}</span>
</i-button>
<div slot='content'>{{$t('ibzdictitem.editviewtoolbar_toolbar.tbitem5.tip')}}</div>
<div slot='content'>{{$t('entities.ibzdictitem.editviewtoolbar_toolbar.tbitem5.tip')}}</div>
</tooltip>
<span class='seperator'>|</span> <tooltip :transfer="true" :max-width="600">
<i-button v-show="toolBarModels.tbitem7.visabled" :disabled="toolBarModels.tbitem7.disabled" class='' @click="toolbar_click({ tag: 'tbitem7' }, $event)">
<i class='fa fa-remove'></i>
<span class='caption'>{{$t('ibzdictitem.editviewtoolbar_toolbar.tbitem7.caption')}}</span>
<span class='caption'>{{$t('entities.ibzdictitem.editviewtoolbar_toolbar.tbitem7.caption')}}</span>
</i-button>
<div slot='content'>{{$t('ibzdictitem.editviewtoolbar_toolbar.tbitem7.tip')}}</div>
<div slot='content'>{{$t('entities.ibzdictitem.editviewtoolbar_toolbar.tbitem7.tip')}}</div>
</tooltip>
<span class='seperator'>|</span> <tooltip :transfer="true" :max-width="600">
<i-button v-show="toolBarModels.tbitem12.visabled" :disabled="toolBarModels.tbitem12.disabled" class='' @click="toolbar_click({ tag: 'tbitem12' }, $event)">
<i class='fa fa-file-text-o'></i>
<span class='caption'>{{$t('ibzdictitem.editviewtoolbar_toolbar.tbitem12.caption')}}</span>
<span class='caption'>{{$t('entities.ibzdictitem.editviewtoolbar_toolbar.tbitem12.caption')}}</span>
</i-button>
<div slot='content'>{{$t('ibzdictitem.editviewtoolbar_toolbar.tbitem12.tip')}}</div>
<div slot='content'>{{$t('entities.ibzdictitem.editviewtoolbar_toolbar.tbitem12.tip')}}</div>
</tooltip>
<span class='seperator'>|</span> <tooltip :transfer="true" :max-width="600">
<i-button v-show="toolBarModels.tbitem14.visabled" :disabled="toolBarModels.tbitem14.disabled" class='' @click="toolbar_click({ tag: 'tbitem14' }, $event)">
<i class='fa fa-copy'></i>
<span class='caption'>{{$t('ibzdictitem.editviewtoolbar_toolbar.tbitem14.caption')}}</span>
<span class='caption'>{{$t('entities.ibzdictitem.editviewtoolbar_toolbar.tbitem14.caption')}}</span>
</i-button>
<div slot='content'>{{$t('ibzdictitem.editviewtoolbar_toolbar.tbitem14.tip')}}</div>
<div slot='content'>{{$t('entities.ibzdictitem.editviewtoolbar_toolbar.tbitem14.tip')}}</div>
</tooltip>
<span class='seperator'>|</span> <tooltip :transfer="true" :max-width="600">
<i-button v-show="toolBarModels.tbitem23.visabled" :disabled="toolBarModels.tbitem23.disabled" class='' @click="toolbar_click({ tag: 'tbitem23' }, $event)">
<i class='fa fa-fast-backward'></i>
</i-button>
<div slot='content'>{{$t('ibzdictitem.editviewtoolbar_toolbar.tbitem23.tip')}}</div>
<div slot='content'>{{$t('entities.ibzdictitem.editviewtoolbar_toolbar.tbitem23.tip')}}</div>
</tooltip>
<tooltip :transfer="true" :max-width="600">
<i-button v-show="toolBarModels.tbitem24.visabled" :disabled="toolBarModels.tbitem24.disabled" class='' @click="toolbar_click({ tag: 'tbitem24' }, $event)">
<i class='fa fa-step-backward'></i>
</i-button>
<div slot='content'>{{$t('ibzdictitem.editviewtoolbar_toolbar.tbitem24.tip')}}</div>
<div slot='content'>{{$t('entities.ibzdictitem.editviewtoolbar_toolbar.tbitem24.tip')}}</div>
</tooltip>
<tooltip :transfer="true" :max-width="600">
<i-button v-show="toolBarModels.tbitem25.visabled" :disabled="toolBarModels.tbitem25.disabled" class='' @click="toolbar_click({ tag: 'tbitem25' }, $event)">
<i class='fa fa-step-forward'></i>
</i-button>
<div slot='content'>{{$t('ibzdictitem.editviewtoolbar_toolbar.tbitem25.tip')}}</div>
<div slot='content'>{{$t('entities.ibzdictitem.editviewtoolbar_toolbar.tbitem25.tip')}}</div>
</tooltip>
<tooltip :transfer="true" :max-width="600">
<i-button v-show="toolBarModels.tbitem26.visabled" :disabled="toolBarModels.tbitem26.disabled" class='' @click="toolbar_click({ tag: 'tbitem26' }, $event)">
<i class='fa fa-fast-forward'></i>
</i-button>
<div slot='content'>{{$t('ibzdictitem.editviewtoolbar_toolbar.tbitem26.tip')}}</div>
<div slot='content'>{{$t('entities.ibzdictitem.editviewtoolbar_toolbar.tbitem26.tip')}}</div>
</tooltip>
<span class='seperator'>|</span> <tooltip :transfer="true" :max-width="600">
<i-button v-show="toolBarModels.tbitem22.visabled" :disabled="toolBarModels.tbitem22.disabled" class='' @click="toolbar_click({ tag: 'tbitem22' }, $event)">
<i class='fa fa-question'></i>
<span class='caption'>{{$t('ibzdictitem.editviewtoolbar_toolbar.tbitem22.caption')}}</span>
<span class='caption'>{{$t('entities.ibzdictitem.editviewtoolbar_toolbar.tbitem22.caption')}}</span>
</i-button>
<div slot='content'>{{$t('ibzdictitem.editviewtoolbar_toolbar.tbitem22.tip')}}</div>
<div slot='content'>{{$t('entities.ibzdictitem.editviewtoolbar_toolbar.tbitem22.tip')}}</div>
</tooltip>
</div>
......@@ -223,9 +223,9 @@ export default class IBZDictItemEditViewBase extends Vue {
* @memberof IBZDictItemEditViewBase
*/
protected model: any = {
srfCaption: 'ibzdictitem.views.editview.caption',
srfTitle: 'ibzdictitem.views.editview.title',
srfSubTitle: 'ibzdictitem.views.editview.subtitle',
srfCaption: 'entities.ibzdictitem.views.editview.caption',
srfTitle: 'entities.ibzdictitem.views.editview.title',
srfSubTitle: 'entities.ibzdictitem.views.editview.subtitle',
dataInfo: ''
}
......
......@@ -15,52 +15,52 @@
<tooltip :transfer="true" :max-width="600">
<i-button v-show="toolBarModels.tbitem3.visabled" :disabled="toolBarModels.tbitem3.disabled" class='' @click="toolbar_click({ tag: 'tbitem3' }, $event)">
<i class='fa fa-file-text-o'></i>
<span class='caption'>{{$t('ibzdictitem.gridviewtoolbar_toolbar.tbitem3.caption')}}</span>
<span class='caption'>{{$t('entities.ibzdictitem.gridviewtoolbar_toolbar.tbitem3.caption')}}</span>
</i-button>
<div slot='content'>{{$t('ibzdictitem.gridviewtoolbar_toolbar.tbitem3.tip')}}</div>
<div slot='content'>{{$t('entities.ibzdictitem.gridviewtoolbar_toolbar.tbitem3.tip')}}</div>
</tooltip>
<tooltip :transfer="true" :max-width="600">
<i-button v-show="toolBarModels.tbitem4.visabled" :disabled="toolBarModels.tbitem4.disabled" class='' @click="toolbar_click({ tag: 'tbitem4' }, $event)">
<i class='fa fa-edit'></i>
<span class='caption'>{{$t('ibzdictitem.gridviewtoolbar_toolbar.tbitem4.caption')}}</span>
<span class='caption'>{{$t('entities.ibzdictitem.gridviewtoolbar_toolbar.tbitem4.caption')}}</span>
</i-button>
<div slot='content'>{{$t('ibzdictitem.gridviewtoolbar_toolbar.tbitem4.tip')}}</div>
<div slot='content'>{{$t('entities.ibzdictitem.gridviewtoolbar_toolbar.tbitem4.tip')}}</div>
</tooltip>
<tooltip :transfer="true" :max-width="600">
<i-button v-show="toolBarModels.tbitem6.visabled" :disabled="toolBarModels.tbitem6.disabled" class='' @click="toolbar_click({ tag: 'tbitem6' }, $event)">
<i class='fa fa-copy'></i>
<span class='caption'>{{$t('ibzdictitem.gridviewtoolbar_toolbar.tbitem6.caption')}}</span>
<span class='caption'>{{$t('entities.ibzdictitem.gridviewtoolbar_toolbar.tbitem6.caption')}}</span>
</i-button>
<div slot='content'>{{$t('ibzdictitem.gridviewtoolbar_toolbar.tbitem6.tip')}}</div>
<div slot='content'>{{$t('entities.ibzdictitem.gridviewtoolbar_toolbar.tbitem6.tip')}}</div>
</tooltip>
<span class='seperator'>|</span> <tooltip :transfer="true" :max-width="600">
<i-button v-show="toolBarModels.tbitem8.visabled" :disabled="toolBarModels.tbitem8.disabled" class='' @click="toolbar_click({ tag: 'tbitem8' }, $event)">
<i class='fa fa-remove'></i>
<span class='caption'>{{$t('ibzdictitem.gridviewtoolbar_toolbar.tbitem8.caption')}}</span>
<span class='caption'>{{$t('entities.ibzdictitem.gridviewtoolbar_toolbar.tbitem8.caption')}}</span>
</i-button>
<div slot='content'>{{$t('ibzdictitem.gridviewtoolbar_toolbar.tbitem8.tip')}}</div>
<div slot='content'>{{$t('entities.ibzdictitem.gridviewtoolbar_toolbar.tbitem8.tip')}}</div>
</tooltip>
<span class='seperator'>|</span> <tooltip :transfer="true" :max-width="600">
<app-export-excel :item="toolBarModels.tbitem13" :caption="$t('ibzdictitem.gridviewtoolbar_toolbar.tbitem13.caption')" @exportexcel="toolbar_click({ tag: 'tbitem13' }, $event)"></app-export-excel>
<div slot='content'>{{$t('ibzdictitem.gridviewtoolbar_toolbar.tbitem13.tip')}}</div>
<app-export-excel :item="toolBarModels.tbitem13" :caption="$t('entities.ibzdictitem.gridviewtoolbar_toolbar.tbitem13.caption')" @exportexcel="toolbar_click({ tag: 'tbitem13' }, $event)"></app-export-excel>
<div slot='content'>{{$t('entities.ibzdictitem.gridviewtoolbar_toolbar.tbitem13.tip')}}</div>
</tooltip>
<span class='seperator'>|</span> <dropdown v-show="toolBarModels.tbitem16.visabled" trigger='click'>
<tooltip :transfer="true" :max-width="600">
<i-button class=''>
<i class=''></i>
<span class='caption'>{{$t('ibzdictitem.gridviewtoolbar_toolbar.tbitem16.caption')}}</span>
<span class='caption'>{{$t('entities.ibzdictitem.gridviewtoolbar_toolbar.tbitem16.caption')}}</span>
<icon type="ios-arrow-down"></icon>
</i-button>
<div slot='content'>{{$t('ibzdictitem.gridviewtoolbar_toolbar.tbitem16.tip')}}</div>
<div slot='content'>{{$t('entities.ibzdictitem.gridviewtoolbar_toolbar.tbitem16.tip')}}</div>
</tooltip>
<dropdown-menu slot='list'>
<dropdown-item>
<tooltip :transfer="true" :max-width="600">
<i-button v-show="toolBarModels.tbitem21.visabled" :disabled="toolBarModels.tbitem21.disabled" class='' @click="toolbar_click({ tag: 'tbitem21' }, $event)">
<i class='fa fa-download'></i>
<span class='caption'>{{$t('ibzdictitem.gridviewtoolbar_toolbar.tbitem21.caption')}}</span>
<span class='caption'>{{$t('entities.ibzdictitem.gridviewtoolbar_toolbar.tbitem21.caption')}}</span>
</i-button>
<div slot='content'>{{$t('ibzdictitem.gridviewtoolbar_toolbar.tbitem21.tip')}}</div>
<div slot='content'>{{$t('entities.ibzdictitem.gridviewtoolbar_toolbar.tbitem21.tip')}}</div>
</tooltip>
......@@ -69,9 +69,9 @@
<tooltip :transfer="true" :max-width="600">
<i-button v-show="toolBarModels.tbitem23.visabled" :disabled="toolBarModels.tbitem23.disabled" class='' @click="toolbar_click({ tag: 'tbitem23' }, $event)">
<i class='fa fa-upload'></i>
<span class='caption'>{{$t('ibzdictitem.gridviewtoolbar_toolbar.tbitem23.caption')}}</span>
<span class='caption'>{{$t('entities.ibzdictitem.gridviewtoolbar_toolbar.tbitem23.caption')}}</span>
</i-button>
<div slot='content'>{{$t('ibzdictitem.gridviewtoolbar_toolbar.tbitem23.tip')}}</div>
<div slot='content'>{{$t('entities.ibzdictitem.gridviewtoolbar_toolbar.tbitem23.tip')}}</div>
</tooltip>
......@@ -81,16 +81,16 @@
<span class='seperator'>|</span> <tooltip :transfer="true" :max-width="600">
<i-button v-show="toolBarModels.tbitem19.visabled" :disabled="toolBarModels.tbitem19.disabled" class='' @click="toolbar_click({ tag: 'tbitem19' }, $event)">
<i class='fa fa-filter'></i>
<span class='caption'>{{$t('ibzdictitem.gridviewtoolbar_toolbar.tbitem19.caption')}}</span>
<span class='caption'>{{$t('entities.ibzdictitem.gridviewtoolbar_toolbar.tbitem19.caption')}}</span>
</i-button>
<div slot='content'>{{$t('ibzdictitem.gridviewtoolbar_toolbar.tbitem19.tip')}}</div>
<div slot='content'>{{$t('entities.ibzdictitem.gridviewtoolbar_toolbar.tbitem19.tip')}}</div>
</tooltip>
<tooltip :transfer="true" :max-width="600">
<i-button v-show="toolBarModels.tbitem18.visabled" :disabled="toolBarModels.tbitem18.disabled" class='' @click="toolbar_click({ tag: 'tbitem18' }, $event)">
<i class='fa fa-question'></i>
<span class='caption'>{{$t('ibzdictitem.gridviewtoolbar_toolbar.tbitem18.caption')}}</span>
<span class='caption'>{{$t('entities.ibzdictitem.gridviewtoolbar_toolbar.tbitem18.caption')}}</span>
</i-button>
<div slot='content'>{{$t('ibzdictitem.gridviewtoolbar_toolbar.tbitem18.tip')}}</div>
<div slot='content'>{{$t('entities.ibzdictitem.gridviewtoolbar_toolbar.tbitem18.tip')}}</div>
</tooltip>
</div>
</div>
......@@ -245,9 +245,9 @@ export default class IBZDictItemGridViewBase extends Vue {
* @memberof IBZDictItemGridViewBase
*/
protected model: any = {
srfCaption: 'ibzdictitem.views.gridview.caption',
srfTitle: 'ibzdictitem.views.gridview.title',
srfSubTitle: 'ibzdictitem.views.gridview.subtitle',
srfCaption: 'entities.ibzdictitem.views.gridview.caption',
srfTitle: 'entities.ibzdictitem.views.gridview.title',
srfSubTitle: 'entities.ibzdictitem.views.gridview.subtitle',
dataInfo: ''
}
......
......@@ -5,13 +5,13 @@
<i-col span="20">
<row>
<i-col v-show="detailsModel.n_ibzdictid_like.visible" :style="{}" :md="{ span: 12, offset: 0 }" :lg="{ span: 12, offset: 0 }" :xl="{ span: 12, offset: 0 }">
<app-form-item name='n_ibzdictid_like' :itemRules="this.rules.n_ibzdictid_like" class='' :caption="$t('ibzdict.default_searchform.details.n_ibzdictid_like')" uiStyle="DEFAULT" :labelWidth="130" :isShowCaption="true" :error="detailsModel.n_ibzdictid_like.error" :isEmptyCaption="false" labelPos="LEFT">
<app-form-item name='n_ibzdictid_like' :itemRules="this.rules.n_ibzdictid_like" class='' :caption="$t('entities.ibzdict.default_searchform.details.n_ibzdictid_like')" uiStyle="DEFAULT" :labelWidth="130" :isShowCaption="true" :error="detailsModel.n_ibzdictid_like.error" :isEmptyCaption="false" labelPos="LEFT">
<app-span :value="data.n_ibzdictid_like" style="width:100px;"></app-span>
</app-form-item>
</i-col>
<i-col v-show="detailsModel.n_ibzdictname_like.visible" :style="{}" :md="{ span: 12, offset: 0 }" :lg="{ span: 12, offset: 0 }" :xl="{ span: 12, offset: 0 }">
<app-form-item name='n_ibzdictname_like' :itemRules="this.rules.n_ibzdictname_like" class='' :caption="$t('ibzdict.default_searchform.details.n_ibzdictname_like')" uiStyle="DEFAULT" :labelWidth="130" :isShowCaption="true" :error="detailsModel.n_ibzdictname_like.error" :isEmptyCaption="false" labelPos="LEFT">
<app-form-item name='n_ibzdictname_like' :itemRules="this.rules.n_ibzdictname_like" class='' :caption="$t('entities.ibzdict.default_searchform.details.n_ibzdictname_like')" uiStyle="DEFAULT" :labelWidth="130" :isShowCaption="true" :error="detailsModel.n_ibzdictname_like.error" :isEmptyCaption="false" labelPos="LEFT">
<input-box v-model="data.n_ibzdictname_like" @enter="onEnter($event)" :disabled="detailsModel.n_ibzdictname_like.disabled" type='text' style="width:100px;"></input-box>
</app-form-item>
......
......@@ -4,17 +4,17 @@
<row >
<i-col v-show="detailsModel.group1.visible" :style="{}" :lg="{ span: 24, offset: 0 }">
<app-form-group layoutType="TABLE_24COL" titleStyle="" class='' uiActionGroup="detailsModel.group1.uiActionGroup" @groupuiactionclick="groupUIActionClick($event)" :caption="$t('ibzdict.main_form.details.group1')" :isShowCaption="true" uiStyle="DEFAULT" :titleBarCloseMode="0" :isInfoGroupMode="false">
<app-form-group layoutType="TABLE_24COL" titleStyle="" class='' uiActionGroup="detailsModel.group1.uiActionGroup" @groupuiactionclick="groupUIActionClick($event)" :caption="$t('entities.ibzdict.main_form.details.group1')" :isShowCaption="true" uiStyle="DEFAULT" :titleBarCloseMode="0" :isInfoGroupMode="false">
<row>
<i-col v-show="detailsModel.ibzdictid.visible" :style="{}" :md="{ span: 12, offset: 0 }" :lg="{ span: 12, offset: 0 }" :xl="{ span: 12, offset: 0 }">
<app-form-item name='ibzdictid' :itemRules="this.rules.ibzdictid" class='' :caption="$t('ibzdict.main_form.details.ibzdictid')" uiStyle="DEFAULT" :labelWidth="130" :isShowCaption="true" :error="detailsModel.ibzdictid.error" :isEmptyCaption="false" labelPos="LEFT">
<app-form-item name='ibzdictid' :itemRules="this.rules.ibzdictid" class='' :caption="$t('entities.ibzdict.main_form.details.ibzdictid')" uiStyle="DEFAULT" :labelWidth="130" :isShowCaption="true" :error="detailsModel.ibzdictid.error" :isEmptyCaption="false" labelPos="LEFT">
<input-box v-model="data.ibzdictid" @enter="onEnter($event)" unit="" :disabled="detailsModel.ibzdictid.disabled" type='text' style=""></input-box>
</app-form-item>
</i-col>
<i-col v-show="detailsModel.ibzdictname.visible" :style="{}" :md="{ span: 12, offset: 0 }" :lg="{ span: 12, offset: 0 }" :xl="{ span: 12, offset: 0 }">
<app-form-item name='ibzdictname' :itemRules="this.rules.ibzdictname" class='' :caption="$t('ibzdict.main_form.details.ibzdictname')" uiStyle="DEFAULT" :labelWidth="130" :isShowCaption="true" :error="detailsModel.ibzdictname.error" :isEmptyCaption="false" labelPos="LEFT">
<app-form-item name='ibzdictname' :itemRules="this.rules.ibzdictname" class='' :caption="$t('entities.ibzdict.main_form.details.ibzdictname')" uiStyle="DEFAULT" :labelWidth="130" :isShowCaption="true" :error="detailsModel.ibzdictname.error" :isEmptyCaption="false" labelPos="LEFT">
<input-box v-model="data.ibzdictname" @enter="onEnter($event)" unit="" :disabled="detailsModel.ibzdictname.disabled" type='text' style=""></input-box>
</app-form-item>
......@@ -437,7 +437,7 @@ export default class MainBase extends Vue implements ControlInterface {
* @memberof Main
*/
protected detailsModel: any = {
group1: new FormGroupPanelModel({ caption: '字典基本信息', detailType: 'GROUPPANEL', name: 'group1', visible: true, isShowCaption: true, form: this, uiActionGroup: { caption: '', langbase: 'ibzdict.main_form', extractMode: 'ITEM', details: [] } })
group1: new FormGroupPanelModel({ caption: '字典基本信息', detailType: 'GROUPPANEL', name: 'group1', visible: true, isShowCaption: true, form: this, uiActionGroup: { caption: '', langbase: 'entities.ibzdict.main_form', extractMode: 'ITEM', details: [] } })
,
formpage1: new FormPageModel({ caption: '基本信息', detailType: 'FORMPAGE', name: 'formpage1', visible: true, isShowCaption: true, form: this })
,
......
......@@ -17,21 +17,21 @@
<el-table-column align="center" type='selection' :width="checkboxColWidth"></el-table-column>
</template>
<template v-if="getColumnState('ibzdictid')">
<el-table-column show-overflow-tooltip :prop="'ibzdictid'" :label="$t('ibzdict.main_grid.columns.ibzdictid')" :width="250" :align="'left'" :sortable="'custom'">
<el-table-column show-overflow-tooltip :prop="'ibzdictid'" :label="$t('entities.ibzdict.main_grid.columns.ibzdictid')" :width="250" :align="'left'" :sortable="'custom'">
<template v-slot="{row,column}">
<span>{{row.ibzdictid}}</span>
</template>
</el-table-column>
</template>
<template v-if="getColumnState('ibzdictname')">
<el-table-column show-overflow-tooltip :prop="'ibzdictname'" :label="$t('ibzdict.main_grid.columns.ibzdictname')" :width="350" :align="'left'" :sortable="'custom'">
<el-table-column show-overflow-tooltip :prop="'ibzdictname'" :label="$t('entities.ibzdict.main_grid.columns.ibzdictname')" :width="350" :align="'left'" :sortable="'custom'">
<template v-slot="{row,column}">
<span>{{row.ibzdictname}}</span>
</template>
</el-table-column>
</template>
<template v-if="getColumnState('updatedate')">
<el-table-column show-overflow-tooltip :prop="'updatedate'" :label="$t('ibzdict.main_grid.columns.updatedate')" :width="250" :align="'left'" :sortable="'custom'">
<el-table-column show-overflow-tooltip :prop="'updatedate'" :label="$t('entities.ibzdict.main_grid.columns.updatedate')" :width="250" :align="'left'" :sortable="'custom'">
<template v-slot="{row,column}">
<app-format-data format="YYYY-MM-DD hh:mm:ss" :data="row.updatedate"></app-format-data>
</template>
......@@ -511,21 +511,21 @@ export default class MainBase extends Vue implements ControlInterface {
{
name: 'ibzdictid',
label: '字典标识',
langtag: 'ibzdict.main_grid.columns.ibzdictid',
langtag: 'entities.ibzdict.main_grid.columns.ibzdictid',
show: true,
util: 'PX'
},
{
name: 'ibzdictname',
label: '字典名称',
langtag: 'ibzdict.main_grid.columns.ibzdictname',
langtag: 'entities.ibzdict.main_grid.columns.ibzdictname',
show: true,
util: 'PX'
},
{
name: 'updatedate',
label: '更新时间',
langtag: 'ibzdict.main_grid.columns.updatedate',
langtag: 'entities.ibzdict.main_grid.columns.updatedate',
show: true,
util: 'PX'
},
......
......@@ -5,13 +5,13 @@
<i-col span="20">
<row>
<i-col v-show="detailsModel.n_ibzdictitemname_like.visible" :style="{}" :md="{ span: 12, offset: 0 }" :lg="{ span: 12, offset: 0 }" :xl="{ span: 12, offset: 0 }">
<app-form-item name='n_ibzdictitemname_like' :itemRules="this.rules.n_ibzdictitemname_like" class='' :caption="$t('ibzdictitem.default_searchform.details.n_ibzdictitemname_like')" uiStyle="DEFAULT" :labelWidth="130" :isShowCaption="true" :error="detailsModel.n_ibzdictitemname_like.error" :isEmptyCaption="false" labelPos="LEFT">
<app-form-item name='n_ibzdictitemname_like' :itemRules="this.rules.n_ibzdictitemname_like" class='' :caption="$t('entities.ibzdictitem.default_searchform.details.n_ibzdictitemname_like')" uiStyle="DEFAULT" :labelWidth="130" :isShowCaption="true" :error="detailsModel.n_ibzdictitemname_like.error" :isEmptyCaption="false" labelPos="LEFT">
<input-box v-model="data.n_ibzdictitemname_like" @enter="onEnter($event)" :disabled="detailsModel.n_ibzdictitemname_like.disabled" type='text' style="width:100px;"></input-box>
</app-form-item>
</i-col>
<i-col v-show="detailsModel.n_dictitemval_like.visible" :style="{}" :md="{ span: 12, offset: 0 }" :lg="{ span: 12, offset: 0 }" :xl="{ span: 12, offset: 0 }">
<app-form-item name='n_dictitemval_like' :itemRules="this.rules.n_dictitemval_like" class='' :caption="$t('ibzdictitem.default_searchform.details.n_dictitemval_like')" uiStyle="DEFAULT" :labelWidth="130" :isShowCaption="true" :error="detailsModel.n_dictitemval_like.error" :isEmptyCaption="false" labelPos="LEFT">
<app-form-item name='n_dictitemval_like' :itemRules="this.rules.n_dictitemval_like" class='' :caption="$t('entities.ibzdictitem.default_searchform.details.n_dictitemval_like')" uiStyle="DEFAULT" :labelWidth="130" :isShowCaption="true" :error="detailsModel.n_dictitemval_like.error" :isEmptyCaption="false" labelPos="LEFT">
<input-box v-model="data.n_dictitemval_like" @enter="onEnter($event)" :disabled="detailsModel.n_dictitemval_like.disabled" type='text' style="width:100px;"></input-box>
</app-form-item>
......
......@@ -4,47 +4,47 @@
<row >
<i-col v-show="detailsModel.group1.visible" :style="{}" :lg="{ span: 24, offset: 0 }">
<app-form-group layoutType="TABLE_24COL" titleStyle="" class='' uiActionGroup="detailsModel.group1.uiActionGroup" @groupuiactionclick="groupUIActionClick($event)" :caption="$t('ibzdictitem.main_form.details.group1')" :isShowCaption="false" uiStyle="DEFAULT" :titleBarCloseMode="0" :isInfoGroupMode="false">
<app-form-group layoutType="TABLE_24COL" titleStyle="" class='' uiActionGroup="detailsModel.group1.uiActionGroup" @groupuiactionclick="groupUIActionClick($event)" :caption="$t('entities.ibzdictitem.main_form.details.group1')" :isShowCaption="false" uiStyle="DEFAULT" :titleBarCloseMode="0" :isInfoGroupMode="false">
<row>
<i-col v-show="detailsModel.ibzdictitemname.visible" :style="{}" :md="{ span: 12, offset: 0 }" :lg="{ span: 8, offset: 0 }" :xl="{ span: 6, offset: 0 }">
<app-form-item name='ibzdictitemname' :itemRules="this.rules.ibzdictitemname" class='' :caption="$t('ibzdictitem.main_form.details.ibzdictitemname')" uiStyle="DEFAULT" :labelWidth="130" :isShowCaption="true" :error="detailsModel.ibzdictitemname.error" :isEmptyCaption="false" labelPos="LEFT">
<app-form-item name='ibzdictitemname' :itemRules="this.rules.ibzdictitemname" class='' :caption="$t('entities.ibzdictitem.main_form.details.ibzdictitemname')" uiStyle="DEFAULT" :labelWidth="130" :isShowCaption="true" :error="detailsModel.ibzdictitemname.error" :isEmptyCaption="false" labelPos="LEFT">
<input-box v-model="data.ibzdictitemname" @enter="onEnter($event)" unit="" :disabled="detailsModel.ibzdictitemname.disabled" type='text' style=""></input-box>
</app-form-item>
</i-col>
<i-col v-show="detailsModel.dictitemval.visible" :style="{}" :md="{ span: 12, offset: 0 }" :lg="{ span: 8, offset: 0 }" :xl="{ span: 6, offset: 0 }">
<app-form-item name='dictitemval' :itemRules="this.rules.dictitemval" class='' :caption="$t('ibzdictitem.main_form.details.dictitemval')" uiStyle="DEFAULT" :labelWidth="130" :isShowCaption="true" :error="detailsModel.dictitemval.error" :isEmptyCaption="false" labelPos="LEFT">
<app-form-item name='dictitemval' :itemRules="this.rules.dictitemval" class='' :caption="$t('entities.ibzdictitem.main_form.details.dictitemval')" uiStyle="DEFAULT" :labelWidth="130" :isShowCaption="true" :error="detailsModel.dictitemval.error" :isEmptyCaption="false" labelPos="LEFT">
<input-box v-model="data.dictitemval" @enter="onEnter($event)" unit="" :disabled="detailsModel.dictitemval.disabled" type='text' style=""></input-box>
</app-form-item>
</i-col>
<i-col v-show="detailsModel.pitemval.visible" :style="{}" :md="{ span: 12, offset: 0 }" :lg="{ span: 8, offset: 0 }" :xl="{ span: 6, offset: 0 }">
<app-form-item name='pitemval' :itemRules="this.rules.pitemval" class='' :caption="$t('ibzdictitem.main_form.details.pitemval')" uiStyle="DEFAULT" :labelWidth="130" :isShowCaption="true" :error="detailsModel.pitemval.error" :isEmptyCaption="false" labelPos="LEFT">
<app-form-item name='pitemval' :itemRules="this.rules.pitemval" class='' :caption="$t('entities.ibzdictitem.main_form.details.pitemval')" uiStyle="DEFAULT" :labelWidth="130" :isShowCaption="true" :error="detailsModel.pitemval.error" :isEmptyCaption="false" labelPos="LEFT">
<input-box v-model="data.pitemval" @enter="onEnter($event)" unit="" :disabled="detailsModel.pitemval.disabled" type='text' style=""></input-box>
</app-form-item>
</i-col>
<i-col v-show="detailsModel.itemfilter.visible" :style="{}" :md="{ span: 12, offset: 0 }" :lg="{ span: 8, offset: 0 }" :xl="{ span: 6, offset: 0 }">
<app-form-item name='itemfilter' :itemRules="this.rules.itemfilter" class='' :caption="$t('ibzdictitem.main_form.details.itemfilter')" uiStyle="DEFAULT" :labelWidth="130" :isShowCaption="true" :error="detailsModel.itemfilter.error" :isEmptyCaption="false" labelPos="LEFT">
<app-form-item name='itemfilter' :itemRules="this.rules.itemfilter" class='' :caption="$t('entities.ibzdictitem.main_form.details.itemfilter')" uiStyle="DEFAULT" :labelWidth="130" :isShowCaption="true" :error="detailsModel.itemfilter.error" :isEmptyCaption="false" labelPos="LEFT">
<input-box v-model="data.itemfilter" @enter="onEnter($event)" unit="" :disabled="detailsModel.itemfilter.disabled" type='text' style=""></input-box>
</app-form-item>
</i-col>
<i-col v-show="detailsModel.itemcls.visible" :style="{}" :md="{ span: 12, offset: 0 }" :lg="{ span: 8, offset: 0 }" :xl="{ span: 6, offset: 0 }">
<app-form-item name='itemcls' :itemRules="this.rules.itemcls" class='' :caption="$t('ibzdictitem.main_form.details.itemcls')" uiStyle="DEFAULT" :labelWidth="130" :isShowCaption="true" :error="detailsModel.itemcls.error" :isEmptyCaption="false" labelPos="LEFT">
<app-form-item name='itemcls' :itemRules="this.rules.itemcls" class='' :caption="$t('entities.ibzdictitem.main_form.details.itemcls')" uiStyle="DEFAULT" :labelWidth="130" :isShowCaption="true" :error="detailsModel.itemcls.error" :isEmptyCaption="false" labelPos="LEFT">
<input-box v-model="data.itemcls" @enter="onEnter($event)" unit="" :disabled="detailsModel.itemcls.disabled" type='text' style=""></input-box>
</app-form-item>
</i-col>
<i-col v-show="detailsModel.itemicon.visible" :style="{}" :md="{ span: 12, offset: 0 }" :lg="{ span: 8, offset: 0 }" :xl="{ span: 6, offset: 0 }">
<app-form-item name='itemicon' :itemRules="this.rules.itemicon" class='' :caption="$t('ibzdictitem.main_form.details.itemicon')" uiStyle="DEFAULT" :labelWidth="130" :isShowCaption="true" :error="detailsModel.itemicon.error" :isEmptyCaption="false" labelPos="LEFT">
<app-form-item name='itemicon' :itemRules="this.rules.itemicon" class='' :caption="$t('entities.ibzdictitem.main_form.details.itemicon')" uiStyle="DEFAULT" :labelWidth="130" :isShowCaption="true" :error="detailsModel.itemicon.error" :isEmptyCaption="false" labelPos="LEFT">
<input-box v-model="data.itemicon" @enter="onEnter($event)" unit="" :disabled="detailsModel.itemicon.disabled" type='text' style=""></input-box>
</app-form-item>
</i-col>
<i-col v-show="detailsModel.showorder.visible" :style="{}" :md="{ span: 12, offset: 0 }" :lg="{ span: 8, offset: 0 }" :xl="{ span: 6, offset: 0 }">
<app-form-item name='showorder' :itemRules="this.rules.showorder" class='' :caption="$t('ibzdictitem.main_form.details.showorder')" uiStyle="DEFAULT" :labelWidth="130" :isShowCaption="true" :error="detailsModel.showorder.error" :isEmptyCaption="false" labelPos="LEFT">
<app-form-item name='showorder' :itemRules="this.rules.showorder" class='' :caption="$t('entities.ibzdictitem.main_form.details.showorder')" uiStyle="DEFAULT" :labelWidth="130" :isShowCaption="true" :error="detailsModel.showorder.error" :isEmptyCaption="false" labelPos="LEFT">
<input-box v-model="data.showorder" @enter="onEnter($event)" unit="" :disabled="detailsModel.showorder.disabled" type='number' style=""></input-box>
</app-form-item>
......@@ -516,7 +516,7 @@ export default class MainBase extends Vue implements ControlInterface {
* @memberof Main
*/
protected detailsModel: any = {
group1: new FormGroupPanelModel({ caption: '字典项目基本信息', detailType: 'GROUPPANEL', name: 'group1', visible: true, isShowCaption: false, form: this, uiActionGroup: { caption: '', langbase: 'ibzdictitem.main_form', extractMode: 'ITEM', details: [] } })
group1: new FormGroupPanelModel({ caption: '字典项目基本信息', detailType: 'GROUPPANEL', name: 'group1', visible: true, isShowCaption: false, form: this, uiActionGroup: { caption: '', langbase: 'entities.ibzdictitem.main_form', extractMode: 'ITEM', details: [] } })
,
formpage1: new FormPageModel({ caption: '基本信息', detailType: 'FORMPAGE', name: 'formpage1', visible: true, isShowCaption: true, form: this })
,
......
......@@ -17,56 +17,56 @@
<el-table-column align="center" type='selection' :width="checkboxColWidth"></el-table-column>
</template>
<template v-if="getColumnState('ibzdictitemname')">
<el-table-column show-overflow-tooltip :prop="'ibzdictitemname'" :label="$t('ibzdictitem.main_grid.columns.ibzdictitemname')" :width="250" :align="'left'" :sortable="'custom'">
<el-table-column show-overflow-tooltip :prop="'ibzdictitemname'" :label="$t('entities.ibzdictitem.main_grid.columns.ibzdictitemname')" :width="250" :align="'left'" :sortable="'custom'">
<template v-slot="{row,column}">
<span>{{row.ibzdictitemname}}</span>
</template>
</el-table-column>
</template>
<template v-if="getColumnState('dictitemval')">
<el-table-column show-overflow-tooltip :prop="'dictitemval'" :label="$t('ibzdictitem.main_grid.columns.dictitemval')" :width="200" :align="'left'" :sortable="'custom'">
<el-table-column show-overflow-tooltip :prop="'dictitemval'" :label="$t('entities.ibzdictitem.main_grid.columns.dictitemval')" :width="200" :align="'left'" :sortable="'custom'">
<template v-slot="{row,column}">
<span>{{row.dictitemval}}</span>
</template>
</el-table-column>
</template>
<template v-if="getColumnState('pitemval')">
<el-table-column show-overflow-tooltip :prop="'pitemval'" :label="$t('ibzdictitem.main_grid.columns.pitemval')" :width="200" :align="'left'" :sortable="'custom'">
<el-table-column show-overflow-tooltip :prop="'pitemval'" :label="$t('entities.ibzdictitem.main_grid.columns.pitemval')" :width="200" :align="'left'" :sortable="'custom'">
<template v-slot="{row,column}">
<span>{{row.pitemval}}</span>
</template>
</el-table-column>
</template>
<template v-if="getColumnState('itemfilter')">
<el-table-column show-overflow-tooltip :prop="'itemfilter'" :label="$t('ibzdictitem.main_grid.columns.itemfilter')" :width="100" :align="'left'" :sortable="'custom'">
<el-table-column show-overflow-tooltip :prop="'itemfilter'" :label="$t('entities.ibzdictitem.main_grid.columns.itemfilter')" :width="100" :align="'left'" :sortable="'custom'">
<template v-slot="{row,column}">
<span>{{row.itemfilter}}</span>
</template>
</el-table-column>
</template>
<template v-if="getColumnState('itemcls')">
<el-table-column show-overflow-tooltip :prop="'itemcls'" :label="$t('ibzdictitem.main_grid.columns.itemcls')" :width="100" :align="'left'" :sortable="'custom'">
<el-table-column show-overflow-tooltip :prop="'itemcls'" :label="$t('entities.ibzdictitem.main_grid.columns.itemcls')" :width="100" :align="'left'" :sortable="'custom'">
<template v-slot="{row,column}">
<span>{{row.itemcls}}</span>
</template>
</el-table-column>
</template>
<template v-if="getColumnState('itemicon')">
<el-table-column show-overflow-tooltip :prop="'itemicon'" :label="$t('ibzdictitem.main_grid.columns.itemicon')" :width="100" :align="'left'" :sortable="'custom'">
<el-table-column show-overflow-tooltip :prop="'itemicon'" :label="$t('entities.ibzdictitem.main_grid.columns.itemicon')" :width="100" :align="'left'" :sortable="'custom'">
<template v-slot="{row,column}">
<span>{{row.itemicon}}</span>
</template>
</el-table-column>
</template>
<template v-if="getColumnState('showorder')">
<el-table-column show-overflow-tooltip :prop="'showorder'" :label="$t('ibzdictitem.main_grid.columns.showorder')" :width="100" :align="'left'" :sortable="'custom'">
<el-table-column show-overflow-tooltip :prop="'showorder'" :label="$t('entities.ibzdictitem.main_grid.columns.showorder')" :width="100" :align="'left'" :sortable="'custom'">
<template v-slot="{row,column}">
<span>{{row.showorder}}</span>
</template>
</el-table-column>
</template>
<template v-if="getColumnState('updatedate')">
<el-table-column show-overflow-tooltip :prop="'updatedate'" :label="$t('ibzdictitem.main_grid.columns.updatedate')" :width="250" :align="'left'" :sortable="'custom'">
<el-table-column show-overflow-tooltip :prop="'updatedate'" :label="$t('entities.ibzdictitem.main_grid.columns.updatedate')" :width="250" :align="'left'" :sortable="'custom'">
<template v-slot="{row,column}">
<app-format-data format="YYYY-MM-DD hh:mm:ss" :data="row.updatedate"></app-format-data>
</template>
......@@ -546,56 +546,56 @@ export default class MainBase extends Vue implements ControlInterface {
{
name: 'ibzdictitemname',
label: '栏目显示值',
langtag: 'ibzdictitem.main_grid.columns.ibzdictitemname',
langtag: 'entities.ibzdictitem.main_grid.columns.ibzdictitemname',
show: true,
util: 'PX'
},
{
name: 'dictitemval',
label: '栏目值',
langtag: 'ibzdictitem.main_grid.columns.dictitemval',
langtag: 'entities.ibzdictitem.main_grid.columns.dictitemval',
show: true,
util: 'PX'
},
{
name: 'pitemval',
label: '父栏目值',
langtag: 'ibzdictitem.main_grid.columns.pitemval',
langtag: 'entities.ibzdictitem.main_grid.columns.pitemval',
show: true,
util: 'PX'
},
{
name: 'itemfilter',
label: '过滤项',
langtag: 'ibzdictitem.main_grid.columns.itemfilter',
langtag: 'entities.ibzdictitem.main_grid.columns.itemfilter',
show: true,
util: 'PX'
},
{
name: 'itemcls',
label: '栏目样式',
langtag: 'ibzdictitem.main_grid.columns.itemcls',
langtag: 'entities.ibzdictitem.main_grid.columns.itemcls',
show: true,
util: 'PX'
},
{
name: 'itemicon',
label: '图标',
langtag: 'ibzdictitem.main_grid.columns.itemicon',
langtag: 'entities.ibzdictitem.main_grid.columns.itemicon',
show: true,
util: 'PX'
},
{
name: 'showorder',
label: '排序',
langtag: 'ibzdictitem.main_grid.columns.showorder',
langtag: 'entities.ibzdictitem.main_grid.columns.showorder',
show: true,
util: 'PX'
},
{
name: 'updatedate',
label: '更新时间',
langtag: 'ibzdictitem.main_grid.columns.updatedate',
langtag: 'entities.ibzdictitem.main_grid.columns.updatedate',
show: true,
util: 'PX'
},
......
......@@ -6,12 +6,14 @@ import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.context.annotation.Configuration;
import org.springframework.transaction.annotation.EnableTransactionManagement;
import org.springframework.boot.SpringApplication;
import org.springframework.cloud.openfeign.EnableFeignClients;
@Slf4j
@EnableDiscoveryClient
@Configuration
@EnableTransactionManagement
@SpringBootApplication
@EnableFeignClients(basePackages = {"cn.ibizlab" })
public class DevBootApplication{
public static void main(String[] args) {
......
......@@ -10,6 +10,7 @@ import org.springframework.context.annotation.Configuration;
import org.springframework.http.HttpMethod;
import org.springframework.security.authentication.AuthenticationManager;
import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
......@@ -21,6 +22,7 @@ import org.springframework.security.web.authentication.UsernamePasswordAuthentic
@Configuration
@EnableWebSecurity
@EnableGlobalMethodSecurity(prePostEnabled = true)
public class DevBootSecurityConfig extends WebSecurityConfigurerAdapter {
@Autowired
......
[
{
"dename":"IBZDictItem",
"delogicname":"字典项目",
"sysmoudle":{"id":"DICT","name":"dict"},
"dedataset":[{"id":"Default","name":"默认数据集"}],
"dedatarange":[{"id":"ALL","name":"全部数据"},{"id":"CUR_ORG","name":"当前部门"}],
"deprivs":[{"id":"READ","name":"READ"},{"id":"CREATE","name":"CREATE"},{"id":"UPDATE","name":"UPDATE"},{"id":"DELETE","name":"DELETE"}]
}
,
{
"dename":"IBZDict",
"delogicname":"数据字典",
"sysmoudle":{"id":"DICT","name":"dict"},
"dedataset":[{"id":"Default","name":"默认数据集"}],
"dedatarange":[{"id":"ALL","name":"全部数据"},{"id":"CUR_ORG","name":"当前部门"}],
"deprivs":[{"id":"READ","name":"READ"},{"id":"CREATE","name":"CREATE"},{"id":"UPDATE","name":"UPDATE"},{"id":"DELETE","name":"DELETE"}]
}
]
......@@ -23,6 +23,7 @@ import org.springframework.data.domain.PageImpl;
import org.springframework.data.domain.Pageable;
import org.springframework.util.StringUtils;
import org.springframework.context.annotation.Lazy;
import org.springframework.security.access.prepost.PreAuthorize;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
......@@ -61,6 +62,7 @@ public class IBZDictResource {
@PreAuthorize("hasPermission(#ibzdict_id,'READ',this.getEntity())")
@ApiOperation(value = "Get", tags = {"IBZDict" }, notes = "Get")
@RequestMapping(method = RequestMethod.GET, value = "/ibzdicts/{ibzdict_id}")
public ResponseEntity<IBZDictDTO> get(@PathVariable("ibzdict_id") String ibzdict_id) {
......@@ -72,6 +74,7 @@ public class IBZDictResource {
@PreAuthorize("hasPermission('','CREATE',this.getEntity())")
@ApiOperation(value = "Create", tags = {"IBZDict" }, notes = "Create")
@RequestMapping(method = RequestMethod.POST, value = "/ibzdicts")
@Transactional
......@@ -82,6 +85,7 @@ public class IBZDictResource {
return ResponseEntity.status(HttpStatus.OK).body(dto);
}
@PreAuthorize("hasPermission('','CREATE',this.getEntity())")
@ApiOperation(value = "createBatch", tags = {"createBatch" }, notes = "createBatch")
@RequestMapping(method = RequestMethod.POST, value = "/ibzdicts/createbatch")
public ResponseEntity<Boolean> createBatch(@RequestBody List<IBZDictDTO> ibzdictdtos) {
......@@ -101,6 +105,7 @@ public class IBZDictResource {
@PreAuthorize("hasPermission('','CREATE',this.getEntity())")
@ApiOperation(value = "GetDraft", tags = {"IBZDict" }, notes = "GetDraft")
@RequestMapping(method = RequestMethod.GET, value = "/ibzdicts/getdraft")
public ResponseEntity<IBZDictDTO> getDraft() {
......@@ -110,6 +115,7 @@ public class IBZDictResource {
@PreAuthorize("hasPermission(#ibzdict_id,'UPDATE',this.getEntity())")
@ApiOperation(value = "Update", tags = {"IBZDict" }, notes = "Update")
@RequestMapping(method = RequestMethod.PUT, value = "/ibzdicts/{ibzdict_id}")
@Transactional
......@@ -121,6 +127,7 @@ public class IBZDictResource {
return ResponseEntity.status(HttpStatus.OK).body(dto);
}
@PreAuthorize("hasPermission(#ibzdict_id,'UPDATE',this.getEntity())")
@ApiOperation(value = "UpdateBatch", tags = {"UpdateBatch" }, notes = "UpdateBatch")
@RequestMapping(method = RequestMethod.POST, value = "/ibzdicts/updatebatch")
public ResponseEntity<Boolean> updateBatch(@RequestBody List<IBZDictDTO> ibzdictdtos) {
......@@ -131,6 +138,7 @@ public class IBZDictResource {
@PreAuthorize("hasPermission('DELETE',{#ibzdict_id,this.getEntity()})")
@ApiOperation(value = "Remove", tags = {"IBZDict" }, notes = "Remove")
@RequestMapping(method = RequestMethod.DELETE, value = "/ibzdicts/{ibzdict_id}")
@Transactional
......@@ -161,6 +169,7 @@ public class IBZDictResource {
return ResponseEntity.status(HttpStatus.OK).body(true);
}
@PreAuthorize("hasPermission('READ',{#context,'Default',this.getEntity()})")
@ApiOperation(value = "fetchDEFAULT", tags = {"IBZDict" } ,notes = "fetchDEFAULT")
@RequestMapping(method= RequestMethod.GET , value="/ibzdicts/fetchdefault")
public ResponseEntity<List<IBZDictDTO>> fetchDefault(IBZDictSearchContext context) {
......@@ -173,6 +182,7 @@ public class IBZDictResource {
.body(list);
}
@PreAuthorize("hasPermission('READ',{#context,'Default',this.getEntity()})")
@ApiOperation(value = "searchDEFAULT", tags = {"IBZDict" } ,notes = "searchDEFAULT")
@RequestMapping(method= RequestMethod.GET , value="/ibzdicts/searchdefault")
public ResponseEntity<Page<IBZDictDTO>> searchDefault(IBZDictSearchContext context) {
......@@ -182,4 +192,12 @@ public class IBZDictResource {
}
/**
* 用户权限校验
* @return
*/
public IBZDict getEntity(){
return new IBZDict();
}
}
package cn.ibizlab.util.client.uaa;
import com.alibaba.fastjson.JSONObject;
import org.springframework.stereotype.Component;
import java.util.Map;
@Component
public class UAAFallback implements UAAFeignClient {
@Override
public JSONObject getPermission(String userid, String systemid) {
return null;
}
@Override
public Map<String, Object> pushPermissionData(Map<String, Object> map, String systemid) {
return null;
}
@Override
public JSONObject createUser(JSONObject jsobject) {
return null;
}
@Override
public JSONObject updateUser(JSONObject jsobject) {
return null;
}
@Override
public void deleteUser(String userid) {
}
}
package cn.ibizlab.util.client.uaa;
import com.alibaba.fastjson.JSONObject;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.Map;
@FeignClient(value = "uaaweb",fallback = UAAFallback.class)
public interface UAAFeignClient
{
// @PostMapping("/uaaweb/uaa/custom/regissystem")
// JSONObject registPSSystem(@RequestBody PSSystem psSystem);
@GetMapping(value = "/uaaweb/uaa/sys_role/custom/getpermission")
JSONObject getPermission( @RequestParam("userid") String userid, @RequestParam("systemid") String systemid);
@PostMapping("/uaaweb/uaa/sys_role/custom/pushpermissiondata")
Map<String,Object> pushPermissionData(@RequestBody Map<String, Object> map, @RequestParam("systemid") String systemid);
@PostMapping(value = "/uaaweb/uaa/sys_role/custom/createuser")
JSONObject createUser(JSONObject jsobject);
@PostMapping(value = "uaaweb/uaa/sys_role/custom/updateuser")
JSONObject updateUser(JSONObject jsobject);
@PostMapping("/uaaweb/uaa/sys_role/custom/deleteuser")
void deleteUser(@RequestParam("userid") String userid);
}
package cn.ibizlab.util.job;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import cn.ibizlab.util.client.uaa.UAAFeignClient;
import org.apache.commons.io.IOUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
import org.springframework.stereotype.Component;
import java.io.InputStream;
import java.util.HashMap;
import java.util.Map;
import java.util.List;
import java.util.ArrayList;
import java.io.IOException;
/**
* 权限:向uaa同步当前系统菜单、权限资源任务类
*/
//@Component //开启此类需要保证Main中开启了feign :EnableFeignClients
public class PermissionSyncJob implements ApplicationRunner {
private Log log = LogFactory.getLog(PermissionSyncJob.class);
@Autowired
private UAAFeignClient client;
@Value("${ibiz.enablePermissionValid:false}")
boolean enablePermissionValid; //是否开启权限校验
@Value("${ibiz.systemid:2C40DFCD-0DF5-47BF-91A5-C45F810B0001}")
private String systemId;
@Override
public void run(ApplicationArguments args) throws Exception {
if(enablePermissionValid){
try {
InputStream permission= this.getClass().getResourceAsStream("/deprivs/DEPrivs.json"); //获取当前系统所有实体资源能力
String permissionResult = IOUtils.toString(permission,"UTF-8");
JSONArray jsonNodePermission = JSONArray.parseArray(permissionResult);
Map<String,Object> map=new HashMap<String,Object>();
map.put("menu",new JSONArray());
map.put("permission",jsonNodePermission);
client.pushPermissionData(map,systemId);
}
catch (Exception ex) {
log.error(String.format("向UAA同步数据发生错误,请检查UAA服务是否正常! [%s]",ex));
}
}
}
}
\ No newline at end of file
package cn.ibizlab.util.security;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import cn.ibizlab.util.domain.EntityBase;
import cn.ibizlab.util.filter.QueryWrapperContext;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.security.access.PermissionEvaluator;
import org.springframework.security.core.Authentication;
import org.springframework.stereotype.Component;
import org.springframework.util.StringUtils;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* spring security 权限管理类
* 重写权限控制方法
*/
@Component
public class AuthPermissionEvaluator implements PermissionEvaluator {
@Value("${ibiz.enablePermissionValid:false}")
boolean enablePermissionValid; //是否开启权限校验
/**
* 表格权限检查 :用于检查当前用户是否拥有表格数据的读取、删除权限
*
* @param authentication
* @param obj_action 表格行为,如:[READ,DELETE]
* @param grid_param 表格参数,如:当前表格所处实体(EntityName)、表格删除的数据主键(srfkeys)
* @return true/false true则允许当前行为,false拒绝行为
*/
@Override
public boolean hasPermission(Authentication authentication, Object obj_action, Object grid_param) {
if(AuthenticationUser.getAuthenticationUser().getSuperuser()==1 || !enablePermissionValid)
return true; //系统没开启权限、超级管理员 两种情况不进行权限检查
try{
String action = "";
if (obj_action instanceof String)
action = (String) obj_action;
if (StringUtils.isEmpty(action))
return false;
JSONObject permissionList= AuthenticationUser.getAuthenticationUser().getPermisionList();//获取权限列表
if(permissionList==null)
return false;
List param_list = (ArrayList) grid_param;
if(obj_action.equals("DELETE")){ //表格删除权限校验
Object srfkey =param_list.get(0);
EntityBase cur_entity = (EntityBase) param_list.get(1);
String entityName = cur_entity.getClass().getSimpleName();
ServiceImpl service= SpringContextHolder.getBean(String.format("%s%s",getBeanName(entityName),"ServiceImpl"));//获取当前实体service
JSONObject formDataAbility=permissionList.getJSONObject("dataAbility-form");//由于表格删除是不跟着dataSet走,所以此处走form获取权限
Map<String,String> permissionField=getPermissionField(cur_entity);//获取系统预置属性列表
String selectCond=generatePermissionSQLForm(formDataAbility,entityName,action,srfkey,permissionField);//拼接权限条件
if(StringUtils.isEmpty(selectCond))
return false;
QueryWrapper permissionCond=getPermissionCond(selectCond,permissionField);
return testDataAccess(service,permissionCond);//执行权限检查
}
else{ //表格查询权限校验
Object searchContext=param_list.get(0);
String dataSet=String.valueOf(param_list.get(1));
EntityBase cur_entity = (EntityBase) param_list.get(2);
String entityName = cur_entity.getClass().getSimpleName();
if(StringUtils.isEmpty(entityName)|| StringUtils.isEmpty(dataSet)|| StringUtils.isEmpty(action))
return false;
JSONObject gridDataAbility=permissionList.getJSONObject("dataAbility-grid");//获取表格的权限数据
Map<String,String> permissionField=getPermissionField(cur_entity);//获取系统预置属性列表
String selectCond=generatePermissionSQLGrid(gridDataAbility,entityName,action,dataSet,permissionField,null);//拼接权限条件
if(StringUtils.isEmpty(selectCond))
return false;
filterDataAccess(searchContext,selectCond);//过滤出权限内的数据
}
return true;
}catch (Exception e){
throw new RuntimeException("系统在进行权限检查时出现异常,原因为:"+e);
}
}
/**
* 表单权限检查 :用于检查当前用户是否拥有表单的新建、编辑、删除权限
*
* @param authentication
* @param srfkey 当前操作数据的主键
* @param action 当前操作行为:如:[READ、UPDATE、DELETE]
* @param cur_entity 当前操作的实体对象
* @return true/false true则允许当前行为,false拒绝行为
*/
@Override
public boolean hasPermission(Authentication authentication, Serializable srfkey, String action, Object cur_entity) {
if(AuthenticationUser.getAuthenticationUser().getSuperuser()==1 || !enablePermissionValid)
return true; //系统没开启权限、超级管理员 两种情况不进行权限检查
boolean isPermission;
EntityBase entityBase = null;
if (cur_entity instanceof EntityBase)
entityBase = (EntityBase) cur_entity;
if (StringUtils.isEmpty(entityBase))
return false;
try {
String entityName = entityBase.getClass().getSimpleName(); //实体名
if(action.equals("CREATE")){ //表单新建权限校验
JSONObject permissionList= AuthenticationUser.getAuthenticationUser().getPermisionList();//获取权限列表
JSONObject formDataAbility=permissionList.getJSONObject("dataAbility-form");//获取表单的权限数据
return isFormCreatePermission(formDataAbility,entityName,action);//拼接权限条件
}
else{ //表单编辑、查询权限校验
ServiceImpl service= SpringContextHolder.getBean(String.format("%s%s",getBeanName(entityName),"ServiceImpl"));//获取当前实体service
JSONObject permissionList= AuthenticationUser.getAuthenticationUser().getPermisionList();//获取权限列表
JSONObject formDataAbility=permissionList.getJSONObject("dataAbility-form");//获取表单的权限数据
Map<String,String> permissionField=getPermissionField(entityBase);
String selectCond=generatePermissionSQLForm(formDataAbility,entityName,action,srfkey,permissionField);//拼接权限条件
if(StringUtils.isEmpty(selectCond))
return false;
QueryWrapper permissionCond=getPermissionCond(selectCond,permissionField);
isPermission=testDataAccess(service,permissionCond);//执行权限检查
}
}catch (Exception e){
throw new RuntimeException("系统在进行权限检查时出现异常,原因为:"+e);
}
return isPermission;
}
/**
* 拼接表格查询条件
* @param gridDataAbility
* @param entityName
* @param action
* @param dataSet
* @param permissionField
* @param srfkey
* @return
*/
private String generatePermissionSQLGrid(JSONObject gridDataAbility, String entityName, String action, String dataSet, Map<String,String> permissionField,Object srfkey){
if(gridDataAbility==null)
return null;
if(!gridDataAbility.containsKey(entityName))
return null;
JSONObject entityObj=gridDataAbility.getJSONObject(entityName);//获取实体
if(!entityObj.containsKey(dataSet))
return null;
JSONObject dedatasetObject=entityObj.getJSONObject(dataSet);//获取实体数据集
if(!dedatasetObject.containsKey(action))
return null;
JSONArray entityOperation=dedatasetObject.getJSONArray(action);//行为:read;insert...
if(entityOperation.size()==0)
return null;
if(StringUtils.isEmpty(srfkey))
return getPermissionCond(entityOperation,permissionField); //拼接权限条件-查询
else
return String.format(" (%s) AND (%sid='%s')",getPermissionCond(entityOperation,permissionField),srfkey); //拼接权限条件-删除
}
/**
* 表格拼接权限条件,过滤出权限数据
* @param targetDomainObject
* @param permissionCond
* @throws Exception
*/
private void filterDataAccess(Object targetDomainObject, String permissionCond) throws Exception{
if(targetDomainObject instanceof QueryWrapperContext){
QueryWrapperContext queryWrapperContext = (QueryWrapperContext) targetDomainObject;
QueryWrapper queryWrapper = queryWrapperContext.getSelectCond();
queryWrapper.apply(permissionCond);
}
}
/**
* 拼接表单数据查询条件
* @param formDataAbility
* @param entityName
* @param action
* @param srfkey
* @param permissionField
* @return
*/
private String generatePermissionSQLForm(JSONObject formDataAbility, String entityName, String action, Object srfkey, Map<String,String> permissionField){
if(formDataAbility==null)
return null;
if(!formDataAbility.containsKey(entityName))
return null;
JSONObject entityObj=formDataAbility.getJSONObject(entityName);//获取实体
if(!entityObj.containsKey(action))
return null;
JSONArray entityOperation=entityObj.getJSONArray(action);//行为:read;insert...
if(entityOperation.size()==0)
return null;
String resultCond=getPermissionCond(entityOperation,permissionField);
if(StringUtils.isEmpty(srfkey))
return String.format(" (%s)",resultCond,entityName.toLowerCase()); //拼接权限条件-新建
else
return String.format(" (%s) AND (%sid='%s')",resultCond,entityName.toLowerCase(),srfkey); //拼接权限条件-编辑
}
/**
* 判断当前用户是否拥有建立表单数据权限
* @param formDataAbility
* @param entityName
* @param targetType
* @return
*/
private boolean isFormCreatePermission(JSONObject formDataAbility, String entityName, String targetType){
if(formDataAbility==null)
return false;
if(!formDataAbility.containsKey(entityName))
return false;
JSONObject entityObj=formDataAbility.getJSONObject(entityName);//获取实体
if(!entityObj.containsKey(targetType))
return false;
return true;
}
/**
* 表单权限检查
* @param service
* @param permissionCond
* @return
*/
private boolean testDataAccess(ServiceImpl service, QueryWrapper permissionCond){
boolean isPermission=false;
List list=service.list(permissionCond);
if(list.size()>0)
isPermission=true;
return isPermission;
}
/**
* 拼接权限条件(表单/表格)共用
* @param entityOperation
* @param permissionField
* @return
*/
private String getPermissionCond(JSONArray entityOperation, Map<String,String> permissionField){
String orgField=permissionField.get("orgfield");
String orgsecfield=permissionField.get("orgsecfield");
StringBuffer cond=new StringBuffer();
for(int i=0;i<entityOperation.size();i++){
if(i>0 && (!StringUtils.isEmpty(cond.toString())))
cond.append("OR");
String permissionCond=entityOperation.getString(i);//权限配置条件
if(permissionCond.equals("CUR_ORG")){ //本单位
cond.append(String.format("(t1.%s='%s')",orgField,AuthenticationUser.getAuthenticationUser().getOrgid()));
}
if(permissionCond.equals("SUB_ORG")){//下级单位
cond.append(" INSTR(j1.LEVELCODE,'"+AuthenticationUser.getAuthenticationUser().getLevelcode()+"')=1 ");
}
if(permissionCond.equals("HIT_ORG")){//上级单位
cond.append(" INSTR('"+AuthenticationUser.getAuthenticationUser().getLevelcode()+"',j1.LEVELCODE)=1 ");
}
if(permissionCond.equals("CREATEMAN")){//建立人
cond.append(String.format("(t1.createman='%s')",AuthenticationUser.getAuthenticationUser().getUserid()));
}
// if(permissionCond.equals("CUR_ORGSEC")){//本部门
// cond.append(String.format("(t1.orgsecid='%s')",AuthenticationUser.getAuthenticationUser().getMdeptid()));
// }
// if(permissionCond.equals("SUB_ORGSEC")){//下级部门
// cond.append(" INSTR(j2.LEVELCODE,'"+AuthenticationUser.getAuthenticationUser().getMdeptcode()+"')=1 ");
// }
// if(permissionCond.equals("HIGH_ORGSEC")){//上级部门
// cond.append(" INSTR('"+AuthenticationUser.getAuthenticationUser().getMdeptcode()+"',j2.LEVELCODE)=1 ");
// }
if(permissionCond.equals("ALL")){//全部数据
cond.append("(1=1)");
}
}
if(StringUtils.isEmpty(cond.toString()))
return "";
String resultCond=cond.toString();
if(resultCond.endsWith("OR")){
resultCond=resultCond.substring(0,resultCond.lastIndexOf("OR"));
}
return resultCond;
}
/**
* 拼接权限查询条件(表单/表格)共用
* @param whereCond
* @param permissionField
* @return
*/
private QueryWrapper getPermissionCond(String whereCond, Map<String,String> permissionField){
Wrapper wrapper =new QueryWrapper();
QueryWrapper allPermissionCond=new QueryWrapper();
//permissionCond.apply("inner join JC_ORG j1 on t1.ORGID=j1.orgid inner join JC_ORGSEC j2 on t1.orgsecid=j2.orgsecid");
if(StringUtils.isEmpty(whereCond))
return allPermissionCond;
// String strAllPermissionCond=String.format("inner join XT_ZZJG_DWBM j1 on t1.%s=j1.dwbm where (%s) ",permissionField.get("orgfield"),whereCond);
allPermissionCond.apply(whereCond);
return allPermissionCond;
}
/**
* 获取实体权限字段 orgid/orgsecid
* @param entityBase
* @return
*/
private Map<String,String> getPermissionField(EntityBase entityBase){
Map<String,String> permissionFiled=new HashMap<>();
String orgField="orgid"; //组织权限默认值
String orgsecField="orgsecid"; //部门权限默认值
// Map<Field, PreField> preFields= entityBase.SearchPreField(); //从缓存中获取当前类预置属性
// //寻找实体权限属性
// for (Map.Entry<Field,PreField> entry : preFields.entrySet()){
// Field prefield=entry.getKey();//获取注解字段
// PreField fieldAnnotation=entry.getValue();//获取注解值
// PredefinedType prefieldType=fieldAnnotation.preType();
// if(prefieldType==PredefinedType.ORGID)//用户配置系统预置属性-组织机构标识
// orgField=prefield.getName();
// if(prefieldType==PredefinedType.ORGSECTORID)//用户配置系统预置属性-部门标识
// orgsecField=prefield.getName();
// }
permissionFiled.put("orgfield",orgField);
permissionFiled.put("orgsecfield",orgsecField);
return permissionFiled;
}
/**
* 获取bean名称
* @param className
* @return
*/
private String getBeanName(String className) {
if (Character.isLowerCase(className.charAt(0))) {
return className;
} else {
return (new StringBuilder()).append(Character.toLowerCase(className.charAt(0))).append(className.substring(1)).toString();
}
}
}
\ No newline at end of file
package cn.ibizlab.util.security;
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.stereotype.Component;
@Component
public class SpringContextHolder implements ApplicationContextAware
{
private static ApplicationContext applicationContext;
@Override
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
SpringContextHolder.applicationContext = applicationContext;
}
public static ApplicationContext getApplicationContext() {
assertApplicationContext();
return applicationContext;
}
@SuppressWarnings("unchecked")
public static <T> T getBean(String beanName) {
assertApplicationContext();
return (T) applicationContext.getBean(beanName);
}
public static <T> T getBean(Class<T> requiredType) {
assertApplicationContext();
return applicationContext.getBean(requiredType);
}
private static void assertApplicationContext() {
if (SpringContextHolder.applicationContext == null) {
throw new RuntimeException("applicaitonContext属性为null,请检查是否注入了SpringContextHolder!");
}
}
}
\ No newline at end of file
package cn.ibizlab.util.service;
import cn.ibizlab.util.security.AuthenticationUser;
import cn.ibizlab.util.client.uaa.UAAFeignClient;
import org.springframework.context.annotation.Primary;
import org.springframework.stereotype.Service;
import org.springframework.util.DigestUtils;
import org.springframework.util.StringUtils;
import com.alibaba.fastjson.JSONObject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
/**
* 实体[IBZUSER] 服务对象接口实现
......@@ -43,6 +48,9 @@ public class SimpleUserService implements AuthenticationUserService{
user.setOrgid(domains);
user.setOrgcode(domains);
user.setOrgname(domains);
setUserPermission(user);
return user;
}
......@@ -64,4 +72,26 @@ public class SimpleUserService implements AuthenticationUserService{
public void resetByUsername(String username) {
}
@Value("${ibiz.enablePermissionValid:false}")
boolean enablePermissionValid; //是否开启权限校验
@Value("${ibiz.systemid:2C40DFCD-0DF5-47BF-91A5-C45F810B0001}")
private String systemid;
@Autowired
private UAAFeignClient client;
/**
* 设置用户权限
*/
private void setUserPermission(AuthenticationUser curUser) {
if(enablePermissionValid){
String userid=curUser.getUserid();
//String userid="4fb71d8997d4505d2748ad2bdc471969";
//String systemid="2C40DFCD-0DF5-47BF-91A5-C45F810B0001";
JSONObject permission= client.getPermission(userid,systemid);
curUser.setPermisionList(permission);
}
}
}
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册