This commit is contained in:
磷叶 2025-05-20 17:43:14 +08:00
parent e3f3a1f9a9
commit 5af3f388db
2 changed files with 23 additions and 14 deletions

View File

@ -14,14 +14,14 @@
</div> </div>
<template #reference> <template #reference>
<slot> <slot>
<el-button type="text" icon="el-icon-picture" size="mini">二维码</el-button> <el-button type="text" icon="el-icon-picture" size="mini"></el-button>
</slot> </slot>
</template> </template>
</el-popover> </el-popover>
</template> </template>
<script> <script>
import QrCode from '@/components/QrCode/index.vue' import QrCode from '@/components/QrCode/index.vue';
export default { export default {
name: 'DeviceSn', name: 'DeviceSn',
components: { components: {

View File

@ -82,7 +82,7 @@
<hardware-version-select v-model="queryParams.hardwareVersionId" clearable @change="handleQuery"/> <hardware-version-select v-model="queryParams.hardwareVersionId" clearable @change="handleQuery"/>
</el-form-item> </el-form-item>
<el-form-item label="软件版本" prop="softwareVersion"> <el-form-item label="软件版本" prop="softwareVersion">
<el-input v-model="queryParams.softwareVersion" placeholder="请输入软件版本" @keyup.enter.native="handleQuery"/> <el-input v-model="queryParams.softwareVersion" placeholder="请输入软件版本" @keyup.enter.native="handleQuery" clearable/>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button> <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
@ -222,8 +222,8 @@
</template> </template>
<template v-else-if="column.key === 'sn'"> <template v-else-if="column.key === 'sn'">
<device-link :id="d.row.id" :text="d.row.sn" size="mini"/> | <device-link :id="d.row.id" :text="d.row.sn" size="mini"/> |
<device-link :id="d.row.id" :text="d.row.mac" size="mini"/> <el-link v-clipboard:copy="d.row.mac" v-clipboard:success="handleCopySuccess" :underline="false" style="font-size: 12px" type="primary">{{ d.row.mac | dv }}</el-link>
<device-sn :sn="d.row.sn"/> <device-sn :sn="d.row.sn" style="margin-left: 4px;"/>
<br/> <br/>
<dict-tag :options="dict.type.device_online_status" :value="d.row.onlineStatus" size="mini"/> <dict-tag :options="dict.type.device_online_status" :value="d.row.onlineStatus" size="mini"/>
<dict-tag :options="dict.type.device_status" :value="d.row.status" size="mini" style="margin-left: 4px;"/> <dict-tag :options="dict.type.device_status" :value="d.row.status" size="mini" style="margin-left: 4px;"/>
@ -263,6 +263,10 @@
{{d.row.hardwareVersion | dv}}<br/> {{d.row.hardwareVersion | dv}}<br/>
{{d.row.softwareVersion | dv}} {{d.row.softwareVersion | dv}}
</template> </template>
<template v-else-if="column.key === 'orderNo'">
<order-link :id="d.row.orderId" :text="d.row.orderNo" size="mini"/>
<dict-tag :options="dict.type.order_status" :value="d.row.orderStatus" size="mini" style="margin-left: 4px;"/>
</template>
<template v-else-if="column.key === 'signalStrength'"> <template v-else-if="column.key === 'signalStrength'">
<el-tooltip content="4G信号强度和卫星数量" placement="top"> <el-tooltip content="4G信号强度和卫星数量" placement="top">
<span> <span>
@ -413,6 +417,7 @@ import AreaLink from '@/components/Business/Area/AreaLink.vue';
import AreaRemoteSelect from '@/components/Business/Area/AreaRemoteSelect.vue'; import AreaRemoteSelect from '@/components/Business/Area/AreaRemoteSelect.vue';
import DeviceLink from '@/components/Business/Device/DeviceLink.vue'; import DeviceLink from '@/components/Business/Device/DeviceLink.vue';
import HardwareVersionSelect from '@/components/Business/HardwareVersion/HardwareVersionSelect.vue'; import HardwareVersionSelect from '@/components/Business/HardwareVersion/HardwareVersionSelect.vue';
import OrderLink from '@/components/Business/Order/OrderLink.vue';
import UserLink from '@/components/Business/User/UserLink.vue'; import UserLink from '@/components/Business/User/UserLink.vue';
import FormCol from "@/components/FormCol/index.vue"; import FormCol from "@/components/FormCol/index.vue";
import { DeviceStatus } from '@/utils/enums'; import { DeviceStatus } from '@/utils/enums';
@ -431,7 +436,7 @@ const defaultSort = {
export default { export default {
name: "Device", name: "Device",
mixins: [$showColumns, $device], mixins: [$showColumns, $device],
dicts: ['device_status', 'device_lock_status', 'device_iot_status', 'device_online_status', 'device_quality', 'device_music'], dicts: ['device_status', 'device_lock_status', 'device_iot_status', 'device_online_status', 'device_quality', 'device_music', 'order_status'],
components: { components: {
FormCol, FormCol,
DeviceEditDialog, DeviceEditDialog,
@ -442,7 +447,8 @@ export default {
DeviceLink, DeviceLink,
AreaRemoteSelect, AreaRemoteSelect,
AreaLink, AreaLink,
HardwareVersionSelect HardwareVersionSelect,
OrderLink
}, },
props: { props: {
query: { query: {
@ -457,16 +463,16 @@ export default {
// //
columns: [ columns: [
{key: 'id', visible: false, label: 'ID', minWidth: null, sortable: true, overflow: false, align: 'center', width: "80"}, {key: 'id', visible: false, label: 'ID', minWidth: null, sortable: true, overflow: false, align: 'center', width: "80"},
{key: 'sn', visible: true, label: '设备', minWidth: "150", sortable: true, overflow: false, align: 'left', width: null}, {key: 'sn', visible: true, label: '设备', minWidth: null, sortable: true, overflow: false, align: 'left', width: "250"},
{key: 'vehicleNum', visible: true, label: '车辆', minWidth: null, sortable: true, overflow: false, align: 'left', width: null}, {key: 'vehicleNum', visible: true, label: '车辆', minWidth: null, sortable: true, overflow: false, align: 'left', width: null},
{key: 'mchName', visible: true, label: '归属', minWidth: null, sortable: true, overflow: false, align: 'left', width: null}, {key: 'mchName', visible: true, label: '归属', minWidth: null, sortable: true, overflow: false, align: 'left', width: null},
{key: 'hardwareVersion', visible: true, label: '版本', minWidth: null, sortable: true, overflow: false, align: 'left', width: null}, {key: 'hardwareVersion', visible: true, label: '版本', minWidth: null, sortable: true, overflow: false, align: 'left', width: "80"},
{key: 'signalStrength', visible: true, label: '信号', minWidth: null, sortable: true, overflow: false, align: 'left', width: null}, {key: 'signalStrength', visible: true, label: '信号', minWidth: null, sortable: true, overflow: false, align: 'left', width: "80"},
{key: 'lockStatus', visible: true, label: '锁状态', minWidth: null, sortable: true, overflow: false, align: 'center', width: null}, {key: 'lockStatus', visible: true, label: '锁', minWidth: null, sortable: true, overflow: false, align: 'center', width: "80"},
{key: 'remainingPower', visible: true, label: '续航', minWidth: null, sortable: true, overflow: false, align: 'center', width: null}, {key: 'remainingPower', visible: true, label: '续航', minWidth: null, sortable: true, overflow: false, align: 'center', width: "150"},
{key: 'music', visible: false, label: '声音', minWidth: null, sortable: true, overflow: false, align: 'center', width: null}, {key: 'music', visible: false, label: '声音', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
{key: 'orderNo', visible: false, label: '订单', minWidth: null, sortable: true, overflow: false, align: 'center', width: null}, {key: 'orderNo', visible: true, label: '订单', minWidth: null, sortable: true, overflow: false, align: 'left', width: "150"},
{key: 'createTime', visible: false, label: '创建', minWidth: null, sortable: true, overflow: false, align: 'center', width: "90"}, {key: 'lastOnlineTime', visible: true, label: '在线', minWidth: null, sortable: true, overflow: false, align: 'center', width: "90"},
], ],
// //
orderSorts: ['ascending', 'descending', null], orderSorts: ['ascending', 'descending', null],
@ -542,6 +548,9 @@ export default {
this.getList(true); this.getList(true);
}, },
methods: { methods: {
handleCopySuccess() {
this.$message.success("复制成功");
},
// //
handleTransfer(row) { handleTransfer(row) {
this.transferIds = this.ids; this.transferIds = this.ids;