gaoshp
2024-03-26 b43d75fee8cd67df67025029431c3295a0619f12
暂存
已修改5个文件
240 ■■■■ 文件已修改
src/App.vue 87 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/model/basicdata.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/model/system.js 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main.js 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/basicdata/machine/workstation.vue 138 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/App.vue
@@ -1,3 +1,9 @@
<!--
 * @Date: 2024-03-23 09:49:06
 * @LastEditors: gaoshp
 * @LastEditTime: 2024-03-26 21:41:35
 * @FilePath: /cps-web/src/App.vue
-->
<template>
    <el-config-provider :locale="locale" :size="config.size" :zIndex="config.zIndex" :button="config.button">
        <router-view></router-view>
@@ -5,42 +11,63 @@
</template>
<script>
    import colorTool from '@/utils/color'
import colorTool from '@/utils/color'
    export default {
        name: 'App',
        data() {
            return {
                config: {
                    size: "default",
                    zIndex: 2000,
                    button: {
                        autoInsertSpace: false
                    }
                }
            }
        },
        computed: {
            locale(){
                return this.$i18n.messages[this.$i18n.locale].el
            },
        },
        created() {
            //设置主题颜色
            const app_color = this.$CONFIG.COLOR || this.$TOOL.data.get('APP_COLOR')
            if(app_color){
                document.documentElement.style.setProperty('--el-color-primary', app_color);
                for (let i = 1; i <= 9; i++) {
                    document.documentElement.style.setProperty(`--el-color-primary-light-${i}`, colorTool.lighten(app_color,i/10));
                }
                for (let i = 1; i <= 9; i++) {
                    document.documentElement.style.setProperty(`--el-color-primary-dark-${i}`, colorTool.darken(app_color,i/10));
export default {
    name: 'App',
    data() {
        return {
            config: {
                size: "default",
                zIndex: 2000,
                button: {
                    autoInsertSpace: false
                }
            }
        }
    },
    computed: {
        locale() {
            return this.$i18n.messages[this.$i18n.locale].el
        },
    },
    created() {
        //设置主题颜色
        const app_color = this.$CONFIG.COLOR || this.$TOOL.data.get('APP_COLOR')
        if (app_color) {
            document.documentElement.style.setProperty('--el-color-primary', app_color);
            for (let i = 1; i <= 9; i++) {
                document.documentElement.style.setProperty(`--el-color-primary-light-${i}`, colorTool.lighten(app_color, i / 10));
            }
            for (let i = 1; i <= 9; i++) {
                document.documentElement.style.setProperty(`--el-color-primary-dark-${i}`, colorTool.darken(app_color, i / 10));
            }
        }
    },
    mounted() {
        const debounce = (fn, delay) => {
            let timer
            return (...args) => {
                if (timer) {
                    clearTimeout(timer)
                }
                timer = setTimeout(() => {
                    fn(...args)
                }, delay)
            }
        }
        const _ResizeObserver = window.ResizeObserver;
        window.ResizeObserver = class ResizeObserver extends _ResizeObserver {
            constructor(callback) {
                callback = debounce(callback, 200);
                super(callback);
            }
        }
    }
}
</script>
<style lang="scss">
    @import '@/style/style.scss';
@import '@/style/style.scss';
</style>
src/api/model/basicdata.js
@@ -1,7 +1,7 @@
/*
 * @Date: 2024-03-24 11:37:47
 * @LastEditors: gaoshp
 * @LastEditTime: 2024-03-24 14:30:13
 * @LastEditTime: 2024-03-26 19:40:37
 * @FilePath: /cps-web/src/api/model/basicdata.js
 */
import config from "@/config"
src/api/model/system.js
@@ -39,6 +39,13 @@
            get: async function(params){
                return await http.get(this.url, params);
            }
        },
        getDic: {
            url: `${config.API_URL}/blade-system/dict/dictionary`,
            name: "获取字典数据",
            get: async function(params){
                return await http.get(this.url, params);
            }
        }
    },
    role: {
src/main.js
@@ -1,3 +1,9 @@
/*
 * @Date: 2024-03-23 09:49:06
 * @LastEditors: gaoshp
 * @LastEditTime: 2024-03-26 21:40:32
 * @FilePath: /cps-web/src/main.js
 */
import { createApp } from 'vue'
import ElementPlus from 'element-plus'
import 'element-plus/dist/index.css'
src/views/basicdata/machine/workstation.vue
@@ -65,15 +65,79 @@
                                            </el-button-group>
                                        </template>
                                    </el-table-column>
                                </scTable>
                            </el-main>
                        </el-container>
                    </el-container>
                </el-tab-pane>
                <!-- 工位组 -->
                <el-tab-pane label="工位组" name="2">
                    <el-container>
                        <el-aside width="200px" v-loading="showGrouploading">
                            <el-container>
                                <el-main class="nopadding">
                                    <el-tree ref="group" class="menu" node-key="id" :data="group"
                                        :current-node-key="treeCheckKey"
                                        :highlight-current="true"
                                        :expand-on-click-node="false"
                                        :check-on-click-node="true"
                                        :default-expanded-keys="[1]"
                                        :filter-node-method="groupFilterNode"
                                        @node-click="groupClick"></el-tree>
                                </el-main>
                            </el-container>
                        </el-aside>
                        <el-container>
                            <el-header>
                                <div class="left-panel">
                                    <el-button type="primary" plain>新增下级</el-button>
                                    <el-button v-show="!['1','101'].includes(treeCheckedNode.id)" type="danger" plain>删除</el-button>
                                </div>
                            </el-header>
                            <el-main class="">
                                <ul class="show-info" v-show="['1','101'].includes(treeCheckedNode.id)">
                                    <li>名称: {{treeCheckedNode.name}}</li>
                                    <li>排序: {{treeCheckedNode.sort}}</li>
                                    <li>备注: {{treeCheckedNode.remark}}</li>
                                </ul>
                                <el-form v-show="beltline_type.map(item => item.dictKey).includes(treeCheckedNode.groupTag)" :model="form" :rules="rules" ref="dialogForm" label-width="200px"
                                    label-position="left">
                                    <el-form-item label="产线标签" prop="meta.title">
                                        <el-input v-model="form.meta.title" clearable placeholder="工位组名称"></el-input>
                                    </el-form-item>
                                    <el-form-item label="产线名称" prop="meta.title">
                                        <el-input v-model="form.meta.title" clearable placeholder="工位组名称"></el-input>
                                    </el-form-item>
                                    <el-form-item label="产线排序" prop="meta.title">
                                        <el-input v-model="form.meta.title" clearable placeholder="工位组名称"></el-input>
                                    </el-form-item>
                                    <el-form-item label="备注" prop="meta.title">
                                        <el-input v-model="form.meta.title" clearable placeholder="工位组名称"></el-input>
                                    </el-form-item>
                                </el-form>
                                <ul v-show="group_tag.map(item => item.dictKey).includes(treeCheckedNode.groupTag)">
                                    <li>产线名称:千文科技</li>
                                    <li>产线标签:柔性产线</li>
                                    <li>备注:</li>
                                </ul>
                                <el-form v-show="group_tag.map(item => item.dictKey).includes(treeCheckedNode.groupTag)" :model="form" :rules="rules" ref="dialogForm" label-width="200px"
                                    label-position="left">
                                    <el-form-item label="工位组名称" prop="meta.title">
                                        <el-input v-model="form.meta.title" clearable placeholder="工位组名称"></el-input>
                                    </el-form-item>
                                    <el-form-item label="工位组排序" prop="meta.title">
                                        <el-input v-model="form.meta.title" clearable placeholder="工位组名称"></el-input>
                                    </el-form-item>
                                    <el-form-item label="工位组标签" prop="meta.title">
                                        <el-input v-model="form.meta.title" clearable placeholder="工位组名称"></el-input>
                                    </el-form-item>
                                    <el-form-item label="备注" prop="meta.title">
                                        <el-input v-model="form.meta.title" clearable placeholder="工位组名称"></el-input>
                                    </el-form-item>
                                </el-form>
                            </el-main>
                        </el-container>
                    </el-container>
                </el-tab-pane>
            </el-tabs>
@@ -86,20 +150,56 @@
    name: 'system',
    data() {
        return {
            activeName: '1',
            showGrouploading: false,
            options: [],
            activeName: '2',
            group: [],
            groupFilterText: ''
            groupFilterText: '',
            // --------
            form: {
                meta: {
                }
            },
            rules: {},
            treeCheckedNode: {},
            treeCheckKey: [],
            beltline_type: [],
            group_tag: []
        }
    },
    watch: {
        activeName () {
            this.queryList()
        }
    },
    created() {
        this.$API.basicdata.getWorkstationGroup.get().then(res => {
            if (res.code == 200) {
                let data = this.formatData(res.data)
                this.group = data
            }
        })
        this.init()
        this.queryList()
    },
    methods: {
        init () {
            this.$API.system.dic.getDic.get({code: 'beltline_type'}).then(res => {
                this.beltline_type = res.data
            })
            this.$API.system.dic.getDic.get({code: 'group_tag'}).then(res => {
                this.group_tag = res.data
            })
        },
        queryList () {
            this.showGrouploading = true
            this.$API.basicdata.getWorkstationGroup.get().then(res => {
            if (res.code == 200) {
                let parent = res.data.filter(item => item.parentId == 0)[0]
                this.treeCheckedNode = parent
                this.treeCheckKey = parent.id
                let data = this.formatData(res.data)
                this.group = data
                this.showGrouploading = false
            }
        })
        },
        formatData(data, current) {
            let newData = []
            if (!current) {
@@ -110,7 +210,9 @@
            } else {
                let res = data.filter(v => v.parentId === current.id)
                res = res.map(item => {
                    item.children = this.formatData(data, item)
                    item.children = this.formatData(data, item).sort((a,b) => {
                        return a.sort - b.sort
                    })
                    return item
                })
                return res
@@ -120,8 +222,9 @@
        groupFilterNode() {
        },
        groupClick() {
        groupClick(node) {
            console.log(node)
            this.treeCheckedNode = node
        },
        table_add() {
            var newRow = {
@@ -146,4 +249,9 @@
}
</script>
<style></style>
<style scoped>
.show-info {
    list-style: none;
    font-size: 14px;
}
</style>