@@ -241,7 +241,7 @@ else if (viewMode) {
241241 }
242242 }
243243
244- buildModelElements (elements , entityMeta , recordData , user , viewMode , ! viewMode );
244+ buildModelElements (elements , entityMeta , recordData , user , viewMode , true );
245245
246246 if (elements .isEmpty ()) {
247247 return formatModelError (Language .L ("此表单布局尚未配置,请配置后使用" ));
@@ -343,8 +343,8 @@ private ApprovalState getHadApproval(Entity entity, ID recordId) {
343343 * @param entity
344344 * @param recordData
345345 * @param user
346- * @param viewModel
347- * @param useAdvControl
346+ * @param viewModel 是否视图
347+ * @param useAdvControl 是否使用表单高级控制
348348 */
349349 protected void buildModelElements (JSONArray elements , Entity entity , Record recordData , ID user , boolean viewModel , boolean useAdvControl ) {
350350 final User formUser = Application .getUserStore ().getUser (user );
@@ -385,22 +385,26 @@ protected void buildModelElements(JSONArray elements, Entity entity, Record reco
385385 }
386386
387387 // v2.2 高级控制
388- if ( viewModel ) useAdvControl = false ;
388+ // v3.8.4 视图下也有效(单字段编辑也算编辑)
389389 if (useAdvControl ) {
390- final Object displayOnCreate = el .remove ("displayOnCreate" );
391- final Object displayOnUpdate = el .remove ("displayOnUpdate" );
390+ Object displayOnCreate = el .remove ("displayOnCreate" );
391+ Object displayOnUpdate = el .remove ("displayOnUpdate" );
392392 final Object requiredOnCreate = el .remove ("requiredOnCreate" );
393393 final Object requiredOnUpdate = el .remove ("requiredOnUpdate" );
394394 final Object readonlyOnCreate = el .remove ("readonlyOnCreate" );
395395 final Object readonlyOnUpdate = el .remove ("readonlyOnUpdate" );
396-
397396 // fix v3.3.4 跟随主记录新建/更新
398397 boolean isNew2 = isNew ;
399398 if (entity .getMainEntity () != null ) {
400399 ID fromMain = FormsBuilderContextHolder .getMainIdOfDetail (false );
401400 isNew2 = EntityHelper .isUnsavedId (fromMain );
402401 }
403402
403+ // 视图下忽略此选项
404+ if (viewModel ) {
405+ displayOnCreate = true ;
406+ displayOnUpdate = true ;
407+ }
404408 // 显示
405409 if (displayOnCreate != null && !(Boolean ) displayOnCreate && isNew2 ) {
406410 iter .remove ();
@@ -410,15 +414,13 @@ protected void buildModelElements(JSONArray elements, Entity entity, Record reco
410414 iter .remove ();
411415 continue ;
412416 }
413-
414417 // 必填
415418 if (requiredOnCreate != null && (Boolean ) requiredOnCreate && isNew2 ) {
416419 el .put ("nullable" , false );
417420 }
418421 if (requiredOnUpdate != null && (Boolean ) requiredOnUpdate && !isNew2 ) {
419422 el .put ("nullable" , false );
420423 }
421-
422424 // 只读 v3.6
423425 if (readonlyOnCreate != null && (Boolean ) readonlyOnCreate && isNew2 ) {
424426 el .put ("readonly" , true );
0 commit comments