From c86501388a91fc39e39d3a322335b132cd4e555a Mon Sep 17 00:00:00 2001 From: xujiang Date: Fri, 27 Nov 2020 00:49:55 +0800 Subject: [PATCH] =?UTF-8?q?:new:=20=E6=B7=BB=E5=8A=A0=E5=AF=8C=E6=96=87?= =?UTF-8?q?=E6=9C=AC=E7=BB=84=E4=BB=B6=20:lipstick:=20=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E9=A6=96=E9=A1=B5=E6=A0=B7=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 1 + src/assets/richText.png | Bin 0 -> 21988 bytes .../BasicComponents/RichText/index.less | 17 ++++ .../BasicComponents/RichText/index.tsx | 30 ++++++ .../BasicComponents/RichText/schema.ts | 64 ++++++++++++ .../BasicComponents/RichText/template.ts | 6 ++ .../BasicShop/BasicComponents/schema.ts | 2 + .../BasicShop/BasicComponents/template.ts | 2 + .../PanelComponents/FormEditor/index.tsx | 6 ++ .../PanelComponents/XEditor/index.less | 4 + .../PanelComponents/XEditor/index.tsx | 94 ++++++++++++++++++ src/components/Zan/index.tsx | 2 +- src/pages/home/index.less | 2 +- src/pages/home/index.tsx | 43 ++++---- yarn.lock | 72 +++++++++++++- 15 files changed, 324 insertions(+), 21 deletions(-) create mode 100644 src/assets/richText.png create mode 100644 src/components/BasicShop/BasicComponents/RichText/index.less create mode 100644 src/components/BasicShop/BasicComponents/RichText/index.tsx create mode 100644 src/components/BasicShop/BasicComponents/RichText/schema.ts create mode 100644 src/components/BasicShop/BasicComponents/RichText/template.ts create mode 100644 src/components/PanelComponents/XEditor/index.less create mode 100644 src/components/PanelComponents/XEditor/index.tsx diff --git a/package.json b/package.json index 35c425c..d4b7f14 100644 --- a/package.json +++ b/package.json @@ -62,6 +62,7 @@ "antd": "^4.7.0", "antd-img-crop": "^3.10.0", "axios": "^0.19.2", + "braft-editor": "^2.3.9", "chatbot-antd": "^0.6.0", "codemirror": "^5.57.0", "dom-to-image": "^2.6.0", diff --git a/src/assets/richText.png b/src/assets/richText.png new file mode 100644 index 0000000000000000000000000000000000000000..be1d423d023ea38e7c4919674d6a84317012f4bf GIT binary patch literal 21988 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 { + const { isTpl, borderColor, borderWidth, round, padding, content } = props; + + return isTpl ? ( +
+ +
+ ) : ( +
+
+
+ ); +}); +export default XButton; diff --git a/src/components/BasicShop/BasicComponents/RichText/schema.ts b/src/components/BasicShop/BasicComponents/RichText/schema.ts new file mode 100644 index 0000000..feb9075 --- /dev/null +++ b/src/components/BasicShop/BasicComponents/RichText/schema.ts @@ -0,0 +1,64 @@ +import { + IColorConfigType, + INumberConfigType, + ITextConfigType, + TColorDefaultType, + TNumberDefaultType, + TTextDefaultType, + IRichTextConfigType, + TRichTextDefaultType, +} from '@/components/PanelComponents/FormEditor/types'; + +export type TButtonEditData = Array< + ITextConfigType | IColorConfigType | INumberConfigType | IRichTextConfigType +>; + +export interface IButtonConfig { + round: TNumberDefaultType; + borderWidth: TNumberDefaultType; + padding: TNumberDefaultType; + borderColor: TColorDefaultType; + content: TRichTextDefaultType; +} + +export interface IButtonSchema { + editData: TButtonEditData; + config: IButtonConfig; +} +const Button: IButtonSchema = { + editData: [ + { + key: 'round', + name: '边框圆角', + type: 'Number', + }, + { + key: 'borderWidth', + name: '边框宽度', + type: 'Number', + }, + { + key: 'borderColor', + name: '边框颜色', + type: 'Color', + }, + { + key: 'padding', + name: '内边距', + type: 'Number', + }, + { + key: 'content', + name: '内容', + type: 'RichText', + }, + ], + config: { + round: 0, + borderWidth: 0, + borderColor: 'rgba(255,255,255,1)', + padding: 0, + content: '', + }, +}; +export default Button; diff --git a/src/components/BasicShop/BasicComponents/RichText/template.ts b/src/components/BasicShop/BasicComponents/RichText/template.ts new file mode 100644 index 0000000..049a8e7 --- /dev/null +++ b/src/components/BasicShop/BasicComponents/RichText/template.ts @@ -0,0 +1,6 @@ +const template = { + type: 'RichText', + h: 120, + displayName: '富文本组件', +}; +export default template; diff --git a/src/components/BasicShop/BasicComponents/schema.ts b/src/components/BasicShop/BasicComponents/schema.ts index b4e6bf1..8945800 100644 --- a/src/components/BasicShop/BasicComponents/schema.ts +++ b/src/components/BasicShop/BasicComponents/schema.ts @@ -11,6 +11,7 @@ import Notice from './Notice/schema'; import Qrcode from './Qrcode/schema'; import Tab from './Tab/schema'; import Text from './Text/schema'; +import RichText from './RichText/schema'; const basicSchema = { Carousel, @@ -26,5 +27,6 @@ const basicSchema = { Qrcode, Tab, Text, + RichText, }; export default basicSchema; diff --git a/src/components/BasicShop/BasicComponents/template.ts b/src/components/BasicShop/BasicComponents/template.ts index bb90856..b38a50e 100644 --- a/src/components/BasicShop/BasicComponents/template.ts +++ b/src/components/BasicShop/BasicComponents/template.ts @@ -11,6 +11,7 @@ import Qrcode from './Qrcode/template'; import Tab from './Tab/template'; import Text from './Text/template'; import WhiteTpl from './WhiteTpl/template'; +import RichText from './RichText/template'; const basicTemplate = [ Carousel, @@ -26,6 +27,7 @@ const basicTemplate = [ Tab, Text, WhiteTpl, + RichText, ]; const BasicTemplate = basicTemplate.map(v => { return { ...v, category: 'base' }; diff --git a/src/components/PanelComponents/FormEditor/index.tsx b/src/components/PanelComponents/FormEditor/index.tsx index 3945838..1bdbfc4 100644 --- a/src/components/PanelComponents/FormEditor/index.tsx +++ b/src/components/PanelComponents/FormEditor/index.tsx @@ -8,6 +8,7 @@ import CardPicker from '../CardPicker'; import Table from '../Table'; import Pos from '../Pos'; import { Store } from 'antd/lib/form/interface'; +import RichText from '../XEditor'; import FormItems from '../FormItems'; // import styles from './index.less'; const normFile = (e: any) => { @@ -158,6 +159,11 @@ const FormEditor = (props: FormEditorProps) => { )} + {item.type === 'RichText' && ( + + + + )} ); })} diff --git a/src/components/PanelComponents/XEditor/index.less b/src/components/PanelComponents/XEditor/index.less new file mode 100644 index 0000000..4783014 --- /dev/null +++ b/src/components/PanelComponents/XEditor/index.less @@ -0,0 +1,4 @@ +.avatarUploader > :global(.ant-upload) { + width: 128px; + height: 128px; +} diff --git a/src/components/PanelComponents/XEditor/index.tsx b/src/components/PanelComponents/XEditor/index.tsx new file mode 100644 index 0000000..ff739db --- /dev/null +++ b/src/components/PanelComponents/XEditor/index.tsx @@ -0,0 +1,94 @@ +import React, { useState, useEffect, memo } from 'react'; +import req from '@/utils/req'; +import BraftEditor from 'braft-editor'; +import 'braft-editor/dist/index.css'; +import styles from './index.less'; + +const controls = [ + { + key: 'bold', + text: 加粗, + }, + 'undo', + 'redo', + 'emoji', + 'list-ul', + 'list-ol', + 'blockquote', + 'text-align', + 'font-size', + 'line-height', + 'letter-spacing', + 'text-color', + 'italic', + 'underline', + 'link', + 'media', +]; + +export default memo(function XEditor(props: any) { + const [editorState, setEditorState] = useState(BraftEditor.createEditorState()); + + const { value, onChange } = props; + + const myUploadFn = param => { + const fd = new FormData(); + fd.append('file', param.file); + + req + .post('xxxx', fd, { + headers: { + 'Content-Type': 'multipart/form-data', + }, + onUploadProgress: function(event) { + // 上传进度发生变化时调用param.progress + console.log((event.loaded / event.total) * 100); + param.progress((event.loaded / event.total) * 100); + }, + }) + .then(res => { + console.log(res); + // 上传成功后调用param.success并传入上传后的文件地址 + param.success({ + url: res.url, + meta: { + id: Date.now(), + title: res.filename, + alt: '趣谈前端', + }, + }); + }) + .catch(err => { + param.error({ + msg: '上传失败.', + }); + }); + }; + + const submitContent = () => { + const htmlContent = editorState.toHTML(); + onChange && onChange(htmlContent); + }; + + const handleEditorChange = editorState => { + setEditorState(editorState); + if (onChange) { + const htmlContent = editorState.toHTML(); + onChange(htmlContent); + } + }; + + useEffect(() => { + const htmlContent = value || ''; + setEditorState(BraftEditor.createEditorState(htmlContent)); + }, []); + return ( + + ); +}); diff --git a/src/components/Zan/index.tsx b/src/components/Zan/index.tsx index c53f694..1857198 100644 --- a/src/components/Zan/index.tsx +++ b/src/components/Zan/index.tsx @@ -5,7 +5,7 @@ import styles from './index.less'; ///这组件写的有问题 popover会重定位 const content = (
- sponsorship + sponsorship
); diff --git a/src/pages/home/index.less b/src/pages/home/index.less index 4764bee..0701447 100644 --- a/src/pages/home/index.less +++ b/src/pages/home/index.less @@ -53,7 +53,7 @@ .footer { margin-top: 50px; text-align: center; - font-size: 50px; + font-size: 15px; p { font-size: 16px; } diff --git a/src/pages/home/index.tsx b/src/pages/home/index.tsx index b8f3453..0efc776 100644 --- a/src/pages/home/index.tsx +++ b/src/pages/home/index.tsx @@ -1,13 +1,13 @@ import React from 'react'; -import { Tabs, message, Button } from 'antd'; +import { Tabs, message } from 'antd'; import { history } from 'umi'; import { MobileOutlined, ConsoleSqlOutlined, - GithubOutlined, CodeOutlined, IdcardOutlined, } from '@ant-design/icons'; +import Zan from '@/components/Zan'; import styles from './index.less'; const { TabPane } = Tabs; @@ -90,21 +90,30 @@ const Home = () => { diff --git a/yarn.lock b/yarn.lock index 9f25b4f..8bf67ff 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3978,6 +3978,39 @@ braces@^3.0.1, braces@~3.0.2: dependencies: fill-range "^7.0.1" +braft-convert@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/braft-convert/-/braft-convert-2.3.0.tgz#27d5905136c334903d083b7a2352a72045627888" + integrity sha512-5km+dLHk8iYDv2iEYDrDQ2ld/ZoUx66QLql0qdm5PqZEcNXc8dBHGLORfzeu3iMw1jLeAiHxtdY5+ypuIhczVg== + dependencies: + draft-convert "^2.0.0" + draft-js "^0.10.3" + +braft-editor@^2.3.9: + version "2.3.9" + resolved "https://registry.yarnpkg.com/braft-editor/-/braft-editor-2.3.9.tgz#fd2b8e23ea71191016579a1ed8231d16ad8f5b4a" + integrity sha512-mqdPk/zI2dhFK8tW/A4Qj/AkkARLh5L/niNw+iif5wFqb6zh15rMlrShgz1nWO/QXyAKr8XtDgxiBbR0zWwtRg== + dependencies: + "@babel/runtime" "^7.0.0" + braft-convert "^2.3.0" + braft-finder "^0.0.19" + braft-utils "^3.0.8" + draft-convert "^2.0.0" + draft-js "^0.10.3" + draft-js-multidecorators "^1.0.0" + draftjs-utils "^0.9.4" + immutable "~3.7.4" + +braft-finder@^0.0.19: + version "0.0.19" + resolved "https://registry.yarnpkg.com/braft-finder/-/braft-finder-0.0.19.tgz#c324d82526ed3476a93de86cc9b407f4e188bc8d" + integrity sha512-0kzI6/KbomJJhYX1hpjn4edCKhblyUyWdUrsgBmOrwy0vrj+pPkm69+Uf8Uj6KGAULM6LF0ooC++p7fqUGgFHw== + +braft-utils@^3.0.8: + version "3.0.12" + resolved "https://registry.yarnpkg.com/braft-utils/-/braft-utils-3.0.12.tgz#2b755ce1d8397d96b627b6767f74d07f25729d85" + integrity sha512-O2cKysURNC4HSEMKgNmQ2RluwcrxvYrztlEmyPN5SzktiNX3vaLFQoo0Ez3PlIhvjaGrIBSIT2Oyh2N6mn6TFg== + brorand@^1.0.1: version "1.1.0" resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" @@ -5618,6 +5651,36 @@ dotenv@8.2.0: resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-8.2.0.tgz#97e619259ada750eea3e4ea3e26bceea5424b16a" integrity sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw== +draft-convert@^2.0.0: + version "2.1.10" + resolved "https://registry.yarnpkg.com/draft-convert/-/draft-convert-2.1.10.tgz#07552f0aadff7ac01c8619d769210d4ea8fcab77" + integrity sha512-PRdcjBqFUfEb2jlPM+bOyyCNlTzGaHdyhvKsw5nur6Dj1YclmuAiTwJ8yTsEa95YI9kwzbO5ccZ/+tYj/LlS0A== + dependencies: + "@babel/runtime" "^7.5.5" + immutable "~3.7.4" + invariant "^2.2.1" + +draft-js-multidecorators@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/draft-js-multidecorators/-/draft-js-multidecorators-1.0.0.tgz#6c4be8d7b78dd2b966ee51ee6cc179b9b535e612" + integrity sha1-bEvo17eN0rlm7lHubMF5ubU15hI= + dependencies: + immutable "*" + +draft-js@^0.10.3: + version "0.10.5" + resolved "https://registry.yarnpkg.com/draft-js/-/draft-js-0.10.5.tgz#bfa9beb018fe0533dbb08d6675c371a6b08fa742" + integrity sha512-LE6jSCV9nkPhfVX2ggcRLA4FKs6zWq9ceuO/88BpXdNCS7mjRTgs0NsV6piUCJX9YxMsB9An33wnkMmU2sD2Zg== + dependencies: + fbjs "^0.8.15" + immutable "~3.7.4" + object-assign "^4.1.0" + +draftjs-utils@^0.9.4: + version "0.9.4" + resolved "https://registry.yarnpkg.com/draftjs-utils/-/draftjs-utils-0.9.4.tgz#976c61aa133dbbbfedd65ae1dd6627d7b98c6f08" + integrity sha512-KYjABSbGpJrwrwmxVj5UhfV37MF/p0QRxKIyL+/+QOaJ8J9z1FBKxkblThbpR0nJi9lxPQWGg+gh+v0dAsSCCg== + duplexer3@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" @@ -6486,7 +6549,7 @@ fb-watchman@^2.0.0: dependencies: bser "2.1.1" -fbjs@^0.8.0, fbjs@^0.8.3, fbjs@^0.8.9: +fbjs@^0.8.0, fbjs@^0.8.15, fbjs@^0.8.3, fbjs@^0.8.9: version "0.8.17" resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.17.tgz#c4d598ead6949112653d6588b01a5cdcd9f90fdd" integrity sha1-xNWY6taUkRJlPWWIsBpc3Nn5D90= @@ -7415,11 +7478,16 @@ immer@^7.0.5: resolved "https://registry.yarnpkg.com/immer/-/immer-7.0.9.tgz#28e7552c21d39dd76feccd2b800b7bc86ee4a62e" integrity sha512-Vs/gxoM4DqNAYR7pugIxi0Xc8XAun/uy7AQu4fLLqaTBHxjOP9pJ266Q9MWA/ly4z6rAFZbvViOtihxUZ7O28A== -immutable@^3.8.1: +immutable@*, immutable@^3.8.1: version "3.8.2" resolved "https://registry.yarnpkg.com/immutable/-/immutable-3.8.2.tgz#c2439951455bb39913daf281376f1530e104adf3" integrity sha1-wkOZUUVbs5kT2vKBN28VMOEErfM= +immutable@~3.7.4: + version "3.7.6" + resolved "https://registry.yarnpkg.com/immutable/-/immutable-3.7.6.tgz#13b4d3cb12befa15482a26fe1b2ebae640071e4b" + integrity sha1-E7TTyxK++hVIKib+Gy665kAHHks= + import-cwd@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/import-cwd/-/import-cwd-2.1.0.tgz#aa6cf36e722761285cb371ec6519f53e2435b0a9"