From 4a125073dfb0acfefc473e9439ff6a551735e0e5 Mon Sep 17 00:00:00 2001
From: Admin <978517621@qq.com>
Date: 星期五, 05 八月 2022 15:07:42 +0800
Subject: [PATCH] 班组接口对接

---
 src/api/basicDateManage/personShiftManage/workingHours/index.ts                |    2 
 src/views/system/personShiftManage/personTimeManage/timeStrategy/index.vue     |  159 ++-
 src/api/basicDateManage/personShiftManage/holidayTime/index.ts                 |   50 +
 src/views/system/personShiftManage/personTimeManage/workingHoursSet/index.vue  |    3 
 src/api/basicDateManage/personShiftManage/timeStrategy/index.ts                |   85 ++
 src/views/system/personShiftManage/shiftManage/teamStrategy/index.vue          |  718 +++++++++++++++++
 /dev/null                                                                      |  567 -------------
 src/api/basicDateManage/personShiftManage/teamStrategy/index.ts                |   51 +
 src/views/system/personShiftManage/shiftManage/teamManage/index.vue            |  278 +++---
 src/api/basicDateManage/personShiftManage/holidayTimeGroup/index.ts            |   58 +
 src/api/basicDateManage/personShiftManage/teamManage/index.ts                  |   95 ++
 src/views/system/personShiftManage/personTimeManage/holidayTime/index.vue      |  323 +++++--
 src/views/system/personShiftManage/personTimeManage/holidayTimeGroup/index.vue |   66 
 src/views/system/personShiftManage/personTimeManage/durationManage/index.vue   |    0 
 14 files changed, 1,535 insertions(+), 920 deletions(-)

