制作非车渗透的上传报表。

This commit is contained in:
Kane Wang 2023-10-17 17:44:14 +08:00
parent 0ad42d00a9
commit 0caf428d67
12 changed files with 491 additions and 66 deletions

View File

@ -21,7 +21,7 @@
"devDependencies": { "devDependencies": {
"@babel/eslint-parser": "^7.22.15", "@babel/eslint-parser": "^7.22.15",
"@rushstack/eslint-patch": "^1.5.1", "@rushstack/eslint-patch": "^1.5.1",
"@typescript-eslint/eslint-plugin": "^6.7.5", "@typescript-eslint/eslint-plugin": "^6.8.0",
"@vitejs/plugin-vue": "^4.4.0", "@vitejs/plugin-vue": "^4.4.0",
"@vue/cli-plugin-eslint": "^5.0.8", "@vue/cli-plugin-eslint": "^5.0.8",
"@vue/eslint-config-typescript": "^12.0.0", "@vue/eslint-config-typescript": "^12.0.0",
@ -1578,16 +1578,16 @@
} }
}, },
"node_modules/@typescript-eslint/eslint-plugin": { "node_modules/@typescript-eslint/eslint-plugin": {
"version": "6.7.5", "version": "6.8.0",
"resolved": "https://registry.npmmirror.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.7.5.tgz", "resolved": "https://registry.npmmirror.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.8.0.tgz",
"integrity": "sha512-JhtAwTRhOUcP96D0Y6KYnwig/MRQbOoLGXTON2+LlyB/N35SP9j1boai2zzwXb7ypKELXMx3DVk9UTaEq1vHEw==", "integrity": "sha512-GosF4238Tkes2SHPQ1i8f6rMtG6zlKwMEB0abqSJ3Npvos+doIlc/ATG+vX1G9coDF3Ex78zM3heXHLyWEwLUw==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@eslint-community/regexpp": "^4.5.1", "@eslint-community/regexpp": "^4.5.1",
"@typescript-eslint/scope-manager": "6.7.5", "@typescript-eslint/scope-manager": "6.8.0",
"@typescript-eslint/type-utils": "6.7.5", "@typescript-eslint/type-utils": "6.8.0",
"@typescript-eslint/utils": "6.7.5", "@typescript-eslint/utils": "6.8.0",
"@typescript-eslint/visitor-keys": "6.7.5", "@typescript-eslint/visitor-keys": "6.8.0",
"debug": "^4.3.4", "debug": "^4.3.4",
"graphemer": "^1.4.0", "graphemer": "^1.4.0",
"ignore": "^5.2.4", "ignore": "^5.2.4",
@ -1609,34 +1609,34 @@
} }
}, },
"node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/scope-manager": { "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/scope-manager": {
"version": "6.7.5", "version": "6.8.0",
"resolved": "https://registry.npmmirror.com/@typescript-eslint/scope-manager/-/scope-manager-6.7.5.tgz", "resolved": "https://registry.npmmirror.com/@typescript-eslint/scope-manager/-/scope-manager-6.8.0.tgz",
"integrity": "sha512-GAlk3eQIwWOJeb9F7MKQ6Jbah/vx1zETSDw8likab/eFcqkjSD7BI75SDAeC5N2L0MmConMoPvTsmkrg71+B1A==", "integrity": "sha512-xe0HNBVwCph7rak+ZHcFD6A+q50SMsFwcmfdjs9Kz4qDh5hWhaPhFjRs/SODEhroBI5Ruyvyz9LfwUJ624O40g==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@typescript-eslint/types": "6.7.5", "@typescript-eslint/types": "6.8.0",
"@typescript-eslint/visitor-keys": "6.7.5" "@typescript-eslint/visitor-keys": "6.8.0"
}, },
"engines": { "engines": {
"node": "^16.0.0 || >=18.0.0" "node": "^16.0.0 || >=18.0.0"
} }
}, },
"node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/types": { "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/types": {
"version": "6.7.5", "version": "6.8.0",
"resolved": "https://registry.npmmirror.com/@typescript-eslint/types/-/types-6.7.5.tgz", "resolved": "https://registry.npmmirror.com/@typescript-eslint/types/-/types-6.8.0.tgz",
"integrity": "sha512-WboQBlOXtdj1tDFPyIthpKrUb+kZf2VroLZhxKa/VlwLlLyqv/PwUNgL30BlTVZV1Wu4Asu2mMYPqarSO4L5ZQ==", "integrity": "sha512-p5qOxSum7W3k+llc7owEStXlGmSl8FcGvhYt8Vjy7FqEnmkCVlM3P57XQEGj58oqaBWDQXbJDZxwUWMS/EAPNQ==",
"dev": true, "dev": true,
"engines": { "engines": {
"node": "^16.0.0 || >=18.0.0" "node": "^16.0.0 || >=18.0.0"
} }
}, },
"node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/visitor-keys": { "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/visitor-keys": {
"version": "6.7.5", "version": "6.8.0",
"resolved": "https://registry.npmmirror.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.7.5.tgz", "resolved": "https://registry.npmmirror.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.8.0.tgz",
"integrity": "sha512-3MaWdDZtLlsexZzDSdQWsFQ9l9nL8B80Z4fImSpyllFC/KLqWQRdEcB+gGGO+N3Q2uL40EsG66wZLsohPxNXvg==", "integrity": "sha512-oqAnbA7c+pgOhW2OhGvxm0t1BULX5peQI/rLsNDpGM78EebV3C9IGbX5HNZabuZ6UQrYveCLjKo8Iy/lLlBkkg==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@typescript-eslint/types": "6.7.5", "@typescript-eslint/types": "6.8.0",
"eslint-visitor-keys": "^3.4.1" "eslint-visitor-keys": "^3.4.1"
}, },
"engines": { "engines": {
@ -1723,13 +1723,13 @@
} }
}, },
"node_modules/@typescript-eslint/type-utils": { "node_modules/@typescript-eslint/type-utils": {
"version": "6.7.5", "version": "6.8.0",
"resolved": "https://registry.npmmirror.com/@typescript-eslint/type-utils/-/type-utils-6.7.5.tgz", "resolved": "https://registry.npmmirror.com/@typescript-eslint/type-utils/-/type-utils-6.8.0.tgz",
"integrity": "sha512-Gs0qos5wqxnQrvpYv+pf3XfcRXW6jiAn9zE/K+DlmYf6FcpxeNYN0AIETaPR7rHO4K2UY+D0CIbDP9Ut0U4m1g==", "integrity": "sha512-RYOJdlkTJIXW7GSldUIHqc/Hkto8E+fZN96dMIFhuTJcQwdRoGN2rEWA8U6oXbLo0qufH7NPElUb+MceHtz54g==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@typescript-eslint/typescript-estree": "6.7.5", "@typescript-eslint/typescript-estree": "6.8.0",
"@typescript-eslint/utils": "6.7.5", "@typescript-eslint/utils": "6.8.0",
"debug": "^4.3.4", "debug": "^4.3.4",
"ts-api-utils": "^1.0.1" "ts-api-utils": "^1.0.1"
}, },
@ -1746,22 +1746,22 @@
} }
}, },
"node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/types": { "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/types": {
"version": "6.7.5", "version": "6.8.0",
"resolved": "https://registry.npmmirror.com/@typescript-eslint/types/-/types-6.7.5.tgz", "resolved": "https://registry.npmmirror.com/@typescript-eslint/types/-/types-6.8.0.tgz",
"integrity": "sha512-WboQBlOXtdj1tDFPyIthpKrUb+kZf2VroLZhxKa/VlwLlLyqv/PwUNgL30BlTVZV1Wu4Asu2mMYPqarSO4L5ZQ==", "integrity": "sha512-p5qOxSum7W3k+llc7owEStXlGmSl8FcGvhYt8Vjy7FqEnmkCVlM3P57XQEGj58oqaBWDQXbJDZxwUWMS/EAPNQ==",
"dev": true, "dev": true,
"engines": { "engines": {
"node": "^16.0.0 || >=18.0.0" "node": "^16.0.0 || >=18.0.0"
} }
}, },
"node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/typescript-estree": { "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/typescript-estree": {
"version": "6.7.5", "version": "6.8.0",
"resolved": "https://registry.npmmirror.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.7.5.tgz", "resolved": "https://registry.npmmirror.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.8.0.tgz",
"integrity": "sha512-NhJiJ4KdtwBIxrKl0BqG1Ur+uw7FiOnOThcYx9DpOGJ/Abc9z2xNzLeirCG02Ig3vkvrc2qFLmYSSsaITbKjlg==", "integrity": "sha512-ISgV0lQ8XgW+mvv5My/+iTUdRmGspducmQcDw5JxznasXNnZn3SKNrTRuMsEXv+V/O+Lw9AGcQCfVaOPCAk/Zg==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@typescript-eslint/types": "6.7.5", "@typescript-eslint/types": "6.8.0",
"@typescript-eslint/visitor-keys": "6.7.5", "@typescript-eslint/visitor-keys": "6.8.0",
"debug": "^4.3.4", "debug": "^4.3.4",
"globby": "^11.1.0", "globby": "^11.1.0",
"is-glob": "^4.0.3", "is-glob": "^4.0.3",
@ -1778,12 +1778,12 @@
} }
}, },
"node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/visitor-keys": { "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/visitor-keys": {
"version": "6.7.5", "version": "6.8.0",
"resolved": "https://registry.npmmirror.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.7.5.tgz", "resolved": "https://registry.npmmirror.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.8.0.tgz",
"integrity": "sha512-3MaWdDZtLlsexZzDSdQWsFQ9l9nL8B80Z4fImSpyllFC/KLqWQRdEcB+gGGO+N3Q2uL40EsG66wZLsohPxNXvg==", "integrity": "sha512-oqAnbA7c+pgOhW2OhGvxm0t1BULX5peQI/rLsNDpGM78EebV3C9IGbX5HNZabuZ6UQrYveCLjKo8Iy/lLlBkkg==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@typescript-eslint/types": "6.7.5", "@typescript-eslint/types": "6.8.0",
"eslint-visitor-keys": "^3.4.1" "eslint-visitor-keys": "^3.4.1"
}, },
"engines": { "engines": {
@ -1898,17 +1898,17 @@
"dev": true "dev": true
}, },
"node_modules/@typescript-eslint/utils": { "node_modules/@typescript-eslint/utils": {
"version": "6.7.5", "version": "6.8.0",
"resolved": "https://registry.npmmirror.com/@typescript-eslint/utils/-/utils-6.7.5.tgz", "resolved": "https://registry.npmmirror.com/@typescript-eslint/utils/-/utils-6.8.0.tgz",
"integrity": "sha512-pfRRrH20thJbzPPlPc4j0UNGvH1PjPlhlCMq4Yx7EGjV7lvEeGX0U6MJYe8+SyFutWgSHsdbJ3BXzZccYggezA==", "integrity": "sha512-dKs1itdE2qFG4jr0dlYLQVppqTE+Itt7GmIf/vX6CSvsW+3ov8PbWauVKyyfNngokhIO9sKZeRGCUo1+N7U98Q==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@eslint-community/eslint-utils": "^4.4.0", "@eslint-community/eslint-utils": "^4.4.0",
"@types/json-schema": "^7.0.12", "@types/json-schema": "^7.0.12",
"@types/semver": "^7.5.0", "@types/semver": "^7.5.0",
"@typescript-eslint/scope-manager": "6.7.5", "@typescript-eslint/scope-manager": "6.8.0",
"@typescript-eslint/types": "6.7.5", "@typescript-eslint/types": "6.8.0",
"@typescript-eslint/typescript-estree": "6.7.5", "@typescript-eslint/typescript-estree": "6.8.0",
"semver": "^7.5.4" "semver": "^7.5.4"
}, },
"engines": { "engines": {
@ -1919,35 +1919,35 @@
} }
}, },
"node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/scope-manager": { "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/scope-manager": {
"version": "6.7.5", "version": "6.8.0",
"resolved": "https://registry.npmmirror.com/@typescript-eslint/scope-manager/-/scope-manager-6.7.5.tgz", "resolved": "https://registry.npmmirror.com/@typescript-eslint/scope-manager/-/scope-manager-6.8.0.tgz",
"integrity": "sha512-GAlk3eQIwWOJeb9F7MKQ6Jbah/vx1zETSDw8likab/eFcqkjSD7BI75SDAeC5N2L0MmConMoPvTsmkrg71+B1A==", "integrity": "sha512-xe0HNBVwCph7rak+ZHcFD6A+q50SMsFwcmfdjs9Kz4qDh5hWhaPhFjRs/SODEhroBI5Ruyvyz9LfwUJ624O40g==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@typescript-eslint/types": "6.7.5", "@typescript-eslint/types": "6.8.0",
"@typescript-eslint/visitor-keys": "6.7.5" "@typescript-eslint/visitor-keys": "6.8.0"
}, },
"engines": { "engines": {
"node": "^16.0.0 || >=18.0.0" "node": "^16.0.0 || >=18.0.0"
} }
}, },
"node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/types": { "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/types": {
"version": "6.7.5", "version": "6.8.0",
"resolved": "https://registry.npmmirror.com/@typescript-eslint/types/-/types-6.7.5.tgz", "resolved": "https://registry.npmmirror.com/@typescript-eslint/types/-/types-6.8.0.tgz",
"integrity": "sha512-WboQBlOXtdj1tDFPyIthpKrUb+kZf2VroLZhxKa/VlwLlLyqv/PwUNgL30BlTVZV1Wu4Asu2mMYPqarSO4L5ZQ==", "integrity": "sha512-p5qOxSum7W3k+llc7owEStXlGmSl8FcGvhYt8Vjy7FqEnmkCVlM3P57XQEGj58oqaBWDQXbJDZxwUWMS/EAPNQ==",
"dev": true, "dev": true,
"engines": { "engines": {
"node": "^16.0.0 || >=18.0.0" "node": "^16.0.0 || >=18.0.0"
} }
}, },
"node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/typescript-estree": { "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/typescript-estree": {
"version": "6.7.5", "version": "6.8.0",
"resolved": "https://registry.npmmirror.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.7.5.tgz", "resolved": "https://registry.npmmirror.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.8.0.tgz",
"integrity": "sha512-NhJiJ4KdtwBIxrKl0BqG1Ur+uw7FiOnOThcYx9DpOGJ/Abc9z2xNzLeirCG02Ig3vkvrc2qFLmYSSsaITbKjlg==", "integrity": "sha512-ISgV0lQ8XgW+mvv5My/+iTUdRmGspducmQcDw5JxznasXNnZn3SKNrTRuMsEXv+V/O+Lw9AGcQCfVaOPCAk/Zg==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@typescript-eslint/types": "6.7.5", "@typescript-eslint/types": "6.8.0",
"@typescript-eslint/visitor-keys": "6.7.5", "@typescript-eslint/visitor-keys": "6.8.0",
"debug": "^4.3.4", "debug": "^4.3.4",
"globby": "^11.1.0", "globby": "^11.1.0",
"is-glob": "^4.0.3", "is-glob": "^4.0.3",
@ -1964,12 +1964,12 @@
} }
}, },
"node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/visitor-keys": { "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/visitor-keys": {
"version": "6.7.5", "version": "6.8.0",
"resolved": "https://registry.npmmirror.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.7.5.tgz", "resolved": "https://registry.npmmirror.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.8.0.tgz",
"integrity": "sha512-3MaWdDZtLlsexZzDSdQWsFQ9l9nL8B80Z4fImSpyllFC/KLqWQRdEcB+gGGO+N3Q2uL40EsG66wZLsohPxNXvg==", "integrity": "sha512-oqAnbA7c+pgOhW2OhGvxm0t1BULX5peQI/rLsNDpGM78EebV3C9IGbX5HNZabuZ6UQrYveCLjKo8Iy/lLlBkkg==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@typescript-eslint/types": "6.7.5", "@typescript-eslint/types": "6.8.0",
"eslint-visitor-keys": "^3.4.1" "eslint-visitor-keys": "^3.4.1"
}, },
"engines": { "engines": {

View File

@ -22,7 +22,7 @@
"devDependencies": { "devDependencies": {
"@babel/eslint-parser": "^7.22.15", "@babel/eslint-parser": "^7.22.15",
"@rushstack/eslint-patch": "^1.5.1", "@rushstack/eslint-patch": "^1.5.1",
"@typescript-eslint/eslint-plugin": "^6.7.5", "@typescript-eslint/eslint-plugin": "^6.8.0",
"@vitejs/plugin-vue": "^4.4.0", "@vitejs/plugin-vue": "^4.4.0",
"@vue/cli-plugin-eslint": "^5.0.8", "@vue/cli-plugin-eslint": "^5.0.8",
"@vue/eslint-config-typescript": "^12.0.0", "@vue/eslint-config-typescript": "^12.0.0",

View File

@ -92,7 +92,7 @@ export default {
align-items: start; align-items: start;
font: { font: {
size: 0.5rem; size: 0.75rem;
} }
>*+* { >*+* {

View File

@ -0,0 +1,76 @@
/*
* @Author: Kane
* @Date: 2023-10-17 11:18:19
* @LastEditors: Kane
* @FilePath: /task_schedule/src/utils/api/BIReport.ts
* @Description: BI报表相关的代码
*
* Copyright (c) ${2023} by Kane, All Rights Reserved.
*/
import { service as instance } from "./api/request.js";
import { API_URL } from "./api/config.js";
import { type AxiosResponse } from "axios";
interface BIReportType
{
reportTypeCode: number;
reportTypeName: string;
}
interface ImportBIReportRequest
{
filePath: string,
reportType: number,
hasCaption: boolean,
sheetIndex: number,
}
interface ImportBIReportResponse
{
success: boolean,
message: string,
importedCount: number,
}
/**
*
* @param request
* @param handler
*/
function importBIReport( request: ImportBIReportRequest, handler: any ): void
{
const importResponse: ImportBIReportResponse = {
success: false,
message: "",
importedCount: 0,
};
instance.request({
url: API_URL.URL_IMPORT_REPORT,
method: "post",
data: request,
})
.then(( response: AxiosResponse<any, any> ): any =>
{
const data: ImportBIReportResponse = response.data;
importResponse.success = data.success ?? false;
importResponse.message = data.message ?? "";
importResponse.importedCount = data.importedCount ?? 0;
handler( importResponse, null );
})
.catch(( error: any ): any =>
{
importResponse.message = "请求导入报表错误,请查看控制台!";
console.log( error );
handler( importResponse, error );
});
}
export {
type BIReportType,
type ImportBIReportRequest,
type ImportBIReportResponse,
importBIReport
};

View File

@ -44,7 +44,12 @@ const API_URL = {
// 删除获奖人员 // 删除获奖人员
URL_DEL_REWARD_TELSALER: "http://10.39.0.41:8081/desktop_archievement_backend/rewards/delete_telsaler_reward.do", URL_DEL_REWARD_TELSALER: "http://10.39.0.41:8081/desktop_archievement_backend/rewards/delete_telsaler_reward.do",
// URL_ADD_REWARD_TELSALER: "http://222.76.244.118:11101/desktop_archievement_backend/rewards/delete_telsaler_reward.do", // URL_ADD_REWARD_TELSALER: "http://222.76.244.118:11101/desktop_archievement_backend/rewards/delete_telsaler_reward.do",
// 上传文件
URL_UPLOAD_FILE: "http://10.39.0.41:8081/desktop_archievement_backend/file/file-upload.do",
// URL_UPLOAD_FILE: "http://222.76.244.118:11101/desktop_archievement_backend/file/file-upload.do",
// 导入报表
URL_IMPORT_REPORT: "http://10.39.0.41:8081/desktop_archievement_backend/import_bi_data/excel.do",
// URL_IMPORT_REPORT: "http://222.76.244.118:11101/desktop_archievement_backend/import_bi_data/excel.do",
}; };
export { API_URL }; export { API_URL };

View File

@ -14,3 +14,7 @@ interface FileUploadResponse
message: string; message: string;
fileList: string[]; fileList: string[];
} }
export {
type FileUploadResponse
};

View File

@ -9,7 +9,7 @@
--> -->
<template> <template>
<div class="data_management_wrapper"> <div class="data_management_wrapper">
<div class="telsaler-dataupload-wrapper"> <!-- <div class="telsaler-dataupload-wrapper">
<el-upload <el-upload
v-model="ui.fileList" v-model="ui.fileList"
drag drag
@ -32,15 +32,27 @@
</div> </div>
</template> </template>
</el-upload> </el-upload>
</div> </div> -->
<el-tabs>
<el-tab-pane label="坐席车非渗透率">
<TelsalerAttachingRateView />
</el-tab-pane>
<el-tab-pane label="坐席续保率">
坐席车非渗透率
</el-tab-pane>
<el-tab-pane label="机构">
坐席车非渗透率
</el-tab-pane>
</el-tabs>
</div> </div>
</template> </template>
<script lang="ts"> <script lang="ts">
import { ref, reactive } from "vue"; import { ref, reactive } from "vue";
import { ElMessage, ElMessageBox, type UploadFile, type UploadFiles, type UploadProps, type UploadUserFile } from "element-plus"; import { ElMessage, ElMessageBox, type UploadFile, type UploadFiles, type UploadProps, type UploadUserFile } from "element-plus";
import TelsalerAttachingRateView from "@/views/data/bi/TelsalerAttachingRateView.vue";
export default { export default {
name: "DataManagement", name: "DataManagement",
components: { TelsalerAttachingRateView, },
setup() setup()
{ {
const ui = reactive({ const ui = reactive({

View File

@ -0,0 +1,128 @@
<!--
* @Author: Kane
* @Date: 2023-10-17 10:56:43
* @LastEditors: Kane
* @FilePath: /task_schedule/src/views/data/bi/BiDataUploadView.vue
* @Description:
*
* Copyright (c) ${2023} by Kane, All Rights Reserved.
-->
<template>
<div class="bi-dataupload-wrapper">
<div class="query-box-wrapper">
<el-row :gutter="10">
<el-col :span="4">
<span>报表类型</span>
</el-col>
<el-col :span="10">
<el-select v-model="ui.selectedReportType">
<el-option
v-for="item in ui.reportType"
:key="item.reportTypeCode"
:label="item.reportTypeName"
:value="item.reportTypeCode"
/>
</el-select>
</el-col>
<el-col :span="4">
<span>sheet编号</span>
</el-col>
<el-col :span="6">
<el-input v-model.lazy.number="ui.sheetIndex" />
</el-col>
</el-row>
<el-row :gutter="10">
<el-col :span="4">
<span>标题行</span>
</el-col>
<el-col :span="8">
<el-switch v-model="ui.hasCaption" />
</el-col>
</el-row>
</div>
<el-upload
drag
action="http://222.76.244.118:11101/desktop_archievement_backend/file/file-upload.do"
name="files"
:show-file-list="false"
:data="ui.uploadParameters"
>
<el-icon class="el-icon--upload">
<upload-filled />
</el-icon>
<div class="el-upload__text">
将文件拖到此处<em>点击上传</em>
</div>
</el-upload>
</div>
</template>
<script lang="ts">
import { reactive, ref } from "vue";
import {
type BIReportType,
type ImportBIReportRequest,
type ImportBIReportResponse,
importBIReport
} from "@/utils/BIReport.js";
import { UploadFilled } from "@element-plus/icons-vue";
interface UI
{
showUI: boolean,
selectedReportType: number,
reportType: BIReportType[],
sheetIndex: number,
hasCaption: boolean,
uploadParameters: any,
showFileList: boolean,
}
export default {
name: "BiDataUploadView",
setup()
{
const ui: UI = reactive({
showUI: false,
selectedReportType: 0,
reportType: [
{
reportTypeCode: 0,
reportTypeName: "坐席车非渗透率",
},
{
reportTypeCode: 1,
reportTypeName: "坐席续保率",
},
{
reportTypeCode: 2,
reportTypeName: "部门车非渗透率续保率",
},],
sheetIndex: 0,
hasCaption: true,
uploadParameters: {
"task-name": "1234",
},
showFileList: false,
});
return {
ui,
};
},
};
</script>
<style lang="scss" scoped>
@import "@/assets/css/public/_public.scss";
.bi-dataupload-wrapper {
// max-width: 600px;
width: 100%;
>*+* {
margin-top: 10px;
}
}
.query-box-wrapper {
@include query-box-wrap;
}
</style>

View File

@ -0,0 +1,31 @@
<!--
* @Author: Kane
* @Date: 2023-10-17 14:53:17
* @LastEditors: Kane
* @FilePath: /task_schedule/src/views/data/bi/DepartmentArchievementView.vue
* @Description:
*
* Copyright (c) ${2023} by Kane, All Rights Reserved.
-->
<template>
<div class="wrapper" />
</template>
<script lang="ts">
import { reactive } from "vue";
export default {
name: "DepartmentArchievementView",
setup()
{
const ui = reactive({
showUI: true,
});
},
};
</script>
<style lang="scss" scoped>
.wrapper {
margin: 10px;
}
</style>

View File

@ -0,0 +1,139 @@
<!--
* @Author: Kane
* @Date: 2023-10-17 14:41:39
* @LastEditors: Kane
* @FilePath: /task_schedule/src/views/data/bi/TelsalerAttachingRateView.vue
* @Description: BI坐席车非渗透率数据管理界面
*
* Copyright (c) ${2023} by Kane, All Rights Reserved.
-->
<template>
<div class="wrapper">
<el-row :gutter="10">
<el-col :span="8">
<el-button
type="warning"
icon="upload"
@click="showUploadFileDialog"
>
上传
</el-button>
</el-col>
</el-row>
<el-table
border
stripe
style="width:100%;"
>
<el-table-column
type="selection"
align="center"
/>
<el-table-column
label="部门"
align="center"
width="200"
/>
<el-table-column
label="名称"
align="center"
width="200"
/>
<el-table-column
label="车险保费(万)"
align="center"
/>
<el-table-column
label="非车险保费(万)"
align="center"
/>
<el-table-column
label="当月保费渗透率"
align="center"
/>
<el-table-column
label="渗透率环比上月"
align="center"
/>
</el-table>
<div class="pagination_wrapper">
<el-pagination
v-model="ui.tableCurrentPageIndex"
class="pull_left"
size="small"
background
:page-size="ui.tablePageSize"
:page-sizes="[10, 20, 50, 100]"
layout="total, sizes, prev, pager, next, jumper"
:total="0"
@current-change="onCurrentPageIndexChange"
@size-change="onTablePageSizeChange"
/>
</div>
<div
class="upload-dialog-wrapper"
>
<el-dialog
v-model="ui.showUploadDialog"
title="上传报表"
width="600px"
>
<BiDataUploadView />
</el-dialog>
</div>
</div>
</template>
<script lang="ts">
import { reactive } from "vue";
import BiDataUploadView from "@/views/data/bi/BiDataUploadView.vue";
export default {
name: "TelsalerAttachingRateView",
components: { BiDataUploadView, },
setup()
{
const ui = reactive({
showUI: true,
showUploadDialog: false,
tableCurrentPageIndex: 1,
tablePageSize: 10,
});
const showUploadFileDialog = (): void =>
{
ui.showUploadDialog = true;
};
const onCurrentPageIndexChange = ( index: number ): void =>
{
ui.tableCurrentPageIndex = index;
};
const onTablePageSizeChange = ( pageSize: number ): void =>
{
ui.tablePageSize = pageSize;
};
return {
ui,
showUploadFileDialog,
onCurrentPageIndexChange,
onTablePageSizeChange,
};
},
};
</script>
<style lang="scss" scoped>
.wrapper {
margin: 10px;
>*+* {
margin-top: 10px;
}
}
.pagination_wrapper {
display: flex;
justify-content: flex-end;
}
</style>

View File

@ -0,0 +1,30 @@
src/views/data/bi/TelsalerAttachingRateView.vue<!--
* @Author: Kane
* @Date: 2023-10-17 14:41:39
* @LastEditors: Kane
* @FilePath: /task_schedule/src/views/data/TelsalerAttachingRateView.vue
* @Description:
*
* Copyright (c) ${2023} by Kane, All Rights Reserved.
-->
<template>
<div class="wrapper" />
</template>
<script lang="ts">
import { reactive } from "vue";
export default {
name: "TelsalerAttachingRateView",
setup()
{
const ui = reactive({
showUI: true,
});
},
};
</script>
<style lang="scss" scoped>
.wrapper {
margin: 10px;
}
</style>

BIN
web.lnk Normal file

Binary file not shown.