|
@@ -3,15 +3,14 @@ defineOptions({
|
|
name: "IndexDefineImport"
|
|
name: "IndexDefineImport"
|
|
});
|
|
});
|
|
import { ref } from "vue";
|
|
import { ref } from "vue";
|
|
-import { postUpdateDeptApi, getListTable } from "@/api/download";
|
|
|
|
|
|
+import { uploadData } from "@/api/indexData";
|
|
import { ElMessage } from "element-plus";
|
|
import { ElMessage } from "element-plus";
|
|
import { useRouter } from "vue-router";
|
|
import { useRouter } from "vue-router";
|
|
const $router = useRouter();
|
|
const $router = useRouter();
|
|
const emit = defineEmits(["handleImport"]);
|
|
const emit = defineEmits(["handleImport"]);
|
|
-const uploadShow = ref(true);
|
|
|
|
const fileDocument = ref<File | null>(null); // 存储文件
|
|
const fileDocument = ref<File | null>(null); // 存储文件
|
|
const backupUrl =
|
|
const backupUrl =
|
|
- import.meta.env.VITE_BACKUP_URL + "/download/指标导入模板.xlsx";
|
|
|
|
|
|
+ import.meta.env.VITE_BACKUP_URL + "/download/指标数据模板.xlsx";
|
|
// 上传文件函数
|
|
// 上传文件函数
|
|
// 上传文件函数
|
|
// 上传文件函数
|
|
const uploadFile = async () => {
|
|
const uploadFile = async () => {
|
|
@@ -24,30 +23,22 @@ const uploadFile = async () => {
|
|
const formData = new FormData();
|
|
const formData = new FormData();
|
|
// 将生成的文件添加到 FormData 中
|
|
// 将生成的文件添加到 FormData 中
|
|
formData.append("file", fileDocument.value);
|
|
formData.append("file", fileDocument.value);
|
|
- // 获取文件并执行上传
|
|
|
|
- const fileToSend = formData.get("file");
|
|
|
|
// 调用 API 上传文件
|
|
// 调用 API 上传文件
|
|
- const { data } = await postUpdateDeptApi({ file: fileToSend });
|
|
|
|
- // const { data } = await postUpdateDeptApi({ file: formData });
|
|
|
|
|
|
+ const { data } = await uploadData(formData);
|
|
if (data.code === 200) {
|
|
if (data.code === 200) {
|
|
// 根据后端返回的 code 判断是否成功
|
|
// 根据后端返回的 code 判断是否成功
|
|
ElMessage.success("文件上传并导入成功");
|
|
ElMessage.success("文件上传并导入成功");
|
|
// 重置上传状态
|
|
// 重置上传状态
|
|
backDefine();
|
|
backDefine();
|
|
- $router.push("/indexDefine/children/define");
|
|
|
|
- tableHeaders.value = []; // 清空表头
|
|
|
|
|
|
+ $router.push("/indexData/index");
|
|
} else {
|
|
} else {
|
|
ElMessage.error(data.msg);
|
|
ElMessage.error(data.msg);
|
|
}
|
|
}
|
|
} catch (error) {
|
|
} catch (error) {
|
|
ElMessage.error("上传失败,请重试");
|
|
ElMessage.error("上传失败,请重试");
|
|
- console.error(error);
|
|
|
|
}
|
|
}
|
|
};
|
|
};
|
|
|
|
|
|
-const tableHeaders = ref<any>([]);
|
|
|
|
-const tableData = ref<any>([]);
|
|
|
|
-
|
|
|
|
const backDefine = () => {
|
|
const backDefine = () => {
|
|
emit("handleImport");
|
|
emit("handleImport");
|
|
};
|
|
};
|
|
@@ -55,27 +46,11 @@ const backDefine = () => {
|
|
// 处理文件上传并解析 Excel 内容
|
|
// 处理文件上传并解析 Excel 内容
|
|
const handleUploadChange = async (file: File) => {
|
|
const handleUploadChange = async (file: File) => {
|
|
fileDocument.value = file; // 保存文件
|
|
fileDocument.value = file; // 保存文件
|
|
- const reader = new FileReader();
|
|
|
|
let fileType = file.name.slice(-4);
|
|
let fileType = file.name.slice(-4);
|
|
- if (fileType == "xlsx") {
|
|
|
|
- const formData = new FormData();
|
|
|
|
- formData.append("file", fileDocument.value); // 将文件添加到表单数据
|
|
|
|
- // 调用 API 上传文件
|
|
|
|
- const { data } = await getListTable(formData);
|
|
|
|
- if (data.code === 200) {
|
|
|
|
- tableData.value = data.data;
|
|
|
|
- }
|
|
|
|
- uploadShow.value = false; // 隐藏上传区域,显示数据表
|
|
|
|
- } else {
|
|
|
|
|
|
+ if (fileType !== "xlsx") {
|
|
ElMessage.error("请上传xlsx文件");
|
|
ElMessage.error("请上传xlsx文件");
|
|
}
|
|
}
|
|
-
|
|
|
|
- reader.readAsArrayBuffer(file); // 读取文件为 ArrayBuffer
|
|
|
|
-};
|
|
|
|
-
|
|
|
|
-const stateDone = state => {
|
|
|
|
- const arr = ["草稿", "发布", "下架"];
|
|
|
|
- return arr[state];
|
|
|
|
|
|
+ return false;
|
|
};
|
|
};
|
|
</script>
|
|
</script>
|
|
|
|
|
|
@@ -97,38 +72,21 @@ const stateDone = state => {
|
|
<p class="text-xs mt-2 text mb-2">
|
|
<p class="text-xs mt-2 text mb-2">
|
|
更新信息的模板中,如有空的数据列,则相应字段信息会被清空,请谨慎填写
|
|
更新信息的模板中,如有空的数据列,则相应字段信息会被清空,请谨慎填写
|
|
</p>
|
|
</p>
|
|
- <div v-if="uploadShow">
|
|
|
|
|
|
+ <div>
|
|
<el-upload
|
|
<el-upload
|
|
class="upload-demo"
|
|
class="upload-demo"
|
|
drag
|
|
drag
|
|
multiple
|
|
multiple
|
|
:before-upload="file => handleUploadChange(file)"
|
|
:before-upload="file => handleUploadChange(file)"
|
|
- :show-file-list="false"
|
|
|
|
>
|
|
>
|
|
<el-icon class="el-icon--upload"><upload-filled /></el-icon>
|
|
<el-icon class="el-icon--upload"><upload-filled /></el-icon>
|
|
<div class="el-upload__text">
|
|
<div class="el-upload__text">
|
|
点击<em>图标选择上传</em>或者将文件拖拽到此区域
|
|
点击<em>图标选择上传</em>或者将文件拖拽到此区域
|
|
</div>
|
|
</div>
|
|
</el-upload>
|
|
</el-upload>
|
|
- </div>
|
|
|
|
- <div v-else class="mb-2">
|
|
|
|
- <el-table
|
|
|
|
- :data="tableData"
|
|
|
|
- border
|
|
|
|
- style="width: 100%"
|
|
|
|
- max-height="250"
|
|
|
|
- >
|
|
|
|
- <el-table-column prop="name" label="指标名称" />
|
|
|
|
- <el-table-column prop="define" label="指标定义" />
|
|
|
|
- <el-table-column prop="caliber" label="指标口径" />
|
|
|
|
- <el-table-column prop="categoryName" label="指标分类" />
|
|
|
|
- <el-table-column prop="source" label="来源" />
|
|
|
|
- <el-table-column prop="statue" label="状态">
|
|
|
|
- <template #default="scope">
|
|
|
|
- {{ stateDone(scope.row.statue) }}
|
|
|
|
- </template>
|
|
|
|
- </el-table-column>
|
|
|
|
- </el-table>
|
|
|
|
|
|
+ <div v-if="fileDocument && fileDocument.name">
|
|
|
|
+ {{ fileDocument.name }}
|
|
|
|
+ </div>
|
|
</div>
|
|
</div>
|
|
<div class="float-right">
|
|
<div class="float-right">
|
|
<el-button @click="backDefine">取消</el-button>
|
|
<el-button @click="backDefine">取消</el-button>
|