|
@@ -6,224 +6,103 @@
|
|
|
!-->
|
|
|
<template>
|
|
|
<div class="app-container">
|
|
|
- <el-form>
|
|
|
+ <el-form v-permission="'resultsetManage:query'">
|
|
|
<!-- 搜索 -->
|
|
|
<el-row :gutter="10">
|
|
|
- <el-col :xs="24"
|
|
|
- :sm="20"
|
|
|
- :md="6"
|
|
|
- :lg="6"
|
|
|
- :xl="6">
|
|
|
- <el-form-item label="数据集编码"
|
|
|
- label-width="120px">
|
|
|
- <el-input v-model.trim="query.setCode"
|
|
|
- size="mini"
|
|
|
- clearable
|
|
|
- placeholder="数据集编码"
|
|
|
- class="filter-item" />
|
|
|
+ <el-col :xs="24" :sm="20" :md="6" :lg="6" :xl="6">
|
|
|
+ <el-form-item label="数据集编码" label-width="120px">
|
|
|
+ <el-input v-model.trim="query.setCode" size="mini" clearable placeholder="数据集编码" class="filter-item" />
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
- <el-col :xs="24"
|
|
|
- :sm="20"
|
|
|
- :md="6"
|
|
|
- :lg="6"
|
|
|
- :xl="6">
|
|
|
- <el-form-item label="数据集名称"
|
|
|
- label-width="120px">
|
|
|
- <el-input v-model.trim="query.setName"
|
|
|
- size="mini"
|
|
|
- clearable
|
|
|
- placeholder="数据源名称"
|
|
|
- class="filter-item" />
|
|
|
+ <el-col :xs="24" :sm="20" :md="6" :lg="6" :xl="6">
|
|
|
+ <el-form-item label="数据集名称" label-width="120px">
|
|
|
+ <el-input v-model.trim="query.setName" size="mini" clearable placeholder="数据源名称" class="filter-item" />
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
- <el-col :xs="24"
|
|
|
- :sm="20"
|
|
|
- :md="4"
|
|
|
- :lg="4"
|
|
|
- :xl="4" class="query">
|
|
|
- <el-button type="primary"
|
|
|
- size="mini"
|
|
|
- @click="search('form')">查询</el-button>
|
|
|
- <el-button type="danger"
|
|
|
- size="mini"
|
|
|
- @click="reset('form')">重置</el-button>
|
|
|
+ <el-col :xs="24" :sm="20" :md="4" :lg="4" :xl="4" class="query">
|
|
|
+ <el-button type="primary" size="mini" @click="search('form')">查询</el-button>
|
|
|
+ <el-button type="danger" size="mini" @click="reset('form')">重置</el-button>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
</el-form>
|
|
|
- <el-button type="primary"
|
|
|
- size="mini"
|
|
|
- @click="addOrEditDataSet()">+ 新增</el-button>
|
|
|
+ <el-button type="primary" size="mini" @click="addOrEditDataSet()" v-permission="'resultsetManage:insert'">+ 新增</el-button>
|
|
|
|
|
|
<!--表格渲染-->
|
|
|
- <el-table ref="table"
|
|
|
- v-loading="listLoading"
|
|
|
- border
|
|
|
- :data="data"
|
|
|
- size="small"
|
|
|
- class="mt10"
|
|
|
- style="width: 100%">
|
|
|
- <el-table-column align="center"
|
|
|
- label="序号"
|
|
|
- type="index"
|
|
|
- min-width="40" />
|
|
|
- <el-table-column prop="setName"
|
|
|
- label="数据集名称" />
|
|
|
- <el-table-column prop="setCode"
|
|
|
- label="数据集编码" />
|
|
|
- <el-table-column prop="setDesc"
|
|
|
- label="描述" />
|
|
|
+ <el-table ref="table" v-loading="listLoading" border :data="data" size="small" class="mt10" style="width: 100%">
|
|
|
+ <el-table-column align="center" label="序号" type="index" min-width="40" />
|
|
|
+ <el-table-column prop="setName" label="数据集名称" />
|
|
|
+ <el-table-column prop="setCode" label="数据集编码" />
|
|
|
+ <el-table-column prop="setDesc" label="描述" />
|
|
|
<el-table-column label="折叠列">
|
|
|
<template slot-scope="scope">
|
|
|
<el-button @click="isShowCaseResult(scope.row)">查看</el-button>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column prop="createBy"
|
|
|
- width="100"
|
|
|
- label="创建人" />
|
|
|
- <el-table-column prop="createTime"
|
|
|
- width="140"
|
|
|
- label="创建人" />
|
|
|
- <el-table-column prop="updateBy"
|
|
|
- width="100"
|
|
|
- label="更新人" />
|
|
|
- <el-table-column prop="updateTime"
|
|
|
- width="140"
|
|
|
- label="更新时间" />
|
|
|
- <el-table-column label="操作"
|
|
|
- width="120px"
|
|
|
- align="center">
|
|
|
+ <el-table-column prop="createBy" width="100" label="创建人" />
|
|
|
+ <el-table-column prop="createTime" width="140" label="创建人" />
|
|
|
+ <el-table-column prop="updateBy" width="100" label="更新人" />
|
|
|
+ <el-table-column prop="updateTime" width="140" label="更新时间" />
|
|
|
+ <el-table-column label="操作" width="120px" align="center">
|
|
|
<template slot-scope="scope">
|
|
|
- <el-button size="mini"
|
|
|
- type="text"
|
|
|
- @click="addOrEditDataSet(scope.row)">编辑</el-button>
|
|
|
+ <el-button size="mini" type="text" @click="addOrEditDataSet(scope.row)" v-permission="'resultsetManage:update'">编辑</el-button>
|
|
|
<!-- <el-popconfirm :title="'确定删除' + scope.row.setName + '吗?'"
|
|
|
@onConfirm="delect(scope.row)"> -->
|
|
|
- <el-button slot="reference"
|
|
|
- type="text"
|
|
|
- @click="delect(scope.row)">删除</el-button>
|
|
|
+ <el-button slot="reference" type="text" @click="delect(scope.row)" v-permission="'resultsetManage:delete'">删除</el-button>
|
|
|
<!-- </el-popconfirm> -->
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
</el-table>
|
|
|
<!--分页组件-->
|
|
|
<div class="block">
|
|
|
- <el-pagination :total="totalCount"
|
|
|
- :page-sizes="[10, 20, 50, 100]"
|
|
|
- :page-size="params.pageSize"
|
|
|
- :current-page="params.pageNumber"
|
|
|
- layout="total, sizes, prev, pager, next, jumper"
|
|
|
- @size-change="handleSizeChange"
|
|
|
- @current-change="handleCurrentChange" />
|
|
|
+ <el-pagination :total="totalCount" :page-sizes="[10, 20, 50, 100]" :page-size="params.pageSize" :current-page="params.pageNumber" layout="total, sizes, prev, pager, next, jumper" @size-change="handleSizeChange" @current-change="handleCurrentChange" />
|
|
|
</div>
|
|
|
|
|
|
<!--表单组件-->
|
|
|
- <el-dialog :visible.sync="dialogFormVisible"
|
|
|
- :title="dialogFormVisibleTitle"
|
|
|
- :close-on-click-modal="false"
|
|
|
- :close-on-press-escape="false"
|
|
|
- :before-close="handleClose"
|
|
|
- width="65%">
|
|
|
- <el-form ref="form"
|
|
|
- :model="formData"
|
|
|
- :rules="formRules"
|
|
|
- size="small"
|
|
|
- label-width="130px">
|
|
|
+ <el-dialog :visible.sync="dialogFormVisible" :title="dialogFormVisibleTitle" :close-on-click-modal="false" :close-on-press-escape="false" :before-close="handleClose" width="65%">
|
|
|
+ <el-form ref="form" :model="formData" :rules="formRules" size="small" label-width="130px">
|
|
|
<el-row :gutter="10">
|
|
|
- <el-col :xs="24"
|
|
|
- :sm="20"
|
|
|
- :md="6"
|
|
|
- :lg="6"
|
|
|
- :xl="6">
|
|
|
- <el-form-item label="数据源"
|
|
|
- prop="sourceCode">
|
|
|
- <el-select v-model.trim="formData.sourceCode"
|
|
|
- class="organisation"
|
|
|
- size="mini"
|
|
|
- @change="changeSource">
|
|
|
- <el-option v-for="item in sourceList"
|
|
|
- :key="item.sourceName"
|
|
|
- :label="item.sourceName"
|
|
|
- :value="item.sourceCode" />
|
|
|
+ <el-col :xs="24" :sm="20" :md="6" :lg="6" :xl="6">
|
|
|
+ <el-form-item label="数据源" prop="sourceCode">
|
|
|
+ <el-select v-model.trim="formData.sourceCode" class="organisation" size="mini" @change="changeSource">
|
|
|
+ <el-option v-for="item in sourceList" :key="item.sourceName" :label="item.sourceName" :value="item.sourceCode" />
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
- <el-col :xs="24"
|
|
|
- :sm="20"
|
|
|
- :md="8"
|
|
|
- :lg="8"
|
|
|
- :xl="8">
|
|
|
- <el-form-item label="数据集编码"
|
|
|
- prop="setCode">
|
|
|
- <el-input :disabled="updataDisabled" v-model.trim="formData.setCode"
|
|
|
- size="mini" />
|
|
|
+ <el-col :xs="24" :sm="20" :md="8" :lg="8" :xl="8">
|
|
|
+ <el-form-item label="数据集编码" prop="setCode">
|
|
|
+ <el-input :disabled="updataDisabled" v-model.trim="formData.setCode" size="mini" />
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
- <el-col :xs="24"
|
|
|
- :sm="20"
|
|
|
- :md="8"
|
|
|
- :lg="8"
|
|
|
- :xl="8">
|
|
|
- <el-form-item label="数据集名称"
|
|
|
- prop="setName">
|
|
|
- <el-input v-model.trim="formData.setName"
|
|
|
- size="mini" />
|
|
|
+ <el-col :xs="24" :sm="20" :md="8" :lg="8" :xl="8">
|
|
|
+ <el-form-item label="数据集名称" prop="setName">
|
|
|
+ <el-input v-model.trim="formData.setName" size="mini" />
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
- <el-col :xs="24"
|
|
|
- :sm="20"
|
|
|
- :md="22"
|
|
|
- :lg="22"
|
|
|
- :xl="22">
|
|
|
+ <el-col :xs="24" :sm="20" :md="22" :lg="22" :xl="22">
|
|
|
<el-form-item label="数据集描述">
|
|
|
- <el-input v-model.trim="formData.setDesc"
|
|
|
- size="mini" />
|
|
|
+ <el-input v-model.trim="formData.setDesc" size="mini" />
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
|
|
|
- <el-col :xs="24"
|
|
|
- :sm="20"
|
|
|
- :md="22"
|
|
|
- :lg="22"
|
|
|
- :xl="22"
|
|
|
- class="code-mirror-form">
|
|
|
+ <el-col :xs="24" :sm="20" :md="22" :lg="22" :xl="22" class="code-mirror-form">
|
|
|
<el-form-item label="查询SQL或请求体">
|
|
|
<div class="codemirror">
|
|
|
- <codemirror v-model.trim="formData.dynSentence"
|
|
|
- :options="optionsSql"
|
|
|
- style="height: 190px" />
|
|
|
+ <codemirror v-model.trim="formData.dynSentence" :options="optionsSql" style="height: 190px" />
|
|
|
</div>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
<el-row :gutter="10">
|
|
|
- <el-col :xs="24"
|
|
|
- :sm="20"
|
|
|
- :md="22"
|
|
|
- :lg="22"
|
|
|
- :xl="22">
|
|
|
- <el-form label-width="100px"
|
|
|
- class="demo-ruleForm">
|
|
|
- <el-tabs v-model.trim="tabsActiveName"
|
|
|
- type="card"
|
|
|
- @tab-click="handleClickTabs">
|
|
|
- <el-tab-pane label="查询参数"
|
|
|
- name="first">
|
|
|
- <el-button v-if="tableData.length == 0"
|
|
|
- type="text"
|
|
|
- size="small"
|
|
|
- @click="addRow()">添加</el-button>
|
|
|
- <el-table :data="tableData"
|
|
|
- border
|
|
|
- style="width: 100%">
|
|
|
- <el-table-column align="center"
|
|
|
- label="序号"
|
|
|
- type="index"
|
|
|
- min-width="40" />
|
|
|
+ <el-col :xs="24" :sm="20" :md="22" :lg="22" :xl="22">
|
|
|
+ <el-form label-width="100px" class="demo-ruleForm">
|
|
|
+ <el-tabs v-model.trim="tabsActiveName" type="card" @tab-click="handleClickTabs">
|
|
|
+ <el-tab-pane label="查询参数" name="first">
|
|
|
+ <el-button v-if="tableData.length == 0" type="text" size="small" @click="addRow()">添加</el-button>
|
|
|
+ <el-table :data="tableData" border style="width: 100%">
|
|
|
+ <el-table-column align="center" label="序号" type="index" min-width="40" />
|
|
|
<el-table-column label="参数名">
|
|
|
<template slot-scope="scope">
|
|
|
- <el-input v-model.trim="tableData[scope.$index].paramName"
|
|
|
- :disabled="tableData[scope.$index].paramName == 'pageSize' || tableData[scope.$index].paramName == 'pageNumber'" />
|
|
|
+ <el-input v-model.trim="tableData[scope.$index].paramName" :disabled="tableData[scope.$index].paramName == 'pageSize' || tableData[scope.$index].paramName == 'pageNumber'" />
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
<el-table-column label="描述">
|
|
@@ -241,14 +120,10 @@
|
|
|
<el-input v-model.trim="tableData[scope.$index].sampleItem" />
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column label="校验"
|
|
|
- width="220">
|
|
|
+ <el-table-column label="校验" width="220">
|
|
|
<template slot-scope="scope">
|
|
|
- <el-checkbox v-model="tableData[scope.$index].mandatory"
|
|
|
- @change="Mandatory(scope.$index)">必选</el-checkbox>
|
|
|
- <el-button type="primary"
|
|
|
- icon="el-icon-plus"
|
|
|
- @click="permissionClick(scope.row, scope.$index)"> 高级规则 </el-button>
|
|
|
+ <el-checkbox v-model="tableData[scope.$index].mandatory" @change="Mandatory(scope.$index)">必选</el-checkbox>
|
|
|
+ <el-button type="primary" icon="el-icon-plus" @click="permissionClick(scope.row, scope.$index)"> 高级规则 </el-button>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
<!-- <el-table-column :label="$t('btn.operationCol')"
|
|
@@ -263,65 +138,34 @@
|
|
|
</template>
|
|
|
</el-table-column> -->
|
|
|
</el-table>
|
|
|
- <el-checkbox v-model="isShowPagination"
|
|
|
- @change="changePagination">加入分页参数</el-checkbox>
|
|
|
+ <el-checkbox v-model="isShowPagination" @change="changePagination">加入分页参数</el-checkbox>
|
|
|
</el-tab-pane>
|
|
|
- <el-tab-pane label="数据转换"
|
|
|
- name="second">
|
|
|
+ <el-tab-pane label="数据转换" name="second">
|
|
|
<template>
|
|
|
<div class="filterWrapper">
|
|
|
<div class="filterTable">
|
|
|
- <div v-for="(item, index) in itemFilterList"
|
|
|
- :key="index"
|
|
|
- class="filterBox">
|
|
|
+ <div v-for="(item, index) in itemFilterList" :key="index" class="filterBox">
|
|
|
<div class="box">
|
|
|
- <Dictionary v-model="item.transformType"
|
|
|
- :updata-dict="item.transformType"
|
|
|
- :dict-key="'TRANSFORM_TYPE'" />
|
|
|
- <el-button type="text"
|
|
|
- class="reduceFilter"
|
|
|
- icon="el-icon-close"
|
|
|
- @click="reduceFilter(item)" />
|
|
|
- <el-button v-if="item.transformType == 'js' || item.transformType == 'dict'"
|
|
|
- type="text"
|
|
|
- class="editor"
|
|
|
- icon="el-icon-edit"
|
|
|
- @click="filterScriptBtn(item)" />
|
|
|
+ <Dictionary v-model="item.transformType" :updata-dict="item.transformType" :dict-key="'TRANSFORM_TYPE'" />
|
|
|
+ <el-button type="text" class="reduceFilter" icon="el-icon-close" @click="reduceFilter(item)" />
|
|
|
+ <el-button v-if="item.transformType == 'js' || item.transformType == 'dict'" type="text" class="editor" icon="el-icon-edit" @click="filterScriptBtn(item)" />
|
|
|
</div>
|
|
|
- <el-button type="text"
|
|
|
- class="font-icon-right"
|
|
|
- icon="el-icon-right" />
|
|
|
+ <el-button type="text" class="font-icon-right" icon="el-icon-right" />
|
|
|
</div>
|
|
|
- <el-dialog :title="dialogTitle"
|
|
|
- :visible.sync="dialogSwitchVisible"
|
|
|
- width="60%"
|
|
|
- min-height="400px"
|
|
|
- append-to-body>
|
|
|
+ <el-dialog :title="dialogTitle" :visible.sync="dialogSwitchVisible" width="60%" min-height="400px" append-to-body>
|
|
|
<div v-if="isItemFilterType.transformType == 'js'">
|
|
|
<div class="codemirror">
|
|
|
<!-- //自定义高级规则? -->
|
|
|
- <codemirror v-model.trim="transformScript"
|
|
|
- :options="optionsJavascript"
|
|
|
- style="height: 210px;overflow: hidden;" />
|
|
|
+ <codemirror v-model.trim="transformScript" :options="optionsJavascript" style="height: 210px;overflow: hidden;" />
|
|
|
</div>
|
|
|
</div>
|
|
|
<div v-else>
|
|
|
- <div v-for="(item, index) in tableData2"
|
|
|
- :key="index">
|
|
|
+ <div v-for="(item, index) in tableData2" :key="index">
|
|
|
<label>字典项名称:</label>
|
|
|
- <el-input v-model.trim="item.name"
|
|
|
- size="small"
|
|
|
- style="width: 25%" />
|
|
|
- <el-button type="danger"
|
|
|
- size="small"
|
|
|
- plain
|
|
|
- icon="el-icon-delete"
|
|
|
- @click="delAllDict(index, tableData2)" />
|
|
|
- <el-table :data="item.children"
|
|
|
- border
|
|
|
- style="width: 80%">
|
|
|
- <el-table-column label="key"
|
|
|
- width="180">
|
|
|
+ <el-input v-model.trim="item.name" size="small" style="width: 25%" />
|
|
|
+ <el-button type="danger" size="small" plain icon="el-icon-delete" @click="delAllDict(index, tableData2)" />
|
|
|
+ <el-table :data="item.children" border style="width: 80%">
|
|
|
+ <el-table-column label="key" width="180">
|
|
|
<template slot-scope="scope">
|
|
|
<el-input v-model.trim="item.children[scope.$index].name" />
|
|
|
</template>
|
|
@@ -331,54 +175,33 @@
|
|
|
<el-input v-model.trim="item.children[scope.$index].value" />
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column label="操作"
|
|
|
- width="150px"
|
|
|
- align="center">
|
|
|
+ <el-table-column label="操作" width="150px" align="center">
|
|
|
<template slot-scope="scope">
|
|
|
- <el-button type="success"
|
|
|
- circle
|
|
|
- plain
|
|
|
- icon="el-icon-plus"
|
|
|
- @click="addDict(scope.$index, item.children)" />
|
|
|
+ <el-button type="success" circle plain icon="el-icon-plus" @click="addDict(scope.$index, item.children)" />
|
|
|
|
|
|
- <el-button type="danger"
|
|
|
- circle
|
|
|
- plain
|
|
|
- icon="el-icon-delete"
|
|
|
- @click="delDict(scope.$index, item.children)" />
|
|
|
+ <el-button type="danger" circle plain icon="el-icon-delete" @click="delDict(scope.$index, item.children)" />
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
</el-table>
|
|
|
</div>
|
|
|
- <el-button type="success"
|
|
|
- @click="addAllDict()">新增</el-button>
|
|
|
+ <el-button type="success" @click="addAllDict()">新增</el-button>
|
|
|
</div>
|
|
|
- <span slot="footer"
|
|
|
- class="dialog-footer">
|
|
|
+ <span slot="footer" class="dialog-footer">
|
|
|
<el-button @click="dialogSwitchVisible = false">取消</el-button>
|
|
|
- <el-button type="primary"
|
|
|
- @click="filterScriptConfirm">保存</el-button>
|
|
|
+ <el-button type="primary" @click="filterScriptConfirm">保存</el-button>
|
|
|
</span>
|
|
|
</el-dialog>
|
|
|
<!-- //添加数据转换 -->
|
|
|
- <div class="addFilter"
|
|
|
- disabled="true"
|
|
|
- @click="addFilter">
|
|
|
+ <div class="addFilter" disabled="true" @click="addFilter">
|
|
|
<i class="el-icon-plus" /><span>新增</span>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</template>
|
|
|
</el-tab-pane>
|
|
|
- <el-tab-pane label="测试预览"
|
|
|
- name="third">
|
|
|
+ <el-tab-pane label="测试预览" name="third">
|
|
|
<div style="max-height: 400px; overflow: auto">
|
|
|
- <vue-json-editor v-model="cols"
|
|
|
- :show-btns="false"
|
|
|
- :mode="'code'"
|
|
|
- lang="zh"
|
|
|
- @json-change="onJsonChange"
|
|
|
- @json-save="onJsonSave" />
|
|
|
+ <vue-json-editor v-model="cols" :show-btns="false" :mode="'code'" lang="zh" @json-change="onJsonChange" @json-save="onJsonSave" />
|
|
|
</div>
|
|
|
</el-tab-pane>
|
|
|
</el-tabs>
|
|
@@ -386,54 +209,44 @@
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
</el-form>
|
|
|
- <div slot="footer"
|
|
|
- class="dialog-footer">
|
|
|
+ <div slot="footer" class="dialog-footer">
|
|
|
<!-- <el-button type="warning" @click="test">测试</el-button> -->
|
|
|
<el-button @click="dialogFormVisible = false">取消</el-button>
|
|
|
- <el-button type="primary"
|
|
|
- @click="submit('form')">保存</el-button>
|
|
|
+ <el-button type="primary" @click="submit('form')">保存</el-button>
|
|
|
</div>
|
|
|
</el-dialog>
|
|
|
- <el-dialog :title="title"
|
|
|
- :visible.sync="dialogPermissionVisible"
|
|
|
- width="60%">
|
|
|
+ <el-dialog :title="title" :visible.sync="dialogPermissionVisible" width="60%">
|
|
|
<div class="codemirror">
|
|
|
<!-- //自定义高级规则? -->
|
|
|
- <codemirror v-model.trim="validationRules"
|
|
|
- :options="optionsJavascript"
|
|
|
- style="height: 210px;overflow: hidden;" />
|
|
|
+ <codemirror v-model.trim="validationRules" :options="optionsJavascript" style="height: 210px;overflow: hidden;" />
|
|
|
</div>
|
|
|
- <span slot="footer"
|
|
|
- class="dialog-footer">
|
|
|
- <el-button type="warning"
|
|
|
- @click="testResultset">测试</el-button>
|
|
|
+ <span slot="footer" class="dialog-footer">
|
|
|
+ <el-button type="warning" @click="testResultset">测试</el-button>
|
|
|
|
|
|
- <el-button type="primary"
|
|
|
- @click="dialogValidationRules">保存</el-button>
|
|
|
+ <el-button type="primary" @click="dialogValidationRules">保存</el-button>
|
|
|
<el-button @click="dialogPermissionVisible = false">关闭</el-button>
|
|
|
</span>
|
|
|
</el-dialog>
|
|
|
- <el-dialog :title="caseResultTitle"
|
|
|
- :visible.sync="dialogCaseResult"
|
|
|
- width="70%">
|
|
|
- <vue-json-editor v-model="caseResultContent"
|
|
|
- :show-btns="false"
|
|
|
- :mode="'code'"
|
|
|
- lang="zh"
|
|
|
- class="my-editor"
|
|
|
- @json-change="onJsonChange"
|
|
|
- @json-save="onJsonSave" />
|
|
|
- <span slot="footer"
|
|
|
- class="dialog-footer">
|
|
|
- <el-button type="primary"
|
|
|
- @click="dialogCaseResult = false">关闭</el-button>
|
|
|
+ <el-dialog :title="caseResultTitle" :visible.sync="dialogCaseResult" width="70%">
|
|
|
+ <vue-json-editor v-model="caseResultContent" :show-btns="false" :mode="'code'" lang="zh" class="my-editor" @json-change="onJsonChange" @json-save="onJsonSave" />
|
|
|
+ <span slot="footer" class="dialog-footer">
|
|
|
+ <el-button type="primary" @click="dialogCaseResult = false">关闭</el-button>
|
|
|
</span>
|
|
|
</el-dialog>
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
-import { queryAllDataSourceSet, verificationSet, testTransformSet, dataSetPreview, addDataSet, editDataSet, deleteDataSet, dataSetPageList } from '@/api/report'
|
|
|
+import {
|
|
|
+ queryAllDataSourceSet,
|
|
|
+ verificationSet,
|
|
|
+ testTransformSet,
|
|
|
+ dataSetPreview,
|
|
|
+ addDataSet,
|
|
|
+ editDataSet,
|
|
|
+ deleteDataSet,
|
|
|
+ dataSetPageList,
|
|
|
+} from '@/api/report'
|
|
|
import Dictionary from '@/components/Dictionary/index'
|
|
|
import { codemirror } from 'vue-codemirror' // 引入codeMirror全局实例
|
|
|
import 'codemirror/mode/sql/sql.js'
|
|
@@ -447,7 +260,7 @@ export default {
|
|
|
|
|
|
dicts: ['pricing_method'],
|
|
|
|
|
|
- data () {
|
|
|
+ data() {
|
|
|
return {
|
|
|
data: [],
|
|
|
listLoading: true,
|
|
@@ -518,9 +331,15 @@ export default {
|
|
|
sort: 'update_time',
|
|
|
},
|
|
|
formRules: {
|
|
|
- setName: [{ required: true, message: '数据集名称必填', trigger: 'blur' }],
|
|
|
- setCode: [{ required: true, message: '数据集编码必填', trigger: 'blur' }],
|
|
|
- sourceCode: [{ required: true, message: '数据源必选', trigger: 'change' }],
|
|
|
+ setName: [
|
|
|
+ { required: true, message: '数据集名称必填', trigger: 'blur' },
|
|
|
+ ],
|
|
|
+ setCode: [
|
|
|
+ { required: true, message: '数据集编码必填', trigger: 'blur' },
|
|
|
+ ],
|
|
|
+ sourceCode: [
|
|
|
+ { required: true, message: '数据源必选', trigger: 'change' },
|
|
|
+ ],
|
|
|
},
|
|
|
sourceList: [],
|
|
|
validationRules: '',
|
|
@@ -551,41 +370,41 @@ export default {
|
|
|
testMassageCode: null,
|
|
|
query: {
|
|
|
setName: '',
|
|
|
- setCode: ''
|
|
|
- }
|
|
|
+ setCode: '',
|
|
|
+ },
|
|
|
}
|
|
|
},
|
|
|
watch: {},
|
|
|
// 在生命周期 beforeCreate里面改变this指向
|
|
|
- beforeCreate: function () { },
|
|
|
- mounted () {
|
|
|
+ beforeCreate: function () {},
|
|
|
+ mounted() {
|
|
|
this.queryByPage()
|
|
|
},
|
|
|
- created () {
|
|
|
+ created() {
|
|
|
this.getAllDataSourceSet()
|
|
|
},
|
|
|
methods: {
|
|
|
// 查询
|
|
|
- search () {
|
|
|
+ search() {
|
|
|
this.params.pageNumber = 1
|
|
|
this.queryByPage()
|
|
|
},
|
|
|
// 重置
|
|
|
- reset (formName) {
|
|
|
+ reset(formName) {
|
|
|
// this.$refs[formName].resetFields()
|
|
|
this.query.setName = ''
|
|
|
this.query.setCode = ''
|
|
|
this.params.pageNumber = 1
|
|
|
this.queryByPage()
|
|
|
},
|
|
|
- async queryByPage () {
|
|
|
+ async queryByPage() {
|
|
|
let params = {
|
|
|
page: this.params.pageNumber,
|
|
|
size: this.params.pageSize,
|
|
|
- sort: "update_time",
|
|
|
- order: "DESC",
|
|
|
+ sort: 'update_time',
|
|
|
+ order: 'DESC',
|
|
|
pageNumber: this.params.pageNumber,
|
|
|
- pageSize: this.params.pageSize
|
|
|
+ pageSize: this.params.pageSize,
|
|
|
}
|
|
|
const res = await dataSetPageList(params)
|
|
|
if (res.code != '200') return
|
|
@@ -596,26 +415,26 @@ export default {
|
|
|
this.listLoading = false
|
|
|
},
|
|
|
|
|
|
- handleSizeChange (val) {
|
|
|
+ handleSizeChange(val) {
|
|
|
this.params.pageSize = val
|
|
|
this.queryByPage()
|
|
|
},
|
|
|
- handleCurrentChange (val) {
|
|
|
+ handleCurrentChange(val) {
|
|
|
this.params.pageNumber = val
|
|
|
this.queryByPage()
|
|
|
},
|
|
|
|
|
|
- onJsonChange (value) { },
|
|
|
- onJsonSave (value) { },
|
|
|
- handleClose (done) {
|
|
|
+ onJsonChange(value) {},
|
|
|
+ onJsonSave(value) {},
|
|
|
+ handleClose(done) {
|
|
|
this.dialogFormVisible = false
|
|
|
},
|
|
|
- isShowCaseResult (item) {
|
|
|
+ isShowCaseResult(item) {
|
|
|
this.dialogCaseResult = true
|
|
|
this.caseResultTitle = item.setName
|
|
|
this.caseResultContent = JSON.parse(item.caseResult)
|
|
|
},
|
|
|
- delect (row) {
|
|
|
+ delect(row) {
|
|
|
this.$confirm('确定删除?', '提示', {
|
|
|
confirmButtonText: '确定',
|
|
|
cancelButtonText: '取消',
|
|
@@ -640,7 +459,7 @@ export default {
|
|
|
})
|
|
|
},
|
|
|
// 编辑数据集,获取单条数据详情
|
|
|
- addOrEditDataSet (row) {
|
|
|
+ addOrEditDataSet(row) {
|
|
|
this.dialogFormVisible = true
|
|
|
this.tabsActiveName = 'first'
|
|
|
this.testMassageCode = null
|
|
@@ -649,11 +468,17 @@ export default {
|
|
|
this.dialogFormVisibleTitle = '编辑数据集'
|
|
|
dataSetPreview(row).then((data) => {
|
|
|
this.formData = data.data
|
|
|
- if (data.data.dataSetParamDtoList != null || data.data.dataSetParamDtoList.length > 0) {
|
|
|
+ if (
|
|
|
+ data.data.dataSetParamDtoList != null ||
|
|
|
+ data.data.dataSetParamDtoList.length > 0
|
|
|
+ ) {
|
|
|
this.tableData = data.data.dataSetParamDtoList
|
|
|
var count = 0
|
|
|
this.tableData.find((value, i) => {
|
|
|
- if (value.paramName === 'pageNumber' || value.paramName === 'pageSize') {
|
|
|
+ if (
|
|
|
+ value.paramName === 'pageNumber' ||
|
|
|
+ value.paramName === 'pageSize'
|
|
|
+ ) {
|
|
|
count++
|
|
|
}
|
|
|
if (value.requiredFlag == 1) {
|
|
@@ -707,13 +532,13 @@ export default {
|
|
|
}
|
|
|
},
|
|
|
// 获取数据源下拉
|
|
|
- async getAllDataSourceSet () {
|
|
|
+ async getAllDataSourceSet() {
|
|
|
const { code, data } = await queryAllDataSourceSet()
|
|
|
if (code != '200') return
|
|
|
this.sourceList = data
|
|
|
},
|
|
|
// 测试预览
|
|
|
- async handleClickTabs (tab, event) {
|
|
|
+ async handleClickTabs(tab, event) {
|
|
|
if (tab.paneName == 'third') {
|
|
|
const params = {
|
|
|
sourceCode: this.formData.sourceCode,
|
|
@@ -728,7 +553,7 @@ export default {
|
|
|
}
|
|
|
},
|
|
|
// 必选
|
|
|
- Mandatory (val) {
|
|
|
+ Mandatory(val) {
|
|
|
if (!this.tableData[val].mandatory) {
|
|
|
this.tableData[val].requiredFlag = 0
|
|
|
} else {
|
|
@@ -736,7 +561,7 @@ export default {
|
|
|
}
|
|
|
},
|
|
|
// 分页参数增加列
|
|
|
- changePagination () {
|
|
|
+ changePagination() {
|
|
|
if (this.isShowPagination) {
|
|
|
this.tableData.push(
|
|
|
{
|
|
@@ -773,7 +598,7 @@ export default {
|
|
|
}
|
|
|
},
|
|
|
// js 脚本编辑
|
|
|
- async filterScriptBtn (item) {
|
|
|
+ async filterScriptBtn(item) {
|
|
|
console.log(item)
|
|
|
this.isItemFilterType = item
|
|
|
this.dialogSwitchVisible = true
|
|
@@ -783,7 +608,9 @@ export default {
|
|
|
//自定义脚本内容
|
|
|
return data;
|
|
|
}`
|
|
|
- this.transformScript = item.transformScript ? item.transformScript : fnCont
|
|
|
+ this.transformScript = item.transformScript
|
|
|
+ ? item.transformScript
|
|
|
+ : fnCont
|
|
|
} else if (item.transformType == 'dict') {
|
|
|
// this.dialogTitle = '字典翻译'
|
|
|
// this.itemFilterScriptId = item.itemFilterSort
|
|
@@ -807,7 +634,7 @@ export default {
|
|
|
}
|
|
|
},
|
|
|
// js 脚本编辑确定
|
|
|
- filterScriptConfirm () {
|
|
|
+ filterScriptConfirm() {
|
|
|
const arr = this.toObject(this.tableData2)
|
|
|
this.itemFilterList.forEach((el, index) => {
|
|
|
if (el.transformType == 'dict') {
|
|
@@ -818,7 +645,7 @@ export default {
|
|
|
})
|
|
|
this.dialogSwitchVisible = false
|
|
|
},
|
|
|
- addFilter () {
|
|
|
+ addFilter() {
|
|
|
let obj = {}
|
|
|
this.tableData2 = []
|
|
|
if (this.itemFilterList.length == 0) {
|
|
@@ -837,7 +664,7 @@ export default {
|
|
|
this.itemFilterList.push(obj)
|
|
|
},
|
|
|
// 删除filter
|
|
|
- reduceFilter (item) {
|
|
|
+ reduceFilter(item) {
|
|
|
if (this.itemFilterList.length > 1) {
|
|
|
var index = this.itemFilterList.indexOf(item)
|
|
|
if (index > -1) {
|
|
@@ -846,7 +673,7 @@ export default {
|
|
|
}
|
|
|
},
|
|
|
// --查询参数-----------------///////////////////////////////////////////////////////////////////////
|
|
|
- permissionClick (row, index) {
|
|
|
+ permissionClick(row, index) {
|
|
|
this.title = '自定义高级规则'
|
|
|
if (this.isRowData.sampleItem != '') {
|
|
|
this.isRowData = row
|
|
@@ -854,28 +681,30 @@ export default {
|
|
|
//自定义脚本内容
|
|
|
return true;
|
|
|
}`
|
|
|
- this.validationRules = row.validationRules ? row.validationRules : fnCont
|
|
|
+ this.validationRules = row.validationRules
|
|
|
+ ? row.validationRules
|
|
|
+ : fnCont
|
|
|
this.dialogPermissionVisible = true
|
|
|
}
|
|
|
},
|
|
|
- dialogValidationRules () {
|
|
|
+ dialogValidationRules() {
|
|
|
this.isRowData.validationRules = this.validationRules
|
|
|
this.dialogPermissionVisible = false
|
|
|
},
|
|
|
// 字典项 增删改
|
|
|
- addAllDict () {
|
|
|
+ addAllDict() {
|
|
|
this.tableData2.push({
|
|
|
name: '',
|
|
|
children: [{ name: '', value: '' }],
|
|
|
})
|
|
|
},
|
|
|
- addDict (index, item) {
|
|
|
+ addDict(index, item) {
|
|
|
item.push({ name: '', value: '' })
|
|
|
},
|
|
|
- delAllDict (index, rows) {
|
|
|
+ delAllDict(index, rows) {
|
|
|
rows.splice(index, 1)
|
|
|
},
|
|
|
- delDict (index, rows) {
|
|
|
+ delDict(index, rows) {
|
|
|
if (index == 0) {
|
|
|
this.$message.error('至少保留一条')
|
|
|
return
|
|
@@ -884,20 +713,20 @@ export default {
|
|
|
},
|
|
|
// -------------------------------------------------------------------------------
|
|
|
// 数据源下拉切换
|
|
|
- changeSource () { },
|
|
|
+ changeSource() {},
|
|
|
// 自定义高级规则
|
|
|
- testResultset () {
|
|
|
+ testResultset() {
|
|
|
this.isRowData.validationRules = this.validationRules
|
|
|
verificationSet(this.isRowData).then((data) => {
|
|
|
// console.log(data)
|
|
|
})
|
|
|
},
|
|
|
// 删除
|
|
|
- cutOutRow (index, rows) {
|
|
|
+ cutOutRow(index, rows) {
|
|
|
rows.splice(index, 1)
|
|
|
},
|
|
|
// 追加
|
|
|
- addRow (index, row) {
|
|
|
+ addRow(index, row) {
|
|
|
this.tableData.push({
|
|
|
paramName: '',
|
|
|
paramDesc: '',
|
|
@@ -911,7 +740,7 @@ export default {
|
|
|
}`,
|
|
|
})
|
|
|
},
|
|
|
- async submit (formName) {
|
|
|
+ async submit(formName) {
|
|
|
this.$refs[formName].validate(async (valid, obj) => {
|
|
|
if (valid) {
|
|
|
if (this.testMassageCode == 200) {
|
|
@@ -937,7 +766,7 @@ export default {
|
|
|
}
|
|
|
})
|
|
|
},
|
|
|
- toObject (val) {
|
|
|
+ toObject(val) {
|
|
|
const objfirst = {}
|
|
|
const objSecond = {}
|
|
|
val.forEach((el) => {
|
|
@@ -1089,7 +918,7 @@ export default {
|
|
|
overflow-y: auto;
|
|
|
padding: 10px;
|
|
|
}
|
|
|
-.query{
|
|
|
+.query {
|
|
|
margin-top: 5px;
|
|
|
}
|
|
|
</style>
|