From 8999cef96b06012ca240dba7b918525df611fb71 Mon Sep 17 00:00:00 2001
From: lzhe <lzhe@example.com>
Date: 星期一, 08 四月 2024 11:19:37 +0800
Subject: [PATCH] Merge branch 'master' of http://www.beijingsoft.cn:9090/r/smart-web

---
 副本智能制造系统功能定义.xls                         |    0 
 src/views/master/time/day-off/Dialog.vue |  133 ++++++++++++++++++++++++++
 src/api/model/time.js                    |   32 ++++++
 src/views/master/time/day-off/index.vue  |   99 +++++++++++++++++++
 src/views/console/base/CalenderTab.vue   |    9 +
 5 files changed, 270 insertions(+), 3 deletions(-)

diff --git a/src/api/model/time.js b/src/api/model/time.js
new file mode 100644
index 0000000..b6141e2
--- /dev/null
+++ b/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);
+		},
+		
+    },
+
+}
\ No newline at end of file
diff --git a/src/views/console/base/CalenderTab.vue b/src/views/console/base/CalenderTab.vue
index 72d5e3b..a3d8a70 100644
--- a/src/views/console/base/CalenderTab.vue
+++ b/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>
\ No newline at end of file
diff --git a/src/views/master/time/day-off/Dialog.vue b/src/views/master/time/day-off/Dialog.vue
new file mode 100644
index 0000000..6e6a183
--- /dev/null
+++ b/src/views/master/time/day-off/Dialog.vue
@@ -0,0 +1,133 @@
+<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.form.remark = ''
+                this.form.year = ''
+                this.form.date = []
+                this.form.id = ''
+            }
+            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>
diff --git a/src/views/master/time/day-off/index.vue b/src/views/master/time/day-off/index.vue
new file mode 100644
index 0000000..e14c4a3
--- /dev/null
+++ b/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>
\ No newline at end of file
diff --git "a/\345\211\257\346\234\254\346\231\272\350\203\275\345\210\266\351\200\240\347\263\273\347\273\237\345\212\237\350\203\275\345\256\232\344\271\211.xls" "b/\345\211\257\346\234\254\346\231\272\350\203\275\345\210\266\351\200\240\347\263\273\347\273\237\345\212\237\350\203\275\345\256\232\344\271\211.xls"
index 286daf9..f75ce29 100644
--- "a/\345\211\257\346\234\254\346\231\272\350\203\275\345\210\266\351\200\240\347\263\273\347\273\237\345\212\237\350\203\275\345\256\232\344\271\211.xls"
+++ "b/\345\211\257\346\234\254\346\231\272\350\203\275\345\210\266\351\200\240\347\263\273\347\273\237\345\212\237\350\203\275\345\256\232\344\271\211.xls"
Binary files differ

--
Gitblit v1.9.3