gaoshp
2024-04-07 b86771c87f19521b18f8bbf5751e98239e8f1450
新增休息日
已添加3个文件
已修改2个文件
270 ■■■■■ 文件已修改
src/api/model/time.js 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/console/base/CalenderTab.vue 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/master/time/day-off/Dialog.vue 130 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/master/time/day-off/index.vue 99 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
副本智能制造系统功能定义.xls 补丁 | 查看 | 原始文档 | blame | 历史
src/api/model/time.js
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,32 @@
import config from "@/config"
import http from "@/utils/request"
export default {
    getList: {
        url: `${config.API_URL}/blade-cps/shift-off-day/page`,
        name: "获取休息日列表",
        get: async function(params){
            return await http.post(this.url, params);
        },
        getUrl () {
            return this.url
        }
    },
    insert: {
        url: `${config.API_URL}/blade-cps/shift-off-day/insert`,
        name: "添加休息日",
        post: async function(params){
            return await http.post(this.url, params);
        },
    },
    update: {
        url: `${config.API_URL}/blade-cps/shift-off-day/update`,
        name: "更新休息日",
        post: async function(params){
            return await http.put(this.url, params);
        },
    },
}
src/views/console/base/CalenderTab.vue
@@ -1,7 +1,7 @@
<!--
 * @Date: 2024-04-04 22:45:43
 * @LastEditors: Sneed
 * @LastEditTime: 2024-04-06 15:05:06
 * @LastEditTime: 2024-04-07 20:31:00
 * @FilePath: /belleson-frontend/Users/mache/Documents/demo/cps-web/src/views/console/base/CalenderTab.vue
-->
<template>
@@ -23,7 +23,7 @@
                    <el-button type="primary">删除</el-button>
                </el-header>
                <el-main>
                    <Calendar disable-page-swipe :nav-visibility="''" :attributes='attributes'/>
                    <Calendar :rows="12" disable-page-swipe :nav-visibility="''" :attributes='attributes'/>
                </el-main>
            </el-container>
        </el-container>
@@ -75,9 +75,12 @@
}
</script>
<style lang="scss" scoped>
<style lang="scss">
.card {
    cursor: pointer;
    margin: 12px 12px 12px 0;
}
.vc-arrow {
    display: none!important;;
}
</style>
src/views/master/time/day-off/Dialog.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,130 @@
<template>
    <el-dialog :title="titleMap[mode]" v-model="visible" :width="800" destroy-on-close @closed="$emit('closed')">
        <el-form :model="form" :rules="rules" :disabled="mode == 'show'" ref="dialogForm" label-width="120px"
            label-position="center">
            <el-row>
                <el-col :span="13">
                    <el-form-item label="年份" prop="year">
                        <el-select style="width: 240px;" v-model="form.year">
                            <el-option v-for="(item, index) in option.years" :key="index" :label="item" :value="item"></el-option>
                        </el-select>
                    </el-form-item>
                </el-col>
                <el-col :span="13">
                    <el-form-item label="日期" prop="date">
                        <el-date-picker value-format="YYYY-MM-DD" style="width: 240px;" v-model="form.date" type="daterange"
                range-separator="至" start-placeholder="开始" end-placeholder="结束" />
                    </el-form-item>
                </el-col>
                <el-col :span="13">
                    <el-form-item label="备注"  prop="remark">
                        <el-input style="width: 240px;" v-model="form.remark" type="textarea"></el-input>
                    </el-form-item>
                </el-col>
            </el-row>
        </el-form>
        <template #footer>
            <el-button @click="visible = false">取 æ¶ˆ</el-button>
            <el-button v-if="mode != 'show'" type="primary" :loading="isSaveing" @click="submit()">保 å­˜</el-button>
        </template>
    </el-dialog>
