18 changed files with 543 additions and 327 deletions
@ -1,14 +1,37 @@ |
|||||
// noinspection SpellCheckingInspection
|
|
||||
|
|
||||
import http from 'apis/axios'; |
import http from 'apis/axios'; |
||||
|
|
||||
const apiUrl = import.meta.env.VITE_API_URL; |
const apiUrl = import.meta.env.VITE_API_URL; |
||||
console.log('apiUrl: ', apiUrl); |
|
||||
const ptccsens = `${apiUrl}/ptccsens/v1.0`; |
const ptccsens = `${apiUrl}/ptccsens/v1.0`; |
||||
const finance = `${ptccsens}/finance`; |
const finance = `${ptccsens}/finance`; |
||||
|
const projectFinance = `${ptccsens}/projectFinance`; |
||||
|
|
||||
|
// 发起申请
|
||||
|
export const apply = params => http.post(`${finance}/apply`, params); |
||||
|
|
||||
|
// 审批
|
||||
|
export const audit = params => http.post(`${finance}/audit`, params); |
||||
|
|
||||
|
// 查询申请详情
|
||||
|
export const getApplyDetail = params => http.post(`${finance}/getApplyDetail`, params); |
||||
|
|
||||
|
// 通过任务id查看任务关联的财务信息
|
||||
|
export const getByTask = params => http.post(`${finance}/getByTask`, params); |
||||
|
|
||||
|
// 查询费用申请类型
|
||||
|
export const queryType = params => http.post(`${finance}/queryType`, params); |
||||
|
|
||||
|
|
||||
|
// 追加预算
|
||||
|
export const addBudget = params => http.post(`${projectFinance}/addBudget`, params); |
||||
|
|
||||
|
// 查看项目下的财务信息
|
||||
|
export const queryFinanceOfProject = params => http.post(`${projectFinance}/queryFinanceOfProject`, params); |
||||
|
|
||||
// 查看项目下的所有任务对应的财务信息
|
// 查看项目下的所有任务对应的财务信息
|
||||
export const financeInfo = params => http.post(`${finance}/getByTask`, params); |
export const queryProjectFinance = params => http.post(`${projectFinance}/queryProjectFinance`, params); |
||||
|
|
||||
// 修改任务或项目的预算和奖金信息
|
// 修改任务或项目的预算和奖金信息
|
||||
// export const edit = params => http.post(`${finance}/info`, params);
|
export const updateFinance = params => http.post(`${projectFinance}/updateFinance`, params); |
||||
|
|
||||
|
// 查看自己需要审批的申请
|
||||
|
export const queryNeedCheckByMe = params => http.post(`${projectFinance}/queryNeedCheckByMe`, params); |
||||
|
@ -1,3 +1,53 @@ |
|||||
<template> |
<template> |
||||
<NuxtPage /> |
<NuxtPage /> |
||||
</template> |
</template> |
||||
|
|
||||
|
<script setup> |
||||
|
import { reactive } from 'vue'; |
||||
|
import { useRouter } from 'vue-router'; |
||||
|
import { getToken } from 'apis/index' |
||||
|
|
||||
|
const router = useRouter(); |
||||
|
|
||||
|
const user = useUser() |
||||
|
const userId = useUserId() |
||||
|
const projectId = useProjectId() |
||||
|
const taskId = useTaskId() |
||||
|
|
||||
|
// 获取路径上的参数 |
||||
|
const routeValue = router.currentRoute.value; |
||||
|
console.log('routeValue: ', routeValue); |
||||
|
userId.value = routeValue && routeValue.query && routeValue.query.userId ? routeValue.query.userId : ''; |
||||
|
projectId.value = routeValue && routeValue.query && routeValue.query.projectId ? routeValue.query.projectId : ''; |
||||
|
taskId.value = routeValue && routeValue.query && routeValue.query.id ? routeValue.query.id : ''; |
||||
|
|
||||
|
// const userString = sessionStorage.getItem('user') || null; |
||||
|
// if (userString) { |
||||
|
// const userInfo = JSON.parse(userString); |
||||
|
// user.value = userInfo; |
||||
|
// } else { |
||||
|
getTokenByUserId(userId.value) |
||||
|
// } |
||||
|
|
||||
|
/** |
||||
|
* 根据userId获取token级user信息 |
||||
|
* @param {*} param |
||||
|
* @param {string} userId 用户id |
||||
|
*/ |
||||
|
async function getTokenByUserId(userId) { |
||||
|
try { |
||||
|
const data = await getToken(userId); |
||||
|
user.value = data || null; |
||||
|
console.log('data: ', data); |
||||
|
if (data) { |
||||
|
sessionStorage.setItem('token', data.token); |
||||
|
sessionStorage.setItem('user', JSON.stringify(data)); |
||||
|
} else { |
||||
|
sessionStorage.removeItem('token'); |
||||
|
sessionStorage.removeItem('user'); |
||||
|
} |
||||
|
} catch (error) { |
||||
|
console.error('error: ', error); |
||||
|
} |
||||
|
} |
||||
|
</script> |
||||
|
@ -0,0 +1,21 @@ |
|||||
|
import { useState } from '#app'; |
||||
|
|
||||
|
export const useToken = () => { |
||||
|
return useState('token', () => ''); |
||||
|
}; |
||||
|
|
||||
|
export const useUserId = () => { |
||||
|
return useState('userId', () => ''); |
||||
|
}; |
||||
|
|
||||
|
export const useProjectId = () => { |
||||
|
return useState('projectId', () => ''); |
||||
|
}; |
||||
|
|
||||
|
export const useUser = () => { |
||||
|
return useState('user', () => null); |
||||
|
}; |
||||
|
|
||||
|
export const useTaskId = () => { |
||||
|
return useState('taskId', () => null); |
||||
|
}; |
@ -0,0 +1,15 @@ |
|||||
|
{ |
||||
|
"$shared": { |
||||
|
"version": "v1", |
||||
|
"identifier": "wally", |
||||
|
"credential": "111111" |
||||
|
}, |
||||
|
"dev": { |
||||
|
"name": "dev", |
||||
|
"url": "https://test.tall.wiki/gateway" |
||||
|
}, |
||||
|
"local": { |
||||
|
"version": "v2", |
||||
|
"url": "https://test.tall.wiki/gateway" |
||||
|
} |
||||
|
} |
@ -0,0 +1,109 @@ |
|||||
|
@localhost = http://localhost:7320/v1.0 |
||||
|
@localhost_tall = http://localhost:7130/v3.0 |
||||
|
@test_tall = http://192.168.0.99:7130/v3.0 |
||||
|
@test = https://test.tall.wiki/ptccsens/v1.0 |
||||
|
@www_tall = http://www.tall.wiki:7130/v3.0 |
||||
|
@www = http://www.tall.wiki/ptccsens/v1.0 |
||||
|
@type = content-type: application/json;charset=utf-8 |
||||
|
|
||||
|
### 登录 |
||||
|
# song 1218763410024566784 |
||||
|
# @name login |
||||
|
POST {{localhost_tall}}/users/signin |
||||
|
{{type}} |
||||
|
|
||||
|
{ |
||||
|
"client": 1, |
||||
|
"type": 3, |
||||
|
"data": { |
||||
|
"identifier": "whj", |
||||
|
"credential": "123456" |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
### debug |
||||
|
GET {{test}}/debug |
||||
|
{{type}} |
||||
|
Authorization: Bearer {{login.response.body.$.data.token}} |
||||
|
|
||||
|
###查询费用申请类型 |
||||
|
POST {{localhost}}/finance/queryType |
||||
|
{{type}} |
||||
|
Authorization: Bearer {{login.response.body.$.data.token}} |
||||
|
|
||||
|
{ |
||||
|
"param":{ |
||||
|
"parentId":"4", |
||||
|
"type":2 |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
###发起申请 |
||||
|
POST {{localhost}}/finance/apply |
||||
|
{{type}} |
||||
|
Authorization: Bearer {{login.response.body.$.data.token}} |
||||
|
|
||||
|
{ |
||||
|
"param":{ |
||||
|
|
||||
|
"checkerList": [ |
||||
|
123 |
||||
|
], |
||||
|
"invoiceList": [ |
||||
|
{ |
||||
|
"invoiceCode": "014002100112", |
||||
|
"invoiceNumber": "86610940", |
||||
|
"invoiceTime": 1643075118954, |
||||
|
"money": 4190, |
||||
|
"remark": "业务招待支出", |
||||
|
"taxMoney": 126, |
||||
|
"url": "https://alifei04.cfp.cn/creative/vcg/800/new/VCG211363439424.jpg" |
||||
|
} |
||||
|
], |
||||
|
"projectId": 2, |
||||
|
"taskDetailId": 3, |
||||
|
"remark": "", |
||||
|
"department": "视觉传达事业部", |
||||
|
"submitName": "黛西", |
||||
|
"money": 4190, |
||||
|
"typeId": 1, |
||||
|
"categoryId": 4, |
||||
|
"rowId": 7 |
||||
|
|
||||
|
} |
||||
|
} |
||||
|
|
||||
|
###查询申请详情 |
||||
|
POST {{localhost}}/finance/getApplyDetail |
||||
|
{{type}} |
||||
|
Authorization: Bearer {{login.response.body.$.data.token}} |
||||
|
|
||||
|
{ |
||||
|
"param":{ |
||||
|
"applyId":"1485797754654695424" |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
###审批 |
||||
|
POST {{localhost}}/finance/audit |
||||
|
{{type}} |
||||
|
Authorization: Bearer {{login.response.body.$.data.token}} |
||||
|
|
||||
|
{ |
||||
|
"param":{ |
||||
|
"checkStatus":"2", |
||||
|
"financeCheckId":"1485797754923130880", |
||||
|
"remark":"测试" |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
###通过任务id查看任务关联的财务信息 |
||||
|
POST {{localhost}}/finance/getByTask |
||||
|
{{type}} |
||||
|
Authorization: Bearer {{login.response.body.$.data.token}} |
||||
|
|
||||
|
{ |
||||
|
"param":{ |
||||
|
"taskDetailId":"3" |
||||
|
} |
||||
|
} |
@ -1,10 +0,0 @@ |
|||||
import { createStore } from 'vuex'; |
|
||||
import user from './user'; |
|
||||
|
|
||||
export default createStore({ |
|
||||
modules: { user }, |
|
||||
state: {}, |
|
||||
getters: {}, |
|
||||
mutations: {}, |
|
||||
actions: {}, |
|
||||
}); |
|
@ -1,61 +0,0 @@ |
|||||
import { getToken } from 'apis/index'; |
|
||||
|
|
||||
export default { |
|
||||
namespaced: true, |
|
||||
|
|
||||
state: { user: null }, |
|
||||
|
|
||||
getters: { |
|
||||
token({ user }) { |
|
||||
if (!user) return null; |
|
||||
return user.token; |
|
||||
}, |
|
||||
userId({ user }) { |
|
||||
if (!user) return null; |
|
||||
return user.id; |
|
||||
}, |
|
||||
account({ user }) { |
|
||||
if (!user) return null; |
|
||||
return user.account; |
|
||||
}, |
|
||||
isAdmin({ user }) { |
|
||||
if (!user) return false; |
|
||||
return user.account === 'iacdadmin'; |
|
||||
}, |
|
||||
}, |
|
||||
|
|
||||
mutations: { |
|
||||
/** |
|
||||
* 设置state.user |
|
||||
* @param {*} state |
|
||||
* @param {object|null} user 用户信息 |
|
||||
*/ |
|
||||
setUser(state, user) { |
|
||||
state.user = user; |
|
||||
if (user) { |
|
||||
sessionStorage.setItem('token', user.token); |
|
||||
sessionStorage.setItem('user', JSON.stringify(user)); |
|
||||
} else { |
|
||||
sessionStorage.removeItem('token'); |
|
||||
sessionStorage.removeItem('user'); |
|
||||
} |
|
||||
}, |
|
||||
}, |
|
||||
|
|
||||
actions: { |
|
||||
/** |
|
||||
* 根据userId获取token级user信息 |
|
||||
* @param {*} param0 |
|
||||
* @param {string} userId 用户id |
|
||||
*/ |
|
||||
async getTokenByUserId({ commit }, userId) { |
|
||||
try { |
|
||||
const data = await getToken(userId); |
|
||||
commit('setUser', data || null); |
|
||||
return data; |
|
||||
} catch (error) { |
|
||||
throw new Error(error); |
|
||||
} |
|
||||
}, |
|
||||
}, |
|
||||
}; |
|
Loading…
Reference in new issue