需求增加 代码优化

This commit is contained in:
BianLzhaoMin 2025-05-13 17:09:41 +08:00
parent 02969af8a5
commit 541cfbd08d
5 changed files with 460 additions and 241 deletions

View File

@ -5,7 +5,7 @@ export function listPost(query) {
return request({
url: '/project/outsourcingPro/list',
method: 'get',
params: query
params: query,
})
}
// 查询外委外包工程列表
@ -13,7 +13,7 @@ export function listPosts(query) {
return request({
url: '/project/outsourcingPro/lists',
method: 'get',
params: query
params: query,
})
}
/*--------------------------------监理单位信息接口--------------------------------------*/
@ -22,7 +22,7 @@ export function listSupervisor(data) {
return request({
url: '/project/outsourcingPro/listSupervisor',
method: 'get',
params: data
params: data,
})
}
// 查询监理单位信息
@ -30,7 +30,7 @@ export function listSupervisorPerson(data) {
return request({
url: '/project/outsourcingPro/listSupervisorPerson',
method: 'get',
params: data
params: data,
})
}
// 根据id查询人员详细信息
@ -38,7 +38,7 @@ export function listSupervisorPersonById(data) {
return request({
url: '/project/outsourcingPro/listSupervisorPersonById',
method: 'post',
data: data
data: data,
})
}
/*--------------------------------承包商信息接口--------------------------------------*/
@ -47,7 +47,7 @@ export function selectConArr(data) {
return request({
url: '/project/outsourcingPro/selectConArr',
method: 'post',
data: data
data: data,
})
}
// 根据ID获取承包商信息
@ -55,7 +55,7 @@ export function getConsDetailsInfo(data) {
return request({
url: '/project/outsourcingPro/getConsDetailsInfo',
method: 'post',
data: data
data: data,
})
}
// 根据ID获取分包商信息
@ -63,7 +63,7 @@ export function getSubList(data) {
return request({
url: '/project/outsourcingPro/getSubList',
method: 'get',
params: data
params: data,
})
}
// 根据ID获取施工人员信息
@ -71,7 +71,7 @@ export function getConsPersonList(data) {
return request({
url: '/project/outsourcingPro/getConsPersonList',
method: 'get',
params: data
params: data,
})
}
// 根据ID获取工程材料
@ -79,7 +79,7 @@ export function getProProfile(data) {
return request({
url: '/project/outsourcingPro/getProProfile',
method: 'get',
params: data
params: data,
})
}
// 根据ID获取工器具信息
@ -87,7 +87,7 @@ export function getConsEquipList(data) {
return request({
url: '/project/outsourcingPro/getConsEquipList',
method: 'get',
params: data
params: data,
})
}
// 根据ID获取施工材料信息
@ -95,7 +95,7 @@ export function getConsMaterialsList(data) {
return request({
url: '/project/outsourcingPro/getConsMaterialsList',
method: 'get',
params: data
params: data,
})
}
// 根据ID获取人员详情
@ -103,7 +103,7 @@ export function getConstructionPersonnelDetails(data) {
return request({
url: '/project/outsourcingPro/getConstructionPersonnelDetails',
method: 'post',
data: data
data: data,
})
}
// 根据ID获取工器具详情
@ -111,7 +111,7 @@ export function getEquipDetails(data) {
return request({
url: '/project/outsourcingPro/getEquipDetails',
method: 'post',
data: data
data: data,
})
}
// 根据ID获取分包商详情
@ -119,7 +119,7 @@ export function getSubDetailsInfo(data) {
return request({
url: '/project/outsourcingPro/getSubDetailsInfo',
method: 'post',
data: data
data: data,
})
}
// 根据ID获取分包商施工人员
@ -127,7 +127,7 @@ export function getSubPersonList(data) {
return request({
url: '/project/outsourcingPro/getSubPersonList',
method: 'get',
params: data
params: data,
})
}
// 根据ID获取分包商施工人员详情信息
@ -135,14 +135,14 @@ export function getSubPersonnelDetails(data) {
return request({
url: '/project/outsourcingPro/getSubPersonnelDetails',
method: 'post',
data: data
data: data,
})
}
export function getNum(data) {
return request({
url: '/project/outsourcingPro/getNum',
method: 'post',
data: data
data: data,
})
}
// 依据供应商id 和工程id 查询 必填资料
@ -150,7 +150,7 @@ export function getProRequest(data) {
return request({
url: '/project/pro/getProRequest',
method: 'post',
data: data
data: data,
})
}
/**
@ -162,7 +162,21 @@ export function getNumList(data) {
return request({
url: '/project/outsourcingPro/getNumList',
method: 'get',
params: data
params: data,
})
}
export function getSpecialPersonNumListApi(data) {
return request({
url: '/project/admissionRequest/listPersonnelInfo',
method: 'get',
params: data,
})
}
export function getSpecialEquipNumListApi(data) {
return request({
url: '/project/equip/listEquipment',
method: 'get',
params: data,
})
}
@ -175,7 +189,7 @@ export function addAnnotations(data) {
return request({
url: '/project/outsourcingPro/addAnnotations',
method: 'post',
data: data
data: data,
})
}
/**
@ -187,6 +201,6 @@ export function delPersonByIdCardAndPhone(data) {
return request({
url: '/project/SupervisionUnit/delSupervisoryPersonApply',
method: 'post',
data: data
data: data,
})
}

View File

@ -8,7 +8,6 @@
<span class="name">在建/筹备工程数</span>
<span class="num">{{ proNum }}</span>
</div>
</div>
</div>
</el-col>
@ -25,7 +24,7 @@
<el-col :span="4">
<div class="grid-content">
<div class="text p3 hhh">
<div class="title">
<div class="title" style="cursor: pointer" @click="handleSpecialPersonNum">
<span class="name">特殊工种总人数</span>
<span class="num">{{ specialPersonNum }}</span>
</div>
@ -45,8 +44,8 @@
<el-col :span="4">
<div class="grid-content">
<div class="text p5 hhh">
<div class="title">
<span class="name">设备总数</span>
<div class="title" style="cursor: pointer" @click="handleSpecialEquipNum">
<span class="name">设备总数</span>
<span class="num">{{ specialEquipNum }}</span>
</div>
</div>
@ -56,12 +55,7 @@
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" style="float: left">
<el-form-item label="工程名称">
<el-select v-model="queryParams.proName" placeholder="请选择工程" clearable>
<el-option
v-for="dict in proOptions"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
<el-option v-for="dict in proOptions" :key="dict.value" :label="dict.label" :value="dict.value" />
</el-select>
</el-form-item>
<el-form-item>
@ -82,23 +76,121 @@
<el-table-column label="施工总人数" align="center" prop="personNum" />
<el-table-column label="特殊工种总人数" align="center" prop="specialPersonNum" />
<el-table-column label="施工设备总数" align="center" prop="equipNum" />
<el-table-column label="特殊设备总数" align="center" prop="specialEquipNum" />
<el-table-column label="特种设备总数" align="center" prop="specialEquipNum" />
<el-table-column label="操作" align="center" width="150">
<template slot-scope="scope">
<el-button type="text" size="small" @click="handleViewDetails(scope.row)">详情</el-button>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
v-show="total > 0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<!-- 特殊工种总人数弹框 -->
<el-dialog title="特殊工种总人数" :visible.sync="specialPersonNumDialogVisible" width="60%">
<el-table :data="specialPersonNumList" style="overflow-x: auto">
<el-table-column
type="index"
width="55"
label="序号"
align="center"
:index="indexContinuous(specialPersonNumQueryParams.pageNum, specialPersonNumQueryParams.pageSize)"
/>
<el-table-column label="姓名" show-overflow-tooltip width="150" align="center" prop="consName" />
<el-table-column label="岗位" width="150" align="center" prop="post" />
<el-table-column label="特殊工种种类" width="150" align="center" prop="workType" />
<el-table-column label="性别" width="60" align="center" prop="sex" />
<el-table-column label="年龄" width="60" align="center" prop="age" />
<el-table-column label="联系方式" width="120" align="center">
<template slot-scope="scope">
<!-- 检查是否存在身份证号 -->
<span v-if="scope.row.phone">{{ hideSensitiveInfo(scope.row.phone) }}</span>
<span v-else>-</span>
</template>
</el-table-column>
<el-table-column label="籍贯" show-overflow-tooltip width="150" align="center" prop="natives" />
<el-table-column label="身份证号码" width="160" align="center">
<template slot-scope="scope">
<!-- 检查是否存在身份证号 -->
<span v-if="scope.row.idCard">{{ hideSensitiveInfo(scope.row.idCard) }}</span>
<span v-else>-</span>
</template>
</el-table-column>
<el-table-column label="民族" width="60" align="center" prop="nation" />
<el-table-column label="家庭住址" show-overflow-tooltip width="150" align="center" prop="homeAddress" />
<el-table-column label="现住址" show-overflow-tooltip width="150" align="center" prop="address" />
<el-table-column label="人脸照片" align="center" prop="faceUrl">
<template slot-scope="scope">
<el-popover placement="right" title="" trigger="hover">
<img
:src="`${scope.row.facePath ? lookFaceFile() + scope.row.facePath : ''}`"
:min-width="300"
:height="300"
alt="照片"
/>
<img
slot="reference"
:src="`${scope.row.facePath ? lookFaceFile() + scope.row.facePath : ''}`"
style="max-height: 50px; max-width: 50px"
:alt="`${scope.row.facePath ? lookFaceFile() + scope.row.facePath : ''}`"
/>
</el-popover>
</template>
</el-table-column>
<el-table-column label="审批状态" width="150" align="center" prop="status" />
</el-table>
<pagination
v-show="specialPersonNumTotal > 0"
:total="specialPersonNumTotal"
:page.sync="specialPersonNumQueryParams.pageNum"
:limit.sync="specialPersonNumQueryParams.pageSize"
@pagination="getSpecialPersonNumList"
/>
</el-dialog>
<!-- 特种设备总数弹框 -->
<el-dialog title="特种设备总数" :visible.sync="specialEquipNumDialogVisible" width="60%">
<el-table :data="specialEquipNumList">
<el-table-column
type="index"
width="55"
label="序号"
align="center"
:index="indexContinuous(specialEquipNumQueryParams.pageNum, specialEquipNumQueryParams.pageSize)"
/>
<el-table-column label="工器具名称" align="center" prop="equipName" />
<el-table-column label="型号" align="center" prop="model" />
<el-table-column label="单位" align="center" prop="unit" />
<el-table-column label="数量" align="center" prop="num" />
<el-table-column label="设备类型" align="center" prop="equipType" />
<el-table-column label="检测时间" align="center" prop="detectionTime" />
<el-table-column label="是否强制检测检验" align="center" prop="isForceDetection" />
<el-table-column label="下次检测时间" align="center" prop="nextDetectionTime" />
<el-table-column label="入场时间" align="center" prop="admissionDate" />
</el-table>
<pagination
v-show="specialEquipNumTotal > 0"
:total="specialEquipNumTotal"
:page.sync="specialEquipNumQueryParams.pageNum"
:limit.sync="specialEquipNumQueryParams.pageSize"
@pagination="getSpecialEquipNumList"
/>
</el-dialog>
</div>
</template>
<script>
import { getNum, getNumList } from '@/api/pro/outsourcingPro'
import { getNum, getNumList, getSpecialPersonNumListApi, getSpecialEquipNumListApi } from '@/api/pro/outsourcingPro'
import { getProOptions } from '@/api/pro/subManagement/approval/personApproval'
import { indexContinuous } from '@/utils/bonus'
import { indexContinuous, hideSensitiveInfo, lookFaceFile } from '@/utils/bonus'
export default {
name: 'indexOwner',
@ -116,8 +208,28 @@ export default {
queryParams: {
pageNum: 1,
pageSize: 10,
proName: undefined
}
proName: undefined,
},
//
specialPersonNumDialogVisible: false,
specialPersonNumList: [],
//
specialPersonNumQueryParams: {
pageNum: 1,
pageSize: 10,
},
//
specialPersonNumTotal: 0,
//
specialEquipNumDialogVisible: false,
specialEquipNumList: [],
//
specialEquipNumQueryParams: {
pageNum: 1,
pageSize: 10,
},
//
specialEquipNumTotal: 0,
}
},
created() {
@ -127,6 +239,8 @@ export default {
},
methods: {
indexContinuous,
hideSensitiveInfo,
lookFaceFile,
getProOptions() {
getProOptions({}).then(response => {
this.proOptions = response.data
@ -135,7 +249,7 @@ export default {
getNum() {
const params = {
consUuid: this.consId,
proId: this.proId
proId: this.proId,
}
getNum(params).then(response => {
this.proNum = response.proNum
@ -161,8 +275,52 @@ export default {
resetQuery() {
this.queryParams.proName = undefined
this.handleQuery()
}
}
},
handleSpecialPersonNum() {
this.getSpecialPersonNumList()
this.specialPersonNumDialogVisible = true
},
//
getSpecialPersonNumList() {
getSpecialPersonNumListApi(this.specialPersonNumQueryParams).then(response => {
console.log(response, 'response')
this.specialPersonNumList = response.rows
this.specialPersonNumTotal = response.total
})
},
handleSpecialEquipNum() {
this.getSpecialEquipNumList()
this.specialEquipNumDialogVisible = true
},
getSpecialEquipNumList() {
getSpecialEquipNumListApi(this.specialEquipNumQueryParams).then(response => {
console.log(response, 'response')
this.specialEquipNumList = response.rows
this.specialEquipNumTotal = response.total
})
},
handleViewDetails(row) {
if (row.isOutsource == 0) {
this.$router.push({
path: '/project/projectManagement/constructionPro',
query: {
proName: row.proName,
},
})
}
if (row.isOutsource == 1) {
this.$router.push({
path: '/project/projectManagement/outsourcingPro',
query: {
proName: row.proName,
},
})
}
},
},
}
</script>
@ -171,7 +329,9 @@ export default {
width: 100%;
height: 30%;
margin-bottom: 20px;
display: flex;margin-top: 20px;justify-content: space-around;
display: flex;
margin-top: 20px;
justify-content: space-around;
&:last-child {
margin-bottom: 0;
}
@ -203,7 +363,7 @@ export default {
display: flex;
justify-content: center;
align-items: flex-start;
font-family: sans-serif
font-family: sans-serif;
}
.p2 {
@ -211,7 +371,7 @@ export default {
display: flex;
justify-content: center;
align-items: flex-start;
font-family: sans-serif
font-family: sans-serif;
}
.p3 {
@ -219,14 +379,14 @@ export default {
display: flex;
justify-content: center;
align-items: flex-start;
font-family: sans-serif
font-family: sans-serif;
}
.p4 {
background: linear-gradient(to bottom, #eee2fb, #fff);
display: flex;
justify-content: center;
align-items: flex-start;
font-family: sans-serif
font-family: sans-serif;
}
.p5 {
@ -234,7 +394,7 @@ export default {
display: flex;
justify-content: center;
align-items: flex-start;
font-family: sans-serif
font-family: sans-serif;
}
.title {
@ -253,11 +413,10 @@ export default {
margin-left: 15px;
font-size: 30px;
}
.hhh{
.hhh {
display: flex;
flex-direction: column;
flex-wrap: wrap;
align-content: flex-start;
}
</style>

View File

@ -46,18 +46,13 @@
<el-table-column label="入场时间" align="center" prop="admissionDate" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button
size="mini"
type="text"
@click="handleView(scope.row)"
>查看
</el-button>
<el-button size="mini" type="text" @click="handleView(scope.row)">查看</el-button>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
v-show="total > 0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@ -68,17 +63,15 @@
<el-form ref="form" :model="form" label-width="80px">
<bns-equip-details-tabs :items="items" :isDisabled="true" />
<el-form-item label="工器具文件" label-width="200px">
<bns-file-list-tabs :items="fileList"/>
<bns-file-list-tabs :items="fileList" />
</el-form-item>
</el-form>
</el-dialog>
<el-dialog title="工器具文件" :visible.sync="document" width="80%" top="5vh" append-to-body>
<div style="width: 100%;height:720px">
<div style="width: 100%; height: 720px">
<bns-file-list-tabs :items="fileList" />
</div>
</el-dialog>
</div>
</template>
@ -119,13 +112,12 @@ export default {
pageNum: 1,
pageSize: 10,
equipName: undefined,
type: '列表'
type: '列表',
},
//
form: {},
//
rules: {}
rules: {},
}
},
created() {
@ -153,7 +145,7 @@ export default {
reset() {
this.form = {
equipName: undefined,
postSort: 0
postSort: 0,
}
this.resetForm('form')
},
@ -190,7 +182,7 @@ export default {
this.fileList = response.fileList
this.loading = false
})
}
}
},
},
}
</script>

View File

@ -7,7 +7,8 @@
placeholder="请输入工程名称"
maxlength="60"
show-word-limit
clearable v-no-whitespace
clearable
v-no-whitespace
@keyup.enter.native="handleQuery"
/>
</el-form-item>
@ -17,36 +18,34 @@
placeholder="请输入工程负责人姓名"
maxlength="20"
show-word-limit
clearable v-no-whitespace
clearable
v-no-whitespace
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="工程类型" prop="proType">
<el-select v-model="queryParams.proType" placeholder="工程类型" clearable>
<el-option
v-for="dict in proTypeDict"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
<el-option v-for="dict in proTypeDict" :key="dict.value" :label="dict.label" :value="dict.value" />
</el-select>
</el-form-item>
<el-form-item label="工程状态" prop="proStatus">
<el-select v-model="queryParams.proStatus" placeholder="工程状态" clearable>
<el-option
v-for="dict in proStatusDict"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
<el-option v-for="dict in proStatusDict" :key="dict.value" :label="dict.label" :value="dict.value" />
</el-select>
</el-form-item>
<el-form-item label-width="100px" label="工程创建时间">
<el-date-picker v-model="createTime" style="width: 240px" value-format="yyyy-MM-dd" type="daterange"
:editable="false" range-separator="-" start-placeholder="开始日期"
end-placeholder="结束日期"></el-date-picker>
<el-date-picker
v-model="createTime"
style="width: 240px"
value-format="yyyy-MM-dd"
type="daterange"
:editable="false"
range-separator="-"
start-placeholder="开始日期"
end-placeholder="结束日期"
></el-date-picker>
</el-form-item>
<el-form-item style="display: flex; justify-content: flex-end;">
<el-form-item style="display: flex; justify-content: flex-end">
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
<el-button
@ -56,18 +55,23 @@
size="mini"
@click="handleExport"
v-hasPermi="['system:constructionPro:export']"
>导出数据
>
导出数据
</el-button>
</el-form-item>
</el-form>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList" :style="{float:'right'}"></right-toolbar>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList" :style="{ float: 'right' }"></right-toolbar>
<el-table v-loading="loading" :data="proList" @selection-change="handleSelectionChange">
<el-table-column label="序号" type="index" width="55" align="center"
:index="indexContinuous(queryParams.pageNum, queryParams.pageSize)"/>
<el-table-column label="工程名称" show-overflow-tooltip align="center" prop="proName"/>
<el-table-column label="工程负责人" show-overflow-tooltip align="center" prop="proLeader"/>
<el-table-column
label="序号"
type="index"
width="55"
align="center"
:index="indexContinuous(queryParams.pageNum, queryParams.pageSize)"
/>
<el-table-column label="工程名称" show-overflow-tooltip align="center" prop="proName" />
<el-table-column label="工程负责人" show-overflow-tooltip align="center" prop="proLeader" />
<el-table-column label="负责人联系方式" show-overflow-tooltip align="center">
<template slot-scope="scope">
<!-- 检查是否存在身份证号 -->
@ -75,12 +79,12 @@
<span v-else>-</span>
</template>
</el-table-column>
<el-table-column label="工程类型" show-overflow-tooltip align="center" prop="proType"/>
<el-table-column label="计划开工日期" show-overflow-tooltip align="center" prop="startDate"/>
<el-table-column label="计划竣工日期" show-overflow-tooltip align="center" prop="endDate"/>
<el-table-column label="工程状态" show-overflow-tooltip align="center" prop="proStatus"/>
<el-table-column label="创建人" show-overflow-tooltip align="center" prop="createPerson"/>
<el-table-column label="创建时间" show-overflow-tooltip width="170px" align="center" prop="createTime"/>
<el-table-column label="工程类型" show-overflow-tooltip align="center" prop="proType" />
<el-table-column label="计划开工日期" show-overflow-tooltip align="center" prop="startDate" />
<el-table-column label="计划竣工日期" show-overflow-tooltip align="center" prop="endDate" />
<el-table-column label="工程状态" show-overflow-tooltip align="center" prop="proStatus" />
<el-table-column label="创建人" show-overflow-tooltip align="center" prop="createPerson" />
<el-table-column label="创建时间" show-overflow-tooltip width="170px" align="center" prop="createTime" />
<el-table-column label="操作" width="300px" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button
@ -89,37 +93,42 @@
style="padding: 5px"
@click="handleUpdate(scope.row)"
v-hasPermi="['system:constructionPro:edit']"
>基础信息
>
基础信息
</el-button>
<el-button
size="mini"
type="primary"
style="padding: 5px;background: green;border: 1px solid green"
style="padding: 5px; background: green; border: 1px solid green"
v-hasPermi="['system:outsourcingPro:supervisor']"
@click="openSupervisorInfoVue(scope.row)"
>监理信息</el-button>
<el-button
size="mini"
type="primary"
style="padding: 5px;background: orange;border: 1px solid orange"
@click="openConsTab(scope.row)"
v-hasPermi="['system:constructionPro:cons']"
>承包商信息
>
监理信息
</el-button>
<el-button
size="mini"
type="primary"
style="padding: 5px;background: purple;border: 1px solid purple"
style="padding: 5px; background: orange; border: 1px solid orange"
@click="openConsTab(scope.row)"
v-hasPermi="['system:constructionPro:cons']"
>
承包商信息
</el-button>
<el-button
size="mini"
type="primary"
style="padding: 5px; background: purple; border: 1px solid purple"
@click="handleProProfileView(scope.row)"
v-hasPermi="['system:constructionPro:profile']"
>工程资料
>
工程资料
</el-button>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
v-show="total > 0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@ -129,12 +138,12 @@
</template>
<script>
import {listPosts} from "@/api/pro/outsourcingPro";
import {dictTableOption} from "@/api/tool/select";
import {hideSensitiveInfo, indexContinuous} from '@/utils/bonus'
import { listPosts } from '@/api/pro/outsourcingPro'
import { dictTableOption } from '@/api/tool/select'
import { hideSensitiveInfo, indexContinuous } from '@/utils/bonus'
export default {
name: "Post",
name: 'Post',
data() {
return {
//
@ -150,7 +159,7 @@ export default {
//
proStatusDict: [],
//
title: "",
title: '',
//
open: false,
createTime: undefined,
@ -163,13 +172,13 @@ export default {
proType: undefined,
proStatus: undefined,
startDate: undefined,
endDate: undefined
endDate: undefined,
},
//
form: {},
//
rules: {}
};
rules: {},
}
},
created() {
this.getList()
@ -182,58 +191,58 @@ export default {
//
judgeTime() {
if (this.createTime !== undefined) {
this.queryParams.startDate = this.createTime[0];
this.queryParams.endDate = this.createTime[1];
this.queryParams.startDate = this.createTime[0]
this.queryParams.endDate = this.createTime[1]
}
},
/** 查询工程列表 */
getList() {
this.loading = true;
this.judgeTime();
this.loading = true
this.judgeTime()
this.queryParams.isOutsourcing = '0'
listPosts(this.queryParams).then(response => {
this.proList = response.rows;
this.total = response.total;
this.loading = false;
});
this.proList = response.rows
this.total = response.total
this.loading = false
})
},
//
getProType() {
const params = {
dictType: 'sys_pro_type',
dictValue: ''
dictValue: '',
}
dictTableOption(params).then(response => {
this.proTypeDict = response.data;
});
this.proTypeDict = response.data
})
},
//
getProStatus() {
const params = {
dictType: 'sys_pro_status',
dictValue: ''
dictValue: '',
}
dictTableOption(params).then(response => {
this.proStatusDict = response.data;
this.proStatusDict.splice(0,1)
});
this.proStatusDict = response.data
this.proStatusDict.splice(0, 1)
})
},
//
openSupervisorInfoVue(row) {
this.$router.push("/project/outsourcing-supervisor-auth/supervisorInfo/" + row.proId );
this.$router.push('/project/outsourcing-supervisor-auth/supervisorInfo/' + row.proId)
},
//
openConsTab(row) {
this.$router.push("/project/constructionPro-consDetailsInfo-auth/ConstructionProConsInfo/" + row.proId);
this.$router.push('/project/constructionPro-consDetailsInfo-auth/ConstructionProConsInfo/' + row.proId)
},
//
handleProProfileView(row) {
this.$router.push("/project/constructionPro-pro-profile-auth/constructionProProProfile/" + row.proId);
this.$router.push('/project/constructionPro-pro-profile-auth/constructionProProProfile/' + row.proId)
},
//
cancel() {
this.open = false;
this.reset();
this.open = false
this.reset()
},
//
reset() {
@ -245,22 +254,22 @@ export default {
createPerson: undefined,
createTime: undefined,
postSort: 0,
};
this.resetForm("form");
}
this.resetForm('form')
},
/** 搜索按钮操作 */
handleQuery() {
this.judgeTime();
this.queryParams.pageNum = 1;
this.getList();
this.judgeTime()
this.queryParams.pageNum = 1
this.getList()
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.queryParams.startDate = undefined;
this.queryParams.endDate = undefined;
this.createTime = undefined;
this.handleQuery();
this.resetForm('queryForm')
this.queryParams.startDate = undefined
this.queryParams.endDate = undefined
this.createTime = undefined
this.handleQuery()
},
//
handleSelectionChange(selection) {
@ -270,15 +279,31 @@ export default {
},
/** 修改按钮操作 */
handleUpdate(row) {
this.$router.push("/project/projectManagements/outsourcingPro/editOutsourcingPro/" + row.proId);
this.$router.push('/project/projectManagements/outsourcingPro/editOutsourcingPro/' + row.proId)
},
/** 导出按钮操作 */
handleExport() {
this.judgeTime()
this.derive('project/outsourcingPro/exports', {
...this.queryParams
}, `外委外包工程.xlsx`)
}
}
};
this.derive(
'project/outsourcingPro/exports',
{
...this.queryParams,
},
`外委外包工程.xlsx`
)
},
},
// query
watch: {
$route: {
handler(to) {
if (to.query.proName) {
this.queryParams.proName = to.query.proName
}
},
deep: true,
immediate: true,
},
},
}
</script>

