Jelajahi Sumber

yxt 多配送方向支持

yuliang 3 tahun lalu
induk
melakukan
4b2a9836de
1 mengubah file dengan 27 tambahan dan 1 penghapusan
  1. 27 1
      src/lib/systemLib.ts

+ 27 - 1
src/lib/systemLib.ts

@@ -368,8 +368,9 @@ export function tryEnable(data, enableSetting) {
  * @param config 目标对象的配置(在构造函数之前也可以)
  * @param getDictFn 获取字典的方法
  * @param bizKey 传入字典的参数
+ * @param multiValueSeparator 多个字典值的分割符号
  */
-export function setComboStore(sender, config, getDictFn, bizKey) {
+export function setComboStore(sender, config, getDictFn, bizKey, multiValueSeparator = "") {
     if (sender.xtype === 'combotree') {
         getDictFn(bizKey, (r) => {
             if (sender.store) {
@@ -428,6 +429,31 @@ export function setComboStore(sender, config, getDictFn, bizKey) {
             const renderer = (value, metaData) => {
                 const valueField = r.field[0]
                 const displayField = r.field[1]
+                const separator = multiValueSeparator
+                if (separator) {
+                    const arr = value.split(separator)
+                    let displayValue = ""
+                    for (let i = 0; i < arr.length; i++) {
+                        const itv = arr[i]
+                        if (i > 0) {
+                            displayValue += separator
+                        }
+                        let j = 0
+                        _.each(r.data, row => {
+                            // 从 valueField 找到要显示的 displayField
+                            if (row[valueField] == itv) {
+                                displayValue += row[displayField]
+                                return false
+                            } else {
+                                if (i >= r.data.length -1) {
+                                    displayValue += itv
+                                }
+                            }
+                            j++
+                        })
+                    }
+                    return displayValue
+                }
                 _.each(r.data, row => {
                     // 从 valueField 找到要显示的 displayField
                     if (row[valueField] == value) {