|
|
@@ -19,30 +19,40 @@
|
|
|
<span class="site-info">进度模拟方案</span>
|
|
|
<span
|
|
|
class="but_title_tab"
|
|
|
- :class="{ activeBut: activeName == i.name }"
|
|
|
+ :class="{ activeBut: activeName == i.num_boards }"
|
|
|
v-for="(i, k) in titleList"
|
|
|
:key="k"
|
|
|
- @click="changeTab(i.name)"
|
|
|
- >{{ k ? i.name : `【最优】${i.name}` }}{{ i.date }}</span
|
|
|
+ @click="changeActive(i.num_boards)"
|
|
|
+ >{{ k ? `方案${i.num_boards + 1}` : `【最优】方案${i.num_boards + 1}` }}: 工期{{
|
|
|
+ Math.ceil(Math.abs(i.time_score))
|
|
|
+ }}天</span
|
|
|
>
|
|
|
<i class="export-file" @click="project">导出project文件</i>
|
|
|
</div>
|
|
|
</div>
|
|
|
- <div class="but_table" :class="{activeNoData2: tableData.length == 0}">
|
|
|
+ <div class="but_table" :class="{ activeNoData2: tableData.length == 0 }">
|
|
|
<el-table v-if="tableData.length" :data="tableData" size="mini" style="width: 100%" height="230">
|
|
|
- <el-table-column prop="num" label="序号"> </el-table-column>
|
|
|
- <el-table-column prop="date" label="施工工序"> </el-table-column>
|
|
|
- <el-table-column prop="name" label="联合单元" width="200"> </el-table-column>
|
|
|
- <el-table-column prop="total_time" label="工期(工作日)"> </el-table-column>
|
|
|
- <el-table-column prop="start_time" label="开始时间"> </el-table-column>
|
|
|
- <el-table-column prop="end_time" label="结束时间"> </el-table-column>
|
|
|
- <el-table-column prop="2025-04-21" label="2025-04-21"> </el-table-column>
|
|
|
- <el-table-column prop="2025-04-22" label="2025-04-22"> </el-table-column>
|
|
|
- <el-table-column prop="2025-04-23" label="2025-04-23"> </el-table-column>
|
|
|
- <el-table-column prop="2025-04-24" label="2025-04-24"> </el-table-column>
|
|
|
- <el-table-column prop="2025-04-25" label="2025-04-25"> </el-table-column>
|
|
|
- <el-table-column prop="2025-04-26" label="2025-04-26"> </el-table-column>
|
|
|
- <el-table-column prop="2025-04-27" label="2025-04-27"> </el-table-column>
|
|
|
+ <el-table-column prop="num" label="序号"
|
|
|
+ ><template slot-scope="scope">{{ scope.$index + 1 }}</template></el-table-column
|
|
|
+ >
|
|
|
+ <el-table-column prop="step" label="施工工序"> </el-table-column>
|
|
|
+ <el-table-column prop="joint_unit" label="联合单元" width="200"> </el-table-column>
|
|
|
+ <el-table-column prop="duration_days" label="工期(工作日)"
|
|
|
+ ><template slot-scope="{ row }">{{ Math.ceil(Math.abs(row.duration_days)) }}</template></el-table-column
|
|
|
+ >
|
|
|
+ <el-table-column prop="start_time" label="开始时间"
|
|
|
+ ><template slot-scope="{ row }">{{ getDate(row.start_time) }}</template></el-table-column
|
|
|
+ >
|
|
|
+ <el-table-column prop="end_time" label="结束时间"
|
|
|
+ ><template slot-scope="{ row }">{{ getDate(row.end_time) }}</template></el-table-column
|
|
|
+ >
|
|
|
+ <el-table-column prop="" label="查看详情">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <el-button class="tdbutton" size="mini" type="primary" @click="openNewNode(scope.row.step)"
|
|
|
+ >新建</el-button
|
|
|
+ >
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
</el-table>
|
|
|
</div>
|
|
|
</div>
|
|
|
@@ -50,120 +60,14 @@
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
+import eventBus from "@/utils/eventBus.js";
|
|
|
export default {
|
|
|
data() {
|
|
|
return {
|
|
|
- activeName: '方案一',
|
|
|
- titleList: [
|
|
|
- {
|
|
|
- name: '方案一',
|
|
|
- date: '工期226天',
|
|
|
- status: '进行中'
|
|
|
- },
|
|
|
- {
|
|
|
- name: '方案二',
|
|
|
- date: '工期223天',
|
|
|
- status: '进行中'
|
|
|
- },
|
|
|
- {
|
|
|
- name: '方案三',
|
|
|
- date: '工期216天',
|
|
|
- status: '进行中'
|
|
|
- }
|
|
|
- ],
|
|
|
- tableData: [
|
|
|
- {
|
|
|
- num: 1,
|
|
|
- date: '第一层土方开挖',
|
|
|
- name: '区域A,区域B,区域C,区域D',
|
|
|
- total_time: 5,
|
|
|
- start_time: '2025-05-21',
|
|
|
- end_time: '2026-05-21',
|
|
|
- '2025-04-21': 1,
|
|
|
- '2025-04-22': 1,
|
|
|
- '2025-04-23': 1,
|
|
|
- '2025-04-24': 1,
|
|
|
- '2025-04-25': 1,
|
|
|
- '2025-04-26': 1,
|
|
|
- '2025-04-27': 1
|
|
|
- },
|
|
|
- {
|
|
|
- num: 1,
|
|
|
- date: '第一层土方开挖',
|
|
|
- name: '区域A,区域B,区域C,区域D',
|
|
|
- total_time: 5,
|
|
|
- start_time: '2025-05-21',
|
|
|
- end_time: '2026-05-21',
|
|
|
- '2025-04-21': 1,
|
|
|
- '2025-04-22': 1,
|
|
|
- '2025-04-23': 1,
|
|
|
- '2025-04-24': 1,
|
|
|
- '2025-04-25': 1,
|
|
|
- '2025-04-26': 1,
|
|
|
- '2025-04-27': 1
|
|
|
- },
|
|
|
- {
|
|
|
- num: 1,
|
|
|
- date: '第一层土方开挖',
|
|
|
- name: '区域A,区域B,区域C,区域D',
|
|
|
- total_time: 5,
|
|
|
- start_time: '2025-05-21',
|
|
|
- end_time: '2026-05-21',
|
|
|
- '2025-04-21': 1,
|
|
|
- '2025-04-22': 1,
|
|
|
- '2025-04-23': 1,
|
|
|
- '2025-04-24': 1,
|
|
|
- '2025-04-25': 1,
|
|
|
- '2025-04-26': 1,
|
|
|
- '2025-04-27': 1
|
|
|
- },
|
|
|
- {
|
|
|
- num: 1,
|
|
|
- date: '第一层土方开挖',
|
|
|
- name: '区域A,区域B,区域C,区域D',
|
|
|
- total_time: 5,
|
|
|
- start_time: '2025-05-21',
|
|
|
- end_time: '2026-05-21',
|
|
|
- '2025-04-21': 1,
|
|
|
- '2025-04-22': 1,
|
|
|
- '2025-04-23': 1,
|
|
|
- '2025-04-24': 1,
|
|
|
- '2025-04-25': 1,
|
|
|
- '2025-04-26': 1,
|
|
|
- '2025-04-27': 1
|
|
|
- },
|
|
|
- {
|
|
|
- num: 1,
|
|
|
- date: '第一层土方开挖',
|
|
|
- name: '区域A,区域B,区域C,区域D',
|
|
|
- total_time: 5,
|
|
|
- start_time: '2025-05-21',
|
|
|
- end_time: '2026-05-21',
|
|
|
- '2025-04-21': 1,
|
|
|
- '2025-04-22': 1,
|
|
|
- '2025-04-23': 1,
|
|
|
- '2025-04-24': 1,
|
|
|
- '2025-04-25': 1,
|
|
|
- '2025-04-26': 1,
|
|
|
- '2025-04-27': 1
|
|
|
- },
|
|
|
- {
|
|
|
- num: 1,
|
|
|
- date: '第一层土方开挖',
|
|
|
- name: '区域A,区域B,区域C,区域D',
|
|
|
- total_time: 5,
|
|
|
- start_time: '2025-05-21',
|
|
|
- end_time: '2026-05-21',
|
|
|
- '2025-04-21': 1,
|
|
|
- '2025-04-22': 1,
|
|
|
- '2025-04-23': 1,
|
|
|
- '2025-04-24': 1,
|
|
|
- '2025-04-25': 1,
|
|
|
- '2025-04-26': 1,
|
|
|
- '2025-04-27': 1
|
|
|
- }
|
|
|
- ],
|
|
|
- tableData:[]
|
|
|
+ activeName: 0,
|
|
|
+ titleList: [],
|
|
|
+ tableData: [],
|
|
|
+ best_schedule: []
|
|
|
}
|
|
|
},
|
|
|
mounted() {
|
|
|
@@ -203,11 +107,42 @@ export default {
|
|
|
},
|
|
|
|
|
|
methods: {
|
|
|
- changeTab(t) {
|
|
|
+ indexMethod(index) {
|
|
|
+ return index + 1
|
|
|
+ },
|
|
|
+
|
|
|
+ changeActive(t) {
|
|
|
this.activeName = t
|
|
|
+ this.tableData = this.titleList[t].schedule
|
|
|
},
|
|
|
|
|
|
- project() {}
|
|
|
+ changeTable(t, best_schedule) {
|
|
|
+ this.best_schedule = best_schedule
|
|
|
+ this.titleList = t
|
|
|
+ this.tableData = t[this.activeName].schedule
|
|
|
+ },
|
|
|
+
|
|
|
+ getDate(isoDate) {
|
|
|
+ const date = new Date(isoDate)
|
|
|
+ const year = date.getFullYear()
|
|
|
+ const month = String(date.getMonth() + 1).padStart(2, '0')
|
|
|
+ const day = String(date.getDate()).padStart(2, '0')
|
|
|
+ const hours = String(date.getHours()).padStart(2, '0')
|
|
|
+ const minutes = String(date.getMinutes()).padStart(2, '0')
|
|
|
+ const seconds = String(date.getSeconds()).padStart(2, '0')
|
|
|
+ return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`
|
|
|
+ },
|
|
|
+
|
|
|
+ project() {},
|
|
|
+
|
|
|
+ openNewNode(step) {
|
|
|
+ if (this.best_schedule && this.best_schedule.length) {
|
|
|
+ var arr = this.best_schedule.filter((i) => i.step == step)
|
|
|
+ if (arr && arr.length) {
|
|
|
+ eventBus.emit("best_schedule", arr);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
</script>
|
|
|
@@ -233,10 +168,12 @@ export default {
|
|
|
font-size: 14px;
|
|
|
color: #2ba7ff;
|
|
|
}
|
|
|
-.but_table .el-table--border::after, .but_table .el-table--group::after, .but_table .el-table::before{
|
|
|
- background-color: rgba(14, 167, 255, 0);
|
|
|
+.but_table .el-table--border::after,
|
|
|
+.but_table .el-table--group::after,
|
|
|
+.but_table .el-table::before {
|
|
|
+ background-color: rgba(14, 167, 255, 0);
|
|
|
}
|
|
|
-.activeNoData2{
|
|
|
+.activeNoData2 {
|
|
|
height: 100%;
|
|
|
background: url('~@/assets/images/jczc/noData2.png') no-repeat center center;
|
|
|
background-size: 102px 74px;
|
|
|
@@ -272,6 +209,7 @@ export default {
|
|
|
margin-left: 0.10417rem;
|
|
|
position: absolute;
|
|
|
font-family: Source Han Sans CN;
|
|
|
+ overflow: hidden;
|
|
|
background: linear-gradient(0deg, rgba(14, 167, 255, 0.7) 0%, rgba(14, 167, 255, 0.2) 100%);
|
|
|
.head {
|
|
|
height: 0.166667rem /* 32/192 */;
|