From dfb457d11da754865b7c4505d0cd45aa51ef6bc2 Mon Sep 17 00:00:00 2001 From: song Date: Tue, 25 Jan 2022 18:38:42 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E5=8F=91=E8=B5=B7=E7=94=B3=E8=AF=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apis/axios.js | 9 +- apis/finance.js | 20 +- apis/member.js | 8 + apis/projectFinance.js | 23 ++ app.vue | 36 +-- components/FinanceExamine.vue | 38 ++- components/FinanceManage.vue | 9 +- composables/state.ts | 8 + hooks/useApplication.js | 33 +++ pages/Initiate-application.vue | 444 ++++++++++++++------------------- pages/applicant.vue | 18 +- plugins/vant.js | 4 +- 12 files changed, 318 insertions(+), 332 deletions(-) create mode 100644 apis/member.js create mode 100644 apis/projectFinance.js create mode 100644 hooks/useApplication.js diff --git a/apis/axios.js b/apis/axios.js index ba04463..c5488db 100644 --- a/apis/axios.js +++ b/apis/axios.js @@ -1,7 +1,7 @@ import Axios from 'axios'; import { Toast } from 'vant'; -// import store from 'store'; import { createApp } from 'vue'; +import { useToken } from '../composables/state' const app = createApp(); app.use(Toast); @@ -13,12 +13,13 @@ const instance = Axios.create({ timeout: 20000, }); + // request instance.interceptors.request.use( config => { - const token = sessionStorage.getItem('token') || ''; - if (token) { - config.headers.Authorization = `Bearer ${token}`; + const token = useToken() + if (token.value) { + config.headers.Authorization = `Bearer ${token.value}`; } // config.headers.deviceId = store.state.systemInfo.deviceId; config.headers.deviceId = '1'; diff --git a/apis/finance.js b/apis/finance.js index 4e74a91..df55123 100644 --- a/apis/finance.js +++ b/apis/finance.js @@ -3,7 +3,6 @@ import http from 'apis/axios'; const apiUrl = import.meta.env.VITE_API_URL; const ptccsens = `${apiUrl}/ptccsens/v1.0`; const finance = `${ptccsens}/finance`; -const projectFinance = `${ptccsens}/projectFinance`; // 发起申请 export const apply = params => http.post(`${finance}/apply`, params); @@ -17,21 +16,8 @@ export const getApplyDetail = params => http.post(`${finance}/getApplyDetail`, p // 通过任务id查看任务关联的财务信息 export const getByTask = params => http.post(`${finance}/getByTask`, params); +// 查看当前用户的费用申请历史信息(奖金) +export const personalHistory = params => http.post(`${finance}/personalHistory`, 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 queryProjectFinance = params => http.post(`${projectFinance}/queryProjectFinance`, params); - -// 修改任务或项目的预算和奖金信息 -export const updateFinance = params => http.post(`${projectFinance}/updateFinance`, params); - -// 查看自己需要审批的申请 -export const queryNeedCheckByMe = params => http.post(`${projectFinance}/queryNeedCheckByMe`, params); diff --git a/apis/member.js b/apis/member.js new file mode 100644 index 0000000..6c56500 --- /dev/null +++ b/apis/member.js @@ -0,0 +1,8 @@ +import http from 'apis/axios'; + +const apiUrl = import.meta.env.VITE_API_URL; +const ptccsens = `${apiUrl}/ptccsens/v1.0`; +const member = `${ptccsens}/member`; + +// 查询所有成员 +export const queryChecker = params => http.post(`${member}/queryChecker`, params); diff --git a/apis/projectFinance.js b/apis/projectFinance.js new file mode 100644 index 0000000..c597b1f --- /dev/null +++ b/apis/projectFinance.js @@ -0,0 +1,23 @@ +import http from 'apis/axios'; + +const apiUrl = import.meta.env.VITE_API_URL; +const ptccsens = `${apiUrl}/ptccsens/v1.0`; +const projectFinance = `${ptccsens}/projectFinance`; + +// 追加预算 +export const addBudget = params => http.post(`${projectFinance}/addBudget`, params); + +// 查看所有的费用申请 +export const queryAllMoneyApply = params => http.post(`${projectFinance}/queryAllMoneyApply`, params); + +// 查看项目下的财务信息 +export const queryFinanceOfProject = params => http.post(`${projectFinance}/queryFinanceOfProject`, params); + +// 查看自己需要审批的申请 +export const queryNeedCheckByMe = params => http.post(`${projectFinance}/queryNeedCheckByMe`, params); + +// 查看项目下的所有任务对应的财务信息 +export const queryProjectFinance = params => http.post(`${projectFinance}/queryProjectFinance`, params); + +// 修改任务或项目的预算和奖金信息 +export const updateFinance = params => http.post(`${projectFinance}/updateFinance`, params); diff --git a/app.vue b/app.vue index af56958..2a98fbd 100644 --- a/app.vue +++ b/app.vue @@ -5,49 +5,25 @@ diff --git a/components/FinanceExamine.vue b/components/FinanceExamine.vue index 47b4a33..8690621 100644 --- a/components/FinanceExamine.vue +++ b/components/FinanceExamine.vue @@ -14,15 +14,9 @@ {{dayjs(item.submitTime - 0).format('YYYY-MM-DD')}}
- + 通过 - 驳回 + 驳回
{{ item.applyType === 1 ? '已完成' : '已驳回' }}
@@ -34,12 +28,17 @@ + + + + diff --git a/components/HistoricalApplication.vue b/components/HistoricalApplication.vue new file mode 100644 index 0000000..5ec705b --- /dev/null +++ b/components/HistoricalApplication.vue @@ -0,0 +1,155 @@ + + + + + diff --git a/pages/Initiate-application.vue b/pages/Initiate-application.vue index 4b7c0fb..282ab5d 100644 --- a/pages/Initiate-application.vue +++ b/pages/Initiate-application.vue @@ -1,427 +1,450 @@ - - - - + + + + diff --git a/pages/applicant.vue b/pages/applicant.vue index 3ac65aa..461b680 100644 --- a/pages/applicant.vue +++ b/pages/applicant.vue @@ -1,78 +1,88 @@ - - - - - - + + + + + diff --git a/plugins/vant.js b/plugins/vant.js index 8439da6..8f1edba 100644 --- a/plugins/vant.js +++ b/plugins/vant.js @@ -1,53 +1,55 @@ -// 目前在 nuxt 中无法按需引入样式,因此采用手动引入的方式 -import 'vant/lib/index.css'; - -import { - Button, - Cell, - CellGroup, - Col, - Icon, - Image, - Row, - NavBar, - Tabs, - Tab, - Search, - Pagination, - Field, - Uploader, - Form, - Popup, - Cascader, - Circle, - Empty, - Popover, - Dialog -} from 'vant'; - -import { defineNuxtPlugin } from '#app'; - -export default defineNuxtPlugin(nuxtApp => { - nuxtApp.vueApp - .use(Row) - .use(Col) - .use(Image) - .use(Icon) - .use(Cell) - .use(Button) - .use(CellGroup) - .use(NavBar) - .use(Tab) - .use(Search) - .use(Pagination) - .use(Field) - .use(Uploader) - .use(Form) - .use(Cascader) - .use(Popup) - .use(Circle) - .use(Tabs) - .use(Empty) - .use(Popover) - .use(Dialog) -}); +// 目前在 nuxt 中无法按需引入样式,因此采用手动引入的方式 +import 'vant/lib/index.css'; + +import { + Button, + Cell, + CellGroup, + Col, + Icon, + Image, + Row, + NavBar, + Tabs, + Tab, + Search, + Pagination, + Field, + Uploader, + Form, + Popup, + Cascader, + Circle, + Empty, + Popover, + Dialog, + Picker, +} from 'vant'; + +import { defineNuxtPlugin } from '#app'; + +export default defineNuxtPlugin(nuxtApp => { + nuxtApp.vueApp + .use(Row) + .use(Col) + .use(Image) + .use(Icon) + .use(Cell) + .use(Button) + .use(CellGroup) + .use(NavBar) + .use(Tab) + .use(Search) + .use(Pagination) + .use(Field) + .use(Uploader) + .use(Form) + .use(Cascader) + .use(Popup) + .use(Circle) + .use(Tabs) + .use(Empty) + .use(Popover) + .use(Dialog) + .use(Picker); +});