¶Ô±ÈÐÂÎļþ |
| | |
| | | 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> |