From 27127509d728c4f8cb143c22861389d5182bea5c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A3=B7=E5=8F=B6?= <14103883+leaf-phos@user.noreply.gitee.com> Date: Fri, 11 Apr 2025 15:35:32 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/bst/area/edit/edit.vue | 14 +++--- src/views/bst/areaSub/components/AreaMap.js | 21 +++++++++ src/views/bst/areaSub/components/AreaMap.vue | 37 ++++++--------- .../bst/areaSub/components/PlaybackPanel.vue | 38 +++++++--------- src/views/bst/device/index.vue | 15 +++---- src/views/bst/index/AdminIndex.vue | 1 + .../order/components/OrderVerifyDialog.vue | 23 +++++++--- src/views/bst/order/index.vue | 2 +- src/views/bst/order/view/view.vue | 9 ++-- src/views/bst/orderDevice/index.vue | 45 ++++++++++++++----- src/views/bst/withdraw/index.vue | 7 ++- src/views/mobile/liveness/index.vue | 4 +- 12 files changed, 126 insertions(+), 90 deletions(-) diff --git a/src/views/bst/area/edit/edit.vue b/src/views/bst/area/edit/edit.vue index de732de..806d12f 100644 --- a/src/views/bst/area/edit/edit.vue +++ b/src/views/bst/area/edit/edit.vue @@ -8,8 +8,8 @@ - - + + @@ -61,13 +61,13 @@ - - + + - + @@ -75,8 +75,8 @@ - - + + diff --git a/src/views/bst/areaSub/components/AreaMap.js b/src/views/bst/areaSub/components/AreaMap.js index a60ff44..9d53c2d 100644 --- a/src/views/bst/areaSub/components/AreaMap.js +++ b/src/views/bst/areaSub/components/AreaMap.js @@ -61,6 +61,27 @@ export const LABEL_STYLES = { }; +// SN标签样式 +export function getSnLabel(AMap, sn, position) { + new AMap.Text({ + text: sn, + position: position, + offset: new this.AMap.Pixel(0, -50), // 调整位置到marker上方 + anchor: 'center', + style: { + background: '#fff', + border: '1px solid #409EFF', + borderRadius: '4px', + padding: '2px 8px', + color: '#409EFF', + fontSize: '12px', + whiteSpace: 'nowrap', + textAlign: 'center', + boxShadow: '0 2px 6px rgba(0,0,0,0.1)' + } + }); +} + const icons = { 'blue': 'data:image/image/png;base64,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', 'red': 'data:image/image/png;base64,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', diff --git a/src/views/bst/areaSub/components/AreaMap.vue b/src/views/bst/areaSub/components/AreaMap.vue index d49348c..41f2383 100644 --- a/src/views/bst/areaSub/components/AreaMap.vue +++ b/src/views/bst/areaSub/components/AreaMap.vue @@ -18,12 +18,13 @@ - + 时间: - {{ currentLog ? currentLog.at : '-' }} + {{ currentLog.at | dv}} 位置: - {{ currentLog ? `${currentLog.longitude}, ${currentLog.latitude}` : '-' }} + {{currentLog.longitude | dv}},{{currentLog.latitude | dv}} 速度: - {{ currentSpeed }} Km/h + {{ currentLog.speed }} KM/h 电压: - {{ currentLog ? currentLog.voltage + 'V' : '-' }} + {{ currentLog.voltage | dv}} V 信号: - {{ currentLog ? currentLog.signal : '-' }} + {{ currentLog.signal | dv}} 卫星: - {{ currentLog ? currentLog.satellites : '-' }} + {{ currentLog.satellites | dv}} 状态: @@ -41,7 +41,7 @@
@@ -75,10 +75,6 @@ export default { type: Object, default: () => ({}) }, - currentSpeed: { - type: Number, - default: 0 - }, maxIndex: { type: Number, default: 0 @@ -90,19 +86,15 @@ export default { playbackSpeed: { type: Number, default: 1 + }, + currentIndex: { + type: Number, + required: true } }, - data() { - return { - currentIndex: 0 - } - }, - watch: { - currentLog(newVal) { - // 同步外部传入的当前日志索引 - if (newVal && newVal.index !== undefined) { - this.currentIndex = newVal.index; - } + computed: { + sliderValue() { + return this.currentIndex; } }, methods: { diff --git a/src/views/bst/device/index.vue b/src/views/bst/device/index.vue index ffbd5fa..f8878b7 100644 --- a/src/views/bst/device/index.vue +++ b/src/views/bst/device/index.vue @@ -141,7 +141,7 @@ plain icon="el-icon-upload" size="mini" - @click="handleOut" + @click="handleOut(null)" :disabled="multiple" v-has-permi="['bst:device:out']" >一键出仓 @@ -152,7 +152,7 @@ plain icon="el-icon-download" size="mini" - @click="handleIn" + @click="handleIn(null)" :disabled="multiple" v-has-permi="['bst:device:in']" >一键入仓 @@ -163,7 +163,7 @@ plain icon="el-icon-close" size="mini" - @click="handleDisable" + @click="handleDisable(null)" :disabled="multiple" v-has-permi="['bst:device:disable']" >一键禁用 @@ -174,7 +174,7 @@ plain icon="el-icon-check" size="mini" - @click="handleEnable" + @click="handleEnable(null)" :disabled="multiple" v-has-permi="['bst:device:enable']" >一键启用 @@ -185,7 +185,7 @@ plain icon="el-icon-sort" size="mini" - @click="handleTransfer" + @click="handleTransfer(null)" :disabled="multiple" v-has-permi="['bst:device:transfer']" >一键划拨 @@ -509,11 +509,10 @@ export default { methods: { // 划拨运营区 handleTransfer(row) { + this.transferIds = this.ids; if (row != null) { this.transferIds = [row.id]; - } else { - this.transferIds = this.ids; - } + } this.showTransferDialog = true; }, // 管理员开锁 diff --git a/src/views/bst/index/AdminIndex.vue b/src/views/bst/index/AdminIndex.vue index 3432ff7..81324e0 100644 --- a/src/views/bst/index/AdminIndex.vue +++ b/src/views/bst/index/AdminIndex.vue @@ -109,6 +109,7 @@ export default { getStat({ keys:[ StatKeys.USER_COUNT, + StatKeys.ORDER_COUNT, StatKeys.ORDER_PAY_AMOUNT, StatKeys.ORDER_REFUND_AMOUNT, ], diff --git a/src/views/bst/order/components/OrderVerifyDialog.vue b/src/views/bst/order/components/OrderVerifyDialog.vue index 9fd5296..ade8f54 100644 --- a/src/views/bst/order/components/OrderVerifyDialog.vue +++ b/src/views/bst/order/components/OrderVerifyDialog.vue @@ -5,15 +5,27 @@ width="500px" append-to-body @open="handleOpen" + center > - + + + + @@ -25,7 +37,7 @@ export default { props: { id: { type: String, - default: '' + default: null }, visible: { type: Boolean, @@ -38,9 +50,6 @@ export default { form: {}, loading: false, rules: { - remark: [ - { required: true, message: '请输入备注', trigger: 'blur' }, - ], } } }, diff --git a/src/views/bst/order/index.vue b/src/views/bst/order/index.vue index ead14df..4fbced5 100644 --- a/src/views/bst/order/index.vue +++ b/src/views/bst/order/index.vue @@ -356,10 +356,10 @@ export default { }, methods: { handleVerify(row) { + this.row = row; this.showVerifyDialog = true; }, handleView(row) { - this.row = row; this.$router.push(`/view/order/${row.id}`) }, handleEnd(row) { diff --git a/src/views/bst/order/view/view.vue b/src/views/bst/order/view/view.vue index 2086538..65788ef 100644 --- a/src/views/bst/order/view/view.vue +++ b/src/views/bst/order/view/view.vue @@ -83,17 +83,16 @@ - + {{ detail.endTime }} - {{ detail.returnLon }} - {{ detail.returnLat }} - {{ detail.startAreaSubName || '-' }} - {{ detail.endAreaSubName || '-' }} + {{ detail.returnLon | dv }}, {{ detail.returnLat | dv }} + {{ detail.startAreaSubName | dv }} + {{ detail.endAreaSubName | dv }} diff --git a/src/views/bst/orderDevice/index.vue b/src/views/bst/orderDevice/index.vue index 5e67490..96db411 100644 --- a/src/views/bst/orderDevice/index.vue +++ b/src/views/bst/orderDevice/index.vue @@ -112,15 +112,29 @@
- MAC:{{d.row.deviceMac | dv}} + MAC:{{d.row.deviceMac | dv}}
车牌:{{d.row.deviceVehicleNum | dv}} + + + + @@ -137,6 +151,10 @@ @pagination="getList" /> + + +
@@ -154,7 +172,7 @@ const defaultSort = { export default { name: "OrderDevice", mixins: [$showColumns], - dicts: ['order_device_type', 'order_device_reason', 'order_device_status' ], + dicts: ['order_device_type', 'order_device_reason', 'order_device_status', 'order_return_mode' ], components: {FormCol}, props: { query: { @@ -164,18 +182,19 @@ export default { }, data() { return { + row: {}, + videoVisible: false, span: 24, // 字段列表 columns: [ {key: 'id', visible: false, label: 'ID', minWidth: null, sortable: true, overflow: false, align: 'center', width: "80"}, - {key: 'deviceSn', visible: true, label: 'SN', minWidth: "200", sortable: true, overflow: false, align: 'left', width: null}, - {key: 'orderNo', visible: true, label: '订单号', minWidth: null, sortable: true, overflow: false, align: 'center', width: "180"}, - {key: 'startTime', visible: true, label: '开始时间', minWidth: null, sortable: false, overflow: false, align: 'center', width: null}, - {key: 'endTime', visible: true, label: '结束时间', minWidth: null, sortable: false, overflow: false, align: 'center', width: null}, - {key: 'reason', visible: true, label: '换车原因', minWidth: null, sortable: true, overflow: false, align: 'center', width: null}, + {key: 'deviceSn', visible: true, label: '车辆', minWidth: "150", sortable: true, overflow: false, align: 'left', width: null}, + {key: 'orderNo', visible: true, label: '订单', minWidth: "150", sortable: true, overflow: false, align: 'left', width: null}, + {key: 'startTime', visible: true, label: '时间', minWidth: null, sortable: false, overflow: false, align: 'center', width: "220"}, {key: 'deviceMchName', visible: true, label: '车辆归属', minWidth: null, sortable: true, overflow: false, align: 'center', width: null}, - {key: 'orderUserName', visible: true, label: '订单用户', minWidth: null, sortable: true, overflow: false, align: 'center', width: null}, - {key: 'finishPicture', visible: true, label: '还车图片', minWidth: null, sortable: true, overflow: false, align: 'center', width: null}, + {key: 'reason', visible: true, label: '换车原因', minWidth: null, sortable: true, overflow: false, align: 'center', width: null}, + {key: 'finishPicture', visible: true, label: '还车视频', minWidth: null, sortable: true, overflow: false, align: 'center', width: null}, + {key: 'returnMode', visible: true, label: '还车定位', minWidth: null, sortable: true, overflow: false, align: 'center', width: null}, ], // 排序方式 orderSorts: ['ascending', 'descending', null], @@ -240,6 +259,10 @@ export default { this.getList(); }, methods: { + handleVideo(row) { + this.row = row; + this.videoVisible = true; + }, /** 当排序按钮被点击时触发 **/ onSortChange(column) { if (column.order == null) { diff --git a/src/views/bst/withdraw/index.vue b/src/views/bst/withdraw/index.vue index 53df4e3..49640c3 100644 --- a/src/views/bst/withdraw/index.vue +++ b/src/views/bst/withdraw/index.vue @@ -146,6 +146,10 @@ +