From 1229f3ec76bffe282d85b48daf0b32bc17022810 Mon Sep 17 00:00:00 2001
From: Admin <978517621@qq.com>
Date: 星期五, 26 八月 2022 12:29:18 +0800
Subject: [PATCH] Default Changelist
---
src/views/system/personShiftManage/personTimeManage/holidayTime/index.vue | 1276 ++++++++++++++++++++++++++++------------------------------
1 files changed, 616 insertions(+), 660 deletions(-)
diff --git a/src/views/system/personShiftManage/personTimeManage/holidayTime/index.vue b/src/views/system/personShiftManage/personTimeManage/holidayTime/index.vue
index edb8aa9..64387a5 100644
--- a/src/views/system/personShiftManage/personTimeManage/holidayTime/index.vue
+++ b/src/views/system/personShiftManage/personTimeManage/holidayTime/index.vue
@@ -1,706 +1,662 @@
<template>
- <div class="home-container">
- <div style="height: 100%">
- <el-row class="homeCard">
- <el-col :span="8">
- <div class="grid-content topInfo">
- <el-input v-model="searchWord" placeholder="休息日名称"></el-input>
- <el-button type="primary" @click="searchRecord">查询</el-button>
- <el-button plain @click="clearSearch">重置</el-button>
- </div>
- </el-col>
- </el-row>
- <div class="homeCard">
- <div class="main-card">
- <el-row class="cardTop">
- <el-col :span="12" class="mainCardBtn">
- <el-button type="primary" :icon="Plus" size="default" @click="dialogAddRecord=true">新建</el-button>
-<!-- <el-button type="warning" :icon="Edit" size="default" plain>修改</el-button>-->
- <el-button type="danger" :icon="Delete" size="default" plain @click="deleteBatchBtn">删除</el-button>
- </el-col>
- <el-button type="primary" :icon="Refresh" size="default" @click="reLoadData()"/>
- </el-row>
- <el-table
- ref="multipleTableRef"
- :data="tableData"
- style="width: 100%"
- height="calc(100% - 100px)"
- :header-cell-style="{background: '#fafafa'}"
- @selection-change="handleSelectionChange"
- >
- <el-table-column type="selection" width="100" />
- <el-table-column property="name" label="休息日名称"/>
- <el-table-column property="typeName" label="休息日类型"/>
- <el-table-column property="ruleName" label="休息日规则"/>
- <el-table-column property="ruleNumber" label="休息日"/>
- <el-table-column property="info" label="描述信息"/>
- <el-table-column fixed="right" label="操作" align="center" width="250">
- <template #default="scope">
- <el-button link type="primary" size="small" :icon="View" @click="viewRecord(scope.row)">查看</el-button>
- <el-button link type="primary" size="small" :icon="Edit" @click="editRecordBtn(scope.$index ,scope.row)">修改</el-button>
- <el-button link type="danger" size="small" :icon="Delete" @click="deleteRecordBtn(scope.row)">删除</el-button>
- </template>
- </el-table-column>
- </el-table>
- <div class="pageBtn">
- <el-pagination
- v-model:currentPage="pageIndex"
- v-model:page-size="pageSize"
- :page-sizes="[10, 15]"
- small=false
- background
- layout="total, sizes, prev, pager, next, jumper"
- :total="totalSize"
- @size-change="handleSizeChange"
- @current-change="handleCurrentChange"
- />
- </div>
- </div>
- </div>
- </div>
- <el-dialog v-model="dialogDetails" title="休息时间">
- <el-form :model="details" label-width="120px">
- <el-form-item label="名称">
- <el-input
- v-model="details.name"
- readonly
- />
- </el-form-item>
- <el-form-item label="休假类型">
- <el-input
- v-model="details.typeName"
- readonly
- />
- </el-form-item>
- <el-form-item label="休假规则" v-if="details.type == 2">
- <el-input
- v-model="details.ruleName"
- readonly
- />
- </el-form-item>
- <el-form-item label="休假时间" v-if="details.type == 2">
- <el-input
- v-model="details.ruleNumber"
- readonly
- />
- </el-form-item>
- <el-form-item label="描述信息" v-if="details.info">
- <el-input
- v-model="details.info"
- type="textarea"
- readonly
- />
- </el-form-item>
- <el-form-item>
- <el-button type="primary" @click="dialogDetails = false" size="default">确认</el-button>
- </el-form-item>
- </el-form>
- </el-dialog>
- <el-dialog v-model="dialogAddRecord" title="休息时间编辑" @close="closeAdd">
- <el-form :model="addRecord" label-width="120px" ref="addRef" :rules="addRules">
- <el-form-item label="休息日名称" prop="name">
- <el-input
- v-model="addRecord.name"
- >
- </el-input>
- </el-form-item>
- <el-form-item label="休假类型" prop="type">
- <el-select v-model="addRecord.type" placeholder="请选择休假类型" style="width: 100%" @change="typeChange">
- <el-option v-for="(item,index) in typeList" :key="index" :label="item.name" :value="item.value"/>
- </el-select>
- </el-form-item>
- <el-form-item label="休假规则" prop="rule" v-if="addRecord.type == '自定义休息日' || addRecord.type == 2">
- <el-select v-model="addRecord.rule" placeholder="请选择休假规则" style="width: 100%" @change="ruleChange">
- <el-option v-for="(item,index) in ruleList" :key="index" :label="item.name" :value="item.value"/>
- </el-select>
- </el-form-item>
- <el-form-item label="选择休假时间" prop="ruleNumber" v-if="addRecord.rule == '每周'|| addRecord.rule == 1">
- <el-checkbox-group v-model="addRecord.ruleNumber">
- <el-checkbox v-for="(item,i) in weekDays" :label="item.value" :key="i">{{item.name}}</el-checkbox>
- </el-checkbox-group>
- </el-form-item>
- <el-form-item label="选择休假时间" prop="ruleNumber" v-if="addRecord.rule == '每月'|| addRecord.rule == 2">
- <el-checkbox-group v-model="addRecord.ruleNumber">
- <el-checkbox v-for="index in 31" :label="index" :key="index"/>
- </el-checkbox-group>
- </el-form-item>
- <el-form-item label="描述信息" prop="info">
- <el-input
- v-model="addRecord.info"
- type="textarea"
- >
- </el-input>
- </el-form-item>
- <el-form-item>
- <el-button type="warning" @click="dialogAddRecord = false" size="default" plain>取消</el-button>
- <el-button type="primary" @click="confirmAddRecord(addRef)" size="default">确认</el-button>
- </el-form-item>
- </el-form>
- </el-dialog>
- <el-dialog v-model="deleteDialog" title="提示" width="30%" center @close="indexClear">
- <span>您确定要删除该条记录吗?</span>
- <template #footer>
- <span class="dialog-footer">
- <el-button @click="deleteDialog = false" size="default">取消</el-button>
- <el-button type="primary" @click="conFirmDelete" size="default">确认</el-button>
- </span>
- </template>
- </el-dialog>
- <el-dialog v-model="deleteSetDialog" title="提示" width="30%" center>
- <span>您确定要删除这些记录吗?</span>
- <template #footer>
+ <div class="home-container">
+ <div style="height: 100%">
+ <el-row class="homeCard">
+ <el-col :span="8">
+ <div class="grid-content topInfo">
+ <el-input v-model="searchWord" placeholder="休息日名称"></el-input>
+ <el-button type="primary" @click="searchRecord">查询</el-button>
+ <el-button plain @click="clearSearch">重置</el-button>
+ </div>
+ </el-col>
+ </el-row>
+ <div class="homeCard">
+ <div class="main-card">
+ <el-row class="cardTop">
+ <el-col :span="12" class="mainCardBtn">
+ <el-button type="primary" :icon="Plus" size="default" @click="dialogAddRecord = true">新建</el-button>
+ <!-- <el-button type="warning" :icon="Edit" size="default" plain>修改</el-button>-->
+ <el-button type="danger" :icon="Delete" size="default" plain @click="deleteBatchBtn">删除</el-button>
+ </el-col>
+ <el-button type="primary" :icon="Refresh" size="default" @click="reLoadData()" />
+ </el-row>
+ <el-table ref="multipleTableRef" :data="tableData" style="width: 100%" height="calc(100% - 100px)" :header-cell-style="{ background: '#fafafa' }" @selection-change="handleSelectionChange">
+ <el-table-column type="selection" width="100" />
+ <el-table-column property="name" label="休息日名称" />
+ <el-table-column property="typeName" label="休息日类型" />
+ <el-table-column property="ruleName" label="休息日规则" />
+ <el-table-column property="ruleNumber" label="休息日" />
+ <el-table-column property="info" label="描述信息" />
+ <el-table-column fixed="right" label="操作" align="center" width="250">
+ <template #default="scope">
+ <el-button link type="primary" size="small" :icon="View" @click="viewRecord(scope.row)">查看</el-button>
+ <el-button link type="primary" size="small" :icon="Edit" @click="editRecordBtn(scope.$index, scope.row)">修改</el-button>
+ <el-button link type="danger" size="small" :icon="Delete" @click="deleteRecordBtn(scope.row)">删除</el-button>
+ </template>
+ </el-table-column>
+ </el-table>
+ <div class="pageBtn">
+ <el-pagination v-model:currentPage="pageIndex" v-model:page-size="pageSize" :page-sizes="[10, 15]" small="false" background layout="total, sizes, prev, pager, next, jumper" :total="totalSize" @size-change="handleSizeChange" @current-change="handleCurrentChange" />
+ </div>
+ </div>
+ </div>
+ </div>
+ <el-dialog v-model="dialogDetails" title="休息时间">
+ <el-form :model="details" label-width="120px">
+ <el-form-item label="名称">
+ <el-input v-model="details.name" readonly />
+ </el-form-item>
+ <el-form-item label="休假类型">
+ <el-input v-model="details.typeName" readonly />
+ </el-form-item>
+ <el-form-item label="休假规则" v-if="details.type == 2">
+ <el-input v-model="details.ruleName" readonly />
+ </el-form-item>
+ <el-form-item label="休假时间" v-if="details.type == 2">
+ <el-input v-model="details.ruleNumber" readonly />
+ </el-form-item>
+ <el-form-item label="描述信息" v-if="details.info">
+ <el-input v-model="details.info" type="textarea" readonly />
+ </el-form-item>
+ <el-form-item>
+ <el-button type="primary" @click="dialogDetails = false" size="default">确认</el-button>
+ </el-form-item>
+ </el-form>
+ </el-dialog>
+ <el-dialog v-model="dialogAddRecord" title="休息时间编辑" @close="closeAdd">
+ <el-form :model="addRecord" label-width="120px" ref="addRef" :rules="addRules">
+ <el-form-item label="休息日名称" prop="name">
+ <el-input v-model="addRecord.name"> </el-input>
+ </el-form-item>
+ <el-form-item label="休假类型" prop="type">
+ <el-select v-model="addRecord.type" placeholder="请选择休假类型" style="width: 100%" @change="typeChange">
+ <el-option v-for="(item, index) in typeList" :key="index" :label="item.name" :value="item.value" />
+ </el-select>
+ </el-form-item>
+ <el-form-item label="休假规则" prop="rule" v-if="addRecord.type == '自定义休息日' || addRecord.type == 2">
+ <el-select v-model="addRecord.rule" placeholder="请选择休假规则" style="width: 100%" @change="ruleChange">
+ <el-option v-for="(item, index) in ruleList" :key="index" :label="item.name" :value="item.value" />
+ </el-select>
+ </el-form-item>
+ <el-form-item label="选择休假时间" prop="ruleNumber" v-if="addRecord.rule == '每周' || addRecord.rule == 1">
+ <el-checkbox-group v-model="addRecord.ruleNumber">
+ <el-checkbox v-for="(item, i) in weekDays" :label="item.value" :key="i">{{ item.name }}</el-checkbox>
+ </el-checkbox-group>
+ </el-form-item>
+ <el-form-item label="选择休假时间" prop="ruleNumber" v-if="addRecord.rule == '每月' || addRecord.rule == 2">
+ <el-checkbox-group v-model="addRecord.ruleNumber">
+ <el-checkbox v-for="index in 31" :label="index" :key="index" />
+ </el-checkbox-group>
+ </el-form-item>
+ <el-form-item label="描述信息" prop="info">
+ <el-input v-model="addRecord.info" type="textarea"> </el-input>
+ </el-form-item>
+ <el-form-item>
+ <el-button type="warning" @click="dialogAddRecord = false" size="default" plain>取消</el-button>
+ <el-button type="primary" @click="confirmAddRecord(addRef)" size="default">确认</el-button>
+ </el-form-item>
+ </el-form>
+ </el-dialog>
+ <el-dialog v-model="deleteDialog" title="提示" width="30%" center @close="indexClear">
+ <span>您确定要删除该条记录吗?</span>
+ <template #footer>
+ <span class="dialog-footer">
+ <el-button @click="deleteDialog = false" size="default">取消</el-button>
+ <el-button type="primary" @click="conFirmDelete" size="default">确认</el-button>
+ </span>
+ </template>
+ </el-dialog>
+ <el-dialog v-model="deleteSetDialog" title="提示" width="30%" center>
+ <span>您确定要删除这些记录吗?</span>
+ <template #footer>
<span class="dialog-footer">
<el-button @click="deleteSetDialog = false" size="default">取消</el-button>
<el-button type="primary" @click="conFirmDeleteBatch" size="default">确认</el-button>
</span>
- </template>
- </el-dialog>
- </div>
+ </template>
+ </el-dialog>
+ </div>
</template>
<script lang="ts">
- import { toRefs, reactive, ref, onMounted } from 'vue';
- import { storeToRefs } from 'pinia';
- import { initBackEndControlRoutes } from '/@/router/backEnd';
- import {useUserInfo} from "/@/stores/userInfo";
- import { Session } from '/@/utils/storage';
- import { Edit, View, Plus, Delete, Refresh, Search, Download } from '@element-plus/icons-vue'
- import { ElTable } from 'element-plus'
- import { FormInstance, FormRules, ElMessage } from 'element-plus'
- import { holidayTimeApi } from '/@/api/basicDateManage/personShiftManage/holidayTime';
- import {workingHoursSetApi} from "/@/api/basicDateManage/personShiftManage/workingHoursSet";
+import { toRefs, reactive, ref, onMounted } from 'vue';
+import { storeToRefs } from 'pinia';
+import { initBackEndControlRoutes } from '/@/router/backEnd';
+import { useUserInfo } from '/@/stores/userInfo';
+import { Session } from '/@/utils/storage';
+import { Edit, View, Plus, Delete, Refresh, Search, Download } from '@element-plus/icons-vue';
+import { ElTable } from 'element-plus';
+import { FormInstance, FormRules, ElMessage } from 'element-plus';
+import { holidayTimeApi } from '/@/api/systemManage/basicDateManage/personShiftManage/holidayTime';
+import { workingHoursSetApi } from '/@/api/systemManage/basicDateManage/personShiftManage/workingHoursSet';
+// 定义接口来定义对象的类型
+interface stateType {
+ tableData: Array<string>;
+ multipleSelection: Array<any>;
+ deleteArr: Array<any>;
+ weekDays: Array<any>;
+ typeList: Array<any>;
+ ruleList: Array<any>;
+ dialogDetails: boolean;
+ dialogAddRecord: boolean;
+ deleteDialog: boolean;
+ deleteSetDialog: boolean;
+ pageIndex: number;
+ pageSize: number;
+ searchWord: string;
+ chosenIndex: null | number;
+ casProps: object;
+ deleteId: null | number;
+ totalSize: number;
+ addRecord: {
+ name: string;
+ type: number | string;
+ rule: number | string;
+ ruleNumber: Array<number> | string;
+ info: string;
+ };
+ details: {
+ name: string;
+ type: string;
+ rule: string;
+ ruleNumber: string;
+ info: string;
+ };
+}
-
- // 定义接口来定义对象的类型
- interface stateType {
- tableData: Array<string>,
- multipleSelection: Array<any>,
- deleteArr: Array<any>,
- weekDays: Array<any>,
- typeList: Array<any>,
- ruleList: Array<any>,
- dialogDetails: boolean,
- dialogAddRecord: boolean,
- deleteDialog: boolean,
- deleteSetDialog: boolean,
- pageIndex: number,
- pageSize: number,
- searchWord: string,
- chosenIndex: null| number,
- casProps: object,
- deleteId: null| number,
- totalSize: number,
- addRecord: {
- name: string,
- type: number | string,
- rule: number | string,
- ruleNumber: Array<number> | string,
- info: string
- },
- details: {
- name: string,
- type: string,
- rule: string,
- ruleNumber: string,
- info: string
- }
- }
-
- export default {
+export default {
name: 'workingHours',
- components:{},
+ components: {},
setup() {
- const userInfo = useUserInfo()
- const {userInfos} = storeToRefs(userInfo);
+ const userInfo = useUserInfo();
+ const { userInfos } = storeToRefs(userInfo);
- const state = reactive<stateType>({
- pageIndex: 1,
- pageSize: 10,
- totalSize: 0,
- chosenIndex: null,
- searchWord: '',
- tableData: [],
- typeList: [
- {
- name: '每周公休假日',
- value: 0
- },
- {
- name: '国家法定节假日',
- value: 1
- },
- {
- name: '自定义休息日',
- value: 2
- }
- ],
- ruleList: [
- {
- name: '每周',
- value: 1
- },
- {
- name: '每月',
- value: 2
- }
- ],
- multipleSelection: [],
- dialogDetails: false,
- dialogAddRecord: false,
- deleteDialog: false,
- deleteSetDialog: false,
- weekDays: [
- {
- name: '周一',
- value: 1
- },
- {
- name: '周二',
- value: 2
- },
- {
- name: '周三',
- value: 3
- },
- {
- name: '周四',
- value: 4
- },
- {
- name: '周五',
- value: 5
- },
- {
- name: '周六',
- value: 6
- },
- {
- name: '周日',
- value: 7
- }
- ],
- casProps: {
- expandTrigger: 'hover',
- },
- addRecord: {
- name: '',
- type: '',
- rule: '',
- ruleNumber: [],
- info: ''
- },
- details: {
- name: '',
- type: '',
- rule: '',
- ruleNumber: '',
- info: ''
- },
- deleteId: null,
- deleteArr: []
- })
- interface User {
- name: string,
- type: number | string,
- rule: number | string,
- ruleNumber: Array<number> | string,
- info: string
- }
+ const state = reactive<stateType>({
+ pageIndex: 1,
+ pageSize: 10,
+ totalSize: 0,
+ chosenIndex: null,
+ searchWord: '',
+ tableData: [],
+ typeList: [
+ {
+ name: '每周公休假日',
+ value: 0
+ },
+ {
+ name: '国家法定节假日',
+ value: 1
+ },
+ {
+ name: '自定义休息日',
+ value: 2
+ }
+ ],
+ ruleList: [
+ {
+ name: '每周',
+ value: 1
+ },
+ {
+ name: '每月',
+ value: 2
+ }
+ ],
+ multipleSelection: [],
+ dialogDetails: false,
+ dialogAddRecord: false,
+ deleteDialog: false,
+ deleteSetDialog: false,
+ weekDays: [
+ {
+ name: '周一',
+ value: 1
+ },
+ {
+ name: '周二',
+ value: 2
+ },
+ {
+ name: '周三',
+ value: 3
+ },
+ {
+ name: '周四',
+ value: 4
+ },
+ {
+ name: '周五',
+ value: 5
+ },
+ {
+ name: '周六',
+ value: 6
+ },
+ {
+ name: '周日',
+ value: 7
+ }
+ ],
+ casProps: {
+ expandTrigger: 'hover'
+ },
+ addRecord: {
+ name: '',
+ type: '',
+ rule: '',
+ ruleNumber: [],
+ info: ''
+ },
+ details: {
+ name: '',
+ type: '',
+ rule: '',
+ ruleNumber: '',
+ info: ''
+ },
+ deleteId: null,
+ deleteArr: []
+ });
+ interface User {
+ name: string;
+ type: number | string;
+ rule: number | string;
+ ruleNumber: Array<number> | string;
+ info: string;
+ }
- // 排序
- const compare = (x,y)=> {
- if (x < y) {
- return -1;
- } else if (x > y) {
- return 1;
- } else {
- return 0;
- }
- }
+ // 排序
+ const compare = (x, y) => {
+ if (x < y) {
+ return -1;
+ } else if (x > y) {
+ return 1;
+ } else {
+ return 0;
+ }
+ };
- const handleChange = (value) => {
- state.addRecord.content = []
- console.log(JSON.parse(JSON.stringify(value)))
- }
+ const handleChange = (value) => {
+ state.addRecord.content = [];
+ console.log(JSON.parse(JSON.stringify(value)));
+ };
- const multipleTableRef = ref<InstanceType<typeof ElTable>>()
- const toggleSelection = (rows?: User[]) => {
- if (rows) {
- rows.forEach((row) => {
- // TODO: improvement typing when refactor table
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
- // @ts-expect-error
- multipleTableRef.value!.toggleRowSelection(row, undefined)
- })
- } else {
- multipleTableRef.value!.clearSelection()
- }
- }
+ const multipleTableRef = ref<InstanceType<typeof ElTable>>();
+ const toggleSelection = (rows?: User[]) => {
+ if (rows) {
+ rows.forEach((row) => {
+ // TODO: improvement typing when refactor table
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
+ // @ts-expect-error
+ multipleTableRef.value!.toggleRowSelection(row, undefined);
+ });
+ } else {
+ multipleTableRef.value!.clearSelection();
+ }
+ };
- // 休息类型改变时操作
- const typeChange =()=>{
- state.addRecord.rule = ''
- state.addRecord.ruleNumber = []
- }
- // 休息规则改变时操作
- const ruleChange =()=>{
- state.addRecord.ruleNumber = []
- }
+ // 休息类型改变时操作
+ const typeChange = () => {
+ state.addRecord.rule = '';
+ state.addRecord.ruleNumber = [];
+ };
+ // 休息规则改变时操作
+ const ruleChange = () => {
+ state.addRecord.ruleNumber = [];
+ };
- // 多选
- const handleSelectionChange = (val: User[]) => {
- state.multipleSelection = JSON.parse(JSON.stringify(val))
- state.deleteArr = state.multipleSelection.map((item)=>{
- item = item.id
- return item
- })
- }
+ // 多选
+ const handleSelectionChange = (val: User[]) => {
+ state.multipleSelection = JSON.parse(JSON.stringify(val));
+ state.deleteArr = state.multipleSelection.map((item) => {
+ item = item.id;
+ return item;
+ });
+ };
- const addRef = ref<FormInstance>()
- const addRules = reactive<FormRules>({
- name: [{required: true, message: '该内容不能为空', trigger: 'blur'}],
- type: [{required: true, message: '该内容不能为空', trigger: 'blur'}],
- rule: [{required: true, message: '该内容不能为空', trigger: 'blur'}],
- ruleNumber: [{required: true, message: '该内容不能为空', trigger: 'blur'}]
- })
+ const addRef = ref<FormInstance>();
+ const addRules = reactive<FormRules>({
+ name: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
+ type: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
+ rule: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
+ ruleNumber: [{ required: true, message: '该内容不能为空', trigger: 'blur' }]
+ });
- // 页面载入时执行方法
- onMounted(() => {
- // getWorkTimePeriod()
- getListByPage()
- })
+ // 页面载入时执行方法
+ onMounted(() => {
+ // getWorkTimePeriod()
+ getListByPage();
+ });
- // 休假类型格式化
- // const typeName =(row, column, cellValue, index) =>{
- // return row.type == 0? '每周公休假日':(row.type == 1? '国家法定节假日': '自定义休息日')
- // }
+ // 休假类型格式化
+ // const typeName =(row, column, cellValue, index) =>{
+ // return row.type == 0? '每周公休假日':(row.type == 1? '国家法定节假日': '自定义休息日')
+ // }
- // 分页获取工作时段列表
- const getListByPage = async ()=>{
- const data = {pageSize: state.pageSize,pageIndex: state.pageIndex,searchParams:{name: state.searchWord}}
- let res = await holidayTimeApi().getAllBreakTimeRuleByPage(data);
- if (res.data.code === '200') {
- state.tableData = res.data.data.map((item)=>{
- item.typeName = item.type===0?'每周公休假日':(item.type===1?'国家法定节假日':(item.type===2?'自定义休息日':''))
- item.ruleName = item.rule===1?'每周':(item.rule===2?'每月':'')
- return item
- })
- console.log(state.tableData,'列表获取的tableData')
- state.totalSize = res.data.total
- } else {
- ElMessage({
- type: 'warning',
- message: res.data.msg
- });
- }
- }
+ // 分页获取工作时段列表
+ const getListByPage = async () => {
+ const data = { pageSize: state.pageSize, pageIndex: state.pageIndex, searchParams: { name: state.searchWord } };
+ let res = await holidayTimeApi().getAllBreakTimeRuleByPage(data);
+ if (res.data.code === '200') {
+ state.tableData = res.data.data.map((item) => {
+ item.typeName = item.type === 0 ? '每周公休假日' : item.type === 1 ? '国家法定节假日' : item.type === 2 ? '自定义休息日' : '';
+ item.ruleName = item.rule === 1 ? '每周' : item.rule === 2 ? '每月' : '';
+ return item;
+ });
+ console.log(state.tableData, '列表获取的tableData');
+ state.totalSize = res.data.total;
+ } else {
+ ElMessage({
+ type: 'warning',
+ message: res.data.msg
+ });
+ }
+ };
- // 关键词查询记录
- const searchRecord = async()=>{
- if(state.searchWord==''){
- ElMessage({
- type: 'warning',
- message: '请输入查询关键词'
- });
- }else{
- getListByPage()
- }
- }
+ // 关键词查询记录
+ const searchRecord = async () => {
+ if (state.searchWord == '') {
+ ElMessage({
+ type: 'warning',
+ message: '请输入查询关键词'
+ });
+ } else {
+ getListByPage();
+ }
+ };
- const clearSearch = async()=>{
- state.searchWord=''
- getListByPage()
- }
+ const clearSearch = async () => {
+ state.searchWord = '';
+ getListByPage();
+ };
- // 添加休息时间
- const addRecord = async (data:any) => {
- let res = await holidayTimeApi().addBreakTime(data);
- if (res.data.code === '200') {
- ElMessage({
- type: 'success',
- message: res.data.msg
- });
- getListByPage()
- } else {
- ElMessage({
- type: 'warning',
- message: res.data.msg
- });
- }
- };
+ // 添加休息时间
+ const addRecord = async (data: any) => {
+ let res = await holidayTimeApi().addBreakTime(data);
+ if (res.data.code === '200') {
+ ElMessage({
+ type: 'success',
+ message: res.data.msg
+ });
+ getListByPage();
+ } else {
+ ElMessage({
+ type: 'warning',
+ message: res.data.msg
+ });
+ }
+ };
- // 修改休息时间
- const editRecordBtn = (index, row) => {
- state.dialogAddRecord = true
- state.chosenIndex = index
- console.log(row,'编辑时的row')
- console.log(state.tableData,'编辑时的tableData')
- state.addRecord = JSON.parse(JSON.stringify(row))
- state.addRecord.ruleNumber = row.ruleNumber.split(',').map((i)=>{
- return Number(i)
- })
- console.log(state.addRecord)
- }
+ // 修改休息时间
+ const editRecordBtn = (index, row) => {
+ state.dialogAddRecord = true;
+ state.chosenIndex = index;
+ console.log(row, '编辑时的row');
+ console.log(state.tableData, '编辑时的tableData');
+ state.addRecord = JSON.parse(JSON.stringify(row));
+ state.addRecord.ruleNumber = row.ruleNumber.split(',').map((i) => {
+ return Number(i);
+ });
+ console.log(state.addRecord);
+ };
- const editRecord = async (data:any) => {
- let res = await holidayTimeApi().updateBreakTime(data);
- if (res.data.code === '200') {
- ElMessage({
- type: 'success',
- message: res.data.msg
- });
- getListByPage()
- } else {
- ElMessage({
- type: 'warning',
- message: res.data.msg
- });
- }
- }
+ const editRecord = async (data: any) => {
+ let res = await holidayTimeApi().updateBreakTime(data);
+ if (res.data.code === '200') {
+ ElMessage({
+ type: 'success',
+ message: res.data.msg
+ });
+ getListByPage();
+ } else {
+ ElMessage({
+ type: 'warning',
+ message: res.data.msg
+ });
+ }
+ };
- // 新增修改记录
- const confirmAddRecord = async (formEl: FormInstance | undefined) => {
- if (!formEl) return
- await formEl.validate(async (valid, fields) => {
- if (valid) {
- const data = {
- name: state.addRecord.name,
- info: state.addRecord.info,
- type: Number(state.addRecord.type),
- rule: Number(state.addRecord.rule),
- ruleNumber: state.addRecord.ruleNumber.sort(compare).join(',')
- }
- if (state.chosenIndex == null) {
- if(data.type == 2 && data.ruleNumber==''){
- ElMessage({
- type: 'warning',
- message: '请至少选择一个休息时间'
- });
- return
- } else{
- await addRecord(data)
- }
- } else {
- data.id = state.addRecord.id,
- console.log(data,'提交时的参数data')
- await editRecord(data)
- }
- state.dialogAddRecord = false
- } else {
- console.log('error submit!', fields)
- }
- })
+ // 新增修改记录
+ const confirmAddRecord = async (formEl: FormInstance | undefined) => {
+ if (!formEl) return;
+ await formEl.validate(async (valid, fields) => {
+ if (valid) {
+ const data = {
+ name: state.addRecord.name,
+ info: state.addRecord.info,
+ type: Number(state.addRecord.type),
+ rule: Number(state.addRecord.rule),
+ ruleNumber: state.addRecord.ruleNumber.sort(compare).join(',')
+ };
+ if (state.chosenIndex == null) {
+ if (data.type == 2 && data.ruleNumber == '') {
+ ElMessage({
+ type: 'warning',
+ message: '请至少选择一个休息时间'
+ });
+ return;
+ } else {
+ await addRecord(data);
+ }
+ } else {
+ (data.id = state.addRecord.id), console.log(data, '提交时的参数data');
+ await editRecord(data);
+ }
+ state.dialogAddRecord = false;
+ } else {
+ console.log('error submit!', fields);
+ }
+ });
+ };
+ const closeAdd = () => {
+ state.addRecord = {
+ name: '',
+ type: '',
+ rule: '',
+ ruleNumber: [],
+ info: ''
+ };
+ state.chosenIndex = null;
+ };
- }
- const closeAdd = () => {
- state.addRecord = {
- name: '',
- type: '',
- rule: '',
- ruleNumber: [],
- info: ''
- }
- state.chosenIndex = null
- }
+ // 删除工作时段
+ const deleteRecord = async (data: any) => {
+ let res = await holidayTimeApi().deleteBreakTime(data);
+ if (res.data.code === '200') {
+ ElMessage({
+ type: 'success',
+ message: res.data.msg
+ });
+ getListByPage();
+ } else {
+ ElMessage({
+ type: 'warning',
+ message: res.data.msg
+ });
+ }
+ };
- // 删除工作时段
- const deleteRecord = async (data:any) => {
- let res = await holidayTimeApi().deleteBreakTime(data);
- if (res.data.code === '200') {
- ElMessage({
- type: 'success',
- message: res.data.msg
- });
- getListByPage()
- } else {
- ElMessage({
- type: 'warning',
- message: res.data.msg
- });
- }
- }
+ const deleteRecordBtn = (row) => {
+ state.deleteId = row.id;
+ state.deleteDialog = true;
+ };
- const deleteRecordBtn = (row) => {
- state.deleteId = row.id
- state.deleteDialog = true
- }
+ const conFirmDelete = () => {
+ deleteRecord({ id: state.deleteId });
+ state.deleteDialog = false;
+ };
- const conFirmDelete = () => {
- deleteRecord({ id: state.deleteId })
- state.deleteDialog = false
- }
+ // 批量删除
+ const deleteBatchBtn = async () => {
+ if (state.deleteArr.length > 0) {
+ state.deleteSetDialog = true;
+ } else {
+ ElMessage({
+ type: 'warning',
+ message: '请先选择要删除的记录'
+ });
+ }
+ };
- // 批量删除
- const deleteBatchBtn = async () => {
- if (state.deleteArr.length > 0) {
- state.deleteSetDialog = true
- } else {
- ElMessage({
- type: 'warning',
- message: '请先选择要删除的记录'
- });
- }
- };
+ const conFirmDeleteBatch = async () => {
+ let res = await holidayTimeApi().deleteBatch({ ids: state.deleteArr });
+ if (res.data.code === '200') {
+ state.deleteSetDialog = false;
+ ElMessage({
+ type: 'success',
+ message: res.data.msg
+ });
+ getListByPage();
+ } else {
+ ElMessage({
+ type: 'warning',
+ message: res.data.msg
+ });
+ state.deleteSetDialog = false;
+ }
+ };
- const conFirmDeleteBatch = async () => {
- let res = await holidayTimeApi().deleteBatch({ids: state.deleteArr});
- if (res.data.code === '200') {
- state.deleteSetDialog = false
- ElMessage({
- type: 'success',
- message: res.data.msg
- });
- getListByPage()
- } else {
- ElMessage({
- type: 'warning',
- message: res.data.msg
- });
- state.deleteSetDialog = false
- }
- }
+ const handleSizeChange = (val: number) => {
+ state.pageSize = val;
+ getListByPage();
+ };
+ const handleCurrentChange = (val: number) => {
+ state.pageIndex = val;
+ getListByPage();
+ };
- const handleSizeChange = (val: number) => {
- state.pageSize = val
- getListByPage()
- }
- const handleCurrentChange = (val: number) => {
- state.pageIndex = val
- getListByPage()
- }
+ // 查看记录
+ const viewRecord = (row) => {
+ state.details = JSON.parse(JSON.stringify(row));
+ state.dialogDetails = true;
+ };
- // 查看记录
- const viewRecord = (row) => {
- state.details = JSON.parse(JSON.stringify(row))
- state.dialogDetails = true
- }
+ // 刷新
+ const reLoadData = async () => {
+ getListByPage();
+ };
- // 刷新
- const reLoadData = async () =>{
- getListByPage()
- }
+ const indexClear = () => {
+ state.deleteId = null;
+ };
- const indexClear = () => {
- state.deleteId = null
- }
-
- // 折线图
- const renderMenu = async (value: string) => {
- Session.set('projectId', value)
- userInfos.value.projectId = value
- await initBackEndControlRoutes();
- };
- return {
- addRef,
- addRules,
- View,
- Edit,
- Delete,
- Refresh,
- Plus,
- typeChange,
- ruleChange,
- compare,
- toggleSelection,
- handleSelectionChange,
- deleteBatchBtn,
- conFirmDeleteBatch,
- searchRecord,
- clearSearch,
- viewRecord,
- deleteRecordBtn,
- conFirmDelete,
- getListByPage,
- reLoadData,
- deleteRecord,
- handleSizeChange,
- handleCurrentChange,
- confirmAddRecord,
- closeAdd,
- indexClear,
- editRecordBtn,
- ...toRefs(state)
- };
- }
- }
+ // 折线图
+ const renderMenu = async (value: string) => {
+ Session.set('projectId', value);
+ userInfos.value.projectId = value;
+ await initBackEndControlRoutes();
+ };
+ return {
+ addRef,
+ addRules,
+ View,
+ Edit,
+ Delete,
+ Refresh,
+ Plus,
+ typeChange,
+ ruleChange,
+ compare,
+ toggleSelection,
+ handleSelectionChange,
+ deleteBatchBtn,
+ conFirmDeleteBatch,
+ searchRecord,
+ clearSearch,
+ viewRecord,
+ deleteRecordBtn,
+ conFirmDelete,
+ getListByPage,
+ reLoadData,
+ deleteRecord,
+ handleSizeChange,
+ handleCurrentChange,
+ confirmAddRecord,
+ closeAdd,
+ indexClear,
+ editRecordBtn,
+ ...toRefs(state)
+ };
+ }
+};
</script>
<style scoped lang="scss">
- $homeNavLengh: 8;
- .home-container {
- height: calc(100vh - 114px);
- box-sizing: border-box;
- overflow: hidden;
- .homeCard{
- width: 100%;
- padding: 20px;
- box-sizing: border-box;
- background: #fff;
- border-radius: 4px;
+$homeNavLengh: 8;
+.home-container {
+ height: calc(100vh - 144px);
+ box-sizing: border-box;
+ overflow: hidden;
+ .homeCard {
+ width: 100%;
+ padding: 20px;
+ box-sizing: border-box;
+ background: #fff;
+ border-radius: 4px;
- .main-card{
- width: 100%;
- height: 100%;
- .cardTop{
- display: flex;
- align-items: center;
- justify-content: space-between;
- margin-bottom: 20px;
- .mainCardBtn{
- margin: 0;
- }
- }
- .pageBtn{
- height: 60px;
- display: flex;
- align-items: center;
- justify-content: right;
+ .main-card {
+ width: 100%;
+ height: 100%;
+ .cardTop {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ margin-bottom: 20px;
+ .mainCardBtn {
+ margin: 0;
+ }
+ }
+ .pageBtn {
+ height: 60px;
+ display: flex;
+ align-items: center;
+ justify-content: right;
- .demo-pagination-block + .demo-pagination-block {
- margin-top: 10px;
- }
- .demo-pagination-block .demonstration {
- margin-bottom: 16px;
- }
- }
- }
- &:last-of-type{
- height: calc(100% - 100px);
- }
- }
- .el-row{
- display: flex;
- align-items: center;
- margin-bottom: 20px;
- &:last-child {
- margin-bottom: 0;
- }
- .grid-content{
- align-items: center;
- min-height: 36px;
- }
+ .demo-pagination-block + .demo-pagination-block {
+ margin-top: 10px;
+ }
+ .demo-pagination-block .demonstration {
+ margin-bottom: 16px;
+ }
+ }
+ }
+ &:last-of-type {
+ height: calc(100% - 100px);
+ }
+ }
+ .el-row {
+ display: flex;
+ align-items: center;
+ margin-bottom: 20px;
+ &:last-child {
+ margin-bottom: 0;
+ }
+ .grid-content {
+ align-items: center;
+ min-height: 36px;
+ }
- .topInfo {
- display: flex;
- align-items: center;
- font-size: 16px;
- font-weight: bold;
+ .topInfo {
+ display: flex;
+ align-items: center;
+ font-size: 16px;
+ font-weight: bold;
- &>div{
- white-space: nowrap;
- margin-right: 20px;
- }
- }
- }
- }
- .el-input{
- width: 100% !important;
- }
- .el-date-editor::v-deep{
- width: 100%;
- }
- .el-select{
- width: 100%;
- }
+ & > div {
+ white-space: nowrap;
+ margin-right: 20px;
+ }
+ }
+ }
+}
+.el-input {
+ width: 100% !important;
+}
+.el-date-editor::v-deep {
+ width: 100%;
+}
+.el-select {
+ width: 100%;
+}
</style>
--
Gitblit v1.9.2