Browse Source

日历组件国际化

wuhongbo 1 năm trước cách đây
mục cha
commit
4aa8f0e154

+ 6 - 0
client/src/api/oa/attendanceCenter/index.ts

@@ -0,0 +1,6 @@
+import request from '@/config/axios'
+
+// 获得行政管理_考勤列表_我的
+export const getAttendanceSheetListMine = (params) => {
+  return request.get({ url: '/adm/attendance-sheet/list-me', params })
+}

+ 49 - 0
client/src/api/oa/index.ts

@@ -0,0 +1,49 @@
+import request from '@/config/axios'
+
+export interface MenuVO {
+  id: number
+  name: string
+  permission: string
+  type: number
+  sort: number
+  parentId: number
+  path: string
+  icon: string
+  component: string
+  componentName?: string
+  status: number
+  visible: boolean
+  keepAlive: boolean
+  alwaysShow?: boolean
+  createTime: Date
+}
+
+// 查询菜单(精简)列表
+export const getSimpleMenusList = () => {
+  return request.get({ url: '/system/menu/list-all-simple' })
+}
+
+// 查询菜单列表
+export const getMenuList = (params) => {
+  return request.get({ url: '/system/menu/list', params })
+}
+
+// 获取菜单详情
+export const getMenu = (id: number) => {
+  return request.get({ url: '/system/menu/get?id=' + id })
+}
+
+// 新增菜单
+export const createMenu = (data: MenuVO) => {
+  return request.post({ url: '/system/menu/create', data })
+}
+
+// 修改菜单
+export const updateMenu = (data: MenuVO) => {
+  return request.put({ url: '/system/menu/update', data })
+}
+
+// 删除菜单
+export const deleteMenu = (id: number) => {
+  return request.delete({ url: '/system/menu/delete?id=' + id })
+}

+ 2 - 0
client/src/plugins/elementPlus/index.ts

@@ -2,6 +2,8 @@ import type { App } from 'vue'
 // 需要全局引入一些组件,如ElScrollbar,不然一些下拉项样式有问题
 import { ElLoading, ElScrollbar, ElButton } from 'element-plus'
 import 'dayjs/locale/zh-cn'
+import dayjs from 'dayjs'
+dayjs.locale('zh-cn')
 const plugins = [ElLoading]
 
 const components = [ElScrollbar, ElButton]

+ 50 - 2
client/src/views/OaSystem/attendanceCenter/mine.vue

@@ -3,7 +3,7 @@
     <div class="left-box box-1">
       <div class="box-title">我的考勤</div>
       <div class="calendarBox">
-        <el-calendar ref="calendar">
+        <el-calendar ref="calendar" v-model="calendarModel">
           <template #header="{ date }">
             <div class="calendarHeader">
               <el-icon class="icon1" @click="selectDate('prev-month')"><ArrowLeftBold /></el-icon>
@@ -80,6 +80,10 @@
 <script setup lang="ts">
 import type { CalendarDateType, CalendarInstance } from 'element-plus'
 import { getAssetURL } from '@/utils/auth'
+import moment from 'moment'
+import { formatDate } from '@/utils/formatTime'
+import * as MineApi from '@/api/oa/attendanceCenter'
+
 defineOptions({ name: 'AttendanceMine' })
 const calendar = ref<CalendarInstance>()
 const selectDate = (val: CalendarDateType) => {
@@ -184,7 +188,47 @@ const attendSteList = ref([
     value: '18:25'
   }
 ])
-onMounted(() => {})
+
+const calendarModel = ref('')
+const celendarChange = (e) => {
+  console.log(e)
+}
+const initAjax = async (date: String) => {
+  let params = {
+    attendanceTime: date, //	考勤时间
+    attendanceStatus: '', //	考勤状态,示例值(2)
+    attendanceType: '', //	考勤类型(1:上午;2:下午),示例值(1)
+    otherMinute: '' //	其他考勤状态分钟(除了出勤)
+  }
+  const res = await MineApi.getAttendanceSheetListMine(params)
+  console.log(res)
+  let arr = res
+  arr.forEach((item) => {
+    item.date = moment(item.attendanceTime).format('YYYY-MM-DD')
+    item.attendanceTime = formatDate(item.attendanceTime, 'HH:mm:ss')
+  })
+  console.log(arr)
+}
+watch(
+  () => calendarModel.value,
+  async (val: String) => {
+    let newDate1 = moment(val).format('YYYY-MM-DD') + ' 00:00:00'
+    let newDate2 = moment(val).format('YYYY-MM-DD') + ' 23:59:59'
+    let dateArr: any = []
+    dateArr[0] = newDate1
+    dateArr[1] = newDate2
+    initAjax(dateArr)
+  }
+)
+
+onMounted(() => {
+  let newDate1 = moment(Date.parse(String(new Date()))).format('YYYY-MM-DD') + ' 00:00:00'
+  let newDate2 = moment(Date.parse(String(new Date()))).format('YYYY-MM-DD') + ' 23:59:59'
+  let dateArr: any = []
+  dateArr[0] = newDate1
+  dateArr[1] = newDate2
+  initAjax(dateArr)
+})
 </script>
 <style lang="scss" scoped>
 h1 {
@@ -239,6 +283,10 @@ h1 {
         .icon1 {
           cursor: pointer;
         }
+        .title {
+          font-size: 18px;
+          font-weight: 600;
+        }
       }
     }
     .calendarInfo {