diff --git a/yudao-admin-vue3/src/api/subscribe/staff/index.ts b/yudao-admin-vue3/src/api/subscribe/staff/index.ts
index edb03b0..f57843a 100644
--- a/yudao-admin-vue3/src/api/subscribe/staff/index.ts
+++ b/yudao-admin-vue3/src/api/subscribe/staff/index.ts
@@ -1,57 +1,56 @@
-import request from '@/config/axios'
-
-// 预约人员 VO
-export interface StaffVO {
- id: number // id
- organizationId: number // 机构id
- organizationName: string
- serialNumber: string // 编号
- type: number // 类型
- name: string // 名称
- sex: number // 性别
- photo: string // 照片
- phone: string // 手机号
- serviceTime: string // 服务时间段
- serviceStartTime: string
- serviceEndTime: string
- serviceScope: string // 服务范围
- sign: number // 约满标记
- status: number // 状态
- content: string // 介绍
-}
-
-// 预约人员 API
-export const StaffApi = {
- // 查询预约人员分页
- getStaffPage: async (params: any) => {
- return await request.get({ url: `/subscribe/staff/page`, params })
- },
-
- // 查询预约人员详情
- getStaff: async (id: number) => {
- return await request.get({ url: `/subscribe/staff/get?id=` + id })
- },
-
- // 新增预约人员
- createStaff: async (data: StaffVO) => {
- return await request.post({ url: `/subscribe/staff/create`, data })
- },
-
- // 修改预约人员
- updateStaff: async (data: StaffVO) => {
- return await request.put({ url: `/subscribe/staff/update`, data })
- },
-
- // 删除预约人员
- deleteStaff: async (id: number) => {
- return await request.delete({ url: `/subscribe/staff/delete?id=` + id })
- },
-
- // 导出预约人员 Excel
- exportStaff: async (params) => {
- return await request.download({ url: `/subscribe/staff/export-excel`, params })
- },
-
-
-
-}
\ No newline at end of file
+import request from '@/config/axios'
+
+// 预约人员 VO
+export interface StaffVO {
+ id: number // id
+ organizationId: number // 机构id
+ organizationName: string
+ serialNumber: string // 编号
+ type: number // 类型
+ name: string // 名称
+ sex: number // 性别
+ photo: string // 照片
+ phone: string // 手机号
+ serviceTime: string // 服务时间段
+ serviceScope: string // 服务范围
+ sign: number // 约满标记
+ status: number // 状态
+ content: string // 介绍
+ serviceTimeArray: string
+}
+
+// 预约人员 API
+export const StaffApi = {
+ // 查询预约人员分页
+ getStaffPage: async (params: any) => {
+ return await request.get({ url: `/subscribe/staff/page`, params })
+ },
+
+ // 查询预约人员详情
+ getStaff: async (id: number) => {
+ return await request.get({ url: `/subscribe/staff/get?id=` + id })
+ },
+
+ // 新增预约人员
+ createStaff: async (data: StaffVO) => {
+ return await request.post({ url: `/subscribe/staff/create`, data })
+ },
+
+ // 修改预约人员
+ updateStaff: async (data: StaffVO) => {
+ return await request.put({ url: `/subscribe/staff/update`, data })
+ },
+
+ // 删除预约人员
+ deleteStaff: async (id: number) => {
+ return await request.delete({ url: `/subscribe/staff/delete?id=` + id })
+ },
+
+ // 导出预约人员 Excel
+ exportStaff: async (params) => {
+ return await request.download({ url: `/subscribe/staff/export-excel`, params })
+ },
+
+
+
+};
diff --git a/yudao-admin-vue3/src/utils/dict.ts b/yudao-admin-vue3/src/utils/dict.ts
index 100c1d1..c23e726 100644
--- a/yudao-admin-vue3/src/utils/dict.ts
+++ b/yudao-admin-vue3/src/utils/dict.ts
@@ -113,6 +113,21 @@ export enum DICT_TYPE {
TERMINAL = 'terminal', // 终端
DATE_INTERVAL = 'date_interval', // 数据间隔
+
+ //预约:人员管理
+ STALL_SEX = 'stall_sex',
+ STAFF_STATUS = 'staff_status',
+ STAFF_FULL = 'staff_full',
+ STAFF_TYPE = 'staff_type',
+
+ //预约:预约管理
+ SUBSCRIBE_TYPE = 'subscribe_type',
+ SUBSCRIBE_CHECK_STATUS = 'subscribe_check_status',
+ SUBSCRIBE_STATUS = 'subscribe_status',
+
+ //预约:机构管理
+ ORGANIZATION_STATUS = 'organization_status',
+
// ========== SYSTEM 模块 ==========
SYSTEM_USER_SEX = 'system_user_sex',
SYSTEM_MENU_TYPE = 'system_menu_type',
diff --git a/yudao-admin-vue3/src/views/subscribe/organization/OrganizationForm.vue b/yudao-admin-vue3/src/views/subscribe/organization/OrganizationForm.vue
index b37de29..6c7d632 100644
--- a/yudao-admin-vue3/src/views/subscribe/organization/OrganizationForm.vue
+++ b/yudao-admin-vue3/src/views/subscribe/organization/OrganizationForm.vue
@@ -1,5 +1,5 @@
-
+
+
\ No newline at end of file
diff --git a/yudao-admin-vue3/src/views/subscribe/staff/index.vue b/yudao-admin-vue3/src/views/subscribe/staff/index.vue
index 8df95db..3685e78 100644
--- a/yudao-admin-vue3/src/views/subscribe/staff/index.vue
+++ b/yudao-admin-vue3/src/views/subscribe/staff/index.vue
@@ -80,7 +80,7 @@
class="!w-240px"
/>
-
+
-
-
+
+
@@ -209,7 +209,11 @@
-
+
+
+
+
+
+
+
+
+
+
@@ -31,11 +37,21 @@
placeholder="选择预约时间"
/>
-
+
+
+
+
+
+
import { getIntDictOptions, DICT_TYPE } from '@/utils/dict'
import { ManageApi, ManageVO } from '@/api/subscribe/subscribemanage'
+import { OrganizationApi, OrganizationVO } from '@/api/subscribe/organization'
/** 预约 表单 */
defineOptions({ name: 'ManageForm' })
@@ -65,6 +82,7 @@ const message = useMessage() // 消息弹窗
const dialogVisible = ref(false) // 弹窗的是否展示
const dialogTitle = ref('') // 弹窗的标题
+const option = ref([]);
const formLoading = ref(false) // 表单的加载中:1)修改时的数据加载;2)提交的按钮禁用
const formType = ref('') // 表单的类型:create - 新增;update - 修改
const formData = ref({
@@ -77,9 +95,23 @@ const formData = ref({
checkStatus: undefined,
})
const formRules = reactive({
+ userId: [{ required: true, message: '用户不能为空', trigger: 'blur' }],
+ type: [{ required: true, message: '预约类型不能为空', trigger: 'blur' }],
+ staffId: [{ required: true, message: '预约人员不能为空', trigger: 'blur' }],
+ subscribeTime: [{ required: true, message: '预约时间不能为空', trigger: 'blur' }],
+ subscribeStatus: [{ required: true, message: '预约状态不能为空', trigger: 'blur' }],
})
const formRef = ref() // 表单 Ref
+//初始化机构名称下拉框
+ const getOrganizations = async () => {
+ try {
+ option.value = await OrganizationApi.getOrganizations()
+ } finally {
+
+ }
+ }
+
/** 打开弹窗 */
const open = async (type: string, id?: number) => {
dialogVisible.value = true
@@ -122,6 +154,10 @@ const submitForm = async () => {
}
}
+/** 初始化 **/
+ onMounted(() => {
+ getOrganizations()
+ })
/** 重置表单 */
const resetForm = () => {
formData.value = {
diff --git a/yudao-admin-vue3/src/views/subscribe/subscribemanage/index.vue b/yudao-admin-vue3/src/views/subscribe/subscribemanage/index.vue
index cdb6ce8..4a1edbc 100644
--- a/yudao-admin-vue3/src/views/subscribe/subscribemanage/index.vue
+++ b/yudao-admin-vue3/src/views/subscribe/subscribemanage/index.vue
@@ -8,7 +8,7 @@
:inline="true"
label-width="100px"
>
-
+
-
+
+
-
+
diff --git a/yudao-module-subscribe/yudao-module-subscribe-biz/src/main/java/cn/iocoder/yudao/module/srbscribe/controller/admin/staff/vo/ServiceTimeVO.java b/yudao-module-subscribe/yudao-module-subscribe-biz/src/main/java/cn/iocoder/yudao/module/srbscribe/controller/admin/staff/vo/ServiceTimeVO.java
new file mode 100644
index 0000000..a8ab595
--- /dev/null
+++ b/yudao-module-subscribe/yudao-module-subscribe-biz/src/main/java/cn/iocoder/yudao/module/srbscribe/controller/admin/staff/vo/ServiceTimeVO.java
@@ -0,0 +1,9 @@
+package cn.iocoder.yudao.module.srbscribe.controller.admin.staff.vo;
+
+import lombok.Data;
+
+@Data
+public class ServiceTimeVO {
+ private String start;
+ private String end;
+}
diff --git a/yudao-module-subscribe/yudao-module-subscribe-biz/src/main/java/cn/iocoder/yudao/module/srbscribe/controller/admin/staff/vo/StaffPageReqVO.java b/yudao-module-subscribe/yudao-module-subscribe-biz/src/main/java/cn/iocoder/yudao/module/srbscribe/controller/admin/staff/vo/StaffPageReqVO.java
index fa6834a..8e6ecdb 100644
--- a/yudao-module-subscribe/yudao-module-subscribe-biz/src/main/java/cn/iocoder/yudao/module/srbscribe/controller/admin/staff/vo/StaffPageReqVO.java
+++ b/yudao-module-subscribe/yudao-module-subscribe-biz/src/main/java/cn/iocoder/yudao/module/srbscribe/controller/admin/staff/vo/StaffPageReqVO.java
@@ -1,5 +1,6 @@
package cn.iocoder.yudao.module.srbscribe.controller.admin.staff.vo;
+import com.baomidou.mybatisplus.annotation.TableField;
import lombok.*;
import java.util.*;
import io.swagger.v3.oas.annotations.media.Schema;
@@ -37,14 +38,12 @@ public class StaffPageReqVO extends PageParam {
private String phone;
@Schema(description = "服务时间段")
- @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
- private String[] serviceTime;
+ private String serviceTime;
+
+// @Schema(description = "服务开始时间")
+// private String serviceStartTime;
- @Schema(description = "服务开始时间")
- private String serviceStartTime;
- @Schema(description = "服务结束时间")
- private String serviceEndTime;
@Schema(description = "服务范围")
private String serviceScope;
diff --git a/yudao-module-subscribe/yudao-module-subscribe-biz/src/main/java/cn/iocoder/yudao/module/srbscribe/controller/admin/staff/vo/StaffRespVO.java b/yudao-module-subscribe/yudao-module-subscribe-biz/src/main/java/cn/iocoder/yudao/module/srbscribe/controller/admin/staff/vo/StaffRespVO.java
index 392830f..20d207e 100644
--- a/yudao-module-subscribe/yudao-module-subscribe-biz/src/main/java/cn/iocoder/yudao/module/srbscribe/controller/admin/staff/vo/StaffRespVO.java
+++ b/yudao-module-subscribe/yudao-module-subscribe-biz/src/main/java/cn/iocoder/yudao/module/srbscribe/controller/admin/staff/vo/StaffRespVO.java
@@ -52,11 +52,10 @@ public class StaffRespVO {
@ExcelProperty("服务时间段")
private String serviceTime;
- @Schema(description = "服务开始时间")
- private String serviceStartTime;
-
- @Schema(description = "服务结束时间")
- private String serviceEndTime;
+// @Schema(description = "服务开始时间")
+// private String serviceStartTime;
+//
+ private String serviceTimeArray;
@Schema(description = "服务范围")
@ExcelProperty("服务范围")
diff --git a/yudao-module-subscribe/yudao-module-subscribe-biz/src/main/java/cn/iocoder/yudao/module/srbscribe/controller/admin/staff/vo/StaffSaveReqVO.java b/yudao-module-subscribe/yudao-module-subscribe-biz/src/main/java/cn/iocoder/yudao/module/srbscribe/controller/admin/staff/vo/StaffSaveReqVO.java
index 4aa2824..d065bcd 100644
--- a/yudao-module-subscribe/yudao-module-subscribe-biz/src/main/java/cn/iocoder/yudao/module/srbscribe/controller/admin/staff/vo/StaffSaveReqVO.java
+++ b/yudao-module-subscribe/yudao-module-subscribe-biz/src/main/java/cn/iocoder/yudao/module/srbscribe/controller/admin/staff/vo/StaffSaveReqVO.java
@@ -36,12 +36,6 @@ public class StaffSaveReqVO {
@Schema(description = "服务时间段")
private String serviceTime;
- @Schema(description = "服务开始时间")
- private String serviceStartTime;
-
- @Schema(description = "服务结束时间")
- private String serviceEndTime;
-
@Schema(description = "服务范围")
private String serviceScope;
diff --git a/yudao-module-subscribe/yudao-module-subscribe-biz/src/main/java/cn/iocoder/yudao/module/srbscribe/controller/admin/subscribemanage/vo/SubscribeManageRespVO.java b/yudao-module-subscribe/yudao-module-subscribe-biz/src/main/java/cn/iocoder/yudao/module/srbscribe/controller/admin/subscribemanage/vo/SubscribeManageRespVO.java
index b8d9600..1a17b79 100644
--- a/yudao-module-subscribe/yudao-module-subscribe-biz/src/main/java/cn/iocoder/yudao/module/srbscribe/controller/admin/subscribemanage/vo/SubscribeManageRespVO.java
+++ b/yudao-module-subscribe/yudao-module-subscribe-biz/src/main/java/cn/iocoder/yudao/module/srbscribe/controller/admin/subscribemanage/vo/SubscribeManageRespVO.java
@@ -1,5 +1,6 @@
package cn.iocoder.yudao.module.srbscribe.controller.admin.subscribemanage.vo;
+import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
@@ -22,6 +23,10 @@ public class SubscribeManageRespVO {
@ExcelProperty("用户id")
private Long userId;
+ @Schema(description = "用户姓名")
+ @ExcelProperty("用户姓名")
+ private String userName;
+
@Schema(description = "预约类型", example = "2")
@ExcelProperty(value = "预约类型", converter = DictConvert.class)
@DictFormat("subscribe_type") // TODO 代码优化:建议设置到对应的 DictTypeConstants 枚举类中
@@ -31,6 +36,10 @@ public class SubscribeManageRespVO {
@ExcelProperty("预约人员id")
private Long staffId;
+ @Schema(description = "预约人员")
+ @ExcelProperty("预约人员")
+ private String staffName;
+
@Schema(description = "预约时间")
@ExcelProperty("预约时间")
private LocalDateTime subscribeTime;
@@ -48,8 +57,6 @@ public class SubscribeManageRespVO {
@ExcelProperty("创建时间")
private LocalDateTime createTime;
- @Schema(description = "预约人员")
- @ExcelProperty("预约人员")
- private String staffName;
+
}
\ No newline at end of file
diff --git a/yudao-module-subscribe/yudao-module-subscribe-biz/src/main/java/cn/iocoder/yudao/module/srbscribe/dal/dataobject/staff/StaffDO.java b/yudao-module-subscribe/yudao-module-subscribe-biz/src/main/java/cn/iocoder/yudao/module/srbscribe/dal/dataobject/staff/StaffDO.java
index 7491802..49d9a19 100644
--- a/yudao-module-subscribe/yudao-module-subscribe-biz/src/main/java/cn/iocoder/yudao/module/srbscribe/dal/dataobject/staff/StaffDO.java
+++ b/yudao-module-subscribe/yudao-module-subscribe-biz/src/main/java/cn/iocoder/yudao/module/srbscribe/dal/dataobject/staff/StaffDO.java
@@ -1,5 +1,6 @@
package cn.iocoder.yudao.module.srbscribe.dal.dataobject.staff;
+import cn.iocoder.yudao.module.srbscribe.controller.admin.staff.vo.ServiceTimeVO;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
@@ -64,14 +65,6 @@ public class StaffDO extends BaseDO {
* 服务时间段
*/
private String serviceTime;
- /**
- * 服务开始时间
- */
- private String serviceStartTime;
- /**
- * 服务结束时间
- */
- private String serviceEndTime;
/**
* 服务范围
*/
@@ -97,4 +90,7 @@ public class StaffDO extends BaseDO {
@TableField(exist = false)
private String organizationName;
+ @TableField(exist = false)
+ private String serviceTimeArray ;
+
}
\ No newline at end of file
diff --git a/yudao-module-subscribe/yudao-module-subscribe-biz/src/main/java/cn/iocoder/yudao/module/srbscribe/dal/mysql/organization/OrganizationMapper.java b/yudao-module-subscribe/yudao-module-subscribe-biz/src/main/java/cn/iocoder/yudao/module/srbscribe/dal/mysql/organization/OrganizationMapper.java
index 33fd1cd..ed350b0 100644
--- a/yudao-module-subscribe/yudao-module-subscribe-biz/src/main/java/cn/iocoder/yudao/module/srbscribe/dal/mysql/organization/OrganizationMapper.java
+++ b/yudao-module-subscribe/yudao-module-subscribe-biz/src/main/java/cn/iocoder/yudao/module/srbscribe/dal/mysql/organization/OrganizationMapper.java
@@ -23,9 +23,7 @@ public interface OrganizationMapper extends BaseMapperX {
.likeIfPresent(OrganizationDO::getName, reqVO.getName())
.eqIfPresent(OrganizationDO::getPhone, reqVO.getPhone())
.eqIfPresent(OrganizationDO::getEmail, reqVO.getEmail())
- .eqIfPresent(OrganizationDO::getPicture, reqVO.getPicture())
- .eqIfPresent(OrganizationDO::getAddress, reqVO.getAddress())
- .eqIfPresent(OrganizationDO::getDepict, reqVO.getDepict())
+ .likeIfPresent(OrganizationDO::getAddress, reqVO.getAddress())
.eqIfPresent(OrganizationDO::getStatus, reqVO.getStatus())
.betweenIfPresent(OrganizationDO::getCreateTime, reqVO.getCreateTime())
.orderByDesc(OrganizationDO::getId));
diff --git a/yudao-module-subscribe/yudao-module-subscribe-biz/src/main/java/cn/iocoder/yudao/module/srbscribe/dal/mysql/staff/StaffMapper.java b/yudao-module-subscribe/yudao-module-subscribe-biz/src/main/java/cn/iocoder/yudao/module/srbscribe/dal/mysql/staff/StaffMapper.java
index 4015ea9..5409ebd 100644
--- a/yudao-module-subscribe/yudao-module-subscribe-biz/src/main/java/cn/iocoder/yudao/module/srbscribe/dal/mysql/staff/StaffMapper.java
+++ b/yudao-module-subscribe/yudao-module-subscribe-biz/src/main/java/cn/iocoder/yudao/module/srbscribe/dal/mysql/staff/StaffMapper.java
@@ -24,7 +24,7 @@ public interface StaffMapper extends BaseMapperX {
.eqIfPresent(StaffDO::getSex, reqVO.getSex())
.eqIfPresent(StaffDO::getPhoto, reqVO.getPhoto())
.eqIfPresent(StaffDO::getPhone, reqVO.getPhone())
- .betweenIfPresent(StaffDO::getServiceTime, reqVO.getServiceTime())
+// .betweenIfPresent(StaffDO::getServiceTime, reqVO.getServiceTime())
.eqIfPresent(StaffDO::getServiceScope, reqVO.getServiceScope())
.eqIfPresent(StaffDO::getSign, reqVO.getSign())
.eqIfPresent(StaffDO::getStatus, reqVO.getStatus())
diff --git a/yudao-module-subscribe/yudao-module-subscribe-biz/src/main/java/cn/iocoder/yudao/module/srbscribe/service/staff/StaffServiceImpl.java b/yudao-module-subscribe/yudao-module-subscribe-biz/src/main/java/cn/iocoder/yudao/module/srbscribe/service/staff/StaffServiceImpl.java
index 4498da7..bbfb91c 100644
--- a/yudao-module-subscribe/yudao-module-subscribe-biz/src/main/java/cn/iocoder/yudao/module/srbscribe/service/staff/StaffServiceImpl.java
+++ b/yudao-module-subscribe/yudao-module-subscribe-biz/src/main/java/cn/iocoder/yudao/module/srbscribe/service/staff/StaffServiceImpl.java
@@ -1,16 +1,23 @@
package cn.iocoder.yudao.module.srbscribe.service.staff;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
+import cn.iocoder.yudao.module.srbscribe.controller.admin.staff.vo.ServiceTimeVO;
import cn.iocoder.yudao.module.srbscribe.controller.admin.staff.vo.StaffPageReqVO;
import cn.iocoder.yudao.module.srbscribe.controller.admin.staff.vo.StaffSaveReqVO;
import cn.iocoder.yudao.module.srbscribe.dal.dataobject.organization.OrganizationDO;
import cn.iocoder.yudao.module.srbscribe.dal.dataobject.staff.StaffDO;
import cn.iocoder.yudao.module.srbscribe.dal.mysql.organization.OrganizationMapper;
import cn.iocoder.yudao.module.srbscribe.dal.mysql.staff.StaffMapper;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.alibaba.fastjson.TypeReference;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
+
+import java.util.List;
+
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
import static cn.iocoder.yudao.module.subscribe.enums.ErrorCodeConstants.*;
@@ -40,6 +47,7 @@ public class StaffServiceImpl implements StaffService {
@Override
public void updateStaff(StaffSaveReqVO updateReqVO) {
+ JSON.toJSONString(updateReqVO.getServiceTime());
// 校验存在
validateStaffExists(updateReqVO.getId());
// 更新
@@ -69,11 +77,24 @@ public class StaffServiceImpl implements StaffService {
@Override
public PageResult getStaffPage(StaffPageReqVO pageReqVO) {
PageResult staffDOPageResult = staffMapper.selectPage(pageReqVO);
+
+ String serviceTime = "";
for (int i = 0; i < staffDOPageResult.getList().size(); i++) {
StaffDO staffDO = staffDOPageResult.getList().get(i);
OrganizationDO organizationDO = organizationMapper.selectOne("id", staffDO.getOrganizationId());
staffDO.setOrganizationName(organizationDO.getName());
+
+ //把StringJSON格式serviceTime转成对象
+ List serviceTimeVOS = JSON.parseObject(staffDO.getServiceTime(), new TypeReference>() {});
+ for (int j = 0; j < serviceTimeVOS.size(); j++) {
+ ServiceTimeVO serviceTimeVO = serviceTimeVOS.get(j);
+ serviceTime = serviceTime + serviceTimeVO.getStart() + " - " + serviceTimeVO.getEnd() + " , ";
+ }
+ String replaceAll = serviceTime.replaceAll(",\\s*$", "");
+ staffDO.setServiceTimeArray(replaceAll);
+ serviceTime = "";
}
+
return staffDOPageResult;
}