gaoshp
2024-04-09 a1bf2d1b78d60e320c5b284d8e9f4afa5f3c28fb
update
已添加1个文件
已修改3个文件
305 ■■■■■ 文件已修改
.gitignore 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/model/calender.js 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/console/base/Dialog.vue 262 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/console/base/Shiftsystem.vue 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.gitignore
@@ -1,7 +1,7 @@
.DS_Store
node_modules
/dist
*.zip
dist.zip
# local env files
.env.local
.env.*.local
src/api/model/calender.js
@@ -1,7 +1,7 @@
/*
 * @Date: 2024-04-04 23:26:03
 * @LastEditors: Sneed
 * @LastEditTime: 2024-04-09 20:39:23
 * @LastEditTime: 2024-04-09 21:20:10
 * @FilePath: /belleson-frontend/Users/mache/Documents/demo/cps-web/src/api/model/calender.js
 */
import config from "@/config"
@@ -29,4 +29,11 @@
            return await http.get(`${this.url}${id}`, {},{});
        },
    },
    getShiftsystemDetail: {
        url: `${config.API_URL}/blade-system/param/detail?paramKey=system.shift.max`,
        name: "获取班制信息限制",
        get: async function(){
            return await http.get(this.url, {},{});
        },
    },
}
src/views/console/base/Dialog.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,262 @@
<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="24" style="padding:12px 0;">
                    ç­åˆ¶è¯¦æƒ…
                </el-col>
                <el-col :span="12">
                    <el-form-item label="班制编号" prop="userName">
                        <el-input style="width: 240px" v-model="form.userName" placeholder="工位编号" clearable></el-input>
                    </el-form-item>
                </el-col>
                <el-col :span="12">
                    <el-form-item label="班制名称" prop="userName">
                        <el-input style="width: 240px" v-model="form.userName" placeholder="工位名称" clearable></el-input>
                    </el-form-item>
                </el-col>
                <el-col :span="12">
                    <el-form-item label="班制颜色" prop="userName">
                        <el-input style="width: 240px" v-model="form.userName" placeholder="工位名称" clearable></el-input>
                    </el-form-item>
                </el-col>
                <el-col :span="12">
                    <el-form-item label="班制时间" prop="userName">
                        <el-input style="width: 240px" v-model="form.userName" placeholder="工位名称" clearable></el-input>
                    </el-form-item>
                </el-col>
            </el-row>
            <el-row>
                <el-col :span="24">
                    ç­æ¬¡1
                </el-col>
                <el-col :span="24">
                    <el-form-item label="班次名称" prop="userName">
                        <el-input style="width: 240px" v-model="form.userName" placeholder="工位名称" clearable></el-input>
                    </el-form-item>
                </el-col>
                <el-col :span="9">
                    <el-form-item label="班次时间" prop="userName">
                        <el-time-picker style="width: 100%;" v-model="form.userName" format="HH:mm"
                            placeholder="Arbitrary time" />
                    </el-form-item>
                </el-col>
                <el-col :span="9">
                    <el-form-item  label="" prop="userName">
                        <el-time-picker style="width: 100%;" v-model="form.userName" format="HH:mm"
                            placeholder="Arbitrary time" />
                    </el-form-item>
                </el-col>
                <el-col :span="9">
                    <el-form-item label="休息时段1" prop="userName">
                        <el-time-picker style="width: 100%;" v-model="form.userName" format="HH:mm"
                            placeholder="Arbitrary time" />
                    </el-form-item>
                </el-col>
                <el-col :span="9">
                    <el-form-item label="" prop="userName">
                        <el-time-picker style="width: 100%;" v-model="form.userName" format="HH:mm"
                            placeholder="Arbitrary time" />
                    </el-form-item>
                </el-col>
                <el-col :span="9">
                    <el-form-item label="休息时段1" prop="userName">
                        <el-time-picker style="width: 100%;" v-model="form.userName" format="HH:mm"
                            placeholder="Arbitrary time" />
                    </el-form-item>
                </el-col>
                <el-col :span="9">
                    <el-form-item label="" prop="userName">
                        <el-time-picker style="width: 100%;" v-model="form.userName" format="HH:mm"
                            placeholder="Arbitrary time" />
                    </el-form-item>
                </el-col>
                <el-col :span="9">
                    <el-form-item label="休息时段1" prop="userName">
                        <el-time-picker style="width: 100%;" v-model="form.userName" format="HH:mm"
                            placeholder="Arbitrary time" />
                    </el-form-item>
                </el-col>
                <el-col :span="9">
                    <el-form-item label="" prop="userName">
                        <el-time-picker style="width: 100%;" v-model="form.userName" format="HH:mm"
                            placeholder="Arbitrary time" />
                    </el-form-item>
                </el-col>
                <el-col :span="9">
                    <el-form-item label="休息时段1" prop="userName">
                        <el-time-picker style="width: 100%;" v-model="form.userName" format="HH:mm"
                            placeholder="Arbitrary time" />
                    </el-form-item>
                </el-col>
                <el-col :span="9">
                    <el-form-item label="" prop="userName">
                        <el-time-picker style="width: 100%;" v-model="form.userName" format="HH:mm"
                            placeholder="Arbitrary time" />
                    </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
        }
    },
    computed: {
        options() {
            let group = deepmerge([], this.option.group)
            group[0].disabled = true
            return {
                ...this.option,
                group,
                calendarList: this.calendarList,
                linkWays: this.linkWays,
                work_type: this.work_type,
                machining_type: this.machining_type
            }
        }
    },
    data() {
        return {
            mode: "add",
            titleMap: {
                add: '新建班制',
                edit: '编辑班制',
                // show: '查看'
            },
            params: {},
            visible: false,
            isSaveing: false,
            //表单数据
            form: {
                id: "",
                userName: "",
                avatar: "",
                name: "",
                dept: "",
                group: []
            },
            //验证规则
            rules: {
                avatar: [
                    { required: true, message: '请上传头像' }
                ],
                userName: [
                    { required: true, message: '请输入登录账号' }
                ],
                name: [
                    { required: true, message: '请输入真实姓名' }
                ],
                password: [
                    { required: true, message: '请输入登录密码' },
                    {
                        validator: (rule, value, callback) => {
                            if (this.form.password2 !== '') {
                                this.$refs.dialogForm.validateField('password2');
                            }
                            callback();
                        }
                    }
                ],
                password2: [
                    { required: true, message: '请再次输入密码' },
                    {
                        validator: (rule, value, callback) => {
                            if (value !== this.form.password) {
                                callback(new Error('两次输入密码不一致!'));
                            } else {
                                callback();
                            }
                        }
                    }
                ],
                dept: [
                    { required: true, message: '请选择所属部门' }
                ],
                group: [
                    { required: true, message: '请选择所属角色', trigger: 'change' }
                ]
            },
            //所需数据选项
            calendarList: [],
            work_type: [],
            machining_type: [],
            linkWays: [
                {
                    label: '关联机器',
                    value: '0'
                }, {
                    label: '创建同名机器',
                    value: '1'
                }
            ]
        }
    },
    created() {
        this.$API.workstation.calendarList.get().then(res => {
            this.calendarList = res.data
        })
        this.$API.system.dic.getDic.get({ code: 'work_type' }).then(res => {
            this.work_type = res.data
        })
        this.$API.system.dic.getDic.get({ code: 'machining_type' }).then(res => {
            this.machining_type = res.data
        })
    },
    methods: {
        //显示
        open(mode = 'add', params) {
            this.mode = mode;
            this.visible = true;
            this.params = params
            return this
        },
        //表单提交方法
        submit() {
            this.$refs.dialogForm.validate(async (valid) => {
                if (valid) {
                    this.isSaveing = true;
                    var res = await this.$API.demo.post.post(this.form);
                    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 {
                    return false;
                }
            })
        },
        //表单注入数据
        setData(data) {
            this.form.id = data.id
            this.form.userName = data.userName
            this.form.avatar = data.avatar
            this.form.name = data.name
            this.form.group = data.group
            this.form.dept = data.dept
            //可以和上面一样单个注入,也可以像下面一样直接合并进去
            //Object.assign(this.form, data)
        }
    }
}
</script>
<style></style>
src/views/console/base/Shiftsystem.vue
@@ -1,28 +1,50 @@
<!--
 * @Date: 2024-04-09 20:19:46
 * @LastEditors: Sneed
 * @LastEditTime: 2024-04-09 20:38:18
 * @LastEditTime: 2024-04-09 21:57:50
 * @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="班制编号" />
                <el-table-column prop="name" label="班制名称" />
            </el-table>
        </el-aside>
        <el-container>
            456
            <ul>
                <li>
                    <span>班制编号</span>
                    {{ info.code }}
                </li>
                <li>
                    <span>班制颜色</span>
                    {{ info.code }}
                </li>
                <li>
                    <span>开始-结束时间</span>
                    {{ info.code }}
                </li>
            </ul>
        </el-container>
        <Dialog ref="dialog" :option="{types,status,group}"></Dialog>
    </el-container>
</template>
<script>
import Dialog from './Dialog.vue'
export default {
    components: {
        Dialog
    },
    data () {
        return {
            tableData: []
            tableData: [],
            info: {
                code: ''
            }
        }
    },
    created () {
@@ -39,7 +61,11 @@
            console.log(row)
            this.$API.calender.getShiftsystemInfo.get({id: row.id}).then(res => {
                console.log(res.data)
                this.info = res.data
            })
        },
        add () {
            this.$refs.dialog.open()
        }
    },
}