From 0f851ca9f5fc81fb73dd26248b3cde46851bce25 Mon Sep 17 00:00:00 2001 From: 龚焕茏 <2842157468@qq.com> Date: 星期二, 30 七月 2024 13:58:02 +0800 Subject: [PATCH] feat:核算报告导出 --- src/views/system/contract/score/index.vue | 2 +- src/components/FileUpload/index.vue | 2 +- src/components/ImagePreview/index.vue | 3 ++- src/views/system/contract/contract/index.vue | 1 + src/views/system/contract/report/index.vue | 17 +++++++++-------- 5 files changed, 14 insertions(+), 11 deletions(-) diff --git a/src/components/FileUpload/index.vue b/src/components/FileUpload/index.vue index 4401262..415ae85 100644 --- a/src/components/FileUpload/index.vue +++ b/src/components/FileUpload/index.vue @@ -63,7 +63,7 @@ // 鏂囦欢绫诲瀷, 渚嬪['png', 'jpg', 'jpeg'] fileType: { type: Array, - default: () => ["doc", "xls", "ppt", "txt", "pdf","png","jpg"], + default: () => ["docx", "xlsx", "ppt", "txt", "pdf","png","jpg"], }, // 鏄惁鏄剧ず鎻愮ず isShowTip: { diff --git a/src/components/ImagePreview/index.vue b/src/components/ImagePreview/index.vue index f00a0d0..f29de31 100644 --- a/src/components/ImagePreview/index.vue +++ b/src/components/ImagePreview/index.vue @@ -32,7 +32,8 @@ }, computed: { realSrc() { - if (!this.src) { + const imageExtensions = /\.(jpg|jpeg|png|gif|bmp|svg)$/i; + if (!this.src || !imageExtensions.test(this.src)) { return DEFAULT_IMAGE; } let real_src = this.src.split(",")[0]; diff --git a/src/views/system/contract/contract/index.vue b/src/views/system/contract/contract/index.vue index 57e22d0..60df1bb 100644 --- a/src/views/system/contract/contract/index.vue +++ b/src/views/system/contract/contract/index.vue @@ -115,6 +115,7 @@ </el-tooltip> </div> </span> + <el-empty v-if="moneyRules.length == 0" :image-size="100" /> </div> </el-collapse-item> <el-form-item label="鍚堝悓闄勪欢" prop="attachment" class="top"> diff --git a/src/views/system/contract/report/index.vue b/src/views/system/contract/report/index.vue index cb8e56e..5c681ca 100644 --- a/src/views/system/contract/report/index.vue +++ b/src/views/system/contract/report/index.vue @@ -1,7 +1,7 @@ <template> <div class="app-container"> - <el-row style="margin-left: 10px" :gutter="10" class="mb8"> + <!-- <el-row style="margin-left: 10px" :gutter="10" class="mb8"> <el-col :span="1.5"> <el-button type="warning" @@ -12,9 +12,9 @@ >瀵煎嚭鎵�鏈夋暟鎹�</el-button> </el-col> <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> - </el-row> + </el-row> --> - <el-card class="box-card" v-for="(item) in checkResultList"> + <el-card class="box-card" v-for="item in checkResultList" :key="item.id"> <div slot="header" class="clearfix"> <span>{{ item.unitName }}</span> <el-button style="float: right; padding: 3px 0" type="text" @click="handleDetail(item)">鏍哥畻</el-button> @@ -26,6 +26,7 @@ <span v-if="item.latestTime" class="time">{{ new Date(item.latestTime).getFullYear() }}骞磠{ new Date(item.latestTime).getMonth() }}鏈�</span> <span v-else class="time">鏆傛棤</span> </div> + <el-button size="small" type="primary" round style="float: right;margin-left: 18px;" @click="handleExport(item)" v-hasPermi="['system:calculate:report:export']">瀵煎嚭</el-button> <el-button size="small" round style="float: right;margin-bottom: 18px;" @click="handlePublish(item)" v-if="item.status === 'not_publish'" :disabled="!item.canPublish" v-hasPermi="['system:calculate:report:status']">纭鍙戝竷</el-button> <el-button size="small" round style="float: right;margin-bottom: 18px;" @click="handlePublish(item)" v-if="item.status === 'published'" v-hasPermi="['system:calculate:report:status']">鍙栨秷鍙戝竷</el-button> </el-card> @@ -41,7 +42,7 @@ <el-dialog :title="detailTitle" :visible.sync="detailOpen" width="760px" append-to-body> <div style="display: flex; flex-direction: row; width: 100%;margin-bottom: 10px; justify-content: center; align-items: center"> <div style="line-height: 16px">搴旂敤瑙勫垯锛�</div> - <div v-for="ruleItem in detail.ruleList" style="display: flex; margin-right: 50px;"> + <div v-for="ruleItem in detail.ruleList" :key="ruleItem.id" style="display: flex; margin-right: 50px;"> <div style="line-height: 16px;margin-right: 10px;display: flex; align-items: center">{{ ruleItem.scoreCondition }}鍒�</div> <div style="line-height: 16px;max-width: 300px;word-wrap:break-word;word-break:normal;color: #2273b9">{{ ruleItem.description }}</div> </div> @@ -287,10 +288,10 @@ }, /** 瀵煎嚭鎸夐挳鎿嶄綔 */ - handleExport() { - this.download('system/checkResult/export', { - ...this.queryParams - }, `checkResult_${new Date().getTime()}.xlsx`) + handleExport(item) { + this.download('calculate-report/export', { + ...{ 'contractId': item.contractId } + }, `${item.contractName}杩愮淮鏍哥畻.xlsx`) }, /** 鍚堣琛� */ getSummaries(param) { diff --git a/src/views/system/contract/score/index.vue b/src/views/system/contract/score/index.vue index c1ae99c..d578e8c 100644 --- a/src/views/system/contract/score/index.vue +++ b/src/views/system/contract/score/index.vue @@ -289,7 +289,7 @@ let item = this.$refs['cascader'].getCheckedNodes()[0].data; this.calcObj = item; this.form.contractId = item.contractId; - this.form.ruleName = item.ruleName + "/" + item.label; + this.form.ruleName = item.ruleName + " / " + item.label; this.form.deductCategory = item.deductCategory == '鍒嗘暟涔樹互鏁伴噺' ? '鎵�' + item.calcFraction + '鍒�*鏁伴噺 ' : item.deductCategory == '闄や互鏁伴噺鍚庝箻浠ュ垎鏁�' ? '鎵�' + item.calcFraction + '鍒�/' + item.calcUnit + '灏忔椂' : '鎵�' + item.calcFraction + '鍒�'; if (item.deductCategory == "鎵f寚瀹氬垎鏁�") { this.needNum = false; -- Gitblit v1.8.0