| ¶Ô±ÈÐÂÎļþ | 
 |  |  | 
 |  |  | import request from "@/utils/request"; | 
 |  |  | import { BaseResult } from "@/models/base"; | 
 |  |  |  | 
 |  |  | const reportApi = { | 
 |  |  |   sendWorkTime(params: any) { | 
 |  |  |     return request<BaseResult<any>>({ | 
 |  |  |       url: "/app/updateTeamStartTime", | 
 |  |  |       method: "GET", | 
 |  |  |       data: params, | 
 |  |  |     }); | 
 |  |  |   }, | 
 |  |  | }; | 
 |  |  |  | 
 |  |  | export default reportApi; | 
 
| ¶Ô±ÈÐÂÎļþ | 
 |  |  | 
 |  |  | <template> | 
 |  |  |   <view> | 
 |  |  |     <wd-icon name="scan" color="#999" size="18px" @click="openScan" /> | 
 |  |  |     <Scan ref="scanRef" /> | 
 |  |  |     <!-- å¼¹çª --> | 
 |  |  |     <wd-toast /> | 
 |  |  |   </view> | 
 |  |  | </template> | 
 |  |  |  | 
 |  |  | <script setup lang="ts"> | 
 |  |  | import Scan from "@/components/scan/index.vue"; | 
 |  |  | import { useUserStore } from "@/store/modules/user"; | 
 |  |  | import reportApi from "@/api/work/report"; | 
 |  |  | import { useToast } from "wot-design-uni"; | 
 |  |  |  | 
 |  |  | defineOptions({ | 
 |  |  |   name: "å·¥æ¶åé", | 
 |  |  | }); | 
 |  |  |  | 
 |  |  | const scanRef = ref(); | 
 |  |  | const userStore = useUserStore(); | 
 |  |  | const userInfo: any = computed(() => userStore.userInfo); | 
 |  |  | const toast = useToast(); | 
 |  |  |  | 
 |  |  | const openScan = () => { | 
 |  |  |   scanRef.value.triggerScan(); | 
 |  |  | }; | 
 |  |  |  | 
 |  |  | const getScanCode = async () => { | 
 |  |  |   const { code } = await reportApi.sendWorkTime({ | 
 |  |  |     userName: userInfo.value.userName, | 
 |  |  |   }); | 
 |  |  |   if (code == 200) { | 
 |  |  |     toast.success("æ«ç æå"); | 
 |  |  |   } | 
 |  |  | }; | 
 |  |  |  | 
 |  |  | onLoad(() => { | 
 |  |  |   // å¼å¯å¹¿æçå¬äºä»¶ | 
 |  |  |   uni.$on("scan", getScanCode); | 
 |  |  | }); | 
 |  |  | onUnload(() => { | 
 |  |  |   // å¼å¯å¹¿æçå¬äºä»¶ | 
 |  |  |   uni.$off("scan", getScanCode); | 
 |  |  | }); | 
 |  |  | </script> | 
 |  |  |  | 
 |  |  | <style lang="scss" scoped></style> | 
 
 |  |  | 
 |  |  |   <view style="width: 100%; height: var(--status-bar-height)" /> | 
 |  |  |   <view class="home"> | 
 |  |  |     <!-- å½åç¨æ· --> | 
 |  |  |     <view class="text-[#0D867F] font-medium py-2 text-lg">亨æºç¹å¯¼çº¿ç¼ä¸æ¥ç³»ç»</view> | 
 |  |  |     <view class="flex items-center justify-between"> | 
 |  |  |       <view class="text-[#0D867F] font-medium py-2 text-lg"> | 
 |  |  |         <text>亨æºç¹å¯¼çº¿ç¼ä¸æ¥ç³»ç»</text> | 
 |  |  |       </view> | 
 |  |  |       <view> | 
 |  |  |         <ReportWorkTime /> | 
 |  |  |       </view> | 
 |  |  |     </view> | 
 |  |  |     <WorkerCallingCard /> | 
 |  |  |  | 
 |  |  |     <!-- éç¥å
¬å --> | 
 |  |  |     <wd-notice-bar | 
 |  |  |       text="vue-uniapp-template æ¯ä¸ä¸ªåºäº Vue3 + UniApp çå端模æ¿é¡¹ç®ï¼æä¾äºä¸å¥å®æ´çåç«¯è§£å³æ¹æ¡ï¼å
