Commit a2f6aec1218641b2d81842b4038d6b1b9e08e33a
1 parent
ae498fdd
1、鼠标批量移动
Showing
13 changed files
with
367 additions
and
35 deletions
config/dev.env.js
| @@ -2,10 +2,10 @@ | @@ -2,10 +2,10 @@ | ||
| 2 | const merge = require('webpack-merge') | 2 | const merge = require('webpack-merge') |
| 3 | const prodEnv = require('./prod.env') | 3 | const prodEnv = require('./prod.env') |
| 4 | //是否开发状态 | 4 | //是否开发状态 |
| 5 | -const isDev = true; | 5 | +const isDev = false; |
| 6 | //开发API地址 | 6 | //开发API地址 |
| 7 | -const devAdrress='"http://weberp.xlyprint.cn/xlyReport"'; | ||
| 8 | -// const devAdrress='"http://127.0.0.1:8080/xlyReport"'; | 7 | +// const devAdrress='"http://weberp.xlyprint.cn/xlyReport"'; |
| 8 | +const devAdrress='"http://127.0.0.1:8080/xlyReport"'; | ||
| 9 | //正式打包API地址 | 9 | //正式打包API地址 |
| 10 | const ipAdrress='"http://"+location.host+"/xlyReport"'; | 10 | const ipAdrress='"http://"+location.host+"/xlyReport"'; |
| 11 | 11 |
config/index.js
| @@ -48,8 +48,8 @@ module.exports = { | @@ -48,8 +48,8 @@ module.exports = { | ||
| 48 | 48 | ||
| 49 | // Paths | 49 | // Paths |
| 50 | assetsRoot: path.resolve(__dirname, '../dist'), | 50 | assetsRoot: path.resolve(__dirname, '../dist'), |
| 51 | - //assetsSubDirectory: 'BI/static', //正式打包 因为nginx转发原因,需要指定路径 | ||
| 52 | - assetsSubDirectory: 'static', | 51 | + // assetsSubDirectory: 'static', //正式打包 因为nginx转发原因,需要指定路径 |
| 52 | + assetsSubDirectory: '/static', | ||
| 53 | 53 | ||
| 54 | /** | 54 | /** |
| 55 | * You can set by youself according to actual condition | 55 | * You can set by youself according to actual condition |
| @@ -58,7 +58,7 @@ module.exports = { | @@ -58,7 +58,7 @@ module.exports = { | ||
| 58 | * then assetsPublicPath should be set to "/bar/". | 58 | * then assetsPublicPath should be set to "/bar/". |
| 59 | * In most cases please use '/' !!! | 59 | * In most cases please use '/' !!! |
| 60 | */ | 60 | */ |
| 61 | - assetsPublicPath: '/BI/',//正式打包 因为nginx转发原因,需要指定路径 | 61 | + assetsPublicPath: '/',//正式打包 因为nginx转发原因,需要指定路径 |
| 62 | 62 | ||
| 63 | /** | 63 | /** |
| 64 | * Source Maps | 64 | * Source Maps |
src/mixins/queryform.js
| @@ -98,6 +98,7 @@ export default { | @@ -98,6 +98,7 @@ export default { | ||
| 98 | queryEchartsData(params) { | 98 | queryEchartsData(params) { |
| 99 | return new Promise(async (resolve) => { | 99 | return new Promise(async (resolve) => { |
| 100 | const { code, data } = await getData(params); | 100 | const { code, data } = await getData(params); |
| 101 | + // console.log(data,2222222); | ||
| 101 | if (code != 200) return | 102 | if (code != 200) return |
| 102 | const analysisData = this.analysisChartsData(params, data); | 103 | const analysisData = this.analysisChartsData(params, data); |
| 103 | resolve(analysisData) | 104 | resolve(analysisData) |
| @@ -105,7 +106,7 @@ export default { | @@ -105,7 +106,7 @@ export default { | ||
| 105 | }, | 106 | }, |
| 106 | // 解析不同图标的数据 | 107 | // 解析不同图标的数据 |
| 107 | analysisChartsData(params, data) { | 108 | analysisChartsData(params, data) { |
| 108 | - // widget-barchart 柱线图、widget-linechart 折线图、 widget-barlinechart 柱线图 | 109 | + // widget-barchart 柱线图、widget-linechart 折线图、 widget-barlinechart 柱线图 widget-more-bar-line |
| 109 | // widget-piechart 饼图、widget-funnel 漏斗图 | 110 | // widget-piechart 饼图、widget-funnel 漏斗图 |
| 110 | // widget-text 文本框 | 111 | // widget-text 文本框 |
| 111 | // widge-table 表格(数据不要转) | 112 | // widge-table 表格(数据不要转) |
| @@ -114,7 +115,9 @@ export default { | @@ -114,7 +115,9 @@ export default { | ||
| 114 | // widget-mapline 中国地图-路线图 | 115 | // widget-mapline 中国地图-路线图 |
| 115 | // widget-radar 雷达图 | 116 | // widget-radar 雷达图 |
| 116 | // widget-select 下拉框 | 117 | // widget-select 下拉框 |
| 118 | + //barlineCharts 下拉框 | ||
| 117 | const chartType = params.chartType | 119 | const chartType = params.chartType |
| 120 | + // console.log(data,chartType,'33333'); | ||
| 118 | if (chartType == "widget-linechart") { | 121 | if (chartType == "widget-linechart") { |
| 119 | return this.barOrLineChartFn(params.chartProperties, data); | 122 | return this.barOrLineChartFn(params.chartProperties, data); |
| 120 | }else if (chartType == "widget-barlinechart" ) { | 123 | }else if (chartType == "widget-barlinechart" ) { |
| @@ -168,12 +171,15 @@ export default { | @@ -168,12 +171,15 @@ export default { | ||
| 168 | // legend: { | 171 | // legend: { |
| 169 | // data: ['Forest'] | 172 | // data: ['Forest'] |
| 170 | // }, | 173 | // }, |
| 174 | + | ||
| 171 | for (const key in chartProperties) { | 175 | for (const key in chartProperties) { |
| 172 | const obj = {}; | 176 | const obj = {}; |
| 173 | const seriesData = []; | 177 | const seriesData = []; |
| 174 | const value = chartProperties[key]; | 178 | const value = chartProperties[key]; |
| 175 | obj["type"] = value; | 179 | obj["type"] = value; |
| 176 | obj["name"] = key; | 180 | obj["name"] = key; |
| 181 | + console.log("3333333",value,key); | ||
| 182 | + console.log("22222222",chartProperties,data); | ||
| 177 | for (let i = 0; i < data.length; i++) { | 183 | for (let i = 0; i < data.length; i++) { |
| 178 | if (value.startsWith("xAxis")) { | 184 | if (value.startsWith("xAxis")) { |
| 179 | // 代表为x轴 | 185 | // 代表为x轴 |
| @@ -183,7 +189,8 @@ export default { | @@ -183,7 +189,8 @@ export default { | ||
| 183 | seriesData[i] = data[i][key]; | 189 | seriesData[i] = data[i][key]; |
| 184 | } | 190 | } |
| 185 | } | 191 | } |
| 186 | - // console.log("seriesData",seriesData); | 192 | + |
| 193 | + // console.log("seriesData",chartProperties); | ||
| 187 | // console.log("xAxisList",xAxisList); | 194 | // console.log("xAxisList",xAxisList); |
| 188 | obj["data"] = seriesData; | 195 | obj["data"] = seriesData; |
| 189 | if (!obj["type"].startsWith("xAxis")) { | 196 | if (!obj["type"].startsWith("xAxis")) { |
| @@ -209,6 +216,7 @@ export default { | @@ -209,6 +216,7 @@ export default { | ||
| 209 | const value = chartProperties[key]; | 216 | const value = chartProperties[key]; |
| 210 | obj["type"] = value; | 217 | obj["type"] = value; |
| 211 | obj["name"] = key; | 218 | obj["name"] = key; |
| 219 | + console.log("value",value); | ||
| 212 | if(value=='xAxis' || value=='bar'|| value=='line'){ | 220 | if(value=='xAxis' || value=='bar'|| value=='line'){ |
| 213 | for (let i = 0; i < data.length; i++) { | 221 | for (let i = 0; i < data.length; i++) { |
| 214 | if (value.startsWith("xAxis")) { | 222 | if (value.startsWith("xAxis")) { |
| @@ -216,7 +224,8 @@ export default { | @@ -216,7 +224,8 @@ export default { | ||
| 216 | xAxisList[i] = data[i][key]; | 224 | xAxisList[i] = data[i][key]; |
| 217 | } else { | 225 | } else { |
| 218 | // 其他的均为series展示数据 | 226 | // 其他的均为series展示数据 |
| 219 | - seriesData[i] = data[i][value]; | 227 | + // console.log("seriesData",data[i][key]); |
| 228 | + seriesData[i] = data[i][key]; | ||
| 220 | } | 229 | } |
| 221 | } | 230 | } |
| 222 | // console.log("seriesData",seriesData); | 231 | // console.log("seriesData",seriesData); |
| @@ -229,7 +238,7 @@ export default { | @@ -229,7 +238,7 @@ export default { | ||
| 229 | } | 238 | } |
| 230 | ananysicData["xAxis"] = xAxisList; | 239 | ananysicData["xAxis"] = xAxisList; |
| 231 | ananysicData["series"] = series; | 240 | ananysicData["series"] = series; |
| 232 | - console.log("11111",ananysicData); | 241 | + // console.log("11111",ananysicData); |
| 233 | return ananysicData; | 242 | return ananysicData; |
| 234 | }, | 243 | }, |
| 235 | //堆叠图 | 244 | //堆叠图 |
src/store/modules/dataSource.js
| @@ -8,12 +8,14 @@ const dataSource = { | @@ -8,12 +8,14 @@ const dataSource = { | ||
| 8 | 8 | ||
| 9 | mutations: { | 9 | mutations: { |
| 10 | SET_STATIC_DATA: (state, data) => { | 10 | SET_STATIC_DATA: (state, data) => { |
| 11 | + state.staticData=[]; | ||
| 11 | state.staticData = data; | 12 | state.staticData = data; |
| 12 | }, | 13 | }, |
| 13 | SET_REFRESHTIME: (state, data) => { | 14 | SET_REFRESHTIME: (state, data) => { |
| 14 | state.staticRefreshTime = data; | 15 | state.staticRefreshTime = data; |
| 15 | }, | 16 | }, |
| 16 | SET_DYNAMIC_DATA: (state, data) => { | 17 | SET_DYNAMIC_DATA: (state, data) => { |
| 18 | + state.dynamicData=[]; | ||
| 17 | state.dynamicData = data; | 19 | state.dynamicData = data; |
| 18 | } | 20 | } |
| 19 | }, | 21 | }, |
src/utils/request.js
| @@ -5,7 +5,7 @@ import { getToken } from '@/utils/auth' | @@ -5,7 +5,7 @@ import { getToken } from '@/utils/auth' | ||
| 5 | // 创建axios实例 | 5 | // 创建axios实例 |
| 6 | const service = axios.create({ | 6 | const service = axios.create({ |
| 7 | baseURL: process.env.BASE_API, // api 的 base_url | 7 | baseURL: process.env.BASE_API, // api 的 base_url |
| 8 | - timeout: 20000 // 请求超时时间 | 8 | + timeout: 8000000 // 请求超时时间 |
| 9 | }) | 9 | }) |
| 10 | 10 | ||
| 11 | // request拦截器 | 11 | // request拦截器 |
| @@ -55,18 +55,12 @@ service.interceptors.response.use( | @@ -55,18 +55,12 @@ service.interceptors.response.use( | ||
| 55 | } | 55 | } |
| 56 | }, | 56 | }, |
| 57 | error => { | 57 | error => { |
| 58 | - // Message({ | ||
| 59 | - // message: error.message, | ||
| 60 | - // type: 'error', | ||
| 61 | - // duration: 5 * 1000 | ||
| 62 | - // }) | ||
| 63 | - // return Promise.reject(error) | ||
| 64 | Message({ | 58 | Message({ |
| 65 | message: error.message, | 59 | message: error.message, |
| 66 | type: 'error', | 60 | type: 'error', |
| 67 | duration: 5 * 1000 | 61 | duration: 5 * 1000 |
| 68 | - }); | ||
| 69 | - return {code:-1}; | 62 | + }) |
| 63 | + return Promise.reject(error) | ||
| 70 | } | 64 | } |
| 71 | ) | 65 | ) |
| 72 | 66 |
src/views/bigScreenReport/index.vue
| @@ -120,6 +120,7 @@ export default { | @@ -120,6 +120,7 @@ export default { | ||
| 120 | reportName: "", | 120 | reportName: "", |
| 121 | reportType: "report_screen", | 121 | reportType: "report_screen", |
| 122 | pageNumber: 1, | 122 | pageNumber: 1, |
| 123 | + enableFlag: 1, | ||
| 123 | pageSize: 8, | 124 | pageSize: 8, |
| 124 | order: "DESC", | 125 | order: "DESC", |
| 125 | sort: "update_time" | 126 | sort: "update_time" |
src/views/bigscreenDesigner/designer/components/contentMenu.vue
| @@ -36,6 +36,9 @@ | @@ -36,6 +36,9 @@ | ||
| 36 | <div class="contentmenu__item" @click="delGroupLayer"> | 36 | <div class="contentmenu__item" @click="delGroupLayer"> |
| 37 | <i class="iconfont iconzhankai"></i> 移除分组 | 37 | <i class="iconfont iconzhankai"></i> 移除分组 |
| 38 | </div> | 38 | </div> |
| 39 | + <div class="contentmenu__item" @click="copylayerAll"> | ||
| 40 | + <i class="iconfont iconzhankai"></i> 复制全部 | ||
| 41 | + </div> | ||
| 39 | </div> | 42 | </div> |
| 40 | </template> | 43 | </template> |
| 41 | <script> | 44 | <script> |
| @@ -97,6 +100,10 @@ export default { | @@ -97,6 +100,10 @@ export default { | ||
| 97 | delGroupLayer() { | 100 | delGroupLayer() { |
| 98 | this.$emit("delGroupLayer"); | 101 | this.$emit("delGroupLayer"); |
| 99 | }, | 102 | }, |
| 103 | + //复制全部 | ||
| 104 | + copylayerAll() { | ||
| 105 | + this.$emit("copylayerAll"); | ||
| 106 | + }, | ||
| 100 | copyLayer() { | 107 | copyLayer() { |
| 101 | this.$emit("copylayer"); | 108 | this.$emit("copylayer"); |
| 102 | }, | 109 | }, |
src/views/bigscreenDesigner/designer/index.vue
| @@ -324,6 +324,7 @@ | @@ -324,6 +324,7 @@ | ||
| 324 | @lockLayer="lockLayer" | 324 | @lockLayer="lockLayer" |
| 325 | @noLockLayer="noLockLayer" | 325 | @noLockLayer="noLockLayer" |
| 326 | @copylayer="copylayer" | 326 | @copylayer="copylayer" |
| 327 | + @copylayerAll="copylayerAll" | ||
| 327 | @istopLayer="istopLayer" | 328 | @istopLayer="istopLayer" |
| 328 | @setlowLayer="setlowLayer" | 329 | @setlowLayer="setlowLayer" |
| 329 | @moveupLayer="moveupLayer" | 330 | @moveupLayer="moveupLayer" |
| @@ -332,6 +333,7 @@ | @@ -332,6 +333,7 @@ | ||
| 332 | @setTopAlignment="setTopAlignment" | 333 | @setTopAlignment="setTopAlignment" |
| 333 | @delGroupLayer="delGroupLayer" | 334 | @delGroupLayer="delGroupLayer" |
| 334 | @addGroupLayer="addGroupLayer" | 335 | @addGroupLayer="addGroupLayer" |
| 336 | + @delSelectMore="delSelectMore" | ||
| 335 | /> | 337 | /> |
| 336 | </div> | 338 | </div> |
| 337 | </template> | 339 | </template> |
| @@ -1305,15 +1307,27 @@ export default { | @@ -1305,15 +1307,27 @@ export default { | ||
| 1305 | // 多选复制 | 1307 | // 多选复制 |
| 1306 | copylayer() { | 1308 | copylayer() { |
| 1307 | //首先复制右选节点,再复制其他选择节点 | 1309 | //首先复制右选节点,再复制其他选择节点 |
| 1308 | - this.copylayerOne(this.rightClickIndex) | ||
| 1309 | - // if(this.isNotBlankArray(this.selectMore)){ | ||
| 1310 | - // for(let i = 0; i< this.selectMore.length;i++){ | ||
| 1311 | - // const copyIndex = this.selectMore[i]; | ||
| 1312 | - // if(this.rightClickIndex != copyIndex){ | ||
| 1313 | - // this.copylayerOne(copyIndex); | ||
| 1314 | - // } | ||
| 1315 | - // } | ||
| 1316 | - // } | 1310 | + // this.copylayerOne(this.rightClickIndex) |
| 1311 | + if(this.isNotBlankArray(this.selectMore)){ | ||
| 1312 | + for(let i = 0; i< this.selectMore.length;i++){ | ||
| 1313 | + const copyIndex = this.selectMore[i]; | ||
| 1314 | + if(this.rightClickIndex != copyIndex){ | ||
| 1315 | + this.copylayerOne(copyIndex); | ||
| 1316 | + } | ||
| 1317 | + } | ||
| 1318 | + } | ||
| 1319 | + }, // 多选复制 | ||
| 1320 | + copylayerAll() { | ||
| 1321 | + //首先复制右选节点,再复制其他选择节点 | ||
| 1322 | + // this.copylayerOne(this.rightClickIndex) | ||
| 1323 | + if(this.isNotBlankArray(this.selectMore)){ | ||
| 1324 | + for(let i = 0; i< this.selectMore.length;i++){ | ||
| 1325 | + const copyIndex = this.selectMore[i]; | ||
| 1326 | + if(this.rightClickIndex != copyIndex){ | ||
| 1327 | + this.copylayerOne(copyIndex); | ||
| 1328 | + } | ||
| 1329 | + } | ||
| 1330 | + } | ||
| 1317 | }, | 1331 | }, |
| 1318 | // 复制 | 1332 | // 复制 |
| 1319 | copylayerOne(index) { | 1333 | copylayerOne(index) { |
src/views/bigscreenDesigner/designer/tools/configure/div/widget-border-box.js
| @@ -92,6 +92,22 @@ export const widgetBorderBox = { | @@ -92,6 +92,22 @@ export const widgetBorderBox = { | ||
| 92 | }, | 92 | }, |
| 93 | { | 93 | { |
| 94 | type: 'el-input-number', | 94 | type: 'el-input-number', |
| 95 | + label: '标题字体大小', | ||
| 96 | + name: 'titleFont', | ||
| 97 | + require: false, | ||
| 98 | + placeholder: '', | ||
| 99 | + value: 18, | ||
| 100 | + }, | ||
| 101 | + { | ||
| 102 | + type: 'vue-color', | ||
| 103 | + label: '标题字体颜色', | ||
| 104 | + name: 'titleColor', | ||
| 105 | + required: false, | ||
| 106 | + placeholder: '', | ||
| 107 | + value: 'rgba(255, 0, 0, 0)', | ||
| 108 | + }, | ||
| 109 | + { | ||
| 110 | + type: 'el-input-number', | ||
| 95 | label: '标题宽度', | 111 | label: '标题宽度', |
| 96 | name: 'titleWidth', | 112 | name: 'titleWidth', |
| 97 | require: false, | 113 | require: false, |
src/views/bigscreenDesigner/designer/widget/div/mainDiv11.vue
0 → 100644
| 1 | +<template> | ||
| 2 | + <div class="dv-border-box-11" :ref="ref"> | ||
| 3 | + <svg class="dv-border-svg-container" :width="width" :height="height"> | ||
| 4 | + <defs> | ||
| 5 | + <filter :id="filterId" height="150%" width="150%" x="-25%" y="-25%"> | ||
| 6 | + <feMorphology operator="dilate" radius="2" in="SourceAlpha" result="thicken" /> | ||
| 7 | + <feGaussianBlur in="thicken" stdDeviation="3" result="blurred" /> | ||
| 8 | + <feFlood :flood-color="mergedColor[1]" result="glowColor" /> | ||
| 9 | + <feComposite in="glowColor" in2="blurred" operator="in" result="softGlowColored" /> | ||
| 10 | + <feMerge> | ||
| 11 | + <feMergeNode in="softGlowColored"/> | ||
| 12 | + <feMergeNode in="SourceGraphic"/> | ||
| 13 | + </feMerge> | ||
| 14 | + </filter> | ||
| 15 | + </defs> | ||
| 16 | + | ||
| 17 | + <polygon :fill="backgroundColor" :points="` | ||
| 18 | + 20, 32 ${width * 0.5 - titleWidth / 2}, 32 ${width * 0.5 - titleWidth / 2 + 20}, 53 | ||
| 19 | + ${width * 0.5 + titleWidth / 2 - 20}, 53 ${width * 0.5 + titleWidth / 2}, 32 | ||
| 20 | + ${width - 20}, 32 ${width - 8}, 48 ${width - 8}, ${height - 25} ${width - 20}, ${height - 8} | ||
| 21 | + 20, ${height - 8} 8, ${height - 25} 8, 50 | ||
| 22 | + `" /> | ||
| 23 | + | ||
| 24 | + <polyline | ||
| 25 | + :stroke="mergedColor[0]" | ||
| 26 | + :filter="`url(#${filterId})`" | ||
| 27 | + :points="` | ||
| 28 | + ${(width - titleWidth) / 2}, 30 | ||
| 29 | + 20, 30 7, 50 7, ${50 + (height - 167) / 2} | ||
| 30 | + 13, ${55 + (height - 167) / 2} 13, ${135 + (height - 167) / 2} | ||
| 31 | + 7, ${140 + (height - 167) / 2} 7, ${height - 27} | ||
| 32 | + 20, ${height - 7} ${width - 20}, ${height - 7} ${width - 7}, ${height - 27} | ||
| 33 | + ${width - 7}, ${140 + (height - 167) / 2} ${width - 13}, ${135 + (height - 167) / 2} | ||
| 34 | + ${width - 13}, ${55 + (height - 167) / 2} ${width - 7}, ${50 + (height - 167) / 2} | ||
| 35 | + ${width - 7}, 50 ${width - 20}, 30 ${(width + titleWidth) / 2}, 30 | ||
| 36 | + ${(width + titleWidth) / 2 - 20}, 7 ${(width - titleWidth) / 2 + 20}, 7 | ||
| 37 | + ${(width - titleWidth) / 2}, 30 ${(width - titleWidth) / 2 + 20}, 52 | ||
| 38 | + ${(width + titleWidth) / 2 - 20}, 52 ${(width + titleWidth) / 2}, 30 | ||
| 39 | + `" | ||
| 40 | + /> | ||
| 41 | + | ||
| 42 | + <polygon | ||
| 43 | + :stroke="mergedColor[0]" | ||
| 44 | + fill="transparent" | ||
| 45 | + :points="` | ||
| 46 | + ${(width + titleWidth) / 2 - 5}, 30 ${(width + titleWidth) / 2 - 21}, 11 | ||
| 47 | + ${(width + titleWidth) / 2 - 27}, 11 ${(width + titleWidth) / 2 - 8}, 34 | ||
| 48 | + `" | ||
| 49 | + /> | ||
| 50 | + | ||
| 51 | + <polygon | ||
| 52 | + :stroke="mergedColor[0]" | ||
| 53 | + fill="transparent" | ||
| 54 | + :points="` | ||
| 55 | + ${(width - titleWidth) / 2 + 5}, 30 ${(width - titleWidth) / 2 + 22}, 49 | ||
| 56 | + ${(width - titleWidth) / 2 + 28}, 49 ${(width - titleWidth) / 2 + 8}, 26 | ||
| 57 | + `" | ||
| 58 | + /> | ||
| 59 | + | ||
| 60 | + <polygon | ||
| 61 | + :stroke="mergedColor[0]" | ||
| 62 | + :fill="fade(mergedColor[1] || defaultColor[1], 30)" | ||
| 63 | + :filter="`url(#${filterId})`" | ||
| 64 | + :points="` | ||
| 65 | + ${(width + titleWidth) / 2 - 11}, 37 ${(width + titleWidth) / 2 - 32}, 11 | ||
| 66 | + ${(width - titleWidth) / 2 + 23}, 11 ${(width - titleWidth) / 2 + 11}, 23 | ||
| 67 | + ${(width - titleWidth) / 2 + 33}, 49 ${(width + titleWidth) / 2 - 22}, 49 | ||
| 68 | + `" | ||
| 69 | + /> | ||
| 70 | + | ||
| 71 | + <polygon | ||
| 72 | + :filter="`url(#${filterId})`" | ||
| 73 | + :fill="mergedColor[0]" | ||
| 74 | + opacity="1" | ||
| 75 | + :points="` | ||
| 76 | + ${(width - titleWidth) / 2 - 10}, 37 ${(width - titleWidth) / 2 - 31}, 37 | ||
| 77 | + ${(width - titleWidth) / 2 - 25}, 46 ${(width - titleWidth) / 2 - 4}, 46 | ||
| 78 | + `" | ||
| 79 | + > | ||
| 80 | + <animate | ||
| 81 | + attributeName="opacity" | ||
| 82 | + values="1;0.7;1" | ||
| 83 | + dur="2s" | ||
| 84 | + begin="0s" | ||
| 85 | + repeatCount="indefinite" | ||
| 86 | + /> | ||
| 87 | + </polygon> | ||
| 88 | + | ||
| 89 | + | ||
| 90 | + <polygon | ||
| 91 | + :filter="`url(#${filterId})`" | ||
| 92 | + :fill="mergedColor[0]" | ||
| 93 | + opacity="0.7" | ||
| 94 | + :points="` | ||
| 95 | + ${(width - titleWidth) / 2 - 40}, 37 ${(width - titleWidth) / 2 - 61}, 37 | ||
| 96 | + ${(width - titleWidth) / 2 - 55}, 46 ${(width - titleWidth) / 2 - 34}, 46 | ||
| 97 | + `" | ||
| 98 | + > | ||
| 99 | + <animate | ||
| 100 | + attributeName="opacity" | ||
| 101 | + values="0.7;0.4;0.7" | ||
| 102 | + dur="2s" | ||
| 103 | + begin="0s" | ||
| 104 | + repeatCount="indefinite" | ||
| 105 | + /> | ||
| 106 | + </polygon> | ||
| 107 | + | ||
| 108 | + <polygon | ||
| 109 | + :filter="`url(#${filterId})`" | ||
| 110 | + :fill="mergedColor[0]" | ||
| 111 | + opacity="0.5" | ||
| 112 | + :points="` | ||
| 113 | + ${(width - titleWidth) / 2 - 70}, 37 ${(width - titleWidth) / 2 - 91}, 37 | ||
| 114 | + ${(width - titleWidth) / 2 - 85}, 46 ${(width - titleWidth) / 2 - 64}, 46 | ||
| 115 | + `" | ||
| 116 | + > | ||
| 117 | + <animate | ||
| 118 | + attributeName="opacity" | ||
| 119 | + values="0.5;0.2;0.5" | ||
| 120 | + dur="2s" | ||
| 121 | + begin="0s" | ||
| 122 | + repeatCount="indefinite" | ||
| 123 | + /> | ||
| 124 | + </polygon> | ||
| 125 | + | ||
| 126 | + <polygon | ||
| 127 | + :filter="`url(#${filterId})`" | ||
| 128 | + :fill="mergedColor[0]" | ||
| 129 | + opacity="1" | ||
| 130 | + :points="` | ||
| 131 | + ${(width + titleWidth) / 2 + 30}, 37 ${(width + titleWidth) / 2 + 9}, 37 | ||
| 132 | + ${(width + titleWidth) / 2 + 3}, 46 ${(width + titleWidth) / 2 + 24}, 46 | ||
| 133 | + `" | ||
| 134 | + > | ||
| 135 | + <animate | ||
| 136 | + attributeName="opacity" | ||
| 137 | + values="1;0.7;1" | ||
| 138 | + dur="2s" | ||
| 139 | + begin="0s" | ||
| 140 | + repeatCount="indefinite" | ||
| 141 | + /> | ||
| 142 | + </polygon> | ||
| 143 | + | ||
| 144 | + <polygon | ||
| 145 | + :filter="`url(#${filterId})`" | ||
| 146 | + :fill="mergedColor[0]" | ||
| 147 | + opacity="0.7" | ||
| 148 | + :points="` | ||
| 149 | + ${(width + titleWidth) / 2 + 60}, 37 ${(width + titleWidth) / 2 + 39}, 37 | ||
| 150 | + ${(width + titleWidth) / 2 + 33}, 46 ${(width + titleWidth) / 2 + 54}, 46 | ||
| 151 | + `" | ||
| 152 | + > | ||
| 153 | + <animate | ||
| 154 | + attributeName="opacity" | ||
| 155 | + values="0.7;0.4;0.7" | ||
| 156 | + dur="2s" | ||
| 157 | + begin="0s" | ||
| 158 | + repeatCount="indefinite" | ||
| 159 | + /> | ||
| 160 | + </polygon> | ||
| 161 | + | ||
| 162 | + <polygon | ||
| 163 | + :filter="`url(#${filterId})`" | ||
| 164 | + :fill="mergedColor[0]" | ||
| 165 | + opacity="0.5" | ||
| 166 | + :points="` | ||
| 167 | + ${(width + titleWidth) / 2 + 90}, 37 ${(width + titleWidth) / 2 + 69}, 37 | ||
| 168 | + ${(width + titleWidth) / 2 + 63}, 46 ${(width + titleWidth) / 2 + 84}, 46 | ||
| 169 | + `" | ||
| 170 | + > | ||
| 171 | + <animate | ||
| 172 | + attributeName="opacity" | ||
| 173 | + values="0.5;0.2;0.5" | ||
| 174 | + dur="2s" | ||
| 175 | + begin="0s" | ||
| 176 | + repeatCount="indefinite" | ||
| 177 | + /> | ||
| 178 | + </polygon> | ||
| 179 | + | ||
| 180 | + <text | ||
| 181 | + class="dv-border-box-11-title" | ||
| 182 | + :x="`${width / 2}`" | ||
| 183 | + y="32" | ||
| 184 | + :fill="`${titleColor}`" | ||
| 185 | + :font-size="`${titleFont}`" | ||
| 186 | + text-anchor="middle" | ||
| 187 | + dominant-baseline="middle" | ||
| 188 | + > | ||
| 189 | + {{ title }} | ||
| 190 | + </text> | ||
| 191 | + | ||
| 192 | + <polygon | ||
| 193 | + :fill="mergedColor[0]" | ||
| 194 | + :filter="`url(#${filterId})`" | ||
| 195 | + :points="` | ||
| 196 | + 7, ${53 + (height - 167) / 2} 11, ${57 + (height - 167) / 2} | ||
| 197 | + 11, ${133 + (height - 167) / 2} 7, ${137 + (height - 167) / 2} | ||
| 198 | + `" | ||
| 199 | + /> | ||
| 200 | + | ||
| 201 | + <polygon | ||
| 202 | + :fill="mergedColor[0]" | ||
| 203 | + :filter="`url(#${filterId})`" | ||
| 204 | + :points="` | ||
| 205 | + ${width - 7}, ${53 + (height - 167) / 2} ${width - 11}, ${57 + (height - 167) / 2} | ||
| 206 | + ${width - 11}, ${133 + (height - 167) / 2} ${width - 7}, ${137 + (height - 167) / 2} | ||
| 207 | + `" | ||
| 208 | + /> | ||
| 209 | + </svg> | ||
| 210 | + | ||
| 211 | + <div class="border-box-content"> | ||
| 212 | + <slot></slot> | ||
| 213 | + </div> | ||
| 214 | + </div> | ||
| 215 | +</template> | ||
| 216 | + | ||
| 217 | +<script> | ||
| 218 | +import autoResize from '../../../mixin/autoResize' | ||
| 219 | +import { uuid } from '../../../util/index' | ||
| 220 | + | ||
| 221 | +import { deepMerge } from '@jiaminghi/charts/lib/util/index' | ||
| 222 | + | ||
| 223 | +import { deepClone } from '@jiaminghi/c-render/lib/plugin/util' | ||
| 224 | + | ||
| 225 | +import { fade } from '@jiaminghi/color' | ||
| 226 | + | ||
| 227 | +export default { | ||
| 228 | + name: 'DvBorderBox11', | ||
| 229 | + mixins: [autoResize], | ||
| 230 | + props: { | ||
| 231 | + color: { | ||
| 232 | + type: Array, | ||
| 233 | + default: () => ([]) | ||
| 234 | + }, | ||
| 235 | + titleWidth: { | ||
| 236 | + type: Number, | ||
| 237 | + default: 250 | ||
| 238 | + }, | ||
| 239 | + titleFont: { | ||
| 240 | + type: Number, | ||
| 241 | + default: 18 | ||
| 242 | + }, | ||
| 243 | + title: { | ||
| 244 | + type: String, | ||
| 245 | + default: '' | ||
| 246 | + }, | ||
| 247 | + titleColor: { | ||
| 248 | + type: String, | ||
| 249 | + default: '#fff' | ||
| 250 | + }, | ||
| 251 | + backgroundColor: { | ||
| 252 | + type: String, | ||
| 253 | + default: 'transparent' | ||
| 254 | + } | ||
| 255 | + }, | ||
| 256 | + data () { | ||
| 257 | + const id = uuid() | ||
| 258 | + return { | ||
| 259 | + ref: 'border-box-11', | ||
| 260 | + filterId: `border-box-11-filterId-${id}`, | ||
| 261 | + | ||
| 262 | + defaultColor: ['#8aaafb', '#1f33a2'], | ||
| 263 | + | ||
| 264 | + mergedColor: [] | ||
| 265 | + } | ||
| 266 | + }, | ||
| 267 | + watch: { | ||
| 268 | + color () { | ||
| 269 | + const { mergeColor } = this | ||
| 270 | + | ||
| 271 | + mergeColor() | ||
| 272 | + } | ||
| 273 | + }, | ||
| 274 | + methods: { | ||
| 275 | + mergeColor () { | ||
| 276 | + const { color, defaultColor } = this | ||
| 277 | + | ||
| 278 | + this.mergedColor = deepMerge(deepClone(defaultColor, true), color || []) | ||
| 279 | + }, | ||
| 280 | + fade | ||
| 281 | + }, | ||
| 282 | + mounted () { | ||
| 283 | + const { mergeColor } = this | ||
| 284 | + | ||
| 285 | + mergeColor() | ||
| 286 | + } | ||
| 287 | +} | ||
| 288 | +</script> |
src/views/bigscreenDesigner/designer/widget/div/widgetBorderBox.vue
| @@ -26,6 +26,8 @@ | @@ -26,6 +26,8 @@ | ||
| 26 | <dv-border-Box-10 :style="styleColor" :color="transStyle.color" :backgroundColor="transStyle.backgroundColor" | 26 | <dv-border-Box-10 :style="styleColor" :color="transStyle.color" :backgroundColor="transStyle.backgroundColor" |
| 27 | v-else-if="styleColor.divClass === 'dv-border-Box-10'"></dv-border-Box-10> | 27 | v-else-if="styleColor.divClass === 'dv-border-Box-10'"></dv-border-Box-10> |
| 28 | <dv-border-Box-11 :style="styleColor" :color="transStyle.color" :backgroundColor="transStyle.backgroundColor" | 28 | <dv-border-Box-11 :style="styleColor" :color="transStyle.color" :backgroundColor="transStyle.backgroundColor" |
| 29 | + :titleFont="transStyle.titleFont" | ||
| 30 | + :titleColor="transStyle.titleColor" | ||
| 29 | :title="transStyle.title" :titleWidth="transStyle.titleWidth" | 31 | :title="transStyle.title" :titleWidth="transStyle.titleWidth" |
| 30 | v-else-if="styleColor.divClass === 'dv-border-Box-11'"></dv-border-Box-11> | 32 | v-else-if="styleColor.divClass === 'dv-border-Box-11'"></dv-border-Box-11> |
| 31 | <dv-border-Box-12 :style="styleColor" :color="transStyle.color" :backgroundColor="transStyle.backgroundColor" | 33 | <dv-border-Box-12 :style="styleColor" :color="transStyle.color" :backgroundColor="transStyle.backgroundColor" |
src/views/bigscreenDesigner/designer/widget/div/widgetSvg.vue
| @@ -106,14 +106,12 @@ export default { | @@ -106,14 +106,12 @@ export default { | ||
| 106 | getShowText() { | 106 | getShowText() { |
| 107 | const {text, slectedDataType} = this.transStyle; | 107 | const {text, slectedDataType} = this.transStyle; |
| 108 | const key = this.staticData[slectedDataType] || text; | 108 | const key = this.staticData[slectedDataType] || text; |
| 109 | - const dataSvg = this.value.setup.dynamicAddSvg; | ||
| 110 | - for (let i = 0; i < dataSvg.length; i++) { | ||
| 111 | - if(dataSvg[i].key==key){ | 109 | + for (let i = 0; i < this.value.setup.dynamicAddSvg.length; i++) { |
| 110 | + if(this.value.setup.dynamicAddSvg[i].key==key){ | ||
| 112 | /** 控制svg图片拖动,原理在于设置svg的viewbox属性,viewbox的第一个参数控制左右位置,第二个参数设置上下位置 */ | 111 | /** 控制svg图片拖动,原理在于设置svg的viewbox属性,viewbox的第一个参数控制左右位置,第二个参数设置上下位置 */ |
| 113 | /** 控制svg图片放大缩小,原理在于设置svg的viewbox属性,viewbox的第三个参数控制左右大小,第四个参数设置上下大小 */ | 112 | /** 控制svg图片放大缩小,原理在于设置svg的viewbox属性,viewbox的第三个参数控制左右大小,第四个参数设置上下大小 */ |
| 114 | //设置svg 自适应 添加属性 viewBox="0,0,640,480" | 113 | //设置svg 自适应 添加属性 viewBox="0,0,640,480" |
| 115 | - let svg = dataSvg[i].value; | ||
| 116 | - return svg; | 114 | + return this.value.setup.dynamicAddSvg[i].value; |
| 117 | } | 115 | } |
| 118 | } | 116 | } |
| 119 | return ""; | 117 | return ""; |
src/views/bigscreenDesigner/designer/widget/pie/widgetPiechart.vue
| @@ -47,7 +47,8 @@ export default { | @@ -47,7 +47,8 @@ export default { | ||
| 47 | optionsStyle: {}, // 样式 | 47 | optionsStyle: {}, // 样式 |
| 48 | optionsData: {}, // 数据 | 48 | optionsData: {}, // 数据 |
| 49 | optionsCollapse: {}, // 图标属性 | 49 | optionsCollapse: {}, // 图标属性 |
| 50 | - optionsSetup: {} | 50 | + optionsSetup: {}, |
| 51 | + color:[] | ||
| 51 | }; | 52 | }; |
| 52 | }, | 53 | }, |
| 53 | computed: { | 54 | computed: { |
| @@ -90,7 +91,7 @@ export default { | @@ -90,7 +91,7 @@ export default { | ||
| 90 | this.setOptionsLegend(); | 91 | this.setOptionsLegend(); |
| 91 | this.setOptionsData(); | 92 | this.setOptionsData(); |
| 92 | this.setOptionsPiechartStyle(); | 93 | this.setOptionsPiechartStyle(); |
| 93 | - // this.setOptionsColor(); | 94 | + this.setOptionsColor(); |
| 94 | }, | 95 | }, |
| 95 | // 饼图样式 | 96 | // 饼图样式 |
| 96 | setOptionsPiechartStyle() { | 97 | setOptionsPiechartStyle() { |