This commit is contained in:
ljx
2025-09-11 16:49:24 +08:00
parent 69cfffa0d4
commit 61a21a6250
12 changed files with 223 additions and 82 deletions

View File

@ -66,7 +66,7 @@
{{ scope.row.children.length > 0 ? '' : scope.row.quantity }}
</template>
</el-table-column>
<el-table-column prop="remark" label="单价" align="center">
<el-table-column prop="remark" label="单价" align="center" width="200px">
<template #default="scope">
<el-input-number
:disabled="versionObj.status != 'draft'"
@ -81,6 +81,7 @@
:precision="4"
:controls="false"
v-if="scope.row.quantity && scope.row.quantity != 0"
width="200px"
/>
</template>
</el-table-column>

View File

@ -30,7 +30,7 @@
{{ proxy.formatPrice(scope.row.price) }}
</template>
</el-table-column>
<el-table-column prop="plannedBiddingTime" align="center">
<el-table-column prop="plannedBiddingTime" align="center" width="250px">
<template #header> <span style="color: red">*</span>计划招标时间 </template>
<template #default="scope">
<el-date-picker
@ -39,6 +39,7 @@
value-format="YYYY-MM-DD"
placeholder="选择时间"
:disabled="scope.row.status == 0"
style="width: 200px"
/>
</template>
</el-table-column>
@ -126,7 +127,7 @@
<el-table-column prop="unit" label="单位" />
<!-- <el-table-column prop="quantity" label="数量" /> -->
<el-table-column prop="quantity" label="计划量" align="center" />
<el-table-column prop="selectNum" label="设计量" align="center">
<el-table-column prop="selectNum" label="设计量" align="center" width="200px">
<template #default="scope">
<el-input-number
:model-value="scope.row.selectNum"
@ -141,6 +142,7 @@
:controls="false"
:max="Math.floor(scope.row.quantity)"
v-if="scope.row.quantity && scope.row.quantity != 0 && scope.row.unitPrice"
width="150px"
/>
</template>
</el-table-column>

View File

@ -82,18 +82,11 @@
</el-row>
</template>
<el-table
v-loading="loading"
:table-layout="'auto'"
:data="formalitiesAreConsolidatedList"
@selection-change="handleSelectionChange"
row-key="id"
default-expand-all
>
<el-table v-loading="loading" :data="formalitiesAreConsolidatedList" @selection-change="handleSelectionChange" row-key="id" default-expand-all>
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="手续办理清单" align="left" prop="formalitiesName">
<template #default="scope">
{{ scope.row.formalitiesName }}
<div>{{ scope.row.formalitiesName }}</div>
</template>
</el-table-column>
<el-table-column label="计划开始时间" align="center" prop="planTheStartTime" width="180">

View File

@ -8,27 +8,35 @@
<span>{{ scope.row.residue }}</span>
</template>
</el-table-column>
<el-table-column label="出库数量" align="center" prop="number">
<el-table-column label="出库数量" align="center" prop="number" width="150px">
<template #default="scope">
<el-input-number v-if="scope.row.type" v-model="scope.row.number" :controls="false" :min="0" :max="scope.row.residue" :precision="0" />
<el-input-number
v-if="scope.row.type"
v-model="scope.row.number"
:controls="false"
:min="0"
:max="scope.row.residue"
:precision="0"
style="width: 100px"
/>
<span v-else>{{ scope.row.number }}</span>
</template>
</el-table-column>
<el-table-column label="交接单位" align="center" prop="recipient">
<el-table-column label="交接单位" align="center" prop="recipient" width="150px">
<template #default="scope">
<el-input v-if="scope.row.type" style="width: 150px" v-model="scope.row.recipient" />
<el-input v-if="scope.row.type" v-model="scope.row.recipient" width="100px" />
<span v-else>{{ scope.row.recipient }}</span>
</template>
</el-table-column>
<el-table-column label="领用人" align="center" prop=" shipper">
<el-table-column label="领用人" align="center" prop=" shipper" width="150px">
<template #default="scope">
<el-input v-if="scope.row.type" style="width: 150px" v-model="scope.row.shipper" />
<el-input v-if="scope.row.type" v-model="scope.row.shipper" width="100px" />
<span v-else>{{ scope.row.shipper }}</span>
</template>
</el-table-column>
<el-table-column label="操作人" align="center" prop="operator">
<el-table-column label="操作人" align="center" prop="operator" width="150px">
<template #default="scope">
<el-input v-if="scope.row.type" style="width: 150px" v-model="scope.row.operator" />
<el-input v-if="scope.row.type" v-model="scope.row.operator" width="100px" />
<span v-else>{{ scope.row.operator }}</span>
</template>
</el-table-column>

