huangguoce vor 3 Monaten
Ursprung
Commit
c7f835507e

+ 53 - 710
src/views/ccpm/reimbursement/info/NewInfoUpdateForm.vue

@@ -87,627 +87,10 @@
 						</el-form-item>
 					</el-col>
 				</el-row>
-				<div v-if="inputForm.sourceType === '5'">
-					<el-divider content-position="left"><i class="el-icon-document"></i>
-						采购详情
-					</el-divider>
-					<el-row :gutter="15">
-						<vxe-table border show-footer show-overflow :footer-method="footerMethod555" ref="preTable"
-							class="vxe-table-element" :data="inputForm.preList" style="margin-left: 5em"
-							highlight-current-row>
-							<vxe-table-column field="purchaser" title="采购人" :edit-render="{}" show-overflow="title"
-								:rules="[{ required: true, message: '请选择采购人', trigger: 'blur' }]"></vxe-table-column>
-							<vxe-table-column field="procurementOffice" title="采购部门" :edit-render="{}"
-								show-overflow="title"></vxe-table-column>
-							<vxe-table-column field="procurementType" title="采购类型" :edit-render="{}"
-								show-overflow="title"
-								:rules="[{ required: true, message: '请选择采购类型', trigger: 'blur' }]"></vxe-table-column>
-							<vxe-table-column field="tradeName" title="商品名称" :edit-render="{}" show-overflow="title"
-								:rules="[{ required: true, message: '请填写商品名称', trigger: 'blur' }]"></vxe-table-column>
-							<vxe-table-column field="tradePrice" title="商品单价(元)" :edit-render="{}" show-overflow="title"
-								:rules="[{ required: true, message: '请输入商品单价', trigger: 'blur' }]"></vxe-table-column>
-							<vxe-table-column field="tradeNumber" title="商品数量" :edit-render="{}"
-								show-overflow="title"></vxe-table-column>
-							<vxe-table-column field="priceSum" title="商品总价" :edit-render="{}"
-								show-overflow="title"></vxe-table-column>
-							<vxe-table-column field="company" title="单位" :edit-render="{}"
-								show-overflow="title"></vxe-table-column>
-							<vxe-table-column field="remarks" title="备注" :edit-render="{}"
-								show-overflow="title"></vxe-table-column>
-							<vxe-table-column title="操作">
-								<template #default="scope">
-									<el-button size="default" type="primary" :disabled="false"
-										@click="seeFileInfo(scope.$rowIndex)">文件详情</el-button>
-								</template>
-							</vxe-table-column>
-						</vxe-table>
-					</el-row>
-				</div>
-				<div v-if="inputForm.sourceType === '1'">
-					<el-divider content-position="left"><i class="el-icon-document"></i>
-						项目报销详情
-						<el-button size="default" style="margin-left: 20px" type="primary"
-							:disabled="method === 'view' || status === 'audit' || status === 'taskFormDetail'"
-							@click="insertEvent('detail')" plain>
-							新增
-						</el-button>
-					</el-divider>
-					<el-row :gutter="15">
-						<vxe-table border show-footer show-overflow :footer-method="footerMethod" ref="detailTable"
-							:key="detailKey" class="vxe-table-element" :data="inputForm.detailInfos"
-							style="margin-left: 5em" highlight-current-row
-							:edit-config="{ trigger: 'click', mode: 'row', showStatus: true, autoClear: true, icon: '_' }"
-							:edit-rules="validRules">
-							<vxe-table-column field="userName" title="报销人" :edit-render="{}" show-overflow="title"
-								:rules="[{ required: true, message: '请选择报销人', trigger: 'blur' }]">
-								<template #edit="scope">
-									<el-input v-model="scope.row.userName"
-										@focus="userPullListForm(scope.$rowIndex)"></el-input>
-									<!--              <UserSelectV2 :limit='1' :userName="scope.row.userName" @getValue='(value, label) => {scope.row.userName = label}'></UserSelectV2>-->
-								</template>
-							</vxe-table-column>
-							<vxe-table-column field="deptName" title="报销部门" :edit-render="{}" show-overflow="title">
-								<template #edit="scope">
-									<el-input :disabled='true' v-model="scope.row.deptName"></el-input>
-								</template>
-							</vxe-table-column>
-							<vxe-table-column field="typeName" title="报销类别" :edit-render="{}" show-overflow="title"
-								:rules="[{ required: true, message: '请选择报销类别', trigger: 'blur' }]">
-								<template #edit="scope">
-									<el-input v-model="scope.row.typeName"
-										@focus="typePullForm(scope.$rowIndex, scope.row.deptId)"></el-input>
-								</template>
-							</vxe-table-column>
-							<vxe-table-column field="projectName" title="报销项目" :edit-render="{}" show-overflow="title"
-								:rules="[{ required: true, message: '请选择报销项目', trigger: 'blur' }]">
-								<template #edit="scope">
-									<el-input v-model="scope.row.projectName"
-										@focus="openProgramPageForm(scope.$rowIndex, scope.row)"></el-input>
-								</template>
-							</vxe-table-column>
-							<!--            <vxe-table-column field="reportNumber" title="报告号" :edit-render="{}">-->
-							<!--              <template v-slot:edit="scope">-->
-							<!--                <el-input :readonly="true" v-model="scope.row.reportNumber" @focus="openReportNoPageForm(scope.$rowIndex, scope.row)"></el-input>-->
-							<!--              </template>-->
-							<!--            </vxe-table-column>-->
-							<vxe-table-column field="number" title="费用(元)" :edit-render="{}" show-overflow="title"
-								:rules="[{ required: true, message: '请输入费用', trigger: 'blur' }]">
-								<template #edit="scope">
-									<el-input maxlength="15" v-model="scope.row.number"
-										@input="scope.row.number = twoDecimalPlaces(scope.row.number)"></el-input>
-								</template>
-							</vxe-table-column>
-							<vxe-table-column field="receiptNumber" title="收据张数" :edit-render="{}"
-								show-overflow="title">
-								<template #edit="scope">
-									<el-input v-model="scope.row.receiptNumber"
-										oninput="value=value.replace(/\D|^0/g,'')" maxlength="10"></el-input>
-								</template>
-							</vxe-table-column>
-							<vxe-table-column field="days" title="出差天数" :edit-render="{}" show-overflow="title">
-								<template #edit="scope">
-									<el-input v-model="scope.row.days" oninput="value=value.replace(/\D|^0/g,'')"
-										maxlength="10"></el-input>
-								</template>
-							</vxe-table-column>
-							<vxe-table-column field="content" title="内容" :edit-render="{}" show-overflow="title">
-								<template #edit="scope">
-									<el-input v-model="scope.row.content"></el-input>
-								</template>
-							</vxe-table-column>
-							<vxe-table-column title="操作" width="100">
-								<template #default="scope">
-									<el-button size="default" type="danger"
-										@click="removeEvent(scope.row, scope.$rowIndex, 'detail')">删除</el-button>
-								</template>
-							</vxe-table-column>
-						</vxe-table>
-					</el-row>
-				</div>
-				<div v-if="inputForm.sourceType === '2'">
-					<el-divider content-position="left"><i class="el-icon-document"></i>
-						合同报销详情
-						<el-button size="default" style="margin-left: 20px" type="primary"
-							:disabled="method === 'view' || status === 'audit' || status === 'taskFormDetail'"
-							@click="insertEvent('contract_detail')" plain>
-							新增
-						</el-button>
-					</el-divider>
-					<el-row :gutter="15">
-						<vxe-table border show-footer show-overflow :footer-method="footerMethod"
-							ref="detailTableContract" :key="detailKeyContract" class="vxe-table-element"
-							:data="inputForm.detailInfoContracts" style="margin-left: 5em" highlight-current-row
-							:edit-config="{ trigger: 'click', mode: 'row', showStatus: true, autoClear: true, icon: '_' }"
-							:edit-rules="validRules">
-							<vxe-table-column field="userName" title="报销人" :edit-render="{}" show-overflow="title"
-								:rules="[{ required: true, message: '请选择报销人', trigger: 'blur' }]">
-								<template #edit="scope">
-									<el-input v-model="scope.row.userName"
-										@focus="userPullListForm2(scope.$rowIndex)"></el-input>
-									<!--              <UserSelectV2 :limit='1' :userName="scope.row.userName" @getValue='(value, label) => {scope.row.userName = label}'></UserSelectV2>-->
-								</template>
-							</vxe-table-column>
-							<vxe-table-column field="deptName" title="报销部门" :edit-render="{}" show-overflow="title">
-								<template #edit="scope">
-									<el-input :disabled='true' v-model="scope.row.deptName"></el-input>
-								</template>
-							</vxe-table-column>
-							<vxe-table-column field="typeName" title="报销类别" :edit-render="{}" show-overflow="title"
-								:rules="[{ required: true, message: '请选择报销类别', trigger: 'blur' }]">
-								<template #edit="scope">
-									<el-input v-model="scope.row.typeName"
-										@focus="typePullForm2(scope.$rowIndex, scope.row.deptId)"></el-input>
-								</template>
-							</vxe-table-column>
-							<vxe-table-column field="contractName" title="报销合同" :edit-render="{}" show-overflow="title"
-								:rules="[{ required: true, message: '请选择报销合同', trigger: 'blur' }]">
-								<template #edit="scope">
-									<el-input v-model="scope.row.contractName"
-										@focus="openContractForm(scope.$rowIndex, scope.row)"></el-input>
-								</template>
-							</vxe-table-column>
-							<!--            <vxe-table-column field="reportNumber" title="报告号" :edit-render="{}">-->
-							<!--              <template v-slot:edit="scope">-->
-							<!--                <el-input :readonly="true" v-model="scope.row.reportNumber" @focus="openReportNoPageForm(scope.$rowIndex, scope.row)"></el-input>-->
-							<!--              </template>-->
-							<!--            </vxe-table-column>-->
-							<vxe-table-column field="number" title="费用(元)" :edit-render="{}" show-overflow="title"
-								:rules="[{ required: true, message: '请输入费用', trigger: 'blur' }]">
-								<template #edit="scope">
-									<el-input maxlength="15" v-model="scope.row.number"
-										@input="scope.row.number = twoDecimalPlaces(scope.row.number)"></el-input>
-								</template>
-							</vxe-table-column>
-							<vxe-table-column field="receiptNumber" title="收据张数" :edit-render="{}"
-								show-overflow="title">
-								<template #edit="scope">
-									<el-input v-model="scope.row.receiptNumber"
-										oninput="value=value.replace(/\D|^0/g,'')" maxlength="10"></el-input>
-								</template>
-							</vxe-table-column>
-							<vxe-table-column field="days" title="出差天数" :edit-render="{}" show-overflow="title">
-								<template #edit="scope">
-									<el-input v-model="scope.row.days" oninput="value=value.replace(/\D|^0/g,'')"
-										maxlength="10"></el-input>
-								</template>
-							</vxe-table-column>
-							<vxe-table-column field="content" title="内容" :edit-render="{}" show-overflow="title">
-								<template #edit="scope">
-									<el-input v-model="scope.row.content"></el-input>
-								</template>
-							</vxe-table-column>
-							<vxe-table-column title="操作" width="100">
-								<template #default="scope">
-									<el-button size="default" type="danger"
-										@click="removeEvent(scope.row, scope.$rowIndex, 'contract_detail')">删除</el-button>
-								</template>
-							</vxe-table-column>
-						</vxe-table>
-					</el-row>
-				</div>
-				<div v-if="inputForm.sourceType === '3'">
-					<el-divider content-position="left"><i class="el-icon-document"></i>
-						报告报销详情
-						<el-button size="default" style="margin-left: 20px" type="primary"
-							:disabled="method === 'view' || status === 'audit' || status === 'taskFormDetail'"
-							@click="insertEvent('report_detail')" plain>
-							新增
-						</el-button>
-					</el-divider>
-					<el-row :gutter="15">
-						<vxe-table border show-footer show-overflow :footer-method="footerMethod"
-							ref="detailTableReport" :key="detailKeyReport" class="vxe-table-element"
-							:data="inputForm.detailInfoReports" style="margin-left: 5em" highlight-current-row
-							:edit-config="{ trigger: 'click', mode: 'row', showStatus: true, autoClear: true, icon: '_' }"
-							:edit-rules="validRules">
-							<vxe-table-column field="userName" title="报销人" :edit-render="{}" show-overflow="title"
-								:rules="[{ required: true, message: '请选择报销人', trigger: 'blur' }]">
-								<template #edit="scope">
-									<el-input v-model="scope.row.userName"
-										@focus="userPullListForm3(scope.$rowIndex)"></el-input>
-									<!--              <UserSelectV2 :limit='1' :userName="scope.row.userName" @getValue='(value, label) => {scope.row.userName = label}'></UserSelectV2>-->
-								</template>
-							</vxe-table-column>
-							<vxe-table-column field="deptName" title="报销部门" :edit-render="{}" show-overflow="title">
-								<template #edit="scope">
-									<el-input :disabled='true' v-model="scope.row.deptName"></el-input>
-								</template>
-							</vxe-table-column>
-							<vxe-table-column field="typeName" title="报销类别" :edit-render="{}" show-overflow="title"
-								:rules="[{ required: true, message: '请选择报销类别', trigger: 'blur' }]">
-								<template #edit="scope">
-									<el-input v-model="scope.row.typeName"
-										@focus="typePullForm3(scope.$rowIndex, scope.row.deptId)"></el-input>
-								</template>
-							</vxe-table-column>
-							<vxe-table-column field="projectName" title="报销项目" :edit-render="{}" show-overflow="title"
-								:rules="[{ required: true, message: '请选择报销项目', trigger: 'blur' }]">
-								<template #edit="scope">
-									<el-input v-model="scope.row.projectName"
-										@focus="openProgramPageForm3(scope.$rowIndex, scope.row)"></el-input>
-								</template>
-							</vxe-table-column>
-							<vxe-table-column field="reportNumber" title="报告号" :edit-render="{}" show-overflow="title">
-								<template #edit="scope">
-									<el-input :readonly="true" v-model="scope.row.reportNumber"
-										@focus="openReportNoPageForm(scope.$rowIndex, scope.row)"></el-input>
-								</template>
-							</vxe-table-column>
-							<vxe-table-column field="number" title="费用(元)" :edit-render="{}" show-overflow="title"
-								:rules="[{ required: true, message: '请输入费用', trigger: 'blur' }]">
-								<template #edit="scope">
-									<el-input maxlength="15" v-model="scope.row.number"
-										@input="scope.row.number = twoDecimalPlaces(scope.row.number)"></el-input>
-								</template>
-							</vxe-table-column>
-							<vxe-table-column field="receiptNumber" title="收据张数" :edit-render="{}"
-								show-overflow="title">
-								<template #edit="scope">
-									<el-input v-model="scope.row.receiptNumber"
-										oninput="value=value.replace(/\D|^0/g,'')" maxlength="10"></el-input>
-								</template>
-							</vxe-table-column>
-							<vxe-table-column field="days" title="出差天数" :edit-render="{}" show-overflow="title">
-								<template #edit="scope">
-									<el-input v-model="scope.row.days" oninput="value=value.replace(/\D|^0/g,'')"
-										maxlength="10"></el-input>
-								</template>
-							</vxe-table-column>
-							<vxe-table-column field="content" title="内容" :edit-render="{}" show-overflow="title">
-								<template #edit="scope">
-									<el-input v-model="scope.row.content"></el-input>
-								</template>
-							</vxe-table-column>
-							<vxe-table-column title="操作" width="100">
-								<template #default="scope">
-									<el-button size="default" type="danger"
-										@click="removeEvent(scope.row, scope.$rowIndex, 'report_detail')">删除</el-button>
-								</template>
-							</vxe-table-column>
-						</vxe-table>
-					</el-row>
-				</div>
-				<div v-if="inputForm.sourceType === '4'">
-					<el-divider content-position="left"><i class="el-icon-document"></i>
-						其他报销详情
-						<el-button size="default" style="margin-left: 20px" type="primary"
-							:disabled="method === 'view' || status === 'audit' || status === 'taskFormDetail'"
-							@click="insertEvent('others')" plain>
-							新增
-						</el-button>
-					</el-divider>
-					<el-row :gutter="15">
-						<el-col :span="24">
-							<vxe-table border show-footer show-overflow :footer-method="footerMethod"
-								ref="detailTableOthers" class="vxe-table-element" :data="inputForm.detailInfoOthers"
-								style="margin-left: 5em" :key="detailKeyOthers" highlight-current-row
-								:edit-config="{ trigger: 'click', mode: 'row', showStatus: true, autoClear: true, icon: '_' }"
-								:edit-rules="validRules" :row-config="{ keyField: 'uniqueId' }"
-								:expand-config="{ expandAll: false, accordion: false, toggleMethod: handleExpand, expandRowKeys: handleDefaultExpand() }">
-								<vxe-column type="expand" width="80">
-									<template #content="{ row, rowIndex }">
-										<InvoiceReimbursementUpLoadComponent v-if="row.reimbursementType == 1"
-											@changeConfirmList="changeConfirmList" @handleCount="handleCount"
-											@handleUploadSuccess="handleUploadSuccess" :ref="row.uniqueId + 'Upload'"
-											v-show="'1' === this.inputForm.reimbursementType">
-										</InvoiceReimbursementUpLoadComponent>
-										<UpLoadComponent @handleUploadSuccess="handleUploadSuccess"
-											v-if="row.reimbursementType == 0" :ref="row.uniqueId + 'UploadFiles'">
-										</UpLoadComponent>
-									</template>
-								</vxe-column>
-								<vxe-table-column field="userName" title="报销人" :edit-render="{}" show-overflow="title"
-									:rules="[{ required: true, message: '请选择报销人', trigger: 'blur' }]">
-									<template #edit="scope">
-										<el-input v-model="scope.row.userName"
-											@focus="userPullListForm4(scope.$rowIndex)"></el-input>
-										<!--              <UserSelectV2 :limit='1' :userName="scope.row.userName" @getValue='(value, label) => {scope.row.userName = label}'></UserSelectV2>-->
-									</template>
-								</vxe-table-column>
-								<vxe-table-column field="deptName" title="报销部门" :edit-render="{}" show-overflow="title">
-									<template #edit="scope">
-										<el-input :disabled='true' v-model="scope.row.deptName"></el-input>
-									</template>
-								</vxe-table-column>
-								<vxe-table-column field="reimbursementType" title="报销类型" :edit-render="{}"
-									show-overflow="title">
-									<template #default="{ row }">
-										<span>{{ $dictUtils.getDictLabel('reimbursement_type', row.reimbursementType,
-											'') }}</span>
-									</template>
-									<template #edit="{ row }">
-										<vxe-select
-											:disabled="method === 'view' || status === 'audit' || status === 'taskFormDetail'"
-											@change="handleChangeType" v-model="row.reimbursementType"
-											placeholder="请选择报销类型" transfer>
-											<vxe-option v-for="item in $dictUtils.getDictList('reimbursement_type')"
-												:key="item.value" :value="item.value" :label="item.label"></vxe-option>
-										</vxe-select>
-									</template>
-								</vxe-table-column>
-								<vxe-table-column field="typeName" title="报销类别" :edit-render="{}" show-overflow="title"
-									:rules="[{ required: true, message: '请选择报销类别', trigger: 'blur' }]">
-									<template #edit="scope">
-										<el-input v-model="scope.row.typeName"
-											@focus="typePullForm4(scope.$rowIndex, scope.row.deptId)"></el-input>
-									</template>
-								</vxe-table-column>
-								<vxe-table-column field="projectName" title="报销详情" :edit-render="{}"
-									show-overflow="title"
-									:rules="[{ required: true, message: '请填写报销详情', trigger: 'blur' }]">
-									<template #edit="scope">
-										<el-input v-model="scope.row.projectName"
-											@focus="openProgramPageForm4(scope.$rowIndex, scope.row)"></el-input>
-									</template>
-								</vxe-table-column>
-								<!--            <vxe-table-column field="reportNumber" title="报告号" :edit-render="{}">-->
-								<!--              <template v-slot:edit="scope">-->
-								<!--                <el-input :readonly="true" v-model="scope.row.reportNumber" @focus="openReportNoPageForm(scope.$rowIndex, scope.row)"></el-input>-->
-								<!--              </template>-->
-								<!--            </vxe-table-column>-->
-								<vxe-table-column field="number" title="费用(元)" :edit-render="{}" show-overflow="title"
-									:rules="[{ required: true, message: '请输入费用', trigger: 'blur' }]">
-									<template #edit="scope">
-										<el-input maxlength="15" v-model="scope.row.number"
-											@input="scope.row.number = twoDecimalPlaces(scope.row.number)"></el-input>
-									</template>
-								</vxe-table-column>
-								<vxe-table-column field="receiptNumber" title="收据张数" :edit-render="{}"
-									show-overflow="title">
-									<template #edit="scope">
-										<el-input v-model="scope.row.receiptNumber"
-											oninput="value=value.replace(/\D|^0/g,'')" maxlength="10"></el-input>
-									</template>
-								</vxe-table-column>
-								<vxe-table-column field="days" title="出差天数" :edit-render="{}" show-overflow="title">
-									<template #edit="scope">
-										<el-input v-model="scope.row.days" oninput="value=value.replace(/\D|^0/g,'')"
-											maxlength="10"></el-input>
-									</template>
-								</vxe-table-column>
-								<vxe-table-column field="content" title="内容" :edit-render="{}" show-overflow="title">
-									<template #edit="scope">
-										<el-input v-model="scope.row.content"></el-input>
-									</template>
-								</vxe-table-column>
-								<vxe-table-column title="操作" width="180">
-									<template #default="scope">
-										<el-button size="default" @click="uploadFile(scope.row, scope.$rowIndex,)"
-											type="primary">上传</el-button>
-										<el-button size="default" type="danger"
-											@click="removeEvent(scope.row, scope.$rowIndex, 'others')">删除</el-button>
-									</template>
-								</vxe-table-column>
-							</vxe-table>
-						</el-col>
-					</el-row>
-				</div>
-				<div v-if="inputForm.sourceType === '5'">
-					<el-divider content-position="left"><i class="el-icon-document"></i>
-						采购报销详情
-						<el-button size="default" style="margin-left: 20px" type="primary"
-							:disabled="method === 'view' || this.formReadOnly" @click="insertEvent('procured')" plain>
-							新增
-						</el-button>
-					</el-divider>
-					<el-row :gutter="15">
-						<vxe-table border show-footer show-overflow :footer-method="footerMethod"
-							ref="detailTableProcured" class="vxe-table-element" :data="inputForm.detailInfoProcured"
-							style="margin-left: 5em" :key="detailKeyProcured" highlight-current-row
-							:edit-config="{ trigger: 'click', mode: 'row', showStatus: true, autoClear: true, icon: '_' }"
-							:edit-rules="validRules">
-							<vxe-table-column field="userName" title="报销人" :edit-render="{}" show-overflow="title"
-								:rules="[{ required: true, message: '请选择报销人', trigger: 'blur' }]">
-								<template #edit="scope">
-									<el-input v-model="scope.row.userName"
-										@focus="userPullListForm5(scope.$rowIndex)"></el-input>
-									<!--              <UserSelectV2 :limit='1' :userName="scope.row.userName" @getValue='(value, label) => {scope.row.userName = label}'></UserSelectV2>-->
-								</template>
-							</vxe-table-column>
-							<vxe-table-column field="deptName" title="报销部门" :edit-render="{}" show-overflow="title">
-								<template #edit="scope">
-									<el-input :disabled='true' v-model="scope.row.deptName"></el-input>
-								</template>
-							</vxe-table-column>
-							<vxe-table-column field="typeName" title="报销类别" :edit-render="{}" show-overflow="title"
-								:rules="[{ required: true, message: '请选择报销类别', trigger: 'blur' }]">
-								<template #edit="scope">
-									<el-input v-model="scope.row.typeName"
-										@focus="typePullForm5(scope.$rowIndex, scope.row.deptId)"></el-input>
-								</template>
-							</vxe-table-column>
-							<vxe-table-column field="projectName" title="报销项目" :edit-render="{}" show-overflow="title"
-								:rules="[{ required: true, message: '请选择报销项目', trigger: 'blur' }]">
-								<template #edit="scope">
-									<el-input v-model="scope.row.projectName"
-										@focus="openProgramPageForm5(scope.$rowIndex, scope.row)"></el-input>
-								</template>
-							</vxe-table-column>
-							<!--            <vxe-table-column field="reportNumber" title="报告号" :edit-render="{}">-->
-							<!--              <template v-slot:edit="scope">-->
-							<!--                <el-input :readonly="true" v-model="scope.row.reportNumber" @focus="openReportNoPageForm(scope.$rowIndex, scope.row)"></el-input>-->
-							<!--              </template>-->
-							<!--            </vxe-table-column>-->
-							<vxe-table-column field="number" title="费用(元)" :edit-render="{}" show-overflow="title"
-								:rules="[{ required: true, message: '请输入费用', trigger: 'blur' }]">
-								<template #edit="scope">
-									<el-input maxlength="15" v-model="scope.row.number"
-										@input="scope.row.number = twoDecimalPlaces(scope.row.number)"></el-input>
-								</template>
-							</vxe-table-column>
-							<vxe-table-column field="receiptNumber" title="收据张数" :edit-render="{}"
-								show-overflow="title">
-								<template #edit="scope">
-									<el-input v-model="scope.row.receiptNumber"
-										oninput="value=value.replace(/\D|^0/g,'')" maxlength="10"></el-input>
-								</template>
-							</vxe-table-column>
-							<vxe-table-column field="days" title="出差天数" :edit-render="{}" show-overflow="title">
-								<template #edit="scope">
-									<el-input v-model="scope.row.days" oninput="value=value.replace(/\D|^0/g,'')"
-										maxlength="10"></el-input>
-								</template>
-							</vxe-table-column>
-							<vxe-table-column field="content" title="内容" :edit-render="{}" show-overflow="title">
-								<template #edit="scope">
-									<el-input v-model="scope.row.content"></el-input>
-								</template>
-							</vxe-table-column>
-							<vxe-table-column title="操作" width="100">
-								<template #default="scope">
-									<el-button size="default" type="danger"
-										@click="removeEvent(scope.row, scope.$rowIndex, 'procured')">删除</el-button>
-								</template>
-							</vxe-table-column>
-						</vxe-table>
-					</el-row>
-				</div>
-				<div v-if="inputForm.reimbursementType === '0'">
-					<el-divider content-position="left"><i class="el-icon-document"></i>
-						专用发票信息
-						<el-button size="default" style="margin-left: 10px" type="primary"
-							:disabled="method === 'view' || status === 'audit' || status === 'taskFormDetail'"
-							@click="insertEvent('amount')" plain>
-							新增
-						</el-button>
-					</el-divider>
-					<el-row :gutter="15">
-						<el-col :span="24">
-							<vxe-table border show-overflow ref="amountTable" class="vxe-table-element"
-								:data="inputForm.amountInfos" style="margin-left: 5em" :key="amountKey"
-								highlight-current-row
-								:edit-config="{ trigger: 'click', mode: 'row', showStatus: true, autoClear: true, icon: '_' }">
-								<vxe-table-column field="code" title="发票代码" :edit-render="{}" show-overflow="title">
-									<template #edit="scope">
-										<el-input oninput="value=value.replace(/\D|^/g,'')" maxlength="20"
-											v-model="scope.row.code"></el-input>
-									</template>
-								</vxe-table-column>
-								<vxe-table-column field="number" title="发票号" :edit-render="{}" show-overflow="title">
-									<template #edit="scope">
-										<el-input oninput="value=value.replace(/\D|^/g,'')" maxlength="8"
-											@change="isExict(scope.row)" v-model="scope.row.number"></el-input>
-									</template>
-								</vxe-table-column>
-								<vxe-table-column field="amount" title="金额" :edit-render="{}" show-overflow="title">
-									<template #edit="scope">
-										<el-input maxlength="15" v-model="scope.row.amount"
-											@input="scope.row.amount = twoDecimalPlaces(scope.row.amount)"
-											@change="countAmount(scope.row)"></el-input>
-									</template>
-								</vxe-table-column>
-								<vxe-table-column field="taxAmount" title="税额" :edit-render="{}" show-overflow="title">
-									<template #edit="scope">
-										<el-input maxlength="15" v-model="scope.row.taxAmount"
-											@input="scope.row.taxAmount = twoDecimalPlaces(scope.row.taxAmount)"
-											@change="countAmount(scope.row)"></el-input>
-									</template>
-								</vxe-table-column>
-								<vxe-table-column field="count" title="价税合计" :edit-render="{}" show-overflow="title">
-									<template #edit="scope">
-										<el-input disabled="true" v-model="scope.row.count"></el-input>
-									</template>
-								</vxe-table-column>
-								<vxe-table-column title="操作" width="100">
-									<template #default="scope">
-										<el-button size="default" type="danger"
-											@click="removeEvent(scope.row, scope.$rowIndex, 'amount')">删除</el-button>
-									</template>
-								</vxe-table-column>
-							</vxe-table>
-						</el-col>
+				<ReimbursementComponent ref="reimbursementComponent">
+				</ReimbursementComponent>
+
 
-					</el-row>
-				</div>
-				<!--			<div v-if="inputForm.reimbursementType === '1'">-->
-				<!--				<el-divider content-position="left">-->
-				<!--					电子发票信息-->
-				<!--					&lt;!&ndash;<el-button style="margin-left: 20px" type="primary" :disabled="method==='view' || status === 'audit' || status === 'taskFormDetail' " size="default" @click="insertEvent('invoiceReimbursement')" plain>-->
-				<!--						新增-->
-				<!--					</el-button>&ndash;&gt;-->
-				<!--				</el-divider>-->
-				<!--				<el-row  :gutter="15" >-->
-				<!--					<el-col :span="24">-->
-				<!--						<vxe-table-->
-				<!--							border-->
-				<!--							show-footer-->
-				<!--							show-overflow-->
-				<!--							ref="invoiceReimbursementTable"-->
-				<!--							class="vxe-table-element"-->
-				<!--							:data="inputForm.invoiceReimbursements"-->
-				<!--							style="margin-left: 5em"-->
-				<!--							:footer-method="footerMethod1111"-->
-				<!--							:key="invoiceReimbursementKey"-->
-				<!--							highlight-current-row-->
-				<!--							:edit-config="{trigger: 'click', mode: 'row', showStatus: true, autoClear: true, icon:'_'}"-->
-				<!--							:edit-rules="invoiceReimbursementRules"-->
-				<!--						>-->
-				<!--							<vxe-table-column  field="invoiceType" title="发票类型" show-overflow="title" :edit-render="{name: '$select', options: $dictUtils.getDictList('invoice_reimbursement_type')}">-->
-				<!--								<template v-slot:edit="scope">-->
-				<!--									<vxe-select :disabled="true" v-model="scope.row.invoiceType" placeholder="请选择发票类型" clearable style="width: 100%;" transfer>-->
-				<!--										<vxe-option-->
-				<!--											v-for="item in $dictUtils.getDictList('invoice_reimbursement_type')"-->
-				<!--											:key="item.value"-->
-				<!--											:label="item.label"-->
-				<!--											:value="item.value">-->
-				<!--										</vxe-option>-->
-				<!--									</vxe-select>-->
-				<!--								</template>-->
-				<!--							</vxe-table-column>-->
-				<!--							<vxe-table-column field="invoiceProjectName" title="发票项目名" :edit-render="{}" show-overflow="title">-->
-				<!--								<template #edit="scope">-->
-				<!--									<el-input maxlength="50" readonly="true" v-model="scope.row.invoiceProjectName" ></el-input>-->
-				<!--								</template>-->
-				<!--							</vxe-table-column>-->
-				<!--							<vxe-table-column field="number" title="发票号" :edit-render="{}" show-overflow="title">-->
-				<!--								<template #edit="scope">-->
-				<!--									<el-input oninput ="value=value.replace(/\D|^/g,'')" readonly="true" maxlength="30" @change="isExict(scope.row)" v-model="scope.row.number" ></el-input>-->
-				<!--								</template>-->
-				<!--							</vxe-table-column>-->
-				<!--							<vxe-table-column field="invoiceDate" title="开票日期" :edit-render="{}" show-overflow="title">-->
-				<!--								<template v-slot:edit="scope">-->
-				<!--									<vxe-input v-model="scope.row.invoiceDate" :disabled="true"  type="datetime" transfer placeholder="请选择日期"></vxe-input>-->
-				<!--								</template>-->
-				<!--							</vxe-table-column>-->
-				<!--							<vxe-table-column field="invoiceUnit" title="开票单位" :edit-render="{}" show-overflow="title">-->
-				<!--								<template #edit="scope">-->
-				<!--									<el-input maxlength="50" readonly="true" v-model="scope.row.invoiceUnit" ></el-input>-->
-				<!--								</template>-->
-				<!--							</vxe-table-column>-->
-				<!--							<vxe-table-column field="buyerName" title="购买方名称" :edit-render="{}" show-overflow="title">-->
-				<!--								<template #edit="scope">-->
-				<!--									<el-input maxlength="50" readonly="true" v-model="scope.row.buyerName" ></el-input>-->
-				<!--								</template>-->
-				<!--							</vxe-table-column>-->
-				<!--							<vxe-table-column field="amount" title="金额" :edit-render="{}" show-overflow="title">-->
-				<!--								<template #edit="scope">-->
-				<!--									<el-input maxlength="15" readonly="true" v-model="scope.row.amount" @input="scope.row.amount = twoDecimalPlaces(scope.row.amount)" @change="countAmount(scope.row)"></el-input>-->
-				<!--								</template>-->
-				<!--							</vxe-table-column>-->
-				<!--							<vxe-table-column field="taxAmount" title="税额" :edit-render="{}" show-overflow="title">-->
-				<!--								<template #edit="scope">-->
-				<!--									<el-input maxlength="15" readonly="true" v-model="scope.row.taxAmount" @input="scope.row.taxAmount = twoDecimalPlaces(scope.row.taxAmount)" @change="countAmount(scope.row)"></el-input>-->
-				<!--								</template>-->
-				<!--							</vxe-table-column>-->
-				<!--							<vxe-table-column field="count" title="价税合计" :edit-render="{}" show-overflow="title">-->
-				<!--								<template #edit="scope">-->
-				<!--									<el-input disabled="true" v-model="scope.row.count" ></el-input>-->
-				<!--								</template>-->
-				<!--							</vxe-table-column>-->
-				<!--							<vxe-table-column field="remarks" title="备注" :edit-render="{}" show-overflow="title">-->
-				<!--								<template #edit="scope">-->
-				<!--									<el-input maxlength="250" v-model="scope.row.remarks" ></el-input>-->
-				<!--								</template>-->
-				<!--							</vxe-table-column>-->
-				<!--							&lt;!&ndash;<vxe-table-column title="操作" width="100">-->
-				<!--								<template #default="scope">-->
-				<!--									<el-button size="default" type="danger" @click="removeEvent(scope.row,scope.$rowIndex,'invoiceReimbursement')">删除</el-button>-->
-				<!--								</template>-->
-				<!--							</vxe-table-column>&ndash;&gt;-->
-				<!--						</vxe-table>-->
-				<!--					</el-col>-->
-				<!--				</el-row>-->
-				<!--			</div>-->
 				<!--      <ProgramPageForm ref="programPageForm" @getProgram="getProgram"></ProgramPageForm>-->
 				<CwProgramPageForm ref="cwProgramPageForm" @getProgram="getProgram"></CwProgramPageForm>
 				<CwProgramPageForm ref="cwProgramPageForm3" @getProgram="getProgram3"></CwProgramPageForm>
@@ -736,6 +119,7 @@
 			<!-- <InvoiceReimbursementUpLoadComponent ref="invoiceReimbursementUpLoadComponent"
 				v-show="'1' === this.inputForm.reimbursementType"></InvoiceReimbursementUpLoadComponent>
 			<UpLoadComponent ref="uploadComponent"></UpLoadComponent> -->
+			<UpLoadComponent ref="uploadComponent"></UpLoadComponent>
 			<WorkContractChooseCom ref="workContractChooseCom" @getContract="getContract"></WorkContractChooseCom>
 			<ReportNoChooseRadio ref="reportNoChooseRadio" @getWorkClientRadioChoose="getWorkClientChoose2">
 			</ReportNoChooseRadio>
@@ -759,7 +143,7 @@ import ReportNoChooseRadio from './ReportNoChooseRadio'
 import ReimbursementService from '@/api/ccpm/reimbursement/ReimbursementService'
 import ReimbursementTypeService from '@/api/ccpm/reimbursement/ReimbursementTypeService'
 import InvoiceReimbursementUpLoadComponent from '@/views/common/NewDigitalInvoiceUploadComponent'
-import UpLoadComponent from '@/views/common/NewUpLoadComponent'
+import UpLoadComponent from '@/views/common/UpLoadComponent'
 // import SelectUserTree from '@/views/utils/treeUserSelect'
 // import SelectTree from '@/components/treeSelect/treeSelect.vue'
 import XEUtils from 'xe-utils'
@@ -775,6 +159,7 @@ import processService from '@/api/flowable/processService'
 //import MaterialManagementDialog from '../../../'
 import userService from '@/api/sys/UserService'
 import InfoHistory from "./InfoHistory";
+import ReimbursementComponent from '@/views/common/reimbursement/ReimbursementComponent.vue'
 export default {
 	props: {
 		businessId: {
@@ -945,7 +330,9 @@ export default {
 		ReportNoChooseRadio,
 		// UserSelectV2,
 		WorkContractChooseCom,
-		InfoHistory
+		InfoHistory,
+		ReimbursementComponent
+
 		// PurchaseChooseForm,
 		// MaterialManagementDialog
 	},
@@ -990,6 +377,9 @@ export default {
 		},
 		getUpload() {
 		},
+		initReimbursementComponent() {
+			this.$refs.reimbursementComponent.initComponent("reimbursement", "ccpm", "江苏兴光项目管理有限公司", this.inputForm, this.isConfirm, this.status)
+		},
 		init(method, id) {
 			this.checkIsAdmin()
 			this.method = method
@@ -1031,7 +421,7 @@ export default {
 				this.loading = true
 				this.$refs.inputForm.resetFields()
 				// this.$refs.invoiceReimbursementUpLoadComponent.clearUpload()
-				// this.$refs.uploadComponent.clearUpload()
+				this.$refs.uploadComponent.clearUpload()
 				this.reimbursementService.findById(this.inputForm.id).then((data) => {
 					if (this.status === 'audit' || this.status === 'taskFormDetail') {
 						method = 'view'
@@ -1069,15 +459,16 @@ 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.$refs.uploadComponent.newUpload(method, this.inputForm.files, 'reimbursement')
 					if (this.commonJS.isNotEmpty(this.inputForm.purchaseId)) {
 						// this.startPur(this.inputForm.purchaseId)
 					}
+					this.initReimbursementComponent()
 					this.loading = false
 				})
 				if (method !== 'edit' && method !== 'view') {
 					// this.$refs.invoiceReimbursementUpLoadComponent.newUpload(method, [], 'reimbursement')
-					// this.$refs.uploadComponent.newUpload(method, [], 'reimbursement')
+					this.$refs.uploadComponent.newUpload(method, [], 'reimbursement')
 					this.loading = false
 				}
 				userService.isZj().then((data) => {
@@ -1102,6 +493,7 @@ export default {
 		},
 		// 表单提交
 		doSubmit() {
+			this.getReimbursementData()
 			this.$refs['inputForm'].validate((valid) => {
 				if (valid) {
 					this.loading = true
@@ -1109,10 +501,10 @@ export default {
 					// 	this.loading = false
 					// 	return
 					// }
-					// if (this.$refs.uploadComponent.checkProgress()) {
-					// 	this.loading = false
-					// 	return
-					// }
+					if (this.$refs.uploadComponent.checkProgress()) {
+						this.loading = false
+						return
+					}
 					if (this.commonJS.isEmpty(this.inputForm.invoiceReimbursementFiles)) {
 						this.inputForm.invoiceReimbursementFiles = []
 					}
@@ -1121,7 +513,7 @@ export default {
 					}
 					this.dataFiltering()
 					// this.inputForm.invoiceReimbursementFiles = this.$refs.invoiceReimbursementUpLoadComponent.getDataList()
-					// this.inputForm.files = this.$refs.uploadComponent.getDataList()
+					this.inputForm.files = this.$refs.uploadComponent.getDataList()
 					this.reimbursementService.save(this.inputForm).then((data) => {
 						this.close()
 						this.$message.success(data)
@@ -1230,18 +622,13 @@ export default {
 			this.inputForm.amountInfos = []
 			this.inputForm.invoiceReimbursements = []
 			// this.$refs.invoiceReimbursementUpLoadComponent.clearUpload()
-			// this.$refs.uploadComponent.clearUpload()
+			this.$refs.uploadComponent.clearUpload()
 			this.visible = false
 		},
 		// 删除
 		removeEvent(row, rowIndex, type) {
 			this.handleTableInfo(this.inputForm.sourceType)
-			if (row.reimbursementType == 1) {
-				this.inputForm.invoiceReimbursementFiles = this.inputForm.invoiceReimbursementFiles.filter(item => item.remarks != row.uniqueId)
-			}
-			if (row.reimbursementType == 0) {
-				this.inputForm.files = this.inputForm.files.filter(item => item.remarks != row.uniqueId)
-			}
+			this.inputForm.invoiceReimbursementFiles = this.inputForm.invoiceReimbursementFiles.filter(item => item.remarks != row.uniqueId)
 			if (type === 'detail') {
 				this.$refs.detailTable.remove(row)
 				this.inputForm.detailInfos.splice(rowIndex, 1)
@@ -1387,10 +774,10 @@ export default {
 			// 	this.loading = false
 			// 	return
 			// }
-			// if (this.$refs.uploadComponent.checkProgress()) {
-			// 	this.loading = false
-			// 	return
-			// }
+			if (this.$refs.uploadComponent.checkProgress()) {
+				this.loading = false
+				return
+			}
 			if (this.commonJS.isEmpty(this.inputForm.invoiceReimbursementFiles)) {
 				this.inputForm.invoiceReimbursementFiles = []
 			}
@@ -1398,7 +785,7 @@ export default {
 				this.inputForm.files = []
 			}
 			// this.inputForm.invoiceReimbursementFiles = this.$refs.invoiceReimbursementUpLoadComponent.getDataList()
-			// this.inputForm.files = this.$refs.uploadComponent.getDataList()
+			this.inputForm.files = this.$refs.uploadComponent.getDataList()
 			this.inputForm.type = '1'
 			this.reimbursementService.save(this.inputForm).then(() => {
 				callback()
@@ -1516,10 +903,10 @@ export default {
 					// 	this.loading = false
 					// 	return
 					// }
-					// if (this.$refs.uploadComponent.checkProgress()) {
-					// 	this.loading = false
-					// 	return
-					// }
+					if (this.$refs.uploadComponent.checkProgress()) {
+						this.loading = false
+						return
+					}
 					if (this.commonJS.isEmpty(this.inputForm.invoiceReimbursementFiles)) {
 						this.inputForm.invoiceReimbursementFiles = []
 					}
@@ -1532,7 +919,7 @@ export default {
 					//   return
 					// }
 					// this.inputForm.invoiceReimbursementFiles = this.$refs.invoiceReimbursementUpLoadComponent.getDataList()
-					// this.inputForm.files = this.$refs.uploadComponent.getDataList()
+					this.inputForm.files = this.$refs.uploadComponent.getDataList()
 					this.dataFiltering()
 					if (this.inputForm.invoiceReimbursementFiles <= 0 && "1" === this.inputForm.reimbursementType) {
 						this.$message.error("请上传电子发票发票xml文件!")
@@ -1597,10 +984,10 @@ export default {
 					// 	this.loading = false
 					// 	return
 					// }
-					// if (this.$refs.uploadComponent.checkProgress()) {
-					// 	this.loading = false
-					// 	return
-					// }
+					if (this.$refs.uploadComponent.checkProgress()) {
+						this.loading = false
+						return
+					}
 					if (this.commonJS.isEmpty(this.inputForm.invoiceReimbursementFiles)) {
 						this.inputForm.invoiceReimbursementFiles = []
 					}
@@ -1609,7 +996,7 @@ export default {
 					}
 					this.dataFiltering()
 					// this.inputForm.invoiceReimbursementFiles = this.$refs.invoiceReimbursementUpLoadComponent.getDataList()
-					// this.inputForm.files = this.$refs.uploadComponent.getDataList()
+					this.inputForm.files = this.$refs.uploadComponent.getDataList()
 					this.commonApi.getTaskNameByProcInsId(this.inputForm.procInsId).then((data) => {
 						if (this.commonJS.isNotEmpty(data)) {
 							if (data === '所长报销审核人') {
@@ -2008,6 +1395,8 @@ export default {
 			this.detailKeyReport = Math.random()
 			this.detailKeyOthers = Math.random()
 			this.detailKeyProcured = Math.random()
+			this.$refs.reimbursementComponent.inputForm.invoiceReimbursementFiles = []
+			this.$refs.reimbursementComponent.inputForm.sourceType = value
 		},
 		submitCheck() {
 			if (this.commonJS.isEmpty(this.inputForm.sourceType)) {
@@ -2318,68 +1707,10 @@ export default {
 		historyList() {
 			this.$refs.infoHistory.init(this.inputForm.id)
 		},
-		handleExpand({ expanded, column, columnIndex, row, rowIndex }) {
-			if (this.commonJS.isEmpty(row.reimbursementType)) {
-				this.$message.error("请选择报销类型")
-				return false
-			}
-
-			if (expanded == true) {
-				setTimeout(() => {
-					if (row.reimbursementType == 1) {
-						this.$refs[row.uniqueId + "Upload"].clearUpload()
-						let files = JSON.parse(JSON.stringify(this.inputForm.invoiceReimbursementFiles))
-						this.$refs[row.uniqueId + "Upload"].newUpload(this.method, files, 'reimbursement', 300, '数电发票信息', null, null, null, '江苏兴光项目管理有限公司', row.uniqueId)
-						this.$refs[row.uniqueId + "Upload"].isConfirm = this.isConfirm
-					}
-					if (row.reimbursementType == 0) {
-						this.$refs[row.uniqueId + "UploadFiles"].clearUpload()
-						let files = JSON.parse(JSON.stringify(this.inputForm.files))
-						this.$refs[row.uniqueId + "UploadFiles"].newUpload(this.method, files, 'reimbursement', null, null, null, null, null, row.uniqueId)
-					}
-				}, 100)
-			}
-			else {
-				if (row.reimbursementType == 1) {
-					let files = this.$refs[row.uniqueId + "Upload"].getDataList()
-					this.inputForm.invoiceReimbursementFiles = this.inputForm.invoiceReimbursementFiles.filter(item => {
-						return item.remarks != row.uniqueId
-					})
-					this.inputForm.invoiceReimbursementFiles.push(...files)
-					this.$refs[row.uniqueId + "Upload"].clearUpload()
-				}
-				if (row.reimbursementType == 0) {
-					let files = this.$refs[row.uniqueId + "UploadFiles"].getDataList()
-					this.inputForm.files = this.inputForm.files.filter(item => {
-						return item.remarks != row.uniqueId
-					})
-					this.inputForm.files.push(...files)
-					this.$refs[row.uniqueId + "UploadFiles"].clearUpload()
-				}
-			}
-			return true
-		},
 		handleChangeType(value) {
 			console.log(value);
 
 		},
-		// 触发上传按钮
-		uploadFile(row, index) {
-			if (this.commonJS.isEmpty(row.reimbursementType)) {
-				this.$message.error("请选择报销类型")
-				return
-			}
-			this.handleTableInfo(this.inputForm.sourceType)
-			this.tableRef.setRowExpand(this.tableData[index], true)
-			setTimeout(() => {
-				if (row.reimbursementType == 1) {
-					this.$refs[row.uniqueId + "Upload"].$el.querySelector('.upload-btn').click();
-				} else {
-					this.$refs[row.uniqueId + "UploadFiles"].$el.querySelector('.upload-btn').click();
-				}
-			}, 100)
-
-		},
 		handleTableInfo(value) {
 			if (value === '1') {
 				this.tableRef = this.$refs.detailTable
@@ -2464,6 +1795,18 @@ export default {
 			console.log(arr);
 
 			return arr
+		},
+		getReimbursementData() {
+			this.$nextTick(() => {
+				let inputForm = this.$refs.reimbursementComponent.handleGetData()
+				this.inputForm.detailInfos = inputForm.detailInfos
+				this.inputForm.detailInfoContracts = inputForm.detailInfoContracts
+				this.inputForm.detailInfoReports = inputForm.detailInfoReports
+				this.inputForm.detailInfoProject = inputForm.detailInfoProject
+				this.inputForm.detailInfoOthers = inputForm.detailInfoOthers
+				this.inputForm.detailInfoProcured = inputForm.detailInfoProcured
+				this.inputForm.invoiceReimbursementFiles = inputForm.invoiceReimbursementFiles
+			});
 		}
 	}
 }

+ 59 - 595
src/views/ccpm/reimbursement/info/NewReimbursementForm.vue

@@ -107,570 +107,10 @@
           </vxe-table>
         </el-row>
       </div>
-      <div v-if="inputForm.sourceType === '1'">
-        <el-divider content-position="left"><i class="el-icon-document"></i>
-          项目报销详情
-          <el-button size="default" style="margin-left: 20px" type="primary"
-            :disabled="method === 'view' || status === 'audit' || status === 'taskFormDetail'"
-            @click="insertEvent('detail')" plain>
-            新增
-          </el-button>
-        </el-divider>
-        <el-row :gutter="15">
-          <vxe-table border show-footer show-overflow :footer-method="footerMethod" ref="detailTable" :key="detailKey"
-            class="vxe-table-element" :data="inputForm.detailInfos" style="margin-left: 5em" highlight-current-row
-            :edit-config="{ trigger: 'click', mode: 'row', showStatus: true, autoClear: true, icon: '_' }"
-            :edit-rules="validRules">
-            <vxe-table-column field="userName" title="报销人" :edit-render="{}" show-overflow="title"
-              :rules="[{ required: true, message: '请选择报销人', trigger: 'blur' }]">
-              <template #edit="scope">
-                <el-input v-model="scope.row.userName" @focus="userPullListForm(scope.$rowIndex)"></el-input>
-                <!--              <UserSelectV2 :limit='1' :userName="scope.row.userName" @getValue='(value, label) => {scope.row.userName = label}'></UserSelectV2>-->
-              </template>
-            </vxe-table-column>
-            <vxe-table-column field="deptName" title="报销部门" :edit-render="{}" show-overflow="title">
-              <template #edit="scope">
-                <el-input :disabled='true' v-model="scope.row.deptName"></el-input>
-              </template>
-            </vxe-table-column>
-            <vxe-table-column field="typeName" title="报销类别" :edit-render="{}" show-overflow="title"
-              :rules="[{ required: true, message: '请选择报销类别', trigger: 'blur' }]">
-              <template #edit="scope">
-                <el-input v-model="scope.row.typeName"
-                  @focus="typePullForm(scope.$rowIndex, scope.row.deptId)"></el-input>
-              </template>
-            </vxe-table-column>
-            <vxe-table-column field="projectName" title="报销项目" :edit-render="{}" show-overflow="title"
-              :rules="[{ required: true, message: '请选择报销项目', trigger: 'blur' }]">
-              <template #edit="scope">
-                <el-input v-model="scope.row.projectName"
-                  @focus="openProgramPageForm(scope.$rowIndex, scope.row)"></el-input>
-              </template>
-            </vxe-table-column>
-            <!--            <vxe-table-column field="reportNumber" title="报告号" :edit-render="{}">-->
-            <!--              <template v-slot:edit="scope">-->
-            <!--                <el-input :readonly="true" v-model="scope.row.reportNumber" @focus="openReportNoPageForm(scope.$rowIndex, scope.row)"></el-input>-->
-            <!--              </template>-->
-            <!--            </vxe-table-column>-->
-            <vxe-table-column field="number" title="费用(元)" :edit-render="{}" show-overflow="title"
-              :rules="[{ required: true, message: '请输入费用', trigger: 'blur' }]">
-              <template #edit="scope">
-                <el-input maxlength="15" v-model="scope.row.number"
-                  @input="scope.row.number = twoDecimalPlaces(scope.row.number)"></el-input>
-              </template>
-            </vxe-table-column>
-            <vxe-table-column field="receiptNumber" title="收据张数" :edit-render="{}" show-overflow="title">
-              <template #edit="scope">
-                <el-input v-model="scope.row.receiptNumber" oninput="value=value.replace(/\D|^0/g,'')"
-                  maxlength="10"></el-input>
-              </template>
-            </vxe-table-column>
-            <vxe-table-column field="days" title="出差天数" :edit-render="{}" show-overflow="title">
-              <template #edit="scope">
-                <el-input v-model="scope.row.days" oninput="value=value.replace(/\D|^0/g,'')" maxlength="10"></el-input>
-              </template>
-            </vxe-table-column>
-            <vxe-table-column field="content" title="内容" :edit-render="{}" show-overflow="title">
-              <template #edit="scope">
-                <el-input v-model="scope.row.content"></el-input>
-              </template>
-            </vxe-table-column>
-            <vxe-table-column title="操作" width="100">
-              <template #default="scope">
-                <el-button size="default" type="danger"
-                  @click="removeEvent(scope.row, scope.$rowIndex, 'detail')">删除</el-button>
-              </template>
-            </vxe-table-column>
-          </vxe-table>
-        </el-row>
-      </div>
-      <div v-if="inputForm.sourceType === '2'">
-        <el-divider content-position="left"><i class="el-icon-document"></i>
-          合同报销详情
-          <el-button size="default" style="margin-left: 20px" type="primary"
-            :disabled="method === 'view' || status === 'audit' || status === 'taskFormDetail'"
-            @click="insertEvent('contract_detail')" plain>
-            新增
-          </el-button>
-        </el-divider>
-        <el-row :gutter="15">
-          <vxe-table border show-footer show-overflow :footer-method="footerMethod" ref="detailTableContract"
-            :key="detailKeyContract" class="vxe-table-element" :data="inputForm.detailInfoContracts"
-            style="margin-left: 5em" highlight-current-row
-            :edit-config="{ trigger: 'click', mode: 'row', showStatus: true, autoClear: true, icon: '_' }"
-            :edit-rules="validRules">
-            <vxe-table-column field="userName" title="报销人" :edit-render="{}" show-overflow="title"
-              :rules="[{ required: true, message: '请选择报销人', trigger: 'blur' }]">
-              <template #edit="scope">
-                <el-input v-model="scope.row.userName" @focus="userPullListForm2(scope.$rowIndex)"></el-input>
-                <!--              <UserSelectV2 :limit='1' :userName="scope.row.userName" @getValue='(value, label) => {scope.row.userName = label}'></UserSelectV2>-->
-              </template>
-            </vxe-table-column>
-            <vxe-table-column field="deptName" title="报销部门" :edit-render="{}" show-overflow="title">
-              <template #edit="scope">
-                <el-input :disabled='true' v-model="scope.row.deptName"></el-input>
-              </template>
-            </vxe-table-column>
-            <vxe-table-column field="typeName" title="报销类别" :edit-render="{}" show-overflow="title"
-              :rules="[{ required: true, message: '请选择报销类别', trigger: 'blur' }]">
-              <template #edit="scope">
-                <el-input v-model="scope.row.typeName"
-                  @focus="typePullForm2(scope.$rowIndex, scope.row.deptId)"></el-input>
-              </template>
-            </vxe-table-column>
-            <vxe-table-column field="contractName" title="报销合同" :edit-render="{}" show-overflow="title"
-              :rules="[{ required: true, message: '请选择报销合同', trigger: 'blur' }]">
-              <template #edit="scope">
-                <el-input v-model="scope.row.contractName"
-                  @focus="openContractForm(scope.$rowIndex, scope.row)"></el-input>
-              </template>
-            </vxe-table-column>
-            <!--            <vxe-table-column field="reportNumber" title="报告号" :edit-render="{}">-->
-            <!--              <template v-slot:edit="scope">-->
-            <!--                <el-input :readonly="true" v-model="scope.row.reportNumber" @focus="openReportNoPageForm(scope.$rowIndex, scope.row)"></el-input>-->
-            <!--              </template>-->
-            <!--            </vxe-table-column>-->
-            <vxe-table-column field="number" title="费用(元)" :edit-render="{}" show-overflow="title"
-              :rules="[{ required: true, message: '请输入费用', trigger: 'blur' }]">
-              <template #edit="scope">
-                <el-input maxlength="15" v-model="scope.row.number"
-                  @input="scope.row.number = twoDecimalPlaces(scope.row.number)"></el-input>
-              </template>
-            </vxe-table-column>
-            <vxe-table-column field="receiptNumber" title="收据张数" :edit-render="{}" show-overflow="title">
-              <template #edit="scope">
-                <el-input v-model="scope.row.receiptNumber" oninput="value=value.replace(/\D|^0/g,'')"
-                  maxlength="10"></el-input>
-              </template>
-            </vxe-table-column>
-            <vxe-table-column field="days" title="出差天数" :edit-render="{}" show-overflow="title">
-              <template #edit="scope">
-                <el-input v-model="scope.row.days" oninput="value=value.replace(/\D|^0/g,'')" maxlength="10"></el-input>
-              </template>
-            </vxe-table-column>
-            <vxe-table-column field="content" title="内容" :edit-render="{}" show-overflow="title">
-              <template #edit="scope">
-                <el-input v-model="scope.row.content"></el-input>
-              </template>
-            </vxe-table-column>
-            <vxe-table-column title="操作" width="100">
-              <template #default="scope">
-                <el-button size="default" type="danger"
-                  @click="removeEvent(scope.row, scope.$rowIndex, 'contract_detail')">删除</el-button>
-              </template>
-            </vxe-table-column>
-          </vxe-table>
-        </el-row>
-      </div>
-      <div v-if="inputForm.sourceType === '3'">
-        <el-divider content-position="left"><i class="el-icon-document"></i>
-          报告报销详情
-          <el-button size="default" style="margin-left: 20px" type="primary"
-            :disabled="method === 'view' || status === 'audit' || status === 'taskFormDetail'"
-            @click="insertEvent('report_detail')" plain>
-            新增
-          </el-button>
-        </el-divider>
-        <el-row :gutter="15">
-          <vxe-table border show-footer show-overflow :footer-method="footerMethod" ref="detailTableReport"
-            :key="detailKeyReport" class="vxe-table-element" :data="inputForm.detailInfoReports"
-            style="margin-left: 5em" highlight-current-row
-            :edit-config="{ trigger: 'click', mode: 'row', showStatus: true, autoClear: true, icon: '_' }"
-            :edit-rules="validRules">
-            <vxe-table-column field="userName" title="报销人" :edit-render="{}" show-overflow="title"
-              :rules="[{ required: true, message: '请选择报销人', trigger: 'blur' }]">
-              <template #edit="scope">
-                <el-input v-model="scope.row.userName" @focus="userPullListForm3(scope.$rowIndex)"></el-input>
-                <!--              <UserSelectV2 :limit='1' :userName="scope.row.userName" @getValue='(value, label) => {scope.row.userName = label}'></UserSelectV2>-->
-              </template>
-            </vxe-table-column>
-            <vxe-table-column field="deptName" title="报销部门" :edit-render="{}" show-overflow="title">
-              <template #edit="scope">
-                <el-input :disabled='true' v-model="scope.row.deptName"></el-input>
-              </template>
-            </vxe-table-column>
-            <vxe-table-column field="typeName" title="报销类别" :edit-render="{}" show-overflow="title"
-              :rules="[{ required: true, message: '请选择报销类别', trigger: 'blur' }]">
-              <template #edit="scope">
-                <el-input v-model="scope.row.typeName"
-                  @focus="typePullForm3(scope.$rowIndex, scope.row.deptId)"></el-input>
-              </template>
-            </vxe-table-column>
-            <vxe-table-column field="projectName" title="报销项目" :edit-render="{}" show-overflow="title"
-              :rules="[{ required: true, message: '请选择报销项目', trigger: 'blur' }]">
-              <template #edit="scope">
-                <el-input v-model="scope.row.projectName"
-                  @focus="openProgramPageForm3(scope.$rowIndex, scope.row)"></el-input>
-              </template>
-            </vxe-table-column>
-            <vxe-table-column field="reportNumber" title="报告号" :edit-render="{}" show-overflow="title">
-              <template #edit="scope">
-                <el-input :readonly="true" v-model="scope.row.reportNumber"
-                  @focus="openReportNoPageForm(scope.$rowIndex, scope.row)"></el-input>
-              </template>
-            </vxe-table-column>
-            <vxe-table-column field="number" title="费用(元)" :edit-render="{}" show-overflow="title"
-              :rules="[{ required: true, message: '请输入费用', trigger: 'blur' }]">
-              <template #edit="scope">
-                <el-input maxlength="15" v-model="scope.row.number"
-                  @input="scope.row.number = twoDecimalPlaces(scope.row.number)"></el-input>
-              </template>
-            </vxe-table-column>
-            <vxe-table-column field="receiptNumber" title="收据张数" :edit-render="{}" show-overflow="title">
-              <template #edit="scope">
-                <el-input v-model="scope.row.receiptNumber" oninput="value=value.replace(/\D|^0/g,'')"
-                  maxlength="10"></el-input>
-              </template>
-            </vxe-table-column>
-            <vxe-table-column field="days" title="出差天数" :edit-render="{}" show-overflow="title">
-              <template #edit="scope">
-                <el-input v-model="scope.row.days" oninput="value=value.replace(/\D|^0/g,'')" maxlength="10"></el-input>
-              </template>
-            </vxe-table-column>
-            <vxe-table-column field="content" title="内容" :edit-render="{}" show-overflow="title">
-              <template #edit="scope">
-                <el-input v-model="scope.row.content"></el-input>
-              </template>
-            </vxe-table-column>
-            <vxe-table-column title="操作" width="100">
-              <template #default="scope">
-                <el-button size="default" type="danger"
-                  @click="removeEvent(scope.row, scope.$rowIndex, 'report_detail')">删除</el-button>
-              </template>
-            </vxe-table-column>
-          </vxe-table>
-        </el-row>
-      </div>
-      <div v-if="inputForm.sourceType === '4'">
-        <el-divider content-position="left"><i class="el-icon-document"></i>
-          其他报销详情
-          <el-button size="default" style="margin-left: 20px" type="primary"
-            :disabled="method === 'view' || status === 'audit' || status === 'taskFormDetail'"
-            @click="insertEvent('others')" plain>
-            新增
-          </el-button>
-        </el-divider>
-        <el-row :gutter="15">
-          <el-col :span="24">
-            <vxe-table border show-footer show-overflow :footer-method="footerMethod" ref="detailTableOthers"
-              class="vxe-table-element" :data="inputForm.detailInfoOthers" style="margin-left: 5em"
-              :key="detailKeyOthers" highlight-current-row
-              :edit-config="{ trigger: 'click', mode: 'row', showStatus: true, autoClear: true, icon: '_' }"
-              :edit-rules="validRules" :row-config="{ keyField: 'uniqueId' }"
-              :expand-config="{ expandAll: false, accordion: false, toggleMethod: handleExpand, expandRowKeys: handleDefaultExpand() }">
-              <vxe-column type="expand" width="80">
-                <template #content="{ row, rowIndex }">
-                  <InvoiceReimbursementUpLoadComponent v-if="row.reimbursementType == 1"
-                    @changeConfirmList="changeConfirmList" @handleCount="handleCount"
-                    @handleUploadSuccess="handleUploadSuccess" :ref="row.uniqueId + 'Upload'"
-                    v-show="'1' === this.inputForm.reimbursementType">
-                  </InvoiceReimbursementUpLoadComponent>
-                  <UpLoadComponent @handleUploadSuccess="handleUploadSuccess" v-if="row.reimbursementType == 0"
-                    :ref="row.uniqueId + 'UploadFiles'">
-                  </UpLoadComponent>
-                </template>
-              </vxe-column>
-              <vxe-table-column field="userName" title="报销人" :edit-render="{}" show-overflow="title"
-                :rules="[{ required: true, message: '请选择报销人', trigger: 'blur' }]">
-                <template #edit="scope">
-                  <el-input v-model="scope.row.userName" @focus="userPullListForm4(scope.$rowIndex)"></el-input>
-                  <!--              <UserSelectV2 :limit='1' :userName="scope.row.userName" @getValue='(value, label) => {scope.row.userName = label}'></UserSelectV2>-->
-                </template>
-              </vxe-table-column>
-              <vxe-table-column field="deptName" title="报销部门" :edit-render="{}" show-overflow="title">
-                <template #edit="scope">
-                  <el-input :disabled='true' v-model="scope.row.deptName"></el-input>
-                </template>
-              </vxe-table-column>
-              <vxe-table-column field="reimbursementType" title="报销类型" :edit-render="{}" show-overflow="title">
-                <template #default="{ row }">
-                  <span>{{ $dictUtils.getDictLabel('reimbursement_type', row.reimbursementType,
-                    '') }}</span>
-                </template>
-                <template #edit="{ row }">
-                  <vxe-select :disabled="method === 'view' || status === 'audit' || status === 'taskFormDetail'"
-                    @change="handleChangeType" v-model="row.reimbursementType" placeholder="请选择报销类型" transfer>
-                    <vxe-option v-for="item in $dictUtils.getDictList('reimbursement_type')" :key="item.value"
-                      :value="item.value" :label="item.label"></vxe-option>
-                  </vxe-select>
-                </template>
-              </vxe-table-column>
-              <vxe-table-column field="typeName" title="报销类别" :edit-render="{}" show-overflow="title"
-                :rules="[{ required: true, message: '请选择报销类别', trigger: 'blur' }]">
-                <template #edit="scope">
-                  <el-input v-model="scope.row.typeName"
-                    @focus="typePullForm4(scope.$rowIndex, scope.row.deptId)"></el-input>
-                </template>
-              </vxe-table-column>
-              <vxe-table-column field="projectName" title="报销详情" :edit-render="{}" show-overflow="title"
-                :rules="[{ required: true, message: '请填写报销详情', trigger: 'blur' }]">
-                <template #edit="scope">
-                  <el-input v-model="scope.row.projectName"
-                    @focus="openProgramPageForm4(scope.$rowIndex, scope.row)"></el-input>
-                </template>
-              </vxe-table-column>
-              <!--            <vxe-table-column field="reportNumber" title="报告号" :edit-render="{}">-->
-              <!--              <template v-slot:edit="scope">-->
-              <!--                <el-input :readonly="true" v-model="scope.row.reportNumber" @focus="openReportNoPageForm(scope.$rowIndex, scope.row)"></el-input>-->
-              <!--              </template>-->
-              <!--            </vxe-table-column>-->
-              <vxe-table-column field="number" title="费用(元)" :edit-render="{}" show-overflow="title"
-                :rules="[{ required: true, message: '请输入费用', trigger: 'blur' }]">
-                <template #edit="scope">
-                  <el-input maxlength="15" v-model="scope.row.number"
-                    @input="scope.row.number = twoDecimalPlaces(scope.row.number)"></el-input>
-                </template>
-              </vxe-table-column>
-              <vxe-table-column field="receiptNumber" title="收据张数" :edit-render="{}" show-overflow="title">
-                <template #edit="scope">
-                  <el-input v-model="scope.row.receiptNumber" oninput="value=value.replace(/\D|^0/g,'')"
-                    maxlength="10"></el-input>
-                </template>
-              </vxe-table-column>
-              <vxe-table-column field="days" title="出差天数" :edit-render="{}" show-overflow="title">
-                <template #edit="scope">
-                  <el-input v-model="scope.row.days" oninput="value=value.replace(/\D|^0/g,'')"
-                    maxlength="10"></el-input>
-                </template>
-              </vxe-table-column>
-              <vxe-table-column field="content" title="内容" :edit-render="{}" show-overflow="title">
-                <template #edit="scope">
-                  <el-input v-model="scope.row.content"></el-input>
-                </template>
-              </vxe-table-column>
-              <vxe-table-column title="操作" width="180">
-                <template #default="scope">
-                  <el-button size="default" @click="uploadFile(scope.row, scope.$rowIndex,)"
-                    type="primary">上传</el-button>
-                  <el-button size="default" type="danger"
-                    @click="removeEvent(scope.row, scope.$rowIndex, 'others')">删除</el-button>
-                </template>
-              </vxe-table-column>
-            </vxe-table>
-          </el-col>
-        </el-row>
-      </div>
-      <div v-if="inputForm.sourceType === '5'">
-        <el-divider content-position="left"><i class="el-icon-document"></i>
-          采购报销详情
-          <el-button size="default" style="margin-left: 20px" type="primary"
-            :disabled="method === 'view' || this.formReadOnly" @click="insertEvent('procured')" plain>
-            新增
-          </el-button>
-        </el-divider>
-        <el-row :gutter="15">
-          <vxe-table border show-footer show-overflow :footer-method="footerMethod" ref="detailTableProcured"
-            class="vxe-table-element" :data="inputForm.detailInfoProcured" style="margin-left: 5em"
-            :key="detailKeyProcured" highlight-current-row
-            :edit-config="{ trigger: 'click', mode: 'row', showStatus: true, autoClear: true, icon: '_' }"
-            :edit-rules="validRules">
-            <vxe-table-column field="userName" title="报销人" :edit-render="{}" show-overflow="title"
-              :rules="[{ required: true, message: '请选择报销人', trigger: 'blur' }]">
-              <template #edit="scope">
-                <el-input v-model="scope.row.userName" @focus="userPullListForm5(scope.$rowIndex)"></el-input>
-                <!--              <UserSelectV2 :limit='1' :userName="scope.row.userName" @getValue='(value, label) => {scope.row.userName = label}'></UserSelectV2>-->
-              </template>
-            </vxe-table-column>
-            <vxe-table-column field="deptName" title="报销部门" :edit-render="{}" show-overflow="title">
-              <template #edit="scope">
-                <el-input :disabled='true' v-model="scope.row.deptName"></el-input>
-              </template>
-            </vxe-table-column>
-            <vxe-table-column field="typeName" title="报销类别" :edit-render="{}" show-overflow="title"
-              :rules="[{ required: true, message: '请选择报销类别', trigger: 'blur' }]">
-              <template #edit="scope">
-                <el-input v-model="scope.row.typeName"
-                  @focus="typePullForm5(scope.$rowIndex, scope.row.deptId)"></el-input>
-              </template>
-            </vxe-table-column>
-            <vxe-table-column field="projectName" title="报销项目" :edit-render="{}" show-overflow="title"
-              :rules="[{ required: true, message: '请选择报销项目', trigger: 'blur' }]">
-              <template #edit="scope">
-                <el-input v-model="scope.row.projectName"
-                  @focus="openProgramPageForm5(scope.$rowIndex, scope.row)"></el-input>
-              </template>
-            </vxe-table-column>
-            <!--            <vxe-table-column field="reportNumber" title="报告号" :edit-render="{}">-->
-            <!--              <template v-slot:edit="scope">-->
-            <!--                <el-input :readonly="true" v-model="scope.row.reportNumber" @focus="openReportNoPageForm(scope.$rowIndex, scope.row)"></el-input>-->
-            <!--              </template>-->
-            <!--            </vxe-table-column>-->
-            <vxe-table-column field="number" title="费用(元)" :edit-render="{}" show-overflow="title"
-              :rules="[{ required: true, message: '请输入费用', trigger: 'blur' }]">
-              <template #edit="scope">
-                <el-input maxlength="15" v-model="scope.row.number"
-                  @input="scope.row.number = twoDecimalPlaces(scope.row.number)"></el-input>
-              </template>
-            </vxe-table-column>
-            <vxe-table-column field="receiptNumber" title="收据张数" :edit-render="{}" show-overflow="title">
-              <template #edit="scope">
-                <el-input v-model="scope.row.receiptNumber" oninput="value=value.replace(/\D|^0/g,'')"
-                  maxlength="10"></el-input>
-              </template>
-            </vxe-table-column>
-            <vxe-table-column field="days" title="出差天数" :edit-render="{}" show-overflow="title">
-              <template #edit="scope">
-                <el-input v-model="scope.row.days" oninput="value=value.replace(/\D|^0/g,'')" maxlength="10"></el-input>
-              </template>
-            </vxe-table-column>
-            <vxe-table-column field="content" title="内容" :edit-render="{}" show-overflow="title">
-              <template #edit="scope">
-                <el-input v-model="scope.row.content"></el-input>
-              </template>
-            </vxe-table-column>
-            <vxe-table-column title="操作" width="100">
-              <template #default="scope">
-                <el-button size="default" type="danger"
-                  @click="removeEvent(scope.row, scope.$rowIndex, 'procured')">删除</el-button>
-              </template>
-            </vxe-table-column>
-          </vxe-table>
-        </el-row>
-      </div>
-      <!--		<div v-if="inputForm.reimbursementType === '0'">-->
-      <!--		  <el-divider content-position="left"><i class="el-icon-document"></i>-->
-      <!--			专用发票信息-->
-      <!--			<el-button size="default" style="margin-left: 10px" type="primary" :disabled="method==='view' || status === 'audit' || status === 'taskFormDetail' "  @click="insertEvent('amount')" plain>-->
-      <!--			  新增-->
-      <!--			</el-button>-->
-      <!--		  </el-divider>-->
-      <!--		  <el-row  :gutter="15" >-->
-      <!--			  <el-col :span="24">-->
-      <!--				  <vxe-table-->
-      <!--					  border-->
-      <!--					  show-overflow-->
-      <!--					  ref="amountTable"-->
-      <!--					  class="vxe-table-element"-->
-      <!--					  :data="inputForm.amountInfos"-->
-      <!--					  style="margin-left: 5em"-->
-      <!--					  :key="amountKey"-->
-      <!--					  highlight-current-row-->
-      <!--					  :edit-config="{trigger: 'click', mode: 'row', showStatus: true, autoClear: true, icon:'_'}"-->
-      <!--				  >-->
-      <!--					  <vxe-table-column field="code" title="发票代码" :edit-render="{}" show-overflow="title">-->
-      <!--						  <template #edit="scope">-->
-      <!--							  <el-input oninput ="value=value.replace(/\D|^/g,'')" maxlength="20" v-model="scope.row.code" ></el-input>-->
-      <!--						  </template>-->
-      <!--					  </vxe-table-column>-->
-      <!--					  <vxe-table-column field="number" title="发票号" :edit-render="{}" show-overflow="title">-->
-      <!--						  <template #edit="scope">-->
-      <!--							  <el-input oninput ="value=value.replace(/\D|^/g,'')" maxlength="8" @change="isExict(scope.row)" v-model="scope.row.number" ></el-input>-->
-      <!--						  </template>-->
-      <!--					  </vxe-table-column>-->
-      <!--					  <vxe-table-column field="amount" title="金额" :edit-render="{}" show-overflow="title">-->
-      <!--						  <template #edit="scope">-->
-      <!--							  <el-input maxlength="15" v-model="scope.row.amount" @input="scope.row.amount = twoDecimalPlaces(scope.row.amount)" @change="countAmount(scope.row)"></el-input>-->
-      <!--						  </template>-->
-      <!--					  </vxe-table-column>-->
-      <!--					  <vxe-table-column field="taxAmount" title="税额" :edit-render="{}" show-overflow="title">-->
-      <!--						  <template #edit="scope">-->
-      <!--							  <el-input maxlength="15" v-model="scope.row.taxAmount" @input="scope.row.taxAmount = twoDecimalPlaces(scope.row.taxAmount)" @change="countAmount(scope.row)"></el-input>-->
-      <!--						  </template>-->
-      <!--					  </vxe-table-column>-->
-      <!--					  <vxe-table-column field="count" title="价税合计" :edit-render="{}" show-overflow="title">-->
-      <!--						  <template #edit="scope">-->
-      <!--							  <el-input disabled="true" v-model="scope.row.count" ></el-input>-->
-      <!--						  </template>-->
-      <!--					  </vxe-table-column>-->
-      <!--					  <vxe-table-column title="操作" width="100">-->
-      <!--						  <template #default="scope">-->
-      <!--							  <el-button size="default" type="danger" @click="removeEvent(scope.row,scope.$rowIndex,'amount')">删除</el-button>-->
-      <!--						  </template>-->
-      <!--					  </vxe-table-column>-->
-      <!--				  </vxe-table>-->
-      <!--			  </el-col>-->
 
-      <!--		  </el-row>-->
-      <!--		</div>-->
-      <!--		<div v-if="inputForm.reimbursementType === '1'">-->
-      <!--			<el-divider content-position="left">-->
-      <!--				电子发票信息-->
-      <!--				&lt;!&ndash;<el-button style="margin-left: 20px" type="primary" :disabled="method==='view' || status === 'audit' || status === 'taskFormDetail' " size="default" @click="insertEvent('invoiceReimbursement')" plain>-->
-      <!--					新增-->
-      <!--				</el-button>&ndash;&gt;-->
-      <!--			</el-divider>-->
-      <!--			<el-row  :gutter="15" >-->
-      <!--				<el-col :span="24">-->
-      <!--					<vxe-table-->
-      <!--						border-->
-      <!--						show-footer-->
-      <!--						show-overflow-->
-      <!--						ref="invoiceReimbursementTable"-->
-      <!--						class="vxe-table-element"-->
-      <!--						:data="inputForm.invoiceReimbursements"-->
-      <!--						style="margin-left: 5em"-->
-      <!--						:footer-method="footerMethod1111"-->
-      <!--						:key="invoiceReimbursementKey"-->
-      <!--						highlight-current-row-->
-      <!--						:edit-config="{trigger: 'click', mode: 'row', showStatus: true, autoClear: true, icon:'_'}"-->
-      <!--						:edit-rules="invoiceReimbursementRules"-->
-      <!--					>-->
-      <!--						<vxe-table-column  field="invoiceType" title="发票类型" show-overflow="title" :edit-render="{name: '$select', options: $dictUtils.getDictList('invoice_reimbursement_type')}">-->
-      <!--							<template v-slot:edit="scope">-->
-      <!--								<vxe-select :disabled="true" v-model="scope.row.invoiceType" placeholder="请选择发票类型" clearable style="width: 100%;" transfer>-->
-      <!--									<vxe-option-->
-      <!--										v-for="item in $dictUtils.getDictList('invoice_reimbursement_type')"-->
-      <!--										:key="item.value"-->
-      <!--										:label="item.label"-->
-      <!--										:value="item.value">-->
-      <!--									</vxe-option>-->
-      <!--								</vxe-select>-->
-      <!--							</template>-->
-      <!--						</vxe-table-column>-->
-      <!--						<vxe-table-column field="invoiceProjectName" title="发票项目名" :edit-render="{}" show-overflow="title">-->
-      <!--							<template #edit="scope">-->
-      <!--								<el-input maxlength="50" readonly="true" v-model="scope.row.invoiceProjectName" ></el-input>-->
-      <!--							</template>-->
-      <!--						</vxe-table-column>-->
-      <!--						<vxe-table-column field="number" title="发票号" :edit-render="{}" show-overflow="title">-->
-      <!--							<template #edit="scope">-->
-      <!--								<el-input oninput ="value=value.replace(/\D|^/g,'')" readonly="true" maxlength="30" @change="isExict(scope.row)" v-model="scope.row.number" ></el-input>-->
-      <!--							</template>-->
-      <!--						</vxe-table-column>-->
-      <!--						<vxe-table-column field="invoiceDate" title="开票日期" :edit-render="{}" show-overflow="title">-->
-      <!--							<template v-slot:edit="scope">-->
-      <!--								<vxe-input v-model="scope.row.invoiceDate" :disabled="true"  type="datetime" transfer placeholder="请选择日期"></vxe-input>-->
-      <!--							</template>-->
-      <!--						</vxe-table-column>-->
-      <!--						<vxe-table-column field="invoiceUnit" title="开票单位" :edit-render="{}" show-overflow="title">-->
-      <!--							<template #edit="scope">-->
-      <!--								<el-input maxlength="50" readonly="true" v-model="scope.row.invoiceUnit" ></el-input>-->
-      <!--							</template>-->
-      <!--						</vxe-table-column>-->
-      <!--						<vxe-table-column field="buyerName" title="购买方名称" :edit-render="{}" show-overflow="title">-->
-      <!--							<template #edit="scope">-->
-      <!--								<el-input maxlength="50" readonly="true" v-model="scope.row.buyerName" ></el-input>-->
-      <!--							</template>-->
-      <!--						</vxe-table-column>-->
-      <!--						<vxe-table-column field="amount" title="金额" :edit-render="{}" show-overflow="title">-->
-      <!--							<template #edit="scope">-->
-      <!--								<el-input maxlength="15" readonly="true" v-model="scope.row.amount" @input="scope.row.amount = twoDecimalPlaces(scope.row.amount)" @change="countAmount(scope.row)"></el-input>-->
-      <!--							</template>-->
-      <!--						</vxe-table-column>-->
-      <!--						<vxe-table-column field="taxAmount" title="税额" :edit-render="{}" show-overflow="title">-->
-      <!--							<template #edit="scope">-->
-      <!--								<el-input maxlength="15" readonly="true" v-model="scope.row.taxAmount" @input="scope.row.taxAmount = twoDecimalPlaces(scope.row.taxAmount)" @change="countAmount(scope.row)"></el-input>-->
-      <!--							</template>-->
-      <!--						</vxe-table-column>-->
-      <!--						<vxe-table-column field="count" title="价税合计" :edit-render="{}" show-overflow="title">-->
-      <!--							<template #edit="scope">-->
-      <!--								<el-input disabled="true" v-model="scope.row.count" ></el-input>-->
-      <!--							</template>-->
-      <!--						</vxe-table-column>-->
-      <!--						<vxe-table-column field="remarks" title="备注" :edit-render="{}" show-overflow="title">-->
-      <!--							<template #edit="scope">-->
-      <!--								<el-input maxlength="250" v-model="scope.row.remarks" ></el-input>-->
-      <!--							</template>-->
-      <!--						</vxe-table-column>-->
-      <!--						&lt;!&ndash;<vxe-table-column title="操作" width="100">-->
-      <!--							<template #default="scope">-->
-      <!--								<el-button size="default" type="danger" @click="removeEvent(scope.row,scope.$rowIndex,'invoiceReimbursement')">删除</el-button>-->
-      <!--							</template>-->
-      <!--						</vxe-table-column>&ndash;&gt;-->
-      <!--					</vxe-table>-->
-      <!--				</el-col>-->
-      <!--			</el-row>-->
-      <!--		</div>-->
+      <ReimbursementComponent ref="reimbursementComponent">
+      </ReimbursementComponent>
+
       <!--      <ProgramPageForm ref="programPageForm" @getProgram="getProgram"></ProgramPageForm>-->
       <CwProgramPageForm ref="cwProgramPageForm" @getProgram="getProgram"></CwProgramPageForm>
       <CwProgramPageForm ref="cwProgramPageForm3" @getProgram="getProgram3"></CwProgramPageForm>
@@ -699,7 +139,7 @@
     <!-- <InvoiceReimbursementUpLoadComponent @changeConfirmList="changeConfirmList"
       ref="invoiceReimbursementUpLoadComponent" v-show="'1' === this.inputForm.reimbursementType">
     </InvoiceReimbursementUpLoadComponent> -->
-    <!-- <UpLoadComponent ref="uploadComponent"></UpLoadComponent> -->
+    <UpLoadComponent ref="uploadComponent"></UpLoadComponent>
     <WorkContractChooseCom ref="workContractChooseCom" @getContract="getContract"></WorkContractChooseCom>
     <ReportNoChooseRadio ref="reportNoChooseRadio" @getWorkClientRadioChoose="getWorkClientChoose2">
     </ReportNoChooseRadio>
@@ -714,7 +154,7 @@ import ReportNoChooseRadio from './ReportNoChooseRadio'
 import ReimbursementService from '@/api/ccpm/reimbursement/ReimbursementService'
 import ReimbursementTypeService from '@/api/ccpm/reimbursement/ReimbursementTypeService'
 import InvoiceReimbursementUpLoadComponent from '@/views/common/NewDigitalInvoiceUploadComponent'
-import UpLoadComponent from '@/views/common/NewUpLoadComponent'
+import UpLoadComponent from '@/views/common/UpLoadComponent'
 // import SelectUserTree from '@/views/utils/treeUserSelect'
 // import SelectTree from '@/components/treeSelect/treeSelect.vue'
 import XEUtils from 'xe-utils'
@@ -729,6 +169,7 @@ import processService from '@/api/flowable/processService'
 // import MaterialManagementService from '@/api/materialManagement/MaterialManagementService'
 //import MaterialManagementDialog from '../../../'
 import userService from '@/api/sys/UserService'
+import ReimbursementComponent from '@/views/common/reimbursement/ReimbursementComponent.vue'
 export default {
   props: {
     businessId: {
@@ -891,6 +332,7 @@ export default {
     // this.materialManagementService = new MaterialManagementService()
   },
   components: {
+    ReimbursementComponent,
     InvoiceReimbursementUpLoadComponent,
     UpLoadComponent,
     // SelectUserTree,
@@ -947,6 +389,9 @@ export default {
     },
     getUpload() {
     },
+    initReimbursementComponent() {
+      this.$refs.reimbursementComponent.initComponent("reimbursement", "ccpm", "江苏兴光项目管理有限公司", this.inputForm, this.isConfirm, this.status)
+    },
     init(method, id) {
       this.method = method
       this.inputForm = {
@@ -987,7 +432,7 @@ export default {
         this.loading = true
         this.$refs.inputForm.resetFields()
         // this.$refs.invoiceReimbursementUpLoadComponent.clearUpload()
-        // this.$refs.uploadComponent.clearUpload()
+        this.$refs.uploadComponent.clearUpload()
         this.reimbursementService.findById(this.inputForm.id).then((data) => {
           if (this.status === 'audit' || this.status === 'taskFormDetail') {
             method = 'view'
@@ -1022,7 +467,7 @@ export default {
             this.payment = '未付款'
           }
           // this.$refs.invoiceReimbursementUpLoadComponent.newUpload(method, this.inputForm.invoiceReimbursementFiles, 'reimbursement', 300, '数电发票信息', null, null, null, '江苏兴光项目管理有限公司')
-          // this.$refs.uploadComponent.newUpload(method, this.inputForm.files, 'reimbursement')
+          this.$refs.uploadComponent.newUpload(method, this.inputForm.files, 'reimbursement')
           if (this.commonJS.isNotEmpty(this.inputForm.purchaseId)) {
             // this.startPur(this.inputForm.purchaseId)
           }
@@ -1039,6 +484,7 @@ export default {
             if (this.status == "startAndHold" || this.method == "add") {
               this.isConfirm = 3
             }
+            this.initReimbursementComponent()
           })
           // 获取文件确认状态
           this.reimbursementService.getListByUser(this.inputForm.id).then(data => {
@@ -1055,11 +501,11 @@ export default {
           })
           this.loading = false
         })
-        // if (method !== 'edit' && method !== 'view') {
-        //   this.$refs.invoiceReimbursementUpLoadComponent.newUpload(method, [], 'reimbursement')
-        //   this.$refs.uploadComponent.newUpload(method, [], 'reimbursement')
-        //   this.loading = false
-        // }
+        if (method !== 'edit' && method !== 'view') {
+          //   this.$refs.invoiceReimbursementUpLoadComponent.newUpload(method, [], 'reimbursement')
+          this.$refs.uploadComponent.newUpload(method, [], 'reimbursement')
+          this.loading = false
+        }
         userService.isZj().then((data) => {
           this.isZj = data
         })
@@ -1090,10 +536,10 @@ export default {
           //   this.loading = false
           //   return
           // }
-          // if (this.$refs.uploadComponent.checkProgress()) {
-          //   this.loading = false
-          //   return
-          // }
+          if (this.$refs.uploadComponent.checkProgress()) {
+            this.loading = false
+            return
+          }
           if (this.commonJS.isEmpty(this.inputForm.invoiceReimbursementFiles)) {
             this.inputForm.invoiceReimbursementFiles = []
           }
@@ -1103,7 +549,7 @@ export default {
           this.dataFiltering()
           this.inputForm.id = this.businessId
           // this.inputForm.invoiceReimbursementFiles = this.$refs.invoiceReimbursementUpLoadComponent.getDataList()
-          // this.inputForm.files = this.$refs.uploadComponent.getDataList()
+          this.inputForm.files = this.$refs.uploadComponent.getDataList()
           this.reimbursementService.save(this.inputForm).then((data) => {
             this.close()
             this.$message.success(data)
@@ -1212,7 +658,7 @@ export default {
       this.inputForm.amountInfos = []
       this.inputForm.invoiceReimbursements = []
       // this.$refs.invoiceReimbursementUpLoadComponent.clearUpload()
-      // this.$refs.uploadComponent.clearUpload()
+      this.$refs.uploadComponent.clearUpload()
       this.visible = false
     },
     // 删除
@@ -1369,10 +815,10 @@ export default {
       //   this.loading = false
       //   return
       // }
-      // if (this.$refs.uploadComponent.checkProgress()) {
-      //   this.loading = false
-      //   return
-      // }
+      if (this.$refs.uploadComponent.checkProgress()) {
+        this.loading = false
+        return
+      }
       if (this.commonJS.isEmpty(this.inputForm.invoiceReimbursementFiles)) {
         this.inputForm.invoiceReimbursementFiles = []
       }
@@ -1380,7 +826,7 @@ export default {
         this.inputForm.files = []
       }
       // this.inputForm.invoiceReimbursementFiles = this.$refs.invoiceReimbursementUpLoadComponent.getDataList()
-      // this.inputForm.files = this.$refs.uploadComponent.getDataList()
+      this.inputForm.files = this.$refs.uploadComponent.getDataList()
       this.inputForm.type = '1'
       this.reimbursementService.save(this.inputForm).then(() => {
         callback()
@@ -1404,6 +850,7 @@ export default {
     },
     // 送审
     async startForm(callback) {
+      this.getReimbursementData()
       let title = `发起流程【项目-报销审批】`
       let describe = `[项目-报销审批]`
       if (this.inputForm.reimbursementType) {
@@ -1521,10 +968,10 @@ export default {
           //   this.loading = false
           //   return
           // }
-          // if (this.$refs.uploadComponent.checkProgress()) {
-          //   this.loading = false
-          //   return
-          // }
+          if (this.$refs.uploadComponent.checkProgress()) {
+            this.loading = false
+            return
+          }
           if (this.commonJS.isEmpty(this.inputForm.invoiceReimbursementFiles)) {
             this.inputForm.invoiceReimbursementFiles = []
           }
@@ -1537,7 +984,7 @@ export default {
           //   return
           // }
           // this.inputForm.invoiceReimbursementFiles = this.$refs.invoiceReimbursementUpLoadComponent.getDataList()
-          // this.inputForm.files = this.$refs.uploadComponent.getDataList()
+          this.inputForm.files = this.$refs.uploadComponent.getDataList()
           this.dataFiltering()
           // if(this.inputForm.invoiceReimbursementFiles<=0 && "1" === this.inputForm.reimbursementType){
           //   this.$message.error("请上传电子发票发票xml文件!")
@@ -1632,10 +1079,10 @@ export default {
             }
           }
 
-          // if (this.$refs.uploadComponent.checkProgress()) {
-          //   this.loading = false
-          //   return
-          // }
+          if (this.$refs.uploadComponent.checkProgress()) {
+            this.loading = false
+            return
+          }
           if (this.commonJS.isEmpty(this.inputForm.invoiceReimbursementFiles)) {
             this.inputForm.invoiceReimbursementFiles = []
           }
@@ -1644,7 +1091,7 @@ export default {
           }
           this.dataFiltering()
           // this.inputForm.invoiceReimbursementFiles = this.$refs.invoiceReimbursementUpLoadComponent.getDataList()
-          // this.inputForm.files = this.$refs.uploadComponent.getDataList()
+          this.inputForm.files = this.$refs.uploadComponent.getDataList()
           this.inputForm.type = '2'
           this.commonApi.getTaskNameByProcInsId(this.inputForm.procInsId).then((data) => {
             if (this.commonJS.isNotEmpty(data)) {
@@ -2084,7 +1531,7 @@ export default {
       this.inputForm.detailInfoContracts[rowIndex].contractName = row.contractName
       this.$forceUpdate()
     },
-    changeSourceType() {
+    changeSourceType(value) {
       this.inputForm.detailInfos = []
       this.inputForm.detailInfoContracts = []
       this.inputForm.detailInfoReports = []
@@ -2098,6 +1545,9 @@ export default {
       this.detailKeyReport = Math.random()
       this.detailKeyOthers = Math.random()
       this.detailKeyProcured = Math.random()
+      this.$refs.reimbursementComponent.inputForm.invoiceReimbursementFiles = []
+      this.$refs.reimbursementComponent.inputForm.sourceType = value
+
     },
     submitCheck() {
       if (this.commonJS.isEmpty(this.inputForm.sourceType)) {
@@ -2480,12 +1930,13 @@ export default {
 
     },
     // 触发上传按钮
-    uploadFile(row, index) {
+    async uploadFile(row, index) {
       if (this.commonJS.isEmpty(row.reimbursementType)) {
         this.$message.error("请选择报销类型")
         return
       }
       this.handleTableInfo(this.inputForm.sourceType)
+      await this.tableRef.clearEdit()
       this.tableRef.setRowExpand(this.tableData[index], true)
       setTimeout(() => {
         if (row.reimbursementType == 1) {
@@ -2536,6 +1987,7 @@ export default {
         })
         this.inputForm.files.push(...files)
       }
+      this.tableRef.updateFooter()
     },
     handleCheckAmount() {
       let countFlag = false
@@ -2578,6 +2030,18 @@ export default {
       console.log(arr);
 
       return arr
+    },
+    getReimbursementData() {
+      this.$nextTick(() => {
+        let inputForm = this.$refs.reimbursementComponent.handleGetData()
+        this.inputForm.detailInfos = inputForm.detailInfos
+        this.inputForm.detailInfoContracts = inputForm.detailInfoContracts
+        this.inputForm.detailInfoReports = inputForm.detailInfoReports
+        this.inputForm.detailInfoProject = inputForm.detailInfoProject
+        this.inputForm.detailInfoOthers = inputForm.detailInfoOthers
+        this.inputForm.detailInfoProcured = inputForm.detailInfoProcured
+        this.inputForm.invoiceReimbursementFiles = inputForm.invoiceReimbursementFiles
+      });
     }
   }
 }

+ 6 - 5
src/views/common/NewDigitalInvoiceUploadComponent.vue

@@ -29,6 +29,7 @@
 			<el-progress style="margin-left: 5em" v-if="progressFlag" :percentage="loadProgress"></el-progress>
 			<el-table :row-class-name="tableRowClassName" ref="uploadTable" v-loading="loading" :key="tableKey"
 				:summary-method="getSummaries" show-summary :data="dataListNew">
+				<el-table-column label="序号" type="index" width="80" />
 				<!--        <el-table-column type="seq" width="40"></el-table-column>-->
 				<el-table-column label="文件名称" prop="name" align="center" width="290">
 					<template #default="scope">
@@ -43,13 +44,13 @@
 					</template>
 				</el-table-column>
 				<el-table-column label="创建人" prop="createBy.name" align="center"></el-table-column>
-				<el-table-column label="创建时间" prop="createTime" align="center" width="110"></el-table-column>
-				<el-table-column label="文件大小" prop="size" align="center">
+				<el-table-column label="创建时间" prop="createTime" align="center" width="180"></el-table-column>
+				<el-table-column label="文件大小" prop="size" align="center" width="110">
 					<template #default="scope">
 						{{ getSize(scope.row.size) }}
 					</template>
 				</el-table-column>
-				<el-table-column prop="invoiceType" label="发票类型" align="center" show-overflow="title">
+				<el-table-column prop="invoiceType" label="发票类型" align="center" show-overflow="title" width="110">
 					<template #default="scope">
 						{{
 							$dictUtils.getDictLabel(
@@ -60,13 +61,13 @@
 						}}
 					</template>
 				</el-table-column>
-				<el-table-column prop="invoiceProjectName" label="发票项目名" align="center" width="150" :edit-render="{}"
+				<el-table-column prop="invoiceProjectName" label="发票项目名" align="center" width="200" :edit-render="{}"
 					show-overflow="title">
 					<template #edit="scope">
 						<el-input maxlength="50" readonly="true" v-model="scope.row.invoiceProjectName"></el-input>
 					</template>
 				</el-table-column>
-				<el-table-column prop="number" label="发票号" align="center" width="150" :edit-render="{}"
+				<el-table-column prop="number" label="发票号" align="center" width="250" :edit-render="{}"
 					show-overflow="title">
 					<template #edit="scope">
 						<el-input oninput="value=value.replace(/\D|^/g,'')" readonly="true" maxlength="30"

Datei-Diff unterdrückt, da er zu groß ist
+ 2599 - 0
src/views/common/reimbursement/ReimbursementComponent.vue


+ 27 - 465
src/views/consultancy/reimbursement/info/NewInfoForm.vue

@@ -108,471 +108,13 @@
             </vxe-table>
           </el-row>
         </div>
-        <div v-if="inputForm.sourceType === '1'">
-          <el-divider content-position="left"><i class="el-icon-document"></i>
-            项目报销详情
-            <el-button style="margin-left: 20px" type="primary" :disabled="method === 'view' || this.formReadOnly"
-              size="mini" @click="insertEvent('detail')" plain>
-              新增
-            </el-button>
-          </el-divider>
-          <el-row :gutter="15">
-            <vxe-table border show-footer show-overflow :footer-method="footerMethod" ref="detailTable" :key="detailKey"
-              class="vxe-table-element" :data="inputForm.detailInfos" style="margin-left: 5em" highlight-current-row
-              :edit-config="{ trigger: 'click', mode: 'row', showStatus: true, autoClear: true, icon: '_' }"
-              :edit-rules="validRules">
-              <vxe-table-column field="userName" title="报销人" :edit-render="{}" show-overflow="title"
-                :rules="[{ required: true, message: '请选择报销人', trigger: 'blur' }]">
-                <template #edit="scope">
-                  <el-input v-model="scope.row.userName" @focus="userPullListForm(scope.$rowIndex)"></el-input>
-                  <!--              <UserSelectV2 :limit='1' :userName="scope.row.userName" @getValue='(value, label) => {scope.row.userName = label}'></UserSelectV2>-->
-                </template>
-              </vxe-table-column>
-              <vxe-table-column field="deptName" title="报销部门" :edit-render="{}" show-overflow="title">
-                <template #edit="scope">
-                  <el-input :disabled='true' v-model="scope.row.deptName"></el-input>
-                </template>
-              </vxe-table-column>
-              <vxe-table-column field="typeName" title="报销类别" :edit-render="{}" show-overflow="title"
-                :rules="[{ required: true, message: '请选择报销类别', trigger: 'blur' }]">
-                <template #edit="scope">
-                  <el-input v-model="scope.row.typeName" @focus="typePullForm(scope.$rowIndex)"></el-input>
-                </template>
-              </vxe-table-column>
-              <vxe-table-column field="projectName" title="报销项目" :edit-render="{}" show-overflow="title"
-                :rules="[{ required: true, message: '请选择报销项目', trigger: 'blur' }]">
-                <template #edit="scope">
-                  <el-input v-model="scope.row.projectName"
-                    @focus="openProgramPageForm(scope.$rowIndex, scope.row)"></el-input>
-                </template>
-              </vxe-table-column>
-              <!--                          <vxe-table-column field="reportNumber" title="报告号" :edit-render="{}">-->
-              <!--                            <template v-slot:edit="scope">-->
-              <!--                              <el-input :readonly="true" v-model="scope.row.reportNumber" @focus="openReportNoPageForm(scope.$rowIndex, scope.row)"></el-input>-->
-              <!--                            </template>-->
-              <!--                          </vxe-table-column>-->
-              <vxe-table-column field="number" title="费用(元)" :edit-render="{}" show-overflow="title"
-                :rules="[{ required: true, message: '请输入费用', trigger: 'blur' }]">
-                <template #edit="scope">
-                  <el-input maxlength="15" v-model="scope.row.number"
-                    @input="scope.row.number = twoDecimalPlaces(scope.row.number)"></el-input>
-                </template>
-              </vxe-table-column>
-              <vxe-table-column field="receiptNumber" title="收据张数" :edit-render="{}" show-overflow="title">
-                <template #edit="scope">
-                  <el-input v-model="scope.row.receiptNumber" oninput="value=value.replace(/\D|^0/g,'')"
-                    maxlength="10"></el-input>
-                </template>
-              </vxe-table-column>
-              <vxe-table-column field="days" title="出差天数" :edit-render="{}" show-overflow="title">
-                <template #edit="scope">
-                  <el-input v-model="scope.row.days" oninput="value=value.replace(/\D|^0/g,'')"
-                    maxlength="10"></el-input>
-                </template>
-              </vxe-table-column>
-              <vxe-table-column field="content" title="内容" :edit-render="{}" show-overflow="title">
-                <template #edit="scope">
-                  <el-input v-model="scope.row.content"></el-input>
-                </template>
-              </vxe-table-column>
-              <vxe-table-column title="操作" width="100">
-                <template #default="scope">
-                  <el-button size="mini" type="danger"
-                    @click="removeEvent(scope.row, scope.$rowIndex, 'detail')">删除</el-button>
-                </template>
-              </vxe-table-column>
-            </vxe-table>
-          </el-row>
-        </div>
-        <div v-if="inputForm.sourceType === '2'">
-          <el-divider content-position="left"><i class="el-icon-document"></i>
-            合同报销详情
-            <el-button style="margin-left: 20px" type="primary" :disabled="method === 'view' || this.formReadOnly"
-              size="mini" @click="insertEvent('contract_detail')" plain>
-              新增
-            </el-button>
-          </el-divider>
-          <el-row :gutter="15">
-            <vxe-table border show-footer show-overflow :footer-method="footerMethod" ref="detailTableContract"
-              :key="detailKeyContract" class="vxe-table-element" :data="inputForm.detailInfoContracts"
-              style="margin-left: 5em" @cell-click="" @edit-closed="" highlight-current-row
-              :edit-config="{ trigger: 'click', mode: 'row', showStatus: true, autoClear: true, icon: '_' }"
-              :edit-rules="validRules">
-              <vxe-table-column field="userName" title="报销人" :edit-render="{}" show-overflow="title"
-                :rules="[{ required: true, message: '请选择报销人', trigger: 'blur' }]">
-                <template #edit="scope">
-                  <el-input v-model="scope.row.userName" @focus="userPullListForm2(scope.$rowIndex)"></el-input>
-                  <!--              <UserSelectV2 :limit='1' :userName="scope.row.userName" @getValue='(value, label) => {scope.row.userName = label}'></UserSelectV2>-->
-                </template>
-              </vxe-table-column>
-              <vxe-table-column field="deptName" title="报销部门" :edit-render="{}" show-overflow="title">
-                <template #edit="scope">
-                  <el-input :disabled='true' v-model="scope.row.deptName"></el-input>
-                </template>
-              </vxe-table-column>
-              <vxe-table-column field="typeName" title="报销类别" :edit-render="{}" show-overflow="title"
-                :rules="[{ required: true, message: '请选择报销类别', trigger: 'blur' }]">
-                <template #edit="scope">
-                  <el-input v-model="scope.row.typeName" @focus="typePullForm2(scope.$rowIndex)"></el-input>
-                </template>
-              </vxe-table-column>
-              <vxe-table-column field="contractName" title="报销合同" :edit-render="{}" show-overflow="title"
-                :rules="[{ required: true, message: '请选择报销合同', trigger: 'blur' }]">
-                <template #edit="scope">
-                  <el-input v-model="scope.row.contractName"
-                    @focus="openContractForm(scope.$rowIndex, scope.row)"></el-input>
-                </template>
-              </vxe-table-column>
-              <!--            <vxe-table-column field="reportNumber" title="报告号" :edit-render="{}">-->
-              <!--              <template v-slot:edit="scope">-->
-              <!--                <el-input :readonly="true" v-model="scope.row.reportNumber" @focus="openReportNoPageForm(scope.$rowIndex, scope.row)"></el-input>-->
-              <!--              </template>-->
-              <!--            </vxe-table-column>-->
-              <vxe-table-column field="number" title="费用(元)" :edit-render="{}" show-overflow="title"
-                :rules="[{ required: true, message: '请输入费用', trigger: 'blur' }]">
-                <template #edit="scope">
-                  <el-input maxlength="15" v-model="scope.row.number"
-                    @input="scope.row.number = twoDecimalPlaces(scope.row.number)"></el-input>
-                </template>
-              </vxe-table-column>
-              <vxe-table-column field="receiptNumber" title="收据张数" :edit-render="{}" show-overflow="title">
-                <template #edit="scope">
-                  <el-input v-model="scope.row.receiptNumber" oninput="value=value.replace(/\D|^0/g,'')"
-                    maxlength="10"></el-input>
-                </template>
-              </vxe-table-column>
-              <vxe-table-column field="days" title="出差天数" :edit-render="{}" show-overflow="title">
-                <template #edit="scope">
-                  <el-input v-model="scope.row.days" oninput="value=value.replace(/\D|^0/g,'')"
-                    maxlength="10"></el-input>
-                </template>
-              </vxe-table-column>
-              <vxe-table-column field="content" title="内容" :edit-render="{}" show-overflow="title">
-                <template #edit="scope">
-                  <el-input v-model="scope.row.content"></el-input>
-                </template>
-              </vxe-table-column>
-              <vxe-table-column title="操作" width="100">
-                <template #default="scope">
-                  <el-button size="mini" type="danger"
-                    @click="removeEvent(scope.row, scope.$rowIndex, 'detail')">删除</el-button>
-                </template>
-              </vxe-table-column>
-            </vxe-table>
-          </el-row>
-        </div>
-        <div v-if="inputForm.sourceType === '3'">
-          <el-divider content-position="left"><i class="el-icon-document"></i>
-            报告报销详情
-            <el-button style="margin-left: 20px" type="primary" :disabled="method === 'view' || this.formReadOnly"
-              size="mini" @click="insertEvent('report_detail')" plain>
-              新增
-            </el-button>
-          </el-divider>
-          <el-row :gutter="15">
-            <vxe-table border show-footer show-overflow :footer-method="footerMethod" ref="detailTableReport"
-              :key="detailKeyReport" class="vxe-table-element" :data="inputForm.detailInfoReports"
-              style="margin-left: 5em" @cell-click="" @edit-closed="" highlight-current-row
-              :edit-config="{ trigger: 'click', mode: 'row', showStatus: true, autoClear: true, icon: '_' }"
-              :edit-rules="validRules">
-              <vxe-table-column field="userName" title="报销人" :edit-render="{}" show-overflow="title"
-                :rules="[{ required: true, message: '请选择报销人', trigger: 'blur' }]">
-                <template #edit="scope">
-                  <el-input v-model="scope.row.userName" @focus="userPullListForm3(scope.$rowIndex)"></el-input>
-                  <!--              <UserSelectV2 :limit='1' :userName="scope.row.userName" @getValue='(value, label) => {scope.row.userName = label}'></UserSelectV2>-->
-                </template>
-              </vxe-table-column>
-              <vxe-table-column field="deptName" title="报销部门" :edit-render="{}" show-overflow="title">
-                <template #edit="scope">
-                  <el-input :disabled='true' v-model="scope.row.deptName"></el-input>
-                </template>
-              </vxe-table-column>
-              <vxe-table-column field="typeName" title="报销类别" :edit-render="{}" show-overflow="title"
-                :rules="[{ required: true, message: '请选择报销类别', trigger: 'blur' }]">
-                <template #edit="scope">
-                  <el-input v-model="scope.row.typeName" @focus="typePullForm3(scope.$rowIndex)"></el-input>
-                </template>
-              </vxe-table-column>
-              <vxe-table-column field="projectName" title="报销项目" :edit-render="{}" show-overflow="title"
-                :rules="[{ required: true, message: '请选择报销项目', trigger: 'blur' }]">
-                <template #edit="scope">
-                  <el-input v-model="scope.row.projectName"
-                    @focus="openProgramPageForm3(scope.$rowIndex, scope.row)"></el-input>
-                </template>
-              </vxe-table-column>
-              <vxe-table-column field="reportNumber" title="报告号" :edit-render="{}" show-overflow="title">
-                <template #edit="scope">
-                  <el-input :readonly="true" v-model="scope.row.reportNumber"
-                    @focus="openReportNoPageForm(scope.$rowIndex, scope.row)"></el-input>
-                </template>
-              </vxe-table-column>
-              <vxe-table-column field="number" title="费用(元)" :edit-render="{}" show-overflow="title"
-                :rules="[{ required: true, message: '请输入费用', trigger: 'blur' }]">
-                <template #edit="scope">
-                  <el-input maxlength="15" v-model="scope.row.number"
-                    @input="scope.row.number = twoDecimalPlaces(scope.row.number)"></el-input>
-                </template>
-              </vxe-table-column>
-              <vxe-table-column field="receiptNumber" title="收据张数" :edit-render="{}" show-overflow="title">
-                <template #edit="scope">
-                  <el-input v-model="scope.row.receiptNumber" oninput="value=value.replace(/\D|^0/g,'')"
-                    maxlength="10"></el-input>
-                </template>
-              </vxe-table-column>
-              <vxe-table-column field="days" title="出差天数" :edit-render="{}" show-overflow="title">
-                <template #edit="scope">
-                  <el-input v-model="scope.row.days" oninput="value=value.replace(/\D|^0/g,'')"
-                    maxlength="10"></el-input>
-                </template>
-              </vxe-table-column>
-              <vxe-table-column field="content" title="内容" :edit-render="{}" show-overflow="title">
-                <template #edit="scope">
-                  <el-input v-model="scope.row.content"></el-input>
-                </template>
-              </vxe-table-column>
-              <vxe-table-column title="操作" width="100">
-                <template #default="scope">
-                  <el-button size="mini" type="danger"
-                    @click="removeEvent(scope.row, scope.$rowIndex, 'report_detail')">删除</el-button>
-                </template>
-              </vxe-table-column>
-            </vxe-table>
-          </el-row>
-        </div>
-        <div v-if="inputForm.sourceType === '4'">
-          <el-divider content-position="left"><i class="el-icon-document"></i>
-            其他报销详情
-            <el-button style="margin-left: 20px" type="primary" :disabled="method === 'view' || this.formReadOnly"
-              size="mini" @click="insertEvent('others')" plain>
-              新增
-            </el-button>
-          </el-divider>
-          <el-row :gutter="15">
-            <el-col :span="24">
-              <vxe-table border show-footer show-overflow :footer-method="footerMethod" ref="detailTableOthers"
-                class="vxe-table-element" :data="inputForm.detailInfoOthers" style="margin-left: 5em"
-                :key="detailKeyOthers" highlight-current-row
-                :edit-config="{ trigger: 'click', mode: 'row', showStatus: true, autoClear: true, icon: '_' }"
-                :edit-rules="validRules"
-                :expand-config="{ expandAll: true, accordion: false, toggleMethod: handleExpand }">
-                <vxe-column type="expand" width="80">
-                  <template #content="{ row, rowIndex }">
-                    <InvoiceReimbursementUpLoadComponent v-if="row.reimbursementType == 1"
-                      @changeConfirmList="changeConfirmList" @handleCount="handleCount"
-                      @handleUploadSuccess="handleUploadSuccess" :ref="row.uniqueId + 'Upload'"
-                      v-show="'1' === this.inputForm.reimbursementType">
-                    </InvoiceReimbursementUpLoadComponent>
-                    <UpLoadComponent @handleUploadSuccess="handleUploadSuccess" v-if="row.reimbursementType == 0"
-                      :ref="row.uniqueId + 'UploadFiles'">
-                    </UpLoadComponent>
-                  </template>
-                </vxe-column>
-                <vxe-table-column field="userName" title="报销人" :edit-render="{}" show-overflow="title"
-                  :rules="[{ required: true, message: '请选择报销人', trigger: 'blur' }]">
-                  <template #edit="scope">
-                    <el-input v-model="scope.row.userName" @focus="userPullListForm4(scope.$rowIndex)"></el-input>
-                    <!--              <UserSelectV2 :limit='1' :userName="scope.row.userName" @getValue='(value, label) => {scope.row.userName = label}'></UserSelectV2>-->
-                  </template>
-                </vxe-table-column>
-                <vxe-table-column field="deptName" title="报销部门" :edit-render="{}" show-overflow="title">
-                  <template #edit="scope">
-                    <el-input :disabled='true' v-model="scope.row.deptName"></el-input>
-                  </template>
-                </vxe-table-column>
-                <vxe-table-column field="reimbursementType" title="报销类型" :edit-render="{}" show-overflow="title">
-                  <template #default="{ row }">
-                    <span>{{ $dictUtils.getDictLabel('reimbursement_type', row.reimbursementType,
-                      '') }}</span>
-                  </template>
-                  <template #edit="{ row }">
-                    <vxe-select :disabled="method === 'view' || status === 'audit' || status === 'taskFormDetail'"
-                      @change="handleChangeType" v-model="row.reimbursementType" placeholder="请选择报销类型" transfer>
-                      <vxe-option v-for="item in $dictUtils.getDictList('reimbursement_type')" :key="item.value"
-                        :value="item.value" :label="item.label"></vxe-option>
-                    </vxe-select>
-                  </template>
-                </vxe-table-column>
-                <vxe-table-column field="typeName" title="报销类别" :edit-render="{}" show-overflow="title"
-                  :rules="[{ required: true, message: '请选择报销类别', trigger: 'blur' }]">
-                  <template #edit="scope">
-                    <el-input v-model="scope.row.typeName" @focus="typePullForm4(scope.$rowIndex)"></el-input>
-                  </template>
-                </vxe-table-column>
-                <vxe-table-column field="projectName" title="报销项目" :edit-render="{}" show-overflow="title"
-                  :rules="[{ required: true, message: '请选择报销项目', trigger: 'blur' }]">
-                  <template #edit="scope">
-                    <el-input v-model="scope.row.projectName"
-                      @focus="openProgramPageForm4(scope.$rowIndex, scope.row)"></el-input>
-                  </template>
-                </vxe-table-column>
-                <!--            <vxe-table-column field="reportNumber" title="报告号" :edit-render="{}">-->
-                <!--              <template v-slot:edit="scope">-->
-                <!--                <el-input :readonly="true" v-model="scope.row.reportNumber" @focus="openReportNoPageForm(scope.$rowIndex, scope.row)"></el-input>-->
-                <!--              </template>-->
-                <!--            </vxe-table-column>-->
-                <vxe-table-column field="number" title="费用(元)" :edit-render="{}" show-overflow="title"
-                  :rules="[{ required: true, message: '请输入费用', trigger: 'blur' }]">
-                  <template #edit="scope">
-                    <el-input maxlength="15" v-model="scope.row.number"
-                      @input="scope.row.number = twoDecimalPlaces(scope.row.number)"></el-input>
-                  </template>
-                </vxe-table-column>
-                <vxe-table-column field="receiptNumber" title="收据张数" :edit-render="{}" show-overflow="title">
-                  <template #edit="scope">
-                    <el-input v-model="scope.row.receiptNumber" oninput="value=value.replace(/\D|^0/g,'')"
-                      maxlength="10"></el-input>
-                  </template>
-                </vxe-table-column>
-                <vxe-table-column field="days" title="出差天数" :edit-render="{}" show-overflow="title">
-                  <template #edit="scope">
-                    <el-input v-model="scope.row.days" oninput="value=value.replace(/\D|^0/g,'')"
-                      maxlength="10"></el-input>
-                  </template>
-                </vxe-table-column>
-                <vxe-table-column field="content" title="内容" :edit-render="{}" show-overflow="title">
-                  <template #edit="scope">
-                    <el-input v-model="scope.row.content"></el-input>
-                  </template>
-                </vxe-table-column>
-                <vxe-table-column title="操作" width="100">
-                  <template #default="scope">
-                    <el-button size="mini" type="danger"
-                      @click="removeEvent(scope.row, scope.$rowIndex, 'others')">删除</el-button>
-                  </template>
-                </vxe-table-column>
-              </vxe-table>
-            </el-col>
 
-          </el-row>
-        </div>
-        <div v-if="inputForm.sourceType === '5'">
-          <el-divider content-position="left"><i class="el-icon-document"></i>
-            采购报销详情
-            <el-button style="margin-left: 20px" type="primary" :disabled="method === 'view' || this.formReadOnly"
-              size="mini" @click="insertEvent('procured')" plain>
-              新增
-            </el-button>
-          </el-divider>
-          <el-row :gutter="15">
-            <vxe-table border show-footer show-overflow :footer-method="footerMethod" ref="detailTableProcured"
-              class="vxe-table-element" :data="inputForm.detailInfoProcured" style="margin-left: 5em"
-              :key="detailKeyProcured" @cell-click="" @edit-closed="" highlight-current-row
-              :edit-config="{ trigger: 'click', mode: 'row', showStatus: true, autoClear: true, icon: '_' }"
-              :edit-rules="validRules">
-              <vxe-table-column field="userName" title="报销人" :edit-render="{}" show-overflow="title"
-                :rules="[{ required: true, message: '请选择报销人', trigger: 'blur' }]">
-                <template #edit="scope">
-                  <el-input v-model="scope.row.userName" @focus="userPullListForm5(scope.$rowIndex)"></el-input>
-                  <!--              <UserSelectV2 :limit='1' :userName="scope.row.userName" @getValue='(value, label) => {scope.row.userName = label}'></UserSelectV2>-->
-                </template>
-              </vxe-table-column>
-              <vxe-table-column field="deptName" title="报销部门" :edit-render="{}" show-overflow="title">
-                <template #edit="scope">
-                  <el-input :disabled='true' v-model="scope.row.deptName"></el-input>
-                </template>
-              </vxe-table-column>
-              <vxe-table-column field="typeName" title="报销类别" :edit-render="{}" show-overflow="title"
-                :rules="[{ required: true, message: '请选择报销类别', trigger: 'blur' }]">
-                <template #edit="scope">
-                  <el-input v-model="scope.row.typeName" @focus="typePullForm5(scope.$rowIndex)"></el-input>
-                </template>
-              </vxe-table-column>
-              <vxe-table-column field="projectName" title="报销项目" :edit-render="{}" show-overflow="title"
-                :rules="[{ required: true, message: '请选择报销项目', trigger: 'blur' }]">
-                <template #edit="scope">
-                  <el-input v-model="scope.row.projectName"
-                    @focus="openProgramPageForm5(scope.$rowIndex, scope.row)"></el-input>
-                </template>
-              </vxe-table-column>
-              <!--            <vxe-table-column field="reportNumber" title="报告号" :edit-render="{}">-->
-              <!--              <template v-slot:edit="scope">-->
-              <!--                <el-input :readonly="true" v-model="scope.row.reportNumber" @focus="openReportNoPageForm(scope.$rowIndex, scope.row)"></el-input>-->
-              <!--              </template>-->
-              <!--            </vxe-table-column>-->
-              <vxe-table-column field="number" title="费用(元)" :edit-render="{}" show-overflow="title"
-                :rules="[{ required: true, message: '请输入费用', trigger: 'blur' }]">
-                <template #edit="scope">
-                  <el-input maxlength="15" v-model="scope.row.number"
-                    @input="scope.row.number = twoDecimalPlaces(scope.row.number)"></el-input>
-                </template>
-              </vxe-table-column>
-              <vxe-table-column field="receiptNumber" title="收据张数" :edit-render="{}" show-overflow="title">
-                <template #edit="scope">
-                  <el-input v-model="scope.row.receiptNumber" oninput="value=value.replace(/\D|^0/g,'')"
-                    maxlength="10"></el-input>
-                </template>
-              </vxe-table-column>
-              <vxe-table-column field="days" title="出差天数" :edit-render="{}" show-overflow="title">
-                <template #edit="scope">
-                  <el-input v-model="scope.row.days" oninput="value=value.replace(/\D|^0/g,'')"
-                    maxlength="10"></el-input>
-                </template>
-              </vxe-table-column>
-              <vxe-table-column field="content" title="内容" :edit-render="{}" show-overflow="title">
-                <template #edit="scope">
-                  <el-input v-model="scope.row.content"></el-input>
-                </template>
-              </vxe-table-column>
-              <vxe-table-column title="操作" width="100">
-                <template #default="scope">
-                  <el-button size="mini" type="danger"
-                    @click="removeEvent(scope.row, scope.$rowIndex, 'procured')">删除</el-button>
-                </template>
-              </vxe-table-column>
-            </vxe-table>
-          </el-row>
-        </div>
 
-        <div v-if="inputForm.reimbursementType === '0'">
-          <el-divider content-position="left"><i class="el-icon-document"></i>
-            专用发票信息
-            <el-button style="margin-left: 20px" type="primary" :disabled="method === 'view'" size="mini"
-              @click="insertEvent('amount')" plain>
-              新增
-            </el-button>
-          </el-divider>
-          <el-row :gutter="15">
-            <el-col :span="24">
-              <vxe-table border show-overflow ref="amountTable" class="vxe-table-element" :data="inputForm.amountInfos"
-                style="margin-left: 5em" highlight-current-row
-                :edit-config="{ trigger: 'click', mode: 'cell', showStatus: true, autoClear: true }">
-                <vxe-table-column field="code" title="发票代码" :edit-render="{}" show-overflow="title">
-                  <template #edit="scope">
-                    <el-input v-model="scope.row.code"></el-input>
-                  </template>
-                </vxe-table-column>
-                <vxe-table-column field="number" title="发票号" :edit-render="{}" show-overflow="title">
-                  <template #edit="scope">
-                    <el-input v-model="scope.row.number"></el-input>
-                  </template>
-                </vxe-table-column>
-                <vxe-table-column field="amount" title="金额" :edit-render="{}" show-overflow="title">
-                  <template #edit="scope">
-                    <el-input v-model="scope.row.amount"></el-input>
-                  </template>
-                </vxe-table-column>
-                <vxe-table-column field="taxAmount" title="税额" :edit-render="{}" show-overflow="title">
-                  <template #edit="scope">
-                    <el-input v-model="scope.row.taxAmount"></el-input>
-                  </template>
-                </vxe-table-column>
-                <vxe-table-column field="count" title="价税合计" :edit-render="{}" show-overflow="title">
-                  <template #edit="scope">
-                    <el-input v-model="scope.row.count"></el-input>
-                  </template>
-                </vxe-table-column>
-                <vxe-table-column title="操作" width="100">
-                  <template #default="scope">
-                    <el-button size="mini" type="danger"
-                      @click="removeEvent(scope.row, scope.$rowIndex, 'amount')">删除</el-button>
-                  </template>
-                </vxe-table-column>
-              </vxe-table>
-            </el-col>
+        <ReimbursementComponent ref="reimbursementComponent">
+        </ReimbursementComponent>
+
 
 
-          </el-row>
-        </div>
         <!--		  <div v-if="inputForm.reimbursementType === '1'">-->
         <!--			  <el-divider content-position="left">电子发票信息-->
         <!--				  &lt;!&ndash;<el-button style="margin-left: 20px" type="primary" :disabled="method==='view' || status === 'audit' || status === 'taskFormDetail' " size="default" @click="insertEvent('invoiceReimbursement')" plain>-->
@@ -669,6 +211,7 @@
       <!-- <InvoiceReimbursementUpLoadComponent ref="invoiceReimbursementUpLoadComponent"
         v-show="'1' === this.inputForm.reimbursementType"></InvoiceReimbursementUpLoadComponent>
       <UpLoadComponent ref="uploadComponent"></UpLoadComponent> -->
+      <UpLoadComponent ref="uploadComponent"></UpLoadComponent>
       <template #footer>
         <span class="dialog-footer">
           <el-button size="small" @click="close()" icon="el-icon-circle-close">关闭</el-button>
@@ -685,11 +228,12 @@
 <script>
 // import ReimbursementService from '@/api/sys/ReimbursementService'
 import ReimbursementService from '@/api/consultancy/reimbursement/ReimbursementService'
-import UpLoadComponent from '@/views/common/NewUpLoadComponent'
+import UpLoadComponent from '@/views/common/UpLoadComponent'
 import InvoiceReimbursementUpLoadComponent from '@/views/common/NewDigitalInvoiceUploadComponent'
 import XEUtils from 'xe-utils'
 // import MaterialManagementService from '@/api/materialManagement/MaterialManagementService'
 // import MaterialManagementDialog from '../../../materialManagement/file/MaterialManagementDialog'
+import ReimbursementComponent from '@/views/common/reimbursement/ReimbursementComponent.vue'
 export default {
   data() {
     return {
@@ -736,6 +280,7 @@ export default {
     // this.materialManagementService = new MaterialManagementService()
   },
   components: {
+    ReimbursementComponent,
     InvoiceReimbursementUpLoadComponent,
     UpLoadComponent,
     // MaterialManagementDialog
@@ -743,6 +288,9 @@ export default {
   methods: {
     getUpload() {
     },
+    initReimbursementComponent() {
+      this.$refs.reimbursementComponent.initComponent("reimbursement", "consultancy", "南京兴光培训咨询有限公司", this.inputForm, this.isConfirm, this.status)
+    },
     init(method, id) {
       this.method = method
       this.inputForm = {
@@ -790,7 +338,7 @@ export default {
           this.reimbursementService.findById(this.inputForm.id).then((data) => {
             this.inputForm = this.recover(this.inputForm, data)
             this.inputForm = JSON.parse(JSON.stringify(this.inputForm))
-            // this.$refs.uploadComponent.clearUpload()
+            this.$refs.uploadComponent.clearUpload()
             // this.$refs.invoiceReimbursementUpLoadComponent.clearUpload()
             if (this.status === 'audit' || this.status === 'taskFormDetail') {
               method = 'view'
@@ -823,11 +371,12 @@ export default {
               this.payment = '未付款'
             }
             // this.$refs.invoiceReimbursementUpLoadComponent.newUpload(method, this.inputForm.invoiceReimbursementFiles, 'reimbursement', 300, '数电发票信息', null, null, null, '南京兴光培训咨询有限公司')
-            // this.$refs.uploadComponent.newUpload(method, this.inputForm.files, 'reimbursement')
+            this.$refs.uploadComponent.newUpload(method, this.inputForm.files, 'reimbursement')
             this.inputForm = JSON.parse(JSON.stringify(this.inputForm))
             if (this.commonJS.isNotEmpty(this.inputForm.purchaseId)) {
               this.startPur(this.inputForm.purchaseId)
             }
+            this.initReimbursementComponent()
             this.loading = false
           })
           // this.reimbursementService.findById(this.inputForm.id).then(({data}) => {
@@ -856,6 +405,7 @@ export default {
     },
     // 表单提交
     doSubmit() {
+      this.getReimbursementData()
       this.$refs['inputForm'].validate((valid) => {
         if (valid) {
           this.loading = true
@@ -889,7 +439,7 @@ export default {
       this.inputForm.preList = ''
       this.inputForm.purchaseId = ''
       this.inputForm.amountInfos = []
-      // this.$refs.uploadComponent.clearUpload()
+      this.$refs.uploadComponent.clearUpload()
       this.visible = false
     },
     // 删除
@@ -1021,6 +571,18 @@ export default {
       }
       return true
     },
+    getReimbursementData() {
+      this.$nextTick(() => {
+        let inputForm = this.$refs.reimbursementComponent.handleGetData()
+        this.inputForm.detailInfos = inputForm.detailInfos
+        this.inputForm.detailInfoContracts = inputForm.detailInfoContracts
+        this.inputForm.detailInfoReports = inputForm.detailInfoReports
+        this.inputForm.detailInfoProject = inputForm.detailInfoProject
+        this.inputForm.detailInfoOthers = inputForm.detailInfoOthers
+        this.inputForm.detailInfoProcured = inputForm.detailInfoProcured
+        this.inputForm.invoiceReimbursementFiles = inputForm.invoiceReimbursementFiles
+      });
+    }
   }
 }
 </script>

+ 51 - 625
src/views/consultancy/reimbursement/info/NewInfoUpdateForm.vue

@@ -78,607 +78,11 @@
             </el-form-item>
           </el-col>
         </el-row>
-        <div v-if="inputForm.sourceType === '5'">
-          <el-divider content-position="left"><i class="el-icon-document"></i>
-            采购详情
-          </el-divider>
-          <el-row :gutter="15">
-            <vxe-table border show-footer show-overflow :footer-method="footerMethod555" ref="preTable"
-              class="vxe-table-element" :data="inputForm.preList" style="margin-left: 5em" highlight-current-row>
-              <vxe-table-column field="purchaser" title="采购人" :edit-render="{}" show-overflow="title"
-                :rules="[{ required: true, message: '请选择采购人', trigger: 'blur' }]"></vxe-table-column>
-              <vxe-table-column field="procurementOffice" title="采购部门" :edit-render="{}"
-                show-overflow="title"></vxe-table-column>
-              <vxe-table-column field="procurementType" title="采购类型" :edit-render="{}" show-overflow="title"
-                :rules="[{ required: true, message: '请选择采购类型', trigger: 'blur' }]"></vxe-table-column>
-              <vxe-table-column field="tradeName" title="商品名称" :edit-render="{}" show-overflow="title"
-                :rules="[{ required: true, message: '请填写商品名称', trigger: 'blur' }]"></vxe-table-column>
-              <vxe-table-column field="tradePrice" title="商品单价(元)" :edit-render="{}" show-overflow="title"
-                :rules="[{ required: true, message: '请输入商品单价', trigger: 'blur' }]"></vxe-table-column>
-              <vxe-table-column field="tradeNumber" title="商品数量" :edit-render="{}"
-                show-overflow="title"></vxe-table-column>
-              <vxe-table-column field="priceSum" title="商品总价" :edit-render="{}"
-                show-overflow="title"></vxe-table-column>
-              <vxe-table-column field="company" title="单位" :edit-render="{}" show-overflow="title"></vxe-table-column>
-              <vxe-table-column field="remarks" title="备注" :edit-render="{}" show-overflow="title"></vxe-table-column>
-              <vxe-table-column title="操作">
-                <template #default="scope">
-                  <el-button size="default" type="primary" :disabled="false"
-                    @click="seeFileInfo(scope.$rowIndex)">文件详情</el-button>
-                </template>
-              </vxe-table-column>
-            </vxe-table>
-          </el-row>
-        </div>
-        <div v-if="inputForm.sourceType === '1'">
-          <el-divider content-position="left"><i class="el-icon-document"></i>
-            项目报销详情
-            <el-button size="default" style="margin-left: 20px" type="primary"
-              :disabled="method === 'view' || status === 'audit' || status === 'taskFormDetail'"
-              @click="insertEvent('detail')" plain>
-              新增
-            </el-button>
-          </el-divider>
-          <el-row :gutter="15">
-            <vxe-table border show-footer show-overflow :footer-method="footerMethod" ref="detailTable" :key="detailKey"
-              class="vxe-table-element" :data="inputForm.detailInfos" style="margin-left: 5em" highlight-current-row
-              :edit-config="{ trigger: 'click', mode: 'row', showStatus: true, autoClear: true, icon: '_' }"
-              :edit-rules="validRules">
-              <vxe-table-column field="userName" title="报销人" :edit-render="{}" show-overflow="title"
-                :rules="[{ required: true, message: '请选择报销人', trigger: 'blur' }]">
-                <template #edit="scope">
-                  <el-input v-model="scope.row.userName" @focus="userPullListForm(scope.$rowIndex)"></el-input>
-                  <!--              <UserSelectV2 :limit='1' :userName="scope.row.userName" @getValue='(value, label) => {scope.row.userName = label}'></UserSelectV2>-->
-                </template>
-              </vxe-table-column>
-              <vxe-table-column field="deptName" title="报销部门" :edit-render="{}" show-overflow="title">
-                <template #edit="scope">
-                  <el-input :disabled='true' v-model="scope.row.deptName"></el-input>
-                </template>
-              </vxe-table-column>
-              <vxe-table-column field="typeName" title="报销类别" :edit-render="{}" show-overflow="title"
-                :rules="[{ required: true, message: '请选择报销类别', trigger: 'blur' }]">
-                <template #edit="scope">
-                  <el-input v-model="scope.row.typeName"
-                    @focus="typePullForm(scope.$rowIndex, scope.row.deptId)"></el-input>
-                </template>
-              </vxe-table-column>
-              <vxe-table-column field="projectName" title="报销项目" :edit-render="{}" show-overflow="title"
-                :rules="[{ required: true, message: '请选择报销项目', trigger: 'blur' }]">
-                <template #edit="scope">
-                  <el-input v-model="scope.row.projectName"
-                    @focus="openProgramPageForm(scope.$rowIndex, scope.row)"></el-input>
-                </template>
-              </vxe-table-column>
-              <!--            <vxe-table-column field="reportNumber" title="报告号" :edit-render="{}">-->
-              <!--              <template v-slot:edit="scope">-->
-              <!--                <el-input :readonly="true" v-model="scope.row.reportNumber" @focus="openReportNoPageForm(scope.$rowIndex, scope.row)"></el-input>-->
-              <!--              </template>-->
-              <!--            </vxe-table-column>-->
-              <vxe-table-column field="number" title="费用(元)" :edit-render="{}" show-overflow="title"
-                :rules="[{ required: true, message: '请输入费用', trigger: 'blur' }]">
-                <template #edit="scope">
-                  <el-input maxlength="15" v-model="scope.row.number"
-                    @input="scope.row.number = twoDecimalPlaces(scope.row.number)"></el-input>
-                </template>
-              </vxe-table-column>
-              <vxe-table-column field="receiptNumber" title="收据张数" :edit-render="{}" show-overflow="title">
-                <template #edit="scope">
-                  <el-input v-model="scope.row.receiptNumber" oninput="value=value.replace(/\D|^0/g,'')"
-                    maxlength="10"></el-input>
-                </template>
-              </vxe-table-column>
-              <vxe-table-column field="days" title="出差天数" :edit-render="{}" show-overflow="title">
-                <template #edit="scope">
-                  <el-input v-model="scope.row.days" oninput="value=value.replace(/\D|^0/g,'')"
-                    maxlength="10"></el-input>
-                </template>
-              </vxe-table-column>
-              <vxe-table-column field="content" title="内容" :edit-render="{}" show-overflow="title">
-                <template #edit="scope">
-                  <el-input v-model="scope.row.content"></el-input>
-                </template>
-              </vxe-table-column>
-              <vxe-table-column title="操作" width="100">
-                <template #default="scope">
-                  <el-button size="default" type="danger"
-                    @click="removeEvent(scope.row, scope.$rowIndex, 'detail')">删除</el-button>
-                </template>
-              </vxe-table-column>
-            </vxe-table>
-          </el-row>
-        </div>
-        <div v-if="inputForm.sourceType === '2'">
-          <el-divider content-position="left"><i class="el-icon-document"></i>
-            合同报销详情
-            <el-button size="default" style="margin-left: 20px" type="primary"
-              :disabled="method === 'view' || status === 'audit' || status === 'taskFormDetail'"
-              @click="insertEvent('contract_detail')" plain>
-              新增
-            </el-button>
-          </el-divider>
-          <el-row :gutter="15">
-            <vxe-table border show-footer show-overflow :footer-method="footerMethod" ref="detailTableContract"
-              :key="detailKeyContract" class="vxe-table-element" :data="inputForm.detailInfoContracts"
-              style="margin-left: 5em" highlight-current-row
-              :edit-config="{ trigger: 'click', mode: 'row', showStatus: true, autoClear: true, icon: '_' }"
-              :edit-rules="validRules">
-              <vxe-table-column field="userName" title="报销人" :edit-render="{}" show-overflow="title"
-                :rules="[{ required: true, message: '请选择报销人', trigger: 'blur' }]">
-                <template #edit="scope">
-                  <el-input v-model="scope.row.userName" @focus="userPullListForm2(scope.$rowIndex)"></el-input>
-                  <!--              <UserSelectV2 :limit='1' :userName="scope.row.userName" @getValue='(value, label) => {scope.row.userName = label}'></UserSelectV2>-->
-                </template>
-              </vxe-table-column>
-              <vxe-table-column field="deptName" title="报销部门" :edit-render="{}" show-overflow="title">
-                <template #edit="scope">
-                  <el-input :disabled='true' v-model="scope.row.deptName"></el-input>
-                </template>
-              </vxe-table-column>
-              <vxe-table-column field="typeName" title="报销类别" :edit-render="{}" show-overflow="title"
-                :rules="[{ required: true, message: '请选择报销类别', trigger: 'blur' }]">
-                <template #edit="scope">
-                  <el-input v-model="scope.row.typeName"
-                    @focus="typePullForm2(scope.$rowIndex, scope.row.deptId)"></el-input>
-                </template>
-              </vxe-table-column>
-              <vxe-table-column field="contractName" title="报销合同" :edit-render="{}" show-overflow="title"
-                :rules="[{ required: true, message: '请选择报销合同', trigger: 'blur' }]">
-                <template #edit="scope">
-                  <el-input v-model="scope.row.contractName"
-                    @focus="openContractForm(scope.$rowIndex, scope.row)"></el-input>
-                </template>
-              </vxe-table-column>
-              <!--            <vxe-table-column field="reportNumber" title="报告号" :edit-render="{}">-->
-              <!--              <template v-slot:edit="scope">-->
-              <!--                <el-input :readonly="true" v-model="scope.row.reportNumber" @focus="openReportNoPageForm(scope.$rowIndex, scope.row)"></el-input>-->
-              <!--              </template>-->
-              <!--            </vxe-table-column>-->
-              <vxe-table-column field="number" title="费用(元)" :edit-render="{}" show-overflow="title"
-                :rules="[{ required: true, message: '请输入费用', trigger: 'blur' }]">
-                <template #edit="scope">
-                  <el-input maxlength="15" v-model="scope.row.number"
-                    @input="scope.row.number = twoDecimalPlaces(scope.row.number)"></el-input>
-                </template>
-              </vxe-table-column>
-              <vxe-table-column field="receiptNumber" title="收据张数" :edit-render="{}" show-overflow="title">
-                <template #edit="scope">
-                  <el-input v-model="scope.row.receiptNumber" oninput="value=value.replace(/\D|^0/g,'')"
-                    maxlength="10"></el-input>
-                </template>
-              </vxe-table-column>
-              <vxe-table-column field="days" title="出差天数" :edit-render="{}" show-overflow="title">
-                <template #edit="scope">
-                  <el-input v-model="scope.row.days" oninput="value=value.replace(/\D|^0/g,'')"
-                    maxlength="10"></el-input>
-                </template>
-              </vxe-table-column>
-              <vxe-table-column field="content" title="内容" :edit-render="{}" show-overflow="title">
-                <template #edit="scope">
-                  <el-input v-model="scope.row.content"></el-input>
-                </template>
-              </vxe-table-column>
-              <vxe-table-column title="操作" width="100">
-                <template #default="scope">
-                  <el-button size="default" type="danger"
-                    @click="removeEvent(scope.row, scope.$rowIndex, 'contract_detail')">删除</el-button>
-                </template>
-              </vxe-table-column>
-            </vxe-table>
-          </el-row>
-        </div>
-        <div v-if="inputForm.sourceType === '3'">
-          <el-divider content-position="left"><i class="el-icon-document"></i>
-            报告报销详情
-            <el-button size="default" style="margin-left: 20px" type="primary"
-              :disabled="method === 'view' || status === 'audit' || status === 'taskFormDetail'"
-              @click="insertEvent('report_detail')" plain>
-              新增
-            </el-button>
-          </el-divider>
-          <el-row :gutter="15">
-            <vxe-table border show-footer show-overflow :footer-method="footerMethod" ref="detailTableReport"
-              :key="detailKeyReport" class="vxe-table-element" :data="inputForm.detailInfoReports"
-              style="margin-left: 5em" highlight-current-row
-              :edit-config="{ trigger: 'click', mode: 'row', showStatus: true, autoClear: true, icon: '_' }"
-              :edit-rules="validRules">
-              <vxe-table-column field="userName" title="报销人" :edit-render="{}" show-overflow="title"
-                :rules="[{ required: true, message: '请选择报销人', trigger: 'blur' }]">
-                <template #edit="scope">
-                  <el-input v-model="scope.row.userName" @focus="userPullListForm3(scope.$rowIndex)"></el-input>
-                  <!--              <UserSelectV2 :limit='1' :userName="scope.row.userName" @getValue='(value, label) => {scope.row.userName = label}'></UserSelectV2>-->
-                </template>
-              </vxe-table-column>
-              <vxe-table-column field="deptName" title="报销部门" :edit-render="{}" show-overflow="title">
-                <template #edit="scope">
-                  <el-input :disabled='true' v-model="scope.row.deptName"></el-input>
-                </template>
-              </vxe-table-column>
-              <vxe-table-column field="typeName" title="报销类别" :edit-render="{}" show-overflow="title"
-                :rules="[{ required: true, message: '请选择报销类别', trigger: 'blur' }]">
-                <template #edit="scope">
-                  <el-input v-model="scope.row.typeName"
-                    @focus="typePullForm3(scope.$rowIndex, scope.row.deptId)"></el-input>
-                </template>
-              </vxe-table-column>
-              <vxe-table-column field="projectName" title="报销项目" :edit-render="{}" show-overflow="title"
-                :rules="[{ required: true, message: '请选择报销项目', trigger: 'blur' }]">
-                <template #edit="scope">
-                  <el-input v-model="scope.row.projectName"
-                    @focus="openProgramPageForm3(scope.$rowIndex, scope.row)"></el-input>
-                </template>
-              </vxe-table-column>
-              <vxe-table-column field="reportNumber" title="报告号" :edit-render="{}" show-overflow="title">
-                <template #edit="scope">
-                  <el-input :readonly="true" v-model="scope.row.reportNumber"
-                    @focus="openReportNoPageForm(scope.$rowIndex, scope.row)"></el-input>
-                </template>
-              </vxe-table-column>
-              <vxe-table-column field="number" title="费用(元)" :edit-render="{}" show-overflow="title"
-                :rules="[{ required: true, message: '请输入费用', trigger: 'blur' }]">
-                <template #edit="scope">
-                  <el-input maxlength="15" v-model="scope.row.number"
-                    @input="scope.row.number = twoDecimalPlaces(scope.row.number)"></el-input>
-                </template>
-              </vxe-table-column>
-              <vxe-table-column field="receiptNumber" title="收据张数" :edit-render="{}" show-overflow="title">
-                <template #edit="scope">
-                  <el-input v-model="scope.row.receiptNumber" oninput="value=value.replace(/\D|^0/g,'')"
-                    maxlength="10"></el-input>
-                </template>
-              </vxe-table-column>
-              <vxe-table-column field="days" title="出差天数" :edit-render="{}" show-overflow="title">
-                <template #edit="scope">
-                  <el-input v-model="scope.row.days" oninput="value=value.replace(/\D|^0/g,'')"
-                    maxlength="10"></el-input>
-                </template>
-              </vxe-table-column>
-              <vxe-table-column field="content" title="内容" :edit-render="{}" show-overflow="title">
-                <template #edit="scope">
-                  <el-input v-model="scope.row.content"></el-input>
-                </template>
-              </vxe-table-column>
-              <vxe-table-column title="操作" width="100">
-                <template #default="scope">
-                  <el-button size="default" type="danger"
-                    @click="removeEvent(scope.row, scope.$rowIndex, 'report_detail')">删除</el-button>
-                </template>
-              </vxe-table-column>
-            </vxe-table>
-          </el-row>
-        </div>
-        <div v-if="inputForm.sourceType === '4'">
-          <el-divider content-position="left"><i class="el-icon-document"></i>
-            其他报销详情
-            <el-button size="default" style="margin-left: 20px" type="primary"
-              :disabled="method === 'view' || status === 'audit' || status === 'taskFormDetail'"
-              @click="insertEvent('others')" plain>
-              新增
-            </el-button>
-          </el-divider>
-          <el-row :gutter="15">
-            <el-col :span="24">
-              <vxe-table border show-footer show-overflow :footer-method="footerMethod" ref="detailTableOthers"
-                class="vxe-table-element" :data="inputForm.detailInfoOthers" style="margin-left: 5em"
-                :key="detailKeyOthers" highlight-current-row
-                :edit-config="{ trigger: 'click', mode: 'row', showStatus: true, autoClear: true, icon: '_' }"
-                :edit-rules="validRules" :row-config="{ keyField: 'uniqueId' }"
-                :expand-config="{ expandAll: false, accordion: false, toggleMethod: handleExpand, expandRowKeys: handleDefaultExpand() }">
-                <vxe-column type="expand" width="80">
-                  <template #content="{ row, rowIndex }">
-                    <InvoiceReimbursementUpLoadComponent v-if="row.reimbursementType == 1"
-                      @changeConfirmList="changeConfirmList" @handleCount="handleCount"
-                      @handleUploadSuccess="handleUploadSuccess" :ref="row.uniqueId + 'Upload'"
-                      v-show="'1' === this.inputForm.reimbursementType">
-                    </InvoiceReimbursementUpLoadComponent>
-                    <UpLoadComponent @handleUploadSuccess="handleUploadSuccess" v-if="row.reimbursementType == 0"
-                      :ref="row.uniqueId + 'UploadFiles'">
-                    </UpLoadComponent>
-                  </template>
-                </vxe-column>
-                <vxe-table-column field="userName" title="报销人" :edit-render="{}" show-overflow="title"
-                  :rules="[{ required: true, message: '请选择报销人', trigger: 'blur' }]">
-                  <template #edit="scope">
-                    <el-input v-model="scope.row.userName" @focus="userPullListForm4(scope.$rowIndex)"></el-input>
-                    <!--              <UserSelectV2 :limit='1' :userName="scope.row.userName" @getValue='(value, label) => {scope.row.userName = label}'></UserSelectV2>-->
-                  </template>
-                </vxe-table-column>
-                <vxe-table-column field="deptName" title="报销部门" :edit-render="{}" show-overflow="title">
-                  <template #edit="scope">
-                    <el-input :disabled='true' v-model="scope.row.deptName"></el-input>
-                  </template>
-                </vxe-table-column>
-                <vxe-table-column field="reimbursementType" title="报销类型" :edit-render="{}" show-overflow="title">
-                  <template #default="{ row }">
-                    <span>{{ $dictUtils.getDictLabel('reimbursement_type', row.reimbursementType,
-                      '') }}</span>
-                  </template>
-                  <template #edit="{ row }">
-                    <vxe-select :disabled="method === 'view' || status === 'audit' || status === 'taskFormDetail'"
-                      @change="handleChangeType" v-model="row.reimbursementType" placeholder="请选择报销类型" transfer>
-                      <vxe-option v-for="item in $dictUtils.getDictList('reimbursement_type')" :key="item.value"
-                        :value="item.value" :label="item.label"></vxe-option>
-                    </vxe-select>
-                  </template>
-                </vxe-table-column>
-                <vxe-table-column field="typeName" title="报销类别" :edit-render="{}" show-overflow="title"
-                  :rules="[{ required: true, message: '请选择报销类别', trigger: 'blur' }]">
-                  <template #edit="scope">
-                    <el-input v-model="scope.row.typeName"
-                      @focus="typePullForm4(scope.$rowIndex, scope.row.deptId)"></el-input>
-                  </template>
-                </vxe-table-column>
-                <vxe-table-column field="projectName" title="报销详情" :edit-render="{}" show-overflow="title"
-                  :rules="[{ required: true, message: '请填写报销详情', trigger: 'blur' }]">
-                  <template #edit="scope">
-                    <el-input v-model="scope.row.projectName"
-                      @focus="openProgramPageForm4(scope.$rowIndex, scope.row)"></el-input>
-                  </template>
-                </vxe-table-column>
-                <!--            <vxe-table-column field="reportNumber" title="报告号" :edit-render="{}">-->
-                <!--              <template v-slot:edit="scope">-->
-                <!--                <el-input :readonly="true" v-model="scope.row.reportNumber" @focus="openReportNoPageForm(scope.$rowIndex, scope.row)"></el-input>-->
-                <!--              </template>-->
-                <!--            </vxe-table-column>-->
-                <vxe-table-column field="number" title="费用(元)" :edit-render="{}" show-overflow="title"
-                  :rules="[{ required: true, message: '请输入费用', trigger: 'blur' }]">
-                  <template #edit="scope">
-                    <el-input maxlength="15" v-model="scope.row.number"
-                      @input="scope.row.number = twoDecimalPlaces(scope.row.number)"></el-input>
-                  </template>
-                </vxe-table-column>
-                <vxe-table-column field="receiptNumber" title="收据张数" :edit-render="{}" show-overflow="title">
-                  <template #edit="scope">
-                    <el-input v-model="scope.row.receiptNumber" oninput="value=value.replace(/\D|^0/g,'')"
-                      maxlength="10"></el-input>
-                  </template>
-                </vxe-table-column>
-                <vxe-table-column field="days" title="出差天数" :edit-render="{}" show-overflow="title">
-                  <template #edit="scope">
-                    <el-input v-model="scope.row.days" oninput="value=value.replace(/\D|^0/g,'')"
-                      maxlength="10"></el-input>
-                  </template>
-                </vxe-table-column>
-                <vxe-table-column field="content" title="内容" :edit-render="{}" show-overflow="title">
-                  <template #edit="scope">
-                    <el-input v-model="scope.row.content"></el-input>
-                  </template>
-                </vxe-table-column>
-                <vxe-table-column title="操作" width="180">
-                  <template #default="scope">
-                    <el-button size="default" @click="uploadFile(scope.row, scope.$rowIndex,)"
-                      type="primary">上传</el-button>
-                    <el-button size="default" type="danger"
-                      @click="removeEvent(scope.row, scope.$rowIndex, 'others')">删除</el-button>
-                  </template>
-                </vxe-table-column>
-              </vxe-table>
-            </el-col>
-          </el-row>
-        </div>
-        <div v-if="inputForm.sourceType === '5'">
-          <el-divider content-position="left"><i class="el-icon-document"></i>
-            采购报销详情
-            <el-button size="default" style="margin-left: 20px" type="primary"
-              :disabled="method === 'view' || this.formReadOnly" @click="insertEvent('procured')" plain>
-              新增
-            </el-button>
-          </el-divider>
-          <el-row :gutter="15">
-            <vxe-table border show-footer show-overflow :footer-method="footerMethod" ref="detailTableProcured"
-              class="vxe-table-element" :data="inputForm.detailInfoProcured" style="margin-left: 5em"
-              :key="detailKeyProcured" highlight-current-row
-              :edit-config="{ trigger: 'click', mode: 'row', showStatus: true, autoClear: true, icon: '_' }"
-              :edit-rules="validRules">
-              <vxe-table-column field="userName" title="报销人" :edit-render="{}" show-overflow="title"
-                :rules="[{ required: true, message: '请选择报销人', trigger: 'blur' }]">
-                <template #edit="scope">
-                  <el-input v-model="scope.row.userName" @focus="userPullListForm5(scope.$rowIndex)"></el-input>
-                  <!--              <UserSelectV2 :limit='1' :userName="scope.row.userName" @getValue='(value, label) => {scope.row.userName = label}'></UserSelectV2>-->
-                </template>
-              </vxe-table-column>
-              <vxe-table-column field="deptName" title="报销部门" :edit-render="{}" show-overflow="title">
-                <template #edit="scope">
-                  <el-input :disabled='true' v-model="scope.row.deptName"></el-input>
-                </template>
-              </vxe-table-column>
-              <vxe-table-column field="typeName" title="报销类别" :edit-render="{}" show-overflow="title"
-                :rules="[{ required: true, message: '请选择报销类别', trigger: 'blur' }]">
-                <template #edit="scope">
-                  <el-input v-model="scope.row.typeName"
-                    @focus="typePullForm5(scope.$rowIndex, scope.row.deptId)"></el-input>
-                </template>
-              </vxe-table-column>
-              <vxe-table-column field="projectName" title="报销项目" :edit-render="{}" show-overflow="title"
-                :rules="[{ required: true, message: '请选择报销项目', trigger: 'blur' }]">
-                <template #edit="scope">
-                  <el-input v-model="scope.row.projectName"
-                    @focus="openProgramPageForm5(scope.$rowIndex, scope.row)"></el-input>
-                </template>
-              </vxe-table-column>
-              <!--            <vxe-table-column field="reportNumber" title="报告号" :edit-render="{}">-->
-              <!--              <template v-slot:edit="scope">-->
-              <!--                <el-input :readonly="true" v-model="scope.row.reportNumber" @focus="openReportNoPageForm(scope.$rowIndex, scope.row)"></el-input>-->
-              <!--              </template>-->
-              <!--            </vxe-table-column>-->
-              <vxe-table-column field="number" title="费用(元)" :edit-render="{}" show-overflow="title"
-                :rules="[{ required: true, message: '请输入费用', trigger: 'blur' }]">
-                <template #edit="scope">
-                  <el-input maxlength="15" v-model="scope.row.number"
-                    @input="scope.row.number = twoDecimalPlaces(scope.row.number)"></el-input>
-                </template>
-              </vxe-table-column>
-              <vxe-table-column field="receiptNumber" title="收据张数" :edit-render="{}" show-overflow="title">
-                <template #edit="scope">
-                  <el-input v-model="scope.row.receiptNumber" oninput="value=value.replace(/\D|^0/g,'')"
-                    maxlength="10"></el-input>
-                </template>
-              </vxe-table-column>
-              <vxe-table-column field="days" title="出差天数" :edit-render="{}" show-overflow="title">
-                <template #edit="scope">
-                  <el-input v-model="scope.row.days" oninput="value=value.replace(/\D|^0/g,'')"
-                    maxlength="10"></el-input>
-                </template>
-              </vxe-table-column>
-              <vxe-table-column field="content" title="内容" :edit-render="{}" show-overflow="title">
-                <template #edit="scope">
-                  <el-input v-model="scope.row.content"></el-input>
-                </template>
-              </vxe-table-column>
-              <vxe-table-column title="操作" width="100">
-                <template #default="scope">
-                  <el-button size="default" type="danger"
-                    @click="removeEvent(scope.row, scope.$rowIndex, 'procured')">删除</el-button>
-                </template>
-              </vxe-table-column>
-            </vxe-table>
-          </el-row>
-        </div>
-        <div v-if="inputForm.reimbursementType === '0'">
-          <el-divider content-position="left"><i class="el-icon-document"></i>
-            专用发票信息
-            <el-button size="default" style="margin-left: 10px" type="primary"
-              :disabled="method === 'view' || status === 'audit' || status === 'taskFormDetail'"
-              @click="insertEvent('amount')" plain>
-              新增
-            </el-button>
-          </el-divider>
-          <el-row :gutter="15">
-            <el-col :span="24">
-              <vxe-table border show-overflow ref="amountTable" class="vxe-table-element" :data="inputForm.amountInfos"
-                style="margin-left: 5em" :key="amountKey" highlight-current-row
-                :edit-config="{ trigger: 'click', mode: 'row', showStatus: true, autoClear: true, icon: '_' }">
-                <vxe-table-column field="code" title="发票代码" :edit-render="{}" show-overflow="title">
-                  <template #edit="scope">
-                    <el-input oninput="value=value.replace(/\D|^/g,'')" maxlength="20"
-                      v-model="scope.row.code"></el-input>
-                  </template>
-                </vxe-table-column>
-                <vxe-table-column field="number" title="发票号" :edit-render="{}" show-overflow="title">
-                  <template #edit="scope">
-                    <el-input oninput="value=value.replace(/\D|^/g,'')" maxlength="8" @change="isExict(scope.row)"
-                      v-model="scope.row.number"></el-input>
-                  </template>
-                </vxe-table-column>
-                <vxe-table-column field="amount" title="金额" :edit-render="{}" show-overflow="title">
-                  <template #edit="scope">
-                    <el-input maxlength="15" v-model="scope.row.amount"
-                      @input="scope.row.amount = twoDecimalPlaces(scope.row.amount)"
-                      @change="countAmount(scope.row)"></el-input>
-                  </template>
-                </vxe-table-column>
-                <vxe-table-column field="taxAmount" title="税额" :edit-render="{}" show-overflow="title">
-                  <template #edit="scope">
-                    <el-input maxlength="15" v-model="scope.row.taxAmount"
-                      @input="scope.row.taxAmount = twoDecimalPlaces(scope.row.taxAmount)"
-                      @change="countAmount(scope.row)"></el-input>
-                  </template>
-                </vxe-table-column>
-                <vxe-table-column field="count" title="价税合计" :edit-render="{}" show-overflow="title">
-                  <template #edit="scope">
-                    <el-input disabled="true" v-model="scope.row.count"></el-input>
-                  </template>
-                </vxe-table-column>
-                <vxe-table-column title="操作" width="100">
-                  <template #default="scope">
-                    <el-button size="default" type="danger"
-                      @click="removeEvent(scope.row, scope.$rowIndex, 'amount')">删除</el-button>
-                  </template>
-                </vxe-table-column>
-              </vxe-table>
-            </el-col>
 
-          </el-row>
-        </div>
-        <!--		<div v-if="inputForm.reimbursementType === '1'">-->
-        <!--			<el-divider content-position="left">-->
-        <!--				电子发票信息-->
-        <!--				&lt;!&ndash;<el-button style="margin-left: 20px" type="primary" :disabled="method==='view' || status === 'audit' || status === 'taskFormDetail' " size="default" @click="insertEvent('invoiceReimbursement')" plain>-->
-        <!--					新增-->
-        <!--				</el-button>&ndash;&gt;-->
-        <!--			</el-divider>-->
-        <!--			<el-row  :gutter="15" >-->
-        <!--				<el-col :span="24">-->
-        <!--					<vxe-table-->
-        <!--						border-->
-        <!--						show-footer-->
-        <!--						show-overflow-->
-        <!--						ref="invoiceReimbursementTable"-->
-        <!--						class="vxe-table-element"-->
-        <!--						:data="inputForm.invoiceReimbursements"-->
-        <!--						style="margin-left: 5em"-->
-        <!--						:footer-method="footerMethod1111"-->
-        <!--						:key="invoiceReimbursementKey"-->
-        <!--						highlight-current-row-->
-        <!--						:edit-config="{trigger: 'click', mode: 'row', showStatus: true, autoClear: true, icon:'_'}"-->
-        <!--						:edit-rules="invoiceReimbursementRules"-->
-        <!--					>-->
-        <!--						<vxe-table-column  field="invoiceType" title="发票类型" show-overflow="title" :edit-render="{name: '$select', options: $dictUtils.getDictList('invoice_reimbursement_type')}">-->
-        <!--							<template v-slot:edit="scope">-->
-        <!--								<vxe-select :disabled="true" v-model="scope.row.invoiceType" placeholder="请选择发票类型" clearable style="width: 100%;" transfer>-->
-        <!--									<vxe-option-->
-        <!--										v-for="item in $dictUtils.getDictList('invoice_reimbursement_type')"-->
-        <!--										:key="item.value"-->
-        <!--										:label="item.label"-->
-        <!--										:value="item.value">-->
-        <!--									</vxe-option>-->
-        <!--								</vxe-select>-->
-        <!--							</template>-->
-        <!--						</vxe-table-column>-->
-        <!--						<vxe-table-column field="invoiceProjectName" title="发票项目名" :edit-render="{}" show-overflow="title">-->
-        <!--							<template #edit="scope">-->
-        <!--								<el-input maxlength="50" readonly="true" v-model="scope.row.invoiceProjectName" ></el-input>-->
-        <!--							</template>-->
-        <!--						</vxe-table-column>-->
-        <!--						<vxe-table-column field="number" title="发票号" :edit-render="{}" show-overflow="title">-->
-        <!--							<template #edit="scope">-->
-        <!--								<el-input oninput ="value=value.replace(/\D|^/g,'')" readonly="true" maxlength="30" @change="isExict(scope.row)" v-model="scope.row.number" ></el-input>-->
-        <!--							</template>-->
-        <!--						</vxe-table-column>-->
-        <!--						<vxe-table-column field="invoiceDate" title="开票日期" :edit-render="{}" show-overflow="title">-->
-        <!--							<template v-slot:edit="scope">-->
-        <!--								<vxe-input v-model="scope.row.invoiceDate" :disabled="true"  type="datetime" transfer placeholder="请选择日期"></vxe-input>-->
-        <!--							</template>-->
-        <!--						</vxe-table-column>-->
-        <!--						<vxe-table-column field="invoiceUnit" title="开票单位" :edit-render="{}" show-overflow="title">-->
-        <!--							<template #edit="scope">-->
-        <!--								<el-input maxlength="50" readonly="true" v-model="scope.row.invoiceUnit" ></el-input>-->
-        <!--							</template>-->
-        <!--						</vxe-table-column>-->
-        <!--						<vxe-table-column field="buyerName" title="购买方名称" :edit-render="{}" show-overflow="title">-->
-        <!--							<template #edit="scope">-->
-        <!--								<el-input maxlength="50" readonly="true" v-model="scope.row.buyerName" ></el-input>-->
-        <!--							</template>-->
-        <!--						</vxe-table-column>-->
-        <!--						<vxe-table-column field="amount" title="金额" :edit-render="{}" show-overflow="title">-->
-        <!--							<template #edit="scope">-->
-        <!--								<el-input maxlength="15" readonly="true" v-model="scope.row.amount" @input="scope.row.amount = twoDecimalPlaces(scope.row.amount)" @change="countAmount(scope.row)"></el-input>-->
-        <!--							</template>-->
-        <!--						</vxe-table-column>-->
-        <!--						<vxe-table-column field="taxAmount" title="税额" :edit-render="{}" show-overflow="title">-->
-        <!--							<template #edit="scope">-->
-        <!--								<el-input maxlength="15" readonly="true" v-model="scope.row.taxAmount" @input="scope.row.taxAmount = twoDecimalPlaces(scope.row.taxAmount)" @change="countAmount(scope.row)"></el-input>-->
-        <!--							</template>-->
-        <!--						</vxe-table-column>-->
-        <!--						<vxe-table-column field="count" title="价税合计" :edit-render="{}" show-overflow="title">-->
-        <!--							<template #edit="scope">-->
-        <!--								<el-input disabled="true" v-model="scope.row.count" ></el-input>-->
-        <!--							</template>-->
-        <!--						</vxe-table-column>-->
-        <!--						<vxe-table-column field="remarks" title="备注" :edit-render="{}" show-overflow="title">-->
-        <!--							<template #edit="scope">-->
-        <!--								<el-input maxlength="250" v-model="scope.row.remarks" ></el-input>-->
-        <!--							</template>-->
-        <!--						</vxe-table-column>-->
-        <!--						&lt;!&ndash;<vxe-table-column title="操作" width="100">-->
-        <!--							<template #default="scope">-->
-        <!--								<el-button size="default" type="danger" @click="removeEvent(scope.row,scope.$rowIndex,'invoiceReimbursement')">删除</el-button>-->
-        <!--							</template>-->
-        <!--						</vxe-table-column>&ndash;&gt;-->
-        <!--					</vxe-table>-->
-        <!--				</el-col>-->
-        <!--			</el-row>-->
-        <!--		</div>-->
+        <ReimbursementComponent ref="reimbursementComponent">
+        </ReimbursementComponent>
+
+
         <!--      <ProgramPageForm ref="programPageForm" @getProgram="getProgram"></ProgramPageForm>-->
         <CwProgramPageForm ref="cwProgramPageForm" @getProgram="getProgram"></CwProgramPageForm>
         <CwProgramPageForm ref="cwProgramPageForm3" @getProgram="getProgram3"></CwProgramPageForm>
@@ -707,6 +111,7 @@
       <!-- <InvoiceReimbursementUpLoadComponent ref="invoiceReimbursementUpLoadComponent"
         v-show="'1' === this.inputForm.reimbursementType"></InvoiceReimbursementUpLoadComponent>
       <UpLoadComponent ref="uploadComponent"></UpLoadComponent> -->
+      <UpLoadComponent ref="uploadComponent"></UpLoadComponent>
       <WorkContractChooseCom ref="workContractChooseCom" @getContract="getContract"></WorkContractChooseCom>
       <ReportNoChooseRadio ref="reportNoChooseRadio" @getWorkClientRadioChoose="getWorkClientChoose2">
       </ReportNoChooseRadio>
@@ -730,7 +135,7 @@ import ReportNoChooseRadio from './ReportNoChooseRadio'
 import ReimbursementService from '@/api/consultancy/reimbursement/ReimbursementService'
 import ReimbursementTypeService from '@/api/consultancy/reimbursement/ReimbursementTypeService'
 import InvoiceReimbursementUpLoadComponent from '@/views/common/NewDigitalInvoiceUploadComponent'
-import UpLoadComponent from '@/views/common/NewUpLoadComponent'
+import UpLoadComponent from '@/views/common/UpLoadComponent'
 // import SelectUserTree from '@/views/utils/treeUserSelect'
 // import SelectTree from '@/components/treeSelect/treeSelect.vue'
 import XEUtils from 'xe-utils'
@@ -746,6 +151,7 @@ import processService from '@/api/flowable/processService'
 //import MaterialManagementDialog from '../../../'
 import userService from '@/api/sys/UserService'
 import InfoHistory from "./InfoHistory";
+import ReimbursementComponent from '@/views/common/reimbursement/ReimbursementComponent.vue'
 export default {
   props: {
     businessId: {
@@ -899,6 +305,7 @@ export default {
     // this.materialManagementService = new MaterialManagementService()
   },
   components: {
+    ReimbursementComponent,
     InvoiceReimbursementUpLoadComponent,
     UpLoadComponent,
     // SelectUserTree,
@@ -956,6 +363,9 @@ export default {
     },
     getUpload() {
     },
+    initReimbursementComponent() {
+      this.$refs.reimbursementComponent.initComponent("reimbursement", "consultancy", "南京兴光培训咨询有限公司", this.inputForm, this.isConfirm, this.status)
+    },
     init(method, id) {
       this.checkIsAdmin()
       this.method = method
@@ -995,7 +405,7 @@ export default {
         this.loading = true
         this.$refs.inputForm.resetFields()
         // this.$refs.invoiceReimbursementUpLoadComponent.clearUpload()
-        // this.$refs.uploadComponent.clearUpload()
+        this.$refs.uploadComponent.clearUpload()
         this.reimbursementService.findById(this.inputForm.id).then((data) => {
           if (this.status === 'audit' || this.status === 'taskFormDetail') {
             method = 'view'
@@ -1025,15 +435,16 @@ export default {
             this.inputForm.reimbursementType = '0'
           }
           // this.$refs.invoiceReimbursementUpLoadComponent.newUpload(method, this.inputForm.invoiceReimbursementFiles, 'reimbursement', 300, '数电发票信息', null, null, null, '南京兴光培训咨询有限公司')
-          // this.$refs.uploadComponent.newUpload(method, this.inputForm.files, 'reimbursement')
+          this.$refs.uploadComponent.newUpload(method, this.inputForm.files, 'reimbursement')
           if (this.commonJS.isNotEmpty(this.inputForm.purchaseId)) {
             // this.startPur(this.inputForm.purchaseId)
           }
+          this.initReimbursementComponent()
           this.loading = false
         })
         if (method !== 'edit' && method !== 'view') {
           // this.$refs.invoiceReimbursementUpLoadComponent.newUpload(method, [], 'reimbursement')
-          // this.$refs.uploadComponent.newUpload(method, [], 'reimbursement')
+          this.$refs.uploadComponent.newUpload(method, [], 'reimbursement')
           this.loading = false
         }
         userService.isZj().then((data) => {
@@ -1058,6 +469,7 @@ export default {
     },
     // 表单提交
     doSubmit() {
+      this.getReimbursementData()
       this.$refs['inputForm'].validate((valid) => {
         if (valid) {
           this.loading = true
@@ -1065,10 +477,10 @@ export default {
           //   this.loading = false
           //   return
           // }
-          // if (this.$refs.uploadComponent.checkProgress()) {
-          //   this.loading = false
-          //   return
-          // }
+          if (this.$refs.uploadComponent.checkProgress()) {
+            this.loading = false
+            return
+          }
           if (this.commonJS.isEmpty(this.inputForm.invoiceReimbursementFiles)) {
             this.inputForm.invoiceReimbursementFiles = []
           }
@@ -1077,7 +489,7 @@ export default {
           }
           this.dataFiltering()
           // this.inputForm.invoiceReimbursementFiles = this.$refs.invoiceReimbursementUpLoadComponent.getDataList()
-          // this.inputForm.files = this.$refs.uploadComponent.getDataList()
+          this.inputForm.files = this.$refs.uploadComponent.getDataList()
           this.reimbursementService.save(this.inputForm).then((data) => {
             this.close()
             this.$message.success(data)
@@ -1186,7 +598,7 @@ export default {
       this.inputForm.amountInfos = []
       this.inputForm.invoiceReimbursements = []
       // this.$refs.invoiceReimbursementUpLoadComponent.clearUpload()
-      // this.$refs.uploadComponent.clearUpload()
+      this.$refs.uploadComponent.clearUpload()
       this.visible = false
     },
     // 删除
@@ -1343,10 +755,10 @@ export default {
       //   this.loading = false
       //   return
       // }
-      // if (this.$refs.uploadComponent.checkProgress()) {
-      //   this.loading = false
-      //   return
-      // }
+      if (this.$refs.uploadComponent.checkProgress()) {
+        this.loading = false
+        return
+      }
       if (this.commonJS.isEmpty(this.inputForm.invoiceReimbursementFiles)) {
         this.inputForm.invoiceReimbursementFiles = []
       }
@@ -1354,7 +766,7 @@ export default {
         this.inputForm.files = []
       }
       // this.inputForm.invoiceReimbursementFiles = this.$refs.invoiceReimbursementUpLoadComponent.getDataList()
-      // this.inputForm.files = this.$refs.uploadComponent.getDataList()
+      this.inputForm.files = this.$refs.uploadComponent.getDataList()
       this.inputForm.type = '1'
       this.reimbursementService.save(this.inputForm).then(() => {
         callback()
@@ -1452,10 +864,10 @@ export default {
           //   this.loading = false
           //   return
           // }
-          // if (this.$refs.uploadComponent.checkProgress()) {
-          //   this.loading = false
-          //   return
-          // }
+          if (this.$refs.uploadComponent.checkProgress()) {
+            this.loading = false
+            return
+          }
           if (this.commonJS.isEmpty(this.inputForm.invoiceReimbursementFiles)) {
             this.inputForm.invoiceReimbursementFiles = []
           }
@@ -1468,7 +880,7 @@ export default {
           //   return
           // }
           // this.inputForm.invoiceReimbursementFiles = this.$refs.invoiceReimbursementUpLoadComponent.getDataList()
-          // this.inputForm.files = this.$refs.uploadComponent.getDataList()
+          this.inputForm.files = this.$refs.uploadComponent.getDataList()
           this.dataFiltering()
           if (this.inputForm.invoiceReimbursementFiles <= 0 && "1" === this.inputForm.reimbursementType) {
             this.$message.error("请上传电子发票发票xml文件!")
@@ -1533,10 +945,10 @@ export default {
           //   this.loading = false
           //   return
           // }
-          // if (this.$refs.uploadComponent.checkProgress()) {
-          //   this.loading = false
-          //   return
-          // }
+          if (this.$refs.uploadComponent.checkProgress()) {
+            this.loading = false
+            return
+          }
           if (this.commonJS.isEmpty(this.inputForm.invoiceReimbursementFiles)) {
             this.inputForm.invoiceReimbursementFiles = []
           }
@@ -1545,7 +957,7 @@ export default {
           }
           this.dataFiltering()
           // this.inputForm.invoiceReimbursementFiles = this.$refs.invoiceReimbursementUpLoadComponent.getDataList()
-          // this.inputForm.files = this.$refs.uploadComponent.getDataList()
+          this.inputForm.files = this.$refs.uploadComponent.getDataList()
           this.commonApi.getTaskNameByProcInsId(this.inputForm.procInsId).then((data) => {
             if (this.commonJS.isNotEmpty(data)) {
               if (data === '所长报销审核人') {
@@ -1944,6 +1356,8 @@ export default {
       this.detailKeyReport = Math.random()
       this.detailKeyOthers = Math.random()
       this.detailKeyProcured = Math.random()
+      this.$refs.reimbursementComponent.inputForm.invoiceReimbursementFiles = []
+      this.$refs.reimbursementComponent.inputForm.sourceType = value
     },
     submitCheck() {
       if (this.commonJS.isEmpty(this.inputForm.sourceType)) {
@@ -2396,6 +1810,18 @@ export default {
         }
       })
       return arr
+    },
+    getReimbursementData() {
+      this.$nextTick(() => {
+        let inputForm = this.$refs.reimbursementComponent.handleGetData()
+        this.inputForm.detailInfos = inputForm.detailInfos
+        this.inputForm.detailInfoContracts = inputForm.detailInfoContracts
+        this.inputForm.detailInfoReports = inputForm.detailInfoReports
+        this.inputForm.detailInfoProject = inputForm.detailInfoProject
+        this.inputForm.detailInfoOthers = inputForm.detailInfoOthers
+        this.inputForm.detailInfoProcured = inputForm.detailInfoProcured
+        this.inputForm.invoiceReimbursementFiles = inputForm.invoiceReimbursementFiles
+      });
     }
   }
 }

+ 61 - 627
src/views/consultancy/reimbursement/info/NewReimbursementForm.vue

@@ -77,602 +77,11 @@
           </el-form-item>
         </el-col>
       </el-row>
-      <div v-if="inputForm.sourceType === '5'">
-        <el-divider content-position="left"><i class="el-icon-document"></i>
-          采购详情
-        </el-divider>
-        <el-row :gutter="15">
-          <vxe-table border show-footer show-overflow :footer-method="footerMethod555" ref="preTable"
-            class="vxe-table-element" :data="inputForm.preList" style="margin-left: 5em" highlight-current-row>
-            <vxe-table-column field="purchaser" title="采购人" :edit-render="{}" show-overflow="title"
-              :rules="[{ required: true, message: '请选择采购人', trigger: 'blur' }]"></vxe-table-column>
-            <vxe-table-column field="procurementOffice" title="采购部门" :edit-render="{}"
-              show-overflow="title"></vxe-table-column>
-            <vxe-table-column field="procurementType" title="采购类型" :edit-render="{}" show-overflow="title"
-              :rules="[{ required: true, message: '请选择采购类型', trigger: 'blur' }]"></vxe-table-column>
-            <vxe-table-column field="tradeName" title="商品名称" :edit-render="{}" show-overflow="title"
-              :rules="[{ required: true, message: '请填写商品名称', trigger: 'blur' }]"></vxe-table-column>
-            <vxe-table-column field="tradePrice" title="商品单价(元)" :edit-render="{}" show-overflow="title"
-              :rules="[{ required: true, message: '请输入商品单价', trigger: 'blur' }]"></vxe-table-column>
-            <vxe-table-column field="tradeNumber" title="商品数量" :edit-render="{}"
-              show-overflow="title"></vxe-table-column>
-            <vxe-table-column field="priceSum" title="商品总价" :edit-render="{}" show-overflow="title"></vxe-table-column>
-            <vxe-table-column field="company" title="单位" :edit-render="{}" show-overflow="title"></vxe-table-column>
-            <vxe-table-column field="remarks" title="备注" :edit-render="{}" show-overflow="title"></vxe-table-column>
-            <vxe-table-column title="操作">
-              <template #default="scope">
-                <el-button size="default" type="primary" :disabled="false"
-                  @click="seeFileInfo(scope.$rowIndex)">文件详情</el-button>
-              </template>
-            </vxe-table-column>
-          </vxe-table>
-        </el-row>
-      </div>
-      <div v-if="inputForm.sourceType === '1'">
-        <el-divider content-position="left"><i class="el-icon-document"></i>
-          项目报销详情
-          <el-button size="default" style="margin-left: 20px" type="primary"
-            :disabled="method === 'view' || status === 'audit' || status === 'taskFormDetail'"
-            @click="insertEvent('detail')" plain>
-            新增
-          </el-button>
-        </el-divider>
-        <el-row :gutter="15">
-          <vxe-table border show-footer show-overflow :footer-method="footerMethod" ref="detailTable" :key="detailKey"
-            class="vxe-table-element" :data="inputForm.detailInfos" style="margin-left: 5em" highlight-current-row
-            :edit-config="{ trigger: 'click', mode: 'row', showStatus: true, autoClear: true, icon: '_' }"
-            :edit-rules="validRules">
-            <vxe-table-column field="userName" title="报销人" :edit-render="{}" show-overflow="title"
-              :rules="[{ required: true, message: '请选择报销人', trigger: 'blur' }]">
-              <template #edit="scope">
-                <el-input v-model="scope.row.userName" @focus="userPullListForm(scope.$rowIndex)"></el-input>
-                <!--              <UserSelectV2 :limit='1' :userName="scope.row.userName" @getValue='(value, label) => {scope.row.userName = label}'></UserSelectV2>-->
-              </template>
-            </vxe-table-column>
-            <vxe-table-column field="deptName" title="报销部门" :edit-render="{}" show-overflow="title">
-              <template #edit="scope">
-                <el-input :disabled='true' v-model="scope.row.deptName"></el-input>
-              </template>
-            </vxe-table-column>
-            <vxe-table-column field="typeName" title="报销类别" :edit-render="{}" show-overflow="title"
-              :rules="[{ required: true, message: '请选择报销类别', trigger: 'blur' }]">
-              <template #edit="scope">
-                <el-input v-model="scope.row.typeName"
-                  @focus="typePullForm(scope.$rowIndex, scope.row.deptId)"></el-input>
-              </template>
-            </vxe-table-column>
-            <vxe-table-column field="projectName" title="报销项目" :edit-render="{}" show-overflow="title"
-              :rules="[{ required: true, message: '请选择报销项目', trigger: 'blur' }]">
-              <template #edit="scope">
-                <el-input v-model="scope.row.projectName"
-                  @focus="openProgramPageForm(scope.$rowIndex, scope.row)"></el-input>
-              </template>
-            </vxe-table-column>
-            <!--            <vxe-table-column field="reportNumber" title="报告号" :edit-render="{}">-->
-            <!--              <template v-slot:edit="scope">-->
-            <!--                <el-input :readonly="true" v-model="scope.row.reportNumber" @focus="openReportNoPageForm(scope.$rowIndex, scope.row)"></el-input>-->
-            <!--              </template>-->
-            <!--            </vxe-table-column>-->
-            <vxe-table-column field="number" title="费用(元)" :edit-render="{}" show-overflow="title"
-              :rules="[{ required: true, message: '请输入费用', trigger: 'blur' }]">
-              <template #edit="scope">
-                <el-input maxlength="15" v-model="scope.row.number"
-                  @input="scope.row.number = twoDecimalPlaces(scope.row.number)"></el-input>
-              </template>
-            </vxe-table-column>
-            <vxe-table-column field="receiptNumber" title="收据张数" :edit-render="{}" show-overflow="title">
-              <template #edit="scope">
-                <el-input v-model="scope.row.receiptNumber" oninput="value=value.replace(/\D|^0/g,'')"
-                  maxlength="10"></el-input>
-              </template>
-            </vxe-table-column>
-            <vxe-table-column field="days" title="出差天数" :edit-render="{}" show-overflow="title">
-              <template #edit="scope">
-                <el-input v-model="scope.row.days" oninput="value=value.replace(/\D|^0/g,'')" maxlength="10"></el-input>
-              </template>
-            </vxe-table-column>
-            <vxe-table-column field="content" title="内容" :edit-render="{}" show-overflow="title">
-              <template #edit="scope">
-                <el-input v-model="scope.row.content"></el-input>
-              </template>
-            </vxe-table-column>
-            <vxe-table-column title="操作" width="100">
-              <template #default="scope">
-                <el-button size="default" type="danger"
-                  @click="removeEvent(scope.row, scope.$rowIndex, 'detail')">删除</el-button>
-              </template>
-            </vxe-table-column>
-          </vxe-table>
-        </el-row>
-      </div>
-      <div v-if="inputForm.sourceType === '2'">
-        <el-divider content-position="left"><i class="el-icon-document"></i>
-          合同报销详情
-          <el-button size="default" style="margin-left: 20px" type="primary"
-            :disabled="method === 'view' || status === 'audit' || status === 'taskFormDetail'"
-            @click="insertEvent('contract_detail')" plain>
-            新增
-          </el-button>
-        </el-divider>
-        <el-row :gutter="15">
-          <vxe-table border show-footer show-overflow :footer-method="footerMethod" ref="detailTableContract"
-            :key="detailKeyContract" class="vxe-table-element" :data="inputForm.detailInfoContracts"
-            style="margin-left: 5em" highlight-current-row
-            :edit-config="{ trigger: 'click', mode: 'row', showStatus: true, autoClear: true, icon: '_' }"
-            :edit-rules="validRules">
-            <vxe-table-column field="userName" title="报销人" :edit-render="{}" show-overflow="title"
-              :rules="[{ required: true, message: '请选择报销人', trigger: 'blur' }]">
-              <template #edit="scope">
-                <el-input v-model="scope.row.userName" @focus="userPullListForm2(scope.$rowIndex)"></el-input>
-                <!--              <UserSelectV2 :limit='1' :userName="scope.row.userName" @getValue='(value, label) => {scope.row.userName = label}'></UserSelectV2>-->
-              </template>
-            </vxe-table-column>
-            <vxe-table-column field="deptName" title="报销部门" :edit-render="{}" show-overflow="title">
-              <template #edit="scope">
-                <el-input :disabled='true' v-model="scope.row.deptName"></el-input>
-              </template>
-            </vxe-table-column>
-            <vxe-table-column field="typeName" title="报销类别" :edit-render="{}" show-overflow="title"
-              :rules="[{ required: true, message: '请选择报销类别', trigger: 'blur' }]">
-              <template #edit="scope">
-                <el-input v-model="scope.row.typeName"
-                  @focus="typePullForm2(scope.$rowIndex, scope.row.deptId)"></el-input>
-              </template>
-            </vxe-table-column>
-            <vxe-table-column field="contractName" title="报销合同" :edit-render="{}" show-overflow="title"
-              :rules="[{ required: true, message: '请选择报销合同', trigger: 'blur' }]">
-              <template #edit="scope">
-                <el-input v-model="scope.row.contractName"
-                  @focus="openContractForm(scope.$rowIndex, scope.row)"></el-input>
-              </template>
-            </vxe-table-column>
-            <!--            <vxe-table-column field="reportNumber" title="报告号" :edit-render="{}">-->
-            <!--              <template v-slot:edit="scope">-->
-            <!--                <el-input :readonly="true" v-model="scope.row.reportNumber" @focus="openReportNoPageForm(scope.$rowIndex, scope.row)"></el-input>-->
-            <!--              </template>-->
-            <!--            </vxe-table-column>-->
-            <vxe-table-column field="number" title="费用(元)" :edit-render="{}" show-overflow="title"
-              :rules="[{ required: true, message: '请输入费用', trigger: 'blur' }]">
-              <template #edit="scope">
-                <el-input maxlength="15" v-model="scope.row.number"
-                  @input="scope.row.number = twoDecimalPlaces(scope.row.number)"></el-input>
-              </template>
-            </vxe-table-column>
-            <vxe-table-column field="receiptNumber" title="收据张数" :edit-render="{}" show-overflow="title">
-              <template #edit="scope">
-                <el-input v-model="scope.row.receiptNumber" oninput="value=value.replace(/\D|^0/g,'')"
-                  maxlength="10"></el-input>
-              </template>
-            </vxe-table-column>
-            <vxe-table-column field="days" title="出差天数" :edit-render="{}" show-overflow="title">
-              <template #edit="scope">
-                <el-input v-model="scope.row.days" oninput="value=value.replace(/\D|^0/g,'')" maxlength="10"></el-input>
-              </template>
-            </vxe-table-column>
-            <vxe-table-column field="content" title="内容" :edit-render="{}" show-overflow="title">
-              <template #edit="scope">
-                <el-input v-model="scope.row.content"></el-input>
-              </template>
-            </vxe-table-column>
-            <vxe-table-column title="操作" width="100">
-              <template #default="scope">
-                <el-button size="default" type="danger"
-                  @click="removeEvent(scope.row, scope.$rowIndex, 'contract_detail')">删除</el-button>
-              </template>
-            </vxe-table-column>
-          </vxe-table>
-        </el-row>
-      </div>
-      <div v-if="inputForm.sourceType === '3'">
-        <el-divider content-position="left"><i class="el-icon-document"></i>
-          报告报销详情
-          <el-button size="default" style="margin-left: 20px" type="primary"
-            :disabled="method === 'view' || status === 'audit' || status === 'taskFormDetail'"
-            @click="insertEvent('report_detail')" plain>
-            新增
-          </el-button>
-        </el-divider>
-        <el-row :gutter="15">
-          <vxe-table border show-footer show-overflow :footer-method="footerMethod" ref="detailTableReport"
-            :key="detailKeyReport" class="vxe-table-element" :data="inputForm.detailInfoReports"
-            style="margin-left: 5em" highlight-current-row
-            :edit-config="{ trigger: 'click', mode: 'row', showStatus: true, autoClear: true, icon: '_' }"
-            :edit-rules="validRules">
-            <vxe-table-column field="userName" title="报销人" :edit-render="{}" show-overflow="title"
-              :rules="[{ required: true, message: '请选择报销人', trigger: 'blur' }]">
-              <template #edit="scope">
-                <el-input v-model="scope.row.userName" @focus="userPullListForm3(scope.$rowIndex)"></el-input>
-                <!--              <UserSelectV2 :limit='1' :userName="scope.row.userName" @getValue='(value, label) => {scope.row.userName = label}'></UserSelectV2>-->
-              </template>
-            </vxe-table-column>
-            <vxe-table-column field="deptName" title="报销部门" :edit-render="{}" show-overflow="title">
-              <template #edit="scope">
-                <el-input :disabled='true' v-model="scope.row.deptName"></el-input>
-              </template>
-            </vxe-table-column>
-            <vxe-table-column field="typeName" title="报销类别" :edit-render="{}" show-overflow="title"
-              :rules="[{ required: true, message: '请选择报销类别', trigger: 'blur' }]">
-              <template #edit="scope">
-                <el-input v-model="scope.row.typeName"
-                  @focus="typePullForm3(scope.$rowIndex, scope.row.deptId)"></el-input>
-              </template>
-            </vxe-table-column>
-            <vxe-table-column field="projectName" title="报销项目" :edit-render="{}" show-overflow="title"
-              :rules="[{ required: true, message: '请选择报销项目', trigger: 'blur' }]">
-              <template #edit="scope">
-                <el-input v-model="scope.row.projectName"
-                  @focus="openProgramPageForm3(scope.$rowIndex, scope.row)"></el-input>
-              </template>
-            </vxe-table-column>
-            <vxe-table-column field="reportNumber" title="报告号" :edit-render="{}" show-overflow="title">
-              <template #edit="scope">
-                <el-input :readonly="true" v-model="scope.row.reportNumber"
-                  @focus="openReportNoPageForm(scope.$rowIndex, scope.row)"></el-input>
-              </template>
-            </vxe-table-column>
-            <vxe-table-column field="number" title="费用(元)" :edit-render="{}" show-overflow="title"
-              :rules="[{ required: true, message: '请输入费用', trigger: 'blur' }]">
-              <template #edit="scope">
-                <el-input maxlength="15" v-model="scope.row.number"
-                  @input="scope.row.number = twoDecimalPlaces(scope.row.number)"></el-input>
-              </template>
-            </vxe-table-column>
-            <vxe-table-column field="receiptNumber" title="收据张数" :edit-render="{}" show-overflow="title">
-              <template #edit="scope">
-                <el-input v-model="scope.row.receiptNumber" oninput="value=value.replace(/\D|^0/g,'')"
-                  maxlength="10"></el-input>
-              </template>
-            </vxe-table-column>
-            <vxe-table-column field="days" title="出差天数" :edit-render="{}" show-overflow="title">
-              <template #edit="scope">
-                <el-input v-model="scope.row.days" oninput="value=value.replace(/\D|^0/g,'')" maxlength="10"></el-input>
-              </template>
-            </vxe-table-column>
-            <vxe-table-column field="content" title="内容" :edit-render="{}" show-overflow="title">
-              <template #edit="scope">
-                <el-input v-model="scope.row.content"></el-input>
-              </template>
-            </vxe-table-column>
-            <vxe-table-column title="操作" width="100">
-              <template #default="scope">
-                <el-button size="default" type="danger"
-                  @click="removeEvent(scope.row, scope.$rowIndex, 'report_detail')">删除</el-button>
-              </template>
-            </vxe-table-column>
-          </vxe-table>
-        </el-row>
-      </div>
-      <div v-if="inputForm.sourceType === '4'">
-        <el-divider content-position="left"><i class="el-icon-document"></i>
-          其他报销详情
-          <el-button size="default" style="margin-left: 20px" type="primary"
-            :disabled="method === 'view' || status === 'audit' || status === 'taskFormDetail'"
-            @click="insertEvent('others')" plain>
-            新增
-          </el-button>
-        </el-divider>
-        <el-row :gutter="15">
-          <el-col :span="24">
-            <vxe-table border show-footer show-overflow :footer-method="footerMethod" ref="detailTableOthers"
-              class="vxe-table-element" :data="inputForm.detailInfoOthers" style="margin-left: 5em"
-              :key="detailKeyOthers" highlight-current-row
-              :edit-config="{ trigger: 'click', mode: 'row', showStatus: true, autoClear: true, icon: '_' }"
-              :edit-rules="validRules" :row-config="{ keyField: 'uniqueId' }"
-              :expand-config="{ expandAll: false, accordion: false, toggleMethod: handleExpand, expandRowKeys: handleDefaultExpand() }">
-              <vxe-column type="expand" width="80">
-                <template #content="{ row, rowIndex }">
-                  <InvoiceReimbursementUpLoadComponent v-if="row.reimbursementType == 1"
-                    @changeConfirmList="changeConfirmList" @handleCount="handleCount"
-                    @handleUploadSuccess="handleUploadSuccess" :ref="row.uniqueId + 'Upload'"
-                    v-show="'1' === this.inputForm.reimbursementType">
-                  </InvoiceReimbursementUpLoadComponent>
-                  <UpLoadComponent @handleUploadSuccess="handleUploadSuccess" v-if="row.reimbursementType == 0"
-                    :ref="row.uniqueId + 'UploadFiles'">
-                  </UpLoadComponent>
-                </template>
-              </vxe-column>
-              <vxe-table-column field="userName" title="报销人" :edit-render="{}" show-overflow="title"
-                :rules="[{ required: true, message: '请选择报销人', trigger: 'blur' }]">
-                <template #edit="scope">
-                  <el-input v-model="scope.row.userName" @focus="userPullListForm4(scope.$rowIndex)"></el-input>
-                  <!--              <UserSelectV2 :limit='1' :userName="scope.row.userName" @getValue='(value, label) => {scope.row.userName = label}'></UserSelectV2>-->
-                </template>
-              </vxe-table-column>
-              <vxe-table-column field="deptName" title="报销部门" :edit-render="{}" show-overflow="title">
-                <template #edit="scope">
-                  <el-input :disabled='true' v-model="scope.row.deptName"></el-input>
-                </template>
-              </vxe-table-column>
-              <vxe-table-column field="reimbursementType" title="报销类型" :edit-render="{}" show-overflow="title">
-                <template #default="{ row }">
-                  <span>{{ $dictUtils.getDictLabel('reimbursement_type', row.reimbursementType,
-                    '') }}</span>
-                </template>
-                <template #edit="{ row }">
-                  <vxe-select :disabled="method === 'view' || status === 'audit' || status === 'taskFormDetail'"
-                    @change="handleChangeType" v-model="row.reimbursementType" placeholder="请选择报销类型" transfer>
-                    <vxe-option v-for="item in $dictUtils.getDictList('reimbursement_type')" :key="item.value"
-                      :value="item.value" :label="item.label"></vxe-option>
-                  </vxe-select>
-                </template>
-              </vxe-table-column>
-              <vxe-table-column field="typeName" title="报销类别" :edit-render="{}" show-overflow="title"
-                :rules="[{ required: true, message: '请选择报销类别', trigger: 'blur' }]">
-                <template #edit="scope">
-                  <el-input v-model="scope.row.typeName"
-                    @focus="typePullForm4(scope.$rowIndex, scope.row.deptId)"></el-input>
-                </template>
-              </vxe-table-column>
-              <vxe-table-column field="projectName" title="报销详情" :edit-render="{}" show-overflow="title"
-                :rules="[{ required: true, message: '请填写报销详情', trigger: 'blur' }]">
-                <template #edit="scope">
-                  <el-input v-model="scope.row.projectName"
-                    @focus="openProgramPageForm4(scope.$rowIndex, scope.row)"></el-input>
-                </template>
-              </vxe-table-column>
-              <!--            <vxe-table-column field="reportNumber" title="报告号" :edit-render="{}">-->
-              <!--              <template v-slot:edit="scope">-->
-              <!--                <el-input :readonly="true" v-model="scope.row.reportNumber" @focus="openReportNoPageForm(scope.$rowIndex, scope.row)"></el-input>-->
-              <!--              </template>-->
-              <!--            </vxe-table-column>-->
-              <vxe-table-column field="number" title="费用(元)" :edit-render="{}" show-overflow="title"
-                :rules="[{ required: true, message: '请输入费用', trigger: 'blur' }]">
-                <template #edit="scope">
-                  <el-input maxlength="15" v-model="scope.row.number"
-                    @input="scope.row.number = twoDecimalPlaces(scope.row.number)"></el-input>
-                </template>
-              </vxe-table-column>
-              <vxe-table-column field="receiptNumber" title="收据张数" :edit-render="{}" show-overflow="title">
-                <template #edit="scope">
-                  <el-input v-model="scope.row.receiptNumber" oninput="value=value.replace(/\D|^0/g,'')"
-                    maxlength="10"></el-input>
-                </template>
-              </vxe-table-column>
-              <vxe-table-column field="days" title="出差天数" :edit-render="{}" show-overflow="title">
-                <template #edit="scope">
-                  <el-input v-model="scope.row.days" oninput="value=value.replace(/\D|^0/g,'')"
-                    maxlength="10"></el-input>
-                </template>
-              </vxe-table-column>
-              <vxe-table-column field="content" title="内容" :edit-render="{}" show-overflow="title">
-                <template #edit="scope">
-                  <el-input v-model="scope.row.content"></el-input>
-                </template>
-              </vxe-table-column>
-              <vxe-table-column title="操作" width="180">
-                <template #default="scope">
-                  <el-button size="default" @click="uploadFile(scope.row, scope.$rowIndex,)"
-                    type="primary">上传</el-button>
-                  <el-button size="default" type="danger"
-                    @click="removeEvent(scope.row, scope.$rowIndex, 'others')">删除</el-button>
-                </template>
-              </vxe-table-column>
-            </vxe-table>
-          </el-col>
-        </el-row>
-      </div>
-      <div v-if="inputForm.sourceType === '5'">
-        <el-divider content-position="left"><i class="el-icon-document"></i>
-          采购报销详情
-          <el-button size="default" style="margin-left: 20px" type="primary"
-            :disabled="method === 'view' || this.formReadOnly" @click="insertEvent('procured')" plain>
-            新增
-          </el-button>
-        </el-divider>
-        <el-row :gutter="15">
-          <vxe-table border show-footer show-overflow :footer-method="footerMethod" ref="detailTableProcured"
-            class="vxe-table-element" :data="inputForm.detailInfoProcured" style="margin-left: 5em"
-            :key="detailKeyProcured" highlight-current-row
-            :edit-config="{ trigger: 'click', mode: 'row', showStatus: true, autoClear: true, icon: '_' }"
-            :edit-rules="validRules">
-            <vxe-table-column field="userName" title="报销人" :edit-render="{}" show-overflow="title"
-              :rules="[{ required: true, message: '请选择报销人', trigger: 'blur' }]">
-              <template #edit="scope">
-                <el-input v-model="scope.row.userName" @focus="userPullListForm5(scope.$rowIndex)"></el-input>
-                <!--              <UserSelectV2 :limit='1' :userName="scope.row.userName" @getValue='(value, label) => {scope.row.userName = label}'></UserSelectV2>-->
-              </template>
-            </vxe-table-column>
-            <vxe-table-column field="deptName" title="报销部门" :edit-render="{}" show-overflow="title">
-              <template #edit="scope">
-                <el-input :disabled='true' v-model="scope.row.deptName"></el-input>
-              </template>
-            </vxe-table-column>
-            <vxe-table-column field="typeName" title="报销类别" :edit-render="{}" show-overflow="title"
-              :rules="[{ required: true, message: '请选择报销类别', trigger: 'blur' }]">
-              <template #edit="scope">
-                <el-input v-model="scope.row.typeName"
-                  @focus="typePullForm5(scope.$rowIndex, scope.row.deptId)"></el-input>
-              </template>
-            </vxe-table-column>
-            <vxe-table-column field="projectName" title="报销项目" :edit-render="{}" show-overflow="title"
-              :rules="[{ required: true, message: '请选择报销项目', trigger: 'blur' }]">
-              <template #edit="scope">
-                <el-input v-model="scope.row.projectName"
-                  @focus="openProgramPageForm5(scope.$rowIndex, scope.row)"></el-input>
-              </template>
-            </vxe-table-column>
-            <!--            <vxe-table-column field="reportNumber" title="报告号" :edit-render="{}">-->
-            <!--              <template v-slot:edit="scope">-->
-            <!--                <el-input :readonly="true" v-model="scope.row.reportNumber" @focus="openReportNoPageForm(scope.$rowIndex, scope.row)"></el-input>-->
-            <!--              </template>-->
-            <!--            </vxe-table-column>-->
-            <vxe-table-column field="number" title="费用(元)" :edit-render="{}" show-overflow="title"
-              :rules="[{ required: true, message: '请输入费用', trigger: 'blur' }]">
-              <template #edit="scope">
-                <el-input maxlength="15" v-model="scope.row.number"
-                  @input="scope.row.number = twoDecimalPlaces(scope.row.number)"></el-input>
-              </template>
-            </vxe-table-column>
-            <vxe-table-column field="receiptNumber" title="收据张数" :edit-render="{}" show-overflow="title">
-              <template #edit="scope">
-                <el-input v-model="scope.row.receiptNumber" oninput="value=value.replace(/\D|^0/g,'')"
-                  maxlength="10"></el-input>
-              </template>
-            </vxe-table-column>
-            <vxe-table-column field="days" title="出差天数" :edit-render="{}" show-overflow="title">
-              <template #edit="scope">
-                <el-input v-model="scope.row.days" oninput="value=value.replace(/\D|^0/g,'')" maxlength="10"></el-input>
-              </template>
-            </vxe-table-column>
-            <vxe-table-column field="content" title="内容" :edit-render="{}" show-overflow="title">
-              <template #edit="scope">
-                <el-input v-model="scope.row.content"></el-input>
-              </template>
-            </vxe-table-column>
-            <vxe-table-column title="操作" width="100">
-              <template #default="scope">
-                <el-button size="default" type="danger"
-                  @click="removeEvent(scope.row, scope.$rowIndex, 'procured')">删除</el-button>
-              </template>
-            </vxe-table-column>
-          </vxe-table>
-        </el-row>
-      </div>
-      <div v-if="inputForm.reimbursementType === '0'">
-        <el-divider content-position="left"><i class="el-icon-document"></i>
-          专用发票信息
-          <el-button size="default" style="margin-left: 10px" type="primary"
-            :disabled="method === 'view' || status === 'audit' || status === 'taskFormDetail'"
-            @click="insertEvent('amount')" plain>
-            新增
-          </el-button>
-        </el-divider>
-        <el-row :gutter="15">
-          <el-col :span="24">
-            <vxe-table border show-overflow ref="amountTable" class="vxe-table-element" :data="inputForm.amountInfos"
-              style="margin-left: 5em" :key="amountKey" highlight-current-row
-              :edit-config="{ trigger: 'click', mode: 'row', showStatus: true, autoClear: true, icon: '_' }">
-              <vxe-table-column field="code" title="发票代码" :edit-render="{}" show-overflow="title">
-                <template #edit="scope">
-                  <el-input oninput="value=value.replace(/\D|^/g,'')" maxlength="20"
-                    v-model="scope.row.code"></el-input>
-                </template>
-              </vxe-table-column>
-              <vxe-table-column field="number" title="发票号" :edit-render="{}" show-overflow="title">
-                <template #edit="scope">
-                  <el-input oninput="value=value.replace(/\D|^/g,'')" maxlength="8" @change="isExict(scope.row)"
-                    v-model="scope.row.number"></el-input>
-                </template>
-              </vxe-table-column>
-              <vxe-table-column field="amount" title="金额" :edit-render="{}" show-overflow="title">
-                <template #edit="scope">
-                  <el-input maxlength="15" v-model="scope.row.amount"
-                    @input="scope.row.amount = twoDecimalPlaces(scope.row.amount)"
-                    @change="countAmount(scope.row)"></el-input>
-                </template>
-              </vxe-table-column>
-              <vxe-table-column field="taxAmount" title="税额" :edit-render="{}" show-overflow="title">
-                <template #edit="scope">
-                  <el-input maxlength="15" v-model="scope.row.taxAmount"
-                    @input="scope.row.taxAmount = twoDecimalPlaces(scope.row.taxAmount)"
-                    @change="countAmount(scope.row)"></el-input>
-                </template>
-              </vxe-table-column>
-              <vxe-table-column field="count" title="价税合计" :edit-render="{}" show-overflow="title">
-                <template #edit="scope">
-                  <el-input disabled="true" v-model="scope.row.count"></el-input>
-                </template>
-              </vxe-table-column>
-              <vxe-table-column title="操作" width="100">
-                <template #default="scope">
-                  <el-button size="default" type="danger"
-                    @click="removeEvent(scope.row, scope.$rowIndex, 'amount')">删除</el-button>
-                </template>
-              </vxe-table-column>
-            </vxe-table>
-          </el-col>
 
-        </el-row>
-      </div>
-      <!--		<div v-if="inputForm.reimbursementType === '1'">-->
-      <!--			<el-divider content-position="left">-->
-      <!--				电子发票信息-->
-      <!--				&lt;!&ndash;<el-button style="margin-left: 20px" type="primary" :disabled="method==='view' || status === 'audit' || status === 'taskFormDetail' " size="default" @click="insertEvent('invoiceReimbursement')" plain>-->
-      <!--					新增-->
-      <!--				</el-button>&ndash;&gt;-->
-      <!--			</el-divider>-->
-      <!--			<el-row  :gutter="15" >-->
-      <!--				<el-col :span="24">-->
-      <!--					<vxe-table-->
-      <!--						border-->
-      <!--						show-footer-->
-      <!--						show-overflow-->
-      <!--						ref="invoiceReimbursementTable"-->
-      <!--						class="vxe-table-element"-->
-      <!--						:data="inputForm.invoiceReimbursements"-->
-      <!--						style="margin-left: 5em"-->
-      <!--						:footer-method="footerMethod1111"-->
-      <!--						:key="invoiceReimbursementKey"-->
-      <!--						highlight-current-row-->
-      <!--						:edit-config="{trigger: 'click', mode: 'row', showStatus: true, autoClear: true, icon:'_'}"-->
-      <!--						:edit-rules="invoiceReimbursementRules"-->
-      <!--					>-->
-      <!--						<vxe-table-column  field="invoiceType" title="发票类型" show-overflow="title" :edit-render="{name: '$select', options: $dictUtils.getDictList('invoice_reimbursement_type')}">-->
-      <!--							<template v-slot:edit="scope">-->
-      <!--								<vxe-select :disabled="true" v-model="scope.row.invoiceType" placeholder="请选择发票类型" clearable style="width: 100%;" transfer>-->
-      <!--									<vxe-option-->
-      <!--										v-for="item in $dictUtils.getDictList('invoice_reimbursement_type')"-->
-      <!--										:key="item.value"-->
-      <!--										:label="item.label"-->
-      <!--										:value="item.value">-->
-      <!--									</vxe-option>-->
-      <!--								</vxe-select>-->
-      <!--							</template>-->
-      <!--						</vxe-table-column>-->
-      <!--						<vxe-table-column field="invoiceProjectName" title="发票项目名" :edit-render="{}" show-overflow="title">-->
-      <!--							<template #edit="scope">-->
-      <!--								<el-input maxlength="50" readonly="true" v-model="scope.row.invoiceProjectName" ></el-input>-->
-      <!--							</template>-->
-      <!--						</vxe-table-column>-->
-      <!--						<vxe-table-column field="number" title="发票号" :edit-render="{}" show-overflow="title">-->
-      <!--							<template #edit="scope">-->
-      <!--								<el-input oninput ="value=value.replace(/\D|^/g,'')" readonly="true" maxlength="30" @change="isExict(scope.row)" v-model="scope.row.number" ></el-input>-->
-      <!--							</template>-->
-      <!--						</vxe-table-column>-->
-      <!--						<vxe-table-column field="invoiceDate" title="开票日期" :edit-render="{}" show-overflow="title">-->
-      <!--							<template v-slot:edit="scope">-->
-      <!--								<vxe-input v-model="scope.row.invoiceDate" :disabled="true"  type="datetime" transfer placeholder="请选择日期"></vxe-input>-->
-      <!--							</template>-->
-      <!--						</vxe-table-column>-->
-      <!--						<vxe-table-column field="invoiceUnit" title="开票单位" :edit-render="{}" show-overflow="title">-->
-      <!--							<template #edit="scope">-->
-      <!--								<el-input maxlength="50" readonly="true" v-model="scope.row.invoiceUnit" ></el-input>-->
-      <!--							</template>-->
-      <!--						</vxe-table-column>-->
-      <!--						<vxe-table-column field="buyerName" title="购买方名称" :edit-render="{}" show-overflow="title">-->
-      <!--							<template #edit="scope">-->
-      <!--								<el-input maxlength="50" readonly="true" v-model="scope.row.buyerName" ></el-input>-->
-      <!--							</template>-->
-      <!--						</vxe-table-column>-->
-      <!--						<vxe-table-column field="amount" title="金额" :edit-render="{}" show-overflow="title">-->
-      <!--							<template #edit="scope">-->
-      <!--								<el-input maxlength="15" readonly="true" v-model="scope.row.amount" @input="scope.row.amount = twoDecimalPlaces(scope.row.amount)" @change="countAmount(scope.row)"></el-input>-->
-      <!--							</template>-->
-      <!--						</vxe-table-column>-->
-      <!--						<vxe-table-column field="taxAmount" title="税额" :edit-render="{}" show-overflow="title">-->
-      <!--							<template #edit="scope">-->
-      <!--								<el-input maxlength="15" readonly="true" v-model="scope.row.taxAmount" @input="scope.row.taxAmount = twoDecimalPlaces(scope.row.taxAmount)" @change="countAmount(scope.row)"></el-input>-->
-      <!--							</template>-->
-      <!--						</vxe-table-column>-->
-      <!--						<vxe-table-column field="count" title="价税合计" :edit-render="{}" show-overflow="title">-->
-      <!--							<template #edit="scope">-->
-      <!--								<el-input disabled="true" v-model="scope.row.count" ></el-input>-->
-      <!--							</template>-->
-      <!--						</vxe-table-column>-->
-      <!--						<vxe-table-column field="remarks" title="备注" :edit-render="{}" show-overflow="title">-->
-      <!--							<template #edit="scope">-->
-      <!--								<el-input maxlength="250" v-model="scope.row.remarks" ></el-input>-->
-      <!--							</template>-->
-      <!--						</vxe-table-column>-->
-      <!--						&lt;!&ndash;<vxe-table-column title="操作" width="100">-->
-      <!--							<template #default="scope">-->
-      <!--								<el-button size="default" type="danger" @click="removeEvent(scope.row,scope.$rowIndex,'invoiceReimbursement')">删除</el-button>-->
-      <!--							</template>-->
-      <!--						</vxe-table-column>&ndash;&gt;-->
-      <!--					</vxe-table>-->
-      <!--				</el-col>-->
-      <!--			</el-row>-->
-      <!--		</div>-->
+
+      <ReimbursementComponent ref="reimbursementComponent">
+      </ReimbursementComponent>
+
       <!--      <ProgramPageForm ref="programPageForm" @getProgram="getProgram"></ProgramPageForm>-->
       <CwProgramPageForm ref="cwProgramPageForm" @getProgram="getProgram"></CwProgramPageForm>
       <CwProgramPageForm ref="cwProgramPageForm3" @getProgram="getProgram3"></CwProgramPageForm>
@@ -701,7 +110,7 @@
     <!-- <InvoiceReimbursementUpLoadComponent @changeConfirmList="changeConfirmList"
       ref="invoiceReimbursementUpLoadComponent" v-show="'1' === this.inputForm.reimbursementType">
     </InvoiceReimbursementUpLoadComponent> -->
-    <!-- <UpLoadComponent ref="uploadComponent"></UpLoadComponent> -->
+    <UpLoadComponent ref="uploadComponent"></UpLoadComponent>
     <WorkContractChooseCom ref="workContractChooseCom" @getContract="getContract"></WorkContractChooseCom>
     <ReportNoChooseRadio ref="reportNoChooseRadio" @getWorkClientRadioChoose="getWorkClientChoose2">
     </ReportNoChooseRadio>
@@ -716,7 +125,7 @@ import ReportNoChooseRadio from './ReportNoChooseRadio'
 import ReimbursementService from '@/api/consultancy/reimbursement/ReimbursementService'
 import ReimbursementTypeService from '@/api/consultancy/reimbursement/ReimbursementTypeService'
 import InvoiceReimbursementUpLoadComponent from '@/views/common/NewDigitalInvoiceUploadComponent'
-import UpLoadComponent from '@/views/common/NewUpLoadComponent'
+import UpLoadComponent from '@/views/common/UpLoadComponent'
 // import SelectUserTree from '@/views/utils/treeUserSelect'
 // import SelectTree from '@/components/treeSelect/treeSelect.vue'
 import XEUtils from 'xe-utils'
@@ -731,6 +140,7 @@ import processService from '@/api/flowable/processService'
 // import MaterialManagementService from '@/api/materialManagement/MaterialManagementService'
 //import MaterialManagementDialog from '../../../'
 import userService from '@/api/sys/UserService'
+import ReimbursementComponent from '@/views/common/reimbursement/ReimbursementComponent.vue'
 export default {
   props: {
     businessId: {
@@ -889,6 +299,7 @@ export default {
     // this.materialManagementService = new MaterialManagementService()
   },
   components: {
+    ReimbursementComponent,
     InvoiceReimbursementUpLoadComponent,
     UpLoadComponent,
     // SelectUserTree,
@@ -945,6 +356,9 @@ export default {
     },
     getUpload() {
     },
+    initReimbursementComponent() {
+      this.$refs.reimbursementComponent.initComponent("reimbursement", "consultancy", "南京兴光培训咨询有限公司", this.inputForm, this.isConfirm, this.status)
+    },
     init(method, id) {
       this.method = method
       this.inputForm = {
@@ -985,7 +399,7 @@ export default {
         this.loading = true
         this.$refs.inputForm.resetFields()
         // this.$refs.invoiceReimbursementUpLoadComponent.clearUpload()
-        // this.$refs.uploadComponent.clearUpload()
+        this.$refs.uploadComponent.clearUpload()
         this.reimbursementService.findById(this.inputForm.id).then((data) => {
           if (this.status === 'audit' || this.status === 'taskFormDetail') {
             method = 'view'
@@ -1020,7 +434,7 @@ export default {
             this.payment = '未付款'
           }
           // this.$refs.invoiceReimbursementUpLoadComponent.newUpload(method, this.inputForm.invoiceReimbursementFiles, 'reimbursement', 300, '数电发票信息', null, null, null, '南京兴光培训咨询有限公司')
-          // this.$refs.uploadComponent.newUpload(method, this.inputForm.files, 'reimbursement')
+          this.$refs.uploadComponent.newUpload(method, this.inputForm.files, 'reimbursement')
           if (this.commonJS.isNotEmpty(this.inputForm.purchaseId)) {
             // this.startPur(this.inputForm.purchaseId)
           }
@@ -1036,6 +450,7 @@ export default {
             if (this.status == "startAndHold" || this.method == "add") {
               this.isConfirm = 3
             }
+            this.initReimbursementComponent()
           })
           // 获取文件确认状态
           this.reimbursementService.getListByUser(this.inputForm.id).then(data => {
@@ -1050,13 +465,14 @@ export default {
               }
             });
           })
+
           this.loading = false
         })
-        // if (method !== 'edit' && method !== 'view') {
-        //   this.$refs.invoiceReimbursementUpLoadComponent.newUpload(method, [], 'reimbursement')
-        //   this.$refs.uploadComponent.newUpload(method, [], 'reimbursement')
-        //   this.loading = false
-        // }
+        if (method !== 'edit' && method !== 'view') {
+          //   this.$refs.invoiceReimbursementUpLoadComponent.newUpload(method, [], 'reimbursement')
+          this.$refs.uploadComponent.newUpload(method, [], 'reimbursement')
+          this.loading = false
+        }
         userService.isZj().then((data) => {
           this.isZj = data
         })
@@ -1077,10 +493,10 @@ export default {
           //   this.loading = false
           //   return
           // }
-          // if (this.$refs.uploadComponent.checkProgress()) {
-          //   this.loading = false
-          //   return
-          // }
+          if (this.$refs.uploadComponent.checkProgress()) {
+            this.loading = false
+            return
+          }
           if (this.commonJS.isEmpty(this.inputForm.invoiceReimbursementFiles)) {
             this.inputForm.invoiceReimbursementFiles = []
           }
@@ -1090,7 +506,7 @@ export default {
           this.dataFiltering()
           this.inputForm.id = this.businessId
           // this.inputForm.invoiceReimbursementFiles = this.$refs.invoiceReimbursementUpLoadComponent.getDataList()
-          // this.inputForm.files = this.$refs.uploadComponent.getDataList()
+          this.inputForm.files = this.$refs.uploadComponent.getDataList()
           this.reimbursementService.save(this.inputForm).then((data) => {
             this.close()
             this.$message.success(data)
@@ -1199,7 +615,7 @@ export default {
       this.inputForm.amountInfos = []
       this.inputForm.invoiceReimbursements = []
       // this.$refs.invoiceReimbursementUpLoadComponent.clearUpload()
-      // this.$refs.uploadComponent.clearUpload()
+      this.$refs.uploadComponent.clearUpload()
       this.visible = false
     },
     // 删除
@@ -1356,10 +772,10 @@ export default {
       //   this.loading = false
       //   return
       // }
-      // if (this.$refs.uploadComponent.checkProgress()) {
-      //   this.loading = false
-      //   return
-      // }
+      if (this.$refs.uploadComponent.checkProgress()) {
+        this.loading = false
+        return
+      }
       if (this.commonJS.isEmpty(this.inputForm.invoiceReimbursementFiles)) {
         this.inputForm.invoiceReimbursementFiles = []
       }
@@ -1367,7 +783,7 @@ export default {
         this.inputForm.files = []
       }
       // this.inputForm.invoiceReimbursementFiles = this.$refs.invoiceReimbursementUpLoadComponent.getDataList()
-      // this.inputForm.files = this.$refs.uploadComponent.getDataList()
+      this.inputForm.files = this.$refs.uploadComponent.getDataList()
       this.inputForm.type = '1'
       this.reimbursementService.save(this.inputForm).then(() => {
         callback()
@@ -1391,6 +807,8 @@ export default {
     },
     // 送审
     async startForm(callback) {
+      this.getReimbursementData()
+
       let title = `发起流程【咨询-报销审批】`
       let describe = `[咨询-报销审批]`
       if (this.inputForm.reimbursementType) {
@@ -1467,10 +885,10 @@ export default {
           //   this.loading = false
           //   return
           // }
-          // if (this.$refs.uploadComponent.checkProgress()) {
-          //   this.loading = false
-          //   return
-          // }
+          if (this.$refs.uploadComponent.checkProgress()) {
+            this.loading = false
+            return
+          }
           if (this.commonJS.isEmpty(this.inputForm.invoiceReimbursementFiles)) {
             this.inputForm.invoiceReimbursementFiles = []
           }
@@ -1483,7 +901,7 @@ export default {
           //   return
           // }
           // this.inputForm.invoiceReimbursementFiles = this.$refs.invoiceReimbursementUpLoadComponent.getDataList()
-          // this.inputForm.files = this.$refs.uploadComponent.getDataList()
+          this.inputForm.files = this.$refs.uploadComponent.getDataList()
           this.dataFiltering()
           // if(this.inputForm.invoiceReimbursementFiles<=0 && "1" === this.inputForm.reimbursementType){
           //   this.$message.error("请上传电子发票发票xml文件!")
@@ -1577,10 +995,10 @@ export default {
               return
             }
           }
-          // if (this.$refs.uploadComponent.checkProgress()) {
-          //   this.loading = false
-          //   return
-          // }
+          if (this.$refs.uploadComponent.checkProgress()) {
+            this.loading = false
+            return
+          }
           if (this.commonJS.isEmpty(this.inputForm.invoiceReimbursementFiles)) {
             this.inputForm.invoiceReimbursementFiles = []
           }
@@ -1589,7 +1007,7 @@ export default {
           }
           this.dataFiltering()
           // this.inputForm.invoiceReimbursementFiles = this.$refs.invoiceReimbursementUpLoadComponent.getDataList()
-          // this.inputForm.files = this.$refs.uploadComponent.getDataList()
+          this.inputForm.files = this.$refs.uploadComponent.getDataList()
           this.inputForm.type = '2'
           this.commonApi.getTaskNameByProcInsId(this.inputForm.procInsId).then((data) => {
             if (this.commonJS.isNotEmpty(data)) {
@@ -2023,7 +1441,7 @@ export default {
       this.inputForm.detailInfoContracts[rowIndex].contractName = row.contractName
       this.$forceUpdate()
     },
-    changeSourceType() {
+    changeSourceType(value) {
       this.inputForm.detailInfos = []
       this.inputForm.detailInfoContracts = []
       this.inputForm.detailInfoReports = []
@@ -2037,6 +1455,8 @@ export default {
       this.detailKeyReport = Math.random()
       this.detailKeyOthers = Math.random()
       this.detailKeyProcured = Math.random()
+      this.$refs.reimbursementComponent.inputForm.invoiceReimbursementFiles = []
+      this.$refs.reimbursementComponent.inputForm.sourceType = value
     },
     submitCheck() {
       if (this.commonJS.isEmpty(this.inputForm.sourceType)) {
@@ -2419,12 +1839,13 @@ export default {
 
     },
     // 触发上传按钮
-    uploadFile(row, index) {
+    async uploadFile(row, index) {
       if (this.commonJS.isEmpty(row.reimbursementType)) {
         this.$message.error("请选择报销类型")
         return
       }
       this.handleTableInfo(this.inputForm.sourceType)
+      await this.tableRef.clearEdit()
       this.tableRef.setRowExpand(this.tableData[index], true)
       setTimeout(() => {
         if (row.reimbursementType == 1) {
@@ -2475,6 +1896,7 @@ export default {
         })
         this.inputForm.files.push(...files)
       }
+      this.tableRef.updateFooter(this.tableData)
     },
     handleCheckAmount() {
       let countFlag = false
@@ -2515,6 +1937,18 @@ export default {
         }
       })
       return arr
+    },
+    getReimbursementData() {
+      this.$nextTick(() => {
+        let inputForm = this.$refs.reimbursementComponent.handleGetData()
+        this.inputForm.detailInfos = inputForm.detailInfos
+        this.inputForm.detailInfoContracts = inputForm.detailInfoContracts
+        this.inputForm.detailInfoReports = inputForm.detailInfoReports
+        this.inputForm.detailInfoProject = inputForm.detailInfoProject
+        this.inputForm.detailInfoOthers = inputForm.detailInfoOthers
+        this.inputForm.detailInfoProcured = inputForm.detailInfoProcured
+        this.inputForm.invoiceReimbursementFiles = inputForm.invoiceReimbursementFiles
+      });
     }
   }
 }

+ 27 - 709
src/views/cw/reimbursementApproval/info/NewInfoForm.vue

@@ -75,621 +75,8 @@
 						</el-form-item>
 					</el-col>
 				</el-row>
-				<div v-if="inputForm.sourceType === '5'">
-					<el-divider content-position="left"><i class="el-icon-document"></i>
-						采购详情
-					</el-divider>
-					<el-row :gutter="15">
-						<el-col :span="24">
-							<vxe-table border show-footer show-overflow :footer-method="footerMethod555" ref="preTable"
-								class="vxe-table-element" :data="inputForm.preList" style="margin-left: 5em" keep-source
-								highlight-current-row>
-								<vxe-table-column field="purchaserAgent" title="采购人" :edit-render="{}"
-									:rules="[{ required: true, message: '请选择采购人', trigger: 'blur' }]"
-									show-overflow="title"></vxe-table-column>
-								<vxe-table-column field="procurementOffice" title="采购部门" :edit-render="{}"
-									show-overflow="title"></vxe-table-column>
-								<vxe-table-column field="procurementType" title="采购类型" :edit-render="{}"
-									show-overflow="title"
-									:rules="[{ required: true, message: '请选择采购类型', trigger: 'blur' }]"></vxe-table-column>
-								<vxe-table-column field="tradeName" title="商品名称" :edit-render="{}" show-overflow="title"
-									:rules="[{ required: true, message: '请填写商品名称', trigger: 'blur' }]"></vxe-table-column>
-								<vxe-table-column field="tradePrice" title="商品单价(元)" :edit-render="{}"
-									show-overflow="title"
-									:rules="[{ required: true, message: '请输入商品单价', trigger: 'blur' }]"></vxe-table-column>
-								<vxe-table-column field="tradeNumber" title="商品数量" :edit-render="{}"
-									show-overflow="title"></vxe-table-column>
-								<vxe-table-column field="priceSum" title="商品总价" :edit-render="{}"
-									show-overflow="title"></vxe-table-column>
-								<vxe-table-column field="company" title="单位" :edit-render="{}"
-									show-overflow="title"></vxe-table-column>
-								<vxe-table-column field="remarks" title="备注" :edit-render="{}"
-									show-overflow="title"></vxe-table-column>
-								<vxe-table-column title="操作">
-									<template #default="scope">
-										<el-button type="primary" :disabled="false"
-											@click="seeFileInfo(scope.$rowIndex)">文件详情</el-button>
-									</template>
-								</vxe-table-column>
-							</vxe-table>
-						</el-col>
-					</el-row>
-				</div>
-				<div v-if="inputForm.sourceType === '1'">
-					<el-divider content-position="left"><i class="el-icon-document"></i>
-						项目报销详情
-						<el-button style="margin-left: 20px" size="small" type="primary"
-							:disabled="method === 'view' || this.formReadOnly" @click="insertEvent('detail')" plain>
-							新增
-						</el-button>
-					</el-divider>
-					<el-row :gutter="15">
-						<el-col :span="24">
-							<vxe-table border show-footer show-overflow :footer-method="footerMethod" ref="detailTable"
-								class="vxe-table-element" :data="inputForm.detailInfos" style="margin-left: 5em"
-								keep-source highlight-current-row
-								:edit-config="{ trigger: 'click', mode: 'row', showStatus: true, autoClear: true, icon: '_' }"
-								:expand-config="{ expandAll: true, accordion: false, toggleMethod: handleExpand }">
-								<vxe-column type="expand" width="80">
-									<template #content="{ row, rowIndex }">
-										<InvoiceReimbursementUpLoadComponent v-if="row.reimbursementType == 1"
-											@changeConfirmList="changeConfirmList" @handleCount="handleCount"
-											@handleUploadSuccess="handleUploadSuccess" :ref="row.uniqueId + 'Upload'"
-											v-show="'1' === this.inputForm.reimbursementType">
-										</InvoiceReimbursementUpLoadComponent>
-
-
-										<UpLoadComponent @handleUploadSuccess="handleUploadSuccess"
-											v-if="row.reimbursementType == 0" :ref="row.uniqueId + 'UploadFiles'">
-										</UpLoadComponent>
-
-									</template>
-								</vxe-column>
-								<vxe-table-column field="userName" title="报销人" :edit-render="{}" show-overflow="title"
-									:rules="[{ required: true, message: '请选择报销人', trigger: 'blur' }]">
-									<template #default="scope">
-										<el-input v-model="scope.row.userName"
-											@focus="userPullListForm(scope.$rowIndex)"></el-input>
-										<!--              <UserSelectV2 :limit='1' :userName="scope.row.userName" @getValue='(value, label) => {scope.row.userName = label}'></UserSelectV2>-->
-									</template>
-								</vxe-table-column>
-								<vxe-table-column field="deptName" title="报销部门" :edit-render="{}" show-overflow="title">
-									<template #default="scope">
-										<el-input :disabled='true' v-model="scope.row.deptName"></el-input>
-									</template>
-								</vxe-table-column>
-								<vxe-table-column field="reimbursementType" title="报销类型" :edit-render="{}"
-									show-overflow="title">
-									<template #default="{ row }">
-										<vxe-select
-											:disabled="method === 'view' || status === 'audit' || status === 'taskFormDetail'"
-											@change="handleChangeType" v-model="row.reimbursementType"
-											placeholder="请选择报销类型" transfer>
-											<vxe-option v-for="item in $dictUtils.getDictList('reimbursement_type')"
-												:key="item.value" :value="item.value" :label="item.label"></vxe-option>
-										</vxe-select>
-									</template>
-								</vxe-table-column>
-								<vxe-table-column field="typeName" title="报销类别" :edit-render="{}" show-overflow="title"
-									:rules="[{ required: true, message: '请选择报销类别', trigger: 'blur' }]">
-									<template #default="scope">
-										<el-input v-model="scope.row.typeName"
-											@focus="typePullForm(scope.$rowIndex)"></el-input>
-									</template>
-								</vxe-table-column>
-								<vxe-table-column field="projectName" title="报销项目" :edit-render="{}"
-									show-overflow="title"
-									:rules="[{ required: true, message: '请选择报销项目', trigger: 'blur' }]">
-									<template #default="scope">
-										<el-input v-model="scope.row.projectName"
-											@focus="openProgramPageForm(scope.$rowIndex, scope.row)"></el-input>
-									</template>
-								</vxe-table-column>
-								<!--            <vxe-table-column field="reportNumber" title="报告号" :edit-render="{}">-->
-								<!--              <template v-slot:edit="scope">-->
-								<!--                <el-input :readonly="true" v-model="scope.row.reportNumber" @focus="openReportNoPageForm(scope.$rowIndex, scope.row)"></el-input>-->
-								<!--              </template>-->
-								<!--            </vxe-table-column>-->
-								<vxe-table-column field="number" title="费用(元)" :edit-render="{}" show-overflow="title"
-									:rules="[{ required: true, message: '请输入费用', trigger: 'blur' }]">
-									<template #default="scope">
-										<el-input maxlength="15" v-model="scope.row.number"
-											@input="scope.row.number = twoDecimalPlaces(scope.row.number)"></el-input>
-									</template>
-								</vxe-table-column>
-								<vxe-table-column field="receiptNumber" title="收据张数" :edit-render="{}"
-									show-overflow="title">
-									<template #default="scope">
-										<el-input v-model="scope.row.receiptNumber"
-											oninput="value=value.replace(/\D|^0/g,'')" maxlength="10"></el-input>
-									</template>
-								</vxe-table-column>
-								<vxe-table-column field="days" title="出差天数" :edit-render="{}" show-overflow="title">
-									<template #default="scope">
-										<el-input v-model="scope.row.days" oninput="value=value.replace(/\D|^0/g,'')"
-											maxlength="10"></el-input>
-									</template>
-								</vxe-table-column>
-								<vxe-table-column field="content" title="内容" :edit-render="{}" show-overflow="title">
-									<template #default="scope">
-										<el-input v-model="scope.row.content"></el-input>
-									</template>
-								</vxe-table-column>
-								<vxe-table-column title="操作" width="180">
-									<template v-slot="scope">
-										<!-- <el-button size="default" @click="uploadFile(scope.row, scope.$rowIndex,)"
-											type="primary">上传</el-button> -->
-										<el-button type="danger"
-											@click="removeEvent(scope.row, scope.$rowIndex, 'detail')">删除</el-button>
-									</template>
-								</vxe-table-column>
-							</vxe-table>
-						</el-col>
-					</el-row>
-				</div>
-				<div v-if="inputForm.sourceType === '2'">
-					<el-divider content-position="left"><i class="el-icon-document"></i>
-						合同报销详情
-						<el-button style="margin-left: 20px" size="small" type="primary"
-							:disabled="method === 'view' || this.formReadOnly" @click="insertEvent('contract_detail')"
-							plain>
-							新增
-						</el-button>
-					</el-divider>
-					<el-row :gutter="15">
-						<el-col :span="24">
-							<vxe-table border show-footer show-overflow :footer-method="footerMethod"
-								ref="detailTableContract" :key="detailKeyContract" class="vxe-table-element"
-								:data="inputForm.detailInfoContracts" style="margin-left: 5em" keep-source
-								highlight-current-row
-								:edit-config="{ trigger: 'click', mode: 'row', showStatus: true, autoClear: true, icon: '_' }">
-								<vxe-table-column field="userName" title="报销人" :edit-render="{}" show-overflow="title"
-									:rules="[{ required: true, message: '请选择报销人', trigger: 'blur' }]">
-									<template #default="scope">
-										<el-input v-model="scope.row.userName"
-											@focus="userPullListForm2(scope.$rowIndex)"></el-input>
-										<!--              <UserSelectV2 :limit='1' :userName="scope.row.userName" @getValue='(value, label) => {scope.row.userName = label}'></UserSelectV2>-->
-									</template>
-								</vxe-table-column>
-								<vxe-table-column field="deptName" title="报销部门" :edit-render="{}" show-overflow="title">
-									<template #default="scope">
-										<el-input :disabled='true' v-model="scope.row.deptName"></el-input>
-									</template>
-								</vxe-table-column>
-								<vxe-table-column field="typeName" title="报销类别" :edit-render="{}" show-overflow="title"
-									:rules="[{ required: true, message: '请选择报销类别', trigger: 'blur' }]">
-									<template #default="scope">
-										<el-input v-model="scope.row.typeName"
-											@focus="typePullForm2(scope.$rowIndex)"></el-input>
-									</template>
-								</vxe-table-column>
-								<vxe-table-column field="contractName" title="报销合同" :edit-render="{}"
-									show-overflow="title"
-									:rules="[{ required: true, message: '请选择报销合同', trigger: 'blur' }]">
-									<template #default="scope">
-										<el-input v-model="scope.row.contractName"
-											@focus="openContractForm(scope.$rowIndex, scope.row)"></el-input>
-									</template>
-								</vxe-table-column>
-								<!--            <vxe-table-column field="reportNumber" title="报告号" :edit-render="{}">-->
-								<!--              <template v-slot:edit="scope">-->
-								<!--                <el-input :readonly="true" v-model="scope.row.reportNumber" @focus="openReportNoPageForm(scope.$rowIndex, scope.row)"></el-input>-->
-								<!--              </template>-->
-								<!--            </vxe-table-column>-->
-								<vxe-table-column field="number" title="费用(元)" :edit-render="{}" show-overflow="title"
-									:rules="[{ required: true, message: '请输入费用', trigger: 'blur' }]">
-									<template #default="scope">
-										<el-input maxlength="15" v-model="scope.row.number"
-											@input="scope.row.number = twoDecimalPlaces(scope.row.number)"></el-input>
-									</template>
-								</vxe-table-column>
-								<vxe-table-column field="receiptNumber" title="收据张数" :edit-render="{}"
-									show-overflow="title">
-									<template #default="scope">
-										<el-input v-model="scope.row.receiptNumber"
-											oninput="value=value.replace(/\D|^0/g,'')" maxlength="10"></el-input>
-									</template>
-								</vxe-table-column>
-								<vxe-table-column field="days" title="出差天数" :edit-render="{}" show-overflow="title">
-									<template #default="scope">
-										<el-input v-model="scope.row.days" oninput="value=value.replace(/\D|^0/g,'')"
-											maxlength="10"></el-input>
-									</template>
-								</vxe-table-column>
-								<vxe-table-column field="content" title="内容" :edit-render="{}" show-overflow="title">
-									<template #default="scope">
-										<el-input v-model="scope.row.content"></el-input>
-									</template>
-								</vxe-table-column>
-								<vxe-table-column title="操作" width="100">
-									<template #default="scope">
-										<el-button type="danger"
-											@click="removeEvent(scope.row, scope.$rowIndex, 'detail')">删除</el-button>
-									</template>
-								</vxe-table-column>
-							</vxe-table>
-						</el-col>
-					</el-row>
-				</div>
-				<div v-if="inputForm.sourceType === '3'">
-					<el-divider content-position="left"><i class="el-icon-document"></i>
-						报告报销详情
-						<el-button style="margin-left: 20px" type="primary" size="small"
-							:disabled="method === 'view' || this.formReadOnly" @click="insertEvent('report_detail')"
-							plain>
-							新增
-						</el-button>
-					</el-divider>
-					<el-row :gutter="15">
-						<el-col :span="24">
-							<vxe-table border show-footer show-overflow :footer-method="footerMethod"
-								ref="detailTableReport" :key="detailKeyReport" class="vxe-table-element"
-								:data="inputForm.detailInfoReports" style="margin-left: 5em" keep-source
-								highlight-current-row
-								:edit-config="{ trigger: 'click', mode: 'row', showStatus: true, autoClear: true, icon: '_' }"
-								:expand-config="{ expandAll: true, accordion: false, toggleMethod: handleExpand }">
-								<vxe-column type="expand" width="80">
-									<template #content="{ row, rowIndex }">
-										<InvoiceReimbursementUpLoadComponent v-if="row.reimbursementType == 1"
-											@changeConfirmList="changeConfirmList" @handleCount="handleCount"
-											@handleUploadSuccess="handleUploadSuccess" :ref="row.uniqueId + 'Upload'"
-											v-show="'1' === this.inputForm.reimbursementType">
-										</InvoiceReimbursementUpLoadComponent>
-
-
-										<UpLoadComponent @handleUploadSuccess="handleUploadSuccess"
-											v-if="row.reimbursementType == 0" :ref="row.uniqueId + 'UploadFiles'">
-										</UpLoadComponent>
-
-									</template>
-								</vxe-column>
-								<vxe-table-column field="userName" title="报销人" :edit-render="{}" show-overflow="title"
-									:rules="[{ required: true, message: '请选择报销人', trigger: 'blur' }]">
-									<template #default="scope">
-										<el-input v-model="scope.row.userName"
-											@focus="userPullListForm3(scope.$rowIndex)"></el-input>
-										<!--              <UserSelectV2 :limit='1' :userName="scope.row.userName" @getValue='(value, label) => {scope.row.userName = label}'></UserSelectV2>-->
-									</template>
-								</vxe-table-column>
-								<vxe-table-column field="deptName" title="报销部门" :edit-render="{}" show-overflow="title">
-									<template #default="scope">
-										<el-input :disabled='true' v-model="scope.row.deptName"></el-input>
-									</template>
-								</vxe-table-column>
-								<vxe-table-column field="reimbursementType" title="报销类型" :edit-render="{}"
-									show-overflow="title">
-									<template #default="{ row }">
-										<vxe-select
-											:disabled="method === 'view' || status === 'audit' || status === 'taskFormDetail'"
-											@change="handleChangeType" v-model="row.reimbursementType"
-											placeholder="请选择报销类型" transfer>
-											<vxe-option v-for="item in $dictUtils.getDictList('reimbursement_type')"
-												:key="item.value" :value="item.value" :label="item.label"></vxe-option>
-										</vxe-select>
-									</template>
-								</vxe-table-column>
-								<vxe-table-column field="typeName" title="报销类别" :edit-render="{}" show-overflow="title"
-									:rules="[{ required: true, message: '请选择报销类别', trigger: 'blur' }]">
-									<template #default="scope">
-										<el-input v-model="scope.row.typeName"
-											@focus="typePullForm3(scope.$rowIndex)"></el-input>
-									</template>
-								</vxe-table-column>
-								<vxe-table-column field="projectName" title="报销项目" :edit-render="{}"
-									show-overflow="title"
-									:rules="[{ required: true, message: '请选择报销项目', trigger: 'blur' }]">
-									<template #default="scope">
-										<el-input v-model="scope.row.projectName"
-											@focus="openProgramPageForm3(scope.$rowIndex, scope.row)"></el-input>
-									</template>
-								</vxe-table-column>
-								<vxe-table-column field="reportNumber" title="报告号" :edit-render="{}"
-									show-overflow="title">
-									<template #default="scope">
-										<el-input :readonly="true" v-model="scope.row.reportNumber"
-											@focus="openReportNoPageForm(scope.$rowIndex, scope.row)"></el-input>
-									</template>
-								</vxe-table-column>
-								<vxe-table-column field="number" title="费用(元)" :edit-render="{}" show-overflow="title"
-									:rules="[{ required: true, message: '请输入费用', trigger: 'blur' }]">
-									<template #default="scope">
-										<el-input maxlength="15" v-model="scope.row.number"
-											@input="scope.row.number = twoDecimalPlaces(scope.row.number)"></el-input>
-									</template>
-								</vxe-table-column>
-								<vxe-table-column field="receiptNumber" title="收据张数" :edit-render="{}"
-									show-overflow="title">
-									<template #default="scope">
-										<el-input v-model="scope.row.receiptNumber"
-											oninput="value=value.replace(/\D|^0/g,'')" maxlength="10"></el-input>
-									</template>
-								</vxe-table-column>
-								<vxe-table-column field="days" title="出差天数" :edit-render="{}" show-overflow="title">
-									<template #default="scope">
-										<el-input v-model="scope.row.days" oninput="value=value.replace(/\D|^0/g,'')"
-											maxlength="10"></el-input>
-									</template>
-								</vxe-table-column>
-								<vxe-table-column field="content" title="内容" :edit-render="{}" show-overflow="title">
-									<template #default="scope">
-										<el-input v-model="scope.row.content"></el-input>
-									</template>
-								</vxe-table-column>
-								<vxe-table-column title="操作" width="180">
-									<template v-slot="scope">
-										<!-- <el-button size="default" @click="uploadFile(scope.row, scope.$rowIndex,)"
-											type="primary">上传</el-button> -->
-										<el-button type="danger"
-											@click="removeEvent(scope.row, scope.$rowIndex, 'report_detail')">删除</el-button>
-									</template>
-								</vxe-table-column>
-							</vxe-table>
-						</el-col>
-					</el-row>
-				</div>
-				<div v-if="inputForm.sourceType === '4'">
-					<el-divider content-position="left"><i class="el-icon-document"></i>
-						其他报销详情
-						<el-button style="margin-left: 20px" type="primary" size="small"
-							:disabled="method === 'view' || this.formReadOnly" @click="insertEvent('others')" plain>
-							新增
-						</el-button>
-					</el-divider>
-					<el-row :gutter="15">
-						<el-col :span="24">
-							<vxe-table border show-footer show-overflow :footer-method="footerMethod"
-								ref="detailTableOthers" class="vxe-table-element" :data="inputForm.detailInfoOthers"
-								style="margin-left: 5em" keep-source :key="detailKeyOthers" highlight-current-row
-								:edit-config="{ trigger: 'click', mode: 'row', showStatus: true, autoClear: true, icon: '_' }"
-								:expand-config="{ expandAll: true, accordion: false, toggleMethod: handleExpand }">
-								<vxe-column type="expand" width="80">
-									<template #content="{ row, rowIndex }">
-										<InvoiceReimbursementUpLoadComponent v-if="row.reimbursementType == 1"
-											@changeConfirmList="changeConfirmList" @handleCount="handleCount"
-											@handleUploadSuccess="handleUploadSuccess" :ref="row.uniqueId + 'Upload'"
-											v-show="'1' === this.inputForm.reimbursementType">
-										</InvoiceReimbursementUpLoadComponent>
-										<UpLoadComponent @handleUploadSuccess="handleUploadSuccess"
-											v-if="row.reimbursementType == 0" :ref="row.uniqueId + 'UploadFiles'">
-										</UpLoadComponent>
-									</template>
-								</vxe-column>
-								<vxe-table-column field="userName" title="报销人" :edit-render="{}" show-overflow="title"
-									:rules="[{ required: true, message: '请选择报销人', trigger: 'blur' }]">
-									<template #default="scope">
-										<el-input v-model="scope.row.userName"
-											@focus="userPullListForm4(scope.$rowIndex)"></el-input>
-										<!--              <UserSelectV2 :limit='1' :userName="scope.row.userName" @getValue='(value, label) => {scope.row.userName = label}'></UserSelectV2>-->
-									</template>
-								</vxe-table-column>
-								<vxe-table-column field="deptName" title="报销部门" :edit-render="{}" show-overflow="title">
-									<template #default="scope">
-										<el-input :disabled='true' v-model="scope.row.deptName"></el-input>
-									</template>
-								</vxe-table-column>
-								<vxe-table-column field="reimbursementType" title="报销类型" :edit-render="{}"
-									show-overflow="title">
-									<template #default="{ row }">
-										<vxe-select
-											:disabled="method === 'view' || status === 'audit' || status === 'taskFormDetail'"
-											@change="handleChangeType" v-model="row.reimbursementType"
-											placeholder="请选择报销类型" transfer>
-											<vxe-option v-for="item in $dictUtils.getDictList('reimbursement_type')"
-												:key="item.value" :value="item.value" :label="item.label"></vxe-option>
-										</vxe-select>
-									</template>
-								</vxe-table-column>
-								<vxe-table-column field="typeName" title="报销类别" :edit-render="{}" show-overflow="title"
-									:rules="[{ required: true, message: '请选择报销类别', trigger: 'blur' }]">
-									<template #default="scope">
-										<el-input v-model="scope.row.typeName"
-											@focus="typePullForm4(scope.$rowIndex)"></el-input>
-									</template>
-								</vxe-table-column>
-								<vxe-table-column field="projectName" title="报销详情" :edit-render="{}"
-									show-overflow="title"
-									:rules="[{ required: true, message: '请田小娥报销详情', trigger: 'blur' }]">
-									<template #default="scope">
-										<el-input v-model="scope.row.projectName"
-											@focus="openProgramPageForm4(scope.$rowIndex, scope.row)"></el-input>
-									</template>
-								</vxe-table-column>
-								<!--            <vxe-table-column field="reportNumber" title="报告号" :edit-render="{}">-->
-								<!--              <template v-slot:edit="scope">-->
-								<!--                <el-input :readonly="true" v-model="scope.row.reportNumber" @focus="openReportNoPageForm(scope.$rowIndex, scope.row)"></el-input>-->
-								<!--              </template>-->
-								<!--            </vxe-table-column>-->
-								<vxe-table-column field="number" title="费用(元)" :edit-render="{}" show-overflow="title"
-									:rules="[{ required: true, message: '请输入费用', trigger: 'blur' }]">
-									<template #default="scope">
-										<el-input maxlength="15" v-model="scope.row.number"
-											@input="scope.row.number = twoDecimalPlaces(scope.row.number)"></el-input>
-									</template>
-								</vxe-table-column>
-								<vxe-table-column field="receiptNumber" title="收据张数" :edit-render="{}"
-									show-overflow="title">
-									<template #default="scope">
-										<el-input v-model="scope.row.receiptNumber"
-											oninput="value=value.replace(/\D|^0/g,'')" maxlength="10"></el-input>
-									</template>
-								</vxe-table-column>
-								<vxe-table-column field="days" title="出差天数" :edit-render="{}" show-overflow="title">
-									<template #default="scope">
-										<el-input v-model="scope.row.days" oninput="value=value.replace(/\D|^0/g,'')"
-											maxlength="10"></el-input>
-									</template>
-								</vxe-table-column>
-								<vxe-table-column field="content" title="内容" :edit-render="{}" show-overflow="title">
-									<template #default="scope">
-										<el-input v-model="scope.row.content"></el-input>
-									</template>
-								</vxe-table-column>
-								<vxe-table-column title="操作" width="180">
-									<template v-slot="scope">
-										<!-- <el-button size="default" @click="uploadFile(scope.row, scope.$rowIndex,)"
-											type="primary">上传</el-button> -->
-										<el-button type="danger"
-											@click="removeEvent(scope.row, scope.$rowIndex, 'others')">删除</el-button>
-									</template>
-								</vxe-table-column>
-							</vxe-table>
-						</el-col>
-					</el-row>
-				</div>
-				<div v-if="inputForm.sourceType === '5'">
-					<el-divider content-position="left"><i class="el-icon-document"></i>
-						采购报销详情
-						<el-button style="margin-left: 20px" type="primary" size="small"
-							:disabled="method === 'view' || this.formReadOnly" @click="insertEvent('procured')" plain>
-							新增
-						</el-button>
-					</el-divider>
-					<el-row :gutter="15">
-						<el-col :span="24">
-							<vxe-table border show-footer show-overflow :footer-method="footerMethod"
-								ref="detailTableProcured" class="vxe-table-element" :data="inputForm.detailInfoProcured"
-								style="margin-left: 5em" keep-source :key="detailKeyProcured" highlight-current-row
-								:edit-config="{ trigger: 'click', mode: 'row', showStatus: true, autoClear: true, icon: '_' }">
-								<vxe-table-column field="userName" title="报销人" :edit-render="{}" show-overflow="title"
-									:rules="[{ required: true, message: '请选择报销人', trigger: 'blur' }]">
-									<template #default="scope">
-										<el-input v-model="scope.row.userName"
-											@focus="userPullListForm5(scope.$rowIndex)"></el-input>
-										<!--              <UserSelectV2 :limit='1' :userName="scope.row.userName" @getValue='(value, label) => {scope.row.userName = label}'></UserSelectV2>-->
-									</template>
-								</vxe-table-column>
-								<vxe-table-column field="deptName" title="报销部门" :edit-render="{}" show-overflow="title">
-									<template #default="scope">
-										<el-input :disabled='true' v-model="scope.row.deptName"></el-input>
-									</template>
-								</vxe-table-column>
-								<vxe-table-column field="typeName" title="报销类别" :edit-render="{}" show-overflow="title"
-									:rules="[{ required: true, message: '请选择报销类别', trigger: 'blur' }]">
-									<template #default="scope">
-										<el-input v-model="scope.row.typeName"
-											@focus="typePullForm5(scope.$rowIndex)"></el-input>
-									</template>
-								</vxe-table-column>
-								<vxe-table-column field="projectName" title="报销详情" :edit-render="{}"
-									show-overflow="title"
-									:rules="[{ required: true, message: '请填写报销详情', trigger: 'blur' }]">
-									<template #default="scope">
-										<el-input v-model="scope.row.projectName"
-											@focus="openProgramPageForm5(scope.$rowIndex, scope.row)"></el-input>
-									</template>
-								</vxe-table-column>
-								<!--            <vxe-table-column field="reportNumber" title="报告号" :edit-render="{}">-->
-								<!--              <template v-slot:edit="scope">-->
-								<!--                <el-input :readonly="true" v-model="scope.row.reportNumber" @focus="openReportNoPageForm(scope.$rowIndex, scope.row)"></el-input>-->
-								<!--              </template>-->
-								<!--            </vxe-table-column>-->
-								<vxe-table-column field="number" title="费用(元)" :edit-render="{}" show-overflow="title"
-									:rules="[{ required: true, message: '请输入费用', trigger: 'blur' }]">
-									<template #default="scope">
-										<el-input maxlength="15" v-model="scope.row.number"
-											@input="scope.row.number = twoDecimalPlaces(scope.row.number)"></el-input>
-									</template>
-								</vxe-table-column>
-								<vxe-table-column field="receiptNumber" title="收据张数" :edit-render="{}"
-									show-overflow="title">
-									<template #default="scope">
-										<el-input v-model="scope.row.receiptNumber"
-											oninput="value=value.replace(/\D|^0/g,'')" maxlength="10"></el-input>
-									</template>
-								</vxe-table-column>
-								<vxe-table-column field="days" title="出差天数" :edit-render="{}" show-overflow="title">
-									<template #default="scope">
-										<el-input v-model="scope.row.days" oninput="value=value.replace(/\D|^0/g,'')"
-											maxlength="10"></el-input>
-									</template>
-								</vxe-table-column>
-								<vxe-table-column field="content" title="内容" :edit-render="{}" show-overflow="title">
-									<template #default="scope">
-										<el-input v-model="scope.row.content"></el-input>
-									</template>
-								</vxe-table-column>
-								<vxe-table-column title="操作" width="100">
-									<template #default="scope">
-										<el-button type="danger"
-											@click="removeEvent(scope.row, scope.$rowIndex, 'procured')">删除</el-button>
-									</template>
-								</vxe-table-column>
-							</vxe-table>
-						</el-col>
-					</el-row>
-				</div>
-				<div v-if="inputForm.sourceType === '6'">
-					<el-divider content-position="left"><i class="el-icon-document"></i>
-						实习报销详情
-						<el-button size="default" style="margin-left: 20px" type="primary"
-							:disabled="method === 'view' || status === 'audit' || status === 'taskFormDetail' || this.formReadOnly"
-							@click="insertEvent('human')" plain>
-							新增
-						</el-button>
-					</el-divider>
-					<el-row :gutter="15">
-						<el-col :span="24">
-							<vxe-table border show-footer show-overflow :footer-method="footerMethod"
-								ref="humanTableProcured" class="vxe-table-element" :data="inputForm.humanInfoProcured"
-								style="margin-left: 5em" :key="humanKeyProcured" highlight-current-row
-								:edit-config="{ trigger: 'click', mode: 'row', showStatus: true, autoClear: true, icon: '_' }"
-								:edit-rules="validRules">
-								<vxe-table-column field="userName" title="报销人" :edit-render="{}" show-overflow="title"
-									:rules="[{ required: true, message: '请选择报销人', trigger: 'blur' }]">
-									<template v-slot:edit="scope">
-										<el-input v-model="scope.row.userName"
-											@focus="userPullListForm6(scope.$rowIndex)"></el-input>
-									</template>
-								</vxe-table-column>
-								<vxe-table-column field="deptName" title="报销部门" :edit-render="{}" show-overflow="title">
-									<template v-slot:edit="scope">
-										<el-input :disabled='true' v-model="scope.row.deptName"></el-input>
-									</template>
-								</vxe-table-column>
-								<vxe-table-column field="typeName" title="报销类别" :edit-render="{}" show-overflow="title"
-									:rules="[{ required: true, message: '请选择报销类别', trigger: 'blur' }]">
-									<template #edit="scope">
-										<el-input v-model="scope.row.typeName"
-											@focus="typePullForm6(scope.$rowIndex, scope.row.deptId)"></el-input>
-									</template>
-								</vxe-table-column>
-								<vxe-table-column field="reimbuserName" title="报销登记名称" :edit-render="{}"
-									show-overflow="title"
-									:rules="[{ required: true, message: '请填写报销登记名称', trigger: 'blur' }]">
-									<template v-slot:edit="scope">
-										<el-input v-model="scope.row.reimbuserName"
-											@focus="openProgramPageForm6(scope.$rowIndex, scope.row)"></el-input>
-									</template>
-								</vxe-table-column>
-								<vxe-table-column field="number" title="费用(元)" :edit-render="{}" show-overflow="title"
-									:rules="[{ required: true, message: '请输入费用', trigger: 'blur' }]">
-									<template v-slot:edit="scope">
-										<el-input maxlength="15" v-model="scope.row.number"
-											@input="scope.row.number = twoDecimalPlaces(scope.row.number)"></el-input>
-									</template>
-								</vxe-table-column>
-								<vxe-table-column field="bankCardNumber" title="银行卡号" :edit-render="{}"
-									show-overflow="title">
-									<template v-slot:edit="scope">
-										<el-input :disabled='true' v-model="scope.row.bankCardNumber"></el-input>
-									</template>
-								</vxe-table-column>
-								<vxe-table-column field="content" title="内容" :edit-render="{}" show-overflow="title">
-									<template v-slot:edit="scope">
-										<el-input v-model="scope.row.content"></el-input>
-									</template>
-								</vxe-table-column>
-								<vxe-table-column title="操作" width="100">
-									<template v-slot="scope">
-										<el-button size="default" type="danger"
-											@click="removeEvent(scope.row, scope.$rowIndex, 'procured')">删除</el-button>
-									</template>
-								</vxe-table-column>
-							</vxe-table>
-						</el-col>
-					</el-row>
-				</div>
-
+				<ReimbursementComponent ref="reimbursementComponent">
+				</ReimbursementComponent>
 				<div v-if="inputForm.reimbursementType === '0'">
 					<el-divider content-position="left"><i class="el-icon-document"></i>
 						专用发票信息
@@ -738,102 +125,14 @@
 						</el-col>
 					</el-row>
 				</div>
-				<!--				<div v-if="inputForm.reimbursementType === '1'">-->
-				<!--					<el-divider content-position="left">数电发票信息-->
-				<!--						&lt;!&ndash;<el-button style="margin-left: 20px" type="primary" :disabled="method==='view' || status === 'audit' || status === 'taskFormDetail' " size="default" @click="insertEvent('invoiceReimbursement')" plain>-->
-				<!--							新增-->
-				<!--						</el-button>&ndash;&gt;-->
-				<!--					</el-divider>-->
-				<!--					<el-row  :gutter="15" >-->
-				<!--						<el-col :span="24">-->
-				<!--							<vxe-table-->
-				<!--								border-->
-				<!--								show-footer-->
-				<!--								show-overflow-->
-				<!--								ref="invoiceReimbursementTable"-->
-				<!--								class="vxe-table-element"-->
-				<!--								:data="inputForm.invoiceReimbursements"-->
-				<!--								:footer-method="footerMethod1111"-->
-				<!--								style="margin-left: 5em"-->
-				<!--								@cell-click=""-->
-				<!--								:key="invoiceReimbursementKey"-->
-				<!--								@edit-closed=""-->
-				<!--								highlight-current-row-->
-				<!--								:edit-config="{trigger: 'click', mode: 'row', showStatus: true, autoClear: true, icon:'_'}"-->
-				<!--								:edit-rules="invoiceReimbursementRules"-->
-				<!--							>-->
-				<!--								<vxe-table-column  field="invoiceType" title="发票类型" show-overflow="title" :edit-render="{name: '$select', options: $dictUtils.getDictList('invoice_reimbursement_type')}">-->
-				<!--									<template v-slot:edit="scope">-->
-				<!--										<vxe-select :disabled="true" v-model="scope.row.invoiceType" placeholder="请选择发票类型" clearable style="width: 100%;" transfer>-->
-				<!--											<vxe-option-->
-				<!--												v-for="item in $dictUtils.getDictList('invoice_reimbursement_type')"-->
-				<!--												:key="item.value"-->
-				<!--												:label="item.label"-->
-				<!--												:value="item.value">-->
-				<!--											</vxe-option>-->
-				<!--										</vxe-select>-->
-				<!--									</template>-->
-				<!--								</vxe-table-column>-->
-				<!--								<vxe-table-column field="invoiceProjectName" title="发票项目名" :edit-render="{}" show-overflow="title">-->
-				<!--									<template #edit="scope">-->
-				<!--										<el-input maxlength="50" readonly="true" v-model="scope.row.invoiceProjectName" ></el-input>-->
-				<!--									</template>-->
-				<!--								</vxe-table-column>-->
-				<!--								<vxe-table-column field="number" title="发票号" :edit-render="{}" show-overflow="title">-->
-				<!--									<template #edit="scope">-->
-				<!--										<el-input oninput ="value=value.replace(/\D|^/g,'')" readonly="true" maxlength="30" @change="isExict(scope.row)" v-model="scope.row.number" ></el-input>-->
-				<!--									</template>-->
-				<!--								</vxe-table-column>-->
-				<!--								<vxe-table-column field="invoiceDate" title="开票日期" :edit-render="{}" show-overflow="title">-->
-				<!--									<template v-slot:edit="scope">-->
-				<!--										<vxe-input v-model="scope.row.invoiceDate" readonly="true" type="datetime" transfer placeholder="请选择日期"></vxe-input>-->
-				<!--									</template>-->
-				<!--								</vxe-table-column>-->
-				<!--								<vxe-table-column field="invoiceUnit" title="开票单位" :edit-render="{}" show-overflow="title">-->
-				<!--									<template #edit="scope">-->
-				<!--										<el-input maxlength="50" readonly="true" v-model="scope.row.invoiceUnit" ></el-input>-->
-				<!--									</template>-->
-				<!--								</vxe-table-column>-->
-				<!--								<vxe-table-column field="buyerName" title="购买方名称" :edit-render="{}" show-overflow="title">-->
-				<!--									<template #edit="scope">-->
-				<!--										<el-input maxlength="50" readonly="true" v-model="scope.row.buyerName" ></el-input>-->
-				<!--									</template>-->
-				<!--								</vxe-table-column>-->
-				<!--								<vxe-table-column field="amount" title="金额" :edit-render="{}" show-overflow="title">-->
-				<!--									<template #edit="scope">-->
-				<!--										<el-input maxlength="15" readonly="true" v-model="scope.row.amount" @input="scope.row.amount = twoDecimalPlaces(scope.row.amount)" @change="countAmount(scope.row)"></el-input>-->
-				<!--									</template>-->
-				<!--								</vxe-table-column>-->
-				<!--								<vxe-table-column field="taxAmount" title="税额" :edit-render="{}" show-overflow="title">-->
-				<!--									<template #edit="scope">-->
-				<!--										<el-input maxlength="15" readonly="true" v-model="scope.row.taxAmount" @input="scope.row.taxAmount = twoDecimalPlaces(scope.row.taxAmount)" @change="countAmount(scope.row)"></el-input>-->
-				<!--									</template>-->
-				<!--								</vxe-table-column>-->
-				<!--								<vxe-table-column field="count" title="价税合计" :edit-render="{}" show-overflow="title">-->
-				<!--									<template #edit="scope">-->
-				<!--										<el-input disabled="true" v-model="scope.row.count" ></el-input>-->
-				<!--									</template>-->
-				<!--								</vxe-table-column>-->
-				<!--								<vxe-table-column field="remarks" title="备注" :edit-render="{}" show-overflow="title">-->
-				<!--									<template #edit="scope">-->
-				<!--										<el-input maxlength="250" v-model="scope.row.remarks" ></el-input>-->
-				<!--									</template>-->
-				<!--								</vxe-table-column>-->
-				<!--								&lt;!&ndash;<vxe-table-column title="操作" width="100">-->
-				<!--									<template #default="scope">-->
-				<!--										<el-button size="default" type="danger" @click="removeEvent(scope.row,scope.$rowIndex,'invoiceReimbursement')">删除</el-button>-->
-				<!--									</template>-->
-				<!--								</vxe-table-column>&ndash;&gt;-->
-				<!--							</vxe-table>-->
-				<!--						</el-col>-->
-				<!--					</el-row>-->
-				<!--				</div>-->
+
 
 			</el-form>
 			<!-- 附件 -->
 			<!-- <InvoiceReimbursementUpLoadComponent ref="invoiceReimbursementUpLoadComponent"
 				v-show="'1' === this.inputForm.reimbursementType"></InvoiceReimbursementUpLoadComponent>
 			<UpLoadComponent ref="uploadComponent"></UpLoadComponent> -->
+			<UpLoadComponent ref="uploadComponent"></UpLoadComponent>
 			<template #footer>
 				<span class="dialog-footer">
 					<el-button @click="close()" icon="el-icon-circle-close">关闭</el-button>
@@ -848,9 +147,10 @@
 
 <script>
 import ReimbursementApprovalService from '@/api/cw/reimbursementApproval/ReimbursementApprovalService'
-import UpLoadComponent from '@/views/common/NewUpLoadComponent'
+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 MaterialManagementService from '@/api/materialManagement/MaterialManagementService'
 // import MaterialManagementDialog from '../../../materialManagement/file/MaterialManagementDialog'
 export default {
@@ -901,9 +201,13 @@ export default {
 	components: {
 		InvoiceReimbursementUpLoadComponent,
 		UpLoadComponent,
+		ReimbursementComponent,
 		// MaterialManagementDialog
 	},
 	methods: {
+		initReimbursementComponent() {
+			this.$refs.reimbursementComponent.initComponent("reimbursement", "cw", "江苏兴光会计师事务所有限责任公司", this.inputForm, this.isConfirm, this.status)
+		},
 		init(method, id) {
 			this.method = method
 			this.inputForm = {
@@ -953,7 +257,7 @@ export default {
 						console.log('data', data)
 						this.inputForm = this.recover(this.inputForm, data)
 						this.inputForm = JSON.parse(JSON.stringify(this.inputForm))
-						// this.$refs.uploadComponent.clearUpload()
+						this.$refs.uploadComponent.clearUpload()
 						// this.$refs.invoiceReimbursementUpLoadComponent.clearUpload()
 						if (this.status === 'audit' || this.status === 'taskFormDetail') {
 							method = 'view'
@@ -986,12 +290,13 @@ export default {
 							this.payment = '未付款'
 						}
 						// this.$refs.invoiceReimbursementUpLoadComponent.newUpload(method, this.inputForm.invoiceReimbursementFiles, 'reimbursement', 300, '数电发票信息', null, null, null, '江苏兴光会计师事务所有限责任公司')
-						// this.$refs.uploadComponent.newUpload(method, this.inputForm.files, 'reimbursement')
+						this.$refs.uploadComponent.newUpload(method, this.inputForm.files, 'reimbursement')
 						this.inputForm = JSON.parse(JSON.stringify(this.inputForm))
 						if (this.commonJS.isNotEmpty(this.inputForm.purchaseId)) {
 							this.startPur(this.inputForm.purchaseId)
 						}
 						this.loading = false
+						this.initReimbursementComponent()
 					})
 				}
 			})
@@ -1013,6 +318,7 @@ export default {
 		},
 		// 表单提交
 		doSubmit() {
+			this.getReimbursementData()
 			this.$refs['inputForm'].validate((valid) => {
 				if (valid) {
 					this.loading = true
@@ -1047,7 +353,7 @@ export default {
 			this.inputForm.preList = ''
 			this.inputForm.purchaseId = ''
 			this.inputForm.amountInfos = []
-			// this.$refs.uploadComponent.clearUpload()
+			this.$refs.uploadComponent.clearUpload()
 			this.visible = false
 		},
 		// 删除
@@ -1198,6 +504,18 @@ export default {
 			return true
 
 		},
+		getReimbursementData() {
+			this.$nextTick(() => {
+				let inputForm = this.$refs.reimbursementComponent.handleGetData()
+				this.inputForm.detailInfos = inputForm.detailInfos
+				this.inputForm.detailInfoContracts = inputForm.detailInfoContracts
+				this.inputForm.detailInfoReports = inputForm.detailInfoReports
+				this.inputForm.detailInfoProject = inputForm.detailInfoProject
+				this.inputForm.detailInfoOthers = inputForm.detailInfoOthers
+				this.inputForm.detailInfoProcured = inputForm.detailInfoProcured
+				this.inputForm.invoiceReimbursementFiles = inputForm.invoiceReimbursementFiles
+			});
+		}
 	}
 }
 </script>

Datei-Diff unterdrückt, da er zu groß ist
+ 54 - 863
src/views/cw/reimbursementApproval/info/NewInfoUpdateForm.vue


Datei-Diff unterdrückt, da er zu groß ist
+ 485 - 603
src/views/cw/reimbursementApproval/info/NewReimbursementForm.vue


Datei-Diff unterdrückt, da er zu groß ist
+ 56 - 784
src/views/reimbursement/info/NewInfoUpdateForm.vue


Datei-Diff unterdrückt, da er zu groß ist
+ 471 - 624
src/views/reimbursement/info/NewReimbursementForm.vue


+ 30 - 787
src/views/zs/reimbursement/info/NewInfoForm.vue

@@ -14,7 +14,7 @@
                 { required: true, message: '报销项不能为空', trigger: 'blur' }
               ]">
               <el-radio v-model="inputForm.reimbursementType"
-                v-for="item in $dictUtils.getDictList('reimbursement_type')" :label="item.value"
+                v-for="item in $dictUtils.getDictList('zs_reimbursement_source_type')" :label="item.value"
                 style="margin-right: 20px">
                 {{ item.label }}</el-radio>
             </el-form-item>
@@ -77,789 +77,11 @@
             </el-form-item>
           </el-col>
         </el-row>
-        <div v-if="inputForm.sourceType === '5'">
-          <el-divider content-position="left"><i class="el-icon-document"></i>
-            采购详情
-          </el-divider>
-          <el-row :gutter="15">
-            <vxe-table border show-footer show-overflow :footer-method="footerMethod555" ref="preTable"
-              class="vxe-table-element" :data="inputForm.preList" style="margin-left: 5em" highlight-current-row>
-              <vxe-table-column field="purchaser" title="采购人" :edit-render="{}" show-overflow="title"
-                :rules="[{ required: true, message: '请选择采购人', trigger: 'blur' }]"></vxe-table-column>
-              <vxe-table-column field="procurementOffice" title="采购部门" :edit-render="{}"
-                show-overflow="title"></vxe-table-column>
-              <vxe-table-column field="procurementType" title="采购类型" :edit-render="{}" show-overflow="title"
-                :rules="[{ required: true, message: '请选择采购类型', trigger: 'blur' }]"></vxe-table-column>
-              <vxe-table-column field="tradeName" title="商品名称" :edit-render="{}" show-overflow="title"
-                :rules="[{ required: true, message: '请填写商品名称', trigger: 'blur' }]"></vxe-table-column>
-              <vxe-table-column field="tradePrice" title="商品单价(元)" :edit-render="{}" show-overflow="title"
-                :rules="[{ required: true, message: '请输入商品单价', trigger: 'blur' }]"></vxe-table-column>
-              <vxe-table-column field="tradeNumber" title="商品数量" :edit-render="{}"
-                show-overflow="title"></vxe-table-column>
-              <vxe-table-column field="priceSum" title="商品总价" :edit-render="{}"
-                show-overflow="title"></vxe-table-column>
-              <vxe-table-column field="company" title="单位" :edit-render="{}" show-overflow="title"></vxe-table-column>
-              <vxe-table-column field="remarks" title="备注" :edit-render="{}" show-overflow="title"></vxe-table-column>
-              <vxe-table-column title="操作">
-                <template #default="scope">
-                  <el-button size="mini" type="primary" :disabled="false"
-                    @click="seeFileInfo(scope.$rowIndex)">文件详情</el-button>
-                </template>
-              </vxe-table-column>
-            </vxe-table>
-          </el-row>
-        </div>
-        <div v-if="inputForm.sourceType === '1'">
-          <el-divider content-position="left"><i class="el-icon-document"></i>
-            兴光项目报销详情
-            <el-button size="default" style="margin-left: 20px" type="primary"
-              :disabled="method === 'view' || status === 'audit' || status === 'taskFormDetail'"
-              @click="insertEvent('detail')" plain>
-              新增
-            </el-button>
-          </el-divider>
-          <el-row :gutter="15">
-            <el-col :span="24">
-              <vxe-table border show-footer show-overflow :footer-method="footerMethod" ref="detailTable"
-                class="vxe-table-element" :data="inputForm.detailInfos" style="margin-left: 5em" :key="detailKey"
-                highlight-current-row
-                :edit-config="{ trigger: 'click', mode: 'row', showStatus: true, autoClear: true, icon: '_' }"
-                :edit-rules="validRules"
-                :expand-config="{ expandAll: true, accordion: false, toggleMethod: handleExpand }">
-                <vxe-column type="expand" width="80">
-                  <template #content="{ row, rowIndex }">
-                    <InvoiceReimbursementUpLoadComponent v-if="row.reimbursementType == 1"
-                      @changeConfirmList="changeConfirmList" @handleCount="handleCount"
-                      @handleUploadSuccess="handleUploadSuccess" :ref="row.uniqueId + 'Upload'"
-                      v-show="'1' === this.inputForm.reimbursementType">
-                    </InvoiceReimbursementUpLoadComponent>
-                    <UpLoadComponent @handleUploadSuccess="handleUploadSuccess" v-if="row.reimbursementType == 0"
-                      :ref="row.uniqueId + 'UploadFiles'">
-                    </UpLoadComponent>
-                  </template>
-                </vxe-column>
-                <vxe-table-column field="userName" title="报销人" :edit-render="{}" show-overflow="title"
-                  :rules="[{ required: true, message: '请选择报销人', trigger: 'blur' }]">
-                  <template #edit="scope">
-                    <el-input v-model="scope.row.userName" @focus="userPullListForm(scope.$rowIndex)"></el-input>
-                    <!--              <UserSelectV2 :limit='1' :userName="scope.row.userName" @getValue='(value, label) => {scope.row.userName = label}'></UserSelectV2>-->
-                  </template>
-                </vxe-table-column>
-                <vxe-table-column field="deptName" title="报销部门" :edit-render="{}" show-overflow="title">
-                  <template #edit="scope">
-                    <el-input :disabled='true' v-model="scope.row.deptName"></el-input>
-                  </template>
-                </vxe-table-column>
-                <vxe-table-column field="reimbursementType" title="报销类型" :edit-render="{}" show-overflow="title">
-                  <template #default="{ row }">
-                    <span>{{ $dictUtils.getDictLabel('reimbursement_type', row.reimbursementType,
-                      '') }}</span>
-                  </template>
-                  <template #edit="{ row }">
-                    <vxe-select :disabled="method === 'view' || status === 'audit' || status === 'taskFormDetail'"
-                      @change="handleChangeType" v-model="row.reimbursementType" placeholder="请选择报销类型" transfer>
-                      <vxe-option v-for="item in $dictUtils.getDictList('reimbursement_type')" :key="item.value"
-                        :value="item.value" :label="item.label"></vxe-option>
-                    </vxe-select>
-                  </template>
-                </vxe-table-column>
-                <vxe-table-column field="typeName" title="报销类别" :edit-render="{}" show-overflow="title"
-                  :rules="[{ required: true, message: '请选择报销类别', trigger: 'blur' }]">
-                  <template #edit="scope">
-                    <el-input v-model="scope.row.typeName"
-                      @focus="typePullForm(scope.$rowIndex, scope.row.deptId)"></el-input>
-                  </template>
-                </vxe-table-column>
-                <vxe-table-column field="projectName" title="报销详情" :edit-render="{}" show-overflow="title"
-                  :rules="[{ required: true, message: '请填写报销详情', trigger: 'blur' }]">
-                  <template #edit="scope">
-                    <el-input v-model="scope.row.projectName"
-                      @focus="openProgramPageForm(scope.$rowIndex, scope.row)"></el-input>
-                  </template>
-                </vxe-table-column>
-                <!--            <vxe-table-column field="reportNumber" title="报告号" :edit-render="{}">-->
-                <!--              <template v-slot:edit="scope">-->
-                <!--                <el-input :readonly="true" v-model="scope.row.reportNumber" @focus="openReportNoPageForm(scope.$rowIndex, scope.row)"></el-input>-->
-                <!--              </template>-->
-                <!--            </vxe-table-column>-->
-                <vxe-table-column field="number" title="费用(元)" :edit-render="{}" show-overflow="title"
-                  :rules="[{ required: true, message: '请输入费用', trigger: 'blur' }]">
-                  <template #edit="scope">
-                    <el-input maxlength="15" v-model="scope.row.number"
-                      @input="scope.row.number = twoDecimalPlaces(scope.row.number)"></el-input>
-                  </template>
-                </vxe-table-column>
-                <vxe-table-column field="receiptNumber" title="收据张数" :edit-render="{}" show-overflow="title">
-                  <template #edit="scope">
-                    <el-input v-model="scope.row.receiptNumber" oninput="value=value.replace(/\D|^0/g,'')"
-                      maxlength="10"></el-input>
-                  </template>
-                </vxe-table-column>
-                <vxe-table-column field="days" title="出差天数" :edit-render="{}" show-overflow="title">
-                  <template #edit="scope">
-                    <el-input v-model="scope.row.days" oninput="value=value.replace(/\D|^0/g,'')"
-                      maxlength="10"></el-input>
-                  </template>
-                </vxe-table-column>
-                <vxe-table-column field="content" title="内容" :edit-render="{}" show-overflow="title">
-                  <template #edit="scope">
-                    <el-input v-model="scope.row.content"></el-input>
-                  </template>
-                </vxe-table-column>
-                <vxe-table-column title="操作" width="100">
-                  <template #default="scope">
-                    <el-button size="default" type="danger"
-                      @click="removeEvent(scope.row, scope.$rowIndex, 'detail')">删除</el-button>
-                  </template>
-                </vxe-table-column>
-              </vxe-table>
-            </el-col>
-          </el-row>
-        </div>
-        <div v-if="inputForm.sourceType === '2'">
-          <el-divider content-position="left"><i class="el-icon-document"></i>
-            合同报销详情
-            <el-button style="margin-left: 20px" type="primary" :disabled="method === 'view' || this.formReadOnly"
-              size="mini" @click="insertEvent('contract_detail')" plain>
-              新增
-            </el-button>
-          </el-divider>
-          <el-row :gutter="15">
-            <el-col :span="24">
-              <vxe-table border show-footer show-overflow :footer-method="footerMethod" ref="detailTableContract"
-                :key="detailKeyContract" class="vxe-table-element" :data="inputForm.detailInfoContracts"
-                style="margin-left: 5em" @cell-click="" @edit-closed="" highlight-current-row
-                :edit-config="{ trigger: 'click', mode: 'row', showStatus: true, autoClear: true, icon: '_' }"
-                :edit-rules="validRules">
-                <vxe-table-column field="userName" title="报销人" :edit-render="{}" show-overflow="title"
-                  :rules="[{ required: true, message: '请选择报销人', trigger: 'blur' }]">
-                  <template #edit="scope">
-                    <el-input v-model="scope.row.userName" @focus="userPullListForm2(scope.$rowIndex)"></el-input>
-                    <!--              <UserSelectV2 :limit='1' :userName="scope.row.userName" @getValue='(value, label) => {scope.row.userName = label}'></UserSelectV2>-->
-                  </template>
-                </vxe-table-column>
-                <vxe-table-column field="deptName" title="报销部门" :edit-render="{}" show-overflow="title">
-                  <template #edit="scope">
-                    <el-input :disabled='true' v-model="scope.row.deptName"></el-input>
-                  </template>
-                </vxe-table-column>
-                <vxe-table-column field="typeName" title="报销类别" :edit-render="{}" show-overflow="title"
-                  :rules="[{ required: true, message: '请选择报销类别', trigger: 'blur' }]">
-                  <template #edit="scope">
-                    <el-input v-model="scope.row.typeName" @focus="typePullForm2(scope.$rowIndex)"></el-input>
-                  </template>
-                </vxe-table-column>
-                <vxe-table-column field="contractName" title="报销合同" :edit-render="{}" show-overflow="title"
-                  :rules="[{ required: true, message: '请选择报销合同', trigger: 'blur' }]">
-                  <template #edit="scope">
-                    <el-input v-model="scope.row.contractName"
-                      @focus="openContractForm(scope.$rowIndex, scope.row)"></el-input>
-                  </template>
-                </vxe-table-column>
-                <!--            <vxe-table-column field="reportNumber" title="报告号" :edit-render="{}">-->
-                <!--              <template v-slot:edit="scope">-->
-                <!--                <el-input :readonly="true" v-model="scope.row.reportNumber" @focus="openReportNoPageForm(scope.$rowIndex, scope.row)"></el-input>-->
-                <!--              </template>-->
-                <!--            </vxe-table-column>-->
-                <vxe-table-column field="number" title="费用(元)" :edit-render="{}" show-overflow="title"
-                  :rules="[{ required: true, message: '请输入费用', trigger: 'blur' }]">
-                  <template #edit="scope">
-                    <el-input maxlength="15" v-model="scope.row.number"
-                      @input="scope.row.number = twoDecimalPlaces(scope.row.number)"></el-input>
-                  </template>
-                </vxe-table-column>
-                <vxe-table-column field="receiptNumber" title="收据张数" :edit-render="{}" show-overflow="title">
-                  <template #edit="scope">
-                    <el-input v-model="scope.row.receiptNumber" oninput="value=value.replace(/\D|^0/g,'')"
-                      maxlength="10"></el-input>
-                  </template>
-                </vxe-table-column>
-                <vxe-table-column field="days" title="出差天数" :edit-render="{}" show-overflow="title">
-                  <template #edit="scope">
-                    <el-input v-model="scope.row.days" oninput="value=value.replace(/\D|^0/g,'')"
-                      maxlength="10"></el-input>
-                  </template>
-                </vxe-table-column>
-                <vxe-table-column field="content" title="内容" :edit-render="{}" show-overflow="title">
-                  <template #edit="scope">
-                    <el-input v-model="scope.row.content"></el-input>
-                  </template>
-                </vxe-table-column>
-                <vxe-table-column title="操作" width="100">
-                  <template #default="scope">
-                    <el-button size="mini" type="danger"
-                      @click="removeEvent(scope.row, scope.$rowIndex, 'detail')">删除</el-button>
-                  </template>
-                </vxe-table-column>
-              </vxe-table>
-            </el-col>
-          </el-row>
-        </div>
-        <div v-if="inputForm.sourceType === '3'">
-          <el-divider content-position="left"><i class="el-icon-document"></i>
-            兴光报告报销详情
-            <el-button size="default" style="margin-left: 20px" type="primary"
-              :disabled="method === 'view' || status === 'audit' || status === 'taskFormDetail'"
-              @click="insertEvent('report_detail')" plain>
-              新增
-            </el-button>
-          </el-divider>
-          <el-row :gutter="15">
-            <el-col :span="24">
-              <vxe-table border show-footer show-overflow :footer-method="footerMethod" ref="detailTableReport"
-                class="vxe-table-element" :data="inputForm.detailInfoReports" style="margin-left: 5em"
-                :key="detailKeyReport" highlight-current-row
-                :edit-config="{ trigger: 'click', mode: 'row', showStatus: true, autoClear: true, icon: '_' }"
-                :edit-rules="validRules"
-                :expand-config="{ expandAll: true, accordion: false, toggleMethod: handleExpand }">
-                <vxe-column type="expand" width="80">
-                  <template #content="{ row, rowIndex }">
-                    <InvoiceReimbursementUpLoadComponent v-if="row.reimbursementType == 1"
-                      @changeConfirmList="changeConfirmList" @handleCount="handleCount"
-                      @handleUploadSuccess="handleUploadSuccess" :ref="row.uniqueId + 'Upload'"
-                      v-show="'1' === this.inputForm.reimbursementType">
-                    </InvoiceReimbursementUpLoadComponent>
-                    <UpLoadComponent @handleUploadSuccess="handleUploadSuccess" v-if="row.reimbursementType == 0"
-                      :ref="row.uniqueId + 'UploadFiles'">
-                    </UpLoadComponent>
-                  </template>
-                </vxe-column>
-                <vxe-table-column field="userName" title="报销人" :edit-render="{}" show-overflow="title"
-                  :rules="[{ required: true, message: '请选择报销人', trigger: 'blur' }]">
-                  <template #edit="scope">
-                    <el-input v-model="scope.row.userName" @focus="userPullListForm3(scope.$rowIndex)"></el-input>
-                    <!--              <UserSelectV2 :limit='1' :userName="scope.row.userName" @getValue='(value, label) => {scope.row.userName = label}'></UserSelectV2>-->
-                  </template>
-                </vxe-table-column>
-                <vxe-table-column field="deptName" title="报销部门" :edit-render="{}" show-overflow="title">
-                  <template #edit="scope">
-                    <el-input :disabled='true' v-model="scope.row.deptName"></el-input>
-                  </template>
-                </vxe-table-column>
-                <vxe-table-column field="reimbursementType" title="报销类型" :edit-render="{}" show-overflow="title">
-                  <template #default="{ row }">
-                    <span>{{ $dictUtils.getDictLabel('reimbursement_type', row.reimbursementType,
-                      '') }}</span>
-                  </template>
-                  <template #edit="{ row }">
-                    <vxe-select :disabled="method === 'view' || status === 'audit' || status === 'taskFormDetail'"
-                      @change="handleChangeType" v-model="row.reimbursementType" placeholder="请选择报销类型" transfer>
-                      <vxe-option v-for="item in $dictUtils.getDictList('reimbursement_type')" :key="item.value"
-                        :value="item.value" :label="item.label"></vxe-option>
-                    </vxe-select>
-                  </template>
-                </vxe-table-column>
-                <vxe-table-column field="typeName" title="报销类别" :edit-render="{}" show-overflow="title"
-                  :rules="[{ required: true, message: '请选择报销类别', trigger: 'blur' }]">
-                  <template #edit="scope">
-                    <el-input v-model="scope.row.typeName"
-                      @focus="typePullForm3(scope.$rowIndex, scope.row.deptId)"></el-input>
-                  </template>
-                </vxe-table-column>
-                <vxe-table-column field="projectName" title="报销详情" :edit-render="{}" show-overflow="title"
-                  :rules="[{ required: true, message: '请填写报销详情', trigger: 'blur' }]">
-                  <template #edit="scope">
-                    <el-input v-model="scope.row.projectName"
-                      @focus="openProgramPageForm3(scope.$rowIndex, scope.row)"></el-input>
-                  </template>
-                </vxe-table-column>
-                <!--            <vxe-table-column field="reportNumber" title="报告号" :edit-render="{}">-->
-                <!--              <template v-slot:edit="scope">-->
-                <!--                <el-input :readonly="true" v-model="scope.row.reportNumber" @focus="openReportNoPageForm(scope.$rowIndex, scope.row)"></el-input>-->
-                <!--              </template>-->
-                <!--            </vxe-table-column>-->
-                <vxe-table-column field="number" title="费用(元)" :edit-render="{}" show-overflow="title"
-                  :rules="[{ required: true, message: '请输入费用', trigger: 'blur' }]">
-                  <template #edit="scope">
-                    <el-input maxlength="15" v-model="scope.row.number"
-                      @input="scope.row.number = twoDecimalPlaces(scope.row.number)"></el-input>
-                  </template>
-                </vxe-table-column>
-                <vxe-table-column field="receiptNumber" title="收据张数" :edit-render="{}" show-overflow="title">
-                  <template #edit="scope">
-                    <el-input v-model="scope.row.receiptNumber" oninput="value=value.replace(/\D|^0/g,'')"
-                      maxlength="10"></el-input>
-                  </template>
-                </vxe-table-column>
-                <vxe-table-column field="days" title="出差天数" :edit-render="{}" show-overflow="title">
-                  <template #edit="scope">
-                    <el-input v-model="scope.row.days" oninput="value=value.replace(/\D|^0/g,'')"
-                      maxlength="10"></el-input>
-                  </template>
-                </vxe-table-column>
-                <vxe-table-column field="content" title="内容" :edit-render="{}" show-overflow="title">
-                  <template #edit="scope">
-                    <el-input v-model="scope.row.content"></el-input>
-                  </template>
-                </vxe-table-column>
-                <vxe-table-column title="操作" width="100">
-                  <template #default="scope">
-                    <el-button size="default" type="danger"
-                      @click="removeEvent(scope.row, scope.$rowIndex, 'report_detail')">删除</el-button>
-                  </template>
-                </vxe-table-column>
-              </vxe-table>
-            </el-col>
-          </el-row>
-        </div>
-        <div v-if="inputForm.sourceType === '4'">
-          <el-divider content-position="left"><i class="el-icon-document"></i>
-            其他报销详情
-            <el-button style="margin-left: 20px" type="primary" :disabled="method === 'view' || this.formReadOnly"
-              size="mini" @click="insertEvent('others')" plain>
-              新增
-            </el-button>
-          </el-divider>
-          <el-row :gutter="15">
-            <el-col :span="24">
-              <vxe-table border show-footer show-overflow :footer-method="footerMethod" ref="detailTableOthers"
-                class="vxe-table-element" :data="inputForm.detailInfoOthers" style="margin-left: 5em"
-                :key="detailKeyOthers" highlight-current-row
-                :edit-config="{ trigger: 'click', mode: 'row', showStatus: true, autoClear: true, icon: '_' }"
-                :edit-rules="validRules"
-                :expand-config="{ expandAll: true, accordion: false, toggleMethod: handleExpand }">
-                <vxe-column type="expand" width="80">
-                  <template #content="{ row, rowIndex }">
-                    <InvoiceReimbursementUpLoadComponent v-if="row.reimbursementType == 1"
-                      @changeConfirmList="changeConfirmList" @handleCount="handleCount"
-                      @handleUploadSuccess="handleUploadSuccess" :ref="row.uniqueId + 'Upload'"
-                      v-show="'1' === this.inputForm.reimbursementType">
-                    </InvoiceReimbursementUpLoadComponent>
-                    <UpLoadComponent @handleUploadSuccess="handleUploadSuccess" v-if="row.reimbursementType == 0"
-                      :ref="row.uniqueId + 'UploadFiles'">
-                    </UpLoadComponent>
-                  </template>
-                </vxe-column>
-                <vxe-table-column field="userName" title="报销人" :edit-render="{}" show-overflow="title"
-                  :rules="[{ required: true, message: '请选择报销人', trigger: 'blur' }]">
-                  <template #edit="scope">
-                    <el-input v-model="scope.row.userName" @focus="userPullListForm4(scope.$rowIndex)"></el-input>
-                    <!--              <UserSelectV2 :limit='1' :userName="scope.row.userName" @getValue='(value, label) => {scope.row.userName = label}'></UserSelectV2>-->
-                  </template>
-                </vxe-table-column>
-                <vxe-table-column field="deptName" title="报销部门" :edit-render="{}" show-overflow="title">
-                  <template #edit="scope">
-                    <el-input :disabled='true' v-model="scope.row.deptName"></el-input>
-                  </template>
-                </vxe-table-column>
-                <vxe-table-column field="reimbursementType" title="报销类型" :edit-render="{}" show-overflow="title">
-                  <template #default="{ row }">
-                    <span>{{ $dictUtils.getDictLabel('reimbursement_type', row.reimbursementType,
-                      '') }}</span>
-                  </template>
-                  <template #edit="{ row }">
-                    <vxe-select :disabled="method === 'view' || status === 'audit' || status === 'taskFormDetail'"
-                      @change="handleChangeType" v-model="row.reimbursementType" placeholder="请选择报销类型" transfer>
-                      <vxe-option v-for="item in $dictUtils.getDictList('reimbursement_type')" :key="item.value"
-                        :value="item.value" :label="item.label"></vxe-option>
-                    </vxe-select>
-                  </template>
-                </vxe-table-column>
-                <vxe-table-column field="typeName" title="报销类别" :edit-render="{}" show-overflow="title"
-                  :rules="[{ required: true, message: '请选择报销类别', trigger: 'blur' }]">
-                  <template #edit="scope">
-                    <el-input v-model="scope.row.typeName" @focus="typePullForm4(scope.$rowIndex)"></el-input>
-                  </template>
-                </vxe-table-column>
-                <vxe-table-column field="projectName" title="报销项目" :edit-render="{}" show-overflow="title"
-                  :rules="[{ required: true, message: '请选择报销项目', trigger: 'blur' }]">
-                  <template #edit="scope">
-                    <el-input v-model="scope.row.projectName"
-                      @focus="openProgramPageForm4(scope.$rowIndex, scope.row)"></el-input>
-                  </template>
-                </vxe-table-column>
-                <!--            <vxe-table-column field="reportNumber" title="报告号" :edit-render="{}">-->
-                <!--              <template v-slot:edit="scope">-->
-                <!--                <el-input :readonly="true" v-model="scope.row.reportNumber" @focus="openReportNoPageForm(scope.$rowIndex, scope.row)"></el-input>-->
-                <!--              </template>-->
-                <!--            </vxe-table-column>-->
-                <vxe-table-column field="number" title="费用(元)" :edit-render="{}" show-overflow="title"
-                  :rules="[{ required: true, message: '请输入费用', trigger: 'blur' }]">
-                  <template #edit="scope">
-                    <el-input maxlength="15" v-model="scope.row.number"
-                      @input="scope.row.number = twoDecimalPlaces(scope.row.number)"></el-input>
-                  </template>
-                </vxe-table-column>
-                <vxe-table-column field="receiptNumber" title="收据张数" :edit-render="{}" show-overflow="title">
-                  <template #edit="scope">
-                    <el-input v-model="scope.row.receiptNumber" oninput="value=value.replace(/\D|^0/g,'')"
-                      maxlength="10"></el-input>
-                  </template>
-                </vxe-table-column>
-                <vxe-table-column field="days" title="出差天数" :edit-render="{}" show-overflow="title">
-                  <template #edit="scope">
-                    <el-input v-model="scope.row.days" oninput="value=value.replace(/\D|^0/g,'')"
-                      maxlength="10"></el-input>
-                  </template>
-                </vxe-table-column>
-                <vxe-table-column field="content" title="内容" :edit-render="{}" show-overflow="title">
-                  <template #edit="scope">
-                    <el-input v-model="scope.row.content"></el-input>
-                  </template>
-                </vxe-table-column>
-                <vxe-table-column title="操作" width="100">
-                  <template #default="scope">
-                    <el-button size="mini" type="danger"
-                      @click="removeEvent(scope.row, scope.$rowIndex, 'others')">删除</el-button>
-                  </template>
-                </vxe-table-column>
-              </vxe-table>
-            </el-col>
-
-          </el-row>
-        </div>
-        <div v-if="inputForm.sourceType === '5'">
-          <el-divider content-position="left"><i class="el-icon-document"></i>
-            采购报销详情
-            <el-button style="margin-left: 20px" type="primary" :disabled="method === 'view' || this.formReadOnly"
-              size="mini" @click="insertEvent('procured')" plain>
-              新增
-            </el-button>
-          </el-divider>
-          <el-row :gutter="15">
-            <el-col :span="24">
-              <vxe-table border show-footer show-overflow :footer-method="footerMethod" ref="detailTableProcured"
-                class="vxe-table-element" :data="inputForm.detailInfoProcured" style="margin-left: 5em"
-                :key="detailKeyProcured" @cell-click="" @edit-closed="" highlight-current-row
-                :edit-config="{ trigger: 'click', mode: 'row', showStatus: true, autoClear: true, icon: '_' }"
-                :edit-rules="validRules">
-                <vxe-table-column field="userName" title="报销人" :edit-render="{}" show-overflow="title"
-                  :rules="[{ required: true, message: '请选择报销人', trigger: 'blur' }]">
-                  <template #edit="scope">
-                    <el-input v-model="scope.row.userName" @focus="userPullListForm5(scope.$rowIndex)"></el-input>
-                    <!--              <UserSelectV2 :limit='1' :userName="scope.row.userName" @getValue='(value, label) => {scope.row.userName = label}'></UserSelectV2>-->
-                  </template>
-                </vxe-table-column>
-                <vxe-table-column field="deptName" title="报销部门" :edit-render="{}" show-overflow="title">
-                  <template #edit="scope">
-                    <el-input :disabled='true' v-model="scope.row.deptName"></el-input>
-                  </template>
-                </vxe-table-column>
-                <vxe-table-column field="typeName" title="报销类别" :edit-render="{}" show-overflow="title"
-                  :rules="[{ required: true, message: '请选择报销类别', trigger: 'blur' }]">
-                  <template #edit="scope">
-                    <el-input v-model="scope.row.typeName" @focus="typePullForm5(scope.$rowIndex)"></el-input>
-                  </template>
-                </vxe-table-column>
-                <vxe-table-column field="projectName" title="报销项目" :edit-render="{}" show-overflow="title"
-                  :rules="[{ required: true, message: '请选择报销项目', trigger: 'blur' }]">
-                  <template #edit="scope">
-                    <el-input v-model="scope.row.projectName"
-                      @focus="openProgramPageForm5(scope.$rowIndex, scope.row)"></el-input>
-                  </template>
-                </vxe-table-column>
-                <!--            <vxe-table-column field="reportNumber" title="报告号" :edit-render="{}">-->
-                <!--              <template v-slot:edit="scope">-->
-                <!--                <el-input :readonly="true" v-model="scope.row.reportNumber" @focus="openReportNoPageForm(scope.$rowIndex, scope.row)"></el-input>-->
-                <!--              </template>-->
-                <!--            </vxe-table-column>-->
-                <vxe-table-column field="number" title="费用(元)" :edit-render="{}" show-overflow="title"
-                  :rules="[{ required: true, message: '请输入费用', trigger: 'blur' }]">
-                  <template #edit="scope">
-                    <el-input maxlength="15" v-model="scope.row.number"
-                      @input="scope.row.number = twoDecimalPlaces(scope.row.number)"></el-input>
-                  </template>
-                </vxe-table-column>
-                <vxe-table-column field="receiptNumber" title="收据张数" :edit-render="{}" show-overflow="title">
-                  <template #edit="scope">
-                    <el-input v-model="scope.row.receiptNumber" oninput="value=value.replace(/\D|^0/g,'')"
-                      maxlength="10"></el-input>
-                  </template>
-                </vxe-table-column>
-                <vxe-table-column field="days" title="出差天数" :edit-render="{}" show-overflow="title">
-                  <template #edit="scope">
-                    <el-input v-model="scope.row.days" oninput="value=value.replace(/\D|^0/g,'')"
-                      maxlength="10"></el-input>
-                  </template>
-                </vxe-table-column>
-                <vxe-table-column field="content" title="内容" :edit-render="{}" show-overflow="title">
-                  <template #edit="scope">
-                    <el-input v-model="scope.row.content"></el-input>
-                  </template>
-                </vxe-table-column>
-                <vxe-table-column title="操作" width="100">
-                  <template #default="scope">
-                    <el-button size="mini" type="danger"
-                      @click="removeEvent(scope.row, scope.$rowIndex, 'procured')">删除</el-button>
-                  </template>
-                </vxe-table-column>
-              </vxe-table>
-            </el-col>
-          </el-row>
-        </div>
-        <div v-if="inputForm.sourceType === '8'">
-          <el-divider content-position="left"><i class="el-icon-document"></i>
-            中审项目报销详情
-            <el-button size="default" style="margin-left: 20px" type="primary"
-              :disabled="method === 'view' || status === 'audit' || status === 'taskFormDetail'"
-              @click="insertEvent('zs_project_detail')" plain>
-              新增
-            </el-button>
-          </el-divider>
-          <el-row :gutter="15">
-            <el-col :span="24">
-              <vxe-table border show-footer show-overflow :footer-method="footerMethod" ref="detailTableProject"
-                class="vxe-table-element" :data="inputForm.detailInfoProject" style="margin-left: 5em"
-                :key="detailKeyProject" highlight-current-row
-                :edit-config="{ trigger: 'click', mode: 'row', showStatus: true, autoClear: true, icon: '_' }"
-                :edit-rules="validRules" :tooltip-config="{
-                  enterable: true
-                }" :expand-config="{ expandAll: true, accordion: false, toggleMethod: handleExpand }">
-                <vxe-column type="expand" width="80">
-                  <template #content="{ row, rowIndex }">
-                    <InvoiceReimbursementUpLoadComponent v-if="row.reimbursementType == 1"
-                      @changeConfirmList="changeConfirmList" @handleCount="handleCount"
-                      @handleUploadSuccess="handleUploadSuccess" :ref="row.uniqueId + 'Upload'"
-                      v-show="'1' === this.inputForm.reimbursementType">
-                    </InvoiceReimbursementUpLoadComponent>
-                    <UpLoadComponent @handleUploadSuccess="handleUploadSuccess" v-if="row.reimbursementType == 0"
-                      :ref="row.uniqueId + 'UploadFiles'">
-                    </UpLoadComponent>
-                  </template>
-                </vxe-column>
-                <vxe-table-column field="userName" title="报销人" :edit-render="{}" show-overflow="title"
-                  :rules="[{ required: true, message: '请选择报销人', trigger: 'blur' }]">
-                  <template #edit="scope">
-                    <el-input v-model="scope.row.userName" @focus="userPullListForm4(scope.$rowIndex)"></el-input>
-                    <!--              <UserSelectV2 :limit='1' :userName="scope.row.userName" @getValue='(value, label) => {scope.row.userName = label}'></UserSelectV2>-->
-                  </template>
-                </vxe-table-column>
-                <vxe-table-column field="deptName" title="报销部门" :edit-render="{}" show-overflow="title">
-                  <template #edit="scope">
-                    <el-input :disabled='true' v-model="scope.row.deptName"></el-input>
-                  </template>
-                </vxe-table-column>
-                <vxe-table-column field="reimbursementType" title="报销类型" :edit-render="{}" show-overflow="title">
-                  <template #default="{ row }">
-                    <span>{{ $dictUtils.getDictLabel('reimbursement_type', row.reimbursementType,
-                      '') }}</span>
-                  </template>
-                  <template #edit="{ row }">
-                    <vxe-select :disabled="method === 'view' || status === 'audit' || status === 'taskFormDetail'"
-                      @change="handleChangeType" v-model="row.reimbursementType" placeholder="请选择报销类型" transfer>
-                      <vxe-option v-for="item in $dictUtils.getDictList('reimbursement_type')" :key="item.value"
-                        :value="item.value" :label="item.label"></vxe-option>
-                    </vxe-select>
-                  </template>
-                </vxe-table-column>
-                <vxe-table-column field="typeName" title="报销类别" :edit-render="{}" show-overflow="title"
-                  :rules="[{ required: true, message: '请选择报销类别', trigger: 'blur' }]">
-                  <template #edit="scope">
-                    <el-input v-model="scope.row.typeName"
-                      @focus="typePullForm8(scope.$rowIndex, scope.row.deptId)"></el-input>
-                  </template>
-                </vxe-table-column>
-                <vxe-table-column field="projectName" title="报销详情" :edit-render="{}" show-overflow="title"
-                  :rules="[{ required: true, message: '请填写报销详情', trigger: 'blur' }]">
-                  <template #edit="scope">
-                    <el-input v-model="scope.row.projectName"
-                      @focus="openProgramPageForm8(scope.$rowIndex, scope.row)"></el-input>
-                  </template>
-                </vxe-table-column>
-                <vxe-colgroup title="发票号和立项号至少填写一项" header-align="center">
-                  <vxe-table-column field="invoiceNumber" title="发票号" :edit-render="{}" show-overflow="title">
-                    <template #header>
-                      <i class="vxe-cell--required-icon"></i>发票号
-                    </template>
-                    <template #edit="scope">
-                      <el-input v-model="scope.row.invoiceNumber"></el-input>
-                    </template>
-                  </vxe-table-column>
-                  <vxe-table-column field="projectApprovalNumber" title="立项号" :edit-render="{}" show-overflow="title">
-                    <template #header>
-                      <i class="vxe-cell--required-icon"></i>立项号
-                    </template>
-                    <template #edit="scope">
-                      <el-input v-model="scope.row.projectApprovalNumber"></el-input>
-                    </template>
-                  </vxe-table-column>
-                </vxe-colgroup>
-                <!--            <vxe-table-column field="reportNumber" title="报告号" :edit-render="{}">-->
-                <!--              <template v-slot:edit="scope">-->
-                <!--                <el-input :readonly="true" v-model="scope.row.reportNumber" @focus="openReportNoPageForm(scope.$rowIndex, scope.row)"></el-input>-->
-                <!--              </template>-->
-                <!--            </vxe-table-column>-->
-                <vxe-table-column field="number" title="费用(元)" :edit-render="{}" show-overflow="title"
-                  :rules="[{ required: true, message: '请输入费用', trigger: 'blur' }]">
-                  <template #edit="scope">
-                    <el-input maxlength="15" v-model="scope.row.number"
-                      @input="scope.row.number = twoDecimalPlaces(scope.row.number)"></el-input>
-                  </template>
-                </vxe-table-column>
-                <vxe-table-column field="receiptNumber" title="收据张数" :edit-render="{}" show-overflow="title">
-                  <template #edit="scope">
-                    <el-input v-model="scope.row.receiptNumber" oninput="value=value.replace(/\D|^0/g,'')"
-                      maxlength="10"></el-input>
-                  </template>
-                </vxe-table-column>
-                <vxe-table-column field="days" title="出差天数" :edit-render="{}" show-overflow="title">
-                  <template #edit="scope">
-                    <el-input v-model="scope.row.days" oninput="value=value.replace(/\D|^0/g,'')"
-                      maxlength="10"></el-input>
-                  </template>
-                </vxe-table-column>
-                <vxe-table-column field="content" title="内容" :edit-render="{}" show-overflow="title">
-                  <template #edit="scope">
-                    <el-input v-model="scope.row.content"></el-input>
-                  </template>
-                </vxe-table-column>
-                <vxe-table-column title="操作" width="100">
-                  <template #default="scope">
-                    <el-button size="default" type="danger"
-                      @click="removeEvent(scope.row, scope.$rowIndex, 'zs_project_detail')">删除</el-button>
-                  </template>
-                </vxe-table-column>
-              </vxe-table>
-            </el-col>
-          </el-row>
-        </div>
-
-        <div v-if="inputForm.reimbursementType === '0'">
-          <el-divider content-position="left"><i class="el-icon-document"></i>
-            专用发票信息
-            <el-button style="margin-left: 20px" type="primary" :disabled="method === 'view'" size="mini"
-              @click="insertEvent('amount')" plain>
-              新增
-            </el-button>
-          </el-divider>
-          <el-row :gutter="15">
-            <el-col :span="24">
-              <vxe-table border show-overflow ref="amountTable" class="vxe-table-element" :data="inputForm.amountInfos"
-                style="margin-left: 5em" highlight-current-row
-                :edit-config="{ trigger: 'click', mode: 'cell', showStatus: true, autoClear: true }">
-                <vxe-table-column field="code" title="发票代码" :edit-render="{}" show-overflow="title">
-                  <template #edit="scope">
-                    <el-input v-model="scope.row.code"></el-input>
-                  </template>
-                </vxe-table-column>
-                <vxe-table-column field="number" title="发票号" :edit-render="{}" show-overflow="title">
-                  <template #edit="scope">
-                    <el-input v-model="scope.row.number"></el-input>
-                  </template>
-                </vxe-table-column>
-                <vxe-table-column field="amount" title="金额" :edit-render="{}" show-overflow="title">
-                  <template #edit="scope">
-                    <el-input v-model="scope.row.amount"></el-input>
-                  </template>
-                </vxe-table-column>
-                <vxe-table-column field="taxAmount" title="税额" :edit-render="{}" show-overflow="title">
-                  <template #edit="scope">
-                    <el-input v-model="scope.row.taxAmount"></el-input>
-                  </template>
-                </vxe-table-column>
-                <vxe-table-column field="count" title="价税合计" :edit-render="{}" show-overflow="title">
-                  <template #edit="scope">
-                    <el-input v-model="scope.row.count"></el-input>
-                  </template>
-                </vxe-table-column>
-                <vxe-table-column title="操作" width="100">
-                  <template #default="scope">
-                    <el-button size="mini" type="danger"
-                      @click="removeEvent(scope.row, scope.$rowIndex, 'amount')">删除</el-button>
-                  </template>
-                </vxe-table-column>
-              </vxe-table>
-            </el-col>
-
-
-          </el-row>
-        </div>
-        <!--		  <div v-if="inputForm.reimbursementType === '1'">-->
-        <!--			  <el-divider content-position="left">数电发票信息-->
-        <!--				  &lt;!&ndash;<el-button style="margin-left: 20px" type="primary" :disabled="method==='view' || status === 'audit' || status === 'taskFormDetail' " size="default" @click="insertEvent('invoiceReimbursement')" plain>-->
-        <!--					  新增-->
-        <!--				  </el-button>&ndash;&gt;-->
-        <!--			  </el-divider>-->
-        <!--			  <el-row  :gutter="15" >-->
-        <!--				  <el-col :span="24">-->
-        <!--					  <vxe-table-->
-        <!--						  border-->
-        <!--						  show-footer-->
-        <!--						  show-overflow-->
-        <!--						  ref="invoiceReimbursementTable"-->
-        <!--						  class="vxe-table-element"-->
-        <!--						  :data="inputForm.invoiceReimbursements"-->
-        <!--						  :footer-method="footerMethod1111"-->
-        <!--						  style="margin-left: 5em"-->
-        <!--						  @cell-click=""-->
-        <!--						  :key="invoiceReimbursementKey"-->
-        <!--						  @edit-closed=""-->
-        <!--						  highlight-current-row-->
-        <!--						  :edit-config="{trigger: 'click', mode: 'row', showStatus: true, autoClear: true, icon:'_'}"-->
-        <!--						  :edit-rules="invoiceReimbursementRules"-->
-        <!--					  >-->
-        <!--						  <vxe-table-column  field="invoiceType" title="发票类型" show-overflow="title" :edit-render="{name: '$select', options: $dictUtils.getDictList('invoice_reimbursement_type')}">-->
-        <!--							  <template v-slot:edit="scope">-->
-        <!--								  <vxe-select :disabled="true" v-model="scope.row.invoiceType" placeholder="请选择发票类型" clearable style="width: 100%;" transfer>-->
-        <!--									  <vxe-option-->
-        <!--										  v-for="item in $dictUtils.getDictList('invoice_reimbursement_type')"-->
-        <!--										  :key="item.value"-->
-        <!--										  :label="item.label"-->
-        <!--										  :value="item.value">-->
-        <!--									  </vxe-option>-->
-        <!--								  </vxe-select>-->
-        <!--							  </template>-->
-        <!--						  </vxe-table-column>-->
-        <!--						  <vxe-table-column field="invoiceProjectName" title="发票项目名" :edit-render="{}" show-overflow="title">-->
-        <!--							  <template #edit="scope">-->
-        <!--								  <el-input maxlength="50" readonly="true" v-model="scope.row.invoiceProjectName" ></el-input>-->
-        <!--							  </template>-->
-        <!--						  </vxe-table-column>-->
-        <!--						  <vxe-table-column field="number" title="发票号" :edit-render="{}" show-overflow="title">-->
-        <!--							  <template #edit="scope">-->
-        <!--								  <el-input oninput ="value=value.replace(/\D|^/g,'')" readonly="true" maxlength="30" @change="isExict(scope.row)" v-model="scope.row.number" ></el-input>-->
-        <!--							  </template>-->
-        <!--						  </vxe-table-column>-->
-        <!--						  <vxe-table-column field="invoiceDate" title="开票日期" :edit-render="{}" show-overflow="title">-->
-        <!--							  <template v-slot:edit="scope">-->
-        <!--								  <vxe-input v-model="scope.row.invoiceDate" readonly="true" type="datetime" transfer placeholder="请选择日期"></vxe-input>-->
-        <!--							  </template>-->
-        <!--						  </vxe-table-column>-->
-        <!--						  <vxe-table-column field="invoiceUnit" title="开票单位" :edit-render="{}" show-overflow="title">-->
-        <!--							  <template #edit="scope">-->
-        <!--								  <el-input maxlength="50" readonly="true" v-model="scope.row.invoiceUnit" ></el-input>-->
-        <!--							  </template>-->
-        <!--						  </vxe-table-column>-->
-        <!--						  <vxe-table-column field="buyerName" title="购买方名称" :edit-render="{}" show-overflow="title">-->
-        <!--							  <template #edit="scope">-->
-        <!--								  <el-input maxlength="50" readonly="true" v-model="scope.row.buyerName" ></el-input>-->
-        <!--							  </template>-->
-        <!--						  </vxe-table-column>-->
-        <!--						  <vxe-table-column field="amount" title="金额" :edit-render="{}" show-overflow="title">-->
-        <!--							  <template #edit="scope">-->
-        <!--								  <el-input maxlength="15" readonly="true" v-model="scope.row.amount" @input="scope.row.amount = twoDecimalPlaces(scope.row.amount)" @change="countAmount(scope.row)"></el-input>-->
-        <!--							  </template>-->
-        <!--						  </vxe-table-column>-->
-        <!--						  <vxe-table-column field="taxAmount" title="税额" :edit-render="{}" show-overflow="title">-->
-        <!--							  <template #edit="scope">-->
-        <!--								  <el-input maxlength="15" readonly="true" v-model="scope.row.taxAmount" @input="scope.row.taxAmount = twoDecimalPlaces(scope.row.taxAmount)" @change="countAmount(scope.row)"></el-input>-->
-        <!--							  </template>-->
-        <!--						  </vxe-table-column>-->
-        <!--						  <vxe-table-column field="count" title="价税合计" :edit-render="{}" show-overflow="title">-->
-        <!--							  <template #edit="scope">-->
-        <!--								  <el-input disabled="true" v-model="scope.row.count" ></el-input>-->
-        <!--							  </template>-->
-        <!--						  </vxe-table-column>-->
-        <!--						  <vxe-table-column field="remarks" title="备注" :edit-render="{}" show-overflow="title">-->
-        <!--							  <template #edit="scope">-->
-        <!--								  <el-input maxlength="250" v-model="scope.row.remarks" ></el-input>-->
-        <!--							  </template>-->
-        <!--						  </vxe-table-column>-->
-        <!--						  &lt;!&ndash;<vxe-table-column title="操作" width="100">-->
-        <!--							  <template #default="scope">-->
-        <!--								  <el-button size="default" type="danger" @click="removeEvent(scope.row,scope.$rowIndex,'invoiceReimbursement')">删除</el-button>-->
-        <!--							  </template>-->
-        <!--						  </vxe-table-column>&ndash;&gt;-->
-        <!--					  </vxe-table>-->
-        <!--				  </el-col>-->
-        <!--			  </el-row>-->
-        <!--		  </div>-->
+        <ReimbursementComponent ref="reimbursementComponent">
+        </ReimbursementComponent>
+        <UpLoadComponent ref="uploadComponent"></UpLoadComponent>
 
       </el-form>
-      <!-- 附件 -->
-      <!-- <InvoiceReimbursementUpLoadComponent ref="invoiceReimbursementUpLoadComponent"
-        v-show="'1' === this.inputForm.reimbursementType"></InvoiceReimbursementUpLoadComponent>
-      <UpLoadComponent ref="uploadComponent"></UpLoadComponent> -->
       <template #footer>
         <span class="dialog-footer">
           <el-button size="small" @click="close()" icon="el-icon-circle-close">关闭</el-button>
@@ -876,9 +98,10 @@
 <script>
 // import ReimbursementService from '@/api/sys/ReimbursementService'
 import ReimbursementService from '@/api/zs/reimbursement/ReimbursementService'
-import UpLoadComponent from '@/views/common/NewUpLoadComponent'
+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 MaterialManagementService from '@/api/materialManagement/MaterialManagementService'
 // import MaterialManagementDialog from '../../../materialManagement/file/MaterialManagementDialog'
 export default {
@@ -930,11 +153,16 @@ export default {
   components: {
     InvoiceReimbursementUpLoadComponent,
     UpLoadComponent,
+    ReimbursementComponent,
+
     // MaterialManagementDialog
   },
   methods: {
     getUpload() {
     },
+    initReimbursementComponent() {
+      this.$refs.reimbursementComponent.initComponent("reimbursement", "zs", "中审众环会计师事务所(特殊普通合伙)江苏分所", this.inputForm, this.isConfirm, this.status)
+    },
     init(method, id) {
       this.method = method
       this.inputForm = {
@@ -983,7 +211,7 @@ export default {
           this.reimbursementService.findById(this.inputForm.id).then((data) => {
             this.inputForm = this.recover(this.inputForm, data)
             this.inputForm = JSON.parse(JSON.stringify(this.inputForm))
-            // this.$refs.uploadComponent.clearUpload()
+            this.$refs.uploadComponent.clearUpload()
             // this.$refs.invoiceReimbursementUpLoadComponent.clearUpload()
             if (this.status === 'audit' || this.status === 'taskFormDetail') {
               method = 'view'
@@ -1016,16 +244,18 @@ export default {
               this.payment = '未付款'
             }
             // this.$refs.invoiceReimbursementUpLoadComponent.newUpload(method, this.inputForm.invoiceReimbursementFiles, 'reimbursement', 300, '数电发票信息', null, null, null, '中审众环会计师事务所(特殊普通合伙)江苏分所')
-            // this.$refs.uploadComponent.newUpload(method, this.inputForm.files, 'reimbursement')
+            this.$refs.uploadComponent.newUpload(method, this.inputForm.files, 'reimbursement')
             this.inputForm = JSON.parse(JSON.stringify(this.inputForm))
             if (this.commonJS.isNotEmpty(this.inputForm.purchaseId)) {
               this.startPur(this.inputForm.purchaseId)
             }
+            this.$refs.reimbursementComponent.inputForm = this.inputForm
+            this.initReimbursementComponent()
             this.loading = false
           })
           // this.reimbursementService.findById(this.inputForm.id).then(({data}) => {
           //   this.inputForm = this.recover(this.inputForm, data)
-          //   this.$refs.uploadComponent.newUpload(method, this.inputForm.files, 'reimbursement')
+          // this.$refs.uploadComponent.newUpload(method, this.inputForm.files, 'reimbursement')
           //   this.inputForm = JSON.parse(JSON.stringify(this.inputForm))
           //   this.loading = false
           // })
@@ -1049,6 +279,7 @@ export default {
     },
     // 表单提交
     doSubmit() {
+      this.getReimbursementData()
       this.$refs['inputForm'].validate((valid) => {
         if (valid) {
           this.loading = true
@@ -1083,7 +314,7 @@ export default {
       this.inputForm.preList = ''
       this.inputForm.purchaseId = ''
       this.inputForm.amountInfos = []
-      // this.$refs.uploadComponent.clearUpload()
+      this.$refs.uploadComponent.clearUpload()
       this.visible = false
     },
     // 删除
@@ -1217,6 +448,18 @@ export default {
       return true
 
     },
+    getReimbursementData() {
+      this.$nextTick(() => {
+        let inputForm = this.$refs.reimbursementComponent.handleGetData()
+        this.inputForm.detailInfos = inputForm.detailInfos
+        this.inputForm.detailInfoContracts = inputForm.detailInfoContracts
+        this.inputForm.detailInfoReports = inputForm.detailInfoReports
+        this.inputForm.detailInfoProject = inputForm.detailInfoProject
+        this.inputForm.detailInfoOthers = inputForm.detailInfoOthers
+        this.inputForm.detailInfoProcured = inputForm.detailInfoProcured
+        this.inputForm.invoiceReimbursementFiles = inputForm.invoiceReimbursementFiles
+      });
+    }
   }
 }
 </script>

+ 50 - 655
src/views/zs/reimbursement/info/NewInfoUpdateForm.vue

@@ -110,634 +110,9 @@
             </vxe-table>
           </el-row>
         </div>
-        <div v-if="inputForm.sourceType === '1'">
-          <el-divider content-position="left"><i class="el-icon-document"></i>
-            项目报销详情
-            <el-button size="default" style="margin-left: 20px" type="primary"
-              :disabled="method === 'view' || status === 'audit' || status === 'taskFormDetail'"
-              @click="insertEvent('detail')" plain>
-              新增
-            </el-button>
-          </el-divider>
-          <el-row :gutter="15">
-            <vxe-table border show-footer show-overflow :footer-method="footerMethod" ref="detailTable" :key="detailKey"
-              class="vxe-table-element" :data="inputForm.detailInfos" style="margin-left: 5em" highlight-current-row
-              :edit-config="{ trigger: 'click', mode: 'row', showStatus: true, autoClear: true, icon: '_' }"
-              :edit-rules="validRules" :row-config="{ keyField: 'uniqueId' }"
-              :expand-config="{ expandAll: false, accordion: false, toggleMethod: handleExpand, expandRowKeys: handleDefaultExpand() }">
-              <vxe-column type="expand" width="80">
-                <template #content="{ row, rowIndex }">
-                  <InvoiceReimbursementUpLoadComponent v-if="row.reimbursementType == 1"
-                    @changeConfirmList="changeConfirmList" @handleCount="handleCount"
-                    @handleUploadSuccess="handleUploadSuccess" :ref="row.uniqueId + 'Upload'"
-                    v-show="'1' === this.inputForm.reimbursementType">
-                  </InvoiceReimbursementUpLoadComponent>
-                  <UpLoadComponent @handleUploadSuccess="handleUploadSuccess" v-if="row.reimbursementType == 0"
-                    :ref="row.uniqueId + 'UploadFiles'">
-                  </UpLoadComponent>
-
-                </template>
-              </vxe-column>
-              <vxe-table-column field="userName" title="报销人" :edit-render="{}" show-overflow="title"
-                :rules="[{ required: true, message: '请选择报销人', trigger: 'blur' }]">
-                <template #edit="scope">
-                  <el-input v-model="scope.row.userName" @focus="userPullListForm(scope.$rowIndex)"></el-input>
-                  <!--              <UserSelectV2 :limit='1' :userName="scope.row.userName" @getValue='(value, label) => {scope.row.userName = label}'></UserSelectV2>-->
-                </template>
-              </vxe-table-column>
-              <vxe-table-column field="deptName" title="报销部门" :edit-render="{}" show-overflow="title">
-                <template #edit="scope">
-                  <el-input :disabled='true' v-model="scope.row.deptName"></el-input>
-                </template>
-              </vxe-table-column>
-              <vxe-table-column field="reimbursementType" title="报销类型" :edit-render="{}" show-overflow="title">
-                <template #default="{ row }">
-                  <span>{{ $dictUtils.getDictLabel('reimbursement_type', row.reimbursementType,
-                    '') }}</span>
-                </template>
-                <template #edit="{ row }">
-                  <vxe-select :disabled="method === 'view' || status === 'audit' || status === 'taskFormDetail'"
-                    @change="handleChangeType" v-model="row.reimbursementType" placeholder="请选择报销类型" transfer>
-                    <vxe-option v-for="item in $dictUtils.getDictList('reimbursement_type')" :key="item.value"
-                      :value="item.value" :label="item.label"></vxe-option>
-                  </vxe-select>
-                </template>
-              </vxe-table-column>
-              <vxe-table-column field="typeName" title="报销类别" :edit-render="{}" show-overflow="title"
-                :rules="[{ required: true, message: '请选择报销类别', trigger: 'blur' }]">
-                <template #edit="scope">
-                  <el-input v-model="scope.row.typeName"
-                    @focus="typePullForm(scope.$rowIndex, scope.row.deptId)"></el-input>
-                </template>
-              </vxe-table-column>
-              <vxe-table-column field="projectName" title="报销项目" :edit-render="{}" show-overflow="title"
-                :rules="[{ required: true, message: '请选择报销项目', trigger: 'blur' }]">
-                <template #edit="scope">
-                  <el-input v-model="scope.row.projectName"
-                    @focus="openProgramPageForm(scope.$rowIndex, scope.row)"></el-input>
-                </template>
-              </vxe-table-column>
-              <!--            <vxe-table-column field="reportNumber" title="报告号" :edit-render="{}">-->
-              <!--              <template v-slot:edit="scope">-->
-              <!--                <el-input :readonly="true" v-model="scope.row.reportNumber" @focus="openReportNoPageForm(scope.$rowIndex, scope.row)"></el-input>-->
-              <!--              </template>-->
-              <!--            </vxe-table-column>-->
-              <vxe-table-column field="number" title="费用(元)" :edit-render="{}" show-overflow="title"
-                :rules="[{ required: true, message: '请输入费用', trigger: 'blur' }]">
-                <template #edit="scope">
-                  <el-input maxlength="15" v-model="scope.row.number"
-                    @input="scope.row.number = twoDecimalPlaces(scope.row.number)"></el-input>
-                </template>
-              </vxe-table-column>
-              <vxe-table-column field="receiptNumber" title="收据张数" :edit-render="{}" show-overflow="title">
-                <template #edit="scope">
-                  <el-input v-model="scope.row.receiptNumber" oninput="value=value.replace(/\D|^0/g,'')"
-                    maxlength="10"></el-input>
-                </template>
-              </vxe-table-column>
-              <vxe-table-column field="days" title="出差天数" :edit-render="{}" show-overflow="title">
-                <template #edit="scope">
-                  <el-input v-model="scope.row.days" oninput="value=value.replace(/\D|^0/g,'')"
-                    maxlength="10"></el-input>
-                </template>
-              </vxe-table-column>
-              <vxe-table-column field="content" title="内容" :edit-render="{}" show-overflow="title">
-                <template #edit="scope">
-                  <el-input v-model="scope.row.content"></el-input>
-                </template>
-              </vxe-table-column>
-              <vxe-table-column title="操作" width="180">
-                <template #default="scope">
-                  <el-button size="default" @click="uploadFile(scope.row, scope.$rowIndex,)"
-                    type="primary">上传</el-button>
-                  <el-button size="default" type="danger"
-                    @click="removeEvent(scope.row, scope.$rowIndex, 'detail')">删除</el-button>
-                </template>
-              </vxe-table-column>
-            </vxe-table>
-          </el-row>
-        </div>
-        <div v-if="inputForm.sourceType === '2'">
-          <el-divider content-position="left"><i class="el-icon-document"></i>
-            合同报销详情
-            <el-button size="default" style="margin-left: 20px" type="primary"
-              :disabled="method === 'view' || status === 'audit' || status === 'taskFormDetail'"
-              @click="insertEvent('contract_detail')" plain>
-              新增
-            </el-button>
-          </el-divider>
-          <el-row :gutter="15">
-            <vxe-table border show-footer show-overflow :footer-method="footerMethod" ref="detailTableContract"
-              :key="detailKeyContract" class="vxe-table-element" :data="inputForm.detailInfoContracts"
-              style="margin-left: 5em" highlight-current-row
-              :edit-config="{ trigger: 'click', mode: 'row', showStatus: true, autoClear: true, icon: '_' }"
-              :edit-rules="validRules">
-              <vxe-table-column field="userName" title="报销人" :edit-render="{}" show-overflow="title"
-                :rules="[{ required: true, message: '请选择报销人', trigger: 'blur' }]">
-                <template #edit="scope">
-                  <el-input v-model="scope.row.userName" @focus="userPullListForm2(scope.$rowIndex)"></el-input>
-                  <!--              <UserSelectV2 :limit='1' :userName="scope.row.userName" @getValue='(value, label) => {scope.row.userName = label}'></UserSelectV2>-->
-                </template>
-              </vxe-table-column>
-              <vxe-table-column field="deptName" title="报销部门" :edit-render="{}" show-overflow="title">
-                <template #edit="scope">
-                  <el-input :disabled='true' v-model="scope.row.deptName"></el-input>
-                </template>
-              </vxe-table-column>
-              <vxe-table-column field="typeName" title="报销类别" :edit-render="{}" show-overflow="title"
-                :rules="[{ required: true, message: '请选择报销类别', trigger: 'blur' }]">
-                <template #edit="scope">
-                  <el-input v-model="scope.row.typeName"
-                    @focus="typePullForm2(scope.$rowIndex, scope.row.deptId)"></el-input>
-                </template>
-              </vxe-table-column>
-              <vxe-table-column field="contractName" title="报销合同" :edit-render="{}" show-overflow="title"
-                :rules="[{ required: true, message: '请选择报销合同', trigger: 'blur' }]">
-                <template #edit="scope">
-                  <el-input v-model="scope.row.contractName"
-                    @focus="openContractForm(scope.$rowIndex, scope.row)"></el-input>
-                </template>
-              </vxe-table-column>
-              <!--            <vxe-table-column field="reportNumber" title="报告号" :edit-render="{}">-->
-              <!--              <template v-slot:edit="scope">-->
-              <!--                <el-input :readonly="true" v-model="scope.row.reportNumber" @focus="openReportNoPageForm(scope.$rowIndex, scope.row)"></el-input>-->
-              <!--              </template>-->
-              <!--            </vxe-table-column>-->
-              <vxe-table-column field="number" title="费用(元)" :edit-render="{}" show-overflow="title"
-                :rules="[{ required: true, message: '请输入费用', trigger: 'blur' }]">
-                <template #edit="scope">
-                  <el-input maxlength="15" v-model="scope.row.number"
-                    @input="scope.row.number = twoDecimalPlaces(scope.row.number)"></el-input>
-                </template>
-              </vxe-table-column>
-              <vxe-table-column field="receiptNumber" title="收据张数" :edit-render="{}" show-overflow="title">
-                <template #edit="scope">
-                  <el-input v-model="scope.row.receiptNumber" oninput="value=value.replace(/\D|^0/g,'')"
-                    maxlength="10"></el-input>
-                </template>
-              </vxe-table-column>
-              <vxe-table-column field="days" title="出差天数" :edit-render="{}" show-overflow="title">
-                <template #edit="scope">
-                  <el-input v-model="scope.row.days" oninput="value=value.replace(/\D|^0/g,'')"
-                    maxlength="10"></el-input>
-                </template>
-              </vxe-table-column>
-              <vxe-table-column field="content" title="内容" :edit-render="{}" show-overflow="title">
-                <template #edit="scope">
-                  <el-input v-model="scope.row.content"></el-input>
-                </template>
-              </vxe-table-column>
-              <vxe-table-column title="操作" width="100">
-                <template #default="scope">
-                  <el-button size="default" type="danger"
-                    @click="removeEvent(scope.row, scope.$rowIndex, 'contract_detail')">删除</el-button>
-                </template>
-              </vxe-table-column>
-            </vxe-table>
-          </el-row>
-        </div>
-        <div v-if="inputForm.sourceType === '3'">
-          <el-divider content-position="left"><i class="el-icon-document"></i>
-            报告报销详情
-            <el-button size="default" style="margin-left: 20px" type="primary"
-              :disabled="method === 'view' || status === 'audit' || status === 'taskFormDetail'"
-              @click="insertEvent('report_detail')" plain>
-              新增
-            </el-button>
-          </el-divider>
-          <el-row :gutter="15">
-            <vxe-table border show-footer show-overflow :footer-method="footerMethod" ref="detailTableReport"
-              :key="detailKeyReport" class="vxe-table-element" :data="inputForm.detailInfoReports"
-              style="margin-left: 5em" highlight-current-row
-              :edit-config="{ trigger: 'click', mode: 'row', showStatus: true, autoClear: true, icon: '_' }"
-              :edit-rules="validRules" :row-config="{ keyField: 'uniqueId' }"
-              :expand-config="{ expandAll: false, accordion: false, toggleMethod: handleExpand, expandRowKeys: handleDefaultExpand() }">
-              <vxe-column type="expand" width="80">
-                <template #content="{ row, rowIndex }">
-                  <InvoiceReimbursementUpLoadComponent v-if="row.reimbursementType == 1"
-                    @changeConfirmList="changeConfirmList" @handleCount="handleCount"
-                    @handleUploadSuccess="handleUploadSuccess" :ref="row.uniqueId + 'Upload'"
-                    v-show="'1' === this.inputForm.reimbursementType">
-                  </InvoiceReimbursementUpLoadComponent>
-                  <UpLoadComponent @handleUploadSuccess="handleUploadSuccess" v-if="row.reimbursementType == 0"
-                    :ref="row.uniqueId + 'UploadFiles'">
-                  </UpLoadComponent>
-
-                </template>
-              </vxe-column>
-              <vxe-table-column field="userName" title="报销人" :edit-render="{}" show-overflow="title"
-                :rules="[{ required: true, message: '请选择报销人', trigger: 'blur' }]">
-                <template #edit="scope">
-                  <el-input v-model="scope.row.userName" @focus="userPullListForm3(scope.$rowIndex)"></el-input>
-                  <!--              <UserSelectV2 :limit='1' :userName="scope.row.userName" @getValue='(value, label) => {scope.row.userName = label}'></UserSelectV2>-->
-                </template>
-              </vxe-table-column>
-              <vxe-table-column field="deptName" title="报销部门" :edit-render="{}" show-overflow="title">
-                <template #edit="scope">
-                  <el-input :disabled='true' v-model="scope.row.deptName"></el-input>
-                </template>
-              </vxe-table-column>
-              <vxe-table-column field="reimbursementType" title="报销类型" :edit-render="{}" show-overflow="title">
-                <template #default="{ row }">
-                  <span>{{ $dictUtils.getDictLabel('reimbursement_type', row.reimbursementType,
-                    '') }}</span>
-                </template>
-                <template #edit="{ row }">
-                  <vxe-select :disabled="method === 'view' || status === 'audit' || status === 'taskFormDetail'"
-                    @change="handleChangeType" v-model="row.reimbursementType" placeholder="请选择报销类型" transfer>
-                    <vxe-option v-for="item in $dictUtils.getDictList('reimbursement_type')" :key="item.value"
-                      :value="item.value" :label="item.label"></vxe-option>
-                  </vxe-select>
-                </template>
-              </vxe-table-column>
-              <vxe-table-column field="typeName" title="报销类别" :edit-render="{}" show-overflow="title"
-                :rules="[{ required: true, message: '请选择报销类别', trigger: 'blur' }]">
-                <template #edit="scope">
-                  <el-input v-model="scope.row.typeName"
-                    @focus="typePullForm3(scope.$rowIndex, scope.row.deptId)"></el-input>
-                </template>
-              </vxe-table-column>
-              <vxe-table-column field="projectName" title="报销项目" :edit-render="{}" show-overflow="title"
-                :rules="[{ required: true, message: '请选择报销项目', trigger: 'blur' }]">
-                <template #edit="scope">
-                  <el-input v-model="scope.row.projectName"
-                    @focus="openProgramPageForm3(scope.$rowIndex, scope.row)"></el-input>
-                </template>
-              </vxe-table-column>
-              <vxe-table-column field="reportNumber" title="报告号" :edit-render="{}" show-overflow="title">
-                <template #edit="scope">
-                  <el-input :readonly="true" v-model="scope.row.reportNumber"
-                    @focus="openReportNoPageForm(scope.$rowIndex, scope.row)"></el-input>
-                </template>
-              </vxe-table-column>
-              <vxe-table-column field="number" title="费用(元)" :edit-render="{}" show-overflow="title"
-                :rules="[{ required: true, message: '请输入费用', trigger: 'blur' }]">
-                <template #edit="scope">
-                  <el-input maxlength="15" v-model="scope.row.number"
-                    @input="scope.row.number = twoDecimalPlaces(scope.row.number)"></el-input>
-                </template>
-              </vxe-table-column>
-              <vxe-table-column field="receiptNumber" title="收据张数" :edit-render="{}" show-overflow="title">
-                <template #edit="scope">
-                  <el-input v-model="scope.row.receiptNumber" oninput="value=value.replace(/\D|^0/g,'')"
-                    maxlength="10"></el-input>
-                </template>
-              </vxe-table-column>
-              <vxe-table-column field="days" title="出差天数" :edit-render="{}" show-overflow="title">
-                <template #edit="scope">
-                  <el-input v-model="scope.row.days" oninput="value=value.replace(/\D|^0/g,'')"
-                    maxlength="10"></el-input>
-                </template>
-              </vxe-table-column>
-              <vxe-table-column field="content" title="内容" :edit-render="{}" show-overflow="title">
-                <template #edit="scope">
-                  <el-input v-model="scope.row.content"></el-input>
-                </template>
-              </vxe-table-column>
-              <vxe-table-column title="操作" width="180">
-                <template #default="scope">
-                  <el-button size="default" @click="uploadFile(scope.row, scope.$rowIndex,)"
-                    type="primary">上传</el-button>
-                  <el-button size="default" type="danger"
-                    @click="removeEvent(scope.row, scope.$rowIndex, 'report_detail')">删除</el-button>
-                </template>
-              </vxe-table-column>
-            </vxe-table>
-          </el-row>
-        </div>
-        <div v-if="inputForm.sourceType === '4'">
-          <el-divider content-position="left"><i class="el-icon-document"></i>
-            其他报销详情
-            <el-button size="default" style="margin-left: 20px" type="primary"
-              :disabled="method === 'view' || status === 'audit' || status === 'taskFormDetail'"
-              @click="insertEvent('others')" plain>
-              新增
-            </el-button>
-          </el-divider>
-          <el-row :gutter="15">
-            <el-col :span="24">
-              <vxe-table border show-footer show-overflow :footer-method="footerMethod" ref="detailTableOthers"
-                class="vxe-table-element" :data="inputForm.detailInfoOthers" style="margin-left: 5em"
-                :key="detailKeyOthers" highlight-current-row
-                :edit-config="{ trigger: 'click', mode: 'row', showStatus: true, autoClear: true, icon: '_' }"
-                :edit-rules="validRules" :row-config="{ keyField: 'uniqueId' }"
-                :expand-config="{ expandAll: false, accordion: false, toggleMethod: handleExpand, expandRowKeys: handleDefaultExpand() }">
-                <vxe-column type="expand" width="80">
-                  <template #content="{ row, rowIndex }">
-                    <InvoiceReimbursementUpLoadComponent v-if="row.reimbursementType == 1"
-                      @changeConfirmList="changeConfirmList" @handleCount="handleCount"
-                      @handleUploadSuccess="handleUploadSuccess" :ref="row.uniqueId + 'Upload'"
-                      v-show="'1' === this.inputForm.reimbursementType">
-                    </InvoiceReimbursementUpLoadComponent>
-                    <UpLoadComponent @handleUploadSuccess="handleUploadSuccess" v-if="row.reimbursementType == 0"
-                      :ref="row.uniqueId + 'UploadFiles'">
-                    </UpLoadComponent>
-
-                  </template>
-                </vxe-column>
-                <vxe-table-column field="userName" title="报销人" :edit-render="{}" show-overflow="title"
-                  :rules="[{ required: true, message: '请选择报销人', trigger: 'blur' }]">
-                  <template #edit="scope">
-                    <el-input v-model="scope.row.userName" @focus="userPullListForm4(scope.$rowIndex)"></el-input>
-                    <!--              <UserSelectV2 :limit='1' :userName="scope.row.userName" @getValue='(value, label) => {scope.row.userName = label}'></UserSelectV2>-->
-                  </template>
-                </vxe-table-column>
-                <vxe-table-column field="deptName" title="报销部门" :edit-render="{}" show-overflow="title">
-                  <template #edit="scope">
-                    <el-input :disabled='true' v-model="scope.row.deptName"></el-input>
-                  </template>
-                </vxe-table-column>
-                <vxe-table-column field="reimbursementType" title="报销类型" :edit-render="{}" show-overflow="title">
-                  <template #default="{ row }">
-                    <span>{{ $dictUtils.getDictLabel('reimbursement_type', row.reimbursementType,
-                      '') }}</span>
-                  </template>
-                  <template #edit="{ row }">
-                    <vxe-select :disabled="method === 'view' || status === 'audit' || status === 'taskFormDetail'"
-                      @change="handleChangeType" v-model="row.reimbursementType" placeholder="请选择报销类型" transfer>
-                      <vxe-option v-for="item in $dictUtils.getDictList('reimbursement_type')" :key="item.value"
-                        :value="item.value" :label="item.label"></vxe-option>
-                    </vxe-select>
-                  </template>
-                </vxe-table-column>
-                <vxe-table-column field="typeName" title="报销类别" :edit-render="{}" show-overflow="title"
-                  :rules="[{ required: true, message: '请选择报销类别', trigger: 'blur' }]">
-                  <template #edit="scope">
-                    <el-input v-model="scope.row.typeName"
-                      @focus="typePullForm4(scope.$rowIndex, scope.row.deptId)"></el-input>
-                  </template>
-                </vxe-table-column>
-                <vxe-table-column field="projectName" title="报销详情" :edit-render="{}" show-overflow="title"
-                  :rules="[{ required: true, message: '请填写报销详情', trigger: 'blur' }]">
-                  <template #edit="scope">
-                    <el-input v-model="scope.row.projectName"
-                      @focus="openProgramPageForm4(scope.$rowIndex, scope.row)"></el-input>
-                  </template>
-                </vxe-table-column>
-                <!--            <vxe-table-column field="reportNumber" title="报告号" :edit-render="{}">-->
-                <!--              <template v-slot:edit="scope">-->
-                <!--                <el-input :readonly="true" v-model="scope.row.reportNumber" @focus="openReportNoPageForm(scope.$rowIndex, scope.row)"></el-input>-->
-                <!--              </template>-->
-                <!--            </vxe-table-column>-->
-                <vxe-table-column field="number" title="费用(元)" :edit-render="{}" show-overflow="title"
-                  :rules="[{ required: true, message: '请输入费用', trigger: 'blur' }]">
-                  <template #edit="scope">
-                    <el-input maxlength="15" v-model="scope.row.number"
-                      @input="scope.row.number = twoDecimalPlaces(scope.row.number)"></el-input>
-                  </template>
-                </vxe-table-column>
-                <vxe-table-column field="receiptNumber" title="收据张数" :edit-render="{}" show-overflow="title">
-                  <template #edit="scope">
-                    <el-input v-model="scope.row.receiptNumber" oninput="value=value.replace(/\D|^0/g,'')"
-                      maxlength="10"></el-input>
-                  </template>
-                </vxe-table-column>
-                <vxe-table-column field="days" title="出差天数" :edit-render="{}" show-overflow="title">
-                  <template #edit="scope">
-                    <el-input v-model="scope.row.days" oninput="value=value.replace(/\D|^0/g,'')"
-                      maxlength="10"></el-input>
-                  </template>
-                </vxe-table-column>
-                <vxe-table-column field="content" title="内容" :edit-render="{}" show-overflow="title">
-                  <template #edit="scope">
-                    <el-input v-model="scope.row.content"></el-input>
-                  </template>
-                </vxe-table-column>
-                <vxe-table-column title="操作" width="180">
-                  <template #default="scope">
-                    <el-button size="default" @click="uploadFile(scope.row, scope.$rowIndex,)"
-                      type="primary">上传</el-button>
-                    <el-button size="default" type="danger"
-                      @click="removeEvent(scope.row, scope.$rowIndex, 'others')">删除</el-button>
-                  </template>
-                </vxe-table-column>
-              </vxe-table>
-            </el-col>
-          </el-row>
-        </div>
-        <div v-if="inputForm.sourceType === '5'">
-          <el-divider content-position="left"><i class="el-icon-document"></i>
-            采购报销详情
-            <el-button size="default" style="margin-left: 20px" type="primary"
-              :disabled="method === 'view' || this.formReadOnly" @click="insertEvent('procured')" plain>
-              新增
-            </el-button>
-          </el-divider>
-          <el-row :gutter="15">
-            <vxe-table border show-footer show-overflow :footer-method="footerMethod" ref="detailTableProcured"
-              class="vxe-table-element" :data="inputForm.detailInfoProcured" style="margin-left: 5em"
-              :key="detailKeyProcured" highlight-current-row
-              :edit-config="{ trigger: 'click', mode: 'row', showStatus: true, autoClear: true, icon: '_' }"
-              :edit-rules="validRules">
-              <vxe-table-column field="userName" title="报销人" :edit-render="{}" show-overflow="title"
-                :rules="[{ required: true, message: '请选择报销人', trigger: 'blur' }]">
-                <template #edit="scope">
-                  <el-input v-model="scope.row.userName" @focus="userPullListForm5(scope.$rowIndex)"></el-input>
-                  <!--              <UserSelectV2 :limit='1' :userName="scope.row.userName" @getValue='(value, label) => {scope.row.userName = label}'></UserSelectV2>-->
-                </template>
-              </vxe-table-column>
-              <vxe-table-column field="deptName" title="报销部门" :edit-render="{}" show-overflow="title">
-                <template #edit="scope">
-                  <el-input :disabled='true' v-model="scope.row.deptName"></el-input>
-                </template>
-              </vxe-table-column>
-              <vxe-table-column field="typeName" title="报销类别" :edit-render="{}" show-overflow="title"
-                :rules="[{ required: true, message: '请选择报销类别', trigger: 'blur' }]">
-                <template #edit="scope">
-                  <el-input v-model="scope.row.typeName"
-                    @focus="typePullForm5(scope.$rowIndex, scope.row.deptId)"></el-input>
-                </template>
-              </vxe-table-column>
-              <vxe-table-column field="projectName" title="报销项目" :edit-render="{}" show-overflow="title"
-                :rules="[{ required: true, message: '请选择报销项目', trigger: 'blur' }]">
-                <template #edit="scope">
-                  <el-input v-model="scope.row.projectName"
-                    @focus="openProgramPageForm5(scope.$rowIndex, scope.row)"></el-input>
-                </template>
-              </vxe-table-column>
-              <!--            <vxe-table-column field="reportNumber" title="报告号" :edit-render="{}">-->
-              <!--              <template v-slot:edit="scope">-->
-              <!--                <el-input :readonly="true" v-model="scope.row.reportNumber" @focus="openReportNoPageForm(scope.$rowIndex, scope.row)"></el-input>-->
-              <!--              </template>-->
-              <!--            </vxe-table-column>-->
-              <vxe-table-column field="number" title="费用(元)" :edit-render="{}" show-overflow="title"
-                :rules="[{ required: true, message: '请输入费用', trigger: 'blur' }]">
-                <template #edit="scope">
-                  <el-input maxlength="15" v-model="scope.row.number"
-                    @input="scope.row.number = twoDecimalPlaces(scope.row.number)"></el-input>
-                </template>
-              </vxe-table-column>
-              <vxe-table-column field="receiptNumber" title="收据张数" :edit-render="{}" show-overflow="title">
-                <template #edit="scope">
-                  <el-input v-model="scope.row.receiptNumber" oninput="value=value.replace(/\D|^0/g,'')"
-                    maxlength="10"></el-input>
-                </template>
-              </vxe-table-column>
-              <vxe-table-column field="days" title="出差天数" :edit-render="{}" show-overflow="title">
-                <template #edit="scope">
-                  <el-input v-model="scope.row.days" oninput="value=value.replace(/\D|^0/g,'')"
-                    maxlength="10"></el-input>
-                </template>
-              </vxe-table-column>
-              <vxe-table-column field="content" title="内容" :edit-render="{}" show-overflow="title">
-                <template #edit="scope">
-                  <el-input v-model="scope.row.content"></el-input>
-                </template>
-              </vxe-table-column>
-              <vxe-table-column title="操作" width="100">
-                <template #default="scope">
-                  <el-button size="default" type="danger"
-                    @click="removeEvent(scope.row, scope.$rowIndex, 'procured')">删除</el-button>
-                </template>
-              </vxe-table-column>
-            </vxe-table>
-          </el-row>
-        </div>
-        <div v-if="inputForm.reimbursementType === '0'">
-          <el-divider content-position="left"><i class="el-icon-document"></i>
-            专用发票信息
-            <el-button size="default" style="margin-left: 10px" type="primary"
-              :disabled="method === 'view' || status === 'audit' || status === 'taskFormDetail'"
-              @click="insertEvent('amount')" plain>
-              新增
-            </el-button>
-          </el-divider>
-          <el-row :gutter="15">
-            <el-col :span="24">
-              <vxe-table border show-overflow ref="amountTable" class="vxe-table-element" :data="inputForm.amountInfos"
-                style="margin-left: 5em" :key="amountKey" highlight-current-row
-                :edit-config="{ trigger: 'click', mode: 'row', showStatus: true, autoClear: true, icon: '_' }">
-                <vxe-table-column field="code" title="发票代码" :edit-render="{}" show-overflow="title">
-                  <template #edit="scope">
-                    <el-input oninput="value=value.replace(/\D|^/g,'')" maxlength="20"
-                      v-model="scope.row.code"></el-input>
-                  </template>
-                </vxe-table-column>
-                <vxe-table-column field="number" title="发票号" :edit-render="{}" show-overflow="title">
-                  <template #edit="scope">
-                    <el-input oninput="value=value.replace(/\D|^/g,'')" maxlength="8" @change="isExict(scope.row)"
-                      v-model="scope.row.number"></el-input>
-                  </template>
-                </vxe-table-column>
-                <vxe-table-column field="amount" title="金额" :edit-render="{}" show-overflow="title">
-                  <template #edit="scope">
-                    <el-input maxlength="15" v-model="scope.row.amount"
-                      @input="scope.row.amount = twoDecimalPlaces(scope.row.amount)"
-                      @change="countAmount(scope.row)"></el-input>
-                  </template>
-                </vxe-table-column>
-                <vxe-table-column field="taxAmount" title="税额" :edit-render="{}" show-overflow="title">
-                  <template #edit="scope">
-                    <el-input maxlength="15" v-model="scope.row.taxAmount"
-                      @input="scope.row.taxAmount = twoDecimalPlaces(scope.row.taxAmount)"
-                      @change="countAmount(scope.row)"></el-input>
-                  </template>
-                </vxe-table-column>
-                <vxe-table-column field="count" title="价税合计" :edit-render="{}" show-overflow="title">
-                  <template #edit="scope">
-                    <el-input disabled="true" v-model="scope.row.count"></el-input>
-                  </template>
-                </vxe-table-column>
-                <vxe-table-column title="操作" width="100">
-                  <template #default="scope">
-                    <el-button size="default" type="danger"
-                      @click="removeEvent(scope.row, scope.$rowIndex, 'amount')">删除</el-button>
-                  </template>
-                </vxe-table-column>
-              </vxe-table>
-            </el-col>
+        <ReimbursementComponent ref="reimbursementComponent">
+        </ReimbursementComponent>
 
-          </el-row>
-        </div>
-        <!--		<div v-if="inputForm.reimbursementType === '1'">-->
-        <!--			<el-divider content-position="left">-->
-        <!--				数电发票信息-->
-        <!--				&lt;!&ndash;<el-button style="margin-left: 20px" type="primary" :disabled="method==='view' || status === 'audit' || status === 'taskFormDetail' " size="default" @click="insertEvent('invoiceReimbursement')" plain>-->
-        <!--					新增-->
-        <!--				</el-button>&ndash;&gt;-->
-        <!--			</el-divider>-->
-        <!--			<el-row  :gutter="15" >-->
-        <!--				<el-col :span="24">-->
-        <!--					<vxe-table-->
-        <!--						border-->
-        <!--						show-footer-->
-        <!--						show-overflow-->
-        <!--						ref="invoiceReimbursementTable"-->
-        <!--						class="vxe-table-element"-->
-        <!--						:data="inputForm.invoiceReimbursements"-->
-        <!--						:footer-method="footerMethod1111"-->
-        <!--						style="margin-left: 5em"-->
-        <!--						:key="invoiceReimbursementKey"-->
-        <!--						highlight-current-row-->
-        <!--						:edit-config="{trigger: 'click', mode: 'row', showStatus: true, autoClear: true, icon:'_'}"-->
-        <!--						:edit-rules="invoiceReimbursementRules"-->
-        <!--					>-->
-        <!--						<vxe-table-column  field="invoiceType" title="发票类型" show-overflow="title" :edit-render="{name: '$select', options: $dictUtils.getDictList('invoice_reimbursement_type')}">-->
-        <!--							<template v-slot:edit="scope">-->
-        <!--								<vxe-select :disabled="true" v-model="scope.row.invoiceType" placeholder="请选择发票类型" clearable style="width: 100%;" transfer>-->
-        <!--									<vxe-option-->
-        <!--										v-for="item in $dictUtils.getDictList('invoice_reimbursement_type')"-->
-        <!--										:key="item.value"-->
-        <!--										:label="item.label"-->
-        <!--										:value="item.value">-->
-        <!--									</vxe-option>-->
-        <!--								</vxe-select>-->
-        <!--							</template>-->
-        <!--						</vxe-table-column>-->
-        <!--						<vxe-table-column field="invoiceProjectName" title="发票项目名" :edit-render="{}" show-overflow="title">-->
-        <!--							<template #edit="scope">-->
-        <!--								<el-input maxlength="50" readonly="true" v-model="scope.row.invoiceProjectName" ></el-input>-->
-        <!--							</template>-->
-        <!--						</vxe-table-column>-->
-        <!--						<vxe-table-column field="number" title="发票号" :edit-render="{}" show-overflow="title">-->
-        <!--							<template #edit="scope">-->
-        <!--								<el-input oninput ="value=value.replace(/\D|^/g,'')" readonly="true" maxlength="30" @change="isExict(scope.row)" v-model="scope.row.number" ></el-input>-->
-        <!--							</template>-->
-        <!--						</vxe-table-column>-->
-        <!--						<vxe-table-column field="invoiceDate" title="开票日期" :edit-render="{}" show-overflow="title">-->
-        <!--							<template v-slot:edit="scope">-->
-        <!--								<vxe-input v-model="scope.row.invoiceDate" :disabled="true"  type="datetime" transfer placeholder="请选择日期"></vxe-input>-->
-        <!--							</template>-->
-        <!--						</vxe-table-column>-->
-        <!--						<vxe-table-column field="invoiceUnit" title="开票单位" :edit-render="{}" show-overflow="title">-->
-        <!--							<template #edit="scope">-->
-        <!--								<el-input maxlength="50" readonly="true" v-model="scope.row.invoiceUnit" ></el-input>-->
-        <!--							</template>-->
-        <!--						</vxe-table-column>-->
-        <!--						<vxe-table-column field="buyerName" title="购买方名称" :edit-render="{}" show-overflow="title">-->
-        <!--							<template #edit="scope">-->
-        <!--								<el-input maxlength="50" readonly="true" v-model="scope.row.buyerName" ></el-input>-->
-        <!--							</template>-->
-        <!--						</vxe-table-column>-->
-        <!--						<vxe-table-column field="amount" title="金额" :edit-render="{}" show-overflow="title">-->
-        <!--							<template #edit="scope">-->
-        <!--								<el-input maxlength="15" readonly="true" v-model="scope.row.amount" @input="scope.row.amount = twoDecimalPlaces(scope.row.amount)" @change="countAmount(scope.row)"></el-input>-->
-        <!--							</template>-->
-        <!--						</vxe-table-column>-->
-        <!--						<vxe-table-column field="taxAmount" title="税额" :edit-render="{}" show-overflow="title">-->
-        <!--							<template #edit="scope">-->
-        <!--								<el-input maxlength="15" readonly="true" v-model="scope.row.taxAmount" @input="scope.row.taxAmount = twoDecimalPlaces(scope.row.taxAmount)" @change="countAmount(scope.row)"></el-input>-->
-        <!--							</template>-->
-        <!--						</vxe-table-column>-->
-        <!--						<vxe-table-column field="count" title="价税合计" :edit-render="{}" show-overflow="title">-->
-        <!--							<template #edit="scope">-->
-        <!--								<el-input disabled="true" v-model="scope.row.count" ></el-input>-->
-        <!--							</template>-->
-        <!--						</vxe-table-column>-->
-        <!--						<vxe-table-column field="remarks" title="备注" :edit-render="{}" show-overflow="title">-->
-        <!--							<template #edit="scope">-->
-        <!--								<el-input maxlength="250" v-model="scope.row.remarks" ></el-input>-->
-        <!--							</template>-->
-        <!--						</vxe-table-column>-->
-        <!--						&lt;!&ndash;<vxe-table-column title="操作" width="100">-->
-        <!--							<template #default="scope">-->
-        <!--								<el-button size="default" type="danger" @click="removeEvent(scope.row,scope.$rowIndex,'invoiceReimbursement')">删除</el-button>-->
-        <!--							</template>-->
-        <!--						</vxe-table-column>&ndash;&gt;-->
-        <!--					</vxe-table>-->
-        <!--				</el-col>-->
-        <!--			</el-row>-->
-        <!--		</div>-->
         <!--      <ProgramPageForm ref="programPageForm" @getProgram="getProgram"></ProgramPageForm>-->
         <CwProgramPageForm ref="cwProgramPageForm" @getProgram="getProgram"></CwProgramPageForm>
         <CwProgramPageForm ref="cwProgramPageForm3" @getProgram="getProgram3"></CwProgramPageForm>
@@ -763,8 +138,6 @@
 
       </el-form>
       <!-- 附件 -->
-      <InvoiceReimbursementUpLoadComponent ref="invoiceReimbursementUpLoadComponent"
-        v-show="'1' === this.inputForm.reimbursementType"></InvoiceReimbursementUpLoadComponent>
       <UpLoadComponent ref="uploadComponent"></UpLoadComponent>
       <WorkContractChooseCom ref="workContractChooseCom" @getContract="getContract"></WorkContractChooseCom>
       <ReportNoChooseRadio ref="reportNoChooseRadio" @getWorkClientRadioChoose="getWorkClientChoose2">
@@ -789,7 +162,7 @@ import ReportNoChooseRadio from './ReportNoChooseRadio'
 import ReimbursementService from '@/api/zs/reimbursement/ReimbursementService'
 import ReimbursementTypeService from '@/api/zs/reimbursement/ReimbursementTypeService'
 import InvoiceReimbursementUpLoadComponent from '@/views/common/NewDigitalInvoiceUploadComponent'
-import UpLoadComponent from '@/views/common/NewUpLoadComponent'
+import UpLoadComponent from '@/views/common/UpLoadComponent'
 // import SelectUserTree from '@/views/utils/treeUserSelect'
 // import SelectTree from '@/components/treeSelect/treeSelect.vue'
 import XEUtils from 'xe-utils'
@@ -805,6 +178,7 @@ import processService from '@/api/flowable/processService'
 //import MaterialManagementDialog from '../../../'
 import userService from '@/api/sys/UserService'
 import InfoHistory from "./InfoHistory";
+import ReimbursementComponent from '@/views/common/reimbursement/ReimbursementComponent.vue'
 export default {
   props: {
     businessId: {
@@ -969,7 +343,9 @@ export default {
     ReportNoChooseRadio,
     // UserSelectV2,
     WorkContractChooseCom,
-    InfoHistory
+    InfoHistory,
+    ReimbursementComponent
+
     // PurchaseChooseForm,
     // MaterialManagementDialog
   },
@@ -1014,6 +390,9 @@ export default {
     },
     getUpload() {
     },
+    initReimbursementComponent() {
+      this.$refs.reimbursementComponent.initComponent("reimbursement", "zs", "中审众环会计师事务所(特殊普通合伙)江苏分所", this.inputForm, this.isConfirm, this.status)
+    },
     init(method, id) {
       this.checkIsAdmin()
       this.method = method
@@ -1053,7 +432,7 @@ export default {
         this.loading = true
         this.$refs.inputForm.resetFields()
         // this.$refs.invoiceReimbursementUpLoadComponent.clearUpload()
-        // this.$refs.uploadComponent.clearUpload()
+        this.$refs.uploadComponent.clearUpload()
         this.reimbursementService.findById(this.inputForm.id).then((data) => {
           if (this.status === 'audit' || this.status === 'taskFormDetail') {
             method = 'view'
@@ -1083,15 +462,16 @@ export default {
             this.inputForm.reimbursementType = '0'
           }
           //this.$refs.invoiceReimbursementUpLoadComponent.newUpload(method, this.inputForm.invoiceReimbursementFiles, 'reimbursement', 300, '数电发票信息', null, null, null, '中审众环会计师事务所(特殊普通合伙)江苏分所')
-          // this.$refs.uploadComponent.newUpload(method, this.inputForm.files, 'reimbursement')
+          this.$refs.uploadComponent.newUpload(method, this.inputForm.files, 'reimbursement')
           if (this.commonJS.isNotEmpty(this.inputForm.purchaseId)) {
             // this.startPur(this.inputForm.purchaseId)
           }
+          this.initReimbursementComponent()
           this.loading = false
         })
         if (method !== 'edit' && method !== 'view') {
           //this.$refs.invoiceReimbursementUpLoadComponent.newUpload(method, [], 'reimbursement')
-          // this.$refs.uploadComponent.newUpload(method, [], 'reimbursement')
+          this.$refs.uploadComponent.newUpload(method, [], 'reimbursement')
           this.loading = false
         }
         userService.isZj().then((data) => {
@@ -1113,6 +493,7 @@ export default {
     },
     // 表单提交
     doSubmit() {
+      this.getReimbursementData()
       this.$refs['inputForm'].validate((valid) => {
         if (valid) {
           this.loading = true
@@ -1120,10 +501,10 @@ export default {
           //     this.loading = false
           //     return
           // }
-          // if (this.$refs.uploadComponent.checkProgress()) {
-          //   this.loading = false
-          //   return
-          // }
+          if (this.$refs.uploadComponent.checkProgress()) {
+            this.loading = false
+            return
+          }
           if (this.commonJS.isEmpty(this.inputForm.invoiceReimbursementFiles)) {
             this.inputForm.invoiceReimbursementFiles = []
           }
@@ -1132,7 +513,7 @@ export default {
           }
           this.dataFiltering()
           // this.inputForm.invoiceReimbursementFiles = this.$refs.invoiceReimbursementUpLoadComponent.getDataList()
-          // this.inputForm.files = this.$refs.uploadComponent.getDataList()
+          this.inputForm.files = this.$refs.uploadComponent.getDataList()
           this.reimbursementService.save(this.inputForm).then((data) => {
             this.close()
             this.$message.success(data)
@@ -1241,7 +622,7 @@ export default {
       this.inputForm.amountInfos = []
       this.inputForm.invoiceReimbursements = []
       //this.$refs.invoiceReimbursementUpLoadComponent.clearUpload()
-      // this.$refs.uploadComponent.clearUpload()
+      this.$refs.uploadComponent.clearUpload()
       this.visible = false
     },
     // 删除
@@ -1400,10 +781,10 @@ export default {
       //   this.loading = false
       //   return
       // }
-      // if (this.$refs.uploadComponent.checkProgress()) {
-      //   this.loading = false
-      //   return
-      // }
+      if (this.$refs.uploadComponent.checkProgress()) {
+        this.loading = false
+        return
+      }
       if (this.commonJS.isEmpty(this.inputForm.invoiceReimbursementFiles)) {
         this.inputForm.invoiceReimbursementFiles = []
       }
@@ -1411,7 +792,7 @@ export default {
         this.inputForm.files = []
       }
       // this.inputForm.invoiceReimbursementFiles = this.$refs.invoiceReimbursementUpLoadComponent.getDataList()
-      // this.inputForm.files = this.$refs.uploadComponent.getDataList()
+      this.inputForm.files = this.$refs.uploadComponent.getDataList()
       this.inputForm.type = '1'
       this.reimbursementService.save(this.inputForm).then(() => {
         callback()
@@ -1509,10 +890,10 @@ export default {
           //   this.loading = false
           //   return
           // }
-          // if (this.$refs.uploadComponent.checkProgress()) {
-          //   this.loading = false
-          //   return
-          // }
+          if (this.$refs.uploadComponent.checkProgress()) {
+            this.loading = false
+            return
+          }
           if (this.commonJS.isEmpty(this.inputForm.invoiceReimbursementFiles)) {
             this.inputForm.invoiceReimbursementFiles = []
           }
@@ -1525,7 +906,7 @@ export default {
           //   return
           // }
           // this.inputForm.invoiceReimbursementFiles = this.$refs.invoiceReimbursementUpLoadComponent.getDataList()
-          // this.inputForm.files = this.$refs.uploadComponent.getDataList()
+          this.inputForm.files = this.$refs.uploadComponent.getDataList()
           this.dataFiltering()
           if (this.inputForm.invoiceReimbursementFiles <= 0 && "1" === this.inputForm.reimbursementType) {
             this.$message.error("请上传数电发票发票xml文件!")
@@ -1590,10 +971,10 @@ export default {
           //   this.loading = false
           //   return
           // }
-          // if (this.$refs.uploadComponent.checkProgress()) {
-          //   this.loading = false
-          //   return
-          // }
+          if (this.$refs.uploadComponent.checkProgress()) {
+            this.loading = false
+            return
+          }
           if (this.commonJS.isEmpty(this.inputForm.invoiceReimbursementFiles)) {
             this.inputForm.invoiceReimbursementFiles = []
           }
@@ -1602,7 +983,7 @@ export default {
           }
           this.dataFiltering()
           // this.inputForm.invoiceReimbursementFiles = this.$refs.invoiceReimbursementUpLoadComponent.getDataList()
-          // this.inputForm.files = this.$refs.uploadComponent.getDataList()
+          this.inputForm.files = this.$refs.uploadComponent.getDataList()
           this.commonApi.getTaskNameByProcInsId(this.inputForm.procInsId).then((data) => {
             if (this.commonJS.isNotEmpty(data)) {
               if (data === '所长报销审核人') {
@@ -1975,6 +1356,8 @@ export default {
       this.detailKeyReport = Math.random()
       this.detailKeyOthers = Math.random()
       this.detailKeyProcured = Math.random()
+      this.$refs.reimbursementComponent.inputForm.invoiceReimbursementFiles = []
+      this.$refs.reimbursementComponent.inputForm.sourceType = value
     },
     submitCheck() {
       if (this.commonJS.isEmpty(this.inputForm.sourceType)) {
@@ -2456,6 +1839,18 @@ export default {
         }
       })
       return arr
+    },
+    getReimbursementData() {
+      this.$nextTick(() => {
+        let inputForm = this.$refs.reimbursementComponent.handleGetData()
+        this.inputForm.detailInfos = inputForm.detailInfos
+        this.inputForm.detailInfoContracts = inputForm.detailInfoContracts
+        this.inputForm.detailInfoReports = inputForm.detailInfoReports
+        this.inputForm.detailInfoProject = inputForm.detailInfoProject
+        this.inputForm.detailInfoOthers = inputForm.detailInfoOthers
+        this.inputForm.detailInfoProcured = inputForm.detailInfoProcured
+        this.inputForm.invoiceReimbursementFiles = inputForm.invoiceReimbursementFiles
+      });
     }
   }
 }

+ 57 - 733
src/views/zs/reimbursement/info/NewReimbursementForm.vue

@@ -76,705 +76,10 @@
           </el-form-item>
         </el-col>
       </el-row>
-      <div v-if="inputForm.sourceType === '5'">
-        <el-divider content-position="left"><i class="el-icon-document"></i>
-          采购详情
-        </el-divider>
-        <el-row :gutter="15">
-          <vxe-table border show-footer show-overflow :footer-method="footerMethod555" ref="preTable"
-            class="vxe-table-element" :data="inputForm.preList" style="margin-left: 5em" highlight-current-row>
-            <vxe-table-column field="purchaser" title="采购人" :edit-render="{}" show-overflow="title"
-              :rules="[{ required: true, message: '请选择采购人', trigger: 'blur' }]"></vxe-table-column>
-            <vxe-table-column field="procurementOffice" title="采购部门" :edit-render="{}"
-              show-overflow="title"></vxe-table-column>
-            <vxe-table-column field="procurementType" title="采购类型" :edit-render="{}" show-overflow="title"
-              :rules="[{ required: true, message: '请选择采购类型', trigger: 'blur' }]"></vxe-table-column>
-            <vxe-table-column field="tradeName" title="商品名称" :edit-render="{}" show-overflow="title"
-              :rules="[{ required: true, message: '请填写商品名称', trigger: 'blur' }]"></vxe-table-column>
-            <vxe-table-column field="tradePrice" title="商品单价(元)" :edit-render="{}" show-overflow="title"
-              :rules="[{ required: true, message: '请输入商品单价', trigger: 'blur' }]"></vxe-table-column>
-            <vxe-table-column field="tradeNumber" title="商品数量" :edit-render="{}"
-              show-overflow="title"></vxe-table-column>
-            <vxe-table-column field="priceSum" title="商品总价" :edit-render="{}" show-overflow="title"></vxe-table-column>
-            <vxe-table-column field="company" title="单位" :edit-render="{}" show-overflow="title"></vxe-table-column>
-            <vxe-table-column field="remarks" title="备注" :edit-render="{}" show-overflow="title"></vxe-table-column>
-            <vxe-table-column title="操作">
-              <template #default="scope">
-                <el-button size="default" type="primary" :disabled="false"
-                  @click="seeFileInfo(scope.$rowIndex)">文件详情</el-button>
-              </template>
-            </vxe-table-column>
-          </vxe-table>
-        </el-row>
-      </div>
-      <div v-if="inputForm.sourceType === '1'">
-        <el-divider content-position="left"><i class="el-icon-document"></i>
-          兴光项目报销详情
-          <el-button size="default" style="margin-left: 20px" type="primary"
-            :disabled="method === 'view' || status === 'audit' || status === 'taskFormDetail'"
-            @click="insertEvent('detail')" plain>
-            新增
-          </el-button>
-        </el-divider>
-        <el-row :gutter="15">
-          <el-col :span="24">
-            <vxe-table border show-footer show-overflow :footer-method="footerMethod" ref="detailTable"
-              class="vxe-table-element" :data="inputForm.detailInfos" style="margin-left: 5em" :key="detailKey"
-              highlight-current-row
-              :edit-config="{ trigger: 'click', mode: 'row', showStatus: true, autoClear: true, icon: '_' }"
-              :edit-rules="validRules" :row-config="{ keyField: 'uniqueId' }"
-              :expand-config="{ expandAll: false, accordion: false, toggleMethod: handleExpand, expandRowKeys: handleDefaultExpand() }">
-              <vxe-column type="expand" width="80">
-                <template #content="{ row, rowIndex }">
-                  <InvoiceReimbursementUpLoadComponent v-if="row.reimbursementType == 1"
-                    @changeConfirmList="changeConfirmList" @handleCount="handleCount"
-                    @handleUploadSuccess="handleUploadSuccess" :ref="row.uniqueId + 'Upload'"
-                    v-show="'1' === this.inputForm.reimbursementType">
-                  </InvoiceReimbursementUpLoadComponent>
-                  <UpLoadComponent @handleUploadSuccess="handleUploadSuccess" v-if="row.reimbursementType == 0"
-                    :ref="row.uniqueId + 'UploadFiles'">
-                  </UpLoadComponent>
 
-                </template>
-              </vxe-column>
-              <vxe-table-column field="userName" title="报销人" :edit-render="{}" show-overflow="title"
-                :rules="[{ required: true, message: '请选择报销人', trigger: 'blur' }]">
-                <template #edit="scope">
-                  <el-input v-model="scope.row.userName" @focus="userPullListForm(scope.$rowIndex)"></el-input>
-                  <!--              <UserSelectV2 :limit='1' :userName="scope.row.userName" @getValue='(value, label) => {scope.row.userName = label}'></UserSelectV2>-->
-                </template>
-              </vxe-table-column>
-              <vxe-table-column field="deptName" title="报销部门" :edit-render="{}" show-overflow="title">
-                <template #edit="scope">
-                  <el-input :disabled='true' v-model="scope.row.deptName"></el-input>
-                </template>
-              </vxe-table-column>
-              <vxe-table-column field="reimbursementType" title="报销类型" :edit-render="{}" show-overflow="title">
-                <template #default="{ row }">
-                  <span>{{ $dictUtils.getDictLabel('reimbursement_type', row.reimbursementType,
-                    '') }}</span>
-                </template>
-                <template #edit="{ row }">
-                  <vxe-select :disabled="method === 'view' || status === 'audit' || status === 'taskFormDetail'"
-                    @change="handleChangeType" v-model="row.reimbursementType" placeholder="请选择报销类型" transfer>
-                    <vxe-option v-for="item in $dictUtils.getDictList('reimbursement_type')" :key="item.value"
-                      :value="item.value" :label="item.label"></vxe-option>
-                  </vxe-select>
-                </template>
-              </vxe-table-column>
-              <vxe-table-column field="typeName" title="报销类别" :edit-render="{}" show-overflow="title"
-                :rules="[{ required: true, message: '请选择报销类别', trigger: 'blur' }]">
-                <template #edit="scope">
-                  <el-input v-model="scope.row.typeName"
-                    @focus="typePullForm(scope.$rowIndex, scope.row.deptId)"></el-input>
-                </template>
-              </vxe-table-column>
-              <vxe-table-column field="projectName" title="报销详情" :edit-render="{}" show-overflow="title"
-                :rules="[{ required: true, message: '请填写报销详情', trigger: 'blur' }]">
-                <template #edit="scope">
-                  <el-input v-model="scope.row.projectName"
-                    @focus="openProgramPageForm(scope.$rowIndex, scope.row)"></el-input>
-                </template>
-              </vxe-table-column>
-              <!--            <vxe-table-column field="reportNumber" title="报告号" :edit-render="{}">-->
-              <!--              <template v-slot:edit="scope">-->
-              <!--                <el-input :readonly="true" v-model="scope.row.reportNumber" @focus="openReportNoPageForm(scope.$rowIndex, scope.row)"></el-input>-->
-              <!--              </template>-->
-              <!--            </vxe-table-column>-->
-              <vxe-table-column field="number" title="费用(元)" :edit-render="{}" show-overflow="title"
-                :rules="[{ required: true, message: '请输入费用', trigger: 'blur' }]">
-                <template #edit="scope">
-                  <el-input maxlength="15" v-model="scope.row.number"
-                    @input="scope.row.number = twoDecimalPlaces(scope.row.number)"></el-input>
-                </template>
-              </vxe-table-column>
-              <vxe-table-column field="receiptNumber" title="收据张数" :edit-render="{}" show-overflow="title">
-                <template #edit="scope">
-                  <el-input v-model="scope.row.receiptNumber" oninput="value=value.replace(/\D|^0/g,'')"
-                    maxlength="10"></el-input>
-                </template>
-              </vxe-table-column>
-              <vxe-table-column field="days" title="出差天数" :edit-render="{}" show-overflow="title">
-                <template #edit="scope">
-                  <el-input v-model="scope.row.days" oninput="value=value.replace(/\D|^0/g,'')"
-                    maxlength="10"></el-input>
-                </template>
-              </vxe-table-column>
-              <vxe-table-column field="content" title="内容" :edit-render="{}" show-overflow="title">
-                <template #edit="scope">
-                  <el-input v-model="scope.row.content"></el-input>
-                </template>
-              </vxe-table-column>
-              <vxe-table-column title="操作" width="180">
-                <template #default="scope">
-                  <el-button size="default" @click="uploadFile(scope.row, scope.$rowIndex,)"
-                    type="primary">上传</el-button>
-                  <el-button size="default" type="danger"
-                    @click="removeEvent(scope.row, scope.$rowIndex, 'detail')">删除</el-button>
-                </template>
-              </vxe-table-column>
-            </vxe-table>
-          </el-col>
-        </el-row>
-      </div>
-      <div v-if="inputForm.sourceType === '2'">
-        <el-divider content-position="left"><i class="el-icon-document"></i>
-          合同报销详情
-          <el-button size="default" style="margin-left: 20px" type="primary"
-            :disabled="method === 'view' || status === 'audit' || status === 'taskFormDetail'"
-            @click="insertEvent('contract_detail')" plain>
-            新增
-          </el-button>
-        </el-divider>
-        <el-row :gutter="15">
-          <vxe-table border show-footer show-overflow :footer-method="footerMethod" ref="detailTableContract"
-            :key="detailKeyContract" class="vxe-table-element" :data="inputForm.detailInfoContracts"
-            style="margin-left: 5em" highlight-current-row
-            :edit-config="{ trigger: 'click', mode: 'row', showStatus: true, autoClear: true, icon: '_' }"
-            :edit-rules="validRules">
-            <vxe-table-column field="userName" title="报销人" :edit-render="{}" show-overflow="title"
-              :rules="[{ required: true, message: '请选择报销人', trigger: 'blur' }]">
-              <template #edit="scope">
-                <el-input v-model="scope.row.userName" @focus="userPullListForm2(scope.$rowIndex)"></el-input>
-                <!--              <UserSelectV2 :limit='1' :userName="scope.row.userName" @getValue='(value, label) => {scope.row.userName = label}'></UserSelectV2>-->
-              </template>
-            </vxe-table-column>
-            <vxe-table-column field="deptName" title="报销部门" :edit-render="{}" show-overflow="title">
-              <template #edit="scope">
-                <el-input :disabled='true' v-model="scope.row.deptName"></el-input>
-              </template>
-            </vxe-table-column>
-            <vxe-table-column field="typeName" title="报销类别" :edit-render="{}" show-overflow="title"
-              :rules="[{ required: true, message: '请选择报销类别', trigger: 'blur' }]">
-              <template #edit="scope">
-                <el-input v-model="scope.row.typeName"
-                  @focus="typePullForm2(scope.$rowIndex, scope.row.deptId)"></el-input>
-              </template>
-            </vxe-table-column>
-            <vxe-table-column field="contractName" title="报销合同" :edit-render="{}" show-overflow="title"
-              :rules="[{ required: true, message: '请选择报销合同', trigger: 'blur' }]">
-              <template #edit="scope">
-                <el-input v-model="scope.row.contractName"
-                  @focus="openContractForm(scope.$rowIndex, scope.row)"></el-input>
-              </template>
-            </vxe-table-column>
-            <!--            <vxe-table-column field="reportNumber" title="报告号" :edit-render="{}">-->
-            <!--              <template v-slot:edit="scope">-->
-            <!--                <el-input :readonly="true" v-model="scope.row.reportNumber" @focus="openReportNoPageForm(scope.$rowIndex, scope.row)"></el-input>-->
-            <!--              </template>-->
-            <!--            </vxe-table-column>-->
-            <vxe-table-column field="number" title="费用(元)" :edit-render="{}" show-overflow="title"
-              :rules="[{ required: true, message: '请输入费用', trigger: 'blur' }]">
-              <template #edit="scope">
-                <el-input maxlength="15" v-model="scope.row.number"
-                  @input="scope.row.number = twoDecimalPlaces(scope.row.number)"></el-input>
-              </template>
-            </vxe-table-column>
-            <vxe-table-column field="receiptNumber" title="收据张数" :edit-render="{}" show-overflow="title">
-              <template #edit="scope">
-                <el-input v-model="scope.row.receiptNumber" oninput="value=value.replace(/\D|^0/g,'')"
-                  maxlength="10"></el-input>
-              </template>
-            </vxe-table-column>
-            <vxe-table-column field="days" title="出差天数" :edit-render="{}" show-overflow="title">
-              <template #edit="scope">
-                <el-input v-model="scope.row.days" oninput="value=value.replace(/\D|^0/g,'')" maxlength="10"></el-input>
-              </template>
-            </vxe-table-column>
-            <vxe-table-column field="content" title="内容" :edit-render="{}" show-overflow="title">
-              <template #edit="scope">
-                <el-input v-model="scope.row.content"></el-input>
-              </template>
-            </vxe-table-column>
-            <vxe-table-column title="操作" width="100">
-              <template #default="scope">
-                <el-button size="default" type="danger"
-                  @click="removeEvent(scope.row, scope.$rowIndex, 'contract_detail')">删除</el-button>
-              </template>
-            </vxe-table-column>
-          </vxe-table>
-        </el-row>
-      </div>
-      <div v-if="inputForm.sourceType === '3'">
-        <el-divider content-position="left"><i class="el-icon-document"></i>
-          兴光报告报销详情
-          <el-button size="default" style="margin-left: 20px" type="primary"
-            :disabled="method === 'view' || status === 'audit' || status === 'taskFormDetail'"
-            @click="insertEvent('report_detail')" plain>
-            新增
-          </el-button>
-        </el-divider>
-        <el-row :gutter="15">
-          <el-col :span="24">
-            <vxe-table border show-footer show-overflow :footer-method="footerMethod" ref="detailTableReport"
-              class="vxe-table-element" :data="inputForm.detailInfoReports" style="margin-left: 5em"
-              :key="detailKeyReport" highlight-current-row
-              :edit-config="{ trigger: 'click', mode: 'row', showStatus: true, autoClear: true, icon: '_' }"
-              :edit-rules="validRules" :row-config="{ keyField: 'uniqueId' }"
-              :expand-config="{ expandAll: false, accordion: false, toggleMethod: handleExpand, expandRowKeys: handleDefaultExpand() }">
-              <vxe-column type="expand" width="80">
-                <template #content="{ row, rowIndex }">
-                  <InvoiceReimbursementUpLoadComponent v-if="row.reimbursementType == 1"
-                    @changeConfirmList="changeConfirmList" @handleCount="handleCount"
-                    @handleUploadSuccess="handleUploadSuccess" :ref="row.uniqueId + 'Upload'"
-                    v-show="'1' === this.inputForm.reimbursementType">
-                  </InvoiceReimbursementUpLoadComponent>
-                  <UpLoadComponent @handleUploadSuccess="handleUploadSuccess" v-if="row.reimbursementType == 0"
-                    :ref="row.uniqueId + 'UploadFiles'">
-                  </UpLoadComponent>
-                </template>
-              </vxe-column>
-              <vxe-table-column field="userName" title="报销人" :edit-render="{}" show-overflow="title"
-                :rules="[{ required: true, message: '请选择报销人', trigger: 'blur' }]">
-                <template #edit="scope">
-                  <el-input v-model="scope.row.userName" @focus="userPullListForm3(scope.$rowIndex)"></el-input>
-                  <!--              <UserSelectV2 :limit='1' :userName="scope.row.userName" @getValue='(value, label) => {scope.row.userName = label}'></UserSelectV2>-->
-                </template>
-              </vxe-table-column>
-              <vxe-table-column field="deptName" title="报销部门" :edit-render="{}" show-overflow="title">
-                <template #edit="scope">
-                  <el-input :disabled='true' v-model="scope.row.deptName"></el-input>
-                </template>
-              </vxe-table-column>
-              <vxe-table-column field="reimbursementType" title="报销类型" :edit-render="{}" show-overflow="title">
-                <template #default="{ row }">
-                  <span>{{ $dictUtils.getDictLabel('reimbursement_type', row.reimbursementType,
-                    '') }}</span>
-                </template>
-                <template #edit="{ row }">
-                  <vxe-select :disabled="method === 'view' || status === 'audit' || status === 'taskFormDetail'"
-                    @change="handleChangeType" v-model="row.reimbursementType" placeholder="请选择报销类型" transfer>
-                    <vxe-option v-for="item in $dictUtils.getDictList('reimbursement_type')" :key="item.value"
-                      :value="item.value" :label="item.label"></vxe-option>
-                  </vxe-select>
-                </template>
-              </vxe-table-column>
-              <vxe-table-column field="typeName" title="报销类别" :edit-render="{}" show-overflow="title"
-                :rules="[{ required: true, message: '请选择报销类别', trigger: 'blur' }]">
-                <template #edit="scope">
-                  <el-input v-model="scope.row.typeName"
-                    @focus="typePullForm3(scope.$rowIndex, scope.row.deptId)"></el-input>
-                </template>
-              </vxe-table-column>
-              <vxe-table-column field="projectName" title="报销详情" :edit-render="{}" show-overflow="title"
-                :rules="[{ required: true, message: '请填写报销详情', trigger: 'blur' }]">
-                <template #edit="scope">
-                  <el-input v-model="scope.row.projectName"
-                    @focus="openProgramPageForm3(scope.$rowIndex, scope.row)"></el-input>
-                </template>
-              </vxe-table-column>
-              <!--            <vxe-table-column field="reportNumber" title="报告号" :edit-render="{}">-->
-              <!--              <template v-slot:edit="scope">-->
-              <!--                <el-input :readonly="true" v-model="scope.row.reportNumber" @focus="openReportNoPageForm(scope.$rowIndex, scope.row)"></el-input>-->
-              <!--              </template>-->
-              <!--            </vxe-table-column>-->
-              <vxe-table-column field="number" title="费用(元)" :edit-render="{}" show-overflow="title"
-                :rules="[{ required: true, message: '请输入费用', trigger: 'blur' }]">
-                <template #edit="scope">
-                  <el-input maxlength="15" v-model="scope.row.number"
-                    @input="scope.row.number = twoDecimalPlaces(scope.row.number)"></el-input>
-                </template>
-              </vxe-table-column>
-              <vxe-table-column field="receiptNumber" title="收据张数" :edit-render="{}" show-overflow="title">
-                <template #edit="scope">
-                  <el-input v-model="scope.row.receiptNumber" oninput="value=value.replace(/\D|^0/g,'')"
-                    maxlength="10"></el-input>
-                </template>
-              </vxe-table-column>
-              <vxe-table-column field="days" title="出差天数" :edit-render="{}" show-overflow="title">
-                <template #edit="scope">
-                  <el-input v-model="scope.row.days" oninput="value=value.replace(/\D|^0/g,'')"
-                    maxlength="10"></el-input>
-                </template>
-              </vxe-table-column>
-              <vxe-table-column field="content" title="内容" :edit-render="{}" show-overflow="title">
-                <template #edit="scope">
-                  <el-input v-model="scope.row.content"></el-input>
-                </template>
-              </vxe-table-column>
-              <vxe-table-column title="操作" width="180">
-                <template #default="scope">
-                  <el-button size="default" @click="uploadFile(scope.row, scope.$rowIndex,)"
-                    type="primary">上传</el-button>
-                  <el-button size="default" type="danger"
-                    @click="removeEvent(scope.row, scope.$rowIndex, 'report_detail')">删除</el-button>
-                </template>
-              </vxe-table-column>
-            </vxe-table>
-          </el-col>
-        </el-row>
-      </div>
-      <div v-if="inputForm.sourceType === '4'">
-        <el-divider content-position="left"><i class="el-icon-document"></i>
-          其他报销详情
-          <el-button size="default" style="margin-left: 20px" type="primary"
-            :disabled="method === 'view' || status === 'audit' || status === 'taskFormDetail'"
-            @click="insertEvent('others')" plain>
-            新增
-          </el-button>
-        </el-divider>
-        <el-row :gutter="15">
-          <el-col :span="24">
-            <vxe-table border show-footer show-overflow :footer-method="footerMethod" ref="detailTableOthers"
-              class="vxe-table-element" :data="inputForm.detailInfoOthers" style="margin-left: 5em"
-              :key="detailKeyOthers" highlight-current-row
-              :edit-config="{ trigger: 'click', mode: 'row', showStatus: true, autoClear: true, icon: '_' }"
-              :edit-rules="validRules" :row-config="{ keyField: 'uniqueId' }"
-              :expand-config="{ expandAll: false, accordion: false, toggleMethod: handleExpand, expandRowKeys: handleDefaultExpand() }">
-              <vxe-column type="expand" width="80">
-                <template #content="{ row, rowIndex }">
-                  <InvoiceReimbursementUpLoadComponent v-if="row.reimbursementType == 1"
-                    @changeConfirmList="changeConfirmList" @handleCount="handleCount"
-                    @handleUploadSuccess="handleUploadSuccess" :ref="row.uniqueId + 'Upload'"
-                    v-show="'1' === this.inputForm.reimbursementType">
-                  </InvoiceReimbursementUpLoadComponent>
-                  <UpLoadComponent @handleUploadSuccess="handleUploadSuccess" v-if="row.reimbursementType == 0"
-                    :ref="row.uniqueId + 'UploadFiles'">
-                  </UpLoadComponent>
-                </template>
-              </vxe-column>
-              <vxe-table-column field="userName" title="报销人" :edit-render="{}" show-overflow="title"
-                :rules="[{ required: true, message: '请选择报销人', trigger: 'blur' }]">
-                <template #edit="scope">
-                  <el-input v-model="scope.row.userName" @focus="userPullListForm4(scope.$rowIndex)"></el-input>
-                  <!--              <UserSelectV2 :limit='1' :userName="scope.row.userName" @getValue='(value, label) => {scope.row.userName = label}'></UserSelectV2>-->
-                </template>
-              </vxe-table-column>
-              <vxe-table-column field="deptName" title="报销部门" :edit-render="{}" show-overflow="title">
-                <template #edit="scope">
-                  <el-input :disabled='true' v-model="scope.row.deptName"></el-input>
-                </template>
-              </vxe-table-column>
-              <vxe-table-column field="reimbursementType" title="报销类型" :edit-render="{}" show-overflow="title">
-                <template #default="{ row }">
-                  <span>{{ $dictUtils.getDictLabel('reimbursement_type', row.reimbursementType,
-                    '') }}</span>
-                </template>
-                <template #edit="{ row }">
-                  <vxe-select :disabled="method === 'view' || status === 'audit' || status === 'taskFormDetail'"
-                    @change="handleChangeType" v-model="row.reimbursementType" placeholder="请选择报销类型" transfer>
-                    <vxe-option v-for="item in $dictUtils.getDictList('reimbursement_type')" :key="item.value"
-                      :value="item.value" :label="item.label"></vxe-option>
-                  </vxe-select>
-                </template>
-              </vxe-table-column>
-              <vxe-table-column field="typeName" title="报销类别" :edit-render="{}" show-overflow="title"
-                :rules="[{ required: true, message: '请选择报销类别', trigger: 'blur' }]">
-                <template #edit="scope">
-                  <el-input v-model="scope.row.typeName"
-                    @focus="typePullForm4(scope.$rowIndex, scope.row.deptId)"></el-input>
-                </template>
-              </vxe-table-column>
-              <vxe-table-column field="projectName" title="报销详情" :edit-render="{}" show-overflow="title"
-                :rules="[{ required: true, message: '请填写报销详情', trigger: 'blur' }]">
-                <template #edit="scope">
-                  <el-input v-model="scope.row.projectName"
-                    @focus="openProgramPageForm4(scope.$rowIndex, scope.row)"></el-input>
-                </template>
-              </vxe-table-column>
-              <!--            <vxe-table-column field="reportNumber" title="报告号" :edit-render="{}">-->
-              <!--              <template v-slot:edit="scope">-->
-              <!--                <el-input :readonly="true" v-model="scope.row.reportNumber" @focus="openReportNoPageForm(scope.$rowIndex, scope.row)"></el-input>-->
-              <!--              </template>-->
-              <!--            </vxe-table-column>-->
-              <vxe-table-column field="number" title="费用(元)" :edit-render="{}" show-overflow="title"
-                :rules="[{ required: true, message: '请输入费用', trigger: 'blur' }]">
-                <template #edit="scope">
-                  <el-input maxlength="15" v-model="scope.row.number"
-                    @input="scope.row.number = twoDecimalPlaces(scope.row.number)"></el-input>
-                </template>
-              </vxe-table-column>
-              <vxe-table-column field="receiptNumber" title="收据张数" :edit-render="{}" show-overflow="title">
-                <template #edit="scope">
-                  <el-input v-model="scope.row.receiptNumber" oninput="value=value.replace(/\D|^0/g,'')"
-                    maxlength="10"></el-input>
-                </template>
-              </vxe-table-column>
-              <vxe-table-column field="days" title="出差天数" :edit-render="{}" show-overflow="title">
-                <template #edit="scope">
-                  <el-input v-model="scope.row.days" oninput="value=value.replace(/\D|^0/g,'')"
-                    maxlength="10"></el-input>
-                </template>
-              </vxe-table-column>
-              <vxe-table-column field="content" title="内容" :edit-render="{}" show-overflow="title">
-                <template #edit="scope">
-                  <el-input v-model="scope.row.content"></el-input>
-                </template>
-              </vxe-table-column>
-              <vxe-table-column title="操作" width="180">
-                <template #default="scope">
-                  <el-button size="default" @click="uploadFile(scope.row, scope.$rowIndex,)"
-                    type="primary">上传</el-button>
-                  <el-button size="default" type="danger"
-                    @click="removeEvent(scope.row, scope.$rowIndex, 'others')">删除</el-button>
-                </template>
-              </vxe-table-column>
-            </vxe-table>
-          </el-col>
-        </el-row>
-      </div>
-      <div v-if="inputForm.sourceType === '5'">
-        <el-divider content-position="left"><i class="el-icon-document"></i>
-          采购报销详情
-          <el-button size="default" style="margin-left: 20px" type="primary"
-            :disabled="method === 'view' || this.formReadOnly" @click="insertEvent('procured')" plain>
-            新增
-          </el-button>
-        </el-divider>
-        <el-row :gutter="15">
-          <vxe-table border show-footer show-overflow :footer-method="footerMethod" ref="detailTableProcured"
-            class="vxe-table-element" :data="inputForm.detailInfoProcured" style="margin-left: 5em"
-            :key="detailKeyProcured" highlight-current-row
-            :edit-config="{ trigger: 'click', mode: 'row', showStatus: true, autoClear: true, icon: '_' }"
-            :edit-rules="validRules">
-            <vxe-table-column field="userName" title="报销人" :edit-render="{}" show-overflow="title"
-              :rules="[{ required: true, message: '请选择报销人', trigger: 'blur' }]">
-              <template #edit="scope">
-                <el-input v-model="scope.row.userName" @focus="userPullListForm5(scope.$rowIndex)"></el-input>
-                <!--              <UserSelectV2 :limit='1' :userName="scope.row.userName" @getValue='(value, label) => {scope.row.userName = label}'></UserSelectV2>-->
-              </template>
-            </vxe-table-column>
-            <vxe-table-column field="deptName" title="报销部门" :edit-render="{}" show-overflow="title">
-              <template #edit="scope">
-                <el-input :disabled='true' v-model="scope.row.deptName"></el-input>
-              </template>
-            </vxe-table-column>
-            <vxe-table-column field="typeName" title="报销类别" :edit-render="{}" show-overflow="title"
-              :rules="[{ required: true, message: '请选择报销类别', trigger: 'blur' }]">
-              <template #edit="scope">
-                <el-input v-model="scope.row.typeName"
-                  @focus="typePullForm5(scope.$rowIndex, scope.row.deptId)"></el-input>
-              </template>
-            </vxe-table-column>
-            <vxe-table-column field="projectName" title="报销项目" :edit-render="{}" show-overflow="title"
-              :rules="[{ required: true, message: '请选择报销项目', trigger: 'blur' }]">
-              <template #edit="scope">
-                <el-input v-model="scope.row.projectName"
-                  @focus="openProgramPageForm5(scope.$rowIndex, scope.row)"></el-input>
-              </template>
-            </vxe-table-column>
-            <!--            <vxe-table-column field="reportNumber" title="报告号" :edit-render="{}">-->
-            <!--              <template v-slot:edit="scope">-->
-            <!--                <el-input :readonly="true" v-model="scope.row.reportNumber" @focus="openReportNoPageForm(scope.$rowIndex, scope.row)"></el-input>-->
-            <!--              </template>-->
-            <!--            </vxe-table-column>-->
-            <vxe-table-column field="number" title="费用(元)" :edit-render="{}" show-overflow="title"
-              :rules="[{ required: true, message: '请输入费用', trigger: 'blur' }]">
-              <template #edit="scope">
-                <el-input maxlength="15" v-model="scope.row.number"
-                  @input="scope.row.number = twoDecimalPlaces(scope.row.number)"></el-input>
-              </template>
-            </vxe-table-column>
-            <vxe-table-column field="receiptNumber" title="收据张数" :edit-render="{}" show-overflow="title">
-              <template #edit="scope">
-                <el-input v-model="scope.row.receiptNumber" oninput="value=value.replace(/\D|^0/g,'')"
-                  maxlength="10"></el-input>
-              </template>
-            </vxe-table-column>
-            <vxe-table-column field="days" title="出差天数" :edit-render="{}" show-overflow="title">
-              <template #edit="scope">
-                <el-input v-model="scope.row.days" oninput="value=value.replace(/\D|^0/g,'')" maxlength="10"></el-input>
-              </template>
-            </vxe-table-column>
-            <vxe-table-column field="content" title="内容" :edit-render="{}" show-overflow="title">
-              <template #edit="scope">
-                <el-input v-model="scope.row.content"></el-input>
-              </template>
-            </vxe-table-column>
-            <vxe-table-column title="操作" width="100">
-              <template #default="scope">
-                <el-button size="default" type="danger"
-                  @click="removeEvent(scope.row, scope.$rowIndex, 'procured')">删除</el-button>
-              </template>
-            </vxe-table-column>
-          </vxe-table>
-        </el-row>
-      </div>
-      <div v-if="inputForm.sourceType === '8'">
-        <el-divider content-position="left"><i class="el-icon-document"></i>
-          中审项目报销详情
-          <el-button size="default" style="margin-left: 20px" type="primary"
-            :disabled="method === 'view' || status === 'audit' || status === 'taskFormDetail'"
-            @click="insertEvent('zs_project_detail')" plain>
-            新增
-          </el-button>
-        </el-divider>
-        <el-row :gutter="15">
-          <el-col :span="24">
-            <vxe-table border show-footer show-overflow :footer-method="footerMethod" ref="detailTableProject"
-              class="vxe-table-element" :data="inputForm.detailInfoProject" style="margin-left: 5em"
-              :key="detailKeyProject" highlight-current-row
-              :edit-config="{ trigger: 'click', mode: 'row', showStatus: true, autoClear: true, icon: '_' }"
-              :edit-rules="validRules" :tooltip-config="{
-                enterable: true
-              }" :row-config="{ keyField: 'uniqueId' }"
-              :expand-config="{ expandAll: false, accordion: false, toggleMethod: handleExpand, expandRowKeys: handleDefaultExpand() }">
-              <vxe-column type="expand" width="80">
-                <template #content="{ row, rowIndex }">
-                  <InvoiceReimbursementUpLoadComponent v-if="row.reimbursementType == 1"
-                    @changeConfirmList="changeConfirmList" @handleCount="handleCount"
-                    @handleUploadSuccess="handleUploadSuccess" :ref="row.uniqueId + 'Upload'"
-                    v-show="'1' === this.inputForm.reimbursementType">
-                  </InvoiceReimbursementUpLoadComponent>
-                  <UpLoadComponent @handleUploadSuccess="handleUploadSuccess" v-if="row.reimbursementType == 0"
-                    :ref="row.uniqueId + 'UploadFiles'">
-                  </UpLoadComponent>
-                </template>
-              </vxe-column>
-              <vxe-table-column field="userName" title="报销人" :edit-render="{}" show-overflow="title"
-                :rules="[{ required: true, message: '请选择报销人', trigger: 'blur' }]">
-                <template #edit="scope">
-                  <el-input v-model="scope.row.userName" @focus="userPullListForm8(scope.$rowIndex)"></el-input>
-                  <!--              <UserSelectV2 :limit='1' :userName="scope.row.userName" @getValue='(value, label) => {scope.row.userName = label}'></UserSelectV2>-->
-                </template>
-              </vxe-table-column>
-              <vxe-table-column field="deptName" title="报销部门" :edit-render="{}" show-overflow="title">
-                <template #edit="scope">
-                  <el-input :disabled='true' v-model="scope.row.deptName"></el-input>
-                </template>
-              </vxe-table-column>
-              <vxe-table-column field="reimbursementType" title="报销类型" :edit-render="{}" show-overflow="title">
-                <template #default="{ row }">
-                  <span>{{ $dictUtils.getDictLabel('reimbursement_type', row.reimbursementType,
-                    '') }}</span>
-                </template>
-                <template #edit="{ row }">
-                  <vxe-select :disabled="method === 'view' || status === 'audit' || status === 'taskFormDetail'"
-                    @change="handleChangeType" v-model="row.reimbursementType" placeholder="请选择报销类型" transfer>
-                    <vxe-option v-for="item in $dictUtils.getDictList('reimbursement_type')" :key="item.value"
-                      :value="item.value" :label="item.label"></vxe-option>
-                  </vxe-select>
-                </template>
-              </vxe-table-column>
-              <vxe-table-column field="typeName" title="报销类别" :edit-render="{}" show-overflow="title"
-                :rules="[{ required: true, message: '请选择报销类别', trigger: 'blur' }]">
-                <template #edit="scope">
-                  <el-input v-model="scope.row.typeName"
-                    @focus="typePullForm8(scope.$rowIndex, scope.row.deptId)"></el-input>
-                </template>
-              </vxe-table-column>
-              <vxe-table-column field="projectName" title="报销详情" :edit-render="{}" show-overflow="title"
-                :rules="[{ required: true, message: '请填写报销详情', trigger: 'blur' }]">
-                <template #edit="scope">
-                  <el-input v-model="scope.row.projectName"
-                    @focus="openProgramPageForm8(scope.$rowIndex, scope.row)"></el-input>
-                </template>
-              </vxe-table-column>
-              <vxe-colgroup title="发票号和立项号至少填写一项" header-align="center">
-                <vxe-table-column field="invoiceNumber" title="发票号" :edit-render="{}" show-overflow="title">
-                  <template #header>
-                    <i class="vxe-cell--required-icon"></i>发票号
-                  </template>
-                  <template #edit="scope">
-                    <el-input v-model="scope.row.invoiceNumber"></el-input>
-                  </template>
-                </vxe-table-column>
-                <vxe-table-column field="projectApprovalNumber" title="立项号" :edit-render="{}" show-overflow="title">
-                  <template #header>
-                    <i class="vxe-cell--required-icon"></i>立项号
-                  </template>
-                  <template #edit="scope">
-                    <el-input v-model="scope.row.projectApprovalNumber"></el-input>
-                  </template>
-                </vxe-table-column>
-              </vxe-colgroup>
-              <!--            <vxe-table-column field="reportNumber" title="报告号" :edit-render="{}">-->
-              <!--              <template v-slot:edit="scope">-->
-              <!--                <el-input :readonly="true" v-model="scope.row.reportNumber" @focus="openReportNoPageForm(scope.$rowIndex, scope.row)"></el-input>-->
-              <!--              </template>-->
-              <!--            </vxe-table-column>-->
-              <vxe-table-column field="number" title="费用(元)" :edit-render="{}" show-overflow="title"
-                :rules="[{ required: true, message: '请输入费用', trigger: 'blur' }]">
-                <template #edit="scope">
-                  <el-input maxlength="15" v-model="scope.row.number"
-                    @input="scope.row.number = twoDecimalPlaces(scope.row.number)"></el-input>
-                </template>
-              </vxe-table-column>
-              <vxe-table-column field="receiptNumber" title="收据张数" :edit-render="{}" show-overflow="title">
-                <template #edit="scope">
-                  <el-input v-model="scope.row.receiptNumber" oninput="value=value.replace(/\D|^0/g,'')"
-                    maxlength="10"></el-input>
-                </template>
-              </vxe-table-column>
-              <vxe-table-column field="days" title="出差天数" :edit-render="{}" show-overflow="title">
-                <template #edit="scope">
-                  <el-input v-model="scope.row.days" oninput="value=value.replace(/\D|^0/g,'')"
-                    maxlength="10"></el-input>
-                </template>
-              </vxe-table-column>
-              <vxe-table-column field="content" title="内容" :edit-render="{}" show-overflow="title">
-                <template #edit="scope">
-                  <el-input v-model="scope.row.content"></el-input>
-                </template>
-              </vxe-table-column>
-              <vxe-table-column title="操作" width="180">
-                <template #default="scope">
-                  <el-button size="default" @click="uploadFile(scope.row, scope.$rowIndex,)"
-                    type="primary">上传</el-button>
-                  <el-button size="default" type="danger"
-                    @click="removeEvent(scope.row, scope.$rowIndex, 'zs_project_detail')">删除</el-button>
-                </template>
-              </vxe-table-column>
-            </vxe-table>
-          </el-col>
-        </el-row>
-      </div>
-      <div v-if="inputForm.reimbursementType === '0'">
-        <el-divider content-position="left"><i class="el-icon-document"></i>
-          专用发票信息
-          <el-button size="default" style="margin-left: 10px" type="primary"
-            :disabled="method === 'view' || status === 'audit' || status === 'taskFormDetail'"
-            @click="insertEvent('amount')" plain>
-            新增
-          </el-button>
-        </el-divider>
-        <el-row :gutter="15">
-          <el-col :span="24">
-            <vxe-table border show-overflow ref="amountTable" class="vxe-table-element" :data="inputForm.amountInfos"
-              style="margin-left: 5em" :key="amountKey" highlight-current-row
-              :edit-config="{ trigger: 'click', mode: 'row', showStatus: true, autoClear: true, icon: '_' }">
-              <vxe-table-column field="code" title="发票代码" :edit-render="{}" show-overflow="title">
-                <template #edit="scope">
-                  <el-input oninput="value=value.replace(/\D|^/g,'')" maxlength="20"
-                    v-model="scope.row.code"></el-input>
-                </template>
-              </vxe-table-column>
-              <vxe-table-column field="number" title="发票号" :edit-render="{}" show-overflow="title">
-                <template #edit="scope">
-                  <el-input oninput="value=value.replace(/\D|^/g,'')" maxlength="8" @change="isExict(scope.row)"
-                    v-model="scope.row.number"></el-input>
-                </template>
-              </vxe-table-column>
-              <vxe-table-column field="amount" title="金额" :edit-render="{}" show-overflow="title">
-                <template #edit="scope">
-                  <el-input maxlength="15" v-model="scope.row.amount"
-                    @input="scope.row.amount = twoDecimalPlaces(scope.row.amount)"
-                    @change="countAmount(scope.row)"></el-input>
-                </template>
-              </vxe-table-column>
-              <vxe-table-column field="taxAmount" title="税额" :edit-render="{}" show-overflow="title">
-                <template #edit="scope">
-                  <el-input maxlength="15" v-model="scope.row.taxAmount"
-                    @input="scope.row.taxAmount = twoDecimalPlaces(scope.row.taxAmount)"
-                    @change="countAmount(scope.row)"></el-input>
-                </template>
-              </vxe-table-column>
-              <vxe-table-column field="count" title="价税合计" :edit-render="{}" show-overflow="title">
-                <template #edit="scope">
-                  <el-input disabled="true" v-model="scope.row.count"></el-input>
-                </template>
-              </vxe-table-column>
-              <vxe-table-column title="操作" width="100">
-                <template #default="scope">
-                  <el-button size="default" type="danger"
-                    @click="removeEvent(scope.row, scope.$rowIndex, 'amount')">删除</el-button>
-                </template>
-              </vxe-table-column>
-            </vxe-table>
-          </el-col>
+      <ReimbursementComponent ref="reimbursementComponent">
+      </ReimbursementComponent>
 
-        </el-row>
-      </div>
       <!--		<div v-if="inputForm.reimbursementType === '1'">-->
       <!--			<el-divider content-position="left">-->
       <!--				数电发票信息-->
@@ -897,7 +202,7 @@
     <!-- <InvoiceReimbursementUpLoadComponent ref="invoiceReimbursementUpLoadComponent"
       @changeConfirmList="changeConfirmList" v-show="'1' === this.inputForm.reimbursementType">
     </InvoiceReimbursementUpLoadComponent> -->
-    <!-- <UpLoadComponent ref="uploadComponent"></UpLoadComponent> -->
+    <UpLoadComponent ref="uploadComponent"></UpLoadComponent>
     <WorkContractChooseCom ref="workContractChooseCom" @getContract="getContract"></WorkContractChooseCom>
     <ReportNoChooseRadio ref="reportNoChooseRadio" @getWorkClientRadioChoose="getWorkClientChoose2">
     </ReportNoChooseRadio>
@@ -913,7 +218,7 @@ import ReimbursementService from '@/api/zs/reimbursement/ReimbursementService'
 import ReimbursementTypeService from '@/api/zs/reimbursement/ReimbursementTypeService'
 import InvoiceReimbursementUpLoadComponent from '@/views/common/NewDigitalInvoiceUploadComponent'
 import ReimbursementApprovalTypeService from '@/api/cw/reimbursementApproval/ReimbursementApprovalTypeService'
-import UpLoadComponent from '@/views/common/NewUpLoadComponent'
+import UpLoadComponent from '@/views/common/UpLoadComponent'
 // import SelectUserTree from '@/views/utils/treeUserSelect'
 // import SelectTree from '@/components/treeSelect/treeSelect.vue'
 import XEUtils from 'xe-utils'
@@ -932,6 +237,7 @@ import processService from '@/api/flowable/processService'
 // import MaterialManagementService from '@/api/materialManagement/MaterialManagementService'
 //import MaterialManagementDialog from '../../../'
 import userService from '@/api/sys/UserService'
+import ReimbursementComponent from '@/views/common/reimbursement/ReimbursementComponent.vue'
 export default {
   props: {
     businessId: {
@@ -1111,6 +417,7 @@ export default {
     WorkContractChooseCom,
     // PurchaseChooseForm,
     // MaterialManagementDialog
+    ReimbursementComponent
   },
   computed: {
     bus: {
@@ -1153,6 +460,9 @@ export default {
     },
     getUpload() {
     },
+    initReimbursementComponent() {
+      this.$refs.reimbursementComponent.initComponent("reimbursement", "zs", "中审众环会计师事务所(特殊普通合伙)江苏分所", this.inputForm, this.isConfirm, this.status)
+    },
     init(method, id) {
       this.method = method
       this.inputForm = {
@@ -1194,7 +504,7 @@ export default {
         this.loading = true
         this.$refs.inputForm.resetFields()
         // this.$refs.invoiceReimbursementUpLoadComponent.clearUpload()
-        // this.$refs.uploadComponent.clearUpload()
+        this.$refs.uploadComponent.clearUpload()
         this.reimbursementService.findById(this.inputForm.id).then((data) => {
           if (this.status === 'audit' || this.status === 'taskFormDetail') {
             method = 'view'
@@ -1229,7 +539,7 @@ export default {
             this.payment = '未付款'
           }
           // this.$refs.invoiceReimbursementUpLoadComponent.newUpload(method, this.inputForm.invoiceReimbursementFiles, 'reimbursement', 300, '数电发票信息', null, null, null, '中审众环会计师事务所(特殊普通合伙)江苏分所')
-          // this.$refs.uploadComponent.newUpload(method, this.inputForm.files, 'reimbursement')
+          this.$refs.uploadComponent.newUpload(method, this.inputForm.files, 'reimbursement')
           if (this.commonJS.isNotEmpty(this.inputForm.purchaseId)) {
             // this.startPur(this.inputForm.purchaseId)
           }
@@ -1246,6 +556,7 @@ export default {
             if (this.status == "startAndHold" || this.method == "add") {
               this.isConfirm = 3
             }
+            this.initReimbursementComponent()
           })
           this.handleTableInfo(this.inputForm.sourceType)
           // 获取文件确认状态
@@ -1260,11 +571,11 @@ export default {
           })
           this.loading = false
         })
-        // if (method !== 'edit' && method !== 'view') {
-        //   this.$refs.invoiceReimbursementUpLoadComponent.newUpload(method, [], 'reimbursement')
-        //   this.$refs.uploadComponent.newUpload(method, [], 'reimbursement')
-        //   this.loading = false
-        // }
+        if (method !== 'edit' && method !== 'view') {
+          //   this.$refs.invoiceReimbursementUpLoadComponent.newUpload(method, [], 'reimbursement')
+          this.$refs.uploadComponent.newUpload(method, [], 'reimbursement')
+          this.loading = false
+        }
         userService.isZj().then((data) => {
           this.isZj = data
         })
@@ -1285,10 +596,10 @@ export default {
           //   this.loading = false
           //   return
           // }
-          // if (this.$refs.uploadComponent.checkProgress()) {
-          //   this.loading = false
-          //   return
-          // }
+          if (this.$refs.uploadComponent.checkProgress()) {
+            this.loading = false
+            return
+          }
           if (this.commonJS.isEmpty(this.inputForm.invoiceReimbursementFiles)) {
             this.inputForm.invoiceReimbursementFiles = []
           }
@@ -1298,10 +609,9 @@ export default {
           this.dataFiltering()
           this.inputForm.id = this.businessId
           // this.inputForm.invoiceReimbursementFiles = this.$refs.invoiceReimbursementUpLoadComponent.getDataList()
-          // this.inputForm.files = this.$refs.uploadComponent.getDataList()
+          this.inputForm.files = this.$refs.uploadComponent.getDataList()
           this.reimbursementService.save(this.inputForm).then((data) => {
             this.close()
-            console.log("22222222222222222");
             this.$message.success(data)
             this.$emit('refreshDataList')
             this.loading = false
@@ -1409,7 +719,7 @@ export default {
       this.inputForm.amountInfos = []
       this.inputForm.invoiceReimbursements = []
       // this.$refs.invoiceReimbursementUpLoadComponent.clearUpload()
-      // this.$refs.uploadComponent.clearUpload()
+      this.$refs.uploadComponent.clearUpload()
       this.visible = false
     },
     // 删除
@@ -1589,10 +899,10 @@ export default {
       //   this.loading = false
       //   return
       // }
-      // if (this.$refs.uploadComponent.checkProgress()) {
-      //   this.loading = false
-      //   return
-      // }
+      if (this.$refs.uploadComponent.checkProgress()) {
+        this.loading = false
+        return
+      }
       if (this.commonJS.isEmpty(this.inputForm.invoiceReimbursementFiles)) {
         this.inputForm.invoiceReimbursementFiles = []
       }
@@ -1600,7 +910,7 @@ export default {
         this.inputForm.files = []
       }
       // this.inputForm.invoiceReimbursementFiles = this.$refs.invoiceReimbursementUpLoadComponent.getDataList()
-      // this.inputForm.files = this.$refs.uploadComponent.getDataList()
+      this.inputForm.files = this.$refs.uploadComponent.getDataList()
       this.inputForm.type = '1'
       this.reimbursementService.save(this.inputForm).then(() => {
         callback()
@@ -1624,6 +934,7 @@ export default {
     },
     // 送审
     async startForm(callback) {
+      this.getReimbursementData()
       let title = `发起流程【中审-报销审批】`
       let describe = `[中审-报销审批]`
       if (this.inputForm.reimbursementType) {
@@ -1690,6 +1001,7 @@ export default {
         }
 
       }
+
       this.$refs['inputForm'].validate(async (valid) => {
         if (valid) {
           this.loading = true
@@ -1700,10 +1012,10 @@ export default {
           //   this.loading = false
           //   return
           // }
-          // if (this.$refs.uploadComponent.checkProgress()) {
-          //   this.loading = false
-          //   return
-          // }
+          if (this.$refs.uploadComponent.checkProgress()) {
+            this.loading = false
+            return
+          }
           if (this.commonJS.isEmpty(this.inputForm.invoiceReimbursementFiles)) {
             this.inputForm.invoiceReimbursementFiles = []
           }
@@ -1716,7 +1028,7 @@ export default {
           //   return
           // }
           // this.inputForm.invoiceReimbursementFiles = this.$refs.invoiceReimbursementUpLoadComponent.getDataList()
-          // this.inputForm.files = this.$refs.uploadComponent.getDataList()
+          this.inputForm.files = this.$refs.uploadComponent.getDataList()
           this.dataFiltering()
           // if(this.inputForm.invoiceReimbursementFiles<=0 && "1" === this.inputForm.reimbursementType){
           //   this.$message.error("请上传数电发票发票xml文件!")
@@ -1810,10 +1122,10 @@ export default {
               return
             }
           }
-          // if (this.$refs.uploadComponent.checkProgress()) {
-          //   this.loading = false
-          //   return
-          // }
+          if (this.$refs.uploadComponent.checkProgress()) {
+            this.loading = false
+            return
+          }
           if (this.commonJS.isEmpty(this.inputForm.invoiceReimbursementFiles)) {
             this.inputForm.invoiceReimbursementFiles = []
           }
@@ -1822,7 +1134,7 @@ export default {
           }
           this.dataFiltering()
           // this.inputForm.invoiceReimbursementFiles = this.$refs.invoiceReimbursementUpLoadComponent.getDataList()
-          // this.inputForm.files = this.$refs.uploadComponent.getDataList()
+          this.inputForm.files = this.$refs.uploadComponent.getDataList()
           this.inputForm.type = '2'
           this.commonApi.getTaskNameByProcInsId(this.inputForm.procInsId).then((data) => {
             if (this.commonJS.isNotEmpty(data)) {
@@ -2270,6 +1582,8 @@ export default {
       this.detailKeyOthers = Math.random()
       this.detailKeyProcured = Math.random()
       this.detailKeyProject = Math.random()
+      this.$refs.reimbursementComponent.inputForm.invoiceReimbursementFiles = []
+      this.$refs.reimbursementComponent.inputForm.sourceType = value
     },
     submitCheck() {
       if (this.commonJS.isEmpty(this.inputForm.sourceType)) {
@@ -2715,12 +2029,13 @@ export default {
 
     },
     // 触发上传按钮
-    uploadFile(row, index) {
+    async uploadFile(row, index) {
       if (this.commonJS.isEmpty(row.reimbursementType)) {
         this.$message.error("请选择报销类型")
         return
       }
       this.handleTableInfo(this.inputForm.sourceType)
+      await this.tableRef.clearEdit()
       this.tableRef.setRowExpand(this.tableData[index], true)
       setTimeout(() => {
         if (row.reimbursementType == 1) {
@@ -2779,6 +2094,7 @@ export default {
         })
         this.inputForm.files.push(...files)
       }
+      this.tableRef.updateFooter(this.tableData)
     },
     handleCheckAmount() {
       let countFlag = false
@@ -2813,10 +2129,6 @@ export default {
     handleDefaultExpand() {
       this.handleTableInfo(this.inputForm.sourceType)
       let arr = []
-      console.log(this.tableData);
-      console.log(this.tableData);
-      console.log(this.tableData);
-      console.log(this.tableData);
 
       this.tableData.forEach((item, index) => {
         if (item.reimbursementType) {
@@ -2824,6 +2136,18 @@ export default {
         }
       })
       return arr
+    },
+    getReimbursementData() {
+      this.$nextTick(() => {
+        let inputForm = this.$refs.reimbursementComponent.handleGetData()
+        this.inputForm.detailInfos = inputForm.detailInfos
+        this.inputForm.detailInfoContracts = inputForm.detailInfoContracts
+        this.inputForm.detailInfoReports = inputForm.detailInfoReports
+        this.inputForm.detailInfoProject = inputForm.detailInfoProject
+        this.inputForm.detailInfoOthers = inputForm.detailInfoOthers
+        this.inputForm.detailInfoProcured = inputForm.detailInfoProcured
+        this.inputForm.invoiceReimbursementFiles = inputForm.invoiceReimbursementFiles
+      });
     }
   }
 }