diff --git a/.github/workflows/ci_frontend.yml b/.github/workflows/ci_frontend.yml
index b8e11252c8..1feaabaeb3 100644
--- a/.github/workflows/ci_frontend.yml
+++ b/.github/workflows/ci_frontend.yml
@@ -52,7 +52,6 @@ jobs:
npm install
npm run lint
npm run build
-
License-check:
runs-on: ubuntu-latest
steps:
@@ -68,4 +67,4 @@ jobs:
with:
java-version: 1.8
- name: Check
- run: mvn -B apache-rat:check
+ run: mvn -B apache-rat:check
\ No newline at end of file
diff --git a/dolphinscheduler-dist/release-docs/LICENSE b/dolphinscheduler-dist/release-docs/LICENSE
index 038eea9450..27bbaedde0 100644
--- a/dolphinscheduler-dist/release-docs/LICENSE
+++ b/dolphinscheduler-dist/release-docs/LICENSE
@@ -490,6 +490,7 @@ MIT licenses
clipboard 2.0.1: https://github.com/zenorocha/clipboard.js MIT
codemirror 5.43.0: https://github.com/codemirror/CodeMirror MIT
dayjs 1.7.8: https://github.com/iamkun/dayjs MIT
+ element-ui 2.13.2: https://github.com/ElemeFE/element MIT
html2canvas 0.5.0-beta4: https://github.com/niklasvh/html2canvas MIT
jquery 3.3.1: https://github.com/jquery/jquery MIT
jquery-ui 1.12.1: https://github.com/jquery/jquery-ui MIT
diff --git a/dolphinscheduler-dist/release-docs/licenses/ui-licenses/LICENSE-element-ui b/dolphinscheduler-dist/release-docs/licenses/ui-licenses/LICENSE-element-ui
new file mode 100644
index 0000000000..4b275d033b
--- /dev/null
+++ b/dolphinscheduler-dist/release-docs/licenses/ui-licenses/LICENSE-element-ui
@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) 2016-present ElemeFE
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
\ No newline at end of file
diff --git a/dolphinscheduler-ui/build/config.js b/dolphinscheduler-ui/build/config.js
index 2800115d80..11bbec550f 100644
--- a/dolphinscheduler-ui/build/config.js
+++ b/dolphinscheduler-ui/build/config.js
@@ -207,7 +207,7 @@ const baseConfig = {
'jquery':'jquery/dist/jquery.min.js',
'jquery-ui': 'jquery-ui'
},
- extensions: ['.js', 'json', '.vue', '.scss']
+ extensions: ['*', '.js', 'json', '.vue', '.scss']
},
plugins: [
new VueLoaderPlugin(),
diff --git a/dolphinscheduler-ui/package.json b/dolphinscheduler-ui/package.json
index 9624fa6212..8a9291c43d 100644
--- a/dolphinscheduler-ui/package.json
+++ b/dolphinscheduler-ui/package.json
@@ -13,7 +13,6 @@
},
"dependencies": {
"@riophae/vue-treeselect": "^0.4.0",
- "ans-ui": "1.1.9",
"axios": "^0.16.2",
"bootstrap": "3.3.7",
"canvg": "1.5.1",
@@ -23,6 +22,8 @@
"dagre": "^0.8.5",
"dayjs": "^1.7.8",
"echarts": "4.1.0",
+ "element-ui": "2.13.2",
+ "font-awesome": "^4.7.0",
"html2canvas": "^0.5.0-beta4",
"jquery": "3.3.1",
"jquery-ui": "^1.12.1",
@@ -31,7 +32,7 @@
"lodash": "^4.17.11",
"normalize.css": "^8.0.1",
"vue": "^2.5.17",
- "vue-router": "2.7.0",
+ "vue-router": "^3.0.0",
"vuex": "^3.0.0",
"vuex-router-sync": "^5.0.0"
},
@@ -65,6 +66,7 @@
"html-webpack-plugin": "^3.2.0",
"mini-css-extract-plugin": "^0.8.2",
"node-sass": "^4.14.1",
+ "pack": "^2.2.0",
"postcss-loader": "^3.0.0",
"progress-bar-webpack-plugin": "^1.12.1",
"rimraf": "^2.6.2",
diff --git a/dolphinscheduler-ui/pom.xml b/dolphinscheduler-ui/pom.xml
index 8e644de265..1263502cc3 100644
--- a/dolphinscheduler-ui/pom.xml
+++ b/dolphinscheduler-ui/pom.xml
@@ -203,5 +203,4 @@
-
-
+
\ No newline at end of file
diff --git a/dolphinscheduler-ui/src/js/conf/home/index.js b/dolphinscheduler-ui/src/js/conf/home/index.js
index efec218b30..1324705d99 100644
--- a/dolphinscheduler-ui/src/js/conf/home/index.js
+++ b/dolphinscheduler-ui/src/js/conf/home/index.js
@@ -18,6 +18,9 @@
// The Vue build version to load with the `import` command
// (runtime-only or standalone) has been set in webpack.base.conf with an alias.
import Vue from 'vue'
+import ElementUI from 'element-ui'
+import locale from 'element-ui/lib/locale/lang/en'
+import 'element-ui/lib/theme-chalk/index.css'
import App from './App'
import router from './router'
import store from './store'
@@ -27,20 +30,20 @@ import Chart from '@/module/ana-charts'
import '@/module/filter/formatDate'
import themeData from '@/module/echarts/themeData.json'
import Permissions from '@/module/permissions'
-import 'ans-ui/lib/ans-ui.min.css'
-import ans from 'ans-ui/lib/ans-ui.min'
-import en_US from 'ans-ui/lib/locale/en' // eslint-disable-line
import 'sass/conf/home/index.scss'
import 'bootstrap/dist/css/bootstrap.min.css'
import 'bootstrap/dist/js/bootstrap.min.js'
import 'canvg/dist/browser/canvg.min.js'
+import 'font-awesome/css/font-awesome.min.css'
// Component internationalization
-const useOpt = i18n.globalScope.LOCALE === 'en_US' ? { locale: en_US } : {}
+const useOpt = i18n.globalScope.LOCALE === 'en_US' ? { locale: locale } : {}
+
+i18n.globalScope.LOCALE === 'en_US' ? Vue.use(ElementUI, { locale }) : Vue.use(ElementUI)
// Vue.use(ans)
-Vue.use(ans, useOpt)
+Vue.use(useOpt)
sync(store, router)
diff --git a/dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/config.js b/dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/config.js
index 18fbd94341..f759496804 100755
--- a/dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/config.js
+++ b/dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/config.js
@@ -29,31 +29,31 @@ const toolOper = (dagThis) => {
return [
{
code: 'pointer',
- icon: 'ans-icon-pointer',
+ icon: 'el-icon-thumb',
disable: disabled,
desc: `${i18n.$t('Drag Nodes and Selected Items')}`
},
{
code: 'line',
- icon: 'ans-icon-slash',
+ icon: 'el-icon-top-right',
disable: disabled,
desc: `${i18n.$t('Select Line Connection')}`
},
{
code: 'remove',
- icon: 'ans-icon-trash',
+ icon: 'el-icon-delete',
disable: disabled,
desc: `${i18n.$t('Delete selected lines or nodes')}`
},
{
code: 'download',
- icon: 'ans-icon-download',
+ icon: 'el-icon-download',
disable: !dagThis.type,
desc: `${i18n.$t('Download')}`
},
{
code: 'screen',
- icon: 'ans-icon-max',
+ icon: 'el-icon-rank',
disable: false,
desc: `${i18n.$t('Full Screen')}`
}
@@ -150,98 +150,98 @@ const tasksState = {
id: 0,
desc: `${i18n.$t('Submitted successfully')}`,
color: '#A9A9A9',
- icoUnicode: 'ans-icon-dot-circle',
+ icoUnicode: 'fa-dot-circle-o',
isSpin: false
},
RUNNING_EXECUTION: {
id: 1,
desc: `${i18n.$t('Executing')}`,
color: '#0097e0',
- icoUnicode: 'ans-icon-gear',
+ icoUnicode: 'el-icon-s-tools',
isSpin: true
},
READY_PAUSE: {
id: 2,
desc: `${i18n.$t('Ready to pause')}`,
color: '#07b1a3',
- icoUnicode: 'ans-icon-pause-solid',
+ icoUnicode: 'fa-pause-circle',
isSpin: false
},
PAUSE: {
id: 3,
desc: `${i18n.$t('Pause')}`,
color: '#057c72',
- icoUnicode: 'ans-icon-pause',
+ icoUnicode: 'el-icon-video-pause',
isSpin: false
},
READY_STOP: {
id: 4,
desc: `${i18n.$t('Ready to stop')}`,
color: '#FE0402',
- icoUnicode: 'ans-icon-coin',
+ icoUnicode: 'fa-stop-circle-o',
isSpin: false
},
STOP: {
id: 5,
desc: `${i18n.$t('Stop')}`,
color: '#e90101',
- icoUnicode: 'ans-icon-stop',
+ icoUnicode: 'fa-stop-circle',
isSpin: false
},
FAILURE: {
id: 6,
desc: `${i18n.$t('failed')}`,
color: '#000000',
- icoUnicode: 'ans-icon-fail-empty',
+ icoUnicode: 'el-icon-circle-close',
isSpin: false
},
SUCCESS: {
id: 7,
desc: `${i18n.$t('success')}`,
color: '#33cc00',
- icoUnicode: 'ans-icon-success-empty',
+ icoUnicode: 'el-icon-circle-check',
isSpin: false
},
NEED_FAULT_TOLERANCE: {
id: 8,
desc: `${i18n.$t('Need fault tolerance')}`,
color: '#FF8C00',
- icoUnicode: 'ans-icon-pen',
+ icoUnicode: 'el-icon-edit',
isSpin: false
},
KILL: {
id: 9,
desc: `${i18n.$t('kill')}`,
color: '#a70202',
- icoUnicode: 'ans-icon-minus-circle-empty',
+ icoUnicode: 'el-icon-remove-outline',
isSpin: false
},
WAITTING_THREAD: {
id: 10,
desc: `${i18n.$t('Waiting for thread')}`,
color: '#912eed',
- icoUnicode: 'ans-icon-sand-clock',
+ icoUnicode: 'fa-hourglass-end',
isSpin: false
},
WAITTING_DEPEND: {
id: 11,
desc: `${i18n.$t('Waiting for dependence')}`,
color: '#5101be',
- icoUnicode: 'ans-icon-dependence',
+ icoUnicode: 'fa-window-restore',
isSpin: false
},
DELAY_EXECUTION: {
id: 12,
desc: `${i18n.$t('Delay execution')}`,
color: '#5102ce',
- icoUnicode: 'ans-icon-coin',
+ icoUnicode: 'fa-stop-circle-o',
isSpin: false
},
FORCED_SUCCESS: {
id: 13,
desc: `${i18n.$t('Forced success')}`,
color: '#5102ce',
- icoUnicode: 'ans-icon-success-solid',
+ icoUnicode: 'el-icon-success',
isSpin: false
}
}
diff --git a/dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/dag.js b/dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/dag.js
index 937b7391ef..e98cda22fd 100644
--- a/dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/dag.js
+++ b/dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/dag.js
@@ -15,14 +15,13 @@
* limitations under the License.
*/
import Vue from 'vue'
-let v = new Vue()
import _ from 'lodash'
import i18n from '@/module/i18n'
import { jsPlumb } from 'jsplumb'
import JSP from './plugIn/jsPlumbHandle'
import DownChart from './plugIn/downChart'
import store from '@/conf/home/store'
-import dagre from "dagre"
+import dagre from 'dagre'
/**
* Prototype method
@@ -53,7 +52,7 @@ Dag.prototype.setConfig = function (o) {
*/
Dag.prototype.create = function () {
const self = this
- let plumbIns = jsPlumb.getInstance()
+ const plumbIns = jsPlumb.getInstance()
plumbIns.reset()
plumbIns.ready(() => {
JSP.init({
@@ -78,7 +77,7 @@ Dag.prototype.create = function () {
* Action event on the right side of the toolbar
*/
Dag.prototype.toolbarEvent = function ({ item, code, is }) {
- let self = this
+ const self = this
switch (code) {
case 'pointer':
JSP.handleEventPointer(is)
@@ -93,21 +92,15 @@ Dag.prototype.toolbarEvent = function ({ item, code, is }) {
JSP.handleEventScreen({ item, is })
break
case 'download':
- v.$modal.dialog({
- width: 350,
- closable: false,
- showMask: true,
- maskClosable: true,
- title: i18n.$t('Download'),
- content: i18n.$t('Please confirm whether the workflow has been saved before downloading'),
- ok: {
- handle (e) {
- DownChart.download({
- dagThis: self.dag
- })
- }
- },
- cancel: {}
+ Vue.prototype.$confirm(`${i18n.$t('Please confirm whether the workflow has been saved before downloading')}`, `${i18n.$t('Download')}`, {
+ confirmButtonText: `${i18n.$t('Confirm')}`,
+ cancelButtonText: `${i18n.$t('Cancel')}`,
+ type: 'warning'
+ }).then(() => {
+ DownChart.download({
+ dagThis: self.dag
+ })
+ }).catch(() => {
})
break
}
@@ -130,7 +123,7 @@ Dag.prototype.backfill = function (arg) {
for (const i in store.state.dag.connects) {
const connect = store.state.dag.connects[i]
- g.setEdge(connect['endPointSourceId'], connect['endPointTargetId'])
+ g.setEdge(connect.endPointSourceId, connect.endPointTargetId)
}
dagre.layout(g)
@@ -166,7 +159,7 @@ Dag.prototype.backfill = function (arg) {
})
})
} else {
- let plumbIns = jsPlumb.getInstance()
+ const plumbIns = jsPlumb.getInstance()
plumbIns.reset()
plumbIns.ready(() => {
JSP.init({
diff --git a/dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/dag.scss b/dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/dag.scss
index 88f2d11c8f..cc9ae76367 100755
--- a/dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/dag.scss
+++ b/dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/dag.scss
@@ -277,8 +277,9 @@ svg path:hover {
background: #fff;
border-radius: 3px;
box-shadow: 0 2px 4px 1px rgba(0, 0, 0, 0.1);
- padding: 4px 0;
+ padding: 4px 4px;
visibility:hidden;
+ z-index: 10000;
a {
height: 30px;
line-height: 28px;
diff --git a/dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/dag.vue b/dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/dag.vue
index 1880adc51b..a47d729baa 100755
--- a/dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/dag.vue
+++ b/dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/dag.vue
@@ -34,31 +34,33 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -159,6 +204,7 @@
import disabledState from '@/module/mixin/disabledState'
import { mapActions, mapState, mapMutations } from 'vuex'
import mVersions from '../../projects/pages/definition/pages/list/_source/versions'
+ import mStart from '../../projects/pages/definition/pages/list/_source/start'
let eventModel
@@ -179,7 +225,39 @@
isLoading: false,
taskId: null,
arg: false,
-
+ versionData: {
+ processDefinition: {
+ id: null,
+ version: '',
+ state: ''
+ },
+ processDefinitionVersions: [],
+ total: null,
+ pageNo: null,
+ pageSize: null
+ },
+ drawer: false,
+ nodeData: {
+ id: null,
+ taskType: '',
+ self: {},
+ preNode: [],
+ rearList: [],
+ instanceId: null
+ },
+ nodeDrawer: false,
+ lineData: {
+ id: null,
+ sourceId: '',
+ targetId: ''
+ },
+ lineDrawer: false,
+ udpDrawer: false,
+ dialogVisible: false,
+ startDialog: false,
+ startData: {},
+ startNodeList: '',
+ sourceType: ''
}
},
mixins: [disabledState],
@@ -190,7 +268,18 @@
methods: {
...mapActions('dag', ['saveDAGchart', 'updateInstance', 'updateDefinition', 'getTaskState', 'switchProcessDefinitionVersion', 'getProcessDefinitionVersionsPage', 'deleteProcessDefinitionVersion']),
...mapMutations('dag', ['addTasks', 'cacheTasks', 'resetParams', 'setIsEditDag', 'setName', 'addConnects']),
-
+ startRunning(item,startNodeList,sourceType) {
+ this.startData = item
+ this.startNodeList.startNodeList
+ this.sourceType = sourceType
+ this.startDialog = true
+ },
+ onUpdateStart() {
+ this.startDialog = false
+ },
+ closeStart() {
+ this.startDialog = false
+ },
// DAG automatic layout
dagAutomaticLayout() {
if(this.store.state.dag.isEditDag) {
@@ -379,7 +468,12 @@
* @param saveEditDAGChart => Process definition editing
*/
this[this.type === 'instance' ? 'updateInstance' : 'updateDefinition'](this.urlParam.id).then(res => {
- this.$message.success(res.msg)
+ // this.$message.success(res.msg)
+ this.$message({
+ message: res.msg,
+ type: 'success',
+ offset: 80
+ })
this.spinnerLoading = false
// Jump process definition
if (this.type === 'instance') {
@@ -439,33 +533,12 @@
}
return true
},
- /**
- * Global parameter
- * @param Promise
- */
- _udpTopFloorPop () {
- return new Promise((resolve, reject) => {
- let modal = this.$modal.dialog({
- closable: false,
- showMask: true,
- escClose: true,
- className: 'v-modal-custom',
- transitionName: 'opacityp',
- render (h) {
- return h(mUdp, {
- on: {
- onUdp () {
- modal.remove()
- resolve()
- },
- close () {
- modal.remove()
- }
- }
- })
- }
- })
- })
+ onUdpDialog () {
+ this._save()
+ this.dialogVisible = false
+ },
+ closeDialog () {
+ this.dialogVisible = false
},
/**
* Save chart
@@ -476,11 +549,7 @@
this.$message.warning(`${i18n.$t('Failed to create node to save')}`)
return
}
-
- // Global parameters (optional)
- this._udpTopFloorPop().then(() => {
- return this._save()
- })
+ this.dialogVisible = true
},
/**
* Return to the previous child node
@@ -540,44 +609,46 @@
_toggleParam () {
findComponentDownward(this.$root, `starting-params-dag-index`)._toggleParam()
},
+ addLineInfo ({ item, fromThis }) {
+ this.addConnects(item)
+ this.lineDrawer = false
+ },
+ cancel ({fromThis}) {
+ this.lineDrawer = false
+ },
+
/**
* Create a node popup layer
* @param Object id
*/
_createLineLabel({id, sourceId, targetId}) {
- // $('#jsPlumb_2_50').text('111')
- let self = this
- self.$modal.destroy()
- const removeNodesEvent = (fromThis) => {
- // Manually destroy events inside the component
- fromThis.$destroy()
- // Close the popup
- eventModel.remove()
- }
- eventModel = this.$drawer({
- className: 'dagMask',
- render (h) {
- return h(mFormLineModel,{
- on: {
- addLineInfo ({ item, fromThis }) {
- self.addConnects(item)
- setTimeout(() => {
- removeNodesEvent(fromThis)
- }, 100)
- },
- cancel ({fromThis}) {
- removeNodesEvent(fromThis)
- }
- },
- props: {
- id: id,
- sourceId: sourceId,
- targetId: targetId
- }
- })
- }
- })
+ this.lineData.id = id
+ this.lineData.sourceId = sourceId
+ this.lineData.targetId = targetId
+ this.lineDrawer = true
},
+
+ addTaskInfo ({ item, fromThis }) {
+ this.addTasks(item)
+ this.nodeDrawer = false
+ },
+
+ cacheTaskInfo({item, fromThis}) {
+ this.cacheTasks(item)
+ },
+
+ close ({ item,flag, fromThis }) {
+ this.addTasks(item)
+ // Edit status does not allow deletion of nodes
+ if (flag) {
+ jsPlumb.remove(this.nodeData.id)
+ }
+ this.nodeDrawer = false
+ },
+ onSubProcess ({ subProcessId, fromThis }) {
+ this._subProcessHandle(subProcessId)
+ },
+
_createNodes ({ id, type }) {
let self = this
let preNode = []
@@ -609,66 +680,19 @@
} else {
preNode = []
}
- if (eventModel) {
- // Close the popup
- eventModel.remove()
- }
-
- const removeNodesEvent = (fromThis) => {
- // Manually destroy events inside the component
- fromThis.$destroy()
- // Close the popup
- eventModel.remove()
- }
this.taskId = id
type = type || self.dagBarId
- eventModel = this.$drawer({
- closable: false,
- direction: 'right',
- escClose: true,
- className: 'dagMask',
- render: h => h(mFormModel, {
- on: {
- addTaskInfo ({ item, fromThis }) {
- self.addTasks(item)
- setTimeout(() => {
- removeNodesEvent(fromThis)
- }, 100)
- },
- /**
- * Cache the item
- * @param item
- * @param fromThis
- */
- cacheTaskInfo({item, fromThis}) {
- self.cacheTasks(item)
- },
- close ({ item,flag, fromThis }) {
- self.addTasks(item)
- // Edit status does not allow deletion of nodes
- if (flag) {
- jsPlumb.remove(id)
- }
-
- removeNodesEvent(fromThis)
- },
- onSubProcess ({ subProcessId, fromThis }) {
- removeNodesEvent(fromThis)
- self._subProcessHandle(subProcessId)
- }
- },
- props: {
- id: id,
- taskType: type,
- self: self,
- preNode: preNode,
- rearList: rearList,
- instanceId: this.$route.params.id
- }
- })
- })
+ this.nodeData.id = id
+ this.nodeData.taskType = type
+ this.nodeData.self = self
+ this.nodeData.preNode = preNode
+ this.nodeData.rearList = rearList
+ this.nodeData.instanceId = this.$route.params.id
+
+ this.nodeDrawer = true
+
},
removeEventModelById ($id) {
if(eventModel && this.taskId == $id){
@@ -676,6 +700,50 @@
}
},
+ /**
+ * switch version in process definition version list
+ *
+ * @param version the version user want to change
+ * @param processDefinitionId the process definition id
+ * @param fromThis fromThis
+ */
+ mVersionSwitchProcessDefinitionVersion({ version, processDefinitionId, fromThis }) {
+ this.$store.state.dag.isSwitchVersion = true
+ this.switchProcessDefinitionVersion({
+ version: version,
+ processDefinitionId: processDefinitionId
+ }).then(res=>{
+ this.$message.success($t('Switch Version Successfully'))
+ this.$router.push({ path: `/projects/definition/list/${processDefinitionId}?_t=${new Date().getTime()}` })
+ }).catch(e => {
+ this.$store.state.dag.isSwitchVersion = false
+ this.$message.error(e.msg || '')
+ })
+ },
+
+ /**
+ * Paging event of process definition versions
+ *
+ * @param pageNo page number
+ * @param pageSize page size
+ * @param processDefinitionId the process definition id of page version
+ * @param fromThis fromThis
+ */
+ mVersionGetProcessDefinitionVersionsPage({ pageNo, pageSize, processDefinitionId, fromThis }) {
+ this.getProcessDefinitionVersionsPage({
+ pageNo: pageNo,
+ pageSize: pageSize,
+ processDefinitionId: processDefinitionId
+ }).then(res=>{
+ this.versionData.processDefinitionVersions = res.data.lists
+ this.versionData.total = res.data.totalCount
+ this.versionData.pageSize = res.data.pageSize
+ this.versionData.pageNo = res.data.currentPage
+ }).catch(e=>{
+ this.$message.error(e.msg || '')
+ })
+ },
+
/**
* query the process definition pagination version
*/
@@ -690,117 +758,15 @@
let total = res.data.totalCount
let pageSize = res.data.pageSize
let pageNo = res.data.currentPage
- if (this.versionsModel) {
- this.versionsModel.remove()
- }
- this.versionsModel = this.$drawer({
- direction: 'right',
- closable: true,
- showMask: true,
- escClose: true,
- render (h) {
- return h(mVersions, {
- on: {
- /**
- * switch version in process definition version list
- *
- * @param version the version user want to change
- * @param processDefinitionId the process definition id
- * @param fromThis fromThis
- */
- mVersionSwitchProcessDefinitionVersion ({ version, processDefinitionId, fromThis }) {
-
- self.$store.state.dag.isSwitchVersion = true
-
- self.switchProcessDefinitionVersion({
- version: version,
- processDefinitionId: processDefinitionId
- }).then(res => {
- self.$message.success($t('Switch Version Successfully'))
- setTimeout(() => {
- fromThis.$destroy()
- self.versionsModel.remove()
- }, 0)
- self.$router.push({ path: `/projects/definition/list/${processDefinitionId}?_t=${new Date().getTime()}` })
- }).catch(e => {
- self.$store.state.dag.isSwitchVersion = false
- self.$message.error(e.msg || '')
- })
- },
-
- /**
- * Paging event of process definition versions
- *
- * @param pageNo page number
- * @param pageSize page size
- * @param processDefinitionId the process definition id of page version
- * @param fromThis fromThis
- */
- mVersionGetProcessDefinitionVersionsPage ({ pageNo, pageSize, processDefinitionId, fromThis }) {
- self.getProcessDefinitionVersionsPage({
- pageNo: pageNo,
- pageSize: pageSize,
- processDefinitionId: processDefinitionId
- }).then(res => {
- fromThis.processDefinitionVersions = res.data.lists
- fromThis.total = res.data.totalCount
- fromThis.pageSize = res.data.pageSize
- fromThis.pageNo = res.data.currentPage
- }).catch(e => {
- self.$message.error(e.msg || '')
- })
- },
-
- /**
- * delete one version of process definition
- *
- * @param version the version need to delete
- * @param processDefinitionId the process definition id user want to delete
- * @param fromThis fromThis
- */
- mVersionDeleteProcessDefinitionVersion ({ version, processDefinitionId, fromThis }) {
- self.deleteProcessDefinitionVersion({
- version: version,
- processDefinitionId: processDefinitionId
- }).then(res => {
- self.$message.success(res.msg || '')
- fromThis.$emit('mVersionGetProcessDefinitionVersionsPage', {
- pageNo: 1,
- pageSize: 10,
- processDefinitionId: processDefinitionId,
- fromThis: fromThis
- })
- }).catch(e => {
- self.$message.error(e.msg || '')
- })
- },
-
- /**
- * remove this drawer
- *
- * @param fromThis
- */
- close ({ fromThis }) {
- setTimeout(() => {
- fromThis.$destroy()
- self.versionsModel.remove()
- }, 0)
- }
- },
- props: {
- processDefinition: {
- id: self.urlParam.id,
- version: self.$store.state.dag.version,
- state: self.releaseState
- },
- processDefinitionVersions: processDefinitionVersions,
- total: total,
- pageNo: pageNo,
- pageSize: pageSize
- }
- })
- }
- })
+ this.versionData.processDefinition.id = this.urlParam.id
+ this.versionData.processDefinition.version = this.$store.state.dag.version
+ this.versionData.processDefinition.state = this.releaseState
+ this.versionData.processDefinitionVersions = processDefinitionVersions
+ this.versionData.total = total
+ this.versionData.pageNo = pageNo
+ this.versionData.pageSize = pageSize
+ this.drawer = true
+
}).catch(e => {
this.$message.error(e.msg || '')
})
@@ -869,10 +835,13 @@
computed: {
...mapState('dag', ['tasks', 'locations', 'connects', 'isEditDag', 'name'])
},
- components: {}
+ components: { mVersions, mFormModel, mFormLineModel, mUdp, mStart }
}
diff --git a/dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/formModel/_source/dependentTimeout.vue b/dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/formModel/_source/dependentTimeout.vue
index 2b2ed78ccc..7d2c711b47 100644
--- a/dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/formModel/_source/dependentTimeout.vue
+++ b/dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/formModel/_source/dependentTimeout.vue
@@ -23,7 +23,7 @@
@@ -35,7 +35,7 @@
@@ -46,22 +46,22 @@
{{$t('Timeout period')}}
-
+
{{$t('Minute')}}
-
+
{{$t('Check interval')}}
-
+
{{$t('Minute')}}
-
+
{{$t('Timeout strategy')}}
-
- {{$t('Timeout failure')}}
-
+
+ {{$t('Timeout failure')}}
+
@@ -73,7 +73,7 @@
@@ -84,17 +84,17 @@
{{$t('Timeout period')}}
-
+
{{$t('Minute')}}
-
+
{{$t('Timeout strategy')}}
-
- {{$t('Timeout alarm')}}
- {{$t('Timeout failure')}}
-
+
+ {{$t('Timeout alarm')}}
+ {{$t('Timeout failure')}}
+
diff --git a/dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/formModel/_source/selectInput.vue b/dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/formModel/_source/selectInput.vue
index 1d3902c83b..297cfaa892 100644
--- a/dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/formModel/_source/selectInput.vue
+++ b/dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/formModel/_source/selectInput.vue
@@ -15,33 +15,34 @@
* limitations under the License.
*/
-
-
-
-
-
-
+
+
+
+
-
-
+
+
+
diff --git a/dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/formModel/tasks/_source/localParams.vue b/dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/formModel/tasks/_source/localParams.vue
index 0bbbb661f4..ea5f299aa8 100644
--- a/dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/formModel/tasks/_source/localParams.vue
+++ b/dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/formModel/tasks/_source/localParams.vue
@@ -20,64 +20,68 @@
v-for="(item,$index) in localParamsList"
:key="item.id"
@click="_getIndex($index)">
-
-
+
-
-
-
-
-
+
+
-
-
-
+
+
-
-
+
-
+
-
+
-
+
diff --git a/dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/formModel/tasks/_source/nodeStatus.vue b/dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/formModel/tasks/_source/nodeStatus.vue
index fe9b28b779..3d6d0e6327 100644
--- a/dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/formModel/tasks/_source/nodeStatus.vue
+++ b/dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/formModel/tasks/_source/nodeStatus.vue
@@ -17,27 +17,27 @@
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
-
-
+
+
+
-
+
-
+
diff --git a/dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/formModel/tasks/_source/resources.vue b/dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/formModel/tasks/_source/resources.vue
index 8b578c770b..99c28164e7 100644
--- a/dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/formModel/tasks/_source/resources.vue
+++ b/dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/formModel/tasks/_source/resources.vue
@@ -16,19 +16,20 @@
*/
-
-
-
-
+
+
diff --git a/dolphinscheduler-ui/src/js/conf/home/pages/monitor/pages/servers/db.vue b/dolphinscheduler-ui/src/js/conf/home/pages/monitor/pages/servers/db.vue
index 873cd4a1e8..123d47bf13 100755
--- a/dolphinscheduler-ui/src/js/conf/home/pages/monitor/pages/servers/db.vue
+++ b/dolphinscheduler-ui/src/js/conf/home/pages/monitor/pages/servers/db.vue
@@ -30,8 +30,8 @@
-
-
+
+
{{$t('Health status')}}
@@ -59,19 +59,6 @@
{{$t('Threads connections')}}
-
diff --git a/dolphinscheduler-ui/src/js/conf/home/pages/monitor/pages/servers/worker.vue b/dolphinscheduler-ui/src/js/conf/home/pages/monitor/pages/servers/worker.vue
index 609987e871..c4e2abd96e 100644
--- a/dolphinscheduler-ui/src/js/conf/home/pages/monitor/pages/servers/worker.vue
+++ b/dolphinscheduler-ui/src/js/conf/home/pages/monitor/pages/servers/worker.vue
@@ -57,6 +57,11 @@
+
+
+
@@ -81,29 +86,21 @@
return {
isLoading: false,
workerList: [],
- color: themeData.color
+ color: themeData.color,
+ drawer: false,
+ zkDirectories: []
}
},
props: {},
methods: {
...mapActions('monitor', ['getWorkerData']),
_showZkDirectories (item) {
- let zkDirectories = []
item.zkDirectories.forEach(zkDirectory => {
- zkDirectories.push({
+ this.zkDirectories.push({
zkDirectory: zkDirectory
})
})
- this.$drawer({
- direction: 'right',
- render (h) {
- return h(zookeeperDirectoriesPopup, {
- props: {
- zkDirectories: zkDirectories
- }
- })
- }
- })
+ this.drawer = true
}
},
watch: {},
diff --git a/dolphinscheduler-ui/src/js/conf/home/pages/projects/pages/_source/conditions/instance/processInstance.vue b/dolphinscheduler-ui/src/js/conf/home/pages/projects/pages/_source/conditions/instance/processInstance.vue
index d4c05cf903..9f32fcf2b6 100644
--- a/dolphinscheduler-ui/src/js/conf/home/pages/projects/pages/_source/conditions/instance/processInstance.vue
+++ b/dolphinscheduler-ui/src/js/conf/home/pages/projects/pages/_source/conditions/instance/processInstance.vue
@@ -18,47 +18,39 @@
-
+
-
-
-
-
-
-
+
+
-
-
-
-
+
-
-
+
+
-
+
-
+
-
+
@@ -86,7 +78,8 @@
host: '',
// executor name
executorName: ''
- }
+ },
+ dataTime: []
}
},
props: {},
@@ -100,21 +93,15 @@
_onChangeStartStop (val) {
this.searchParams.startDate = val[0]
this.searchParams.endDate = val[1]
+ this.dataTime[0] = val[0]
+ this.dataTime[1]= val[1]
},
/**
* change state
*/
_onChangeState (val) {
- this.searchParams.stateType = val.value
+ this.searchParams.stateType = val
},
- /**
- * empty date
- */
- _dateEmpty () {
- this.searchParams.startDate = ''
- this.searchParams.endDate = ''
- this.$refs.datepicker.empty()
- }
},
watch: {
},
diff --git a/dolphinscheduler-ui/src/js/conf/home/pages/projects/pages/_source/conditions/instance/taskInstance.vue b/dolphinscheduler-ui/src/js/conf/home/pages/projects/pages/_source/conditions/instance/taskInstance.vue
index 08f61a8fd0..9e206a3172 100644
--- a/dolphinscheduler-ui/src/js/conf/home/pages/projects/pages/_source/conditions/instance/taskInstance.vue
+++ b/dolphinscheduler-ui/src/js/conf/home/pages/projects/pages/_source/conditions/instance/taskInstance.vue
@@ -18,50 +18,42 @@
-
+
-
-
-
-
-
-
+
+
-
-
-
-
+
-
-
+
+
-
+
-
+
-
+
-
+
@@ -90,7 +82,8 @@
// executor name
executorName: '',
processInstanceName: ''
- }
+ },
+ dataTime: [],
}
},
props: {},
@@ -104,21 +97,15 @@
_onChangeStartStop (val) {
this.searchParams.startDate = val[0]
this.searchParams.endDate = val[1]
+ this.dataTime[0] = val[0]
+ this.dataTime[1]= val[1]
},
/**
* change state
*/
_onChangeState (val) {
- this.searchParams.stateType = val.value
+ this.searchParams.stateType = val
},
- /**
- * empty date
- */
- _dateEmpty () {
- this.searchParams.startDate = ''
- this.searchParams.endDate = ''
- this.$refs.datepicker.empty()
- }
},
watch: {
},
diff --git a/dolphinscheduler-ui/src/js/conf/home/pages/projects/pages/_source/taskRecordList/_source/conditions.vue b/dolphinscheduler-ui/src/js/conf/home/pages/projects/pages/_source/taskRecordList/_source/conditions.vue
index a82bd45b02..fcae664af5 100644
--- a/dolphinscheduler-ui/src/js/conf/home/pages/projects/pages/_source/taskRecordList/_source/conditions.vue
+++ b/dolphinscheduler-ui/src/js/conf/home/pages/projects/pages/_source/taskRecordList/_source/conditions.vue
@@ -18,55 +18,48 @@
-
+
-
-
-
-
-
-
+
+
-
+
-
+
-
-
-
+
-
-
+
+
-
-
-
+
+
-
+
@@ -111,7 +104,8 @@
taskDate: '',
startDate: '',
endDate: ''
- }
+ },
+ dataTime: [],
}
},
props: {},
@@ -124,13 +118,13 @@
*/
_onChangeStartStop (val) {
this.searchParams.startDate = val[0]
- this.searchParams.endDate = val[1]
+ this.searchParams.endDate = val[1]
},
/**
* change state
*/
_onChangeState (val) {
- this.searchParams.state = val.value
+ this.searchParams.state = val
},
/**
* empty date
@@ -141,7 +135,7 @@
this.$refs.datepicker.empty()
},
_onChangeDate (val) {
- this.searchParams.taskDate = val.replace(/-/g, '')
+ this.searchParams.taskDate = val
}
},
created () {
diff --git a/dolphinscheduler-ui/src/js/conf/home/pages/projects/pages/_source/taskRecordList/_source/list.vue b/dolphinscheduler-ui/src/js/conf/home/pages/projects/pages/_source/taskRecordList/_source/list.vue
index a1649a3266..b3173b037b 100644
--- a/dolphinscheduler-ui/src/js/conf/home/pages/projects/pages/_source/taskRecordList/_source/list.vue
+++ b/dolphinscheduler-ui/src/js/conf/home/pages/projects/pages/_source/taskRecordList/_source/list.vue
@@ -17,68 +17,40 @@
-
-
- |
- {{$t('#')}}
- |
-
- {{$t('Task Name')}}
- |
-
- {{$t('Task Date')}}
- |
-
- {{$t('Start Time')}}
- |
-
- {{$t('End Time')}}
- |
-
- {{$t('Duration')}}(s)
- |
-
- {{$t('Source Table')}}
- |
-
- {{$t('Record Number')}}
- |
-
- {{$t('Target Table')}}
- |
-
- {{$t('Record Number')}}
- |
-
- {{$t('State')}}
- |
-
-
- |
- {{parseInt(pageNo === 1 ? ($index + 1) : (($index + 1) + (pageSize * (pageNo - 1))))}}
- |
-
- {{item.procName}}
- |
- {{item.procDate}} |
-
- {{item.startTime | formatDate}}
- -
- |
-
- {{item.endTime | formatDate}}
- -
- |
- {{item.duration}} |
- {{item.sourceTab}} |
-
- {{item.sourceRowCount}}
- |
- {{item.targetTab}} |
- {{item.targetRowCount}} |
- {{item.note}} |
-
-
+
+
+
+
+
+ {{ scope.row.procName }}
+
+ {{ scope.row.procName }}
+
+
+
+
+
+
+ {{scope.row.procDate | formatDate}}
+
+
+
+
+ {{scope.row.startTime | formatDate}}
+
+
+
+
+ {{scope.row.endTime | formatDate}}
+
+
+
+
+
+
+
+
+
diff --git a/dolphinscheduler-ui/src/js/conf/home/pages/projects/pages/_source/taskRecordList/index.vue b/dolphinscheduler-ui/src/js/conf/home/pages/projects/pages/_source/taskRecordList/index.vue
index 08a964ff55..59f097f1a7 100644
--- a/dolphinscheduler-ui/src/js/conf/home/pages/projects/pages/_source/taskRecordList/index.vue
+++ b/dolphinscheduler-ui/src/js/conf/home/pages/projects/pages/_source/taskRecordList/index.vue
@@ -24,7 +24,16 @@
-
+
+
diff --git a/dolphinscheduler-ui/src/js/conf/home/pages/projects/pages/definition/pages/list/_source/email.vue b/dolphinscheduler-ui/src/js/conf/home/pages/projects/pages/definition/pages/list/_source/email.vue
index 2585744198..94fb9b481d 100755
--- a/dolphinscheduler-ui/src/js/conf/home/pages/projects/pages/definition/pages/list/_source/email.vue
+++ b/dolphinscheduler-ui/src/js/conf/home/pages/projects/pages/definition/pages/list/_source/email.vue
@@ -19,9 +19,9 @@
{{item}}
-
+
-
+ class="email-input"
+ ref="emailInput"
+ :style="{width:emailWidth + 'px'}"
+ type="text"
+ v-model="email"
+ :disabled="disabled"
+ :placeholder="$t('Please enter email')"
+ @blur="_emailEnter"
+ @keydown.tab="_emailTab"
+ @keyup.delete="_emailDelete"
+ @keyup.enter="_emailEnter"
+ @keyup.space="_emailEnter"
+ @keyup.186="_emailEnter"
+ @keyup.up="_emailKeyup('up')"
+ @keyup.down="_emailKeyup('down')">
-
+
@@ -299,6 +299,8 @@