소스 검색

bug修复

Leo 2 년 전
부모
커밋
d702deb779

+ 38 - 16
src/module/datasource/component/DatasourceAdd.jsx

@@ -9,12 +9,12 @@ import {
 } from '@ant-design/pro-components'
 import { Button, Col, message, Form } from 'antd'
 import { useState } from 'react'
-import {testDataSourceConnection, createDataSource} from '../services'
+import { testDataSourceConnection, createDataSource } from '../services'
 
 const DATA_TYPE_MYSQL = 'mysql'
 const KERBS_VALID_FALSE = false
 
-export default function DatasourceAdd({updateDataSource}) {
+export default function DatasourceAdd({ updateDataSource }) {
   // 数据源类型
   const [dataType, setDataType] = useState(DATA_TYPE_MYSQL)
   // 是否开启kerbsValid验证
@@ -25,12 +25,24 @@ export default function DatasourceAdd({updateDataSource}) {
   const [form] = Form.useForm()
   // 测试连接
   const testConnect = async () => {
-    const fields = ['datasource_name','datasource','database_name','jdbc_username','jdbc_password','jdbc_url','comments', 'tag']
+    const fields = [
+      'datasource_name',
+      'datasource',
+      'database_name',
+      'jdbc_username',
+      'jdbc_password',
+      'jdbc_url',
+      'comments',
+      'tag',
+    ]
     try {
       await form.validateFields(fields)
       setLoading(true)
       const testData = form.getFieldsValue(fields)
-      const { data } = await testDataSourceConnection({...testData, tag: form.getFieldValue('tag').join('/')})
+      const { data } = await testDataSourceConnection({
+        ...testData,
+        tag: form.getFieldValue('tag').join('/'),
+      })
       if (data.data) {
         message.success('连接成功')
       } else {
@@ -43,8 +55,20 @@ export default function DatasourceAdd({updateDataSource}) {
   }
   // 完成添加
   const finishAdd = async () => {
-    const fields = ['datasource_name','datasource','database_name','jdbc_username','jdbc_password','jdbc_url','comments', 'tag']
-    const { data } = await createDataSource({...form.getFieldsValue(fields), tag: form.getFieldValue('tag').join('/')})
+    const fields = [
+      'datasource_name',
+      'datasource',
+      'database_name',
+      'jdbc_username',
+      'jdbc_password',
+      'jdbc_url',
+      'comments',
+      'tag',
+    ]
+    const { data } = await createDataSource({
+      ...form.getFieldsValue(fields),
+      tag: form.getFieldValue('tag').join('/'),
+    })
     if (data.code === 200) {
       message.success('添加成功')
       updateDataSource()
@@ -62,14 +86,12 @@ export default function DatasourceAdd({updateDataSource}) {
   return (
     <ModalForm
       form={form}
-      trigger={
-        <Button type="primary">添加数据源</Button>
-      }
+      trigger={<Button type="primary">添加数据源</Button>}
       onFinish={finishAdd}
       initialValues={{
         datasource: DATA_TYPE_MYSQL,
         kerbsValid: KERBS_VALID_FALSE,
-        comments: ''
+        comments: '',
       }}
       title="添加数据源"
       modalProps={{
@@ -121,12 +143,12 @@ export default function DatasourceAdd({updateDataSource}) {
         label="数据源标签"
         name="tag"
         fieldProps={{
-          mode: 'tags'
+          mode: 'tags',
         }}
         valueEnum={{
-          '线上': '线上',
-          '测试': '测试',
-          '开发': '开发',
+          线上: '线上',
+          测试: '测试',
+          开发: '开发',
         }}
         rules={[
           {
@@ -182,8 +204,8 @@ export default function DatasourceAdd({updateDataSource}) {
       />
       {dataType === 'hive' ? (
         <ProFormRadio.Group
-          label="kerbs验证"
-          name="kerbsValid"
+          label="kerberos验证"
+          name="kerberosValid"
           fieldProps={{
             onChange: e => setKerbsValid(e.target.value),
           }}

+ 44 - 11
src/module/workmgmt/component/JobCreate.jsx

@@ -20,12 +20,12 @@ import { useNavigate, useLocation } from 'react-router-dom'
 import {
   getJobTypes,
   createJob,
-  getDagInfomation,
+  getFileInfomation,
   getJobInfo,
   deleteTag,
   updateJobInfo,
-  uploadJar,
-  uploadPy,
+  uploadFile,
+  getFileUri,
 } from '../services'
 
 const JobCre = styled.div`
@@ -175,12 +175,34 @@ export default function JobCreate() {
 
   const [fileList, setFileList] = useState([])
 
+  const [javas, setJavas] = useState([])
+  const [pythons, setPythons] = useState([])
+
   useEffect(() => {
     if (state) {
       fetchJobInfo(state.id)
     }
   }, [state])
 
+  useEffect(() => {
+    fetchFileUri('java')
+    fetchFileUri('python')
+  }, [])
+
+  const fetchFileUri = async type => {
+    const params = {
+      project_id: 'test',
+      user_id: 'test',
+      file_type: type,
+    }
+    const { data } = await getFileUri(params)
+    if (data.code === 200) {
+      type === 'jave' ? setJavas(data.data) : setPythons(data.data)
+    } else {
+      message.error(data.msg)
+    }
+  }
+
   const fetchJobInfo = async id => {
     const { data } = await getJobInfo(id)
     if (data.code === 200) {
@@ -323,10 +345,12 @@ export default function JobCreate() {
 
   //提交DAG
   const DagSubmit = async () => {
-    const res = await getDagInfomation(dagData)
-    if (res.status === 200) {
-      const innodes = res.data.nodes.filter(item => item.op === 'datasource')
-      const outnodes = res.data.nodes.filter(item => item.op === 'outputsource')
+    const { data } = await getFileInfomation(dagData)
+    if (data.code === 200) {
+      const innodes = data.data.nodes.filter(item => item.op === 'datasource')
+      const outnodes = data.data.nodes.filter(
+        item => item.op === 'outputsource'
+      )
       const relation_list = []
       innodes.forEach((item, index) => {
         relation_list.push({
@@ -449,8 +473,9 @@ export default function JobCreate() {
       fileList.forEach(item => {
         file.append('file', item)
       })
-      const { data } =
-        currentJobType === 'Java' ? await uploadJar(file) : await uploadPy(file)
+      file.append('project_id', 'test')
+      file.append('file_type', currentJobType === 'Java' ? 'java' : 'python')
+      const { data } = await uploadFile(file)
       if (data.code === 200) {
         params['script_file'] = data.data
       } else {
@@ -699,7 +724,11 @@ export default function JobCreate() {
                         value={scriptFile}
                         onChange={onScriptFileChange}
                         disabled={radioValue === 'fromList' ? false : true}>
-                        <Option value="test">test</Option>
+                        {pythons.map(item => (
+                          <Option key={item.uri} value={item.name}>
+                            {item.name}
+                          </Option>
+                        ))}
                       </Select>
                     </span>
                   </Radio>
@@ -846,7 +875,11 @@ export default function JobCreate() {
                         value={scriptFile}
                         onChange={onScriptFileChange}
                         disabled={radioValue === 'fromList' ? false : true}>
-                        <Option value="test">test</Option>
+                        {javas.map(item => (
+                          <Option key={item.uri} value={item.name}>
+                            {item.name}
+                          </Option>
+                        ))}
                       </Select>
                     </span>
                   </Radio>

+ 11 - 4
src/module/workmgmt/component/JobStepOne.jsx

@@ -1,7 +1,7 @@
 import { Button, Form, Input, Select, Space, Divider, message } from 'antd'
 import { DeleteOutlined, PlusOutlined } from '@ant-design/icons'
 import React, { useState, useEffect, useRef } from 'react'
-import { getJobTypes, getDagFile, deleteTag } from '../services'
+import { getJobTypes, getFileUri, deleteTag } from '../services'
 const { Option } = Select
 const FormItem = Form.Item
 
@@ -45,9 +45,14 @@ export default function JobStepOne({ ConfigDataForm, SelectDag }) {
     const params = {
       project_id: 'test',
       user_id: 'test',
+      file_type: 'dag',
+    }
+    const { data } = await getFileUri(params)
+    if (data.code === 200) {
+      setDags(data.data)
+    } else {
+      message.error(data.msg)
     }
-    const data = await getDagFile(params)
-    setDags(data.data.data)
   }
 
   const onNameChange = event => {
@@ -169,7 +174,9 @@ export default function JobStepOne({ ConfigDataForm, SelectDag }) {
             allowClear
             onSelect={val => SelectDag(val)}>
             {dags.map(item => (
-              <Option key={item}>{item}</Option>
+              <Option key={item.uri} value={item.uri}>
+                {item.name}
+              </Option>
             ))}
           </Select>
         </FormItem>

+ 6 - 4
src/module/workmgmt/component/JobStepThree.jsx

@@ -1,7 +1,7 @@
-import { Alert, Button, Form, Select, Row, Tooltip } from 'antd'
+import { Alert, Button, Form, Select, Row, Tooltip, message } from 'antd'
 import styled from 'styled-components'
 import {
-  getDagInfomation,
+  getFileInfomation,
   getDataSourceInfo,
   getTableNameInfo,
   getTableSchemaInfo,
@@ -143,12 +143,14 @@ export default function JobStepTwo({ OutputDataForm, dagData, checkSync }) {
   const [nodeState, setNodeState] = useState({})
 
   const getDagInfo = async dag_url => {
-    const data = await getDagInfomation(dag_url)
-    if (data.status === 200) {
+    const { data } = await getFileInfomation(dag_url)
+    if (data.code === 200) {
       const dag_nodes = data.data.nodes.filter(
         item => item.op === 'outputsource'
       )
       setNodes(dag_nodes)
+    } else {
+      message.error(data.msg)
     }
   }
 

+ 6 - 4
src/module/workmgmt/component/JobStepTwo.jsx

@@ -1,7 +1,7 @@
-import { Alert, Button, Form, Select, Row, Tooltip } from 'antd'
+import { Alert, Button, Form, Select, Row, Tooltip, message } from 'antd'
 import styled from 'styled-components'
 import {
-  getDagInfomation,
+  getFileInfomation,
   getDataSourceInfo,
   getTableNameInfo,
   getTableSchemaInfo,
@@ -143,10 +143,12 @@ export default function JobStepTwo({ InputDataForm, dagData, checkSync }) {
   const [nodeState, setNodeState] = useState({})
 
   const getDagInfo = async dag_url => {
-    const data = await getDagInfomation(dag_url)
-    if (data.status === 200) {
+    const { data } = await getFileInfomation(dag_url)
+    if (data.code === 200) {
       const dag_nodes = data.data.nodes.filter(item => item.op === 'datasource')
       setNodes(dag_nodes)
+    } else {
+      message.error(data.msg)
     }
   }
 

+ 8 - 15
src/module/workmgmt/services/index.js

@@ -29,17 +29,17 @@ export const deleteJob = params =>
     method: 'delete',
   })
 
-//获取DAG算子
-export const getDagFile = params =>
+//获取文件uri
+export const getFileUri = params =>
   request({
-    url: `/jpt/dag/?project_id=${params.project_id}&user_id=${params.user_id}`,
+    url: `/jpt/files/directory?project_id=${params.project_id}&user_id=${params.user_id}&file_type=${params.file_type}`,
     method: 'get',
   })
 
-//获取DAG详细信息
-export const getDagInfomation = params =>
+//获取文件详细信息
+export const getFileInfomation = params =>
   request({
-    url: `/jpt/dag/info?uri=${params}`,
+    url: `/jpt/files/dag_content?uri=${params}`,
     method: 'get',
   })
 
@@ -84,16 +84,9 @@ export const updateJobInfo = (id, params) =>
     data: { ...params },
   })
 
-export const uploadJar = params =>
+export const uploadFile = params =>
   request({
-    url: '/jpt/files/java/',
-    method: 'post',
-    data: params,
-  })
-
-export const uploadPy = params =>
-  request({
-    url: '/jpt/files/python/',
+    url: '/jpt/files/upload_file',
     method: 'post',
     data: params,
   })