From 7efc6ed86025b610cab109a2e9f83362740d8ed4 Mon Sep 17 00:00:00 2001
From: 李旭东 <woaiguo66@sina.com>
Date: 星期五, 08 十二月 2023 13:29:07 +0800
Subject: [PATCH] Merge branch 'master' of http://111.30.93.211:10101/r/supipe

---
 web/src/views/MixingInfo/mixRatio.vue |  253 ++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 253 insertions(+), 0 deletions(-)

diff --git a/web/src/views/MixingInfo/mixRatio.vue b/web/src/views/MixingInfo/mixRatio.vue
new file mode 100644
index 0000000..c69ce94
--- /dev/null
+++ b/web/src/views/MixingInfo/mixRatio.vue
@@ -0,0 +1,253 @@
+<template>
+    <div class="wrap">
+        <div class="header">
+            <div class="header_name">中铁十四局通甬站前I标管片场拌和站</div>
+        </div>
+        <div class="table">
+            <div class="row title">{{ info.signboardName }}</div>
+
+            <div class="row">
+                <div class="name">工程名称</div>
+                <div class="value">{{ info.proName }}</div>
+            </div>
+
+            <div class="row">
+                <div class="name">施工单位</div>
+                <div class="value">{{ info.constructionUnit }}</div>
+            </div>
+
+            <div class="row line">
+                <div>
+                    <div class="name">施工日期</div>
+                    <div class="value">{{ info.saveStamp }}</div>
+                </div>
+                <div>
+                    <div class="name">施工部位</div>
+                    <div class="value">{{ info.construction }}</div>
+                </div>
+            </div>
+
+            <div class="row" v-for="item in dataLists" :key="item.name">
+                <div class="name">{{ item.name }}</div>
+                <div class="column">
+                    <div class="column-item" v-for="(sub, index) in item.value" :key="index">{{ sub }}</div>
+                </div>
+            </div>
+
+        </div>
+    </div>
+</template>
+  
+<script>
+const interval = function (fn, Vue) {
+    let timer = setInterval(
+        (() => {
+            fn()
+            return fn
+        })(),
+        1000 * 60 * 10
+    )
+    if (Vue) {
+        Vue.$once('hook:beforeDestroy', function () {
+            timer && clearInterval(timer)
+        })
+    }
+}
+export default {
+    name: 'Page2',
+    data() {
+        return {
+            info: {
+                signboardName: '', // 标识排
+                proName: '', // 工程名称
+                constructionUnit: '', // 施工单位
+                saveStamp: '',  // 施工日期
+                construction: '',  // 施工部位
+            },
+            dataLists: [
+                {name: '材料名称', type: 'dictName', value: []}, // 材料名称
+                {name: '规格型号', type: 'spec', value: []}, // 规格型号
+                {name: '生产厂家', type: 'manufacturer', value: []}, // 生产厂家
+                {name: '材料含水率(%)', type: 'watFull', value: []}, // 含水率
+                {name: '理论用量(kg/m³)', type: 'planAmnt', value: []}, // 理论用量
+                {name: '实际用量(kg/m³)', type: 'factAmnt', value: []}, // 实际用量
+            ]
+        }
+    },
+    beforeCreate() {
+        this.$http = this.$api.Infos
+    },
+    beforeRouteEnter(to, form, next) {
+        const {path} = to
+
+        const type = path.slice(-1)
+
+        next(vm => {
+            vm.type = type
+            interval(vm.getLists, vm)
+        })
+    },
+    mounted() {
+        let width = document.getElementsByClassName('wrap')[0].clientWidth
+        let $html = document.getElementsByTagName('html')[0]
+        let fontsize = width / 1920 * 35.2
+        $html.style.fontSize = `${fontsize}px`
+        window.onresize = () => {
+            let width = document.getElementById('app').clientWidth
+            let fontsize = width / 1920 * 35.2
+            $html.style.fontSize = `${fontsize}px`
+        }
+    },
+    beforeDestroy() {
+        let $html = document.getElementsByTagName('html')[0]
+        $html.style.fontSize = ''
+    },
+    methods: {
+        getLists() {
+            const params = {
+                pageNum: this.type, // 传 1 2对应两个页面
+                pageSize: 1,
+            }
+            this.$api.Infos.getMixRatio(params).then(res => {
+                if (res.statusMsg === 'ok' && res.data) {
+                    const {list} = res.data
+                    if (list && list.length) {
+                        const item = list[0]
+                        const {tmixingConsumes} = item
+
+                        this.info.signboardName = item.signboardName
+                        this.info.proName = item.proName
+
+                        if (tmixingConsumes && tmixingConsumes.length) {
+                            this.info.constructionUnit = tmixingConsumes[0].constructionUnit
+                            this.info.saveStamp = tmixingConsumes[0].saveStamp
+                            this.info.construction = tmixingConsumes[0].construction
+                            this.dataLists = [
+                                {name: '材料名称', type: 'dictName', value: []}, // 材料名称
+                                {name: '规格型号', type: 'spec', value: []}, // 规格型号
+                                {name: '生产厂家', type: 'manufacturer', value: []}, // 生产厂家
+                                {name: '材料含水率(%)', type: 'watFull', value: []}, // 含水率
+                                {name: '理论用量(kg/m³)', type: 'planAmnt', value: []}, // 理论用量
+                                {name: '实际用量(kg/m³)', type: 'factAmnt', value: []}, // 实际用量
+                            ]
+                            tmixingConsumes.forEach(item => {
+                                this.dataLists.forEach(val => {
+                                    item[val.type] && val.value.push(item[val.type])
+                                })
+                            })
+                        }
+                    }
+                } else {
+                    this.$message.warning('请检查网络或联系管理员!!!')
+                }
+            })
+
+        },
+    }
+}
+</script>
+<style lang="scss" scoped>
+.wrap {
+    position: absolute;
+    width: 100%;
+    height: 100%;
+    font-size: 1rem;
+    background: #040A3F;
+    overflow: hidden;
+}
+
+.header {
+    position: absolute;
+    top: 0;
+    width: 100%;
+    height: 3rem;
+    text-align: center;
+    color: #fff;
+    background: url('../../assets/mixing/header.png') no-repeat center center;
+    background-size: 100% auto;
+
+    .header_name {
+        font-size: 1.4rem;
+        font-weight: bold;
+        line-height: 3.2rem;
+        letter-spacing: 2px;
+        text-shadow: 0px 3px 3px rgba(25, 63, 95, 0.05);
+        background: -webkit-linear-gradient(90deg, #2AC0FF 0%, #FFFFFF 70%);
+        -webkit-background-clip: text;
+        -webkit-text-fill-color: transparent;
+    }
+}
+
+.table {
+    display: flex;
+    flex-direction: column;
+    position: absolute;
+    top: 4rem;
+    bottom: 2rem;
+    left: 2rem;
+    right: 2rem;
+    font-size: 0.74rem;
+    color: #fff;
+
+    .title {
+        display: flex;
+        justify-content: center;
+        align-items: center;
+        color: #BEE2F0;
+        background: rgba(1, 142, 196, .35);
+    }
+
+    .row {
+        flex: 1;
+        width: 100%;
+        margin: 0 -1px -1px 0;
+        text-align: center;
+        line-height: 1.1rem;
+        border: 1px solid #01B3EF;
+
+        .name {
+            display: flex;
+            justify-content: center;
+            align-items: center;
+            float: left;
+            width: 8rem;
+            height: 100%;
+            margin: -1px -1px -1px 0;
+            color: #BEE2F0;
+            border: 1px solid #01B3EF;
+            background: rgba(1, 142, 196, .75);
+            box-sizing: unset;
+        }
+
+        .value {
+            display: flex;
+            justify-content: center;
+            align-items: center;
+            height: 100%;
+            overflow: hidden;
+        }
+
+        .column {
+            display: flex;
+            height: 100%;
+
+            .column-item {
+                display: flex;
+                justify-content: center;
+                align-items: center;
+                flex: 1;
+                margin: -1px -1px -1px 0;
+                border: 1px solid #01B3EF;
+            }
+        }
+    }
+
+    .row.line {
+        display: flex;
+
+        > div {
+            flex: 1;
+        }
+    }
+}
+</style>
\ No newline at end of file

--
Gitblit v1.9.3