This commit is contained in:
2025-08-22 20:03:33 +08:00
2 changed files with 214 additions and 43 deletions

View File

@ -91,3 +91,34 @@ export const getTenderPlanDetail = (query: any): AxiosPromise<any> => {
params: query
});
};
//查看招标文件
export const biddViewLook = (query: any): AxiosPromise<any> => {
return request({
url: '/tender/biddingPlan/getAnnex',
method: 'get',
params: query
});
};
//删除招标文件
export const delBiddView = (query: any): AxiosPromise<any> => {
return request({
url: '/tender/biddingPlanAnnex/' + query.ids,
method: 'delete'
});
};
//获取招标单位
export const getUnitList = (query: any): AxiosPromise<any> => {
return request({
url: '/supplierInput/supplierInput/getList',
method: 'get',
params: query
});
};
//修改状态
export const editStatus = (query: any): AxiosPromise<any> => {
return request({
url: '/tender/biddingPlan/editStatus',
method: 'put',
data: query
});
};

View File

@ -27,12 +27,7 @@
<el-table-column prop="content" label="内容" />
<el-table-column prop="bidd" label="招标文件">
<template #default="scope">
<el-button
type="primary"
:disabled="scope.row.bidStatus == 1"
link
v-hasPermi="['tender:segmentedIndicatorPlanning:getMore']"
@click="biddView(scope.row)"
<el-button type="primary" link v-hasPermi="['tender:segmentedIndicatorPlanning:getMore']" @click="biddView(scope.row)"
>查看文件</el-button
>
</template>
@ -40,19 +35,73 @@
<el-table-column prop="winningBidder" label="中标单位" />
<el-table-column prop="bidFileName" label="中标文件">
<template #default="scope">
<el-button type="primary" link :disabled="scope.row.bidStatus == 1" @click="openPdf(scope.row.bidFile)"
>{{ scope.row.bidFileName }}
<el-button type="primary" link @click="openPdf(scope.row.bidFile)">{{ scope.row.bidFileName }} </el-button>
</template>
</el-table-column>
<el-table-column prop="plannedBiddingTime" label="计划招标时间" align="center" width="250">
<template #default="scope">
<el-date-picker
v-model="scope.row.plannedBiddingTime"
@change="
(val: any) => {
changeBiddingTime(val, scope.row);
}
"
type="date"
value-format="YYYY-MM-DD"
placeholder="选择时间"
:disabled="scope.row.bidStatus == 1"
/>
</template>
</el-table-column>
<el-table-column prop="contractPrice" label="合同金额" align="center" width="200">
<template #default="scope">
<el-input-number
:model-value="scope.row.contractPrice"
@change="
(val) => {
scope.row.contractPrice = val;
changeContractPrice(val, scope.row);
}
"
:precision="2"
:step="1"
:controls="false"
:disabled="scope.row.bidStatus == 1"
/>
</template>
</el-table-column>
<el-table-column prop="price" label="操作" align="center" width="400">
<template #default="scope">
<el-button
type="primary"
link
icon="FolderOpened"
@click="handleSave(scope.row)"
v-hasPermi="['tender:segmentedIndicatorPlanning:edit']"
:disabled="scope.row.bidStatus == 1"
>招标上传
</el-button>
</template>
</el-table-column>
<el-table-column prop="plannedBiddingTime" label="计划招标时间" align="center">
<template #default="scope">
<el-date-picker v-model="scope.row.plannedBiddingTime" type="date" value-format="YYYY-MM-DD" placeholder="选择时间" />
</template>
</el-table-column>
<el-table-column prop="price" label="操作" align="center">
<template #default="scope">
<el-button type="warning" size="small" @click="handleDetail(scope.row)" v-hasPermi="['tender:segmentedIndicatorPlanning:getMore']"
<el-button
type="primary"
link
icon="FolderOpened"
@click="handleWinTheBid(scope.row)"
v-hasPermi="['tender:segmentedIndicatorPlanning:edit']"
:disabled="scope.row.bidStatus == 1"
>中标上传
</el-button>
<!-- <el-button type="primary" link icon="Edit" @click="handleSave(scope.row)" v-hasPermi="['tender:segmentedIndicatorPlanning:edit']"
>信息
</el-button> -->
<el-button
type="primary"
link
icon="View"
@click="handleDetail(scope.row)"
:disabled="scope.row.bidStatus == 1"
v-hasPermi="['tender:segmentedIndicatorPlanning:getMore']"
>详情</el-button
>
@ -65,6 +114,15 @@
v-hasPermi="['tender:segmentedIndicatorPlanning:remove']"
>删除</el-button
>
<el-button
type="primary"
link
icon="Lock"
@click="editStatusBtn(scope.row)"
:disabled="scope.row.bidStatus == 1"
v-hasPermi="['tender:segmentedIndicatorPlanning:remove']"
>确定</el-button
>
</template>
</el-table-column>
</el-table>
@ -167,6 +225,21 @@
</el-table-column>
</el-table>
</el-dialog>
<el-dialog title="查看文件" v-model="biddDialog" width="45%" draggable>
<el-table :data="biddViewData" border>
<el-table-column prop="name" label="文件名" />
<el-table-column prop="price" label="操作" align="center">
<template #default="scope">
<el-button type="primary" link icon="View" @click="openPdf(scope.row.url)">查看</el-button>
<el-button type="primary" link icon="Delete" @click="delHandlebidd(scope.row)" v-if="scope.row.bidStatus != 1">删除</el-button>
</template>
</el-table-column>
</el-table>
</el-dialog>
<information ref="informationRef" @success="getList()" />
<winTheBid ref="winTheBidRef" @success="getList()" />
</div>
</template>
@ -183,9 +256,13 @@ import {
updateTenderPlan,
treeList,
getTenderPlanDetail,
obtainAllVersionNumbers
obtainAllVersionNumbers,
biddViewLook,
delBiddView,
editStatus
} from '@/api/tender/index';
const { proxy } = getCurrentInstance();
import { it } from 'element-plus/es/locale/index.mjs';
const userStore = useUserStoreHook();
const currentProject = computed(() => userStore.selectedProject);
const tabList = ref<any[]>([]);
@ -478,32 +555,43 @@ const submitForm = async (formEl: FormInstance | undefined) => {
}
});
};
//确定修改
const handleSave = (row: any) => {
try {
if (!row.plannedBiddingTime) {
//修改计划时间
const changeBiddingTime = (value: any, row: any) => {
updateTenderPlan({
...row
}).then((res) => {
if (res.code == 200) {
ElMessage({
message: '请输入计划招标时间',
type: 'warning'
message: '修改成功',
type: 'success'
});
return;
getList();
}
updateTenderPlan({ ...row, type: planType.value }).then((res) => {
if (res.code == 200) {
ElMessage({
message: '修改成功',
type: 'success'
});
getList();
}
});
} catch (error) {
console.log(error);
ElMessage({
message: '修改失败',
type: 'error'
});
}
});
};
//修改合同金额
const changeContractPrice = (value: any, row: any) => {
updateTenderPlan({
...row
}).then((res) => {
if (res.code == 200) {
ElMessage({
message: '修改成功',
type: 'success'
});
getList();
}
});
};
//上传投标文件
const handleSave = (row: any) => {
informationRef.value.open(row, planType.value);
};
const winTheBidRef = ref();
//上传中标文件
const handleWinTheBid = (row: any) => {
winTheBidRef.value.open(row, planType.value);
};
//删除
const delHandle = (row: any) => {
@ -542,6 +630,58 @@ const getDetails = (row: any) => {
}
});
};
const informationRef = ref();
const biddDialog = ref(false);
const biddViewData = ref<any>([]);
const biddViewRow = ref<any>({});
//查看招标文件
const biddView = async (row: any) => {
biddViewRow.value = row;
biddDialog.value = true;
const params = {
id: row.id
};
const res = await biddViewLook(params);
if (res.code == 200) {
res.data.forEach((item) => (item.bidStatus = biddViewRow.value.bidStatus));
biddViewData.value = res.data;
}
};
//删除文件
const delHandlebidd = (row: any) => {
const params = {
ids: row.id
};
delBiddView(params).then((res) => {
if (res.code == 200) {
ElMessage({
message: '删除成功',
type: 'success'
});
biddView(biddViewRow.value);
}
});
};
//修改状态
const editStatusBtn = (row: any) => {
editStatus({
...row
}).then((res) => {
if (res.code == 200) {
ElMessage({
message: '修改成功',
type: 'success'
});
getList();
}
});
};
//查看文件
const openPdf = (url: any) => {
window.open(url);
};
onMounted(() => {
getTabsList();