| | |
| | | <div class="main_app"> |
| | | <div class="mb20 main_header"> |
| | | <div class="platgroup_tabs"> |
| | | <div |
| | | class="tab" |
| | | :class="{ active: activeGroup.id === item.id }" |
| | | @click="platgroupClick(item)" |
| | | v-for="(item, i) in PlatGroupList" |
| | | :key="i" |
| | | > |
| | | <div class="tab" :class="{ active: activeGroup.id === item.id }" @click="platgroupClick(item)" |
| | | v-for="(item, i) in PlatGroupList" :key="i"> |
| | | {{ item.name }} |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <QueryForm v-model="filters" :query-form-config="queryQueueUpConfig" @handleQuery="getList(1)" @clear="clear"> |
| | | </QueryForm> |
| | | <div class="main_content"> |
| | | <div class="static_wrap"> |
| | | <span>等待:<span class="num">{{ staticParam.waitNum }}</span></span> |
| | | <span class="mr30">{{ }}</span> |
| | | <span>挂起:<span class="red">{{ staticParam.exceptionNum }}</span></span> |
| | | <span></span> |
| | | </div> |
| | | </div> |
| | | <el-table class="mb20" v-loading="loading" :data="dataList" stripe row-key="id" default-expand-all> |
| | | <el-table-column type="index" label="序号" width="80" /> |
| | | <el-table-column label="车牌号" width="160"> |
| | | <template slot-scope="{ row }"> |
| | | <div class="plate_id"> |
| | | <span>{{ row.carCodeFront.slice(0, 1) }}</span> |
| | | <span>{{ row.carCodeFront.slice(1, 2) }}</span> |
| | | <span>·</span> |
| | | <span>{{ row.carCodeFront.slice(2) }}</span> |
| | | </div> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="carrierName" label="运输公司" min-width="200" /> |
| | | <el-table-column prop="code" label="运单号" min-width="200" /> |
| | | <el-table-column prop="totalNum" label="总运输量(万支)" min-width="130" /> |
| | | <el-table-column prop="driverName" label="驾驶员" min-width="140"> |
| | | <template slot-scope="{ row }"> |
| | | <span class="mr10">{{ row.driverName }}</span> |
| | | <span>{{ row.drivierPhone }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="signDate" label="签到时间" min-width="150" /> |
| | | <el-table-column label="操作" width="100" fixed="right"> |
| | | <template slot-scope="{ row }"> |
| | | <el-button type="text" @click="handleDetail(row)" v-permissions="['business:company:update']">运单详情</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <pagination @size-change="handleSizeChange" @current-change="handlePageChange" :pagination="pagination" /> |
| | | |
| | | <!-- --> |
| | | <WaybillDetail |
| | | ref="WaybillDetailRef" |
| | | v-if="isShowDetail" |
| | | @success="getList" |
| | | @close="isShowDetail = false" |
| | | /> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import Pagination from '@/components/common/Pagination' |
| | | import QueryForm from '@/components/common/QueryForm' |
| | | import { |
| | | getPlatformGroupList |
| | | getPlatformGroupList, |
| | | platformLineUpPage, |
| | | getPlatformGroupWork |
| | | } from '@/api' |
| | | import { queryQueueUpConfig } from './config' |
| | | import WaybillDetail from './components/WaybillDetail.vue' |
| | | export default { |
| | | components: { |
| | | Pagination, |
| | | QueryForm, |
| | | WaybillDetail |
| | | }, |
| | | data () { |
| | | return { |
| | | filters: {}, |
| | | activeGroup: {}, |
| | | PlatGroupList: [], |
| | | |
| | | isShowSet: false, // 月台配置 |
| | | setParam: {}, |
| | | staticParam: {}, |
| | | dataList: [], |
| | | loading: false, |
| | | pagination: { |
| | | pageSize: 10, |
| | | page: 1, |
| | | total: 0, |
| | | }, |
| | | queryQueueUpConfig, |
| | | isShowDetail: false, // 运单详情 |
| | | detail: {} |
| | | } |
| | |
| | | queryType: 1 |
| | | }).then(res => { |
| | | this.PlatGroupList = res || [] |
| | | if (res && res.length > 0) { |
| | | if (this.activeGroup && this.activeGroup.id) { |
| | | this.activeGroup = res.find(item => item.id === this.activeGroup.id) |
| | | } else { |
| | | this.activeGroup = res[0] |
| | | } |
| | | this.getPlatformGroupWork() |
| | | this.getList() |
| | | } |
| | | }) |
| | | }, |
| | | getList() { |
| | | const { activeGroup, pagination, filters } = this |
| | | this.loading = true |
| | | platformLineUpPage({ |
| | | model: { platformGroupId: activeGroup.id, ...filters, callType: 3 }, |
| | | capacity: pagination.pageSize, |
| | | page: pagination.page, |
| | | }).then(res => { |
| | | this.loading = false |
| | | this.dataList = res.records || [] |
| | | this.pagination.total = res.total || 0 |
| | | }, () => { |
| | | this.loading = false |
| | | }) |
| | | }, |
| | | getPlatformGroupWork() { |
| | | const { activeGroup } = this |
| | | getPlatformGroupWork(activeGroup.id).then(res => { |
| | | this.staticParam = res || {} |
| | | }) |
| | | }, |
| | | handleSizeChange(e) { |
| | | this.pagination.pageSize = e |
| | | this.getList() |
| | | }, |
| | | handlePageChange(e) { |
| | | this.pagination.page = e |
| | | this.getList() |
| | | }, |
| | | platgroupClick (item) { |
| | | this.activeGroup = { ...item } |
| | | this.pagination.page = 1 |
| | | this.filters = {} |
| | | this.getPlatformGroupWork() |
| | | this.getList() |
| | | }, |
| | | getList () { }, |
| | | clear () { } |
| | | clear() { |
| | | this.pagination.page = 1 |
| | | this.filters = {} |
| | | this.getList() |
| | | }, |
| | | handleDetail(row) { |
| | | this.isShowDetail = true |
| | | this.$nextTick(() => { |
| | | this.$refs.WaybillDetailRef.isShowModal = true |
| | | }) |
| | | }, |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | @import "@/assets/style/variables.scss"; |
| | | |
| | | .main_content { |
| | | background-color: #fff; |
| | | position: relative; |
| | | z-index: 999; |
| | | top: -10; |
| | | margin: -20px; |
| | | padding: 0 20px; |
| | | |
| | | .static_wrap { |
| | | height: 50px; |
| | | line-height: 50px; |
| | | color: #666666; |
| | | font-size: 15px; |
| | | padding: 0 20px; |
| | | background: #F4FAFB; |
| | | border-radius: 2px 2px 0px 0px; |
| | | margin-bottom: 36px; |
| | | |
| | | .num { |
| | | color: #111111; |
| | | } |
| | | } |
| | | } |
| | | |
| | | .plate_id { |
| | | display: flex; |
| | | width: 111px; |
| | | font-weight: 600; |
| | | height: 30px; |
| | | line-height: 30px; |
| | | font-size: 16px; |
| | | color: #111111; |
| | | border-radius: 4px; |
| | | border: 1px solid #dfdede; |
| | | span { |
| | | &:nth-of-type(1) { |
| | | background: $primary-color; |
| | | padding: 0 6px; |
| | | color: #fff |
| | | } |
| | | |
| | | &:nth-of-type(2) { |
| | | padding-left: 2px; |
| | | } |
| | | |
| | | &:nth-of-type(4) { |
| | | padding-right: 3px; |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | .main_header { |
| | | .platgroup_tabs { |
| | | flex: 1; |
| | | display: flex; |
| | | border-bottom: 1px solid #dfe2e8; |
| | | |
| | | .tab { |
| | | color: #666666; |
| | | margin-right: 40px; |
| | | cursor: pointer; |
| | | padding-bottom: 18px; |
| | | padding-bottom: 14px; |
| | | border-bottom: 2px solid #fff; |
| | | } |
| | | |
| | | .active { |
| | | font-weight: 500; |
| | | font-size: 15px; |