Kaynağa Gözat

新增数据源添加

yukai 3 yıl önce
ebeveyn
işleme
47348f77f8

+ 5 - 5
src/api/datahub/index.ts

@@ -3,11 +3,11 @@ import { get, post, del, put } from '/@/utils/request';
 export default {
 
   common: {
-    getList: (params: object) => get('/common/base/db/list', params),
-    add: (data: object) => post('/common/base/db/add', data),
-    delete: (id: number) => del('/common/base/db/del', { id }),
-    edit: (data: object) => put('/common/base/db/edit', data),
-    detail: (id: number) => get('/common/base/db/detail', { id }),
+    getList: (params: object) => get('/source/search', params),
+    add: (data: object) => post('/source/api/add', data),
+    delete: (id: number) => del('/source/del', { id }),
+    edit: (data: object) => put('/source/api/edit', data),
+    detail: (id: number) => get('/source/detail', { id }),
   },
   
 }

+ 110 - 22
src/views/datahub/source/component/edit.vue

@@ -1,15 +1,22 @@
 <template>
 	<div class="system-edit-dic-container">
-		<el-dialog :title="(ruleForm.id!==0?'修改':'添加')+'数据源'" v-model="isShowDialog" width="769px">
+		<el-dialog :title="(ruleForm.sourceId!==0?'修改':'添加')+'数据源'" v-model="isShowDialog" width="769px">
 			<el-form :model="ruleForm" ref="formRef" :rules="rules" size="default" label-width="110px">
        
+        <el-form-item label="数据源标识" prop="name">
+          <el-input v-model="ruleForm.name" placeholder="请输入数据源名称" />
+        </el-form-item>
         <el-form-item label="数据源名称" prop="name">
           <el-input v-model="ruleForm.name" placeholder="请输入数据源名称" />
         </el-form-item>
 
-        <el-form-item label="数据类型" prop="types">
-          <el-input v-model="ruleForm.types" placeholder="请输入数据类型" />
-        </el-form-item>
+        <el-form-item label="数据来源" prop="from">
+					<el-radio-group v-model="ruleForm.from"  >
+						<el-radio :label="1">api导入</el-radio>
+						<el-radio :label="2">数据库</el-radio>
+						<el-radio :label="3">文件</el-radio>
+					</el-radio-group>
+				</el-form-item>
 
         <el-form-item label="地址" prop="host">
           <el-input v-model="ruleForm.host" placeholder="请输入地址" />
@@ -24,21 +31,56 @@
         <el-form-item label="密码" prop="password">
           <el-input v-model="ruleForm.password" placeholder="请输入密码" />
         </el-form-item>
-  	<el-form-item label="状态" prop="status">
+
+        <el-divider content-position="left">数据源配置</el-divider>
+
+        <el-form-item label="请求方法" prop="method">
+              <el-select v-model="config.method" placeholder="请选择请求方法">
+                  <el-option
+                    v-for="item in methodData"
+                    :key="item.value"
+                    :label="item.label"
+                    :value="item.value"
+                  />
+                </el-select>
+          </el-form-item>
+
+
+        <el-form-item label="请求地址" prop="url">
+          <el-input v-model="config.url" placeholder="请输入请求地址" />
+        </el-form-item>
+        <el-form-item label="更新时间" prop="interval">
+          <el-input v-model="config.interval" placeholder="请输入更新时间" class="w-35" />
+          <el-select v-model="config.intervalUnit" placeholder="请选择单位">
+                  <el-option
+                    v-for="item in unitData"
+                    :key="item.value"
+                    :label="item.label"
+                    :value="item.value"
+                  />
+                </el-select>
+        </el-form-item>
+
+        <div class="box-content">
+        
+        </div>
+
+  	    <el-form-item label="状态" prop="status">
 					<el-radio-group v-model="ruleForm.status"  >
 						<el-radio label="0">未启用</el-radio>
 
 						<el-radio label="1">启用</el-radio>
 					</el-radio-group>
 				</el-form-item>
