|
@@ -112,7 +112,19 @@
|
|
|
<el-input v-model="formZu.dcNote" style="width: 75%;" placeholder="" type="textarea" :row="2" resize="none"/>
|
|
<el-input v-model="formZu.dcNote" style="width: 75%;" placeholder="" type="textarea" :row="2" resize="none"/>
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
<el-form-item label="数据集类型:" prop="dcType" style="">
|
|
<el-form-item label="数据集类型:" prop="dcType" style="">
|
|
|
- <el-input v-model="formZu.dcType" style="width: 75%;" placeholder="" type="" :row="2" resize="none"/>
|
|
|
|
|
|
|
+ <el-select
|
|
|
|
|
+ v-model="formZu.dcType"
|
|
|
|
|
+ class="noBorSel"
|
|
|
|
|
+ placeholder=""
|
|
|
|
|
+ style="width: 75%;margin-left: 0%;"
|
|
|
|
|
+ >
|
|
|
|
|
+ <el-option
|
|
|
|
|
+ v-for="item in optionsShuLei"
|
|
|
|
|
+ :key="item.value"
|
|
|
|
|
+ :label="item.label"
|
|
|
|
|
+ :value="item.value"
|
|
|
|
|
+ />
|
|
|
|
|
+ </el-select>
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
<el-form-item label="排序:" prop="dcSort">
|
|
<el-form-item label="排序:" prop="dcSort">
|
|
|
<el-input-number v-model="formZu.dcSort" :min="1" style="width: 50%;"/>
|
|
<el-input-number v-model="formZu.dcSort" :min="1" style="width: 50%;"/>
|
|
@@ -130,7 +142,7 @@
|
|
|
</span>
|
|
</span>
|
|
|
</template>
|
|
</template>
|
|
|
</el-dialog>
|
|
</el-dialog>
|
|
|
- <el-dialog @close="" v-model="dialogVisibleTree" title="配置管理" width="60%" destroy-on-close :key="tableKey" @opened="refreshEditor">
|
|
|
|
|
|
|
+ <el-dialog @close="" v-model="dialogVisibleTree" title="sql配置管理" width="60%" destroy-on-close :key="tableKey" @opened="refreshEditor">
|
|
|
<div style="display: flex;align-items: center;width: 100%;">
|
|
<div style="display: flex;align-items: center;width: 100%;">
|
|
|
<div>
|
|
<div>
|
|
|
数据源:
|
|
数据源:
|
|
@@ -347,7 +359,7 @@
|
|
|
</span>
|
|
</span>
|
|
|
</template>
|
|
</template>
|
|
|
</el-dialog>
|
|
</el-dialog>
|
|
|
- <el-dialog @close="" v-model="dialogVisibleApi" title="配置管理" width="60%" destroy-on-close :key="tableKey">
|
|
|
|
|
|
|
+ <el-dialog @close="" v-model="dialogVisibleApi" title="api配置管理" width="60%" destroy-on-close :key="tableKey">
|
|
|
<div style="display: flex;align-items: center;width: 100%;">
|
|
<div style="display: flex;align-items: center;width: 100%;">
|
|
|
<div>
|
|
<div>
|
|
|
API:
|
|
API:
|
|
@@ -528,7 +540,7 @@
|
|
|
</span>
|
|
</span>
|
|
|
</template>
|
|
</template>
|
|
|
</el-dialog>
|
|
</el-dialog>
|
|
|
- <el-dialog @close="" v-model="dialogVisibleFile" title="配置管理" width="60%" destroy-on-close :key="tableKey">
|
|
|
|
|
|
|
+ <el-dialog @close="" v-model="dialogVisibleFile" title="文件配置管理" width="60%" destroy-on-close :key="tableKey">
|
|
|
<div style="display: flex;align-items: center;width: 100%;">
|
|
<div style="display: flex;align-items: center;width: 100%;">
|
|
|
<div>
|
|
<div>
|
|
|
文件类型:
|
|
文件类型:
|
|
@@ -540,7 +552,7 @@
|
|
|
style="width: 100%;margin-left: 1%;"
|
|
style="width: 100%;margin-left: 1%;"
|
|
|
>
|
|
>
|
|
|
<el-option
|
|
<el-option
|
|
|
- v-for="item in optionsDs"
|
|
|
|
|
|
|
+ v-for="item in optionsFileTy"
|
|
|
:key="item.value"
|
|
:key="item.value"
|
|
|
:label="item.label"
|
|
:label="item.label"
|
|
|
:value="item.value"
|
|
:value="item.value"
|
|
@@ -557,7 +569,7 @@
|
|
|
style="width: 100%;margin-left: 1%;"
|
|
style="width: 100%;margin-left: 1%;"
|
|
|
>
|
|
>
|
|
|
<el-option
|
|
<el-option
|
|
|
- v-for="item in optionsDs"
|
|
|
|
|
|
|
+ v-for="item in optionsFilege"
|
|
|
:key="item.value"
|
|
:key="item.value"
|
|
|
:label="item.label"
|
|
:label="item.label"
|
|
|
:value="item.value"
|
|
:value="item.value"
|
|
@@ -583,138 +595,22 @@
|
|
|
>
|
|
>
|
|
|
|
|
|
|
|
<el-tab-pane label="参数" name="first">
|
|
<el-tab-pane label="参数" name="first">
|
|
|
- <div style="display: flex;width: 100%;margin-top: 0%;">
|
|
|
|
|
- <el-button @click="addCanAdd" style="margin-top: 0%;" type="success" size="mini" plain>新增字段</el-button>
|
|
|
|
|
- </div>
|
|
|
|
|
- <el-table
|
|
|
|
|
- style="margin-top: 1%;width: 98%;"
|
|
|
|
|
- :data="tableDataCanAdd"
|
|
|
|
|
- :cell-style="{ textAlign: 'center',padding:'2px 0' }"
|
|
|
|
|
- :header-cell-style="{ textAlign: 'center'}"
|
|
|
|
|
- :row-style="{ height: heightAll*0.01+'px',fontSize: '16px',textAlign:'center' }"
|
|
|
|
|
- border >
|
|
|
|
|
- <el-table-column prop="itemName" label="字段编码" width="200">
|
|
|
|
|
- <template #default="scope">
|
|
|
|
|
- <el-input placeholder="(必填)" type="primary" class="noBor" v-model="scope.row.fieldCode" size="mini" text style="margin-left: 0%;"></el-input>
|
|
|
|
|
- </template>
|
|
|
|
|
- </el-table-column>
|
|
|
|
|
- <el-table-column prop="itemName" label="字段名称">
|
|
|
|
|
- <template #default="scope">
|
|
|
|
|
- <div style="width: 100%;">
|
|
|
|
|
- <el-input placeholder="" type="primary" class="noBor" v-model="scope.row.fieldName" size="mini" text style="margin-left: 0%;"></el-input>
|
|
|
|
|
- </div>
|
|
|
|
|
- </template>
|
|
|
|
|
- </el-table-column>
|
|
|
|
|
- <el-table-column prop="itemName" label="字段类型">
|
|
|
|
|
- <template #default="scope">
|
|
|
|
|
- <div style="width: 100%;">
|
|
|
|
|
- <el-input placeholder="" type="primary" class="noBor" v-model="scope.row.metaType" size="mini" text style="margin-left: 0%;"></el-input>
|
|
|
|
|
- </div>
|
|
|
|
|
- </template>
|
|
|
|
|
- </el-table-column>
|
|
|
|
|
- <el-table-column prop="itemName" label="长度" >
|
|
|
|
|
- <template #default="scope">
|
|
|
|
|
- <div style="width: 100%;">
|
|
|
|
|
- <el-input type="primary" class="noBor" v-model="scope.row.fieldLength" size="mini" text style="margin-left: 0%;"></el-input>
|
|
|
|
|
- </div>
|
|
|
|
|
- </template>
|
|
|
|
|
- </el-table-column>
|
|
|
|
|
- <el-table-column prop="itemName" label="默认值" >
|
|
|
|
|
- <template #default="scope">
|
|
|
|
|
- <div style="width: 100%;">
|
|
|
|
|
- <el-input type="primary" class="noBor" v-model="scope.row.fieldDefault" size="mini" text style="margin-left: 0%;"></el-input>
|
|
|
|
|
- </div>
|
|
|
|
|
- </template>
|
|
|
|
|
- </el-table-column>
|
|
|
|
|
- <el-table-column prop="itemName" label="说明" >
|
|
|
|
|
- <template #default="scope">
|
|
|
|
|
- <div style="width: 100%;">
|
|
|
|
|
- <el-input type="primary" class="noBor" v-model="scope.row.fieldDesc" size="mini" text style="margin-left: 0%;"></el-input>
|
|
|
|
|
- </div>
|
|
|
|
|
- </template>
|
|
|
|
|
- </el-table-column>
|
|
|
|
|
- <el-table-column prop="itemName" label="主键" width="80">
|
|
|
|
|
- <template #default="scope">
|
|
|
|
|
- <div style="width: 100%;">
|
|
|
|
|
- <el-checkbox v-model="scope.row.fieldIspri" label="" size="large" />
|
|
|
|
|
- </div>
|
|
|
|
|
- </template>
|
|
|
|
|
- </el-table-column>
|
|
|
|
|
- <el-table-column prop="address" label="操作" width="100">
|
|
|
|
|
- <template #default="scope">
|
|
|
|
|
- <div style="width: 100%;">
|
|
|
|
|
- <el-button type="danger" @click="delCanAdd(scope.$index)" size="mini" text style="margin-left: 0%;">删除</el-button>
|
|
|
|
|
- </div>
|
|
|
|
|
- </template>
|
|
|
|
|
- </el-table-column>
|
|
|
|
|
- </el-table>
|
|
|
|
|
- </el-tab-pane>
|
|
|
|
|
- <el-tab-pane label="结果集" name="second">
|
|
|
|
|
- <div style="display: flex;width: 100%;margin-top: 0%;">
|
|
|
|
|
- <el-button @click="addCanAdd" style="margin-top: 0%;" type="success" size="mini" plain>新增字段</el-button>
|
|
|
|
|
- </div>
|
|
|
|
|
- <el-table
|
|
|
|
|
- style="margin-top: 1%;width: 98%;"
|
|
|
|
|
- :data="tableDataCanAdd"
|
|
|
|
|
- :cell-style="{ textAlign: 'center',padding:'2px 0' }"
|
|
|
|
|
- :header-cell-style="{ textAlign: 'center'}"
|
|
|
|
|
- :row-style="{ height: heightAll*0.01+'px',fontSize: '16px',textAlign:'center' }"
|
|
|
|
|
- border >
|
|
|
|
|
- <el-table-column prop="itemName" label="字段编码" width="200">
|
|
|
|
|
- <template #default="scope">
|
|
|
|
|
- <el-input placeholder="(必填)" type="primary" class="noBor" v-model="scope.row.fieldCode" size="mini" text style="margin-left: 0%;"></el-input>
|
|
|
|
|
- </template>
|
|
|
|
|
- </el-table-column>
|
|
|
|
|
- <el-table-column prop="itemName" label="字段名称">
|
|
|
|
|
- <template #default="scope">
|
|
|
|
|
- <div style="width: 100%;">
|
|
|
|
|
- <el-input placeholder="" type="primary" class="noBor" v-model="scope.row.fieldName" size="mini" text style="margin-left: 0%;"></el-input>
|
|
|
|
|
- </div>
|
|
|
|
|
- </template>
|
|
|
|
|
- </el-table-column>
|
|
|
|
|
- <el-table-column prop="itemName" label="字段类型">
|
|
|
|
|
- <template #default="scope">
|
|
|
|
|
- <div style="width: 100%;">
|
|
|
|
|
- <el-input placeholder="" type="primary" class="noBor" v-model="scope.row.metaType" size="mini" text style="margin-left: 0%;"></el-input>
|
|
|
|
|
- </div>
|
|
|
|
|
- </template>
|
|
|
|
|
- </el-table-column>
|
|
|
|
|
- <el-table-column prop="itemName" label="长度" >
|
|
|
|
|
- <template #default="scope">
|
|
|
|
|
- <div style="width: 100%;">
|
|
|
|
|
- <el-input type="primary" class="noBor" v-model="scope.row.fieldLength" size="mini" text style="margin-left: 0%;"></el-input>
|
|
|
|
|
- </div>
|
|
|
|
|
- </template>
|
|
|
|
|
- </el-table-column>
|
|
|
|
|
- <el-table-column prop="itemName" label="默认值" >
|
|
|
|
|
- <template #default="scope">
|
|
|
|
|
- <div style="width: 100%;">
|
|
|
|
|
- <el-input type="primary" class="noBor" v-model="scope.row.fieldDefault" size="mini" text style="margin-left: 0%;"></el-input>
|
|
|
|
|
- </div>
|
|
|
|
|
- </template>
|
|
|
|
|
- </el-table-column>
|
|
|
|
|
- <el-table-column prop="itemName" label="说明" >
|
|
|
|
|
- <template #default="scope">
|
|
|
|
|
- <div style="width: 100%;">
|
|
|
|
|
- <el-input type="primary" class="noBor" v-model="scope.row.fieldDesc" size="mini" text style="margin-left: 0%;"></el-input>
|
|
|
|
|
- </div>
|
|
|
|
|
- </template>
|
|
|
|
|
- </el-table-column>
|
|
|
|
|
- <el-table-column prop="itemName" label="主键" width="80">
|
|
|
|
|
- <template #default="scope">
|
|
|
|
|
- <div style="width: 100%;">
|
|
|
|
|
- <el-checkbox v-model="scope.row.fieldIspri" label="" size="large" />
|
|
|
|
|
- </div>
|
|
|
|
|
- </template>
|
|
|
|
|
- </el-table-column>
|
|
|
|
|
- <el-table-column prop="address" label="操作" width="100">
|
|
|
|
|
- <template #default="scope">
|
|
|
|
|
- <div style="width: 100%;">
|
|
|
|
|
- <el-button type="danger" @click="delCanAdd(scope.$index)" size="mini" text style="margin-left: 0%;">删除</el-button>
|
|
|
|
|
- </div>
|
|
|
|
|
- </template>
|
|
|
|
|
- </el-table-column>
|
|
|
|
|
- </el-table>
|
|
|
|
|
|
|
+ <el-upload
|
|
|
|
|
+ ref="uploadRef"
|
|
|
|
|
+ :limit="1"
|
|
|
|
|
+ accept=".xlsx, .xls"
|
|
|
|
|
+ :headers="upload.headers"
|
|
|
|
|
+ :on-change="handleChange"
|
|
|
|
|
+ :file-list="fileList"
|
|
|
|
|
+ :action="upload.url + '?file=' + upload.updateSupport"
|
|
|
|
|
+ :on-progress="handleFileUploadProgress"
|
|
|
|
|
+ :on-success="handleFileSuccess"
|
|
|
|
|
+ :auto-upload="false"
|
|
|
|
|
+ drag
|
|
|
|
|
+ >
|
|
|
|
|
+ <el-icon class="el-icon--upload"><upload-filled /></el-icon>
|
|
|
|
|
+ <div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
|
|
|
|
|
+ </el-upload>
|
|
|
</el-tab-pane>
|
|
</el-tab-pane>
|
|
|
<el-tab-pane label="预览" name="third">
|
|
<el-tab-pane label="预览" name="third">
|
|
|
<div style="overflow: auto;height: 20vh;margin-top: -1%;">
|
|
<div style="overflow: auto;height: 20vh;margin-top: -1%;">
|
|
@@ -728,7 +624,7 @@
|
|
|
</div>
|
|
</div>
|
|
|
</div>
|
|
</div>
|
|
|
<template #footer>
|
|
<template #footer>
|
|
|
- <span class="dialog-footer">
|
|
|
|
|
|
|
+ <span class="dialog-footer">
|
|
|
<el-button size="mini" @click="dialogVisibleTree = false">取消</el-button>
|
|
<el-button size="mini" @click="dialogVisibleTree = false">取消</el-button>
|
|
|
<el-button type="primary" @click="addPei" size="mini">
|
|
<el-button type="primary" @click="addPei" size="mini">
|
|
|
提交
|
|
提交
|
|
@@ -744,6 +640,7 @@ import { modelTreeSelect } from "@/api/service/info";
|
|
|
import { cateTree,addCate,delCate,fieldAll,addSet,dataSetList,editSet,fieldAdd,delField,getDataSourceList,delSet } from "@/api/register/regCom.js";
|
|
import { cateTree,addCate,delCate,fieldAll,addSet,dataSetList,editSet,fieldAdd,delField,getDataSourceList,delSet } from "@/api/register/regCom.js";
|
|
|
import { ref, onMounted, onUnmounted, nextTick } from 'vue';
|
|
import { ref, onMounted, onUnmounted, nextTick } from 'vue';
|
|
|
import Codemirror from 'codemirror-editor-vue3';
|
|
import Codemirror from 'codemirror-editor-vue3';
|
|
|
|
|
+import { getToken } from "@/utils/auth";
|
|
|
import 'codemirror/lib/codemirror.css'; // 核心样式
|
|
import 'codemirror/lib/codemirror.css'; // 核心样式
|
|
|
import 'codemirror/theme/dracula.css'; // 主题
|
|
import 'codemirror/theme/dracula.css'; // 主题
|
|
|
import 'codemirror/mode/sql/sql.js';
|
|
import 'codemirror/mode/sql/sql.js';
|
|
@@ -759,9 +656,35 @@ const cmOptions = {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
};
|
|
};
|
|
|
|
|
+const upload = reactive({
|
|
|
|
|
+ // 是否显示弹出层(用户导入)
|
|
|
|
|
+ open: false,
|
|
|
|
|
+ // 弹出层标题(用户导入)
|
|
|
|
|
+ title: "",
|
|
|
|
|
+ // 是否禁用上传
|
|
|
|
|
+ isUploading: false,
|
|
|
|
|
+ // 是否更新已经存在的用户数据
|
|
|
|
|
+ updateSupport: '',
|
|
|
|
|
+ // 设置上传的请求头部
|
|
|
|
|
+ headers: { Authorization: "Bearer " + getToken() },
|
|
|
|
|
+ // 上传的地址
|
|
|
|
|
+ url: import.meta.env.VITE_APP_BASE_API + "/common/upload"
|
|
|
|
|
+});
|
|
|
|
|
+const optionsShuLei = ref([
|
|
|
|
|
+ {label:"SQL数据集",
|
|
|
|
|
+ value:'SQL数据集'
|
|
|
|
|
+ },
|
|
|
|
|
+ {label:"API数据集",
|
|
|
|
|
+ value:'API数据集'
|
|
|
|
|
+ },
|
|
|
|
|
+ {label:"文件数据集",
|
|
|
|
|
+ value:'文件数据集'
|
|
|
|
|
+ },
|
|
|
|
|
+])
|
|
|
const activeName = ref('first')
|
|
const activeName = ref('first')
|
|
|
|
|
+const uploadRef = ref(null);
|
|
|
const dialogVisibleApi = ref(false)
|
|
const dialogVisibleApi = ref(false)
|
|
|
-const dialogVisibleFile = ref(true)
|
|
|
|
|
|
|
+const dialogVisibleFile = ref(false)
|
|
|
const valueSel = ref('')
|
|
const valueSel = ref('')
|
|
|
const { proxy } = getCurrentInstance();
|
|
const { proxy } = getCurrentInstance();
|
|
|
const data = ref([])
|
|
const data = ref([])
|
|
@@ -778,7 +701,7 @@ const dialogVisibleTree = ref(false)
|
|
|
const isAdd = ref(false)
|
|
const isAdd = ref(false)
|
|
|
const isAddTa = ref(false)
|
|
const isAddTa = ref(false)
|
|
|
const treeId = ref('');
|
|
const treeId = ref('');
|
|
|
-const dcName =ref()
|
|
|
|
|
|
|
+const dcName =ref()
|
|
|
const parDel = ref({})
|
|
const parDel = ref({})
|
|
|
const parTree = ref(null)
|
|
const parTree = ref(null)
|
|
|
const formZu = ref({
|
|
const formZu = ref({
|
|
@@ -923,9 +846,16 @@ tableDataCanAdd.value.forEach((item, index, array)=>{
|
|
|
|
|
|
|
|
}
|
|
}
|
|
|
function showPei(row){
|
|
function showPei(row){
|
|
|
-
|
|
|
|
|
- dialogVisibleTree.value = true
|
|
|
|
|
-
|
|
|
|
|
|
|
+ // dialogVisibleTree.value = true
|
|
|
|
|
+ if(row.dcType==='SQL数据集'){
|
|
|
|
|
+ dialogVisibleTree.value = true
|
|
|
|
|
+ }
|
|
|
|
|
+ if(row.dcType==='API数据集'){
|
|
|
|
|
+ dialogVisibleApi.value = true
|
|
|
|
|
+ }
|
|
|
|
|
+ if(row.dcType==='文件数据集'){
|
|
|
|
|
+ dialogVisibleFile.value = true
|
|
|
|
|
+ }
|
|
|
parMeta.value = row
|
|
parMeta.value = row
|
|
|
var par = {
|
|
var par = {
|
|
|
dsCode:parDscode.value,
|
|
dsCode:parDscode.value,
|