2023-01-08 01:33:25 +08:00
|
|
|
|
<template>
|
|
|
|
|
|
<!-- 楼层计划 -->
|
|
|
|
|
|
<div class="fullHeight positionPage">
|
|
|
|
|
|
<div class="left fullHeight whiteBlock">
|
|
|
|
|
|
<div class="title">
|
|
|
|
|
|
<span>楼层管理</span>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="list_content">
|
|
|
|
|
|
<vue-scroll v-if="buildList.length > 0">
|
|
|
|
|
|
<div
|
|
|
|
|
|
class="flex content_data"
|
|
|
|
|
|
v-for="(item, index) in buildList"
|
|
|
|
|
|
:key="index"
|
2023-02-27 18:47:21 +08:00
|
|
|
|
:class="checkBuildingId == index ? 'active' : ''"
|
|
|
|
|
|
@click="selectMenu(index, item.id)"
|
2023-01-08 01:33:25 +08:00
|
|
|
|
>
|
|
|
|
|
|
<div>{{ item.name }}</div>
|
|
|
|
|
|
<div class="flex2">
|
|
|
|
|
|
<img
|
|
|
|
|
|
@click.stop="editBuildFn(item)"
|
|
|
|
|
|
src="@/assets/images/icon-edit.png"
|
|
|
|
|
|
style="margin-right: 16px"
|
|
|
|
|
|
class="icon"
|
|
|
|
|
|
/>
|
|
|
|
|
|
<img
|
|
|
|
|
|
@click.stop="deleteBuildFn(item)"
|
|
|
|
|
|
src="@/assets/images/icon-delete.png"
|
|
|
|
|
|
class="icon"
|
|
|
|
|
|
/>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</vue-scroll>
|
|
|
|
|
|
<div class="placeholderBox" v-else>
|
2023-02-27 18:47:21 +08:00
|
|
|
|
{{ $t('message.personnelPosition.mapManage.no_data') }}
|
2023-01-08 01:33:25 +08:00
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="addFirm" @click="addBtn">新增楼层</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="system-right">
|
|
|
|
|
|
<div class="pageTitle" style="font-weight: 700">施工阶段管理</div>
|
|
|
|
|
|
<div class="searchDiv">
|
|
|
|
|
|
<el-form
|
|
|
|
|
|
:inline="true"
|
|
|
|
|
|
ref="searchForm"
|
|
|
|
|
|
:model="searchForm"
|
|
|
|
|
|
size="medium"
|
|
|
|
|
|
>
|
|
|
|
|
|
<el-form-item label="施工阶段" prop="state">
|
|
|
|
|
|
<el-input v-model="constructionPhase"></el-input>
|
|
|
|
|
|
</el-form-item>
|
|
|
|
|
|
<el-form-item>
|
|
|
|
|
|
<el-button
|
|
|
|
|
|
style="margin-left: 50px"
|
|
|
|
|
|
type="primary"
|
|
|
|
|
|
plain
|
|
|
|
|
|
@click="loadDataTwo"
|
|
|
|
|
|
>查询</el-button
|
|
|
|
|
|
>
|
|
|
|
|
|
|
|
|
|
|
|
<el-button type="primary" size="medium" @click="addConstruction">
|
|
|
|
|
|
新增施工阶段
|
|
|
|
|
|
</el-button>
|
|
|
|
|
|
</el-form-item>
|
|
|
|
|
|
</el-form>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="table_box" style="margin: -35px 10px">
|
|
|
|
|
|
<el-table height="552px" :data="threeData" class="tables">
|
|
|
|
|
|
<el-table-column
|
|
|
|
|
|
type="index"
|
|
|
|
|
|
label="序号"
|
|
|
|
|
|
width="100"
|
|
|
|
|
|
align="center"
|
|
|
|
|
|
></el-table-column>
|
|
|
|
|
|
|
|
|
|
|
|
<el-table-column
|
|
|
|
|
|
prop="constructionPhase"
|
|
|
|
|
|
label="施工阶段"
|
|
|
|
|
|
align="center"
|
|
|
|
|
|
>
|
|
|
|
|
|
</el-table-column>
|
|
|
|
|
|
|
|
|
|
|
|
<el-table-column
|
|
|
|
|
|
prop="major"
|
|
|
|
|
|
label="专业"
|
|
|
|
|
|
align="center"
|
|
|
|
|
|
:show-overflow-tooltip="true"
|
|
|
|
|
|
></el-table-column>
|
|
|
|
|
|
<el-table-column
|
|
|
|
|
|
prop="startDate"
|
|
|
|
|
|
label="预计开始时间"
|
|
|
|
|
|
align="center"
|
|
|
|
|
|
></el-table-column>
|
|
|
|
|
|
<el-table-column prop="status" label="完成情况" align="center">
|
|
|
|
|
|
<template slot-scope="scope">
|
|
|
|
|
|
{{ getStatus(scope.row.status) }}
|
|
|
|
|
|
</template>
|
|
|
|
|
|
</el-table-column>
|
|
|
|
|
|
<el-table-column
|
|
|
|
|
|
prop="progressRatio"
|
|
|
|
|
|
label="当前进度"
|
|
|
|
|
|
align="center"
|
|
|
|
|
|
></el-table-column>
|
|
|
|
|
|
<el-table-column
|
|
|
|
|
|
prop="endDate"
|
|
|
|
|
|
label="预计结束时间"
|
|
|
|
|
|
align="center"
|
|
|
|
|
|
></el-table-column>
|
|
|
|
|
|
<el-table-column label="操作" align="center">
|
|
|
|
|
|
<template slot-scope="scope">
|
|
|
|
|
|
<el-button
|
|
|
|
|
|
@click="edit1(scope.row, 3)"
|
|
|
|
|
|
type="text"
|
|
|
|
|
|
size="small"
|
|
|
|
|
|
icon="el-icon-edit"
|
|
|
|
|
|
>
|
|
|
|
|
|
<span style="font-size: 14px">编辑</span>
|
|
|
|
|
|
</el-button>
|
|
|
|
|
|
<el-button
|
|
|
|
|
|
@click="del1(scope.row.id, 3)"
|
|
|
|
|
|
type="text"
|
|
|
|
|
|
size="small"
|
|
|
|
|
|
style="color: red"
|
|
|
|
|
|
icon="el-icon-delete"
|
|
|
|
|
|
>
|
|
|
|
|
|
<span style="font-size: 14px">删除</span>
|
|
|
|
|
|
</el-button>
|
|
|
|
|
|
</template>
|
|
|
|
|
|
</el-table-column>
|
|
|
|
|
|
</el-table>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<!-- <el-pagination
|
|
|
|
|
|
class="pagerBox"
|
|
|
|
|
|
style="margin: 150px 600px 0; text-align: right"
|
|
|
|
|
|
@size-change="handleSizeChange"
|
|
|
|
|
|
@current-change="handleCurrentChange"
|
|
|
|
|
|
:current-page="page"
|
|
|
|
|
|
:page-size="pageSize"
|
|
|
|
|
|
layout="total, sizes, prev, pager, next"
|
|
|
|
|
|
:total="Number(total)"
|
|
|
|
|
|
background
|
|
|
|
|
|
></el-pagination> -->
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<!-- 添加楼层弹框 -->
|
|
|
|
|
|
<el-dialog
|
|
|
|
|
|
:modal-append-to-body="false"
|
|
|
|
|
|
:title="dialogTitle"
|
|
|
|
|
|
:visible.sync="addBuildDialog"
|
|
|
|
|
|
width="667px"
|
|
|
|
|
|
>
|
|
|
|
|
|
<div class="dialog_content">
|
|
|
|
|
|
<el-form
|
|
|
|
|
|
size="medium"
|
|
|
|
|
|
:model="addBuildForm"
|
|
|
|
|
|
ref="addBuildForm"
|
|
|
|
|
|
:rules="addBuildFormRules"
|
|
|
|
|
|
label-width="120px"
|
|
|
|
|
|
class="dialogFormBox"
|
|
|
|
|
|
>
|
|
|
|
|
|
<el-form-item label="楼层名称" prop="name">
|
|
|
|
|
|
<el-input
|
|
|
|
|
|
v-model="addBuildForm.name"
|
|
|
|
|
|
placeholder="请输入"
|
|
|
|
|
|
></el-input>
|
|
|
|
|
|
</el-form-item>
|
|
|
|
|
|
<div class="dialog-footer">
|
|
|
|
|
|
<el-button
|
|
|
|
|
|
class="cancleBtn"
|
|
|
|
|
|
@click="addBuildDialog = false"
|
|
|
|
|
|
icon="el-icon-circle-close"
|
|
|
|
|
|
size="medium"
|
|
|
|
|
|
>取消
|
|
|
|
|
|
</el-button>
|
|
|
|
|
|
<el-button
|
|
|
|
|
|
type="primary"
|
|
|
|
|
|
icon="el-icon-circle-check"
|
|
|
|
|
|
size="medium"
|
|
|
|
|
|
@click="addBudBtn"
|
|
|
|
|
|
>确定
|
|
|
|
|
|
</el-button>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</el-form>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</el-dialog>
|
|
|
|
|
|
<!-- 添加施工阶段弹框 -->
|
|
|
|
|
|
<el-dialog
|
|
|
|
|
|
:modal-append-to-body="false"
|
|
|
|
|
|
:title="floorDialogTitle"
|
|
|
|
|
|
:visible.sync="addFloorDialog"
|
|
|
|
|
|
width="667px"
|
|
|
|
|
|
>
|
|
|
|
|
|
<div class="dialog_content">
|
|
|
|
|
|
<el-form
|
|
|
|
|
|
size="medium"
|
|
|
|
|
|
:model="floorForm"
|
|
|
|
|
|
ref="floorForm"
|
|
|
|
|
|
:rules="floorFormRules"
|
|
|
|
|
|
label-width="120px"
|
|
|
|
|
|
class="dialogFormBox"
|
|
|
|
|
|
>
|
|
|
|
|
|
<el-form-item label="楼层" prop="floorId">
|
|
|
|
|
|
<el-select v-model="floorId" placeholder="请选择">
|
|
|
|
|
|
<el-option
|
|
|
|
|
|
v-for="(item, index) in optionsList"
|
|
|
|
|
|
:key="index"
|
|
|
|
|
|
:label="item.name"
|
|
|
|
|
|
:value="item.id"
|
|
|
|
|
|
>
|
|
|
|
|
|
</el-option>
|
|
|
|
|
|
</el-select>
|
|
|
|
|
|
</el-form-item>
|
|
|
|
|
|
<el-form-item label="施工阶段" prop="constructionPhase">
|
|
|
|
|
|
<el-input
|
|
|
|
|
|
v-model="floorForm.constructionPhase"
|
|
|
|
|
|
placeholder="请输入"
|
|
|
|
|
|
></el-input>
|
|
|
|
|
|
</el-form-item>
|
|
|
|
|
|
<el-form-item label="专业" prop="major">
|
|
|
|
|
|
<el-input v-model="floorForm.major" placeholder="请输入"></el-input>
|
|
|
|
|
|
</el-form-item>
|
|
|
|
|
|
<el-form-item label="预计开始日期" prop="startDate">
|
|
|
|
|
|
<el-date-picker
|
|
|
|
|
|
v-model="floorForm.startDate"
|
|
|
|
|
|
type="date"
|
|
|
|
|
|
placeholder="选择日期"
|
|
|
|
|
|
value-format="yyyy-MM-dd"
|
|
|
|
|
|
>
|
|
|
|
|
|
</el-date-picker>
|
|
|
|
|
|
</el-form-item>
|
|
|
|
|
|
<el-form-item label="预计结束日期" prop="endDate">
|
|
|
|
|
|
<el-date-picker
|
|
|
|
|
|
v-model="floorForm.endDate"
|
|
|
|
|
|
type="date"
|
|
|
|
|
|
placeholder="选择日期"
|
|
|
|
|
|
value-format="yyyy-MM-dd"
|
|
|
|
|
|
>
|
|
|
|
|
|
</el-date-picker>
|
|
|
|
|
|
</el-form-item>
|
|
|
|
|
|
<el-form-item label="实际开始日期" prop="actualStartDate">
|
|
|
|
|
|
<el-date-picker
|
|
|
|
|
|
v-model="floorForm.actualStartDate"
|
|
|
|
|
|
type="date"
|
|
|
|
|
|
placeholder="选择日期"
|
|
|
|
|
|
value-format="yyyy-MM-dd"
|
|
|
|
|
|
>
|
|
|
|
|
|
</el-date-picker>
|
|
|
|
|
|
</el-form-item>
|
|
|
|
|
|
<el-form-item label="实际结束日期" prop="actualFinishDate">
|
|
|
|
|
|
<el-date-picker
|
|
|
|
|
|
v-model="floorForm.actualFinishDate"
|
|
|
|
|
|
type="date"
|
|
|
|
|
|
placeholder="选择日期"
|
|
|
|
|
|
value-format="yyyy-MM-dd"
|
|
|
|
|
|
>
|
|
|
|
|
|
</el-date-picker>
|
|
|
|
|
|
</el-form-item>
|
|
|
|
|
|
<el-form-item label="当前进度" prop="progressRatio">
|
|
|
|
|
|
<el-input-number
|
|
|
|
|
|
v-model="floorForm.progressRatio"
|
|
|
|
|
|
controls-position="right"
|
|
|
|
|
|
:min="0"
|
|
|
|
|
|
:max="100"
|
|
|
|
|
|
></el-input-number>
|
|
|
|
|
|
</el-form-item>
|
|
|
|
|
|
<el-form-item label="阶段状态" prop="progressRatio">
|
|
|
|
|
|
<el-select v-model="floorForm.status" placeholder="请选择">
|
|
|
|
|
|
<el-option :value="0" label="未开始"> </el-option>
|
|
|
|
|
|
<el-option :value="1" label="进行中"> </el-option>
|
|
|
|
|
|
<el-option :value="2" label="已完成"> </el-option>
|
|
|
|
|
|
</el-select>
|
|
|
|
|
|
</el-form-item>
|
|
|
|
|
|
<div class="dialog-footer">
|
|
|
|
|
|
<el-button
|
|
|
|
|
|
class="cancleBtn"
|
|
|
|
|
|
@click="addFloorDialog = false"
|
|
|
|
|
|
icon="el-icon-circle-close"
|
|
|
|
|
|
size="medium"
|
|
|
|
|
|
>取消
|
|
|
|
|
|
</el-button>
|
|
|
|
|
|
<el-button
|
|
|
|
|
|
type="primary"
|
|
|
|
|
|
icon="el-icon-circle-check"
|
|
|
|
|
|
size="medium"
|
|
|
|
|
|
@click="submit"
|
|
|
|
|
|
>确定
|
|
|
|
|
|
</el-button>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</el-form>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</el-dialog>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
|
|
|
import {
|
|
|
|
|
|
getProjectFloorApi, //所有楼层计划-楼层
|
|
|
|
|
|
addProjectFloorApi, //新增楼层
|
|
|
|
|
|
updateProjectFloorApi, //编辑楼层
|
|
|
|
|
|
deleteProjectFloorApi, //删除楼层
|
|
|
|
|
|
getConstructionPhaseApi, //查询所有施工阶段
|
|
|
|
|
|
addConstructionPhaseApi, //新增施工阶段
|
|
|
|
|
|
updateConstructionPhaseApi, //修改施工阶段
|
2023-02-27 18:47:21 +08:00
|
|
|
|
deleteConstructionPhaseApi //删除施工
|
|
|
|
|
|
} from '../../../assets/js/api/floorManagement'
|
2023-01-08 01:33:25 +08:00
|
|
|
|
export default {
|
|
|
|
|
|
data() {
|
|
|
|
|
|
return {
|
|
|
|
|
|
buildList: [],
|
|
|
|
|
|
threeData: [],
|
2023-02-27 18:47:21 +08:00
|
|
|
|
dialogTitle: '', //楼层
|
2023-01-08 01:33:25 +08:00
|
|
|
|
addBuildDialog: false, //楼层
|
|
|
|
|
|
addFloorDialog: false, //施工阶段
|
|
|
|
|
|
addBuildFormRules: {}, //施工阶段
|
2023-02-27 18:47:21 +08:00
|
|
|
|
floorDialogTitle: '',
|
2023-01-08 01:33:25 +08:00
|
|
|
|
searchForm: {},
|
|
|
|
|
|
addBuildForm: {
|
2023-02-27 18:47:21 +08:00
|
|
|
|
name: ''
|
2023-01-08 01:33:25 +08:00
|
|
|
|
}, //楼层
|
|
|
|
|
|
floorForm: {
|
|
|
|
|
|
floorId: 0, //楼层
|
2023-02-27 18:47:21 +08:00
|
|
|
|
constructionPhase: '', //施工阶段
|
|
|
|
|
|
major: '', //专业
|
|
|
|
|
|
startDate: '', //预计开始日期
|
|
|
|
|
|
endDate: '', //预计结束日期
|
|
|
|
|
|
actualStartDate: '', //实际开始日期
|
|
|
|
|
|
actualFinishDate: '', //实际结束日期
|
|
|
|
|
|
progressRatio: '', //当前进度
|
|
|
|
|
|
status: '' //阶段状态
|
2023-01-08 01:33:25 +08:00
|
|
|
|
},
|
2023-02-27 18:47:21 +08:00
|
|
|
|
floorId: '', //楼层id
|
2023-01-08 01:33:25 +08:00
|
|
|
|
current: 0,
|
|
|
|
|
|
currentTwo: -1,
|
|
|
|
|
|
floorFormRules: {},
|
2023-02-27 18:47:21 +08:00
|
|
|
|
constructionPhase: '',
|
2023-01-08 01:33:25 +08:00
|
|
|
|
// page: 1,
|
|
|
|
|
|
// pageSize: 10,
|
|
|
|
|
|
// total: 0,
|
2023-02-27 18:47:21 +08:00
|
|
|
|
projectSn: '',
|
2023-01-08 01:33:25 +08:00
|
|
|
|
optionsList: [], //消耗下拉
|
2023-02-27 18:47:21 +08:00
|
|
|
|
threeIndex: -1,
|
|
|
|
|
|
checkBuildingId: 0
|
|
|
|
|
|
}
|
2023-01-08 01:33:25 +08:00
|
|
|
|
},
|
|
|
|
|
|
created() {
|
2023-02-27 18:47:21 +08:00
|
|
|
|
this.projectSn = this.$store.state.projectSn
|
|
|
|
|
|
this.getBuildingData()
|
2023-01-08 01:33:25 +08:00
|
|
|
|
// this.getConstructionData();
|
|
|
|
|
|
},
|
|
|
|
|
|
methods: {
|
|
|
|
|
|
// 状态,0未开始 ,1进行中,2已完成 默认未开始
|
|
|
|
|
|
getStatus(status) {
|
|
|
|
|
|
if (status === 0) {
|
2023-02-27 18:47:21 +08:00
|
|
|
|
return '未开始'
|
2023-01-08 01:33:25 +08:00
|
|
|
|
} else if (status === 1) {
|
2023-02-27 18:47:21 +08:00
|
|
|
|
return '进行中'
|
2023-01-08 01:33:25 +08:00
|
|
|
|
} else {
|
2023-02-27 18:47:21 +08:00
|
|
|
|
return '已完成'
|
2023-01-08 01:33:25 +08:00
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
//查询所有楼层
|
|
|
|
|
|
getBuildingData() {
|
|
|
|
|
|
getProjectFloorApi({
|
2023-02-27 18:47:21 +08:00
|
|
|
|
projectSn: this.$store.state.projectSn
|
2023-01-08 01:33:25 +08:00
|
|
|
|
}).then((res) => {
|
2023-02-27 18:47:21 +08:00
|
|
|
|
console.log('查询所有楼层', res)
|
|
|
|
|
|
this.buildList = res.result
|
|
|
|
|
|
this.optionsList = res.result
|
|
|
|
|
|
this.floorId = this.optionsList[0].id
|
|
|
|
|
|
this.getConstructionData(this.optionsList[0].id)
|
|
|
|
|
|
})
|
2023-01-08 01:33:25 +08:00
|
|
|
|
},
|
|
|
|
|
|
//查询施工阶段
|
2023-02-27 18:47:21 +08:00
|
|
|
|
getConstructionData() {
|
2023-01-08 01:33:25 +08:00
|
|
|
|
let param = {
|
2023-02-27 18:47:21 +08:00
|
|
|
|
floorId: this.floorId
|
|
|
|
|
|
}
|
2023-01-08 01:33:25 +08:00
|
|
|
|
getConstructionPhaseApi(param).then((res) => {
|
2023-02-27 18:47:21 +08:00
|
|
|
|
console.log('查询施工阶段', res)
|
|
|
|
|
|
this.threeData = res.result
|
|
|
|
|
|
})
|
2023-01-08 01:33:25 +08:00
|
|
|
|
},
|
2023-02-27 18:47:21 +08:00
|
|
|
|
|
2023-01-08 01:33:25 +08:00
|
|
|
|
//-----------------楼层
|
|
|
|
|
|
//新增楼层
|
|
|
|
|
|
addBtn() {
|
2023-02-27 18:47:21 +08:00
|
|
|
|
this.addBuildDialog = true
|
|
|
|
|
|
this.dialogTitle = '新增楼层'
|
2023-01-08 01:33:25 +08:00
|
|
|
|
this.addBuildForm = {
|
2023-02-27 18:47:21 +08:00
|
|
|
|
name: ''
|
|
|
|
|
|
}
|
2023-01-08 01:33:25 +08:00
|
|
|
|
},
|
|
|
|
|
|
//编辑楼层
|
|
|
|
|
|
editBuildFn(val) {
|
2023-02-27 18:47:21 +08:00
|
|
|
|
console.log('编辑的内容', val)
|
|
|
|
|
|
this.addBuildDialog = true
|
|
|
|
|
|
this.dialogTitle = '编辑楼层'
|
|
|
|
|
|
this.addBuildForm = JSON.parse(JSON.stringify(val))
|
2023-01-08 01:33:25 +08:00
|
|
|
|
},
|
|
|
|
|
|
//删除楼层
|
|
|
|
|
|
deleteBuildFn(val) {
|
2023-02-27 18:47:21 +08:00
|
|
|
|
this.$confirm('此操作将永久删除, 是否继续?', '提示', {
|
|
|
|
|
|
confirmButtonText: '确定',
|
|
|
|
|
|
cancelButtonText: '取消',
|
|
|
|
|
|
type: 'warning'
|
2023-01-08 01:33:25 +08:00
|
|
|
|
})
|
|
|
|
|
|
.then(() => {
|
|
|
|
|
|
deleteProjectFloorApi({ id: val.id }).then((res) => {
|
|
|
|
|
|
this.$message({
|
2023-02-27 18:47:21 +08:00
|
|
|
|
type: 'success',
|
|
|
|
|
|
message: '删除成功!'
|
|
|
|
|
|
})
|
|
|
|
|
|
this.getBuildingData()
|
|
|
|
|
|
})
|
2023-01-08 01:33:25 +08:00
|
|
|
|
})
|
|
|
|
|
|
.catch(() => {
|
|
|
|
|
|
this.$message({
|
2023-02-27 18:47:21 +08:00
|
|
|
|
type: 'info',
|
|
|
|
|
|
message: '已取消删除'
|
|
|
|
|
|
})
|
|
|
|
|
|
})
|
2023-01-08 01:33:25 +08:00
|
|
|
|
},
|
|
|
|
|
|
//新增或编辑楼层
|
|
|
|
|
|
addBudBtn() {
|
|
|
|
|
|
this.$refs.addBuildForm.validate((valid) => {
|
|
|
|
|
|
if (valid) {
|
2023-02-27 18:47:21 +08:00
|
|
|
|
if (this.dialogTitle == '新增楼层') {
|
2023-01-08 01:33:25 +08:00
|
|
|
|
addProjectFloorApi({
|
|
|
|
|
|
name: this.addBuildForm.name,
|
2023-02-27 18:47:21 +08:00
|
|
|
|
projectSn: this.projectSn
|
2023-01-08 01:33:25 +08:00
|
|
|
|
}).then((res) => {
|
2023-02-27 18:47:21 +08:00
|
|
|
|
this.$message.success('新增成功')
|
|
|
|
|
|
this.addBuildDialog = false
|
|
|
|
|
|
this.getBuildingData()
|
|
|
|
|
|
})
|
|
|
|
|
|
} else if (this.dialogTitle == '编辑楼层') {
|
2023-01-08 01:33:25 +08:00
|
|
|
|
updateProjectFloorApi(this.addBuildForm).then((res) => {
|
2023-02-27 18:47:21 +08:00
|
|
|
|
this.$message.success('编辑成功')
|
|
|
|
|
|
this.addBuildDialog = false
|
|
|
|
|
|
this.getBuildingData()
|
|
|
|
|
|
})
|
2023-01-08 01:33:25 +08:00
|
|
|
|
}
|
|
|
|
|
|
}
|
2023-02-27 18:47:21 +08:00
|
|
|
|
})
|
2023-01-08 01:33:25 +08:00
|
|
|
|
},
|
|
|
|
|
|
//-----------------施工阶段
|
|
|
|
|
|
//新增施工阶段
|
|
|
|
|
|
addConstruction() {
|
2023-02-27 18:47:21 +08:00
|
|
|
|
this.addFloorDialog = true
|
|
|
|
|
|
this.floorDialogTitle = '新增施工阶段'
|
2023-01-08 01:33:25 +08:00
|
|
|
|
this.floorForm = {
|
2023-02-27 18:47:21 +08:00
|
|
|
|
floorId: '', //楼层
|
|
|
|
|
|
constructionPhase: '', //施工阶段
|
|
|
|
|
|
major: '', //专业
|
|
|
|
|
|
startDate: '', //预计开始日期
|
|
|
|
|
|
endDate: '', //预计结束日期
|
|
|
|
|
|
actualStartDate: '', //实际开始日期
|
|
|
|
|
|
actualFinishDate: '', //实际结束日期
|
|
|
|
|
|
progressRatio: '', //当前进度
|
|
|
|
|
|
status: '' //阶段状态
|
|
|
|
|
|
}
|
2023-01-08 01:33:25 +08:00
|
|
|
|
},
|
|
|
|
|
|
//编辑施工阶段
|
|
|
|
|
|
edit1(val) {
|
2023-02-27 18:47:21 +08:00
|
|
|
|
this.addFloorDialog = true
|
|
|
|
|
|
this.floorDialogTitle = '编辑施工阶段'
|
|
|
|
|
|
this.floorForm = JSON.parse(JSON.stringify(val))
|
2023-01-08 01:33:25 +08:00
|
|
|
|
},
|
|
|
|
|
|
//删除施工阶段
|
|
|
|
|
|
del1(val) {
|
2023-02-27 18:47:21 +08:00
|
|
|
|
console.log('删除', val)
|
|
|
|
|
|
this.$confirm('此操作将永久删除, 是否继续?', '提示', {
|
|
|
|
|
|
confirmButtonText: '确定',
|
|
|
|
|
|
cancelButtonText: '取消',
|
|
|
|
|
|
type: 'warning'
|
2023-01-08 01:33:25 +08:00
|
|
|
|
})
|
|
|
|
|
|
.then(() => {
|
|
|
|
|
|
deleteConstructionPhaseApi({ id: val }).then((res) => {
|
|
|
|
|
|
this.$message({
|
2023-02-27 18:47:21 +08:00
|
|
|
|
type: 'success',
|
|
|
|
|
|
message: '删除成功!'
|
|
|
|
|
|
})
|
|
|
|
|
|
this.getConstructionData(this.floorId)
|
|
|
|
|
|
})
|
2023-01-08 01:33:25 +08:00
|
|
|
|
})
|
|
|
|
|
|
.catch(() => {
|
|
|
|
|
|
this.$message({
|
2023-02-27 18:47:21 +08:00
|
|
|
|
type: 'info',
|
|
|
|
|
|
message: '已取消删除'
|
|
|
|
|
|
})
|
|
|
|
|
|
})
|
2023-01-08 01:33:25 +08:00
|
|
|
|
},
|
|
|
|
|
|
//新增或编辑施工阶段
|
|
|
|
|
|
submit() {
|
2023-02-27 18:47:21 +08:00
|
|
|
|
this.floorForm.floorId = this.floorId
|
2023-01-08 01:33:25 +08:00
|
|
|
|
this.$refs.floorForm.validate((valid) => {
|
|
|
|
|
|
if (valid) {
|
2023-02-27 18:47:21 +08:00
|
|
|
|
if (this.floorDialogTitle == '新增施工阶段') {
|
2023-01-08 01:33:25 +08:00
|
|
|
|
addConstructionPhaseApi(this.floorForm).then((res) => {
|
2023-02-27 18:47:21 +08:00
|
|
|
|
this.$message.success('新增成功')
|
|
|
|
|
|
this.addFloorDialog = false
|
|
|
|
|
|
this.getConstructionData(this.floorId)
|
|
|
|
|
|
})
|
|
|
|
|
|
} else if (this.floorDialogTitle == '编辑施工阶段') {
|
2023-01-08 01:33:25 +08:00
|
|
|
|
updateConstructionPhaseApi(this.floorForm).then((res) => {
|
2023-02-27 18:47:21 +08:00
|
|
|
|
this.$message.success('修改成功')
|
|
|
|
|
|
this.addFloorDialog = false
|
|
|
|
|
|
this.getConstructionData(this.floorId)
|
|
|
|
|
|
})
|
2023-01-08 01:33:25 +08:00
|
|
|
|
}
|
|
|
|
|
|
}
|
2023-02-27 18:47:21 +08:00
|
|
|
|
})
|
2023-01-08 01:33:25 +08:00
|
|
|
|
},
|
2023-02-27 18:47:21 +08:00
|
|
|
|
// //切换类别
|
|
|
|
|
|
// next(index, data, $event, type) {
|
|
|
|
|
|
// console.log('data', this.buildList[data])
|
|
|
|
|
|
// this.threeData = []
|
|
|
|
|
|
// this.current = index
|
|
|
|
|
|
// this.currentTwo = -1
|
|
|
|
|
|
// this.getConstructionData(this.floorId)
|
|
|
|
|
|
// },
|
|
|
|
|
|
selectMenu(val, id) {
|
|
|
|
|
|
console.log(id)
|
|
|
|
|
|
console.log(val)
|
|
|
|
|
|
this.floorId = this.buildList[val].id
|
|
|
|
|
|
this.checkBuildingId = val
|
|
|
|
|
|
this.getConstructionData(this.floorId)
|
2023-01-08 01:33:25 +08:00
|
|
|
|
},
|
|
|
|
|
|
//查询
|
|
|
|
|
|
loadDataTwo() {
|
2023-02-27 18:47:21 +08:00
|
|
|
|
this.getConstructionData()
|
|
|
|
|
|
}
|
2023-01-08 01:33:25 +08:00
|
|
|
|
// //切换数量
|
|
|
|
|
|
// handleSizeChange(value) {
|
|
|
|
|
|
// this.pageSize = value;
|
|
|
|
|
|
// this.getInfoList();
|
|
|
|
|
|
// },
|
|
|
|
|
|
// handleCurrentChange(value) {
|
|
|
|
|
|
// this.page = value;
|
|
|
|
|
|
// this.getInfoList();
|
|
|
|
|
|
// },
|
2023-02-27 18:47:21 +08:00
|
|
|
|
}
|
|
|
|
|
|
}
|
2023-01-08 01:33:25 +08:00
|
|
|
|
</script>
|
|
|
|
|
|
<style lang="less" scoped>
|
|
|
|
|
|
.title {
|
|
|
|
|
|
border-bottom: 1px solid rgba(220, 230, 253, 1);
|
|
|
|
|
|
color: @--color-primary;
|
|
|
|
|
|
padding-left: 24px;
|
|
|
|
|
|
font-size: 14px;
|
|
|
|
|
|
|
|
|
|
|
|
span {
|
|
|
|
|
|
position: relative;
|
|
|
|
|
|
padding: 16px 0 5px;
|
|
|
|
|
|
display: inline-block;
|
|
|
|
|
|
|
|
|
|
|
|
&::before {
|
2023-02-27 18:47:21 +08:00
|
|
|
|
content: '';
|
2023-01-08 01:33:25 +08:00
|
|
|
|
position: absolute;
|
|
|
|
|
|
bottom: -1px;
|
|
|
|
|
|
left: 0;
|
|
|
|
|
|
width: 100%;
|
|
|
|
|
|
height: 2px;
|
|
|
|
|
|
background-color: @--color-primary;
|
|
|
|
|
|
z-index: 2;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
.searchDiv {
|
|
|
|
|
|
margin: 35px 48px;
|
|
|
|
|
|
}
|
|
|
|
|
|
.left {
|
|
|
|
|
|
width: 300px;
|
|
|
|
|
|
float: left;
|
|
|
|
|
|
}
|
|
|
|
|
|
.system-right {
|
|
|
|
|
|
float: right;
|
|
|
|
|
|
// margin-right: 1.5%;
|
|
|
|
|
|
margin-left: 20px;
|
|
|
|
|
|
width: calc(100% - 300px - 20px - 30px);
|
|
|
|
|
|
// min-height: 620px;
|
|
|
|
|
|
height: calc(100% - 40px);
|
|
|
|
|
|
// border: 1px solid #e9e9e9;
|
|
|
|
|
|
background-color: white;
|
|
|
|
|
|
padding: 20px 15px;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.flex {
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
justify-content: space-between;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.flex2 {
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.addFirm {
|
|
|
|
|
|
height: 45px;
|
|
|
|
|
|
line-height: 45px;
|
|
|
|
|
|
color: @--color-primary;
|
|
|
|
|
|
font-size: 15px;
|
|
|
|
|
|
text-align: center;
|
|
|
|
|
|
background: #fff;
|
|
|
|
|
|
border-top: 1px solid #dce6fd;
|
|
|
|
|
|
font-family: PingFangSC-Regular;
|
|
|
|
|
|
cursor: pointer;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.list_content {
|
|
|
|
|
|
padding: 10px 0;
|
|
|
|
|
|
height: calc(100% - 87px - 20px);
|
|
|
|
|
|
position: relative;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.content_data {
|
|
|
|
|
|
padding: 0 20px;
|
|
|
|
|
|
box-sizing: border-box;
|
|
|
|
|
|
height: 43px;
|
|
|
|
|
|
line-height: 43px;
|
|
|
|
|
|
cursor: pointer;
|
|
|
|
|
|
position: relative;
|
|
|
|
|
|
|
|
|
|
|
|
&.active {
|
|
|
|
|
|
background-color: rgba(81, 129, 246, 0.1);
|
|
|
|
|
|
|
|
|
|
|
|
&::after {
|
2023-02-27 18:47:21 +08:00
|
|
|
|
content: '';
|
2023-01-08 01:33:25 +08:00
|
|
|
|
position: absolute;
|
|
|
|
|
|
top: 0;
|
|
|
|
|
|
left: 0;
|
|
|
|
|
|
width: 4px;
|
|
|
|
|
|
height: 100%;
|
|
|
|
|
|
background-color: @--color-primary;
|
|
|
|
|
|
border-radius: 2px;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.floorBox {
|
|
|
|
|
|
margin-bottom: 10px;
|
|
|
|
|
|
// background-color: rgba(251, 251, 251, 1);
|
|
|
|
|
|
padding: 20px 20px 10px;
|
|
|
|
|
|
|
|
|
|
|
|
.addFloorBox {
|
|
|
|
|
|
line-height: 20px;
|
|
|
|
|
|
border: 1px solid @--color-primary;
|
|
|
|
|
|
|
|
|
|
|
|
i {
|
|
|
|
|
|
font-size: 25px;
|
|
|
|
|
|
margin-top: 20px;
|
|
|
|
|
|
color: @--color-primary;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
p {
|
|
|
|
|
|
font-size: 0.75rem;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
ul {
|
|
|
|
|
|
display: inline-block;
|
|
|
|
|
|
vertical-align: top;
|
|
|
|
|
|
|
|
|
|
|
|
li {
|
|
|
|
|
|
border: 1.2px solid rgba(0, 0, 0, 0.25);
|
|
|
|
|
|
width: 80px;
|
|
|
|
|
|
height: 80px;
|
|
|
|
|
|
border-radius: 3px;
|
|
|
|
|
|
text-align: center;
|
|
|
|
|
|
// background-color: rgba(41, 216, 180, 0.25);
|
|
|
|
|
|
display: inline-block;
|
|
|
|
|
|
margin: 0 10px 10px 0;
|
|
|
|
|
|
line-height: 60px;
|
|
|
|
|
|
font-size: 0.875rem;
|
|
|
|
|
|
cursor: pointer;
|
|
|
|
|
|
vertical-align: top;
|
|
|
|
|
|
|
|
|
|
|
|
&.more {
|
|
|
|
|
|
font-size: 1.6rem;
|
|
|
|
|
|
line-height: 65px;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
&.active {
|
|
|
|
|
|
background-color: #d8e2f9;
|
|
|
|
|
|
// color: #fff;
|
|
|
|
|
|
border-color: @--color-primary-deep;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.floorName {
|
|
|
|
|
|
height: 50px;
|
|
|
|
|
|
line-height: 70px;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.caretIcon {
|
|
|
|
|
|
height: 20px;
|
|
|
|
|
|
line-height: 20px;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.mapContainer {
|
|
|
|
|
|
height: calc(100% - 133px - 40px);
|
|
|
|
|
|
padding: 20px;
|
|
|
|
|
|
position: relative;
|
|
|
|
|
|
|
|
|
|
|
|
.infoDetail {
|
|
|
|
|
|
font-size: 14px;
|
|
|
|
|
|
margin-bottom: 16px;
|
|
|
|
|
|
|
|
|
|
|
|
span:first-child {
|
|
|
|
|
|
margin-right: 165px;
|
|
|
|
|
|
display: inline-block;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.uploadBtn {
|
|
|
|
|
|
float: right;
|
|
|
|
|
|
margin-top: -5px;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.mapBox {
|
|
|
|
|
|
border: 1px solid rgba(151, 151, 151, 0.5);
|
|
|
|
|
|
height: calc(100% - 40px);
|
|
|
|
|
|
position: relative;
|
|
|
|
|
|
overflow: auto;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.mapContent {
|
|
|
|
|
|
position: relative;
|
|
|
|
|
|
// left: 0;
|
|
|
|
|
|
// top: 0;
|
|
|
|
|
|
// z-index: 3;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// .mapContent2{
|
|
|
|
|
|
// position: relative;
|
|
|
|
|
|
// }
|
|
|
|
|
|
.personBox {
|
|
|
|
|
|
position: absolute;
|
|
|
|
|
|
transition: 0.2s all;
|
|
|
|
|
|
|
|
|
|
|
|
img {
|
|
|
|
|
|
cursor: pointer;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.redText {
|
|
|
|
|
|
margin-left: 20px;
|
|
|
|
|
|
display: inline-block;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.devDetail {
|
|
|
|
|
|
p {
|
|
|
|
|
|
margin-bottom: 10px;
|
|
|
|
|
|
|
|
|
|
|
|
.primaryText {
|
|
|
|
|
|
margin-right: 20px;
|
|
|
|
|
|
display: inline-block;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
&:last-child {
|
|
|
|
|
|
margin-bottom: 0;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.operateBox {
|
|
|
|
|
|
// margin-bottom: 10px;
|
|
|
|
|
|
position: absolute;
|
|
|
|
|
|
right: 112px;
|
|
|
|
|
|
top: 11px;
|
|
|
|
|
|
|
|
|
|
|
|
img {
|
|
|
|
|
|
margin-right: 20px;
|
|
|
|
|
|
cursor: pointer;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.operateList {
|
|
|
|
|
|
font-size: 12px;
|
|
|
|
|
|
|
|
|
|
|
|
li {
|
|
|
|
|
|
cursor: pointer;
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
margin-bottom: 10px;
|
|
|
|
|
|
justify-content: center;
|
|
|
|
|
|
|
|
|
|
|
|
img {
|
|
|
|
|
|
margin-right: 10px;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
&.last {
|
|
|
|
|
|
margin-bottom: 0;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
2023-02-27 18:47:21 +08:00
|
|
|
|
.active {
|
|
|
|
|
|
background-color: #d8e2f9;
|
|
|
|
|
|
// color: #fff;
|
|
|
|
|
|
border-color: @--color-primary-deep;
|
|
|
|
|
|
}
|
2023-01-08 01:33:25 +08:00
|
|
|
|
</style>
|