This commit is contained in:
2025-09-09 18:18:17 +08:00
parent d92a540786
commit a50fbc26d7
3 changed files with 96 additions and 61 deletions

View File

@ -58,18 +58,18 @@
<el-card shadow="never" class="mb8"> <el-card shadow="never" class="mb8">
<el-table ref="tableRef" v-loading="loading" :data="tableData" row-key="id" border lazy default-expand-all> <el-table ref="tableRef" v-loading="loading" :data="tableData" row-key="id" border lazy default-expand-all>
<el-table-column prop="num" label="编号" /> <el-table-column prop="num" label="编号" />
<el-table-column prop="name" label="工程或费用名称" /> <el-table-column prop="name" label="工程或费用名称" />
<el-table-column prop="unit" label="单位" align="center" /> <el-table-column prop="unit" label="单位" align="center" />
<el-table-column prop="quantity" label="数量" align="center" /> <el-table-column prop="quantity" label="数量" align="center" />
<el-table-column prop="specification" label="规格" align="center" /> <el-table-column prop="specification" label="规格" align="center" />
<el-table-column prop="remark" label="单价" align="center"> <el-table-column label="单价" align="center">
<template #default="scope"> <template #default="scope">
<span>{{ scope.row.unitPrice }}</span> {{ proxy.formatPrice(scope.row.unitPrice) }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="price" label="总价" align="center"> <el-table-column prop="price" label="总价" align="center">
<template #default="scope"> <template #default="scope">
{{ scope.row.price }} {{ proxy.formatPrice(scope.row.price) }}
</template> </template>
</el-table-column> </el-table-column>
<!-- <el-table-column prop="price" label="操作" align="center"> <!-- <el-table-column prop="price" label="操作" align="center">
@ -92,7 +92,7 @@
<script setup lang="ts"> <script setup lang="ts">
import { useUserStoreHook } from '@/store/modules/user'; import { useUserStoreHook } from '@/store/modules/user';
import { BiddingImportExcelFile, getTreeLimit, biddingLimitListUpdate, sheetList, obtainAllVersionNumbers } from '@/api/bidding/biddingLimit'; import { BiddingImportExcelFile, getTreeLimit, biddingLimitListUpdate, sheetList, obtainAllVersionNumbers } from '@/api/bidding/biddingLimit';
const { proxy } = getCurrentInstance() as ComponentInternalInstance; const { proxy } = getCurrentInstance() as any;
const userStore = useUserStoreHook(); const userStore = useUserStoreHook();
const currentProject = computed(() => userStore.selectedProject); const currentProject = computed(() => userStore.selectedProject);

View File

@ -1,7 +1,6 @@
<template> <template>
<div class="p-2"> <div class="p-2">
<transition :enter-active-class="proxy?.animate.searchAnimate.enter" <transition :enter-active-class="proxy?.animate.searchAnimate.enter" :leave-active-class="proxy?.animate.searchAnimate.leave">
:leave-active-class="proxy?.animate.searchAnimate.leave">
<div v-show="showSearch" class="mb-[10px]"> <div v-show="showSearch" class="mb-[10px]">
<el-card shadow="hover"> <el-card shadow="hover">
<el-form ref="queryFormRef" :model="queryParams" :inline="true" label-width="100px"> <el-form ref="queryFormRef" :model="queryParams" :inline="true" label-width="100px">
@ -12,15 +11,25 @@
<el-input v-model="queryParams.formalitiesId" placeholder="请输入手续办理清单模板id" clearable @keyup.enter="handleQuery" /> <el-input v-model="queryParams.formalitiesId" placeholder="请输入手续办理清单模板id" clearable @keyup.enter="handleQuery" />
</el-form-item> --> </el-form-item> -->
<el-form-item label="计划开始时间" prop="planTheStartTime"> <el-form-item label="计划开始时间" prop="planTheStartTime">
<el-date-picker clearable v-model="queryParams.planTheStartTime" type="date" value-format="YYYY-MM-DD" <el-date-picker
placeholder="请选择计划开始时间" /> clearable
v-model="queryParams.planTheStartTime"
type="date"
value-format="YYYY-MM-DD"
placeholder="请选择计划开始时间"
/>
</el-form-item> </el-form-item>
<el-form-item label="负责人" prop="head"> <el-form-item label="负责人" prop="head">
<el-input v-model="queryParams.head" placeholder="请输入负责人" clearable @keyup.enter="handleQuery" /> <el-input v-model="queryParams.head" placeholder="请输入负责人" clearable @keyup.enter="handleQuery" />
</el-form-item> </el-form-item>
<el-form-item label="实际完成时间" prop="actualCompletionTime"> <el-form-item label="实际完成时间" prop="actualCompletionTime">
<el-date-picker clearable v-model="queryParams.actualCompletionTime" type="date" value-format="YYYY-MM-DD" <el-date-picker
placeholder="请选择实际完成时间" /> clearable
v-model="queryParams.actualCompletionTime"
type="date"
value-format="YYYY-MM-DD"
placeholder="请选择实际完成时间"
/>
</el-form-item> </el-form-item>
<!-- <el-form-item label="手续材料" prop="formalitiesUrl"> <!-- <el-form-item label="手续材料" prop="formalitiesUrl">
<el-input v-model="queryParams.formalitiesUrl" placeholder="请输入手续材料" clearable @keyup.enter="handleQuery" /> <el-input v-model="queryParams.formalitiesUrl" placeholder="请输入手续材料" clearable @keyup.enter="handleQuery" />
@ -38,13 +47,15 @@
<template #header> <template #header>
<el-row :gutter="10" class="mb8"> <el-row :gutter="10" class="mb8">
<el-col :span="1.5"> <el-col :span="1.5">
<el-button type="primary" plain icon="Plus" @click="handleAdd()" <el-button type="primary" plain icon="Plus" @click="handleAdd()" v-hasPermi="['formalities:formalitiesAreConsolidated:getTree']"
v-hasPermi="['formalities:formalitiesAreConsolidated:getTree']">新增</el-button> >新增</el-button
<span style="margin-left: 10px"><el-tooltip class="box-item" effect="dark" content="从原有模板列表选择新增" >
placement="top"> <span style="margin-left: 10px"
><el-tooltip class="box-item" effect="dark" content="从原有模板列表选择新增" placement="top">
<el-icon color="#409efc"> <el-icon color="#409efc">
<WarningFilled /> <WarningFilled />
</el-icon> </el-tooltip></span> </el-icon> </el-tooltip
></span>
</el-col> </el-col>
<el-col :span="1.5" v-hasPermi="['formalities:listOfFormalities:list']"> <el-col :span="1.5" v-hasPermi="['formalities:listOfFormalities:list']">
<el-button type="primary" plain icon="Plus" @click="addTemplate()">新增数据</el-button> <el-button type="primary" plain icon="Plus" @click="addTemplate()">新增数据</el-button>
@ -71,11 +82,13 @@
</el-row> </el-row>
</template> </template>
<el-table v-loading="loading" :data="formalitiesAreConsolidatedList" @selection-change="handleSelectionChange" <el-table v-loading="loading" :data="formalitiesAreConsolidatedList" @selection-change="handleSelectionChange" row-key="id" default-expand-all>
row-key="id" default-expand-all>
<el-table-column type="selection" width="55" align="center" /> <el-table-column type="selection" width="55" align="center" />
<!-- <el-table-column label="手续办理清单模板父级" align="center" prop="formalitiesPname" /> --> <el-table-column label="手续办理清单" align="left" prop="formalitiesName">
<el-table-column label="手续办理清单" align="left" prop="formalitiesName" /> <template #default="scope">
<span style="white-space: nowrap">{{ scope.row.formalitiesName }}</span>
</template>
</el-table-column>
<el-table-column label="计划开始时间" align="center" prop="planTheStartTime" width="180"> <el-table-column label="计划开始时间" align="center" prop="planTheStartTime" width="180">
<template #default="scope"> <template #default="scope">
<span>{{ parseTime(scope.row.planTheStartTime, '{y}-{m}-{d}') }}</span> <span>{{ parseTime(scope.row.planTheStartTime, '{y}-{m}-{d}') }}</span>
@ -95,52 +108,58 @@
<el-table-column label="办理状态" align="center" prop="processingStatus" /> <el-table-column label="办理状态" align="center" prop="processingStatus" />
<el-table-column label="手续材料" align="center" prop="formalitiesUrl" width="180"> <el-table-column label="手续材料" align="center" prop="formalitiesUrl" width="180">
<template #default="scope"> <template #default="scope">
<div style="display: flex; justify-content: center; align-items: center;"> <div style="display: flex; justify-content: center; align-items: center">
<div> <div>
<el-link type="primary" :underline="false" @click="handlePreview(scope.row)" target="_blank" <el-link type="primary" :underline="false" @click="handlePreview(scope.row)" target="_blank" v-if="scope.row.formalitiesPid"
v-if="scope.row.formalitiesPid">查看</el-link> >查看</el-link
>
</div> </div>
<div> <div>
<el-badge v-if="scope.row.fileCount" :value="scope.row.fileCount" class="item" type="danger"> <el-badge v-if="scope.row.fileCount" :value="scope.row.fileCount" class="item" type="danger"> </el-badge>
</el-badge>
</div> </div>
</div> </div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="备注" align="center" prop="remark" /> <el-table-column label="备注" align="center" prop="remark" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width"> <el-table-column label="操作" align="center" fixed="right">
<template #default="scope"> <template #default="scope">
<div v-if="scope.row.formalitiesPid"> <div v-if="scope.row.formalitiesPid">
<el-button link type="primary" icon="Edit" v-if="scope.row.processingStatus != '已完成'" <el-button
link
type="primary"
icon="Edit"
v-if="scope.row.processingStatus != '已完成'"
@click="handleUpdate(scope.row)" @click="handleUpdate(scope.row)"
v-hasPermi="['formalities:formalitiesAreConsolidated:edit']">修改</el-button> v-hasPermi="['formalities:formalitiesAreConsolidated:edit']"
<el-button link type="primary" icon="Upload" v-if="scope.row.processingStatus != '已完成'" >修改</el-button
@click="handleUpload(scope.row)">上传</el-button> >
<el-button link type="primary" icon="EditPen" @click="handleUpdateStatus(scope.row)" <el-button link type="primary" icon="Upload" v-if="scope.row.processingStatus != '已完成'" @click="handleUpload(scope.row)"
v-hasPermi="['formalities:formalitiesAreConsolidated:edit']">修改状态</el-button> >上传</el-button
>
<el-button
link
type="primary"
icon="EditPen"
@click="handleUpdateStatus(scope.row)"
v-hasPermi="['formalities:formalitiesAreConsolidated:edit']"
>修改状态</el-button
>
</div> </div>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum" <pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize" @pagination="getList" />
v-model:limit="queryParams.pageSize" @pagination="getList" />
</el-card> </el-card>
<!-- 添加或修改合规性手续合账对话框 --> <!-- 添加或修改合规性手续合账对话框 -->
<el-dialog :title="dialog.title" v-model="dialog.visible" width="500px" append-to-body> <el-dialog :title="dialog.title" v-model="dialog.visible" width="500px" append-to-body>
<el-form ref="formalitiesAreConsolidatedFormRef" :model="form" :rules="rules" label-width="160px"> <el-form ref="formalitiesAreConsolidatedFormRef" :model="form" :rules="rules" label-width="160px">
<el-form-item label="计划开始时间" prop="planTheStartTime"> <el-form-item label="计划开始时间" prop="planTheStartTime">
<el-date-picker clearable v-model="form.planTheStartTime" type="date" value-format="YYYY-MM-DD" <el-date-picker clearable v-model="form.planTheStartTime" type="date" value-format="YYYY-MM-DD" placeholder="请选择计划开始时间">
placeholder="请选择计划开始时间">
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
<el-form-item label="计划完成时间" prop="planTheStartTime"> <el-form-item label="计划完成时间" prop="planTheStartTime">
<el-date-picker clearable v-model="form.planTheEndTime" type="date" value-format="YYYY-MM-DD" <el-date-picker clearable v-model="form.planTheEndTime" type="date" value-format="YYYY-MM-DD" placeholder="请选择计划完成时间">
placeholder="请选择计划完成时间">
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
<el-form-item label="负责人" prop="head"> <el-form-item label="负责人" prop="head">
@ -162,8 +181,7 @@
<el-table :data="fileList" style="width: 100%" border v-loading="fileLoading"> <el-table :data="fileList" style="width: 100%" border v-loading="fileLoading">
<el-table-column prop="fileName" label="文件" align="center"> <el-table-column prop="fileName" label="文件" align="center">
<template #default="scope"> <template #default="scope">
<el-link :key="scope.row.annexUrl" :href="scope.row.annexUrl" target="_blank" type="primary" <el-link :key="scope.row.annexUrl" :href="scope.row.annexUrl" target="_blank" type="primary" :underline="false">
:underline="false">
{{ scope.row.fileName || '查看文件' }} {{ scope.row.fileName || '查看文件' }}
</el-link> </el-link>
</template> </template>
@ -174,8 +192,13 @@
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<pagination v-show="fileTotal > 0" :total="fileTotal" v-model:page="fileParams.pageNum" <pagination
v-model:limit="fileParams.pageSize" @pagination="getFileList" /> v-show="fileTotal > 0"
:total="fileTotal"
v-model:page="fileParams.pageNum"
v-model:limit="fileParams.pageSize"
@pagination="getFileList"
/>
<template #footer> <template #footer>
<span> <span>
<el-button type="primary" @click="viewVisible = false">关闭</el-button> <el-button type="primary" @click="viewVisible = false">关闭</el-button>
@ -185,9 +208,18 @@
<!-- 上传文件对话框 --> <!-- 上传文件对话框 -->
<el-dialog draggable title="上传文件" v-model="fileVisible" width="450"> <el-dialog draggable title="上传文件" v-model="fileVisible" width="450">
<el-form-item label="上传文件" prop="processingStatus"> <el-form-item label="上传文件" prop="processingStatus">
<file-upload v-model="file" ref="uploadRef" uploadUrl="/formalities/formalitiesAnnex" <file-upload
v-hasPermi="['formalities:formalitiesAnnex:add']" :data="{ formalitiesId: form.id }" :fileType="['pdf']" v-model="file"
:auto-upload="false" showFileList method="put" :onUploadSuccess="handleUploadSuccess" /> ref="uploadRef"
uploadUrl="/formalities/formalitiesAnnex"
v-hasPermi="['formalities:formalitiesAnnex:add']"
:data="{ formalitiesId: form.id }"
:fileType="['pdf']"
:auto-upload="false"
showFileList
method="put"
:onUploadSuccess="handleUploadSuccess"
/>
</el-form-item> </el-form-item>
<template #footer> <template #footer>
<span> <span>
@ -215,14 +247,18 @@
</el-dialog> </el-dialog>
<el-dialog title="新增合规性手续合账" v-model="templateVisbile" width="450"> <el-dialog title="新增合规性手续合账" v-model="templateVisbile" width="450">
<el-form-item label="合规性手续模板"> <el-form-item label="合规性手续模板">
<el-cascader v-model="tempValue" :options="tempTreeList" :props="{ <el-cascader
multiple: true, v-model="tempValue"
value: 'id', :options="tempTreeList"
label: 'name', :props="{
disabled: (node: any) => { multiple: true,
return (node.pid == 0 && !node.children.length) || node.status == 1; // 有 parent 的是二级,没有 parent 的是一级,禁用一级 value: 'id',
} label: 'name',
}" /> disabled: (node: any) => {
return (node.pid == 0 && !node.children.length) || node.status == 1; // 有 parent 的是二级,没有 parent 的是一级,禁用一级
}
}"
/>
<div style="margin-left: 10px; display: flex; justify-content: center; align-items: center"> <div style="margin-left: 10px; display: flex; justify-content: center; align-items: center">
<el-tooltip class="box-item" effect="dark" content="列表上已选择得模版不可再选" placement="top"> <el-tooltip class="box-item" effect="dark" content="列表上已选择得模版不可再选" placement="top">
<el-icon> <el-icon>
@ -248,8 +284,7 @@
<el-option v-for="item in listOfFormalitiesList" :label="item.name" :value="item.id" /> <el-option v-for="item in listOfFormalitiesList" :label="item.name" :value="item.id" />
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="名称" prop="formalitiesName" <el-form-item label="名称" prop="formalitiesName" :rules="[{ required: true, message: '请输入名称', trigger: 'blur' }]">
:rules="[{ required: true, message: '请输入名称', trigger: 'blur' }]">
<el-input v-model="formTemplate.formalitiesName" placeholder="请输入名称" /> <el-input v-model="formTemplate.formalitiesName" placeholder="请输入名称" />
</el-form-item> </el-form-item>
</el-form> </el-form>

View File

@ -19,9 +19,9 @@
<el-card shadow="never"> <el-card shadow="never">
<template #header> <template #header>
<el-row :gutter="10" class="mb8"> <el-row :gutter="10" class="mb8">
<el-col :span="1.5"> <!-- <el-col :span="1.5">
<el-button type="primary" plain icon="Plus" @click="handleAdd" v-hasPermi="['out:constructionValue:add']">新增</el-button> <el-button type="primary" plain icon="Plus" @click="handleAdd" v-hasPermi="['out:constructionValue:add']">新增</el-button>
</el-col> </el-col> -->
<right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar> <right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
</el-row> </el-row>
</template> </template>