1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
  | <template> 
 |    <div class="main_app"> 
 |      <QueryForm v-model="filters" :query-form-config="queryFormConfig" @handleQuery="getList(1)" @clear="clear"> 
 |        <template #fastdate> 
 |          <el-radio-group v-model="filters.fastdate" size="small" @input="changeRadio"> 
 |            <el-radio-button label="0">当天</el-radio-button> 
 |            <el-radio-button label="6">近7天</el-radio-button> 
 |            <el-radio-button label="29">近30天</el-radio-button> 
 |          </el-radio-group> 
 |        </template> 
 |      </QueryForm> 
 |      <el-table v-loading="loading" :data="list" stripe> 
 |        <el-table-column prop="name" label="月台名称" min-width="100" show-overflow-tooltip /> 
 |        <el-table-column prop="groupName" label="月台组" min-width="100" show-overflow-tooltip /> 
 |        <el-table-column prop="stopCount" label="停靠次数(次)" min-width="100" show-overflow-tooltip /> 
 |        <el-table-column prop="workCountTime" label="工作时长" min-width="100" show-overflow-tooltip /> 
 |        <el-table-column prop="useRata" label="月台使用率" min-width="100" show-overflow-tooltip /> 
 |      </el-table> 
 |      <!-- <pagination @size-change="handleSizeChange" @current-change="getList" :pagination="pagination" /> --> 
 |    </div> 
 |  </template> 
 |    
 |  <script> 
 |  import Pagination from '@/components/common/Pagination' 
 |  import QueryForm from '@/components/common/QueryForm' 
 |  import dayjs from 'dayjs' 
 |  import { platformWorkReportPage, getPlatformGroupList } from '@/api' 
 |  export default { 
 |    components: { 
 |      Pagination, 
 |      QueryForm 
 |    }, 
 |    data() { 
 |      return { 
 |        loading: false, 
 |        pagination: { 
 |          pageSize: 10, 
 |          page: 1, 
 |          total: 0 
 |        }, 
 |        filters: { 
 |          fastdate: 0, 
 |          selDate: [] 
 |        }, 
 |        list: [], 
 |        total: 0, 
 |        queryFormConfig: { 
 |          formItems: [ 
 |            { 
 |              filed: 'name', 
 |              type: 'input', 
 |              label: '月台名称' 
 |            }, 
 |            { 
 |              filed: 'groupId', 
 |              type: 'select', 
 |              label: '月台组', 
 |              placeholder: '全部月台组', 
 |              options: [] 
 |            }, 
 |            { 
 |              type: 'slot', 
 |              filed: 'fastdate', 
 |              label: '' 
 |            }, 
 |            { 
 |              filed: 'selDate', 
 |              type: 'daterange', 
 |              clearable: false, 
 |              label: '日期' 
 |            } 
 |          ], 
 |          online: true 
 |        } 
 |      } 
 |    }, 
 |    created() { 
 |      this.changeRadio('0') 
 |      this.getGroupList() 
 |    }, 
 |    methods: { 
 |      changeRadio(day) { 
 |        const arr = [dayjs().subtract(day, 'day').format('YYYY-MM-DD'), dayjs().format('YYYY-MM-DD')] 
 |        this.$set(this.filters, 'selDate', arr) 
 |        this.getList() 
 |      }, 
 |      handleSub() { 
 |        this.$refs.ruleForm.validate((valid) => { 
 |          if (valid) { 
 |            alert('submit!') 
 |          } 
 |        }) 
 |      }, 
 |      getGroupList() { 
 |        getPlatformGroupList({ queryData: 0, queryType: 0 }).then(res => { 
 |          this.queryFormConfig.formItems[1].options = res.map(i => { 
 |            return { 
 |              value: i.id, 
 |              label: i.name 
 |            } 
 |          }) 
 |          // this.queryFormConfig.formItems[1].options.unshift({ value: '', label: '全部月台组' }) 
 |        }) 
 |      }, 
 |      getList(page) { 
 |        const { pagination, filters } = this 
 |        this.loading = true 
 |        platformWorkReportPage({ 
 |          ...filters, 
 |          queryDateStart: filters.selDate && filters.selDate.length > 0 ? filters.selDate[0] : null, 
 |          queryDateEnd: filters.selDate && filters.selDate.length > 0 ? filters.selDate[1] : null, 
 |        }).then(res => { 
 |          this.loading = false 
 |          this.list = res || [] 
 |          this.list.forEach(item => { 
 |            item.useRata = item.useRata + '%' 
 |            item.workCountTime = item.workCountTime + '时' 
 |            // item.workTime = dayjs.duration(item.workTime, 'seconds').format('H时m分s秒') 
 |          }) 
 |        }, () => { 
 |          this.loading = false 
 |        }) 
 |      }, 
 |      clear() { 
 |        this.filters = { 
 |          fastdate: 0, 
 |          selDate: [] 
 |        } 
 |        this.changeRadio('0') 
 |      }, 
 |      handleSizeChange(capacity) { 
 |        this.pagination.pageSize = capacity 
 |      } 
 |    } 
 |  } 
 |  </script> 
 |    
 |  <style></style> 
 |  
  |