Merge remote-tracking branch 'origin/master'
| | |
| | | }) |
| | | }, |
| | | loadLedList() { |
| | | deviceList({ type: 2 }) |
| | | deviceList({ type: 2, isdeleted: 0 }) |
| | | .then(res => { |
| | | this.ledList = res || [] |
| | | }) |
| | | }, |
| | | loadBroadcastList() { |
| | | deviceList({ type: 3 }) |
| | | deviceList({ type: 3, isdeleted: 0 }) |
| | | .then(res => { |
| | | this.broadcastList = res || [] |
| | | }) |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import Vue from 'vue' |
| | | const preventReClick = Vue.directive('preventReClick', { |
| | | inserted: function(el, binding, vNode, oldVnode) { |
| | | el.addEventListener('click', () => { |
| | | if (!el.disabled) { |
| | | el.disabled = true |
| | | // el.style.backgroundColor = '#ccc' |
| | | // el.style.border = 'none' |
| | | setTimeout(() => { |
| | | el.disabled = false |
| | | // el.style.backgroundColor = '#4870F7' |
| | | // el.style.border = '1px solid #4870F7' |
| | | }, 2000) |
| | | } |
| | | }) |
| | | } |
| | | }) |
| | | |
| | | export default { |
| | | preventReClick |
| | | } |
| | |
| | | import plugins from './plugins' |
| | | import { mapState, mapMutations } from 'vuex' |
| | | import { fetchMenuTree } from './api/system/menu' |
| | | |
| | | import preventReClick from '@/directives/directive' |
| | | Vue.use(preventReClick) |
| | | Vue.config.productionTip = false |
| | | Vue.use(ElementUI, { |
| | | size: 'small' |
| | |
| | | <el-table-column prop="carCodeFront" label="车çå·" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="carCodeBack" label="çµåéç¶æ" min-width="100" show-overflow-tooltip> |
| | | <template v-slot="scope"> |
| | | <span class="red" v-if="scope.row.lockStatus == 0">æªä¸é</span> |
| | | <span class="red" v-if="scope.row.lockStatus == 1">é¨åä¸é</span> |
| | | <span v-if="scope.row.lockStatus == 2">å
¨é¨ä¸é</span> |
| | | <span class="red" v-if="scope.row.billCode && scope.row.lockStatus == 0">æªä¸é</span> |
| | | <span class="red" v-if="scope.row.billCode && scope.row.lockStatus == 1">é¨åä¸é</span> |
| | | <span v-if="scope.row.billCode && scope.row.lockStatus == 2">å
¨é¨ä¸é</span> |
| | | <span v-if="!scope.row.billCode">-</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="carrierName" label="è¿è¾å
¬å¸" min-width="100" show-overflow-tooltip /> |
| | |
| | | <div class="status">{{ statusMap[item.status] }}</div> |
| | | </div> |
| | | <div class="info"> |
| | | <div v-if="item.type == 4" class="ite"> |
| | | <span>åååå·ï¼</span> |
| | | <span>{{ item.contractNum }}</span> |
| | | </div> |
| | | <div v-else class="ite"> |
| | | <div v-if="item.billCode" class="ite"> |
| | | <span>è¿è¾åå·ï¼</span> |
| | | <span>{{ item.billCode }}</span> |
| | | </div> |
| | | <div v-else class="ite"> |
| | | <span>åååå·ï¼</span> |
| | | <span>{{ item.contractNum }}</span> |
| | | </div> |
| | | <div class="ite"> |
| | | <span>驾驶åï¼</span> |
| | |
| | | <span>æ»è¿è¾éï¼</span> |
| | | <span>{{ item.totalNum }}䏿¯</span> |
| | | </div> |
| | | <div v-if="item.type != 4" class="ite" style="width: 66%"> |
| | | <div v-if="item.billCode" class="ite" style="width: 66%"> |
| | | <span>è¿è¾å
¬å¸ï¼</span> |
| | | <span>{{ item.carrierName }}</span> |
| | | </div> |
| | | </div> |
| | | <div class="footer df_sb"> |
| | | <div v-if="item.type != 4" class="detail">è¿å详æ
</div> |
| | | <div v-else></div> |
| | | <el-button type="primary" @click="handleCall(item)">å«å·</el-button> |
| | | <div v-if="item.billCode" @click="handleDetail(item)" class="detail">è¿å详æ
</div> |
| | | <div v-else class="detail" @click="subDetail(item)">é¢çº¦è¯¦æ
</div> |
| | | <el-button v-preventReClick :loading="loadingCall" type="primary" @click="handleCall(item)">å«å·</el-button> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <pagination @size-change="handleSizeChange" @current-change="handlePageChange" :pagination="pagination"> |
| | | </pagination> |
| | | </div> |
| | | <!-- --> |
| | | <WaybillDetail ref="WaybillDetailRef" v-if="isShowDetail" @success="getList" @close="isShowDetail = false" /> |
| | | <DriverDetail v-if="isShowDriver" ref="DriverDetailRef" /> |
| | | </GlobalWindow> |
| | | </template> |
| | | |
| | |
| | | import { platformCallList, platformCallNumber, platformInPark } from '@/api' |
| | | import { statusMap } from '../config' |
| | | import { Message } from 'element-ui' |
| | | import WaybillDetail from './WaybillDetail.vue' |
| | | import DriverDetail from "@/views/task/driverDetail.vue" |
| | | export default { |
| | | components: { |
| | | GlobalWindow, |
| | | Pagination |
| | | Pagination, |
| | | WaybillDetail, |
| | | DriverDetail |
| | | }, |
| | | data() { |
| | | return { |
| | |
| | | title: '', |
| | | callType: '1', |
| | | activePlat: {}, |
| | | dataList: [] |
| | | dataList: [], |
| | | isShowDetail: false, // è¿å详æ
|
| | | isShowDriver: false, // é¢çº¦è¯¦æ
|
| | | loadingCall: false |
| | | |
| | | } |
| | | }, |
| | | methods: { |
| | | handleCall(item) { |
| | | const { activePlat, callType } = this |
| | | this.loadingCall = true |
| | | if (callType == 1) { // å
¥åå«å· |
| | | platformInPark({ |
| | | jobId: item.id, |
| | | platformId: activePlat.id |
| | | }).then(() => { |
| | | this.loadingCall = false |
| | | Message.success('å«å·æå') |
| | | this.$emit('success') |
| | | this.getList() |
| | | }) |
| | | },() => {this.loadingCall = false}) |
| | | } else { |
| | | this.loadingCall = true |
| | | platformCallNumber({ platformId: activePlat.id, jobId: item.id }).then(res => { |
| | | this.loadingCall = false |
| | | Message.success('å«å·æå') |
| | | this.$emit('success') |
| | | this.getList() |
| | | }) |
| | | },()=> {this.loadingCall = false}) |
| | | } |
| | | }, |
| | | subDetail(row) { |
| | | this.isShowDriver = true |
| | | this.$nextTick(() => { |
| | | this.$refs.DriverDetailRef.id = row.bookId |
| | | this.$refs.DriverDetailRef.type = row.objType |
| | | this.$refs.DriverDetailRef.getDetail() |
| | | this.$refs.DriverDetailRef.isShowModal = true |
| | | }) |
| | | }, |
| | | handleDetail(row) { |
| | | this.isShowDetail = true |
| | | this.$nextTick(() => { |
| | | this.$refs.WaybillDetailRef.isShowModal = true |
| | | this.$refs.WaybillDetailRef.id = row.id |
| | | this.$refs.WaybillDetailRef.getDetail() |
| | | }) |
| | | }, |
| | | getList() { |
| | | const { activePlat, pagination, carCodeFront, callType } = this |
| | | platformCallList({ |
| | |
| | | <div class="status" :class="{ red: item.status == 0 }">{{ statusMap[item.status] }}</div> |
| | | </div> |
| | | <div class="info"> |
| | | <div v-if="item.type == 4" class="ite"> |
| | | <span>åååå·ï¼</span> |
| | | <span>{{ item.contractNum }}</span> |
| | | </div> |
| | | <div v-else class="ite"> |
| | | <div v-if="item.billCode" class="ite"> |
| | | <span>è¿è¾åå·ï¼</span> |
| | | <span>{{ item.billCode }}</span> |
| | | </div> |
| | | <div v-else class="ite"> |
| | | <span>åååå·ï¼</span> |
| | | <span>{{ item.contractNum }}</span> |
| | | </div> |
| | | <div class="ite"> |
| | | <span>驾驶åï¼</span> |
| | | <span>{{ item.driverName }}</span> |
| | |
| | | <div class="contract"> |
| | | <span>ååå·ï¼{{ item.contractCode }}</span> |
| | | <div> |
| | | <span class="scs" v-if="item.platformWmsDetailList[0].status == 1">WMSä½ä¸å·²å®æ</span> |
| | | <span class="pad" v-if="item.platformWmsDetailList[0].status == 0">WMSä½ä¸æªå®æ</span> |
| | | <span class="err" v-if="item.platformWmsDetailList[0].status == 2">WMSä½ä¸å·²åæ¶</span> |
| | | <span class="scs" v-if="item.platformWmsDetailList[0].lockStatus == 1">çµåéå·²ä¸é</span> |
| | | <span class="pad" v-if="item.platformWmsDetailList[0].lockStatus == 0">çµåéæªä¸é</span> |
| | | <span class="scs" v-if="item.status == 1">WMSä½ä¸å·²å®æ</span> |
| | | <span class="pad" v-if="item.status == 0">WMSä½ä¸æªå®æ</span> |
| | | <span class="err" v-if="item.status == 2">WMSä½ä¸å·²åæ¶</span> |
| | | <span class="scs" v-if="item.lockStatus == 1">çµåéå·²ä¸é</span> |
| | | <span class="pad" v-if="item.lockStatus == 0">çµåéæªä¸é</span> |
| | | </div> |
| | | </div> |
| | | <div class="placeholder6">æ¶è´§å°ï¼{{ item.address }}</div> |
| | |
| | | </div> |
| | | </div> |
| | | <div class="line"> |
| | | <div v-if="task.type == 4" class="ite"> |
| | | <span>åååå·ï¼</span> |
| | | <span>{{ task.contractNum }}</span> |
| | | </div> |
| | | <div v-else class="ite"> |
| | | <div v-if="task.billCode" class="ite"> |
| | | <span>è¿è¾åå·ï¼</span> |
| | | <span>{{ task.billCode }}</span> |
| | | </div> |
| | | <div v-else class="ite"> |
| | | <span>åååå·ï¼</span> |
| | | <span>{{ task.contractNum }}</span> |
| | | </div> |
| | | <div class="ite siji"> |
| | | <span>驾驶åï¼</span> |
| | |
| | | <span>æ»è¿è¾éï¼</span> |
| | | <span>{{ task.totalNum }}䏿¯</span> |
| | | </div> |
| | | <div v-if="task.type != 4" class="ite" style="width: 66.6%"> |
| | | <div v-if="task.billCode" class="ite" style="width: 66.6%"> |
| | | <span>è¿è¾å
¬å¸ï¼</span> |
| | | <span>{{ task.carrierName }}</span> |
| | | </div> |
| | | <div class="ite"></div> |
| | | </div> |
| | | <div class="line"> |
| | | <div v-if="task.type != 4" class="left"> |
| | | <span class="primaryColor pointer" @click="handleDetail(task)">è¿å详æ
</span> |
| | | <div class="left"> |
| | | <span v-if="task.billCode" class="primaryColor pointer" @click="handleDetail(task)">è¿å详æ
</span> |
| | | <span v-else class="primaryColor pointer" @click="subDetail(task)">é¢çº¦è¯¦æ
</span> |
| | | </div> |
| | | <div v-else></div> |
| | | <div class="right"> |
| | | <el-button v-if="task.status == 5" plain @click="handleErr(task)">å¼å¸¸æèµ·</el-button> |
| | | <el-button v-if="task.status == 5 || task.status == 8" plain |
| | | @click="handleTransform(item, task)">转移æå°</el-button> |
| | | <el-button v-if="task.status == 4" plain @click="handlePass(task)">è¿å·</el-button> |
| | | <el-button v-if="task.status == 5 || task.status == 8" type="primary" |
| | | <el-button v-preventReClick :loading="loadingFinish" v-if="task.status == 5 || task.status == 8" type="primary" |
| | | @click="handleFinish(task)">ä½ä¸å®æ</el-button> |
| | | <el-button v-if="task.status == 4" type="primary" @click="handleWork(task)">å¼å§ä½ä¸</el-button> |
| | | <el-button v-preventReClick :loading="loadingOpen" v-if="task.status == 4" type="primary" @click="handleWork(task)">å¼å§ä½ä¸</el-button> |
| | | </div> |
| | | </div> |
| | | </div> |
| | |
| | | <PlatformQueuing ref="PlatformQueuingRef" v-if="isShowQueuing" @success="getPlatGroupList" |
| | | @close="isShowQueuing = false" /> |
| | | <WaybillDetail ref="WaybillDetailRef" v-if="isShowDetail" @success="getList" @close="isShowDetail = false" /> |
| | | <DriverDetail v-if="isShowDriver" ref="DriverDetailRef" /> |
| | | <el-dialog title="转移æå°" :visible.sync="isShowTransform" width="500px" style="margin-top: 12vh"> |
| | | <div class="df_ac"> |
| | | <span>éæ©è½¬ç§»å°çæå°ï¼</span> |
| | |
| | | </div> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="isShowTransform = false">åæ¶</el-button> |
| | | <el-button type="primary" @click="transformSub">ç¡®å®</el-button> |
| | | <el-button v-preventReClick type="primary" @click="transformSub">ç¡®å®</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | </div> |
| | |
| | | } from '@/api' |
| | | import PlatformQueuing from './components/PlatformQueuing.vue' |
| | | import WaybillDetail from './components/WaybillDetail.vue' |
| | | import DriverDetail from "@/views/task/driverDetail.vue" |
| | | import GlobalWindow from '@/components/common/GlobalWindow' |
| | | import dayjs from 'dayjs' |
| | | import duration from 'dayjs/plugin/duration' |
| | | import { Message } from 'element-ui' |
| | | import { Loading, Message } from 'element-ui' |
| | | import { statusMap } from './config' |
| | | dayjs.extend(duration) |
| | | export default { |
| | | components: { |
| | | PlatformQueuing, |
| | | WaybillDetail, |
| | | DriverDetail, |
| | | GlobalWindow |
| | | }, |
| | | data() { |
| | |
| | | |
| | | setParam: {}, |
| | | isShowDetail: false, // è¿å详æ
|
| | | isShowDriver: false, // é¢çº¦è¯¦æ
|
| | | detail: {}, |
| | | isShowQueuing: false, |
| | | timer: null |
| | | timer: null, |
| | | |
| | | loadingOpen: false, |
| | | loadingFinish: false, |
| | | } |
| | | }, |
| | | created() { |
| | |
| | | }, |
| | | methods: { |
| | | handleWork(item) { |
| | | this.loadingOpen = true |
| | | platformBeginWork({ jobId: item.id }).then(res => { |
| | | this.loadingOpen = false |
| | | Message.success('å·²å¼å§ä½ä¸') |
| | | this.getPlatGroupList() |
| | | }, () => { |
| | | this.loadingOpen = false |
| | | }) |
| | | }, |
| | | handleFinish(item) { |
| | | this.loadingFinish = true |
| | | platformFinishWork({ jobId: item.id }).then(res => { |
| | | this.loadingFinish = false |
| | | Message.success('宿ä½ä¸') |
| | | this.getPlatGroupList() |
| | | },() => { |
| | | this.loadingFinish = false |
| | | }) |
| | | }, |
| | | handleTransform(item, task) { |
| | |
| | | this.$refs.PlatformQueuingRef.title = item.name |
| | | }) |
| | | }, |
| | | subDetail(row) { |
| | | this.isShowDriver = true |
| | | this.$nextTick(() => { |
| | | this.$refs.DriverDetailRef.id = row.bookId |
| | | this.$refs.DriverDetailRef.type = 6 |
| | | this.$refs.DriverDetailRef.getDetail() |
| | | this.$refs.DriverDetailRef.isShowModal = true |
| | | }) |
| | | }, |
| | | handleDetail(row) { |
| | | this.isShowDetail = true |
| | | this.$nextTick(() => { |
| | |
| | | <script> |
| | | import Pagination from '@/components/common/Pagination' |
| | | import QueryForm from '@/components/common/QueryForm' |
| | | import DriverDetail from "@/views/task/driverDetail.vue" |
| | | import { |
| | | getPlatformGroupList, |
| | | platformLineUpPage, |
| | |
| | | } from '@/api' |
| | | import { queryQueueUpConfig } from './config' |
| | | import WaybillDetail from './components/WaybillDetail.vue' |
| | | import DriverDetail from "@/views/task/driverDetail.vue" |
| | | import PlatformSign from './components/PlatformSign.vue' |
| | | export default { |
| | | components: { |
| | |
| | | <view class="label">ææºå·</view> |
| | | <view class="value">{{ param.drivierPhone }}</view> |
| | | </view> |
| | | <view class="line" v-if="type != 4"> |
| | | <view class="line" v-if="param.billCode"> |
| | | <view class="label">è¿è¾åå·</view> |
| | | <view class="value" @click="wmsDetail"> |
| | | <text class="waybill_num">{{ param.billCode }}</text> |
| | |
| | | <view class="label">ææºå·</view>
|
| | | <view class="value">{{param.drivierPhone}}</view>
|
| | | </view>
|
| | | <template v-if="param.type != 4">
|
| | | <template v-if="param.billCode">
|
| | | <view class="line">
|
| | | <view class="label">è¿è¾åå·</view>
|
| | | <view class="value" @click="wmsDetail">
|
| | |
| | | <view class="status" v-if="item.status == 4">å«å·ä¸ {{ item.callDateTemp }}</view>
|
| | | <view class="status scs" v-if="item.status == 5">å·²ä½ä¸ {{ item.startDateTemp }}</view>
|
| | | </view>
|
| | | <view class="line" v-if="item.type == 4">
|
| | | <text class="label">åååå·</text>
|
| | | <text class="value">{{ item.contractNum }}</text>
|
| | | </view>
|
| | | <view class="line" v-else>
|
| | | <view class="line" v-if="item.code">
|
| | | <text class="label">è¿è¾åå·</text>
|
| | | <text class="value">{{ item.code }}</text>
|
| | | <text class="primaryColor" @click="handleDetail(item)">è¿å详æ
</text>
|
| | | </view>
|
| | | <view class="line" v-else>
|
| | | <text class="label">åååå·</text>
|
| | | <text class="value">{{ item.contractNum }}</text>
|
| | | </view>
|
| | | <view class="line">
|
| | | <text class="label">驾驶å</text>
|
| | |
| | | statusMap[item.status]
|
| | | }}</view>
|
| | | </view>
|
| | | <view class="line" v-if="item.type == 4">
|
| | | <text class="label">åååå·</text>
|
| | | <text class="value">{{ item.contractNum }}</text>
|
| | | </view>
|
| | | <view class="line" v-else>
|
| | | <view class="line" v-if="item.billCode">
|
| | | <text class="label">è¿è¾åå·</text>
|
| | | <text class="value">{{ item.billCode }}</text>
|
| | | <text class="primaryColor" @click="handleDetail(item)">è¿å详æ
</text>
|
| | | </view>
|
| | | <view class="line" v-else>
|
| | | <text class="label">åååå·</text>
|
| | | <text class="value">{{ item.contractNum }}</text>
|
| | | </view>
|
| | | <view class="line">
|
| | | <text class="label">驾驶å</text>
|
| | | <text class="value">{{ item.driverName }} {{ item.drivierPhone }}</text>
|
| | |
| | | >ç¾å°æ¶é´ï¼{{ item.signDate.slice(11, 16) }}</view |
| | | > |
| | | </view> |
| | | <view class="line" v-if="item.type == 4"> |
| | | <text class="label">åååå·</text> |
| | | <text class="value">{{ item.contractNum }}</text> |
| | | </view> |
| | | <view class="line" v-else> |
| | | <view class="line" v-if="item.billCode"> |
| | | <text class="label">è¿è¾åå·</text> |
| | | <text class="value">{{ item.billCode }}</text> |
| | | <text class="primaryColor" @click="handleDetail(item)">è¿å详æ
</text> |
| | | </view> |
| | | <view class="line" v-else> |
| | | <text class="label">åååå·</text> |
| | | <text class="value">{{ item.contractNum }}</text> |
| | | </view> |
| | | <view class="line"> |
| | | <text class="label">驾驶å</text> |
| | | <text class="value" |
| | |
| | | "dayjs": "^1.11.11", |
| | | "echarts": "^5.5.1", |
| | | "pinia": "^2.1.7", |
| | | "postcss-px2rem": "^0.3.0", |
| | | "postcss-plugin-px2rem": "^0.8.1", |
| | | "px2rem-loader": "^0.1.9", |
| | | "uqrcodejs": "^4.0.7", |
| | | "v-scale-screen": "^2.0.0", |
| | |
| | | "node": "^10 || ^12 || >=14" |
| | | } |
| | | }, |
| | | "node_modules/postcss-px2rem": { |
| | | "version": "0.3.0", |
| | | "resolved": "https://registry.npmjs.org/postcss-px2rem/-/postcss-px2rem-0.3.0.tgz", |
| | | "integrity": "sha512-ACZRimmOEDma0L/sI5ENREY3BoYB4LNME9iM9VcZU2t598OB9KLEPDYX8JBohNsvwJ+Nvlvk3IcGm0bRqOBC/Q==", |
| | | "node_modules/postcss-plugin-px2rem": { |
| | | "version": "0.8.1", |
| | | "resolved": "https://registry.npmjs.org/postcss-plugin-px2rem/-/postcss-plugin-px2rem-0.8.1.tgz", |
| | | "integrity": "sha512-gNxhrnR57pnGrPLLqVNWY9+BWgj46kYkphw+0gpRJf9tjgwI7/tLqQPK7KdlksB2SSAddOb11otDVwri8b8mXw==", |
| | | "dependencies": { |
| | | "postcss": "^5.0.0", |
| | | "px2rem": "~0.5.0" |
| | | "postcss": "^5.0.21" |
| | | } |
| | | }, |
| | | "node_modules/postcss-px2rem/node_modules/ansi-styles": { |
| | | "node_modules/postcss-plugin-px2rem/node_modules/ansi-styles": { |
| | | "version": "2.2.1", |
| | | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", |
| | | "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", |
| | |
| | | "node": ">=0.10.0" |
| | | } |
| | | }, |
| | | "node_modules/postcss-px2rem/node_modules/chalk": { |
| | | "node_modules/postcss-plugin-px2rem/node_modules/chalk": { |
| | | "version": "1.1.3", |
| | | "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", |
| | | "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", |
| | |
| | | "node": ">=0.10.0" |
| | | } |
| | | }, |
| | | "node_modules/postcss-px2rem/node_modules/chalk/node_modules/supports-color": { |
| | | "node_modules/postcss-plugin-px2rem/node_modules/chalk/node_modules/supports-color": { |
| | | "version": "2.0.0", |
| | | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", |
| | | "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", |
| | |
| | | "node": ">=0.8.0" |
| | | } |
| | | }, |
| | | "node_modules/postcss-px2rem/node_modules/has-flag": { |
| | | "node_modules/postcss-plugin-px2rem/node_modules/has-flag": { |
| | | "version": "1.0.0", |
| | | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", |
| | | "integrity": "sha512-DyYHfIYwAJmjAjSSPKANxI8bFY9YtFrgkAfinBojQ8YJTOuOuav64tMUJv584SES4xl74PmuaevIyaLESHdTAA==", |
| | |
| | | "node": ">=0.10.0" |
| | | } |
| | | }, |
| | | "node_modules/postcss-px2rem/node_modules/postcss": { |
| | | "node_modules/postcss-plugin-px2rem/node_modules/postcss": { |
| | | "version": "5.2.18", |
| | | "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", |
| | | "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", |
| | |
| | | "node": ">=0.12" |
| | | } |
| | | }, |
| | | "node_modules/postcss-px2rem/node_modules/source-map": { |
| | | "node_modules/postcss-plugin-px2rem/node_modules/source-map": { |
| | | "version": "0.5.7", |
| | | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", |
| | | "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", |
| | |
| | | "node": ">=0.10.0" |
| | | } |
| | | }, |
| | | "node_modules/postcss-px2rem/node_modules/supports-color": { |
| | | "node_modules/postcss-plugin-px2rem/node_modules/supports-color": { |
| | | "version": "3.2.3", |
| | | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", |
| | | "integrity": "sha512-Jds2VIYDrlp5ui7t8abHN2bjAu4LV/q4N2KivFPpGH0lrka0BMq/33AmECUXlKPcHigkNaqfXRENFju+rlcy+A==", |
| | |
| | | "dayjs": "^1.11.11", |
| | | "echarts": "^5.5.1", |
| | | "pinia": "^2.1.7", |
| | | "postcss-px2rem": "^0.3.0", |
| | | "postcss-plugin-px2rem": "^0.8.1", |
| | | "px2rem-loader": "^0.1.9", |
| | | "uqrcodejs": "^4.0.7", |
| | | "v-scale-screen": "^2.0.0", |
| | |
| | | |
| | | // remçæ¯éé
é
ç½®æä»¶ |
| | | // åºåå¤§å° |
| | | const baseSize = 14 |
| | | const baseSize = 16 |
| | | // 设置 rem 彿° |
| | | function setRem() { |
| | | // å½å页é¢å®½åº¦ç¸å¯¹äº 1920宽çç¼©æ¾æ¯ä¾ï¼å¯æ ¹æ®èªå·±éè¦ä¿®æ¹ã |
| | |
| | | contentList.value = res.data.allList.map(item => { |
| | | if (item.optTime) { |
| | | item.optTimeTemp = dayjs(item.optTime).format('HH:mm') |
| | | if(item.status == 4){ |
| | | if(item.optTime >= new Date().getTime()){ |
| | | item.optTimeTemp = dayjs.duration(item.optTime - new Date().getTime()).format('HH:mm') |
| | | }else{ |
| | | item.optTimeTemp = '-' |
| | | } |
| | | |
| | | } |
| | | // item.optTimeTemp = dayjs.duration(Math.abs(new Date().getTime() - item.optTime)).format('HH:mm') |
| | | } |
| | | return item |
| | |
| | | var qr = new UQRCode() |
| | | // 设置äºç»´ç å
容 |
| | | qr.data = qrcode.value |
| | | qr.size = 220 |
| | | qr.size = 268 |
| | | // è°ç¨å¶ä½äºç»´ç æ¹æ³ |
| | | qr.make() |
| | | var canvas = document.getElementById("qrcode") |
| | |
| | | </div> |
| | | <div class="item">{{ item.platformName || '-' }}</div> |
| | | <div class="item"> |
| | | <div v-if="item.optTimeTemp" class="time_place">é¢è®¡å®ææ¶é´</div> |
| | | <div v-if="item.optTimeTemp" class="time_place"> |
| | | {{ item.status == 4 ? 'å©ä½çå¾
æ¶é´' : 'é¢è®¡å®ææ¶é´' }} |
| | | </div> |
| | | <div>{{ item.optTimeTemp || '-' }}</div> |
| | | </div> |
| | | </div> |
| | |
| | | </div> |
| | | <div class="qrcode_wrap"> |
| | | <div class="qrcode"> |
| | | <canvas id="qrcode" width="220" height="220"></canvas> |
| | | <canvas id="qrcode" width="268" height="268"></canvas> |
| | | </div> |
| | | <div class="title">请æ«ç ç¾å°</div> |
| | | </div> |
| | |
| | | justify-content: center; |
| | | |
| | | .qrcode { |
| | | padding: 6px; |
| | | padding: 6px 6px 4px; |
| | | background-color: #fff; |
| | | } |
| | | |
| | |
| | | import { defineConfig } from 'vite' |
| | | import vue from '@vitejs/plugin-vue' |
| | | import VueDevTools from 'vite-plugin-vue-devtools' |
| | | //é
ç½®åæ° |
| | | |
| | | // https://vitejs.dev/config/ |
| | | export default defineConfig({ |
| | | plugins: [ |
| | | vue(), |
| | |
| | | '@': fileURLToPath(new URL('./src', import.meta.url)) |
| | | } |
| | | }, |
| | | css: { |
| | | |
| | | }, |
| | | build: { |
| | | outDir: 'platform_screen' |
| | | }, |