Browse Source

数据源管理文件接入

黎有为 1 year ago
parent
commit
66d9fd4e8e
2 changed files with 144 additions and 134 deletions
  1. 131 126
      src/utils/data/select-data.js
  2. 13 8
      src/views/dataSource/Detail.vue

+ 131 - 126
src/utils/data/select-data.js

@@ -1,260 +1,265 @@
-import createEnum from "./create-enum";
+import createEnum from './create-enum'
 
 export const select_test = createEnum([
-  {value: 1, label: 1},
-  {value: 2, label: 2},
-  {value: 3, label: 3},
+  { value: 1, label: 1 },
+  { value: 2, label: 2 },
+  { value: 3, label: 3 },
 ])
 
 // 是否和空
 export const BoolNullArr = createEnum([
-  {value: '', label: '空'},
-  {value: '是', label: '是'},
-  {value: '否', label: '否'},
+  { value: '', label: '空' },
+  { value: '是', label: '是' },
+  { value: '否', label: '否' },
 ])
 
 // 是否
 export const BoolArr = createEnum([
-  {value: '是', label: '是'},
-  {value: '否', label: '否'},
+  { value: '是', label: '是' },
+  { value: '否', label: '否' },
 ])
 
 // 判断
 export const JudgeArr = createEnum([
-  {value: 'like', label: 'like'},
-  {value: '>', label: '>'},
-  {value: '<', label: '<'},
-  {value: '=', label: '='},
+  { value: 'like', label: 'like' },
+  { value: '>', label: '>' },
+  { value: '<', label: '<' },
+  { value: '=', label: '=' },
 ])
 
 // 关系
 export const BetweenArr = createEnum([
-  {value: '与', label: '与'},
-  {value: '或', label: '或'},
+  { value: '与', label: '与' },
+  { value: '或', label: '或' },
 ])
 
 // 状态
 export const StateArr = createEnum([
-  {value: '1', label: '已启用'},
-  {value: '2', label: '已禁用'},
+  { value: '1', label: '已启用' },
+  { value: '2', label: '已禁用' },
 ])
 
 // 状态按钮
 export const StateButtonArr = createEnum([
-  {value: '1', label: '禁用'},
-  {value: '2', label: '启用'},
+  { value: '1', label: '禁用' },
+  { value: '2', label: '启用' },
 ])
 
 // 任务状态
 export const TaskStateArr = createEnum([
-  {value: '0', label: '未配置', color: 'gray'},
-  {value: '1', label: '已配置', color: 'orange'},
-  {value: '2', label: '已启动', color: 'green'},
-  {value: '3', label: '正在运行', color: 'green'},
-  {value: '4', label: '停止', color: 'yellow'},
-  {value: '5', label: '异常', color: 'red'},
-  {value: '6', label: '已完成', color: 'green'},
+  { value: '0', label: '未配置', color: 'gray' },
+  { value: '1', label: '已配置', color: 'orange' },
+  { value: '2', label: '已启动', color: 'green' },
+  { value: '3', label: '正在运行', color: 'green' },
+  { value: '4', label: '停止', color: 'yellow' },
+  { value: '5', label: '异常', color: 'red' },
+  { value: '6', label: '已完成', color: 'green' },
 ])
 
 // 拦截模式
 export const InterceptModelArr = createEnum([
-  {value: '1', label: '不拦截'},
-  {value: '2', label: '批量拦截'},
-  {value: '3', label: '问题数据'},
+  { value: '1', label: '不拦截' },
+  { value: '2', label: '批量拦截' },
+  { value: '3', label: '问题数据' },
 ])
 
 // 数据质检类型
 export const InspectRuleArr = createEnum([
-  {value: '1', label: '唯一'},
-  {value: '2', label: '非空'},
-  {value: '3', label: '字符长度'},
-  {value: '4', label: '数据格式'},
-  {value: '5', label: '数据范围'},
-  {value: '6', label: '自相交'},
+  { value: '1', label: '唯一' },
+  { value: '2', label: '非空' },
+  { value: '3', label: '字符长度' },
+  { value: '4', label: '数据格式' },
+  { value: '5', label: '数据范围' },
+  { value: '6', label: '自相交' },
 ])
 
 // 数据质检格式选择
 export const FormatSelectArr = createEnum([
-  {value: '1', label: '时间'},
-  {value: '2', label: '身份证'},
+  { value: '1', label: '时间' },
+  { value: '2', label: '身份证' },
 ])
 
 // 数据清洗类型
 export const CleanRuleArr = createEnum([
-  {value: '1', label: '质检问题清洗'},
-  {value: '2', label: '坐标转换'},
-  {value: '3', label: '地址匹配'},
-  {value: '4', label: '数据合并'},
-  {value: '5', label: '数据脱敏'},
-  {value: '6', label: '属性赋值'},
+  { value: '1', label: '质检问题清洗' },
+  { value: '2', label: '坐标转换' },
+  { value: '3', label: '地址匹配' },
+  { value: '4', label: '数据合并' },
+  { value: '5', label: '数据脱敏' },
+  { value: '6', label: '属性赋值' },
 ])
 
 // 质检问题数据清洗类型
 export const CleanTypeArr = createEnum([
-  {value: '1', label: '去重'},
-  {value: '2', label: '特殊字符'}
+  { value: '1', label: '去重' },
+  { value: '2', label: '特殊字符' },
 ])
 
 // 质数据脱敏类型
 export const SensitiveTypeArr = createEnum([
-  {value: '1', label: '身份证'},
-  {value: '2', label: '手机号'}
+  { value: '1', label: '身份证' },
+  { value: '2', label: '手机号' },
 ])
 
 // 目标坐标系
 export const OriginalArr = createEnum([
-  {value: 'WGS-84', label: 'WGS-84'},
+  { value: 'WGS-84', label: 'WGS-84' },
 ])
 
 // 执行频率
 export const FrequencyArr = createEnum([
-  {value: '1', label: '周期执行'},
-  {value: '2', label: '单次执行'},
-  {value: '3', label: '立即执行'},
+  { value: '1', label: '周期执行' },
+  { value: '2', label: '单次执行' },
+  { value: '3', label: '立即执行' },
 ])
 
 // 数据类型
 export const DataTypeArr = createEnum([
-  {value: '1', label: '数据库'},
-  {value: '2', label: '接口'},
-  {value: '3', label: '文件'},
+  { value: '1', label: '数据库' },
+  { value: '2', label: '接口' },
+  { value: '3', label: '文件' },
   // {label: '流', value: 2},
 ])
 
 // 数据库类型
 export const DatabaseTypeArr = createEnum([
-  {value: 'Oracle', label: 'Oracle'},
-  {value: 'Postgresql', label: 'Postgresql'},
-  {value: 'highgo', label: 'highgo'},
+  { value: 'Oracle', label: 'Oracle' },
+  { value: 'Postgresql', label: 'Postgresql' },
+  { value: 'highgo', label: 'highgo' },
 ])
 
 // 空间域字段类型
 export const SpaceFieldArr = createEnum([
-  {value: '', label: '空'},
-  {value: 'x轴', label: 'x轴'},
-  {value: 'y轴', label: 'y轴'},
-  {value: 'z轴', label: 'z轴'},
-  {value: '地址', label: '地址'},
-  {value: '空间字段', label: '空间字段'},
+  { value: '', label: '空' },
+  { value: 'x轴', label: 'x轴' },
+  { value: 'y轴', label: 'y轴' },
+  { value: 'z轴', label: 'z轴' },
+  { value: '地址', label: '地址' },
+  { value: '空间字段', label: '空间字段' },
 ])
 
 // 资源频率
 export const ResourceFrequencyArr = createEnum([
-  {value: '实时', label: '实时'},
-  {value: '每天', label: '每天'},
-  {value: '每月', label: '每月'},
-  {value: '每季度', label: '每季度'},
-  {value: '每半年', label: '每半年'},
-  {value: '每年', label: '每年'},
-  {value: '动态更新', label: '动态更新'},
+  { value: '实时', label: '实时' },
+  { value: '每天', label: '每天' },
+  { value: '每月', label: '每月' },
+  { value: '每季度', label: '每季度' },
+  { value: '每半年', label: '每半年' },
+  { value: '每年', label: '每年' },
+  { value: '动态更新', label: '动态更新' },
 ])
 
 // 共享类型
 export const ShareTypeArr = createEnum([
-  {value: '有条件共享', label: '有条件共享'},
-  {value: '无条件共享', label: '无条件共享'},
-  {value: '不予共享', label: '不予共享'},
+  { value: '有条件共享', label: '有条件共享' },
+  { value: '无条件共享', label: '无条件共享' },
+  { value: '不予共享', label: '不予共享' },
 ])
 
 // 开放类型
 export const OpenTypeArr = createEnum([
-  {value: '有条件开放', label: '有条件开放'},
-  {value: '无条件开放', label: '无条件开放'},
-  {value: '不予开放', label: '不予开放'},
+  { value: '有条件开放', label: '有条件开放' },
+  { value: '无条件开放', label: '无条件开放' },
+  { value: '不予开放', label: '不予开放' },
 ])
 
 // 坐标系
 export const CoordinateSystemArr = createEnum([
-  {value: '火星坐标系', label: '火星坐标系'},
-  {value: '全球坐标系统', label: '全球坐标系统'},
-  {value: '2000国家大地坐标系', label: '2000国家大地坐标系'},
-  {value: '百度坐标系', label: '百度坐标系'},
-  {value: '上海城建坐标系', label: '上海城建坐标系'},
-  {value: '上海2000坐标系', label: '上海2000坐标系'},
+  { value: '火星坐标系', label: '火星坐标系' },
+  { value: '全球坐标系统', label: '全球坐标系统' },
+  { value: '2000国家大地坐标系', label: '2000国家大地坐标系' },
+  { value: '百度坐标系', label: '百度坐标系' },
+  { value: '上海城建坐标系', label: '上海城建坐标系' },
+  { value: '上海2000坐标系', label: '上海2000坐标系' },
 ])
 
 // 几何类型
 export const GeometryTypeArr = createEnum([
-  {value: '点', label: '点'},
-  {value: '线', label: '线'},
-  {value: '面', label: '面'},
-  {value: '综合', label: '综合'},
-  {value: '体', label: '体'},
+  { value: '点', label: '点' },
+  { value: '线', label: '线' },
+  { value: '面', label: '面' },
+  { value: '综合', label: '综合' },
+  { value: '体', label: '体' },
 ])
 
 // 数据格式
 export const FieldTypeArr = createEnum([
-  {value: 'NUMBER', label: 'NUMBER'},
-  {value: 'VARCHAR2', label: 'VARCHAR2'},
-  {value: 'DATE', label: 'DATE'},
-  {value: 'SDO_GEOMETRY', label: 'SDO_GEOMETRY'},
-  {value: 'INTEGER', label: 'INTEGER'},
-  {value: 'FLOAT', label: 'FLOAT'},
-  {value: 'BLOB', label: 'BLOB'},
-  {value: 'DATETIME', label: 'DATETIME'},
-  {value: 'CLOB', label: 'CLOB'},
+  { value: 'NUMBER', label: 'NUMBER' },
+  { value: 'VARCHAR2', label: 'VARCHAR2' },
+  { value: 'DATE', label: 'DATE' },
+  { value: 'SDO_GEOMETRY', label: 'SDO_GEOMETRY' },
+  { value: 'INTEGER', label: 'INTEGER' },
+  { value: 'FLOAT', label: 'FLOAT' },
+  { value: 'BLOB', label: 'BLOB' },
+  { value: 'DATETIME', label: 'DATETIME' },
+  { value: 'CLOB', label: 'CLOB' },
 ])
 
 /* ------------new------------- */
 
 // 共享/开放方式
 export const OpenWay = [
-  {label:"接口",value:"接口"},
-  {label:"库表",value:"库表"},
-  {label:"文件下载",value:"文件下载"},
-  {label:"ftp",value:"ftp"},
-  {label:"服务",value:"服务"},
-  {label:"制图成品",value:"制图成品"},
+  { label: '接口', value: '接口' },
+  { label: '库表', value: '库表' },
+  { label: '文件下载', value: '文件下载' },
+  { label: 'ftp', value: 'ftp' },
+  { label: '服务', value: '服务' },
+  { label: '制图成品', value: '制图成品' },
 ]
 
 // 数据维度
 export const DataDimensionArr = [
-  {label:"二维数据",value:"二维数据"},
-  {label:"三维数据",value:"三维数据"},
+  { label: '二维数据', value: '二维数据' },
+  { label: '三维数据', value: '三维数据' },
 ]
 
 // 时间类型
 export const TimeTypeArr = [
-  {label:"业务时间",value:"业务时间"},
-  {label:"归集时间",value:"归集时间"},
+  { label: '业务时间', value: '业务时间' },
+  { label: '归集时间', value: '归集时间' },
 ]
 
 // 数据融合运行方案
 export const OpePlanArr = [
-  {label:"定期运行",value:"定期运行"},
-  {label:"更新运行",value:"更新运行"}
+  { label: '定期运行', value: '定期运行' },
+  { label: '更新运行', value: '更新运行' },
 ]
 
 // 运行周期
 export const RunPeriodArr = createEnum([
-  {label: '日', value: 'day'},
-  {label: '周', value: 'week'},
-  {label: '月', value: 'month'},
-  {label: '年', value: 'year'},
+  { label: '日', value: 'day' },
+  { label: '周', value: 'week' },
+  { label: '月', value: 'month' },
+  { label: '年', value: 'year' },
 ])
 
 // 星期
 export const weekDayArr = createEnum([
-  {label: '周一', value: '1'},
-  {label: '周二', value: '2'},
-  {label: '周三', value: '3'},
-  {label: '周四', value: '4'},
-  {label: '周五', value: '5'},
-  {label: '周六', value: '6'},
-  {label: '周日', value: '0'},
+  { label: '周一', value: '1' },
+  { label: '周二', value: '2' },
+  { label: '周三', value: '3' },
+  { label: '周四', value: '4' },
+  { label: '周五', value: '5' },
+  { label: '周六', value: '6' },
+  { label: '周日', value: '0' },
 ])
 
 // 数据融合状态
 export const DataFusionStatusArr = createEnum([
-  {label: '未配置', value: 0, color: 'gray'},
-  {label: '已完成', value: 1, color: 'green'},
-  {label: '异常', value: 2, color: 'red'}
+  { label: '未配置', value: 0, color: 'gray' },
+  { label: '已完成', value: 1, color: 'green' },
+  { label: '异常', value: 2, color: 'red' },
 ])
 
 // 影响分析数据源类型
 export const DataSourceArr = createEnum([
-  {label: '空间数据', value: 'NORMAL_DATA' },
-  {label: '非空间数据', value: 'SPATIAL_DATA' },
-  {label: '接口', value: 'INTERFACE' },
-  {label: '服务', value: 'DATA_SERVER' }
+  { label: '空间数据', value: 'NORMAL_DATA' },
+  { label: '非空间数据', value: 'SPATIAL_DATA' },
+  { label: '接口', value: 'INTERFACE' },
+  { label: '服务', value: 'DATA_SERVER' },
+])
+
+export const ConvergeFileType = createEnum([
+  { label: 'FTP', value: 1 },
+  { label: 'SFTP', value: 2 },
 ])

