Browse Source

[Fix-13418][UI] Remove move-task-definition code (#13441)

* remove move task definition

* remove unused DragOutlined
3.2.0-release
Aaron Wang 2 years ago committed by GitHub
parent
commit
802bf4a2e0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 11
      dolphinscheduler-ui/src/service/modules/process-task-relation/index.ts
  2. 7
      dolphinscheduler-ui/src/service/modules/process-task-relation/types.ts
  3. 8
      dolphinscheduler-ui/src/views/projects/task/definition/batch-task.tsx
  4. 109
      dolphinscheduler-ui/src/views/projects/task/definition/components/move-modal.tsx
  5. 105
      dolphinscheduler-ui/src/views/projects/task/definition/components/use-move.ts
  6. 31
      dolphinscheduler-ui/src/views/projects/task/definition/use-table.ts

11
dolphinscheduler-ui/src/service/modules/process-task-relation/index.ts

@ -21,8 +21,7 @@ import {
PreTaskCodesReq,
PostTaskCodesReq,
TaskCodeReq,
SaveReq,
MoveReq
SaveReq
} from './types'
import { axios } from '@/service/service'
@ -34,14 +33,6 @@ export function save(data: SaveReq, projectCode: ProjectCodeReq): any {
})
}
export function moveRelation(data: MoveReq, projectCode: number): any {
return axios({
url: `/projects/${projectCode}/process-task-relation/move`,
method: 'post',
data
})
}
export function deleteEdge(data: SaveReq): any {
return axios({
url: `/projects/${data.projectCode}/process-task-relation/${data.processDefinitionCode}/${data.preTaskCode}/${data.postTaskCode}`,

7
dolphinscheduler-ui/src/service/modules/process-task-relation/types.ts

@ -40,16 +40,11 @@ interface SaveReq extends ProcessDefinitionCodeReq, ProjectCodeReq {
preTaskCode: string
}
interface MoveReq extends ProcessDefinitionCodeReq, TaskCodeReq {
targetProcessDefinitionCode: string
}
export {
ProjectCodeReq,
ProcessDefinitionCodeReq,
PreTaskCodesReq,
PostTaskCodesReq,
TaskCodeReq,
SaveReq,
MoveReq
SaveReq
}

8
dolphinscheduler-ui/src/views/projects/task/definition/batch-task.tsx

@ -39,7 +39,6 @@ import { useTask } from './use-task'
import { TASK_TYPES_MAP } from '@/store/project/task-type'
import Card from '@/components/card'
import VersionModal from './components/version-modal'
import MoveModal from './components/move-modal'
import TaskModal from '@/views/projects/task/components/node/detail-modal'
import type { INodeData } from './types'
@ -86,7 +85,6 @@ const BatchTaskDefinition = defineComponent({
const onRefresh = () => {
variables.showVersionModalRef = false
variables.showMoveModalRef = false
requestData()
}
const onCreate = () => {
@ -205,12 +203,6 @@ const BatchTaskDefinition = defineComponent({
onConfirm={() => (this.showVersionModalRef = false)}
onRefresh={onRefresh}
/>
<MoveModal
show={this.showMoveModalRef}
row={this.row}
onCancel={() => (this.showMoveModalRef = false)}
onRefresh={onRefresh}
/>
<TaskModal
show={this.taskShow}
data={this.taskData}

109
dolphinscheduler-ui/src/views/projects/task/definition/components/move-modal.tsx

@ -1,109 +0,0 @@
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import { defineComponent, PropType, toRefs, watch } from 'vue'
import Modal from '@/components/modal'
import { NForm, NFormItem, NSelect } from 'naive-ui'
import { useI18n } from 'vue-i18n'
import { useMove } from './use-move'
const props = {
show: {
type: Boolean as PropType<boolean>,
default: false
},
row: {
type: Object as PropType<any>,
default: {}
}
}
const MoveModal = defineComponent({
name: 'MoveModal',
props,
emits: ['refresh', 'cancel'],
setup(props, ctx) {
const { t } = useI18n()
const { variables, handleValidate, getListData } = useMove()
const cancelModal = () => {
variables.model.targetProcessDefinitionCode = ''
ctx.emit('cancel')
}
const confirmModal = () => {
handleValidate()
}
watch(
() => props.show,
() => {
variables.taskCode = props.row.taskCode
variables.processDefinitionCode = props.row.processDefinitionCode
variables.model.targetProcessDefinitionCode =
props.row.processDefinitionCode
props.show && getListData()
}
)
watch(
() => variables.refreshTaskDefinition,
() => {
if (variables.refreshTaskDefinition) {
ctx.emit('refresh')
variables.refreshTaskDefinition = false
}
}
)
return { t, ...toRefs(variables), cancelModal, confirmModal }
},
render() {
const { t, show, cancelModal, confirmModal } = this
return (
<Modal
title={t('project.task.move')}
show={show}
onCancel={cancelModal}
onConfirm={confirmModal}
confirmDisabled={!this.model.targetProcessDefinitionCode}
confirmLoading={this.saving}
>
<NForm
model={this.model}
rules={this.rules}
ref='taskDefinitionFormRef'
>
<NFormItem
label={t('project.task.workflow_name')}
path='alertInstanceIds'
>
<NSelect
placeholder={t('project.task.workflow_name_tips')}
options={this.model.generalOptions}
v-model={[this.model.targetProcessDefinitionCode, 'value']}
/>
</NFormItem>
</NForm>
</Modal>
)
}
})
export default MoveModal

105
dolphinscheduler-ui/src/views/projects/task/definition/components/use-move.ts

@ -1,105 +0,0 @@
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import { reactive, ref } from 'vue'
import { useI18n } from 'vue-i18n'
import { useAsyncState } from '@vueuse/core'
import { querySimpleList } from '@/service/modules/process-definition'
import { useRoute } from 'vue-router'
import { moveRelation } from '@/service/modules/process-task-relation'
import type { SimpleListRes } from '@/service/modules/process-definition/types'
export function useMove() {
const { t } = useI18n()
const route = useRoute()
const projectCode = Number(route.params.projectCode)
const variables = reactive({
taskCode: ref(''),
processDefinitionCode: ref(''),
refreshTaskDefinition: ref(false),
taskDefinitionFormRef: ref(),
model: {
targetProcessDefinitionCode: ref(''),
generalOptions: []
},
saving: false,
rules: {
targetProcessDefinitionCode: {
required: true,
trigger: ['change', 'blur'],
validator() {
if (!variables.model.targetProcessDefinitionCode) {
return new Error(t('project.task.workflow_name_tips'))
}
}
}
}
})
const getListData = () => {
const { state } = useAsyncState(
querySimpleList(projectCode).then((res: Array<SimpleListRes>) => {
variables.model.generalOptions = res.map(
(item): { label: string; value: number } => {
return {
label: item.name,
value: item.code
}
}
) as any
}),
{}
)
return state
}
const handleValidate = () => {
variables.taskDefinitionFormRef.validate((errors: any) => {
if (errors) {
return
}
moveTask()
})
}
const moveTask = async () => {
if (variables.saving) return
variables.saving = true
try {
const data = {
targetProcessDefinitionCode:
variables.model.targetProcessDefinitionCode,
taskCode: variables.taskCode,
processDefinitionCode: variables.processDefinitionCode
}
await moveRelation(data, projectCode)
variables.saving = false
variables.model.targetProcessDefinitionCode = ''
variables.refreshTaskDefinition = true
} catch (err) {
variables.saving = false
}
}
return {
variables,
handleValidate,
getListData
}
}

31
dolphinscheduler-ui/src/views/projects/task/definition/use-table.ts

@ -31,7 +31,6 @@ import { useI18n } from 'vue-i18n'
import {
DeleteOutlined,
EditOutlined,
DragOutlined,
ExclamationCircleOutlined
} from '@vicons/antd'
import {
@ -146,7 +145,7 @@ export function useTable(onEdit: Function) {
{
title: t('project.task.operation'),
key: 'operation',
...COLUMN_WIDTH_CONFIG['operation'](4),
...COLUMN_WIDTH_CONFIG['operation'](3),
render(row: any) {
return h(NSpace, null, {
default: () => [
@ -177,33 +176,6 @@ export function useTable(onEdit: Function) {
default: () => t('project.task.edit')
}
),
h(
NTooltip,
{},
{
trigger: () =>
h(
NButton,
{
circle: true,
type: 'info',
size: 'small',
disabled:
!!row.processDefinitionCode &&
row.processReleaseState === 'ONLINE',
onClick: () => {
variables.showMoveModalRef = true
variables.row = row
}
},
{
icon: () =>
h(NIcon, null, { default: () => h(DragOutlined) })
}
),
default: () => t('project.task.move')
}
),
h(
NTooltip,
{},
@ -288,7 +260,6 @@ export function useTable(onEdit: Function) {
totalPage: ref(1),
taskType: ref(null),
showVersionModalRef: ref(false),
showMoveModalRef: ref(false),
row: {},
loadingRef: ref(false)
})

Loading…
Cancel
Save