diff --git a/src/api/basicDateManage/personShiftManage/holidayTime/index.ts b/src/api/basicDateManage/personShiftManage/holidayTime/index.ts
new file mode 100644
index 0000000..fa82be1
--- /dev/null
+++ b/src/api/basicDateManage/personShiftManage/holidayTime/index.ts
@@ -0,0 +1,50 @@
+import request from '/@/utils/request';
+
+export function holidayTimeApi() {
+    return {
+        // 分页获取休息日列表
+        getAllBreakTimeRuleByPage: (data: object) => {
+            return request({
+                url: `/breakTime/getAllBreakTimeRuleByPage`,
+                method: 'post',
+                data: data
+            });
+        },
+
+        // 新增休息日
+        addBreakTime: (data: object) => {
+            return request({
+                url: `/breakTime/addBreakTimeRule`,
+                method: 'post',
+                data: data
+            });
+        },
+
+        // 修改休息日
+        updateBreakTime: (data: object) => {
+            return request({
+                url: `/breakTime/updateBreakTimeRule`,
+                method: 'post',
+                data: data
+            });
+        },
+
+        // 删除休息日
+        deleteBreakTime: (data: object) => {
+            return request({
+                url: `/breakTime/deleteBreakTimeRule`,
+                method: 'post',
+                data: data
+            });
+        },
+
+        // 删除休息日
+        deleteBatch: (data: object) => {
+            return request({
+                url: `/breakTime/deleteBatchBreakTimeRule`,
+                method: 'post',
+                data: data
+            });
+        },
+    };
+}
diff --git a/src/api/basicDateManage/personShiftManage/holidayTimeGroup/index.ts b/src/api/basicDateManage/personShiftManage/holidayTimeGroup/index.ts
new file mode 100644
index 0000000..08b29b6
--- /dev/null
+++ b/src/api/basicDateManage/personShiftManage/holidayTimeGroup/index.ts
@@ -0,0 +1,58 @@
+import request from '/@/utils/request';
+
+export function holidayGroupApi() {
+    return {
+        //休息时间组分页列表
+        getRecordPage: (data: object)=>{
+            return request({
+                url: `/breakTime/getAllBreakTimeGroupByPage`,
+                method: 'post',
+                data: data
+            })
+        },
+
+        // 休息时间组新增
+        addRecord: (data: object)=>{
+            return request({
+                url: `/breakTime/addBreakTimeGroup`,
+                method: 'post',
+                data: data
+            })
+        },
+
+        // 休息时间组修改
+        updateRecord: (data: object)=>{
+            return request({
+                url: `/breakTime/updateBreakTimeGroup`,
+                method: 'post',
+                data: data
+            })
+        },
+
+        // 休息时间组删除
+        deleteRecord: (data: object)=>{
+            return request({
+                url: `/breakTime/deleteBreakTimeGroup`,
+                method: 'post',
+                data: data
+            })
+        },
+
+        // 休息时间组批量删除
+        deletBatchRecord: (data: object)=>{
+            return request({
+                url: `/breakTime/deleteBatchBreakTimeGroup`,
+                method: 'post',
+                data: data
+            })
+        },
+
+        //休息时间列表
+        getAllBreak: ()=>{
+            return request({
+                url: `/breakTime/getAllBreakTimeRule`,
+                method: 'get'
+            })
+        },
+    };
+}
diff --git a/src/api/basicDateManage/personShiftManage/teamManage/index.ts b/src/api/basicDateManage/personShiftManage/teamManage/index.ts
new file mode 100644
index 0000000..895f601
--- /dev/null
+++ b/src/api/basicDateManage/personShiftManage/teamManage/index.ts
@@ -0,0 +1,95 @@
+import request from '/@/utils/request';
+
+export function teamManageApi() {
+    return {
+        //班组分页列表
+        getRecordPage: (data: object)=>{
+            return request({
+                url: `/schedule/group/page/list`,
+                method: 'post',
+                data: data
+            })
+        },
+
+        //班组列表
+        getRecord: (data: object)=>{
+            return request({
+                url: `/schedule/group/list`,
+                method: 'post',
+                data: data
+            })
+        },
+
+        //班组-班组成员分页列表
+        getAllRecordPage: (data: object)=>{
+            return request({
+                url: `/schedule/group/member/page/list`,
+                method: 'post',
+                data: data
+            })
+        },
+
+        //所有部门列表
+        getAllDepartment: ()=>{
+            return request({
+                url: `/department/list`,
+                method: 'post'
+            })
+        },
+
+
+        //用户-部门所有用户
+        getAllMember: (data: number)=>{
+            return request({
+                url: `/account/dep/list?depId=${data}`,
+                method: 'get',
+                data: data
+            })
+        },
+
+        // 班组-班组成员列表
+        getAllRecord: (data: object)=>{
+            return request({
+                url: `/schedule/group/member/list`,
+                method: 'get',
+                data: data
+            })
+        },
+
+        // 班组新增
+        addRecord: (data: object)=>{
+            return request({
+                url: `/schedule/group/add`,
+                method: 'post',
+                data: data
+            })
+        },
+
+        // 班组修改
+        updateRecord: (data: object)=>{
+            return request({
+                url: `/schedule/group/mod`,
+                method: 'post',
+                data: data
+            })
+        },
+
+        // 班组删除
+        deleteRecord: (data: object)=>{
+            return request({
+                url: `/schedule/group/del`,
+                method: 'post',
+                data: data
+            })
+        },
+
+        // 时间策略批量删除
+        // deletBatchRecord: (data: object)=>{
+        //     return request({
+        //         url: `/timeStrategy/deleteBatchTimeStrategy`,
+        //         method: 'post',
+        //         data: data
+        //     })
+        // },
+    };
+}
diff --git a/src/api/basicDateManage/personShiftManage/teamStrategy/index.ts b/src/api/basicDateManage/personShiftManage/teamStrategy/index.ts
new file mode 100644
index 0000000..0a4a38e
--- /dev/null
+++ b/src/api/basicDateManage/personShiftManage/teamStrategy/index.ts
@@ -0,0 +1,51 @@
+import request from '/@/utils/request';
+
+export function teamStrategyApi() {
+    return {
+
+        //获取班组策略分页列表
+        getRecordPage: (data: object)=>{
+            return request({
+                url: `/schedule/groupStrategy/page/list`,
+                method: 'post',
+                data: data
+            })
+        },
+
+        // 班组策略新增
+        addRecord: (data: object)=>{
+            return request({
+                url: `/schedule/groupStrategy/add`,
+                method: 'post',
+                data: data
+            })
+        },
+
+        // 班组策略修改
+        updateRecord: (data: object)=>{
+            return request({
+                url: `/schedule/groupStrategy/mod`,
+                method: 'post',
+                data: data
+            })
+        },
+
+        // 班组策略删除
+        deleteRecord: (data: object)=>{
+            return request({
+                url: `/schedule/groupStrategy/del`,
+                method: 'post',
+                data: data
+            })
+        },
+
+        // 时间策略批量删除
+        // deletBatchRecord: (data: object)=>{
+        //     return request({
+        //         url: `/timeStrategy/deleteBatchTimeStrategy`,
+        //         method: 'post',
+        //         data: data
+        //     })
+        // },
+    };
+}
diff --git a/src/api/basicDateManage/personShiftManage/timeStrategy/index.ts b/src/api/basicDateManage/personShiftManage/timeStrategy/index.ts
new file mode 100644
index 0000000..d07dbad
--- /dev/null
+++ b/src/api/basicDateManage/personShiftManage/timeStrategy/index.ts
@@ -0,0 +1,85 @@
+import request from '/@/utils/request';
+
+export function timeStrategyApi() {
+    return {
+        //获取工作时间组列表
+        getWorkTimeList: ()=>{
+            return request({
+                url: `/workTime/getWorkTimeGroup`,
+                method: 'get'
+            })
+        },
+
+        //获取休息时间组列表
+        getRestTimeList: ()=>{
+            return request({
+                url: `/breakTime/getAllBreakTimeGroup`,
+                method: 'get'
+            })
+        },
+
+        //时间策略分页列表
+        getRecordPage: (data: object)=>{
+            return request({
+                url: `/timeStrategy/getAllTimeStrategyByPage`,
+                method: 'post',
+                data: data
+            })
+        },
+
+        // 时间策略全部列表
+        getAllRecord: ()=>{
+            return request({
+                url: `/timeStrategy/getAllTimeStrategy`,
+                method: 'get'
+            })
+        },
+
+
+
+        //根据id获取时间策略列表
+        getRecordById: (data:object)=>{
+            return request({
+                url: `/timeStrategy/getTimeStrategyById`,
+                method: 'post',
+                data: data
+            })
+        },
+
+        // 时间策略新增
+        addRecord: (data: object)=>{
+            return request({
+                url: `/timeStrategy/addTimeStrategy`,
+                method: 'post',
+                data: data
+            })
+        },
+
+        // 时间策略修改
+        updateRecord: (data: object)=>{
+            return request({
+                url: `/timeStrategy/updateTimeStrategy`,
+                method: 'post',
+                data: data
+            })
+        },
+
+        // 时间策略删除
+        deleteRecord: (data: object)=>{
+            return request({
+                url: `/timeStrategy/deleteTimeStrategy`,
+                method: 'post',
+                data: data
+            })
+        },
+
+        // 时间策略批量删除
+        deletBatchRecord: (data: object)=>{
+            return request({
+                url: `/timeStrategy/deleteBatchTimeStrategy`,
+                method: 'post',
+                data: data
+            })
+        },
+    };
+}
diff --git a/src/api/basicDateManage/personShiftManage/workingHours/index.ts b/src/api/basicDateManage/personShiftManage/workingHours/index.ts
index d1ad847..f3bc789 100644
--- a/src/api/basicDateManage/personShiftManage/workingHours/index.ts
+++ b/src/api/basicDateManage/personShiftManage/workingHours/index.ts
@@ -3,7 +3,7 @@
 export function workingHoursApi() {
     return {
         // 获取工作时间段列表
-        getWorkTimePeriod: (value: { name: string }) => {
+        getWorkTimePeriod: () => {
             return request({
                 url: `/workTime/getWorkTimePeriod`,
                 method: 'get'
diff --git a/src/views/system/personShiftManage/holidayTime/index.vue b/src/views/system/personShiftManage/holidayTime/index.vue
deleted file mode 100644
index 7bfacde..0000000
--- a/src/views/system/personShiftManage/holidayTime/index.vue
+++ /dev/null
@@ -1,625 +0,0 @@
-<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="deleteWorkTimePeriods">删除</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="type" 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="editRecord(scope.$index ,scope.row)">修改</el-button>
-							<el-button link type="danger" size="small" :icon="Delete" @click="deleteRecord(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.type"
-							readonly
-					/>
-				</el-form-item>
-				<el-form-item label="休假时间" v-if="details.content.length>0">
-					<el-input
-							v-model="details.content"
-							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" @open="openAdd">
-			<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-cascader
-							v-model="addRecord.type"
-							:options="holidayList"
-							:props="casProps"
-							@change="handleChange"
-					/>
-				</el-form-item>
-				<el-form-item label="选择休假时间" prop="content" v-if="addRecord.type && JSON.parse(JSON.stringify(addRecord.type))[1] == '每周'">
-					<el-checkbox-group v-model="addRecord.content">
-						<el-checkbox v-for="(item,i) in weekDays" :label="item" :key="i"/>
-					</el-checkbox-group>
-				</el-form-item>
-				<el-form-item label="选择休假时间" prop="content" v-if="addRecord.type && JSON.parse(JSON.stringify(addRecord.type))[1] == '每月'">
-					<el-checkbox-group v-model="addRecord.content">
-						<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>
-	</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 { workingHoursApi } from '/@/api/basicDateManage/personShiftManage/workingHours';
-
-
-
-	// 定义接口来定义对象的类型
-	interface stateType {
-		tableData: Array<string>,
-		multipleSelection: Array<any>,
-		deleteArr: Array<any>,
-		dialogDetails: boolean,
-		dialogAddRecord: boolean,
-		deleteDialog: boolean,
-		pageIndex: number,
-		pageSize: number,
-		searchWord: string,
-		totalSize: number,
-		addRecord: {
-			name: string,
-			type: string,
-			content: Array<any>,
-			info: string
-		},
-		details: {
-			name: string,
-			type: string,
-			content: Array<any>,
-			info: string
-		}
-	}
-
-	export default {
-    name: 'workingHours',
-	components:{},
-    setup() {
-		const userInfo = useUserInfo()
-		const {userInfos} = storeToRefs(userInfo);
-
-		const state = reactive<stateType>({
-			pageIndex: 1,
-			pageSize: 10,
-			totalSize: 0,
-			chosenIndex: null,
-			searchWord: '',
-			tableData: [],
-			multipleSelection: [],
-			dialogDetails: false,
-			dialogAddRecord: false,
-			deleteDialog: false,
-			holidayList:[
-				{
-					value: '每周公休假日',
-					label: '每周公休假日'
-				},
-				{
-					value: '每年法定节假日',
-					label: '每年法定节假日'
-				},
-				{
-					value: '自定义休息日',
-					label: '自定义休息日',
-					children: [
-						{
-							value: '每周',
-							label: '每周',
-						},
-						{
-							value: '每月',
-							label: '每月',
-						}
-					]
-				}
-			],
-			weekDays: ['周一','周二','周三','周四','周五','周六','周日'],
-			casProps: {
-				expandTrigger: 'hover',
-			},
-			addRecord: {
-				name: '',
-				type: '',
-				content: [],
-				info: ''
-			},
-			details: {
-				name: '',
-				type: '',
-				content: [],
-				info: ''
-			},
-			deleteId: null,
-			deleteArr: []
-		})
-		interface User {
-			name: string,
-			type: string,
-			content: [],
-			info: string
-		}
-
-		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 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'}],
-			content: [{required: true, message: '该内容不能为空', trigger: 'blur'}]
-		})
-
-		// 页面载入时执行方法
-		onMounted(() => {
-			// getWorkTimePeriod()
-			getListByPage()
-		})
-
-		// 获取工作时段列表
-		const getWorkTimePeriod = async () => {
-			let res = await workingHoursApi().getWorkTimePeriod({name: state.searchWord});
-			if (res.data.code === '200') {
-				state.tableData = res.data.data.map((item)=>{
-					item.startHour = item.startHour==null?'00':(item.startHour.toString()[1]?item.startHour.toString():'0'+item.startHour.toString())
-					item.startMin = item.startMin==null?'00':(item.startMin.toString()[1]?item.startMin.toString():'0'+item.startMin.toString())
-					item.endHour = item.endHour==null?'00':(item.endHour.toString()[1]?item.endHour.toString():'0'+item.endHour.toString())
-					item.endMin = item.endMin==null?'00':(item.endMin.toString()[1]?item.endMin.toString():'0'+item.endMin.toString())
-					item.startTime = item.startHour + ':' + item.startMin
-					item.endTime = item.endHour + ':' + item.endMin
-					return item
-				})
-			} 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 workingHoursApi().postPeriodPage(data);
-			if (res.data.code === '200') {
-				state.tableData = res.data.data.map((item)=>{
-					item.startHour = item.startHour==null?'00':(item.startHour.toString()[1]?item.startHour.toString():'0'+item.startHour.toString())
-					item.startMin = item.startMin==null?'00':(item.startMin.toString()[1]?item.startMin.toString():'0'+item.startMin.toString())
-					item.endHour = item.endHour==null?'00':(item.endHour.toString()[1]?item.endHour.toString():'0'+item.endHour.toString())
-					item.endMin = item.endMin==null?'00':(item.endMin.toString()[1]?item.endMin.toString():'0'+item.endMin.toString())
-					item.startTime = item.startHour + ':' + item.startMin
-					item.endTime = item.endHour + ':' + item.endMin
-					return item
-				})
-				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 clearSearch = async()=>{
-			state.searchWord=''
-			getListByPage()
-		}
-
-		// 添加工作时段
-		const addWorkTimePeriod = async (data:any) => {
-			let res = await workingHoursApi().postWorkTimePeriod(data);
-			if (res.data.code === '200') {
-				ElMessage({
-					type: 'success',
-					message: res.data.msg
-				});
-				getListByPage()
-			} else {
-				ElMessage({
-					type: 'warning',
-					message: res.data.msg
-				});
-			}
-		};
-
-		// 修改工作时段
-		const editWorkTimePeriod = async (data:any) => {
-			let res = await workingHoursApi().updateWorkTimePeriod(data);
-			if (res.data.code === '200') {
-				ElMessage({
-					type: 'success',
-					message: res.data.msg
-				});
-				getListByPage()
-			} else {
-				ElMessage({
-					type: 'warning',
-					message: res.data.msg
-				});
-			}
-		}
-
-		// 删除工作时段
-		const deleteWorkTimePeriod = async (data:any) => {
-			let res = await workingHoursApi().deletWorkTimePeriod(data);
-			if (res.data.code === '200') {
-				ElMessage({
-					type: 'success',
-					message: res.data.msg
-				});
-				getListByPage()
-			} else {
-				ElMessage({
-					type: 'warning',
-					message: res.data.msg
-				});
-			}
-		}
-
-		const deleteRecord = (row) => {
-			state.deleteId = row.id
-			state.deleteDialog = true
-		}
-
-		const conFirmDelete = () => {
-			deleteWorkTimePeriod({ id: state.deleteId })
-			state.deleteDialog = false
-		}
-
-		// 批量删除
-		const deleteWorkTimePeriods = async () => {
-			if(state.deleteArr.length>0){
-				console.log(state.deleteArr)
-				let res = await workingHoursApi().deleteBatchWorkTimePeriod({ids: state.deleteArr});
-				if (res.data.code === '200') {
-					ElMessage({
-						type: 'success',
-						message: res.data.msg
-					});
-					getListByPage()
-				} else {
-					ElMessage({
-						type: 'warning',
-						message: res.data.msg
-					});
-				}
-			}else{
-				ElMessage({
-					type: 'warning',
-					message: '请先选择要删除的记录'
-				});
-			}
-		}
-
-		const handleSizeChange = (val: number) => {
-			state.pageSize = val
-			getListByPage()
-		}
-		const handleCurrentChange = (val: number) => {
-			state.pageIndex = val
-			getListByPage()
-		}
-
-		// 查看记录
-		const viewRecord = (row) => {
-			state.details = row
-			state.dialogDetails = true
-		}
-
-		// 刷新
-		const reLoadData = async () =>{
-			getListByPage()
-		}
-		const editRecord = (index, row) => {
-			state.dialogAddRecord = true
-			state.chosenIndex = index
-			state.addRecord = JSON.parse(JSON.stringify(row))
-		}
-
-		// 新增修改记录
-		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,
-						startHour: Number(state.addRecord.startTime.substring(0, 2)),
-						startMin: Number(state.addRecord.startTime.substring(3)),
-						endHour: Number(state.addRecord.endTime.substring(0, 2)),
-						endMin: Number(state.addRecord.endTime.substring(3))
-					}
-					if (state.chosenIndex == null) {
-						// if (state.addRecord.startTime >= state.addRecord.endTime) {
-						// 	state.addRecord.endTime = '次日' + state.addRecord.endTime
-						// }
-						// state.tableData.unshift(data)
-						await addWorkTimePeriod(data)
-					} else {
-						// if (state.addRecord.startTime >= state.addRecord.endTime) {
-						// 	state.addRecord.endTime = '次日' + state.addRecord.endTime
-						// }
-						// state.tableData[state.chosenIndex] = state.addRecord
-						data.id = state.addRecord.id,
-						await editWorkTimePeriod(data)
-					}
-					state.dialogAddRecord = false
-				} else {
-					console.log('error submit!', fields)
-				}
-			})
-
-		}
-		const closeAdd = () => {
-			state.addRecord = {}
-			state.chosenIndex = null
-		}
-		const openAdd = () => {
-			if (state.chosenIndex == null) {
-				state.addRecord.info = ''
-			}
-		}
-		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,
-			toggleSelection,
-			handleSelectionChange,
-			deleteWorkTimePeriods,
-			searchRecord,
-			clearSearch,
-			viewRecord,
-			deleteRecord,
-			conFirmDelete,
-			getWorkTimePeriod,
-			getListByPage,
-			reLoadData,
-			deleteWorkTimePeriod,
-			handleSizeChange,
-			handleCurrentChange,
-			confirmAddRecord,
-			closeAdd,
-			openAdd,
-			indexClear,
-			editRecord,
-			...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;
-
-			.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;
-			}
-
-			.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%;
-	}
-</style>
diff --git a/src/views/system/personShiftManage/holidayTimeGroup/index.vue b/src/views/system/personShiftManage/holidayTimeGroup/index.vue
deleted file mode 100644
index a3531bc..0000000
--- a/src/views/system/personShiftManage/holidayTimeGroup/index.vue
+++ /dev/null
@@ -1,567 +0,0 @@
-<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="deleteWorkTimePeriods">删除</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="content" 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="editRecord(scope.$index ,scope.row)">修改</el-button>
-							<el-button link type="danger" size="small" :icon="Delete" @click="deleteRecord(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="关联休息时间" v-if="details.content.length>0">
-					<el-input
-							v-model="details.content"
-							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" @open="openAdd">
-			<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="content">
-					<el-select v-model="addRecord.content">
-						<el-option label="周末休息" value="周末休息" />
-						<el-option label="节假日休息" value="节假日休息" />
-					</el-select>
-				</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>
-	</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 { workingHoursApi } from '/@/api/basicDateManage/personShiftManage/workingHours';
-
-
-
-	// 定义接口来定义对象的类型
-	interface stateType {
-		tableData: Array<string>,
-		multipleSelection: Array<any>,
-		deleteArr: Array<any>,
-		dialogDetails: boolean,
-		dialogAddRecord: boolean,
-		deleteDialog: boolean,
-		pageIndex: number,
-		pageSize: number,
-		searchWord: string,
-		totalSize: number,
-		addRecord: {
-			name: string,
-			content: Array<any>,
-			info: string
-		},
-		details: {
-			name: string,
-			content: Array<any>,
-			info: string
-		}
-	}
-
-	export default {
-    name: 'workingHours',
-	components:{},
-    setup() {
-		const userInfo = useUserInfo()
-		const {userInfos} = storeToRefs(userInfo);
-
-		const state = reactive<stateType>({
-			pageIndex: 1,
-			pageSize: 10,
-			totalSize: 0,
-			chosenIndex: null,
-			searchWord: '',
-			tableData: [],
-			multipleSelection: [],
-			dialogDetails: false,
-			dialogAddRecord: false,
-			deleteDialog: false,
-			addRecord: {
-				name: '',
-				content: [],
-				info: ''
-			},
-			details: {
-				name: '',
-				content: [],
-				info: ''
-			},
-			deleteId: null,
-			deleteArr: []
-		})
-		interface User {
-			name: string,
-			content: [],
-			info: string
-		}
-		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 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'}],
-			content: [{required: true, message: '该内容不能为空', trigger: 'blur'}]
-		})
-
-		// 页面载入时执行方法
-		onMounted(() => {
-			// getWorkTimePeriod()
-			getListByPage()
-		})
-
-		// 获取工作时段列表
-		const getWorkTimePeriod = async () => {
-			let res = await workingHoursApi().getWorkTimePeriod({name: state.searchWord});
-			if (res.data.code === '200') {
-				state.tableData = res.data.data.map((item)=>{
-					item.startHour = item.startHour==null?'00':(item.startHour.toString()[1]?item.startHour.toString():'0'+item.startHour.toString())
-					item.startMin = item.startMin==null?'00':(item.startMin.toString()[1]?item.startMin.toString():'0'+item.startMin.toString())
-					item.endHour = item.endHour==null?'00':(item.endHour.toString()[1]?item.endHour.toString():'0'+item.endHour.toString())
-					item.endMin = item.endMin==null?'00':(item.endMin.toString()[1]?item.endMin.toString():'0'+item.endMin.toString())
-					item.startTime = item.startHour + ':' + item.startMin
-					item.endTime = item.endHour + ':' + item.endMin
-					return item
-				})
-			} 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 workingHoursApi().postPeriodPage(data);
-			if (res.data.code === '200') {
-				state.tableData = res.data.data.map((item)=>{
-					item.startHour = item.startHour==null?'00':(item.startHour.toString()[1]?item.startHour.toString():'0'+item.startHour.toString())
-					item.startMin = item.startMin==null?'00':(item.startMin.toString()[1]?item.startMin.toString():'0'+item.startMin.toString())
-					item.endHour = item.endHour==null?'00':(item.endHour.toString()[1]?item.endHour.toString():'0'+item.endHour.toString())
-					item.endMin = item.endMin==null?'00':(item.endMin.toString()[1]?item.endMin.toString():'0'+item.endMin.toString())
-					item.startTime = item.startHour + ':' + item.startMin
-					item.endTime = item.endHour + ':' + item.endMin
-					return item
-				})
-				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 clearSearch = async()=>{
-			state.searchWord=''
-			getListByPage()
-		}
-
-		// 添加工作时段
-		const addWorkTimePeriod = async (data:any) => {
-			let res = await workingHoursApi().postWorkTimePeriod(data);
-			if (res.data.code === '200') {
-				ElMessage({
-					type: 'success',
-					message: res.data.msg
-				});
-				getListByPage()
-			} else {
-				ElMessage({
-					type: 'warning',
-					message: res.data.msg
-				});
-			}
-		};
-
-		// 修改工作时段
-		const editWorkTimePeriod = async (data:any) => {
-			let res = await workingHoursApi().updateWorkTimePeriod(data);
-			if (res.data.code === '200') {
-				ElMessage({
-					type: 'success',
-					message: res.data.msg
-				});
-				getListByPage()
-			} else {
-				ElMessage({
-					type: 'warning',
-					message: res.data.msg
-				});
-			}
-		}
-
-		// 删除工作时段
-		const deleteWorkTimePeriod = async (data:any) => {
-			let res = await workingHoursApi().deletWorkTimePeriod(data);
-			if (res.data.code === '200') {
-				ElMessage({
-					type: 'success',
-					message: res.data.msg
-				});
-				getListByPage()
-			} else {
-				ElMessage({
-					type: 'warning',
-					message: res.data.msg
-				});
-			}
-		}
-
-		const deleteRecord = (row) => {
-			state.deleteId = row.id
-			state.deleteDialog = true
-		}
-
-		const conFirmDelete = () => {
-			deleteWorkTimePeriod({ id: state.deleteId })
-			state.deleteDialog = false
-		}
-
-		// 批量删除
-		const deleteWorkTimePeriods = async () => {
-			if(state.deleteArr.length>0){
-				console.log(state.deleteArr)
-				let res = await workingHoursApi().deleteBatchWorkTimePeriod({ids: state.deleteArr});
-				if (res.data.code === '200') {
-					ElMessage({
-						type: 'success',
-						message: res.data.msg
-					});
-					getListByPage()
-				} else {
-					ElMessage({
-						type: 'warning',
-						message: res.data.msg
-					});
-				}
-			}else{
-				ElMessage({
-					type: 'warning',
-					message: '请先选择要删除的记录'
-				});
-			}
-		}
-
-		const handleSizeChange = (val: number) => {
-			state.pageSize = val
-			getListByPage()
-		}
-		const handleCurrentChange = (val: number) => {
-			state.pageIndex = val
-			getListByPage()
-		}
-
-		// 查看记录
-		const viewRecord = (row) => {
-			state.details = row
-			state.dialogDetails = true
-		}
-
-		// 刷新
-		const reLoadData = async () =>{
-			getListByPage()
-		}
-		const editRecord = (index, row) => {
-			state.dialogAddRecord = true
-			state.chosenIndex = index
-			state.addRecord = JSON.parse(JSON.stringify(row))
-		}
-
-		// 新增修改记录
-		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,
-						startHour: Number(state.addRecord.startTime.substring(0, 2)),
-						startMin: Number(state.addRecord.startTime.substring(3)),
-						endHour: Number(state.addRecord.endTime.substring(0, 2)),
-						endMin: Number(state.addRecord.endTime.substring(3))
-					}
-					if (state.chosenIndex == null) {
-						// if (state.addRecord.startTime >= state.addRecord.endTime) {
-						// 	state.addRecord.endTime = '次日' + state.addRecord.endTime
-						// }
-						// state.tableData.unshift(data)
-						await addWorkTimePeriod(data)
-					} else {
-						// if (state.addRecord.startTime >= state.addRecord.endTime) {
-						// 	state.addRecord.endTime = '次日' + state.addRecord.endTime
-						// }
-						// state.tableData[state.chosenIndex] = state.addRecord
-						data.id = state.addRecord.id,
-						await editWorkTimePeriod(data)
-					}
-					state.dialogAddRecord = false
-				} else {
-					console.log('error submit!', fields)
-				}
-			})
-
-		}
-		const closeAdd = () => {
-			state.addRecord = {}
-			state.chosenIndex = null
-		}
-		const openAdd = () => {
-			if (state.chosenIndex == null) {
-				state.addRecord.info = ''
-			}
-		}
-		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,
-			toggleSelection,
-			handleSelectionChange,
-			deleteWorkTimePeriods,
-			searchRecord,
-			clearSearch,
-			viewRecord,
-			deleteRecord,
-			conFirmDelete,
-			getWorkTimePeriod,
-			getListByPage,
-			reLoadData,
-			deleteWorkTimePeriod,
-			handleSizeChange,
-			handleCurrentChange,
-			confirmAddRecord,
-			closeAdd,
-			openAdd,
-			indexClear,
-			editRecord,
-			...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;
-
-			.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;
-			}
-
-			.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%;
-	}
-</style>
diff --git a/src/views/system/personShiftManage/durationManage/index.vue b/src/views/system/personShiftManage/personTimeManage/durationManage/index.vue
similarity index 100%
rename from src/views/system/personShiftManage/durationManage/index.vue
rename to src/views/system/personShiftManage/personTimeManage/durationManage/index.vue
diff --git a/src/views/system/personShiftManage/workingHoursSet/index.vue b/src/views/system/personShiftManage/personTimeManage/holidayTime/index.vue
similarity index 66%
copy from src/views/system/personShiftManage/workingHoursSet/index.vue
copy to src/views/system/personShiftManage/personTimeManage/holidayTime/index.vue
index 7eeca06..edb8aa9 100644
--- a/src/views/system/personShiftManage/workingHoursSet/index.vue
+++ b/src/views/system/personShiftManage/personTimeManage/holidayTime/index.vue
@@ -4,7 +4,7 @@
 		<el-row class="homeCard">
 			<el-col :span="8">
 				<div class="grid-content topInfo">
