Commit 90d642b0ec7c86fc3d47386062894ee1e4c50c36
1 parent
badbffc5
1、大屏左侧操作菜单归类
2、代码文件归类 3、添加雷达图
Showing
10 changed files
with
179 additions
and
174 deletions
src/mixins/common.js
| @@ -138,7 +138,7 @@ export default { | @@ -138,7 +138,7 @@ export default { | ||
| 138 | isNotBlank (val) { | 138 | isNotBlank (val) { |
| 139 | return !this.isBlank(val) | 139 | return !this.isBlank(val) |
| 140 | }, | 140 | }, |
| 141 | - isBlank (val) { | 141 | + isBlankObject (val) { |
| 142 | if (this.isNull(val)) { | 142 | if (this.isNull(val)) { |
| 143 | return true | 143 | return true |
| 144 | } | 144 | } |
src/views/bigscreenDesigner/designer/components/datasourceSelect.vue
0 → 100644
| 1 | +<template> | ||
| 2 | + <el-form-item prop="master"> | ||
| 3 | + <el-select | ||
| 4 | + size="mini" | ||
| 5 | + name="master" | ||
| 6 | + v-model="selectedOption" | ||
| 7 | + placeholder="请选择" | ||
| 8 | + @change="selectDataSet" | ||
| 9 | + > | ||
| 10 | + <el-option | ||
| 11 | + key="" | ||
| 12 | + label="" | ||
| 13 | + value="" | ||
| 14 | + /> | ||
| 15 | + <el-option | ||
| 16 | + v-for="item in dataSet" | ||
| 17 | + :key="item.id" | ||
| 18 | + :label="item.setName" | ||
| 19 | + :value="item.id" | ||
| 20 | + /> | ||
| 21 | + </el-select> | ||
| 22 | + </el-form-item> | ||
| 23 | +</template> | ||
| 24 | +<script> | ||
| 25 | +import { queryAllDataSet} from "@/api/bigscreen"; | ||
| 26 | +export default { | ||
| 27 | + name: "data-source-select", | ||
| 28 | + components: {}, | ||
| 29 | + model: { | ||
| 30 | + prop: "value", | ||
| 31 | + event: "input" | ||
| 32 | + }, | ||
| 33 | + props: { | ||
| 34 | + value: { | ||
| 35 | + type: "", | ||
| 36 | + default: "" | ||
| 37 | + } | ||
| 38 | + }, | ||
| 39 | + data() { | ||
| 40 | + return { | ||
| 41 | + selectedOption: {}, | ||
| 42 | + dataSet: [], // 数据集 | ||
| 43 | + }; | ||
| 44 | + }, | ||
| 45 | + watch: { | ||
| 46 | + value: { | ||
| 47 | + handler(newValue, oldValue) { | ||
| 48 | + if (typeof newValue === "string") { | ||
| 49 | + this.selectedOption = newValue; | ||
| 50 | + } else { | ||
| 51 | + this.selectedOption = this.parseString(newValue); | ||
| 52 | + } | ||
| 53 | + }, | ||
| 54 | + immediate: true | ||
| 55 | + } | ||
| 56 | + }, | ||
| 57 | + computed: {}, | ||
| 58 | + created() { | ||
| 59 | + this.loadDataSet(); | ||
| 60 | + }, | ||
| 61 | + // mounted() { | ||
| 62 | + // this.loadDataSet(); | ||
| 63 | + // }, | ||
| 64 | + methods: { | ||
| 65 | + async loadDataSet() { | ||
| 66 | + const { code, data } = await queryAllDataSet(); | ||
| 67 | + this.dataSet = data; | ||
| 68 | + const selectKey = this.value; | ||
| 69 | + if (code != "200"){ | ||
| 70 | + return | ||
| 71 | + }else{ | ||
| 72 | + for (let i = 0; i < this.dataSet.length; i++) { | ||
| 73 | + let item = this.dataSet[i]; | ||
| 74 | + if (item.id == selectKey) { | ||
| 75 | + this.selectedOption = this.dataSet[i]; | ||
| 76 | + } | ||
| 77 | + } | ||
| 78 | + } | ||
| 79 | + }, | ||
| 80 | + //选中,回刷父节点 | ||
| 81 | + async selectDataSet() { | ||
| 82 | + this.$emit("input", this.selectedOption); | ||
| 83 | + this.$emit("change", this.selectedOption); | ||
| 84 | + }, | ||
| 85 | + // 数据集回显 | ||
| 86 | + async echoDataSet(val) { | ||
| 87 | + if (!val) return; | ||
| 88 | + //改变全局数据集 动态获取数据(获取根据数据源ID)改变静态组件的值 | ||
| 89 | + | ||
| 90 | + }, | ||
| 91 | + } | ||
| 92 | +}; | ||
| 93 | +</script> |
src/views/bigscreenDesigner/designer/components/dynamicForm.vue
| @@ -60,13 +60,18 @@ | @@ -60,13 +60,18 @@ | ||
| 60 | v-model="formData[item.name]" | 60 | v-model="formData[item.name]" |
| 61 | @change="val => changed(val, item.name)" | 61 | @change="val => changed(val, item.name)" |
| 62 | /> | 62 | /> |
| 63 | + <DatasourceSelect | ||
| 64 | + v-if="item.type == 'data-source-select'" | ||
| 65 | + v-model="formData[item.name]" | ||
| 66 | + @change="changed($event, item.name)"> | ||
| 67 | + </DatasourceSelect> | ||
| 63 | 68 | ||
| 64 | <CustomUploadNew v-if="item.type == 'custom-upload-new'" | 69 | <CustomUploadNew v-if="item.type == 'custom-upload-new'" |
| 65 | v-model="formData[item.name]" | 70 | v-model="formData[item.name]" |
| 66 | @change="changed($event, item.name)"> | 71 | @change="changed($event, item.name)"> |
| 67 | </CustomUploadNew> | 72 | </CustomUploadNew> |
| 68 | 73 | ||
| 69 | - <CustomUploadMulti v-if="item.type == 'custom-upload-multi'" | 74 | + <CustomUploadMulti v-if="item.type == 'custom-upload-new'" |
| 70 | v-model="formData[item.name]" | 75 | v-model="formData[item.name]" |
| 71 | @change="changed($event, item.name)"> | 76 | @change="changed($event, item.name)"> |
| 72 | </CustomUploadMulti> | 77 | </CustomUploadMulti> |
| @@ -224,7 +229,7 @@ | @@ -224,7 +229,7 @@ | ||
| 224 | <el-upload | 229 | <el-upload |
| 225 | v-if="itemChildList.type == 'el-upload-picture'" | 230 | v-if="itemChildList.type == 'el-upload-picture'" |
| 226 | size="mini" | 231 | size="mini" |
| 227 | - action="https://jsonplaceholder.typicode.com/posts/" | 232 | + action="" |
| 228 | list-type="picture-card" | 233 | list-type="picture-card" |
| 229 | /> | 234 | /> |
| 230 | 235 | ||
| @@ -294,6 +299,7 @@ import dynamicAddTable from "./dynamicAddTable.vue"; | @@ -294,6 +299,7 @@ import dynamicAddTable from "./dynamicAddTable.vue"; | ||
| 294 | import customUpload from "./customUpload.vue"; | 299 | import customUpload from "./customUpload.vue"; |
| 295 | import dynamicAddRadar from "./dynamicAddRadar"; | 300 | import dynamicAddRadar from "./dynamicAddRadar"; |
| 296 | import CustomUploadNew from "./customUploadNew"; | 301 | import CustomUploadNew from "./customUploadNew"; |
| 302 | +import DatasourceSelect from "./datasourceSelect"; | ||
| 297 | import CustomUploadMulti from "./customUploadMulti"; | 303 | import CustomUploadMulti from "./customUploadMulti"; |
| 298 | export default { | 304 | export default { |
| 299 | name: "DynamicForm", | 305 | name: "DynamicForm", |
| @@ -306,7 +312,9 @@ export default { | @@ -306,7 +312,9 @@ export default { | ||
| 306 | customUpload, | 312 | customUpload, |
| 307 | dynamicAddRadar, | 313 | dynamicAddRadar, |
| 308 | CustomUploadNew, | 314 | CustomUploadNew, |
| 309 | - CustomUploadMulti | 315 | + CustomUploadMulti, |
| 316 | + DatasourceSelect, | ||
| 317 | + | ||
| 310 | }, | 318 | }, |
| 311 | model: { | 319 | model: { |
| 312 | prop: "value", | 320 | prop: "value", |
| @@ -317,14 +325,14 @@ export default { | @@ -317,14 +325,14 @@ export default { | ||
| 317 | value: { | 325 | value: { |
| 318 | type: [Object], | 326 | type: [Object], |
| 319 | default: () => {} | 327 | default: () => {} |
| 320 | - } | 328 | + }, |
| 321 | }, | 329 | }, |
| 322 | data() { | 330 | data() { |
| 323 | return { | 331 | return { |
| 324 | formData: {}, | 332 | formData: {}, |
| 325 | inputShow: {}, // 控制表单是否显示 | 333 | inputShow: {}, // 控制表单是否显示 |
| 326 | dialogVisibleStaticData: false, | 334 | dialogVisibleStaticData: false, |
| 327 | - validationRules: "", | 335 | + // validationRules: "", |
| 328 | optionsJavascript: { | 336 | optionsJavascript: { |
| 329 | mode: "text/javascript", | 337 | mode: "text/javascript", |
| 330 | tabSize: 2, // 缩进格式 | 338 | tabSize: 2, // 缩进格式 |
src/views/bigscreenDesigner/designer/index.vue
| @@ -305,14 +305,11 @@ export default { | @@ -305,14 +305,11 @@ export default { | ||
| 305 | VueRulerTool, | 305 | VueRulerTool, |
| 306 | widget, | 306 | widget, |
| 307 | dynamicForm, | 307 | dynamicForm, |
| 308 | - contentMenu, | 308 | + contentMenu |
| 309 | }, | 309 | }, |
| 310 | data() { | 310 | data() { |
| 311 | return { | 311 | return { |
| 312 | - uploadUrl: | ||
| 313 | - process.env.BASE_API + | ||
| 314 | - "/reportDashboard/import/" + | ||
| 315 | - this.$route.query.reportCode, | 312 | + uploadUrl:process.env.BASE_API +"/reportDashboard/import/" +this.$route.query.reportCode, |
| 316 | grade: false, | 313 | grade: false, |
| 317 | layerWidget: [], | 314 | layerWidget: [], |
| 318 | widgetTools: widgetTools, // 左侧工具栏的组件图标,将js变量加入到当前作用域 | 315 | widgetTools: widgetTools, // 左侧工具栏的组件图标,将js变量加入到当前作用域 |
| @@ -334,10 +331,13 @@ export default { | @@ -334,10 +331,13 @@ export default { | ||
| 334 | height: 1080, // 大屏设计高度 | 331 | height: 1080, // 大屏设计高度 |
| 335 | backgroundColor: "", // 大屏背景色 | 332 | backgroundColor: "", // 大屏背景色 |
| 336 | backgroundImage: "", // 大屏背景图片 | 333 | backgroundImage: "", // 大屏背景图片 |
| 334 | + master: null, // 全局数据源 | ||
| 335 | + refreshMasterTime: 600000, // 刷新时间(毫秒) | ||
| 337 | refreshSeconds: null, // 大屏刷新时间间隔 | 336 | refreshSeconds: null, // 大屏刷新时间间隔 |
| 338 | presetLine: [], // 辅助线 | 337 | presetLine: [], // 辅助线 |
| 339 | presetLineVisible: true, // 辅助线是否显示 | 338 | presetLineVisible: true, // 辅助线是否显示 |
| 340 | }, | 339 | }, |
| 340 | + masterData:{"sName1":"测试文本1","sName2":"测试文本2"}, | ||
| 341 | // 大屏的标记 | 341 | // 大屏的标记 |
| 342 | screenCode: "", | 342 | screenCode: "", |
| 343 | dragWidgetCode: "", //从工具栏拖拽的组件code | 343 | dragWidgetCode: "", //从工具栏拖拽的组件code |
| @@ -494,6 +494,7 @@ export default { | @@ -494,6 +494,7 @@ export default { | ||
| 494 | const { code, data } = await detailDashboard(reportCode); | 494 | const { code, data } = await detailDashboard(reportCode); |
| 495 | if (code != 200) return; | 495 | if (code != 200) return; |
| 496 | const processData = this.handleInitEchartsData(data); | 496 | const processData = this.handleInitEchartsData(data); |
| 497 | + | ||
| 497 | const screenData = this.handleBigScreen(data.dashboard); | 498 | const screenData = this.handleBigScreen(data.dashboard); |
| 498 | this.widgets = processData; | 499 | this.widgets = processData; |
| 499 | this.dashboard = screenData; | 500 | this.dashboard = screenData; |
| @@ -514,9 +515,11 @@ export default { | @@ -514,9 +515,11 @@ export default { | ||
| 514 | return { | 515 | return { |
| 515 | backgroundColor: (data && data.backgroundColor) || "", | 516 | backgroundColor: (data && data.backgroundColor) || "", |
| 516 | backgroundImage: (data && data.backgroundImage) || "", | 517 | backgroundImage: (data && data.backgroundImage) || "", |
| 517 | - height: (data && data.height) || "1080", | 518 | + height: (data && data.height) || 1080, |
| 518 | title: (data && data.title) || "", | 519 | title: (data && data.title) || "", |
| 519 | - width: (data && data.width) || "1920", | 520 | + width: (data && data.width) || 1920, |
| 521 | + master: (data && data.master) || null, | ||
| 522 | + refreshMasterTime: (data && data.refreshMasterTime) || null, | ||
| 520 | }; | 523 | }; |
| 521 | }, | 524 | }, |
| 522 | handleInitEchartsData(data) { | 525 | handleInitEchartsData(data) { |
| @@ -589,10 +592,13 @@ export default { | @@ -589,10 +592,13 @@ export default { | ||
| 589 | width: this.dashboard.width, | 592 | width: this.dashboard.width, |
| 590 | height: this.dashboard.height, | 593 | height: this.dashboard.height, |
| 591 | backgroundColor: this.dashboard.backgroundColor, | 594 | backgroundColor: this.dashboard.backgroundColor, |
| 595 | + refreshMasterTime: this.dashboard.refreshMasterTime, | ||
| 596 | + master: this.dashboard.master, | ||
| 592 | backgroundImage: this.dashboard.backgroundImage, | 597 | backgroundImage: this.dashboard.backgroundImage, |
| 593 | }, | 598 | }, |
| 594 | widgets: this.widgets, | 599 | widgets: this.widgets, |
| 595 | }; | 600 | }; |
| 601 | + console.log(screenData); | ||
| 596 | const { code, data } = await insertDashboard(screenData); | 602 | const { code, data } = await insertDashboard(screenData); |
| 597 | if (code == "200") { | 603 | if (code == "200") { |
| 598 | this.$message.success("保存成功!"); | 604 | this.$message.success("保存成功!"); |
| @@ -825,14 +831,14 @@ export default { | @@ -825,14 +831,14 @@ export default { | ||
| 825 | }, | 831 | }, |
| 826 | // 将当前选中的组件,右侧属性值更新 | 832 | // 将当前选中的组件,右侧属性值更新 |
| 827 | widgetValueChanged(key, val) { | 833 | widgetValueChanged(key, val) { |
| 828 | - console.log("key", key); | ||
| 829 | - console.log("val", val); | ||
| 830 | - console.log(this.widgetOptions); | 834 | + // console.log("key", key); |
| 835 | + // console.log("val", val); | ||
| 836 | + // console.log(this.widgetOptions); | ||
| 831 | if (this.screenCode == "screen") { | 837 | if (this.screenCode == "screen") { |
| 832 | let newSetup = new Array(); | 838 | let newSetup = new Array(); |
| 833 | this.dashboard = this.deepClone(val); | 839 | this.dashboard = this.deepClone(val); |
| 834 | - console.log("asd", this.dashboard); | ||
| 835 | - console.log(this.widgetOptions); | 840 | + // console.log("asd", this.dashboard); |
| 841 | + // console.log(this.widgetOptions); | ||
| 836 | if (this.bigscreenWidth != this.dashboard.width) { | 842 | if (this.bigscreenWidth != this.dashboard.width) { |
| 837 | this.bigscreenWidth = this.dashboard.width; | 843 | this.bigscreenWidth = this.dashboard.width; |
| 838 | } | 844 | } |
| @@ -844,12 +850,12 @@ export default { | @@ -844,12 +850,12 @@ export default { | ||
| 844 | el.value = this.bigscreenWidth; | 850 | el.value = this.bigscreenWidth; |
| 845 | } else if (el.name == "height") { | 851 | } else if (el.name == "height") { |
| 846 | el.value = this.bigscreenHeight; | 852 | el.value = this.bigscreenHeight; |
| 847 | - } else if (this.dashboard.hasOwn(el.name)) { | 853 | + } else if (this.hasOwn(el.name)) { |
| 848 | el["value"] = this.dashboard[el.name]; | 854 | el["value"] = this.dashboard[el.name]; |
| 849 | } | 855 | } |
| 850 | newSetup.push(el); | 856 | newSetup.push(el); |
| 851 | }); | 857 | }); |
| 852 | - console.log(newSetup); | 858 | + // console.log(newSetup); |
| 853 | this.widgetOptions.setup = newSetup; | 859 | this.widgetOptions.setup = newSetup; |
| 854 | } else { | 860 | } else { |
| 855 | for (let i = 0; i < this.widgets.length; i++) { | 861 | for (let i = 0; i < this.widgets.length; i++) { |
src/views/bigscreenDesigner/designer/tools/configure/wordcloudCharts/widget-word-cloud.js
| @@ -255,140 +255,7 @@ export const widgetWordCloud = { | @@ -255,140 +255,7 @@ export const widgetWordCloud = { | ||
| 255 | relactiveDom: 'dataType', | 255 | relactiveDom: 'dataType', |
| 256 | relactiveDomValue: 'staticData', | 256 | relactiveDomValue: 'staticData', |
| 257 | value: [ | 257 | value: [ |
| 258 | - { name: "占道", value: 284 }, | ||
| 259 | - { name: "水质", value: 71 }, | ||
| 260 | - { name: "无水", value: 71 }, | ||
| 261 | - { name: "停供", value: 21 }, | ||
| 262 | - { name: "停气", value: 11 }, | ||
| 263 | - { name: "占道", value: 11 }, | ||
| 264 | - { name: "Nancy", value: 520 }, | ||
| 265 | - { name: "Jayfee", value: 666 }, | ||
| 266 | - { name: "生活资源", value: 999 }, | ||
| 267 | - { name: "供热管理", value: 888 }, | ||
| 268 | - { name: "供气质量", value: 777 }, | ||
| 269 | - { name: "社会保障", value: 407 }, | ||
| 270 | - { name: "交通运输", value: 516 }, | ||
| 271 | - { name: "城市交通", value: 515 }, | ||
| 272 | - { name: "环境保护", value: 483 }, | ||
| 273 | - { name: "城乡建设", value: 449 }, | ||
| 274 | - { name: "公共安全", value: 406 }, | ||
| 275 | - { name: "供热管理", value: 375 }, | ||
| 276 | - { name: "市容环卫", value: 355 }, | ||
| 277 | - { name: "粉尘污染", value: 335 }, | ||
| 278 | - { name: "噪声污染", value: 324 }, | ||
| 279 | - { name: "医疗卫生", value: 284 }, | ||
| 280 | - { name: "供热发展", value: 254 }, | ||
| 281 | - { name: "房地产管理", value: 462 }, | ||
| 282 | - { name: "生活噪音", value: 253 }, | ||
| 283 | - { name: "城市供电", value: 223 }, | ||
| 284 | - { name: "大气污染", value: 223 }, | ||
| 285 | - { name: "房屋安全", value: 223 }, | ||
| 286 | - { name: "文化活动", value: 223 }, | ||
| 287 | - { name: "拆迁管理", value: 223 }, | ||
| 288 | - { name: "公共设施", value: 223 }, | ||
| 289 | - { name: "供气质量", value: 223 }, | ||
| 290 | - { name: "供电管理", value: 223 }, | ||
| 291 | - { name: "燃气管理", value: 152 }, | ||
| 292 | - { name: "教育管理", value: 152 }, | ||
| 293 | - { name: "医疗纠纷", value: 152 }, | ||
| 294 | - { name: "执法监督", value: 152 }, | ||
| 295 | - { name: "设备安全", value: 152 }, | ||
| 296 | - { name: "政务建设", value: 152 }, | ||
| 297 | - { name: "宏观经济", value: 152 }, | ||
| 298 | - { name: "教育管理", value: 112 }, | ||
| 299 | - { name: "社会保障", value: 112 }, | ||
| 300 | - { name: "分类列表", value: 112 }, | ||
| 301 | - { name: "农业生产", value: 112 }, | ||
| 302 | - { name: "物业服务", value: 92 }, | ||
| 303 | - { name: "物业管理", value: 92 }, | ||
| 304 | - { name: "低保管理", value: 92 }, | ||
| 305 | - { name: "执法争议", value: 72 }, | ||
| 306 | - { name: "占道堆放", value: 71 }, | ||
| 307 | - { name: "地上设施", value: 71 }, | ||
| 308 | - { name: "主网原因", value: 71 }, | ||
| 309 | - { name: "集中供热", value: 71 }, | ||
| 310 | - { name: "客运管理", value: 71 }, | ||
| 311 | - { name: "治安案件", value: 71 }, | ||
| 312 | - { name: "群众健身", value: 41 }, | ||
| 313 | - { name: "市场收费", value: 41 }, | ||
| 314 | - { name: "生产资金", value: 41 }, | ||
| 315 | - { name: "生产噪声", value: 41 }, | ||
| 316 | - { name: "农村低保", value: 41 }, | ||
| 317 | - { name: "劳动争议", value: 41 }, | ||
| 318 | - { name: "医疗事故", value: 21 }, | ||
| 319 | - { name: "基础教育", value: 21 }, | ||
| 320 | - { name: "职业教育", value: 21 }, | ||
| 321 | - { name: "拆迁补偿", value: 21 }, | ||
| 322 | - { name: "设施维护", value: 21 }, | ||
| 323 | - { name: "市场外溢", value: 11 }, | ||
| 324 | - { name: "占道经营", value: 11 }, | ||
| 325 | - { name: "树木管理", value: 11 }, | ||
| 326 | - { name: "供气质量", value: 11 }, | ||
| 327 | - { name: "燃气管理", value: 11 }, | ||
| 328 | - { name: "市容环卫", value: 11 }, | ||
| 329 | - { name: "新闻传媒", value: 11 }, | ||
| 330 | - { name: "人才招聘", value: 11 }, | ||
| 331 | - { name: "市场环境", value: 11 }, | ||
| 332 | - { name: "城市交通", value: 11 }, | ||
| 333 | - { name: "物业服务", value: 11 }, | ||
| 334 | - { name: "物业管理", value: 11 }, | ||
| 335 | - { name: "园林绿化", value: 11 }, | ||
| 336 | - { name: "有线电视", value: 11 }, | ||
| 337 | - { name: "社会治安", value: 11 }, | ||
| 338 | - { name: "林业资源", value: 11 }, | ||
| 339 | - { name: "体育活动", value: 11 }, | ||
| 340 | - { name: "低保管理", value: 11 }, | ||
| 341 | - { name: "劳动争议", value: 11 }, | ||
| 342 | - { name: "粉煤灰污染", value: 284 }, | ||
| 343 | - { name: "人行道管理", value: 71 }, | ||
| 344 | - { name: "身份证管理", value: 71 }, | ||
| 345 | - { name: "房地产开发", value: 11 }, | ||
| 346 | - { name: "经营性收费", value: 11 }, | ||
| 347 | - { name: "一次供水问题", value: 11 }, | ||
| 348 | - { name: "工业粉尘污染", value: 71 }, | ||
| 349 | - { name: "工业排放污染", value: 41 }, | ||
| 350 | - { name: "破坏森林资源", value: 41 }, | ||
| 351 | - { name: "生活用水管理", value: 688 }, | ||
| 352 | - { name: "一次供水问题", value: 588 }, | ||
| 353 | - { name: "公交运输管理", value: 386 }, | ||
| 354 | - { name: "自然资源管理", value: 355 }, | ||
| 355 | - { name: "土地资源管理", value: 304 }, | ||
| 356 | - { name: "生活用水管理", value: 112 }, | ||
| 357 | - { name: "供热单位影响", value: 253 }, | ||
| 358 | - { name: "二次供水问题", value: 112 }, | ||
| 359 | - { name: "城市公共设施", value: 92 }, | ||
| 360 | - { name: "拆迁政策咨询", value: 92 }, | ||
| 361 | - { name: "县区、开发区", value: 152 }, | ||
| 362 | - { name: "文娱市场管理", value: 72 }, | ||
| 363 | - { name: "商业烟尘污染", value: 72 }, | ||
| 364 | - { name: "供热单位影响", value: 71 }, | ||
| 365 | - { name: "压力容器安全", value: 71 }, | ||
| 366 | - { name: "劳动合同争议", value: 41 }, | ||
| 367 | - { name: "物业资质管理", value: 21 }, | ||
| 368 | - { name: "农村基础设施", value: 11 }, | ||
| 369 | - { name: "行政事业收费", value: 11 }, | ||
| 370 | - { name: "房屋配套问题", value: 11 }, | ||
| 371 | - { name: "公交运输管理", value: 11 }, | ||
| 372 | - { name: "社会福利及事务", value: 11 }, | ||
| 373 | - { name: "食品安全与卫生", value: 11 }, | ||
| 374 | - { name: "物业服务与管理", value: 112 }, | ||
| 375 | - { name: "文体与教育管理", value: 406 }, | ||
| 376 | - { name: "社会保障与福利", value: 429 }, | ||
| 377 | - { name: "出租车运营管理", value: 385 }, | ||
| 378 | - { name: "物业服务与管理", value: 304 }, | ||
| 379 | - { name: "房屋质量与安全", value: 223 }, | ||
| 380 | - { name: "劳动报酬与福利", value: 41 }, | ||
| 381 | - { name: "食品安全与卫生", value: 11 }, | ||
| 382 | - { name: "房屋与图纸不符", value: 11 }, | ||
| 383 | - { name: "其他行政事业收费", value: 11 }, | ||
| 384 | - { name: "农村土地规划管理", value: 254 }, | ||
| 385 | - { name: "社会保障保险管理", value: 92 }, | ||
| 386 | - { name: "城市交通秩序管理", value: 72 }, | ||
| 387 | - { name: "户籍管理及身份证", value: 11 }, | ||
| 388 | - { name: "公路(水路)交通", value: 11 }, | ||
| 389 | - { name: "国有公交(大巴)管理", value: 71 }, | ||
| 390 | - { name: "有线电视安装及调试维护", value: 11 }, | ||
| 391 | - { name: "市政府工作部门(含部门管理机构、直属单位)", value: 11 }, | 258 | + { name: "占道", value: 284 } |
| 392 | ], | 259 | ], |
| 393 | }, | 260 | }, |
| 394 | { | 261 | { |
src/views/bigscreenDesigner/designer/tools/index.js
| @@ -47,6 +47,22 @@ const screenConfig = { | @@ -47,6 +47,22 @@ const screenConfig = { | ||
| 47 | value: '' | 47 | value: '' |
| 48 | }, | 48 | }, |
| 49 | { | 49 | { |
| 50 | + type: 'data-source-select', | ||
| 51 | + label: '全局数据源', | ||
| 52 | + name: 'master', | ||
| 53 | + required: false, | ||
| 54 | + placeholder: '全局数据源[List:sName、sValue] ',/**LIST sName、sValue 后台代码自动转成 sName:sValue Map形式*/ | ||
| 55 | + value: '' | ||
| 56 | + }, | ||
| 57 | + { | ||
| 58 | + type: 'el-input-number', | ||
| 59 | + label: '刷新时间(毫秒)', | ||
| 60 | + name: 'refreshMasterTime', | ||
| 61 | + value: '600000', | ||
| 62 | + required: false, | ||
| 63 | + placeholder: '毫秒', | ||
| 64 | + }, | ||
| 65 | + { | ||
| 50 | type: 'vue-color', | 66 | type: 'vue-color', |
| 51 | label: '背景颜色', | 67 | label: '背景颜色', |
| 52 | name: 'backgroundColor', | 68 | name: 'backgroundColor', |
| @@ -55,7 +71,7 @@ const screenConfig = { | @@ -55,7 +71,7 @@ const screenConfig = { | ||
| 55 | value: 'rgba(45, 86, 126, 1)', | 71 | value: 'rgba(45, 86, 126, 1)', |
| 56 | }, | 72 | }, |
| 57 | { | 73 | { |
| 58 | - type: 'custom-upload', | 74 | + type: 'custom-upload-new', |
| 59 | label: '图片地址', | 75 | label: '图片地址', |
| 60 | name: 'backgroundImage', | 76 | name: 'backgroundImage', |
| 61 | required: false, | 77 | required: false, |
src/views/bigscreenDesigner/designer/widget/text/widgetText.vue
| 1 | -<!-- | ||
| 2 | - * @Author: lide1202@hotmail.com | ||
| 3 | - * @Date: 2021-3-13 11:04:24 | ||
| 4 | - * @Last Modified by: lide1202@hotmail.com | ||
| 5 | - * @Last Modified time: 2021-3-13 11:04:24 | ||
| 6 | - !--> | ||
| 7 | <template> | 1 | <template> |
| 8 | <div class="text" :style="styleColor">{{ styleColor.text }}</div> | 2 | <div class="text" :style="styleColor">{{ styleColor.text }}</div> |
| 9 | </template> | 3 | </template> |
| @@ -65,7 +59,15 @@ export default { | @@ -65,7 +59,15 @@ export default { | ||
| 65 | const optionsData = this.optionsData; // 数据类型 静态 or 动态 | 59 | const optionsData = this.optionsData; // 数据类型 静态 or 动态 |
| 66 | if (optionsData.dataType == "dynamicData") { | 60 | if (optionsData.dataType == "dynamicData") { |
| 67 | this.dynamicDataFn(optionsData.dynamicData, optionsData.refreshTime); | 61 | this.dynamicDataFn(optionsData.dynamicData, optionsData.refreshTime); |
| 68 | - } else {}; | 62 | + } else { |
| 63 | + console.log("静态数据",this,this.master,this.masterData); | ||
| 64 | + //父数据不为空, | ||
| 65 | + // if(this.isBlankObject(this.masterData)){ | ||
| 66 | + // | ||
| 67 | + // | ||
| 68 | + // } | ||
| 69 | + | ||
| 70 | + }; | ||
| 69 | }, | 71 | }, |
| 70 | dynamicDataFn(val, refreshTime) { | 72 | dynamicDataFn(val, refreshTime) { |
| 71 | if (!val) return; | 73 | if (!val) return; |
src/views/bigscreenDesigner/designer/widget/widget.vue
| 1 | -<!-- | ||
| 2 | - * @Author: lide1202@hotmail.com | ||
| 3 | - * @Date: 2021-3-13 11:04:24 | ||
| 4 | - * @Last Modified by: lide1202@hotmail.com | ||
| 5 | - * @Last Modified time: 2021-3-13 11:04:24 | ||
| 6 | - !--> | ||
| 7 | <template> | 1 | <template> |
| 8 | <avue-draggable | 2 | <avue-draggable |
| 9 | :step="step" | 3 | :step="step" |
| @@ -100,14 +94,14 @@ export default { | @@ -100,14 +94,14 @@ export default { | ||
| 100 | widget-text widget-marquee widget-href widget-time widget-image widget-slider widget-video widget-table widget-iframe widget-universal | 94 | widget-text widget-marquee widget-href widget-time widget-image widget-slider widget-video widget-table widget-iframe widget-universal |
| 101 | widget-linechart widget-barlinechart widget-piechart widget-hollow-piechart widget-funnel widget-gauge widget-china-map | 95 | widget-linechart widget-barlinechart widget-piechart widget-hollow-piechart widget-funnel widget-gauge widget-china-map |
| 102 | */ | 96 | */ |
| 103 | - index: Number, // 当前组件,在工作区变量widgetInWorkbench中的索引 | 97 | + // 当前组件,在工作区变量widgetInWorkbench中的索引 |
| 98 | + index: Number, | ||
| 104 | type: String, | 99 | type: String, |
| 105 | - bigscreen: Object, | ||
| 106 | value: { | 100 | value: { |
| 107 | type: [Object], | 101 | type: [Object], |
| 108 | default: () => {} | 102 | default: () => {} |
| 109 | }, | 103 | }, |
| 110 | - step: Number | 104 | + step: Number, |
| 111 | }, | 105 | }, |
| 112 | data() { | 106 | data() { |
| 113 | return { | 107 | return { |
| @@ -117,7 +111,7 @@ export default { | @@ -117,7 +111,7 @@ export default { | ||
| 117 | position: {}, | 111 | position: {}, |
| 118 | /* leftMargin: null, | 112 | /* leftMargin: null, |
| 119 | topMargin: null*/ | 113 | topMargin: null*/ |
| 120 | - } | 114 | + }, |
| 121 | }; | 115 | }; |
| 122 | }, | 116 | }, |
| 123 | computed: { | 117 | computed: { |
| @@ -142,6 +136,10 @@ export default { | @@ -142,6 +136,10 @@ export default { | ||
| 142 | handleFocus({ index, left, top, width, height }) {}, | 136 | handleFocus({ index, left, top, width, height }) {}, |
| 143 | handleBlur({ index, left, top, width, height }) { | 137 | handleBlur({ index, left, top, width, height }) { |
| 144 | this.$emit("onActivated", { index, left, top, width, height }); | 138 | this.$emit("onActivated", { index, left, top, width, height }); |
| 139 | + | ||
| 140 | + console.log(this.masterData,"2222"); | ||
| 141 | + | ||
| 142 | + | ||
| 145 | this.$refs.draggable.setActive(true); | 143 | this.$refs.draggable.setActive(true); |
| 146 | // 处理widget超出workbench的问题 | 144 | // 处理widget超出workbench的问题 |
| 147 | //this.handleBoundary({ index, left, top, width, height }) | 145 | //this.handleBoundary({ index, left, top, width, height }) |
src/views/screenDesigner/config/configs.js
| @@ -12,7 +12,7 @@ | @@ -12,7 +12,7 @@ | ||
| 12 | * 词云图:{type: 'wordCloud',tabName: '词云图'} | 12 | * 词云图:{type: 'wordCloud',tabName: '词云图'} |
| 13 | * **/ | 13 | * **/ |
| 14 | 14 | ||
| 15 | -import { screenConfig } from './texts/screenConfig' | 15 | +import {screenConfig} from './texts/screenConfig' |
| 16 | import {widgetHref} from "./texts/widget-href" | 16 | import {widgetHref} from "./texts/widget-href" |
| 17 | import {widgetIframe} from "./texts/widget-iframe" | 17 | import {widgetIframe} from "./texts/widget-iframe" |
| 18 | import {widgetImage} from "./texts/widget-image" | 18 | import {widgetImage} from "./texts/widget-image" |
src/views/screenDesigner/config/texts/screenConfig.js
| @@ -45,6 +45,20 @@ export const screenConfig = { | @@ -45,6 +45,20 @@ export const screenConfig = { | ||
| 45 | placeholder: '', | 45 | placeholder: '', |
| 46 | }, | 46 | }, |
| 47 | { | 47 | { |
| 48 | + type: 'data-source-select', | ||
| 49 | + label: '全局数据源', | ||
| 50 | + name: 'master', | ||
| 51 | + required: false, | ||
| 52 | + placeholder: '全局数据源[List:sName、sValue] ',/**LIST sName、sValue 后台代码自动转成 sName:sValue Map形式*/ | ||
| 53 | + value: '' | ||
| 54 | + }, | ||
| 55 | + { | ||
| 56 | + type: 'el-input-number', | ||
| 57 | + label: '刷新时间(毫秒)', | ||
| 58 | + name: 'refreshMasterTime', | ||
| 59 | + value: '600000', | ||
| 60 | + }, | ||
| 61 | + { | ||
| 48 | type: 'vue-color', | 62 | type: 'vue-color', |
| 49 | label: '背景颜色', | 63 | label: '背景颜色', |
| 50 | name: 'backgroundColor', | 64 | name: 'backgroundColor', |
| @@ -53,7 +67,8 @@ export const screenConfig = { | @@ -53,7 +67,8 @@ export const screenConfig = { | ||
| 53 | value: '#000', | 67 | value: '#000', |
| 54 | }, | 68 | }, |
| 55 | { | 69 | { |
| 56 | - type: 'custom-upload', | 70 | + // type: 'custom-upload', |
| 71 | + type: 'custom-upload-new', | ||
| 57 | label: '图片地址', | 72 | label: '图片地址', |
| 58 | name: 'backgroundImage', | 73 | name: 'backgroundImage', |
| 59 | required: false, | 74 | required: false, |