|
@@ -29,7 +29,7 @@
|
|
</div>
|
|
</div>
|
|
<div class="hc-form-item">
|
|
<div class="hc-form-item">
|
|
<el-form-item label="报销金额(元):" prop="frMoney">
|
|
<el-form-item label="报销金额(元):" prop="frMoney">
|
|
- <el-input-number v-model="item.frMoney" :precision="2" :step="0.1" style="width: 100%;"></el-input-number>
|
|
|
|
|
|
+ <el-input-number v-model="item.frMoney" :precision="2" style="width: 100%;" :min="0"></el-input-number>
|
|
<!-- <el-input v-model="item.frMoney" placeholder="请输入报销金额" /> -->
|
|
<!-- <el-input v-model="item.frMoney" placeholder="请输入报销金额" /> -->
|
|
</el-form-item>
|
|
</el-form-item>
|
|
<el-form-item label="费用发生日期:" prop="frDate">
|
|
<el-form-item label="费用发生日期:" prop="frDate">
|
|
@@ -99,7 +99,13 @@
|
|
<div class="title">流程</div>
|
|
<div class="title">流程</div>
|
|
<div class="content">
|
|
<div class="content">
|
|
<el-scrollbar>
|
|
<el-scrollbar>
|
|
- <el-timeline>
|
|
|
|
|
|
+ <el-timeline v-if="totalFrMoney<1000">
|
|
|
|
+ <el-timeline-item v-for="(item, index) in timeLineData1" :key="index">
|
|
|
|
+ <div class="timeline-title">{{item.title}}</div>
|
|
|
|
+ <div class="timeline-section">{{item.section}}</div>
|
|
|
|
+ </el-timeline-item>
|
|
|
|
+ </el-timeline>
|
|
|
|
+ <el-timeline v-else>
|
|
<el-timeline-item v-for="(item, index) in timeLineData" :key="index">
|
|
<el-timeline-item v-for="(item, index) in timeLineData" :key="index">
|
|
<div class="timeline-title">{{item.title}}</div>
|
|
<div class="timeline-title">{{item.title}}</div>
|
|
<div class="timeline-section">{{item.section}}</div>
|
|
<div class="timeline-section">{{item.section}}</div>
|
|
@@ -147,7 +153,7 @@
|
|
</template>
|
|
</template>
|
|
|
|
|
|
<script setup>
|
|
<script setup>
|
|
-import {onActivated, ref} from "vue";
|
|
|
|
|
|
+import {onActivated, ref,watch} from "vue";
|
|
import {useRoute, useRouter} from 'vue-router'
|
|
import {useRoute, useRouter} from 'vue-router'
|
|
import mainApi from "~api/expense/finReimburse";
|
|
import mainApi from "~api/expense/finReimburse";
|
|
import {getTokenHeader} from "~src/api/request/header";
|
|
import {getTokenHeader} from "~src/api/request/header";
|
|
@@ -171,13 +177,19 @@ onActivated(() => {
|
|
dataType.value = useRoutes?.query?.type ?? 'add'
|
|
dataType.value = useRoutes?.query?.type ?? 'add'
|
|
getApi()
|
|
getApi()
|
|
})
|
|
})
|
|
-
|
|
|
|
|
|
+const detailsData = ref({})//详情数据
|
|
|
|
+//深度监听
|
|
|
|
+watch(() => [
|
|
|
|
+ detailsData.value.details
|
|
|
|
+], ([datas]) => {
|
|
|
|
+ let num=0
|
|
|
|
+ datas.forEach((ele)=>{
|
|
|
|
+ num=num+Number(ele?.frMoney)
|
|
|
|
+ })
|
|
|
|
+ totalFrMoney.value=num
|
|
|
|
+}, {deep: true})
|
|
//请求接口
|
|
//请求接口
|
|
const getApi = () => {
|
|
const getApi = () => {
|
|
- //清空流程数据
|
|
|
|
- timeData.value=[]
|
|
|
|
- timeLineData.value=[]
|
|
|
|
- //下拉框相关数据
|
|
|
|
getProjectData()
|
|
getProjectData()
|
|
expenseFrType()
|
|
expenseFrType()
|
|
getLoanListData()
|
|
getLoanListData()
|
|
@@ -190,7 +202,7 @@ const getApi = () => {
|
|
console.log('新增');
|
|
console.log('新增');
|
|
console.log(detailsObj,'detailsObj');
|
|
console.log(detailsObj,'detailsObj');
|
|
|
|
|
|
- totalFrMoney.value = '0'
|
|
|
|
|
|
+ totalFrMoney.value = 0
|
|
detailsData.value = {
|
|
detailsData.value = {
|
|
...detailsObj,
|
|
...detailsObj,
|
|
details: [{
|
|
details: [{
|
|
@@ -257,7 +269,7 @@ const getUserDict=async()=>{
|
|
|
|
|
|
//基础详情
|
|
//基础详情
|
|
const detailsObj = {
|
|
const detailsObj = {
|
|
- frMoney: null, // 报销金额
|
|
|
|
|
|
+ frMoney: 0, // 报销金额
|
|
frMoneyActual: null, // 实际报销金额
|
|
frMoneyActual: null, // 实际报销金额
|
|
userIdVesting: null, // 归属人id
|
|
userIdVesting: null, // 归属人id
|
|
isDeductLoan: 0, // 是否抵扣借款 0=否 1=是
|
|
isDeductLoan: 0, // 是否抵扣借款 0=否 1=是
|
|
@@ -269,7 +281,7 @@ const detailsObj = {
|
|
const detailsObj1 = {
|
|
const detailsObj1 = {
|
|
projectId: null, // 所属项目id
|
|
projectId: null, // 所属项目id
|
|
budgetPlanIds: '', // 预算计划ids
|
|
budgetPlanIds: '', // 预算计划ids
|
|
- frMoney: null, // 报销金额
|
|
|
|
|
|
+ frMoney: 0, // 报销金额
|
|
frDate: null, // 报销时间
|
|
frDate: null, // 报销时间
|
|
frDesc: '', // 费用说明
|
|
frDesc: '', // 费用说明
|
|
frType: null, // 报销类型
|
|
frType: null, // 报销类型
|
|
@@ -279,7 +291,7 @@ const detailsObj1 = {
|
|
|
|
|
|
//添加明细
|
|
//添加明细
|
|
const addDetailsData = () => {
|
|
const addDetailsData = () => {
|
|
- detailsData.value?.details.push({})
|
|
|
|
|
|
+ detailsData.value?.details.push({frMoney:0})
|
|
}
|
|
}
|
|
|
|
|
|
//删除明细
|
|
//删除明细
|
|
@@ -290,8 +302,8 @@ const delDetailsData = (index) => {
|
|
}
|
|
}
|
|
|
|
|
|
//获取详情数据
|
|
//获取详情数据
|
|
-const totalFrMoney = ref('')
|
|
|
|
-const detailsData = ref({})
|
|
|
|
|
|
+const totalFrMoney = ref(0)
|
|
|
|
+
|
|
const getDetailsData = async () => {
|
|
const getDetailsData = async () => {
|
|
if (dataType.value === 'view') {
|
|
if (dataType.value === 'view') {
|
|
//预览详情
|
|
//预览详情
|
|
@@ -311,12 +323,12 @@ const getDetailsData = async () => {
|
|
newDetails1[key] = res[key]
|
|
newDetails1[key] = res[key]
|
|
})
|
|
})
|
|
newDetails1.id = res?.id
|
|
newDetails1.id = res?.id
|
|
- totalFrMoney.value = res?.frMoney
|
|
|
|
|
|
+ totalFrMoney.value =Number(res?.frMoney)
|
|
newDetails.details = [newDetails1]
|
|
newDetails.details = [newDetails1]
|
|
} else {
|
|
} else {
|
|
newDetails = detailsObj
|
|
newDetails = detailsObj
|
|
newDetails.details = [detailsObj1]
|
|
newDetails.details = [detailsObj1]
|
|
- totalFrMoney.value = '0'
|
|
|
|
|
|
+ totalFrMoney.value = 0
|
|
window.$message?.error(msg)
|
|
window.$message?.error(msg)
|
|
}
|
|
}
|
|
detailsData.value = newDetails
|
|
detailsData.value = newDetails
|
|
@@ -349,14 +361,14 @@ const getDetailsData = async () => {
|
|
totalFrMoney.value = frMoney
|
|
totalFrMoney.value = frMoney
|
|
detailsData.value = newDetails
|
|
detailsData.value = newDetails
|
|
} else {
|
|
} else {
|
|
- totalFrMoney.value = '0'
|
|
|
|
|
|
+ totalFrMoney.value =0
|
|
detailsData.value = {
|
|
detailsData.value = {
|
|
...detailsObj,
|
|
...detailsObj,
|
|
details: [detailsObj1]
|
|
details: [detailsObj1]
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} else {
|
|
} else {
|
|
- totalFrMoney.value = '0'
|
|
|
|
|
|
+ totalFrMoney.value = 0
|
|
detailsData.value = {
|
|
detailsData.value = {
|
|
...detailsObj,
|
|
...detailsObj,
|
|
details: [detailsObj1]
|
|
details: [detailsObj1]
|
|
@@ -539,26 +551,51 @@ const setUploadFileData = (echoParams, resData) => {
|
|
}
|
|
}
|
|
|
|
|
|
//流程数据
|
|
//流程数据
|
|
|
|
+//报销金额大于1000
|
|
const timeLineData = ref([
|
|
const timeLineData = ref([
|
|
- // {title: '审批人', section: '部门负责人'},
|
|
|
|
- // {title: '财务审核', section: '财务'},
|
|
|
|
- // {title: '最终确认付款人', section: '总经理'},
|
|
|
|
- // {title: '出纳付款', section: '出纳'},
|
|
|
|
- // {title: '抄送人', section: '总经理、财务、申请人'},
|
|
|
|
|
|
+ {title: '审批人', section: '部门负责人'},
|
|
|
|
+ {title: '财务审核', section: '财务'},
|
|
|
|
+ {title: '最终确认付款人', section: '总经理'},
|
|
|
|
+ {title: '出纳付款', section: '出纳'},
|
|
|
|
+ {title: '抄送人', section: '总经理、财务、申请人'},
|
|
|
|
+])
|
|
|
|
+//报销金额小于1000
|
|
|
|
+const timeLineData1 = ref([
|
|
|
|
+ {title: '审批人', section: '部门负责人'},
|
|
|
|
+ {title: '付款确认', section: '财务'},
|
|
|
|
+ {title: '出纳付款', section: '出纳'},
|
|
|
|
+ {title: '抄送人', section: '总经理、财务、申请人'},
|
|
])
|
|
])
|
|
const timeData=ref([])
|
|
const timeData=ref([])
|
|
const getApprovesListData=async()=>{
|
|
const getApprovesListData=async()=>{
|
|
const {error, code, data} = await getApprovesList()
|
|
const {error, code, data} = await getApprovesList()
|
|
if (!error && code === 200) {
|
|
if (!error && code === 200) {
|
|
- console.log(data,'data');
|
|
|
|
timeData.value=data['财务报销流程']
|
|
timeData.value=data['财务报销流程']
|
|
- console.log( timeData.value,' timeData.value');
|
|
|
|
- for(var i in timeData.value) {
|
|
|
|
- timeLineData.value.push({
|
|
|
|
- title:i,
|
|
|
|
- section:timeData.value[i].join(',')
|
|
|
|
- })
|
|
|
|
- }
|
|
|
|
|
|
+ let approveArr=timeData.value['审批人']
|
|
|
|
+ //小于1000
|
|
|
|
+ let value = '总经理'
|
|
|
|
+ let newSet = new Set(approveArr)
|
|
|
|
+ newSet.delete(value)
|
|
|
|
+ let newArr = [...newSet]
|
|
|
|
+ let copyArr=timeData.value['抄送人']
|
|
|
|
+ timeLineData1.value.forEach((ele,index)=>{
|
|
|
|
+ if(ele.title!=='抄送人'){
|
|
|
|
+ ele.section=newArr[index]
|
|
|
|
+ }else{
|
|
|
|
+ ele.section=copyArr.join(',')
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ })
|
|
|
|
+ //大于1000
|
|
|
|
+ timeLineData.value.forEach((ele,index)=>{
|
|
|
|
+ if(ele.title!=='抄送人'){
|
|
|
|
+ ele.section=approveArr[index]
|
|
|
|
+ }else{
|
|
|
|
+ ele.section=copyArr.join(',')
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ })
|
|
|
|
+ console.log( timeLineData.value,' timeData.value');
|
|
} else {
|
|
} else {
|
|
timeLineData.value=[]
|
|
timeLineData.value=[]
|
|
|
|
|