parent
1db57ec724
commit
28996ec879
@ -0,0 +1,105 @@ |
||||
<template> |
||||
<a-modal |
||||
:title="title" |
||||
:width="780" |
||||
: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 v-decorator="['name', { rules: [{ required: true, message: '请输入预售名称' }] }]" placeholder="请输入预售名称" /> |
||||
</a-form-item> |
||||
<a-form-item label="预售商品" :labelCol="labelCol" :wrapperCol="wrapperCol" required> |
||||
<div style="width: 100%; overflow-x: auto;"> |
||||
<SelectGoods |
||||
:multiple="true" |
||||
v-decorator="['goods_list', { rules: [{ required: true, message: '请选择预售商品' }] }]" |
||||
/> |
||||
</div> |
||||
</a-form-item> |
||||
|
||||
<a-form-item label="状态" :labelCol="labelCol" :wrapperCol="wrapperCol"> |
||||
<a-radio-group v-decorator="['status', { initialValue: 1, rules: [{ required: true }] }]"> |
||||
<a-radio :value="1">开启</a-radio> |
||||
<a-radio :value="0">关闭</a-radio> |
||||
</a-radio-group> |
||||
</a-form-item> |
||||
</a-form> |
||||
</a-spin> |
||||
</a-modal> |
||||
</template> |
||||
|
||||
<script> |
||||
import pick from 'lodash.pick' |
||||
import * as Api from '@/api/market/presale' |
||||
import { SelectImage, SelectGoods } from '@/components' |
||||
|
||||
export default { |
||||
components: { |
||||
SelectImage, |
||||
SelectGoods |
||||
}, |
||||
data () { |
||||
return { |
||||
// 对话框标题 |
||||
title: '新增预售', |
||||
// 标签布局属性 |
||||
labelCol: { span: 3 }, |
||||
// 输入框布局属性 |
||||
wrapperCol: { span: 19 }, |
||||
// modal(对话框)是否可见 |
||||
visible: false, |
||||
// modal(对话框)确定按钮 loading |
||||
confirmLoading: false, |
||||
// 当前表单元素 |
||||
form: this.$form.createForm(this) |
||||
} |
||||
}, |
||||
methods: { |
||||
|
||||
// 显示对话框 |
||||
add () { |
||||
// 显示窗口 |
||||
this.visible = true |
||||
}, |
||||
|
||||
// 确认按钮 |
||||
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.add({ form: { ...values, goods_list: values.goods_list.join(',') } }) |
||||
.then(result => { |
||||
// 显示成功 |
||||
this.$message.success(result.message, 1.5) |
||||
// 关闭对话框事件 |
||||
this.handleCancel() |
||||
// 通知父端组件提交完成了 |
||||
this.$emit('handleSubmit', values) |
||||
}) |
||||
.finally(() => this.confirmLoading = false) |
||||
} |
||||
|
||||
} |
||||
} |
||||
</script> |
@ -0,0 +1,125 @@ |
||||
<template> |
||||
<a-modal |
||||
:title="title" |
||||
:width="780" |
||||
: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 v-decorator="['name', { rules: [{ required: true, message: '请输入预售名称' }] }]" placeholder="请输入预售名称" /> |
||||
</a-form-item> |
||||
<a-form-item label="预售商品" :labelCol="labelCol" :wrapperCol="wrapperCol" required> |
||||
<div style="width: 100%; overflow-x: auto;"> |
||||
<SelectGoods |
||||
:defaultList="selectGoodsList" |
||||
:multiple="true" |
||||
v-decorator="['goods_list', { rules: [{ required: true, message: '请选择预售商品' }] }]" |
||||
/> |
||||
</div> |
||||
</a-form-item> |
||||
|
||||
<a-form-item label="状态" :labelCol="labelCol" :wrapperCol="wrapperCol"> |
||||
<a-radio-group v-decorator="['status', { initialValue: 1, rules: [{ required: true }] }]"> |
||||
<a-radio :value="1">开启</a-radio> |
||||
<a-radio :value="0">关闭</a-radio> |
||||
</a-radio-group> |
||||
</a-form-item> |
||||
</a-form> |
||||
</a-spin> |
||||
</a-modal> |
||||
</template> |
||||
|
||||
<script> |
||||
import pick from 'lodash.pick' |
||||
import * as Api from '@/api/market/presale' |
||||
import { SelectImage, SelectGoods } from '@/components' |
||||
|
||||
export default { |
||||
components: { |
||||
SelectImage, |
||||
SelectGoods |
||||
}, |
||||
data () { |
||||
return { |
||||
// 对话框标题 |
||||
title: '编辑预售', |
||||
// 标签布局属性 |
||||
labelCol: { span: 3 }, |
||||
// 输入框布局属性 |
||||
wrapperCol: { span: 19 }, |
||||
// modal(对话框)是否可见 |
||||
visible: false, |
||||
// modal(对话框)确定按钮 loading |
||||
confirmLoading: false, |
||||
// 当前表单元素 |
||||
form: this.$form.createForm(this), |
||||
// 当前记录 |
||||
record: {}, |
||||
// 关联商品列表 |
||||
selectGoodsList: [] |
||||
} |
||||
}, |
||||
methods: { |
||||
|
||||
// 显示对话框 |
||||
edit (record) { |
||||
// 显示窗口 |
||||
this.visible = true |
||||
// 当前记录 |
||||
this.record = record |
||||
|
||||
this.selectGoodsList = record.goods_list || [] |
||||
|
||||
// 设置默认值 |
||||
this.setFieldsValue() |
||||
}, |
||||
|
||||
// 设置默认值 |
||||
setFieldsValue () { |
||||
const { record, form: { setFieldsValue } } = this |
||||
this.$nextTick(() => { |
||||
setFieldsValue(pick(record, ['name', 'goods_list', 'status'])) |
||||
}) |
||||
}, |
||||
|
||||
// 确认按钮 |
||||
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.edit({ id: this.record.id, form: { ...values, goods_list: values.goods_list.join(',') } }) |
||||
.then(result => { |
||||
// 显示成功 |
||||
this.$message.success(result.message, 1.5) |
||||
// 关闭对话框事件 |
||||
this.handleCancel() |
||||
// 通知父端组件提交完成了 |
||||
this.$emit('handleSubmit', values) |
||||
}) |
||||
.finally(() => this.confirmLoading = false) |
||||
} |
||||
|
||||
} |
||||
} |
||||
</script> |
@ -0,0 +1,4 @@ |
||||
import AddForm from './AddForm' |
||||
import EditForm from './EditForm' |
||||
|
||||
export { AddForm, EditForm } |
Loading…
Reference in new issue