Browse Source

配置config文件

wu 3 tuần trước cách đây
mục cha
commit
5e80c51786
1 tập tin đã thay đổi với 57 bổ sung17 xóa
  1. 57 17
      src/views/api/apisql.vue

+ 57 - 17
src/views/api/apisql.vue

@@ -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;
         }