From abe961768cb069e84ed958f4c768c512cc3db598 Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期三, 04 八月 2021 18:24:57 +0800
Subject: [PATCH] 2021-08-04

---
 src/menu/components/card/balcony/options.jsx |  405 ++++++++++++++++++++++++++++++---------------------------
 1 files changed, 213 insertions(+), 192 deletions(-)

diff --git a/src/menu/components/card/balcony/options.jsx b/src/menu/components/card/balcony/options.jsx
index ecd14d8..b1684a8 100644
--- a/src/menu/components/card/balcony/options.jsx
+++ b/src/menu/components/card/balcony/options.jsx
@@ -1,195 +1,216 @@
+import { fromJS } from 'immutable'
+import MenuUtils from '@/utils/utils-custom.js'
+
 /**
  * @description Wrap琛ㄥ崟閰嶇疆淇℃伅
  */
-export const balconyWrapForm = [
-  {
-    type: 'text',
-    field: 'name',
-    label: '缁勪欢鍚嶇О',
-    initval: '',
-    tooltip: '鐢ㄤ簬缁勪欢闂寸殑鍖哄垎銆�',
-    required: true
-  },
-  {
-    type: 'number',
-    field: 'width',
-    label: '瀹藉害',
-    initval: '',
-    tooltip: '鏍呮牸甯冨眬锛屾瘡琛岀瓑鍒嗕负24鍒椼��',
-    min: 1,
-    max: 24,
-    precision: 0,
-    required: true
-  },
-  {
-    type: 'radio',
-    field: 'datatype',
-    label: '鏁版嵁鏉ユ簮',
-    initval: '',
-    tooltip: '閫夋嫨闈欐�佸�硷紝鏃犻渶閰嶇疆鏁版嵁婧愩��',
-    required: false,
-    options: [
-      {value: 'dynamic', label: '鍔ㄦ��'},
-      {value: 'static', label: '闈欐��'},
-    ]
-  },
-  {
-    type: 'radio',
-    field: 'linkType',
-    label: '鍙楁帶绫诲瀷',
-    initval: 'static',
-    tooltip: '缁勪欢涓庡叾浠栫粍浠朵箣闂寸殑鎺у埗绫诲瀷锛岀嫭绔嬭〃绀轰笌鍏朵粬娌℃湁鍏宠仈銆�',
-    required: false,
-    options: [
-      {value: 'static', label: '鐙珛'},
-      {value: 'sync', label: '鍚屾'},
-      {value: 'sup', label: '涓婄骇'},
-    ],
-    controlFields: [
-      {field: 'supModule', values: ['sup']},
-      {field: 'supControl', values: ['sup']},
-      {field: 'syncModule', values: ['sync']},
-      {field: 'checkAll', values: ['sync']},
-    ]
-  },
-  {
-    type: 'cascader',
-    field: 'supModule',
-    label: '涓婄骇缁勪欢',
-    initval: '',
-    required: true,
-    options: []
-  },
-  {
-    type: 'radio',
-    field: 'supControl',
-    label: '鏄剧ず鎺у埗',
-    tooltip: '褰撳墠缁勪欢鍦ㄤ富琛ㄩ�変腑琛屾椂鏄剧ず锛岃繕鏄缁堟樉绀恒��',
-    initval: 'show',
-    required: false,
-    options: [
-      {value: 'hidden', label: '閫夎'},
-      {value: 'show', label: '濮嬬粓'},
-    ]
-  },
-  {
-    type: 'cascader',
-    field: 'syncModule',
-    label: '鍚屾缁勪欢',
-    initval: '',
-    required: true,
-    options: []
-  },
-  {
-    type: 'radio',
-    field: 'checkAll',
-    label: '鍏ㄩ��',
-    initval: 'hidden',
-    tooltip: '褰撳悓姝ョ粍浠跺彲澶氶�夋椂锛岃缃叏閫夋湁鏁堛��',
-    required: false,
-    options: [
-      {value: 'hidden', label: '闅愯棌'},
-      {value: 'show', label: '鏄剧ず'},
-    ]
-  },
-  {
-    type: 'radio',
-    field: 'position',
-    label: '浣嶇疆',
-    initval: 'relative',
-    tooltip: '浣跨敤鍥哄畾瀹氫綅鏃讹紝璇峰湪娴嬭瘯鐜涓煡鐪嬪畾浣嶆晥鏋溿��',
-    required: false,
-    options: [
-      {value: 'relative', label: '鐩稿瀹氫綅'},
-      {value: 'fixed', label: '鍥哄畾瀹氫綅'},
-    ],
-    controlFields: [
-      {field: 'quick', values: ['fixed']},
-      {field: 'top', values: ['fixed']},
-      {field: 'right', values: ['fixed']},
-      {field: 'bottom', values: ['fixed']},
-      {field: 'left', values: ['fixed']},
-      {field: 'realwidth', values: ['fixed']},
-      {field: 'transform', values: ['fixed']},
-    ]
-  },
-  {
-    type: 'select',
-    field: 'quick',
-    label: '蹇嵎閫夋嫨',
-    initval: '',
-    required: false,
-    subFields: ['top', 'left', 'right', 'bottom', 'transform'],
-    options: [
-      {value: 'top', label: '涓�', top: '0px', left: '0px', right: '0px', bottom: '', transform: ''},
-      {value: 'top-left', label: '宸︿笂', top: '0px', left: '0px', right: '', bottom: '', transform: ''},
-      {value: 'top-right', label: '鍙充笂', top: '0px', left: '', right: '0px', bottom: '', transform: ''},
-      {value: 'left-middle', label: '宸︿腑', top: '50%', left: '0px', right: '', bottom: '', transform: 'translateY(-50%)'},
-      {value: 'right-middle', label: '鍙充腑', top: '50%', left: '', right: '0px', bottom: '', transform: 'translateY(-50%)'},
-      {value: 'bottom-left', label: '宸︿笅', top: '', left: '0px', right: '', bottom: '0px', transform: ''},
-      {value: 'bottom-right', label: '鍙充笅', top: '', left: '', right: '0px', bottom: '0px', transform: ''},
-      {value: 'bottom', label: '涓�', top: '', left: '0px', right: '0px', bottom: '0px', transform: ''},
-      {value: 'middle', label: '涓棿', top: '50%', left: '50%', right: '', bottom: '', transform: 'translate(-50%, -50%)'}
-    ]
-  },
-  {
-    type: 'styleInput',
-    field: 'top',
-    label: '璺濅笂',
-    initval: '',
-    required: false
-  },
-  {
-    type: 'styleInput',
-    field: 'right',
-    label: '璺濆彸',
-    initval: '',
-    required: false
-  },
-  {
-    type: 'styleInput',
-    field: 'bottom',
-    label: '璺濅笅',
-    initval: '',
-    required: false
-  },
-  {
-    type: 'styleInput',
-    field: 'left',
-    label: '璺濆乏',
-    initval: '',
-    required: false
-  },
-  {
-    type: 'styleInput',
-    field: 'realwidth',
-    label: '瀹為檯瀹藉害',
-    initval: '',
-    required: false
-  },
-  {
-    type: 'select',
-    field: 'transform',
-    label: '鍙樻崲',
-    initval: '',
-    required: false,
-    options: [
-      {value: 'translateY(-50%)', label: '涓婄Щ50%'},
-      {value: 'translateY(50%)', label: '涓嬬Щ50%'},
-      {value: 'translateX(-50%)', label: '宸︾Щ50%'},
-      {value: 'translateX(50%)', label: '鍙崇Щ50%'},
-      {value: 'translate(-50%, -50%)', label: '宸︿笂绉�50%'},
-      {value: 'translate(-50%, 50%)', label: '宸︿笅绉�50%'},
-      {value: 'translate(50%, -50%)', label: '鍙充笂绉�50%'},
-      {value: 'translate(50%, 50%)', label: '鍙充笅绉�50%'},
-    ]
-  },
-  {
-    type: 'multiselect',
-    field: 'blacklist',
-    label: '榛戝悕鍗�',
-    initval: '',
-    required: false,
-    options: []
-  },
-]
\ No newline at end of file
+export default function (wrap) {
+  let modules = MenuUtils.getLinkModules(fromJS(window.GLOB.customMenu).toJS().components) || []
+  let supmodules = MenuUtils.getSupModules(fromJS(window.GLOB.customMenu).toJS().components, '') || []
+  let roleList = sessionStorage.getItem('sysRoles')
+
+  if (roleList) {
+    try {
+      roleList = JSON.parse(roleList)
+    } catch {
+      roleList = []
+    }
+  } else {
+    roleList = []
+  }
+
+  const balconyWrapForm = [
+    {
+      type: 'text',
+      field: 'name',
+      label: '缁勪欢鍚嶇О',
+      initval: wrap.name || '',
+      tooltip: '鐢ㄤ簬缁勪欢闂寸殑鍖哄垎銆�',
+      required: true
+    },
+    {
+      type: 'number',
+      field: 'width',
+      label: '瀹藉害',
+      initval: wrap.width || 24,
+      tooltip: '鏍呮牸甯冨眬锛屾瘡琛岀瓑鍒嗕负24鍒椼��',
+      min: 1,
+      max: 24,
+      precision: 0,
+      required: true
+    },
+    {
+      type: 'radio',
+      field: 'datatype',
+      label: '鏁版嵁鏉ユ簮',
+      initval: wrap.datatype || 'static',
+      tooltip: '閫夋嫨闈欐�佸�硷紝鏃犻渶閰嶇疆鏁版嵁婧愩��',
+      required: false,
+      options: [
+        {value: 'dynamic', label: '鍔ㄦ��'},
+        {value: 'static', label: '闈欐��'},
+      ]
+    },
+    {
+      type: 'radio',
+      field: 'linkType',
+      label: '鍙楁帶绫诲瀷',
+      initval: wrap.linkType || 'static',
+      tooltip: '缁勪欢涓庡叾浠栫粍浠朵箣闂寸殑鎺у埗绫诲瀷锛岀嫭绔嬭〃绀轰笌鍏朵粬娌℃湁鍏宠仈銆�',
+      required: false,
+      options: [
+        {value: 'static', label: '鐙珛'},
+        {value: 'sync', label: '鍚屾'},
+        {value: 'sup', label: '涓婄骇'},
+      ],
+      controlFields: [
+        {field: 'supModule', values: ['sup']},
+        {field: 'supControl', values: ['sup']},
+        {field: 'syncModule', values: ['sync']},
+        {field: 'checkAll', values: ['sync']},
+      ]
+    },
+    {
+      type: 'cascader',
+      field: 'supModule',
+      label: '涓婄骇缁勪欢',
+      initval: wrap.supModule || '',
+      required: true,
+      options: supmodules
+    },
+    {
+      type: 'radio',
+      field: 'supControl',
+      label: '鏄剧ず鎺у埗',
+      tooltip: '褰撳墠缁勪欢鍦ㄤ富琛ㄩ�変腑琛屾椂鏄剧ず锛岃繕鏄缁堟樉绀恒��',
+      initval: wrap.supControl || 'show',
+      required: false,
+      options: [
+        {value: 'hidden', label: '閫夎'},
+        {value: 'show', label: '濮嬬粓'},
+      ]
+    },
+    {
+      type: 'cascader',
+      field: 'syncModule',
+      label: '鍚屾缁勪欢',
+      initval: wrap.syncModule || '',
+      required: true,
+      options: modules
+    },
+    {
+      type: 'radio',
+      field: 'checkAll',
+      label: '鍏ㄩ��',
+      initval: wrap.checkAll || 'hidden',
+      tooltip: '褰撳悓姝ョ粍浠跺彲澶氶�夋椂锛岃缃叏閫夋湁鏁堛��',
+      required: false,
+      options: [
+        {value: 'hidden', label: '闅愯棌'},
+        {value: 'show', label: '鏄剧ず'},
+      ]
+    },
+    {
+      type: 'radio',
+      field: 'position',
+      label: '浣嶇疆',
+      initval: wrap.position || 'relative',
+      tooltip: '浣跨敤鍥哄畾瀹氫綅鏃讹紝璇峰湪娴嬭瘯鐜涓煡鐪嬪畾浣嶆晥鏋溿��',
+      required: false,
+      options: [
+        {value: 'relative', label: '鐩稿瀹氫綅'},
+        {value: 'fixed', label: '鍥哄畾瀹氫綅'},
+      ],
+      controlFields: [
+        {field: 'quick', values: ['fixed']},
+        {field: 'top', values: ['fixed']},
+        {field: 'right', values: ['fixed']},
+        {field: 'bottom', values: ['fixed']},
+        {field: 'left', values: ['fixed']},
+        {field: 'realwidth', values: ['fixed']},
+        {field: 'transform', values: ['fixed']},
+      ]
+    },
+    {
+      type: 'select',
+      field: 'quick',
+      label: '蹇嵎閫夋嫨',
+      initval: '',
+      required: false,
+      subFields: ['top', 'left', 'right', 'bottom', 'transform'],
+      options: [
+        {value: 'top', label: '涓�', top: '0px', left: '0px', right: '0px', bottom: '', transform: ''},
+        {value: 'top-left', label: '宸︿笂', top: '0px', left: '0px', right: '', bottom: '', transform: ''},
+        {value: 'top-right', label: '鍙充笂', top: '0px', left: '', right: '0px', bottom: '', transform: ''},
+        {value: 'left-middle', label: '宸︿腑', top: '50%', left: '0px', right: '', bottom: '', transform: 'translateY(-50%)'},
+        {value: 'right-middle', label: '鍙充腑', top: '50%', left: '', right: '0px', bottom: '', transform: 'translateY(-50%)'},
+        {value: 'bottom-left', label: '宸︿笅', top: '', left: '0px', right: '', bottom: '0px', transform: ''},
+        {value: 'bottom-right', label: '鍙充笅', top: '', left: '', right: '0px', bottom: '0px', transform: ''},
+        {value: 'bottom', label: '涓�', top: '', left: '0px', right: '0px', bottom: '0px', transform: ''},
+        {value: 'middle', label: '涓棿', top: '50%', left: '50%', right: '', bottom: '', transform: 'translate(-50%, -50%)'}
+      ]
+    },
+    {
+      type: 'styleInput',
+      field: 'top',
+      label: '璺濅笂',
+      initval: wrap.top || '',
+      required: false
+    },
+    {
+      type: 'styleInput',
+      field: 'right',
+      label: '璺濆彸',
+      initval: wrap.right || '',
+      required: false
+    },
+    {
+      type: 'styleInput',
+      field: 'bottom',
+      label: '璺濅笅',
+      initval: wrap.bottom || '',
+      required: false
+    },
+    {
+      type: 'styleInput',
+      field: 'left',
+      label: '璺濆乏',
+      initval: wrap.left || '',
+      required: false
+    },
+    {
+      type: 'styleInput',
+      field: 'realwidth',
+      label: '瀹為檯瀹藉害',
+      initval: wrap.realwidth || '',
+      required: false
+    },
+    {
+      type: 'select',
+      field: 'transform',
+      label: '鍙樻崲',
+      initval: wrap.transform || '',
+      required: false,
+      options: [
+        {value: 'translateY(-50%)', label: '涓婄Щ50%'},
+        {value: 'translateY(50%)', label: '涓嬬Щ50%'},
+        {value: 'translateX(-50%)', label: '宸︾Щ50%'},
+        {value: 'translateX(50%)', label: '鍙崇Щ50%'},
+        {value: 'translate(-50%, -50%)', label: '宸︿笂绉�50%'},
+        {value: 'translate(-50%, 50%)', label: '宸︿笅绉�50%'},
+        {value: 'translate(50%, -50%)', label: '鍙充笂绉�50%'},
+        {value: 'translate(50%, 50%)', label: '鍙充笅绉�50%'},
+      ]
+    },
+    {
+      type: 'multiselect',
+      field: 'blacklist',
+      label: '榛戝悕鍗�',
+      initval: wrap.blacklist || '',
+      required: false,
+      options: roleList
+    },
+  ]
+
+  return balconyWrapForm
+} 
\ No newline at end of file

--
Gitblit v1.8.0