diff --git a/src/api/humanResource/clockin/index.ts b/src/api/humanResource/clockin/index.ts deleted file mode 100644 index 57c1f37..0000000 --- a/src/api/humanResource/clockin/index.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { http } from '@/utils/http'; - - -/*新增打卡记录*/ -export function addApi(config : Object) { - return http({ - url: '/cxc_rlzy.wbxm.wbdk/cxcRlzyWbdk/add', - method: 'POST', - data: config - }) -} \ No newline at end of file diff --git a/src/api/humanResource/personnel/index.ts b/src/api/humanResource/personnel/index.ts index 5c932d2..a2b7464 100644 --- a/src/api/humanResource/personnel/index.ts +++ b/src/api/humanResource/personnel/index.ts @@ -112,4 +112,13 @@ export function cxcRyDatAstatisticsDetails(parm) { // 员工信息统计 method: 'GET', data: parm }) +} + +/*新增打卡记录*/ +export function clockInApi(data : object) { + return http({ + url: '/cxc_rlzy.wbxm.wbdk/cxcRlzyWbdk/add', + method: 'POST', + data + }) } \ No newline at end of file diff --git a/src/api/politics/health.ts b/src/api/politics/health.ts index eade129..346a12b 100644 --- a/src/api/politics/health.ts +++ b/src/api/politics/health.ts @@ -18,4 +18,21 @@ export function queryIf3rdGxyApi(ldhth : string) { // 根据username获取职位 ldhth } }) +} + +//查询登录人本月随访问题 +export function querySfwtApi() { + return http({ + url: '/jksf.tbb/cxcGwjktbTbb/querySfwtByMonthLdhth', + method: 'GET' + }) +} + +// 提交随访问题 +export function editApi(data : object) { + return http({ + url: '/jksf.tbb/cxcGwjktbTbb/editCxcGwjktbTbbZb', + method: 'PUT', + data + }) } \ No newline at end of file diff --git a/src/api/system/index.ts b/src/api/system/index.ts index f1c117c..a257519 100644 --- a/src/api/system/index.ts +++ b/src/api/system/index.ts @@ -90,10 +90,34 @@ export function getDictItemsApi(dictCode : string) { // 字典标签专用 }) } -export function deleteFile(config : object){//删除文件 by 闵 +export function deleteFile(config : object) {//删除文件 by 闵 return http({ url: `/sys/common/deleteFileAndCache`, method: 'GET', data: config }) } + +/*根据经纬度获取地理位置*/ +export function getLocationApi(longitude : number, latitude : number) { + return http({ + url: `/sys/common/getLocation`, + method: 'GET', + data: { + longitude, + latitude + } + }) +} + +/*根据经纬度或城市名称获取天气信息*/ +export function getWeatherApi(longitude : number, latitude : number) { + return http({ + url: `/sys/common/getWeather`, + method: 'GET', + data: { + longitude, + latitude + } + }) +} \ No newline at end of file diff --git a/src/pages-humanResource/absence/add.vue b/src/pages-humanResource/absence/add.vue index 9e3d463..47d59ee 100644 --- a/src/pages-humanResource/absence/add.vue +++ b/src/pages-humanResource/absence/add.vue @@ -27,7 +27,7 @@ :rules="[{ required: true, message: '请选择结束时间' }]" :min-date="minEndtime" /> - + @@ -251,8 +251,8 @@ } else { toast.warning(res.message) setTimeout(() => { - handleClickLeft() - }, 1000) + uni.navigateBack() + }, 2000) } }) } @@ -333,13 +333,20 @@ roleId: '1554379432313397250', orgCode: userStore.userInfo.orgCode }).then(res => { - model.hr = res.result[0].username - hrData.value = res.result.map(item => { - return { - label: item.realname, - value: item.username - } - }) + if (res.result.length == 0) { + toast.warning('请切换工作单位!') + setTimeout(() => { + uni.navigateBack() + }, 2000) + } else { + model.hr = res.result[0].username + hrData.value = res.result.map(item => { + return { + label: item.realname, + value: item.username + } + }) + } }) } diff --git a/src/pages-politics/health/followup.vue b/src/pages-politics/health/followup.vue new file mode 100644 index 0000000..ce7b71c --- /dev/null +++ b/src/pages-politics/health/followup.vue @@ -0,0 +1,145 @@ + + { + layout: 'default', + style: { + navigationStyle: 'custom', + navigationBarTitleText: '健康随访', + }, + } + + + + + + + \ No newline at end of file diff --git a/src/pages.json b/src/pages.json index 88e5087..2bc63ea 100644 --- a/src/pages.json +++ b/src/pages.json @@ -479,6 +479,15 @@ "navigationStyle": "custom", "navigationBarTitleText": "健康填报" } + }, + { + "path": "health/followup", + "type": "page", + "layout": "default", + "style": { + "navigationStyle": "custom", + "navigationBarTitleText": "健康随访" + } } ] }, diff --git a/src/pages/user/people.vue b/src/pages/user/people.vue index d67f01c..ccb4f7d 100644 --- a/src/pages/user/people.vue +++ b/src/pages/user/people.vue @@ -61,8 +61,8 @@ import { getEnvBaseUrl } from '@/utils/index' import { queryPostByUserIdApi, editUserApi } from '@/api/system/user' import { useAppStore } from '@/store' - import { addApi } from '@/api/humanResource/clockin' - + import { clockInApi } from '@/api/humanResource/personnel' + const appStore = useAppStore(); const userStore = useUserStore() const toast = useToast() @@ -156,19 +156,30 @@ toast.warning('H5暂不支持') // #endif } - + const clockin = () => { if (loading.value) return - addApi({ - weizhi: appStore.clockin - }).then((res : any) => { - if(res.success){ - toast.success(res.message) - }else{ - toast.warning(res.message) + loading.value = true; + uni.getLocation({ + type: 'wgs84', + success: function (position) { + clockInApi({ + longitude: position.longitude, + latitude: position.latitude + }).then((res : any) => { + if (res.success) { + toast.success(res.message) + } else { + toast.warning(res.message) + } + loading.value = false + }) + }, + fail: function (err) { + toast.warning('请打开系统定位再打卡!') + loading.value = false } - loading.value = true - }) + }); } diff --git a/src/static/index/index/followup.png b/src/static/index/index/followup.png new file mode 100644 index 0000000..95bbd53 Binary files /dev/null and b/src/static/index/index/followup.png differ diff --git a/src/store/index.ts b/src/store/index.ts index d23a18b..159cdf9 100644 --- a/src/store/index.ts +++ b/src/store/index.ts @@ -15,7 +15,6 @@ export const useAppStore = defineStore('app', { isGray: 0 as 0 | 1, // 0=正常,1=灰化 position: null, //市 location: null, //省市区 - clockin: null, //详细位置 精确到街道 temperature: null, //温度 weather: null //天气 }), @@ -29,9 +28,6 @@ export const useAppStore = defineStore('app', { setLocation(value : string) { this.location = value }, - setClockin(value : string) { - this.clockin = value - }, setTemperature(value : number) { this.temperature = value }, diff --git a/src/types/uni-pages.d.ts b/src/types/uni-pages.d.ts index 34686a6..5b03bf8 100644 --- a/src/types/uni-pages.d.ts +++ b/src/types/uni-pages.d.ts @@ -53,6 +53,7 @@ interface NavigateToOptions { "/pages-humanResource/personnel/standingbook" | "/pages-integrated/duty/index" | "/pages-politics/health/add" | + "/pages-politics/health/followup" | "/pages-process/approvalTabbar" | "/pages-process/myApplyProcess" | "/pages-process/taskHandle" | diff --git a/src/utils/index.ts b/src/utils/index.ts index 431290f..419f779 100644 --- a/src/utils/index.ts +++ b/src/utils/index.ts @@ -2,7 +2,7 @@ import { defineStore } from 'pinia' import { pages, subPackages, tabBar } from '@/pages.json' import { isMpWeixin } from './platform' import { useAppStore } from '@/store' -import { upDateAppApi } from '@/api/system' +import { upDateAppApi, getLocationApi, getWeatherApi } from '@/api/system' @@ -232,11 +232,9 @@ export const useUpdateApp = defineStore('updateApp', () => { try { let path = '' let webApp = import.meta.env.VITE_WEBAPP - console.log(webApp) - if(webApp){//如果是测试环境 ,upDateAppApi 传递参数 by min + if (webApp) {//如果是测试环境 ,upDateAppApi 传递参数 by min path = webApp } - console.log(path) upDateAppApi(path).then(async (res : any) => { let { result @@ -285,19 +283,19 @@ export const useUpdateApp = defineStore('updateApp', () => { * @param isWgt 是否是热资源更新 默认不是 */ export const hasNewVersion = (version, isWgt = false) => { - // #ifdef APP_PLUS - return new Promise((resolve) => { - if (isWgt) { - plus.runtime.getProperty(plus.runtime.appid, (widgetInfo) => { - const currentVersion = widgetInfo.versionCode - resolve(Number(version) > Number(currentVersion)) - }) - } else { - const currentVersion = plus.runtime.versionCode - resolve(Number(version) > Number(currentVersion)) - } - }) - // #endif + // #ifdef APP_PLUS + return new Promise((resolve) => { + if (isWgt) { + plus.runtime.getProperty(plus.runtime.appid, (widgetInfo) => { + const currentVersion = widgetInfo.versionCode + resolve(Number(version) > Number(currentVersion)) + }) + } else { + const currentVersion = plus.runtime.versionCode + resolve(Number(version) > Number(currentVersion)) + } + }) + // #endif } export function onClickUpdate(updateType : string, url) { @@ -389,108 +387,38 @@ export const getLocation = () => { type: 'wgs84', success: function (position) { // 成功获取位置后请求地理编码 - uni.request({ - url: 'https://api.tianditu.gov.cn/geocoder', - method: 'GET', - data: { - postStr: JSON.stringify({ - lon: position.longitude, - lat: position.latitude, - ver: 1 - }), - type: 'geocode', - tk: '30fe0f0c1b2320e112bde797f3ddaff4' - }, - success: function (res : any) { - let data = res.data; - if (data.status == 0) { - const obj = data.result.addressComponent - store.setPosition(obj.city ? obj.city : obj.province) //市 - store.setLocation(obj.city ? obj.province + obj.city + obj.county : obj.province + obj.county) //省市区 - store.setClockin(data.result.formatted_address) - getWeather(position.latitude, position.longitude) - } else { - handleDefaultLocation() - } - }, - fail: function (err) { - // uni.showToast({ - // title: '位置解析失败', - // icon: 'error' - // }) + getLocationApi(position.longitude, position.latitude).then((res : any) => { + if (res) { + const obj = res.addressComponent + store.setPosition(obj.city ? obj.city : obj.province) //市 + store.setLocation(obj.city ? obj.province + obj.city + obj.county : obj.province + obj.county) //省市区 + getWeather(position.longitude, position.latitude) + } else { handleDefaultLocation() } - }); + }) }, - fail: function (err) { - // 根据不同错误码处理 - // if (err.errCode === 2 || err.errCode === 12) { - // // 2: 位置服务不可用, 12: 定位权限未开启 - // uni.showToast({ - // title: '请开启定位服务', - // icon: 'error' - // }) - - // } else { - // uni.showToast({ - // title: '定位获取失败', - // icon: 'error' - // }) - // } + fail: function () { handleDefaultLocation() } }); } -const getWeather = (lat : number, lon : number) => { - let params = { - lat: lat, - lon: lon - } - weatherRequest(params) -} - // 处理默认位置和天气 function handleDefaultLocation() { useAppStore().setPosition('濮阳市') - weatherRequest({ - q: '濮阳市' - }) + getWeather(115.08784, 35.773116) // //油田总部经纬度 } -function weatherRequest(params : { lat ?: number; lon ?: number; q ?: string }) { +function getWeather(lon : number, lat : number) { const store = useAppStore() - uni.request({ - url: 'https://api.openweathermap.org/data/2.5/weather', - method: 'GET', - data: { - ...params, - appid: '600a60694b0e453dfbaafa862f1d1482', - lang: 'zh_cn' - }, - success: function (res : any) { - if (res.data && res.data.main && res.data.weather) { - store.setTemperature( - Math.round(res.data.main.temp - 273.15) - ) - store.setWeather( - res.data.weather[0].icon - ) - } else { - // uni.showToast({ - // title: '天气数据格式错误', - // icon: 'error' - // }) - } - }, - // fail: function () { - // uni.showToast({ - // title: '天气获取失败', - // icon: 'error' - // }) - // } - }); + getWeatherApi(lon, lat).then((res : any) => { + if (res) { + store.setTemperature(Math.round(res.main.temp - 273.15)) + store.setWeather(res.weather[0].icon) + } + }) } export const imgUrl = (url : string) => { @@ -518,7 +446,7 @@ export function getFileAccessHttpUrl(avatar, subStr) { /* 获取文件名 */ export function getFilename(text : string) { if (!text) { - return text === null ? null : ""; + return text === null ? null : ""; } if (text.indexOf(',') > 0) { let arr = text.split(",")