diff --git a/lib/client/src/components/render/pc/tools/lesscode-loading/index.js b/lib/client/src/components/render/pc/tools/lesscode-loading/index.js index 1d98f42b5..4a37541ec 100644 --- a/lib/client/src/components/render/pc/tools/lesscode-loading/index.js +++ b/lib/client/src/components/render/pc/tools/lesscode-loading/index.js @@ -81,6 +81,18 @@ export default { } } + const processChildren = (obj, valueKeys) => { + if (obj.children && Array.isArray(obj.children)) { + obj.children = obj.children.map(child => processChildren(child, valueKeys)) + } + const newObj = { ...obj } + for (const key in valueKeys) { + newObj[key] = valueKeys[key] ? obj[valueKeys[key]] : obj[key] + } + + return newObj + } + // 监听变量的变化 const watchVariable = (data, key, staticValue) => { const { @@ -127,6 +139,11 @@ export default { if (typeof val === typeof data.renderValue || typeof val === typeof data.code) { data.renderValue = val data.code = val + if (Object.keys(data.valueKeys).length > 0) { + const valResult = val.map(item => processChildren(item, data.valueKeys)) + data.renderValue = valResult + data.code = valResult + } } }) // 更新event diff --git a/lib/client/src/element-materials/materials/vue2/bk/search-select/index.js b/lib/client/src/element-materials/materials/vue2/bk/search-select/index.js index 8ccf2539a..a20473764 100644 --- a/lib/client/src/element-materials/materials/vue2/bk/search-select/index.js +++ b/lib/client/src/element-materials/materials/vue2/bk/search-select/index.js @@ -131,11 +131,13 @@ export default { 'display-key': { type: 'value-key-item', dataOrigin: 'data', + val: 'name', tips: '显示的字段名称' }, 'primary-key': { type: 'value-key-item', dataOrigin: 'data', + val: 'id', tips: '应用的唯一id字段名称' }, values: { diff --git a/lib/client/src/element-materials/materials/vue2/bk/timeline/index.js b/lib/client/src/element-materials/materials/vue2/bk/timeline/index.js index dff9ccd67..2fda41ef9 100644 --- a/lib/client/src/element-materials/materials/vue2/bk/timeline/index.js +++ b/lib/client/src/element-materials/materials/vue2/bk/timeline/index.js @@ -47,6 +47,10 @@ export default { remoteValidate (data) { if (!Array.isArray(data)) return '返回值需要是数组' }, + keys: [ + { id: 'tag', label: '标题', tips: '选项的值,不填取 tag 字段' }, + { id: 'content', label: '内容', tips: '选项展示的名称,不填取 content 字段' } + ], val: [ { tag: '一天前', content: '由张三上线到蓝鲸市场' }, { tag: '16:59', content: '
李四部署到生产环境并发布至应用市场
' }, diff --git a/lib/client/src/element-materials/materials/vue2/bk/tree/index.js b/lib/client/src/element-materials/materials/vue2/bk/tree/index.js index ba4eb4069..92d7ba507 100644 --- a/lib/client/src/element-materials/materials/vue2/bk/tree/index.js +++ b/lib/client/src/element-materials/materials/vue2/bk/tree/index.js @@ -58,11 +58,7 @@ export default { // } ], props: { - 'node-key': { - type: 'string', - val: 'id', - tips: '具有唯一标识的key值' - }, + 'show-icon': { type: 'boolean', val: true, @@ -83,6 +79,9 @@ export default { remoteValidate (data) { if (!Array.isArray(data)) return '返回值需要是数组' }, + keys: [ + { id: 'name', label: '名称', tips: '选项的值,不填取 name字段' } + ], val: [ { name: 'tree node1', @@ -108,6 +107,12 @@ export default { } ], tips: 'tree 数据源' + }, + 'node-key': { + type: 'value-key-item', + dataOrigin: 'data', + val: 'id', + tips: '具有唯一标识的key值' } } } diff --git a/lib/client/src/element-materials/modifier/component/props/components/common/select-key.vue b/lib/client/src/element-materials/modifier/component/props/components/common/select-key.vue new file mode 100644 index 000000000..2edc86f69 --- /dev/null +++ b/lib/client/src/element-materials/modifier/component/props/components/common/select-key.vue @@ -0,0 +1,159 @@ + + + + + diff --git a/lib/client/src/element-materials/modifier/component/props/components/render-prop.vue b/lib/client/src/element-materials/modifier/component/props/components/render-prop.vue index 334ee6761..6e09accbb 100644 --- a/lib/client/src/element-materials/modifier/component/props/components/render-prop.vue +++ b/lib/client/src/element-materials/modifier/component/props/components/render-prop.vue @@ -78,7 +78,7 @@ :name="name" :type="renderCom.type" :describe="describe" - :default-value="propTypeValueMemo[selectValueType].val" + :default-value="(propTypeValueMemo[selectValueType] || {}).val" :payload="formData.payload" :remote-validate="describe.remoteValidate" :key="`${renderCom.type}_${index}`" @@ -89,6 +89,17 @@ + +