gaoshp
2024-04-28 f39fb3a2d0c2d66f1a8af4f6a253afc34c254e7d
update
已修改4个文件
144 ■■■■ 文件已修改
src/api/model/calender.js 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/config/table.js 补丁 | 查看 | 原始文档 | blame | 历史
src/views/console/base/Shiftsystem.vue 119 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/console/base/shift-calendar.vue 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/model/calender.js
@@ -1,7 +1,7 @@
/*
 * @Date: 2024-04-04 23:26:03
 * @LastEditors: Sneed
 * @LastEditTime: 2024-04-09 21:20:10
 * @LastEditTime: 2024-04-28 22:52:35
 * @FilePath: /belleson-frontend/Users/mache/Documents/demo/cps-web/src/api/model/calender.js
 */
import config from "@/config"
@@ -18,8 +18,8 @@
    getShiftsystemList: {
        url: `${config.API_URL}/blade-cps/shift/page`,
        name: "获取班制列表",
        post: async function({data,params}){
            return await http.post(this.url, {},{data, params});
        get: async function (data) {
            return await http.post(this.url, data, { params: { current: data.current, size: data.size } });
        },
    },
    getShiftsystemInfo: {
src/config/table.js
src/views/console/base/Shiftsystem.vue
@@ -1,33 +1,59 @@
<!--
 * @Date: 2024-04-09 20:19:46
 * @LastEditors: Sneed
 * @LastEditTime: 2024-04-09 21:57:50
 * @LastEditTime: 2024-04-28 23:55:44
 * @FilePath: /belleson-frontend/Users/mache/Documents/demo/cps-web/src/views/console/base/Shiftsystem.vue
-->
<template>
    <el-container>
        <el-aside width="320px">
            <el-button type="primary" @click="add">新建班制</el-button>
            <el-table :data="tableData" stripe style="width: 100%" @row-click="rowClick">
                <el-table-column prop="code" label="班制编号" />
            <scTable style="width: 100%;" ref="table" row-key="id" border :params="params" :apiObj="apiObj" stripe
                :hideDo="true" paginationLayout="total, prev, pager, next" @dataChange="dataChange"
                @row-click="rowClick" highlight-current-row>
                <el-table-column prop="code" label="班制编号" width="100px" />
                <el-table-column prop="name" label="班制名称" />
            </el-table>
            </scTable>
        </el-aside>
        <el-container>
            <ul>
                <li>
                    <span>班制编号</span>
            <el-header>
                <el-button style="margin-left: auto;" size="small" @click="table_add" type="primary"
                    icon="el-icon-plus"></el-button>
                <el-button @click="table_edit" type="primary" size="small">编辑</el-button>
                <el-button type="danger" plain icon="el-icon-delete" size="small" @click="del"></el-button>
            </el-header>
            <el-main>
                <el-row>
                    <el-col :span="2">
                        班制编号
                    </el-col>
                    <el-col :span="6">
                    {{ info.code }}
                </li>
                <li>
                    <span>班制颜色</span>
                    {{ info.code }}
                </li>
                <li>
                    <span>开始-结束时间</span>
                    {{ info.code }}
                </li>
            </ul>
                    </el-col>
                    <el-col :span="2">
                        班制颜色
                    </el-col>
                    <el-col :span="6">
                        <el-color-picker size="small" v-model="info.colour" />
                    </el-col>
                    <el-col :span="2">
                        开始-结束时间
                    </el-col>
                    <el-col :span="6">
                        {{ dateFormat(info.startTime) }} - {{ dateFormat(info.endTime | dateFormat) }}
                    </el-col>
                </el-row>
                <el-row style="margin-top: 20px;">
                    <el-timeline style="max-width: 600px">
                        <el-timeline-item v-for="(activity, index) in activities" :key="index"
                            :timestamp="activity.time">
                            {{ activity.title }}
                        </el-timeline-item>
                    </el-timeline>
                </el-row>
                <el-row>
                </el-row>
            </el-main>
        </el-container>
        <Dialog ref="dialog" :option="{types,status,group}"></Dialog>
    </el-container>
@@ -35,37 +61,70 @@
<script>
import Dialog from './Dialog.vue'
import moment from 'moment';
export default {
    components: {
        Dialog
    },
    computed: {
        dateFormat: () => {
            return value => {
                if (isNaN(value)) return ''
                let pre = '当日'
                let add = value / (24 * 60)
                if (add < 0) {
                    pre = '上日'
                } else if (add >= 1) {
                    pre = '次日'
                }
                let base = moment().format('YYYY-MM-DD') + ' 00:00'
                let current = moment(base).add(value, 'm')
                return pre + moment(current).format('HH:mm');
            }
        },
        activities() {
            if (!this.info?.shiftDetailVOList?.length) return []
            return this.info.shiftDetailVOList.map(item => {
                return {
                    title: `班次名称:${item.indexName}`,
                    time: `${this.dateFormat(item.shiftStartTime)}-${this.dateFormat(item.shiftEndTime)}`
                }
            })
        }
    },
    data () {
        return {
            tableData: [],
            apiObj: this.$API.calender.getShiftsystemList,
            params: {
                statusList: [1],
                code: '',
                name: ''
            },
            info: {
                code: ''
            }
            },
        }
    },
    created () {
        this.$API.calender.getShiftsystemList.post({params: {current:1,size: 15},data: {
            code: "",name: "",statusList: [1]
        }}).then(res => {
            this.tableData = res?.data?.records || []
            let current = this.tableData?.[0] || ''
            current.id && this.rowClick(current)
        })
    },
    methods: {
        dataChange(res, tableData) {
            let current = tableData?.[0] || {}
            current.id && this.rowClick(current)
        },
        rowClick(row) {
            console.log(row)
            this.$API.calender.getShiftsystemInfo.get({id: row.id}).then(res => {
                console.log(res.data)
                this.info = res.data
            })
        },
        add () {
        table_add() {
            this.$refs.dialog.open()
        },
        table_edit() {
            this.$refs.dialog.open()
        },
        del() {
        }
    },
}
src/views/console/base/shift-calendar.vue
@@ -1,11 +1,12 @@
<!--
 * @Date: 2024-04-04 21:51:24
 * @LastEditors: Sneed
 * @LastEditTime: 2024-04-09 20:19:15
 * @LastEditTime: 2024-04-28 23:45:46
 * @FilePath: /belleson-frontend/Users/mache/Documents/demo/cps-web/src/views/console/base/shift-calendar.vue
-->
<template>
    <el-main style="height: 100%;background-color: #fff;">
    <el-main>
        <el-card shadow="never">
            <el-tabs tab-position="top" class="custom-tabs" v-model="activeName">
                <el-tab-pane label="生产日历" name="1">
                    <CalenderTab></CalenderTab>
@@ -14,6 +15,7 @@
                    <ShiftsystemVue></ShiftsystemVue>
                </el-tab-pane>
            </el-tabs>
        </el-card>
    </el-main>
</template>
<script>
@@ -26,22 +28,23 @@
        },
        data () {
            return {
                activeName: '1'
            activeName: '2'
            }
        }
    }
</script>
<style lang="scss" scoped>
.el-tabs--card {
  height: calc(100vh - 110px - 56px);
    // height: calc(100vh - 110px - 56px);
  /* overflow-y: auto; */
}
.el-tab-pane {
  height: calc(100vh - 110px - 56px);
  overflow-y: auto;
    // height: calc(100vh - 110px - 56px);
    // overflow-y: auto;
}
    // .custom-tabs {
    //     height: 500px;
    //     overflow: scroll;
    // }
</style>
// }</style>