+ 13 - 8
src/views/dataSource/Detail.vue

@@ -26,7 +26,7 @@
 <script setup>
 import { computed, onBeforeMount, reactive, ref } from 'vue'
 import { useRoute, useRouter } from 'vue-router'
-import { DatabaseTypeArr, DataTypeArr } from '../../utils/data/select-data'
+import { ConvergeFileType, DatabaseTypeArr, DataTypeArr } from '../../utils/data/select-data'
 import MyForm from '../../components/Form.vue'
 import { AddSource, EditSource, GetSourceDetail } from '../../services/baseInfo'
 
@@ -48,15 +48,19 @@ const form = reactive({
     { fieldName: 'schema', label: 'scheam', value: '', isRequired: true, type: 'input' },
   ],
   fileExtentInfo: [
+    { fieldName: 'url', label: '文件路径', value: '', isRequired: true, type: 'input' },
+    { fieldName: 'type', label: '服务器类型', value: '', isRequired: true, type: 'select', options: ConvergeFileType },
     { fieldName: 'ip', label: '数据源IP', value: '', isRequired: true, type: 'input' },
     { fieldName: 'port', label: '数据源port', value: '', isRequired: true, type: 'input' },
-    { fieldName: 'username', label: '用户名', value: '', isRequired: true, type: 'input' },
-    { fieldName: 'password', label: '密码', value: '', isRequired: true, type: 'input' },
-    { fieldName: 'remarks', label: '备注', value: '', isRequired: true, type: 'input' },
+    { fieldName: 'username', label: '用户名', value: '', isRequired: false, type: 'input' },
+    { fieldName: 'password', label: '密码', value: '', isRequired: false, type: 'input' },
+    { fieldName: 'des', label: '备注', value: '', isRequired: false, type: 'input' },
   ],
 })
 
