parent
418a9d9cea
commit
3715f7cb6c
@ -0,0 +1,124 @@ |
|||||||
|
<template> |
||||||
|
<a-modal |
||||||
|
:title="title" |
||||||
|
:width="1100" |
||||||
|
:visible="visible" |
||||||
|
:confirmLoading="confirmLoading" |
||||||
|
:maskClosable="false" |
||||||
|
:destroyOnClose="true" |
||||||
|
@ok="handleSubmit" |
||||||
|
@cancel="handleCancel" |
||||||
|
> |
||||||
|
<a-spin :spinning="confirmLoading"> |
||||||
|
<a-form :form="form"> |
||||||
|
<a-form-item label="停车场名称" :labelCol="labelCol" :wrapperCol="wrapperCol"> |
||||||
|
<a-input |
||||||
|
placeholder="请输入停车场名称" |
||||||
|
v-decorator="['parking_name']" |
||||||
|
/> |
||||||
|
</a-form-item> |
||||||
|
<a-form-item label="停车场描述" :labelCol="labelCol" :wrapperCol="wrapperCol"> |
||||||
|
<a-textarea :autoSize="{ minRows: 4 }" v-decorator="['parking_desc']" /> |
||||||
|
</a-form-item> |
||||||
|
|
||||||
|
<a-form-item label="停车场坐标" :labelCol="labelCol" :wrapperCol="wrapperCol"> |
||||||
|
<a-input placeholder="请选择停车场坐标" v-decorator="['parking_coordinate']" /> |
||||||
|
<Getpoint @setCoordinate="setCoordinate" /> |
||||||
|
</a-form-item> |
||||||
|
</a-form> |
||||||
|
</a-spin> |
||||||
|
</a-modal> |
||||||
|
</template> |
||||||
|
|
||||||
|
<script> |
||||||
|
import pick from 'lodash.pick' |
||||||
|
import * as Api from '@/api/store/shop' |
||||||
|
import { SelectImage, Getpoint } from '@/components' |
||||||
|
|
||||||
|
export default { |
||||||
|
components: { |
||||||
|
SelectImage, |
||||||
|
Getpoint |
||||||
|
}, |
||||||
|
data () { |
||||||
|
return { |
||||||
|
// 对话框标题 |
||||||
|
title: '停车场配置', |
||||||
|
// 标签布局属性 |
||||||
|
labelCol: { span: 3 }, |
||||||
|
// 输入框布局属性 |
||||||
|
wrapperCol: { span: 20 }, |
||||||
|
// modal(对话框)是否可见 |
||||||
|
visible: false, |
||||||
|
// modal(对话框)确定按钮 loading |
||||||
|
confirmLoading: false, |
||||||
|
// 当前表单元素 |
||||||
|
form: this.$form.createForm(this), |
||||||
|
// 当前记录 |
||||||
|
record: {} |
||||||
|
} |
||||||
|
}, |
||||||
|
methods: { |
||||||
|
|
||||||
|
// 显示对话框 |
||||||
|
edit (record) { |
||||||
|
// 显示窗口 |
||||||
|
this.visible = true |
||||||
|
// 当前记录 |
||||||
|
this.record = record |
||||||
|
|
||||||
|
this.record['parking_coordinate'] = [record.parking_latitude, record.parking_longitude].join(',') |
||||||
|
// 设置默认值 |
||||||
|
this.setFieldsValue() |
||||||
|
}, |
||||||
|
|
||||||
|
// 设置默认值 |
||||||
|
setFieldsValue () { |
||||||
|
const { record, form: { setFieldsValue } } = this |
||||||
|
this.$nextTick(() => { |
||||||
|
setFieldsValue(pick(record, ['parking_name', 'parking_desc', 'parking_coordinate'])) |
||||||
|
}) |
||||||
|
}, |
||||||
|
|
||||||
|
// 确认按钮 |
||||||
|
handleSubmit (e) { |
||||||
|
e.preventDefault() |
||||||
|
// 表单验证 |
||||||
|
const { form: { validateFields } } = this |
||||||
|
validateFields((errors, values) => { |
||||||
|
// 提交到后端api |
||||||
|
!errors && this.onFormSubmit(values) |
||||||
|
}) |
||||||
|
}, |
||||||
|
|
||||||
|
// 关闭对话框事件 |
||||||
|
handleCancel () { |
||||||
|
this.visible = false |
||||||
|
this.form.resetFields() |
||||||
|
}, |
||||||
|
|
||||||
|
// 提交到后端api |
||||||
|
onFormSubmit (values) { |
||||||
|
this.confirmLoading = true |
||||||
|
Api.updateParking({ shopId: this.record.shop_id, form: values }) |
||||||
|
.then(result => { |
||||||
|
// 显示成功 |
||||||
|
this.$message.success(result.message, 1.5) |
||||||
|
// 关闭对话框事件 |
||||||
|
this.handleCancel() |
||||||
|
// 通知父端组件提交完成了 |
||||||
|
this.$emit('handleSubmit', values) |
||||||
|
}) |
||||||
|
.finally(() => this.confirmLoading = false) |
||||||
|
}, |
||||||
|
|
||||||
|
setCoordinate (coordinate) { |
||||||
|
const { form, $nextTick } = this |
||||||
|
$nextTick(() => { |
||||||
|
form.setFieldsValue({ parking_coordinate: coordinate }) |
||||||
|
}) |
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
|
} |
||||||
|
</script> |
Loading…
Reference in new issue