Browse Source

修改 bug

master
王泽彦 8 months ago
parent
commit
6dd351b6f0
  1. 22
      admin/src/app/api/salary.ts
  2. 2
      admin/src/app/views/salary/list.vue
  3. 41
      admin/src/components/TencentMapPicker.vue
  4. 8
      admin/src/utils/qqmap.ts

22
admin/src/app/api/salary.ts

@ -74,59 +74,59 @@ export const calculateNetSalary = (grossSalary: number, socialSecurity: number,
// 工资条列表 // 工资条列表
export const getSalaryList = (params: QueryParams) => { export const getSalaryList = (params: QueryParams) => {
return request.get('/adminapi/salary/payroll/list', { params }) return request.get('/salary/payroll/list', { params })
} }
// 创建工资条 // 创建工资条
export const createSalary = (data: SalaryFormData) => { export const createSalary = (data: SalaryFormData) => {
return request.post('/adminapi/salary/payroll/add', data) return request.post('/salary/payroll/add', data)
} }
// 更新工资条 // 更新工资条
export const updateSalary = (data: SalaryFormData & { id: number }) => { export const updateSalary = (data: SalaryFormData & { id: number }) => {
return request.post('/adminapi/salary/payroll/edit', data) return request.post('/salary/payroll/edit', data)
} }
// 删除工资条 // 删除工资条
export const deleteSalary = (id: number) => { export const deleteSalary = (id: number) => {
return request.post('/adminapi/salary/payroll/delete', { id }) return request.post('/salary/payroll/delete', { id })
} }
// 获取工资条详情 // 获取工资条详情
export const getSalaryInfo = (id: number) => { export const getSalaryInfo = (id: number) => {
return request.get('/adminapi/salary/payroll/info', { params: { id } }) return request.get('/salary/payroll/info', { params: { id } })
} }
// 批量导入工资条 // 批量导入工资条
export const importSalary = (file: File) => { export const importSalary = (file: File) => {
const formData = new FormData() const formData = new FormData()
formData.append('file', file) formData.append('file', file)
return request.post('/adminapi/salary/payroll/import', formData, { return request.post('/salary/payroll/import', formData, {
headers: { 'Content-Type': 'multipart/form-data' } headers: { 'Content-Type': 'multipart/form-data' }
}) })
} }
// 导出工资条 // 导出工资条
export const exportSalary = (params: QueryParams) => { export const exportSalary = (params: QueryParams) => {
return request.get('/adminapi/salary/payroll/export', { params, responseType: 'blob' }) return request.get('/salary/payroll/export', { params, responseType: 'blob' })
} }
// 获取统计摘要 // 获取统计摘要
export const getStatisticsSummary = (params: { salary_month?: string; campus_id?: number }) => { export const getStatisticsSummary = (params: { salary_month?: string; campus_id?: number }) => {
return request.get('/adminapi/salary/statistics/summary', { params }) return request.get('/salary/statistics/summary', { params })
} }
// 获取趋势数据 // 获取趋势数据
export const getStatisticsTrend = (params: { months?: number; campus_id?: number }) => { export const getStatisticsTrend = (params: { months?: number; campus_id?: number }) => {
return request.get('/adminapi/salary/statistics/trend', { params }) return request.get('/salary/statistics/trend', { params })
} }
// 获取员工列表 // 获取员工列表
export const getPersonnelList = () => { export const getPersonnelList = () => {
return request.get('/adminapi/personnel/list') return request.get('/personnel/list')
} }
// 获取校区列表 // 获取校区列表
export const getCampusList = () => { export const getCampusList = () => {
return request.get('/adminapi/campus/list') return request.get('/campus_person_role/campus_all')
} }

2
admin/src/app/views/salary/list.vue

@ -242,7 +242,7 @@ const queryFormRef = ref<FormInstance>()
const uploadRef = ref() const uploadRef = ref()
// //
const importAction = '/adminapi/salary/payroll/import' const importAction = '/salary/payroll/import'
const uploadHeaders = { const uploadHeaders = {
Authorization: `Bearer ${localStorage.getItem('token')}` Authorization: `Bearer ${localStorage.getItem('token')}`
} }

41
admin/src/components/TencentMapPicker.vue

@ -585,9 +585,48 @@ const handleAddressSearch = async () => {
if (error.status === 112 || (error.message && error.message.includes('IP未被授权'))) { if (error.status === 112 || (error.message && error.message.includes('IP未被授权'))) {
ElMessage({ ElMessage({
type: 'info', type: 'info',
message: '地址搜索暂不可用,请直接在地图上点击选择位置', message: '地址搜索暂不可用(API授权限制),请直接在地图上点击选择位置',
duration: 5000 duration: 5000
}) })
//
const address = [
provinceList.value.find((p) => p.id === province.value)?.name || '',
cityList.value.find((c) => c.id === city.value)?.name || '',
district.value
? districtList.value.find((d) => d.id === district.value)?.name || ''
: '',
detailAddress.value.trim(),
].filter(Boolean).join('')
emit('update:modelValue', {
lat: props.modelValue.lat || null,
lng: props.modelValue.lng || null,
address: address, //
})
} else if (error.status === 408 || error.statusText === 'Request Timeout') {
//
ElMessage({
type: 'warning',
message: '搜索请求超时,请直接在地图上点击选择位置',
duration: 5000
})
//
const address = [
provinceList.value.find((p) => p.id === province.value)?.name || '',
cityList.value.find((c) => c.id === city.value)?.name || '',
district.value
? districtList.value.find((d) => d.id === district.value)?.name || ''
: '',
detailAddress.value.trim(),
].filter(Boolean).join('')
emit('update:modelValue', {
lat: props.modelValue.lat || null,
lng: props.modelValue.lng || null,
address: address,
})
} else { } else {
ElMessage.error('搜索失败,请重试') ElMessage.error('搜索失败,请重试')
} }

8
admin/src/utils/qqmap.ts

@ -179,8 +179,8 @@ export const createMarker = (map: any) => {
*/ */
export const latLngToAddress = (params: any) => { export const latLngToAddress = (params: any) => {
return jsonp( return jsonp(
`https://apis.map.qq.com/ws/geocoder/v1/?key=${params.mapKey}&location=${params.lat},${params.lng}&output=jsonp&callback=latLngToAddress`, `https://apis.map.qq.com/ws/geocoder/v1/?key=${params.mapKey}&location=${params.lat},${params.lng}&output=jsonp&callback=reverseGeocode`,
{ callbackName: 'latLngToAddress' } { callbackName: 'reverseGeocode' }
) )
} }
@ -189,7 +189,7 @@ export const latLngToAddress = (params: any) => {
*/ */
export const addressToLatLng = (params: any) => { export const addressToLatLng = (params: any) => {
return jsonp( return jsonp(
`https://apis.map.qq.com/ws/geocoder/v1/?key=${params.mapKey}&address=${params.address}&output=jsonp&callback=addressToLatLng`, `https://apis.map.qq.com/ws/geocoder/v1/?key=${params.mapKey}&address=${params.address}&output=jsonp&callback=addressGeocode`,
{ callbackName: 'addressToLatLng' } { callbackName: 'addressGeocode' }
) )
} }

Loading…
Cancel
Save