更新记录
1.0.0(2023-09-25) 下载此版本
23-09-24 排班表组件1.0.0
平台兼容性
Vue2 | Vue3 |
---|---|
√ | √ |
App | 快应用 | 微信小程序 | 支付宝小程序 | 百度小程序 | 字节小程序 | QQ小程序 |
---|---|---|---|---|---|---|
× | × | √ | × | × | × | × |
钉钉小程序 | 快手小程序 | 飞书小程序 | 京东小程序 |
---|---|---|---|
× | × | × | × |
H5-Safari | Android Browser | 微信浏览器(Android) | QQ浏览器(Android) | Chrome | IE | Edge | Firefox | PC-Safari |
---|---|---|---|---|---|---|---|---|
× | × | × | × | × | × | × | × | × |
使用方法
使用:
- 下载文件,然后将文件放到项目的指定目录下,并 import 导入使用即可
注意说明:
- 该组件使用的是Ts, 如您的项目是js,那么就需要手动修改下,移除组件里面的Ts相关类型定义即可
- 里面的 PickerDate 组件是用了uniapp原有的picker-view进行二次封装的日期选择组件;可自行替换成你们自己项目里的UI库的选择器,若替换了之后,需要将返回值对应上 onConfirmDate 函数的值即可
传参说明
属性名 | 类型 | 必填 | 默认值 | 说明 |
---|---|---|---|---|
nowDate | Date | 否 | new Date() | 显示日期(默认:当天) |
valueKeys | Array | 否 | [{ label: '上午', keyName: 'morning' }, { label: '下午', keyName: 'afternoon' }] | 数据字段键值对配置,keyName 对应 shiftData 的Array数据的键名 |
shiftData | Object | 是 | {'2023-09-04': { morning: { name: '学习JS', color: '#FFD101' }, afternoon: {} }} | 排班表组件数据,对应日期数据,key & value 的格式,key需对应 valueKeys 配置中的 keyName 值。color: 非必填 |
title | String | 否 | 空 | 标题 |
isZeroFill | Boolean | 否 | true | 是否补零填充, 例如:为true时,日期为 2023-09-01 |
isThisWeek | Boolean | 否 | false | 是否显示回到本周按钮 |
isSelectWeek | Boolean 否 | false | 是否显示上周、下周切换按钮 | |
readonly | Boolean | 否 | false | 是否只读, 不可进行任何点击 |
事件方法
事件称名 | 说明 | 返回参数 |
---|---|---|
@onShiftData | 点击排班表内容触发 | 该项排班数据 |
@onLastWeek | 上一周 | - |
@onNextWeek | 下一周 | - |
@onThisWeek | 回到本周 | - |
@onSelectDate | 点击日期选择时触发 | - |
@onConfirmDate | 确认日期选择后触发 | 选中的日期数据date |
示例1
html
<gcm-work-schedule :now-date="nowDate" :shift-data="taskAllList" isThisWeek isSelectWeek></gcm-work-schedule>
Ts
<script setup lang='ts'>
import GcmWorkSchedule from '@/components/GcmWorkSchedule/GcmWorkSchedule.vue'
// 排班表
const nowDate = new Date('2023-09-09') // 显示日期
const taskAllList: { [key: string]: any } = {
'2023-09-04': {
morning: { name: '学习JS' },
afternoon: {}
},
'2023-09-05': {
morning: { name: 'node' },
afternoon: { name: 'Next', color: '#FFD101' }
},
'2023-09-06': {
morning: { name: 'TypeScrips' },
},
'2023-09-09': {
morning: { name: 'Vue', color: '#333' },
afternoon: { name: 'vuex' }
}
}
</script>
示例2
如需要自定义字段, 添加 value-keys 属性配置即可
<template>
<gcm-work-schedule title="自定义数据(只读)" :now-date="nowDate" :value-keys="valueKeysConfig" :shift-data="taskAllList" isThisWeek isSelectWeek></gcm-work-schedule>
</template>
<script setup lang='ts'>
import GcmWorkSchedule from '@/components/GcmWorkSchedule/GcmWorkSchedule.vue'
// 排班表
const nowDate = new Date('2023-09-21') // 显示日期
const valueKeysConfig = [
{ label: '9:00 ~ 10:00', keyName: 'one' },
{ label: '10:30 ~ 11:30', keyName: 'two' },
{ label: '14:30 ~ 15:30', keyName: 'three' },
{ label: '16:00 ~ 17:00', keyName: 'four' },
] // 自定义字段
const taskAllList: { [key: string]: any } = {
'2023-09-21': {
one: { name: '学习JS' },
two: {}
},
'2023-09-22': {
one: { name: 'node' },
two: { name: 'Next' }
},
} // 数据
</script>