From e4900e09f522a4b65dc3f1870d5a821b5a979581 Mon Sep 17 00:00:00 2001 From: jiangping <jp@doumee.com> Date: 星期一, 09 九月 2024 19:56:27 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- admin/src/views/platform/queueUp.vue | 206 +++++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 183 insertions(+), 23 deletions(-) diff --git a/admin/src/views/platform/queueUp.vue b/admin/src/views/platform/queueUp.vue index 785983c..9b7f0b2 100644 --- a/admin/src/views/platform/queueUp.vue +++ b/admin/src/views/platform/queueUp.vue @@ -2,77 +2,237 @@ <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 { - data () { + 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: {} } }, - created () { + created() { this.getPlatGroupList() }, methods: { - getPlatGroupList () { + getPlatGroupList() { getPlatformGroupList({ queryData: 1, queryType: 1 }).then(res => { this.PlatGroupList = res || [] - if (this.activeGroup && this.activeGroup.id) { - this.activeGroup = res.find(item => item.id === this.activeGroup.id) - } else { - this.activeGroup = res[0] + 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() } }) }, - platgroupClick (item) { - this.activeGroup = { ...item } + 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 + }) }, - getList () { }, - clear () { } + 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() + }, + 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; -- Gitblit v1.9.3