View File

@ -3,7 +3,25 @@
<el-row :gutter="10" class="mb8">
<el-col :span="5">
<el-card shadow="never">
<el-tree style="max-width: 600px" :data="TreeData" :props="defaultProps" @node-click="handleNodeClick" />
<!-- <el-tree style="max-width: 600px" :data="TreeData" :props="defaultProps" @node-click="handleNodeClick" /> -->
<el-tree
:data="TreeData"
:props="defaultProps"
@node-click="handleNodeClick"
node-key="id"
default-expand-all
:expand-on-click-node="false"
>
<template #default="{ node, data }">
<span class="custom-tree-node">
<span class="tree-title">
<div>
<div>{{ node.label }}</div>
</div>
</span>
</span>
</template>
</el-tree>
</el-card>
</el-col>
@ -473,3 +491,53 @@ onMounted(() => {
getMaterialsListData();
});
</script>
<style lang="scss" scoped>
.custom-tree-node {
flex: 1;
display: flex;
align-items: center;
justify-content: space-between;
font-size: 14px;
padding-right: 8px;
height: 40px; /* 固定高度 */
}
.tree-title {
display: flex;
align-items: center;
}
:deep(.el-tree) {
font-weight: normal;
}
:deep(.el-tree-node) {
margin: 2px 0;
}
:deep(.el-tree-node__content) {
height: auto !important;
margin: 2px 0;
border-radius: 4px;
transition: all 0.3s;
}
:deep(.el-tree-node__content:hover) {
background-color: #ecf5ff !important;
}
/* 为不同层级添加不同的边框颜色 */
:deep(.el-tree-node:focus > .el-tree-node__content) {
background-color: #d9ecff !important;
}
:deep(.el-tree-node > .el-tree-node__content) {
border-left: 3px solid #409eff;
}
:deep(.el-tree-node .el-tree-node__children .el-tree-node__content) {
border-left: 3px solid #67c23a;
}
:deep(.el-tree-node .el-tree-node__children .el-tree-node__children .el-tree-node__content) {
border-left: 3px solid #e6a23c;
}
</style>

View File

@ -71,7 +71,7 @@
{{ scope.row.children.length > 0 ? '' : scope.row.quantity }}
</template>
</el-table-column>
<el-table-column prop="remark" label="单价" align="center">
<el-table-column prop="remark" label="单价" align="center" width="200px">
<template #default="scope">
<el-input-number
:model-value="scope.row.unitPrice"
@ -86,6 +86,7 @@
:controls="false"
v-if="scope.row.quantity && scope.row.quantity != 0"
:disabled="versionsData.status != 'draft'"
width="200px"
/>
</template>
</el-table-column>

View File

