项目新需求修改

This commit is contained in:
wcq 2023-08-17 17:36:29 +08:00
parent db675a46cf
commit 96260dd55e
1 changed files with 76 additions and 1 deletions

View File

@ -138,6 +138,14 @@
<!-- :disabled="scope.row.rate_state=='已评级'" --> <!-- :disabled="scope.row.rate_state=='已评级'" -->
</el-button </el-button
> >
<el-button type="success" @click="makeReport(scope.row)" size="small"
>报告生成
</el-button
>
<el-button type="success" @click="uploadFile(scope.row)" size="small"
>报告上传
</el-button
>
<el-button type="success" @click="downReport(scope.row)" size="small" <el-button type="success" @click="downReport(scope.row)" size="small"
>报告下载 >报告下载
</el-button </el-button
@ -265,6 +273,13 @@
</div> </div>
</div> </div>
</el-dialog> </el-dialog>
<el-dialog title="问卷上传" v-model="fileUploadDialogVisible" style="width: 26rem">
<FileUploadMd v-model="fileUploadInfo.file_md">
</FileUploadMd>
<div class="flex">
<el-button class="ml-auto m-2" type="primary" size="small" @click="fileUploadSave">保存</el-button>
</div>
</el-dialog>
</div> </div>
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
@ -274,7 +289,10 @@ import {RateData, RateResContent} from "@/types/bj";
import {ElMessage, ElMessageBox} from "element-plus"; import {ElMessage, ElMessageBox} from "element-plus";
import {onMounted, ref} from "vue"; import {onMounted, ref} from "vue";
import {Search} from "@element-plus/icons-vue"; import {Search} from "@element-plus/icons-vue";
import FileUploadMd from "@/components/EditTabel/fileUploadMd.vue";
const fileUploadDialogVisible = ref(false)
const fileUploadInfo = ref({id: null, file_md: ""})
const data = ref<RateData[]>([]); const data = ref<RateData[]>([]);
const rowTemp = ref<RateData>(null); const rowTemp = ref<RateData>(null);
const count = ref(0); const count = ref(0);
@ -346,7 +364,7 @@ function blobToText(blob) {
}); });
} }
function downReport(row: RateData) { function makeReport(row: RateData) {
// ElMessage.success("") // ElMessage.success("")
api.post("/wd-smebiz/smebiz_rate/company_rate/get_report_admin", {id: row.id}, {responseType: "blob"}) api.post("/wd-smebiz/smebiz_rate/company_rate/get_report_admin", {id: row.id}, {responseType: "blob"})
.then(response => { .then(response => {
@ -381,6 +399,42 @@ function downReport(row: RateData) {
}); });
} }
function downReport(row: RateData) {
// ElMessage.success("")
api.post("/wd-smebiz/smebiz_rate/company_rate/get_report", {id: row.id}, {responseType: "blob"})
.then(response => {
console.log(response)
const url = window.URL.createObjectURL(new Blob([response.data]));
const link = document.createElement('a');
link.href = url;
const contentDisposition = response.headers['content-disposition'];
let decodedFilename = "报告.docx"
if (contentDisposition) {
const filenameMatch = contentDisposition.match(/filename\*?=utf-8''([^;]+)/);
if (filenameMatch && filenameMatch.length > 1) {
const encodedFilename = filenameMatch[1];
decodedFilename = decodeURIComponent(encodedFilename);
}
}
link.setAttribute('download', decodedFilename); //
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
ElMessage.success("开始下载")
}).catch(async (error) => {
console.error(error);
// ElMessage.warning(e.response?.data?.detail || "");
if (error.response && error.response.data instanceof Blob) {
const errorText = await blobToText(error.response.data);
const data = JSON.parse(errorText)
ElMessage.warning(data.detail)
} else {
ElMessage.warning("错误")
}
});
}
function doPublish(row: RateData) { function doPublish(row: RateData) {
api api
.post("/wd-smebiz/smebiz_rate/company_rate/update", { .post("/wd-smebiz/smebiz_rate/company_rate/update", {
@ -443,6 +497,27 @@ function showDetail(row: RateData) {
} }
function fileUploadSave() {
if (!fileUploadInfo.value.file_md) {
ElMessage.warning("请上传文件")
return
}
api.post("/wd-smebiz/smebiz_rate/company_rate/upload_report_file", fileUploadInfo.value).then(res => {
ElMessage.success("保存成功")
fileUploadDialogVisible.value = false
getData()
}).catch(e => {
ElMessage.warning(e)
})
}
function uploadFile(row) {
fileUploadInfo.value.id = row.id
fileUploadDialogVisible.value = true
}
onMounted(() => { onMounted(() => {
getData(); getData();
}); });