æ¬ç»å½ãæéãåå
¸ãæ¥å£è¯·æ±ãç¶æç®¡çã页é¢å¸å±ãç»ä»¶å°è£
çåè½ã" | 
 |  |  |       custom-class="space" | 
 |  |  |     > | 
 |  |  |     <wd-notice-bar text="è¿æ¯ä¸æ¡æµè¯éç¥çæ°æ®" custom-class="space"> | 
 |  |  |       <template #prefix> | 
 |  |  |         <wd-icon class="prefix" name="warn-bold" size="14px"></wd-icon> | 
 |  |  |         <text class="text-xs">éç¥</text> | 
 |  |  | 
 |  |  |       </wd-grid-item> | 
 |  |  |     </wd-grid> --> | 
 |  |  |  | 
 |  |  |     <wd-card> | 
 |  |  |     <!-- <wd-card> | 
 |  |  |       <template #title> | 
 |  |  |         <view class="flex-between"> | 
 |  |  |           <view>访é®è¶å¿</view> | 
 |  |  | 
 |  |  |       <view class="charts-box"> | 
 |  |  |         <qiun-data-charts type="area" :chartData="chartData" :opts="chartOpts" /> | 
 |  |  |       </view> | 
 |  |  |     </wd-card> | 
 |  |  |     </wd-card> --> | 
 |  |  |   </view> | 
 |  |  | </template> | 
 |  |  |  | 
 |  |  | 
 |  |  | import { dayjs } from "wot-design-uni"; | 
 |  |  | import LogAPI, { VisitStatsVO } from "@/api/system/log"; | 
 |  |  | import WorkerCallingCard from "@/components/worker-calling-card/index.vue"; | 
 |  |  | import ReportWorkTime from "./components/ReportWorkTime.vue"; | 
 |  |  |  | 
 |  |  | const visitStatsData = ref<VisitStatsVO>({ | 
 |  |  |   todayUvCount: 0, | 
 
 |  |  | 
 |  |  | }; | 
 |  |  |  | 
 |  |  | // å¸¸è§é®é¢ | 
 |  |  | const navigateToFAQ = () => { | 
 |  |  |   uni.navigateTo({ url: "/pages/mine/faq/index" }); | 
 |  |  | }; | 
 |  |  | // const navigateToFAQ = () => { | 
 |  |  | //   uni.navigateTo({ url: "/pages/mine/faq/index" }); | 
 |  |  | // }; | 
 |  |  |  | 
 |  |  | // å
³äºæä»¬ | 
 |  |  | const navigateToAbout = () => { | 
 |  |  |   uni.navigateTo({ url: "/pages/mine/about/index" }); | 
 |  |  | }; | 
 |  |  | // const navigateToAbout = () => { | 
 |  |  | //   uni.navigateTo({ url: "/pages/mine/about/index" }); | 
 |  |  | // }; | 
 |  |  |  | 
 |  |  | // è®¾ç½® | 
 |  |  | const navigateToSettings = () => { | 
 |  |  | 
 |  |  | }; | 
 |  |  |  | 
 |  |  | // é®é¢åé¦ | 
 |  |  | const handleQuestionFeedback = () => { | 
 |  |  |   uni.navigateTo({ url: "/pages/mine/feedback/index" }); | 
 |  |  | }; | 
 |  |  | // const handleQuestionFeedback = () => { | 
 |  |  | //   uni.navigateTo({ url: "/pages/mine/feedback/index" }); | 
 |  |  | // }; | 
 |  |  |  | 
 |  |  | // å¯¼èªå°å个æ¿å | 
 |  |  | const navigateToSection = (section: string, subSection?: string) => { | 
 
 |  |  | 
 |  |  | import CardTitle from "@/components/card-title/index.vue"; | 
 |  |  | import MonofilCard from "../components/MonofilCard.vue"; | 
 |  |  | import { useToast } from "wot-design-uni"; | 
 |  |  | import { onLoad, onUnload, onShow, onHide } from "@dcloudio/uni-app"; | 
 |  |  | import { onLoad, onUnload } from "@dcloudio/uni-app"; | 
 |  |  | import Scan from "@/components/scan/index.vue"; | 
 |  |  | import ManageApi from "@/api/product/manage"; | 
 |  |  | import TwistApi from "@/api/product/twist"; | 
 |  |  | 
 |  |  |   // å¼å¯å¹¿æçå¬äºä»¶ | 
 |  |  |   uni.$off("scan", getScanCode); | 
 |  |  | }); | 
 |  |  |  | 
 |  |  | onShow(() => {}); | 
 |  |  |  | 
 |  |  | onHide(() => {}); | 
 |  |  | </script> | 
 |  |  |  | 
 |  |  | <style lang="scss" scoped> |