Commit 51c0ab1abf8ed0f140d2ee79dda5c6d04a46be70

Authored by ly525
1 parent 51648b0d

refactor: update color picker to support alpha

zh: 更新颜色选择器来支持透明度选择
front-end/h5/babel.config.js
1 1 module.exports = {
2 2 presets: [
3 3 '@vue/app'
  4 + // ['es2015', { 'modules': false }]
  5 + ],
  6 + 'plugins': [
  7 + [
  8 + 'component',
  9 + {
  10 + 'libraryName': 'element-ui',
  11 + 'styleLibraryName': 'theme-chalk'
  12 + }
  13 + ]
4 14 ]
5 15 }
... ...
front-end/h5/package.json
... ... @@ -19,7 +19,7 @@
19 19 "animate.css": "^3.7.2",
20 20 "ant-design-vue": "^1.3.14",
21 21 "core-js": "^2.6.5",
22   - "element-ui": "^2.9.1",
  22 + "element-ui": "^2.13.0",
23 23 "font-awesome": "4.7.0",
24 24 "html2canvas": "^1.0.0-rc.3",
25 25 "medium-editor": "^5.23.3",
... ... @@ -39,7 +39,6 @@
39 39 "vuex": "^3.0.1"
40 40 },
41 41 "devDependencies": {
42   - "dart-sass": "^1.23.7",
43 42 "@vue/cli-plugin-babel": "^3.8.0",
44 43 "@vue/cli-plugin-eslint": "^3.8.0",
45 44 "@vue/cli-plugin-pwa": "^3.8.0",
... ... @@ -50,6 +49,8 @@
50 49 "babel-core": "7.0.0-bridge.0",
51 50 "babel-eslint": "^10.0.1",
52 51 "babel-jest": "^23.6.0",
  52 + "babel-plugin-component": "^1.1.1",
  53 + "dart-sass": "^1.23.7",
53 54 "eslint": "^5.16.0",
54 55 "eslint-plugin-vue": "^5.0.0",
55 56 "sass": "^1.18.0",
... ...
front-end/h5/src/components/core/models/element.js
... ... @@ -12,7 +12,7 @@ const defaultStyle = {
12 12 zindex: 1,
13 13 textAlign: 'center',
14 14 color: '#000000',
15   - backgroundColor: '#ffffff',
  15 + backgroundColor: 'rgba(255, 255, 255, 0)',
16 16 fontSize: 14
17 17 }
18 18  
... ...
front-end/h5/src/components/plugins/common/props.js
... ... @@ -31,12 +31,13 @@ export default {
31 31 },
32 32 backgroundColor: {
33 33 type: String,
34   - default: '#ffffff',
  34 + default: 'rgba(255, 255, 255, 0.2)',
35 35 editor: {
36   - type: 'a-input', // lbs-color-picker
  36 + type: 'el-color-picker',
37 37 label: '背景颜色',
38 38 prop: {
39   - type: 'color'
  39 + size: 'mini',
  40 + showAlpha: true
40 41 },
41 42 require: true
42 43 }
... ... @@ -48,11 +49,12 @@ export default {
48 49 // The value of an <input> element of type color is always a DOMString which contains a 7-character string specifying an RGB color in hexadecimal format.
49 50 default: '#000000',
50 51 editor: {
51   - type: 'a-input',
  52 + type: 'el-color-picker',
52 53 label: '文字颜色',
53 54 // !#zh 为编辑组件指定 prop
54 55 prop: {
55   - type: 'color'
  56 + size: 'mini',
  57 + showAlpha: true
56 58 },
57 59 require: true
58 60 }
... ... @@ -117,10 +119,11 @@ export default {
117 119 type: String,
118 120 default: '#ced4da',
119 121 editor: {
120   - type: 'a-input', // lbs-color-picker
  122 + type: 'el-color-picker',
121 123 label: '边框颜色',
122 124 prop: {
123   - type: 'color'
  125 + size: 'mini',
  126 + showAlpha: true
124 127 },
125 128 require: true
126 129 }
... ...
front-end/h5/src/components/plugins/lbp-background.js
  1 +/*
  2 + * @Author: ly525
  3 + * @Date: 2019-11-24 18:51:58
  4 + * @LastEditors: ly525
  5 + * @LastEditTime: 2019-11-30 23:02:31
  6 + * @FilePath: /luban-h5/front-end/h5/src/components/plugins/lbp-background.js
  7 + * @Github: https://github.com/ly525/luban-h5
  8 + * @Description: luban-h5 background image/color component/plugin
  9 + * @Copyright 2018 - 2019 luban-h5. All Rights Reserved
  10 + */
1 11 export default {
2 12 name: 'lbp-background',
3 13 render () {
... ... @@ -46,12 +56,13 @@ export default {
46 56 // https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/color#Value
47 57 // The value of an <input> element of type color is always a DOMString which contains a 7-character string specifying an RGB color in hexadecimal format.
48 58  
49   - default: '#ffffff',
  59 + default: 'rgba(255, 255, 255, 0.2)',
50 60 editor: {
51   - type: 'a-input', // lbs-color-picker
  61 + type: 'el-color-picker',
52 62 label: '背景颜色',
53 63 prop: {
54   - type: 'color'
  64 + size: 'mini',
  65 + showAlpha: true
55 66 },
56 67 require: true
57 68 }
... ...
front-end/h5/src/main.js
... ... @@ -5,6 +5,7 @@ import store from &#39;./store/&#39;
5 5 import i18n from './locales'
6 6 // import './registerServiceWorker'
7 7 // import ElementUI from 'element-ui'
  8 +import { ColorPicker, Button } from 'element-ui'
8 9 import Antd from 'ant-design-vue'
9 10  
10 11 // import 'element-ui/lib/theme-chalk/index.css'
... ... @@ -16,7 +17,15 @@ import vClickOutside from &#39;v-click-outside&#39;
16 17 Vue.config.productionTip = false
17 18 Vue.use(Antd)
18 19 Vue.use(vClickOutside)
19   -// Vue.use(ElementUI)
  20 +
  21 +/**
  22 + * #!en import element-ui color picker for bgcolor、color, because a-input(ant-design-vue) component do not support alpha
  23 + * #!zh 引入 element-ui 颜色选择器,因为 ant-design-vue 没有提供颜色选择器,默认的 <a-input type="color" /> 不支持选择透明度
  24 + *
  25 + * https://github.com/ly525/luban-h5/issues/105
  26 + */
  27 +Vue.component(Button.name, Button)
  28 +Vue.component(ColorPicker.name, ColorPicker)
20 29  
21 30 new Vue({
22 31 router,
... ...
front-end/h5/yarn.lock
... ... @@ -142,6 +142,14 @@
142 142 dependencies:
143 143 "@babel/types" "^7.5.5"
144 144  
  145 +"@babel/helper-module-imports@7.0.0-beta.35":
  146 + version "7.0.0-beta.35"
  147 + resolved "https://registry.npm.taobao.org/@babel/helper-module-imports/download/@babel/helper-module-imports-7.0.0-beta.35.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-module-imports%2Fdownload%2F%40babel%2Fhelper-module-imports-7.0.0-beta.35.tgz#308e350e731752cdb4d0f058df1d704925c64e0a"
  148 + integrity sha1-MI41DnMXUs200PBY3x1wSSXGTgo=
  149 + dependencies:
  150 + "@babel/types" "7.0.0-beta.35"
  151 + lodash "^4.2.0"
  152 +
145 153 "@babel/helper-module-imports@^7.0.0":
146 154 version "7.0.0"
147 155 resolved "https://registry.npm.taobao.org/@babel/helper-module-imports/download/@babel/helper-module-imports-7.0.0.tgz#96081b7111e486da4d2cd971ad1a4fe216cc2e3d"
... ... @@ -687,6 +695,15 @@
687 695 globals "^11.1.0"
688 696 lodash "^4.17.13"
689 697  
  698 +"@babel/types@7.0.0-beta.35":
  699 + version "7.0.0-beta.35"
  700 + resolved "https://registry.npm.taobao.org/@babel/types/download/@babel/types-7.0.0-beta.35.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.0.0-beta.35.tgz#cf933a9a9a38484ca724b335b88d83726d5ab960"
  701 + integrity sha1-z5M6mpo4SEynJLM1uI2Dcm1auWA=
  702 + dependencies:
  703 + esutils "^2.0.2"
  704 + lodash "^4.2.0"
  705 + to-fast-properties "^2.0.0"
  706 +
690 707 "@babel/types@^7.0.0", "@babel/types@^7.2.0", "@babel/types@^7.4.4", "@babel/types@^7.5.5", "@babel/types@^7.6.0", "@babel/types@^7.6.3":
691 708 version "7.6.3"
692 709 resolved "https://registry.npm.taobao.org/@babel/types/download/@babel/types-7.6.3.tgz#3f07d96f854f98e2fbd45c64b0cb942d11e8ba09"
... ... @@ -1932,6 +1949,13 @@ babel-messages@^6.23.0:
1932 1949 dependencies:
1933 1950 babel-runtime "^6.22.0"
1934 1951  
  1952 +babel-plugin-component@^1.1.1:
  1953 + version "1.1.1"
  1954 + resolved "https://registry.npm.taobao.org/babel-plugin-component/download/babel-plugin-component-1.1.1.tgz#9b023a23ff5c9aae0fd56c5a18b9cab8c4d45eea"
  1955 + integrity sha1-mwI6I/9cmq4P1WxaGLnKuMTUXuo=
  1956 + dependencies:
  1957 + "@babel/helper-module-imports" "7.0.0-beta.35"
  1958 +
1935 1959 babel-plugin-dynamic-import-node@^2.2.0, babel-plugin-dynamic-import-node@^2.3.0:
1936 1960 version "2.3.0"
1937 1961 resolved "https://registry.npm.taobao.org/babel-plugin-dynamic-import-node/download/babel-plugin-dynamic-import-node-2.3.0.tgz#f00f507bdaa3c3e3ff6e7e5e98d90a7acab96f7f"
... ... @@ -3971,10 +3995,10 @@ electron-to-chromium@^1.3.295:
3971 3995 resolved "https://registry.npm.taobao.org/electron-to-chromium/download/electron-to-chromium-1.3.302.tgz?cache=0&sync_timestamp=1572711562817&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Felectron-to-chromium%2Fdownload%2Felectron-to-chromium-1.3.302.tgz#4c7ba3d56166507a56f7eb603fdde1ed701f5ac8"
3972 3996 integrity sha1-THuj1WFmUHpW9+tgP93h7XAfWsg=
3973 3997  
3974   -element-ui@^2.9.1:
3975   - version "2.12.0"
3976   - resolved "https://registry.npm.taobao.org/element-ui/download/element-ui-2.12.0.tgz#a893bc11ae4f7dbb7e9d541606f23e643f131ee4"
3977   - integrity sha1-qJO8Ea5Pfbt+nVQWBvI+ZD8THuQ=
  3998 +element-ui@^2.13.0:
  3999 + version "2.13.0"
  4000 + resolved "https://registry.npm.taobao.org/element-ui/download/element-ui-2.13.0.tgz#f6bb04e5b0a76ea5f62466044b774407ba4ebd2d"
  4001 + integrity sha1-9rsE5bCnbqX2JGYES3dEB7pOvS0=
3978 4002 dependencies:
3979 4003 async-validator "~1.8.1"
3980 4004 babel-helper-vue-jsx-merge-props "^2.0.0"
... ... @@ -7065,7 +7089,7 @@ lodash.uniq@^4.5.0:
7065 7089 resolved "https://registry.npm.taobao.org/lodash.uniq/download/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773"
7066 7090 integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=
7067 7091  
7068   -lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.3, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.3.0:
  7092 +lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.3, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.2.0, lodash@^4.3.0:
7069 7093 version "4.17.15"
7070 7094 resolved "https://registry.npm.taobao.org/lodash/download/lodash-4.17.15.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash%2Fdownload%2Flodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548"
7071 7095 integrity sha1-tEf2ZwoEVbv+7dETku/zMOoJdUg=
... ...