parent
85328005cd
commit
b79c967ee5
@ -0,0 +1,53 @@
|
||||
<!--
|
||||
* @Descripttion:
|
||||
* @version:
|
||||
* @Author: qianlishi
|
||||
* @Date: 2022-04-28 12:20:28
|
||||
* @LastEditors: qianlishi
|
||||
* @LastEditTime: 2022-04-28 12:31:14
|
||||
-->
|
||||
<template>
|
||||
<div>
|
||||
<component :is="type" :value="value" :ispreview="true" />
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import widgetHref from "../widget/texts/widgetHref.vue";
|
||||
import WidgetIframe from "../widget/texts/widgetIframe.vue";
|
||||
import widgetImage from "../widget/texts/widgetImage.vue";
|
||||
import WidgetMarquee from "../widget/texts/widgetMarquee.vue";
|
||||
import widgetSlider from "../widget/texts/widgetSlider.vue";
|
||||
import widgetTable from "../widget/texts/widgetTable.vue";
|
||||
import widgetText from "../widget/texts/widgetText.vue";
|
||||
import widgetTime from "../widget/texts/widgetTime.vue";
|
||||
import widgetVideo from "../widget/texts/widgetVideo.vue";
|
||||
import widgetBarchart from "../widget/barCharts/widgetBarchart.vue";
|
||||
|
||||
export default {
|
||||
name: "WidgetTemp",
|
||||
components: {
|
||||
widgetHref,
|
||||
WidgetIframe,
|
||||
widgetImage,
|
||||
WidgetMarquee,
|
||||
widgetSlider,
|
||||
widgetTable,
|
||||
widgetText,
|
||||
widgetTime,
|
||||
widgetVideo,
|
||||
widgetBarchart
|
||||
},
|
||||
model: {
|
||||
prop: "value",
|
||||
event: "input"
|
||||
},
|
||||
props: {
|
||||
type: String,
|
||||
value: {
|
||||
type: [Object],
|
||||
default: () => {}
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
@ -1 +1,79 @@
|
||||
<!--
|
||||
* @Descripttion: 大屏设置器
|
||||
* @version:
|
||||
* @Author: qianlishi
|
||||
* @Date: 2022-03-14 14:05:15
|
||||
* @LastEditors: qianlishi
|
||||
* @LastEditTime: 2022-04-28 12:23:34
|
||||
-->
|
||||
<template>
|
||||
<div class="layout">
|
||||
<div :style="bigScreenStyle">
|
||||
<widget
|
||||
v-for="(widget, index) in widgets"
|
||||
:key="index"
|
||||
v-model="widget.value"
|
||||
:type="widget.type"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import widget from "./components/temp";
|
||||
import { detailDashboard } from "@/api/bigscreen";
|
||||
export default {
|
||||
name: "Login",
|
||||
components: {
|
||||
widget
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
bigScreenStyle: {},
|
||||
widgets: []
|
||||
};
|
||||
},
|
||||
mounted() {
|
||||
this.getData();
|
||||
},
|
||||
methods: {
|
||||
async getData() {
|
||||
const reportCode = this.$route.query.reportCode;
|
||||
const { code, data } = await detailDashboard(reportCode);
|
||||
if (code != 200) return;
|
||||
const equipment = document.body.clientWidth;
|
||||
const ratioEquipment = equipment / data.dashboard.width;
|
||||
this.bigScreenStyle = {
|
||||
width: data.dashboard.width + "px",
|
||||
height: data.dashboard.height + "px",
|
||||
"background-color": data.dashboard.backgroundColor,
|
||||
"background-image": "url(" + data.dashboard.backgroundImage + ")",
|
||||
"background-position": "0% 0%",
|
||||
"background-size": "100% 100%",
|
||||
"background-repeat": "initial",
|
||||
"background-attachment": "initial",
|
||||
"background-origin": "initial",
|
||||
"background-clip": "initial",
|
||||
transform: `scale(${ratioEquipment}, ${ratioEquipment})`,
|
||||
"transform-origin": "0 0"
|
||||
};
|
||||
this.widgets = data.dashboard.widgets;
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
.layout {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
text-align: center;
|
||||
}
|
||||
.bottom-text {
|
||||
width: 100%;
|
||||
color: #a0a0a0;
|
||||
position: fixed;
|
||||
bottom: 16px;
|
||||
z-index: 9999;
|
||||
}
|
||||
</style>
|
||||
|
Loading…
Reference in New Issue