总包工程完善以及logo替换

This commit is contained in:
BianLzhaoMin 2025-08-14 10:24:44 +08:00
parent 54d5513d31
commit 2c12fe55ac
11 changed files with 272 additions and 143 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.1 KiB

After

Width:  |  Height:  |  Size: 14 KiB

BIN
public/favicon.ico-1 Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

View File

@ -1,35 +1,27 @@
import request from '@/utils/request'
// 新增总包工程
export const addAllProjectAPI = (data) => {
// 新增和修改总包工程
export const addAndEditAllProjectAPI = (data) => {
return request({
url: '/project/***',
method: 'POST',
data,
})
}
// 修改总包工程
export const editAllProjectAPI = (data) => {
return request({
url: '/project/***',
url: '/bmw/mainProject/addOrUpdateMainProject',
method: 'POST',
data,
})
}
// 删除总包工程
export const deleteAllProjectAPI = (id) => {
export const deleteAllProjectAPI = (data) => {
return request({
url: `/project/****/${id}`,
method: 'DELETE',
url: '/bmw/mainProject/delMainProject',
method: 'POST',
data,
})
}
// 获取总包工程列表
export const getAllProjectListAPI = (data) => {
return request({
url: '/project/***',
url: '/bmw/mainProject/list',
method: 'GET',
params: data,
})

BIN
src/assets/logo/logo1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

View File

@ -136,7 +136,6 @@
select-on-indeterminate
@selection-change="handleSelectionChange"
>
>
<el-table-column
width="45"
align="center"
@ -319,7 +318,7 @@ export default {
//
showSearch: true,
//
selectionShow: true,
selectionShow: this.isSelectShow,
//
indexNumShow: true,
//

View File

@ -8,13 +8,37 @@
placement="top"
v-if="search"
>
<el-button size="mini" circle icon="el-icon-search" @click="toggleSearch()" />
<el-button
size="mini"
circle
icon="el-icon-search"
@click="toggleSearch()"
/>
</el-tooltip>
<el-tooltip class="item" effect="dark" content="刷新" placement="top">
<el-button size="mini" circle icon="el-icon-refresh" @click="refresh()" />
<el-tooltip
class="item"
effect="dark"
content="刷新"
placement="top"
>
<el-button
size="mini"
circle
icon="el-icon-refresh"
@click="refresh()"
/>
</el-tooltip>
<el-tooltip class="item" effect="dark" content="列表筛选" placement="top">
<el-dropdown trigger="click" :hide-on-click="false" style="padding-left: 12px">
<el-tooltip
class="item"
effect="dark"
content="列表筛选"
placement="top"
>
<el-dropdown
trigger="click"
:hide-on-click="false"
style="padding-left: 12px"
>
<el-button size="mini" circle icon="el-icon-menu" />
<el-dropdown-menu slot="dropdown">
<el-dropdown-item>
@ -22,18 +46,25 @@
:checked="selectionShow"
@change="
() => {
this.$emit('update:selectionShow', !this.selectionShow)
this.$emit(
'update:selectionShow',
!this.selectionShow,
)
}
"
>复选框</el-checkbox
>
复选框
</el-checkbox>
</el-dropdown-item>
<el-dropdown-item>
<el-checkbox
:checked="indexNumShow"
@change="
() => {
this.$emit('update:indexNumShow', !this.indexNumShow)
this.$emit(
'update:indexNumShow',
!this.indexNumShow,
)
}
"
>序号</el-checkbox
@ -44,7 +75,10 @@
:checked="handleShow"
@change="
() => {
this.$emit('update:handleShow', !this.handleShow)
this.$emit(
'update:handleShow',
!this.handleShow,
)
}
"
>操作</el-checkbox
@ -55,7 +89,9 @@
<el-dropdown-item :key="index">
<el-checkbox
:checked="item.checked"
@change="checkboxChange($event, item.t_label)"
@change="
checkboxChange($event, item.t_label)
"
:label="item.t_label"
>{{ item.t_label }}</el-checkbox
>

View File

@ -47,7 +47,7 @@
</template>
<script>
import logoImg from '@/assets/logo/logo.png'
import logoImg from '@/assets/logo/logo1.png'
import variables from '@/assets/styles/variables.scss'

View File

@ -8,42 +8,20 @@ export const formLabel = [
]
export const columnsList = [
{ t_props: 'projectName', t_label: '总工程名称' },
{ t_props: 'level', t_label: '电压等级' },
{ t_props: 'mainProName', t_label: '总工程名称' },
{ t_props: 'volLevel', t_label: '电压等级' },
{
t_props: 'count',
t_label: '标段工程数量',
t_slot: 'count',
},
{ t_props: 'status', t_label: '状态' },
]
export const testTableList = [
{
projectName: '总工程名称',
level: '电压等级',
status: '在建',
count: '6',
},
{
projectName: '总工程名称2',
level: '电压等级',
status: '停工',
count: '5',
},
{
projectName: '总工程名称3',
level: '电压等级',
status: '筹建',
count: '10',
},
{ t_slot: 'proStatus', t_label: '状态' },
]
export const dialogConfig = {
outerVisible: false,
outerTitle: '',
outerWidth: '50%',
outerWidth: '40%',
minHeight: '',
maxHeight: '',
}

View File

@ -7,7 +7,6 @@
:showRightTools="true"
ref="allProjectTableRef"
:columnsList="columnsList"
:testTableList="testTableList"
:request-api="getAllProjectListAPI"
>
<template slot="btn" slot-scope="{ queryParams }">
@ -35,10 +34,23 @@
<!-- 标段工程数量 -->
<template slot="count" slot-scope="{ data }">
<span class="cursor-blue" @click="onHandleViewLotProject(data)">
{{ data.count }}
{{ data.pmProjectVoList.length || 0 }}
</span>
</template>
<!-- 状态 -->
<template slot="proStatus" slot-scope="{ data }">
<el-tag
size="mini"
type="primary"
v-if="data.proStatus !== '' && data.proStatus !== null"
>
{{ projectStatusList[data.proStatus] || '' }}
</el-tag>
<span v-else>-</span>
</template>
<template slot="handle" slot-scope="{ data }">
<el-button
plain
@ -75,26 +87,26 @@
:model="addOrEditForm"
:rules="addOrEditFormRules"
>
<el-form-item label="总工程名称" prop="projectName">
<el-form-item label="总工程名称" prop="mainProName">
<el-input
clearable
placeholder="请输入总工程名称"
v-model="addOrEditForm.projectName"
v-model="addOrEditForm.mainProName"
/>
</el-form-item>
<el-form-item label="电压等级" prop="voltageLevel">
<el-form-item label="电压等级" prop="volLevel">
<el-select
clearable
filterable
style="width: 100%"
placeholder="请选择电压等级"
v-model="addOrEditForm.voltageLevel"
v-model="addOrEditForm.volLevel"
>
<el-option
:key="item.value"
:label="item.label"
:value="item.value"
v-for="item in voltageLevelOptions"
v-for="item in dict.type.voltage_level"
/>
</el-select>
</el-form-item>
@ -129,33 +141,39 @@
<el-table-column
align="center"
label="子项目名称"
prop="lotProjectName"
prop="proName"
/>
<el-table-column
label="专业"
label="工程类型"
align="center"
prop="professional"
prop="proType"
/>
<el-table-column
align="center"
label="所属分公司"
prop="branchCompany"
prop="subComName"
/>
<el-table-column
align="center"
label="电压等级"
prop="voltageLevel"
prop="volLevel"
/>
<el-table-column
label="工程地址"
align="center"
prop="engineeringAddress"
prop="proAddress"
/>
<el-table-column
align="center"
label="工程状态"
prop="engineeringStatus"
/>
prop="proStatus"
>
<template slot-scope="{ row }">
<el-tag size="mini" type="primary">
{{ row.proStatus }}
</el-tag>
</template>
</el-table-column>
</el-table>
</template>
</template>
@ -166,15 +184,15 @@
<script>
import TableModel from '@/components/TableModel'
import DialogModel from '@/components/DialogModel'
import { formLabel, columnsList, dialogConfig, testTableList } from './config'
import { formLabel, columnsList, dialogConfig } from './config'
import {
addAllProjectAPI,
editAllProjectAPI,
addAndEditAllProjectAPI,
deleteAllProjectAPI,
getAllProjectListAPI,
} from '@/api/basic-manage/project-manage/all-project'
export default {
name: 'AllProject',
dicts: ['voltage_level'],
components: {
TableModel,
DialogModel,
@ -185,25 +203,24 @@ export default {
formLabel,
columnsList,
dialogConfig,
testTableList,
getAllProjectListAPI,
//
addOrEditForm: {
projectName: '', //
voltageLevel: '', //
mainProName: '', //
volLevel: '', //
id: '', // id
},
//
addOrEditFormRules: {
projectName: [
mainProName: [
{
required: true,
trigger: 'blur',
message: '请输入总工程名称',
},
],
voltageLevel: [
volLevel: [
{
required: true,
trigger: 'change',
@ -212,55 +229,36 @@ export default {
],
},
//
voltageLevelOptions: [
{
label: '110kV',
value: '110kV',
},
{
label: '220kV',
value: '220kV',
},
{
label: '330kV',
value: '330kV',
},
],
// ()
lotProjectList: [
{
lotProjectName: '子项目名称1',
professional: '专业',
branchCompany: '所属分公司1',
voltageLevel: '电压等级',
engineeringAddress: '工程地址',
engineeringStatus: '工程状态',
},
{
lotProjectName: '子项目名称2',
professional: '专业',
branchCompany: '所属分公司1',
voltageLevel: '电压等级',
engineeringAddress: '工程地址',
engineeringStatus: '工程状态',
},
{
lotProjectName: '子项目名称3',
professional: '专业',
branchCompany: '所属分公司',
voltageLevel: '电压等级',
engineeringAddress: '工程地址',
engineeringStatus: '工程状态',
},
],
lotProjectList: [],
projectStatusList: {
0: '在建',
1: '停工',
2: '筹建',
3: '遗留收尾',
4: '完工',
'': '',
},
}
},
created() {
this.projectStatusList = this.dict.type.project_status
},
methods: {
//
onHandleExportAllProject(queryParams) {
console.log(queryParams, '导出')
// this.download(
// '**',
// {
// ...queryParams,
// },
// `.xlsx`,
// )
},
//
@ -268,7 +266,16 @@ export default {
this.dialogConfig.outerTitle =
type === 1 ? '新增总工程' : '修改总工程'
this.dialogConfig.outerWidth = ''
if (type === 2) {
const { mainProName, volLevel, id } = data
this.addOrEditForm = {
mainProName,
volLevel,
id,
}
}
this.dialogConfig.outerWidth = '40%'
this.dialogConfig.minHeight = ''
this.dialogConfig.maxHeight = ''
this.dialogConfig.outerVisible = true
@ -282,10 +289,10 @@ export default {
type: 'warning',
})
.then(async () => {
const res = await deleteAllProjectAPI(data.id)
const res = await deleteAllProjectAPI({ id: data.id })
console.log(res, '删除结果')
if (res.code === 200) {
this.$msgSuccess('删除成功')
this.$modal.msgSuccess('删除成功')
this.$refs.allProjectTableRef.getTableList() //
}
})
@ -298,17 +305,24 @@ export default {
onHandleConfirmAddOrEdit() {
this.$refs.addOrEditFormRef.validate(async (valid) => {
if (valid) {
const API =
this.dialogConfig.outerTitle === '新增总工程'
? addAllProjectAPI
: editAllProjectAPI
const params = {
...this.addOrEditForm,
}
if (this.dialogConfig.outerTitle === '新增总工程') {
delete params.id
}
const res = await addAndEditAllProjectAPI(params)
const res = await API(this.addOrEditForm)
console.log(res, '新增或修改结果')
if (res.code === 200) {
this.$msgSuccess('操作成功')
this.$modal.msgSuccess(
this.dialogConfig.outerTitle === '新增总工程'
? '新增成功'
: '修改成功',
)
this.handleCloseDialogOuter()
this.$refs.allProjectTableRef.getTableList() //
} else {
this.$modal.msgError(res.msg)
}
}
})
@ -317,6 +331,7 @@ export default {
//
onHandleViewLotProject(data) {
console.log(data, '查看标段工程数量')
this.lotProjectList = data.pmProjectVoList
this.dialogConfig.outerTitle = '子项目(标段工程)概况'
this.dialogConfig.outerWidth = '80%'
this.dialogConfig.minHeight = '90vh'
@ -328,6 +343,11 @@ export default {
handleCloseDialogOuter() {
if (this.dialogConfig.outerTitle !== '子项目(标段工程)概况') {
this.$refs.addOrEditFormRef.resetFields()
this.addOrEditForm = {
mainProName: '',
volLevel: '',
id: '',
}
}
this.dialogConfig.outerVisible = false
},

View File

@ -124,11 +124,11 @@
size="medium"
v-model="addOrEditForm.status"
>
<el-radio-button label="在建" />
<el-radio-button label="筹建" />
<el-radio-button label="停工" />
<el-radio-button label="完工" />
<el-radio-button label="遗留收尾" />
<el-radio-button
:key="item.value"
:label="item.label"
v-for="item in dict.type.project_status"
/>
</el-radio-group>
</el-form-item>
</el-col>
@ -199,7 +199,7 @@ import {
} from '@/api/basic-manage/project-manage/lot-project'
export default {
name: 'AddOrEditForm',
dicts: ['project_status'],
data() {
//
const validatePlanEndTime = (rule, value, callback) => {

View File

@ -1,17 +1,121 @@
<template>
<!-- 施工人员 ---- 红绿灯管理 ---- 红绿灯统计 -->
<div class="app-container">
<h1>红绿灯统计</h1>
<AttendanceCalendar />
<el-table border :data="redAndGreenCountList">
<el-table-column
type="index"
label="序号"
width="50"
align="center"
/>
<el-table-column label="分公司" width="400" align="center">
<template slot-scope="{ row }">
<span
class="cursor-blue"
@click="onHandleClickCompany(row)"
>
{{ row.company }}
</span>
</template>
</el-table-column>
<el-table-column
align="center"
:key="item.prop"
:prop="item.prop"
:label="item.label"
show-overflow-tooltip
v-for="item in columnsList"
/>
</el-table>
<!-- 分页 -->
<pagination
:total="total"
@pagination="getTableList"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
/>
<DialogModel
:dialogConfig="dialogConfig"
@closeDialogOuter="handleCloseDialogOuter"
>
<template slot="outerContent"> 996 </template>
</DialogModel>
</div>
</template>
<script>
import AttendanceCalendar from '@/components/AttendanceCalendar'
import DialogModel from '@/components/DialogModel'
export default {
name: 'RedAndGreenCount',
components: {
AttendanceCalendar,
DialogModel,
},
data() {
return {
total: 0,
queryParams: {
pageNum: 1,
pageSize: 10,
},
dialogConfig: {
outerVisible: false,
outerTitle: '工程',
outerWidth: '70%',
minHeight: '90vh',
maxHeight: '90vh',
},
redAndGreenCountList: [
{
company: '分公司1',
count: 10,
yellowCount: 2,
greenCount: 8,
},
{
company: '分公司2',
count: 10,
yellowCount: 2,
greenCount: 8,
},
{
company: '分公司3',
count: 10,
yellowCount: 2,
greenCount: 8,
},
],
columnsList: [
{
label: '在场人数',
prop: 'count',
},
{
label: '黄灯人数',
prop: 'count',
},
{
label: '绿灯人数',
prop: 'count',
},
],
}
},
methods: {
//
getTableList() {},
//
onHandleClickCompany(row) {
console.log(row)
this.dialogConfig.outerVisible = true
},
//
handleCloseDialogOuter() {
this.dialogConfig.outerVisible = false
},
},
}
</script>
<style></style>