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