feat: 新增项目总览API并优化球机分配功能

新增项目总览API接口,用于查询项目列表
优化球机分配功能,增加分配状态判断和自动刷新列表
修改项目总览页面,移除无用tab并简化施工单位输入
格式化球机分配时间,确保数据格式统一
This commit is contained in:
liangbin 2026-02-04 16:36:26 +08:00
parent c0917ad406
commit ed7bce1f73
4 changed files with 17 additions and 13 deletions

10
src/api/general.js Normal file
View File

@ -0,0 +1,10 @@
import request from '@/utils/request'
// 查询项目总览列表
export function FetchProjectOverviewList(query) {
return request({
url: '/manage/contractor/projectFullProcess/list ',
method: 'get',
params: query
})
}

View File

@ -1,21 +1,13 @@
<!-- 业主模块-项目总览-列表页 --> <!-- 业主模块-项目总览-列表页 -->
<template> <template>
<div class="MainBox"> <div class="MainBox">
<el-tabs v-model="activeTab" class="mb-4">
<el-tab-pane label="签发列表" name="1"></el-tab-pane>
<el-tab-pane label="历史记录" name="2"></el-tab-pane>
<el-tab-pane label="统计报表" name="3"></el-tab-pane>
</el-tabs>
<el-form :model="queryForm" inline class="card-box mb-4" label-position="top"> <el-form :model="queryForm" inline class="card-box mb-4" label-position="top">
<el-form-item label="项目名称/编号"> <el-form-item label="项目名称/编号">
<el-input v-model="queryForm.name" placeholder="请输入项目名称/编号"></el-input> <el-input v-model="queryForm.name" placeholder="请输入项目名称/编号"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="施工单位"> <el-form-item label="施工单位">
<el-select v-model="queryForm.enterpriseName" placeholder="请选择施工单位"> <el-input v-model="queryForm.enterpriseName" placeholder="请输入施工单位"></el-input>
<el-option label="单位1" value="1"></el-option>
<el-option label="单位2" value="2"></el-option>
<el-option label="单位3" value="3"></el-option>
</el-select>
</el-form-item> </el-form-item>
<el-form-item label="作业类型"> <el-form-item label="作业类型">
<el-select v-model="queryForm.jobType" placeholder="请选择作业类型"> <el-select v-model="queryForm.jobType" placeholder="请选择作业类型">
@ -92,7 +84,6 @@
</template> </template>
<script setup name="Index"> <script setup name="Index">
import { ref } from "vue"; import { ref } from "vue";
const activeTab = ref("1"); // tab
// //
const queryForm = ref({ const queryForm = ref({

View File

@ -46,7 +46,7 @@
</el-table-column> </el-table-column>
<el-table-column label="操作" width="180"> <el-table-column label="操作" width="180">
<template #default="scope"> <template #default="scope">
<el-button size="small" type="text" @click="handleAssignBallhead(scope.row)">分配球机</el-button> <el-button v-if="scope.row.allocStatus === '0'" size="small" type="text" @click="handleAssignBallhead(scope.row)">分配球机</el-button>
<el-button size="small" type="primary" link @click="handleViewDetail(scope.row)">查看详情</el-button> <el-button size="small" type="primary" link @click="handleViewDetail(scope.row)">查看详情</el-button>
</template> </template>
</el-table-column> </el-table-column>
@ -182,6 +182,7 @@ const handleCancel = () => {
console.log('关闭弹窗') console.log('关闭弹窗')
dialogShow.value = false dialogShow.value = false
isReadonly.value = false isReadonly.value = false
getList()
} }

View File

@ -90,6 +90,7 @@
</template> </template>
<script setup> <script setup>
import dayjs from 'dayjs'
import { ref, watch, defineProps } from 'vue' import { ref, watch, defineProps } from 'vue'
import { listAvailableCamera, confirmAllocation, getAllocationDetail, getCameraDetail } from '@/api/tenement/highRiskProject' import { listAvailableCamera, confirmAllocation, getAllocationDetail, getCameraDetail } from '@/api/tenement/highRiskProject'
import { ElMessage } from 'element-plus' import { ElMessage } from 'element-plus'
@ -359,10 +360,11 @@ const handleSubmit = async () => {
// //
const submitData = { const submitData = {
applicationId: props.projectInfo?.applicationId || '', // ID
projectId: props.projectInfo?.id || props.projectInfo?.projectId, // ID projectId: props.projectInfo?.id || props.projectInfo?.projectId, // ID
cameraIds: selectedCameras.value.map(camera => camera.id || camera.cameraId), // ID cameraIds: selectedCameras.value.map(camera => camera.id || camera.cameraId), // ID
allocBy: form.value.assigner, // allocBy: form.value.assigner, //
allocTime: form.value.assignTime, // allocTime: dayjs(form.value.assignTime).format('YYYY-MM-DD HH:mm:ss'), //
allocNote: form.value.deliveryAddress // allocNote: form.value.deliveryAddress //
} }