-					<el-input v-model="searchWord" placeholder="休息时间组名称"></el-input>
+					<el-input v-model="searchWord" placeholder="休息日名称"></el-input>
 					<el-button type="primary" @click="searchRecord">查询</el-button>
 					<el-button plain @click="clearSearch">重置</el-button>
 				</div>
@@ -29,8 +29,10 @@
 						@selection-change="handleSelectionChange"
 				>
 					<el-table-column type="selection" width="100" />
-					<el-table-column property="name" label="工作时间组名称"/>
-					<el-table-column property="list" :formatter="toNames" label="关联工作时段"/>
+					<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">
@@ -56,17 +58,29 @@
 			</div>
 		</div>
 		</div>
-		<el-dialog v-model="dialogDetails" title="工作时间组">
+		<el-dialog v-model="dialogDetails" title="休息时间">
 			<el-form :model="details" label-width="120px">
-				<el-form-item label="时间组名称">
+				<el-form-item label="名称">
 					<el-input
 							v-model="details.name"
 							readonly
 					/>
 				</el-form-item>
-				<el-form-item label="关联工作时段" v-if="details.list.length>0">
+				<el-form-item label="休假类型">
 					<el-input
-							v-model="details.list"
+							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>
@@ -82,18 +96,33 @@
 				</el-form-item>
 			</el-form>
 		</el-dialog>
-		<el-dialog v-model="dialogAddRecord" title="工作时间组编辑" @close="closeAdd" @open="openAdd">
+		<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-form-item label="休息日名称" prop="name">
 					<el-input
 							v-model="addRecord.name"
 					>
 					</el-input>
 				</el-form-item>
-				<el-form-item label="关联工作时段" prop="list">
-					<el-select v-model="addRecord.list" multiple>
-						<el-option v-for="(item,index) in workTimeList" :key="index" :label="item.name" :value="item.id" />
+				<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
@@ -138,35 +167,42 @@
 	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 { workingHoursSetApi } from '/@/api/basicDateManage/personShiftManage/workingHoursSet';
-	import { workingHoursApi } from '/@/api/basicDateManage/personShiftManage/workingHours';
+	import { holidayTimeApi } from '/@/api/basicDateManage/personShiftManage/holidayTime';
+	import {workingHoursSetApi} from "/@/api/basicDateManage/personShiftManage/workingHoursSet";
+
 
 
 	// 定义接口来定义对象的类型
 	interface stateType {
 		tableData: Array<string>,
-		pageRecord: Array<string>,
-		workTimeList: 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;
+		deleteSetDialog: boolean,
 		pageIndex: number,
 		pageSize: number,
-		chosenIndex: null | number,
-		deleteId: null | number,
 		searchWord: string,
+		chosenIndex: null| number,
+		casProps: object,
+		deleteId: null| number,
 		totalSize: number,
 		addRecord: {
 			name: string,
-			list: Array<any>,
+			type: number | string,
+			rule: number | string,
+			ruleNumber: Array<number> | string,
 			info: string
 		},
 		details: {
 			name: string,
-			list: Array<any>,
+			type: string,
+			rule: string,
+			ruleNumber: string,
 			info: string
 		}
 	}