View File

@ -7,7 +7,8 @@
placeholder="请输入工程名称"
maxlength="60"
show-word-limit
clearable v-no-whitespace
clearable
v-no-whitespace
@keyup.enter.native="handleQuery"
/>
</el-form-item>
@ -17,35 +18,34 @@
placeholder="请输入工程负责人姓名"
maxlength="20"
show-word-limit
clearable v-no-whitespace
clearable
v-no-whitespace
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="工程类型" prop="proType">
<el-select v-model="queryParams.proType" placeholder="工程类型" clearable>
<el-option
v-for="dict in proTypeDict"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
<el-option v-for="dict in proTypeDict" :key="dict.value" :label="dict.label" :value="dict.value" />
</el-select>
</el-form-item>
<el-form-item label="工程状态" prop="proStatus">
<el-select v-model="queryParams.proStatus" placeholder="工程状态" clearable>
<el-option
v-for="dict in proStatusDict"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
<el-option v-for="dict in proStatusDict" :key="dict.value" :label="dict.label" :value="dict.value" />
</el-select>
</el-form-item>
<el-form-item label-width="100px" label="工程创建时间">
<el-date-picker v-model="createTime" style="width: 240px" value-format="yyyy-MM-dd" type="daterange"
:editable="false" range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期"></el-date-picker>
<el-date-picker
v-model="createTime"
style="width: 240px"
value-format="yyyy-MM-dd"
type="daterange"
:editable="false"
range-separator="-"
start-placeholder="开始日期"
end-placeholder="结束日期"
></el-date-picker>
</el-form-item>
<el-form-item style="display: flex; justify-content: flex-end;">
<el-form-item style="display: flex; justify-content: flex-end">
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
<el-button
@ -55,17 +55,24 @@
size="mini"
@click="handleExport"
v-hasPermi="['system:proList:export']"
>导出数据</el-button>
>
导出数据
</el-button>
</el-form-item>
</el-form>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList" :style="{float:'right'}"></right-toolbar>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList" :style="{ float: 'right' }"></right-toolbar>
<el-table v-loading="loading" :data="proList" @selection-change="handleSelectionChange">
<el-table-column label="序号" type="index" width="55" align="center" :index="indexContinuous(queryParams.pageNum, queryParams.pageSize)" />
<el-table-column
label="序号"
type="index"
width="55"
align="center"
:index="indexContinuous(queryParams.pageNum, queryParams.pageSize)"
/>
<el-table-column label="工程名称" show-overflow-tooltip align="center" prop="proName" />
<el-table-column label="工程负责人" show-overflow-tooltip align="center" prop="proLeader" />
<el-table-column label="负责人联系方式" show-overflow-tooltip align="center" >
<el-table-column label="负责人联系方式" show-overflow-tooltip align="center">
<template slot-scope="scope">
<!-- 检查是否存在身份证号 -->
<span v-if="scope.row.proLeaderPhone">{{ hideSensitiveInfo(scope.row.proLeaderPhone) }}</span>
@ -77,7 +84,7 @@
<el-table-column label="计划竣工日期" show-overflow-tooltip align="center" prop="endDate" />
<el-table-column label="工程状态" show-overflow-tooltip align="center" prop="proStatus" />
<el-table-column label="创建人" show-overflow-tooltip align="center" prop="createPerson" />
<el-table-column label="创建时间" show-overflow-tooltip width="170px" align="center" prop="createTime" />
<el-table-column label="创建时间" show-overflow-tooltip width="170px" align="center" prop="createTime" />
<el-table-column label="操作" width="300px" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button
@ -86,34 +93,40 @@
style="padding: 5px"
@click="handleUpdate(scope.row)"
v-hasPermi="['system:outsourcingPro:edit']"
>基础信息</el-button>
<!-- <el-button-->
<!-- size="mini"-->
<!-- type="primary"-->
<!-- style="padding: 5px;background: green;border: 1px solid green"-->
<!-- v-hasPermi="['system:outsourcingPro:supervisor']"-->
<!-- @click="openSupervisorInfoVue(scope.row)"-->
<!-- >监理信息</el-button>-->
>
基础信息
</el-button>
<!-- <el-button-->
<!-- size="mini"-->
<!-- type="primary"-->
<!-- style="padding: 5px;background: green;border: 1px solid green"-->
<!-- v-hasPermi="['system:outsourcingPro:supervisor']"-->
<!-- @click="openSupervisorInfoVue(scope.row)"-->
<!-- >监理信息</el-button>-->
<el-button
size="mini"
type="primary"
style="padding: 5px;background: orange;border: 1px solid orange"
style="padding: 5px; background: orange; border: 1px solid orange"
@click="openConsTab(scope.row)"
v-hasPermi="['system:outsourcingPro:cons']"
>承包商信息</el-button>
>
承包商信息
</el-button>
<el-button
size="mini"
type="primary"
style="padding: 5px;background: purple;border: 1px solid purple"
style="padding: 5px; background: purple; border: 1px solid purple"
@click="handleProProfileView(scope.row)"
v-hasPermi="['system:outsourcingPro:profile']"
>工程资料</el-button>
>
工程资料
</el-button>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
v-show="total > 0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@ -124,12 +137,11 @@
<script>
import { hideSensitiveInfo, indexContinuous } from '@/utils/bonus'
import { listPost } from "@/api/pro/outsourcingPro";
import { dictTableOption} from "@/api/tool/select";
import { listPost } from '@/api/pro/outsourcingPro'
import { dictTableOption } from '@/api/tool/select'
export default {
name: "Post",
name: 'Post',
data() {
return {
//
@ -145,7 +157,7 @@ export default {
//
proStatusDict: [],
//
title: "",
title: '',
//
open: false,
createTime: undefined,
@ -158,13 +170,13 @@ export default {
proType: undefined,
proStatus: undefined,
startDate: undefined,
endDate: undefined
endDate: undefined,
},
//
form: {},
//
rules: {}
};
rules: {},
}
},
created() {
this.getList()
@ -175,60 +187,60 @@ export default {
indexContinuous,
hideSensitiveInfo,
//
judgeTime(){
if (this.createTime !== undefined){
this.queryParams.startDate = this.createTime[0];
this.queryParams.endDate = this.createTime[1];
judgeTime() {
if (this.createTime !== undefined) {
this.queryParams.startDate = this.createTime[0]
this.queryParams.endDate = this.createTime[1]
}
},
/** 查询工程列表 */
getList() {
this.loading = true;
this.judgeTime();
this.loading = true
this.judgeTime()
this.queryParams.isOutsourcing = '1'
listPost(this.queryParams).then(response => {
this.proList = response.rows;
this.total = response.total;
this.loading = false;
});
this.proList = response.rows
this.total = response.total
this.loading = false
})
},
//
getProType() {
const params = {
dictType: 'sys_pro_type',
dictValue: ''
dictValue: '',
}
dictTableOption(params).then(response => {
this.proTypeDict = response.data;
});
this.proTypeDict = response.data
})
},
//
getProStatus() {
const params = {
dictType: 'sys_pro_status',
dictValue: ''
dictValue: '',
}
dictTableOption(params).then(response => {
this.proStatusDict = response.data;
this.proStatusDict.splice(0,1)
});
this.proStatusDict = response.data
this.proStatusDict.splice(0, 1)
})
},
//
openSupervisorInfoVue(row) {
this.$router.push("/project/outsourcing-supervisor-auth/supervisorInfo/" + row.proId );
this.$router.push('/project/outsourcing-supervisor-auth/supervisorInfo/' + row.proId)
},
//
openConsTab(row){
this.$router.push("/project/outsourcing-consDetailsInfo-auth/consInfo/" + row.proId );
openConsTab(row) {
this.$router.push('/project/outsourcing-consDetailsInfo-auth/consInfo/' + row.proId)
},
//
handleProProfileView(row){
this.$router.push("/project/outsourcing-pro-profile-auth/proProfile/" + row.proId );
handleProProfileView(row) {
this.$router.push('/project/outsourcing-pro-profile-auth/proProfile/' + row.proId)
},
//
cancel() {
this.open = false;
this.reset();
this.open = false
this.reset()
},
//
reset() {
@ -240,40 +252,57 @@ export default {
createPerson: undefined,
createTime: undefined,
postSort: 0,
};
this.resetForm("form");
}
this.resetForm('form')
},
/** 搜索按钮操作 */
handleQuery() {
this.judgeTime();
this.queryParams.pageNum = 1;
this.getList();
this.judgeTime()
this.queryParams.pageNum = 1
this.getList()
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.queryParams.startDate = undefined;
this.queryParams.endDate = undefined;
this.createTime = undefined;
this.handleQuery();
this.resetForm('queryForm')
this.queryParams.startDate = undefined
this.queryParams.endDate = undefined
this.createTime = undefined
this.handleQuery()
},
//
handleSelectionChange(selection) {
this.ids = selection.map(item => item.proId)
this.single = selection.length!=1
this.single = selection.length != 1
this.multiple = !selection.length
},
/** 修改按钮操作 */
handleUpdate(row) {
this.$router.push("/project/projectManagements/outsourcingPro/editOutsourcingPro/" + row.proId );
this.$router.push('/project/projectManagements/outsourcingPro/editOutsourcingPro/' + row.proId)
},
/** 导出按钮操作 */
handleExport() {
this.judgeTime()
this.derive('project/outsourcingPro/export', {
...this.queryParams
}, `外委外包工程.xlsx`)
}
}
};
this.derive(
'project/outsourcingPro/export',
{
...this.queryParams,
},
`外委外包工程.xlsx`
)
},
},
// query
watch: {
$route: {
handler(to) {
if (to.query.proName) {
this.queryParams.proName = to.query.proName
}
},
deep: true,
immediate: true,
},
},
}
</script>