型号坐垫锁

This commit is contained in:
磷叶 2025-05-20 10:29:12 +08:00
parent d0e47d8a35
commit e3f3a1f9a9
4 changed files with 49 additions and 14 deletions

View File

@ -7,6 +7,7 @@
style="width: 100%;"
:options="options"
:show-all-levels="false"
:clearable="clearable"
:props="{
emitPath: false,
multiple: multiple,
@ -44,6 +45,10 @@ export default {
checkStrictly: {
type: Boolean,
default: false
},
clearable: {
type: Boolean,
default: null
}
},
data() {

View File

@ -78,6 +78,12 @@
/>
</el-select>
</el-form-item>
<el-form-item label="硬件版本" prop="hardwareVersionId">
<hardware-version-select v-model="queryParams.hardwareVersionId" clearable @change="handleQuery"/>
</el-form-item>
<el-form-item label="软件版本" prop="softwareVersion">
<el-input v-model="queryParams.softwareVersion" placeholder="请输入软件版本" @keyup.enter.native="handleQuery"/>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
@ -406,6 +412,7 @@ import BooleanTag from '@/components/BooleanTag/index.vue';
import AreaLink from '@/components/Business/Area/AreaLink.vue';
import AreaRemoteSelect from '@/components/Business/Area/AreaRemoteSelect.vue';
import DeviceLink from '@/components/Business/Device/DeviceLink.vue';
import HardwareVersionSelect from '@/components/Business/HardwareVersion/HardwareVersionSelect.vue';
import UserLink from '@/components/Business/User/UserLink.vue';
import FormCol from "@/components/FormCol/index.vue";
import { DeviceStatus } from '@/utils/enums';
@ -425,7 +432,18 @@ export default {
name: "Device",
mixins: [$showColumns, $device],
dicts: ['device_status', 'device_lock_status', 'device_iot_status', 'device_online_status', 'device_quality', 'device_music'],
components: {FormCol, DeviceEditDialog, BooleanTag, DeviceTransferDialog, DeviceSn, UserLink, DeviceLink, AreaRemoteSelect, AreaLink},
components: {
FormCol,
DeviceEditDialog,
BooleanTag,
DeviceTransferDialog,
DeviceSn,
UserLink,
DeviceLink,
AreaRemoteSelect,
AreaLink,
HardwareVersionSelect
},
props: {
query: {
type: Object,
@ -493,6 +511,7 @@ export default {
gps: null,
lastLocationTime: null,
hardwareVersionId: null,
softwareVersion: null,
mchId: null,
iotStatus: null,
isSound: null

View File

@ -37,14 +37,17 @@
<form-col :span="span" label="备注" prop="remark">
<el-input v-model="form.remark" type="textarea" placeholder="请输入内容" />
</form-col>
<form-col :span="span" label="低电量提醒开关" prop="lowBatteryReminderSwitch" label-width="9em">
<el-switch v-model="form.lowBatteryReminderSwitch" />
</form-col>
<form-col :span="span" label="骑行低电量提醒" prop="lowBatteryReminder" label-width="9em" v-if="form.lowBatteryReminderSwitch">
<form-col :span="span" label="骑行低电量提醒" prop="lowBatteryReminder" label-width="9em" >
<el-input v-model="form.lowBatteryReminder" placeholder="请输入骑行低电量提醒" type="number">
<template slot="prepend">
<el-switch v-model="form.lowBatteryReminderSwitch" />
</template>
<template slot="append">%</template>
</el-input>
</form-col>
<form-col :span="span" label="允许用户打开坐垫锁" prop="enableSeat" label-width="11em">
<el-switch v-model="form.enableSeat" active-text="允许" inactive-text="禁止"/>
</form-col>
<form-col :span="span" label="套餐" prop="suitIds">
<suit-remote-select
style="width: 100%;"
@ -64,14 +67,14 @@
</template>
<script>
import { getModel, addModel, updateModel } from "@/api/bst/model";
import FormCol from "@/components/FormCol/index.vue";
import UserInput from '@/components/Business/User/UserInput.vue';
import { addModel, getModel, updateModel } from "@/api/bst/model";
import AreaRemoteSelect from '@/components/Business/Area/AreaRemoteSelect.vue';
import { RoleKeys } from '@/utils/enums';
import SuitInput from '@/components/Business/Suit/SuitInput.vue';
import { mapGetters } from 'vuex';
import SuitRemoteSelect from '@/components/Business/Suit/SuitRemoteSelect.vue';
import UserInput from '@/components/Business/User/UserInput.vue';
import FormCol from "@/components/FormCol/index.vue";
import { RoleKeys } from '@/utils/enums';
import { mapGetters } from 'vuex';
export default {
name: "ModelEditDialog",
@ -127,6 +130,9 @@ export default {
],
lowBatteryReminder: [
{ required: true, message: "骑行低电量提醒值不能为空", trigger: "blur" }
],
enableSeat: [
{ required: true, message: "允许用户打开坐垫锁不能为空", trigger: "blur" }
]
}
}
@ -187,6 +193,7 @@ export default {
deleted: null,
lowBatteryReminderSwitch: false,
lowBatteryReminder: null,
enableSeat: false,
// dto
suitIds: [],
// vo

View File

@ -94,6 +94,9 @@
<template v-else-if="column.key === 'suitNames'">
<el-tag type="primary" v-for="suitName of d.row.suitNames" :key="suitName" size="mini" style="margin-right: 4px;">{{suitName | dv}}</el-tag>
</template>
<template v-else-if="column.key === 'enableSeat'">
<boolean-tag :value="d.row[column.key]" true-text="允许" false-text="禁止" size="mini"/>
</template>
<template v-else>
{{d.row[column.key]}}
</template>
@ -137,11 +140,11 @@
</template>
<script>
import { listModel, delModel } from "@/api/bst/model";
import { $showColumns } from '@/utils/mixins';
import { delModel, listModel } from "@/api/bst/model";
import BooleanTag from '@/components/BooleanTag/index.vue';
import ModelEditDialog from '@/views/bst/model/components/ModelEditDialog.vue';
import UserLink from '@/components/Business/User/UserLink.vue';
import { $showColumns } from '@/utils/mixins';
import ModelEditDialog from '@/views/bst/model/components/ModelEditDialog.vue';
//
const defaultSort = {
prop: "createTime",
@ -173,9 +176,10 @@ export default {
{key: 'lowVoltage', visible: true, label: '亏电电压', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
{key: 'fullEndurance', visible: true, label: '满电续航', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
{key: 'lowBatteryReminderSwitch', visible: true, label: '低电量提醒', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
{key: 'enableSeat', visible: true, label: '坐垫锁', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
{key: 'suitNames', visible: true, label: '应用套餐', minWidth: "200", sortable: false, overflow: false, align: 'center', width: null},
{key: 'remark', visible: true, label: '备注', minWidth: null, sortable: true, overflow: true, align: 'center', width: null},
{key: 'createTime', visible: true, label: '创建时间', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
{key: 'createTime', visible: true, label: '创建时间', minWidth: null, sortable: true, overflow: false, align: 'center', width: "180"},
],
//
orderSorts: ['ascending', 'descending', null],