预售列表

master
fanfan 5 months ago
parent af186fb16e
commit bdd295f3d4
  1. 210
      src/views/market/presale/modules/EditForm.vue
  2. 2
      src/views/user/order/Index.vue

@ -1,45 +1,28 @@
<template> <template>
<a-modal <a-modal :title="title" :width="780" :visible="visible" :confirmLoading="confirmLoading" :maskClosable="false" :destroyOnClose="true" @ok="handleSubmit" @cancel="handleCancel">
:title="title" <a-spin :spinning="confirmLoading">
:width="780" <a-form :form="form">
:visible="visible" <a-form-item label="预售名称" :labelCol="labelCol" :wrapperCol="wrapperCol">
:confirmLoading="confirmLoading" <a-input v-decorator="['name', { rules: [{ required: true, message: '请输入预售名称' }] }]" placeholder="请输入预售名称" />
:maskClosable="false" </a-form-item>
:destroyOnClose="true" <a-form-item label="预售商品" :labelCol="labelCol" :wrapperCol="wrapperCol" required>
@ok="handleSubmit" <div style="width: 100%; overflow-x: auto;">
@cancel="handleCancel" <SelectGoods :defaultList="selectGoodsList" :multiple="true" v-decorator="['goods_list', { rules: [{ required: true, message: '请选择预售商品' }] }]" />
> </div>
<a-spin :spinning="confirmLoading"> </a-form-item>
<a-form :form="form"> <a-form-item label="预售时间" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-form-item label="预售名称" :labelCol="labelCol" :wrapperCol="wrapperCol"> <a-date-picker show-time format="YYYY-MM-DD HH:mm:ss" v-decorator="['p_time', { rules: [{ required: true, message: '请输入预售时间' }] }]" />
<a-input v-decorator="['name', { rules: [{ required: true, message: '请输入预售名称' }] }]" placeholder="请输入预售名称" /> </a-form-item>
</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-date-picker
show-time
format="YYYY-MM-DD HH:mm:ss"
v-decorator="['p_time', { rules: [{ required: true, message: '请输入预售时间' }] }]"
/>
</a-form-item>
<a-form-item label="状态" :labelCol="labelCol" :wrapperCol="wrapperCol"> <a-form-item label="状态" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-radio-group v-decorator="['status', { initialValue: 1, rules: [{ required: true }] }]"> <a-radio-group v-decorator="['status', { initialValue: 1, rules: [{ required: true }] }]">
<a-radio :value="1">开启</a-radio> <a-radio :value="1">开启</a-radio>
<a-radio :value="0">关闭</a-radio> <a-radio :value="0">关闭</a-radio>
</a-radio-group> </a-radio-group>
</a-form-item> </a-form-item>
</a-form> </a-form>
</a-spin> </a-spin>
</a-modal> </a-modal>
</template> </template>
<script> <script>
@ -48,85 +31,88 @@ import * as Api from '@/api/market/presale'
import { SelectImage, SelectGoods } from '@/components' import { SelectImage, SelectGoods } from '@/components'
export default { export default {
components: { components: {
SelectImage, SelectImage,
SelectGoods SelectGoods
}, },
data () { data() {
return { return {
// //
title: '编辑预售', title: '编辑预售',
// //
labelCol: { span: 3 }, labelCol: { span: 3 },
// //
wrapperCol: { span: 19 }, wrapperCol: { span: 19 },
// modal() // modal()
visible: false, visible: false,
// modal() loading // modal() loading
confirmLoading: false, confirmLoading: false,
// //
form: this.$form.createForm(this), form: this.$form.createForm(this),
// //
record: {}, record: {},
// //
selectGoodsList: [] selectGoodsList: []
} }
}, },
methods: { methods: {
// //
edit (record) { edit(record) {
// //
this.visible = true this.visible = true
// //
this.record = record this.record = record
this.selectGoodsList = record.goods_list || [] this.selectGoodsList = record.goods_list || []
// //
this.setFieldsValue() this.setFieldsValue()
}, },
// //
setFieldsValue () { setFieldsValue() {
const { record, form: { setFieldsValue } } = this const { record, form: { setFieldsValue } } = this
this.$nextTick(() => { this.$nextTick(() => {
setFieldsValue(pick(record, ['name', 'goods_list', 'p_time', 'status'])) setFieldsValue(pick(record, ['name', 'goods_list', 'p_time', 'status']))
}) })
}, },
// //
handleSubmit (e) { handleSubmit(e) {
e.preventDefault() e.preventDefault()
// //
const { form: { validateFields } } = this const { form: { validateFields } } = this
validateFields((errors, values) => { validateFields((errors, values) => {
// api // api
!errors && this.onFormSubmit(values) !errors && this.onFormSubmit(values)
}) })
}, },
// //
handleCancel () { handleCancel() {
this.visible = false this.visible = false
this.form.resetFields() this.form.resetFields()
}, },
hasObject(arr) {
// api return arr.some(item => typeof item === 'object' && item !== null);
onFormSubmit (values) { },
// api
onFormSubmit(values) {
this.confirmLoading = true this.confirmLoading = true
Api.edit({ id: this.record.id, form: { ...values, goods_list: values.goods_list.join(',') } }) let arrType=this.hasObject(values.goods_list)
.then(result => { Api.edit({ id: this.record.id, form: { ...values, goods_list: arrType?values.goods_list.map(item => item.goods_id).join(","):values.goods_list.join(',') } })
// .then(result => {
this.$message.success(result.message, 1.5) //
// this.$message.success(result.message, 1.5)
this.handleCancel() //
// this.handleCancel()
this.$emit('handleSubmit', values) //
}) this.$emit('handleSubmit', values)
.finally(() => this.confirmLoading = false) })
} .finally(() => this.confirmLoading = false)
}
} }
} }
</script> </script>

@ -24,7 +24,7 @@
</a-form-item> </a-form-item>
<a-form-item label="支付方式"> <a-form-item label="支付方式">
<a-select v-decorator="['pay_method', { initialValue: 0 }]"> <a-select v-decorator="['pay_method', { initialValue: 0 }]">
<a-select-option :value="''">全部</a-select-option> <a-select-option :value="0">全部</a-select-option>
<a-select-option :value="'wechat'">会员</a-select-option> <a-select-option :value="'wechat'">会员</a-select-option>
<a-select-option :value="'balance'">分销商 </a-select-option> <a-select-option :value="'balance'">分销商 </a-select-option>
</a-select> </a-select>

Loading…
Cancel
Save