From 53b9fb93d0376eb02bb996935f1720b4e95cd897 Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期三, 12 十月 2022 14:41:06 +0800
Subject: [PATCH] 2022-10-12

---
 src/menu/components/card/cardcomponent/options.jsx |  100 ++++++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 84 insertions(+), 16 deletions(-)

diff --git a/src/menu/components/card/cardcomponent/options.jsx b/src/menu/components/card/cardcomponent/options.jsx
index ab83bf7..a2faaf0 100644
--- a/src/menu/components/card/cardcomponent/options.jsx
+++ b/src/menu/components/card/cardcomponent/options.jsx
@@ -1,26 +1,25 @@
 /**
  * @description Setting琛ㄥ崟閰嶇疆淇℃伅
  */
-export default function (setting, subtype, buttons = [], cardType, columns) {
+export default function (setting, subtype, buttons = [], cardType, columns, menus = []) {
   let appType = sessionStorage.getItem('appType')
   let hasMenus = subtype === 'datacard' && cardType !== 'extendCard'
 
   let menulist = []
-  let appmenulist = []
 
   if (appType) {
-    appmenulist = sessionStorage.getItem('appMenus')
-    if (appmenulist) {
+    menulist = sessionStorage.getItem('appMenus')
+    if (menulist) {
       try {
-        appmenulist = JSON.parse(appmenulist)
+        menulist = JSON.parse(menulist)
       } catch (e) {
-        appmenulist = []
+        menulist = []
       }
     } else {
-      appmenulist = []
+      menulist = []
     }
-    if (appType === 'mob' && hasMenus) { // 鏁版嵁鍗″彲鎵撳紑鍗虫椂閫氫俊
-      appmenulist.push({
+    if (appType === 'mob' && (subtype === 'datacard' || subtype === 'propcard') && cardType !== 'extendCard') { // 鏁版嵁鍗″彲鎵撳紑鍗虫椂閫氫俊
+      menulist.push({
         value: 'IM', label: '鍗虫椂閫氫俊锛堢郴缁熼〉锛�'
       })
     }
@@ -40,6 +39,12 @@
   let ops = []
   if (hasMenus) {
     ops = [{value: 'menus', label: '鑿滃崟缁�'}]
+  }
+  let adapters = sessionStorage.getItem('adapter') || ''
+  if (adapters.indexOf('wxmini') > -1) {
+    ops.push({value: 'miniprogram', label: '灏忕▼搴�'})
+  } else if (setting.click === 'miniprogram') {
+    setting.click = ''
   }
 
   const cardSettingForm = [
@@ -98,11 +103,11 @@
       forbid: subtype !== 'propcard'
     },
     {
-      type: !hasMenus ? 'radio' : 'select',
+      type: ops.length === 0 ? 'radio' : 'select',
       field: 'click',
       label: '鐐瑰嚮浜嬩欢',
       initval: setting.click || '',
-      tooltip: '褰撶粦瀹氱偣鍑讳簨浠舵椂锛屽崱鐗囩殑鍒囨崲鍔熻兘灏嗗け鏁堛��',
+      // tooltip: '褰撶粦瀹氱偣鍑讳簨浠舵椂锛屽崱鐗囩殑鍒囨崲鍔熻兘灏嗗け鏁堛��',
       required: false,
       options: [
         {value: '', label: '鏃�'},
@@ -115,9 +120,13 @@
         {field: 'menu', values: ['menu']},
         {field: 'linkurl', values: ['link']},
         {field: 'open', values: ['menu', 'link', 'menus']},
-        {field: 'joint', values: ['menu', 'link', 'menus']},
+        {field: 'joint', values: ['menu', 'link', 'menus', 'miniprogram']},
         {field: 'linkbtn', values: ['button']},
+        {field: 'clickType', values: ['button']},
         {field: 'menuType', values: ['menus']},
+        {field: 'menus', values: ['menus']},
+        {field: 'miniAppId', values: ['miniprogram']},
+        {field: 'miniPath', values: ['miniprogram']},
       ]
     },
     {
@@ -134,7 +143,8 @@
       label: '鍏宠仈鑿滃崟',
       initval: setting.menu || (appType ? '' : []),
       required: true,
-      options: appType ? appmenulist : menulist,
+      extendName: 'MenuNo',
+      options: menulist,
     },
     {
       type: 'textarea',
@@ -146,16 +156,31 @@
       span: 24
     },
     {
+      type: 'text',
+      field: 'miniAppId',
+      label: '灏忕▼搴廇ppID',
+      initval: setting.miniAppId || '',
+      required: true
+    },
+    {
+      type: 'text',
+      field: 'miniPath',
+      label: '椤甸潰璺緞',
+      initval: setting.miniPath || '',
+      tooltip: '鍙寚瀹氳烦杞皬绋嬪簭椤甸潰锛屼负绌烘椂鎵撳紑棣栭〉锛屾敞锛氬弬鏁版嫾鎺ュ湪鎸囧畾椤甸潰鏃舵湁鏁堛��',
+      required: false
+    },
+    {
       type: 'radio',
       field: 'open',
       label: '鎵撳紑鏂瑰紡',
       initval: setting.open || 'blank',
       required: false,
       options: [
-        {value: 'blank', label: '鏂扮獥鍙�'},
-        {value: 'self', label: '褰撳墠绐楀彛'},
+        {value: 'blank', label: appType !== 'mob' ? '鏂扮獥鍙�' : '鏂伴〉闈�'},
+        {value: 'self', label: appType !== 'mob' ? '褰撳墠绐楀彛' : '褰撳墠椤甸潰'},
       ],
-      forbid: appType !== 'pc'
+      forbid: appType !== 'pc' && appType !== 'mob'
     },
     {
       type: 'radio',
@@ -178,6 +203,18 @@
     },
     {
       type: 'radio',
+      field: 'clickType',
+      label: '瑙﹀彂鏂瑰紡',
+      initval: setting.clickType || 'normal',
+      required: false,
+      options: [
+        {value: 'normal', label: '鍗曞嚮'},
+        {value: 'multi', label: '鍙屽嚮'},
+      ],
+      forbid: appType === 'mob'
+    },
+    {
+      type: 'radio',
       field: 'btnControl',
       label: '鎸夐挳鎺у埗',
       initval: setting.btnControl || 'show',
@@ -188,6 +225,37 @@
         {value: 'hover', label: '鎮诞鏄剧ず'},
       ],
       forbid: appType === 'mob'
+    },
+    {
+      type: 'table',
+      field: 'menus',
+      label: '鑿滃崟缁�',
+      initval: menus,
+      required: true,
+      span: 24,
+      actions: ['view'],
+      columns: [
+        {
+          title: '鏍囪瘑',
+          dataIndex: 'sign',
+          inputType: 'input',
+          editable: true,
+          unique: true,
+          required: false,
+          width: '35%'
+        },
+        {
+          title: '鑿滃崟',
+          dataIndex: 'menu',
+          inputType: !appType ? 'cascader' : 'select',
+          editable: true,
+          required: true,
+          extends: !appType ? 'Menu' : [{key: 'label', value: 'label'}],
+          width: '35%',
+          render: (text, record) => record.label,
+          options: menulist
+        }
+      ]
     }
   ]
 

--
Gitblit v1.8.0