@ -13,8 +13,7 @@
<el-form-item>
<el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
<el-button icon="Refresh" @click="resetQuery">重置</el-button>
<el-button type="primary" plain :icon="Plus" @click="openDialog"
v-hasPermi="['tender:biddingPlan:add']">新增</el-button>
<el-button type="primary" plain :icon="Plus" @click="openDialog" v-hasPermi="['tender:biddingPlan:add']">新增</el-button>
</el-form-item>
</el-form>
</el-card>
@ -34,8 +33,9 @@
<el-table-column prop="bidd" align="center">
<template #header> <span style="color: red">*</span>招标文件 </template>
<template #default="scope">
<el-button type="primary" link v-hasPermi="['tender:biddingPlan:getAnnex']" @click="biddView(scope.row)"
v-if="scope.row.annexCount > 0">查看文件({{ scope.row.annexCount }})</el-button>
<el-button type="primary" link v-hasPermi="['tender:biddingPlan:getAnnex']" @click="biddView(scope.row)" v-if="scope.row.annexCount > 0"
>查看文件({{ scope.row.annexCount }})</el-button
>
</template>
</el-table-column>
<el-table-column prop="winningBidder" align="center">
@ -47,57 +47,104 @@
<el-table-column prop="bidFileName" align="center">
<template #header> <span style="color: red">*</span>中标文件 </template>
<template #default="scope">
<el-button type="primary" link @click="openPdf(scope.row.bidFile)">{{ scope.row.bidFileName }}
</el-button>
<el-button type="primary" link @click="openPdf(scope.row.bidFile)">{{ scope.row.bidFileName }} </el-button>
</template>
</el-table-column>
<el-table-column prop="plannedBiddingTime" align="center" width="250">
<el-table-column prop="plannedBiddingTime" align="center" width="200px">
<template #header> <span style="color: red">*</span>计划招标时间 </template>
<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"
v-hasPermi="['tender:biddingPlan:edit']" />
<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"
v-hasPermi="['tender:biddingPlan:edit']"
style="width: 150px"
/>
</template>
</el-table-column>
<el-table-column prop="contractPrice" align="center" width="200">
<el-table-column prop="contractPrice" align="center" width="200px">
<template #header> <span style="color: red">*</span>合同金额 </template>
<template #default="scope">
<el-input-number :model-value="scope.row.contractPrice" @change="
(val) => {
scope.row.contractPrice = val;
changeContractPrice(val, scope.row);
}
" :precision="4" :min="0" :controls="false" :disabled="scope.row.bidStatus == 1"
v-hasPermi="['tender:biddingPlan:edit']" />
<el-input-number
:model-value="scope.row.contractPrice"
@change="
(val) => {
scope.row.contractPrice = val;
changeContractPrice(val, scope.row);
}
"
:precision="4"
:min="0"
:controls="false"
:disabled="scope.row.bidStatus == 1"
v-hasPermi="['tender:biddingPlan:edit']"
width="200px"
/>
</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:biddingPlan:uploadBiddingDocuments']" :disabled="scope.row.bidStatus == 1">招标上传
<el-button
type="primary"
link
icon="FolderOpened"
@click="handleSave(scope.row)"
v-hasPermi="['tender:biddingPlan:uploadBiddingDocuments']"
:disabled="scope.row.bidStatus == 1"
>招标上传
</el-button>
<el-button type="primary" link icon="FolderOpened" @click="handleWinTheBid(scope.row)"
v-hasPermi="['tender:biddingPlan:uploadBiddingDocuments']" :disabled="scope.row.bidStatus == 1">中标上传
<el-button
type="primary"
link
icon="FolderOpened"
@click="handleWinTheBid(scope.row)"
v-hasPermi="['tender:biddingPlan:uploadBiddingDocuments']"
: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:biddingPlan:getMore']">详情</el-button>
<el-button
type="primary"
link
icon="View"
@click="handleDetail(scope.row)"
:disabled="scope.row.bidStatus == 1"
v-hasPermi="['tender:biddingPlan:getMore']"
>详情</el-button
>
<el-button type="primary" link icon="Delete" @click="delHandle(scope.row)"
:disabled="scope.row.bidStatus == 1" v-hasPermi="['tender:biddingPlan:remove']">删除</el-button>
<el-button type="primary" link icon="Lock" @click="editStatusBtn(scope.row)"
:disabled="scope.row.bidStatus == 1" v-hasPermi="['tender:biddingPlan:editStatus']">确定</el-button>
<el-button
type="primary"
link
icon="Delete"
@click="delHandle(scope.row)"
:disabled="scope.row.bidStatus == 1"
v-hasPermi="['tender:biddingPlan:remove']"
>删除</el-button
>
<el-button
type="primary"
link
icon="Lock"
@click="editStatusBtn(scope.row)"
:disabled="scope.row.bidStatus == 1"
v-hasPermi="['tender:biddingPlan:editStatus']"
>确定</el-button
>
</template>
</el-table-column>
</el-table>
<pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum"
v-model:limit="queryParams.pageSize" @pagination="getList" />
<pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize" @pagination="getList" />
</el-tab-pane>
</el-tabs>
<el-dialog title="新增" v-model="dialogVisible" width="75%" draggable>
@ -119,8 +166,7 @@
<el-form :model="treeForm" :inline="true">
<el-form-item label="版本号" prop="versions">
<el-select v-model="treeForm.versions" placeholder="选择版本号" @change="changeVersions">
<el-option v-for="item in options" :key="item.versions" :label="item.versions"
:value="item.versions" />
<el-option v-for="item in options" :key="item.versions" :label="item.versions" :value="item.versions" />
</el-select>
</el-form-item>
<el-form-item label="表名" prop="sheet" v-if="planType == '2'">
@ -133,8 +179,16 @@
</el-form-item>
</el-form>
</el-card>
<el-table :data="treeData" ref="treeTableRef" v-loading="treeLoading" row-key="id" border lazy
default-expand-all @selection-change="handleSelection">
<el-table
:data="treeData"
ref="treeTableRef"
v-loading="treeLoading"
row-key="id"
border
lazy
default-expand-all
@selection-change="handleSelection"
>
<el-table-column type="selection" width="55" />
<el-table-column prop="num" label="编号" />
<el-table-column prop="name" label="工程或费用名称" />
@ -148,27 +202,34 @@
(scope.row.quantity ? Number(scope.row.quantity) : 0) -
(scope.row.useQuantity ? Number(scope.row.useQuantity) : 0) -
(scope.row.selectNum ? Number(scope.row.selectNum) : 0) ==
0
0
? activeTab == 2
? 0
: ''
: (
(scope.row.quantity ? Number(scope.row.quantity) : 0) -
(scope.row.selectNum ? Number(scope.row.selectNum) : 0) -
(scope.row.useQuantity ? Number(scope.row.useQuantity) : 0)
).toFixed(2)
(scope.row.quantity ? Number(scope.row.quantity) : 0) -
(scope.row.selectNum ? Number(scope.row.selectNum) : 0) -
(scope.row.useQuantity ? Number(scope.row.useQuantity) : 0)
).toFixed(2)
}}
</template>
</el-table-column>
<el-table-column prop="selectNum" label="设计量" align="center">
<template #default="scope">
<el-input-number :model-value="scope.row.selectNum" @change="
(val) => {
scope.row.selectNum = val;
handleNumberChange(scope.row);
}
" :precision="2" :step="1" :controls="false" :max="Math.floor(scope.row.quantity)"
v-if="scope.row.quantity && scope.row.quantity != 0 && scope.row.unitPrice" />
<el-input-number
:model-value="scope.row.selectNum"
@change="
(val) => {
scope.row.selectNum = val;
handleNumberChange(scope.row);
}
"
:precision="2"
:step="1"
:controls="false"
:max="Math.floor(scope.row.quantity)"
v-if="scope.row.quantity && scope.row.quantity != 0 && scope.row.unitPrice"
/>
</template>
</el-table-column>
<el-table-column prop="unitPrice" label="单价" align="center">
@ -187,9 +248,9 @@
0
? ''
: ((scope.row.quantity ? Number(scope.row.quantity) : 0) -
(scope.row.useQuantity ? Number(scope.row.useQuantity) : 0) -
(scope.row.selectNum ? Number(scope.row.selectNum) : 0)) *
Number(scope.row.unitPrice),
(scope.row.useQuantity ? Number(scope.row.useQuantity) : 0) -
(scope.row.selectNum ? Number(scope.row.selectNum) : 0)) *
Number(scope.row.unitPrice),
false
)
}}
@ -228,8 +289,15 @@
<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" v-hasPermi="['tender:biddingPlanAnnex:remove']">删除</el-button>
<el-button
type="primary"
link
icon="Delete"
@click="delHandlebidd(scope.row)"
v-if="scope.row.bidStatus != 1"
v-hasPermi="['tender:biddingPlanAnnex:remove']"
>删除</el-button
>
</template>
</el-table-column>
</el-table>
@ -662,7 +730,7 @@ const delHandlebidd = (row: any) => {
});
biddView(biddViewRow.value);
}
getList()
getList();
});
};
//修改状态

