|
@@ -9,21 +9,21 @@
|
|
|
append-to-body
|
|
|
@keyup.enter.native="doSubmit"
|
|
|
v-model="visible">
|
|
|
- <el-form :model="inputForm" ref="inputForm" v-loading="loading" :class="method==='view'?'readonly':''" :disabled="method==='view'"
|
|
|
+ <el-form :model="inputForm" ref="inputForm" v-loading="loading" :class="method==='view'?'readonly':''"
|
|
|
label-width="100px" @submit.native.prevent>
|
|
|
|
|
|
<el-divider content-position="left"><i class="el-icon-document"></i> 基础信息</el-divider>
|
|
|
- <el-row >
|
|
|
- <el-col :span="12">
|
|
|
- <el-form-item label="报销项" prop="reimbursementType" :disabled="status === 'audit' || status === 'taskFormDetail'"
|
|
|
- :rules="[
|
|
|
- {required: true, message:'报销项不能为空', trigger:'blur'}
|
|
|
- ]">
|
|
|
- <el-radio v-model="inputForm.reimbursementType" v-for="item in $dictUtils.getDictList('reimbursement_type')" :label="item.value" style="margin-right: 20px">
|
|
|
- {{item.label}}</el-radio>
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- </el-row>
|
|
|
+<!-- <el-row >-->
|
|
|
+<!-- <el-col :span="12">-->
|
|
|
+<!-- <el-form-item label="报销项" prop="reimbursementType" :disabled="status === 'audit' || status === 'taskFormDetail'"-->
|
|
|
+<!-- :rules="[-->
|
|
|
+<!-- {required: true, message:'报销项不能为空', trigger:'blur'}-->
|
|
|
+<!-- ]">-->
|
|
|
+<!-- <el-radio v-model="inputForm.reimbursementType" v-for="item in $dictUtils.getDictList('reimbursement_type')" :label="item.value" style="margin-right: 20px">-->
|
|
|
+<!-- {{item.label}}</el-radio>-->
|
|
|
+<!-- </el-form-item>-->
|
|
|
+<!-- </el-col>-->
|
|
|
+<!-- </el-row>-->
|
|
|
<el-row :gutter="26">
|
|
|
<el-col :span="12">
|
|
|
<el-form-item label="经办人" prop="userName">
|
|
@@ -43,6 +43,7 @@
|
|
|
<el-col :span="12">
|
|
|
<el-form-item label="报销日期" prop="reimDate">
|
|
|
<el-date-picker
|
|
|
+ :disabled="method==='view'"
|
|
|
v-model="inputForm.reimDate"
|
|
|
type="date"
|
|
|
value-format="yyyy-MM-dd"
|
|
@@ -53,7 +54,7 @@
|
|
|
</el-col>
|
|
|
<el-col :span="12">
|
|
|
<el-form-item label="报销类型" prop="sourceType">
|
|
|
- <el-select v-model="inputForm.sourceType" placeholder="请选择报销类型" style="width:100%;">
|
|
|
+ <el-select :disabled="method==='view'" v-model="inputForm.sourceType" placeholder="请选择报销类型" style="width:100%;">
|
|
|
<el-option
|
|
|
v-for="item in $dictUtils.getDictList('cw_reimbursement_source_type')"
|
|
|
:key="item.value"
|
|
@@ -67,14 +68,15 @@
|
|
|
<el-form-item label="采购编号" prop="purchaseNo"
|
|
|
:rules="[{required: true, message:'采购编号不能为空', trigger:'blur'},
|
|
|
{required: true, message:'采购编号不能为空', trigger:'change'}]">
|
|
|
- <el-input :readonly="true" @focus="openPurForm()" v-model="inputForm.purchaseNo" placeholder="请选择采购编号">
|
|
|
+ <el-input :disabled="method==='view'" :readonly="true" @focus="openPurForm()" v-model="inputForm.purchaseNo" placeholder="请选择采购编号">
|
|
|
<el-button slot="append" icon="el-icon-search" @click="openPurForm()"></el-button>
|
|
|
</el-input>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="24">
|
|
|
<el-form-item label="备注" prop="remarks">
|
|
|
- <el-input v-model="inputForm.remarks"
|
|
|
+ <el-input :disabled="method==='view'"
|
|
|
+ v-model="inputForm.remarks"
|
|
|
type="textarea"
|
|
|
:rows="5"
|
|
|
maxlength="500"
|
|
@@ -144,7 +146,7 @@
|
|
|
>
|
|
|
<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>
|
|
|
+ <el-input :disabled="method==='view'" 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>
|
|
@@ -155,12 +157,28 @@
|
|
|
</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>
|
|
|
+ <el-input :disabled="method==='view'" 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>
|
|
|
+ <el-input :disabled="method==='view'" v-model="scope.row.projectName" @focus="openProgramPageForm(scope.$rowIndex, scope.row)"></el-input>
|
|
|
+ </template>
|
|
|
+ </vxe-table-column>
|
|
|
+ <vxe-table-column field="reimbursementType"
|
|
|
+ :edit-render="{name: '$select', options: $dictUtils.getDictList('reimbursement_type')}"
|
|
|
+ title="报销项" show-overflow="title"
|
|
|
+ :rules="[{required: true, message:'请选择报销项', trigger:'blur'}]">
|
|
|
+ <template #edit="scope">
|
|
|
+ <vxe-select :disabled="method==='view'" v-model="scope.row.reimbursementType" placeholder="请选择"
|
|
|
+ style="width:100%;" clearable transfer>
|
|
|
+ <vxe-option
|
|
|
+ v-for="item in $dictUtils.getDictList('reimbursement_type')"
|
|
|
+ :key="item.value"
|
|
|
+ :label="item.label"
|
|
|
+ :value="item.value">
|
|
|
+ </vxe-option>
|
|
|
+ </vxe-select>
|
|
|
</template>
|
|
|
</vxe-table-column>
|
|
|
<!-- <vxe-table-column field="reportNumber" title="报告号" :edit-render="{}">-->
|
|
@@ -170,27 +188,54 @@
|
|
|
<!-- </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>
|
|
|
+ <el-input :disabled="method==='view'" 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>
|
|
|
+ <el-input :disabled="method==='view'" 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>
|
|
|
+ <el-input :disabled="method==='view'" 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>
|
|
|
+ <el-input :disabled="method==='view'" 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>
|
|
|
+ <vxe-table-column title="操作" width="150">
|
|
|
+ <template v-slot="scope">
|
|
|
+ <div style="float: left;text-align: center">
|
|
|
+ <el-upload ref="upload" action=""
|
|
|
+ :limit="1" :http-request="httpRequest"
|
|
|
+ multiple
|
|
|
+ :on-exceed="(files, fileList) =>{
|
|
|
+ $message.warning(`只能选择 1 个文件,本次选择了 ${files.length} 个文件,共选择了 ${files.length + fileList.length} 个文件`)
|
|
|
+ }"
|
|
|
+ :show-file-list="false"
|
|
|
+ :on-change="(file,fileLists) => changes(file,fileLists, scope.row,scope.$rowIndex,'detail')"
|
|
|
+ :on-progress="uploadVideoProcess"
|
|
|
+ :file-list="fileList">
|
|
|
+ <el-button style="width: 50px;"
|
|
|
+ v-if="scope.row.reimbursementType === '1' && commonJS.isEmpty(scope.row.fileName)"
|
|
|
+ :loading="loading" type="primary" size="small"> 添加附件
|
|
|
+ </el-button>
|
|
|
+ </el-upload>
|
|
|
+ </div>
|
|
|
+ <div style="float: left;margin-left: 1em;text-align: center">
|
|
|
+ <el-button
|
|
|
+ v-if="scope.row.reimbursementType === '1' && commonJS.isNotEmpty(scope.row.fileName)"
|
|
|
+ key="01" type="primary" size="small" @click="toHref(scope.row.file)">下载
|
|
|
+ </el-button>
|
|
|
+ </div>
|
|
|
+ <div style="float: left;margin-left: 1em;text-align: center">
|
|
|
+ <el-button :disabled="method==='view'" style="width: 50px" size="small" type="danger"
|
|
|
+ @click="removeEvent(scope.row,scope.$rowIndex,'detail')">删除
|
|
|
+ </el-button>
|
|
|
+ </div>
|
|
|
</template>
|
|
|
</vxe-table-column>
|
|
|
</vxe-table>
|
|
@@ -300,7 +345,7 @@
|
|
|
>
|
|
|
<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>
|
|
|
+ <el-input :disabled="method==='view'" 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>
|
|
@@ -311,42 +356,85 @@
|
|
|
</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>
|
|
|
+ <el-input :disabled="method==='view'" 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>
|
|
|
+ <el-input :disabled="method==='view'" v-model="scope.row.projectName" @focus="openProgramPageForm3(scope.$rowIndex, scope.row)"></el-input>
|
|
|
+ </template>
|
|
|
+ </vxe-table-column>
|
|
|
+ <vxe-table-column field="reimbursementType"
|
|
|
+ :edit-render="{name: '$select', options: $dictUtils.getDictList('reimbursement_type')}"
|
|
|
+ title="报销项" show-overflow="title"
|
|
|
+ :rules="[{required: true, message:'请选择报销项', trigger:'blur'}]">
|
|
|
+ <template #edit="scope">
|
|
|
+ <vxe-select :disabled="method==='view'" v-model="scope.row.reimbursementType" placeholder="请选择"
|
|
|
+ style="width:100%;" clearable transfer>
|
|
|
+ <vxe-option
|
|
|
+ v-for="item in $dictUtils.getDictList('reimbursement_type')"
|
|
|
+ :key="item.value"
|
|
|
+ :label="item.label"
|
|
|
+ :value="item.value">
|
|
|
+ </vxe-option>
|
|
|
+ </vxe-select>
|
|
|
</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>
|
|
|
+ <el-input :disabled="method==='view'" :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>
|
|
|
+ <el-input :disabled="method==='view'" 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>
|
|
|
+ <el-input :disabled="method==='view'" 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>
|
|
|
+ <el-input :disabled="method==='view'" 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>
|
|
|
+ <el-input :disabled="method==='view'" 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,'report_detail')">删除</el-button>
|
|
|
+ <vxe-table-column title="操作" width="150">
|
|
|
+ <template v-slot="scope">
|
|
|
+ <div style="float: left;text-align: center">
|
|
|
+ <el-upload ref="upload" action=""
|
|
|
+ :limit="1" :http-request="httpRequest"
|
|
|
+ multiple
|
|
|
+ :on-exceed="(files, fileList) =>{
|
|
|
+ $message.warning(`只能选择 1 个文件,本次选择了 ${files.length} 个文件,共选择了 ${files.length + fileList.length} 个文件`)
|
|
|
+ }"
|
|
|
+ :show-file-list="false"
|
|
|
+ :on-change="(file,fileLists) => changes(file,fileLists, scope.row,scope.$rowIndex,'report_detail')"
|
|
|
+ :on-progress="uploadVideoProcess"
|
|
|
+ :file-list="fileList">
|
|
|
+ <el-button style="width: 50px;"
|
|
|
+ v-if="scope.row.reimbursementType === '1' && commonJS.isEmpty(scope.row.fileName)"
|
|
|
+ :loading="loading" type="primary" size="small"> 添加附件
|
|
|
+ </el-button>
|
|
|
+ </el-upload>
|
|
|
+ </div>
|
|
|
+ <div style="float: left;margin-left: 1em;text-align: center">
|
|
|
+ <el-button
|
|
|
+ v-if="scope.row.reimbursementType === '1' && commonJS.isNotEmpty(scope.row.fileName)"
|
|
|
+ key="01" type="primary" size="small" @click="toHref(scope.row.file)">下载
|
|
|
+ </el-button>
|
|
|
+ </div>
|
|
|
+ <div style="float: left;margin-left: 1em;text-align: center">
|
|
|
+ <el-button :disabled="method==='view'" size="small" type="danger"
|
|
|
+ @click="removeEvent(scope.row,scope.$rowIndex,'report_detail')">删除
|
|
|
+ </el-button>
|
|
|
+ </div>
|
|
|
</template>
|
|
|
</vxe-table-column>
|
|
|
</vxe-table>
|
|
@@ -378,7 +466,7 @@
|
|
|
>
|
|
|
<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>
|
|
|
+ <el-input :disabled="method==='view'" 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>
|
|
@@ -389,12 +477,28 @@
|
|
|
</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>
|
|
|
+ <el-input :disabled="method==='view'" 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>
|
|
|
+ <el-input :disabled="method==='view'" v-model="scope.row.projectName" @focus="openProgramPageForm4(scope.$rowIndex, scope.row)"></el-input>
|
|
|
+ </template>
|
|
|
+ </vxe-table-column>
|
|
|
+ <vxe-table-column field="reimbursementType"
|
|
|
+ :edit-render="{name: '$select', options: $dictUtils.getDictList('reimbursement_type')}"
|
|
|
+ title="报销项" show-overflow="title"
|
|
|
+ :rules="[{required: true, message:'请选择报销项', trigger:'blur'}]">
|
|
|
+ <template #edit="scope">
|
|
|
+ <vxe-select :disabled="method==='view'" v-model="scope.row.reimbursementType" placeholder="请选择"
|
|
|
+ style="width:100%;" clearable transfer>
|
|
|
+ <vxe-option
|
|
|
+ v-for="item in $dictUtils.getDictList('reimbursement_type')"
|
|
|
+ :key="item.value"
|
|
|
+ :label="item.label"
|
|
|
+ :value="item.value">
|
|
|
+ </vxe-option>
|
|
|
+ </vxe-select>
|
|
|
</template>
|
|
|
</vxe-table-column>
|
|
|
<!-- <vxe-table-column field="reportNumber" title="报告号" :edit-render="{}">-->
|
|
@@ -404,27 +508,54 @@
|
|
|
<!-- </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>
|
|
|
+ <el-input :disabled="method==='view'" 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>
|
|
|
+ <el-input :disabled="method==='view'" 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>
|
|
|
+ <el-input :disabled="method==='view'" 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>
|
|
|
+ <el-input :disabled="method==='view'" 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,'others')">删除</el-button>
|
|
|
+ <vxe-table-column title="操作" width="150">
|
|
|
+ <template v-slot="scope">
|
|
|
+ <div style="float: left;text-align: center">
|
|
|
+ <el-upload ref="upload" action=""
|
|
|
+ :limit="1" :http-request="httpRequest"
|
|
|
+ multiple
|
|
|
+ :on-exceed="(files, fileList) =>{
|
|
|
+ $message.warning(`只能选择 1 个文件,本次选择了 ${files.length} 个文件,共选择了 ${files.length + fileList.length} 个文件`)
|
|
|
+ }"
|
|
|
+ :show-file-list="false"
|
|
|
+ :on-change="(file,fileLists) => changes(file,fileLists, scope.row,scope.$rowIndex,'others')"
|
|
|
+ :on-progress="uploadVideoProcess"
|
|
|
+ :file-list="fileList">
|
|
|
+ <el-button style="width: 50px;"
|
|
|
+ v-if="scope.row.reimbursementType === '1' && commonJS.isEmpty(scope.row.fileName)"
|
|
|
+ :loading="loading" type="primary" size="small"> 添加附件
|
|
|
+ </el-button>
|
|
|
+ </el-upload>
|
|
|
+ </div>
|
|
|
+ <div style="float: left;margin-left: 1em;text-align: center">
|
|
|
+ <el-button
|
|
|
+ v-if="scope.row.reimbursementType === '1' && commonJS.isNotEmpty(scope.row.fileName)"
|
|
|
+ key="01" type="primary" size="small" @click="toHref(scope.row.file)">下载
|
|
|
+ </el-button>
|
|
|
+ </div>
|
|
|
+ <div style="float: left;margin-left: 1em;text-align: center">
|
|
|
+ <el-button :disabled="method==='view'" size="small" type="danger"
|
|
|
+ @click="removeEvent(scope.row,scope.$rowIndex,'others')">删除
|
|
|
+ </el-button>
|
|
|
+ </div>
|
|
|
</template>
|
|
|
</vxe-table-column>
|
|
|
</vxe-table>
|
|
@@ -577,7 +708,7 @@
|
|
|
</el-row>
|
|
|
</div>
|
|
|
|
|
|
- <div v-if="inputForm.reimbursementType === '0'">
|
|
|
+ <div >
|
|
|
<el-divider content-position="left"><i class="el-icon-document"></i>
|
|
|
专用发票信息
|
|
|
<el-button style="margin-left: 20px" type="primary" size="small" :disabled="method==='view'" @click="insertEvent('amount')" plain>
|
|
@@ -631,7 +762,7 @@
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
</div>
|
|
|
- <div v-if="inputForm.reimbursementType === '1'">
|
|
|
+ <div >
|
|
|
<el-divider content-position="left"><i class="el-icon-document"></i>
|
|
|
<span style="color: red;border-top: 20px">* </span>数电发票信息
|
|
|
<!--<el-button style="margin-left: 20px" type="primary" :disabled="method==='view' || status === 'audit' || status === 'taskFormDetail' " size="default" @click="insertEvent('invoiceReimbursement')" plain>
|
|
@@ -720,7 +851,7 @@
|
|
|
|
|
|
</el-form>
|
|
|
<!-- 附件 -->
|
|
|
- <InvoiceReimbursementUpLoadComponent ref="invoiceReimbursementUpLoadComponent" v-show="'1' === this.inputForm.reimbursementType"></InvoiceReimbursementUpLoadComponent>
|
|
|
+ <InvoiceReimbursementUpLoadComponent ref="invoiceReimbursementUpLoadComponent" ></InvoiceReimbursementUpLoadComponent>
|
|
|
<UpLoadComponent ref="uploadComponent"></UpLoadComponent>
|
|
|
<template #footer>
|
|
|
<span class="dialog-footer">
|
|
@@ -738,6 +869,19 @@
|
|
|
import UpLoadComponent from '@/views/common/UpLoadComponent'
|
|
|
import InvoiceReimbursementUpLoadComponent from '@/views/common/InvoiceReimbursementUpLoadComponent'
|
|
|
import XEUtils from 'xe-utils'
|
|
|
+ import OSSSerivce, {
|
|
|
+ httpRequest,
|
|
|
+ // eslint-disable-next-line no-unused-vars
|
|
|
+ handleRemove,
|
|
|
+ fileName,
|
|
|
+ // eslint-disable-next-line no-unused-vars
|
|
|
+ beforeAvatarUpload,
|
|
|
+ exnameFix,
|
|
|
+ // eslint-disable-next-line no-unused-vars
|
|
|
+ openWindowOnUrl,
|
|
|
+ // eslint-disable-next-line no-unused-vars
|
|
|
+ toHref
|
|
|
+ } from '@/api/sys/OSSService'
|
|
|
// import MaterialManagementService from '@/api/materialManagement/MaterialManagementService'
|
|
|
// import MaterialManagementDialog from '../../../materialManagement/file/MaterialManagementDialog'
|
|
|
export default {
|
|
@@ -749,7 +893,7 @@
|
|
|
loading: false,
|
|
|
humanKeyProcured: '',
|
|
|
inputForm: {
|
|
|
- reimbursementType: '0',
|
|
|
+ reimbursementType: '',
|
|
|
userName: '',
|
|
|
no: '',
|
|
|
department: '',
|
|
@@ -792,7 +936,7 @@
|
|
|
init (method, id) {
|
|
|
this.method = method
|
|
|
this.inputForm = {
|
|
|
- reimbursementType: '0',
|
|
|
+ reimbursementType: '',
|
|
|
userName: '',
|
|
|
no: '',
|
|
|
department: '',
|
|
@@ -860,8 +1004,41 @@
|
|
|
if (this.commonJS.isEmpty(this.inputForm.files)) {
|
|
|
this.inputForm.files = []
|
|
|
}
|
|
|
- if (this.commonJS.isEmpty(this.inputForm.reimbursementType)) {
|
|
|
- this.inputForm.reimbursementType = '0'
|
|
|
+ // if (this.commonJS.isEmpty(this.inputForm.reimbursementType)) {
|
|
|
+ // this.inputForm.reimbursementType = '0'
|
|
|
+ // }
|
|
|
+ if (this.commonJS.isNotEmpty(this.inputForm.invoiceReimbursementFiles)&&this.commonJS.isNotEmpty(this.inputForm.detailInfos)){
|
|
|
+ let files=this.inputForm.invoiceReimbursementFiles
|
|
|
+ let infos=this.inputForm.detailInfos
|
|
|
+ for (let i = 0; i < infos.length; i++) {
|
|
|
+ for (let j = 0; j < files.length; j++) {
|
|
|
+ if (infos[i].fileName === files[j].name){
|
|
|
+ infos[i].file=files[j]
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (this.commonJS.isNotEmpty(this.inputForm.invoiceReimbursementFiles)&&this.commonJS.isNotEmpty(this.inputForm.detailInfoReports)){
|
|
|
+ let files=this.inputForm.invoiceReimbursementFiles
|
|
|
+ let infos=this.inputForm.detailInfoReports
|
|
|
+ for (let i = 0; i < infos.length; i++) {
|
|
|
+ for (let j = 0; j < files.length; j++) {
|
|
|
+ if (infos[i].fileName === files[j].name){
|
|
|
+ infos[i].file=files[j]
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (this.commonJS.isNotEmpty(this.inputForm.invoiceReimbursementFiles)&&this.commonJS.isNotEmpty(this.inputForm.detailInfoOthers)){
|
|
|
+ let files=this.inputForm.invoiceReimbursementFiles
|
|
|
+ let infos=this.inputForm.detailInfoOthers
|
|
|
+ for (let i = 0; i < infos.length; i++) {
|
|
|
+ for (let j = 0; j < files.length; j++) {
|
|
|
+ if (infos[i].fileName === files[j].name){
|
|
|
+ infos[i].file=files[j]
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
this.$refs.invoiceReimbursementUpLoadComponent.newUpload(method, this.inputForm.invoiceReimbursementFiles, 'reimbursement',300,'电子发票附件')
|
|
|
this.$refs.uploadComponent.newUpload(method, this.inputForm.files, 'reimbursement')
|
|
@@ -1016,6 +1193,16 @@
|
|
|
]
|
|
|
return footerData
|
|
|
},
|
|
|
+ toHref(file) {
|
|
|
+ console.log('file', file)
|
|
|
+ let att=''
|
|
|
+ if (this.commonJS.isEmpty(file.raw)){
|
|
|
+ att=file
|
|
|
+ }else {
|
|
|
+ att=file.raw
|
|
|
+ }
|
|
|
+ toHref(att)
|
|
|
+ },
|
|
|
}
|
|
|
}
|
|
|
</script>
|