提交 888520a1 编写于 作者: ibizdev's avatar ibizdev

ibiz4j 发布系统代码 [ibiz-task,任务调度]

上级 fbf8ebfe
......@@ -25,6 +25,7 @@ import AppForm from './components/app-form/app-form.vue'
import APPAutocomplete from './components/app-autocomplete/app-autocomplete.vue'
import AppFormDruipart from './components/app-form-druipart/app-form-druipart.vue'
import DropdownList from './components/dropdown-list/dropdown-list.vue'
import DropdownListHidden from './components/dropdown-list-hidden/dropdown-list-hidden.vue'
import UploadFile from './components/upload-file/upload-file.vue'
import ContextMenuContainer from './components/context-menu-container/context-menu-container.vue'
import AppCheckboxList from './components/app-checkbox-list/app-checkbox-list.vue'
......@@ -45,6 +46,7 @@ import AppFormGroup2 from './components/app-form-group2/app-form-group2.vue'
import AppFormItem2 from './components/app-form-item2/app-form-item2.vue'
import CodeList from './components/codelist/codelist.vue'
import AppQuickMenus from './components/app-quick-menus/app-quick-menus.vue'
import AppIconMenus from './components/app-icon-menus/app-icon-menus.vue'
import AppCheckbox from './components/app-checkbox/app-checkbox.vue'
import AppColumnRender from './components/app-column-render/app-column-render.vue'
import AppPickerSelectView from './components/app-picker-select-view/app-picker-select-view.vue'
......@@ -150,6 +152,7 @@ export const AppComponents = {
v.component('app-autocomplete', APPAutocomplete);
v.component('app-form-druipart', AppFormDruipart);
v.component('dropdown-list', DropdownList);
v.component('dropdown-list-hidden', DropdownListHidden);
v.component('upload-file', UploadFile);
v.component('context-menu-container', ContextMenuContainer);
v.component('app-checkbox-list',AppCheckboxList);
......@@ -171,6 +174,7 @@ export const AppComponents = {
v.component('app-form-item2', AppFormItem2);
v.component('codelist', CodeList);
v.component('app-quick-menus', AppQuickMenus);
v.component('app-icon-menus', AppIconMenus);
v.component('app-checkbox',AppCheckbox);
v.component('app-column-render',AppColumnRender);
v.component('app-picker-select-view',AppPickerSelectView);
......
......@@ -482,7 +482,7 @@ export default class AppFormDRUIPart extends Vue {
* @public
* @memberof AppFormDRUIPart
*/
public viewdataschange(){
public viewdataschange($event:any){
console.log((this.$t('components.appFormDRUIPart.change1') as string));
}
......
.app-icon-menus{
display: flex;
flex-wrap: wrap;
.el-card{
margin: 6px 8px;
.el-card__body{
padding: 0;
width: 200px;
height: 122px;
margin: 0;
.menuIcon{
width: 100%;
height: 100%;
display: flex;
justify-content: center;
flex-direction: column;
align-items: center;
border: 1px rgb(210,238,255) solid;
background-color: rgb(240,249,255);
border-radius: 3px;
cursor: pointer;
&:hover{
border-color: rgb(53,152,220) ;
}
span{
font-size: 40px;
color: rgb(55,155,222);
}
img{
width: 46px;
height: 46px;
// margin-top: 12px;
}
h4{
font-weight: 500;
font-size: 16px;
}
}
}
}
}
<template>
<div class="app-icon-menus">
<template v-for="(item,index) in menus">
<div :bordered="false" v-if="item.items && Array.isArray(item.items)" :key="index" :class="item.textcls">
<p @click="$emit('menuClick',item.name, [item.name])">
<span>{{$t('app.menus.' + ctrlName + '.' + item.name)}}</span>
<span class="line"></span>
</p>
<p style=" display: 'flex' ">
<app-icon-menus :menus="item.items" :ctrlName = "ctrlName" @menuClick="menuClick"></app-icon-menus>
</p>
</div>
<el-card
:key="index"
shadow="never"
:class="item.textcls"
v-else
>
<div @click="menuClick(item.name,[item.name])" class="menuIcon" >
<span v-if="isIcon(item.icon,item.iconcls)">
<i :class="item.icon" v-if="!Object.is(item.icon, '')" />
<i :class="item.iconcls" v-else-if="!Object.is(item.iconcls, '')" />
<i class="fa fa-cogs" v-else></i>
</span>
<span v-else>
<img :src="item.icon" v-if="!Object.is(item.icon, '')" />
<img :src="item.iconcls" v-else-if="!Object.is(item.iconcls, '')" />
<i class="fa fa-cogs" v-else></i>
</span>
<h4>{{$t('app.menus.' + ctrlName + '.' + item.name)}}</h4>
</div>
</el-card>
</template>
</div>
</template>
<script lang='ts'>
import { Component, Vue, Prop, Model, Watch } from "vue-property-decorator";
@Component({})
export default class AppQuickMenus extends Vue {
public isIcon( icon: string,iconcls: string) {
if (icon.indexOf("fa") == 0 || iconcls.indexOf("fa") == 0) {
return true;
}else {
return false;
}
}
public menuClick(index: any,indexs: any[]) {
this.$emit("menuClick",index,indexs);
}
/**
* 菜单数据
*
* @type {*}
* @memberof AppQuickMenus
*/
@Prop({ default: [] }) public menus!: any;
/**
* 部件名称
*
* @type {String}
* @memberof AppQuickMenus
*/
@Prop() public ctrlName!:String;
}
</script>
<style lang='less'>
@import "./app-icon-menus.less";
</style>
\ No newline at end of file
......@@ -10,13 +10,20 @@
</dropdown>
</template>
<script lang = 'ts'>
import { Component, Vue } from 'vue-property-decorator';
import { Component, Vue, Inject } from 'vue-property-decorator';
import { localList } from '@locale/local-list';
@Component({})
export default class AppLang extends Vue {
/**
* 注入刷新行为
*
* @memberof AppLang
*/
@Inject() reload: any;
/**
* 本地语言资源
*
......@@ -55,6 +62,7 @@ export default class AppLang extends Vue {
const local: any = this.localList.find((_local: any) => Object.is(_local.type, $evnet));
this.title = local.name;
localStorage.setItem('local', $evnet);
this.reload();
}
}
......
......@@ -312,9 +312,11 @@ export default class AppPicker extends Vue {
if (value) {
this.items.push({text: newVal, value: value});
}
if(newVal && value){
this.onSearch(newVal, null, false);
}
}
}
/**
* vue 生命周期
......
<template>
<template>
<div class="app-menus">
<template v-for="(item,index) in menus">
<card :bordered="false" dis-hover v-if="item.items && Array.isArray(item.items)" :key="index">
......@@ -12,7 +12,7 @@
<span class="line"></span>
</p>
<p style=" display: 'flex' ">
<app-quick-menus :menus="item.items" :ctrlName = "ctrlName"></app-quick-menus>
<app-quick-menus :menus="item.items" :ctrlName="ctrlName"></app-quick-menus>
</p>
</card>
<card
......@@ -43,12 +43,12 @@
</template>
</div>
</template>
<script lang='ts'>
import { Component, Vue, Prop, Model, Watch } from "vue-property-decorator";
@Component({})
export default class AppQuickMenus extends Vue {
/**
* 菜单数据
*
......
......@@ -349,7 +349,7 @@ export default class CodeList extends Vue {
max-height: 32px;
padding: 0px 3px;
> img{
max-height: 32px;
max-height: 24px;
width: auto;
margin-right: 6px;
border-radius: 50%;
......
......@@ -33,7 +33,7 @@
:file-list="uploadFileList"
:show-file-list="false"
:http-request="customUploadFile">
<el-button type="primary" size="small" icon="el-icon-upload">
<el-button type="primary" size="small" icon="el-icon-upload" :disabled="disabled">
{{$t('components.diskFileUpload.clickUpload')}}
</el-button>
</el-upload>
......
.dropdown-list-hidden-container{
.dropdown-list-hidden{
display: inline-block;
}
.tree-dropdown-list{
width: 100%;
.el-input__inner{
height: 32px !important;
line-height: 32px !important;
}
.el-input__icon{
line-height: 32px;
}
}
}
\ No newline at end of file
<template>
<div class="dropdown-list-hidden-container">
<i-select v-if="!hasChildren"
class='dropdown-list-hidden'
:transfer="true"
v-model="currentVal"
:disabled="disabled"
:clearable="true"
:filterable="filterable"
@on-open-change="onClick"
:placeholder="placeholder?placeholder:$t('components.dropDownListHidden.placeholder')">
<i-option v-for="(item, index) in items" :key="index" :disabled="item.disabled" :class="item.class" :value="item.value">{{($t('codelist.'+tag+'.'+item.value)!== ('codelist.'+tag+'.'+item.value))?$t('codelist.'+tag+'.'+item.value) : item.text}}</i-option>
</i-select>
<ibiz-select-tree v-if="hasChildren" class="tree-dropdown-list" :disabled="disabled" :NodesData="items" v-model="currentVal" :multiple="false"></ibiz-select-tree>
</div>
</template>
<script lang="ts">
import { Vue, Component, Watch, Prop, Model } from 'vue-property-decorator';
import CodeListService from "@/codelist/codelist-service";
import { Util } from '@/utils';
import { Subject, Subscription } from 'rxjs';
@Component({
})
export default class DropDownList extends Vue {
/**
* 代码表服务对象
*
* @type {CodeListService}
* @memberof DropDownList
*/
public codeListService:CodeListService = new CodeListService({ $store: this.$store });
/**
* 额外参数
*
* @type {*}
* @memberof DropDownList
*/
public otherParam:any;
/**
* 查询参数
* @type {*}
* @memberof DropDownList
*/
public queryParam:any;
/**
* 是否有子集
* @type {boolean}
* @memberof DropDownList
*/
public hasChildren:boolean = false;
/**
* 当前选中值
* @type {any}
* @memberof DropDownList
*/
@Model('change') readonly itemValue!: any;
/**
* 监控值变化,根据属性类型强制转换
*
* @memberof DropDownList
*/
@Watch('itemValue')
public valueWatch() {
try {
this.readyValue();
// 代码表集合中不存在改选项,重新准备集合
if (this.value && !this.items.find((item: any) => Object.is(this.value, item.value))) {
this.loadData();
}
} catch (error) {
console.log('下拉列表,值转换失败');
}
}
/**
* 代码表标识
*
* @type {string}
* @memberof DropDownList
*/
@Prop() public tag?: string;
/**
* 代码表类型
*
* @type {string}
* @memberof DropDownList
*/
@Prop() public codelistType?: string;
/**
* 传入表单数据
*
* @type {*}
* @memberof DropDownList
*/
@Prop() public data?: any;
/**
* 表单状态对象
*
* @type {Subject<any>}
* @memberof AppEmbedPicker
*/
@Prop() public formState!: Subject<any>
/**
* 订阅对象
*
* @protected
* @type {(Subscription | undefined)}
* @memberof SelectType
*/
protected formStateEvent: Subscription | undefined;
/**
* 监听表单数据
*
* @memberof DropDownList
*/
@Watch('data',{ deep: true })
onDataChange(newVal: any, val: any){
if(newVal){
}
}
/**
* 局部上下文导航参数
*
* @type {*}
* @memberof DropDownList
*/
@Prop() public localContext!:any;
/**
* 局部导航参数
*
* @type {*}
* @memberof DropDownList
*/
@Prop() public localParam!:any;
/**
* 视图上下文
*
* @type {*}
* @memberof AppAutocomplete
*/
@Prop() public context!: any;
/**
* 视图参数
*
* @type {*}
* @memberof AppFormDRUIPart
*/
@Prop() public viewparams!: any;
/**
* 是否禁用
* @type {any}
* @memberof DropDownList
*
*/
@Prop() public disabled?: any;
/**
* 是否支持过滤
* @type {boolean}
* @memberof DropDownList
*/
public filterable: boolean = true;
/**
* 下拉选提示内容
* @type {string}
* @memberof DropDownList
*/
@Prop() public placeholder?: string;
/**
* 属性类型
*
* @type {'string' | 'number'}
* @memberof DropDownList
*/
@Prop({ default: 'string' })
public valueType!: 'string' | 'number';
/**
* 选择实际值
*
* @type {*}
* @memberof DropDownList
*/
public value: any = null;
/**
* 计算属性(当前值)
* @type {any}
* @memberof DropDownList
*/
set currentVal(val: any) {
if(this.hasChildren && val){
let tempVal:any = JSON.parse(val);
val = tempVal.length >0?tempVal[0].value:null;
}
const type: string = this.$util.typeOf(val);
val = Object.is(type, 'null') || Object.is(type, 'undefined') ? null : val;
this.$emit('change', val);
}
/**
* 获取值对象
*
* @memberof DropDownList
*/
get currentVal() {
if(this.hasChildren && this.itemValue){
let list:Array<any> = [];
this.getItemList(list,this.items);
let result:any = list.find((item:any) =>{
return item.value == this.itemValue;
})
return JSON.stringify([result]);
}
return this.value;
}
/**
* 获取代码表列表
*
* @memberof DropDownList
*/
public getItemList(list:Array<any>,items:Array<any>){
if(items && items.length >0){
items.forEach((item:any) =>{
if(item.children){
this.getItemList(list,item.children);
}
list.push(item);
})
}
}
/**
* 代码表
*
* @type {any[]}
* @memberof DropDownList
*/
public items: any[] = [];
/**
* 公共参数处理
*
* @param {*} arg
* @returns
* @memberof DropDownList
*/
public handlePublicParams(arg: any) {
// 合并表单参数
arg.param = this.viewparams ? JSON.parse(JSON.stringify(this.viewparams)) : {};
arg.context = this.context ? JSON.parse(JSON.stringify(this.context)) : {};
// 附加参数处理
if (this.localContext && Object.keys(this.localContext).length >0) {
let _context = this.$util.computedNavData(this.data,arg.context,arg.param,this.localContext);
Object.assign(arg.context,_context);
}
if (this.localParam && Object.keys(this.localParam).length >0) {
let _param = this.$util.computedNavData(this.data,arg.context,arg.param,this.localParam);
Object.assign(arg.param,_param);
}
}
/**
* vue 生命周期
*
* @memberof DropDownList
*/
public created() {
if(this.formState) {
this.formStateEvent = this.formState.subscribe(({ type, data }) => {
if (Object.is('load', type)) {
this.loadData();
this.readyValue();
}
});
}
this.loadData();
this.readyValue();
}
/**
* 加载数据
*
* @memberof DropDownList
*/
public loadData(){
if(this.tag && Object.is(this.codelistType,"STATIC")){
const codelist = this.$store.getters.getCodeList(this.tag);
if (codelist) {
let items: Array<any> = [...JSON.parse(JSON.stringify(codelist.items))];
this.formatCodeList(items);
} else {
console.log(`----${this.tag}----代码表不存在`);
}
}else if(this.tag && Object.is(this.codelistType,"DYNAMIC")){
// 公共参数处理
let data: any = {};
this.handlePublicParams(data);
// 参数处理
let _context = data.context;
let _param = data.param;
this.codeListService.getItems(this.tag,_context,_param).then((res:any) => {
let items: Array<any> = [...res];
this.formatCodeList(items);
}).catch((error:any) => {
console.log(`----${this.tag}----代码表不存在`);
});
}
}
/**
* 准备值
*
* @memberof DropDownList
*/
public readyValue() {
if (this.itemValue == null) {
this.value = null;
return;
}
if (this.$util.typeOf(this.itemValue) === this.valueType) {
this.value = this.itemValue;
} else if (this.valueType === 'number') {
if (this.itemValue.indexOf('.') === -1) {
this.value = parseInt(this.itemValue);
} else {
this.value = parseFloat(this.itemValue);
}
} else {
this.value = this.itemValue.toString();
}
}
/**
* 下拉点击事件
*
* @param {*} $event
* @memberof DropDownList
*/
public onClick($event:any){
if($event){
if(this.tag && Object.is(this.codelistType,"DYNAMIC")){
// 公共参数处理
let data: any = {};
this.handlePublicParams(data);
// 参数处理
let _context = data.context;
let _param = data.param;
this.codeListService.getItems(this.tag,_context,_param).then((res:any) => {
let items: Array<any> = [...res];
this.formatCodeList(items);
}).catch((error:any) => {
console.log(`----${this.tag}----代码表不存在`);
});
}
}
}
/**
* 代码表类型和属性匹配
*
* @param {*} items
* @memberof DropDownList
*/
public formatCodeList(items: Array<any>){
let matching: boolean = false;
this.items = [];
try{
items.forEach((item: any)=>{
if(!item.disabled){
const type = this.$util.typeOf(item.value);
if(type != this.valueType){
matching = true;
if(type === 'number'){
item.value = item.value.toString();
}else{
if(item.value.indexOf('.') == -1){
item.value = parseInt(item.value);
}else{
item.value = parseFloat(item.value);
}
}
}
this.items.push(item);
}
});
if(matching){
console.warn(`代码表 ${ this.tag } 值类型和属性类型不匹配,已自动强制转换,请修正代码表值类型和属性类型匹配`);
}
}catch(error){
console.warn('代码表值类型和属性类型不匹配,自动强制转换异常,请修正代码表值类型和属性类型匹配');
}
this.handleLevelCodeList(Util.deepCopy(this.items));
}
/**
* 处理层级代码表
*
* @param {*} items
* @memberof DropDownList
*/
public handleLevelCodeList(items: Array<any>){
if(items && items.length >0){
this.hasChildren = items.some((item:any) =>{
return item.pvalue;
})
if(this.hasChildren){
let list:Array<any> = [];
items.forEach((codeItem:any) =>{
if(!codeItem.pvalue){
let valueField:string = codeItem.value;
this.setChildCodeItems(valueField,items,codeItem);
list.push(codeItem);
}
})
this.items = list;
}
}
}
/**
* 计算子类代码表
*
* @param {*} items
* @memberof DropDownList
*/
public setChildCodeItems(pValue:string,result:Array<any>,codeItem:any){
result.forEach((item:any) =>{
if(item.pvalue == pValue){
let valueField:string = item.value;
this.setChildCodeItems(valueField,result,item);
if(!codeItem.children){
codeItem.children = [];
}
codeItem.children.push(item);
}
})
}
/**
* vue 生命周期
*
* @memberof DropDownList
*/
public destroyed() {
if (this.formStateEvent) {
this.formStateEvent.unsubscribe();
}
}
}
</script>
<style lang='less'>
@import './dropdown-list-hidden.less';
</style>
\ No newline at end of file
......@@ -9,7 +9,7 @@
:filterable="filterable"
@on-open-change="onClick"
:placeholder="placeholder?placeholder:$t('components.dropDownList.placeholder')">
<i-option v-for="(item, index) in items" :key="index" :class="item.class" :value="item.value">{{($t('codelist.'+tag+'.'+item.value)!== ('codelist.'+tag+'.'+item.value))?$t('codelist.'+tag+'.'+item.value) : item.text}}</i-option>
<i-option v-for="(item, index) in items" :key="index" :disabled="item.disabled" :class="item.class" :value="item.value">{{($t('codelist.'+tag+'.'+item.value)!== ('codelist.'+tag+'.'+item.value))?$t('codelist.'+tag+'.'+item.value) : item.text}}</i-option>
</i-select>
<ibiz-select-tree v-if="hasChildren" class="tree-dropdown-list" :disabled="disabled" :NodesData="items" v-model="currentVal" :multiple="false"></ibiz-select-tree>
</div>
......@@ -61,6 +61,24 @@ export default class DropDownList extends Vue {
*/
@Model('change') readonly itemValue!: any;
/**
* 监控值变化,根据属性类型强制转换
*
* @memberof DropDownList
*/
@Watch('itemValue')
public valueWatch() {
try {
this.readyValue();
// 代码表集合中不存在改选项,重新准备集合
if (this.value && !this.items.find((item: any) => Object.is(this.value, item.value))) {
this.loadData();
}
} catch (error) {
console.log('下拉列表,值转换失败');
}
}
/**
* 代码表标识
*
......
......@@ -68,7 +68,7 @@ export default class TabPageExp extends Vue {
public getCaption(caption: any, info: any): any {
return info && !Object.is(info, "")
? `${this.$t(caption)} - ${info}`
? `${this.$t(caption)} - ${this.$t(info)}`
: this.$t(caption);
}
......
......@@ -101,7 +101,7 @@ export default class EditViewEngine extends ViewEngine {
* @memberof EditViewEngine
*/
public onFormLoad(arg: any): void {
this.view.model.dataInfo = Object.is(arg.srfuf, '1') ? (this.majorPSDEField?arg[this.majorPSDEField]:arg.srfmajortext) : this.view.$t('app.local.new');
this.view.model.dataInfo = Object.is(arg.srfuf, '1') ? (this.majorPSDEField?arg[this.majorPSDEField]:arg.srfmajortext) : 'app.local.new';
this.setTabCaption(this.view.model.dataInfo,Object.is(arg.srfuf, '0'));
const newdata: boolean = !Object.is(arg.srfuf, '1');
......@@ -116,7 +116,7 @@ export default class EditViewEngine extends ViewEngine {
* @memberof EditViewEngine
*/
public onFormSave(arg: any): void {
this.view.model.dataInfo = Object.is(arg.srfuf, '1') ? (this.majorPSDEField?arg[this.majorPSDEField]:arg.srfmajortext) : this.view.$t('app.local.new');
this.view.model.dataInfo = Object.is(arg.srfuf, '1') ? (this.majorPSDEField?arg[this.majorPSDEField]:arg.srfmajortext) : 'app.local.new';
this.setTabCaption(this.view.model.dataInfo,Object.is(arg.srfuf, '0'));
const newdata: boolean = !Object.is(arg.srfuf, '1');
......@@ -200,12 +200,12 @@ export default class EditViewEngine extends ViewEngine {
}
// 解决表格视图标题问题
if(this.view.$tabPageExp && this.view.viewDefaultUsage){
this.view.$tabPageExp.setCurPageCaption(this.view.$t(viewdata.srfCaption), this.view.$t(viewdata.srfCaption), info);
this.view.$tabPageExp.setCurPageCaption(this.view.$t(viewdata.srfCaption), viewdata.srfCaption, info);
}
if(this.view.$route){
this.view.$route.meta.info = info;
}
this.view.model.srfCaption = `${this.view.$t(viewdata.srfCaption)}-${viewdata.dataInfo}`;
this.view.model.srfCaption = `${this.view.$t(viewdata.srfCaption)}-${this.view.$t(viewdata.dataInfo)}`;
this.view.initNavDataWithRoute(null,isNew);
}
}
......
......@@ -16,7 +16,7 @@ const messages = {
// 自动根据浏览器系统语言设置语言
const navLang = localStorage.getItem('local') || navigator.language;
const localLang = (navLang === 'zh-CN' || (navLang === 'en-US' && messages.hasOwnProperty('en-US'))) ? navLang : false;
const localLang = (navLang === 'zh-CN' || (navLang === 'en-US' && messages.hasOwnProperty('en-US')) || (navLang === 'ti-US' && messages.hasOwnProperty('ti-US'))) ? navLang : false;
let lang: string = localLang || 'zh-CN';
vueApp.config.lang = lang
......
import jobslog_BO_CN from '@locale/lanres/entities/jobs-log/jobs-log_BO_CN';
import jobsregistry_BO_CN from '@locale/lanres/entities/jobs-registry/jobs-registry_BO_CN';
import jobsinfo_BO_CN from '@locale/lanres/entities/jobs-info/jobs-info_BO_CN';
import jobslock_BO_CN from '@locale/lanres/entities/jobs-lock/jobs-lock_BO_CN';
import components_BO_CN from '@locale/lanres/components/components_BO_CN';
import codelist_BO_CN from '@locale/lanres/codelist/codelist_BO_CN';
import userCustom_BO_CN from '@locale/lanres/userCustom/userCustom_BO_CN';
import commonLogic from '@/locale/logic/common/common-logic';
function getAppLocale(){
const data:any = {
app: {
commonWords:{
error: "ཕམ་པ།",
success: "ལེགས་འགྲུབ།",
ok: "ངོས་འཛིན་",
cancel: "མེད་པར་བཟོ་བ་",
save: "ཉར་ཚགས།",
codeNotExist: "ཚབ་ཨང་རེའུ་མིག",
reqException: "རེ་ཞུའི་རྒྱུན་འགལ།",
sysException: "རྒྱུད་ཁོངས་རྒྱུན་འགལ།",
warning: "ཐ་ཚིག་",
wrong: "ནོར་འཁྲུལ།",
rulesException: "གྲངས་ཐང་སྒྲིག་སྲོལ་དག་བཤེར་རྒྱུན་འགལ།",
saveSuccess: "ཉར་ཚགས་ལེགས་འགྲུབ་བྱུང་།",
saveFailed: "ཉར་ཚགས་ཕམ་པ།",
deleteSuccess: "སུབ་པ་གྲུབ་འབྲས་ཐོབ་པའི་ངང་",
deleteError: "སུབ་པ་ཕམ་པ།",
delDataFail: "བསུབ་པའི་གཞི་གྲངས་ཕམ་པ།",
noData: "གནས་སྐབས་གཞི་གྲངས་མེད་པ་",
startsuccess:"འགོ་སློང་ལེགས་གྲུབ་",
loadmore:"མང་ཙམ་བླུགས་རོགས།",
nomore:"དེ་ལས་མང་བ་མི་འདུག",
other:"གཞན་དག",
valueNotEmpty:"སྟོང་མི་ཆོག",
},
local:{
new: "གསར་འཛུགས།",
add: "སྣོན་པ་",
},
gridpage: {
choicecolumns: "གདམ་གསེས་གཞུང་སྟར།",
refresh: "གསར་འདོན་",
show: "མངོན་པ་",
records: "ལྕུག་མ།",
totle: "མཉམ་དུ།",
valueVail: "སྟོང་མི་ཆོག",
group:"ཚོ་བགོས་",
other:"གཞན་དག",
notConfig: {
fetchAction: "མཐོང་རིས་རེའུ་མིགfetchActionཞུགས་གྲངས་བཀོད་སྒྲིག་བྱས་མེད་པ་",
removeAction: "མཐོང་རིས་རེའུ་མིགremoveActionཞུགས་གྲངས་བཀོད་སྒྲིག་བྱས་མེད་པ་",
createAction: "མཐོང་རིས་རེའུ་མིགcreateActionཞུགས་གྲངས་བཀོད་སྒྲིག་བྱས་མེད་པ་",
updateAction: "མཐོང་རིས་རེའུ་མིགupdateActionཞུགས་གྲངས་བཀོད་སྒྲིག་བྱས་མེད་པ་",
loaddraftAction: "མཐོང་རིས་རེའུ་མིགloaddraftActionཞུགས་གྲངས་བཀོད་སྒྲིག་བྱས་མེད་པ་",
},
data: "གཞི་གྲངས།",
delDataFail: "བསུབ་པའི་གཞི་གྲངས་ཕམ་པ།",
delSuccess: "ལེགས་པར་སུབ་པ།",
confirmDel: "ངོས་འཛིན་བསུབ་དགོས་།",
notRecoverable: "བསུབ་པའི་བཀོལ་སྤྱོད་སླར་གསོ་བྱེད་མི་ཐུབ།",
notBatch: "སྡེབ་འབོར་སྦྱོར་རྟ་མངོན་འགྱུར་བྱུང་མེད་།",
grid: "རེའུ་མིག",
exportFail: "གཞི་གྲངས་ཕྱིར་འདྲེན་ཕམ་པ།",
sum: "བསྡོམས་འབོར་",
formitemFailed: "རེའུ་མིག་ཁེར་རྐྱང་གསར་སྒྱུར་ཕམ་སོང་།",
},
list: {
notConfig: {
fetchAction: "མཐོང་རིས་རེའུ་མིག་fetchActionཞུགས་གྲངས་བཀོད་སྒྲིག་བྱས་མེད་པ།",
removeAction: "མཐོང་རིས་རེའུ་མིག་removeActionཞུགས་གྲངས་བཀོད་སྒྲིག་བྱས་མེད།",
createAction: "མཐོང་རིས་རེའུ་མིག་createActionཞུགས་གྲངས་བཀོད་སྒྲིག་བྱས་མེད་པ་",
updateAction: "མཐོང་རིས་རེའུ་མིག་updateActionཞུགས་གྲངས་བཀོད་སྒྲིག་བྱས་མེད་པ།",
},
confirmDel: "ངོས་འཛིན་བསུབ་དགོས་།",
notRecoverable: "བསུབ་པའི་བཀོལ་སྤྱོད་སླར་གསོ་བྱེད་མི་ཐུབ།",
},
listExpBar: {
title: "རེའུ་མིག་ཕྱོགས་སྟོན་སྡེ་",
},
wfExpBar: {
title: "རྒྱུན་རིམ་ཕྱོགས་སྟོན་སྡེ་",
},
calendarExpBar:{
title: "ལོ་ཐོ་ཕྱོགས་ཁྲིད་སྡེ་",
},
treeExpBar: {
title: "སྡོང་མཐོང་པར་རིས་ཕྱོགས་སྟོན།",
},
portlet: {
noExtensions: "རྒྱ་སྐྱེད་མེད་པའི་བསྒར་ལྷུ།",
},
tabpage: {
sureclosetip: {
title: "སྒོ་རྒྱག་དྲན་སྐུལ་",
content: "རེའུ་མིག་གི་གཞི་གྲངས་ལ་བཟོ་བཅོས་བྱས་ཟིན།སྒོ་རྒྱག་རྒྱུ་གཏན་འཁེལ་བྱས།",
},
closeall: "ཡོད་ཚད་ཁ་རྒྱག",
closeother: "གཞན་དག་སྒོ་རྒྱག་།",
},
fileUpload: {
caption: "ཡར་བསྐུར་",
},
searchButton: {
search: "བཤེར་འཚོལ་",
reset: "བསྐྱར་འཇོག",
},
calendar:{
today: "དེ་རིང་",
month: "ཟླ་བ།",
week: "གཟའ་འཁོར།",
day: "གནམ་",
list: "གཞུང་།",
dateSelectModalTitle: "བདམས་ནས་མཆོང་བའི་དུས་ཚོད་།",
gotoDate: "མཆོང་བ།མཆོང་བ།",
from: "ནས།",
to: "སླེབས་པ་",
},
// 非实体视图
views: {
taskindexview: {
caption: commonLogic.appcommonhandle("ibizlab",null),
title: commonLogic.appcommonhandle("task",null),
},
},
utilview:{
importview:"ནང་འདྲེན་གཞི་གྲངས།",
warning:"ཐ་ཚིག་",
info:"གཞི་གྲངས་ནང་འདྲེན་རྣམ་གྲངས་བཀོད་སྒྲིག་བྱེད་རོགས་།"
},
menus: {
taskindexview: {
menuitem3: commonLogic.appcommonhandle("注册",null),
menuitem1: commonLogic.appcommonhandle("任务",null),
menuitem2: commonLogic.appcommonhandle("日志",null),
},
},
formpage:{
desc1: "བཀོལ་སྤྱོད་མ་ཐུབ་པར་མིག་སྔའི་རེའུ་མིག་གི་རྣམ་གྲངས་རྐྱང་པ་རྙེད་མ་ཐུབ་པ།",
desc2: "མུ་མཐུད་དུ་བཀོལ་སྤྱོད་བྱེད་ཐབས་མེད།",
notconfig: {
loadaction: "མཐོང་རིས་རེའུ་མིགloadActionཞུགས་གྲངས་བཀོད་སྒྲིག་བྱས་མེད་པ་",
loaddraftaction: "མཐོང་རིས་རེའུ་མིག loaddraftActionཞུགས་གྲངས་བཀོད་སྒྲིག་བྱས་མེད་པ་",
actionname: "མཐོང་རིས་རེའུ་མིག'+actionName+'ཞུགས་གྲངས་བཀོད་སྒྲིག་བྱས་མེད་པ་",
removeaction: "མཐོང་རིས་རེའུ་མིགremoveActionཞུགས་གྲངས་བཀོད་སྒྲིག་བྱས་མེད་པ་",
},
saveerror: "གཞི་གྲངས་ཉར་ཚགས་ནོར་འཁྲུལ་བྱུང་བ་",
savecontent: "གྲངས་གཞི་གཅིག་པ་མ་རེད།ཕལ་ཆེར་རྒྱབ་སྟེགས་ཀྱི་གྲངས་གཞི་བཟོ་བཅོས་བརྒྱབ་ཟིན་པས།གཞི་གྲངས་བསྐྱར་དུ་སྣོན་དགོས་སམ།",
valuecheckex: "གྲངས་ཐང་སྒྲིག་སྲོལ་དག་བཤེར་རྒྱུན་འགལ།",
savesuccess: "ཉར་ཚགས་ལེགས་འགྲུབ་བྱུང་།",
deletesuccess: "ལེགས་འགྲུབ་བསུབ་པ།",
workflow: {
starterror: "ལས་ཀའི་རྒྱུན་འགོ་སློང་ཕམ་པ།",
startsuccess: "ལས་ཀའི་རྒྱུན་གྱི་འགོ་སློང་ཐུབ་པ།",
submiterror: "ལས་དོན་ཡར་ཕུལ་ཕམ་།",
submitsuccess: "ལས་ཀའི་རྒྱུན་ལ་ཕུལ་གྲུབ་འབྲས་ཐོབ་པའི་ངང་།",
},
updateerror: "རེའུ་མིག་ཁེར་རྐྱང་གསར་སྒྱུར་ཕམ་སོང་།",
},
gridBar: {
title: "རེའུ་མིག་ཕྱོགས་སྟོན།",
},
multiEditView: {
notConfig: {
fetchAction: "མཐོང་རིས་མང་བའི་རྩོམ་སྒྲིག་མཐོང་རིས་ངོས་པང་fetchActionཞུགས་གྲངས་བཀོད་སྒྲིག་བྱས་མེད་པ་",
loaddraftAction: "མཐོང་རིས་མང་བའི་རྩོམ་སྒྲིག་མཐོང་རིས་ངོས་པང་loaddraftActionཞུགས་གྲངས་བཀོད་སྒྲིག་བྱས་མེད་པ་",
},
},
dataViewExpBar: {
title: "ཁཱ་མཐོང་རིས་ཕྱོགས་སྟོན།",
},
kanban: {
notConfig: {
fetchAction: "མཐོང་རིས་རེའུ་མིག་fetchActionཞུགས་གྲངས་བཀོད་སྒྲིག་བྱས་མེད་པ་",
removeAction: "མཐོང་རིས་རེའུ་མིགremoveActionཞུགས་གྲངས་བཀོད་སྒྲིག་བྱས་མེད་པ་",
},
delete1: "ངོས་འཛིན་བསུབ་དགོས་།",
delete2: "བསུབ་པའི་བཀོལ་སྤྱོད་སླར་གསོ་བྱེད་མི་ཐུབ།",
fold: "ལྟེབ་",
unfold: "བཀྲམ་པ་",
},
dashBoard: {
handleClick: {
title: "ངོས་པང་ཇུས་འགོད་",
},
},
dataView: {
sum: "མཉམ་དུ།",
data: "དོན་ཚན་གཞི་གྲངས།",
},
chart: {
undefined: "མཚན་ཉིད་མ་བཞག་པ།",
quarter: "དུས་ཚིགས་",
year: "ལོ་",
},
searchForm: {
notConfig: {
loadAction: "མཐོང་རིས་བཤེར་འཚོལ་རེའུ་མིགloadActionཞུགས་གྲངས་བཀོད་སྒྲིག་བྱས་མེད་པ་",
loaddraftAction: "མཐོང་རིས་བཤེར་འཚོལ་རེའུ་མིགloaddraftActionཞུགས་གྲངས་བཀོད་སྒྲིག་བྱས་མེད་པ་",
},
custom: "གསོག་འཇོག་མཚན་ཉིད་རང་འདྲི་",
title: "མིང་།",
},
wizardPanel: {
back: "གོམ་གང་སྔོན་མ།",
next: "གོམ་པ་རྗེས་མ་",
complete: "གྲུབ་པ་",
preactionmessage:"བཀོད་སྒྲིག་མེད་པར་རྩིས་རྒྱག་སྐབས་རྐང་ཐང་མར་འགྲོ་དགོས།"
},
viewLayoutPanel: {
appLogoutView: {
prompt1: "གུས་པར་འོས་པའི་མཁོ་མཁན་ཁྱེད་རང་གི་གྲུབ་འབྲས་ཐོབ་པའི་ངང་ཕྱིར་འཐེན་མ་ལག་དང་།མ་འོངས་པར་།",
prompt2: "སྐར་ཆ་རྗེས་མཆོང་ནས་",
logingPage: "ཐོ་འཇུག་ལྡེབ་ངོས།",
},
appWfstepTraceView: {
title: "ཉེར་སྤྱོད་རྒྱུན་རིམ་སྒྲིག་གཅོད་ཟིན་ཐོའི་མཐོང་རིས་",
},
appWfstepDataView: {
title: "ཉེར་སྤྱོད་རྒྱུན་རིམ་རྗེས་འདེད་མཐོང་རིས་",
},
appLoginView: {
username: "སྤྱོད་མཁན་གྱི་མིང་",
password: "གསང་ཨང་",
login: "ཐོ་འགོད།",
},
},
},
entities: {
jobslog: jobslog_BO_CN(),
jobsregistry: jobsregistry_BO_CN(),
jobsinfo: jobsinfo_BO_CN(),
jobslock: jobslock_BO_CN(),
},
components: components_BO_CN(),
codelist: codelist_BO_CN(),
userCustom: userCustom_BO_CN(),
};
return data;
}
export default getAppLocale;
\ No newline at end of file
import app_BO_CN_Base from './BO-CN-base';
function getLocaleResource(){
const app_BO_CN_OwnData = {};
const targetData = Object.assign(app_BO_CN_Base(), app_BO_CN_OwnData);
return targetData;
}
export default getLocaleResource;
\ No newline at end of file
import codelist_BO_CN_Base from './codelist_BO_CN_base';
function getLocaleResource(){
const codelist_BO_CN_OwnData = {};
const targetData = Object.assign(codelist_BO_CN_Base(), codelist_BO_CN_OwnData);
return targetData;
}
export default getLocaleResource;
\ No newline at end of file
import commonLogic from '@/locale/logic/common/common-logic';
function getLocaleResourceBase(){
const data:any = {
CodeListJobStatus: {
"0": commonLogic.appcommonhandle("ENABLED",null),
"1": commonLogic.appcommonhandle("DISABLED",null),
"empty": commonLogic.appcommonhandle("",null)
},
};
return data;
}
export default getLocaleResourceBase;
\ No newline at end of file
import components_BO_CN_Base from './components_BO_CN_base';
function getLocaleResource(){
const components_BO_CN_OwnData = {};
const targetData = Object.assign(components_BO_CN_Base(), components_BO_CN_OwnData);
return targetData;
}
export default getLocaleResource;
\ No newline at end of file
function getLocaleResourceBase(){
const data:any = {
"404": {
errorText1: 'དགོངས་པ་མ་ཚོམ།ཁྱེད་རང་གི་བཅར་འདྲིའི་དྲ་ངོས་མི་འདུག',
errorText2: 'ཁྱེད་རང་བཙལ་བའི་ལྡེབ་ངོས་མི་གནས་པ་དང་།ཕྱིར་ལོག་རོགས་།',
indexPage: 'གཙོ་ངོས།',
continue: 'མུ་མཐུད་དུ་རགས་ལྟ་',
},
"500": {
errorText1: 'དགོངས་པ་མ་ཚོམ།ཞབས་ཞུའི་འཕྲུལ་ཆས་ནོར་འདུག',
errorText2: 'ཞབས་ཞུ་ཆས་ནོར་འདུག་ཕྱིར་ལོག་རོགས་། ',
indexPage: 'གཙོ་ངོས།',
continue: 'མུ་མཐུད་དུ་རགས་ལྟ་',
},
appOrgSector:{
successSwitch:'བརྗེ་ཐུབ་སོང་།',
errorSwitch:'བརྗེ་སྤོར་ཕམ་པ།',
},
appAutocomplete: {
error: 'ནོར་འཁྲུལ།',
miss: 'ཞུགས་གྲངས་ཆད་པ།',
requestException: 'རྒྱུན་ལྡན་མིན་པའི་རེ་བ་ཞུ།',
},
appBuild: {
custom: 'གཏན་སྲོལ་',
},
appCheckBox: {
notExist: 'ཚབ་ཨང་རེའུ་མིག',
},
appColumnLink: {
error: 'ནོར་འཁྲུལ།',
valueItemException:"གྲངས་ཐང་ཚན་རྒྱུན་འགལ།",
rowDataException:"རེའུ་མིག་ཕྲེང་གི་གཞི་གྲངས་རྒྱུན་འགལ།",
},
appColumnRender: {
select: 'གང་ལགས་ཤེ་ན།...',
unsupported: 'རྒྱབ་སྐྱོར་མི་བྱེད་པ་',
},
appDashboardDesign: {
global: 'ཁྱོན་ཡོངས།',
},
appDataUploadView: {
"viewtitle":"ཉེར་སྤྱོད་གཞི་གྲངས་ནང་འདྲེན་མཐོང་རིས་",
"selectfile":"ཡིག་ཆ་འདེམས་པ་",
"uploadserver":"ཡར་བསྐུར་ཞབས་ཞུ་ཆས་།",
"datatemplate":"ཕབ་ལེན་ནང་འདྲེན་གཞི་གྲངས་དཔེ་པང་།",
"dataid":"གཞི་གྲངས་ཀྱི་མཚོན་རྟགས་",
"read":"ཀློག་ལེན་གྲུབ་འབྲས་ཐོབ་པའི་ངང་",
"importing":"ནང་འདྲེན་བྱེད་བཞིན་ཡོད།",
"completed":"ནང་འདྲེན་ལེགས་སྒྲུབ་",
"confirm":"ངོས་འཛིན་",
"datatemp":"ནང་འདྲེན་གཞི་གྲངས་དཔེ་པང་",
"importfailed":"ནང་འདྲེན་ཕམ་པ།"
},
appDebugActions:{
button: 'ཁ་འབྱེད་སྡེབ་སྒྲིག་རྣམ་པ་',
},
appExportExcel: {
total: 'ཚང་མ།',
max: 'ཆེ་ཤོས་',
row: 'ཕྲེང་',
currentPage: 'མིག་སྔའི་ལྡེབ་ངོས།',
desc:'ཐོག་མའི་ཤོག་ངོས་ནང་འཇུག་རོགས་།',
desc1:'ནུས་ལྡན་གྱི་ཐོག་མའི་ཤོག་ངོས་ནང་འཇུག་རོགས་།',
},
appFileUpload: {
preview: 'ལྟ་ཞིབ་',
uploadText: 'ཡིག་ཆ་འདིར་དྲུད་།,ཡང་ན་<em>སྣོན་ནས་ཡར་སྐུར་དགོས།</em>',
uploadError: 'ཡར་བསྐུར་ཕམ་',
fileTypeErrorTitle: 'ཡིག་ཆའི་རིགས་ཀྱི་ནོར་འཁྲུལ་',
fileTypeErrorInfo: 'པར་རིས་རིགས་ཀྱི་ཡིག་ཆ་འདེམ་དགོས།,དཔེར་ན་JPEG GIF PNG BMP། ',
},
appFormDRUIPart: {
blockUITipInfo: 'གཞི་གྲངས་གཙོ་བོ་སྔོན་ལ་ཉར་ཚགས་བྱེད་རོགས་།',
viewLoadComp:'གཞི་གྲངས་མང་བའི་མཐོང་རིས་སྣོན་འཇུག་དང་།འཕྲད་ཐོན་རྗེས་མཐུད་རེའུ་མིག་ཁེར་རྐྱང་གསར་སྒྱུར་།',
save:'འབྲེལ་བའི་གཞི་གྲངས་ཉར་ཚགས།',
change:'འབྲེལ་བའི་གཞི་གྲངས་ཐང་གི་འགྱུར་ལྡོག་',
change1:'མཐོང་རིས་གཞི་གྲངས་འགྱུར་ལྡོག་',
loadComp:'མཐོང་རིས་སྣོན་འཇུག་ལེགས་འགྲུབ་',
},
appHeaderMenus: {
ibizlab:{
title: 'iBizསྒོ་འབྱེད་སྟེགས་བུ་',
},
publishProject:{
title: 'རྣམ་གྲངས་ཡིག་ཆ།',
},
ibizstudio:{
title: 'དཔེ་དབྱིབས་ཇུས་འགོད་ལག་ཆ།',
},
ibizbbs:{
title: 'iBizགླེང་སྟེགས།',
},
},
appMpicker: {
error: 'ནོར་འཁྲུལ།',
miss: 'ཞུགས་གྲངས་ཆད་པ།',
requestException: 'རྒྱུན་ལྡན་མིན་པའི་རེ་བ་ཞུ།',
},
appPicker: {
error: 'ནོར་འཁྲུལ།',
miss: 'ཞུགས་གྲངས་ཆད་པ།',
requestException: 'རྒྱུན་ལྡན་མིན་པའི་རེ་བ་ཞུ།',
newAndEdit: 'གསར་སྐྲུན་དང་རྩོམ་སྒྲིག...',
systemException: 'མ་ལག་རྒྱུན་ལྡན་མ་རེད།',
valueitemException: 'རྣམ་གྲངས་རྒྱུན་ལྡན་མིན་པ།',
formdataException: 'གྲངས་ཀ་རྒྱུན་ལྡན་མ་རེད།',
},
appPickerSelectView: {
error: 'ནོར་འཁྲུལ།',
valueitemException: 'རྣམ་གྲངས་རྒྱུན་ལྡན་མིན་པ།',
formdataException: 'གྲངས་ཀ་རྒྱུན་ལྡན་མ་རེད།',
placeholder: 'གང་ལགས་ཤེ་ན།...',
},
appPortalDesign: {
customPortal: 'རང་གིས་མཚན་ཉིད་བཞག་པའི་སྒོ་མོ།',
save: 'ཉར་ཚགས།',
},
appRangDate: {
placeholder: 'དུས་ཚོད་འདེམ་རོགས།...',
from: 'རང་',
daystart: 'ཉི་མ་ཆུ་ཚོད་བཅུ་པ་ནས་བཟུང།',
dayend: 'ཉིན་རེའི་ཆུ་ཚོད་24བར་།',
},
appRangeEditor: {
placeholder: 'དུས་ཚོད་འདེམ་རོགས།...',
input: 'ནང་འཇུག།...',
},
appStudioAction: {
configTitle: 'མིག་སྔའི་མཐོང་རིས་སྡེབ་སྒྲིག་མཐུད་མཚམས་',
configButton: 'སྡེབ་སྒྲིག',
issueTitle: 'མིག་སྔའི་མཐུད་མཚམས་འཛུགས་ཀྱི་issus།',
issueButton: 'གསར་དུ་བསྐྲུན་པའི་issus',
},
appTreePicker: {
placeholder: 'གང་ལགས་ཤེ་ན།...',
},
dateRange: {
startText: 'གུན་སྐྱོབ་ཀྱི་དུས་བཅད་ : རང་',
endText: 'ཉིན་རེའི་ཆུ་ཚོད་24བར་།',
startPlaceholder: 'འགོ་འཛུགས་དུས་ཚོད།',
rangeSeparatorr: ' 0 དུས་ཐོག་ཏུ་སླེབས་པ།',
endPlaceholder: 'མཇུག་རྫོགས་ཚེས་གྲངས།',
},
dropDownList: {
placeholder: 'གང་ལགས་ཤེ་ན།...',
},
dropDownListDynamic: {
placeholder: 'གང་ལགས་ཤེ་ན།...',
},
dropDownListMpicker: {
placeholder: 'གང་ལགས་ཤེ་ན།...',
},
login: {
error: 'ནོར་འཁྲུལ།',
caption: 'ཐོ་འགོད་ལ་ཕེབས་པར་དགའ་བསུ་ཞུ་།',
placeholder1:'སྤྱོད་མཁན་གྱི་མིང་',
placeholder2:'གསང་ཨང་',
name: 'ཐོ་འགོད།',
reset:'བསྐྱར་འཇོག',
other:'ཐོ་འཇུག་བྱེད་སྟངས་གཞན་དག་།',
tip: 'སྤྱོད་མཁན་གྱི་མིང་དང་གསང་ཨང་ནང་འཇུག་',
warning1:'qqདབང་བཅོལ་ཐོ་འཇུག་གནས་སྐབས་སུ་རྒྱབ་སྐྱོར་མ་བྱས་།',
warning2:'སྐད་འཕྲིན་དབང་སྤྲོད་ཐོ་འཇུག་གནས་སྐབས་རྒྱབ་སྐྱོར་མ་བྱས་།',
loginname: {
placeholder: 'འཇུག་རོགས་།སྤྱོད་མཁན་གྱི་མིང་།',
message: 'སྤྱོད་མཁན་གྱི་མིང་སྟོང་མི་ཆོག',
},
password: {
placeholder: 'གསང་ཨང་ནང་འཇུག་རོགས་།',
message: 'གསང་ཨང་སྟོང་མི་རུང་།',
},
loginfailed: 'ཐོ་འཇུག་ཕམ་པ།',
},
appUser: {
name: 'རྒྱུད་ཁོངས་དོ་དམ་པ་',
logout: 'ཐོ་འཇུག་ནས་ཕྱིར་འབུད་',
surelogout: 'ཐོ་འགོད་ནས་ཕྱིར་འབུད་རྒྱུ་ཡིན་ནམ།',
changepwd: "གསང་ཨང་བཅོས་པ།",
},
appTheme: {
caption: {
theme: 'བརྗོད་བྱ་གཙོ་བོ།',
font: 'ཡིག་གཟུགས།',
},
fontFamilys: {
MicrosoftYaHei: 'ཝེ་རོན་ཡ་ཧེ།',
SimHei: 'ནག་གཟུགས།',
YouYuan: 'ཕྲུ་གུ་',
},
},
appFormGroup: {
hide: 'སྦས་པའི་ཡིག་དུམ།',
showMore: 'དེ་ལས་མང་བའི་ཡིག་དུམ།',
},
appUpdatePassword: {
oldPwd: 'ཐོག་མའི་གསང་ཨང་',
newPwd: 'གསང་ཨང་གསར་པ།',
confirmPwd: 'གསང་ཨང་ངོས་འཛིན་',
sure: 'ངོས་འཛིན་བཟོ་བཅོས་',
oldPwdErr: 'དེ་སྔའི་གསང་གྲངས་སྟོང་པ་མ་རེད།',
newPwdErr: 'གསང་གྲངས་གསར་པ་སྟོང་པ་མ་རེད།',
confirmPwdErr: 'ཐེངས་གཉིས་ལ་གསང་ཨང་ནང་འཇུག་མི་མཐུན།',
},
appAddressSelection: {
loadDataFail: 'གྲོང་ཁྱེར་གཞི་གྲངས་ཁུར་སྣོན་ཕམ་'
},
appGroupSelect:{
groupSelect:'སྐོར་བགོས་གདམ་གསེས་',
},
appImageUpload:{
uploadFail:'ཡར་བསྐུར་ཕམ་'
},
appOrgSelect:{
loadFail:'ཁུར་སྣོན་གཞི་གྲངས་ཕམ་པ།'
},
appTransfer:{
title1:'མ་བདམས་',
title2:'བདམས་ཟིན་',
},
appWFApproval:{
commit:'འབུལ་བ་',
wait:'སྒུག་པ་',
handle:'ཐག་གཅོད་',
placeholder:'ནང་དོན་རོགས་།',
end:'མཇུག་སྒྲིལ།'
},
contextMenuDrag:{
allApp:'ཆ་ཚང་བེད་སྤྱོད།',
noFind:'བེད་སྤྱོད་དེ་རྙེད་མ་བྱུང་།'
},
filterMode:{
placeholder:'ཆ་རྐྱེན་གཏན་ཚིགས།',
},
filterTree:{
title1:'ཁ་སྣོན་ཆ་རྐྱེན།',
title2:'ཁ་སྣོན་ཚོ་',
placeholder:'ངོ་བོ་',
},
iBizGroupPicker:{
ok:'ངོས་འཛིན་',
cancel:'མེད་པར་བཟོ་བ་',
},
iBizGroupSelect:{
groupSelect:'སྐོར་བགོས་གདམ་གསེས་'
},
tabPageExp:{
more:'དེ་བས་མང་བ་',
},
uploadFile:{
imgMsg:'རི་མོ་འདིར་དྲུད་ནས་བརྗེ་།',
localUpload:'རང་སའི་ཡར་སྤྲོད་དགོས།',
or:'ཡང་ན་',
imgMsg1:'རྒྱུ་ཆ་མཛོད་ནས་འདེམས་དགོས།'
},
lockScren:{
title:'སྒྲོག་ཡོལ་གསང་ཨང་འགོད་པ་',
label:'སྒྲོག་ཤེལ་གསང་ཨང་',
message:'ཟྭ་ཡོལ་གསང་ཨང་སྟོང་མི་རུང་།',
placeholder:'སྒོ་ལྕགས་ཀྱི་གསང་ཨང་ནང་འཇུག་རོགས་།',
placeholder1:'གསང་ཨང་ནང་འཇུག་རོགས་།',
message1: 'སྒྲོག་འགྲོལ་གསང་ཨང་ནོར་འཁྲུལ་,ཡང་བསྐྱར་ནང་འཇུག་རོགས་།',
promptInformation:'ཕྱིར་འཐེན་བྱེད་མིན་རྒྱུད་ཁོངས།, མུ་མཐུད་ཡིན་ནམ།',
prompt:'གསལ་འདེབས་',
confirmButtonText:'གཏན་ཁེལ་',
cancelButtonText:'མེད་པར་བཟོ་བ་',
},
cronEditor: {
label: {
second: 'སྐར་ཆ་',
minute: 'སྐར་མ་',
hour: 'དུས་',
day: 'ཉི་མ།',
week: 'གཟའ་འཁོར།',
month: 'ཟླ་བ།',
year: 'ལོ་',
},
public : {
specify: 'དམིགས་འཛུགས་',
notSpecify: 'དམིགས་འཛུགས་མི་བྱེད་པ་',
cycle: 'འཁོར་ཡུན་',
from: 'ནས།',
to: 'སླེབས་པ་',
loop: 'རྒྱུན་འཁོར།',
every: 'རེ་རེ།',
once: 'ལག་ལེན་ཐེངས་གཅིག་',
},
second: 'སྐར་ཆ་',
minute: 'སྐར་མ་',
hour: {
title: 'དུས་',
everyHour: 'དུས་དང་རྣམ་པ་ཀུན་ཏུ་',
hourStart: 'དུས་མགོ་བརྩམས་།,རེ་རེ།',
onceAHour: 'དུས་ལག་བསྟར་ཐེངས་གཅིག་།',
},
day: {
title: 'ཉི་མ།',
daily: 'ཉིན་རེ་',
workDay: 'ལས་ཞག་',
dayStart: 'ཉིན་མོ་འགོ་ཚུགས་།,རེ་རེ།',
onceADay: 'ཉིན་རེར་ལག་བསྟར་ཐེངས་རེ།',
thisMonth: 'ཟླ་བ་འདི་གར།',
lastWorkDay: 'ཨང་།,ཆེས་ཉེ་བའི་ལས་ཞག་',
lastDayOfMonth: 'ཟླ་འདིའི་ཆེས་མཇུག་མཐའི་ཉིན་མོ་།',
},
month: {
title: 'ཟླ་བ།',
everyMonth: 'ཟླ་རེ།',
monthStart: 'ཟླ་བ་མགོ་བརྩམས་།,རེ་རེ།',
onceAMonth: 'ཟླ་བ་ལག་བསྟར་ཐེངས་གཅིག་།',
},
week: {
title: 'གཟའ་འཁོར།',
everyWeek: 'གཟའ་འཁོར་རེ་',
from: 'གཟའ་འཁོར།',
to: 'ནས་གཟའ་འཁོར་།',
start: 'འགོ་ཚུགས་པ་,རེ་རེ།',
onceADay: 'གནམ་ནས་ལག་བསྟར་ཐེངས་གཅིག་བྱེད།',
specifyWeek: 'དམིགས་བཙུགས་གཟའ་འཁོར།',
weekOfMonth: 'ཟླ་འདིའི་ཟླ་བ།',
weekWeek: 'གཟའ་འཁོར།,གཟའ་འཁོར།',
lastOfMonth: 'ཟླ་འདིའི་ཆེས་མཇུག་མ།',
week: 'གཟའ་འཁོར།',
},
year: {
title: 'ལོ་',
everyYear: 'ལོ་རེ་',
},
message: {
error1: 'དུས་ཚོད་དང་གཟའ་འཁོར་གཉིས་དུས་གཅིག་ཏུ་“དམིགས་འཛུགས་མ་བྱས་”ཆོག་གི་མ་རེད་།',
error2: 'དུས་ཚོད་དང་གཟའ་འཁོར་ངེས་པར་དུ་“དམིགས་འཛུགས་མི་བྱེད་པ་”ཞིག་ཡོད་།',
},
},
appMessagePopover: {
loadMore: 'མང་ཙམ་བླུགས་རོགས།',
noMore: 'དེ་ལས་མང་བ་མི་འདུག'
},
diskFileUpload:{
fileDrag: 'ཡིག་ཆ་འདིར་དྲུད་།,ཡང་ན་',
clickUpload: 'སྣོན་ནས་ཡར་སྐུར་དགོས།',
load: 'ཕབ་འཇུག',
preview: 'སྔོན་ལྟ་',
edit: 'རྩོམ་སྒྲིག',
delete: 'སུབ་པ་',
clues: 'ཡིག་ཆ་ཁེར་རྐྱང་གི་ཆེ་ཆུང་ལས་བརྒལ་མི་རུང་།',
clues1: 'ཡིག་ཆ་ལས་མི་བརྒལ་བ་',
getFileFailure: 'ཡིག་ཆའི་རེའུ་མིག་ཐོབ་པ་ཕམ་།',
loadFailure: 'ཡིག་ཆ་བརྒྱུད་སྐྱེལ་ཕམ་',
loadFailure1: 'ཡར་བསྐུར་ཕམ་,ཡིག་ཆ་ཁེར་རྐྱང་ལས་བརྒལ་མི་ཆོག',
downloadFile: 'ཡིག་ཆ་ཕབ་ལེན་ཕམ་།',
downloadFile1: 'ཡིག་ཆ་ཕབ་ལེན་ཕམ་།,ཡིག་ཆ་མ་ཐོབ།',
deleteFile: 'བཀོལ་སྤྱོད་འདི་ཡིག་ཆ་དེ་ནམ་ཡང་བསུབ་རྒྱུ་།, མུ་མཐུད་ཡིན་ནམ།?',
deleteFilePrompt: 'གསལ་འདེབས་',
true: 'གཏན་ཁེལ་',
false: 'མེད་པར་བཟོ་བ་',
deleteFileFailure: 'ཡིག་ཆ་སུབ་པ་ཕམ་',
updateFailure: 'སྡེབ་འབོར་གསར་སྒྱུར་ཡིག་ཆ་ཕམ་པ།',
},
diskImageUpload:{
preview: 'སྔོན་ལྟ་',
OCRdiscern: 'ORCངོས་འཛིན་',
load: 'ཕབ་འཇུག',
delete: 'སུབ་པ་',
getImageFailure: 'པར་རིས་ཀྱི་རེའུ་མིག་ཐོབ་མ་ཐུབ།',
loadImageFailure: 'ཕབ་ལེན་བསྡུས་རིས་ཕམ་།',
loadImageFailure1: 'ཕབ་ལེན་བསྡུས་རིས་ཕམ་།,ཡིག་ཆ་མ་ཐོབ་པ།',
loadImageFailure2:'པར་རིས་ཕབ་ལེན་ཕམ་།',
loadImageFailure3:'པར་རིས་ཕབ་ལེན་ཕམ་།,པར་རིས་མ་རྙེད།',
ImageIdNone: 'པར་རིས་idམི་འདུག',
uploadImageFailure: 'ཡར་བསྐུར་པར་རིས་ཕམ་',
uploadImageFailure1: 'ཡར་བསྐུར་ཕམ་,༢༠༠if.jpg,png,bmpརྣམ་པའི་པར་རིས། ',
uploadFailure: 'ཡར་བསྐུར་ཕམ་,པར་རིས་གཅིག་ལས་བརྒལ་མི་ཆོག་།',
notImageUrl: 'པར་རིས་urlགནས་མེད་།',
deleteFile: 'བཀོལ་སྤྱོད་འདི་ཡིག་ཆ་དེ་ནམ་ཡང་བསུབ་རྒྱུ་།, མུ་མཐུད་ཡིན་ནམ།',
deleteFilePrompt: 'གསལ་འདེབས་',
true: 'གཏན་ཁེལ་',
false: 'མེད་པར་བཟོ་བ་',
deleteImageFailure:'པར་རིས་སུབ་པ་ཕམ་',
updateFailure: 'སྡེབ་འབོར་གསར་སྒྱུར་ཡིག་ཆ་ཕམ་པ།',
},
appMapPosition: {
submit: 'ངོས་འཛིན་',
title: 'ཤག་གནས་འདེམས་རོགས་།'
},
appSortBar: {
title: 'རིམ་སྒྲིག་'
},
appAfterTime:{
minutesAgo: 'སྐར་མ་གོང་།',
hoursAgo: 'ཆུ་ཚོད་ཀྱི་གོང་།',
dayAgo: 'གནམ་གྱི་མདུན།',
monthsAgo: 'ཟླ་བ་སྔོན་མ།',
yearsAgo: 'ལོ་གསར་གོང་'
}
};
return data;
}
export default getLocaleResourceBase;
\ No newline at end of file
import JobsInfo_BO_CN_Base from './jobs-info_BO_CN_base';
function getLocaleResource(){
const JobsInfo_BO_CN_OwnData = {};
const targetData = Object.assign(JobsInfo_BO_CN_Base(), JobsInfo_BO_CN_OwnData);
return targetData;
}
export default getLocaleResource;
\ No newline at end of file
import commonLogic from '@/locale/logic/common/common-logic';
function getLocaleResourceBase(){
const data:any = {
fields: {
id: commonLogic.appcommonhandle("主键ID",null),
tenant_id: commonLogic.appcommonhandle("租户ID",null),
app: commonLogic.appcommonhandle("服务名",null),
cron: commonLogic.appcommonhandle("任务执行CRON",null),
handler: commonLogic.appcommonhandle("执行器任务HANDLER",null),
param: commonLogic.appcommonhandle("执行器任务参数",null),
timeout: commonLogic.appcommonhandle("任务执行超时时间(秒)",null),
fail_retry_count: commonLogic.appcommonhandle("失败重试次数",null),
last_time: commonLogic.appcommonhandle("上次调度时间",null),
next_time: commonLogic.appcommonhandle("下次调度时间",null),
author: commonLogic.appcommonhandle("所有者",null),
remark: commonLogic.appcommonhandle("备注",null),
status: commonLogic.appcommonhandle("状态",null),
update_time: commonLogic.appcommonhandle("更新时间",null),
create_time: commonLogic.appcommonhandle("创建时间",null),
},
views: {
editview: {
caption: commonLogic.appcommonhandle("任务信息",null),
title: commonLogic.appcommonhandle("任务信息编辑视图",null),
},
gridview: {
caption: commonLogic.appcommonhandle("任务信息",null),
title: commonLogic.appcommonhandle("任务信息表格视图",null),
},
},
main_form: {
details: {
group1: commonLogic.appcommonhandle("任务信息基本信息",null),
formpage1: commonLogic.appcommonhandle("基本信息",null),
srforikey: commonLogic.appcommonhandle("",null),
srfkey: commonLogic.appcommonhandle("主键ID",null),
srfmajortext: commonLogic.appcommonhandle("执行器任务HANDLER",null),
srftempmode: commonLogic.appcommonhandle("",null),
srfuf: commonLogic.appcommonhandle("",null),
srfdeid: commonLogic.appcommonhandle("",null),
srfsourcekey: commonLogic.appcommonhandle("",null),
app: commonLogic.appcommonhandle("服务名",null),
handler: commonLogic.appcommonhandle("执行器任务HANDLER",null),
cron: commonLogic.appcommonhandle("任务执行CRON",null),
param: commonLogic.appcommonhandle("执行器任务参数",null),
last_time: commonLogic.appcommonhandle("上次调度时间",null),
next_time: commonLogic.appcommonhandle("下次调度时间",null),
timeout: commonLogic.appcommonhandle("任务执行超时时间(秒)",null),
fail_retry_count: commonLogic.appcommonhandle("失败重试次数",null),
author: commonLogic.appcommonhandle("所有者",null),
remark: commonLogic.appcommonhandle("备注",null),
status: commonLogic.appcommonhandle("状态",null),
tenant_id: commonLogic.appcommonhandle("租户ID",null),
create_time: commonLogic.appcommonhandle("创建时间",null),
update_time: commonLogic.appcommonhandle("更新时间",null),
id: commonLogic.appcommonhandle("主键ID",null),
},
uiactions: {
},
},
main_grid: {
columns: {
id: commonLogic.appcommonhandle("主键ID",null),
app: commonLogic.appcommonhandle("服务名",null),
handler: commonLogic.appcommonhandle("执行器任务HANDLER",null),
cron: commonLogic.appcommonhandle("任务执行CRON",null),
last_time: commonLogic.appcommonhandle("上次调度时间",null),
next_time: commonLogic.appcommonhandle("下次调度时间",null),
status: commonLogic.appcommonhandle("状态",null),
timeout: commonLogic.appcommonhandle("任务执行超时时间(秒)",null),
update_time: commonLogic.appcommonhandle("更新时间",null),
},
nodata:commonLogic.appcommonhandle("",null),
uiactions: {
},
},
default_searchform: {
details: {
formpage1: commonLogic.appcommonhandle("常规条件",null),
n_app_like: commonLogic.appcommonhandle("服务名(文本包含(%))",null),
n_handler_like: commonLogic.appcommonhandle("执行器任务HANDLER(文本包含(%))",null),
n_status_eq: commonLogic.appcommonhandle("状态(等于(=))",null),
},
uiactions: {
},
},
editviewtoolbar_toolbar: {
tbitem3: {
caption: commonLogic.appcommonhandle("保存",null),
tip: commonLogic.appcommonhandle("保存",null),
},
deuiaction1: {
caption: commonLogic.appcommonhandle("关闭",null),
tip: commonLogic.appcommonhandle("关闭",null),
},
},
gridviewtoolbar_toolbar: {
deuiaction1: {
caption: commonLogic.appcommonhandle("启动",null),
tip: commonLogic.appcommonhandle("启动",null),
},
deuiaction2: {
caption: commonLogic.appcommonhandle("停止",null),
tip: commonLogic.appcommonhandle("停止",null),
},
deuiaction3: {
caption: commonLogic.appcommonhandle("执行",null),
tip: commonLogic.appcommonhandle("执行",null),
},
deuiaction4: {
caption: commonLogic.appcommonhandle("新建",null),
tip: commonLogic.appcommonhandle("新建",null),
},
deuiaction5: {
caption: commonLogic.appcommonhandle("编辑",null),
tip: commonLogic.appcommonhandle("编辑",null),
},
deuiaction6: {
caption: commonLogic.appcommonhandle("删除",null),
tip: commonLogic.appcommonhandle("删除",null),
},
deuiaction7: {
caption: commonLogic.appcommonhandle("过滤",null),
tip: commonLogic.appcommonhandle("过滤",null),
},
},
};
return data;
}
export default getLocaleResourceBase;
\ No newline at end of file
import JobsLock_BO_CN_Base from './jobs-lock_BO_CN_base';
function getLocaleResource(){
const JobsLock_BO_CN_OwnData = {};
const targetData = Object.assign(JobsLock_BO_CN_Base(), JobsLock_BO_CN_OwnData);
return targetData;
}
export default getLocaleResource;
\ No newline at end of file
import commonLogic from '@/locale/logic/common/common-logic';
function getLocaleResourceBase(){
const data:any = {
fields: {
id: commonLogic.appcommonhandle("主键ID",null),
name: commonLogic.appcommonhandle("名称",null),
owner: commonLogic.appcommonhandle("持有者",null),
create_time: commonLogic.appcommonhandle("创建时间",null),
},
};
return data;
}
export default getLocaleResourceBase;
\ No newline at end of file
import JobsLog_BO_CN_Base from './jobs-log_BO_CN_base';
function getLocaleResource(){
const JobsLog_BO_CN_OwnData = {};
const targetData = Object.assign(JobsLog_BO_CN_Base(), JobsLog_BO_CN_OwnData);
return targetData;
}
export default getLocaleResource;
\ No newline at end of file
import commonLogic from '@/locale/logic/common/common-logic';
function getLocaleResourceBase(){
const data:any = {
fields: {
id: commonLogic.appcommonhandle("主键ID",null),
job_id: commonLogic.appcommonhandle("任务ID",null),
address: commonLogic.appcommonhandle("执行地址",null),
handler: commonLogic.appcommonhandle("执行器任务HANDLER",null),
param: commonLogic.appcommonhandle("执行器任务参数",null),
fail_retry_count: commonLogic.appcommonhandle("失败重试次数",null),
trigger_code: commonLogic.appcommonhandle("触发器调度返回码",null),
trigger_type: commonLogic.appcommonhandle("触发器调度类型",null),
trigger_msg: commonLogic.appcommonhandle("触发器调度信息",null),
create_time: commonLogic.appcommonhandle("创建时间",null),
},
views: {
gridview: {
caption: commonLogic.appcommonhandle("任务调度日志",null),
title: commonLogic.appcommonhandle("任务调度日志表格视图",null),
},
editview: {
caption: commonLogic.appcommonhandle("任务调度日志",null),
title: commonLogic.appcommonhandle("任务调度日志编辑视图",null),
},
},
main_form: {
details: {
group1: commonLogic.appcommonhandle("任务调度日志基本信息",null),
formpage1: commonLogic.appcommonhandle("基本信息",null),
srforikey: commonLogic.appcommonhandle("",null),
srfkey: commonLogic.appcommonhandle("主键ID",null),
srfmajortext: commonLogic.appcommonhandle("执行器任务HANDLER",null),
srftempmode: commonLogic.appcommonhandle("",null),
srfuf: commonLogic.appcommonhandle("",null),
srfdeid: commonLogic.appcommonhandle("",null),
srfsourcekey: commonLogic.appcommonhandle("",null),
job_id: commonLogic.appcommonhandle("任务ID",null),
handler: commonLogic.appcommonhandle("执行器任务HANDLER",null),
param: commonLogic.appcommonhandle("执行器任务参数",null),
fail_retry_count: commonLogic.appcommonhandle("失败重试次数",null),
trigger_code: commonLogic.appcommonhandle("触发器调度返回码",null),
trigger_type: commonLogic.appcommonhandle("触发器调度类型",null),
trigger_msg: commonLogic.appcommonhandle("触发器调度信息",null),
address: commonLogic.appcommonhandle("执行地址",null),
create_time: commonLogic.appcommonhandle("创建时间",null),
id: commonLogic.appcommonhandle("主键ID",null),
},
uiactions: {
},
},
main_grid: {
columns: {
id: commonLogic.appcommonhandle("主键ID",null),
job_id: commonLogic.appcommonhandle("任务ID",null),
handler: commonLogic.appcommonhandle("执行器任务HANDLER",null),
address: commonLogic.appcommonhandle("执行地址",null),
trigger_code: commonLogic.appcommonhandle("触发器调度返回码",null),
trigger_type: commonLogic.appcommonhandle("触发器调度类型",null),
fail_retry_count: commonLogic.appcommonhandle("失败重试次数",null),
create_time: commonLogic.appcommonhandle("创建时间",null),
},
nodata:commonLogic.appcommonhandle("",null),
uiactions: {
},
},
default_searchform: {
details: {
formpage1: commonLogic.appcommonhandle("常规条件",null),
n_job_id_eq: commonLogic.appcommonhandle("任务ID(等于(=))",null),
n_handler_like: commonLogic.appcommonhandle("执行器任务HANDLER(文本包含(%))",null),
n_trigger_code_eq: commonLogic.appcommonhandle("触发器调度返回码(等于(=))",null),
},
uiactions: {
},
},
};
return data;
}
export default getLocaleResourceBase;
\ No newline at end of file
import JobsRegistry_BO_CN_Base from './jobs-registry_BO_CN_base';
function getLocaleResource(){
const JobsRegistry_BO_CN_OwnData = {};
const targetData = Object.assign(JobsRegistry_BO_CN_Base(), JobsRegistry_BO_CN_OwnData);
return targetData;
}
export default getLocaleResource;
\ No newline at end of file
import commonLogic from '@/locale/logic/common/common-logic';
function getLocaleResourceBase(){
const data:any = {
fields: {
id: commonLogic.appcommonhandle("主键ID",null),
app: commonLogic.appcommonhandle("服务名",null),
address: commonLogic.appcommonhandle("执行地址",null),
status: commonLogic.appcommonhandle("状态",null),
update_time: commonLogic.appcommonhandle("更新时间",null),
},
views: {
gridview: {
caption: commonLogic.appcommonhandle("任务注册信息",null),
title: commonLogic.appcommonhandle("任务注册信息表格视图",null),
},
editview: {
caption: commonLogic.appcommonhandle("任务注册信息",null),
title: commonLogic.appcommonhandle("任务注册信息编辑视图",null),
},
},
main_form: {
details: {
group1: commonLogic.appcommonhandle("任务注册信息基本信息",null),
formpage1: commonLogic.appcommonhandle("基本信息",null),
srforikey: commonLogic.appcommonhandle("",null),
srfkey: commonLogic.appcommonhandle("主键ID",null),
srfmajortext: commonLogic.appcommonhandle("服务名",null),
srftempmode: commonLogic.appcommonhandle("",null),
srfuf: commonLogic.appcommonhandle("",null),
srfdeid: commonLogic.appcommonhandle("",null),
srfsourcekey: commonLogic.appcommonhandle("",null),
app: commonLogic.appcommonhandle("服务名",null),
address: commonLogic.appcommonhandle("执行地址",null),
status: commonLogic.appcommonhandle("状态",null),
id: commonLogic.appcommonhandle("主键ID",null),
},
uiactions: {
},
},
main_grid: {
columns: {
id: commonLogic.appcommonhandle("主键ID",null),
app: commonLogic.appcommonhandle("服务名",null),
address: commonLogic.appcommonhandle("执行地址",null),
status: commonLogic.appcommonhandle("状态",null),
},
nodata:commonLogic.appcommonhandle("",null),
uiactions: {
},
},
default_searchform: {
details: {
formpage1: commonLogic.appcommonhandle("常规条件",null),
n_app_like: commonLogic.appcommonhandle("服务名(文本包含(%))",null),
n_status_eq: commonLogic.appcommonhandle("状态(等于(=))",null),
},
uiactions: {
},
},
gridviewtoolbar_toolbar: {
tbitem3: {
caption: commonLogic.appcommonhandle("新建",null),
tip: commonLogic.appcommonhandle("新建",null),
},
tbitem4: {
caption: commonLogic.appcommonhandle("编辑",null),
tip: commonLogic.appcommonhandle("编辑",null),
},
tbitem8: {
caption: commonLogic.appcommonhandle("删除",null),
tip: commonLogic.appcommonhandle("删除",null),
},
deuiaction1: {
caption: commonLogic.appcommonhandle("过滤",null),
tip: commonLogic.appcommonhandle("过滤",null),
},
},
editviewtoolbar_toolbar: {
tbitem3: {
caption: commonLogic.appcommonhandle("保存",null),
tip: commonLogic.appcommonhandle("保存",null),
},
deuiaction1: {
caption: commonLogic.appcommonhandle("关闭",null),
tip: commonLogic.appcommonhandle("关闭",null),
},
},
};
return data;
}
export default getLocaleResourceBase;
\ No newline at end of file
// 用户自定义语言资源 藏文
function getLocaleResource(){
const data:any = {};
return data;
}
export default getLocaleResource;
\ No newline at end of file
export default {
el: {
colorpicker: {
confirm: 'གཏན་ཁེལ་',
clear: 'གཙང་སེལ་'
},
datepicker: {
now: 'སྐབས་དེར།',
today: 'དེ་རིང་',
cancel: 'མེད་པར་བཟོ་བ་',
clear: 'གཙང་སེལ་',
confirm: 'གཏན་ཁེལ་',
selectDate: 'བདམས་པའི་ཚེས་གྲངས།',
selectTime: 'བདམས་པའི་དུས་ཚོད།',
startDate: 'འགོ་འཛུགས་དུས་ཚོད།',
startTime: 'འགོ་རྩོམ་དུས་ཚོད།',
endDate: 'མཇུག་རྫོགས་ཚེས་གྲངས།',
endTime: 'མཇུག་རྫོགས་དུས་ཚོད།',
prevYear: 'ལོ་སྔོན་མ།',
nextYear: 'ལོ་རྗེས་མ།',
prevMonth: 'ཟླ་བ་གོང་མར་',
nextMonth: 'ཟླ་བ་རྗེས་མ་',
year: 'ལོ་',
month1: 'ཟླ་བ་དང་པོ།',
month2: 'ཟླ་བ་གཉིས་པ།',
month3: 'ཟླ་བ་གསུམ་པ།',
month4: 'ཟླ་བ་བཞི་པ།',
month5: 'ཟླ་བ་ལྔ་པ།',
month6: 'ཟླ་བ་དྲུག་པ།',
month7: 'ཟླ་བ་བདུན་པ།',
month8: 'ཟླ་བ་བརྒྱད་པ།',
month9: 'ཟླ་བ་དགུ་པ།',
month10: 'ཟླ་བ་བཅུ་པ།',
month11: 'ཟླ་བ་བཅུ་གཅིག་པ།',
month12: 'ཟླ་བ་བཅུ་གཉིས་པ།',
weeks: {
sun: 'ཉི་མ།',
mon: 'གཅིག',
tue: 'གཉིས།',
wed: 'གསུམ།',
thu: 'བཞི།',
fri: 'ལྔ།',
sat: 'དྲུག'
},
months: {
jan: 'ཟླ་བ་དང་པོ།',
feb: 'ཟླ་བ་གཉིས་པ།',
mar: 'ཟླ་བ་གསུམ་པ།',
apr: 'ཟླ་བ་བཞི་པ།',
may: 'ཟླ་བ་ལྔ་པ།',
jun: 'ཟླ་བ་དྲུག་པ།',
jul: 'ཟླ་བ་བདུན་པ།',
aug: 'ཟླ་བ་བརྒྱད་པ།',
sep: 'ཟླ་བ་དགུ་པ།',
oct: 'ཟླ་བ་བཅུ་པ།',
nov: 'ཟླ་བ་བཅུ་གཅིག་པ།',
dec: 'ཟླ་བ་བཅུ་གཉིས་པ།'
}
},
select: {
loading: 'སྣོན་འཇུག་ཁྲོད་',
noMatch: 'སྙོམ་མེད་གཞི་གྲངས།',
noData: 'གཞི་གྲངས་མེད་པ་',
placeholder: 'འདེམ་རོགས་།'
},
cascader: {
noMatch: 'སྙོམ་མེད་གཞི་གྲངས།',
loading: 'སྣོན་འཇུག་ཁྲོད་',
placeholder: 'འདེམ་རོགས་།',
noData: 'གནས་སྐབས་གཞི་གྲངས་མེད་པ་'
},
pagination: {
goto: 'ཕེབས་པ།',
pagesize: 'ནར་མོ/ལྡེབ་ངོས།',
total: 'མཉམ་དུ། {total} ལྕུག་མ།',
pageClassifier: 'ཤོག་ངོས་'
},
messagebox: {
title: 'གསལ་འདེབས་',
confirm: 'གཏན་ཁེལ་',
cancel: 'མེད་པར་བཟོ་བ་',
error: 'གཞི་གྲངས་ནང་འདྲེན་བྱས་པ་དེ་ཁྲིམས་དང་མི་མཐུན་པ་ཞིག་རེད།!'
},
upload: {
deleteTip: 'deleteམཐེབ་ལྟར་སུབ་པ་ཆོག་།',
delete: 'སུབ་པ་',
preview: 'པར་རིས་ལ་ལྟ་བ་',
continue: 'མུ་མཐུད་དུ་ཡར་བསྐུར་།'
},
table: {
emptyText: 'གནས་སྐབས་གཞི་གྲངས་མེད་པ་',
confirmFilter: 'འཚག་འདེམས་',
resetFilter: 'བསྐྱར་འཇོག',
clearFilter: 'ཚང་མ།',
sumText: 'བསྡོམས་འབོར་'
},
tree: {
emptyText: 'གནས་སྐབས་གཞི་གྲངས་མེད་པ་'
},
transfer: {
noMatch: 'སྙོམ་མེད་གཞི་གྲངས།',
noData: 'གཞི་གྲངས་མེད་པ་',
titles: ['རེའུ་མིག1', 'རེའུ་མིག2'],
filterPlaceholder: 'བཤེར་འཚོལ་ནང་དོན་ནང་འཇུག་རོགས་།',
noCheckedFormat: 'མཉམ་དུ། {total} ཚན།',
hasCheckedFormat: 'བདམས་ཟིན་པ་ {checked}/{total} ཚན།'
},
image: {
error: 'ཁུར་སྣོན་ཕམ་པ།'
},
pageHeader: {
title: 'ཕྱིར་ལོག'
},
popconfirm: {
confirmButtonText: 'གཏན་ཁེལ་',
cancelButtonText: 'མེད་པར་བཟོ་བ་'
}
}
};
\ No newline at end of file
export default {
i: {
locale: 'BO-CN',
select: {
placeholder: 'འདེམ་རོགས་།',
noMatch: 'སྙོམ་མེད་གཞི་གྲངས།',
loading: 'སྣོན་འཇུག་ཁྲོད་'
},
table: {
noDataText: 'གནས་སྐབས་གཞི་གྲངས་མེད་པ་',
noFilteredDataText: 'གནས་སྐབས་འཚག་འདེམས་མཇུག་འབྲས་མེད་།',
confirmFilter: 'འཚག་འདེམས་',
resetFilter: 'བསྐྱར་འཇོག',
clearFilter: 'ཚང་མ།',
sumText: 'བསྡོམས་འབོར་'
},
datepicker: {
selectDate: 'བདམས་པའི་ཚེས་གྲངས།',
selectTime: 'བདམས་པའི་དུས་ཚོད།',
startTime: 'འགོ་རྩོམ་དུས་ཚོད།',
endTime: 'མཇུག་རྫོགས་དུས་ཚོད།',
clear: 'གཙང་སེལ་',
ok: 'གཏན་ཁེལ་',
datePanelLabel: '[mmmm] [yyyy]',
month: 'ཟླ་བ།',
month1: 'ཟླ་བ་དང་པོ།',
month2: 'ཟླ་བ་གཉིས་པ།',
month3: 'ཟླ་བ་གསུམ་པ།',
month4: 'ཟླ་བ་བཞི་པ།',
month5: 'ཟླ་བ་ལྔ་པ།',
month6: 'ཟླ་བ་དྲུག་པ།',
month7: 'ཟླ་བ་བདུན་པ།',
month8: 'ཟླ་བ་བརྒྱད་པ།',
month9: 'ཟླ་བ་དགུ་པ།',
month10: 'ཟླ་བ་བཅུ་པ།',
month11: 'ཟླ་བ་བཅུ་གཅིག་པ།',
month12: 'ཟླ་བ་བཅུ་གཉིས་པ།',
year: 'ལོ་',
weekStartDay: '0',
weeks: {
sun: 'ཉི་མ།',
mon: 'གཅིག',
tue: 'གཉིས།',
wed: 'གསུམ།',
thu: 'བཞི།',
fri: 'ལྔ།',
sat: 'དྲུག'
},
months: {
m1: 'ཟླ་བ་དང་པོ།',
m2: 'ཟླ་བ་གཉིས་པ།',
m3: 'ཟླ་བ་གསུམ་པ།',
m4: 'ཟླ་བ་བཞི་པ།',
m5: 'ཟླ་བ་ལྔ་པ།',
m6: 'ཟླ་བ་དྲུག་པ།',
m7: 'ཟླ་བ་བདུན་པ།',
m8: 'ཟླ་བ་བརྒྱད་པ།',
m9: 'ཟླ་བ་དགུ་པ།',
m10: 'ཟླ་བ་བཅུ་པ།',
m11: 'ཟླ་བ་བཅུ་གཅིག་པ།',
m12: 'ཟླ་བ་བཅུ་གཉིས་པ།'
}
},
transfer: {
titles: {
source: 'ཁུངས་ཀྱི་རེའུ་མིག',
target: 'དམིགས་ཡུལ་རེའུ་མིག'
},
filterPlaceholder: 'བཤེར་འཚོལ་ནང་དོན་ནང་འཇུག་རོགས་།',
notFoundText: 'རེའུ་མིག་སྟོང་པ་རེད།'
},
modal: {
okText: 'གཏན་ཁེལ་',
cancelText: 'མེད་པར་བཟོ་བ་'
},
poptip: {
okText: 'གཏན་ཁེལ་',
cancelText: 'མེད་པར་བཟོ་བ་'
},
page: {
prev: 'ཤོག་ངོས་གོང་མ།',
next: 'ཤོག་ངོས་རྗེས་མ་',
total: 'མཉམ་དུ།',
item: 'ལྕུག་མ།',
items: 'ལྕུག་མ།',
prev5: 'མདུན་གྱི་ཤོག་ངོས་5།',
next5: 'རྒྱབ་ཏུ་ཤོག་ངོས་5།',
page: 'ནར་མོ/ལྡེབ་ངོས། ',
goto: 'མཆོང་།',
p: 'ཤོག་ངོས་'
},
rate: {
star: 'སྐར་མ་',
stars: 'སྐར་མ་'
},
time: {
before: 'མདུན།',
after: 'རྗེས་',
just: 'མ་ཐག་',
seconds: 'སྐར་ཆ་',
minutes: 'སྐར་མ་',
hours: 'ཆུ་ཚོད།',
days: 'གནམ་'
},
tree: {
emptyText: 'གནས་སྐབས་གཞི་གྲངས་མེད་པ་'
}
}
};
\ No newline at end of file
......@@ -3,7 +3,7 @@
<app-studioaction :viewTitle="$t(model.srfCaption)" viewName="jobsinfogridview"></app-studioaction>
<card class='view-card ' :dis-hover="true" :bordered="false">
<div slot='title' class="header-container">
<span class='caption-info'>{{$t(model.srfCaption)}}</span>
<span class='caption-info' :title="$t(model.srfCaption)">{{$t(model.srfCaption)}}</span>
</div>
<div class='view-top-messages'>
</div>
......
......@@ -3,7 +3,7 @@
<app-studioaction :viewTitle="$t(model.srfCaption)" viewName="jobsloggridview"></app-studioaction>
<card class='view-card ' :dis-hover="true" :bordered="false">
<div slot='title' class="header-container">
<span class='caption-info'>{{$t(model.srfCaption)}}</span>
<span class='caption-info' :title="$t(model.srfCaption)">{{$t(model.srfCaption)}}</span>
</div>
<div class='view-top-messages'>
</div>
......
......@@ -3,7 +3,7 @@
<app-studioaction :viewTitle="$t(model.srfCaption)" viewName="jobsregistrygridview"></app-studioaction>
<card class='view-card ' :dis-hover="true" :bordered="false">
<div slot='title' class="header-container">
<span class='caption-info'>{{$t(model.srfCaption)}}</span>
<span class='caption-info' :title="$t(model.srfCaption)">{{$t(model.srfCaption)}}</span>
</div>
<div class='view-top-messages'>
</div>
......
......@@ -178,7 +178,7 @@ export default class JobsInfoServiceBase extends EntityService {
*/
public async ExecuteBatch(context: any = {},data: any = {}, isloading?: boolean): Promise<any> {
let tempData:any = JSON.parse(JSON.stringify(data));
return await Http.getInstance().post(`/jobsinfo/executebatch`,tempData,isloading);
return await Http.getInstance().post(`/jobsinfos/executebatch`,tempData,isloading);
}
/**
......
......@@ -110,6 +110,10 @@
font-size: 18px;
color: #1890ff;
flex-shrink: 0;
max-width: 50%;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
> .toolbar-container{
margin-left: auto;
......
......@@ -10,5 +10,11 @@ declare module "view-design/dist/locale/zh-CN" {
declare module "element-ui/lib/locale/lang/zh-CN" {
}
declare module "view-design/dist/locale/BO-CN" {
}
declare module "element-ui/lib/locale/lang/BO-CN" {
}
declare module "tinymce/tinymce" {
}
\ No newline at end of file
......@@ -8,6 +8,7 @@
:collapse="isCollapse"
@select="select"
:default-active="defaultActive">
<template v-if="Object.is(mode,'horizontal')">
<template v-for="item0 in menus">
<template v-if="item0.items && Array.isArray(item0.items) && item0.items.length > 0">
......@@ -107,6 +108,7 @@
</template>
</template>
<app-menu-item v-else :isCollapse="isCollapse" :menus="menus" :ctrlName="'taskindexview'" :isFirst="true" :counterdata="counterdata" :popper-class="popperClass"></app-menu-item>
</el-menu>
</div>
</template>
......
......@@ -73,7 +73,7 @@ import { ControlInterface } from '@/interface/control';
import { UIActionTool,Util,ViewTool } from '@/utils';
import NavDataService from '@/service/app/navdata-service';
import AppCenterService from "@service/app/app-center-service";
import JobsInfoService from '@/service/jobs-info/jobs-info-service';
import JobsInfoEntityService from '@/service/jobs-info/jobs-info-service';
import DefaultService from './default-searchform-service';
import JobsInfoUIService from '@/uiservice/jobs-info/jobs-info-ui-service';
import { FormButtonModel, FormPageModel, FormItemModel, FormDRUIPartModel, FormPartModel, FormGroupPanelModel, FormIFrameModel, FormRowItemModel, FormTabPageModel, FormTabPanelModel, FormUserControlModel } from '@/model/form-detail';
......@@ -162,7 +162,7 @@ export default class DefaultBase extends Vue implements ControlInterface {
* @type {JobsInfoService}
* @memberof DefaultBase
*/
public appEntityService: JobsInfoService = new JobsInfoService({ $store: this.$store });
public appEntityService: JobsInfoEntityService = new JobsInfoEntityService({ $store: this.$store });
......
......@@ -212,7 +212,7 @@ import { ControlInterface } from '@/interface/control';
import { UIActionTool,Util,ViewTool } from '@/utils';
import NavDataService from '@/service/app/navdata-service';
import AppCenterService from "@service/app/app-center-service";
import JobsInfoService from '@/service/jobs-info/jobs-info-service';
import JobsInfoEntityService from '@/service/jobs-info/jobs-info-service';
import MainService from './main-form-service';
import JobsInfoUIService from '@/uiservice/jobs-info/jobs-info-ui-service';
import { FormButtonModel, FormPageModel, FormItemModel, FormDRUIPartModel, FormPartModel, FormGroupPanelModel, FormIFrameModel, FormRowItemModel, FormTabPageModel, FormTabPanelModel, FormUserControlModel } from '@/model/form-detail';
......@@ -303,7 +303,7 @@ export default class MainBase extends Vue implements ControlInterface {
* @type {JobsInfoService}
* @memberof MainBase
*/
public appEntityService: JobsInfoService = new JobsInfoService({ $store: this.$store });
public appEntityService: JobsInfoEntityService = new JobsInfoEntityService({ $store: this.$store });
......@@ -556,6 +556,15 @@ export default class MainBase extends Vue implements ControlInterface {
*/
public errorMessages: Array<any> = [];
/**
* 应用状态事件
*
* @public
* @type {(Subscription | undefined)}
* @memberof MainBase
*/
public appStateEvent: Subscription | undefined;
/**
* 设置表单项错误提示信息
*
......@@ -1560,6 +1569,9 @@ export default class MainBase extends Vue implements ControlInterface {
if (this.dataChangEvent) {
this.dataChangEvent.unsubscribe();
}
if(this.appStateEvent){
this.appStateEvent.unsubscribe();
}
}
/**
......
......@@ -10,6 +10,7 @@
:cell-class-name="getCellClassName"
max-height="items.length > 0 ? 'calc(100%-50px)' : '100%'"
@row-click="rowClick($event)"
@cell-click="cellClick"
@select-all="selectAll($event)"
@select="select"
@row-class-name="onRowClassName($event)"
......@@ -180,7 +181,7 @@ import { ControlInterface } from '@/interface/control';
import { UIActionTool,Util,ViewTool } from '@/utils';
import NavDataService from '@/service/app/navdata-service';
import AppCenterService from "@service/app/app-center-service";
import JobsInfoService from '@/service/jobs-info/jobs-info-service';
import JobsInfoEntityService from '@/service/jobs-info/jobs-info-service';
import MainService from './main-grid-service';
import JobsInfoUIService from '@/uiservice/jobs-info/jobs-info-ui-service';
import CodeListService from "@/codelist/codelist-service";
......@@ -270,7 +271,7 @@ export default class MainBase extends Vue implements ControlInterface {
* @type {JobsInfoService}
* @memberof MainBase
*/
public appEntityService: JobsInfoService = new JobsInfoService({ $store: this.$store });
public appEntityService: JobsInfoEntityService = new JobsInfoEntityService({ $store: this.$store });
......@@ -1107,7 +1108,8 @@ export default class MainBase extends Vue implements ControlInterface {
this.selections = [];
resolve(response);
}).catch((response: any) => {
if (response && response.status === 401) {
if (response && response.status != 200) {
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: response.message});
return;
}
if (!response || !response.status || !response.data) {
......@@ -1794,6 +1796,17 @@ export default class MainBase extends Vue implements ControlInterface {
this.$emit('selectionchange', this.selections);
}
/**
* 单元格单击隐藏提示框
*
* @memberof MainBase
*/
public cellClick() {
let el: any = document.getElementsByClassName('el-tooltip__popper')[0];
if (el) {
el.style.display = 'none';
}
}
/**
* 行单击选中
......@@ -1928,6 +1941,7 @@ export default class MainBase extends Vue implements ControlInterface {
*/
public uiAction(row: any, tag: any, $event: any) {
// this.rowClick(row, true);
this.cellClick();
$event.stopPropagation();
}
......
......@@ -66,7 +66,7 @@ import { ControlInterface } from '@/interface/control';
import { UIActionTool,Util,ViewTool } from '@/utils';
import NavDataService from '@/service/app/navdata-service';
import AppCenterService from "@service/app/app-center-service";
import JobsLogService from '@/service/jobs-log/jobs-log-service';
import JobsLogEntityService from '@/service/jobs-log/jobs-log-service';
import DefaultService from './default-searchform-service';
import JobsLogUIService from '@/uiservice/jobs-log/jobs-log-ui-service';
import { FormButtonModel, FormPageModel, FormItemModel, FormDRUIPartModel, FormPartModel, FormGroupPanelModel, FormIFrameModel, FormRowItemModel, FormTabPageModel, FormTabPanelModel, FormUserControlModel } from '@/model/form-detail';
......@@ -155,7 +155,7 @@ export default class DefaultBase extends Vue implements ControlInterface {
* @type {JobsLogService}
* @memberof DefaultBase
*/
public appEntityService: JobsLogService = new JobsLogService({ $store: this.$store });
public appEntityService: JobsLogEntityService = new JobsLogEntityService({ $store: this.$store });
......
......@@ -132,7 +132,7 @@ import { ControlInterface } from '@/interface/control';
import { UIActionTool,Util,ViewTool } from '@/utils';
import NavDataService from '@/service/app/navdata-service';
import AppCenterService from "@service/app/app-center-service";
import JobsLogService from '@/service/jobs-log/jobs-log-service';
import JobsLogEntityService from '@/service/jobs-log/jobs-log-service';
import MainService from './main-form-service';
import JobsLogUIService from '@/uiservice/jobs-log/jobs-log-ui-service';
import { FormButtonModel, FormPageModel, FormItemModel, FormDRUIPartModel, FormPartModel, FormGroupPanelModel, FormIFrameModel, FormRowItemModel, FormTabPageModel, FormTabPanelModel, FormUserControlModel } from '@/model/form-detail';
......@@ -223,7 +223,7 @@ export default class MainBase extends Vue implements ControlInterface {
* @type {JobsLogService}
* @memberof MainBase
*/
public appEntityService: JobsLogService = new JobsLogService({ $store: this.$store });
public appEntityService: JobsLogEntityService = new JobsLogEntityService({ $store: this.$store });
......@@ -476,6 +476,15 @@ export default class MainBase extends Vue implements ControlInterface {
*/
public errorMessages: Array<any> = [];
/**
* 应用状态事件
*
* @public
* @type {(Subscription | undefined)}
* @memberof MainBase
*/
public appStateEvent: Subscription | undefined;
/**
* 设置表单项错误提示信息
*
......@@ -1380,6 +1389,9 @@ export default class MainBase extends Vue implements ControlInterface {
if (this.dataChangEvent) {
this.dataChangEvent.unsubscribe();
}
if(this.appStateEvent){
this.appStateEvent.unsubscribe();
}
}
/**
......
......@@ -10,6 +10,7 @@
:cell-class-name="getCellClassName"
max-height="items.length > 0 ? 'calc(100%-50px)' : '100%'"
@row-click="rowClick($event)"
@cell-click="cellClick"
@select-all="selectAll($event)"
@select="select"
@row-class-name="onRowClassName($event)"
......@@ -166,7 +167,7 @@ import { ControlInterface } from '@/interface/control';
import { UIActionTool,Util,ViewTool } from '@/utils';
import NavDataService from '@/service/app/navdata-service';
import AppCenterService from "@service/app/app-center-service";
import JobsLogService from '@/service/jobs-log/jobs-log-service';
import JobsLogEntityService from '@/service/jobs-log/jobs-log-service';
import MainService from './main-grid-service';
import JobsLogUIService from '@/uiservice/jobs-log/jobs-log-ui-service';
import CodeListService from "@/codelist/codelist-service";
......@@ -256,7 +257,7 @@ export default class MainBase extends Vue implements ControlInterface {
* @type {JobsLogService}
* @memberof MainBase
*/
public appEntityService: JobsLogService = new JobsLogService({ $store: this.$store });
public appEntityService: JobsLogEntityService = new JobsLogEntityService({ $store: this.$store });
......@@ -1084,7 +1085,8 @@ export default class MainBase extends Vue implements ControlInterface {
this.selections = [];
resolve(response);
}).catch((response: any) => {
if (response && response.status === 401) {
if (response && response.status != 200) {
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: response.message});
return;
}
if (!response || !response.status || !response.data) {
......@@ -1760,6 +1762,17 @@ export default class MainBase extends Vue implements ControlInterface {
this.$emit('selectionchange', this.selections);
}
/**
* 单元格单击隐藏提示框
*
* @memberof MainBase
*/
public cellClick() {
let el: any = document.getElementsByClassName('el-tooltip__popper')[0];
if (el) {
el.style.display = 'none';
}
}
/**
* 行单击选中
......@@ -1894,6 +1907,7 @@ export default class MainBase extends Vue implements ControlInterface {
*/
public uiAction(row: any, tag: any, $event: any) {
// this.rowClick(row, true);
this.cellClick();
$event.stopPropagation();
}
......
......@@ -59,7 +59,7 @@ import { ControlInterface } from '@/interface/control';
import { UIActionTool,Util,ViewTool } from '@/utils';
import NavDataService from '@/service/app/navdata-service';
import AppCenterService from "@service/app/app-center-service";
import JobsRegistryService from '@/service/jobs-registry/jobs-registry-service';
import JobsRegistryEntityService from '@/service/jobs-registry/jobs-registry-service';
import DefaultService from './default-searchform-service';
import JobsRegistryUIService from '@/uiservice/jobs-registry/jobs-registry-ui-service';
import { FormButtonModel, FormPageModel, FormItemModel, FormDRUIPartModel, FormPartModel, FormGroupPanelModel, FormIFrameModel, FormRowItemModel, FormTabPageModel, FormTabPanelModel, FormUserControlModel } from '@/model/form-detail';
......@@ -148,7 +148,7 @@ export default class DefaultBase extends Vue implements ControlInterface {
* @type {JobsRegistryService}
* @memberof DefaultBase
*/
public appEntityService: JobsRegistryService = new JobsRegistryService({ $store: this.$store });
public appEntityService: JobsRegistryEntityService = new JobsRegistryEntityService({ $store: this.$store });
......
......@@ -73,7 +73,7 @@ import { ControlInterface } from '@/interface/control';
import { UIActionTool,Util,ViewTool } from '@/utils';
import NavDataService from '@/service/app/navdata-service';
import AppCenterService from "@service/app/app-center-service";
import JobsRegistryService from '@/service/jobs-registry/jobs-registry-service';
import JobsRegistryEntityService from '@/service/jobs-registry/jobs-registry-service';
import MainService from './main-form-service';
import JobsRegistryUIService from '@/uiservice/jobs-registry/jobs-registry-ui-service';
import { FormButtonModel, FormPageModel, FormItemModel, FormDRUIPartModel, FormPartModel, FormGroupPanelModel, FormIFrameModel, FormRowItemModel, FormTabPageModel, FormTabPanelModel, FormUserControlModel } from '@/model/form-detail';
......@@ -164,7 +164,7 @@ export default class MainBase extends Vue implements ControlInterface {
* @type {JobsRegistryService}
* @memberof MainBase
*/
public appEntityService: JobsRegistryService = new JobsRegistryService({ $store: this.$store });
public appEntityService: JobsRegistryEntityService = new JobsRegistryEntityService({ $store: this.$store });
......@@ -417,6 +417,15 @@ export default class MainBase extends Vue implements ControlInterface {
*/
public errorMessages: Array<any> = [];
/**
* 应用状态事件
*
* @public
* @type {(Subscription | undefined)}
* @memberof MainBase
*/
public appStateEvent: Subscription | undefined;
/**
* 设置表单项错误提示信息
*
......@@ -1201,6 +1210,9 @@ export default class MainBase extends Vue implements ControlInterface {
if (this.dataChangEvent) {
this.dataChangEvent.unsubscribe();
}
if(this.appStateEvent){
this.appStateEvent.unsubscribe();
}
}
/**
......
......@@ -10,6 +10,7 @@
:cell-class-name="getCellClassName"
max-height="items.length > 0 ? 'calc(100%-50px)' : '100%'"
@row-click="rowClick($event)"
@cell-click="cellClick"
@select-all="selectAll($event)"
@select="select"
@row-class-name="onRowClassName($event)"
......@@ -120,7 +121,7 @@ import { ControlInterface } from '@/interface/control';
import { UIActionTool,Util,ViewTool } from '@/utils';
import NavDataService from '@/service/app/navdata-service';
import AppCenterService from "@service/app/app-center-service";
import JobsRegistryService from '@/service/jobs-registry/jobs-registry-service';
import JobsRegistryEntityService from '@/service/jobs-registry/jobs-registry-service';
import MainService from './main-grid-service';
import JobsRegistryUIService from '@/uiservice/jobs-registry/jobs-registry-ui-service';
import CodeListService from "@/codelist/codelist-service";
......@@ -210,7 +211,7 @@ export default class MainBase extends Vue implements ControlInterface {
* @type {JobsRegistryService}
* @memberof MainBase
*/
public appEntityService: JobsRegistryService = new JobsRegistryService({ $store: this.$store });
public appEntityService: JobsRegistryEntityService = new JobsRegistryEntityService({ $store: this.$store });
......@@ -1002,7 +1003,8 @@ export default class MainBase extends Vue implements ControlInterface {
this.selections = [];
resolve(response);
}).catch((response: any) => {
if (response && response.status === 401) {
if (response && response.status != 200) {
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: response.message});
return;
}
if (!response || !response.status || !response.data) {
......@@ -1674,6 +1676,17 @@ export default class MainBase extends Vue implements ControlInterface {
this.$emit('selectionchange', this.selections);
}
/**
* 单元格单击隐藏提示框
*
* @memberof MainBase
*/
public cellClick() {
let el: any = document.getElementsByClassName('el-tooltip__popper')[0];
if (el) {
el.style.display = 'none';
}
}
/**
* 行单击选中
......@@ -1808,6 +1821,7 @@ export default class MainBase extends Vue implements ControlInterface {
*/
public uiAction(row: any, tag: any, $event: any) {
// this.rowClick(row, true);
this.cellClick();
$event.stopPropagation();
}
......
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: ibztask-app-web
labels:
app: ibztask-app-web
spec:
replicas: 1
selector:
matchLabels:
app: ibztask-app-web
template:
metadata:
labels:
app: ibztask-app-web
spec:
imagePullSecrets:
- name: aly-shanghai
containers:
- name: ibztask-app-web
image: registry.cn-shanghai.aliyuncs.com/ibizsys/ibztask-app-web:latest
imagePullPolicy: Always
ports:
- containerPort: 8080
volumeMounts:
- name: data
mountPath: /app/file
volumes:
- name: data
persistentVolumeClaim:
claimName: demo-date-pvc-nfs
---
apiVersion: v1
kind: Service
metadata:
name: ibztask-app-web
labels:
app: ibztask-app-web
spec:
type: NodePort
ports:
- name: http
port: 8080
targetPort: 8080
nodePort: 8080
protocol: TCP
selector:
app: ibztask-app-web
......@@ -7,7 +7,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import java.util.HashMap;
import java.util.Map;
import org.apache.ibatis.annotations.Select;
import cn.ibizlab.core.task.domain.JobsInfo;
import cn.ibizlab.core.task.filter.JobsInfoSearchContext;
......
......@@ -7,7 +7,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import java.util.HashMap;
import java.util.Map;
import org.apache.ibatis.annotations.Select;
import cn.ibizlab.core.task.domain.JobsLock;
import cn.ibizlab.core.task.filter.JobsLockSearchContext;
......
......@@ -7,7 +7,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import java.util.HashMap;
import java.util.Map;
import org.apache.ibatis.annotations.Select;
import cn.ibizlab.core.task.domain.JobsLog;
import cn.ibizlab.core.task.filter.JobsLogSearchContext;
......
......@@ -7,7 +7,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import java.util.HashMap;
import java.util.Map;
import org.apache.ibatis.annotations.Select;
import cn.ibizlab.core.task.domain.JobsRegistry;
import cn.ibizlab.core.task.filter.JobsRegistrySearchContext;
......
......@@ -254,9 +254,6 @@ public class JobsInfoServiceImpl extends ServiceImpl<JobsInfoMapper, JobsInfo> i
public IJobsInfoService getProxyService() {
return cn.ibizlab.util.security.SpringContextHolder.getBean(this.getClass());
}
......
......@@ -221,9 +221,6 @@ public class JobsLockServiceImpl extends ServiceImpl<JobsLockMapper, JobsLock> i
public IJobsLockService getProxyService() {
return cn.ibizlab.util.security.SpringContextHolder.getBean(this.getClass());
}
......
......@@ -221,9 +221,6 @@ public class JobsLogServiceImpl extends ServiceImpl<JobsLogMapper, JobsLog> impl
public IJobsLogService getProxyService() {
return cn.ibizlab.util.security.SpringContextHolder.getBean(this.getClass());
}
......
......@@ -221,9 +221,6 @@ public class JobsRegistryServiceImpl extends ServiceImpl<JobsRegistryMapper, Job
public IJobsRegistryService getProxyService() {
return cn.ibizlab.util.security.SpringContextHolder.getBean(this.getClass());
}
......
......@@ -4,7 +4,7 @@
<!--输出实体[JOBS_INFO]数据结构 -->
<changeSet author="a_A_5d9d78509" id="tab-jobs_info-1-1">
<changeSet author="a_A_5d9d78509" id="tab-jobs_info-4-1">
<createTable tableName="JOBS_INFO">
<column name="ID" remarks="" type="VARCHAR(100)">
<constraints primaryKey="true" primaryKeyName="PK_JOBS_INFO_ID"/>
......
......@@ -16,7 +16,7 @@
"fieldname":"ID" ,
"codename":"Id",
"field_logic_name":"主键ID",
"entity_name":"JobsInfo",
"entity_name":"JOBS_INFO",
"field_type":"TEXT",
"nullable":0,
"physical_field":1,
......@@ -30,7 +30,7 @@
"fieldname":"TENANT_ID" ,
"codename":"Tenant_id",
"field_logic_name":"租户ID",
"entity_name":"JobsInfo",
"entity_name":"JOBS_INFO",
"field_type":"TEXT",
"nullable":1,
"physical_field":1,
......@@ -44,7 +44,7 @@
"fieldname":"APP" ,
"codename":"App",
"field_logic_name":"服务名",
"entity_name":"JobsInfo",
"entity_name":"JOBS_INFO",
"field_type":"TEXT",
"nullable":0,
"physical_field":1,
......@@ -58,7 +58,7 @@
"fieldname":"CRON" ,
"codename":"Cron",
"field_logic_name":"任务执行CRON",
"entity_name":"JobsInfo",
"entity_name":"JOBS_INFO",
"field_type":"TEXT",
"nullable":0,
"physical_field":1,
......@@ -72,7 +72,7 @@
"fieldname":"HANDLER" ,
"codename":"Handler",
"field_logic_name":"执行器任务HANDLER",
"entity_name":"JobsInfo",
"entity_name":"JOBS_INFO",
"field_type":"TEXT",
"nullable":1,
"physical_field":1,
......@@ -86,7 +86,7 @@
"fieldname":"PARAM" ,
"codename":"Param",
"field_logic_name":"执行器任务参数",
"entity_name":"JobsInfo",
"entity_name":"JOBS_INFO",
"field_type":"TEXT",
"nullable":1,
"physical_field":1,
......@@ -100,7 +100,7 @@
"fieldname":"TIMEOUT" ,
"codename":"Timeout",
"field_logic_name":"任务执行超时时间(秒)",
"entity_name":"JobsInfo",
"entity_name":"JOBS_INFO",
"field_type":"INT",
"nullable":0,
"physical_field":1,
......@@ -113,7 +113,7 @@
"fieldname":"FAIL_RETRY_COUNT" ,
"codename":"Fail_retry_count",
"field_logic_name":"失败重试次数",
"entity_name":"JobsInfo",
"entity_name":"JOBS_INFO",
"field_type":"INT",
"nullable":0,
"physical_field":1,
......@@ -126,7 +126,7 @@
"fieldname":"LAST_TIME" ,
"codename":"Last_time",
"field_logic_name":"上次调度时间",
"entity_name":"JobsInfo",
"entity_name":"JOBS_INFO",
"field_type":"BIGINT",
"nullable":0,
"physical_field":1,
......@@ -139,7 +139,7 @@
"fieldname":"NEXT_TIME" ,
"codename":"Next_time",
"field_logic_name":"下次调度时间",
"entity_name":"JobsInfo",
"entity_name":"JOBS_INFO",
"field_type":"BIGINT",
"nullable":0,
"physical_field":1,
......@@ -152,7 +152,7 @@
"fieldname":"AUTHOR" ,
"codename":"Author",
"field_logic_name":"所有者",
"entity_name":"JobsInfo",
"entity_name":"JOBS_INFO",
"field_type":"TEXT",
"nullable":1,
"physical_field":1,
......@@ -166,7 +166,7 @@
"fieldname":"REMARK" ,
"codename":"Remark",
"field_logic_name":"备注",
"entity_name":"JobsInfo",
"entity_name":"JOBS_INFO",
"field_type":"TEXT",
"nullable":1,
"physical_field":1,
......@@ -180,7 +180,7 @@
"fieldname":"STATUS" ,
"codename":"Status",
"field_logic_name":"状态",
"entity_name":"JobsInfo",
"entity_name":"JOBS_INFO",
"field_type":"NSCODELIST",
"dict":"CodeListJobStatus",
"nullable":0,
......@@ -194,7 +194,7 @@
"fieldname":"UPDATE_TIME" ,
"codename":"Update_time",
"field_logic_name":"更新时间",
"entity_name":"JobsInfo",
"entity_name":"JOBS_INFO",
"field_type":"DATETIME",
"nullable":1,
"physical_field":1,
......@@ -207,7 +207,7 @@
"fieldname":"CREATE_TIME" ,
"codename":"Create_time",
"field_logic_name":"创建时间",
"entity_name":"JobsInfo",
"entity_name":"JOBS_INFO",
"field_type":"DATETIME",
"nullable":0,
"physical_field":1,
......@@ -238,7 +238,7 @@
"fieldname":"ID" ,
"codename":"Id",
"field_logic_name":"主键ID",
"entity_name":"JobsLock",
"entity_name":"JOBS_LOCK",
"field_type":"TEXT",
"nullable":0,
"physical_field":1,
......@@ -252,7 +252,7 @@
"fieldname":"NAME" ,
"codename":"Name",
"field_logic_name":"名称",
"entity_name":"JobsLock",
"entity_name":"JOBS_LOCK",
"field_type":"TEXT",
"nullable":0,
"physical_field":1,
......@@ -266,7 +266,7 @@
"fieldname":"OWNER" ,
"codename":"Owner",
"field_logic_name":"持有者",
"entity_name":"JobsLock",
"entity_name":"JOBS_LOCK",
"field_type":"TEXT",
"nullable":0,
"physical_field":1,
......@@ -280,7 +280,7 @@
"fieldname":"CREATE_TIME" ,
"codename":"Create_time",
"field_logic_name":"创建时间",
"entity_name":"JobsLock",
"entity_name":"JOBS_LOCK",
"field_type":"DATETIME",
"nullable":0,
"physical_field":1,
......@@ -310,7 +310,7 @@
"fieldname":"ID" ,
"codename":"Id",
"field_logic_name":"主键ID",
"entity_name":"JobsLog",
"entity_name":"JOBS_LOG",
"field_type":"TEXT",
"nullable":0,
"physical_field":1,
......@@ -324,7 +324,7 @@
"fieldname":"JOB_ID" ,
"codename":"Job_id",
"field_logic_name":"任务ID",
"entity_name":"JobsLog",
"entity_name":"JOBS_LOG",
"field_type":"TEXT",
"nullable":0,
"physical_field":1,
......@@ -338,7 +338,7 @@
"fieldname":"ADDRESS" ,
"codename":"Address",
"field_logic_name":"执行地址",
"entity_name":"JobsLog",
"entity_name":"JOBS_LOG",
"field_type":"TEXT",
"nullable":1,
"physical_field":1,
......@@ -352,7 +352,7 @@
"fieldname":"HANDLER" ,
"codename":"Handler",
"field_logic_name":"执行器任务HANDLER",
"entity_name":"JobsLog",
"entity_name":"JOBS_LOG",
"field_type":"TEXT",
"nullable":1,
"physical_field":1,
......@@ -366,7 +366,7 @@
"fieldname":"PARAM" ,
"codename":"Param",
"field_logic_name":"执行器任务参数",
"entity_name":"JobsLog",
"entity_name":"JOBS_LOG",
"field_type":"TEXT",
"nullable":1,
"physical_field":1,
......@@ -380,7 +380,7 @@
"fieldname":"FAIL_RETRY_COUNT" ,
"codename":"Fail_retry_count",
"field_logic_name":"失败重试次数",
"entity_name":"JobsLog",
"entity_name":"JOBS_LOG",
"field_type":"INT",
"nullable":0,
"physical_field":1,
......@@ -393,7 +393,7 @@
"fieldname":"TRIGGER_CODE" ,
"codename":"Trigger_code",
"field_logic_name":"触发器调度返回码",
"entity_name":"JobsLog",
"entity_name":"JOBS_LOG",
"field_type":"INT",
"nullable":0,
"physical_field":1,
......@@ -406,7 +406,7 @@
"fieldname":"TRIGGER_TYPE" ,
"codename":"Trigger_type",
"field_logic_name":"触发器调度类型",
"entity_name":"JobsLog",
"entity_name":"JOBS_LOG",
"field_type":"TEXT",
"nullable":0,
"physical_field":1,
......@@ -420,7 +420,7 @@
"fieldname":"TRIGGER_MSG" ,
"codename":"Trigger_msg",
"field_logic_name":"触发器调度信息",
"entity_name":"JobsLog",
"entity_name":"JOBS_LOG",
"field_type":"LONGTEXT",
"nullable":1,
"physical_field":1,
......@@ -434,7 +434,7 @@
"fieldname":"CREATE_TIME" ,
"codename":"Create_time",
"field_logic_name":"创建时间",
"entity_name":"JobsLog",
"entity_name":"JOBS_LOG",
"field_type":"DATETIME",
"nullable":0,
"physical_field":1,
......@@ -464,7 +464,7 @@
"fieldname":"ID" ,
"codename":"Id",
"field_logic_name":"主键ID",
"entity_name":"JobsRegistry",
"entity_name":"JOBS_REGISTRY",
"field_type":"TEXT",
"nullable":0,
"physical_field":1,
......@@ -478,7 +478,7 @@
"fieldname":"APP" ,
"codename":"App",
"field_logic_name":"服务名",
"entity_name":"JobsRegistry",
"entity_name":"JOBS_REGISTRY",
"field_type":"TEXT",
"nullable":0,
"physical_field":1,
......@@ -492,7 +492,7 @@
"fieldname":"ADDRESS" ,
"codename":"Address",
"field_logic_name":"执行地址",
"entity_name":"JobsRegistry",
"entity_name":"JOBS_REGISTRY",
"field_type":"TEXT",
"nullable":0,
"physical_field":1,
......@@ -506,7 +506,7 @@
"fieldname":"STATUS" ,
"codename":"Status",
"field_logic_name":"状态",
"entity_name":"JobsRegistry",
"entity_name":"JOBS_REGISTRY",
"field_type":"NSCODELIST",
"dict":"CodeListJobStatus",
"nullable":0,
......@@ -520,7 +520,7 @@
"fieldname":"UPDATE_TIME" ,
"codename":"Update_time",
"field_logic_name":"更新时间",
"entity_name":"JobsRegistry",
"entity_name":"JOBS_REGISTRY",
"field_type":"DATETIME",
"nullable":0,
"physical_field":1,
......
......@@ -85,7 +85,6 @@
<oracle.version>19.8.0.0</oracle.version>
<postgresql.version>42.2.6</postgresql.version>
</properties>
<dependencyManagement>
......
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: ibztask-provider-api
labels:
app: ibztask-provider-api
spec:
replicas: 1
selector:
matchLabels:
app: ibztask-provider-api
template:
metadata:
labels:
app: ibztask-provider-api
spec:
imagePullSecrets:
- name: aly-shanghai
containers:
- name: ibztask-provider-api
image: registry.cn-shanghai.aliyuncs.com/ibizsys/ibztask-provider-api:latest
imagePullPolicy: Always
ports:
- containerPort: 8081
volumeMounts:
- name: data
mountPath: /app/file
volumes:
- name: data
persistentVolumeClaim:
claimName: demo-date-pvc-nfs
---
apiVersion: v1
kind: Service
metadata:
name: ibztask-provider-api
labels:
app: ibztask-provider-api
spec:
type: NodePort
ports:
- name: http
port: 8081
targetPort: 8081
nodePort: 8081
protocol: TCP
selector:
app: ibztask-provider-api
......@@ -110,8 +110,9 @@ public class JobsInfoResource {
@ApiOperation(value = "获取任务信息草稿", tags = {"任务信息" }, notes = "获取任务信息草稿")
@RequestMapping(method = RequestMethod.GET, value = "/jobsinfos/getdraft")
public ResponseEntity<JobsInfoDTO> getDraft() {
return ResponseEntity.status(HttpStatus.OK).body(jobsinfoMapping.toDto(jobsinfoService.getDraft(new JobsInfo())));
public ResponseEntity<JobsInfoDTO> getDraft(JobsInfoDTO dto) {
JobsInfo domain = jobsinfoMapping.toDomain(dto);
return ResponseEntity.status(HttpStatus.OK).body(jobsinfoMapping.toDto(jobsinfoService.getDraft(domain)));
}
@ApiOperation(value = "检查任务信息", tags = {"任务信息" }, notes = "检查任务信息")
......@@ -132,19 +133,19 @@ public class JobsInfoResource {
}
@PreAuthorize("hasAnyAuthority('ROLE_SUPERADMIN','ibztask-JobsInfo-Execute-all')")
@ApiOperation(value = "批量处理[执行]", tags = {"任务信息" }, notes = "批量处理[执行]")
@RequestMapping(method = RequestMethod.POST, value = "/jobsinfos/{jobsinfo_id}/executebatch")
@RequestMapping(method = RequestMethod.POST, value = "/jobsinfos/executebatch")
public ResponseEntity<Boolean> executeBatch(@RequestBody List<JobsInfoDTO> jobsinfodtos) {
return ResponseEntity.status(HttpStatus.OK).body(jobsinfoService.executeBatch(jobsinfoMapping.toDomain(jobsinfodtos)));
List<JobsInfo> domains = jobsinfoMapping.toDomain(jobsinfodtos);
boolean result = jobsinfoService.executeBatch(domains);
return ResponseEntity.status(HttpStatus.OK).body(result);
}
@PreAuthorize("hasAnyAuthority('ROLE_SUPERADMIN','ibztask-JobsInfo-Save-all')")
@ApiOperation(value = "保存任务信息", tags = {"任务信息" }, notes = "保存任务信息")
@RequestMapping(method = RequestMethod.POST, value = "/jobsinfos/save")
public ResponseEntity<Boolean> save(@RequestBody JobsInfoDTO jobsinfodto) {
return ResponseEntity.status(HttpStatus.OK).body(jobsinfoService.save(jobsinfoMapping.toDomain(jobsinfodto)));
}
@PreAuthorize("hasAnyAuthority('ROLE_SUPERADMIN','ibztask-JobsInfo-Save-all')")
@ApiOperation(value = "批量保存任务信息", tags = {"任务信息" }, notes = "批量保存任务信息")
@RequestMapping(method = RequestMethod.POST, value = "/jobsinfos/savebatch")
public ResponseEntity<Boolean> saveBatch(@RequestBody List<JobsInfoDTO> jobsinfodtos) {
......@@ -152,7 +153,6 @@ public class JobsInfoResource {
return ResponseEntity.status(HttpStatus.OK).body(true);
}
@PreAuthorize("hasAnyAuthority('ROLE_SUPERADMIN','ibztask-JobsInfo-Start-all')")
@ApiOperation(value = "开始", tags = {"任务信息" }, notes = "开始")
@RequestMapping(method = RequestMethod.POST, value = "/jobsinfos/{jobsinfo_id}/start")
public ResponseEntity<JobsInfoDTO> start(@PathVariable("jobsinfo_id") String jobsinfo_id, @RequestBody JobsInfoDTO jobsinfodto) {
......@@ -163,7 +163,6 @@ public class JobsInfoResource {
return ResponseEntity.status(HttpStatus.OK).body(jobsinfodto);
}
@PreAuthorize("hasAnyAuthority('ROLE_SUPERADMIN','ibztask-JobsInfo-Stop-all')")
@ApiOperation(value = "停止", tags = {"任务信息" }, notes = "停止")
@RequestMapping(method = RequestMethod.POST, value = "/jobsinfos/{jobsinfo_id}/stop")
public ResponseEntity<JobsInfoDTO> stop(@PathVariable("jobsinfo_id") String jobsinfo_id, @RequestBody JobsInfoDTO jobsinfodto) {
......@@ -197,5 +196,6 @@ public class JobsInfoResource {
}
}
......@@ -110,8 +110,9 @@ public class JobsLockResource {
@ApiOperation(value = "获取任务锁草稿", tags = {"任务锁" }, notes = "获取任务锁草稿")
@RequestMapping(method = RequestMethod.GET, value = "/jobslocks/getdraft")
public ResponseEntity<JobsLockDTO> getDraft() {
return ResponseEntity.status(HttpStatus.OK).body(jobslockMapping.toDto(jobslockService.getDraft(new JobsLock())));
public ResponseEntity<JobsLockDTO> getDraft(JobsLockDTO dto) {
JobsLock domain = jobslockMapping.toDomain(dto);
return ResponseEntity.status(HttpStatus.OK).body(jobslockMapping.toDto(jobslockService.getDraft(domain)));
}
@ApiOperation(value = "检查任务锁", tags = {"任务锁" }, notes = "检查任务锁")
......@@ -158,5 +159,6 @@ public class JobsLockResource {
}
}
......@@ -110,8 +110,9 @@ public class JobsLogResource {
@ApiOperation(value = "获取任务调度日志草稿", tags = {"任务调度日志" }, notes = "获取任务调度日志草稿")
@RequestMapping(method = RequestMethod.GET, value = "/jobslogs/getdraft")
public ResponseEntity<JobsLogDTO> getDraft() {
return ResponseEntity.status(HttpStatus.OK).body(jobslogMapping.toDto(jobslogService.getDraft(new JobsLog())));
public ResponseEntity<JobsLogDTO> getDraft(JobsLogDTO dto) {
JobsLog domain = jobslogMapping.toDomain(dto);
return ResponseEntity.status(HttpStatus.OK).body(jobslogMapping.toDto(jobslogService.getDraft(domain)));
}
@ApiOperation(value = "检查任务调度日志", tags = {"任务调度日志" }, notes = "检查任务调度日志")
......@@ -158,5 +159,6 @@ public class JobsLogResource {
}
}
......@@ -110,8 +110,9 @@ public class JobsRegistryResource {
@ApiOperation(value = "获取任务注册信息草稿", tags = {"任务注册信息" }, notes = "获取任务注册信息草稿")
@RequestMapping(method = RequestMethod.GET, value = "/jobsregistries/getdraft")
public ResponseEntity<JobsRegistryDTO> getDraft() {
return ResponseEntity.status(HttpStatus.OK).body(jobsregistryMapping.toDto(jobsregistryService.getDraft(new JobsRegistry())));
public ResponseEntity<JobsRegistryDTO> getDraft(JobsRegistryDTO dto) {
JobsRegistry domain = jobsregistryMapping.toDomain(dto);
return ResponseEntity.status(HttpStatus.OK).body(jobsregistryMapping.toDto(jobsregistryService.getDraft(domain)));
}
@ApiOperation(value = "检查任务注册信息", tags = {"任务注册信息" }, notes = "检查任务注册信息")
......@@ -158,5 +159,6 @@ public class JobsRegistryResource {
}
}
......@@ -124,6 +124,7 @@ public class RedisCacheConfig {
container.setConnectionFactory(redisConnectionFactory);
container.addMessageListener(messageListener, RedisChannelTopic.REDIS_CACHE_DELETE_TOPIC.getChannelTopic());
container.addMessageListener(messageListener, RedisChannelTopic.REDIS_CACHE_CLEAR_TOPIC.getChannelTopic());
container.addMessageListener(messageListener, RedisChannelTopic.REDIS_CACHE_DYNAMICMODEL_TOPIC.getChannelTopic());
return container;
}
}
\ No newline at end of file
......@@ -8,6 +8,7 @@ import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.listener.adapter.MessageListenerAdapter;
import org.springframework.data.redis.serializer.RedisSerializer;
import org.springframework.util.StringUtils;
import org.springframework.util.ObjectUtils;
import java.util.Map;
import cn.ibizlab.util.cache.cache.LayeringCache;
import cn.ibizlab.util.enums.RedisChannelTopic;
......@@ -34,20 +35,25 @@ public class RedisMessageListener extends MessageListenerAdapter {
if(result instanceof Map){
map= (Map<String, Object>) result;
}
if(StringUtils.isEmpty(map)|| (!map.containsKey("cacheName"))|| (!map.containsKey("key"))){
if(StringUtils.isEmpty(map)|| (!map.containsKey("cacheName"))){
log.debug("解析缓存数据失败,无法获取指定值!");
return ;
}
log.debug("redis消息订阅者接收到频道【{}】发布的消息。消息内容:{}", channelTopic.getChannelTopicStr(), result.toString());
String cacheName = (String) map.get("cacheName");
Object key = map.get("key");
Cache cache = cacheManager.getCache(cacheName);// 根据缓存名称获取多级缓存
if (cache != null && cache instanceof LayeringCache) { // 判断缓存是否是多级缓存
switch (channelTopic) {
case REDIS_CACHE_DELETE_TOPIC: // 获取一级缓存,并删除一级缓存数据
((LayeringCache) cache).getFirstCache().evict(key);
((LayeringCache) cache).getSecondCache().evict(key);
log.debug("同步删除缓存{}数据,key:{},", cacheName, key.toString());
Object cacheKey = map.get("key");
if(!ObjectUtils.isEmpty(cacheKey)){
((LayeringCache) cache).getFirstCache().evict(cacheKey);
((LayeringCache) cache).getSecondCache().evict(cacheKey);
log.debug("同步删除缓存{}数据,key:{},", cacheName, cacheKey.toString());
}
else{
log.debug("同步删除缓存失败,{}缓存键值为空!",cacheName);
}
break;
case REDIS_CACHE_CLEAR_TOPIC:// 获取一级缓存,并删除一级缓存数据
((LayeringCache) cache).getFirstCache().clear();
......
......@@ -2,6 +2,8 @@ package cn.ibizlab.util.client;
import com.alibaba.fastjson.JSONObject;
import org.springframework.stereotype.Component;
import java.util.List;
import java.util.Map;
@Component
public class IBZLiteFallback implements IBZLiteFeignClient {
......@@ -10,4 +12,5 @@ public class IBZLiteFallback implements IBZLiteFeignClient {
public Boolean syncSysModel(JSONObject system) {
return null;
}
}
......@@ -3,6 +3,8 @@ package cn.ibizlab.util.client;
import com.alibaba.fastjson.JSONObject;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.Map;
@FeignClient(value = "${ibiz.ref.service.lite:ibzlite-api}",contextId = "lite",fallback = IBZLiteFallback.class)
public interface IBZLiteFeignClient
......@@ -14,4 +16,5 @@ public interface IBZLiteFeignClient
*/
@PostMapping("/lite/syncsysmodel")
Boolean syncSysModel(@RequestBody JSONObject system);
}
......@@ -6,7 +6,8 @@ import org.springframework.data.redis.listener.ChannelTopic;
*/
public enum RedisChannelTopic {
REDIS_CACHE_DELETE_TOPIC("redis:cache:delete:topic1", "删除redis缓存消息频道"),
REDIS_CACHE_CLEAR_TOPIC("redis:cache:clear:topic2", "清空redis缓存消息频道");
REDIS_CACHE_CLEAR_TOPIC("redis:cache:clear:topic2", "清空redis缓存消息频道"),
REDIS_CACHE_DYNAMICMODEL_TOPIC("redis:cache:dynamicmodel:topic3", "动态模型频道");
String channelTopic;
String label;
......
......@@ -293,7 +293,7 @@ public class AuthPermissionEvaluator implements PermissionEvaluator {
Map<String,String> permissionFiled=new HashMap<>();
String orgField="orgid"; //组织属性
String orgDeptField="orgsecid"; //部门属性
String orgDeptField="orgsectorid"; //部门属性
String createManField="createman"; //创建人属性
DEFieldCacheMap.getFieldMap(entityBase.getClass().getName());
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册