<template>
|
<GlobalWindow
|
:title="title"
|
:visible.sync="visible"
|
width="500px"
|
:confirm-working="isWorking"
|
@confirm="confirm"
|
>
|
<el-form ref="form" :model="form" :rules="rules">
|
<el-form-item label="类型名称" prop="name" v-if="form.type === 1">
|
<el-input v-model="form.name" placeholder="请输入类型名称"></el-input>
|
</el-form-item>
|
<el-form-item label="行李类型" prop="name" v-if="form.type === 4">
|
<el-input v-model="form.name" placeholder="请输入行李类型"></el-input>
|
</el-form-item>
|
<el-form-item label="物品名称" prop="name" v-if="form.type === 2">
|
<el-input v-model="form.name" placeholder="请输入物品名称"></el-input>
|
</el-form-item>
|
<el-form-item label="等级名称" prop="name" v-if="form.type === 3">
|
<el-input v-model="form.name" placeholder="请输入等级名称"></el-input>
|
</el-form-item>
|
<el-form-item label="通行方式" prop="detail" v-if="form.type === 1">
|
<el-select v-model="form.detail" placeholder="请选择通行方式">
|
<el-option label="机动车" value="driving"></el-option>
|
<el-option label="非机动车" value="bicycling"></el-option>
|
</el-select>
|
</el-form-item>
|
<el-form-item label="上传驾驶证" prop="otherField" v-if="form.type === 1">
|
<el-radio-group v-model="form.otherField">
|
<el-radio label="1">需要</el-radio>
|
<el-radio label="0">不需要</el-radio>
|
</el-radio-group>
|
</el-form-item>
|
<el-form-item label="是否特大尺寸" prop="detail" v-if="form.type === 4">
|
<el-radio-group v-model="form.detail">
|
<el-radio label="0">否</el-radio>
|
<el-radio label="1">是</el-radio>
|
</el-radio-group>
|
</el-form-item>
|
<el-form-item label="图标" prop="iconFull" v-if="form.type === 4">
|
<UploadImages
|
:fileList="form.iconFull ? [{ url: form.iconFull }] : []"
|
:uploadData="{ folder: 'category' }"
|
:maxCount="1"
|
@getFileList="e => { form.icon = e.fileurl; form.iconFull = e.url }"
|
@deleteRow="form.icon = ''; form.iconFull = ''" />
|
</el-form-item>
|
<el-form-item label="物品等级" prop="relationId" v-if="form.type === 2">
|
<el-select v-model="form.relationId" placeholder="请选择物品等级">
|
<el-option
|
v-for="item in list"
|
:key="item.id"
|
:label="item.name"
|
:value="item.id" />
|
</el-select>
|
</el-form-item>
|
<el-form-item label="所需司机评级" prop="detail" v-if="form.type === 3">
|
<el-select v-model="form.detail" placeholder="请选择司机评级">
|
<el-option label="S" :value="5"></el-option>
|
<el-option label="A" :value="4"></el-option>
|
<el-option label="B" :value="3"></el-option>
|
<el-option label="C" :value="2"></el-option>
|
<el-option label="D" :value="1"></el-option>
|
</el-select>
|
</el-form-item>
|
<el-form-item label="寄存说明" prop="detail" v-if="form.type === 2">
|
<el-input v-model="form.detail" type="textarea" :rows="3" placeholder="请输入寄存说明"></el-input>
|
</el-form-item>
|
<el-form-item label="备注说明" prop="remark" v-if="form.type === 3 || form.type === 4">
|
<el-input v-model="form.remark" type="textarea" :rows="3" placeholder="请输入备注说明"></el-input>
|
</el-form-item>
|
<el-form-item label="排序" prop="sortnum">
|
<el-input v-model="form.sortnum" placeholder="请输入排序"></el-input>
|
</el-form-item>
|
<el-form-item label="状态" prop="status">
|
<div style="display: flex; align-items: center;">
|
<el-switch
|
v-model="form.status"
|
active-color="#13ce66"
|
inactive-color="#ff4949"
|
:active-value="0"
|
:inactive-value="1"
|
></el-switch>
|
<span v-if="form.type === 2" style="margin-left: 5px; font-size: 12px; color: #909399;">开启后,该城市下门店可被会员查看</span>
|
</div>
|
</el-form-item>
|
</el-form>
|
</GlobalWindow>
|
</template>
|
|
<script>
|
import BaseOpera from '@/components/base/BaseOpera'
|
import GlobalWindow from '@/components/common/GlobalWindow'
|
import { getById, fetchList } from '@/api/business/goodsCategory'
|
import UploadImages from '@/components/common/uploadImages'
|
export default {
|
name: 'OperaGoodsCategoryEditWindow',
|
extends: BaseOpera,
|
components: { GlobalWindow, UploadImages },
|
data () {
|
return {
|
form: {
|
id: null,
|
name: '',
|
relationId: '',
|
detail: '',
|
sortnum: '',
|
status: 0,
|
type: '',
|
remark: '',
|
icon: '',
|
iconFull: '',
|
otherField: '1'
|
},
|
rules: {},
|
list: []
|
}
|
},
|
created () {
|
this.config({
|
api: '/business/goodsCategory',
|
'field.id': 'id'
|
})
|
},
|
methods: {
|
open (title, row, type) {
|
this.title = title
|
if (type === 2) {
|
fetchList({
|
capacity: 99999,
|
page: 1,
|
model: {
|
type: 3
|
}
|
}).then(res => {
|
this.list = res.records || []
|
})
|
}
|
if (row && row.id) {
|
getById(row.id).then(res => {
|
this.form = {
|
id: res.id,
|
name: res.name || '',
|
relationId: res.relationId || '',
|
detail: res.detail || '',
|
sortnum: res.sortnum || '',
|
status: res.status ?? 0,
|
type: res.type ?? 2,
|
remark: res.remark || '',
|
icon: res.icon || '',
|
iconFull: res.iconFull || '',
|
otherField: res.otherField || ''
|
}
|
this.visible = true
|
}).catch(e => {
|
this.$tip.apiFailed(e)
|
})
|
} else {
|
this.form = {
|
id: null,
|
name: '',
|
relationId: '',
|
detail: '',
|
sortnum: '',
|
status: 0,
|
type: '',
|
remark: '',
|
icon: '',
|
iconFull: '',
|
otherField: '1'
|
}
|
if (type === 4) {
|
this.form.detail = '0'
|
}
|
this.form.type = type
|
this.visible = true
|
}
|
if (this.form.type === 2) {
|
this.rules = {
|
name: [{ required: true, message: '请输入物品名称', trigger: 'blur' }],
|
relationId: [{ required: true, message: '请选择物品等级', trigger: 'blur' }]
|
}
|
} else if (this.form.type === 3) {
|
this.rules = {
|
name: [{ required: true, message: '请输入等级名称', trigger: 'blur' }],
|
detail: [{ required: true, message: '请选择司机评级', trigger: 'blur' }]
|
}
|
} else if (this.form.type === 4) {
|
this.rules = {
|
name: [{ required: true, message: '请输入行李类型', trigger: 'blur' }],
|
detail: [{ required: true, message: '请选择是否特大尺寸', trigger: 'blur' }],
|
icon: [{ required: true, message: '请上传图标', trigger: 'blur' }]
|
}
|
} else if (this.form.type === 1) {
|
this.rules = {
|
name: [{ required: true, message: '请输入类型名称', trigger: 'blur' }],
|
detail: [{ required: true, message: '请选择通行方式', trigger: 'blur' }],
|
otherField: [{ required: true, message: '请选择通行方式', trigger: 'blur' }]
|
}
|
}
|
}
|
}
|
}
|
</script>
|