@@ -185,21 +221,80 @@
 			chosenIndex: null,
 			searchWord: '',
 			tableData: [],
-			pageRecord: [],
-			workTimeList: [],
+			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: '',
-				list: [],
+				type: '',
+				rule: '',
+				ruleNumber: [],
 				info: ''
 			},
 			details: {
 				name: '',
-				list: [],
+				type: '',
+				rule: '',
+				ruleNumber: '',
 				info: ''
 			},
 			deleteId: null,
@@ -207,9 +302,28 @@
 		})
 		interface User {
 			name: string,
-			list: [],
+			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 handleChange = (value) => {
+			state.addRecord.content = []
+			console.log(JSON.parse(JSON.stringify(value)))
+		}
+
 		const multipleTableRef = ref<InstanceType<typeof ElTable>>()
 		const toggleSelection = (rows?: User[]) => {
 			if (rows) {
@@ -224,6 +338,16 @@
 			}
 		}
 
+		// 休息类型改变时操作
+		const typeChange =()=>{
+			state.addRecord.rule = ''
+			state.addRecord.ruleNumber = []
+		}
+		// 休息规则改变时操作
+		const ruleChange =()=>{
+			state.addRecord.ruleNumber = []
+		}
+
 		// 多选
 		const handleSelectionChange = (val: User[]) => {
 			state.multipleSelection = JSON.parse(JSON.stringify(val))
@@ -236,61 +360,34 @@
 		const addRef = ref<FormInstance>()
 		const addRules = reactive<FormRules>({
 			name: [{required: true, message: '该内容不能为空', trigger: 'blur'}],
-			list: [{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()
-			getWorkTimePeriod()
 		})
 
-		// 分页获取工作时间组列表
+		// 休假类型格式化
+		// 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 workingHoursSetApi().postWorkTimeGroupPage(data);
+			let res = await holidayTimeApi().getAllBreakTimeRuleByPage(data);
 			if (res.data.code === '200') {
-				state.pageRecord = res.data.data
 				state.tableData = res.data.data.map((item)=>{
-					if(item.list == null){
-						item.list = []
-					}else{
-						item.list= Array.from(item.list,({workTimePeriodId})=>workTimePeriodId)
-					}
+					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 toNames =(row, column, cellValue, index) => {
-			if(row.list==[]){
-				return []
-			}else{
-				const nameList = []
-				for(let i=0;i<row.list.length;i++){
-					for(let t=0;t<state.workTimeList.length;t++){
-						if(row.list[i]==state.workTimeList[t].id){
-							nameList.push(state.workTimeList[t].name)
-						}
-					}
-				}
-				return nameList.join()
-			}
-		}
-
-		// 获取工作时段列表
-		const getWorkTimePeriod = async () => {
-			let res = await workingHoursApi().getWorkTimePeriod();
-			if (res.data.code === '200') {
-				state.workTimeList = res.data.data
-				console.log(state.workTimeList,'list')
 			} else {
 				ElMessage({
 					type: 'warning',
@@ -316,9 +413,9 @@
 			getListByPage()
 		}
 
-		// 添加工作时段方法
+		// 添加休息时间
 		const addRecord = async (data:any) => {
-			let res = await workingHoursSetApi().addWorkTimeGroup(data);
+			let res = await holidayTimeApi().addBreakTime(data);
 			if (res.data.code === '200') {
 				ElMessage({
 					type: 'success',
@@ -333,9 +430,21 @@
 			}
 		};
 
-		// 修改工作时段方法
+		// 修改休息时间
+		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 workingHoursSetApi().updateWorkTimeGroup(data);
+			let res = await holidayTimeApi().updateBreakTime(data);
 			if (res.data.code === '200') {
 				ElMessage({
 					type: 'success',
@@ -358,13 +467,23 @@
 					const data = {
 						name: state.addRecord.name,
 						info: state.addRecord.info,
-						workTimePeriodIds: state.addRecord.list
+						type: Number(state.addRecord.type),
+						rule: Number(state.addRecord.rule),
+						ruleNumber: state.addRecord.ruleNumber.sort(compare).join(',')
 					}
 					if (state.chosenIndex == null) {
-						await addRecord(data)
+						if(data.type == 2 && data.ruleNumber==''){
+							ElMessage({
+								type: 'warning',
+								message: '请至少选择一个休息时间'
+							});
+							return
+						} else{
+							await addRecord(data)
+						}
 					} else {
-						data.id = JSON.stringify(state.addRecord.id),
-								console.log(data,'修改参数')
+						data.id = state.addRecord.id,
+						console.log(data,'提交时的参数data')
 						await editRecord(data)
 					}
 					state.dialogAddRecord = false
@@ -374,10 +493,20 @@
 			})
 
 		}
+		const closeAdd = () => {
+			state.addRecord = {
+				name: '',
+				type: '',
+				rule: '',
+				ruleNumber: [],
+				info: ''
+			}
+			state.chosenIndex = null
+		}
 
-		// 删除工作时间组方法
+		// 删除工作时段
 		const deleteRecord = async (data:any) => {
-			let res = await workingHoursSetApi().deleteWorkTimeGroup(data);
+			let res = await holidayTimeApi().deleteBreakTime(data);
 			if (res.data.code === '200') {
 				ElMessage({
 					type: 'success',
@@ -415,7 +544,7 @@
 		};
 
 		const conFirmDeleteBatch = async () => {
-			let res = await workingHoursSetApi().deletBatchWorkTimeGroup({ids: state.deleteArr});
+			let res = await holidayTimeApi().deleteBatch({ids: state.deleteArr});
 			if (res.data.code === '200') {
 				state.deleteSetDialog = false
 				ElMessage({
@@ -444,18 +573,6 @@
 		// 查看记录
 		const viewRecord = (row) => {
 			state.details = JSON.parse(JSON.stringify(row))
-			if(row.list==[]){
-				state.details.list = []
-			}else{
-				state.details.list = []
-				for(let i=0;i<row.list.length;i++){
-					for(let t=0;t<state.workTimeList.length;t++){
-						if(row.list[i]==state.workTimeList[t].id){
-							state.details.list.push(state.workTimeList[t].name)
-						}
-					}
-				}
-			}
 			state.dialogDetails = true
 		}
 
@@ -463,21 +580,7 @@
 		const reLoadData = async () =>{
 			getListByPage()
 		}
-		// 点击修改
-		const editRecordBtn = (index, row) => {
-			state.dialogAddRecord = true
-			state.chosenIndex = index
-			state.addRecord = JSON.parse(JSON.stringify(row))
-		}
-		const closeAdd = () => {
-			state.addRecord = {}
-			state.chosenIndex = null
-		}
-		const openAdd = () => {
-			if (state.chosenIndex == null) {
-				state.addRecord.info = ''
-			}
-		}
+
 		const indexClear = () => {
 			state.deleteId = null
 		}
@@ -496,25 +599,25 @@
 			Delete,
 			Refresh,
 			Plus,
-			toNames,
+			typeChange,
+			ruleChange,
+			compare,
 			toggleSelection,
 			handleSelectionChange,
+			deleteBatchBtn,
+			conFirmDeleteBatch,
 			searchRecord,
 			clearSearch,
 			viewRecord,
 			deleteRecordBtn,
 			conFirmDelete,
 			getListByPage,
-			getWorkTimePeriod,
 			reLoadData,
 			deleteRecord,
-			deleteBatchBtn,
-			conFirmDeleteBatch,
 			handleSizeChange,
 			handleCurrentChange,
 			confirmAddRecord,
 			closeAdd,
-			openAdd,
 			indexClear,
 			editRecordBtn,
 			...toRefs(state)
diff --git a/src/views/system/personShiftManage/workingHoursSet/index.vue b/src/views/system/personShiftManage/personTimeManage/holidayTimeGroup/index.vue
similarity index 87%
copy from src/views/system/personShiftManage/workingHoursSet/index.vue
copy to src/views/system/personShiftManage/personTimeManage/holidayTimeGroup/index.vue
index 7eeca06..b71469e 100644
--- a/src/views/system/personShiftManage/workingHoursSet/index.vue
+++ b/src/views/system/personShiftManage/personTimeManage/holidayTimeGroup/index.vue
@@ -29,8 +29,8 @@
 						@selection-change="handleSelectionChange"
 				>
 					<el-table-column type="selection" width="100" />
-					<el-table-column property="name" label="工作时间组名称"/>
-					<el-table-column property="list" :formatter="toNames" label="关联工作时段"/>
+					<el-table-column property="name" label="休息时间组名称"/>
+					<el-table-column property="list" :formatter="toNames" label="关联休息时间"/>
 					<el-table-column property="info" label="描述信息"/>
 					<el-table-column fixed="right" label="操作" align="center" width="250">
 						<template #default="scope">
@@ -56,7 +56,7 @@
 			</div>
 		</div>
 		</div>
-		<el-dialog v-model="dialogDetails" title="工作时间组">
+		<el-dialog v-model="dialogDetails" title="休息时间组">
 			<el-form :model="details" label-width="120px">
 				<el-form-item label="时间组名称">
 					<el-input
@@ -64,7 +64,7 @@
 							readonly
 					/>
 				</el-form-item>
-				<el-form-item label="关联工作时段" v-if="details.list.length>0">
+				<el-form-item label="关联休息时间" v-if="details.list.length>0">
 					<el-input
 							v-model="details.list"
 							readonly
@@ -82,7 +82,7 @@
 				</el-form-item>
 			</el-form>
 		</el-dialog>
-		<el-dialog v-model="dialogAddRecord" title="工作时间组编辑" @close="closeAdd" @open="openAdd">
+		<el-dialog v-model="dialogAddRecord" title="休息时间组编辑" @close="closeAdd" @open="openAdd">
 			<el-form :model="addRecord" label-width="120px" ref="addRef" :rules="addRules">
 				<el-form-item label="时间组名称" prop="name">
 					<el-input
@@ -90,9 +90,9 @@
 					>
 					</el-input>
 				</el-form-item>
-				<el-form-item label="关联工作时段" prop="list">
+				<el-form-item label="关联休息时间" prop="list">
 					<el-select v-model="addRecord.list" multiple>
-						<el-option v-for="(item,index) in workTimeList" :key="index" :label="item.name" :value="item.id" />
+						<el-option v-for="(item,index) in holidayTimeList" :key="index" :label="item.name" :value="item.id" />
 					</el-select>
 				</el-form-item>
 				<el-form-item label="描述信息" prop="info">
@@ -138,15 +138,13 @@
 	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 { workingHoursSetApi } from '/@/api/basicDateManage/personShiftManage/workingHoursSet';
-	import { workingHoursApi } from '/@/api/basicDateManage/personShiftManage/workingHours';
+	import { holidayGroupApi } from '/@/api/basicDateManage/personShiftManage/holidayTimeGroup';
 
 
 	// 定义接口来定义对象的类型
 	interface stateType {
 		tableData: Array<string>,
-		pageRecord: Array<string>,
-		workTimeList: Array<string>,
+		holidayTimeList: Array<string>,
 		multipleSelection: Array<any>,
 		deleteArr: Array<any>,
 		dialogDetails: boolean,
@@ -185,8 +183,7 @@
 			chosenIndex: null,
 			searchWord: '',
 			tableData: [],
-			pageRecord: [],
-			workTimeList: [],
+			holidayTimeList: [],
 			multipleSelection: [],
 			dialogDetails: false,
 			dialogAddRecord: false,
@@ -207,7 +204,7 @@
 		})
 		interface User {
 			name: string,
-			list: [],
+			list: Array<any>,
 			info: string
 		}
 		const multipleTableRef = ref<InstanceType<typeof ElTable>>()
@@ -242,20 +239,19 @@
 		// 页面载入时执行方法
 		onMounted(() => {
 			getListByPage()
-			getWorkTimePeriod()
+			getAllBreak()
 		})
 
-		// 分页获取工作时间组列表
+		// 分页获取休息时间组列表
 		const getListByPage = async ()=>{
 			const data = {pageSize: state.pageSize,pageIndex: state.pageIndex,searchParams:{name: state.searchWord}}
-			let res = await workingHoursSetApi().postWorkTimeGroupPage(data);
+			let res = await holidayGroupApi().getRecordPage(data);
 			if (res.data.code === '200') {
-				state.pageRecord = res.data.data
 				state.tableData = res.data.data.map((item)=>{
 					if(item.list == null){
 						item.list = []
 					}else{
-						item.list= Array.from(item.list,({workTimePeriodId})=>workTimePeriodId)
+						item.list= Array.from(item.list,({breakTimeRuleId})=>breakTimeRuleId)
 					}
 					return item
 				})
@@ -275,9 +271,9 @@
 			}else{
 				const nameList = []
 				for(let i=0;i<row.list.length;i++){
-					for(let t=0;t<state.workTimeList.length;t++){
-						if(row.list[i]==state.workTimeList[t].id){
-							nameList.push(state.workTimeList[t].name)
+					for(let t=0;t<state.holidayTimeList.length;t++){
+						if(row.list[i]==state.holidayTimeList[t].id){
+							nameList.push(state.holidayTimeList[t].name)
 						}
 					}
 				}
@@ -286,11 +282,10 @@
 		}
 
 		// 获取工作时段列表
-		const getWorkTimePeriod = async () => {
-			let res = await workingHoursApi().getWorkTimePeriod();
+		const getAllBreak = async () => {
+			let res = await holidayGroupApi().getAllBreak();
 			if (res.data.code === '200') {
-				state.workTimeList = res.data.data
-				console.log(state.workTimeList,'list')
+				state.holidayTimeList = res.data.data
 			} else {
 				ElMessage({
 					type: 'warning',
@@ -318,7 +313,7 @@
 
 		// 添加工作时段方法
 		const addRecord = async (data:any) => {
-			let res = await workingHoursSetApi().addWorkTimeGroup(data);
+			let res = await holidayGroupApi().addRecord(data);
 			if (res.data.code === '200') {
 				ElMessage({
 					type: 'success',
@@ -335,7 +330,7 @@
 
 		// 修改工作时段方法
 		const editRecord = async (data:any) => {
-			let res = await workingHoursSetApi().updateWorkTimeGroup(data);
+			let res = await holidayGroupApi().updateRecord(data);
 			if (res.data.code === '200') {
 				ElMessage({
 					type: 'success',
@@ -358,13 +353,12 @@
 					const data = {
 						name: state.addRecord.name,
 						info: state.addRecord.info,
-						workTimePeriodIds: state.addRecord.list
+						breakTimeRuleIds: state.addRecord.list
 					}
 					if (state.chosenIndex == null) {
 						await addRecord(data)
 					} else {
 						data.id = JSON.stringify(state.addRecord.id),
-								console.log(data,'修改参数')
 						await editRecord(data)
 					}
 					state.dialogAddRecord = false
@@ -377,7 +371,7 @@
 
 		// 删除工作时间组方法
 		const deleteRecord = async (data:any) => {
-			let res = await workingHoursSetApi().deleteWorkTimeGroup(data);
+			let res = await holidayGroupApi().deleteRecord(data);
 			if (res.data.code === '200') {
 				ElMessage({
 					type: 'success',
@@ -415,7 +409,7 @@
 		};
 
 		const conFirmDeleteBatch = async () => {
-			let res = await workingHoursSetApi().deletBatchWorkTimeGroup({ids: state.deleteArr});
+			let res = await holidayGroupApi().deletBatchRecord({ids: state.deleteArr});
 			if (res.data.code === '200') {
 				state.deleteSetDialog = false
 				ElMessage({
@@ -449,9 +443,9 @@
 			}else{
 				state.details.list = []
 				for(let i=0;i<row.list.length;i++){
-					for(let t=0;t<state.workTimeList.length;t++){
-						if(row.list[i]==state.workTimeList[t].id){
-							state.details.list.push(state.workTimeList[t].name)
+					for(let t=0;t<state.holidayTimeList.length;t++){
+						if(row.list[i]==state.holidayTimeList[t].id){
+							state.details.list.push(state.holidayTimeList[t].name)
 						}
 					}
 				}
@@ -505,7 +499,7 @@
 			deleteRecordBtn,
 			conFirmDelete,
 			getListByPage,
-			getWorkTimePeriod,
+			getAllBreak,
 			reLoadData,
 			deleteRecord,
 			deleteBatchBtn,
diff --git a/src/views/system/personShiftManage/workingHoursSet/index.vue b/src/views/system/personShiftManage/personTimeManage/timeStrategy/index.vue
similarity index 77%
copy from src/views/system/personShiftManage/workingHoursSet/index.vue
copy to src/views/system/personShiftManage/personTimeManage/timeStrategy/index.vue
index 7eeca06..45800d3 100644
--- a/src/views/system/personShiftManage/workingHoursSet/index.vue
+++ b/src/views/system/personShiftManage/personTimeManage/timeStrategy/index.vue
@@ -4,7 +4,7 @@
 		<el-row class="homeCard">
 			<el-col :span="8">
 				<div class="grid-content topInfo">
-					<el-input v-model="searchWord" placeholder="休息时间组名称"></el-input>
+					<el-input v-model="searchWord" placeholder="时间策略名称"></el-input>
 					<el-button type="primary" @click="searchRecord">查询</el-button>
 					<el-button plain @click="clearSearch">重置</el-button>
 				</div>
@@ -29,8 +29,9 @@
 						@selection-change="handleSelectionChange"
 				>
 					<el-table-column type="selection" width="100" />
-					<el-table-column property="name" label="工作时间组名称"/>
-					<el-table-column property="list" :formatter="toNames" label="关联工作时段"/>
+					<el-table-column property="name" label="时间策略名称"/>
+					<el-table-column property="workList" label="关联工作时间组"/>
+					<el-table-column property="restList" label="关联休息时间组"/>
 					<el-table-column property="info" label="描述信息"/>
 					<el-table-column fixed="right" label="操作" align="center" width="250">
 						<template #default="scope">
@@ -56,17 +57,23 @@
 			</div>
 		</div>
 		</div>
-		<el-dialog v-model="dialogDetails" title="工作时间组">
+		<el-dialog v-model="dialogDetails" title="时间策略">
 			<el-form :model="details" label-width="120px">
-				<el-form-item label="时间组名称">
+				<el-form-item label="策略名称">
 					<el-input
 							v-model="details.name"
 							readonly
 					/>
 				</el-form-item>
-				<el-form-item label="关联工作时段" v-if="details.list.length>0">
+				<el-form-item label="关联工作时间组">
 					<el-input
-							v-model="details.list"
+							v-model="details.workList"
+							readonly
+					/>
+				</el-form-item>
+				<el-form-item label="关联休息时间组">
+					<el-input
+							v-model="details.restList"
 							readonly
 					/>
 				</el-form-item>
@@ -82,17 +89,22 @@
 				</el-form-item>
 			</el-form>
 		</el-dialog>
-		<el-dialog v-model="dialogAddRecord" title="工作时间组编辑" @close="closeAdd" @open="openAdd">
+		<el-dialog v-model="dialogAddRecord" title="时间策略编辑" @close="closeAdd" @open="openAdd">
 			<el-form :model="addRecord" label-width="120px" ref="addRef" :rules="addRules">
-				<el-form-item label="时间组名称" prop="name">
+				<el-form-item label="策略名称" prop="name">
 					<el-input
 							v-model="addRecord.name"
 					>
 					</el-input>
 				</el-form-item>
-				<el-form-item label="关联工作时段" prop="list">
-					<el-select v-model="addRecord.list" multiple>
+				<el-form-item label="关联工作时间组" prop="workList">
+					<el-select v-model="addRecord.workList">
 						<el-option v-for="(item,index) in workTimeList" :key="index" :label="item.name" :value="item.id" />
+					</el-select>
+				</el-form-item>
+				<el-form-item label="关联休息时间组" prop="restList">
+					<el-select v-model="addRecord.restList">
+						<el-option v-for="(item,index) in restTimeList" :key="index" :label="item.name" :value="item.id" />
 					</el-select>
 				</el-form-item>
 				<el-form-item label="描述信息" prop="info">
@@ -138,15 +150,14 @@
 	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 { workingHoursSetApi } from '/@/api/basicDateManage/personShiftManage/workingHoursSet';
-	import { workingHoursApi } from '/@/api/basicDateManage/personShiftManage/workingHours';
+	import { timeStrategyApi } from '/@/api/basicDateManage/personShiftManage/timeStrategy';
 
 
 	// 定义接口来定义对象的类型
 	interface stateType {
 		tableData: Array<string>,
-		pageRecord: Array<string>,
 		workTimeList: Array<string>,
+		restTimeList: Array<string>,
 		multipleSelection: Array<any>,
 		deleteArr: Array<any>,
 		dialogDetails: boolean,
@@ -161,12 +172,14 @@
 		totalSize: number,
 		addRecord: {
 			name: string,
-			list: Array<any>,
+			workList: string,
+			restList: string,
 			info: string
 		},
 		details: {
 			name: string,
-			list: Array<any>,
+			workList: string,
+			restList: string,
 			info: string
 		}
 	}
@@ -185,8 +198,8 @@
 			chosenIndex: null,
 			searchWord: '',
 			tableData: [],
-			pageRecord: [],
 			workTimeList: [],
+			restTimeList: [],
 			multipleSelection: [],
 			dialogDetails: false,
 			dialogAddRecord: false,
@@ -194,12 +207,14 @@
 			deleteSetDialog: false,
 			addRecord: {
 				name: '',
-				list: [],
+				workList: '',
+				restList: '',
 				info: ''
 			},
 			details: {
 				name: '',
-				list: [],
+				workList: '',
+				restList: '',
 				info: ''
 			},
 			deleteId: null,
@@ -207,7 +222,8 @@
 		})
 		interface User {
 			name: string,
-			list: [],
+			workList: string,
+			restList: string,
 			info: string
 		}
 		const multipleTableRef = ref<InstanceType<typeof ElTable>>()
@@ -236,29 +252,46 @@
 		const addRef = ref<FormInstance>()
 		const addRules = reactive<FormRules>({
 			name: [{required: true, message: '该内容不能为空', trigger: 'blur'}],
-			list: [{required: true, message: '该内容不能为空', trigger: 'blur'}]
+			workList: [{required: true, message: '该内容不能为空', trigger: 'blur'}],
+			restList: [{required: true, message: '该内容不能为空', trigger: 'blur'}]
 		})
 
 		// 页面载入时执行方法
 		onMounted(() => {
 			getListByPage()
-			getWorkTimePeriod()
+			getWorkTimeList()
+			getRestTimeList()
 		})
 
-		// 分页获取工作时间组列表
+		// 分页获取休息时间组列表
 		const getListByPage = async ()=>{
 			const data = {pageSize: state.pageSize,pageIndex: state.pageIndex,searchParams:{name: state.searchWord}}
-			let res = await workingHoursSetApi().postWorkTimeGroupPage(data);
+			let res = await timeStrategyApi().getRecordPage(data);
 			if (res.data.code === '200') {
-				state.pageRecord = res.data.data
 				state.tableData = res.data.data.map((item)=>{
-					if(item.list == null){
-						item.list = []
+					// if(item.workTimeGroupRespDTO == null || item.workTimeGroupRespDTO.list == []){
+					// 	item.workList = []
+					// }else{
+					// 	item.workList= Array.from(item.workTimeGroupRespDTO.list,({workTimeGroupId})=>workTimeGroupId)
+					// }
+					// if(item.breakTimeGroupRespDTO == null || item.breakTimeGroupRespDTO.list == []){
+					// 	item.restList = []
+					// }else{
+					// 	item.restList= Array.from(item.breakTimeGroupRespDTO.list,({breakTimeGroupId})=>breakTimeGroupId)
+					// }
+					if(item.workTimeGroupRespDTO == null){
+						item.workList = ''
 					}else{
-						item.list= Array.from(item.list,({workTimePeriodId})=>workTimePeriodId)
+						item.workList= item.workTimeGroupRespDTO.name
+					}
+					if(item.breakTimeGroupRespDTO == null){
+						item.restList = ''
+					}else{
+						item.restList= item.breakTimeGroupRespDTO.name
 					}
 					return item
 				})
+				console.log(state.tableData,'state.tableData')
 				state.totalSize = res.data.total
 			} else {
 				ElMessage({
@@ -268,29 +301,24 @@
 			}
 		}
 
-		// 表格数据格式化
-		const toNames =(row, column, cellValue, index) => {
-			if(row.list==[]){
-				return []
-			}else{
-				const nameList = []
-				for(let i=0;i<row.list.length;i++){
-					for(let t=0;t<state.workTimeList.length;t++){
-						if(row.list[i]==state.workTimeList[t].id){
-							nameList.push(state.workTimeList[t].name)
-						}
-					}
-				}
-				return nameList.join()
+		// 获取工作时间组列表
+		const getWorkTimeList = async () => {
+			let res = await timeStrategyApi().getWorkTimeList();
+			if (res.data.code === '200') {
+				state.workTimeList = res.data.data
+			} else {
+				ElMessage({
+					type: 'warning',
+					message: res.data.msg
+				});
 			}
 		}
 
-		// 获取工作时段列表
-		const getWorkTimePeriod = async () => {
-			let res = await workingHoursApi().getWorkTimePeriod();
+		// 获取休息时间组列表
+		const getRestTimeList = async () => {
+			let res = await timeStrategyApi().getRestTimeList();
 			if (res.data.code === '200') {
-				state.workTimeList = res.data.data
-				console.log(state.workTimeList,'list')
+				state.restTimeList = res.data.data
 			} else {
 				ElMessage({
 					type: 'warning',
@@ -318,7 +346,7 @@
 
 		// 添加工作时段方法
 		const addRecord = async (data:any) => {
-			let res = await workingHoursSetApi().addWorkTimeGroup(data);
+			let res = await timeStrategyApi().addRecord(data);
 			if (res.data.code === '200') {
 				ElMessage({
 					type: 'success',
@@ -335,7 +363,7 @@
 
 		// 修改工作时段方法
 		const editRecord = async (data:any) => {
-			let res = await workingHoursSetApi().updateWorkTimeGroup(data);
+			let res = await timeStrategyApi().updateRecord(data);
 			if (res.data.code === '200') {
 				ElMessage({
 					type: 'success',
@@ -358,13 +386,19 @@
 					const data = {
 						name: state.addRecord.name,
 						info: state.addRecord.info,
-						workTimePeriodIds: state.addRecord.list
+						workTimeGroupId: state.addRecord.workList,
+						breakTimeGroupId: state.addRecord.restList
 					}
 					if (state.chosenIndex == null) {
 						await addRecord(data)
 					} else {
-						data.id = JSON.stringify(state.addRecord.id),
-								console.log(data,'修改参数')
+						data.id = JSON.stringify(state.addRecord.id)
+						if(typeof state.addRecord.workList == 'string'){
+							data.workTimeGroupId = state.addRecord.workTimeGroupId
+						}
+						if(typeof state.addRecord.restList == 'string'){
+							data.breakTimeGroupId = state.addRecord.breakTimeGroupId
+						}
 						await editRecord(data)
 					}
 					state.dialogAddRecord = false
@@ -377,7 +411,7 @@
 
 		// 删除工作时间组方法
 		const deleteRecord = async (data:any) => {
-			let res = await workingHoursSetApi().deleteWorkTimeGroup(data);
+			let res = await timeStrategyApi().deleteRecord(data);
 			if (res.data.code === '200') {
 				ElMessage({
 					type: 'success',
@@ -415,7 +449,7 @@
 		};
 
 		const conFirmDeleteBatch = async () => {
-			let res = await workingHoursSetApi().deletBatchWorkTimeGroup({ids: state.deleteArr});
+			let res = await timeStrategyApi().deletBatchRecord({ids: state.deleteArr});
 			if (res.data.code === '200') {
 				state.deleteSetDialog = false
 				ElMessage({
@@ -444,18 +478,6 @@
 		// 查看记录
 		const viewRecord = (row) => {
 			state.details = JSON.parse(JSON.stringify(row))
-			if(row.list==[]){
-				state.details.list = []
-			}else{
-				state.details.list = []
-				for(let i=0;i<row.list.length;i++){
-					for(let t=0;t<state.workTimeList.length;t++){
-						if(row.list[i]==state.workTimeList[t].id){
-							state.details.list.push(state.workTimeList[t].name)
-						}
-					}
-				}
-			}
 			state.dialogDetails = true
 		}
 
@@ -468,6 +490,7 @@
 			state.dialogAddRecord = true
 			state.chosenIndex = index
 			state.addRecord = JSON.parse(JSON.stringify(row))
+			console.log(state.addRecord,'state.addRecord')
 		}
 		const closeAdd = () => {
 			state.addRecord = {}
@@ -496,7 +519,6 @@
 			Delete,
 			Refresh,
 			Plus,
-			toNames,
 			toggleSelection,
 			handleSelectionChange,
 			searchRecord,
@@ -505,7 +527,8 @@
 			deleteRecordBtn,
 			conFirmDelete,
 			getListByPage,
-			getWorkTimePeriod,
+			getWorkTimeList,
+			getRestTimeList,
 			reLoadData,
 			deleteRecord,
 			deleteBatchBtn,
diff --git a/src/views/system/personShiftManage/workingHoursSet/index.vue b/src/views/system/personShiftManage/personTimeManage/workingHoursSet/index.vue
similarity index 99%
rename from src/views/system/personShiftManage/workingHoursSet/index.vue
rename to src/views/system/personShiftManage/personTimeManage/workingHoursSet/index.vue
index 7eeca06..160f8d3 100644
--- a/src/views/system/personShiftManage/workingHoursSet/index.vue
+++ b/src/views/system/personShiftManage/personTimeManage/workingHoursSet/index.vue
@@ -145,7 +145,6 @@
 	// 定义接口来定义对象的类型
 	interface stateType {
 		tableData: Array<string>,
-		pageRecord: Array<string>,
 		workTimeList: Array<string>,
 		multipleSelection: Array<any>,
 		deleteArr: Array<any>,
@@ -185,7 +184,6 @@
 			chosenIndex: null,
 			searchWord: '',
 			tableData: [],
-			pageRecord: [],
 			workTimeList: [],
 			multipleSelection: [],
 			dialogDetails: false,
@@ -250,7 +248,6 @@
 			const data = {pageSize: state.pageSize,pageIndex: state.pageIndex,searchParams:{name: state.searchWord}}
 			let res = await workingHoursSetApi().postWorkTimeGroupPage(data);
 			if (res.data.code === '200') {
-				state.pageRecord = res.data.data
 				state.tableData = res.data.data.map((item)=>{
 					if(item.list == null){
 						item.list = []
diff --git a/src/views/system/personShiftManage/workingHoursSet/index.vue b/src/views/system/personShiftManage/shiftManage/teamManage/index.vue
similarity index 69%
copy from src/views/system/personShiftManage/workingHoursSet/index.vue
copy to src/views/system/personShiftManage/shiftManage/teamManage/index.vue
index 7eeca06..56e9ca5 100644
--- a/src/views/system/personShiftManage/workingHoursSet/index.vue
+++ b/src/views/system/personShiftManage/shiftManage/teamManage/index.vue
@@ -4,7 +4,7 @@
 		<el-row class="homeCard">
 			<el-col :span="8">
 				<div class="grid-content topInfo">
-					<el-input v-model="searchWord" placeholder="休息时间组名称"></el-input>
+					<el-input v-model="searchWord" placeholder="时间策略名称"></el-input>
 					<el-button type="primary" @click="searchRecord">查询</el-button>
 					<el-button plain @click="clearSearch">重置</el-button>
 				</div>
@@ -29,9 +29,9 @@
 						@selection-change="handleSelectionChange"
 				>
 					<el-table-column type="selection" width="100" />
-					<el-table-column property="name" label="工作时间组名称"/>
-					<el-table-column property="list" :formatter="toNames" label="关联工作时段"/>
-					<el-table-column property="info" label="描述信息"/>
+					<el-table-column property="groupName" label="班组名称"/>
+					<el-table-column property="groupMembers" label="班组人员" width="180" :show-overflow-tooltip="true"/>
+					<el-table-column property="groupInfo" 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>
@@ -56,48 +56,50 @@
 			</div>
 		</div>
 		</div>
-		<el-dialog v-model="dialogDetails" title="工作时间组">
+		<el-dialog v-model="dialogDetails" title="时间策略">
 			<el-form :model="details" label-width="120px">
-				<el-form-item label="时间组名称">
+				<el-form-item label="班组名称">
 					<el-input
-							v-model="details.name"
+							v-model="details.groupName"
 							readonly
 					/>
 				</el-form-item>
-				<el-form-item label="关联工作时段" v-if="details.list.length>0">
-					<el-input
-							v-model="details.list"
-							readonly
-					/>
+				<el-form-item label="班组人员">
+					<el-input v-model="details.groupMembers" type="textarea" readonly/>
 				</el-form-item>
-				<el-form-item label="描述信息" v-if="details.info">
-					<el-input
-							v-model="details.info"
-							type="textarea"
-							readonly
-					/>
+				<el-form-item label="描述">
+					<el-input v-model="details.groupInfo" 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" @open="openAdd">
+		<el-dialog v-model="dialogAddRecord" title="时间策略编辑" @close="closeAdd" @open="openAdd">
 			<el-form :model="addRecord" label-width="120px" ref="addRef" :rules="addRules">
-				<el-form-item label="时间组名称" prop="name">
+				<el-form-item label="班组名称" prop="groupName">
 					<el-input
-							v-model="addRecord.name"
+							v-model="addRecord.groupName"
 					>
 					</el-input>
 				</el-form-item>
-				<el-form-item label="关联工作时段" prop="list">
-					<el-select v-model="addRecord.list" multiple>
-						<el-option v-for="(item,index) in workTimeList" :key="index" :label="item.name" :value="item.id" />
+				<el-form-item label="选择部门" prop="department">
+					<el-cascader
+							v-model="addRecord.department"
+							:options="departmentList"
+							:props="casProps"
+							:show-all-levels="false"
+							@change="handleChange"
+					/>
+				</el-form-item>
+				<el-form-item label="选择人员" prop="groupMembers" v-if="addRecord.department !== ''">
+					<el-select v-model="addRecord.groupMembers" multiple>
+						<el-option v-for="(item,index) in workerList" :label="item.username" :key="index" :value="item.uid">{{item.username}}</el-option>
 					</el-select>
 				</el-form-item>
-				<el-form-item label="描述信息" prop="info">
+				<el-form-item label="描述" prop="groupInfo">
 					<el-input
-							v-model="addRecord.info"
+							v-model="addRecord.groupInfo"
 							type="textarea"
 					>
 					</el-input>
@@ -138,15 +140,15 @@
 	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 { workingHoursSetApi } from '/@/api/basicDateManage/personShiftManage/workingHoursSet';
-	import { workingHoursApi } from '/@/api/basicDateManage/personShiftManage/workingHours';
+	import { teamManageApi } from '/@/api/basicDateManage/personShiftManage/teamManage';
 
 
 	// 定义接口来定义对象的类型
 	interface stateType {
 		tableData: Array<string>,
-		pageRecord: Array<string>,
-		workTimeList: Array<string>,
+		departmentList: Array<any>,
+		workerList: Array<string>,
+		casProps: {},
 		multipleSelection: Array<any>,
 		deleteArr: Array<any>,
 		dialogDetails: boolean,
@@ -160,14 +162,17 @@
 		searchWord: string,
 		totalSize: number,
 		addRecord: {
-			name: string,
-			list: Array<any>,
-			info: string
+			groupName: string,
+			department: number | null,
+			depId: number | null,
+			groupMembers: Array<any>,
+			groupInfo: string
 		},
 		details: {
-			name: string,
-			list: Array<any>,
-			info: string
+			groupName: string,
+			department: number | null,
+			groupMembers: Array<any>,
+			groupInfo: string
 		}
 	}
 
@@ -185,30 +190,43 @@
 			chosenIndex: null,
 			searchWord: '',
 			tableData: [],
-			pageRecord: [],
-			workTimeList: [],
+			departmentList: [],
+			department: '',
+			workerList: [],
+			casProps: {
+				expandTrigger: 'hover',
+				emitPath: false,
+				value: 'depId',
+				label: 'depName'
+			},
 			multipleSelection: [],
 			dialogDetails: false,
 			dialogAddRecord: false,
 			deleteDialog: false,
 			deleteSetDialog: false,
 			addRecord: {
-				name: '',
-				list: [],
-				info: ''
+				groupName: '',
+				department: null,
+				groupMembers: [],
+				depId: null,
+				groupInfo: ''
 			},
 			details: {
-				name: '',
-				list: [],
-				info: ''
+				groupName: '',
+				department: null,
+				groupMembers: [],
+				depId: null,
+				groupInfo: ''
 			},
 			deleteId: null,
 			deleteArr: []
 		})
 		interface User {
-			name: string,
-			list: [],
-			info: string
+			groupName: string,
+			department: number | null,
+			depId: number,
+			groupMembers: Array<any>,
+			groupInfo: string
 		}
 		const multipleTableRef = ref<InstanceType<typeof ElTable>>()
 		const toggleSelection = (rows?: User[]) => {
@@ -235,27 +253,27 @@
 
 		const addRef = ref<FormInstance>()
 		const addRules = reactive<FormRules>({
-			name: [{required: true, message: '该内容不能为空', trigger: 'blur'}],
-			list: [{required: true, message: '该内容不能为空', trigger: 'blur'}]
+			groupName: [{required: true, message: '该内容不能为空', trigger: 'blur'}],
+			department: [{required: true, message: '该内容不能为空', trigger: 'blur'}],
+			groupMembers: [{required: true, message: '该内容不能为空', trigger: 'blur'}]
 		})
 
 		// 页面载入时执行方法
 		onMounted(() => {
 			getListByPage()
-			getWorkTimePeriod()
+			getAllDepartment()
 		})
 
-		// 分页获取工作时间组列表
+		// 分页获取班组管理列表
 		const getListByPage = async ()=>{
-			const data = {pageSize: state.pageSize,pageIndex: state.pageIndex,searchParams:{name: state.searchWord}}
-			let res = await workingHoursSetApi().postWorkTimeGroupPage(data);
+			const data = {pageSize: state.pageSize,pageIndex: state.pageIndex,searchParams:{groupName: state.searchWord,containGroupMemberEnable: true}}
+			let res = await teamManageApi().getRecordPage(data);
 			if (res.data.code === '200') {
-				state.pageRecord = res.data.data
 				state.tableData = res.data.data.map((item)=>{
-					if(item.list == null){
-						item.list = []
+					if(!item.groupMembers || item.groupMembers == null){
+						item.groupMembers = []
 					}else{
-						item.list= Array.from(item.list,({workTimePeriodId})=>workTimePeriodId)
+						item.groupMembers= Array.from(item.groupMembers,({username})=>username)
 					}
 					return item
 				})
@@ -268,30 +286,26 @@
 			}
 		}
 
-		// 表格数据格式化
-		const toNames =(row, column, cellValue, index) => {
-			if(row.list==[]){
-				return []
-			}else{
-				const nameList = []
-				for(let i=0;i<row.list.length;i++){
-					for(let t=0;t<state.workTimeList.length;t++){
-						if(row.list[i]==state.workTimeList[t].id){
-							nameList.push(state.workTimeList[t].name)
-						}
-					}
-				}
-				return nameList.join()
+		// 获取部门列表
+		const getAllDepartment = async () => {
+			let res = await teamManageApi().getAllDepartment();
+			if (res.data.code === '200') {
+				state.departmentList = res.data.data
+			} else {
+				ElMessage({
+					type: 'warning',
+					message: res.data.msg
+				});
 			}
 		}
 
-		// 获取工作时段列表
-		const getWorkTimePeriod = async () => {
-			let res = await workingHoursApi().getWorkTimePeriod();
-			if (res.data.code === '200') {
-				state.workTimeList = res.data.data
-				console.log(state.workTimeList,'list')
-			} else {
+		const handleChange = async (value)=>{
+			state.addRecord.depId = value
+			console.log(state.addRecord.department,'de')
+			let res = await teamManageApi().getAllMember(value);
+			if(res.data.code === '200'){
+				state.workerList = res.data.data
+			}else{
 				ElMessage({
 					type: 'warning',
 					message: res.data.msg
@@ -316,9 +330,9 @@
 			getListByPage()
 		}
 
-		// 添加工作时段方法
+		// 添加班组管理方法
 		const addRecord = async (data:any) => {
-			let res = await workingHoursSetApi().addWorkTimeGroup(data);
+			let res = await teamManageApi().addRecord(data);
 			if (res.data.code === '200') {
 				ElMessage({
 					type: 'success',
@@ -334,8 +348,16 @@
 		};
 
 		// 修改工作时段方法
+		const editRecordBtn = async (index, row) => {
+			state.addRecord = JSON.parse(JSON.stringify(row))
+			state.addRecord.department = ''
+			state.addRecord.groupMembers = []
+			state.dialogAddRecord = true
+			state.chosenIndex = index
+		}
+
 		const editRecord = async (data:any) => {
-			let res = await workingHoursSetApi().updateWorkTimeGroup(data);
+			let res = await teamManageApi().updateRecord(data);
 			if (res.data.code === '200') {
 				ElMessage({
 					type: 'success',
@@ -356,15 +378,15 @@
 			await formEl.validate(async (valid, fields) => {
 				if (valid) {
 					const data = {
-						name: state.addRecord.name,
-						info: state.addRecord.info,
-						workTimePeriodIds: state.addRecord.list
+						groupName: state.addRecord.groupName,
+						groupInfo: state.addRecord.groupInfo,
+						depId: state.addRecord.depId,
+						groupMemberIds: state.addRecord.groupMembers
 					}
 					if (state.chosenIndex == null) {
 						await addRecord(data)
 					} else {
-						data.id = JSON.stringify(state.addRecord.id),
-								console.log(data,'修改参数')
+						data.groupId = JSON.stringify(state.addRecord.groupId)
 						await editRecord(data)
 					}
 					state.dialogAddRecord = false
@@ -377,7 +399,7 @@
 
 		// 删除工作时间组方法
 		const deleteRecord = async (data:any) => {
-			let res = await workingHoursSetApi().deleteWorkTimeGroup(data);
+			let res = await teamManageApi().deleteRecord(data);
 			if (res.data.code === '200') {
 				ElMessage({
 					type: 'success',
@@ -393,44 +415,49 @@
 		}
 
 		const deleteRecordBtn = (row) => {
-			state.deleteId = row.id
+			console.log(row,'row')
+			state.deleteId = row.groupId
 			state.deleteDialog = true
 		}
 
 		const conFirmDelete = () => {
-			deleteRecord({ id: state.deleteId })
+			deleteRecord({ groupId: state.deleteId })
 			state.deleteDialog = false
 		}
 
 		// 批量删除
 		const deleteBatchBtn = async () => {
-			if (state.deleteArr.length > 0) {
-				state.deleteSetDialog = true
-			} else {
-				ElMessage({
-					type: 'warning',
-					message: '请先选择要删除的记录'
-				});
-			}
+			ElMessage({
+				type: 'warning',
+				message: '抱歉,本页面暂不支持批量删除'
+			});
+			// if (state.deleteArr.length > 0) {
+			// 	state.deleteSetDialog = true
+			// } else {
+			// 	ElMessage({
+			// 		type: 'warning',
+			// 		message: '请先选择要删除的记录'
+			// 	});
+			// }
 		};
 
-		const conFirmDeleteBatch = async () => {
-			let res = await workingHoursSetApi().deletBatchWorkTimeGroup({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 teamManageApi().deletBatchRecord({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
@@ -444,18 +471,6 @@
 		// 查看记录
 		const viewRecord = (row) => {
 			state.details = JSON.parse(JSON.stringify(row))
-			if(row.list==[]){
-				state.details.list = []
-			}else{
-				state.details.list = []
-				for(let i=0;i<row.list.length;i++){
-					for(let t=0;t<state.workTimeList.length;t++){
-						if(row.list[i]==state.workTimeList[t].id){
-							state.details.list.push(state.workTimeList[t].name)
-						}
-					}
-				}
-			}
 			state.dialogDetails = true
 		}
 
@@ -463,12 +478,7 @@
 		const reLoadData = async () =>{
 			getListByPage()
 		}
-		// 点击修改
-		const editRecordBtn = (index, row) => {
-			state.dialogAddRecord = true
-			state.chosenIndex = index
-			state.addRecord = JSON.parse(JSON.stringify(row))
-		}
+
 		const closeAdd = () => {
 			state.addRecord = {}
 			state.chosenIndex = null
@@ -496,7 +506,7 @@
 			Delete,
 			Refresh,
 			Plus,
-			toNames,
+			handleChange,
 			toggleSelection,
 			handleSelectionChange,
 			searchRecord,
@@ -505,11 +515,9 @@
 			deleteRecordBtn,
 			conFirmDelete,
 			getListByPage,
-			getWorkTimePeriod,
 			reLoadData,
 			deleteRecord,
 			deleteBatchBtn,
-			conFirmDeleteBatch,
 			handleSizeChange,
 			handleCurrentChange,
 			confirmAddRecord,
diff --git a/src/views/system/personShiftManage/shiftManage/teamStrategy/index.vue b/src/views/system/personShiftManage/shiftManage/teamStrategy/index.vue
new file mode 100644
index 0000000..a31fdcd
--- /dev/null
+++ b/src/views/system/personShiftManage/shiftManage/teamStrategy/index.vue
@@ -0,0 +1,718 @@
+<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="groupStrategyName" label="班组策略名称"/>
+					<el-table-column property="timeStrategy" label="时间策略" width="180" :show-overflow-tooltip="true"/>
+					<el-table-column property="cycleName" label="循环类型" :show-overflow-tooltip="true"/>
+					<el-table-column property="groupNames" label="班组"/>
+					<el-table-column property="cycleStartTime" label="排班开始时间" width="160"/>
+					<el-table-column property="groupStrategyInfo" 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.groupStrategyName"
+							readonly
+					/>
+				</el-form-item>
+				<el-form-item label="时间策略">
+					<el-input
+							v-model="details.timeStrategy"
+							readonly
+					/>
+				</el-form-item>
+				<el-form-item label="循环类型">
+					<el-input
+							v-model="details.cycleName"
+							readonly
+					/>
+				</el-form-item>
+				<el-form-item label="班组">
+					<el-input
+							v-model="details.groupNames"
+							type="textarea"
+							readonly
+					/>
+				</el-form-item>
+				<el-form-item label="排班开始时间">
+					<el-input
+							v-model="details.cycleStartTime"
+							readonly
+					/>
+				</el-form-item>
+				<el-form-item label="描述信息" v-if="details.groupStrategyInfo">
+					<el-input
+							v-model="details.groupStrategyInfo"
+							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" @open="openAdd">
+			<el-form :model="addRecord" label-width="120px" ref="addRef" :rules="addRules">
+				<el-form-item label="策略名称" prop="groupStrategyName">
+					<el-input
+							v-model="addRecord.groupStrategyName"
+					>
+					</el-input>
+				</el-form-item>
+				<el-form-item label="时间策略" prop="timeStrategyId">
+					<el-select v-model="addRecord.timeStrategyId">
+						<el-option v-for="(item,index) in timeList" :key="index" :label="item.name" :value="item.id" />
+					</el-select>
+				</el-form-item>
+				<el-form-item label="循环类型" prop="cycle">
+					<el-select v-model="addRecord.cycle">
+						<el-option v-for="(item,index) in cycleList" :key="index" :label="item.name" :value="item.value" />
+					</el-select>
+				</el-form-item>
+				<el-form-item label="班组选择" prop="groupIds" >
+					<el-select v-model="addRecord.groupIds" multiple>
+						<el-option v-for="(item,index) in teamList" :key="index" :label="item.groupName" :value="item.id" />
+					</el-select>
+				</el-form-item>
+				<el-form-item label="排班开始时间" prop="cycleStartTime">
+					<el-date-picker v-model="addRecord.cycleStartTime" type="date" value-format="YYYY-MM-DD"/>
+				</el-form-item>
+				<el-form-item label="描述信息" prop="groupStrategyInfo">
+					<el-input
+							v-model="addRecord.groupStrategyInfo"
+							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>
+
+<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 { teamStrategyApi } from '/@/api/basicDateManage/personShiftManage/teamStrategy';
+	import { timeStrategyApi } from '/@/api/basicDateManage/personShiftManage/timeStrategy';
+	import { teamManageApi } from '/@/api/basicDateManage/personShiftManage/teamManage';
+
+	// 定义接口来定义对象的类型
+	interface stateType {
+		tableData: Array<string>,
+		pageRecord: Array<string>,
+		timeList: Array<any>,
+		teamList: Array<any>,
+		cycleList: Array<any>,
+		multipleSelection: Array<any>,
+		deleteArr: Array<any>,
+		dialogDetails: boolean,
+		dialogAddRecord: boolean,
+		deleteDialog: boolean,
+		deleteSetDialog: boolean;
+		pageIndex: number,
+		pageSize: number,
+		chosenIndex: null | number,
+		deleteId: null | number,
+		searchWord: string,
+		totalSize: number,
+		addRecord: {
+			groupStrategyName: string,
+			timeStrategyId: number | null,
+			timeStrategy: string,
+			groupIds: Array<number>,
+			cycle: number | null,
+			cycleName: string,
+			cycleStartTime: string,
+			groupStrategyInfo: string,
+			groupStrategyId: number | null
+		},
+		details: {
+			groupStrategyName: string,
+			timeStrategyId: number | null,
+			timeStrategy: string,
+			groups: Array<any>,
+			cycle: number | null,
+			cycleName: string,
+			cycleStartTime: string,
+			groupStrategyInfo: string
+		}
+	}
+
+	export default {
+    name: 'teamStrategy',
+	components:{},
+    setup() {
+		const userInfo = useUserInfo()
+		const {userInfos} = storeToRefs(userInfo);
+
+		const state = reactive<stateType>({
+			pageIndex: 1,
+			pageSize: 10,
+			totalSize: 0,
+			chosenIndex: null,
+			searchWord: '',
+			tableData: [],
+			pageRecord: [],
+			timeList: [],
+			teamList: [],
+			cycleList: [
+				{
+					name: '周',
+					value: 3
+				},
+				{
+					name: '月',
+					value: 2
+				},
+				{
+					name: '年',
+					value: 1
+				}
+			],
+			multipleSelection: [],
+			dialogDetails: false,
+			dialogAddRecord: false,
+			deleteDialog: false,
+			deleteSetDialog: false,
+			addRecord: {
+				groupStrategyName: '',
+				timeStrategyId: null,
+				timeStrategy: '',
+				groupIds: [],
+				cycle: null,
+				cycleName: '',
+				cycleStartTime: '',
+				groupStrategyInfo: '',
+				groupStrategyId: null
+			},
+			details: {
+				groupStrategyName: '',
+				timeStrategyId: null,
+				timeStrategy: '',
+				groups: [],
+				cycle: null,
+				cycleName: '',
+				cycleStartTime: '',
+				groupStrategyInfo: ''
+			},
+			deleteId: null,
+			deleteArr: []
+		})
+		interface User {
+			groupStrategyName: string,
+			timeStrategyId: null | number,
+			timeStrategy: string,
+			groups: Array<any>,
+			cycle: null | number,
+			cycleName: string,
+			cycleStartTime: string,
+			groupStrategyInfo: string
+		}
+		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 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>({
+			groupStrategyName: [{required: true, message: '该内容不能为空', trigger: 'blur'}],
+			timeStrategyId: [{required: true, message: '该内容不能为空', trigger: 'blur'}],
+			groupIds: [{required: true, message: '该内容不能为空', trigger: 'blur'}],
+			cycle: [{required: true, message: '该内容不能为空', trigger: 'blur'}],
+			cycleStartTime: [{required: true, message: '该内容不能为空', trigger: 'blur'}]
+		})
+
+		// 页面载入时执行方法
+		onMounted(() => {
+			getListByPage()
+			getTimeList()
+			getTeamList()
+		})
+
+		// 分页获取班组策略列表
+		const getListByPage = async ()=>{
+			const data = {pageSize: state.pageSize,pageIndex: state.pageIndex,searchParams:{name: state.searchWord,containGroupEnable:true}}
+			let res = await teamStrategyApi().getRecordPage(data);
+			if (res.data.code === '200') {
+				state.pageRecord = res.data.data
+				state.tableData = res.data.data.map((item)=>{
+					item.cycleName = item.cycle==1?'年':(item.cycle==2?'月':(item.cycle==3?'周':''))
+					if(!item.groups || item.groups == null){
+						item.groups = []
+					}else{
+						item.groups = item.groups.map((i) =>{
+							return Object.assign({},{'groupId':i.groupId,'groupName':i.groupName})
+						})
+						item.groupIds= Array.from(item.groups,({groupId})=> groupId)
+						item.groupNames= Array.from(item.groups,({groupName})=> groupName)
+					}
+					return item
+				})
+				state.tableData.map(async(item)=>{
+					if(!item.timeStrategyId || item.timeStrategyId == null){
+						item.timeStrategy = ''
+					}else{
+						let op = await timeStrategyApi().getRecordById({id: item.timeStrategyId})
+						if(op.data.code&&op.data.code === '200'){
+							if(op.data.data){
+								item.timeStrategy = op.data.data.name
+							}else{
+								item.timeStrategy = ''
+							}
+						} else {
+							ElMessage({
+								type: 'warning',
+								message: res.data.msg
+							});
+						}
+					}
+					return item
+				})
+				console.log(state.tableData,'state.tableData')
+				state.totalSize = res.data.total
+			} else {
+				ElMessage({
+					type: 'warning',
+					message: res.data.msg
+				});
+			}
+		}
+
+		// 循环类型格式化
+		// const toNames =(row, column, cellValue, index) =>{
+		// 	return row.cycle == 1? '年':(row.type == 2? '月': '周')
+		// }
+
+		// 时间策略格式化
+		// const timeName = async (row, column, cellValue, index) =>{
+		// 	let res = await timeStrategyApi().getRecordById({id: row.timeStrategyId})
+		// 	if (res.data.code === '200') {
+		// 		return row.timeStrategyId = res.name
+		// 	} else {
+		// 		ElMessage({
+		// 			type: 'warning',
+		// 			message: res.data.msg
+		// 		});
+		// 	}
+		// }
+
+		// 获取时间策略列表
+		const getTimeList = async () => {
+			let res = await timeStrategyApi().getAllRecord();
+			if (res.data.code === '200') {
+				console.log(res.data.data,'timestrategy')
+				state.timeList = res.data.data
+			} else {
+				ElMessage({
+					type: 'warning',
+					message: res.data.msg
+				});
+			}
+		}
+
+		// 获取班组列表
+		const getTeamList = async () => {
+			let res = await teamManageApi().getRecord({name: ''});
+			if (res.data.code === '200') {
+				state.teamList = res.data.data
+			} else {
+				ElMessage({
+					type: 'warning',
+					message: res.data.msg
+				});
+			}
+		}
+
+		// 关键词查询记录
+		const searchRecord = async()=>{
+			if(state.searchWord==''){
+				ElMessage({
+					type: 'warning',
+					message: '请输入查询关键词'
+				});
+			}else{
+				getListByPage()
+			}
+		}
+
+		const clearSearch = async()=>{
+			state.searchWord=''
+			getListByPage()
+		}
+
+		// 添加班组策略方法
+		const addRecord = async (data:any) => {
+			let res = await teamStrategyApi().addRecord(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 teamStrategyApi().updateRecord(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 = {
+						groupStrategyName: state.addRecord.groupStrategyName,
+						groupStrategyInfo: state.addRecord.groupStrategyInfo,
+						groupStrategyCycleType: state.addRecord.cycle,
+						timeStrategyId: state.addRecord.timeStrategyId,
+						groupIds: state.addRecord.groupIds,
+						cycleStartTime: state.addRecord.cycleStartTime
+					}
+					if (state.chosenIndex == null) {
+						await addRecord(data)
+					} else {
+						data.groupStrategyId = JSON.stringify(state.addRecord.groupStrategyId)
+						await editRecord(data)
+					}
+					state.dialogAddRecord = false
+				} else {
+					console.log('error submit!', fields)
+				}
+			})
+
+		}
+
+		// 删除班组策略方法
+		const deleteRecord = async (data:any) => {
+			let res = await teamStrategyApi().deleteRecord(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.groupStrategyId
+			state.deleteDialog = true
+		}
+
+		const conFirmDelete = () => {
+			deleteRecord({ groupStrategyId: state.deleteId })
+			state.deleteDialog = false
+		}
+
+		// 批量删除
+		const deleteBatchBtn = async () => {
+			ElMessage({
+				type: 'warning',
+				message: '抱歉,本页面暂不支持批量删除'
+			});
+			// if (state.deleteArr.length > 0) {
+			// 	state.deleteSetDialog = true
+			// } else {
+			// 	ElMessage({
+			// 		type: 'warning',
+			// 		message: '请先选择要删除的记录'
+			// 	});
+			// }
+		};
+
+		// const conFirmDeleteBatch = async () => {
+		// 	let res = await timeStrategyApi().deletBatchRecord({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 viewRecord = (row) => {
+			state.details = JSON.parse(JSON.stringify(row))
+			state.dialogDetails = true
+		}
+
+		// 刷新
+		const reLoadData = async () =>{
+			getListByPage()
+		}
+		// 点击修改
+		const editRecordBtn = (index, row) => {
+			state.dialogAddRecord = true
+			state.chosenIndex = index
+			state.addRecord = JSON.parse(JSON.stringify(row))
+			console.log(state.addRecord,'state.addRecord')
+		}
+		const closeAdd = () => {
+			state.addRecord = {}
+			state.chosenIndex = null
+		}
+		const openAdd = () => {
+			if (state.chosenIndex == null) {
+				state.addRecord.info = ''
+			}
+		}
+		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,
+			toggleSelection,
+			handleSelectionChange,
+			searchRecord,
+			clearSearch,
+			viewRecord,
+			deleteRecordBtn,
+			conFirmDelete,
+			getListByPage,
+			reLoadData,
+			deleteRecord,
+			deleteBatchBtn,
+			handleSizeChange,
+			handleCurrentChange,
+			confirmAddRecord,
+			closeAdd,
+			openAdd,
+			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;
+
+			.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;
+			}
+
+			.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%;
+	}
+</style>

--
Gitblit v1.9.2