-        <el-form-item label="备注" prop="description">
-          <el-input v-model="ruleForm.description" type="textarea" placeholder="请输入内容"></el-input>
+
+        <el-form-item label="描述" prop="description">
+          <el-input v-model="ruleForm.desc" type="textarea" placeholder="请输入内容"></el-input>
         </el-form-item>
 			</el-form>
 			<template #footer>
 				<span class="dialog-footer">
 					<el-button @click="onCancel" size="default">取 消</el-button>
-					<el-button type="primary" @click="onSubmit" size="default">{{ruleForm.id!==0?'修 改':'添 加'}}</el-button>
+					<el-button type="primary" @click="onSubmit" size="default">{{ruleForm.sourceId!==0?'修 改':'添 加'}}</el-button>
 				</span>
 			</template>
 		</el-dialog>
@@ -50,14 +92,14 @@ import { reactive, toRefs, defineComponent,ref, unref } from 'vue';
 import api from '/@/api/datahub';
 import {ElMessage} from "element-plus";
 interface RuleFormState {
-  id:number;
+  sourceId:number;
   name:string;
-  types:string;
-  host:string;
+  from:number;
+  key:string;
   port:string;
   userName:string;
   password:string;
-  description:string;
+  desc:string;
   status:number;
 }
 interface DicState {
@@ -67,20 +109,57 @@ interface DicState {
 }
 
 export default defineComponent({
-	name: 'deviceEditPro',
+	name: 'Edit',
 	setup(prop,{emit}) {
     const formRef = ref<HTMLElement | null>(null);
 		const state = reactive<DicState>({
 			isShowDialog: false,
+      config:{},
+      requestParams:[{
+        type:'',
+        key:'',
+        name:'',
+        value:''
+      }],
+      methodData:[{
+          label:'GET',
+          value:'get'
+        },{
+          label:'POST',
+          value:'post'
+        },{
+          label:'PUT',
+          value:'put'
+      }],
+
+      unitData:[
+        {
+          label:'second',
+          value:'秒'
+        },
+         {
+          label:'minute',
+          value:'分'
+        },
+        {
+          label:'hour',
+          value:'时'
+        },
+        {
+          label:'day',
+          value:'天'
+        },
+      ],
+
 			ruleForm: {
-        id:0,
+        sourceId:0,
         name:'',
-        types:'',
-        host:'',
+        from:1,
+        key:'',
         port:'',
         userName:'',
         password:'',
-        description:'',
+        desc:'',
         status:1,
 
 			},
@@ -88,7 +167,7 @@ export default defineComponent({
         name: [
           { required: true, message: "数据源名称不能为空", trigger: "blur" }
         ],
-        types: [
+        from: [
           { required: true, message: "数据源类型不能为空", trigger: "blur" }
         ],
         host: [{ required: true, message: '地址不能为空', trigger: 'blur' }],
@@ -112,10 +191,10 @@ export default defineComponent({
 		};
     const resetForm = ()=>{
       state.ruleForm = {
-       id:0,
+       sourceId:0,
         name:'',
-        types:'',
-        host:'',
+        from:1,
+        key:'',
         port:'',
         userName:'',
         password:'',
@@ -137,7 +216,7 @@ export default defineComponent({
       if (!formWrap) return;
       formWrap.validate((valid: boolean) => {
         if (valid) {
-          if(state.ruleForm.id!==0){
+          if(state.ruleForm.sourceId!==0){
             //修改
             api.common.edit(state.ruleForm).then(()=>{
               ElMessage.success('数据源类型修改成功');
@@ -168,3 +247,12 @@ export default defineComponent({
 	},
 });
 </script>
+<style>
+.el-input__wrapper{
+  width:98%;
+}
+.box-content{
+  
+  
+}
+</style>