|
@@ -12,8 +12,7 @@
|
|
|
<el-col :span="8">
|
|
<el-col :span="8">
|
|
|
<el-form-item label="保险公司">
|
|
<el-form-item label="保险公司">
|
|
|
<el-select v-model="receivableForm.companyId" placeholder="请选择" clearable filterable>
|
|
<el-select v-model="receivableForm.companyId" placeholder="请选择" clearable filterable>
|
|
|
- <el-option v-for="item in companyList" :key="item.id" :value="item.id"
|
|
|
|
|
- :label="item.name"></el-option>
|
|
|
|
|
|
|
+ <el-option v-for="item in companyList" :key="item.id" :value="item.id" :label="item.name"></el-option>
|
|
|
</el-select>
|
|
</el-select>
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
</el-col>
|
|
</el-col>
|
|
@@ -146,11 +145,12 @@
|
|
|
</el-dropdown>
|
|
</el-dropdown>
|
|
|
</span>
|
|
</span>
|
|
|
<span class="col-108 m-r-8">
|
|
<span class="col-108 m-r-8">
|
|
|
- 已选: <span class="text-red">{{selectedList.length}}</span> 条
|
|
|
|
|
|
|
+ 已选: <span class="text-red">{{ selectedList.length }}</span> 条
|
|
|
</span>
|
|
</span>
|
|
|
</el-row>
|
|
</el-row>
|
|
|
- <el-table :data="receiveData" :height="isTrue?'calc(100% - 396px)':'calc(100% - 296px)'" style="width: 100%; margin-top: 20px;" ref="ReceiveDataRef1"
|
|
|
|
|
- @select="handleSelectChange1" @select-all="handleSelectAll1">
|
|
|
|
|
|
|
+ <el-table :data="receiveData" :height="isTrue ? 'calc(100% - 396px)' : 'calc(100% - 296px)'"
|
|
|
|
|
+ style="width: 100%; margin-top: 20px;" ref="ReceiveDataRef1" @select="handleSelectChange1"
|
|
|
|
|
+ @select-all="handleSelectAll1">
|
|
|
<el-table-column type="selection" width="80"></el-table-column>
|
|
<el-table-column type="selection" width="80"></el-table-column>
|
|
|
<el-table-column prop="signingTime" label="签单时间" width="150"></el-table-column>
|
|
<el-table-column prop="signingTime" label="签单时间" width="150"></el-table-column>
|
|
|
<el-table-column prop="orderNo" label="订单号" width="150"></el-table-column>
|
|
<el-table-column prop="orderNo" label="订单号" width="150"></el-table-column>
|
|
@@ -324,11 +324,12 @@
|
|
|
<el-button class="radius-2px width-100" @click="handleBatchEdit">批量修改比例</el-button>
|
|
<el-button class="radius-2px width-100" @click="handleBatchEdit">批量修改比例</el-button>
|
|
|
</span>
|
|
</span>
|
|
|
<span class="col-108 m-r-8">
|
|
<span class="col-108 m-r-8">
|
|
|
- 已选: <span class="text-red">{{selectedList.length}}</span> 条
|
|
|
|
|
|
|
+ 已选: <span class="text-red">{{ selectedList.length }}</span> 条
|
|
|
</span>
|
|
</span>
|
|
|
</el-row>
|
|
</el-row>
|
|
|
- <el-table :data="receiveData" :height="isTrue?'calc(100% - 396px)':'calc(100% - 296px)'" style="width: 100%; margin-top: 20px;" ref="ReceiveDataRef2"
|
|
|
|
|
- @select="handleSelectChange2" @select-all="handleSelectAll2">
|
|
|
|
|
|
|
+ <el-table :data="receiveData" :height="isTrue ? 'calc(100% - 396px)' : 'calc(100% - 296px)'"
|
|
|
|
|
+ style="width: 100%; margin-top: 20px;" ref="ReceiveDataRef2" @select="handleSelectChange2"
|
|
|
|
|
+ @select-all="handleSelectAll2">
|
|
|
<el-table-column type="selection" width="80"></el-table-column>
|
|
<el-table-column type="selection" width="80"></el-table-column>
|
|
|
<el-table-column prop="signingTime" label="签单时间" width="150"></el-table-column>
|
|
<el-table-column prop="signingTime" label="签单时间" width="150"></el-table-column>
|
|
|
<el-table-column prop="orderNo" label="订单号" width="150"></el-table-column>
|
|
<el-table-column prop="orderNo" label="订单号" width="150"></el-table-column>
|
|
@@ -352,7 +353,7 @@
|
|
|
<el-table-column label="操作" width="180" fixed="right">
|
|
<el-table-column label="操作" width="180" fixed="right">
|
|
|
<template #default="scope">
|
|
<template #default="scope">
|
|
|
<div style="display: flex; align-items: center; justify-content: center">
|
|
<div style="display: flex; align-items: center; justify-content: center">
|
|
|
- <el-button link type="primary" @click="toDelete([scope.row.id])">删除</el-button>
|
|
|
|
|
|
|
+ <el-button link type="primary" @click="toDelete([scope.row.id])">删除</el-button>
|
|
|
<el-button link type="primary" @click="toEdit(scope.row)">编辑</el-button>
|
|
<el-button link type="primary" @click="toEdit(scope.row)">编辑</el-button>
|
|
|
<el-dropdown trigger="click" placement="bottom" @command="dropdownCommand">
|
|
<el-dropdown trigger="click" placement="bottom" @command="dropdownCommand">
|
|
|
<el-button link type="primary">
|
|
<el-button link type="primary">
|
|
@@ -503,7 +504,7 @@
|
|
|
<template #label>导入修改</template>
|
|
<template #label>导入修改</template>
|
|
|
<div style="display: flex; align-items: center; justify-content: center; margin-bottom: 10px">
|
|
<div style="display: flex; align-items: center; justify-content: center; margin-bottom: 10px">
|
|
|
下载「标准导入模板」,编辑后上传;系统将自动匹配相关字段
|
|
下载「标准导入模板」,编辑后上传;系统将自动匹配相关字段
|
|
|
- <el-button link type="primary">下载模板</el-button>
|
|
|
|
|
|
|
+ <el-button link type="primary" @click="downloadImportTemplate">下载模板</el-button>
|
|
|
</div>
|
|
</div>
|
|
|
<el-upload class="upload-demo" drag accept=".xls, .xlsx" :auto-upload="false" @change="uploadJYFile">
|
|
<el-upload class="upload-demo" drag accept=".xls, .xlsx" :auto-upload="false" @change="uploadJYFile">
|
|
|
<el-icon class="el-icon--upload"><upload-filled /></el-icon>
|
|
<el-icon class="el-icon--upload"><upload-filled /></el-icon>
|
|
@@ -512,6 +513,17 @@
|
|
|
</div>
|
|
</div>
|
|
|
<a style="color: #999; font-size: 12px">目前支持的文件类型为*.xls, *.xlsx</a>
|
|
<a style="color: #999; font-size: 12px">目前支持的文件类型为*.xls, *.xlsx</a>
|
|
|
</el-upload>
|
|
</el-upload>
|
|
|
|
|
+ <div v-if="importModifyCallback">
|
|
|
|
|
+ <div>
|
|
|
|
|
+ 您将导入 <span style="color:#409eff;">{{ importModifyCallback?.failedNumber +
|
|
|
|
|
+ importModifyCallback?.successNumber
|
|
|
|
|
+ ||
|
|
|
|
|
+ 0 }}
|
|
|
|
|
+ </span> 条数据,其中 <span style="color:#409eff;">{{ importModifyCallback?.successNumber || 0 }} </span>
|
|
|
|
|
+ 条正常导入;<span style="color: red;">{{ importModifyCallback?.failedNumber || 0 }}</span> 条不符合要求无法导入。
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <el-button type="primary" link @click="downloadImportFailedData(importModifyCallback)">下载导入失败文件</el-button>
|
|
|
|
|
+ </div>
|
|
|
</el-tab-pane>
|
|
</el-tab-pane>
|
|
|
</el-tabs>
|
|
</el-tabs>
|
|
|
<template #footer>
|
|
<template #footer>
|
|
@@ -525,7 +537,7 @@
|
|
|
<script setup lang="ts">
|
|
<script setup lang="ts">
|
|
|
import api from '@/api'
|
|
import api from '@/api'
|
|
|
|
|
|
|
|
-import { ElMessage,ElMessageBox } from "element-plus";
|
|
|
|
|
|
|
+import { ElMessage, ElMessageBox } from "element-plus";
|
|
|
import { useRouter } from 'vue-router'
|
|
import { useRouter } from 'vue-router'
|
|
|
|
|
|
|
|
let myRouter = useRouter()
|
|
let myRouter = useRouter()
|
|
@@ -630,7 +642,7 @@ const handleInvoice = () => {
|
|
|
})
|
|
})
|
|
|
return
|
|
return
|
|
|
}
|
|
}
|
|
|
- if(selectedList.value.some((item:any) => item.invoiceStatusName == '已开票')) {
|
|
|
|
|
|
|
+ if (selectedList.value.some((item: any) => item.invoiceStatusName == '已开票')) {
|
|
|
ElMessage({
|
|
ElMessage({
|
|
|
message: '存在已开票数据,不能开票!',
|
|
message: '存在已开票数据,不能开票!',
|
|
|
type: 'warning'
|
|
type: 'warning'
|
|
@@ -811,12 +823,12 @@ let signTime = ref(null)
|
|
|
let people = ref(null)
|
|
let people = ref(null)
|
|
|
let editForm = ref({})
|
|
let editForm = ref({})
|
|
|
const handleBatchEdit = () => {
|
|
const handleBatchEdit = () => {
|
|
|
- if(selectedList.value.length<1) {
|
|
|
|
|
- ElMessage({
|
|
|
|
|
- message: '请选择数据!',
|
|
|
|
|
- type: 'warning'
|
|
|
|
|
- })
|
|
|
|
|
- return
|
|
|
|
|
|
|
+ if (selectedList.value.length < 1) {
|
|
|
|
|
+ ElMessage({
|
|
|
|
|
+ message: '请选择数据!',
|
|
|
|
|
+ type: 'warning'
|
|
|
|
|
+ })
|
|
|
|
|
+ return
|
|
|
}
|
|
}
|
|
|
editForm.value = {}
|
|
editForm.value = {}
|
|
|
batchEditShow.value = true
|
|
batchEditShow.value = true
|
|
@@ -837,20 +849,68 @@ const handleBatchEditSubmit = async () => {
|
|
|
batchEditShow.value = false
|
|
batchEditShow.value = false
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
|
|
+ const downloadImportTemplate = () => {
|
|
|
|
|
+ let params = {
|
|
|
|
|
+ licenseNo: receivableForm.value?.licenseNo,
|
|
|
|
|
+ typeAttr: receivableForm.value?.typeAttr,
|
|
|
|
|
+ companyId: receivableForm.value?.companyId,
|
|
|
|
|
+ signingStartTime: receivableForm.value?.signingTime?.[0],
|
|
|
|
|
+ signingEndTime: receivableForm.value?.signingTime?.[1],
|
|
|
|
|
+ orderNo: receivableForm.value?.orderNo,
|
|
|
|
|
+ agreementId: receivableForm.value?.agreementId,
|
|
|
|
|
+ deptId: receivableForm.value?.deptId,
|
|
|
|
|
+ riskCode: receivableForm.value?.riskCode,
|
|
|
|
|
+ orderType: receivableForm.value?.orderType,
|
|
|
|
|
+ insuredName: receivableForm.value?.insuredName,
|
|
|
|
|
+ jqPolicyNo: receivableForm.value?.jqPolicyNo,
|
|
|
|
|
+ syPolicyNo: receivableForm.value?.syPolicyNo,
|
|
|
|
|
+ dockingPerson: receivableForm.value?.dockingPerson,
|
|
|
|
|
+ jqStartDate: receivableForm.value?.jqDate?.[0],
|
|
|
|
|
+ jqEndDate: receivableForm.value?.jqDate?.[1],
|
|
|
|
|
+ syStartDate: receivableForm.value?.syDate?.[0],
|
|
|
|
|
+ syEndDate: receivableForm.value?.syDate?.[1],
|
|
|
|
|
+ }
|
|
|
|
|
+ api.financeApi.exportTemplateReceivableList(params).then((res: any) => {
|
|
|
|
|
+ if (res.code == 200) {
|
|
|
|
|
+ const link = document.createElement('a');
|
|
|
|
|
+ link.href = res.msg;
|
|
|
|
|
+ link.download = '';
|
|
|
|
|
+ // 触发下载
|
|
|
|
|
+ document.body.appendChild(link);
|
|
|
|
|
+ link.click();
|
|
|
|
|
+ document.body.removeChild(link);
|
|
|
|
|
+ } else {
|
|
|
|
|
+ ElMessage({
|
|
|
|
|
+ message: res.msg,
|
|
|
|
|
+ type: 'warning'
|
|
|
|
|
+ })
|
|
|
|
|
+ }
|
|
|
|
|
+ })
|
|
|
|
|
+}
|
|
|
|
|
+let importModifyCallback = ref()// 导入数据回调
|
|
|
const uploadJYFile = async (file) => {
|
|
const uploadJYFile = async (file) => {
|
|
|
let files = file.raw
|
|
let files = file.raw
|
|
|
const params = new FormData(); // 声明formData数据类型
|
|
const params = new FormData(); // 声明formData数据类型
|
|
|
params.append("file", files);
|
|
params.append("file", files);
|
|
|
- const { code, data, msg } = await api.financeApi.importJyExcel(params)
|
|
|
|
|
|
|
+ const { code, data, msg } = await api.financeApi.importReceivableListUpdate(params)
|
|
|
if (code == 200) {
|
|
if (code == 200) {
|
|
|
|
|
+ importModifyCallback.value = data
|
|
|
ElMessage({
|
|
ElMessage({
|
|
|
message: msg,
|
|
message: msg,
|
|
|
type: 'success'
|
|
type: 'success'
|
|
|
})
|
|
})
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
|
|
+// 下载导入失败文件
|
|
|
|
|
+const downloadImportFailedData = (item) => {
|
|
|
|
|
+ const link = document.createElement('a');
|
|
|
|
|
+ link.href = item.failFileUrl;
|
|
|
|
|
+ link.download = '';
|
|
|
|
|
+ // 触发下载
|
|
|
|
|
+ document.body.appendChild(link);
|
|
|
|
|
+ link.click();
|
|
|
|
|
+ document.body.removeChild(link);
|
|
|
|
|
+}
|
|
|
// 获取险种
|
|
// 获取险种
|
|
|
let insuranceType = ref([])
|
|
let insuranceType = ref([])
|
|
|
const dictDetails = () => {
|
|
const dictDetails = () => {
|