Explorar o código

[*]导出数据初始化改为登录后,优化小屏时下拉组件展示异常,修复数组嵌套对象vo为空时校验出错

Lianjy %!s(int64=4) %!d(string=hai) anos
pai
achega
365f9f0d56

+ 1 - 1
magic-api/src/main/java/org/ssssssss/magicapi/controller/RequestHandler.java

@@ -144,7 +144,7 @@ public class RequestHandler extends MagicController {
 		if (!parameter.isRequired() && parameters.isEmpty()) {
 			return true;
 		}
-		if (parameter.isRequired() && !BooleanLiteral.isTrue(parameters.get(parameter.getName()))) {
+		if (parameter.isRequired() && !BooleanLiteral.isTrue(parameters.getOrDefault(parameter.getName(), ""))) {
 			throw new ValidateException(jsonCode, StringUtils.defaultIfBlank(parameter.getError(), String.format("%s[%s]为必填项", comment, parameter.getName())));
 		}
 		Object value = parameters.get(parameter.getName());

+ 1 - 0
magic-editor/src/console/src/components/common/magic-json.vue

@@ -210,6 +210,7 @@
     margin: 0px 10px;
     border: 1px solid var(--border-color);
     border-top: none;
+    overflow: auto;
   }
 
   .json-panel .panel-box {

+ 13 - 2
magic-editor/src/console/src/components/common/magic-select.vue

@@ -2,7 +2,7 @@
   <div :class="{ inputable, border}" class="ma-select not-select" @click.stop="showList" ref="container">
     <span v-if="!inputable">{{ showText }}</span>
     <input v-if="inputable" ref="input" :value="showText" autocomplete="off" type="text" @input="(e) => triggerSelect(e.target.value)"/>
-    <ul v-show="visible" :style="{ width, marginTop}" ref="selectList">
+    <ul v-show="visible" :style="{ width, marginTop, marginLeft}" ref="selectList">
       <li v-for="item in options" :key="'ma_select_' + item.value" @click.stop="triggerSelect(item.value)">
         {{ item.text }}
       </li>
@@ -32,6 +32,7 @@ export default {
       marginTop: '-2px',
       width: 'auto',
       visible: false,
+      marginLeft: '0px'
     }
   },
   mounted() {
@@ -39,8 +40,10 @@ export default {
   },
   methods: {
     showList(){
+      this.marginTop = - this.getMarginTop(this.$refs.container, 0)+ 'px';
       this.visible = true;
       this.$nextTick(()=>{
+        this.marginLeft = -(window.pageXOffset) + 'px';
         this.width = this.$refs.container.clientWidth + 'px';
         let height = this.$refs.selectList.offsetHeight;
         let top = this.$refs.selectList.offsetTop;
@@ -49,6 +52,10 @@ export default {
         }
       })
     },
+    getMarginTop(el, top) {
+      top += el.scrollTop > 0 ? el.scrollTop : el.parentElement ? this.getMarginTop(el.parentElement, top + el.scrollTop) : el.scrollTop
+      return top
+    },
     triggerSelect(value) {
       this.$emit('update:value', value);
       this.visible = false;
@@ -142,10 +149,14 @@ ul li {
   padding: 0 5px;
   text-align: left;
   width: 100% !important;
+  height: 22px;
+  text-overflow: ellipsis;
+  word-break: keep-all;
+  overflow: hidden;
 }
 
 ul li:hover {
   background: var(--select-option-hover-background);
   color: var(--select-option-hover-color);
 }
-</style>
+</style>

+ 3 - 1
magic-editor/src/console/src/components/resources/magic-resource-choose.vue

@@ -76,7 +76,6 @@ export default {
     }
   },
   created() {
-    this.initData();
   },
   methods: {
     // 初始化数据
@@ -335,6 +334,9 @@ export default {
   },
   mounted() {
     console.log('mounted')
+    bus.$on('login',() => {
+      this.initData();
+    })
   }
 }
 </script>