</template>
<script>
import deepmerge from 'deepmerge'
import http from "@/utils/request"
export default {
    emits: ['success', 'closed'],
    props: {
        option: {
            type: Object
        }
    },
    data() {
        return {
            mode: "add",
            titleMap: {
                add: '新建休息日',
                edit: '编辑休息日',
                // show: '查看'
            },
            visible: false,
            isSaveing: false,
            //表单数据
            form: {
                id: '',
                remark: "",
                year: '',
                date: ''
            },
            //验证规则
            rules: {
                year: [
                    { required: true, message: '请选择' }
                ],
                date: [
                    { required: true, message: '请选择' }
                ],
            },
        }
    },
    created() {
    },
    methods: {
        //显示
        open(mode = 'add', params) {
            this.mode = mode;
            this.visible = true;
            this.isSaveing = false;
            if (params)  {
                let {remark,year,startOffDay,endOffDay,id} = params
                this.form.remark = remark
                this.form.year = year
                this.form.date = [startOffDay,endOffDay]
                this.form.id = id
            } else {
                this.$refs.dialogForm.resetFields()
            }
            return this
        },
        //表单提交方法
        submit() {
            this.$refs.dialogForm.validate(async (valid) => {
                if (valid) {
                    this.isSaveing = true;
                    let {remark,year,id} = this.form
                    let [startOffDay = '',endOffDay =  ''] = this.form.date
                    let data = {
                        endOffDay,
                        remark,
                        startOffDay,
                        year,
                        id
                    }
                    console.log('------',this.form.id)
                    let key = this.form.id ? 'update' :  'insert'
                    var res = await this.$API.time[key].post(data);
                    this.isSaveing = false;
                    if (res.code == 200) {
                        this.$emit('success', this.form, this.mode)
                        this.visible = false;
                        this.$message.success("操作成功")
                    } else {
                        this.$alert(res.message, "提示", { type: 'error' })
                    }
                } else {
                    this.isSaveing = false;
                    return false;
                }
            })
        },
        //表单注入数据
        setData(data) {
        }
    }
}
</script>
<style></style>
src/views/master/time/day-off/index.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,99 @@
<!--
 * @Date: 2024-04-07 20:43:26
 * @LastEditors: Sneed
 * @LastEditTime: 2024-04-07 22:50:04
 * @FilePath: /belleson-frontend/Users/mache/Documents/demo/cps-web/src/views/master/time/day-off/index.vue
-->
<template>
    <el-container>
        <el-header>
            <el-button :disabled="selections.length ==  0">
                åˆ é™¤
            </el-button>
            <el-button @click="table_add">
                åˆ›å»º
            </el-button>
            <el-select style="width: 200px;margin-left: auto;" v-model="year">
                <el-option v-for="(item, index) in years" :key="index" :label="item" :value="item"></el-option>
            </el-select>
            <el-date-picker style="width: 200px;flex: 0  0 auto;margin-left: 8px;" v-model="date" type="daterange"
                range-separator="至" start-placeholder="开始" end-placeholder="结束" />
        </el-header>
        <el-main>
            <scTable highlight-current-row @dataChange="dataChange" @row-click="rowClick" ref="table" :params="params"
                :apiObj="apiObj" @selection-change="selectionChange" stripe>
                <el-table-column type="selection" width="50"></el-table-column>
                <el-table-column label="所属年份" prop="year"></el-table-column>
                <el-table-column label="日期" prop="startOffDay">
                    <template #default="scope">
                        <span>{{ scope.row.startOffDay }}-{{ scope.row.endOffDay }}</span>
                    </template>
                </el-table-column>
                <el-table-column label="休息日说明" prop="remark"></el-table-column>
                <el-table-column label="操作" fixed="right" align="right" width="160">
                    <template #default="scope">
                        <el-button-group>
                            <el-button text type="primary" size="small"
                                @click="table_edit(scope.row, scope.$index)">编辑</el-button>
                            <el-popconfirm title="确定删除吗?" @confirm="table_del(scope.row, scope.$index, '0')">
                                <template #reference>
                                    <el-button text type="primary" size="small">删除</el-button>
                                </template>
                            </el-popconfirm>
                        </el-button-group>
                    </template>
                </el-table-column>
            </scTable>
        </el-main>
        <Dialog @success="success" ref="dialog" :option="{
            years
        }"></Dialog>
    </el-container>
</template>
<script>
import Dialog from  './Dialog.vue'
export default {
    components: {
        Dialog
    },
    data() {
        return {
            year: '',
            date: '',
            apiObj:  '',
            selections: [],
            years: []
        }
    },
    created() {
        let startYear = 2020
        let years = []
        for (var i = 0; i < 100; i++) {
            years.push(startYear + i)
        }
        this.years = years;
        this.apiObj = this.$API.time.getList
    },
    methods: {
        table_add () {
            this.$refs.dialog.open()
        },
        table_edit (row) {
            this.$refs.dialog.open('edit', row)
        },
        table_del () {
        },
        dataChange () {},
        rowClick () {},
        selectionChange (selections) {
            this.selections = selections
        },
        success () {
            this.$refs.table.reload()
        }
    }
}
</script>
<style lang="scss" scoped></style>
¸±±¾ÖÇÄÜÖÆÔìϵͳ¹¦Äܶ¨Òå.xls
Binary files differ