From e36415330fb193a89daee99ae187f1015e11df25 Mon Sep 17 00:00:00 2001 From: chenos Date: Sat, 23 Jan 2021 14:15:41 +0800 Subject: [PATCH] fix: can use markdown in field description --- packages/app/src/components/views/Field/index.tsx | 2 +- packages/app/src/components/views/Form/scopes.tsx | 4 +++- packages/plugin-pages/src/actions/getView.ts | 6 +++--- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/packages/app/src/components/views/Field/index.tsx b/packages/app/src/components/views/Field/index.tsx index ff6884980b..a55856dd8f 100644 --- a/packages/app/src/components/views/Field/index.tsx +++ b/packages/app/src/components/views/Field/index.tsx @@ -25,7 +25,7 @@ marked.setOptions({ const renderer = new marked.Renderer(); renderer.link = ( href, title, text ) => `${ text }`; -function markdown(text: string) { +export function markdown(text: string) { return marked(text, { renderer, }); diff --git a/packages/app/src/components/views/Form/scopes.tsx b/packages/app/src/components/views/Form/scopes.tsx index de5e02e64a..1ef016e9f9 100644 --- a/packages/app/src/components/views/Form/scopes.tsx +++ b/packages/app/src/components/views/Form/scopes.tsx @@ -1,13 +1,15 @@ import React from 'react'; import { Tooltip } from 'antd'; import { QuestionCircleOutlined } from '@ant-design/icons'; +import { markdown } from '../Field'; export default { text(...args: any[]) { return React.createElement('span', {}, ...args) }, html(html: string) { - return
+ const text = decodeURIComponent(html); + return
}, tooltip(title: string, offset = 3) { return ( diff --git a/packages/plugin-pages/src/actions/getView.ts b/packages/plugin-pages/src/actions/getView.ts index dabe91598a..19c355099b 100644 --- a/packages/plugin-pages/src/actions/getView.ts +++ b/packages/plugin-pages/src/actions/getView.ts @@ -49,8 +49,8 @@ const transforms = { const dataSource = field.get('dataSource').filter(item => item.key !== 'developerMode'); field.set('dataSource', dataSource); } - if (field.get('component.type') === 'filter') { - const { values } = ctx.action.params; + const { values } = ctx.action.params; + if (field.get('component.type') === 'filter' && get(values, 'associatedKey')) { const options = Field.parseApiJson(ctx.state.developerMode ? { filter: { collection_name: get(values, 'associatedKey'), @@ -70,7 +70,7 @@ const transforms = { prop.type = 'string' } if (field.get('component.tooltip')) { - prop.description = `{{html('${field.get('component.tooltip')}')}}`; + prop.description = `{{html('${encodeURIComponent(field.get('component.tooltip'))}')}}`; } if (field.get('name') === 'dataSource') {