From b86771c87f19521b18f8bbf5751e98239e8f1450 Mon Sep 17 00:00:00 2001
From: gaoshp <291585735@qq.com>
Date: 星期日, 07 四月 2024 22:57:55 +0800
Subject: [PATCH] 新增休息日
---
副本智能制造系统功能定义.xls | 0
src/views/master/time/day-off/Dialog.vue | 130 ++++++++++++++++++++++++++
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, 267 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..ea60620
--- /dev/null
+++ b/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>
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