Browse Source

总经办报销调整

huangguoce 2 weeks ago
parent
commit
21619ac726

+ 13 - 0
src/views/ccpm/reimbursement/info/NewInfoUpdateForm.vue

@@ -460,6 +460,19 @@ export default {
 					console.log('this.inputForm.invoiceReimbursementFiles', this.inputForm.invoiceReimbursementFiles)
 					// this.$refs.invoiceReimbursementUpLoadComponent.newUpload(method, this.inputForm.invoiceReimbursementFiles, 'reimbursement', 300, '数电发票信息', null, null, null, '江苏兴光项目管理有限公司')
 					this.$refs.uploadComponent.newUpload(method, this.inputForm.files, 'reimbursement')
+					// 获取文件确认状态
+					this.reimbursementService.getListByUser(this.inputForm.id).then(data => {
+						console.log(data);
+						// 先构建一个 Map 方便查找
+						const statusMap = new Map(data.map(item => [item.invoiceId, item.status]));
+						// 遍历 targetArray 给每项加 confirmStatus
+						this.inputForm.invoiceReimbursementFiles.forEach(item => {
+							const status = statusMap.get(item.id);
+							if (status !== undefined) {
+								item.confirmStatus = status;
+							}
+						});
+					})
 					if (this.commonJS.isNotEmpty(this.inputForm.purchaseId)) {
 						// this.startPur(this.inputForm.purchaseId)
 					}

+ 12 - 0
src/views/consultancy/reimbursement/info/NewInfoForm.vue

@@ -373,6 +373,18 @@ export default {
             // this.$refs.invoiceReimbursementUpLoadComponent.newUpload(method, this.inputForm.invoiceReimbursementFiles, 'reimbursement', 300, '数电发票信息', null, null, null, '南京兴光培训咨询有限公司')
             this.$refs.uploadComponent.newUpload(method, this.inputForm.files, 'reimbursement')
             this.inputForm = JSON.parse(JSON.stringify(this.inputForm))
+            // 获取文件确认状态
+            this.reimbursementService.getListByUser(this.inputForm.id).then(data => {
+              // 先构建一个 Map 方便查找
+              const statusMap = new Map(data.map(item => [item.invoiceId, item.status]));
+              // 遍历 targetArray 给每项加 confirmStatus
+              this.inputForm.invoiceReimbursementFiles.forEach(item => {
+                const status = statusMap.get(item.id);
+                if (status !== undefined) {
+                  item.confirmStatus = status;
+                }
+              });
+            })
             if (this.commonJS.isNotEmpty(this.inputForm.purchaseId)) {
               this.startPur(this.inputForm.purchaseId)
             }

+ 16 - 0
src/views/cw/reimbursementApproval/info/NewInfoForm.vue

@@ -151,6 +151,7 @@ import UpLoadComponent from '@/views/common/UpLoadComponent'
 import InvoiceReimbursementUpLoadComponent from '@/views/common/NewDigitalInvoiceUploadComponent'
 import XEUtils from 'xe-utils'
 import ReimbursementComponent from '@/views/common/reimbursement/ReimbursementComponent.vue'
+import InvoiceConfirmStatusService from '@/api/finance/invoice/InvoiceConfirmStatusService'
 // import MaterialManagementService from '@/api/materialManagement/MaterialManagementService'
 // import MaterialManagementDialog from '../../../materialManagement/file/MaterialManagementDialog'
 export default {
@@ -193,10 +194,12 @@ export default {
 		}
 	},
 	reimbursementApprovalService: null,
+	invoiceConfirmStatusService: null,
 	// materialManagementService: null,
 	created() {
 		this.reimbursementApprovalService = new ReimbursementApprovalService()
 		// this.materialManagementService = new MaterialManagementService()
+		this.invoiceConfirmStatusService = new InvoiceConfirmStatusService()
 	},
 	components: {
 		InvoiceReimbursementUpLoadComponent,
@@ -292,6 +295,19 @@ export default {
 						// this.$refs.invoiceReimbursementUpLoadComponent.newUpload(method, this.inputForm.invoiceReimbursementFiles, 'reimbursement', 300, '数电发票信息', null, null, null, '江苏兴光会计师事务所有限责任公司')
 						this.$refs.uploadComponent.newUpload(method, this.inputForm.files, 'reimbursement')
 						this.inputForm = JSON.parse(JSON.stringify(this.inputForm))
+
+						// 获取文件确认状态
+						this.invoiceConfirmStatusService.getListByUser(this.inputForm.id).then(data => {
+							// 先构建一个 Map 方便查找
+							const statusMap = new Map(data.map(item => [item.invoiceId, item.status]));
+							// 遍历 targetArray 给每项加 confirmStatus
+							this.inputForm.invoiceReimbursementFiles.forEach(item => {
+								const status = statusMap.get(item.id);
+								if (status !== undefined) {
+									item.confirmStatus = status;
+								}
+							});
+						})
 						if (this.commonJS.isNotEmpty(this.inputForm.purchaseId)) {
 							this.startPur(this.inputForm.purchaseId)
 						}

+ 214 - 156
src/views/flowable/task/TodoList.vue

@@ -1,101 +1,53 @@
 <template>
 	<div class="page" style="height: calc(100% - 80px);">
-		<el-form
-			:inline="true"
-			size="default"
-			v-if="searchVisible"
-			class="query-form m-b-10"
-			ref="searchForm"
-			:model="searchForm"
-			@keyup.enter.native="refreshList()"
-			@submit.native.prevent
-		>
+		<el-form :inline="true" size="default" v-if="searchVisible" class="query-form m-b-10" ref="searchForm"
+			:model="searchForm" @keyup.enter.native="refreshList()" @submit.native.prevent>
 			<el-form-item label="创建时间:" prop="searchDates">
-				<el-date-picker
-					v-model="searchDates"
-					type="datetimerange"
-					value-format="YYYY-MM-DD HH:mm:ss"
-					range-separator="至"
-					start-placeholder="开始日期"
-					end-placeholder="结束日期"
-				/>
+				<el-date-picker v-model="searchDates" type="datetimerange" value-format="YYYY-MM-DD HH:mm:ss"
+					range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" />
 			</el-form-item>
 			<el-form-item label="实例标题" prop="title">
-				<el-input  v-model="searchForm.title" placeholder="实例标题" clearable></el-input>
+				<el-input v-model="searchForm.title" placeholder="实例标题" clearable></el-input>
 			</el-form-item>
 			<el-form-item label="流程发起人" prop="assigneeId">
-				<el-input  v-model="searchForm.assigneeId" placeholder="请选择流程发起人">
+				<el-input v-model="searchForm.assigneeId" placeholder="请选择流程发起人">
 					<template #suffix>
-					<el-button style="background-color: white;color: #1b1e25;border-color: white;" type="primary" slot="append" icon="el-icon-search" @click="openUserDia">
-<!--						<UserSelect2  :modelValue="searchForm.assigneeId" :limit='1' @update:modelValue='(value, label) => {searchForm.assigneeId = value}'></UserSelect2>-->
-					</el-button>
+						<el-button style="background-color: white;color: #1b1e25;border-color: white;" type="primary"
+							slot="append" icon="el-icon-search" @click="openUserDia">
+							<!--						<UserSelect2  :modelValue="searchForm.assigneeId" :limit='1' @update:modelValue='(value, label) => {searchForm.assigneeId = value}'></UserSelect2>-->
+						</el-button>
 					</template>
 				</el-input>
 			</el-form-item>
 			<el-form-item>
-				<el-button type="primary" @click="refreshList()" icon="search"
-					>查询</el-button
-				>
-				<el-button
-					type="default"
-					@click="resetSearch()"
-					icon="refresh-right"
-					>重置</el-button
-				>
+				<el-button type="primary" @click="refreshList()" icon="search">查询</el-button>
+				<el-button type="default" @click="resetSearch()" icon="refresh-right">重置</el-button>
 			</el-form-item>
 		</el-form>
 		<div class="jp-table">
-			<vxe-toolbar
-				ref="todoToolbar"
-				:refresh="{ query: refreshList }"
-				export
-				print
-				custom
-			>
+			<vxe-toolbar ref="todoToolbar" :refresh="{ query: refreshList }" export print custom>
 				<template #buttons>
-					<el-button v-if="hasPermission('approval:info:edit')"  type="primary" icon="el-icon-plus" @click="approval()" :disabled="$refs.todoTable && $refs.todoTable.getCheckboxRecords().length === 0">批量审核</el-button>
+					<el-button v-if="hasPermission('approval:info:edit')" type="primary" icon="el-icon-plus"
+						@click="approval()"
+						:disabled="$refs.todoTable && $refs.todoTable.getCheckboxRecords().length === 0">批量审核</el-button>
 				</template>
 				<template #tools>
-					<vxe-button
-						type="text"
-						:title="searchVisible ? '收起检索' : '展开检索'"
-						icon="vxe-icon-search"
-						class="tool-btn"
-						@click="searchVisible = !searchVisible"
-					></vxe-button>
+					<vxe-button type="text" :title="searchVisible ? '收起检索' : '展开检索'" icon="vxe-icon-search"
+						class="tool-btn" @click="searchVisible = !searchVisible"></vxe-button>
 				</template>
 			</vxe-toolbar>
 			<div class="jp-table-body">
-				<vxe-table
-					border="inner"
-					auto-resize
-					resizable
-					height="auto"
-					:loading="loading"
-					size="small"
-					ref="todoTable"
-					show-header-overflow
-					show-overflow
-					highlight-hover-row
-					:menu-config="{}"
-					:print-config="{}"
-					:import-config="{}"
-					:export-config="{}"
-					:data="dataList"
-					:checkbox-config="{}"
-				>
+				<vxe-table border="inner" auto-resize resizable height="auto" :loading="loading" size="small"
+					ref="todoTable" show-header-overflow show-overflow highlight-hover-row :menu-config="{}"
+					:print-config="{}" :import-config="{}" :export-config="{}" :data="dataList" :checkbox-config="{}">
 					<vxe-column type="seq" width="40"></vxe-column>
 					<vxe-column type="checkbox" width="40px"></vxe-column>
 					<vxe-column title="实例标题" field="vars.title">
 						<template #default="scope">
-							<el-link  type="primary" :underline="false" v-if="scope.row.belongProject === 'ccpm'"  @click="todoCcpm(scope.row)">{{scope.row.vars.title}}</el-link>
-							<el-link
-								type="primary"
-								:underline="false"
-								v-if="scope.row.status === 'todo'"
-								@click="todo(scope.row)"
-								>{{ scope.row.vars.title }}</el-link
-							>
+							<el-link type="primary" :underline="false" v-if="scope.row.belongProject === 'ccpm'"
+								@click="todoCcpm(scope.row)">{{ scope.row.vars.title }}</el-link>
+							<el-link type="primary" :underline="false" v-if="scope.row.status === 'todo'"
+								@click="todo(scope.row)">{{ scope.row.vars.title }}</el-link>
 							<span v-else>{{ scope.row.vars.title }}</span>
 						</template>
 					</vxe-column>
@@ -106,85 +58,45 @@
 							<el-tag>{{ scope.row.task.name }}</el-tag>
 						</template>
 					</vxe-column>
-					<vxe-column
-						title="流程发起人"
-						field="vars.userName"
-					></vxe-column>
+					<vxe-column title="流程发起人" field="vars.userName"></vxe-column>
 					<vxe-column field="task.createTime" title="创建时间">
 					</vxe-column>
-					<vxe-column
-						title="操作"
-						width="200px"
-						fixed="right"
-						align="center"
-					>
+					<vxe-column title="操作" width="200px" fixed="right" align="center">
 						<template #default="scope">
 							<div v-if="scope.row.belongProject === 'ccpm'">
 								<el-button type="text" size="small" @click="todoCcpm(scope.row)">项目系统审核</el-button>
 							</div>
 							<div v-else>
-								<el-button
-									type="primary"
-									text
-									@click="todo(scope.row)"
-								>办理</el-button
-								>
+								<el-button type="primary" text @click="todo(scope.row)">办理</el-button>
 
-								<el-button
-									type="primary"
-									text
-									@click="trace(scope.row)"
-								>进度</el-button>
+								<el-button type="primary" text @click="trace(scope.row)">进度</el-button>
 							</div>
 						</template>
 					</vxe-column>
 				</vxe-table>
-				<vxe-pager
-					background
-					size="small"
-					:current-page="tablePage.currentPage"
-					:page-size="tablePage.pageSize"
-					:total="tablePage.total"
-					:page-sizes="[
+				<vxe-pager background size="small" :current-page="tablePage.currentPage" :page-size="tablePage.pageSize"
+					:total="tablePage.total" :page-sizes="[
 						10,
 						20,
 						100,
 						1000,
 						{ label: '全量数据', value: 1000000 },
-					]"
-					:layouts="[
+					]" :layouts="[
 						'PrevPage',
 						'JumpNumber',
 						'NextPage',
 						'FullJump',
 						'Sizes',
 						'Total',
-					]"
-					@page-change="currentChangeHandle"
-				>
+					]" @page-change="currentChangeHandle">
 				</vxe-pager>
 			</div>
 		</div>
-		<v-dialog
-			title="查看进度"
-			:close-on-click-modal="true"
-			v-model="visible"
-			width="70%"
-			height="600px"
-		>
-			<flow-chart
-				ref="preview"
-				:processInstanceId="processInstanceId"
-			></flow-chart>
+		<v-dialog title="查看进度" :close-on-click-modal="true" v-model="visible" width="70%" height="600px">
+			<flow-chart ref="preview" :processInstanceId="processInstanceId"></flow-chart>
 		</v-dialog>
-		<user-select
-			ref="userSelect"
-			:limit="1"
-			@doSubmit="selectUsersToTransferTask"
-		></user-select>
-		<user-select2
-			ref="userSelect2"
-			@doSubmit="selectUser">
+		<user-select ref="userSelect" :limit="1" @doSubmit="selectUsersToTransferTask"></user-select>
+		<user-select2 ref="userSelect2" @doSubmit="selectUser">
 		</user-select2>
 		<TodoDia ref="todoDia" @refreshDataList="refreshList"></TodoDia>
 	</div>
@@ -219,7 +131,7 @@ export default {
 			visible: false,
 			currentTask: null,
 			processInstanceId: "",
-			searchParams:{
+			searchParams: {
 				title: "",
 				assigneeId: "",
 				searchDates: "",
@@ -252,7 +164,7 @@ export default {
 				this.searchForm.endDate = "";
 			}
 		},
-		index (index) {
+		index(index) {
 			if (index === this.i) {
 				this.refreshList()
 			}
@@ -265,41 +177,41 @@ export default {
 			//let loginUserId = this.$store.state.user.id  // 获取当前登录用户id
 
 			console.log("this.sessionStorage", sessionStorage)
-			if(sessionStorage){
+			if (sessionStorage) {
 				var beginDate = sessionStorage.getItem("beginDate")
 				var endDate = sessionStorage.getItem("endDate")
 				var title = this.searchForm.title
 				var assigneeId = this.searchForm.assigneeId
-				if(beginDate){
+				if (beginDate) {
 					this.searchForm.beginDate = beginDate;
 				}
-				if(endDate){
+				if (endDate) {
 					this.searchForm.endDate = endDate;
 				}
-				if (beginDate && endDate){
+				if (beginDate && endDate) {
 					var searchDates = []
 					searchDates.push(beginDate)
 					searchDates.push(endDate)
 					this.searchDates = searchDates
 				}
-				if(title){
+				if (title) {
 					this.searchForm.title = title;
 				}
-				if(assigneeId){
+				if (assigneeId) {
 					this.searchForm.assigneeId = assigneeId;
 				}
 			}
-			if(this.searchForm.beginDate){
-				sessionStorage.setItem("beginDate",this.searchForm.beginDate)
+			if (this.searchForm.beginDate) {
+				sessionStorage.setItem("beginDate", this.searchForm.beginDate)
 			}
-			if(this.searchForm.endDate){
-				sessionStorage.setItem("endDate",this.searchForm.endDate)
+			if (this.searchForm.endDate) {
+				sessionStorage.setItem("endDate", this.searchForm.endDate)
 			}
-			if(this.searchForm.title){
-				sessionStorage.setItem("title",this.searchForm.title)
+			if (this.searchForm.title) {
+				sessionStorage.setItem("title", this.searchForm.title)
 			}
-			if(this.searchForm.assigneeId){
-				sessionStorage.setItem("assigneeId",this.searchForm.assigneeId)
+			if (this.searchForm.assigneeId) {
+				sessionStorage.setItem("assigneeId", this.searchForm.assigneeId)
 			}
 
 			taskService
@@ -310,7 +222,7 @@ export default {
 					...this.searchForm,
 				})
 				.then((data) => {
-					console.log('zzz',data.records)
+					console.log('zzz', data.records)
 					this.dataList = data.records;
 					this.tablePage.total = data.total;
 					this.loading = false;
@@ -322,8 +234,129 @@ export default {
 			this.tablePage.pageSize = pageSize;
 			this.refreshList();
 		},
+		isReimbursementProcess(procDefKey) {
+			const reimbursementProcesses = [
+				"Process_1669271524486",
+				"Process_1669271524487",
+				"Process_1704851888818",
+				"Process_1705370333755",
+				"Process_1705389994103",
+				"Process_1705390592348",
+				"Process_1673924346231",
+				"Process_1673924346232",
+				"Process_1705391439287",
+				"Process_1705391725816",
+				"Process_1665383385070",
+				"Process_1665383385071",
+				"Process_1705454007925",
+				"Process_1705454863808",
+				"Process_1706170102059",
+				"Process_1706175399469",
+				"Process_1706176397312",
+				"Process_1706176937876",
+				"Process_1706671221048",
+				"Process_1706679472488",
+				"Process_1706680073642",
+				"Process_1706680331785",
+				"Process_1706680660857",
+				"Process_1709102298565",
+				"Process_1709104787957",
+				"Process_1711418224962",
+				"Process_1722305645394",
+				"Process_1722412442950",
+				"Process_1722416114655",
+				"Process_1722404901733",
+				"Process_1722389642543"
+			];
+			return reimbursementProcesses.includes(procDefKey);
+		},
+		isReimbursementUrl(name) {
+			// 会计-文件补充
+			let cwFile = ["会计-报销文件补充"]
+			//项目-报销文件补充
+			let ccpmFile = ["项目-报销文件补充"]
+			//咨询-报销文件补充
+			let zxFile = ["咨询-报销文件补充"]
+			//中审-文件补充
+			let zsFile = ["中审-报销文件补充"]
+			//评估-文件补充
+			let pgFile = ["评估-报销文件补充"]
+			// 会计
+			let cw = ["会计-所长报销", "会计-所长报销-电子发票", "会计-总经办报销", "盛所会计-报销申请", "会计-报销审批", "会计-报销审批-电子发票"]
+			// 中审
+			let zs = ["中审-所长报销", "中审-所长报销-电子发票", "中审-总经办报销", "中审-报销审批", "中审-报销审批-电子发票"]
+			// 评估
+			let pg = ["评估-总经办报销", "评估-所长报销", "评估-所长报销-电子发票", "评估-报销申请", "评估-报销审批-电子发票"]
+			// 项目
+			let ccpm = ["物资-项目报销", "项目-总经办报销", "项目-报销审批", "项目-报销审批-电子发票", "盛所项目-报销申请",]
+			// 咨询
+			let zx = ["咨询-总经办报销", "咨询-所长报销", "咨询-所长报销-电子发票", "咨询-报销审批", "咨询-报销审批-电子发票"]
+			if (cw.includes(name)) {
+				return {
+					url: '/cw/reimbursementApproval/info/NewReimbursementForm',
+					type: 'reimbursement'
+				}
+			}
+			if (zs.includes(name)) {
+				return {
+					url: '/zs/reimbursement/info/NewReimbursementForm',
+					type: 'reimbursement'
+				}
+			}
+			if (pg.includes(name)) {
+				return {
+					url: '/reimbursement/info/NewReimbursementForm',
+					type: 'reimbursement'
+				}
+			}
+			if (ccpm.includes(name)) {
+				return {
+					url: '/ccpm/reimbursement/info/NewReimbursementForm',
+					type: 'reimbursement'
+				}
+			}
+			if (zx.includes(name)) {
+				return {
+					url: '/consultancy/reimbursement/info/NewReimbursementForm',
+					type: 'reimbursement'
+				}
+			}
+			if (cwFile.includes(name)) {
+				return {
+					url: "/cw/reimbursementApproval/info/NewReimbursementFileSupplementForm",
+					type: 'file'
+				}
+			}
+			if (ccpmFile.includes(name)) {
+				return {
+					url: "/ccpm/reimbursement/info/NewReimbursementFileSupplementForm",
+					type: 'file'
+				}
+			}
+			if (zxFile.includes(name)) {
+				return {
+					url: "/consultancy/reimbursement/info/NewReimbursementFileSupplementForm",
+					type: 'file'
+				}
+			}
+			if (zsFile.includes(name)) {
+				return {
+					url: "/zs/reimbursement/info/NewReimbursementFileSupplementForm",
+					type: 'file'
+				}
+			}
+			if (pgFile.includes(name)) {
+				return {
+					url: "/reimbursement/info/NewReimbursementFileSupplementForm",
+					type: 'file'
+				}
+			}
+			return null;
+		},
+
+
 		todo(row) {
-			console.log('row',row)
+			console.log('row', row)
 			//页面跳转后返回当前页筛选项仍保留
 			let _data = Object.assign(this.searchParams, {});//将筛选项存入到data中
 			sessionStorage.setItem('nowPageData', JSON.stringify(_data));//存入到sessionStorage中
@@ -337,7 +370,32 @@ export default {
 					procDefKey: row.task.processDefKey,
 					status: row.status,
 				})
-				.then((data) => {
+				.then(async (data) => {
+
+					// 如果是需要处理的流程
+					if (this.isReimbursementProcess(data.procDefKey)) {
+						// 根据流程名称获取对应的表单地址
+						let urlObj = this.isReimbursementUrl(row.processDefinitionName)
+						if (urlObj) {
+							let approvalTime = null
+							// 判断是否为文件补充流程和报销流程
+							if (urlObj.type && urlObj.type === 'file') {
+								approvalTime = await taskService.getCreateTimeByProcInsId(row.task.processInstanceId)
+							} else {
+								approvalTime = await taskService.getApprovalTimeByProcInsId(row.task.processInstanceId)
+
+							}
+							if (approvalTime) {
+								// 根据发起审批的时间判断是否为新版本报销页面
+								let newStartDate = this.$dictUtils.getDictLabel("new_version_reimbursement_date", '1', '-')
+								const compareResult = this.validateXG.compareDate(approvalTime, newStartDate);
+								const newVersionFlag = compareResult == 'same' || compareResult == 'after';
+								if (newVersionFlag) {
+									data.formUrl = urlObj.url
+								}
+							}
+						}
+					}
 					this.$router.push({
 						path: "/flowable/task/TaskForm",
 						query: {
@@ -388,22 +446,22 @@ export default {
 			});
 			sessionStorage.clear()
 		},
-		openUserDia(){
+		openUserDia() {
 			this.$refs.userSelect2.init()
 		},
-		selectUser(user){
+		selectUser(user) {
 			console.log(user[0].name)
-			this.searchForm.assigneeId=user[0].name
+			this.searchForm.assigneeId = user[0].name
 		},
-		approval(){
-			let info=this.$refs.todoTable.getCheckboxRecords()
+		approval() {
+			let info = this.$refs.todoTable.getCheckboxRecords()
 			this.$refs.todoDia.init(info)
 		},
 		// // 审核方法
-		todoCcpm (row) {
-			console.log('row',row)
-			if (row.task.processDefKey === '108' || row.task.processDefKey === '109' || row.task.processDefKey === '13'|| row.task.processDefKey === '102') {
-				console.log('row',row)
+		todoCcpm(row) {
+			console.log('row', row)
+			if (row.task.processDefKey === '108' || row.task.processDefKey === '109' || row.task.processDefKey === '13' || row.task.processDefKey === '102') {
+				console.log('row', row)
 				let id = row.vars.notifyId
 				let title = '报销申请审批'
 				this.toCenterForm(id, title, row.task.processDefKey, 'audit') // 跳转
@@ -421,7 +479,7 @@ export default {
 			}
 		},
 		// // 审核页面跳转
-		toCenterForm (id, title, processDefKey, type) {
+		toCenterForm(id, title, processDefKey, type) {
 			this.$router.push({ // 跳转
 				path: '/generateForm/Generateform',
 				query: {
@@ -434,7 +492,7 @@ export default {
 			})
 		},
 		// // 发票审核页面跳转(财务审批)
-		toInvoiceUpdateCenterForm (id, title, processDefKey, type) {
+		toInvoiceUpdateCenterForm(id, title, processDefKey, type) {
 			this.$router.push({ // 跳转
 				path: '/generateForm/InvoiceUpdateGenerateForm',
 				query: {
@@ -447,7 +505,7 @@ export default {
 			})
 		},
 		// // 发票审核页面跳转
-		toInvoiceCenterForm (id, title, processDefKey, type) {
+		toInvoiceCenterForm(id, title, processDefKey, type) {
 			this.$router.push({ // 跳转
 				path: '/generateForm/InvoiceGenerateForm',
 				query: {

+ 15 - 0
src/views/reimbursement/info/NewInfoUpdateForm.vue

@@ -467,6 +467,21 @@ export default {
 					if (this.commonJS.isNotEmpty(this.inputForm.purchaseId)) {
 						// this.startPur(this.inputForm.purchaseId)
 					}
+
+					// 获取文件确认状态
+					this.reimbursementService.getListByUser(this.inputForm.id).then(data => {
+						console.log(data);
+						// 先构建一个 Map 方便查找
+						const statusMap = new Map(data.map(item => [item.invoiceId, item.status]));
+						// 遍历 targetArray 给每项加 confirmStatus
+						this.inputForm.invoiceReimbursementFiles.forEach(item => {
+							const status = statusMap.get(item.id);
+							if (status !== undefined) {
+								item.confirmStatus = status;
+							}
+						});
+					})
+
 					this.initReimbursementComponent()
 					this.loading = false
 				})

+ 12 - 1
src/views/reimbursement/info/NewReimbursementForm.vue

@@ -1100,6 +1100,17 @@ export default {
 					this.isDgsbxBmzr = data
 				})
 				userService.isZjbry().then((data) => {
+					console.log(data);
+					console.log(data);
+					console.log(data);
+					console.log(data);
+					console.log(data);
+					console.log(data);
+					console.log(data);
+					console.log(data);
+					console.log(data);
+					console.log(data);
+
 					this.isZjbry = data
 				})
 				userService.isKjsz().then((data) => {
@@ -1479,7 +1490,7 @@ export default {
 								this.inputForm.procDefKey = data.key
 							}
 						})
-						title = `发起流程【评估-报销审批-电子发票】`
+						title = `发起流程【评估-报销审批】`
 						describe = `[评估-报销审批-电子发票]`
 					}
 				} else {

+ 10 - 0
src/views/zs/reimbursement/info/NewInfoForm.vue

@@ -246,6 +246,16 @@ export default {
             // this.$refs.invoiceReimbursementUpLoadComponent.newUpload(method, this.inputForm.invoiceReimbursementFiles, 'reimbursement', 300, '数电发票信息', null, null, null, '中审众环会计师事务所(特殊普通合伙)江苏分所')
             this.$refs.uploadComponent.newUpload(method, this.inputForm.files, 'reimbursement')
             this.inputForm = JSON.parse(JSON.stringify(this.inputForm))
+            // 获取文件确认状态
+            this.reimbursementService.getListByUser(this.inputForm.id).then(data => {
+              const statusMap = new Map(data.map(item => [item.invoiceId, item.status]));
+              this.inputForm.invoiceReimbursementFiles.forEach(item => {
+                const status = statusMap.get(item.id);
+                if (status !== undefined) {
+                  item.confirmStatus = status;
+                }
+              });
+            })
             if (this.commonJS.isNotEmpty(this.inputForm.purchaseId)) {
               this.startPur(this.inputForm.purchaseId)
             }