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

---
 src/views/system/personShiftManage/personTimeManage/timeStrategy/index.vue |  159 ++++++++++++++++++++++++++++++----------------------
 1 files changed, 91 insertions(+), 68 deletions(-)

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,

--
Gitblit v1.9.2