jiangping
2024-11-05 c9ef2687d3460da668d08d58dee6af468ed6693e
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
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
<template>
  <TableLayout :permissions="['business:platform:query']">
    <!-- 搜索表单 -->
    <SearchFormCollapse slot="search-form" :need-more="false">
      <el-form ref="searchForm" :model="searchForm" label-width="100px" inline>
        <el-form-item label="" prop="name">
          <el-input v-model="searchForm.name" clearable placeholder="请输入月台名称"
            @keypress.enter.native="search"></el-input>
        </el-form-item>
        <el-form-item label="">
          <el-select v-model="searchForm.groupId" placeholder="请选择月台分组" @change="search" clearable>
            <el-option v-for="item in groupList" :key="item.id" :label="item.name" :value="item.id">
            </el-option>
          </el-select>
        </el-form-item>
        <!-- <section> -->
        <el-button type="primary" @click="search">搜索</el-button>
        <el-button @click="reset">重置</el-button>
        <!-- </section> -->
      </el-form>
    </SearchFormCollapse>
    <!-- 表格和分页 -->
    <template v-slot:table-wrap>
      <ul class="toolbar" v-permissions="['business:hksync:platforms']">
        <li><el-button type="primary" :loading="working" @click="syncData" icon="el-icon-plus"
            v-permissions="['business:hksync:platforms']">同步</el-button></li>
        <li><el-button type="primary" :loading="working1" @click="syncStatus" icon="el-icon-plus"
            v-permissions="['business:hksync:platforms']">同步实时状态</el-button></li>
      </ul>
      <el-table v-loading="isWorking.search" :data="tableData.list" stripe @selection-change="handleSelectionChange">
        <el-table-column type="selection" width="55"></el-table-column>
        <el-table-column prop="name" label="月台名称" fixed min-width="100px"></el-table-column>
        <el-table-column prop="code" label="月台编码" fixed min-width="100px"></el-table-column>
        <el-table-column prop="groupName" label="所属月台组" fixed min-width="150px"></el-table-column>
        <el-table-column prop="workingNum" label="同时叫号车辆数" min-width="120px"></el-table-column>
        <el-table-column prop="stayTimeoutAlarmTime" label="停留超时报警时间(分钟)" min-width="180px">
          <template scope="{row}">{{ row.stayTimeoutAlarmTime ? (row.stayTimeoutAlarmTime) : '-' }}</template>
        </el-table-column>
        <el-table-column prop="workTimeoutAlarmTime" label="作业超时报警时间(分钟)" min-width="180px">
          <template scope="{row}"> {{ row.workTimeoutAlarmTime ? (row.workTimeoutAlarmTime) : '-' }}</template>
        </el-table-column>
        <el-table-column prop="workRate" label="月台作业效率(万支/小时)" min-width="180px"></el-table-column>
        <!-- <el-table-column prop="platformStatus" label="月台状态" min-width="100px">
          <template scope="{row}">
            <span v-if="row.platformStatus == 0">无车</span>
            <span v-if="row.platformStatus == 1">有车</span>
            <span v-if="row.platformStatus == 2">超时停靠</span>
            <span v-if="row.platformStatus == 3">错误停靠</span>
          </template>
        </el-table-column> -->
        <el-table-column prop="broadcastNames" label="关联广播" min-width="100px"></el-table-column>
        <el-table-column prop="ledNames" label="关联LED" min-width="100px"></el-table-column>
        <el-table-column prop="ledContent" label="LED空闲文案" min-width="180px"></el-table-column>
        <el-table-column prop="hkDate" label="同步时间" min-width="150px"></el-table-column>
        <el-table-column label="月台状态" fixed="right" width="100px">
          <template slot-scope="{row}">
            <el-switch @change="changeStatus($event, row)" v-model="row.status" active-color="#13ce66"
              inactive-color="#ff4949" :active-value="0" :inactive-value="1">
            </el-switch>
          </template>
        </el-table-column>
        <el-table-column v-if="containPermissions(['business:platform:update', 'business:platform:delete'])" label="操作"
          min-width="120" fixed="right">
          <template slot-scope="{row}">
            <el-button type="text" @click="$refs.operaPlatformWindow.open('编辑月台信息表', row)" icon="el-icon-edit"
              v-permissions="['business:platform:update']">编辑</el-button>
            <!-- <el-button type="text" @click="deleteById(row)" icon="el-icon-delete"
              v-permissions="['business:platform:delete']">删除</el-button> -->
          </template>
        </el-table-column>
      </el-table>
      <pagination @size-change="handleSizeChange" @current-change="handlePageChange" :pagination="tableData.pagination">
      </pagination>
    </template>
    <!-- 新建/修改 -->
    <OperaPlatformWindow ref="operaPlatformWindow" @success="handlePageChange" />
  </TableLayout>
</template>
 
<script>
import BaseTable from '@/components/base/BaseTable'
import TableLayout from '@/layouts/TableLayout'
import SearchFormCollapse from '@/components/common/SearchFormCollapse'
import Pagination from '@/components/common/Pagination'
import OperaPlatformWindow from '@/components/business/OperaPlatformWindow'
import { allList } from '@/api/platform/platformGroup'
export default {
  name: 'Platform',
  extends: BaseTable,
  components: { SearchFormCollapse, TableLayout, Pagination, OperaPlatformWindow },
  data() {
    return {
      groupList: [],
      // 搜索
      working: false,
      working1: false,
      searchForm: {
        name: '',
        groupId: null
      }
    }
  },
  created() {
    this.config({
      module: '月台信息表',
      api: '/platform/platform',
      'field.id': 'id',
      'field.main': 'id'
    })
    this.search()
    this.loadGroupList()
  },
  methods: {
    loadGroupList() {
      allList({})
        .then(res => {
          this.groupList = res || []
        })
    },
    changeStatus(e, row) {
      this.api.updateStatusById({
        id: row.id,
        status: e
      })
    },
    syncData() {
      this.$dialog.actionConfirm('操作确认提醒', '您确认同步全部信息吗?')
        .then(() => {
          this.isWorking.working = true
          this.api.syncPlatforms({})
            .then(res => {
              this.$tip.apiSuccess(res || '同步成功')
              this.search()
            })
            .catch(e => {
              // this.$tip.apiFailed(e)
            })
            .finally(() => {
              this.isWorking.working = false
            })
        })
        .catch(() => { })
    },
    syncStatus() {
      this.$dialog.actionConfirm('操作确认提醒', '您确认同步全部信息吗?')
        .then(() => {
          this.isWorking.working = true
          this.api.syncPlatformStatus({})
            .then(res => {
              this.$tip.apiSuccess(res || '同步成功')
              this.search()
            })
            .catch(e => {
              // this.$tip.apiFailed(e)
            })
            .finally(() => {
              this.isWorking.working = false
            })
        })
        .catch(() => { })
    }
  }
}
</script>