1
lzhe
2024-11-04 43c2ebf8b5df8a785b5c717eede3aac52962cd5e
1
已修改9个文件
298 ■■■■ 文件已修改
src/views/master/person/main/index.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/master/person/main/personPerson.vue 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/mdc/alarm-statistics.vue 59 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/mdc/configComp/Efficiency.vue 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/mdc/configuration.vue 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/mdc/efficiency-analysis.vue 57 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/mdc/output-statistics.vue 59 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/mdc/realtime-status/index.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/mdc/time-analysis.vue 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/master/person/main/index.vue
@@ -2,7 +2,7 @@
 * @Author: lzhe lzhe@example.com
 * @Date: 2024-03-26 10:28:33
 * @LastEditors: lzhe lzhe@example.com
 * @LastEditTime: 2024-04-09 20:12:59
 * @LastEditTime: 2024-11-04 11:03:59
 * @FilePath: /smart-web/src/views/master/person/main/index.vue
 * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
-->
@@ -15,7 +15,7 @@
            <el-tab-pane label="岗位" name="second">
                <person-post v-if="activeName == 'second'"></person-post>
            </el-tab-pane>
            <el-tab-pane label="部门" name="third">
            <el-tab-pane label="组织结构" name="third">
                <person-department v-if="activeName == 'third'"></person-department>
            </el-tab-pane>
        </el-tabs>
src/views/master/person/main/personPerson.vue
@@ -2,17 +2,17 @@
 * @Author: lzhe lzhe@example.com
 * @Date: 2024-03-26 10:28:33
 * @LastEditors: lzhe lzhe@example.com
 * @LastEditTime: 2024-10-09 13:56:01
 * @LastEditTime: 2024-11-04 11:02:26
 * @FilePath: /belleson-frontend/Users/mache/Documents/demo/cps-web/src/views/master/person/main/personPerson.vue
 * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
-->
<template>
    <div class="person-person">
        <div class="person-person-left">
            <div class="person-left-title">
            <!-- <div class="person-left-title">
                <div :class="{ 'person-left-active': leftActive }" @click="changeTab(1)">部门</div>
                <div :class="{ 'person-left-active': !leftActive }" @click="changeTab(2)">岗位</div>
            </div>
            </div> -->
            <div class="person-left-search">
                <el-input v-model="input" placeholder="请输入内容" size="small"></el-input>
            </div>
@@ -29,7 +29,10 @@
            <div class="right-top">
                <div class="right-title"><span v-if="leftActive">部门:千文科技</span></div>
                <div>
                    <el-select v-model="searchData.status" placeholder="状态" class="searchStatus">
                    <el-select v-model="searchData.postId" clearable placeholder="岗位" class="searchStatus" @change="searchDataChange">
                        <el-option v-for="item in postList" :key="item.id" :label="item.postName" :value="item.id" size="small" />
                    </el-select>
                    <el-select v-model="searchData.status" placeholder="状态" class="searchStatus" @change="searchDataChange">
                        <el-option v-for="item in statusList" :key="item.dictKey" :label="item.dictValue"
                            :value="item.dictKey" size="small" />
                    </el-select>
