Переглянути джерело

Merge branch '1.2.2' into 1.2.2flow

wu 2 місяців тому
батько
коміт
d38f320950

+ 0 - 1
src/components/Generator/components/InputTable/index.vue

@@ -181,7 +181,6 @@ export default {
     this.tableData = this.config.__config__.children
     // 等buildOptions这个方法执行完再执行别的方法
     await this.buildOptions()
-    sessionStorage.clear()
     if (this.flowForeignRow?.type === 'flow' && this.flowForeignRow?.data){
       if (this.flowForeignRow.data[this.config.dbLinkId]){
         this.tableFormData = []

+ 10 - 0
src/components/Generator/parser/Parser.vue

@@ -651,6 +651,16 @@ export default {
             } else {
               getAPIData(cur, config.propsUrl, config.ApiParams, componentList, '', config.apiProps).then((res) => {
                 this.$set(cur.__slot__, 'options', res)
+                if (cur.__config__.defaultValue) {
+                  let itemOptions = cur.__slot__.options
+                  let selectRow = itemOptions.find((o) => o[cur.__config__.apiProps.value] === cur.__config__.defaultValue)
+                  if (selectRow) {
+                    for (const cur of cur.__config__.ApiReturn) {
+                      // 储存全局变量
+                      sessionStorage.setItem(`API_${cur.varName}`, selectRow[cur.keyName])
+                    }
+                  }
+                }
               })
             }
           }

+ 2 - 2
src/utils/define.js

@@ -3,10 +3,10 @@
 // JAVA Cloud对应网关地址
 // const APIURl = 'http://192.168.0.103:8181'
 
-// const url = 'https://windata.platomix.net' // 测试环境
+const url = 'https://windata.platomix.net' // 测试环境
 // const url = 'https://api.bi.platomix.net' // 测试环境
 // const url = 'https://bi.platomix.net' // BI环境
-const url = 'http://60.190.98.244:8070' // 巨一环境
+// const url = 'http://60.190.98.244:8070' // 巨一环境
 // const url = 'https://miniapp.zhangmushiye.com/' // 樟木环境
 // const url = 'http://hr.cscec8st.com.cn:50021/' // 中建环境
 // const url = 'http://hr.cscec8st.com.cn:50022/' // 中建环境

+ 2 - 1
src/views/basic/dynamicModel/list/index.vue

@@ -2034,6 +2034,7 @@ export default {
         }
         this.listLoading = false;
         param.id = param.row[param.columnDict[param.idKey]];
+        sessionStorage.clear()
         this.$refs.Form.init(param.formData, param.modelId, param.id, false, param.row, param.idKey, param.columnDict, param.dbLinkId, "detail", param.associationRelation, param.fullName);
       } catch (e) {
         this.listLoading = false;
@@ -3207,7 +3208,7 @@ export default {
       this.systemBtns.forEach(btn => {
         if (toCheckTypes.includes(btn.permKey)) {
           systemBtnFlag[btn.permKey] = { id: btn.buttonId, condition: btn.buttonCondition };
-          if (btn.buttonId) systemBtnIds.push(btn.buttonId);
+          if (btn.buttonId && btn.buttonCondition) systemBtnIds.push(btn.buttonId);
         }
       });
       this.systemBtnFlag = systemBtnFlag;

+ 56 - 25
src/views/form/webDesign/customEventExpression.vue

@@ -68,23 +68,26 @@
             <el-input v-model="computedSearchKey" clearable placeholder="输入以搜索" size="mini"></el-input>
           </div>
           <div class="fields" style="height: 462px">
-            <div class="tab">维度</div>
+            <div class="tab">主表名:{{tableName}}</div>
             <template v-for="field of tobeChooseWeiduSearched">
               <div v-if="nowComputedField.columnTitle !== field.columnTitle" :key="field.columnTitle" :title="field.columnName" class="weidu" @click="onComputedAddField(field)">
                 {{ field.columnTitle + '【' + field.columnName + '】' }}
               </div>
             </template>
-            <div class="tab">指标</div>
-            <template v-for="field of tobeChooseZhibiaoSearched">
-              <div v-if="nowComputedField.columnTitle !== field.columnTitle" :key="field.columnTitle" :title="field.columnName" class="zhibiao" @click="onComputedAddField(field)">
-                {{ field.columnTitle + '【' + field.columnName + '】' }}
-              </div>
-            </template>
-            <div class="tab">关联字段</div>
-            <template v-for="field of associationList">
-              <div v-if="nowComputedField.columnTitle !== field.columnTitle" :key="field.columnTitle" :title="field.columnName" class="zhibiao guanlian" @click="onComputedAddAssociationField(field)">
-                {{ field.columnTitle + '【' + field.columnName + '】' }}
-              </div>
+<!--            <div class="tab">指标</div>-->
+<!--            <template v-for="field of tobeChooseZhibiaoSearched">-->
+<!--              <div v-if="nowComputedField.columnTitle !== field.columnTitle" :key="field.columnTitle" :title="field.columnName" class="zhibiao" @click="onComputedAddField(field)">-->
+<!--                {{ field.columnTitle + '【' + field.columnName + '】' }}-->
+<!--              </div>-->
+<!--            </template>-->
+
+            <template v-for="field of associationListFilter">
+              <div class="tab">关联表:{{ field.tableName }}</div>
+              <template v-for="fieldChild of field.children">
+                <div v-if="nowComputedField.columnTitle !== fieldChild.columnTitle" :key="fieldChild.columnTitle" :title="fieldChild.columnName" class="zhibiao guanlian" @click="onComputedAddAssociationField(fieldChild)">
+                  {{ fieldChild.columnTitle + '【' + fieldChild.columnName + '】' }}
+                </div>
+              </template>
             </template>
           </div>
         </div>
@@ -110,7 +113,7 @@
       <div class="btns">
         <el-button size="mini" @click="showEditComputedField = false"> 取消</el-button>
         <el-button size="mini" type="primary" @click="onEditComputedFieldConfirm"> 确定</el-button>
-        <el-button size="mini" type="success" @click="parserSqlClick">语法检查</el-button>
+        <el-button size="mini" type="success" v-if="datasource && datasource.dsTypeSyl === 'mysql' " @click="parserSqlClick">语法检查</el-button>
       </div>
     </el-dialog>
   </div>
@@ -134,6 +137,7 @@ export default {
   name: 'customEventExpression',
   data() {
     return {
+      tableName:'',
       showEditComputedField: false,
       datasource: null,
       functionList: [], // 用于创建计算字段的函数列表
@@ -181,6 +185,28 @@ export default {
       return this.tobeChooseZhibiao.filter((i) => {
         return i.columnName.toUpperCase().includes(key) || i.columnTitle.includes(key)
       })
+    },
+    associationListFilter(){
+      let list = this.associationList.reduce((acc, o) => {
+        const existing = acc.find(l => l.tableName === o.tableName);
+        if (!existing) {
+          acc.push({
+            id: acc.length,
+            tableName: o.tableName,
+            children: []
+          });
+        }
+        return acc;
+      }, []);
+      // 合并子列表
+      list.forEach((item) => {
+        this.associationList.forEach((value) => {
+          if (item.tableName === value.tableName) {
+            item.children.push(value);
+          }
+        });
+      });
+      return list
     }
   },
   methods: {
@@ -240,17 +266,16 @@ export default {
       this.fillback(this.dbLinkId)
       this.getInitData()
       this.datasourceId = this.dbSourceId
-      this.onDataSourceId(this.dbSourceId)
+      // this.onDataSourceId(this.dbSourceId)
       this.getGlobalData()
     },
     // 获取初始化数据,
     getInitData() {
       //获取数据集
       cubeFieldList({ cubeDataId: this.dbLinkId }).then((res) => {
-        let tableFieldsWeidu = res.data.data.filter((i) => i.dimensionType === 'WEIDU').sort((a, b) => a.sortNum - b.sortNum)
-        let tableFieldsZhibiao = res.data.data.filter((i) => i.dimensionType === 'ZHIBIAO').sort((a, b) => a.sortNum - b.sortNum)
+        let tableFieldsWeidu = res.data.data
+        if (tableFieldsWeidu && tableFieldsWeidu.length) this.tableName = tableFieldsWeidu[0].tableName
         this.tobeChooseWeidu = tableFieldsWeidu.filter((i) => i.columnAttr == 'NORMAL')
-        this.tobeChooseZhibiao = tableFieldsZhibiao.filter((i) => i.columnAttr == 'NORMAL')
       })
       jsfuncAttrList().then((res) => {
         let list = res.data.data
@@ -259,14 +284,14 @@ export default {
       })
     },
     async fillback(id) {
-      let cubeRes = await cubeDetail({ cubeDataId: id })
-      if (!cubeRes.data.code === 200) return
-      let { datasourceId } = cubeRes.data.data
-      // 获取数据源详情
-      getDatasourceDetail({ id: datasourceId }).then((res) => {
-        this.datasource = res.data.data
-        this.getFuncList()
-      })
+      // let cubeRes = await cubeDetail({ cubeDataId: id })
+      // if (!cubeRes.data.code === 200) return
+      // let { datasourceId } = cubeRes.data.data
+      // // 获取数据源详情
+      // getDatasourceDetail({ id: datasourceId }).then((res) => {
+      //   this.datasource = res.data.data
+      //   this.getFuncList()
+      // })
       reportdatasourcePage({ current: 1, size: 1000 }).then((res) => {
         this.dbSourceList = res.data.data.records
       })
@@ -302,6 +327,12 @@ export default {
         this.tableListed = res.data.data.records
         this.dbsoursTableLoading = false
       })
+      // 获取数据源详情
+      getDatasourceDetail({ id: val }).then((res) => {
+        this.datasource = res.data.data
+        if (this.datasource.dsTypeSyl === 'mysql') this.getFuncList()
+
+      })
     },
     onSelectTable(val) {
       this.tableListed = this.tableList.filter((i) => (i.tableComments && i.tableComments.includes(val)) || i.tableViewName.includes(val))