• WTM 增加IOT 大屏展示界面页面


            WTM作为一个.Net core的web快速开发框架, 能省时 省力 快速出成果。

            WTM作为通用的web框架, 也可以用在IOT数据展示场景,有的宝宝就问了:我怎么给生成的项目增加一个页面来显示大屏幕呢?

        第一步  实现方法。 接下来我们就探索一个方式,就是在主页面,右上角增加一个按钮,点击一下就弹出来一个新的页面。

     点击数据大屏,弹出一个新的页面,这个页面里边,就可以写一些代码来展示你的数据,比如用websocket技术或者API方式从后台获取数据。

    第二步 实现步骤。  去生成WTM项目 wtmdoc.walkingtec.cn/setup,前端咱们选择UVE:

    第三步    下载之后的环境配置 这里就不说了, 配置好数据库运行起来后,就可以开始改造了,

                    a. 在前  ClientApp\src\components\layout\components\Navbar\index.vue  文件里边增加“数据大屏” 按钮:

                    

    1. <template v-if="device!=='mobile'">
    2. <screenBigData class="right-menu-item hover-effect" />
    3. <header-search class="right-menu-item" />
    4. <error-log class="errLog-container right-menu-item hover-effect" />
    5. <screenfull class="right-menu-item hover-effect" />
    6. <size-select class="right-menu-item hover-effect" />
    7. <lang-select class="right-menu-item hover-effect" />
    8. <settings class="right-menu-item hover-effect" />
    9. </template>

            b ,ClientApp\src\components\frame\ 下增加一个文件夹叫ScreenBigData,里边就是我们的点击按钮后的响应动作, ScreenBigData\index.vue  

    1. <template>
    2. <div id="screenBigData">
    3. <!-- <svg-icon
    4. :name="isFullscreen? 'exit-fullscreen': 'fullscreen'"
    5. @click="onClick"
    6. /> -->
    7. <el-tooltip :content="$t('navbar.full')" effect="dark" placement="bottom">
    8. <i class="el-icon-menu" @click.stop="onClick"> 数据大屏</i>
    9. </el-tooltip>
    10. </div>
    11. </template>
    12. <script lang="ts">
    13. import screenfull from "screenfull";
    14. import { Component, Vue } from "vue-property-decorator";
    15. import { RouteRecord, Route } from "vue-router";
    16. const sf = screenfull;
    17. @Component({
    18. name: "screenBigData"
    19. })
    20. export default class extends Vue {
    21. private isFullscreen = false;
    22. mounted() {
    23. if (sf && sf.enabled) {
    24. sf.on("change", this.change);
    25. }
    26. }
    27. beforeDestory() {
    28. if (sf && sf.enabled) {
    29. sf.off("change", this.change);
    30. }
    31. }
    32. private change() {
    33. if (sf && sf.enabled) {
    34. this.isFullscreen = sf.isFullscreen;
    35. }
    36. }
    37. private onClick() {
    38. //这样写是个组件啊,不对劲
    39. //this.$router.push("/bigdata");//试试这样
    40. let routeData = this.$router.resolve({ path: '/bigdata', query: { } });
    41. console.log(routeData.href);
    42. window.open(routeData.href, '_blank');
    43. /*
    44. if (sf) {
    45. if (!sf.enabled) {
    46. this.$message({
    47. message: "you browser can not work",
    48. type: "warning"
    49. });
    50. return false;
    51. }
    52. sf.toggle();
    53. }*/
    54. }
    55. }
    56. </script>

            c 上边的意思是说要跳转到一个页面,这个页面叫bigdata,接下来 就造一个页面ClientApp\src\pages\htmlpage\index.vue, 在这个下边建一个这个文件, 之所叫htmlpage,是因为我想用现在很多的大屏幕模板都是静态html的。下边的index.html 就可以是任意的网页, 你甚至可以在网上把现成的好看的页面放到这里边。

    1. <template>
    2. <div >
    3. <iframe :src="url" width="100%" height="1080" frameborder="no" border="0" marginwidth="0" marginheight="0" allowtransparency="yes" webkitallowfullscreen="yes" mozallowfullscreen="yes" allowfullscreen="yes"></iframe>
    4. </div>
    5. </template>
    6. <script lang="ts">
    7. import { Component, Vue, Prop } from "vue-property-decorator";
    8. @Component({
    9. name: "bigdata"
    10. })
    11. export default class extends Vue {
    12. @Prop({ type: String, default: "/" })
    13. url = "./wwwbigdata/index.html";
    14. }
    15. </script>

            d 增加路由,ClientApp\src\router\index.ts 这里边path 增加:

    1.     {
    2.         path: "/bigdata",
    3.         component: () => import("@/pages/htmlpage/index.vue"),
    4.         meta: { hidden: true }
    5.     }

    这个静态的htm文件到底要放在什么地方合适, 就看你文件结构了。

    不出意外 你运行一下, 就能看到效果了。

  • 相关阅读:
    300dpi等于多少分辨率?如何给图片修改分辨率大小?
    C++继承
    Jenkins中强制停止停不下来的job
    React合成事件
    企业集中监控体系思路及架构
    如何利用Redis进行事务处理呢?
    RedisSearch深度解析:探索全文搜索的新境界
    网络协议 — LLDP 数据链路发现协议
    链家网房源价格信息的爬虫分析工具
    PostgreSQL基础语法
  • 原文地址:https://blog.csdn.net/david10000/article/details/126539318