diff --git a/yudao-admin-vue3/src/api/subscribe/staff/index.ts b/yudao-admin-vue3/src/api/subscribe/staff/index.ts index 832681e..edb03b0 100644 --- a/yudao-admin-vue3/src/api/subscribe/staff/index.ts +++ b/yudao-admin-vue3/src/api/subscribe/staff/index.ts @@ -12,11 +12,12 @@ export interface StaffVO { photo: string // 照片 phone: string // 手机号 serviceTime: string // 服务时间段 + serviceStartTime: string + serviceEndTime: string serviceScope: string // 服务范围 sign: number // 约满标记 status: number // 状态 content: string // 介绍 - serviceTimeArray: string } // 预约人员 API diff --git a/yudao-admin-vue3/src/utils/dict.ts b/yudao-admin-vue3/src/utils/dict.ts index 7d71430..100c1d1 100644 --- a/yudao-admin-vue3/src/utils/dict.ts +++ b/yudao-admin-vue3/src/utils/dict.ts @@ -108,26 +108,10 @@ export const getDictLabel = (dictType: string, value: any): string => { } export enum DICT_TYPE { - USER_TYPE = 'user_type', COMMON_STATUS = 'common_status', 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', diff --git a/yudao-admin-vue3/src/views/subscribe/organization/OrganizationForm.vue b/yudao-admin-vue3/src/views/subscribe/organization/OrganizationForm.vue index 6c7d632..b37de29 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 + +/** 打开弹窗 */ +const open = async (type: string, id?: number) => { + dialogVisible.value = true + dialogTitle.value = t('action.' + type) + formType.value = type + resetForm() + // 修改时,设置数据 + if (id) { + formLoading.value = true + try { + formData.value = await StaffApi.getStaff(id) + } finally { + formLoading.value = false + } + } +} +defineExpose({ open }) // 提供 open 方法,用于打开弹窗 + +/** 提交表单 */ +const emit = defineEmits(['success']) // 定义 success 事件,用于操作成功后的回调 +const submitForm = async () => { + // 校验表单 + await formRef.value.validate() + // 提交请求 + formLoading.value = true + try { + const data = formData.value as unknown as StaffVO + if (formType.value === 'create') { + await StaffApi.createStaff(data) + message.success(t('common.createSuccess')) + } else { + await StaffApi.updateStaff(data) + message.success(t('common.updateSuccess')) + } + dialogVisible.value = false + // 发送操作成功的事件 + emit('success') + } finally { + formLoading.value = false + } +} + +/** 重置表单 */ +const resetForm = () => { + formData.value = { + id: undefined, + organizationId: undefined, + serialNumber: undefined, + type: undefined, + name: undefined, + sex: undefined, + photo: undefined, + phone: undefined, + serviceTime: undefined, + serviceStartTime: undefined, + serviceEndTime: undefined, + serviceScope: undefined, + sign: undefined, + status: undefined, + content: undefined, + } + formRef.value?.resetFields() +} + +/** 初始化 **/ +onMounted(() => { + getOrganizations() +}) + + \ 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 3685e78..8df95db 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" /> - + - - + + - - - + - - - - - @@ -37,21 +31,11 @@ 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' }) @@ -82,7 +65,6 @@ 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({ @@ -95,23 +77,9 @@ 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 @@ -154,10 +122,6 @@ 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 4a1edbc..cdb6ce8 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 deleted file mode 100644 index a8ab595..0000000 --- a/yudao-module-subscribe/yudao-module-subscribe-biz/src/main/java/cn/iocoder/yudao/module/srbscribe/controller/admin/staff/vo/ServiceTimeVO.java +++ /dev/null @@ -1,9 +0,0 @@ -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 8e6ecdb..fa6834a 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,6 +1,5 @@ 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; @@ -38,12 +37,14 @@ public class StaffPageReqVO extends PageParam { private String phone; @Schema(description = "服务时间段") - private String serviceTime; - -// @Schema(description = "服务开始时间") -// private String serviceStartTime; + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + 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/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 20d207e..392830f 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,10 +52,11 @@ public class StaffRespVO { @ExcelProperty("服务时间段") private String serviceTime; -// @Schema(description = "服务开始时间") -// private String serviceStartTime; -// - private String serviceTimeArray; + @Schema(description = "服务开始时间") + private String serviceStartTime; + + @Schema(description = "服务结束时间") + private String serviceEndTime; @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 d065bcd..4aa2824 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,6 +36,12 @@ 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 1a17b79..b8d9600 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,6 +1,5 @@ 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.*; @@ -23,10 +22,6 @@ 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 枚举类中 @@ -36,10 +31,6 @@ public class SubscribeManageRespVO { @ExcelProperty("预约人员id") private Long staffId; - @Schema(description = "预约人员") - @ExcelProperty("预约人员") - private String staffName; - @Schema(description = "预约时间") @ExcelProperty("预约时间") private LocalDateTime subscribeTime; @@ -57,6 +48,8 @@ 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 49d9a19..7491802 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,6 +1,5 @@ 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.*; @@ -65,6 +64,14 @@ public class StaffDO extends BaseDO { * 服务时间段 */ private String serviceTime; + /** + * 服务开始时间 + */ + private String serviceStartTime; + /** + * 服务结束时间 + */ + private String serviceEndTime; /** * 服务范围 */ @@ -90,7 +97,4 @@ 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 ed350b0..33fd1cd 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,7 +23,9 @@ public interface OrganizationMapper extends BaseMapperX { .likeIfPresent(OrganizationDO::getName, reqVO.getName()) .eqIfPresent(OrganizationDO::getPhone, reqVO.getPhone()) .eqIfPresent(OrganizationDO::getEmail, reqVO.getEmail()) - .likeIfPresent(OrganizationDO::getAddress, reqVO.getAddress()) + .eqIfPresent(OrganizationDO::getPicture, reqVO.getPicture()) + .eqIfPresent(OrganizationDO::getAddress, reqVO.getAddress()) + .eqIfPresent(OrganizationDO::getDepict, reqVO.getDepict()) .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 5409ebd..4015ea9 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 bbfb91c..4498da7 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,23 +1,16 @@ 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.*; @@ -47,7 +40,6 @@ public class StaffServiceImpl implements StaffService { @Override public void updateStaff(StaffSaveReqVO updateReqVO) { - JSON.toJSONString(updateReqVO.getServiceTime()); // 校验存在 validateStaffExists(updateReqVO.getId()); // 更新 @@ -77,24 +69,11 @@ 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; }