|
@@ -6,27 +6,33 @@
|
|
|
<div class="name">可用维度</div>
|
|
|
<div class="panel drag-list" style="height: 43%; overflow-y: auto">
|
|
|
<div v-for="item of rowParamSelected" :key="item.id" class="item">
|
|
|
- <div class="field">
|
|
|
- <span>{{ item.columnName }}</span>
|
|
|
- <i class="iconfont el-icon-document-copy" style="cursor: pointer" @click="onJoinSql(item.columnName)"></i>
|
|
|
- </div>
|
|
|
- <div v-if="item.columnComments" class="field">
|
|
|
- <span>{{ item.columnComments }}</span>
|
|
|
- <i class="iconfont el-icon-document-copy" style="cursor: pointer" @click="onJoinSql(item.columnComments)"></i>
|
|
|
+ <div class="field-box">
|
|
|
+ <div class="field">
|
|
|
+ <span>{{ item.columnName }}</span>
|
|
|
+ <i class="iconfont el-icon-document-copy" style="cursor: pointer" @click="onJoinSql(item.columnName)"></i>
|
|
|
+ </div>
|
|
|
+ <div v-if="item.columnComments" class="field">
|
|
|
+ <span>{{ item.columnComments }}</span>
|
|
|
+ <i class="iconfont el-icon-document-copy" style="cursor: pointer" @click="onJoinSql(item.columnComments)"></i>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
+ <i class="icon el-icon-bottom-right" title="添加为参数" @click="onAddFieldParam(item,'string')"></i>
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="name">可用指标</div>
|
|
|
<div class="panel drag-list" style="height: 46%; overflow-y: auto">
|
|
|
<div v-for="item of indexParamSelected" :key="item.id" class="item">
|
|
|
- <div class="field">
|
|
|
- <span>{{ item.columnName }}</span>
|
|
|
- <i class="iconfont el-icon-document-copy" style="cursor: pointer" @click="onJoinSql(item.columnName)"></i>
|
|
|
- </div>
|
|
|
- <div v-if="item.columnComments" class="field">
|
|
|
- <span>{{ item.columnComments }}</span>
|
|
|
- <i class="iconfont el-icon-document-copy" style="cursor: pointer" @click="onJoinSql(item.columnComments)"></i>
|
|
|
+ <div class="field-box">
|
|
|
+ <div class="field">
|
|
|
+ <span>{{ item.columnName }}</span>
|
|
|
+ <i class="iconfont el-icon-document-copy" style="cursor: pointer" @click="onJoinSql(item.columnName)"></i>
|
|
|
+ </div>
|
|
|
+ <div v-if="item.columnComments" class="field">
|
|
|
+ <span>{{ item.columnComments }}</span>
|
|
|
+ <i class="iconfont el-icon-document-copy" style="cursor: pointer" @click="onJoinSql(item.columnComments)"></i>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
+ <i class="icon el-icon-bottom-right" title="添加为参数" style="cursor: pointer" @click="onAddFieldParam(item,'string')"></i>
|
|
|
</div>
|
|
|
</div>
|
|
|
</el-aside>
|
|
@@ -156,7 +162,7 @@
|
|
|
<div class="params container">
|
|
|
<div class="container-title" style="margin-bottom: 0">参数设置</div>
|
|
|
<json-viewer :expand-depth="2" :value="paramObject" sort></json-viewer>
|
|
|
- <el-form v-for="(param, i) of paramsList" :key="i" class="item" label-width="80px" size="mini">
|
|
|
+ <el-form v-for="(param, i) of paramsList" :key="i" class="item" style="display:block;padding:10px;" label-width="80px" size="mini">
|
|
|
<div style="padding-right: 5px">
|
|
|
<el-form-item label="参数名">
|
|
|
<el-input v-model="param.name"></el-input>
|
|
@@ -214,8 +220,17 @@
|
|
|
value-format="timestamp"
|
|
|
></el-time-picker>
|
|
|
</el-form-item>
|
|
|
+ <div style="display:flex;margin-top:5px;">
|
|
|
+ <el-button style="flex:1;" size="mini" type="primary" @click="onInsertParam(param)" plain icon="el-icon-edit">
|
|
|
+ 插入参数
|
|
|
+ </el-button>
|
|
|
+ <el-button style="flex:1;" size="mini" type="danger" @click="paramsList.splice(i, 1)" plain icon="el-icon-remove-outline">
|
|
|
+ 删除
|
|
|
+ </el-button>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
- <i class="bi-dash-circle-fill del-btn" @click="paramsList.splice(i, 1)"></i>
|
|
|
+<!-- <i class="el-icon-remove-outline del-btn" @click="paramsList.splice(i, 1)"></i>-->
|
|
|
+
|
|
|
</el-form>
|
|
|
<el-button icon="el-icon-plus" plain size="mini" type="primary" @click="onParamAdd">添加</el-button>
|
|
|
</div>
|
|
@@ -387,6 +402,26 @@ export default {
|
|
|
});
|
|
|
},
|
|
|
methods: {
|
|
|
+ // 字段添加为参数
|
|
|
+ onAddFieldParam(field, datatype) {
|
|
|
+ if (!this.paramsList.find(i => i.key === field.columnName)) {
|
|
|
+ this.paramsList.push({
|
|
|
+ name: field.columnComments || field.columnName,
|
|
|
+ def: '',
|
|
|
+ key: field.columnName,
|
|
|
+ datatype,
|
|
|
+ })
|
|
|
+ }
|
|
|
+ },
|
|
|
+ // 插入参数
|
|
|
+ onInsertParam(param) {
|
|
|
+ let str = `(${param.key} = CASE
|
|
|
+ WHEN @${param.key}@ IS NULL
|
|
|
+ OR @${param.key}@ = ''
|
|
|
+ THEN ${param.key} ELSE @${param.key}@
|
|
|
+ END)`
|
|
|
+ this.$refs.editor.editor.insert(str);
|
|
|
+ },
|
|
|
// 自动配置展示字段
|
|
|
onAutoSetFields() {
|
|
|
if (!this.previewFlag) {
|
|
@@ -792,7 +827,12 @@ export default {
|
|
|
border-radius: 2px;
|
|
|
border: 1px solid #ccc;
|
|
|
padding: 3px 10px;
|
|
|
-
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ padding-right: 5px !important;
|
|
|
+ .field-box {
|
|
|
+ flex: 1;
|
|
|
+ }
|
|
|
&.WEIDU {
|
|
|
border: 1px solid #1d54d5;
|
|
|
}
|