-const selectedFormData = computed(() => {
+const selectedFormData = computed(calculateFormData)
+
+function calculateFormData () {
   const type = form.basicInfo.find(item => item.fieldName === 'sourceType').value
   if (type === '1') {
     return form.DBExtentInfo
@@ -67,7 +71,7 @@ const selectedFormData = computed(() => {
     // 或者返回空对象 {}
     return {}
   }
-})
+}
 
 function handleClose () {
   router.push({
@@ -86,7 +90,7 @@ function handleSave () {
       form.basicInfo.forEach(i => {
         pForm[i.fieldName] = i.value
       })
-      form.extentInfo.forEach(i => {
+      calculateFormData().forEach(i => {
         pForm[i.fieldName] = i.value
       })
       if (route.params.type === 'edit') {
@@ -112,13 +116,14 @@ function handleSave () {
 }
 
 onBeforeMount(() => {
+  // eslint-disable-next-line no-debugger
   if (route.params.type !== 'add') {
     GetSourceDetail(route.params.id).then(res => {
       if (res.code == '200' && res.success) {
         form.basicInfo.forEach(i => {
           i.value = res.data[i.fieldName]
         })
-        form.extentInfo.forEach(i => {
+        calculateFormData().forEach(i => {
           i.value = res.data[i.fieldName]
         })
       }