From 31bc69939cd2a9ddb3a45ad7e782c45bbca7f8bd Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E8=87=AA=E5=B8=A6=E5=A4=A7=E4=BD=AC=E6=B0=94=E5=9C=BA?=
<188633308@qq.com>
Date: Tue, 29 Jun 2021 13:26:09 +0800
Subject: [PATCH] =?UTF-8?q?add=20=E9=A2=9C=E8=89=B2=E9=80=89=E6=8B=A9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
web-react/package.json | 1 +
web-react/src/assets/style/app.less | 1 +
.../src/assets/style/lib/color-selector.less | 18 ++++++
.../src/components/color-selector/index.jsx | 55 +++++++++++++++++++
web-react/src/components/index.js | 1 +
web-react/src/pages/system/app/form.jsx | 6 +-
web-react/src/pages/system/app/index.jsx | 27 +++++++++
web-react/yarn.lock | 44 ++++++++++++++-
8 files changed, 149 insertions(+), 4 deletions(-)
create mode 100644 web-react/src/assets/style/lib/color-selector.less
create mode 100644 web-react/src/components/color-selector/index.jsx
diff --git a/web-react/package.json b/web-react/package.json
index 8de0070..8f2e44b 100644
--- a/web-react/package.json
+++ b/web-react/package.json
@@ -19,6 +19,7 @@
"nprogress": "^0.2.0",
"photoswipe": "^4.1.3",
"react": "^17.0.2",
+ "react-color": "^2.19.3",
"react-dom": "^17.0.2",
"react-json-view": "^1.21.3",
"react-monaco-editor": "^0.43.0",
diff --git a/web-react/src/assets/style/app.less b/web-react/src/assets/style/app.less
index f4849cc..1e27ce4 100644
--- a/web-react/src/assets/style/app.less
+++ b/web-react/src/assets/style/app.less
@@ -35,6 +35,7 @@
@import './lib/tree-layout.less';
@import './lib/authority-view.less';
@import './lib/icon-selector.less';
+@import './lib/color-selector.less';
@import './lib/anchor.less';
@import './lib/disabled.less';
@import './theme/primary.less';
diff --git a/web-react/src/assets/style/lib/color-selector.less b/web-react/src/assets/style/lib/color-selector.less
new file mode 100644
index 0000000..e030c16
--- /dev/null
+++ b/web-react/src/assets/style/lib/color-selector.less
@@ -0,0 +1,18 @@
+@import (reference) '../extend.less';
+.ant-select-dropdown {
+ .chrome-picker {
+ width: auto !important;
+ margin: -@padding-xxs 0;
+
+ border-radius: 0 !important;
+ background: transparent !important;
+ box-shadow: none !important;
+ }
+}
+.color-selector--palette {
+ width: 32px;
+ height: 32px;
+
+ border-radius: @border-radius-base;
+ box-shadow: inset 0 0 0 @border-width-base @border-color-base, inset 0 0 0 3px @white;
+}
diff --git a/web-react/src/components/color-selector/index.jsx b/web-react/src/components/color-selector/index.jsx
new file mode 100644
index 0000000..3d67ab9
--- /dev/null
+++ b/web-react/src/components/color-selector/index.jsx
@@ -0,0 +1,55 @@
+import React, { Component } from 'react'
+import { Col, Row, Select } from 'antd'
+import { ChromePicker } from 'react-color'
+
+export default class index extends Component {
+ select = React.createRef()
+
+ state = {
+ color: null,
+ }
+
+ onChange(color) {
+ this.setState({ color: color.hex })
+ }
+
+ onChangeComplete(color) {
+ this.props.onChange && this.props.onChange(color.hex)
+ }
+
+ render() {
+ const { color } = this.state
+
+ const { value } = this.props
+
+ return (
+
+
+
+ )
+ }
+}
diff --git a/web-react/src/components/index.js b/web-react/src/components/index.js
index 757a45b..1da9bcd 100644
--- a/web-react/src/components/index.js
+++ b/web-react/src/components/index.js
@@ -1,6 +1,7 @@
export { default as AntIcon } from 'components/ant-icon'
export { default as AuthorityView } from './authority-view'
export { default as Auth } from './authorized'
+export { default as ColorSelector } from './color-selector'
export { default as ComponentDynamic } from './component-dynamic'
export { default as Container } from './container'
export { default as IconSelector } from './icon-selector'
diff --git a/web-react/src/pages/system/app/form.jsx b/web-react/src/pages/system/app/form.jsx
index 1dcbc36..f2e0fc4 100644
--- a/web-react/src/pages/system/app/form.jsx
+++ b/web-react/src/pages/system/app/form.jsx
@@ -1,7 +1,6 @@
import React, { Component } from 'react'
import { Form, Input, InputNumber, Spin } from 'antd'
-import { AntIcon, IconSelector } from 'components'
-import { cloneDeep } from 'lodash'
+import { AntIcon, ColorSelector, IconSelector } from 'components'
import { api } from 'common/api'
const initialValues = {
@@ -107,6 +106,9 @@ export default class form extends Component {
}
/>
+
+
+
(
+
+ ),
+ },
{
title: '应用名称',
dataIndex: 'name',
diff --git a/web-react/yarn.lock b/web-react/yarn.lock
index cad1a03..1bb675f 100644
--- a/web-react/yarn.lock
+++ b/web-react/yarn.lock
@@ -1315,6 +1315,11 @@
dependencies:
"@hapi/hoek" "^8.3.0"
+"@icons/material@^0.2.4":
+ version "0.2.4"
+ resolved "https://registry.nlark.com/@icons/material/download/@icons/material-0.2.4.tgz#e90c9f71768b3736e76d7dd6783fc6c2afa88bc8"
+ integrity sha1-6QyfcXaLNzbnbX3WeD/Gwq+oi8g=
+
"@istanbuljs/load-nyc-config@^1.0.0":
version "1.1.0"
resolved "https://registry.nlark.com/@istanbuljs/load-nyc-config/download/@istanbuljs/load-nyc-config-1.1.0.tgz#fd3db1d59ecf7cf121e80650bb86712f9b55eced"
@@ -7172,6 +7177,11 @@ locate-path@^5.0.0:
dependencies:
p-locate "^4.1.0"
+lodash-es@^4.17.15:
+ version "4.17.21"
+ resolved "https://registry.npm.taobao.org/lodash-es/download/lodash-es-4.17.21.tgz?cache=0&sync_timestamp=1613836185353&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash-es%2Fdownload%2Flodash-es-4.17.21.tgz#43e626c46e6591b7750beb2b50117390c609e3ee"
+ integrity sha1-Q+YmxG5lkbd1C+srUBFzkMYJ4+4=
+
lodash._reinterpolate@^3.0.0:
version "3.0.0"
resolved "https://registry.nlark.com/lodash._reinterpolate/download/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d"
@@ -7232,7 +7242,7 @@ lodash.uniq@^4.5.0:
resolved "https://registry.npm.taobao.org/lodash.uniq/download/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773"
integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=
-"lodash@>=3.5 <5", lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.5, lodash@^4.7.0:
+"lodash@>=3.5 <5", lodash@^4.0.1, lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.5, lodash@^4.7.0:
version "4.17.21"
resolved "https://registry.nlark.com/lodash/download/lodash-4.17.21.tgz?cache=0&sync_timestamp=1618847150612&other_urls=https%3A%2F%2Fregistry.nlark.com%2Flodash%2Fdownload%2Flodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
integrity sha1-Z5WRxWTDv/quhFTPCz3zcMPWkRw=
@@ -7316,6 +7326,11 @@ map-visit@^1.0.0:
dependencies:
object-visit "^1.0.0"
+material-colors@^1.2.1:
+ version "1.2.6"
+ resolved "https://registry.npm.taobao.org/material-colors/download/material-colors-1.2.6.tgz#6d1958871126992ceecc72f4bcc4d8f010865f46"
+ integrity sha1-bRlYhxEmmSzuzHL0vMTY8BCGX0Y=
+
md5.js@^1.3.4:
version "1.3.5"
resolved "https://registry.npm.taobao.org/md5.js/download/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f"
@@ -9130,7 +9145,7 @@ prompts@^2.0.1:
kleur "^3.0.3"
sisteransi "^1.0.5"
-prop-types@^15.6.2, prop-types@^15.7.2:
+prop-types@^15.5.10, prop-types@^15.6.2, prop-types@^15.7.2:
version "15.7.2"
resolved "https://registry.npm.taobao.org/prop-types/download/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5"
integrity sha1-UsQedbjIfnK52TYOAga5ncv/psU=
@@ -9658,6 +9673,19 @@ react-base16-styling@^0.6.0:
lodash.flow "^3.3.0"
pure-color "^1.2.0"
+react-color@^2.19.3:
+ version "2.19.3"
+ resolved "https://registry.npm.taobao.org/react-color/download/react-color-2.19.3.tgz#ec6c6b4568312a3c6a18420ab0472e146aa5683d"
+ integrity sha1-7GxrRWgxKjxqGEIKsEcuFGqlaD0=
+ dependencies:
+ "@icons/material" "^0.2.4"
+ lodash "^4.17.15"
+ lodash-es "^4.17.15"
+ material-colors "^1.2.1"
+ prop-types "^15.5.10"
+ reactcss "^1.2.0"
+ tinycolor2 "^1.4.1"
+
react-dev-utils@^11.0.3:
version "11.0.4"
resolved "https://registry.npm.taobao.org/react-dev-utils/download/react-dev-utils-11.0.4.tgz?cache=0&sync_timestamp=1615231838520&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Freact-dev-utils%2Fdownload%2Freact-dev-utils-11.0.4.tgz#a7ccb60257a1ca2e0efe7a83e38e6700d17aa37a"
@@ -9852,6 +9880,13 @@ react@^17.0.2:
loose-envify "^1.1.0"
object-assign "^4.1.1"
+reactcss@^1.2.0:
+ version "1.2.3"
+ resolved "https://registry.npm.taobao.org/reactcss/download/reactcss-1.2.3.tgz#c00013875e557b1cf0dfd9a368a1c3dab3b548dd"
+ integrity sha1-wAATh15Vexzw39mjaKHD2rO1SN0=
+ dependencies:
+ lodash "^4.0.1"
+
read-pkg-up@^3.0.0:
version "3.0.0"
resolved "https://registry.nlark.com/read-pkg-up/download/read-pkg-up-3.0.0.tgz?cache=0&sync_timestamp=1618846971516&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fread-pkg-up%2Fdownload%2Fread-pkg-up-3.0.0.tgz#3ed496685dba0f8fe118d0691dc51f4a1ff96f07"
@@ -11248,6 +11283,11 @@ tiny-warning@^1.0.0, tiny-warning@^1.0.3:
resolved "https://registry.npm.taobao.org/tiny-warning/download/tiny-warning-1.0.3.tgz#94a30db453df4c643d0fd566060d60a875d84754"
integrity sha1-lKMNtFPfTGQ9D9VmBg1gqHXYR1Q=
+tinycolor2@^1.4.1:
+ version "1.4.2"
+ resolved "https://registry.nlark.com/tinycolor2/download/tinycolor2-1.4.2.tgz#3f6a4d1071ad07676d7fa472e1fac40a719d8803"
+ integrity sha1-P2pNEHGtB2dtf6Ry4frECnGdiAM=
+
tmpl@1.0.x:
version "1.0.4"
resolved "https://registry.npm.taobao.org/tmpl/download/tmpl-1.0.4.tgz#23640dd7b42d00433911140820e5cf440e521dd1"