Commit ccd620a7c034ef378fabbabdd83ce009006bcf0c

Authored by zhangzzzz
1 parent 71ee4dc5

进度条新增渐变色;

src/views/bigscreenDesigner/designer/tools/configure/percentCharts/widget-progress.js
1 /* 1 /*
2 * @Descripttion: 进度条 2 * @Descripttion: 进度条
3 - * @Author: qianlishi 3 + * @Author: zhangzhen
4 */ 4 */
5 export const widgetProgress = { 5 export const widgetProgress = {
6 - code: 'widgetProgress',  
7 - type: 'percent',  
8 - tabName: '百分比',  
9 - label: '进度条',  
10 - icon: 'iconbaifenbi',  
11 - options: {  
12 - // 配置  
13 - setup: [ 6 + code: "widgetProgress",
  7 + type: "percent",
  8 + tabName: "百分比",
  9 + label: "进度条",
  10 + icon: "iconbaifenbi",
  11 + options: {
  12 + // 配置
  13 + setup: [
  14 + {
  15 + type: "el-input-text",
  16 + label: "图层名称",
  17 + name: "layerName",
  18 + required: false,
  19 + placeholder: "",
  20 + value: "进度条"
  21 + },
  22 + {
  23 + type: "el-input-number",
  24 + label: "宽度",
  25 + name: "strokeWidth",
  26 + required: false,
  27 + placeholder: "",
  28 + value: 20
  29 + },
  30 + {
  31 + type: "el-select",
  32 + label: "是否显示百分比",
  33 + name: "showText",
  34 + required: false,
  35 + placeholder: "",
  36 + selectOptions: [
  37 + { code: true, name: "显示" },
  38 + { code: false, name: "隐藏" }
  39 + ],
  40 + value: true
  41 + },
  42 + {
  43 + type: "el-select",
  44 + label: "百分比显示位置",
  45 + name: "textInside",
  46 + required: false,
  47 + placeholder: "",
  48 + selectOptions: [
  49 + { code: true, name: "进度条内" },
  50 + { code: false, name: "进度条外" }
  51 + ],
  52 + value: true
  53 + },
  54 + {
  55 + type: "el-input-number",
  56 + label: "字体大小",
  57 + name: "percentFontSize",
  58 + required: false,
  59 + placeholder: "",
  60 + value: 16
  61 + },
  62 + {
  63 + type: "vue-color",
  64 + label: "字体颜色",
  65 + name: "percentColor",
  66 + required: false,
  67 + placeholder: "",
  68 + value: ""
  69 + },
  70 +
  71 + {
  72 + type: "el-select-static",
  73 + label: "静态数据选择",
  74 + name: "slectedDataType",
  75 + require: false,
  76 + placeholder: "",
  77 + selectOptions: [],
  78 + value: ""
  79 + },
  80 + {
  81 + type: "vue-color",
  82 + label: "底色",
  83 + name: "underColor",
  84 + required: false,
  85 + placeholder: "",
  86 + value: ""
  87 + },
  88 + {
  89 + type: "vue-color",
  90 + label: "进度条色",
  91 + name: "color",
  92 + required: false,
  93 + placeholder: "",
  94 + value: ""
  95 + },
  96 +
  97 + [
14 { 98 {
15 - type: 'el-input-text',  
16 - label: '图层名称',  
17 - name: 'layerName',  
18 - required: false,  
19 - placeholder: '',  
20 - value: '进度条',  
21 - },  
22 - {  
23 - type: 'el-input-number',  
24 - label: '宽度',  
25 - name: 'strokeWidth',  
26 - required: false,  
27 - placeholder: '',  
28 - value: 20,  
29 - },  
30 - {  
31 - type: 'el-select',  
32 - label: '是否显示百分比',  
33 - name: 'showText',  
34 - required: false,  
35 - placeholder: '',  
36 - selectOptions: [  
37 - {code: true, name: '显示'},  
38 - {code: false, name: '隐藏'},  
39 - ],  
40 - value: true  
41 - },  
42 - {  
43 - type: 'el-select',  
44 - label: '百分比显示位置',  
45 - name: 'textInside',  
46 - required: false,  
47 - placeholder: '',  
48 - selectOptions: [  
49 - {code: true, name: '进度条内'},  
50 - {code: false, name: '进度条外'},  
51 - ],  
52 - value: true  
53 - },  
54 - {  
55 - type: 'el-input-number',  
56 - label: '字体大小',  
57 - name: 'percentFontSize',  
58 - required: false,  
59 - placeholder: '',  
60 - value: 16,  
61 - },  
62 - {  
63 - type: 'vue-color',  
64 - label: '字体颜色',  
65 - name: 'percentColor',  
66 - required: false,  
67 - placeholder: '',  
68 - value: '',  
69 - },  
70 - {  
71 - type: 'vue-color',  
72 - label: '进度条色',  
73 - name: 'color',  
74 - required: false,  
75 - placeholder: '',  
76 - value: '',  
77 - },  
78 - {  
79 - type: 'vue-color',  
80 - label: '底色',  
81 - name: 'underColor',  
82 - required: false,  
83 - placeholder: '',  
84 - value: '',  
85 - },  
86 - {  
87 - type: 'el-select-static',  
88 - label: '静态数据选择',  
89 - name: 'slectedDataType',  
90 - require: false,  
91 - placeholder: '',  
92 - selectOptions: [],  
93 - value: '',  
94 - },  
95 - ],  
96 - // 坐标  
97 - position: [  
98 - {  
99 - type: 'el-input-number',  
100 - label: '左边距',  
101 - name: 'left',  
102 - required: false,  
103 - placeholder: '',  
104 - value: 0,  
105 - },  
106 - {  
107 - type: 'el-input-number',  
108 - label: '上边距',  
109 - name: 'top',  
110 - required: false,  
111 - placeholder: '',  
112 - value: 0,  
113 - },  
114 - {  
115 - type: 'el-input-number',  
116 - label: '宽度',  
117 - name: 'width',  
118 - required: false,  
119 - placeholder: '该容器在1920px大屏中的宽度',  
120 - value: 400,  
121 - },  
122 - {  
123 - type: 'el-input-number',  
124 - label: '高度',  
125 - name: 'height',  
126 - required: false,  
127 - placeholder: '该容器在1080px大屏中的高度',  
128 - value: 100,  
129 - },  
130 - ],  
131 - } 99 + name: "进度条渐变色",
  100 + list: [
  101 + {
  102 + type: "vue-color",
  103 + label: "渐变色1",
  104 + name: "color1",
  105 + required: false,
  106 + placeholder: "",
  107 + value: ""
  108 + },
  109 + {
  110 + type: "vue-color",
  111 + label: "渐变色2",
  112 + name: "color2",
  113 + required: false,
  114 + placeholder: "",
  115 + value: ""
  116 + },
  117 + {
  118 + type: "vue-color",
  119 + label: "渐变色3",
  120 + name: "color3",
  121 + required: false,
  122 + placeholder: "",
  123 + value: ""
  124 + },
  125 + {
  126 + type: "vue-color",
  127 + label: "渐变色4",
  128 + name: "color4",
  129 + required: false,
  130 + placeholder: "",
  131 + value: ""
  132 + },
  133 + {
  134 + type: "vue-color",
  135 + label: "渐变色5",
  136 + name: "color5",
  137 + required: false,
  138 + placeholder: "",
  139 + value: ""
  140 + }
  141 + ]
  142 + }
  143 + ]
  144 + ],
  145 + // 坐标
  146 + position: [
  147 + {
  148 + type: "el-input-number",
  149 + label: "左边距",
  150 + name: "left",
  151 + required: false,
  152 + placeholder: "",
  153 + value: 0
  154 + },
  155 + {
  156 + type: "el-input-number",
  157 + label: "上边距",
  158 + name: "top",
  159 + required: false,
  160 + placeholder: "",
  161 + value: 0
  162 + },
  163 + {
  164 + type: "el-input-number",
  165 + label: "宽度",
  166 + name: "width",
  167 + required: false,
  168 + placeholder: "该容器在1920px大屏中的宽度",
  169 + value: 400
  170 + },
  171 + {
  172 + type: "el-input-number",
  173 + label: "高度",
  174 + name: "height",
  175 + required: false,
  176 + placeholder: "该容器在1080px大屏中的高度",
  177 + value: 100
  178 + }
  179 + ]
132 } 180 }
  181 +};
