招标解析

This commit is contained in:
cwchen 2025-11-26 11:25:21 +08:00
parent 1905783af6
commit 3dc9edac42
2 changed files with 74 additions and 34 deletions

View File

@ -8,8 +8,14 @@
<el-card class="analysis-detail-card">
<template slot="header">
<div class="card-header">
<img src="@/assets/enterpriseLibrary/basic-info.png" alt="项目信息">
<h3>项目信息</h3>
<div class="card-header-left">
<img src="@/assets/enterpriseLibrary/basic-info.png" alt="项目信息">
<h3>项目信息</h3>
</div>
<el-button type="text" v-hasPermi="['enterpriseLibrary:analysis:edit']" class="edit-btn"
@click="handleEditProject">
编辑
</el-button>
</div>
</template>
<div class="analysis-detail-content">
@ -86,8 +92,12 @@
</TableModel>
</div>
</div>
<!-- 标段编辑弹窗 -->
<BidForm v-if="showBidForm" :width="600" :rowData="rowData" :title="title"
@closeDialog="showBidForm = false" @handleQuery="handleQuery" />
<!-- 项目信息编辑弹窗 -->
<ProForm v-if="showProForm" :width="600" :rowData="rowData" :title="title"
@closeDialog="showProForm = false" @handleProQuery="handleProQuery" />
</div>
</template>
@ -97,12 +107,14 @@ import { getProDetailAPI,getBidListAPI } from '@/api/analysis/analysis'
import { formLabel, detailColumnsList } from '../config'
import TableModel from '@/components/TableModel2'
import BidForm from './BidForm.vue'
import ProForm from './ProForm.vue'
export default {
name: 'AnalysisDetail',
components: {
TableModel,
BidForm
BidForm,
ProForm
},
data() {
return {
@ -115,6 +127,7 @@ export default {
proId: decryptWithSM4(this.$route.query.proId),
},
showBidForm: false,
showProForm: false,
title: '',
rowData: {},
}
@ -142,16 +155,29 @@ export default {
const obj = { path: "/analysis" }
this.$tab.closeOpenPage(obj)
},
//
//
handleUpdate(data) {
this.title = '编辑'
this.rowData = data
this.showBidForm = true
},
/* 搜索操作 */
handleQuery() {
this.rowData = {}
this.$refs.detailTableRef.getTableList()
},
/* 更新项目信息 */
handleProQuery(data){
this.rowData = {}
this.detailData = data
},
/* 编辑项目信息 */
handleEditProject() {
this.title = '编辑'
this.rowData = this.detailData
this.showProForm = true
},
}
}
</script>
@ -240,8 +266,15 @@ export default {
.card-header {
display: flex;
align-items: center;
justify-content: space-between;
gap: 8px;
.card-header-left {
display: flex;
align-items: center;
gap: 8px;
}
.header-icon {
font-size: 20px;
color: #409EFF;
@ -253,6 +286,17 @@ export default {
font-weight: 600;
color: #303133;
}
.edit-btn {
color: #409EFF;
font-size: 14px;
font-weight: 500;
padding: 0;
&:hover {
color: #66b1ff;
}
}
}
.analysis-detail-content {

View File

@ -9,8 +9,8 @@
maxlength="64"></el-input>
</el-form-item>
<el-form-item label="项目编号" prop="项目编号">
<el-input v-model.trim="form.项目编号" placeholder="请输入项目编号" clearable show-word-limit
maxlength="64"></el-input>
<el-input v-model.trim="form.proCode" placeholder="请输入项目编号" clearable show-word-limit
maxlength="32"></el-input>
</el-form-item>
<el-form-item label="招标人" prop="tenderer">
<el-input v-model.trim="form.tenderer" placeholder="请输入招标人" clearable show-word-limit
@ -20,8 +20,8 @@
<el-input v-model.trim="form.agency" placeholder="请输入代理机构" clearable show-word-limit
maxlength="64"></el-input>
</el-form-item>
<el-form-item label="开标时间" prop="bidOpeningTime">
<el-date-picker v-model="form.bidOpeningTime" type="datetime" placeholder="请选择开标时间" value-format="yyyy-MM-dd HH:mm:ss" clearable></el-date-picker>
<el-form-item label="开标时间" prop="bidOpeningTime" >
<el-date-picker class="form-item" v-model="form.bidOpeningTime" type="date" placeholder="请选择开标时间" value-format="yyyy-MM-dd HH:mm:ss" clearable></el-date-picker>
</el-form-item>
<el-form-item label="开标方式" prop="bidOpeningMethod">
<el-input v-model.trim="form.bidOpeningMethod" placeholder="请输入开标方式" clearable show-word-limit
@ -29,7 +29,7 @@
</el-form-item>
<el-form-item label="项目简介" prop="proIntroduction">
<el-input type="textarea" v-model.trim="form.proIntroduction" placeholder="请输入项目简介" clearable show-word-limit
:autosize="{ minRows: 3, maxRows: 5 }" maxlength="128"></el-input>
:autosize="{ minRows: 5, maxRows: 8 }" maxlength="512"></el-input>
</el-form-item>
</el-form>
@ -42,7 +42,7 @@
</template>
<script>
import _ from 'lodash'
import { editBidDataAPI } from '@/api/analysis/analysis'
import { editProDataAPI } from '@/api/analysis/analysis'
export default {
name: 'ProForm',
props: ['width', 'rowData', 'title'],
@ -61,7 +61,7 @@ export default {
trigger: 'blur',
},
],
项目编号: [
proCode: [
{
required: true,
message: '请输入项目编号',
@ -117,16 +117,14 @@ export default {
console.log(this.rowData);
this.form = {
bidId: this.rowData.bidId || null,
markName: this.rowData.markName || '',
unit: this.rowData.unit || '',
bidNumber: this.rowData.bidNumber || '',
bidName: this.rowData.bidName || '',
maximumBidLimit: this.rowData.maximumBidLimit || '',
safetyConstFee: this.rowData.safetyConstFee || '',
bidBond: this.rowData.bidBond || '',
biddingStage: this.rowData.biddingStage || '',
duration: this.rowData.duration || '',
proId: this.rowData.proId || null,
proName: this.rowData.proName || '',
proCode: this.rowData.proCode || '',
tenderer: this.rowData.tenderer || '',
agency: this.rowData.agency || '',
bidOpeningTime: this.rowData.bidOpeningTime || '',
bidOpeningMethod: this.rowData.bidOpeningMethod || '',
proIntroduction: this.rowData.proIntroduction || '',
}
},
@ -143,23 +141,22 @@ export default {
/**重置表单*/
reset() {
this.form = {
bidId: null,
markName: '',
unit: '',
bidNumber: '',
bidName: '',
maximumBidLimit: '',
safetyConstFee: '',
bidBond: '',
biddingStage: '',
duration: '',
proId: null,
proName: '',
proCode: '',
tenderer: '',
agency: '',
bidOpeningTime: '',
bidOpeningMethod: '',
proIntroduction: '',
}
this.resetForm('ruleForm')
},
handleReuslt(res) {
this.$modal.msgSuccess(res.msg)
const newData = {...this.form};
this.$emit('handleProQuery',newData)
this.reset()
this.$emit('handleQuery')
this.handleClose()
},
validate(formName) {
@ -177,7 +174,6 @@ export default {
async submitForm(formName) {
try {
const data = await this.validate(formName)
console.log(data);
//
let formData = {
@ -210,7 +206,7 @@ export default {
async saveData(formData) {
return new Promise((resolve, reject) => {
//
editBidDataAPI(formData)
editProDataAPI(formData)
.then((res) => {
resolve(res)
})