|
|
@ -1,232 +1,245 @@ |
|
|
|
<template> |
|
|
|
<div> |
|
|
|
<!-- 导航返回上一页 --> |
|
|
|
<van-nav-bar |
|
|
|
title="发起申请" |
|
|
|
left-arrow |
|
|
|
@click-left="onClickLeft" |
|
|
|
/> |
|
|
|
<!-- 申请发票需要输入的数据 --> |
|
|
|
<div class="bg-white pb-3"> |
|
|
|
<div class="text-gray-500 px-4 py-3 font-semibold">发票信息</div> |
|
|
|
<!-- 是否上传票据 --> |
|
|
|
<div v-show="data.isInvoice"> |
|
|
|
<div class="mx-4 pb-3 border-b"> |
|
|
|
<div class="flex pt-3 pb-2 justify-between" v-show="data.titleHidden"> |
|
|
|
<div> |
|
|
|
<span class="text-red-500">*</span> |
|
|
|
<span class="text-gray-500">上传票据凭证 </span> |
|
|
|
<span class="text-gray-400 text-xs">(仅支持ipg格式)</span> |
|
|
|
</div> |
|
|
|
<van-button plain type="primary" size="mini" @click="data.isInvoice = false">手动输入</van-button> |
|
|
|
</div> |
|
|
|
<div class="text-center border-b w-52 h-24 bg-gray-100 border-dashed border-2" @click="uploadBill" v-show="!data.isSuccess"> |
|
|
|
<p class="text-gray-400 text-xl pt-3">+</p> |
|
|
|
<p class="text-gray-400 text-xs">上传并识别凭证</p> |
|
|
|
</div> |
|
|
|
<!-- 上传票据成功后显示发票信息 --> |
|
|
|
<div v-show="data.isSuccess"> |
|
|
|
<van-field |
|
|
|
v-for="item in data.invoiceInfo" |
|
|
|
required |
|
|
|
v-model="item.values" |
|
|
|
:label="item.name" |
|
|
|
@change="cahngeInvoiceList($event, item)" |
|
|
|
input-align="right" |
|
|
|
/> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div > |
|
|
|
<!-- 手动输入信息 --> |
|
|
|
<div v-show="!data.isInvoice"> |
|
|
|
<van-field |
|
|
|
required |
|
|
|
v-model="data.applyMoney" |
|
|
|
label="申请金额" |
|
|
|
placeholder="输入申请金额" |
|
|
|
input-align="right" |
|
|
|
/> |
|
|
|
</div> |
|
|
|
<!-- 备注信息 --> |
|
|
|
<div class="text-gray-500 py-4 pl-5">备注</div> |
|
|
|
<van-cell-group> |
|
|
|
<van-field |
|
|
|
v-model="data.remark" |
|
|
|
rows="2" |
|
|
|
autosize |
|
|
|
type="textarea" |
|
|
|
maxlength="40" |
|
|
|
placeholder="请输入备注" |
|
|
|
show-word-limit |
|
|
|
class="border rounded" |
|
|
|
/> |
|
|
|
</van-cell-group> |
|
|
|
</div> |
|
|
|
<!-- 选择审核人 --> |
|
|
|
<div class="mt-3"> |
|
|
|
<div class="flex bg-white p-4"> |
|
|
|
<div class="text-red-500">*</div> |
|
|
|
<div class="text-gray-500 pl-1 font-semibold">审核人</div> |
|
|
|
</div> |
|
|
|
<div class="px-3 bg-white"> |
|
|
|
<!-- 导航返回上一页 --> |
|
|
|
<van-nav-bar title="发起申请" left-arrow @click-left="onClickLeft" /> |
|
|
|
<!-- 申请发票需要输入的数据 --> |
|
|
|
<div class="bg-white pb-3"> |
|
|
|
<div class="text-gray-500 px-4 py-3 font-semibold">发票信息</div> |
|
|
|
<!-- 是否上传票据 --> |
|
|
|
<div v-show="data.isInvoice"> |
|
|
|
<div class="mx-4 pb-3 border-b"> |
|
|
|
<div class="flex pt-3 pb-2 justify-between" v-show="data.titleHidden"> |
|
|
|
<div> |
|
|
|
<van-button |
|
|
|
class="button" |
|
|
|
size="mini" |
|
|
|
v-for="item in data.reviewerList" |
|
|
|
:key="item.userId" |
|
|
|
:type="data.checkerList.find(checker => checker === item.userId) ? 'primary' : 'default'" |
|
|
|
@click="handleSelectChecker(item.userId)" |
|
|
|
> |
|
|
|
{{item.name}} |
|
|
|
</van-button> |
|
|
|
<span class="text-red-500">*</span> |
|
|
|
<span class="text-gray-500">上传票据凭证 </span> |
|
|
|
<span class="text-gray-400 text-xs">(仅支持ipg格式)</span> |
|
|
|
</div> |
|
|
|
<van-button |
|
|
|
plain |
|
|
|
type="primary" |
|
|
|
size="mini" |
|
|
|
@click="data.isInvoice = false" |
|
|
|
>手动输入</van-button |
|
|
|
> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<!-- 其他信息 --> |
|
|
|
<div class="bg-white mt-3"> |
|
|
|
<div class="text-gray-500 p-4 font-semibold">其他信息</div> |
|
|
|
<!-- 申请类型 --> |
|
|
|
<!-- 普通票据申请 --> |
|
|
|
<div v-show="data.isInvoice"> |
|
|
|
<van-field |
|
|
|
v-model="data.applyType" |
|
|
|
is-link |
|
|
|
readonly |
|
|
|
label="申请类型" |
|
|
|
placeholder="请选择申请类型" |
|
|
|
@click="data.showType = true" |
|
|
|
required |
|
|
|
input-align="right" |
|
|
|
/> |
|
|
|
<van-popup v-model:show="data.showType" round position="bottom"> |
|
|
|
<van-picker |
|
|
|
title="申请类型" |
|
|
|
:columns="data.applyTypeOptions" |
|
|
|
@confirm="finishApplyType" |
|
|
|
/> |
|
|
|
</van-popup> |
|
|
|
<!-- 所属项目 --> |
|
|
|
<van-field |
|
|
|
v-model="data.projectName" |
|
|
|
is-link |
|
|
|
readonly |
|
|
|
label="所属项目" |
|
|
|
placeholder="请选择所属项目" |
|
|
|
required |
|
|
|
input-align="right" |
|
|
|
disabled |
|
|
|
/> |
|
|
|
<van-popup v-model:show="data.projectName" round position="bottom"> |
|
|
|
<van-cascader |
|
|
|
active-color="#1989fa" |
|
|
|
class="p-0" |
|
|
|
/> |
|
|
|
</van-popup> |
|
|
|
<!-- 所属任务的 --> |
|
|
|
<div |
|
|
|
class="text-center border-b w-52 h-24 bg-gray-100 border-dashed border-2" |
|
|
|
@click="uploadBill" |
|
|
|
v-show="!data.isSuccess" |
|
|
|
> |
|
|
|
<p class="text-gray-400 text-xl pt-3">+</p> |
|
|
|
<p class="text-gray-400 text-xs">上传并识别凭证</p> |
|
|
|
</div> |
|
|
|
<!-- 上传票据成功后显示发票信息 --> |
|
|
|
<div v-show="data.isSuccess"> |
|
|
|
<van-field |
|
|
|
v-model="data.taskName" |
|
|
|
is-link |
|
|
|
readonly |
|
|
|
label="所属任务" |
|
|
|
placeholder="请选择所属任务" |
|
|
|
v-for="item in data.invoiceInfo" |
|
|
|
required |
|
|
|
v-model="item.values" |
|
|
|
:label="item.name" |
|
|
|
@change="cahngeInvoiceList($event, item)" |
|
|
|
input-align="right" |
|
|
|
disabled |
|
|
|
/> |
|
|
|
<van-popup v-model:show="data.taskName" round position="bottom"> |
|
|
|
<van-cascader |
|
|
|
active-color="#1989fa" |
|
|
|
class="p-0" |
|
|
|
/> |
|
|
|
</van-popup> |
|
|
|
<!-- 类目选择 --> |
|
|
|
<van-field |
|
|
|
v-model="data.applyCategory" |
|
|
|
is-link |
|
|
|
readonly |
|
|
|
label="类目" |
|
|
|
placeholder="请选择类目" |
|
|
|
@click="data.showCategory = true" |
|
|
|
input-align="right" |
|
|
|
/> |
|
|
|
<van-popup v-model:show="data.showCategory" round position="bottom"> |
|
|
|
<van-picker |
|
|
|
title="请选择类目" |
|
|
|
:columns="data.applyCategoryOptions" |
|
|
|
@confirm="finishApplyCategory" |
|
|
|
/> |
|
|
|
</van-popup> |
|
|
|
<!-- 名目选择 --> |
|
|
|
<van-field |
|
|
|
v-model="data.applyName" |
|
|
|
is-link |
|
|
|
readonly |
|
|
|
label="名目" |
|
|
|
placeholder="请选择名目" |
|
|
|
@click="data.showName = true" |
|
|
|
input-align="right" |
|
|
|
/> |
|
|
|
<van-popup v-model:show="data.showName" round position="bottom"> |
|
|
|
<van-picker |
|
|
|
title="请选择名目" |
|
|
|
:columns="data.applyNameOptions" |
|
|
|
@confirm="finishApplyName" |
|
|
|
/> |
|
|
|
</van-popup> |
|
|
|
</div> |
|
|
|
<!-- 个人手动申请 --> |
|
|
|
<div v-show="!data.isInvoice"> |
|
|
|
<div class="pl-2"> |
|
|
|
<van-cell title="单元格" is-link :value="data.personalType" required/> |
|
|
|
<van-cell title="单元格" is-link :value="data.personalCategory" required/> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
|
|
|
|
</div> |
|
|
|
<!-- 手动输入信息 --> |
|
|
|
<div v-show="!data.isInvoice"> |
|
|
|
<van-field |
|
|
|
required |
|
|
|
v-model="data.applyMoney" |
|
|
|
label="申请金额" |
|
|
|
placeholder="输入申请金额" |
|
|
|
input-align="right" |
|
|
|
/> |
|
|
|
</div> |
|
|
|
<!-- 备注信息 --> |
|
|
|
<div class="text-gray-500 py-4 pl-5">备注</div> |
|
|
|
<van-cell-group> |
|
|
|
<van-field |
|
|
|
v-model="data.remark" |
|
|
|
rows="2" |
|
|
|
autosize |
|
|
|
type="textarea" |
|
|
|
maxlength="40" |
|
|
|
placeholder="请输入备注" |
|
|
|
show-word-limit |
|
|
|
class="border rounded" |
|
|
|
/> |
|
|
|
</van-cell-group> |
|
|
|
</div> |
|
|
|
<!-- 选择审核人 --> |
|
|
|
<div class="mt-3"> |
|
|
|
<div class="flex bg-white p-4"> |
|
|
|
<div class="text-red-500">*</div> |
|
|
|
<div class="text-gray-500 pl-1 font-semibold">审核人</div> |
|
|
|
</div> |
|
|
|
<div class="px-3 bg-white"> |
|
|
|
<div> |
|
|
|
<van-button |
|
|
|
class="button" |
|
|
|
size="mini" |
|
|
|
v-for="item in data.reviewerList" |
|
|
|
:key="item.userId" |
|
|
|
:type=" |
|
|
|
data.checkerList.find(checker => checker === item.userId) |
|
|
|
? 'primary' |
|
|
|
: 'default' |
|
|
|
" |
|
|
|
@click="handleSelectChecker(item.userId)" |
|
|
|
> |
|
|
|
{{ item.name }} |
|
|
|
</van-button> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<!-- 提交人信息 --> |
|
|
|
<div class="bg-white mt-3"> |
|
|
|
<div class="text-gray-500 p-4 font-semibold">提交人信息</div> |
|
|
|
<van-field |
|
|
|
required |
|
|
|
v-model="data.submitName" |
|
|
|
label="姓名" |
|
|
|
placeholder="请输入姓名" |
|
|
|
input-align="right" |
|
|
|
/> |
|
|
|
<!-- 选择所属部门 --> |
|
|
|
<van-field |
|
|
|
</div> |
|
|
|
<!-- 其他信息 --> |
|
|
|
<div class="bg-white mt-3"> |
|
|
|
<div class="text-gray-500 p-4 font-semibold">其他信息</div> |
|
|
|
<!-- 申请类型 --> |
|
|
|
<!-- 普通票据申请 --> |
|
|
|
<div v-show="data.isInvoice"> |
|
|
|
<van-field |
|
|
|
v-model="data.applyType" |
|
|
|
is-link |
|
|
|
readonly |
|
|
|
label="申请类型" |
|
|
|
placeholder="请选择申请类型" |
|
|
|
@click="data.showType = true" |
|
|
|
required |
|
|
|
input-align="right" |
|
|
|
/> |
|
|
|
<van-popup v-model:show="data.showType" round position="bottom"> |
|
|
|
<van-picker |
|
|
|
title="申请类型" |
|
|
|
:columns="data.applyTypeOptions" |
|
|
|
@confirm="finishApplyType" |
|
|
|
/> |
|
|
|
</van-popup> |
|
|
|
<!-- 所属项目 --> |
|
|
|
<van-field |
|
|
|
v-model="data.projectName" |
|
|
|
is-link |
|
|
|
readonly |
|
|
|
label="所属项目" |
|
|
|
placeholder="请选择所属项目" |
|
|
|
required |
|
|
|
input-align="right" |
|
|
|
disabled |
|
|
|
/> |
|
|
|
<van-popup v-model:show="data.projectName" round position="bottom"> |
|
|
|
<van-cascader active-color="#1989fa" class="p-0" /> |
|
|
|
</van-popup> |
|
|
|
<!-- 所属任务的 --> |
|
|
|
<van-field |
|
|
|
v-model="data.taskName" |
|
|
|
is-link |
|
|
|
readonly |
|
|
|
label="所属任务" |
|
|
|
placeholder="请选择所属任务" |
|
|
|
required |
|
|
|
input-align="right" |
|
|
|
disabled |
|
|
|
/> |
|
|
|
<van-popup v-model:show="data.taskName" round position="bottom"> |
|
|
|
<van-cascader active-color="#1989fa" class="p-0" /> |
|
|
|
</van-popup> |
|
|
|
<!-- 类目选择 --> |
|
|
|
<van-field |
|
|
|
v-model="data.applyCategory" |
|
|
|
is-link |
|
|
|
readonly |
|
|
|
label="类目" |
|
|
|
placeholder="请选择类目" |
|
|
|
@click="data.showCategory = true" |
|
|
|
input-align="right" |
|
|
|
/> |
|
|
|
<van-popup v-model:show="data.showCategory" round position="bottom"> |
|
|
|
<van-picker |
|
|
|
title="请选择类目" |
|
|
|
:columns="data.applyCategoryOptions" |
|
|
|
@confirm="finishApplyCategory" |
|
|
|
/> |
|
|
|
</van-popup> |
|
|
|
<!-- 名目选择 --> |
|
|
|
<van-field |
|
|
|
v-model="data.applyName" |
|
|
|
is-link |
|
|
|
readonly |
|
|
|
label="名目" |
|
|
|
placeholder="请选择名目" |
|
|
|
@click="data.showName = true" |
|
|
|
input-align="right" |
|
|
|
/> |
|
|
|
<van-popup v-model:show="data.showName" round position="bottom"> |
|
|
|
<van-picker |
|
|
|
title="请选择名目" |
|
|
|
:columns="data.applyNameOptions" |
|
|
|
@confirm="finishApplyName" |
|
|
|
/> |
|
|
|
</van-popup> |
|
|
|
</div> |
|
|
|
<!-- 个人手动申请 --> |
|
|
|
<div v-show="!data.isInvoice"> |
|
|
|
<div class="pl-2"> |
|
|
|
<van-cell |
|
|
|
title="单元格" |
|
|
|
is-link |
|
|
|
:value="data.personalType" |
|
|
|
required |
|
|
|
/> |
|
|
|
<van-cell |
|
|
|
title="单元格" |
|
|
|
is-link |
|
|
|
:value="data.personalCategory" |
|
|
|
required |
|
|
|
v-model="data.department" |
|
|
|
label="所属部门" |
|
|
|
placeholder="请输入所属部门" |
|
|
|
input-align="right" |
|
|
|
/> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<!-- 历史申请 --> |
|
|
|
<div class="bg-white mt-3 p-4"> |
|
|
|
<div class="text-gray-500 font-semibold">历史申请</div> |
|
|
|
<div> |
|
|
|
<Search /> |
|
|
|
<FinanceExamine /> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<!-- 提交人信息 --> |
|
|
|
<div class="bg-white mt-3"> |
|
|
|
<div class="text-gray-500 p-4 font-semibold">提交人信息</div> |
|
|
|
<van-field |
|
|
|
required |
|
|
|
v-model="data.submitName" |
|
|
|
label="姓名" |
|
|
|
placeholder="请输入姓名" |
|
|
|
input-align="right" |
|
|
|
/> |
|
|
|
<!-- 选择所属部门 --> |
|
|
|
<van-field |
|
|
|
required |
|
|
|
v-model="data.department" |
|
|
|
label="所属部门" |
|
|
|
placeholder="请输入所属部门" |
|
|
|
input-align="right" |
|
|
|
/> |
|
|
|
</div> |
|
|
|
<!-- 历史申请 --> |
|
|
|
<div class="bg-white mt-3 p-4"> |
|
|
|
<div class="text-gray-500 font-semibold">历史申请</div> |
|
|
|
<div> |
|
|
|
<Search /> |
|
|
|
<FinanceExamine /> |
|
|
|
</div> |
|
|
|
<!-- 底部立即提交按钮 --> |
|
|
|
<div class="mx-6 mt-10"> |
|
|
|
<van-button type="primary" size="small" block>立即提交</van-button> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<!-- 底部立即提交按钮 --> |
|
|
|
<div class="mx-6 mt-10"> |
|
|
|
<van-button type="primary" size="small" block>立即提交</van-button> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</template> |
|
|
|
<script setup> |
|
|
|
import {ref, reactive} from 'vue' |
|
|
|
import { ref, reactive } from 'vue'; |
|
|
|
// import useApplication from 'hooks/useApplication'; |
|
|
|
import { queryChecker } from 'apis/member' |
|
|
|
import { queryType } from 'apis/finance' |
|
|
|
import { queryChecker } from 'apis/member'; |
|
|
|
import { queryType } from 'apis/finance'; |
|
|
|
|
|
|
|
// const getApplication = useApplication(); |
|
|
|
const projectName = useProjectName() |
|
|
|
const taskName = useTaskName() |
|
|
|
const projectId = useProjectId() |
|
|
|
const projectName = useProjectName(); |
|
|
|
const taskName = useTaskName(); |
|
|
|
const projectId = useProjectId(); |
|
|
|
const data = reactive({ |
|
|
|
isInvoice: true, |
|
|
|
remark: '', |
|
|
@ -234,49 +247,49 @@ const data = reactive({ |
|
|
|
invoiceInfo: [ |
|
|
|
{ |
|
|
|
name: '发票代码', |
|
|
|
values:0, |
|
|
|
label: 'invoiceCode' |
|
|
|
values: 0, |
|
|
|
label: 'invoiceCode', |
|
|
|
}, |
|
|
|
{ |
|
|
|
name: '发票号码', |
|
|
|
values:1, |
|
|
|
label: 'invoiceNumber' |
|
|
|
values: 1, |
|
|
|
label: 'invoiceNumber', |
|
|
|
}, |
|
|
|
{ |
|
|
|
name: '合计金额(元)', |
|
|
|
values:2, |
|
|
|
label: 'money' |
|
|
|
values: 2, |
|
|
|
label: 'money', |
|
|
|
}, |
|
|
|
{ |
|
|
|
name: '税额(元)', |
|
|
|
values:3, |
|
|
|
label: 'taxMoney' |
|
|
|
values: 3, |
|
|
|
label: 'taxMoney', |
|
|
|
}, |
|
|
|
{ |
|
|
|
name: '开票日期', |
|
|
|
values:4, |
|
|
|
label: 'invoiceTime' |
|
|
|
values: 4, |
|
|
|
label: 'invoiceTime', |
|
|
|
}, |
|
|
|
{ |
|
|
|
name: '发票备注信息', |
|
|
|
values:5, |
|
|
|
label: 'remark' |
|
|
|
values: 5, |
|
|
|
label: 'remark', |
|
|
|
}, |
|
|
|
], |
|
|
|
reviewerList: [], // 审核人数组 |
|
|
|
checkerList: [], // 默认的审核人 |
|
|
|
applyData: [ |
|
|
|
{ |
|
|
|
applicant:'代用名1', |
|
|
|
money:100, |
|
|
|
time:'2021/12/31 12:31', |
|
|
|
type: 1 |
|
|
|
applicant: '代用名1', |
|
|
|
money: 100, |
|
|
|
time: '2021/12/31 12:31', |
|
|
|
type: 1, |
|
|
|
}, |
|
|
|
{ |
|
|
|
applicant:'代用名2', |
|
|
|
money:100, |
|
|
|
time:'2021/12/31 12:31', |
|
|
|
type: 2 |
|
|
|
applicant: '代用名2', |
|
|
|
money: 100, |
|
|
|
time: '2021/12/31 12:31', |
|
|
|
type: 2, |
|
|
|
}, |
|
|
|
], // 申请的记录 |
|
|
|
isSuccess: false, // 上传票据是否成功 |
|
|
@ -303,73 +316,73 @@ const data = reactive({ |
|
|
|
applyNameOptions: [], |
|
|
|
applyName: '', // 选择的名目的值 |
|
|
|
rowId: '', |
|
|
|
}) |
|
|
|
}); |
|
|
|
|
|
|
|
// 发票信息 |
|
|
|
function cahngeInvoiceList(e,item){ |
|
|
|
console.log('e: ', e.target.value,item); |
|
|
|
function cahngeInvoiceList(e, item) { |
|
|
|
console.log('e: ', e.target.value, item); |
|
|
|
} |
|
|
|
|
|
|
|
// 选择申请类型 |
|
|
|
function finishApplyType(e){ |
|
|
|
function finishApplyType(e) { |
|
|
|
data.showType = false; |
|
|
|
data.applyType = e; |
|
|
|
const type = data.applyTypes.find((option) => option.name === e); |
|
|
|
const type = data.applyTypes.find(option => option.name === e); |
|
|
|
data.typeId = type.id; |
|
|
|
// 类目 |
|
|
|
handleQueryType(data.typeId, 1) |
|
|
|
handleQueryType(data.typeId, 1); |
|
|
|
} |
|
|
|
|
|
|
|
// 所属的类目 |
|
|
|
function finishApplyCategory(e){ |
|
|
|
function finishApplyCategory(e) { |
|
|
|
data.showCategory = false; |
|
|
|
data.applyCategory = e; |
|
|
|
const category = data.applyCategories.find((option) => option.name === e); |
|
|
|
const category = data.applyCategories.find(option => option.name === e); |
|
|
|
data.categoryId = category.id; |
|
|
|
// 名目 |
|
|
|
handleQueryType(data.categoryId, 2) |
|
|
|
handleQueryType(data.categoryId, 2); |
|
|
|
} |
|
|
|
|
|
|
|
// 所属的名目 |
|
|
|
function finishApplyName(e){ |
|
|
|
function finishApplyName(e) { |
|
|
|
data.showName = false; |
|
|
|
data.applyName = e; |
|
|
|
const row = data.applyNames.find((option) => option.name === e); |
|
|
|
const row = data.applyNames.find(option => option.name === e); |
|
|
|
data.rowId = row.id; |
|
|
|
} |
|
|
|
|
|
|
|
// 检查被选中的审核人的状态 |
|
|
|
function handleSelectChecker(id){ |
|
|
|
const target = data.checkerList.find(item =>item === id) |
|
|
|
if(target){ |
|
|
|
data.checkerList = data.checkerList.filter(item =>item !== id) |
|
|
|
}else{ |
|
|
|
data.checkerList.push(id) |
|
|
|
function handleSelectChecker(id) { |
|
|
|
const target = data.checkerList.find(item => item === id); |
|
|
|
if (target) { |
|
|
|
data.checkerList = data.checkerList.filter(item => item !== id); |
|
|
|
} else { |
|
|
|
data.checkerList.push(id); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
// 上传票据事件 |
|
|
|
function uploadBill(){ |
|
|
|
function uploadBill() { |
|
|
|
//TODO:调取接口识别票据 |
|
|
|
setTimeout(() =>{ |
|
|
|
data.titleHidden = false |
|
|
|
data.isSuccess = true |
|
|
|
},1000) |
|
|
|
setTimeout(() => { |
|
|
|
data.titleHidden = false; |
|
|
|
data.isSuccess = true; |
|
|
|
}, 1000); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 查询所有成员 |
|
|
|
* @param { String } projectId |
|
|
|
*/ |
|
|
|
async function handleQueryChecker(){ |
|
|
|
async function handleQueryChecker() { |
|
|
|
try { |
|
|
|
const params = { |
|
|
|
param:{ |
|
|
|
projectId: projectId.value |
|
|
|
} |
|
|
|
} |
|
|
|
const res = await queryChecker(params) |
|
|
|
data.reviewerList = res |
|
|
|
param: { |
|
|
|
projectId: projectId.value, |
|
|
|
}, |
|
|
|
}; |
|
|
|
const res = await queryChecker(params); |
|
|
|
data.reviewerList = res; |
|
|
|
} catch (error) { |
|
|
|
console.error('error: ', error); |
|
|
|
} |
|
|
@ -380,71 +393,70 @@ async function handleQueryChecker(){ |
|
|
|
* @param { String } parentId 上级类型ID,默认为0 |
|
|
|
* @param { Number } type 类型:0申请类型 1类目 2名目 |
|
|
|
*/ |
|
|
|
async function handleQueryType(parentId, type){ |
|
|
|
async function handleQueryType(parentId, type) { |
|
|
|
console.log('parentId: ', parentId); |
|
|
|
try { |
|
|
|
const params = { |
|
|
|
param:{ |
|
|
|
param: { |
|
|
|
parentId, |
|
|
|
type, |
|
|
|
} |
|
|
|
}, |
|
|
|
}; |
|
|
|
const res = await queryType(params); |
|
|
|
if (type === 0) { |
|
|
|
data.applyTypes = res; |
|
|
|
res.forEach(item => { |
|
|
|
data.applyTypeOptions.push(item.name); |
|
|
|
}); |
|
|
|
} |
|
|
|
const res = await queryType(params) |
|
|
|
if(type === 0){ |
|
|
|
data.applyTypes = res |
|
|
|
res.forEach((item) => { |
|
|
|
data.applyTypeOptions.push(item.name) |
|
|
|
}) |
|
|
|
if (type === 1) { |
|
|
|
data.applyCategories = res; |
|
|
|
res.forEach(item => { |
|
|
|
data.applyCategoryOptions.push(item.name); |
|
|
|
}); |
|
|
|
} |
|
|
|
if(type === 1){ |
|
|
|
data.applyCategories = res |
|
|
|
res.forEach((item) => { |
|
|
|
data.applyCategoryOptions.push(item.name) |
|
|
|
}) |
|
|
|
} |
|
|
|
if(type === 2){ |
|
|
|
data.applyNames = res |
|
|
|
res.forEach((item) => { |
|
|
|
data.applyNameOptions.push(item.name) |
|
|
|
}) |
|
|
|
if (type === 2) { |
|
|
|
data.applyNames = res; |
|
|
|
res.forEach(item => { |
|
|
|
data.applyNameOptions.push(item.name); |
|
|
|
}); |
|
|
|
} |
|
|
|
} catch (error) { |
|
|
|
console.error('error: ', error); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
onMounted(() =>{ |
|
|
|
onMounted(() => { |
|
|
|
// 查询所有成员 |
|
|
|
handleQueryChecker() |
|
|
|
handleQueryChecker(); |
|
|
|
// 查询费用申请类型 |
|
|
|
handleQueryType(0, 0) |
|
|
|
}) |
|
|
|
handleQueryType(0, 0); |
|
|
|
}); |
|
|
|
|
|
|
|
function onClickLeft(){ |
|
|
|
console.log(1) |
|
|
|
function onClickLeft() { |
|
|
|
console.log(1); |
|
|
|
} |
|
|
|
|
|
|
|
</script> |
|
|
|
|
|
|
|
<style lang="less" scoped> |
|
|
|
.van-cell-group{ |
|
|
|
padding:0 1rem; |
|
|
|
.van-cell-group { |
|
|
|
padding: 0 1rem; |
|
|
|
} |
|
|
|
.van-cell{ |
|
|
|
.van-cell { |
|
|
|
font-size: 15px; |
|
|
|
} |
|
|
|
.bill-name{ |
|
|
|
.bill-name { |
|
|
|
font-weight: 600; |
|
|
|
color: #6F6F6F; |
|
|
|
color: #6f6f6f; |
|
|
|
border-bottom: 1px solid #eee; |
|
|
|
padding: 0.75rem 0px; |
|
|
|
} |
|
|
|
.van-button{ |
|
|
|
.van-button { |
|
|
|
border-radius: 0.2rem; |
|
|
|
} |
|
|
|
.button{ |
|
|
|
.button { |
|
|
|
border-radius: 1rem; |
|
|
|
padding: 0 0.75rem; |
|
|
|
margin: 0.5rem ; |
|
|
|
margin: 0.5rem; |
|
|
|
} |
|
|
|
</style> |
|
|
|