From a1bf2d1b78d60e320c5b284d8e9f4afa5f3c28fb Mon Sep 17 00:00:00 2001
From: gaoshp <291585735@qq.com>
Date: 星期二, 09 四月 2024 22:02:54 +0800
Subject: [PATCH] update

---
 src/views/console/base/Shiftsystem.vue |   32 ++++
 .gitignore                             |    2 
 src/api/model/calender.js              |    9 +
 src/views/console/base/Dialog.vue      |  262 +++++++++++++++++++++++++++++++++++++++++++
 4 files changed, 300 insertions(+), 5 deletions(-)

diff --git a/.gitignore b/.gitignore
index 4c1f190..6ff6ad8 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,7 +1,7 @@
 .DS_Store
 node_modules
 /dist
-*.zip
+dist.zip
 # local env files
 .env.local
 .env.*.local
diff --git a/src/api/model/calender.js b/src/api/model/calender.js
index 205ab5c..884e450 100644
--- a/src/api/model/calender.js
+++ b/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, {},{});
+		},
+	},
 }
\ No newline at end of file
diff --git a/src/views/console/base/Dialog.vue b/src/views/console/base/Dialog.vue
new file mode 100644
index 0000000..c383997
--- /dev/null
+++ b/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>
diff --git a/src/views/console/base/Shiftsystem.vue b/src/views/console/base/Shiftsystem.vue
index 554122f..c8d8412 100644
--- a/src/views/console/base/Shiftsystem.vue
+++ b/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()
         }
     },
 }

--
Gitblit v1.9.3