View File

@ -28,7 +28,7 @@
<el-input v-model="queryParams.flowName" placeholder="请输入流程名称" @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="项目" prop="projectId">
<el-select v-model="queryParams.projectId" placeholder="全部" clearable filterable style="width: 150px; margin-right: 20px">
<el-select v-model="queryParams.projectId" placeholder="全部" filterable style="width: 150px; margin-right: 20px">
<el-option v-for="project in projects" :key="project.id" :label="project.name" :value="project.id" />
</el-select>
</el-form-item>

View File

@ -11,7 +11,7 @@
<el-input v-model="queryParams.flowName" placeholder="请输入流程名称" @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="项目" prop="projectId">
<el-select v-model="queryParams.projectId" placeholder="全部" clearable filterable style="width: 150px; margin-right: 20px">
<el-select v-model="queryParams.projectId" placeholder="全部" filterable style="width: 150px; margin-right: 20px">
<el-option v-for="project in projects" :key="project.id" :label="project.name" :value="project.id" />
</el-select>
</el-form-item>

View File

@ -16,7 +16,7 @@
<el-input v-model="queryParams.flowName" placeholder="请输入流程名称" @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="项目" prop="projectId">
<el-select v-model="queryParams.projectId" placeholder="全部" clearable filterable style="width: 150px; margin-right: 20px">
<el-select v-model="queryParams.projectId" placeholder="全部" filterable style="width: 150px; margin-right: 20px">
<el-option v-for="project in projects" :key="project.id" :label="project.name" :value="project.id" />
</el-select>
</el-form-item>

View File

@ -16,7 +16,7 @@
<el-input v-model="queryParams.flowName" placeholder="请输入流程名称" @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="项目" prop="projectId">
<el-select v-model="queryParams.projectId" placeholder="全部" clearable filterable style="width: 150px; margin-right: 20px">
<el-select v-model="queryParams.projectId" placeholder="全部" filterable style="width: 150px; margin-right: 20px">
<el-option v-for="project in projects" :key="project.id" :label="project.name" :value="project.id" />
</el-select>
</el-form-item>