更新记录

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
× × × × × × × × ×

使用方法

使用:

  1. 下载文件,然后将文件放到项目的指定目录下,并 import 导入使用即可

注意说明:

  1. 该组件使用的是Ts, 如您的项目是js,那么就需要手动修改下,移除组件里面的Ts相关类型定义即可
  2. 里面的 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>

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

许可协议

MIT协议

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问