需求增加 代码优化

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

View File

@ -8,7 +8,6 @@
<span class="name">在建/筹备工程数</span> <span class="name">在建/筹备工程数</span>
<span class="num">{{ proNum }}</span> <span class="num">{{ proNum }}</span>
</div> </div>
</div> </div>
</div> </div>
</el-col> </el-col>
@ -25,7 +24,7 @@
<el-col :span="4"> <el-col :span="4">
<div class="grid-content"> <div class="grid-content">
<div class="text p3 hhh"> <div class="text p3 hhh">
<div class="title"> <div class="title" style="cursor: pointer" @click="handleSpecialPersonNum">
<span class="name">特殊工种总人数</span> <span class="name">特殊工种总人数</span>
<span class="num">{{ specialPersonNum }}</span> <span class="num">{{ specialPersonNum }}</span>
</div> </div>
@ -45,8 +44,8 @@
<el-col :span="4"> <el-col :span="4">
<div class="grid-content"> <div class="grid-content">
<div class="text p5 hhh"> <div class="text p5 hhh">
<div class="title"> <div class="title" style="cursor: pointer" @click="handleSpecialEquipNum">
<span class="name">设备总数</span> <span class="name">设备总数</span>
<span class="num">{{ specialEquipNum }}</span> <span class="num">{{ specialEquipNum }}</span>
</div> </div>
</div> </div>
@ -56,12 +55,7 @@
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" style="float: left"> <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" style="float: left">
<el-form-item label="工程名称"> <el-form-item label="工程名称">
<el-select v-model="queryParams.proName" placeholder="请选择工程" clearable> <el-select v-model="queryParams.proName" placeholder="请选择工程" clearable>
<el-option <el-option v-for="dict in proOptions" :key="dict.value" :label="dict.label" :value="dict.value" />
v-for="dict in proOptions"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select> </el-select>
</el-form-item> </el-form-item>
<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="personNum" />
<el-table-column label="特殊工种总人数" align="center" prop="specialPersonNum" /> <el-table-column label="特殊工种总人数" align="center" prop="specialPersonNum" />
<el-table-column label="施工设备总数" align="center" prop="equipNum" /> <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> </el-table>
<pagination <pagination
v-show="total>0" v-show="total > 0"
:total="total" :total="total"
:page.sync="queryParams.pageNum" :page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize" :limit.sync="queryParams.pageSize"
@pagination="getList" @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> </div>
</template> </template>
<script> <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 { getProOptions } from '@/api/pro/subManagement/approval/personApproval'
import { indexContinuous } from '@/utils/bonus' import { indexContinuous, hideSensitiveInfo, lookFaceFile } from '@/utils/bonus'
export default { export default {
name: 'indexOwner', name: 'indexOwner',
@ -116,8 +208,28 @@ export default {
queryParams: { queryParams: {
pageNum: 1, pageNum: 1,
pageSize: 10, 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() { created() {
@ -127,6 +239,8 @@ export default {
}, },
methods: { methods: {
indexContinuous, indexContinuous,
hideSensitiveInfo,
lookFaceFile,
getProOptions() { getProOptions() {
getProOptions({}).then(response => { getProOptions({}).then(response => {
this.proOptions = response.data this.proOptions = response.data
@ -135,7 +249,7 @@ export default {
getNum() { getNum() {
const params = { const params = {
consUuid: this.consId, consUuid: this.consId,
proId: this.proId proId: this.proId,
} }
getNum(params).then(response => { getNum(params).then(response => {
this.proNum = response.proNum this.proNum = response.proNum
@ -161,8 +275,52 @@ export default {
resetQuery() { resetQuery() {
this.queryParams.proName = undefined this.queryParams.proName = undefined
this.handleQuery() 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> </script>
@ -171,7 +329,9 @@ export default {
width: 100%; width: 100%;
height: 30%; height: 30%;
margin-bottom: 20px; margin-bottom: 20px;
display: flex;margin-top: 20px;justify-content: space-around; display: flex;
margin-top: 20px;
justify-content: space-around;
&:last-child { &:last-child {
margin-bottom: 0; margin-bottom: 0;
} }
@ -203,7 +363,7 @@ export default {
display: flex; display: flex;
justify-content: center; justify-content: center;
align-items: flex-start; align-items: flex-start;
font-family: sans-serif font-family: sans-serif;
} }
.p2 { .p2 {
@ -211,7 +371,7 @@ export default {
display: flex; display: flex;
justify-content: center; justify-content: center;
align-items: flex-start; align-items: flex-start;
font-family: sans-serif font-family: sans-serif;
} }
.p3 { .p3 {
@ -219,14 +379,14 @@ export default {
display: flex; display: flex;
justify-content: center; justify-content: center;
align-items: flex-start; align-items: flex-start;
font-family: sans-serif font-family: sans-serif;
} }
.p4 { .p4 {
background: linear-gradient(to bottom, #eee2fb, #fff); background: linear-gradient(to bottom, #eee2fb, #fff);
display: flex; display: flex;
justify-content: center; justify-content: center;
align-items: flex-start; align-items: flex-start;
font-family: sans-serif font-family: sans-serif;
} }
.p5 { .p5 {
@ -234,7 +394,7 @@ export default {
display: flex; display: flex;
justify-content: center; justify-content: center;
align-items: flex-start; align-items: flex-start;
font-family: sans-serif font-family: sans-serif;
} }
.title { .title {
@ -253,11 +413,10 @@ export default {
margin-left: 15px; margin-left: 15px;
font-size: 30px; font-size: 30px;
} }
.hhh{ .hhh {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
flex-wrap: wrap; flex-wrap: wrap;
align-content: flex-start; align-content: flex-start;
} }
</style> </style>

View File

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

View File

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

View File

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