车型套餐关联
This commit is contained in:
parent
aa43b0c3d6
commit
494c279018
|
@ -48,6 +48,7 @@ export default {
|
||||||
pageNum: 1,
|
pageNum: 1,
|
||||||
pageSize: 999
|
pageSize: 999
|
||||||
},
|
},
|
||||||
|
opened: false,
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
|
@ -67,7 +68,7 @@ export default {
|
||||||
watch: {
|
watch: {
|
||||||
value: {
|
value: {
|
||||||
handler(nv, ov) {
|
handler(nv, ov) {
|
||||||
if (isEmpty(ov) && !isEmpty(nv) && this.loadApi) {
|
if (isEmpty(ov) && !isEmpty(nv) && !this.opened && this.loadApi) {
|
||||||
this.loadData(nv);
|
this.loadData(nv);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -102,7 +103,10 @@ export default {
|
||||||
// 下拉框可见性变化
|
// 下拉框可见性变化
|
||||||
handleVisibleChange(visible) {
|
handleVisibleChange(visible) {
|
||||||
if (visible) {
|
if (visible) {
|
||||||
|
this.opened = true;
|
||||||
this.getOptions();
|
this.getOptions();
|
||||||
|
} else {
|
||||||
|
this.opened = false;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
// 全选
|
// 全选
|
||||||
|
@ -123,6 +127,7 @@ export default {
|
||||||
let item = this.options.find(item => value.includes(item[this.prop]));
|
let item = this.options.find(item => value.includes(item[this.prop]));
|
||||||
this.$emit('change', item);
|
this.$emit('change', item);
|
||||||
}
|
}
|
||||||
|
this.selectedValue = value;
|
||||||
},
|
},
|
||||||
// 获取选项
|
// 获取选项
|
||||||
getOptions() {
|
getOptions() {
|
||||||
|
|
|
@ -4,6 +4,7 @@
|
||||||
fit="cover"
|
fit="cover"
|
||||||
:style="`width:${realWidth};height:${realHeight};`"
|
:style="`width:${realWidth};height:${realHeight};`"
|
||||||
:preview-src-list="realSrcList"
|
:preview-src-list="realSrcList"
|
||||||
|
:class="{ 'blur-effect': blur }"
|
||||||
>
|
>
|
||||||
<div slot="error" class="image-slot">
|
<div slot="error" class="image-slot">
|
||||||
<i class="el-icon-picture-outline"></i>
|
<i class="el-icon-picture-outline"></i>
|
||||||
|
@ -28,6 +29,10 @@ export default {
|
||||||
height: {
|
height: {
|
||||||
type: [Number, String],
|
type: [Number, String],
|
||||||
default: ""
|
default: ""
|
||||||
|
},
|
||||||
|
blur: {
|
||||||
|
type: Boolean,
|
||||||
|
default: false
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
|
@ -86,5 +91,10 @@ export default {
|
||||||
color: #909399;
|
color: #909399;
|
||||||
font-size: 30px;
|
font-size: 30px;
|
||||||
}
|
}
|
||||||
|
&.blur-effect {
|
||||||
|
::v-deep .el-image__inner {
|
||||||
|
filter: blur(5px);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
|
@ -51,7 +51,6 @@
|
||||||
v-model="form.suitIds"
|
v-model="form.suitIds"
|
||||||
:query="suitQuery"
|
:query="suitQuery"
|
||||||
multiple
|
multiple
|
||||||
:init-options="initSuitOptions"
|
|
||||||
:before-get-options="beforeOpenSuit"
|
:before-get-options="beforeOpenSuit"
|
||||||
/>
|
/>
|
||||||
</form-col>
|
</form-col>
|
||||||
|
@ -148,16 +147,6 @@ export default {
|
||||||
userId: this.form.userId
|
userId: this.form.userId
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
// 套餐初始化选项
|
|
||||||
initSuitOptions() {
|
|
||||||
if (this.form.suitList == null || this.form.suitList.length === 0) {
|
|
||||||
return [];
|
|
||||||
}
|
|
||||||
return this.form.suitList.map(item => ({
|
|
||||||
id: item.id,
|
|
||||||
name: item.name
|
|
||||||
}));
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
handleChangeUser() {
|
handleChangeUser() {
|
||||||
|
|
|
@ -77,7 +77,7 @@
|
||||||
{{d.row[column.key]}}
|
{{d.row[column.key]}}
|
||||||
</template>
|
</template>
|
||||||
<template v-else-if="column.key === 'lowBatteryReminderSwitch'">
|
<template v-else-if="column.key === 'lowBatteryReminderSwitch'">
|
||||||
<boolean-tag :value="d.row[column.key]" true-text="开启" false-text="关闭"/>
|
<boolean-tag :value="d.row[column.key]" true-text="开启" false-text="关闭" size="mini"/>
|
||||||
<template v-if="d.row.lowBatteryReminderSwitch">
|
<template v-if="d.row.lowBatteryReminderSwitch">
|
||||||
{{d.row.lowBatteryReminder | dv}} %
|
{{d.row.lowBatteryReminder | dv}} %
|
||||||
</template>
|
</template>
|
||||||
|
@ -91,6 +91,9 @@
|
||||||
<template v-else-if="column.key === 'userName'">
|
<template v-else-if="column.key === 'userName'">
|
||||||
<user-link :id="d.row.userId" :text="d.row.userName" />
|
<user-link :id="d.row.userId" :text="d.row.userName" />
|
||||||
</template>
|
</template>
|
||||||
|
<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>
|
<template v-else>
|
||||||
{{d.row[column.key]}}
|
{{d.row[column.key]}}
|
||||||
</template>
|
</template>
|
||||||
|
@ -169,8 +172,9 @@ export default {
|
||||||
{key: 'fullVoltage', visible: true, label: '满电电压', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
|
{key: 'fullVoltage', visible: true, label: '满电电压', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
|
||||||
{key: 'lowVoltage', visible: true, label: '亏电电压', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
|
{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: 'fullEndurance', visible: true, label: '满电续航', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
|
||||||
{key: 'remark', 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: 'lowBatteryReminderSwitch', 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: null},
|
||||||
],
|
],
|
||||||
// 排序方式
|
// 排序方式
|
||||||
|
|
|
@ -64,7 +64,7 @@
|
||||||
{{d.row[column.key]}}
|
{{d.row[column.key]}}
|
||||||
</template>
|
</template>
|
||||||
<template v-else-if="column.key === 'picture'">
|
<template v-else-if="column.key === 'picture'">
|
||||||
<image-preview :src="d.row[column.key]" :width="50" :height="50" />
|
<image-preview :src="d.row[column.key]" :width="50" :height="50" blur/>
|
||||||
</template>
|
</template>
|
||||||
<template v-else-if="column.key === 'status'">
|
<template v-else-if="column.key === 'status'">
|
||||||
<dict-tag :options="dict.type.real_name_status" :value="d.row[column.key]" />
|
<dict-tag :options="dict.type.real_name_status" :value="d.row[column.key]" />
|
||||||
|
|
|
@ -15,6 +15,15 @@
|
||||||
<form-col :span="span" label="套餐名称" prop="name">
|
<form-col :span="span" label="套餐名称" prop="name">
|
||||||
<el-input v-model="form.name" placeholder="请输入套餐名称" />
|
<el-input v-model="form.name" placeholder="请输入套餐名称" />
|
||||||
</form-col>
|
</form-col>
|
||||||
|
<form-col :span="24" label="适用车型" prop="modelIds">
|
||||||
|
<model-remote-select
|
||||||
|
:before-get-options="beforeGetModelOptions"
|
||||||
|
v-model="form.modelIds"
|
||||||
|
multiple
|
||||||
|
:query="modelQuery"
|
||||||
|
style="width: 100%;"
|
||||||
|
/>
|
||||||
|
</form-col>
|
||||||
<form-col :span="span" label="套餐类型" prop="type">
|
<form-col :span="span" label="套餐类型" prop="type">
|
||||||
<el-select v-model="form.type" placeholder="请选择套餐类型" style="width: 100%;">
|
<el-select v-model="form.type" placeholder="请选择套餐类型" style="width: 100%;">
|
||||||
<el-option
|
<el-option
|
||||||
|
@ -205,10 +214,11 @@ import { SuitRentalUnit, SuitRidingRule, SuitStatus, RoleKeys, SuitType } from '
|
||||||
import CollapsePanel from '@/components/CollapsePanel/index.vue';
|
import CollapsePanel from '@/components/CollapsePanel/index.vue';
|
||||||
import { deepClone, dictLabel } from '@/utils';
|
import { deepClone, dictLabel } from '@/utils';
|
||||||
import { mapGetters } from 'vuex';
|
import { mapGetters } from 'vuex';
|
||||||
|
import ModelRemoteSelect from '@/components/Business/Model/ModelRemoteSelect.vue';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'SuitEditDialog',
|
name: 'SuitEditDialog',
|
||||||
components: { FormCol, UserInput, CollapsePanel },
|
components: { FormCol, UserInput, CollapsePanel, ModelRemoteSelect },
|
||||||
dicts: ['suit_status', 'suit_rental_unit', 'suit_riding_rule', 'suit_type'],
|
dicts: ['suit_status', 'suit_rental_unit', 'suit_riding_rule', 'suit_type'],
|
||||||
props: {
|
props: {
|
||||||
visible: {
|
visible: {
|
||||||
|
@ -313,9 +323,21 @@ export default {
|
||||||
return (value) => {
|
return (value) => {
|
||||||
return dictLabel(this.dict.type.suit_rental_unit, value);
|
return dictLabel(this.dict.type.suit_rental_unit, value);
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
modelQuery() {
|
||||||
|
return {
|
||||||
|
userId: this.form.userId,
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
beforeGetModelOptions() {
|
||||||
|
if (this.form.userId == null) {
|
||||||
|
this.$message.warning("请先选择用户");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
},
|
||||||
// 添加计费规则
|
// 添加计费规则
|
||||||
addRidingRule(index) {
|
addRidingRule(index) {
|
||||||
let current = this.form.intervalRule[index];
|
let current = this.form.intervalRule[index];
|
||||||
|
@ -354,6 +376,7 @@ export default {
|
||||||
freeRideTime: null,
|
freeRideTime: null,
|
||||||
rentalUnit: SuitRentalUnit.MINUTE,
|
rentalUnit: SuitRentalUnit.MINUTE,
|
||||||
ridingRule: SuitRidingRule.START,
|
ridingRule: SuitRidingRule.START,
|
||||||
|
modelIds: [],
|
||||||
startRule: {
|
startRule: {
|
||||||
startingTime: 60,
|
startingTime: 60,
|
||||||
startingPrice: 5,
|
startingPrice: 5,
|
||||||
|
|
|
@ -133,6 +133,9 @@
|
||||||
<template v-else-if="column.key === 'userName'">
|
<template v-else-if="column.key === 'userName'">
|
||||||
<user-link :id="d.row.userId" :text="d.row.userName" />
|
<user-link :id="d.row.userId" :text="d.row.userName" />
|
||||||
</template>
|
</template>
|
||||||
|
<template v-else-if="column.key === 'modelNames'">
|
||||||
|
<el-tag type="primary" v-for="modelName of d.row.modelNames" :key="modelName" size="mini" style="margin-right: 4px;">{{modelName | dv}}</el-tag>
|
||||||
|
</template>
|
||||||
<template v-else>
|
<template v-else>
|
||||||
{{d.row[column.key]}}
|
{{d.row[column.key]}}
|
||||||
</template>
|
</template>
|
||||||
|
@ -210,8 +213,9 @@ export default {
|
||||||
{key: 'instructions', visible: true, label: '说明', minWidth: null, sortable: true, overflow: true, align: 'center', width: null},
|
{key: 'instructions', visible: true, label: '说明', minWidth: null, sortable: true, overflow: true, align: 'center', width: null},
|
||||||
{key: 'freeRideTime', visible: true, label: '免费时长', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
|
{key: 'freeRideTime', visible: true, label: '免费时长', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
|
||||||
{key: 'orderNum', visible: true, label: '排序', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
|
{key: 'orderNum', visible: true, label: '排序', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
|
||||||
{key: 'seconds', visible: true, label: '可用时长', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
|
{key: 'seconds', visible: true, label: '可用时长', minWidth: null, sortable: true, overflow: false, align: 'center', width: "180"},
|
||||||
{key: 'createTime', visible: true, label: '创建时间', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
|
{key: 'modelNames', visible: true, label: '适用车型', minWidth: "200", sortable: false, 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],
|
orderSorts: ['ascending', 'descending', null],
|
||||||
|
|
Loading…
Reference in New Issue
Block a user