clockIn.js.map 28 KB

1
  1. {"version":3,"names":["setSignInfo","info","signInfo","main","common_vendor","index","setStorageSync","JSON","stringify","addSignInfo","sign","push","getSignInfo","getStorageSync","parse","getInfo","nowT","Date","mode","address","time","latitude","longitude","remarks","key","uniPopup","mainHead","ref","moduleColor","moduleTitle","bzText","img","type","money","num","r","Timer","isAm","isPm","amSign","pmSign","is","isSign","common_util","formateDate","date","week","allSign","covers","id","callout","content","color","display","iconPath","circles","radius","strokeWidth","fillColor","initializePage","_ref","_asyncToGenerator2","_regeneratorRuntime2","mark","_callee","signA","wrap","_callee$","_context","prev","next","_toConsumableArray2","reverse","value","checkIfSigned","getLocation","getTime","getWeekDate","stop","apply","arguments","length","isSameDay","now","weeks","getDay","getAdd","_ref2","_callee2","res","data","addressStr","_callee2$","_context2","abrupt","request","url","concat","sent","status","Error","message","result","formatted_addresses","recommend","t0","showToast","title","icon","_ref3","_callee3","_callee3$","_context3","showLoading","mask","hideLoading","updateLocation","duration","lat","lng","s","pointInsideCircle","clickSign","_ref4","_callee4","a","updatedSign","_callee4$","_context4","finish","onMounted","wx","createPage","_sfc_main"],"sources":["clockIn.js","clockIn.vue","cGFnZXMvY2xvY2tJbi9jbG9ja0luLnZ1ZQ"],"sourcesContent":["// clockIn.js\n\n// 打卡点击处理\nexport function handleSignClick() {\n console.log(1);\n}\n\n// 本地存储打卡信息\nexport function setSignInfo(info) {\n const signInfo = { main: [info] };\n uni.setStorageSync(\"signInfo\", JSON.stringify(signInfo));\n}\n\n// 本地添加打卡信息\nexport function addSignInfo(info, sign) {\n sign.main.push(info);\n uni.setStorageSync(\"signInfo\", JSON.stringify(sign));\n}\n\n// 本地获取打卡信息\nexport function getSignInfo() {\n const sign = uni.getStorageSync(\"signInfo\");\n return sign ? JSON.parse(sign) : null;\n}\n\n// 本地打卡信息清理\nexport function delSignInfo() {\n uni.removeStorage({\n key: 'signInfo',\n success() {\n uni.showToast({ title: \"重置成功\" });\n }\n });\n}\n\n// 打卡信息构造\nexport function getInfo(signInfo) {\n const nowT = new Date();\n return {\n mode: signInfo.mode,\n nowT,\n address: signInfo.address,\n time: signInfo.time,\n latitude: signInfo.latitude,\n longitude: signInfo.longitude,\n remarks: signInfo.remarks\n };\n}\n\n// 腾讯位置服务key值\nexport const key = \"SOEBZ-J2BHS-7YSOI-64K33-6RO65-G2FEJ\";","<template>\r\n\t<view class=\"content\">\r\n\t\t<view class=\"page-body\">\r\n\t\t\t<mainHead/>\r\n\t\t\t<!-- // 日期时间 -->\r\n\t\t\t<view class=\"sign-title-r\">\r\n\t\t\t\t<view class=\"date\">\r\n\t\t\t\t\t<view style=\"text-align: center;\">{{date}}<text style=\"margin: 0 1em;\">{{week}}</text>{{Timer[0].time}} - {{Timer[1].time}}</view>\r\n\t\t\t\t</view>\r\n\t\t\t</view>\r\n\t\t\t\r\n\t\t\t<!-- 打卡信息 -->\r\n\t\t\t<view class=\"uni-timeline\">\r\n\t\t\t\t<!-- 上班打卡 -->\r\n\t\t\t\t<view class=\"uni-timeline-item uni-timeline-first-item\">\r\n\t\t\t\t\t<view class=\"uni-timeline-item-divider\" :style=\"{ background : (!isAm ? '#1AAD19' : '#1AAD19')}\"></view>\r\n\t\t\t\t\t<view class=\"uni-timeline-item-content\">\r\n\t\t\t\t\t\t<view >\r\n\t\t\t\t\t\t\t<view class=\"uni-timeline-item-content-t1\">上班时间 &nbsp;{{Timer[0].time}}</view>\r\n\t\t\t\t\t\t\t<view class=\"desc-pad mgsBox\" v-if=\"isAm\">\r\n\t\t\t\t\t\t\t\t<view class=\"time uni-timeline-item-content-t iswqbox\">\r\n\t\t\t\t\t\t\t\t\t<!-- <uni-icon type=\"arrowdown\"></uni-icon> -->\r\n\t\t\t\t\t\t\t\t\t打卡时间 {{(amSign.time).substring(10,16)}}\r\n\t\t\t\t\t\t\t\t\t<view class=\"iswq\" v-if=\"amSign.mode == '外勤打卡'\">\r\n\t\t\t\t\t\t\t\t\t\t<uni-tag text=\"外勤\" inverted type=\"success\" size='small'></uni-tag>\r\n\t\t\t\t\t\t\t\t\t</view>\r\n\t\t\t\t\t\t\t\t</view>\r\n\t\t\t\t\t\t\t\t<view> \r\n\t\t\t\t\t\t\t\t<!-- <uni-icon type=\"location-filled\"/> -->\r\n\t\t\t\t\t\t\t\t{{amSign.address}}</view>\r\n\t\t\t\t\t\t\t\t<!-- <view class=\"bz last\" @click=\"showBz('amSign')\">\r\n\t\t\t\t\t\t\t\t\t备注 \r\n\t\t\t\t\t\t\t\t\t<uni-icon :style=\"{color:'rgb(0, 122, 255)'}\" type=\"forward\"></uni-icon>\r\n\t\t\t\t\t\t\t\t</view> -->\r\n\t\t\t\t\t\t\t</view>\r\n\t\t\t\t\t\t\t<view v-else class=\"content-show\">\r\n\t\t\t\t\t\t\t\t<view v-if=\"is === true\">\r\n\t\t\t\t\t\t\t\t\t<view :class=\"['module', moduleColor]\" @click=\"clickSign\">\r\n\t\t\t\t\t\t\t\t\t\t\t<view class=\"text\">{{moduleTitle}}</view>\r\n\t\t\t\t\t\t\t\t\t\t\t<view class=\"time\">{{time}}</view>\r\n\t\t\t\t\t\t\t\t\t</view>\r\n\t\t\t\t\t\t\t\t\t<view class=\"colorGreen\" style=\"text-align: center;\" v-if=\"is\">\r\n\t\t\t\t\t\t\t\t\t\t已在考勤范围内 <text class=\"relocation\" @click=\"relocation\">重新定位</text>\r\n\t\t\t\t\t\t\t\t\t</view>\r\n\t\t\t\t\t\t\t\t</view>\r\n\t\t\t\t\t\t\t\t<view v-else-if=\"is === false\">\r\n\t\t\t\t\t\t\t\t\t<view class=\"module CGreen\" @click=\"clickSign\">\r\n\t\t\t\t\t\t\t\t\t\t<view class=\"text\">外勤打卡</view>\r\n\t\t\t\t\t\t\t\t\t\t<view class=\"time\">{{time}}</view>\r\n\t\t\t\t\t\t\t\t\t</view>\r\n\t\t\t\t\t\t\t\t\t<view class=\"colorRed\" style=\"text-align: center;\" v-if=\"!is\">\r\n\t\t\t\t\t\t\t\t\t\t不再考勤范围内\t<text class=\"relocation\" @click=\"relocation\">重新定位</text>\r\n\t\t\t\t\t\t\t\t\t</view>\r\n\t\t\t\t\t\t\t\t</view>\r\n\t\t\t\t\t\t\t\t<view v-else-if=\"is === null\">\r\n\t\t\t\t\t\t\t\t\t<view class=\"module CAsh\">\r\n\t\t\t\t\t\t\t\t\t\t<view class=\"text\">定位失败</view>\r\n\t\t\t\t\t\t\t\t\t\t<view class=\"time\">{{time}}</view>\r\n\t\t\t\t\t\t\t\t\t</view>\r\n\t\t\t\t\t\t\t\t\t<view class=\"colorRed\" style=\"text-align: center;\">\r\n\t\t\t\t\t\t\t\t\t\t<text>请检查手机定位服务状态</text>\r\n\t\t\t\t\t\t\t\t\t\t<text class=\"relocation\" @click=\"relocation\">刷新</text>\r\n\t\t\t\t\t\t\t\t\t</view>\r\n\t\t\t\t\t\t\t\t</view>\r\n\t\t\t\t\t\t\t</view>\r\n\t\t\t\t\t\t</view>\r\n\t\t\t\t\t</view>\r\n\t\t\t\t</view>\r\n\t\t\t\t<view class=\"uni-timeline-item uni-timeline-last-item\">\r\n\t\t\t\t\t<view class=\"uni-timeline-item-divider\" :style=\"{ background : (isAm ? '#1AAD19' : '#bbb')}\"></view>\r\n\t\t\t\t\t<view class=\"uni-timeline-item-content\">\r\n\t\t\t\t\t\t<view>\r\n\t\t\t\t\t\t\t<view class=\"uni-timeline-item-content-t1\">下班时间 &nbsp;{{Timer[1].time}}</view>\r\n\t\t\t\t\t\t\t<view v-if=\"isAm\" class=\"desc-pad mgsBox\">\r\n\t\t\t\t\t\t\t\t<view class=\"desc-pad\" v-if=\"isPm\">\r\n\t\t\t\t\t\t\t\t\t<view class=\"time uni-timeline-item-content-t iswqbox\">\r\n\t\t\t\t\t\t\t\t\t\t打卡时间:{{(pmSign.time).substring(10,16)}}\r\n\t\t\t\t\t\t\t\t\t\t<!-- <view class=\"iswq\" v-if=\"pmSign.mode == '外勤打卡'\">外勤</view> -->\r\n\t\t\t\t\t\t\t\t\t\t<view class=\"iswq\" v-if=\"amSign.mode == '外勤打卡'\">\r\n\t\t\t\t\t\t\t\t\t\t\t<uni-tag text=\"外勤\" inverted type=\"success\" size='small'></uni-tag>\r\n\t\t\t\t\t\t\t\t\t\t</view>\r\n\t\t\t\t\t\t\t\t\t\t<view class=\"iswq\" v-if=\"amSign.mode == '迟到打卡'\">\r\n\t\t\t\t\t\t\t\t\t\t\t<uni-tag text=\"迟到\" inverted type=\"warning\" size='small'></uni-tag>\r\n\t\t\t\t\t\t\t\t\t\t</view>\r\n\t\t\t\t\t\t\t\t\t</view>\r\n\t\t\t\t\t\t\t\t\t<view>{{pmSign.address}}</view>\r\n\t\t\t\t\t\t\t\t\t<!-- <view class=\"bz last\" @click=\"showBz('pmSign')\">\r\n\t\t\t\t\t\t\t\t\t\t备注\r\n\t\t\t\t\t\t\t\t\t\t <uni-icon :style=\"{color:'rgb(0, 122, 255)'}\" type=\"forward\" />\r\n\t\t\t\t\t\t\t\t\t</view> -->\r\n\t\t\t\t\t\t\t\t</view>\r\n\t\t\t\t\t\t\t\t<view v-else class=\"content-show\">\r\n\t\t\t\t\t\t\t\t\t<view v-if=\"is === true\">\r\n\t\t\t\t\t\t\t\t\t\t<view class=\"module CBlue\" @click=\"clickSign\">\r\n\t\t\t\t\t\t\t\t\t\t\t<view class=\"text\">下班打卡</view>\r\n\t\t\t\t\t\t\t\t\t\t\t<view class=\"time\">{{time}}</view>\r\n\t\t\t\t\t\t\t\t\t\t</view>\r\n\t\t\t\t\t\t\t\t\t\t<view class=\"colorGreen\" style=\"text-align: center;\" v-if=\"is\">\r\n\t\t\t\t\t\t\t\t\t\t\t已在考勤范围内 <text class=\"relocation\" @click=\"relocation\">重新定位</text>\r\n\t\t\t\t\t\t\t\t\t\t</view>\r\n\t\t\t\t\t\t\t\t\t</view>\r\n\t\t\t\t\t\t\t\t\t<view v-else-if=\"is === false\">\r\n\t\t\t\t\t\t\t\t\t\t<view class=\"module CGreen\" @click=\"clickSign\">\r\n\t\t\t\t\t\t\t\t\t\t\t<view class=\"text\">外勤打卡</view>\r\n\t\t\t\t\t\t\t\t\t\t\t<view class=\"time\">{{time}}</view>\r\n\t\t\t\t\t\t\t\t\t\t</view>\r\n\t\t\t\t\t\t\t\t\t\t<view class=\"colorRed\" style=\"text-align: center;\" v-if=\"!is\">\r\n\t\t\t\t\t\t\t\t\t\t\t不再考勤范围内 <text class=\"relocation\" @click=\"relocation\">重新定位</text>\r\n\t\t\t\t\t\t\t\t\t\t</view>\r\n\t\t\t\t\t\t\t\t\t</view>\r\n\t\t\t\t\t\t\t\t\t<view v-else-if=\"is === null\">\r\n\t\t\t\t\t\t\t\t\t\t<view class=\"module CAsh\">\r\n\t\t\t\t\t\t\t\t\t\t\t<view class=\"text\">定位失败</view>\r\n\t\t\t\t\t\t\t\t\t\t\t<view class=\"time\">{{time}}</view>\r\n\t\t\t\t\t\t\t\t\t\t</view>\r\n\t\t\t\t\t\t\t\t\t</view>\r\n\t\t\t\t\t\t\t\t</view>\r\n\t\t\t\t\t\t\t</view>\r\n\t\t\t\t\t\t</view>\r\n\t\t\t\t\t</view>\r\n\t\t\t\t</view>\r\n\t\t\t</view>\r\n </view>\r\n\t\t<!-- 备注 -->\r\n\t\t<uni-popup :show=\"type === 'middle-list'\" position=\"middle\" mode=\"fixed\" @hidePopup=\"togglePopup('')\">\r\n\t\t\t<view class=\"title\" style=\"padding: 20upx 0;font-weight: bold;width: 100%;text-align: center;border-bottom: 1px solid #666;\">打卡备注</view>\r\n\t\t\t<view class=\"content\" style=\"padding: 20upx 10upx;width: 100%;\">\r\n\t\t\t\t<view class=\"text\">打卡时间:</view>\r\n\t\t\t\t<view>{{bzText.time}}</view>\r\n\t\t\t\t<view class=\"text\">打卡地点:</view>\r\n\t\t\t\t<view>{{bzText.address}}</view>\r\n\t\t\t</view>\r\n\t\t\t<view class=\"content\" style=\"padding: 20upx 10upx;width: 100%;\">\r\n\t\t\t\t<view>{{bzText.remarks}}</view>\r\n\t\t\t</view>\r\n\t\t\t<view class=\"bottom\" style=\"padding: 20upx 10upx;color: cadetblue;width: 100%;text-align: center;border-top: 1px solid #666;\" @click=\"togglePopup('')\">关闭</view>\r\n\t\t</uni-popup>\r\n\t</view>\r\n</template>\r\n\r\n<script setup>\nimport { ref, onMounted } from 'vue';\nimport uniPopup from '@/components/uni-popup/uni-popup.vue';\nimport uniIcon from \"@/components/uni-icon/uni-icon.vue\";\nimport mainHead from \"@/components/main/main-head.vue\";\nimport { formateDate, pointInsideCircle, isSameDay } from \"@/common/util.js\";\nimport { handleSignClick, setSignInfo, addSignInfo, getSignInfo, delSignInfo, getInfo, key } from \"./clockIn.js\";\n\n// 定义响应式数据\nconst name = ref(\"Navy_c\");\nconst moduleColor = ref('CBlue');\nconst moduleTitle = ref('上班打卡');\nconst bzText = ref({ time: \"\", address: \"\", img: \"\", remarks: \"\" });\nconst type = ref(\"\");\nconst achievement = ref({ money: \"888.88\", num: \"1\" });\nconst r = ref(80);\nconst Timer = ref([{ time: \"09:00\" }, { time: \"18:00\" }]);\nconst isAm = ref(false);\nconst isPm = ref(false);\nconst amSign = ref({ time: \"\", address: \"\", remarks: \"\", img: \"\" });\nconst pmSign = ref({ time: \"\", address: \"\", remarks: \"\", img: \"\" });\nconst clickNum = ref(0);\nconst is = ref(null);\nconst isSign = ref(false);\nconst time = ref(formateDate(new Date(), 'h:min:s'));\nconst date = ref(formateDate(new Date(), 'Y-M-D'));\nconst week = ref(\"\");\nconst latitude = ref(\"\");\nconst longitude = ref(\"\");\nconst address = ref(\"我的位置\");\nconst wqInfo = ref(null);\nconst allSign = ref([]);\nconst organize = ref('R & D department');\nconst signInfo = ref({ mode: \"\", latitude: \"\", longitude: \"\", address: \"\", time: \"\", remarks: \"\" });\nconst covers = ref([\n { id: 0, callout: { content: \"南京xxx技术有限公司\", color: \"red\", display: \"ALWAYS\" }, latitude: 113224630.115, longitude: 1837131905.02, iconPath: '../../../static/img/location.png' }\n]);\nconst circles = ref([\n { latitude: 113224630.115, longitude: 1837131905.02, radius: 80, strokeWidth: 1, fillColor: \"#7fff0099\" }\n]);\n\n// 初始化页面数据\nconst initializePage = async () => {\n const sign = getSignInfo();\n if (sign && sign.main) {\n const signA = [...sign.main].reverse();\n allSign.value = signA;\n\n // 检查当天是否已经签到\n checkIfSigned(signA);\n }\n\n await getLocation();\n getTime();\n getWeekDate();\n};\n\n// 检查当天是否已经签到\nconst checkIfSigned = (signA) => {\n if (signA.length === 1 && isSameDay(signA[0].nowT)) {\n isSign.value = true;\n isAm.value = true;\n amSign.value = signA[0];\n } else if (signA.length > 1) {\n if (isSameDay(signA[0].nowT)) {\n isSign.value = true;\n isPm.value = true;\n pmSign.value = signA[0];\n }\n if (isSameDay(signA[1].nowT)) {\n isSign.value = true;\n isAm.value = true;\n amSign.value = signA[1];\n }\n }\n};\n\n// 获取星期几\nconst getWeekDate = () => {\n const now = new Date();\n const weeks = [\"星期日\", \"星期一\", \"星期二\", \"星期三\", \"星期四\", \"星期五\", \"星期六\"];\n week.value = weeks[now.getDay()];\n};\n\n// 显示规则页面\nconst goRule = () => {\n uni.navigateTo({ url: \"/pages/rule/rule\" });\n};\n\n// 获取地址信息\nconst getAdd = async () => {\n if (isAm.value && isPm.value) return;\n\n if (is.value === true) {\n address.value = covers.value[0].callout.content;\n signInfo.value.address = address.value;\n return;\n }\n\n try {\n const res = await uni.request({\n url: `https://apis.map.qq.com/ws/geocoder/v1/?location=${latitude.value},${longitude.value}&key=${key}`,\n });\n\n const data = res.data;\n if (data.status !== 0) {\n throw new Error(data.message);\n }\n\n if (is.value === null) {\n address.value = \"请检查位置信息!\";\n } else if (is.value === false) {\n let addressStr = `${data.result.address} ${data.result.formatted_addresses.recommend}`;\n address.value = addressStr;\n signInfo.value.address = addressStr;\n }\n } catch (error) {\n uni.showToast({ title: error.message || \"获取地址失败\", icon: \"none\" });\n }\n};\n\n// 获取位置信息\nconst getLocation = async () => {\n try {\n uni.showLoading({ title: \"获取中...\", mask: true });\n\n const res = await uni.getLocation({ type: 'gcj02' });\n uni.hideLoading();\n\n latitude.value = res.latitude;\n longitude.value = res.longitude;\n updateLocation(res.latitude, res.longitude);\n } catch (error) {\n uni.hideLoading();\n address.value = \"请检查位置信息\";\n uni.showToast({ title: \"请检查位置信息状态!\", icon: \"none\", mask: true, duration: 3000 });\n }\n};\n\n// 更新位置信息\nconst updateLocation = (lat, lng) => {\n covers.value.push({ id: 1, latitude: lat, longitude: lng, iconPath: '../../static/location.png' });\n const s = pointInsideCircle([lat, lng], [circles.value[0].latitude, circles.value[0].longitude], r.value / 100000);\n is.value = s;\n signInfo.value.latitude = lat;\n signInfo.value.longitude = lng;\n signInfo.value.mode = s ? \"正常打卡\" : \"外勤打卡\";\n getAdd();\n};\n\n// 打卡操作\nconst clickSign = async () => {\n if (is.value === null) {\n uni.showToast({ title: \"请检查位置信息状态!\", icon: \"none\", mask: true, duration: 3000 });\n return;\n }\n\n try {\n await getLocation(); // 再次获取数据\n uni.showLoading({ title: \"打卡记录中...\", mask: true });\n\n signInfo.value.time = formateDate(new Date(), 'Y-M-D h:min:s');\n const a = getSignInfo();\n if (a) {\n addSignInfo(getInfo(signInfo.value), a);\n } else {\n setSignInfo(getInfo(signInfo.value));\n }\n\n const updatedSign = getSignInfo().main.reverse();\n allSign.value = updatedSign;\n isSign.value = true;\n\n if (!isAm.value) {\n isAm.value = true;\n amSign.value = updatedSign[0];\n } else {\n isPm.value = true;\n pmSign.value = updatedSign[1];\n }\n\n uni.showToast({ title: \"打卡成功!\" });\n } catch (error) {\n uni.showToast({ title: \"打卡失败,请稍后再试!\", icon: \"none\", mask: true });\n } finally {\n uni.hideLoading();\n }\n};\n\n// 初始化页面\nonMounted(() => {\n initializePage();\n});\n</script>\r\n\r\n<style>\r\n\t.map{width: 100%; height: 260px;}\r\n\t.uni-list-cell-left {padding: 0 30upx;}\r\n\t.text-desc{display: flex;justify-content: space-between;padding:10upx 20upx}\r\n\t.colorRed{color: red;}\r\n\t.colorGreen{color: #32CD32;}\r\n\t.colorYellow{color: yellow;}\r\n\t.colorBlue{color: #007aff;}\r\n\t\r\n\t.bgBlue{background-color: #007aff;}\r\n\t.bgGreen{background-color: #32CD32;}\r\n\t.bgAsh{background-color: #C8C7CC;}\r\n\t\r\n\t.uni-timeline{padding: 30upx 20upx;}\r\n\t.uni-timeline-item-content-t{font-weight: bold;}\r\n\t.desc-pad{padding: 0 0upx}\r\n\t.desc-pad .bz{color: rgb(0, 122, 255);}\r\n\t.desc-pad .bz .icon{color:rgb(0, 122, 255)}\r\n\t.uni-timeline-last-item .uni-timeline-item-divider{background: #bbb;}\r\n\t.CBlue{background-color: #007aff;box-shadow: 0 3px 3px #007aff;}\r\n\t.CGreen{background-color: #32CD32;box-shadow: 0 3px 3px #32CD32;}\r\n\t.CYellow{background-color: #FFA500;box-shadow: 0 3px 3px #FFA500;}\r\n\t.CAsh{background-color: #C8C7CC;box-shadow: 0 3px 3px #C8C7CC;}\r\n\t.module{overflow: hidden; margin: 20upx auto; width: 220upx;height: 220upx;border-radius: 50%;color: #fff;text-align: center;}\r\n\t.module .text{font-size: 20px;margin: 50upx auto 10upx;}\r\n\t.uni-timeline-item .uni-timeline-item-content{width: 100%;padding-right: 20upx;}\r\n\t\r\n\t.content-show{width:100%}\r\n\t\r\n\t\r\n\t\r\n\t.mgsBox {\r\n\t\tpadding: 20upx;\r\n\t\tmargin-bottom: 30upx;\r\n\t\tborder-radius: 8upx;\r\n\t\tbackground-color: #f1f1f1;\r\n\t}\r\n\t.iswqbox {\r\n\t\tdisplay: flex;\r\n\t\talign-items: center;\r\n\t}\r\n\t.iswq {\r\n\t\twidth: 100upx;\r\n\t\tmargin-left: 10upx;\r\n\t}\r\n</style>\n","import MiniProgramPage from 'D:/project/交割库/jgk-project/pages/clockIn/clockIn.vue'\nwx.createPage(MiniProgramPage)"],"mappings":"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","ignoreList":[]}