feat(project): 优化项目信息表格布局并添加导出功能

- 调整表格列宽度以改善显示效果
- 在项目详情抽屉中添加技术方案终审下载按钮
- 实现导出单个项目技术方案的功能
- 移除原表格中的冗余导出按钮并改为注释形式
- 新增handleExportSingle方法处理文件导出逻辑
dev_1.0.0
chenhao 2026-01-27 10:55:38 +08:00
parent b96d006f9c
commit 330f2f7d54
2 changed files with 35 additions and 21 deletions

View File

@ -186,7 +186,16 @@
</el-col>
</el-row>
<el-divider content-position="left" style="margin-top: 40px">
<h3 style="font-weight: bold">技术方案会审</h3>
<div style="display: flex"> <h3 style="font-weight: bold">技术方案会审</h3>
<el-button
size="mini"
type="text"
icon="el-icon-download"
@click="handleExportSingle(form)"
v-show="form.jointTrial==='1'"
>技术方案终审下载</el-button>
</div>
</el-divider>
@ -421,6 +430,10 @@ export default {
}
},
methods: {
handleExportSingle(row){
window.location.href=process.env.VUE_APP_BASE_API +`/sip/project/vue/joinTrial/export/${row.id}`
// exportSingle(row.id)
},
getDetails() {
getProject(this.projectId).then(response => {
const projectData = response.data.project;

View File

@ -163,35 +163,36 @@
</template>
</el-table-column>
<el-table-column label="最终客户" align="center" prop="customerName" width="200" />
<el-table-column label="BG" align="center" prop="bgProperty" width="100">
<el-table-column label="BG" align="center" prop="bgProperty" width="70">
<template slot-scope="scope">
<dict-tag :options="dict.type.bg_type" :value="scope.row.bgProperty"/>
</template>
</el-table-column>
<el-table-column label="行业" align="center" prop="industryType" width="100">
<el-table-column label="行业" align="center" prop="industryType" width="70">
<template slot-scope="scope">
<dict-tag v-if="scope.row.bgProperty === 'YYS'" :options="dict.type.bg_yys" :value="scope.row.industryType"/>
<dict-tag v-else :options="dict.type.bg_hysy" :value="scope.row.industryType"/>
</template>
</el-table-column>
<el-table-column label="代表处" align="center" prop="agentName" width="100" />
<el-table-column label="项目把握度" align="center" prop="projectGraspDegree" width="100" />
<el-table-column label="代表处" align="center" prop="agentName" width="70" />
<el-table-column label="项目把握度" align="center" prop="projectGraspDegree" width="70" />
<el-table-column label="预计金额(元)" align="center" prop="estimatedAmount" width="120" sortable="custom" :sort-orders="['descending', 'ascending']">
<template slot-scope="scope">
<span>{{ formatAmountNumber(scope.row.estimatedAmount) }}</span>
</template>
</el-table-column>
<el-table-column label="项目阶段" align="center" prop="projectStage" width="160">
<template slot-scope="scope">
<dict-tag :options="dict.type.project_stage" :value="scope.row.projectStage"/>
</template>
</el-table-column>
<el-table-column label="汇智负责人" align="center" prop="hzSupportUserName" width="100" />
<el-table-column label="POC" align="center" prop="poc" width="100">
<el-table-column label="POC" align="center" prop="poc" width="60">
<template slot-scope="scope">
<span>{{ scope.row.poc === '1' ? '是' : '否' }}</span>
</template>
</el-table-column>
<el-table-column label="预计金额(元)" align="center" prop="estimatedAmount" width="140" sortable="custom" :sort-orders="['descending', 'ascending']">
<template slot-scope="scope">
<span>{{ formatAmountNumber(scope.row.estimatedAmount) }}</span>
</template>
</el-table-column>
<el-table-column label="预计下单时间" align="center" prop="estimatedOrderTime" width="140" sortable="custom" :sort-orders="['descending', 'ascending']">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.estimatedOrderTime, '{y}-{m}-{d}') }}</span>
@ -207,18 +208,18 @@
<span>{{ parseTime(scope.row.updateTime, '{y}-{m}-{d} {h}:{i}:{s}') }}</span>
</template>
</el-table-column>
<el-table-column label="收藏" align="center" prop="collect" width="60" fixed="right">
<el-table-column label="收藏" align="center" prop="collect" width="50" fixed="right">
<template slot-scope="scope">
<el-checkbox v-model="scope.row.collect" true-label="1" false-label="0" @change="handleCollectChange(scope.row)" />
</template>
</el-table-column>
<el-table-column label="会审" align="center" prop="jointTrial" width="60" fixed="right">
<el-table-column label="会审" align="center" prop="jointTrial" width="50" fixed="right">
<template slot-scope="scope">
<el-checkbox v-if="!canUpdateJoinTrial" :value="scope.row.jointTrial === '1'" @change="()=>{ $modal.msgError('无权限修改');return false;}" />
<el-checkbox v-else v-model="scope.row.jointTrial" true-label="1" false-label="0" @change="handleJoinTrialChange(scope.row)"/>
</template>
</el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="400" fixed="right">
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="220" fixed="right">
<template slot-scope="scope">
<el-button
size="mini"
@ -242,13 +243,13 @@
@click="handleDelete(scope.row)"
v-hasPermi="['sip:project:remove']"
>删除</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleExportSingle(scope.row)"
v-show="scope.row.jointTrial==='1'"
>技术方案终审下载</el-button>
<!-- <el-button-->
<!-- size="mini"-->
<!-- type="text"-->
<!-- icon="el-icon-edit"-->
<!-- @click="handleExportSingle(scope.row)"-->
<!-- v-show="scope.row.jointTrial==='1'"-->
<!-- >技术方案终审下载</el-button>-->
</template>
</el-table-column>
</el-table>