1
lzhe
2024-04-21 fd9151c94a8fa297119e7618a132cd04f6ca580f
1
已修改4个文件
228 ■■■■■ 文件已修改
src/layout/components/NavMenu.vue 27 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/login/components/passwordForm.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/login/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/mdc/status-record.vue 195 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/layout/components/NavMenu.vue
@@ -5,7 +5,12 @@
    <template v-for="navMenu in navMenus" v-bind:key="navMenu">
        <el-menu-item v-if="!hasChildren(navMenu)" :index="navMenu.path">
            <a v-if="navMenu.meta&&navMenu.meta.type=='link'" :href="navMenu.path" target="_blank" @click.stop='()=>{}'></a>
            <el-icon v-if="navMenu.meta&&navMenu.meta.icon"><component :is="navMenu.meta.icon || 'el-icon-menu'"/></el-icon>
            <!-- <el-icon><Warning /></el-icon> -->
            <el-icon>
                 <component v-if="icons.includes(navMenu.source)" :is="navMenu.source"/>
                 <component v-if="!icons.includes(navMenu.source)" :is="'TakeawayBox'"/>
                <!-- <el-icon v-if="navMenu.meta&&navMenu.meta.icon"><component :is="navMenu.meta.icon || 'el-icon-menu'"/></el-icon> -->
            </el-icon>
            <template #title>
                <span>{{navMenu.meta.title}}</span>
                <span v-if="navMenu.meta.tag" class="menu-tag">{{navMenu.meta.tag}}</span>
@@ -13,7 +18,11 @@
        </el-menu-item>
        <el-sub-menu v-else :index="navMenu.path">
            <template #title>
                <!-- <el-icon v-if="navMenu.meta&&navMenu.meta.icon"><component :is="navMenu.meta.icon || 'el-icon-menu'"/></el-icon> -->
                <el-icon v-if="navMenu.parentId!='0' &&navMenu.meta&&navMenu.meta.icon">
                    <component v-if="icons.includes(navMenu.source)" :is="navMenu.source"/>
                    <component v-if="!icons.includes(navMenu.source)" :is="'TakeawayBox'"/>
                    <!-- <component :is="navMenu.meta.icon || 'el-icon-menu'"/> -->
                </el-icon>
                <span>{{navMenu.meta.title}}</span>
                <span v-if="navMenu.meta.tag" class="menu-tag">{{navMenu.meta.tag}}</span>
            </template>
@@ -23,19 +32,29 @@
</template>
<script>
    import * as ElementPlusIconsVue from '@element-plus/icons-vue'
    let icons = []
    for (const [key, component] of Object.entries(ElementPlusIconsVue)) {
        icons.push(key)
    }
    export default {
        name: 'NavMenu',
        props: ['navMenus'],
        data() {
            return {}
            return {
                icons
            }
        },
        components: {
            ...ElementPlusIconsVue
        },
        methods: {
            hasChildren(item) {
                return item.children && !item.children.every(item => item.meta.hidden)
                //return item.parentId == '0';
            }
        },
        mounted(){
        }
    }
</script>
src/views/login/components/passwordForm.vue
@@ -140,10 +140,10 @@
                            menu: transformedArray,
                            permissions: ["list.add", "list.edit", "list.delete", "user.add", "user.edit", "user.delete"]
                        }
                        this.$TOOL.data.set("MENU", obj.menu)
                        this.$TOOL.data.set("MENU", obj.menu);
                        console.log(obj.menu,289)
                        this.$TOOL.data.set("PERMISSIONS", obj.permissions)
                        this.$TOOL.data.set("DASHBOARDGRID", obj.dashboardGrid)
                        console.log(transformedArray, 222)
                        this.$router.replace({
                            path: '/'
src/views/login/index.vue
@@ -80,7 +80,7 @@
<style scoped>
    .login_bg {width: 100%;height: 100%;background: #fff;display: flex;}
    .login_adv {width: 100%;background-color: #555;background-size: cover;background-position: center center;background-repeat: no-repeat;position: relative;background-size: 100% 100%;}
    .login_adv {width: 100%;background-color: #555;background-size: cover;background-position: center center;background-repeat: no-repeat;position: relative;}
    .login_adv__title {color: #fff;padding: 40px;position: absolute;top:0px;left:0px;right: 0px;z-index: 2;}
    .login_adv__title h2 {font-size: 40px;}
    .login_adv__title h4 {font-size: 18px;margin-top: 10px;font-weight: normal;}
src/views/mdc/status-record.vue
@@ -1,24 +1,189 @@
<!--
 * @Date: 2024-04-09 22:11:21
 * @LastEditors: Sneed
 * @LastEditTime: 2024-04-13 22:15:52
 * @FilePath: /belleson-frontend/Users/mache/Documents/demo/cps-web/src/views/mdc/status-record.vue
 状态记录
-->
<template>
    <el-main>
        <el-card shadow="never">
            效率分析
    <div class="aposcope-main">
        <div class="aposcope-left">
            <div class="left-title">查询条件</div>
            <div>日期</div>
            <!-- <el-date-picker
              v-model="time"
              type="datetimerange"
              range-separator="-"
              start-placeholder=""
              end-placeholder="" />
 -->
    <el-date-picker
      v-model="time"
      type="datetimerange"
      :shortcuts="shortcuts"
      range-separator="-"
      start-placeholder="Start date"
      end-placeholder="End date"
    />
            <!-- <el-date-picker value-format="YYYY-MM-DD" style="width: 250px" v-model="time" type="daterange" range-separator="-" start-placeholder="" end-placeholder="" /> -->
        </div>
        <div class="aposcope-right">
        </div>
    </div>
    <!-- <el-main style="height: 100%;">
        <el-card shadow="never" style="height: 100%;" body-style="height: 100%">
            <el-container style="height: 100%;">
                <el-aside width="300px" style="height: 100%;">
                    <el-container>
                        <el-main class="nopadding">
                            <el-row>
                                <el-col style="margin-top: 14px;">日期</el-col>
                                <el-col>
                                    <el-date-picker value-format="YYYY-MM-DD" style="width: 250px" v-model="time"
                                        type="daterange" range-separator="-" start-placeholder="" end-placeholder="" />
                                </el-col>
                            </el-row>
                            <el-row style="margin-top: 14px;">
                                工位
                            </el-row>
                            <MYTree v-model="treeChecked" show-checkbox></MYTree>
                        </el-main>
                        <el-footer>
                            <el-button @click="query">查询</el-button>
                            <el-button>导出</el-button>
                        </el-footer>
                    </el-container>
                </el-aside>
                <el-container>
                    <el-main>
                        <el-tabs tab-position="top" v-model="activeName" type="card">
                            <el-tab-pane label="按班次统计" name="shift">
                                <Shift colname="产量" url="/api/blade-mdc/output" ref="shift"
                                    v-if="activeName == 'shift'">
                                </Shift>
                            </el-tab-pane>
                            <el-tab-pane label="按时间周期统计" name="time">
                                <Time url="/api/blade-mdc/output" ref="time" v-if="activeName == 'time'">
                                </Time>
                            </el-tab-pane>
                        </el-tabs>
                    </el-main>
                </el-container>
            </el-container>
        </el-card>
    </el-main>
    </el-main> -->
</template>
<script>
    export default {
import moment from 'moment';
import MYTree from './MYTree.vue'
import Shift from './components/Shift.vue'
import Time from './components/Time.vue'
export default {
    components: {
        time: "",
        MYTree,
        Shift,
        Time,
        shortcuts: [
            {
                text: 'Last week',
                value: () => {
                  const end = new Date()
                  const start = new Date()
                  start.setDate(start.getDate() - 7)
                  return [start, end]
                },
              },
              {
                text: 'Last month',
                value: () => {
                  const end = new Date()
                  const start = new Date()
                  start.setMonth(start.getMonth() - 1)
                  return [start, end]
                },
              },
              {
                text: 'Last 3 months',
                value: () => {
                  const end = new Date()
                  const start = new Date()
                  start.setMonth(start.getMonth() - 3)
                  return [start, end]
                },
              },
        ]
    },
    watch: {
        activeName() {
            this.$nextTick(() => {
                this.query()
            })
        }
    },
    data() {
        return {
            activeName: 'shift',
            time: [],
            treeChecked: [],
            options: [
                {
                    label: '稼动率',
                    value: 'OEE',
                },
                {
                    label: '报警率',
                    value: 'ALARM',
                },
                {
                    label: '运行率',
                    value: 'RUNNING',
                },
            ]
        }
    },
    created() {
        this.time = [moment().format('YYYY-MM-DD'), moment().format('YYYY-MM-DD')]
    },
    mounted() {
        this.query()
    },
    methods: {
        query() {
            // this.$refs[this.activeName].init({
            //     endDate: this.time[1],
            //     startDate: this.time[0],
            //     shiftIndexList: [1, 2],
            //     workStationIdList: [...this.treeChecked]
            // })
        }
    }
}
</script>
<style lang="scss" scoped>
<style scoped>
.aposcope-main {
    display: flex;
    min-height: 100%;
    margin: 8px;
}
.aposcope-left {
    width: 240px;
    margin-right: 8px;
    padding: 4px;
    background-color: #fff;
}
.aposcope-right {
    flex: 1;
    padding: 8px;
    background-color: #fff;
}
.left-title {
    font-size: 16px;
    text-align: center;
    height: 38px;
    line-height: 38px;
    border-bottom: 1px solid #e2e2e2;
    background-color: #409eff;
    color: #fff;
    border-radius: 2px 2px 0 0;
}
</style>