未验证 提交 c9022540 编写于 作者: millionfor's avatar millionfor 提交者: GitHub

Merge pull request #88 from millionfor/dev-20190415

Dev 20190415
......@@ -11,32 +11,34 @@
:placeholder="$t('prop(required)')"
maxlength="64"
@on-blur="_verifProp()"
style="width: 164px;">
:style="inputStyle">
</x-input>
<x-select
style="width: 80px;"
@change="_handleDirectChanged"
v-model="localParamsList[$index].direct"
:disabled="isDetails || !hide">
<x-option
v-for="city in directList"
:key="city.code"
:value="city.code"
:label="city.code">
</x-option>
</x-select>
<x-select
style="width: 118px;"
@change="_handleTypeChanged"
v-model="localParamsList[$index].type"
:disabled="isDetails || !hide">
<x-option
v-for="city in typeList"
:key="city.code"
:value="city.code"
:label="city.code">
</x-option>
</x-select>
<template v-if="hide">
<x-select
style="width: 80px;"
@change="_handleDirectChanged"
v-model="localParamsList[$index].direct"
:disabled="isDetails">
<x-option
v-for="city in directList"
:key="city.code"
:value="city.code"
:label="city.code">
</x-option>
</x-select>
<x-select
style="width: 118px;"
@change="_handleTypeChanged"
v-model="localParamsList[$index].type"
:disabled="isDetails">
<x-option
v-for="city in typeList"
:key="city.code"
:value="city.code"
:label="city.code">
</x-option>
</x-select>
</template>
<x-input
:disabled="isDetails"
type="text"
......@@ -44,7 +46,7 @@
:placeholder="$t('value(optional)')"
maxlength="64"
@on-blur="_handleValue()"
style="width: 150px;position: relative;margin-bottom: -2px;">
:style="inputStyle">
</x-input>
<span class="lt-add">
<a href="javascript:" style="color:red;" @click="!isDetails && _removeUdp($index)" >
......@@ -57,7 +59,7 @@
</a>
</span>
</div>
<span class="add" v-if="!localParamsList.length">
<span class="add-dp" v-if="!localParamsList.length">
<a href="javascript:" @click="!isDetails && _addUdp()" >
<i class="iconfont" :class="_isDetails" data-toggle="tooltip" :title="$t('Add')">&#xe636;</i>
</a>
......@@ -173,6 +175,11 @@
created () {
this.localParamsList = this.udpList
},
computed: {
inputStyle () {
return `width:${this.hide ? 160 : 262}px`
}
},
mounted () {
},
components: { }
......@@ -197,6 +204,7 @@
}
.add {
a {
color: #000;
.iconfont {
font-size: 18px;
vertical-align: middle;
......@@ -205,5 +213,16 @@
}
}
}
.add-dp{
a {
color: #0097e0;
.iconfont {
font-size: 18px;
vertical-align: middle;
display: inline-block;
margin-top: 2px;
}
}
}
}
</style>
......@@ -668,26 +668,21 @@ JSP.prototype.saveStore = function () {
/**
* Event processing
*/
JSP.prototype.handleEvent = function () {
this.JspInstance.bind('beforeDrop', function (info) {
let sourceId = info['sourceId']// 出
let targetId = info['targetId']// 入
/**
* Recursive search for nodes
*/
let recursiveVal
const recursiveTargetarr = (arr, targetId) => {
for (var i in arr) {
for (let i in arr) {
if (arr[i] === targetId) {
recursiveVal = targetId
} else {
let recTargetarrArr = rtTargetarrArr(arr[i])
if (recTargetarrArr.length) {
recursiveTargetarr(recTargetarrArr, targetId)
} else {
return recursiveTargetarr(targetId)
}
recursiveTargetarr(rtTargetarrArr(arr[i]), targetId)
}
}
return recursiveVal
......@@ -700,7 +695,6 @@ JSP.prototype.handleEvent = function () {
// Recursive form to find if the target Targetarr has a sourceId
if (recursiveTargetarr(rtTargetarrArr(sourceId), targetId)) {
// setRecursiveVal(null)
return false
}
......
......@@ -24,8 +24,8 @@ import store from '@/conf/home/store'
* Node, to array
*/
const rtTargetarrArr = (id) => {
let a = $(`#${id}`).attr('data-targetarr')
return a ? a.split(',') : []
let ids = $(`#${id}`).attr('data-targetarr')
return ids ? ids.split(',') : []
}
/**
......
......@@ -138,8 +138,8 @@
<style lang="scss" rel="stylesheet/scss">
.udp-model {
width: 616px;
min-height: 326px;
width: 624px;
min-height: 420px;
background: #fff;
border-radius: 3px;
padding:20px 0 ;
......@@ -182,6 +182,14 @@
}
.content {
padding-bottom: 50px;
.user-def-params-model {
.add {
a {
color: #0097e0;
}
}
}
}
}
</style>
<template>
<div class="variable-model">
<template v-if="list">
<div class="list">
<div class="name"><i class="fa fa-code"></i><b style="padding-top: 3px;display: inline-block">{{$t('Global parameters')}}</b></div>
<div class="var-cont">
<x-button size="xsmall" type="ghost" v-for="(item,$index) in list.globalParams" @click="_copy('gbudp-' + $index)" :data-clipboard-text="item.prop + ' = ' +item.value" :class="'gbudp-' + $index"><b style="color: #2A455B;">{{item.prop}}</b> = {{item.value}}</x-button>
<template v-for="(item,$index) in list.globalParams">
<x-button
size="xsmall"
type="ghost"
@click="_copy('gbudp-' + $index)"
:data-clipboard-text="item.prop + ' = ' +item.value"
:class="'gbudp-' + $index">
<b style="color: #2A455B;">{{item.prop}}</b> = {{item.value}}
</x-button>
</template>
</div>
</div>
<div class="list" style="height: 30px;">
......@@ -14,15 +24,25 @@
</div>
<div class="list list-t" v-for="(item,key,$index) in list.localParams">
<div class="task-name">Task({{$index}}):{{key}}</div>
<div class="var-cont" v-if="item.length">
<template v-for="(el,index) in item">
<x-button size="xsmall" type="ghost" @click="_copy('copy-part-' + index)" :data-clipboard-text="_rtClipboard(el)" :class="'copy-part-' + index">
<span v-for="(e,k,i) in el"><b style="color: #2A455B;">{{k}}</b> = {{e}} </span>
<div class="var-cont" v-if="item.localParamsList.length">
<template v-for="(el,index) in item.localParamsList">
<x-button size="xsmall" type="ghost" @click="_copy('copy-part-' + index)" :data-clipboard-text="_rtClipboard(el,item.taskType)" :class="'copy-part-' + index">
<span v-for="(e,k,i) in el">
<template v-if="item.taskType === 'SQL' || item.taskType === 'PROCEDURE'">
<template v-if="(k !== 'direct' && k !== 'type')">
<b style="color: #2A455B;">{{k}}</b> = {{e}}
</template>
</template>
<template v-else>
<b style="color: #2A455B;">{{k}}</b> = {{e}}
</template>
</span>
</x-button>
</template>
</div>
</div>
</div>
</template>
</div>
</template>
<script>
import i18n from '@/module/i18n'
......@@ -71,10 +91,16 @@
/**
* Copyed text processing
*/
_rtClipboard (el) {
_rtClipboard (el, taskType) {
let arr = []
Object.keys(el).forEach((key) => {
arr.push(`${key}=${el[key]}`)
if (taskType === 'SQL' || taskType === 'PROCEDURE') {
if (key !== 'direct' && key !== 'type') {
arr.push(`${key}=${el[key]}`)
}
} else {
arr.push(`${key}=${el[key]}`)
}
})
return arr.join(' ')
}
......
<template>
<div class="index-model">
index
<div class="main-layout-box">
<m-secondary-menu :type="'monitor'"></m-secondary-menu>
<router-view></router-view>
</div>
</template>
<script>
import mSecondaryMenu from '@/module/components/secondaryMenu/secondaryMenu'
export default {
name: 'monitor-index',
data () {
return {}
},
props: {},
methods: {},
watch: {},
beforeCreate () {
},
created () {
},
beforeMount () {
},
mounted () {
},
beforeUpdate () {
},
updated () {
},
beforeDestroy () {
},
destroyed () {
},
computed: {},
components: {}
}
</script>
<style lang="scss" rel="stylesheet/scss">
.index-model {
components: { mSecondaryMenu }
}
</style>
</script>
\ No newline at end of file
<template>
<m-list-construction title="Alert服务">
<template slot="content">
<template v-if="masterList.length">
<m-list :list="masterList"></m-list>
</template>
<template v-if="!masterList.length">
<m-no-data></m-no-data>
</template>
<m-spin :is-spin="isLoading" ></m-spin>
</template>
</m-list-construction>
</template>
<script>
import { mapActions } from 'vuex'
import mList from './_source/list'
import mSpin from '@/module/components/spin/spin'
import mNoData from '@/module/components/noData/noData'
import mListConstruction from '@/module/components/listConstruction/listConstruction'
export default {
name: 'servers-alert',
data () {
return {
pageSize: 10,
pageNo: 1,
totalPage: null,
searchVal: '',
isLoading: false,
masterList: []
}
},
props: {},
methods: {
...mapActions('security', ['getProcessMasterList'])
},
watch: {},
created () {
this.isLoading = true
this.getProcessMasterList().then(res => {
this.masterList = res.data
this.isLoading = false
})
},
mounted () {
},
components: { mList, mListConstruction, mSpin, mNoData }
}
</script>
<template>
<div class="apiserver-model">
apiserver
</div>
</template>
<script>
export default {
name: 'apiserver',
data () {
return {}
},
props: {},
methods: {},
watch: {},
beforeCreate () {
},
created () {
},
beforeMount () {
},
mounted () {
},
beforeUpdate () {
},
updated () {
},
beforeDestroy () {
},
destroyed () {
},
computed: {},
components: {}
}
</script>
<style lang="scss" rel="stylesheet/scss">
.apiserver-model {
}
</style>
......@@ -13,7 +13,7 @@
</template>
<script>
import { mapActions } from 'vuex'
import mList from '../../_source/list'
import mList from './_source/list'
import mSpin from '@/module/components/spin/spin'
import mNoData from '@/module/components/noData/noData'
import mListConstruction from '@/module/components/listConstruction/listConstruction'
......
<template>
<div class="mysql-model">
mysql
</div>
</template>
<script>
export default {
name: 'mysql',
data () {
return {}
},
props: {},
methods: {},
watch: {},
beforeCreate () {
},
created () {
},
beforeMount () {
},
mounted () {
},
beforeUpdate () {
},
updated () {
},
beforeDestroy () {
},
destroyed () {
},
computed: {},
components: {}
}
</script>
<style lang="scss" rel="stylesheet/scss">
.mysql-model {
}
</style>
<template>
<div class="rpcserver-model">
rpcserver
</div>
</template>
<script>
export default {
name: 'rpcserver',
data () {
return {}
},
props: {},
methods: {},
watch: {},
beforeCreate () {
},
created () {
},
beforeMount () {
},
mounted () {
},
beforeUpdate () {
},
updated () {
},
beforeDestroy () {
},
destroyed () {
},
computed: {},
components: {}
}
</script>
<style lang="scss" rel="stylesheet/scss">
.rpcserver-model {
}
</style>
......@@ -13,7 +13,7 @@
</template>
<script>
import { mapActions } from 'vuex'
import mList from '../../_source/list'
import mList from './_source/list'
import mSpin from '@/module/components/spin/spin'
import mNoData from '@/module/components/noData/noData'
import mListConstruction from '@/module/components/listConstruction/listConstruction'
......
<template>
<div class="zookeeper-model">
zookeeper
</div>
</template>
<script>
export default {
name: 'zookeeper',
data () {
return {}
},
props: {},
methods: {},
watch: {},
beforeCreate () {
},
created () {
},
beforeMount () {
},
mounted () {
},
beforeUpdate () {
},
updated () {
},
beforeDestroy () {
},
destroyed () {
},
computed: {},
components: {}
}
</script>
<style lang="scss" rel="stylesheet/scss">
.zookeeper-model {
}
</style>
<template>
<router-view></router-view>
</template>
<script>
export default {
name: 'servers-index'
}
</script>
......@@ -24,7 +24,7 @@
<th>
<span>更新时间</span>
</th>
<th width="120">
<th width="70">
<span>{{$t('Operation')}}</span>
</th>
</tr>
......
......@@ -317,35 +317,6 @@ const router = new Router({
meta: {
title: `${i18n.$t('Queue manage')}`
}
},
{
path: '/security/servers',
name: 'servers-manage',
component: resolve => require(['../pages/security/pages/servers/index'], resolve),
meta: {
title: `${i18n.$t('Servers manage')}`
},
redirect: {
name: 'servers-master'
},
children: [
{
path: '/security/servers/master',
name: 'servers-master',
component: resolve => require(['../pages/security/pages/servers/pages/master/index'], resolve),
meta: {
title: `${i18n.$t('Service-Master')}`
}
},
{
path: '/security/servers/worker',
name: 'servers-worker',
component: resolve => require(['../pages/security/pages/servers/pages/worker/index'], resolve),
meta: {
title: `${i18n.$t('Service-Worker')}`
}
}
]
}
]
},
......@@ -385,6 +356,75 @@ const router = new Router({
}
}
]
},
{
path: '/monitor',
name: 'monitor',
component: resolve => require(['../pages/monitor/index'], resolve),
meta: {
title: `monitor`
},
redirect: {
name: 'servers-master'
},
children: [
{
path: '/monitor/servers/master',
name: 'servers-master',
component: resolve => require(['../pages/monitor/pages/servers/master'], resolve),
meta: {
title: `${i18n.$t('Service-Master')}`
}
},
{
path: '/monitor/servers/worker',
name: 'servers-worker',
component: resolve => require(['../pages/monitor/pages/servers/worker'], resolve),
meta: {
title: `${i18n.$t('Service-Worker')}`
}
},
{
path: '/monitor/servers/alert',
name: 'servers-alert',
component: resolve => require(['../pages/monitor/pages/servers/alert'], resolve),
meta: {
title: `alert`
}
},
{
path: '/monitor/servers/rpcserver',
name: 'servers-rpcserver',
component: resolve => require(['../pages/monitor/pages/servers/rpcserver'], resolve),
meta: {
title: `rpcserver`
}
},
{
path: '/monitor/servers/zookeeper',
name: 'servers-zookeeper',
component: resolve => require(['../pages/monitor/pages/servers/zookeeper'], resolve),
meta: {
title: `zookeeper`
}
},
{
path: '/monitor/servers/apiserver',
name: 'servers-apiserver',
component: resolve => require(['../pages/monitor/pages/servers/apiserver'], resolve),
meta: {
title: `apiserver`
}
},
{
path: '/monitor/servers/mysql',
name: 'servers-mysql',
component: resolve => require(['../pages/monitor/pages/servers/mysql'], resolve),
meta: {
title: `mysql`
}
}
]
}
]
})
......
......@@ -23,7 +23,7 @@ let menu = {
projects: [
{
name: `${i18n.$t('Project Home')}`,
id: 1,
id: 0,
path: 'projects-index',
isOpen: true,
disabled: true,
......@@ -32,7 +32,7 @@ let menu = {
},
{
name: `${i18n.$t('Process')}`,
id: 2,
id: 1,
path: '',
isOpen: true,
disabled: true,
......@@ -41,31 +41,31 @@ let menu = {
{
name: `${i18n.$t('Process definition')}`,
path: 'definition',
id: 1,
id: 0,
disabled: true
},
{
name: `${i18n.$t('Process Instance')}`,
path: 'instance',
id: 2,
id: 1,
disabled: true
},
{
name: `${i18n.$t('Task Instance')}`,
path: 'task-instance',
id: 3,
id: 2,
disabled: true
},
{
name: `${i18n.$t('Task record')}`,
path: 'task-record',
id: 4,
id: 3,
disabled: config.recordSwitch
},
{
name: `${i18n.$t('History task record')}`,
path: 'history-task-record',
id: 5,
id: 4,
disabled: config.recordSwitch
}
]
......@@ -75,7 +75,7 @@ let menu = {
security: [
{
name: `${i18n.$t('Tenant Manage')}`,
id: 1,
id: 0,
path: 'tenement-manage',
isOpen: true,
disabled: true,
......@@ -93,7 +93,7 @@ let menu = {
},
{
name: `${i18n.$t('Warning group manage')}`,
id: 1,
id: 2,
path: 'warning-groups-manage',
isOpen: true,
disabled: true,
......@@ -102,40 +102,18 @@ let menu = {
},
{
name: `${i18n.$t('Queue manage')}`,
id: 1,
id: 3,
path: 'queue-manage',
isOpen: true,
disabled: true,
icon: 'fa-recycle',
children: []
},
{
name: `${i18n.$t('Servers manage')}`,
id: 1,
path: '',
isOpen: true,
disabled: true,
icon: 'fa-server',
children: [
{
name: 'master',
path: 'servers-master',
id: 1,
disabled: true
},
{
name: 'worker',
path: 'servers-worker',
id: 2,
disabled: true
}
]
}
],
resource: [
{
name: `${i18n.$t('File Manage')}`,
id: 1,
id: 0,
path: 'file',
isOpen: true,
icon: 'fa-files-o',
......@@ -153,13 +131,13 @@ let menu = {
{
name: `${i18n.$t('Resource manage')}`,
path: 'resource-udf-resource',
id: 1,
id: 0,
disabled: true
},
{
name: `${i18n.$t('Function manage')}`,
path: 'resource-udf-function',
id: 2,
id: 1,
disabled: true
}
]
......@@ -193,6 +171,60 @@ let menu = {
children: [],
disabled: !Permissions.getAuth()
}
],
monitor: [
{
name: `${i18n.$t('Servers manage')}`,
id: 0,
path: '',
isOpen: true,
disabled: true,
icon: 'fa-server',
children: [
{
name: 'Master',
path: 'servers-master',
id: 0,
disabled: true
},
{
name: 'Worker',
path: 'servers-worker',
id: 1,
disabled: true
},
{
name: 'Alert',
path: 'servers-alert',
id: 2,
disabled: true
},
{
name: 'RpcServer',
path: 'servers-rpcserver',
id: 3,
disabled: true
},
{
name: 'Zookeeper',
path: 'servers-zookeeper',
id: 4,
disabled: true
},
{
name: 'ApiServer',
path: 'servers-apiserver',
id: 5,
disabled: true
},
{
name: 'Mysql',
path: 'servers-mysql',
id: 6,
disabled: true
}
]
}
]
}
......
......@@ -295,6 +295,7 @@ export default {
'Waiting for dependence': '等待依赖',
'Start': '运行',
'Copy': '复制节点',
'Delete': '删除',
'Please enter keyword': '请输入关键词',
'File Upload': '文件上传',
'Drag the file into the current upload window': '请将文件拖拽到当前上传窗口内!',
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册