@@ -166,6 +169,7 @@
    name: "personPerson",
    data() {
        return {
            postList: [],
            authorization: {},
            uploadUrl: "/api/smis/employee/import-employee",
            exportUrl: "/api/smis/employee/export-template",
@@ -211,6 +215,7 @@
    mounted() {
        this.getStatus();
        this.getOrganizationList();  //部门
        this.getPost();  //岗位
    },
    components: {
        saveDialog, importTable,...ElementPlusIconsVue
@@ -255,23 +260,24 @@
            this.searchPerson();
        },
        selectbtn(index) {
            this.titleList.forEach(item => {
                item.active = false;
            })
            this.titleList[index].active = true;
            if (this.leftActive) { //部门
                this.searchData.organizationCode = this.titleList[index].code;
                this.searchData.postId = "";
            } else {  //岗位
                this.searchData.organizationCode = "";
                this.searchData.postId = this.titleList[index].id;
            }
            // this.titleList.forEach(item => {
            //     item.active = false;
            // })
            // this.titleList[index].active = true;
            // if (this.leftActive) { //部门
            //     this.searchData.organizationCode = this.titleList[index].code;
            //     this.searchData.postId = "";
            // } else {  //岗位
            //     this.searchData.organizationCode = "";
            //     this.searchData.postId = this.titleList[index].id;
            // }
            this.searchPerson();
        },
        getOrganizationList() {  //部门
            this.$HTTP.get(`/api/smis/organization/tree?groupType=group_organization&groupCategory=1`).then(res => {
                if (res.code == 200) {
                    this.titleList = res.data;
                    console.log(this.titleList,111);
                    this.titleList[0].active = true;
                    this.searchData.organizationCode = res.data[0].code;
                    this.searchPerson();
@@ -285,13 +291,14 @@
            }
            this.$HTTP.get(`/api/blade-system/post/page?` + this.$TOOL.qsStringify(obj)).then(res => {
                if (res.code == 200) {
                    this.titleList = res.data.records;
                    this.titleList[0].active = true;
                    this.searchData.postId = res.data.records[0].id;
                    this.postList = res.data.records;
                    this.searchPerson();
                }
            })
        },
        searchDataChange() {
            this.searchPerson();
        },
        delData(type) {
            this.$HTTP.post(`/api/smis/employee/remove?ids=${this.selectId}&type=${type}`).then(res => {
                if (res.code == 200) {
src/views/mdc/alarm-statistics.vue
@@ -1,12 +1,12 @@
<!--
 * @Date: 2024-04-09 22:11:21
 * @LastEditors: Sneed
 * @LastEditTime: 2024-06-22 18:50:49
 * @LastEditors: lzhe lzhe@example.com
 * @LastEditTime: 2024-11-04 13:39:09
 * @FilePath: /belleson-frontend/Users/mache/Documents/demo/cps-web/src/views/mdc/alarm-statistics.vue
 * 效率分析
-->
<template>
    <el-main style="height: 100%;">
    <el-main style="height: 100%;" class="alarmStatistics">
        <el-card shadow="never" style="height: 100%;" body-style="height: 100%">
            <el-container style="height: 100%;">
                <el-aside width="300px" style="height: 100%;">
@@ -32,7 +32,13 @@
                    </el-container>
                </el-aside>
                <el-container>
                    <el-main>
                    <el-main style="position: relative;">
                        <span class="setSpan">
                            <el-icon class="setIcon">
                                <Setting />
                            </el-icon>
                            <span class="setBtn" @click="openSet">预警统计设置</span>
                        </span>
                        <el-tabs tab-position="top" v-model="activeName" type="card">
                            <el-tab-pane label="按班次统计" name="shift">
                                <Shift colname="产量" url="/api/mdc/alarm/summary-shift-graph" ref="shift"
@@ -48,6 +54,9 @@
                </el-container>
            </el-container>
        </el-card>
        <el-dialog title="设置" v-model="dialogVisible" v-if="dialogVisible" width="30%" class="setModelStyle">
            <Efficiency :showModalList="showModalList" />
        </el-dialog>
    </el-main>
</template>
@@ -57,12 +66,20 @@
import Shift from './components/ShiftAlarm.vue'
import Time from './components/TimeAlarm.vue'
import exportDialog from '@/layout/components/exportDialog.vue'
import * as ElementPlusIconsVue from '@element-plus/icons-vue'
import Efficiency from './configComp/Efficiency.vue'
let icons = []
for (const [key, component] of Object.entries(ElementPlusIconsVue)) {
    icons.push(key)
}
export default {
    components: {
        ...ElementPlusIconsVue,
        MYTree,
        Shift,
        Time,
        exportDialog
        exportDialog,
        Efficiency
    },
    watch: {
        activeName() {
@@ -74,6 +91,8 @@
    },
    data() {
        return {
            showModalList: [4],
            dialogVisible: false,
            activeName: 'shift',
            time: [],
            treeChecked: [],
@@ -102,6 +121,9 @@
        // })
    },
    methods: {
        openSet() {
            this.dialogVisible = true;
        },
        exportExcel(statisticalMethod) {
            let { start, end } = this.$refs.export.format(this.time[0], this.time[1], statisticalMethod)
            this.$HTTP.post(`/api/mdc/alarm/export-alarm`, {
@@ -137,4 +159,29 @@
}
</script>
<style lang="scss" scoped></style>
<style scoped>
    .setSpan {
        vertical-align: sub;
        font-size: 14px;
        position: absolute;
        top: 26px;
        left: 280px;
        z-index: 11;
    }
    .setIcon {
        color: #409eff;
        margin-left: 15px;
        vertical-align: -2px;
    }
    .setBtn {
        margin-left: 2px;
        color: #409eff;
        margin-left: 8px;
        cursor: pointer;
        font-size: 14px;
    }
    .alarmStatistics >>> .el-dialog__body {
        padding-bottom: 0px;
        padding-top: 0px;
    }
</style>
src/views/mdc/configComp/Efficiency.vue
@@ -1,14 +1,14 @@
<!--
 * @Date: 2024-04-17 22:17:37
 * @LastEditors: Sneed
 * @LastEditTime: 2024-04-22 19:07:49
 * @LastEditors: lzhe lzhe@example.com
 * @LastEditTime: 2024-11-04 11:56:34
 * @FilePath: /belleson-frontend/Users/mache/Documents/demo/cps-web/src/views/mdc/configComp/Efficiency.vue
-->
<template>
    <el-main>
        <el-row>
            <el-col>
                <el-card style="max-width: 480px">
                <el-card style="max-width: 480px" v-show="showModalList.includes(1)">
                    <template #header>
                        <div class="card-header">
                            用时分析(用时分布)
@@ -33,7 +33,7 @@
                        </el-col>
                    </el-row>
                </el-card>
                <el-card style="max-width: 480px">
                <el-card style="max-width: 480px" v-show="showModalList.includes(2)">
                    <template #header>
                        <div class="card-header">
                            效率分析
@@ -97,7 +97,7 @@
                        </el-col>
                    </el-row>
                </el-card>
                <el-card style="max-width: 480px">
                <el-card style="max-width: 480px" v-show="showModalList.includes(3)">
                    <template #header>
                        <div class="card-header">
                            产量统计
@@ -122,7 +122,7 @@
                        </el-col>
                    </el-row>
                </el-card>
                <el-card style="max-width: 480px">
                <el-card style="max-width: 480px" v-show="showModalList.includes(4)">
                    <template #header>
                        <div class="card-header">
                            报警统计
@@ -154,6 +154,13 @@
<script>
export default {
    props: {
        showModalList: {
            type: Array,
            required: false,
            defalut: [1,2,3,4]  //1用时分析,2效率分析,3产量统计,4报警统计
        }
    },
    data() {
        return {
            mdc_open_typeId: '',
src/views/mdc/configuration.vue
@@ -1,7 +1,7 @@
<!--
 * @Date: 2024-04-09 22:11:21
 * @LastEditors: lzhe lzhe@example.com
 * @LastEditTime: 2024-10-31 17:29:35
 * @LastEditTime: 2024-11-04 11:25:15
 * @FilePath: /belleson-frontend/Users/mache/Documents/demo/cps-web/src/views/mdc/configuration.vue
 * 应用设置
-->
@@ -12,10 +12,10 @@
                <el-tab-pane label="实时看板查询组设置" v-if="$route.query.isShowSearch == 1">
                    <Board />
                </el-tab-pane>
                <el-tab-pane label="状态和绩效时间设置" v-if="true">
                <el-tab-pane label="状态和绩效时间设置" v-if="$route.query.isShowSearch != 1">
                    <Status />
                </el-tab-pane>
                <el-tab-pane label="效率统计设置">
                <el-tab-pane label="效率统计设置" v-if="false">
                    <Efficiency />
                </el-tab-pane>
                <!-- <el-tab-pane label="采集数据标签设置">
src/views/mdc/efficiency-analysis.vue
@@ -1,12 +1,12 @@
<!--
 * @Date: 2024-04-09 22:11:21
 * @LastEditors: lzhe lzhe@example.com
 * @LastEditTime: 2024-11-01 14:56:14
 * @LastEditTime: 2024-11-04 12:23:49
 * @FilePath: /belleson-frontend/Users/mache/Documents/demo/cps-web/src/views/mdc/efficiency-analysis.vue
 * 效率分析
-->
<template>
    <el-main style="height: 100%;">
    <el-main style="height: 100%;" class="efficiencyAnalysis">
        <el-card shadow="never" style="height: 100%;" body-style="height: 100%">
            <el-container style="height: 100%;">
                <el-aside width="300px" style="height: 100%;">
@@ -39,7 +39,13 @@
                    </el-container>
                </el-aside>
                <el-container>
                    <el-main>
                    <el-main style="position: relative;">
                        <span class="setSpan">
                            <el-icon class="setIcon">
                                <Setting />
                            </el-icon>
                            <span class="setBtn" @click="openSet">效率分析设置</span>
                        </span>
                        <el-tabs tab-position="top" v-model="activeName" type="card">
                            <el-tab-pane label="按班次统计" name="shift">
                                <Shift :options="chartOption" colname="效率" ref="shift" v-if="activeName == 'shift'" />
@@ -52,6 +58,9 @@
                </el-container>
            </el-container>
        </el-card>
        <el-dialog title="设置" v-model="dialogVisible" v-if="dialogVisible" width="30%" class="setModelStyle">
            <Efficiency :showModalList="showModalList" />
        </el-dialog>
    </el-main>
</template>
@@ -61,12 +70,20 @@
import Shift from './components/Shift.vue'
import Time from './components/Time.vue'
import exportDialog from '@/layout/components/exportDialog.vue'
import Efficiency from './configComp/Efficiency.vue'
import * as ElementPlusIconsVue from '@element-plus/icons-vue'
let icons = []
for (const [key, component] of Object.entries(ElementPlusIconsVue)) {
    icons.push(key)
}
export default {
    components: {
        ...ElementPlusIconsVue,
        MYTree,
        Shift,
        Time,
        exportDialog
        exportDialog,
        Efficiency
    },
    watch: {
        activeName() {
@@ -78,6 +95,8 @@
    },
    data() {
        return {
            dialogVisible: false,
            showModalList: [2],
            activeName: 'shift',
            productivityType: 'OEE',
            time: [],
@@ -190,6 +209,9 @@
        this.query()
    },
    methods: {
        openSet() {
            this.dialogVisible = true;
        },
        exportExcel(statisticalMethod) {
            this.$HTTP.post(`/api/mdc/efficiency-analysis/export`, {
                startDate: this.time[0],
@@ -219,4 +241,29 @@
}
</script>
<style lang="scss" scoped></style>
<style scoped>
    .setSpan {
        vertical-align: sub;
        font-size: 14px;
        position: absolute;
        top: 26px;
        left: 280px;
        z-index: 11;
    }
    .setIcon {
        color: #409eff;
        margin-left: 15px;
        vertical-align: -2px;
    }
    .setBtn {
        margin-left: 2px;
        color: #409eff;
        margin-left: 8px;
        cursor: pointer;
        font-size: 14px;
    }
    .efficiencyAnalysis >>> .el-dialog__body {
        padding-bottom: 0px;
        padding-top: 0px;
    }
</style>
src/views/mdc/output-statistics.vue
@@ -1,12 +1,12 @@
<!--
 * @Date: 2024-04-09 22:11:21
 * @LastEditors: Sneed
 * @LastEditTime: 2024-06-22 18:35:47
 * @LastEditors: lzhe lzhe@example.com
 * @LastEditTime: 2024-11-04 12:24:06
 * @FilePath: /belleson-frontend/Users/mache/Documents/demo/cps-web/src/views/mdc/output-statistics.vue
 * 效率分析
-->
<template>
    <el-main style="height: 100%;">
    <el-main style="height: 100%;" class="outputStatistics">
        <el-card shadow="never" style="height: 100%;" body-style="height: 100%">
            <el-container style="height: 100%;">
                <el-aside width="300px" style="height: 100%;">
@@ -32,7 +32,13 @@
                    </el-container>
                </el-aside>
                <el-container>
                    <el-main>
                    <el-main style="position: relative;">
                        <span class="setSpan">
                            <el-icon class="setIcon">
                                <Setting />
                            </el-icon>
                            <span class="setBtn" @click="openSet">产量统计设置</span>
                        </span>
                        <el-tabs tab-position="top" v-model="activeName" type="card">
                            <el-tab-pane label="按班次统计" name="shift">
                                <Shift :options="chartOption" :datasetNum="1" colname="产量"
@@ -51,6 +57,9 @@
                </el-container>
            </el-container>
        </el-card>
        <el-dialog title="设置" v-model="dialogVisible" v-if="dialogVisible" width="30%" class="setModelStyle">
            <Efficiency :showModalList="showModalList" />
        </el-dialog>
    </el-main>
</template>
@@ -60,12 +69,20 @@
import Shift from './components/Shift.vue'
import Time from './components/Time.vue'
import exportDialog from '@/layout/components/exportDialog.vue'
import * as ElementPlusIconsVue from '@element-plus/icons-vue'
import Efficiency from './configComp/Efficiency.vue'
let icons = []
for (const [key, component] of Object.entries(ElementPlusIconsVue)) {
    icons.push(key)
}
export default {
    components: {
        ...ElementPlusIconsVue,
        MYTree,
        Shift,
        Time,
        exportDialog
        exportDialog,
        Efficiency
    },
    watch: {
        activeName() {
@@ -77,6 +94,8 @@
    },
    data() {
        return {
            showModalList: [3],
            dialogVisible: false,
            activeName: 'shift',
            time: [],
            treeChecked: [],
@@ -182,6 +201,9 @@
        this.query()
    },
    methods: {
        openSet() {
            this.dialogVisible = true;
        },
        exportExcel(statisticalMethod) {
            this.$HTTP.post(`/api/mdc/output/export`, {
                startDate: this.time[0],
@@ -210,4 +232,29 @@
}
</script>
<style lang="scss" scoped></style>
<style scoped>
    .setSpan {
        vertical-align: sub;
        font-size: 14px;
        position: absolute;
        top: 26px;
        left: 280px;
        z-index: 11;
    }
    .setIcon {
        color: #409eff;
        margin-left: 15px;
        vertical-align: -2px;
    }
    .setBtn {
        margin-left: 2px;
        color: #409eff;
        margin-left: 8px;
        cursor: pointer;
        font-size: 14px;
    }
    .outputStatistics >>> .el-dialog__body {
        padding-bottom: 0px;
        padding-top: 0px;
    }
</style>
src/views/mdc/realtime-status/index.vue
@@ -1,7 +1,7 @@
<!--
 * @Date: 2024-04-09 22:11:21
 * @LastEditors: lzhe lzhe@example.com
 * @LastEditTime: 2024-10-31 17:27:54
 * @LastEditTime: 2024-11-04 11:19:09
 * @FilePath: /cps-web/src/views/mdc/realtime-status/index.vue
 实时看板
-->
@@ -209,7 +209,7 @@
            }
        },
        goSet() {
            this.$router.push('/mdc/configuration?isShowSearch=1');  //分析设置
            this.$router.push('/mdc/configuration?isShowSearch=1');  //分析设置(isShowSearch表示即时信息来)
        },
        gostatus(item) {
            this.$router.push('/mdc/station-live?code=' + item.id);
src/views/mdc/time-analysis.vue
@@ -2,12 +2,12 @@
 * @Author: lzhe lzhe@example.com
 * @Date: 2024-04-26 09:36:18
 * @LastEditors: lzhe lzhe@example.com
 * @LastEditTime: 2024-11-01 14:48:23
 * @LastEditTime: 2024-11-04 12:11:01
 * @FilePath: /smart-web/src/views/mdc/status-record.vue
 * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
-->
<template>
    <el-main style="height: 100%;">
    <el-main style="height: 100%;" class="timeAnalysis">
        <el-card shadow="never" style="height: 100%;" body-style="height: 100%;padding: 0;">
            <el-container style="height: 100%;">
                <el-aside width="300px" style="height: 100%;">
@@ -41,7 +41,13 @@
                    </el-container>
                </el-aside>
                <el-container>
                    <el-main>
                    <el-main style="position: relative;">
                        <span class="setSpan">
                            <el-icon class="setIcon">
                                <Setting />
                            </el-icon>
                            <span class="setBtn" @click="openSet">分析设置</span>
                        </span>
                        <el-tabs tab-position="top" v-model="activeName" type="card" @tab-change="tabChange">
                            <el-tab-pane label="按班次统计" name="shift">
                                <!-- 日期 -->
@@ -121,12 +127,16 @@
                </el-container>
            </el-container>
        </el-card>
        <el-dialog title="设置" v-model="dialogVisible" v-if="dialogVisible" width="30%" class="setModelStyle">
            <Efficiency :showModalList="showModalList" />
        </el-dialog>
    </el-main>
</template>
<script>
import exportDialog from '@/layout/components/exportDialog.vue'
import * as ElementPlusIconsVue from '@element-plus/icons-vue'
import Efficiency from './configComp/Efficiency.vue'
let icons = []
for (const [key, component] of Object.entries(ElementPlusIconsVue)) {
    icons.push(key)
@@ -136,10 +146,12 @@
import MYTree from './MYTree.vue';
export default {
    components: {
        ...ElementPlusIconsVue,MYTree,exportDialog
        ...ElementPlusIconsVue,MYTree,exportDialog,Efficiency
    },
    data() {
        return {
            showModalList: [1],
            dialogVisible: false,
            treeListNodeList: [],
            ids: [],
            activeNames: [],
@@ -358,6 +370,9 @@
        this.getGlobal(); //获取颜色
    },
    methods: {
        openSet() {
            this.dialogVisible = true;
        },
        exportExcel(statisticalMethod) {
            var ids = [];
            this.treeChecked.forEach(item=> {
@@ -848,4 +863,28 @@
        margin: 8px;
        padding-left: 16px;
    }
    .setSpan {
        vertical-align: sub;
        font-size: 14px;
        position: absolute;
        top: 26px;
        left: 280px;
        z-index: 11;
    }
    .setIcon {
        color: #409eff;
        margin-left: 15px;
        vertical-align: -2px;
    }
    .setBtn {
        margin-left: 2px;
        color: #409eff;
        margin-left: 8px;
        cursor: pointer;
        font-size: 14px;
    }
    .timeAnalysis >>> .el-dialog__body {
        padding-bottom: 0px;
        padding-top: 0px;
    }
</style>