Commit fd326b87 by 刘泽志

0202

parent 8ef73186
import request from "@/utils/request";
const prefix = '/data/field'
/**
* 字段查询
* @param params
* @returns {*}
*/
export function queryField(params) {
return request({
url: `${prefix}`,
method: 'get',
params
})
}
/**
* 新增字段
* @param data
* @returns {*}
*/
export function addField(data) {
return request({
url: `${prefix}`,
method: 'post',
data
})
}
/**
* 修改字段
* @param data
* @returns {*}
*/
export function updateField(data) {
return request({
url: `${prefix}/update`,
method: 'post',
data
})
}
/**
* 删除字段
* @param fieldId
* @returns {*}
*/
export function deleteField(fieldId) {
return request({
url: `${prefix}/delete`,
method: 'get',
params:{fieldId}
})
}
/**
* 根据基础模板重置字段
* @param excelId
* @returns {*}
*/
export function resetField(excelId){
return request({
url: `${prefix}/reset`,
method: 'get',
params:{excelId}
})
}
import request from '@/utils/request'
const prefix = '/data/import'
/**
* 查询数据源字典
* @returns {AxiosPromise<any>}
*/
export function queryDatasource() {
return request({
url: `${prefix}/datasource`,
method: 'get'
})
}
/**
* 查询表信息
* @param dataSourceId
* @returns {AxiosPromise<any>}
*/
export function queryTable(dataSourceId) {
return request({
url: `${prefix}/datasource/table`,
method: 'get',
params:{dataSourceId}
})
}
/**
* 查询数据库字段字典
* @param dataSourceId
* @param tableName
* @returns {AxiosPromise}
*/
export function queryDbField(dataSourceId,tableName) {
return request({
url: `${prefix}/datasource/field`,
method: 'get',
params:{dataSourceId,tableName}
})
}
/**
* 创建物理表
* @param tableName
* @param templateId
* @returns {*}
*/
export function createTable(tableName,templateId){
return request({
url: `${prefix}/table/create`,
method: 'get',
params:{tableName,templateId}
})
}
/**
* 数据分析并导出
* @param templateId
* @returns {*}
*/
export function analyzeExport(templateId){
return request({
url: `${prefix}/analyze/export`,
method: 'get',
params:{templateId},
responseType: "blob",
})
}
/**
* 清空数据
* @param data
* @returns {*}
*/
export function clearTemp(data){
return request({
url: `${prefix}/clearTemp`,
method: 'post',
data
})
}
/**
* 一键导入正式库
* @param data
* @returns {*}
*/
export function syncDb(data){
return request({
url: `${prefix}/syncDb`,
method: 'post',
data
})
}
import request from "@/utils/request";
const prefix = '/data/rule'
/**
* 规则查询
* @param params
* @returns {*}
*/
export function queryRule(params) {
return request({
url: `${prefix}`,
method: 'get',
params
})
}
/**
* 规则字典
* @returns {*}
*/
export function queryRuleDict() {
return request({
url: `${prefix}/dict`,
method: 'get'
})
}
/**
* 新增规则
* @param data
* @returns {*}
*/
export function addRule(data) {
return request({
url: `${prefix}`,
method: 'post',
data
})
}
/**
* 修改规则
* @param data
* @returns {*}
*/
export function updateRule(data) {
return request({
url: `${prefix}/update`,
method: 'post',
data
})
}
/**
* 删除规则
* @param ruleId
* @returns {*}
*/
export function deleteRule(ruleId) {
return request({
url: `${prefix}/delete`,
method: 'get',
params:{ruleId}
})
}
/**
* 规则测试
* @param data
* @returns {*}
*/
export function ruleTest(data) {
return request({
url: `${prefix}/test`,
method: 'post',
data
})
}
/**
* 快速绑定
* @param templateId
* @param ruleId
* @returns {AxiosPromise}
*/
export function quickBind(templateId,ruleId) {
return request({
url: `${prefix}/bind/quick`,
method: 'get',
params:{templateId,ruleId}
})
}
/**
* 查询绑定的规则
* @param fieldId
* @returns {AxiosPromise}
*/
export function queryBindRule(fieldId) {
return request({
url: `${prefix}/bind`,
method: 'get',
params:{fieldId}
})
}
/**
* 配置字段规则绑定
* @param data
* @returns {AxiosPromise}
*/
export function bindRule(data) {
return request({
url: `${prefix}/bind`,
method: 'post',
data
})
}
import request from '@/utils/request'
const prefix = '/data/template'
/**
* 模板查询
* @param params
* @returns {*}
*/
export function queryTemplate(params) {
return request({
url: `${prefix}`,
method: 'get',
params
})
}
/**
* 新增模板
* @param data
* @returns {*}
*/
export function addTemplate(data) {
return request({
url: `${prefix}`,
method: 'post',
data
})
}
/**
* 修改模板
* @param data
* @returns {*}
*/
export function updateTemplate(data) {
return request({
url: `${prefix}/update`,
method: 'post',
data
})
}
/**
* 删除模板
* @param templateId
* @returns {*}
*/
export function deleteTemplate(templateId) {
return request({
url: `${prefix}/delete`,
method: 'get',
params:{templateId}
})
}
/**
* 查询模板的所有字段数据
* @param templateId
* @returns {*}
*/
export function getAllTemplateField(templateId) {
return request({
url: `${prefix}/allField`,
method: 'get',
params:{templateId}
})
}
/**
* 查询模板的所有规则数据
* @param templateId
* @returns {*}
*/
export function getAllTemplateRule(templateId) {
return request({
url: `${prefix}/allRule`,
method: 'get',
params:{templateId}
})
}
/**
* 新增规则
* @param data
* @returns {*}
*/
export function addRuleByTemplate(data) {
return request({
url: `${prefix}/rule`,
method: 'post',
data
})
}
/**
* 修改规则
* @param data
* @returns {*}
*/
export function updateRuleByTemplate(data) {
return request({
url: `${prefix}/rule/update`,
method: 'post',
data
})
}
/**
* 删除规则
* @param ruleId
* @param templateId
* @returns {*}
*/
export function deleteRuleByTemplate(ruleId,templateId) {
return request({
url: `${prefix}/rule/delete`,
method: 'get',
params:{ruleId,templateId}
})
}
import request from "@/utils/request";
const prefix = '/data/dict'
/**
* 字典查询
* @param type
* @returns {*}
*/
export function queryDict(type) {
return request({
url: `${prefix}`,
method: 'get',
params:{type}
})
}
/**
* 新增字典
* @param data
* @returns {*}
*/
export function addDict(data) {
return request({
url: `${prefix}`,
method: 'post',
data
})
}
/**
* 修改字典
* @param data
* @returns {*}
*/
export function updateDict(data) {
return request({
url: `${prefix}/update`,
method: 'post',
data
})
}
/**
* 删除字典
* @param dictId
* @returns {*}
*/
export function deleteDict(dictId) {
return request({
url: `${prefix}/delete`,
method: 'get',
params:{dictId}
})
}
import request from '@/utils/request'
const prefix = '/dataImport'
/**
* 模板查询
* @param params
* @returns {*}
*/
export function queryTemplate(params) {
return request({
url: `${prefix}/template`,
method: 'get',
params
})
}
/**
* 新增模板
* @param data
* @returns {*}
*/
export function addTemplate(data) {
return request({
url: `${prefix}/template`,
method: 'post',
data
})
}
/**
* 修改模板
* @param data
* @returns {*}
*/
export function updateTemplate(data) {
return request({
url: `${prefix}/template/update`,
method: 'post',
data
})
}
/**
* 删除模板
* @param templateId
* @returns {*}
*/
export function deleteTemplate(templateId) {
return request({
url: `${prefix}/template/delete`,
method: 'get',
params:{templateId}
})
}
/**
* 字典查询
* @param type
* @returns {*}
*/
export function queryDict(type) {
return request({
url: `${prefix}/dict`,
method: 'get',
params:{type}
})
}
/**
* 新增字典
* @param data
* @returns {*}
*/
export function addDict(data) {
return request({
url: `${prefix}/dict`,
method: 'post',
data
})
}
/**
* 修改字典
* @param data
* @returns {*}
*/
export function updateDict(data) {
return request({
url: `${prefix}/dict/update`,
method: 'post',
data
})
}
/**
* 删除字典
* @param dictId
* @returns {*}
*/
export function deleteDict(dictId) {
return request({
url: `${prefix}/dict/delete`,
method: 'get',
params:{dictId}
})
}
/**
* 查询数据源字典
* @returns {AxiosPromise<any>}
*/
export function queryDatasource() {
return request({
url: `${prefix}/datasource`,
method: 'get'
})
}
/**
* 查询表信息
* @param dataSourceId
* @returns {AxiosPromise<any>}
*/
export function queryTable(dataSourceId) {
return request({
url: `${prefix}/datasource/table`,
method: 'get',
params:{dataSourceId}
})
}
/**
* 查询数据库字段字典
* @param dataSourceId
* @param tableName
* @returns {AxiosPromise}
*/
export function queryDbField(dataSourceId,tableName) {
return request({
url: `${prefix}/datasource/field`,
method: 'get',
params:{dataSourceId,tableName}
})
}
/**
* 字段查询
* @param params
* @returns {*}
*/
export function queryField(params) {
return request({
url: `${prefix}/field`,
method: 'get',
params
})
}
/**
* 新增字段
* @param data
* @returns {*}
*/
export function addField(data) {
return request({
url: `${prefix}/field`,
method: 'post',
data
})
}
/**
* 修改字段
* @param data
* @returns {*}
*/
export function updateField(data) {
return request({
url: `${prefix}/field/update`,
method: 'post',
data
})
}
/**
* 删除字段
* @param fieldId
* @returns {*}
*/
export function deleteField(fieldId) {
return request({
url: `${prefix}/field/delete`,
method: 'get',
params:{fieldId}
})
}
/**
* 规则查询
* @param params
* @returns {*}
*/
export function queryRule(params) {
return request({
url: `${prefix}/rule`,
method: 'get',
params
})
}
/**
* 规则字典
* @returns {*}
*/
export function queryRuleDict() {
return request({
url: `${prefix}/rule/dict`,
method: 'get'
})
}
/**
* 新增规则
* @param data
* @returns {*}
*/
export function addRule(data) {
return request({
url: `${prefix}/rule`,
method: 'post',
data
})
}
/**
* 修改规则
* @param data
* @returns {*}
*/
export function updateRule(data) {
return request({
url: `${prefix}/rule/update`,
method: 'post',
data
})
}
/**
* 删除规则
* @param ruleId
* @returns {*}
*/
export function deleteRule(ruleId) {
return request({
url: `${prefix}/rule/delete`,
method: 'get',
params:{ruleId}
})
}
/**
* 规则测试
* @param data
* @returns {*}
*/
export function ruleTest(data) {
return request({
url: `${prefix}/rule/test`,
method: 'post',
data
})
}
/**
* 快速绑定
* @param templateId
* @param ruleId
* @returns {AxiosPromise}
*/
export function quickBind(templateId,ruleId) {
return request({
url: `${prefix}/bind/quick`,
method: 'get',
params:{templateId,ruleId}
})
}
/**
* 查询绑定的规则
* @param fieldId
* @returns {AxiosPromise}
*/
export function queryBindRule(fieldId) {
return request({
url: `${prefix}/bind`,
method: 'get',
params:{fieldId}
})
}
/**
* 配置字段规则绑定
* @param data
* @returns {AxiosPromise}
*/
export function bindRule(data) {
return request({
url: `${prefix}/bind`,
method: 'post',
data
})
}
/**
* 上传excel
* @param data
* @returns {*}
*/
export function uploadExcel(data) {
return request({
url: `${prefix}/upload`,
method: 'post',
data,
headers: {
'Content-Type': 'multipart/form-data'
}
})
}
/**
* 下载模板
* @param excelId
* @returns {*}
*/
export function downloadTemplate(excelId) {
return request({
url: `${prefix}/template/download`,
method: 'get',
params:{excelId},
headers: { "Content-Type": "application/x-www-form-urlencoded" },
responseType: "blob",
})
}
/**
* 下载模板
* @param excelId
* @returns {*}
*/
export function getTemplateFileName(excelId) {
return request({
url: `${prefix}/template/download/filename`,
method: 'get',
params:{excelId}
})
}
export async function blobValidate(data) {
try {
const text = await data.text();
JSON.parse(text);
return false;
} catch (error) {
return true;
}
}
/**
* 根据基础模板重置字段
* @param excelId
* @returns {*}
*/
export function resetField(excelId){
return request({
url: `${prefix}/field/reset`,
method: 'get',
params:{excelId}
})
}
/**
* 创建物理表
* @param tableName
* @param templateId
* @returns {*}
*/
export function createTable(tableName,templateId){
return request({
url: `${prefix}/table/create`,
method: 'get',
params:{tableName,templateId}
})
}
/**
* 数据分析并导出
* @param templateId
* @returns {*}
*/
export function analyzeExport(templateId){
return request({
url: `${prefix}/analyze/export`,
method: 'get',
params:{templateId},
responseType: "blob",
})
}
/**
* 清空数据
* @param data
* @returns {*}
*/
export function clearTemp(data){
return request({
url: `${prefix}/clearTemp`,
method: 'post',
data
})
}
/**
* 一键导入正式库
* @param data
* @returns {*}
*/
export function syncDb(data){
return request({
url: `${prefix}/syncDb`,
method: 'post',
data
})
}
/**
* 查询模板的所有字段数据
* @param templateId
* @returns {*}
*/
export function getAllTemplateField(templateId) {
return request({
url: `${prefix}/template/allField`,
method: 'get',
params:{templateId}
})
}
/**
* 查询模板的所有规则数据
* @param templateId
* @returns {*}
*/
export function getAllTemplateRule(templateId) {
return request({
url: `${prefix}/template/allRule`,
method: 'get',
params:{templateId}
})
}
/**
* 新增规则
* @param data
* @returns {*}
*/
export function addRuleByTemplate(data) {
return request({
url: `${prefix}/rule/template`,
method: 'post',
data
})
}
/**
* 修改规则
* @param data
* @returns {*}
*/
export function updateRuleByTemplate(data) {
return request({
url: `${prefix}/rule/template/update`,
method: 'post',
data
})
}
/**
* 删除规则
* @param ruleId
* @param templateId
* @returns {*}
*/
export function deleteRuleByTemplate(ruleId,templateId) {
return request({
url: `${prefix}/rule/template/delete`,
method: 'get',
params:{ruleId,templateId}
})
}
import request from "@/utils/request";
const prefix = '/data/excel'
/**
* 上传excel
* @param data
* @returns {*}
*/
export function uploadExcel(data) {
return request({
url: `${prefix}/upload`,
method: 'post',
data,
headers: {
'Content-Type': 'multipart/form-data'
}
})
}
/**
* 下载模板
* @param excelId
* @returns {*}
*/
export function downloadTemplate(excelId) {
return request({
url: `${prefix}/download/template`,
method: 'get',
params:{excelId},
headers: { "Content-Type": "application/x-www-form-urlencoded" },
responseType: "blob",
})
}
/**
* 下载模板
* @param excelId
* @returns {*}
*/
export function getTemplateFileName(excelId) {
return request({
url: `${prefix}/download/template/filename`,
method: 'get',
params:{excelId}
})
}
export async function blobValidate(data) {
try {
const text = await data.text();
JSON.parse(text);
return false;
} catch (error) {
return true;
}
}
......@@ -7,6 +7,7 @@
</div>
<el-menu :default-active="key" class="empty-menu" mode="horizontal" @select="handleSelect">
<el-menu-item index="/emport">数据导入</el-menu-item>
<el-menu-item index="/field">元字段管理</el-menu-item>
<el-menu-item index="/rule">规则管理</el-menu-item>
<el-menu-item index="/datasource">数据源管理</el-menu-item>
</el-menu>
......
......@@ -53,7 +53,13 @@ export const constantRoutes = [
component: () => import('@/views/emport/datasource/index'),
name: 'DatsSource',
meta: { title: '数据源管理', icon: '' }
}
},
{
path: 'field',
component: () => import('@/views/emport/field/index'),
name: 'Field',
meta: { title: '字段管理', icon: '' }
},
]
},
{
......
<template>
<div class="app-container">
<div class="header-operator">
<el-form label-width="80px" inline>
<el-form-item label="字段名">
<el-input v-model="queryParam.fieldName" class="mr input" clearable placeholder="输入名称搜索"
size="small"
/>
</el-form-item>
<el-form-item label="字段类型">
<el-input v-model="queryParam.fieldType" class="mr input" clearable placeholder="输入名称搜索"
size="small"/>
</el-form-item>
<el-form-item label="指标名称">
<el-input v-model="queryParam.fieldComment" class="mr input" clearable placeholder="输入名称搜索"
size="small"/>
</el-form-item>
<el-form-item>
<el-button type="primary" class="mr" icon="el-icon-search" size="mini" :loading="queryLoading"
@click="queryRuleList"
>
查询
</el-button>
<el-button type="success" class="mr" size="mini" @click="openAddruleDialog">
新增
</el-button>
</el-form-item>
</el-form>
<el-table v-loading="queryLoading" :data="fieldList" stripe border>
<el-table-column :show-overflow-tooltip="true" align="center" label="字段名" prop="fieldName"/>
<el-table-column :show-overflow-tooltip="true" align="center" label="字段类型" prop="fieldType"/>
<el-table-column :show-overflow-tooltip="true" align="center" label="指标名称" prop="fieldComment"/>
<el-table-column :show-overflow-tooltip="true" align="center" label="备注" prop="remarks"/>
<el-table-column label="操作" align="center" width="150" show-overflow-tooltip>
<template slot-scope="scope">
<el-button circle icon="el-icon-edit" plain size="small" type="primary"
@click.stop="editRuleDialog(scope.row)"
></el-button>
<el-button circle icon="el-icon-delete" plain size="small" type="danger"
@click.stop="deleteRule(scope.row)"
></el-button>
</template>
</el-table-column>
</el-table>
<pagination v-show="queryParam.total > 0" :total="queryParam.total" :page.sync="queryParam.pageNum"
:limit.sync="queryParam.pageSize" @pagination="queryRuleList"
/>
<!--字段增改-->
<el-dialog :title="dialogData.title" @open="openDialog" :visible.sync="dialogData.show" width="400px"
:close-on-click-modal="false" append-to-body
>
<el-form ref="fieldForm" :model="dialogData.data" label-width="80px">
<el-form-item required prop="name" label="字段名">
<el-input v-model="dialogData.data.name" size="small"/>
</el-form-item>
<el-form-item required label="字段类型" prop="type">
<el-select @change="typeChange" size="small" v-model="dialogData.data.type" style="width: 160px">
<el-option v-for="item in typeDict" :key="item" :label="item" :value="item"/>
</el-select>
</el-form-item>
<el-form-item required label="指标名称" prop="mode">
<el-select @change="modeChange" size="small" v-model="dialogData.data.mode" style="width: 160px">
<el-option v-for="item in modeDict" :key="item" :label="item" :value="item"/>
</el-select>
</el-form-item>
<el-form-item prop="remarks" label="备注">
<el-input v-model="dialogData.data.remarks" placeholder="备注" type="textarea"/>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="testRule(dialogData.data)">规则测试</el-button>
<el-button type="primary" @click="submitRule">确 定</el-button>
<el-button @click="dialogData.show = false">取 消</el-button>
</div>
</el-dialog>
</div>
</div>
</template>
<script>
import * as DataField from '@/api/emport/DataField'
import * as DataImport from '@/api/emport/DataImport'
import * as DataRule from '@/api/emport/DataRule'
import * as DataTemplate from '@/api/emport/DataTemplate'
import * as DictData from '@/api/emport/DictData'
import * as ExcelData from '@/api/emport/ExcelData'
export default {
name: "Field",
data(){
return{
queryParam:{
pageNum: 1,
pageSize: 20,
fieldName: '',
fieldType: '',
fieldComment: ''
},
queryLoading: false,
fieldList:[],
}
}
}
</script>
<style lang="scss" scoped>
.app-container {
box-shadow: none;
}
.header-operator {
display: flex;
flex-wrap: wrap;
align-items: center;
.mr {
margin-right: 8px;
margin-left: 0;
margin-bottom: 8px;
}
.input {
width: 250px;
}
}
</style>
......@@ -107,7 +107,11 @@ export default {
let split = this.value.split('=')
let arr = split[0].split(',')
arr[index] = value
this.$emit('changeValue', arr.join(',') + '=' + split[1] )
if (split.length === 1){
this.$emit('changeValue', arr.join(',') + '=' )
}else {
this.$emit('changeValue', arr.join(',') + '=' + split[1] )
}
this.$forceUpdate()
},
doSelectSecond(value, index) {
......
......@@ -107,7 +107,12 @@
</template>
<script>
import * as Emport from '@/api/emport/Emport'
import * as DataField from '@/api/emport/DataField'
import * as DataImport from '@/api/emport/DataImport'
import * as DataRule from '@/api/emport/DataRule'
import * as DataTemplate from '@/api/emport/DataTemplate'
import * as DictData from '@/api/emport/DictData'
import * as ExcelData from '@/api/emport/ExcelData'
import ArrayInput from '@/views/emport/rule/ArrayInput.vue'
import SectionInput from '@/views/emport/rule/SectionInput.vue'
import SectionSelect from '@/views/emport/rule/SectionSelect.vue'
......@@ -143,7 +148,7 @@ export default {
methods: {
// 初始化规则字典
initRuleDict() {
Emport.queryRuleDict().then(res => {
DataRule.queryRuleDict().then(res => {
this.ruleDict = res.data.map(item => {
return {
value: item.id,
......@@ -159,7 +164,7 @@ export default {
// 查询规则列表
queryRuleList() {
this.queryLoading = true
Emport.queryRule(this.queryParam).then(res => {
DataRule.queryRule(this.queryParam).then(res => {
if (res.code === 200) {
this.queryParam.total = res.total
this.ruleList = res.rows
......@@ -198,12 +203,12 @@ export default {
this.$refs.ruleForm.validate(validate => {
if (validate) {
if (this.dialogData.title === '添加规则') {
Emport.addRule(this.dialogData.data).then(res => {
DataRule.addRule(this.dialogData.data).then(res => {
this.dialogData.show = false
this.queryRuleList()
})
} else {
Emport.updateRule(this.dialogData.data).then(res => {
DataRule.updateRule(this.dialogData.data).then(res => {
this.dialogData.show = false
this.queryRuleList()
})
......@@ -220,7 +225,7 @@ export default {
cancelButtonText: '取消',
beforeClose: (action, instance, done) => {
if (action === 'confirm') {
Emport.deleteRule(row.id).then(res => {
DataRule.deleteRule(row.id).then(res => {
done()
this.queryRuleList()
})
......@@ -241,7 +246,7 @@ export default {
beforeClose: (action, instance, done) => {
if (action === 'confirm') {
instance.confirmButtonLoading = true
Emport.ruleTest({
DataRule.ruleTest({
...data,
value: instance.inputValue
}).then(res => {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment