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

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

上级 fbf8ebfe
...@@ -25,6 +25,7 @@ import AppForm from './components/app-form/app-form.vue' ...@@ -25,6 +25,7 @@ import AppForm from './components/app-form/app-form.vue'
import APPAutocomplete from './components/app-autocomplete/app-autocomplete.vue' import APPAutocomplete from './components/app-autocomplete/app-autocomplete.vue'
import AppFormDruipart from './components/app-form-druipart/app-form-druipart.vue' import AppFormDruipart from './components/app-form-druipart/app-form-druipart.vue'
import DropdownList from './components/dropdown-list/dropdown-list.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 UploadFile from './components/upload-file/upload-file.vue'
import ContextMenuContainer from './components/context-menu-container/context-menu-container.vue' import ContextMenuContainer from './components/context-menu-container/context-menu-container.vue'
import AppCheckboxList from './components/app-checkbox-list/app-checkbox-list.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' ...@@ -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 AppFormItem2 from './components/app-form-item2/app-form-item2.vue'
import CodeList from './components/codelist/codelist.vue' import CodeList from './components/codelist/codelist.vue'
import AppQuickMenus from './components/app-quick-menus/app-quick-menus.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 AppCheckbox from './components/app-checkbox/app-checkbox.vue'
import AppColumnRender from './components/app-column-render/app-column-render.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' import AppPickerSelectView from './components/app-picker-select-view/app-picker-select-view.vue'
...@@ -150,6 +152,7 @@ export const AppComponents = { ...@@ -150,6 +152,7 @@ export const AppComponents = {
v.component('app-autocomplete', APPAutocomplete); v.component('app-autocomplete', APPAutocomplete);
v.component('app-form-druipart', AppFormDruipart); v.component('app-form-druipart', AppFormDruipart);
v.component('dropdown-list', DropdownList); v.component('dropdown-list', DropdownList);
v.component('dropdown-list-hidden', DropdownListHidden);
v.component('upload-file', UploadFile); v.component('upload-file', UploadFile);
v.component('context-menu-container', ContextMenuContainer); v.component('context-menu-container', ContextMenuContainer);
v.component('app-checkbox-list',AppCheckboxList); v.component('app-checkbox-list',AppCheckboxList);
...@@ -171,6 +174,7 @@ export const AppComponents = { ...@@ -171,6 +174,7 @@ export const AppComponents = {
v.component('app-form-item2', AppFormItem2); v.component('app-form-item2', AppFormItem2);
v.component('codelist', CodeList); v.component('codelist', CodeList);
v.component('app-quick-menus', AppQuickMenus); v.component('app-quick-menus', AppQuickMenus);
v.component('app-icon-menus', AppIconMenus);
v.component('app-checkbox',AppCheckbox); v.component('app-checkbox',AppCheckbox);
v.component('app-column-render',AppColumnRender); v.component('app-column-render',AppColumnRender);
v.component('app-picker-select-view',AppPickerSelectView); v.component('app-picker-select-view',AppPickerSelectView);
......
...@@ -482,7 +482,7 @@ export default class AppFormDRUIPart extends Vue { ...@@ -482,7 +482,7 @@ export default class AppFormDRUIPart extends Vue {
* @public * @public
* @memberof AppFormDRUIPart * @memberof AppFormDRUIPart
*/ */
public viewdataschange(){ public viewdataschange($event:any){
console.log((this.$t('components.appFormDRUIPart.change1') as string)); 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 @@ ...@@ -10,13 +10,20 @@
</dropdown> </dropdown>
</template> </template>
<script lang = 'ts'> <script lang = 'ts'>
import { Component, Vue } from 'vue-property-decorator'; import { Component, Vue, Inject } from 'vue-property-decorator';
import { localList } from '@locale/local-list'; import { localList } from '@locale/local-list';
@Component({}) @Component({})
export default class AppLang extends Vue { export default class AppLang extends Vue {
/**
* 注入刷新行为
*
* @memberof AppLang
*/
@Inject() reload: any;
/** /**
* 本地语言资源 * 本地语言资源
* *
...@@ -55,6 +62,7 @@ export default class AppLang extends Vue { ...@@ -55,6 +62,7 @@ export default class AppLang extends Vue {
const local: any = this.localList.find((_local: any) => Object.is(_local.type, $evnet)); const local: any = this.localList.find((_local: any) => Object.is(_local.type, $evnet));
this.title = local.name; this.title = local.name;
localStorage.setItem('local', $evnet); localStorage.setItem('local', $evnet);
this.reload();
} }
} }
......
...@@ -312,7 +312,9 @@ export default class AppPicker extends Vue { ...@@ -312,7 +312,9 @@ export default class AppPicker extends Vue {
if (value) { if (value) {
this.items.push({text: newVal, value: value}); this.items.push({text: newVal, value: value});
} }
this.onSearch(newVal, null, false); if(newVal && value){
this.onSearch(newVal, null, false);
}
} }
} }
......
<template> <template>
<div class="app-menus"> <div class="app-menus">
<template v-for="(item,index) in menus"> <template v-for="(item,index) in menus">
<card :bordered="false" dis-hover v-if="item.items && Array.isArray(item.items)" :key="index"> <card :bordered="false" dis-hover v-if="item.items && Array.isArray(item.items)" :key="index">
...@@ -12,8 +12,8 @@ ...@@ -12,8 +12,8 @@
<span class="line"></span> <span class="line"></span>
</p> </p>
<p style=" display: 'flex' "> <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> </p>
</card> </card>
<card <card
:key="index" :key="index"
...@@ -43,12 +43,12 @@ ...@@ -43,12 +43,12 @@
</template> </template>
</div> </div>
</template> </template>
<script lang='ts'> <script lang='ts'>
import { Component, Vue, Prop, Model, Watch } from "vue-property-decorator"; import { Component, Vue, Prop, Model, Watch } from "vue-property-decorator";
@Component({}) @Component({})
export default class AppQuickMenus extends Vue { export default class AppQuickMenus extends Vue {
/** /**
* 菜单数据 * 菜单数据
* *
...@@ -58,7 +58,7 @@ export default class AppQuickMenus extends Vue { ...@@ -58,7 +58,7 @@ export default class AppQuickMenus extends Vue {
@Prop({ default: [] }) public menus!: any; @Prop({ default: [] }) public menus!: any;
/** /**
* 部件名称 * 部件名称
* *
* @type {String} * @type {String}
* @memberof AppQuickMenus * @memberof AppQuickMenus
......
...@@ -349,7 +349,7 @@ export default class CodeList extends Vue { ...@@ -349,7 +349,7 @@ export default class CodeList extends Vue {
max-height: 32px; max-height: 32px;
padding: 0px 3px; padding: 0px 3px;
> img{ > img{
max-height: 32px; max-height: 24px;
width: auto; width: auto;
margin-right: 6px; margin-right: 6px;
border-radius: 50%; border-radius: 50%;
......
...@@ -33,7 +33,7 @@ ...@@ -33,7 +33,7 @@
:file-list="uploadFileList" :file-list="uploadFileList"
:show-file-list="false" :show-file-list="false"
:http-request="customUploadFile"> :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')}} {{$t('components.diskFileUpload.clickUpload')}}
</el-button> </el-button>
</el-upload> </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
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
:filterable="filterable" :filterable="filterable"
@on-open-change="onClick" @on-open-change="onClick"
:placeholder="placeholder?placeholder:$t('components.dropDownList.placeholder')"> :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> </i-select>
<ibiz-select-tree v-if="hasChildren" class="tree-dropdown-list" :disabled="disabled" :NodesData="items" v-model="currentVal" :multiple="false"></ibiz-select-tree> <ibiz-select-tree v-if="hasChildren" class="tree-dropdown-list" :disabled="disabled" :NodesData="items" v-model="currentVal" :multiple="false"></ibiz-select-tree>
</div> </div>
...@@ -61,6 +61,24 @@ export default class DropDownList extends Vue { ...@@ -61,6 +61,24 @@ export default class DropDownList extends Vue {
*/ */
@Model('change') readonly itemValue!: any; @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('下拉列表,值转换失败');
}
}
/** /**
* 代码表标识 * 代码表标识
* *
...@@ -102,7 +120,7 @@ export default class DropDownList extends Vue { ...@@ -102,7 +120,7 @@ export default class DropDownList extends Vue {
*/ */
protected formStateEvent: Subscription | undefined; protected formStateEvent: Subscription | undefined;
/** /**
* 监听表单数据 * 监听表单数据
* *
* @memberof DropDownList * @memberof DropDownList
......
...@@ -68,7 +68,7 @@ export default class TabPageExp extends Vue { ...@@ -68,7 +68,7 @@ export default class TabPageExp extends Vue {
public getCaption(caption: any, info: any): any { public getCaption(caption: any, info: any): any {
return info && !Object.is(info, "") return info && !Object.is(info, "")
? `${this.$t(caption)} - ${info}` ? `${this.$t(caption)} - ${this.$t(info)}`
: this.$t(caption); : this.$t(caption);
} }
......
...@@ -101,7 +101,7 @@ export default class EditViewEngine extends ViewEngine { ...@@ -101,7 +101,7 @@ export default class EditViewEngine extends ViewEngine {
* @memberof EditViewEngine * @memberof EditViewEngine
*/ */
public onFormLoad(arg: any): void { 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')); this.setTabCaption(this.view.model.dataInfo,Object.is(arg.srfuf, '0'));
const newdata: boolean = !Object.is(arg.srfuf, '1'); const newdata: boolean = !Object.is(arg.srfuf, '1');
...@@ -116,7 +116,7 @@ export default class EditViewEngine extends ViewEngine { ...@@ -116,7 +116,7 @@ export default class EditViewEngine extends ViewEngine {
* @memberof EditViewEngine * @memberof EditViewEngine
*/ */
public onFormSave(arg: any): void { 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')); this.setTabCaption(this.view.model.dataInfo,Object.is(arg.srfuf, '0'));
const newdata: boolean = !Object.is(arg.srfuf, '1'); const newdata: boolean = !Object.is(arg.srfuf, '1');
...@@ -200,12 +200,12 @@ export default class EditViewEngine extends ViewEngine { ...@@ -200,12 +200,12 @@ export default class EditViewEngine extends ViewEngine {
} }
// 解决表格视图标题问题 // 解决表格视图标题问题
if(this.view.$tabPageExp && this.view.viewDefaultUsage){ 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){ if(this.view.$route){
this.view.$route.meta.info = info; 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); this.view.initNavDataWithRoute(null,isNew);
} }
} }
......
...@@ -16,7 +16,7 @@ const messages = { ...@@ -16,7 +16,7 @@ const messages = {
// 自动根据浏览器系统语言设置语言 // 自动根据浏览器系统语言设置语言
const navLang = localStorage.getItem('local') || navigator.language; 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'; let lang: string = localLang || 'zh-CN';
vueApp.config.lang = lang vueApp.config.lang = lang
......
此差异已折叠。
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
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 @@ ...@@ -3,7 +3,7 @@
<app-studioaction :viewTitle="$t(model.srfCaption)" viewName="jobsinfogridview"></app-studioaction> <app-studioaction :viewTitle="$t(model.srfCaption)" viewName="jobsinfogridview"></app-studioaction>
<card class='view-card ' :dis-hover="true" :bordered="false"> <card class='view-card ' :dis-hover="true" :bordered="false">
<div slot='title' class="header-container"> <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>
<div class='view-top-messages'> <div class='view-top-messages'>
</div> </div>
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
<app-studioaction :viewTitle="$t(model.srfCaption)" viewName="jobsloggridview"></app-studioaction> <app-studioaction :viewTitle="$t(model.srfCaption)" viewName="jobsloggridview"></app-studioaction>
<card class='view-card ' :dis-hover="true" :bordered="false"> <card class='view-card ' :dis-hover="true" :bordered="false">
<div slot='title' class="header-container"> <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>
<div class='view-top-messages'> <div class='view-top-messages'>
</div> </div>
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
<app-studioaction :viewTitle="$t(model.srfCaption)" viewName="jobsregistrygridview"></app-studioaction> <app-studioaction :viewTitle="$t(model.srfCaption)" viewName="jobsregistrygridview"></app-studioaction>
<card class='view-card ' :dis-hover="true" :bordered="false"> <card class='view-card ' :dis-hover="true" :bordered="false">
<div slot='title' class="header-container"> <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>
<div class='view-top-messages'> <div class='view-top-messages'>
</div> </div>
......
...@@ -178,7 +178,7 @@ export default class JobsInfoServiceBase extends EntityService { ...@@ -178,7 +178,7 @@ export default class JobsInfoServiceBase extends EntityService {
*/ */
public async ExecuteBatch(context: any = {},data: any = {}, isloading?: boolean): Promise<any> { public async ExecuteBatch(context: any = {},data: any = {}, isloading?: boolean): Promise<any> {
let tempData:any = JSON.parse(JSON.stringify(data)); 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 @@ ...@@ -110,6 +110,10 @@
font-size: 18px; font-size: 18px;
color: #1890ff; color: #1890ff;
flex-shrink: 0; flex-shrink: 0;
max-width: 50%;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
} }
> .toolbar-container{ > .toolbar-container{
margin-left: auto; margin-left: auto;
......
...@@ -10,5 +10,11 @@ declare module "view-design/dist/locale/zh-CN" { ...@@ -10,5 +10,11 @@ declare module "view-design/dist/locale/zh-CN" {
declare module "element-ui/lib/locale/lang/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" { declare module "tinymce/tinymce" {
} }
\ No newline at end of file
...@@ -8,7 +8,8 @@ ...@@ -8,7 +8,8 @@
:collapse="isCollapse" :collapse="isCollapse"
@select="select" @select="select"
:default-active="defaultActive"> :default-active="defaultActive">
<template v-if="Object.is(mode,'horizontal')">
<template v-if="Object.is(mode,'horizontal')">
<template v-for="item0 in menus"> <template v-for="item0 in menus">
<template v-if="item0.items && Array.isArray(item0.items) && item0.items.length > 0"> <template v-if="item0.items && Array.isArray(item0.items) && item0.items.length > 0">
<el-submenu v-show="!item0.hidden" :index="item0.name" :popper-class="popperClass" :key="item0.id" :class="item0.textcls"> <el-submenu v-show="!item0.hidden" :index="item0.name" :popper-class="popperClass" :key="item0.id" :class="item0.textcls">
...@@ -104,9 +105,10 @@ ...@@ -104,9 +105,10 @@
</el-menu-item> </el-menu-item>
</template> </template>
</template> </template>
</template> </template>
</template> </template>
<app-menu-item v-else :isCollapse="isCollapse" :menus="menus" :ctrlName="'taskindexview'" :isFirst="true" :counterdata="counterdata" :popper-class="popperClass"></app-menu-item> <app-menu-item v-else :isCollapse="isCollapse" :menus="menus" :ctrlName="'taskindexview'" :isFirst="true" :counterdata="counterdata" :popper-class="popperClass"></app-menu-item>
</el-menu> </el-menu>
</div> </div>
</template> </template>
......
...@@ -73,7 +73,7 @@ import { ControlInterface } from '@/interface/control'; ...@@ -73,7 +73,7 @@ import { ControlInterface } from '@/interface/control';
import { UIActionTool,Util,ViewTool } from '@/utils'; import { UIActionTool,Util,ViewTool } from '@/utils';
import NavDataService from '@/service/app/navdata-service'; import NavDataService from '@/service/app/navdata-service';
import AppCenterService from "@service/app/app-center-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 DefaultService from './default-searchform-service';
import JobsInfoUIService from '@/uiservice/jobs-info/jobs-info-ui-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'; 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 { ...@@ -162,7 +162,7 @@ export default class DefaultBase extends Vue implements ControlInterface {
* @type {JobsInfoService} * @type {JobsInfoService}
* @memberof DefaultBase * @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'; ...@@ -212,7 +212,7 @@ import { ControlInterface } from '@/interface/control';
import { UIActionTool,Util,ViewTool } from '@/utils'; import { UIActionTool,Util,ViewTool } from '@/utils';
import NavDataService from '@/service/app/navdata-service'; import NavDataService from '@/service/app/navdata-service';
import AppCenterService from "@service/app/app-center-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 MainService from './main-form-service';
import JobsInfoUIService from '@/uiservice/jobs-info/jobs-info-ui-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'; 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 { ...@@ -303,7 +303,7 @@ export default class MainBase extends Vue implements ControlInterface {
* @type {JobsInfoService} * @type {JobsInfoService}
* @memberof MainBase * @memberof MainBase
*/ */
public appEntityService: JobsInfoService = new JobsInfoService({ $store: this.$store }); public appEntityService: JobsInfoEntityService = new JobsInfoEntityService({ $store: this.$store });
...@@ -554,7 +554,16 @@ export default class MainBase extends Vue implements ControlInterface { ...@@ -554,7 +554,16 @@ export default class MainBase extends Vue implements ControlInterface {
* *
* @memberof MainBase * @memberof MainBase
*/ */
public errorMessages: Array<any> = []; 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 { ...@@ -1560,6 +1569,9 @@ export default class MainBase extends Vue implements ControlInterface {
if (this.dataChangEvent) { if (this.dataChangEvent) {
this.dataChangEvent.unsubscribe(); this.dataChangEvent.unsubscribe();
} }
if(this.appStateEvent){
this.appStateEvent.unsubscribe();
}
} }
/** /**
......
...@@ -10,6 +10,7 @@ ...@@ -10,6 +10,7 @@
:cell-class-name="getCellClassName" :cell-class-name="getCellClassName"
max-height="items.length > 0 ? 'calc(100%-50px)' : '100%'" max-height="items.length > 0 ? 'calc(100%-50px)' : '100%'"
@row-click="rowClick($event)" @row-click="rowClick($event)"
@cell-click="cellClick"
@select-all="selectAll($event)" @select-all="selectAll($event)"
@select="select" @select="select"
@row-class-name="onRowClassName($event)" @row-class-name="onRowClassName($event)"
...@@ -180,7 +181,7 @@ import { ControlInterface } from '@/interface/control'; ...@@ -180,7 +181,7 @@ import { ControlInterface } from '@/interface/control';
import { UIActionTool,Util,ViewTool } from '@/utils'; import { UIActionTool,Util,ViewTool } from '@/utils';
import NavDataService from '@/service/app/navdata-service'; import NavDataService from '@/service/app/navdata-service';
import AppCenterService from "@service/app/app-center-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 MainService from './main-grid-service';
import JobsInfoUIService from '@/uiservice/jobs-info/jobs-info-ui-service'; import JobsInfoUIService from '@/uiservice/jobs-info/jobs-info-ui-service';
import CodeListService from "@/codelist/codelist-service"; import CodeListService from "@/codelist/codelist-service";
...@@ -270,7 +271,7 @@ export default class MainBase extends Vue implements ControlInterface { ...@@ -270,7 +271,7 @@ export default class MainBase extends Vue implements ControlInterface {
* @type {JobsInfoService} * @type {JobsInfoService}
* @memberof MainBase * @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 { ...@@ -1107,7 +1108,8 @@ export default class MainBase extends Vue implements ControlInterface {
this.selections = []; this.selections = [];
resolve(response); resolve(response);
}).catch((response: any) => { }).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; return;
} }
if (!response || !response.status || !response.data) { if (!response || !response.status || !response.data) {
...@@ -1794,6 +1796,17 @@ export default class MainBase extends Vue implements ControlInterface { ...@@ -1794,6 +1796,17 @@ export default class MainBase extends Vue implements ControlInterface {
this.$emit('selectionchange', this.selections); 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 { ...@@ -1928,6 +1941,7 @@ export default class MainBase extends Vue implements ControlInterface {
*/ */
public uiAction(row: any, tag: any, $event: any) { public uiAction(row: any, tag: any, $event: any) {
// this.rowClick(row, true); // this.rowClick(row, true);
this.cellClick();
$event.stopPropagation(); $event.stopPropagation();
} }
......
...@@ -66,7 +66,7 @@ import { ControlInterface } from '@/interface/control'; ...@@ -66,7 +66,7 @@ import { ControlInterface } from '@/interface/control';
import { UIActionTool,Util,ViewTool } from '@/utils'; import { UIActionTool,Util,ViewTool } from '@/utils';
import NavDataService from '@/service/app/navdata-service'; import NavDataService from '@/service/app/navdata-service';
import AppCenterService from "@service/app/app-center-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 DefaultService from './default-searchform-service';
import JobsLogUIService from '@/uiservice/jobs-log/jobs-log-ui-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'; 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 { ...@@ -155,7 +155,7 @@ export default class DefaultBase extends Vue implements ControlInterface {
* @type {JobsLogService} * @type {JobsLogService}
* @memberof DefaultBase * @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'; ...@@ -132,7 +132,7 @@ import { ControlInterface } from '@/interface/control';
import { UIActionTool,Util,ViewTool } from '@/utils'; import { UIActionTool,Util,ViewTool } from '@/utils';
import NavDataService from '@/service/app/navdata-service'; import NavDataService from '@/service/app/navdata-service';
import AppCenterService from "@service/app/app-center-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 MainService from './main-form-service';
import JobsLogUIService from '@/uiservice/jobs-log/jobs-log-ui-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'; 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 { ...@@ -223,7 +223,7 @@ export default class MainBase extends Vue implements ControlInterface {
* @type {JobsLogService} * @type {JobsLogService}
* @memberof MainBase * @memberof MainBase
*/ */
public appEntityService: JobsLogService = new JobsLogService({ $store: this.$store }); public appEntityService: JobsLogEntityService = new JobsLogEntityService({ $store: this.$store });
...@@ -474,7 +474,16 @@ export default class MainBase extends Vue implements ControlInterface { ...@@ -474,7 +474,16 @@ export default class MainBase extends Vue implements ControlInterface {
* *
* @memberof MainBase * @memberof MainBase
*/ */
public errorMessages: Array<any> = []; 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 { ...@@ -1380,6 +1389,9 @@ export default class MainBase extends Vue implements ControlInterface {
if (this.dataChangEvent) { if (this.dataChangEvent) {
this.dataChangEvent.unsubscribe(); this.dataChangEvent.unsubscribe();
} }
if(this.appStateEvent){
this.appStateEvent.unsubscribe();
}
} }
/** /**
......
...@@ -10,6 +10,7 @@ ...@@ -10,6 +10,7 @@
:cell-class-name="getCellClassName" :cell-class-name="getCellClassName"
max-height="items.length > 0 ? 'calc(100%-50px)' : '100%'" max-height="items.length > 0 ? 'calc(100%-50px)' : '100%'"
@row-click="rowClick($event)" @row-click="rowClick($event)"
@cell-click="cellClick"
@select-all="selectAll($event)" @select-all="selectAll($event)"
@select="select" @select="select"
@row-class-name="onRowClassName($event)" @row-class-name="onRowClassName($event)"
...@@ -166,7 +167,7 @@ import { ControlInterface } from '@/interface/control'; ...@@ -166,7 +167,7 @@ import { ControlInterface } from '@/interface/control';
import { UIActionTool,Util,ViewTool } from '@/utils'; import { UIActionTool,Util,ViewTool } from '@/utils';
import NavDataService from '@/service/app/navdata-service'; import NavDataService from '@/service/app/navdata-service';
import AppCenterService from "@service/app/app-center-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 MainService from './main-grid-service';
import JobsLogUIService from '@/uiservice/jobs-log/jobs-log-ui-service'; import JobsLogUIService from '@/uiservice/jobs-log/jobs-log-ui-service';
import CodeListService from "@/codelist/codelist-service"; import CodeListService from "@/codelist/codelist-service";
...@@ -256,7 +257,7 @@ export default class MainBase extends Vue implements ControlInterface { ...@@ -256,7 +257,7 @@ export default class MainBase extends Vue implements ControlInterface {
* @type {JobsLogService} * @type {JobsLogService}
* @memberof MainBase * @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 { ...@@ -1084,7 +1085,8 @@ export default class MainBase extends Vue implements ControlInterface {
this.selections = []; this.selections = [];
resolve(response); resolve(response);
}).catch((response: any) => { }).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; return;
} }
if (!response || !response.status || !response.data) { if (!response || !response.status || !response.data) {
...@@ -1760,6 +1762,17 @@ export default class MainBase extends Vue implements ControlInterface { ...@@ -1760,6 +1762,17 @@ export default class MainBase extends Vue implements ControlInterface {
this.$emit('selectionchange', this.selections); 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 { ...@@ -1894,6 +1907,7 @@ export default class MainBase extends Vue implements ControlInterface {
*/ */
public uiAction(row: any, tag: any, $event: any) { public uiAction(row: any, tag: any, $event: any) {
// this.rowClick(row, true); // this.rowClick(row, true);
this.cellClick();
$event.stopPropagation(); $event.stopPropagation();
} }
......
...@@ -59,7 +59,7 @@ import { ControlInterface } from '@/interface/control'; ...@@ -59,7 +59,7 @@ import { ControlInterface } from '@/interface/control';
import { UIActionTool,Util,ViewTool } from '@/utils'; import { UIActionTool,Util,ViewTool } from '@/utils';
import NavDataService from '@/service/app/navdata-service'; import NavDataService from '@/service/app/navdata-service';
import AppCenterService from "@service/app/app-center-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 DefaultService from './default-searchform-service';
import JobsRegistryUIService from '@/uiservice/jobs-registry/jobs-registry-ui-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'; 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 { ...@@ -148,7 +148,7 @@ export default class DefaultBase extends Vue implements ControlInterface {
* @type {JobsRegistryService} * @type {JobsRegistryService}
* @memberof DefaultBase * @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'; ...@@ -73,7 +73,7 @@ import { ControlInterface } from '@/interface/control';
import { UIActionTool,Util,ViewTool } from '@/utils'; import { UIActionTool,Util,ViewTool } from '@/utils';
import NavDataService from '@/service/app/navdata-service'; import NavDataService from '@/service/app/navdata-service';
import AppCenterService from "@service/app/app-center-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 MainService from './main-form-service';
import JobsRegistryUIService from '@/uiservice/jobs-registry/jobs-registry-ui-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'; 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 { ...@@ -164,7 +164,7 @@ export default class MainBase extends Vue implements ControlInterface {
* @type {JobsRegistryService} * @type {JobsRegistryService}
* @memberof MainBase * @memberof MainBase
*/ */
public appEntityService: JobsRegistryService = new JobsRegistryService({ $store: this.$store }); public appEntityService: JobsRegistryEntityService = new JobsRegistryEntityService({ $store: this.$store });
...@@ -415,7 +415,16 @@ export default class MainBase extends Vue implements ControlInterface { ...@@ -415,7 +415,16 @@ export default class MainBase extends Vue implements ControlInterface {
* *
* @memberof MainBase * @memberof MainBase
*/ */
public errorMessages: Array<any> = []; 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 { ...@@ -1201,6 +1210,9 @@ export default class MainBase extends Vue implements ControlInterface {
if (this.dataChangEvent) { if (this.dataChangEvent) {
this.dataChangEvent.unsubscribe(); this.dataChangEvent.unsubscribe();
} }
if(this.appStateEvent){
this.appStateEvent.unsubscribe();
}
} }
/** /**
......
...@@ -10,6 +10,7 @@ ...@@ -10,6 +10,7 @@
:cell-class-name="getCellClassName" :cell-class-name="getCellClassName"
max-height="items.length > 0 ? 'calc(100%-50px)' : '100%'" max-height="items.length > 0 ? 'calc(100%-50px)' : '100%'"
@row-click="rowClick($event)" @row-click="rowClick($event)"
@cell-click="cellClick"
@select-all="selectAll($event)" @select-all="selectAll($event)"
@select="select" @select="select"
@row-class-name="onRowClassName($event)" @row-class-name="onRowClassName($event)"
...@@ -120,7 +121,7 @@ import { ControlInterface } from '@/interface/control'; ...@@ -120,7 +121,7 @@ import { ControlInterface } from '@/interface/control';
import { UIActionTool,Util,ViewTool } from '@/utils'; import { UIActionTool,Util,ViewTool } from '@/utils';
import NavDataService from '@/service/app/navdata-service'; import NavDataService from '@/service/app/navdata-service';
import AppCenterService from "@service/app/app-center-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 MainService from './main-grid-service';
import JobsRegistryUIService from '@/uiservice/jobs-registry/jobs-registry-ui-service'; import JobsRegistryUIService from '@/uiservice/jobs-registry/jobs-registry-ui-service';
import CodeListService from "@/codelist/codelist-service"; import CodeListService from "@/codelist/codelist-service";
...@@ -210,7 +211,7 @@ export default class MainBase extends Vue implements ControlInterface { ...@@ -210,7 +211,7 @@ export default class MainBase extends Vue implements ControlInterface {
* @type {JobsRegistryService} * @type {JobsRegistryService}
* @memberof MainBase * @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 { ...@@ -1002,7 +1003,8 @@ export default class MainBase extends Vue implements ControlInterface {
this.selections = []; this.selections = [];
resolve(response); resolve(response);
}).catch((response: any) => { }).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; return;
} }
if (!response || !response.status || !response.data) { if (!response || !response.status || !response.data) {
...@@ -1674,6 +1676,17 @@ export default class MainBase extends Vue implements ControlInterface { ...@@ -1674,6 +1676,17 @@ export default class MainBase extends Vue implements ControlInterface {
this.$emit('selectionchange', this.selections); 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 { ...@@ -1808,6 +1821,7 @@ export default class MainBase extends Vue implements ControlInterface {
*/ */
public uiAction(row: any, tag: any, $event: any) { public uiAction(row: any, tag: any, $event: any) {
// this.rowClick(row, true); // this.rowClick(row, true);
this.cellClick();
$event.stopPropagation(); $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; ...@@ -7,7 +7,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.conditions.Wrapper;
import java.util.HashMap; import java.util.Map;
import org.apache.ibatis.annotations.Select; import org.apache.ibatis.annotations.Select;
import cn.ibizlab.core.task.domain.JobsInfo; import cn.ibizlab.core.task.domain.JobsInfo;
import cn.ibizlab.core.task.filter.JobsInfoSearchContext; import cn.ibizlab.core.task.filter.JobsInfoSearchContext;
......
...@@ -7,7 +7,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; ...@@ -7,7 +7,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.conditions.Wrapper;
import java.util.HashMap; import java.util.Map;
import org.apache.ibatis.annotations.Select; import org.apache.ibatis.annotations.Select;
import cn.ibizlab.core.task.domain.JobsLock; import cn.ibizlab.core.task.domain.JobsLock;
import cn.ibizlab.core.task.filter.JobsLockSearchContext; import cn.ibizlab.core.task.filter.JobsLockSearchContext;
......
...@@ -7,7 +7,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; ...@@ -7,7 +7,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.conditions.Wrapper;
import java.util.HashMap; import java.util.Map;
import org.apache.ibatis.annotations.Select; import org.apache.ibatis.annotations.Select;
import cn.ibizlab.core.task.domain.JobsLog; import cn.ibizlab.core.task.domain.JobsLog;
import cn.ibizlab.core.task.filter.JobsLogSearchContext; import cn.ibizlab.core.task.filter.JobsLogSearchContext;
......
...@@ -7,7 +7,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; ...@@ -7,7 +7,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.conditions.Wrapper;
import java.util.HashMap; import java.util.Map;
import org.apache.ibatis.annotations.Select; import org.apache.ibatis.annotations.Select;
import cn.ibizlab.core.task.domain.JobsRegistry; import cn.ibizlab.core.task.domain.JobsRegistry;
import cn.ibizlab.core.task.filter.JobsRegistrySearchContext; import cn.ibizlab.core.task.filter.JobsRegistrySearchContext;
......
...@@ -254,9 +254,6 @@ public class JobsInfoServiceImpl extends ServiceImpl<JobsInfoMapper, JobsInfo> i ...@@ -254,9 +254,6 @@ public class JobsInfoServiceImpl extends ServiceImpl<JobsInfoMapper, JobsInfo> i
public IJobsInfoService getProxyService() { public IJobsInfoService getProxyService() {
return cn.ibizlab.util.security.SpringContextHolder.getBean(this.getClass()); return cn.ibizlab.util.security.SpringContextHolder.getBean(this.getClass());
} }
......
...@@ -221,9 +221,6 @@ public class JobsLockServiceImpl extends ServiceImpl<JobsLockMapper, JobsLock> i ...@@ -221,9 +221,6 @@ public class JobsLockServiceImpl extends ServiceImpl<JobsLockMapper, JobsLock> i
public IJobsLockService getProxyService() { public IJobsLockService getProxyService() {
return cn.ibizlab.util.security.SpringContextHolder.getBean(this.getClass()); return cn.ibizlab.util.security.SpringContextHolder.getBean(this.getClass());
} }
......
...@@ -221,9 +221,6 @@ public class JobsLogServiceImpl extends ServiceImpl<JobsLogMapper, JobsLog> impl ...@@ -221,9 +221,6 @@ public class JobsLogServiceImpl extends ServiceImpl<JobsLogMapper, JobsLog> impl
public IJobsLogService getProxyService() { public IJobsLogService getProxyService() {
return cn.ibizlab.util.security.SpringContextHolder.getBean(this.getClass()); return cn.ibizlab.util.security.SpringContextHolder.getBean(this.getClass());
} }
......
...@@ -221,9 +221,6 @@ public class JobsRegistryServiceImpl extends ServiceImpl<JobsRegistryMapper, Job ...@@ -221,9 +221,6 @@ public class JobsRegistryServiceImpl extends ServiceImpl<JobsRegistryMapper, Job
public IJobsRegistryService getProxyService() { public IJobsRegistryService getProxyService() {
return cn.ibizlab.util.security.SpringContextHolder.getBean(this.getClass()); return cn.ibizlab.util.security.SpringContextHolder.getBean(this.getClass());
} }
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
<!--输出实体[JOBS_INFO]数据结构 --> <!--输出实体[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"> <createTable tableName="JOBS_INFO">
<column name="ID" remarks="" type="VARCHAR(100)"> <column name="ID" remarks="" type="VARCHAR(100)">
<constraints primaryKey="true" primaryKeyName="PK_JOBS_INFO_ID"/> <constraints primaryKey="true" primaryKeyName="PK_JOBS_INFO_ID"/>
......
...@@ -16,7 +16,7 @@ ...@@ -16,7 +16,7 @@
"fieldname":"ID" , "fieldname":"ID" ,
"codename":"Id", "codename":"Id",
"field_logic_name":"主键ID", "field_logic_name":"主键ID",
"entity_name":"JobsInfo", "entity_name":"JOBS_INFO",
"field_type":"TEXT", "field_type":"TEXT",
"nullable":0, "nullable":0,
"physical_field":1, "physical_field":1,
...@@ -30,7 +30,7 @@ ...@@ -30,7 +30,7 @@
"fieldname":"TENANT_ID" , "fieldname":"TENANT_ID" ,
"codename":"Tenant_id", "codename":"Tenant_id",
"field_logic_name":"租户ID", "field_logic_name":"租户ID",
"entity_name":"JobsInfo", "entity_name":"JOBS_INFO",
"field_type":"TEXT", "field_type":"TEXT",
"nullable":1, "nullable":1,
"physical_field":1, "physical_field":1,
...@@ -44,7 +44,7 @@ ...@@ -44,7 +44,7 @@
"fieldname":"APP" , "fieldname":"APP" ,
"codename":"App", "codename":"App",
"field_logic_name":"服务名", "field_logic_name":"服务名",
"entity_name":"JobsInfo", "entity_name":"JOBS_INFO",
"field_type":"TEXT", "field_type":"TEXT",
"nullable":0, "nullable":0,
"physical_field":1, "physical_field":1,
...@@ -58,7 +58,7 @@ ...@@ -58,7 +58,7 @@
"fieldname":"CRON" , "fieldname":"CRON" ,
"codename":"Cron", "codename":"Cron",
"field_logic_name":"任务执行CRON", "field_logic_name":"任务执行CRON",
"entity_name":"JobsInfo", "entity_name":"JOBS_INFO",
"field_type":"TEXT", "field_type":"TEXT",
"nullable":0, "nullable":0,
"physical_field":1, "physical_field":1,
...@@ -72,7 +72,7 @@ ...@@ -72,7 +72,7 @@
"fieldname":"HANDLER" , "fieldname":"HANDLER" ,
"codename":"Handler", "codename":"Handler",
"field_logic_name":"执行器任务HANDLER", "field_logic_name":"执行器任务HANDLER",
"entity_name":"JobsInfo", "entity_name":"JOBS_INFO",
"field_type":"TEXT", "field_type":"TEXT",
"nullable":1, "nullable":1,
"physical_field":1, "physical_field":1,
...@@ -86,7 +86,7 @@ ...@@ -86,7 +86,7 @@
"fieldname":"PARAM" , "fieldname":"PARAM" ,
"codename":"Param", "codename":"Param",
"field_logic_name":"执行器任务参数", "field_logic_name":"执行器任务参数",
"entity_name":"JobsInfo", "entity_name":"JOBS_INFO",
"field_type":"TEXT", "field_type":"TEXT",
"nullable":1, "nullable":1,
"physical_field":1, "physical_field":1,
...@@ -100,7 +100,7 @@ ...@@ -100,7 +100,7 @@
"fieldname":"TIMEOUT" , "fieldname":"TIMEOUT" ,
"codename":"Timeout", "codename":"Timeout",
"field_logic_name":"任务执行超时时间(秒)", "field_logic_name":"任务执行超时时间(秒)",
"entity_name":"JobsInfo", "entity_name":"JOBS_INFO",
"field_type":"INT", "field_type":"INT",
"nullable":0, "nullable":0,
"physical_field":1, "physical_field":1,
...@@ -113,7 +113,7 @@ ...@@ -113,7 +113,7 @@
"fieldname":"FAIL_RETRY_COUNT" , "fieldname":"FAIL_RETRY_COUNT" ,
"codename":"Fail_retry_count", "codename":"Fail_retry_count",
"field_logic_name":"失败重试次数", "field_logic_name":"失败重试次数",
"entity_name":"JobsInfo", "entity_name":"JOBS_INFO",
"field_type":"INT", "field_type":"INT",
"nullable":0, "nullable":0,
"physical_field":1, "physical_field":1,
...@@ -126,7 +126,7 @@ ...@@ -126,7 +126,7 @@
"fieldname":"LAST_TIME" , "fieldname":"LAST_TIME" ,
"codename":"Last_time", "codename":"Last_time",
"field_logic_name":"上次调度时间", "field_logic_name":"上次调度时间",
"entity_name":"JobsInfo", "entity_name":"JOBS_INFO",
"field_type":"BIGINT", "field_type":"BIGINT",
"nullable":0, "nullable":0,
"physical_field":1, "physical_field":1,
...@@ -139,7 +139,7 @@ ...@@ -139,7 +139,7 @@
"fieldname":"NEXT_TIME" , "fieldname":"NEXT_TIME" ,
"codename":"Next_time", "codename":"Next_time",
"field_logic_name":"下次调度时间", "field_logic_name":"下次调度时间",
"entity_name":"JobsInfo", "entity_name":"JOBS_INFO",
"field_type":"BIGINT", "field_type":"BIGINT",
"nullable":0, "nullable":0,
"physical_field":1, "physical_field":1,
...@@ -152,7 +152,7 @@ ...@@ -152,7 +152,7 @@
"fieldname":"AUTHOR" , "fieldname":"AUTHOR" ,
"codename":"Author", "codename":"Author",
"field_logic_name":"所有者", "field_logic_name":"所有者",
"entity_name":"JobsInfo", "entity_name":"JOBS_INFO",
"field_type":"TEXT", "field_type":"TEXT",
"nullable":1, "nullable":1,
"physical_field":1, "physical_field":1,
...@@ -166,7 +166,7 @@ ...@@ -166,7 +166,7 @@
"fieldname":"REMARK" , "fieldname":"REMARK" ,
"codename":"Remark", "codename":"Remark",
"field_logic_name":"备注", "field_logic_name":"备注",
"entity_name":"JobsInfo", "entity_name":"JOBS_INFO",
"field_type":"TEXT", "field_type":"TEXT",
"nullable":1, "nullable":1,
"physical_field":1, "physical_field":1,
...@@ -180,7 +180,7 @@ ...@@ -180,7 +180,7 @@
"fieldname":"STATUS" , "fieldname":"STATUS" ,
"codename":"Status", "codename":"Status",
"field_logic_name":"状态", "field_logic_name":"状态",
"entity_name":"JobsInfo", "entity_name":"JOBS_INFO",
"field_type":"NSCODELIST", "field_type":"NSCODELIST",
"dict":"CodeListJobStatus", "dict":"CodeListJobStatus",
"nullable":0, "nullable":0,
...@@ -194,7 +194,7 @@ ...@@ -194,7 +194,7 @@
"fieldname":"UPDATE_TIME" , "fieldname":"UPDATE_TIME" ,
"codename":"Update_time", "codename":"Update_time",
"field_logic_name":"更新时间", "field_logic_name":"更新时间",
"entity_name":"JobsInfo", "entity_name":"JOBS_INFO",
"field_type":"DATETIME", "field_type":"DATETIME",
"nullable":1, "nullable":1,
"physical_field":1, "physical_field":1,
...@@ -207,7 +207,7 @@ ...@@ -207,7 +207,7 @@
"fieldname":"CREATE_TIME" , "fieldname":"CREATE_TIME" ,
"codename":"Create_time", "codename":"Create_time",
"field_logic_name":"创建时间", "field_logic_name":"创建时间",
"entity_name":"JobsInfo", "entity_name":"JOBS_INFO",
"field_type":"DATETIME", "field_type":"DATETIME",
"nullable":0, "nullable":0,
"physical_field":1, "physical_field":1,
...@@ -238,7 +238,7 @@ ...@@ -238,7 +238,7 @@
"fieldname":"ID" , "fieldname":"ID" ,
"codename":"Id", "codename":"Id",
"field_logic_name":"主键ID", "field_logic_name":"主键ID",
"entity_name":"JobsLock", "entity_name":"JOBS_LOCK",
"field_type":"TEXT", "field_type":"TEXT",
"nullable":0, "nullable":0,
"physical_field":1, "physical_field":1,
...@@ -252,7 +252,7 @@ ...@@ -252,7 +252,7 @@
"fieldname":"NAME" , "fieldname":"NAME" ,
"codename":"Name", "codename":"Name",
"field_logic_name":"名称", "field_logic_name":"名称",
"entity_name":"JobsLock", "entity_name":"JOBS_LOCK",
"field_type":"TEXT", "field_type":"TEXT",
"nullable":0, "nullable":0,
"physical_field":1, "physical_field":1,
...@@ -266,7 +266,7 @@ ...@@ -266,7 +266,7 @@
"fieldname":"OWNER" , "fieldname":"OWNER" ,
"codename":"Owner", "codename":"Owner",
"field_logic_name":"持有者", "field_logic_name":"持有者",
"entity_name":"JobsLock", "entity_name":"JOBS_LOCK",
"field_type":"TEXT", "field_type":"TEXT",
"nullable":0, "nullable":0,
"physical_field":1, "physical_field":1,
...@@ -280,7 +280,7 @@ ...@@ -280,7 +280,7 @@
"fieldname":"CREATE_TIME" , "fieldname":"CREATE_TIME" ,
"codename":"Create_time", "codename":"Create_time",
"field_logic_name":"创建时间", "field_logic_name":"创建时间",
"entity_name":"JobsLock", "entity_name":"JOBS_LOCK",
"field_type":"DATETIME", "field_type":"DATETIME",
"nullable":0, "nullable":0,
"physical_field":1, "physical_field":1,
...@@ -310,7 +310,7 @@ ...@@ -310,7 +310,7 @@
"fieldname":"ID" , "fieldname":"ID" ,
"codename":"Id", "codename":"Id",
"field_logic_name":"主键ID", "field_logic_name":"主键ID",
"entity_name":"JobsLog", "entity_name":"JOBS_LOG",
"field_type":"TEXT", "field_type":"TEXT",
"nullable":0, "nullable":0,
"physical_field":1, "physical_field":1,
...@@ -324,7 +324,7 @@ ...@@ -324,7 +324,7 @@
"fieldname":"JOB_ID" , "fieldname":"JOB_ID" ,
"codename":"Job_id", "codename":"Job_id",
"field_logic_name":"任务ID", "field_logic_name":"任务ID",
"entity_name":"JobsLog", "entity_name":"JOBS_LOG",
"field_type":"TEXT", "field_type":"TEXT",
"nullable":0, "nullable":0,
"physical_field":1, "physical_field":1,
...@@ -338,7 +338,7 @@ ...@@ -338,7 +338,7 @@
"fieldname":"ADDRESS" , "fieldname":"ADDRESS" ,
"codename":"Address", "codename":"Address",
"field_logic_name":"执行地址", "field_logic_name":"执行地址",
"entity_name":"JobsLog", "entity_name":"JOBS_LOG",
"field_type":"TEXT", "field_type":"TEXT",
"nullable":1, "nullable":1,
"physical_field":1, "physical_field":1,
...@@ -352,7 +352,7 @@ ...@@ -352,7 +352,7 @@
"fieldname":"HANDLER" , "fieldname":"HANDLER" ,
"codename":"Handler", "codename":"Handler",
"field_logic_name":"执行器任务HANDLER", "field_logic_name":"执行器任务HANDLER",
"entity_name":"JobsLog", "entity_name":"JOBS_LOG",
"field_type":"TEXT", "field_type":"TEXT",
"nullable":1, "nullable":1,
"physical_field":1, "physical_field":1,
...@@ -366,7 +366,7 @@ ...@@ -366,7 +366,7 @@
"fieldname":"PARAM" , "fieldname":"PARAM" ,
"codename":"Param", "codename":"Param",
"field_logic_name":"执行器任务参数", "field_logic_name":"执行器任务参数",
"entity_name":"JobsLog", "entity_name":"JOBS_LOG",
"field_type":"TEXT", "field_type":"TEXT",
"nullable":1, "nullable":1,
"physical_field":1, "physical_field":1,
...@@ -380,7 +380,7 @@ ...@@ -380,7 +380,7 @@
"fieldname":"FAIL_RETRY_COUNT" , "fieldname":"FAIL_RETRY_COUNT" ,
"codename":"Fail_retry_count", "codename":"Fail_retry_count",
"field_logic_name":"失败重试次数", "field_logic_name":"失败重试次数",
"entity_name":"JobsLog", "entity_name":"JOBS_LOG",
"field_type":"INT", "field_type":"INT",
"nullable":0, "nullable":0,
"physical_field":1, "physical_field":1,
...@@ -393,7 +393,7 @@ ...@@ -393,7 +393,7 @@
"fieldname":"TRIGGER_CODE" , "fieldname":"TRIGGER_CODE" ,
"codename":"Trigger_code", "codename":"Trigger_code",
"field_logic_name":"触发器调度返回码", "field_logic_name":"触发器调度返回码",
"entity_name":"JobsLog", "entity_name":"JOBS_LOG",
"field_type":"INT", "field_type":"INT",
"nullable":0, "nullable":0,
"physical_field":1, "physical_field":1,
...@@ -406,7 +406,7 @@ ...@@ -406,7 +406,7 @@
"fieldname":"TRIGGER_TYPE" , "fieldname":"TRIGGER_TYPE" ,
"codename":"Trigger_type", "codename":"Trigger_type",
"field_logic_name":"触发器调度类型", "field_logic_name":"触发器调度类型",
"entity_name":"JobsLog", "entity_name":"JOBS_LOG",
"field_type":"TEXT", "field_type":"TEXT",
"nullable":0, "nullable":0,
"physical_field":1, "physical_field":1,
...@@ -420,7 +420,7 @@ ...@@ -420,7 +420,7 @@
"fieldname":"TRIGGER_MSG" , "fieldname":"TRIGGER_MSG" ,
"codename":"Trigger_msg", "codename":"Trigger_msg",
"field_logic_name":"触发器调度信息", "field_logic_name":"触发器调度信息",
"entity_name":"JobsLog", "entity_name":"JOBS_LOG",
"field_type":"LONGTEXT", "field_type":"LONGTEXT",
"nullable":1, "nullable":1,
"physical_field":1, "physical_field":1,
...@@ -434,7 +434,7 @@ ...@@ -434,7 +434,7 @@
"fieldname":"CREATE_TIME" , "fieldname":"CREATE_TIME" ,
"codename":"Create_time", "codename":"Create_time",
"field_logic_name":"创建时间", "field_logic_name":"创建时间",
"entity_name":"JobsLog", "entity_name":"JOBS_LOG",
"field_type":"DATETIME", "field_type":"DATETIME",
"nullable":0, "nullable":0,
"physical_field":1, "physical_field":1,
...@@ -464,7 +464,7 @@ ...@@ -464,7 +464,7 @@
"fieldname":"ID" , "fieldname":"ID" ,
"codename":"Id", "codename":"Id",
"field_logic_name":"主键ID", "field_logic_name":"主键ID",
"entity_name":"JobsRegistry", "entity_name":"JOBS_REGISTRY",
"field_type":"TEXT", "field_type":"TEXT",
"nullable":0, "nullable":0,
"physical_field":1, "physical_field":1,
...@@ -478,7 +478,7 @@ ...@@ -478,7 +478,7 @@
"fieldname":"APP" , "fieldname":"APP" ,
"codename":"App", "codename":"App",
"field_logic_name":"服务名", "field_logic_name":"服务名",
"entity_name":"JobsRegistry", "entity_name":"JOBS_REGISTRY",
"field_type":"TEXT", "field_type":"TEXT",
"nullable":0, "nullable":0,
"physical_field":1, "physical_field":1,
...@@ -492,7 +492,7 @@ ...@@ -492,7 +492,7 @@
"fieldname":"ADDRESS" , "fieldname":"ADDRESS" ,
"codename":"Address", "codename":"Address",
"field_logic_name":"执行地址", "field_logic_name":"执行地址",
"entity_name":"JobsRegistry", "entity_name":"JOBS_REGISTRY",
"field_type":"TEXT", "field_type":"TEXT",
"nullable":0, "nullable":0,
"physical_field":1, "physical_field":1,
...@@ -506,7 +506,7 @@ ...@@ -506,7 +506,7 @@
"fieldname":"STATUS" , "fieldname":"STATUS" ,
"codename":"Status", "codename":"Status",
"field_logic_name":"状态", "field_logic_name":"状态",
"entity_name":"JobsRegistry", "entity_name":"JOBS_REGISTRY",
"field_type":"NSCODELIST", "field_type":"NSCODELIST",
"dict":"CodeListJobStatus", "dict":"CodeListJobStatus",
"nullable":0, "nullable":0,
...@@ -520,7 +520,7 @@ ...@@ -520,7 +520,7 @@
"fieldname":"UPDATE_TIME" , "fieldname":"UPDATE_TIME" ,
"codename":"Update_time", "codename":"Update_time",
"field_logic_name":"更新时间", "field_logic_name":"更新时间",
"entity_name":"JobsRegistry", "entity_name":"JOBS_REGISTRY",
"field_type":"DATETIME", "field_type":"DATETIME",
"nullable":0, "nullable":0,
"physical_field":1, "physical_field":1,
......
...@@ -85,7 +85,6 @@ ...@@ -85,7 +85,6 @@
<oracle.version>19.8.0.0</oracle.version> <oracle.version>19.8.0.0</oracle.version>
<postgresql.version>42.2.6</postgresql.version> <postgresql.version>42.2.6</postgresql.version>
</properties> </properties>
<dependencyManagement> <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 { ...@@ -110,8 +110,9 @@ public class JobsInfoResource {
@ApiOperation(value = "获取任务信息草稿", tags = {"任务信息" }, notes = "获取任务信息草稿") @ApiOperation(value = "获取任务信息草稿", tags = {"任务信息" }, notes = "获取任务信息草稿")
@RequestMapping(method = RequestMethod.GET, value = "/jobsinfos/getdraft") @RequestMapping(method = RequestMethod.GET, value = "/jobsinfos/getdraft")
public ResponseEntity<JobsInfoDTO> getDraft() { public ResponseEntity<JobsInfoDTO> getDraft(JobsInfoDTO dto) {
return ResponseEntity.status(HttpStatus.OK).body(jobsinfoMapping.toDto(jobsinfoService.getDraft(new JobsInfo()))); JobsInfo domain = jobsinfoMapping.toDomain(dto);
return ResponseEntity.status(HttpStatus.OK).body(jobsinfoMapping.toDto(jobsinfoService.getDraft(domain)));
} }
@ApiOperation(value = "检查任务信息", tags = {"任务信息" }, notes = "检查任务信息") @ApiOperation(value = "检查任务信息", tags = {"任务信息" }, notes = "检查任务信息")
...@@ -132,19 +133,19 @@ public class JobsInfoResource { ...@@ -132,19 +133,19 @@ public class JobsInfoResource {
} }
@PreAuthorize("hasAnyAuthority('ROLE_SUPERADMIN','ibztask-JobsInfo-Execute-all')") @PreAuthorize("hasAnyAuthority('ROLE_SUPERADMIN','ibztask-JobsInfo-Execute-all')")
@ApiOperation(value = "批量处理[执行]", tags = {"任务信息" }, notes = "批量处理[执行]") @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) { 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 = "保存任务信息") @ApiOperation(value = "保存任务信息", tags = {"任务信息" }, notes = "保存任务信息")
@RequestMapping(method = RequestMethod.POST, value = "/jobsinfos/save") @RequestMapping(method = RequestMethod.POST, value = "/jobsinfos/save")
public ResponseEntity<Boolean> save(@RequestBody JobsInfoDTO jobsinfodto) { public ResponseEntity<Boolean> save(@RequestBody JobsInfoDTO jobsinfodto) {
return ResponseEntity.status(HttpStatus.OK).body(jobsinfoService.save(jobsinfoMapping.toDomain(jobsinfodto))); return ResponseEntity.status(HttpStatus.OK).body(jobsinfoService.save(jobsinfoMapping.toDomain(jobsinfodto)));
} }
@PreAuthorize("hasAnyAuthority('ROLE_SUPERADMIN','ibztask-JobsInfo-Save-all')")
@ApiOperation(value = "批量保存任务信息", tags = {"任务信息" }, notes = "批量保存任务信息") @ApiOperation(value = "批量保存任务信息", tags = {"任务信息" }, notes = "批量保存任务信息")
@RequestMapping(method = RequestMethod.POST, value = "/jobsinfos/savebatch") @RequestMapping(method = RequestMethod.POST, value = "/jobsinfos/savebatch")
public ResponseEntity<Boolean> saveBatch(@RequestBody List<JobsInfoDTO> jobsinfodtos) { public ResponseEntity<Boolean> saveBatch(@RequestBody List<JobsInfoDTO> jobsinfodtos) {
...@@ -152,7 +153,6 @@ public class JobsInfoResource { ...@@ -152,7 +153,6 @@ public class JobsInfoResource {
return ResponseEntity.status(HttpStatus.OK).body(true); return ResponseEntity.status(HttpStatus.OK).body(true);
} }
@PreAuthorize("hasAnyAuthority('ROLE_SUPERADMIN','ibztask-JobsInfo-Start-all')")
@ApiOperation(value = "开始", tags = {"任务信息" }, notes = "开始") @ApiOperation(value = "开始", tags = {"任务信息" }, notes = "开始")
@RequestMapping(method = RequestMethod.POST, value = "/jobsinfos/{jobsinfo_id}/start") @RequestMapping(method = RequestMethod.POST, value = "/jobsinfos/{jobsinfo_id}/start")
public ResponseEntity<JobsInfoDTO> start(@PathVariable("jobsinfo_id") String jobsinfo_id, @RequestBody JobsInfoDTO jobsinfodto) { public ResponseEntity<JobsInfoDTO> start(@PathVariable("jobsinfo_id") String jobsinfo_id, @RequestBody JobsInfoDTO jobsinfodto) {
...@@ -163,7 +163,6 @@ public class JobsInfoResource { ...@@ -163,7 +163,6 @@ public class JobsInfoResource {
return ResponseEntity.status(HttpStatus.OK).body(jobsinfodto); return ResponseEntity.status(HttpStatus.OK).body(jobsinfodto);
} }
@PreAuthorize("hasAnyAuthority('ROLE_SUPERADMIN','ibztask-JobsInfo-Stop-all')")
@ApiOperation(value = "停止", tags = {"任务信息" }, notes = "停止") @ApiOperation(value = "停止", tags = {"任务信息" }, notes = "停止")
@RequestMapping(method = RequestMethod.POST, value = "/jobsinfos/{jobsinfo_id}/stop") @RequestMapping(method = RequestMethod.POST, value = "/jobsinfos/{jobsinfo_id}/stop")
public ResponseEntity<JobsInfoDTO> stop(@PathVariable("jobsinfo_id") String jobsinfo_id, @RequestBody JobsInfoDTO jobsinfodto) { public ResponseEntity<JobsInfoDTO> stop(@PathVariable("jobsinfo_id") String jobsinfo_id, @RequestBody JobsInfoDTO jobsinfodto) {
...@@ -197,5 +196,6 @@ public class JobsInfoResource { ...@@ -197,5 +196,6 @@ public class JobsInfoResource {
} }
} }
...@@ -110,8 +110,9 @@ public class JobsLockResource { ...@@ -110,8 +110,9 @@ public class JobsLockResource {
@ApiOperation(value = "获取任务锁草稿", tags = {"任务锁" }, notes = "获取任务锁草稿") @ApiOperation(value = "获取任务锁草稿", tags = {"任务锁" }, notes = "获取任务锁草稿")
@RequestMapping(method = RequestMethod.GET, value = "/jobslocks/getdraft") @RequestMapping(method = RequestMethod.GET, value = "/jobslocks/getdraft")
public ResponseEntity<JobsLockDTO> getDraft() { public ResponseEntity<JobsLockDTO> getDraft(JobsLockDTO dto) {
return ResponseEntity.status(HttpStatus.OK).body(jobslockMapping.toDto(jobslockService.getDraft(new JobsLock()))); JobsLock domain = jobslockMapping.toDomain(dto);
return ResponseEntity.status(HttpStatus.OK).body(jobslockMapping.toDto(jobslockService.getDraft(domain)));
} }
@ApiOperation(value = "检查任务锁", tags = {"任务锁" }, notes = "检查任务锁") @ApiOperation(value = "检查任务锁", tags = {"任务锁" }, notes = "检查任务锁")
...@@ -158,5 +159,6 @@ public class JobsLockResource { ...@@ -158,5 +159,6 @@ public class JobsLockResource {
} }
} }
...@@ -110,8 +110,9 @@ public class JobsLogResource { ...@@ -110,8 +110,9 @@ public class JobsLogResource {
@ApiOperation(value = "获取任务调度日志草稿", tags = {"任务调度日志" }, notes = "获取任务调度日志草稿") @ApiOperation(value = "获取任务调度日志草稿", tags = {"任务调度日志" }, notes = "获取任务调度日志草稿")
@RequestMapping(method = RequestMethod.GET, value = "/jobslogs/getdraft") @RequestMapping(method = RequestMethod.GET, value = "/jobslogs/getdraft")
public ResponseEntity<JobsLogDTO> getDraft() { public ResponseEntity<JobsLogDTO> getDraft(JobsLogDTO dto) {
return ResponseEntity.status(HttpStatus.OK).body(jobslogMapping.toDto(jobslogService.getDraft(new JobsLog()))); JobsLog domain = jobslogMapping.toDomain(dto);
return ResponseEntity.status(HttpStatus.OK).body(jobslogMapping.toDto(jobslogService.getDraft(domain)));
} }
@ApiOperation(value = "检查任务调度日志", tags = {"任务调度日志" }, notes = "检查任务调度日志") @ApiOperation(value = "检查任务调度日志", tags = {"任务调度日志" }, notes = "检查任务调度日志")
...@@ -158,5 +159,6 @@ public class JobsLogResource { ...@@ -158,5 +159,6 @@ public class JobsLogResource {
} }
} }
...@@ -110,8 +110,9 @@ public class JobsRegistryResource { ...@@ -110,8 +110,9 @@ public class JobsRegistryResource {
@ApiOperation(value = "获取任务注册信息草稿", tags = {"任务注册信息" }, notes = "获取任务注册信息草稿") @ApiOperation(value = "获取任务注册信息草稿", tags = {"任务注册信息" }, notes = "获取任务注册信息草稿")
@RequestMapping(method = RequestMethod.GET, value = "/jobsregistries/getdraft") @RequestMapping(method = RequestMethod.GET, value = "/jobsregistries/getdraft")
public ResponseEntity<JobsRegistryDTO> getDraft() { public ResponseEntity<JobsRegistryDTO> getDraft(JobsRegistryDTO dto) {
return ResponseEntity.status(HttpStatus.OK).body(jobsregistryMapping.toDto(jobsregistryService.getDraft(new JobsRegistry()))); JobsRegistry domain = jobsregistryMapping.toDomain(dto);
return ResponseEntity.status(HttpStatus.OK).body(jobsregistryMapping.toDto(jobsregistryService.getDraft(domain)));
} }
@ApiOperation(value = "检查任务注册信息", tags = {"任务注册信息" }, notes = "检查任务注册信息") @ApiOperation(value = "检查任务注册信息", tags = {"任务注册信息" }, notes = "检查任务注册信息")
...@@ -158,5 +159,6 @@ public class JobsRegistryResource { ...@@ -158,5 +159,6 @@ public class JobsRegistryResource {
} }
} }
...@@ -124,6 +124,7 @@ public class RedisCacheConfig { ...@@ -124,6 +124,7 @@ public class RedisCacheConfig {
container.setConnectionFactory(redisConnectionFactory); container.setConnectionFactory(redisConnectionFactory);
container.addMessageListener(messageListener, RedisChannelTopic.REDIS_CACHE_DELETE_TOPIC.getChannelTopic()); container.addMessageListener(messageListener, RedisChannelTopic.REDIS_CACHE_DELETE_TOPIC.getChannelTopic());
container.addMessageListener(messageListener, RedisChannelTopic.REDIS_CACHE_CLEAR_TOPIC.getChannelTopic()); container.addMessageListener(messageListener, RedisChannelTopic.REDIS_CACHE_CLEAR_TOPIC.getChannelTopic());
container.addMessageListener(messageListener, RedisChannelTopic.REDIS_CACHE_DYNAMICMODEL_TOPIC.getChannelTopic());
return container; return container;
} }
} }
\ No newline at end of file
...@@ -8,6 +8,7 @@ import org.springframework.data.redis.core.RedisTemplate; ...@@ -8,6 +8,7 @@ import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.listener.adapter.MessageListenerAdapter; import org.springframework.data.redis.listener.adapter.MessageListenerAdapter;
import org.springframework.data.redis.serializer.RedisSerializer; import org.springframework.data.redis.serializer.RedisSerializer;
import org.springframework.util.StringUtils; import org.springframework.util.StringUtils;
import org.springframework.util.ObjectUtils;
import java.util.Map; import java.util.Map;
import cn.ibizlab.util.cache.cache.LayeringCache; import cn.ibizlab.util.cache.cache.LayeringCache;
import cn.ibizlab.util.enums.RedisChannelTopic; import cn.ibizlab.util.enums.RedisChannelTopic;
...@@ -34,20 +35,25 @@ public class RedisMessageListener extends MessageListenerAdapter { ...@@ -34,20 +35,25 @@ public class RedisMessageListener extends MessageListenerAdapter {
if(result instanceof Map){ if(result instanceof Map){
map= (Map<String, Object>) result; map= (Map<String, Object>) result;
} }
if(StringUtils.isEmpty(map)|| (!map.containsKey("cacheName"))|| (!map.containsKey("key"))){ if(StringUtils.isEmpty(map)|| (!map.containsKey("cacheName"))){
log.debug("解析缓存数据失败,无法获取指定值!"); log.debug("解析缓存数据失败,无法获取指定值!");
return ; return ;
} }
log.debug("redis消息订阅者接收到频道【{}】发布的消息。消息内容:{}", channelTopic.getChannelTopicStr(), result.toString()); log.debug("redis消息订阅者接收到频道【{}】发布的消息。消息内容:{}", channelTopic.getChannelTopicStr(), result.toString());
String cacheName = (String) map.get("cacheName"); String cacheName = (String) map.get("cacheName");
Object key = map.get("key");
Cache cache = cacheManager.getCache(cacheName);// 根据缓存名称获取多级缓存 Cache cache = cacheManager.getCache(cacheName);// 根据缓存名称获取多级缓存
if (cache != null && cache instanceof LayeringCache) { // 判断缓存是否是多级缓存 if (cache != null && cache instanceof LayeringCache) { // 判断缓存是否是多级缓存
switch (channelTopic) { switch (channelTopic) {
case REDIS_CACHE_DELETE_TOPIC: // 获取一级缓存,并删除一级缓存数据 case REDIS_CACHE_DELETE_TOPIC: // 获取一级缓存,并删除一级缓存数据
((LayeringCache) cache).getFirstCache().evict(key); Object cacheKey = map.get("key");
((LayeringCache) cache).getSecondCache().evict(key); if(!ObjectUtils.isEmpty(cacheKey)){
log.debug("同步删除缓存{}数据,key:{},", cacheName, key.toString()); ((LayeringCache) cache).getFirstCache().evict(cacheKey);
((LayeringCache) cache).getSecondCache().evict(cacheKey);
log.debug("同步删除缓存{}数据,key:{},", cacheName, cacheKey.toString());
}
else{
log.debug("同步删除缓存失败,{}缓存键值为空!",cacheName);
}
break; break;
case REDIS_CACHE_CLEAR_TOPIC:// 获取一级缓存,并删除一级缓存数据 case REDIS_CACHE_CLEAR_TOPIC:// 获取一级缓存,并删除一级缓存数据
((LayeringCache) cache).getFirstCache().clear(); ((LayeringCache) cache).getFirstCache().clear();
......
...@@ -2,6 +2,8 @@ package cn.ibizlab.util.client; ...@@ -2,6 +2,8 @@ package cn.ibizlab.util.client;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.util.List;
import java.util.Map;
@Component @Component
public class IBZLiteFallback implements IBZLiteFeignClient { public class IBZLiteFallback implements IBZLiteFeignClient {
...@@ -10,4 +12,5 @@ public class IBZLiteFallback implements IBZLiteFeignClient { ...@@ -10,4 +12,5 @@ public class IBZLiteFallback implements IBZLiteFeignClient {
public Boolean syncSysModel(JSONObject system) { public Boolean syncSysModel(JSONObject system) {
return null; return null;
} }
} }
...@@ -3,6 +3,8 @@ package cn.ibizlab.util.client; ...@@ -3,6 +3,8 @@ package cn.ibizlab.util.client;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import org.springframework.cloud.openfeign.FeignClient; import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*; 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) @FeignClient(value = "${ibiz.ref.service.lite:ibzlite-api}",contextId = "lite",fallback = IBZLiteFallback.class)
public interface IBZLiteFeignClient public interface IBZLiteFeignClient
...@@ -14,4 +16,5 @@ public interface IBZLiteFeignClient ...@@ -14,4 +16,5 @@ public interface IBZLiteFeignClient
*/ */
@PostMapping("/lite/syncsysmodel") @PostMapping("/lite/syncsysmodel")
Boolean syncSysModel(@RequestBody JSONObject system); Boolean syncSysModel(@RequestBody JSONObject system);
} }
...@@ -6,7 +6,8 @@ import org.springframework.data.redis.listener.ChannelTopic; ...@@ -6,7 +6,8 @@ import org.springframework.data.redis.listener.ChannelTopic;
*/ */
public enum RedisChannelTopic { public enum RedisChannelTopic {
REDIS_CACHE_DELETE_TOPIC("redis:cache:delete:topic1", "删除redis缓存消息频道"), 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 channelTopic;
String label; String label;
......
...@@ -293,7 +293,7 @@ public class AuthPermissionEvaluator implements PermissionEvaluator { ...@@ -293,7 +293,7 @@ public class AuthPermissionEvaluator implements PermissionEvaluator {
Map<String,String> permissionFiled=new HashMap<>(); Map<String,String> permissionFiled=new HashMap<>();
String orgField="orgid"; //组织属性 String orgField="orgid"; //组织属性
String orgDeptField="orgsecid"; //部门属性 String orgDeptField="orgsectorid"; //部门属性
String createManField="createman"; //创建人属性 String createManField="createman"; //创建人属性
DEFieldCacheMap.getFieldMap(entityBase.getClass().getName()); DEFieldCacheMap.getFieldMap(entityBase.getClass().getName());
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册