src/views/bigscreenDesigner/designer/widget/percent/widgetProgress.vue
@@ -24,7 +24,7 @@ export default { @@ -24,7 +24,7 @@ export default {
24 return this.objToOne(this.options); 24 return this.objToOne(this.options);
25 }, 25 },
26 styleColor() { 26 styleColor() {
27 - return { 27 + let result = {
28 position: this.ispreview ? "absolute" : "static", 28 position: this.ispreview ? "absolute" : "static",
29 background: this.transStyle.background, 29 background: this.transStyle.background,
30 "text-align": this.transStyle.textAlign, 30 "text-align": this.transStyle.textAlign,
@@ -38,6 +38,20 @@ export default { @@ -38,6 +38,20 @@ export default {
38 "--percent-color": this.transStyle.percentColor, 38 "--percent-color": this.transStyle.percentColor,
39 "--under-color": this.transStyle.underColor 39 "--under-color": this.transStyle.underColor
40 }; 40 };
  41 +
  42 + const { color1, color2, color3, color4, color5 } = this.transStyle;
  43 + const gradientList = [color1, color2, color3, color4, color5];
  44 + const gradientList1 = [];
  45 + gradientList.forEach(item => {
  46 + item && gradientList1.push(item);
  47 + });
  48 + if (gradientList1.length) {
  49 + if (gradientList1.length === 1) {
  50 + gradientList1.push(gradientList1[0]);
  51 + }
  52 + result["--line-gradient"] = `linear-gradient(to right, ${gradientList1.toString()})`;
  53 + }
  54 + return result;
41 }, 55 },
42 dataList() { 56 dataList() {
43 let result = { 57 let result = {
@@ -81,10 +95,14 @@ export default { @@ -81,10 +95,14 @@ export default {
81 align-items: center; 95 align-items: center;
82 width: 100%; 96 width: 100%;
83 97
84 - /deep/ .el-progress-bar__outer{ 98 + /deep/ .el-progress-bar__outer {
85 background-color: var(--under-color, #EBEEF5); 99 background-color: var(--under-color, #EBEEF5);
86 } 100 }
87 101
  102 + /deep/ .el-progress-bar__inner {
  103 + background: var(--line-gradient, initial);
  104 + }
  105 +
88 /deep/ .el-progress-bar__innerText, 106 /deep/ .el-progress-bar__innerText,
89 /deep/ .el-progress__text { 107 /deep/ .el-progress__text {
90 font-size: var(--percent-font-size, initial) !important; 108 font-size: var(--percent-font-size, initial) !important;