Commit 0af13dd7 by liuliufashi

push

parent 41a815df
...@@ -4,12 +4,12 @@ ...@@ -4,12 +4,12 @@
<div class="title">商品基础信息</div> <div class="title">商品基础信息</div>
<a-form style="margin-top: 30px" :model="formState" name="basic" :label-col="{ span: 1 }" :wrapper-col="{ span: 8 }" <a-form style="margin-top: 30px" :model="formState" name="basic" :label-col="{ span: 1 }" :wrapper-col="{ span: 8 }"
autocomplete="off" @finish="onFinish" @finishFailed="onFinishFailed"> autocomplete="off" @finish="onFinish" @finishFailed="onFinishFailed">
<a-form-item label="商品名称" name="subject" :rules="rulesRef.subject" labelAlign="left" :label-col="{ span: 2 }"> <a-form-item label="商品名称" name="subject" :rules="rulesRef.subject" labelAlign="left" :label-col="{ span: 2 }" >
<a-input v-model:value="formState.subject" /> <a-input v-model:value="formState.subject" maxlength="30" showCount/>
</a-form-item> </a-form-item>
<a-form-item label="商品简介" name="shortname" :rules="rulesRef.shortname" labelAlign="left" :label-col="{ span: 2}"> <a-form-item label="商品简介" name="shortname" :rules="rulesRef.shortname" labelAlign="left" :label-col="{ span: 2}">
<a-input v-model:value="formState.shortname" /> <a-input v-model:value="formState.shortname" maxlength="50" showCount />
</a-form-item> </a-form-item>
<a-form-item label=" 商品示图" name="picurl" :rules="rulesRef.picurl" :wrapper-col="{ offset: 0, span: 8 }" class="Up" <a-form-item label=" 商品示图" name="picurl" :rules="rulesRef.picurl" :wrapper-col="{ offset: 0, span: 8 }" class="Up"
...@@ -27,7 +27,7 @@ ...@@ -27,7 +27,7 @@
</a-modal> </a-modal>
<div> <div>
<p class="warin"> <p class="warin">
建议图片比例为4:3,大小不超过200M,图片仅支持JPG、JPEG、PNG格式 建议图片比例为4:3,大小不超过20M,图片仅支持JPG、JPEG、PNG格式
</p> </p>
</div> </div>
</div> </div>
...@@ -231,24 +231,7 @@ const rulesRef = reactive({ ...@@ -231,24 +231,7 @@ const rulesRef = reactive({
message: '请输入商品简介!', message: '请输入商品简介!',
}, },
], ],
body: [
{
required: true,
message: '请输入商品详情!',
},
],
picurl: [
{
validateOnRuleChange: true,
message: '请上传商品示图!',
},
],
markingprice: [
{
required: true,
message: '请输入划线价格',
},
],
price: [ price: [
{ {
required: true, required: true,
...@@ -256,10 +239,9 @@ const rulesRef = reactive({ ...@@ -256,10 +239,9 @@ const rulesRef = reactive({
}, },
], ],
}); });
const { resetFields, validate } = useForm(formState, rulesRef); const { validate } = useForm(formState, rulesRef);
const onFinish = (values: any) => { const onFinish = (values: any) => {
console.log("Success:", values);
}; };
const onFinishFailed = (errorInfo: any) => { const onFinishFailed = (errorInfo: any) => {
...@@ -320,7 +302,6 @@ const onBeforeUpload: UploadProps['beforeUpload'] = file => { ...@@ -320,7 +302,6 @@ const onBeforeUpload: UploadProps['beforeUpload'] = file => {
const onSubmit = () => { const onSubmit = () => {
validate() validate()
.then(async () => { .then(async () => {
const fromData:any = toRaw(formState) const fromData:any = toRaw(formState)
const uid = getUid() const uid = getUid()
const prarms = { const prarms = {
...@@ -335,11 +316,8 @@ const onSubmit = () => { ...@@ -335,11 +316,8 @@ const onSubmit = () => {
picurl:fromData.picurl, picurl:fromData.picurl,
free:value.value free:value.value
} }
console.log(prarms,'toRaw(formState)');
const data: any = await onCreateGoods(JSON.stringify(prarms)) const data: any = await onCreateGoods(JSON.stringify(prarms))
if (data.state === 1) { if (data.state === 1) {
resetFields()
fileList.value = [] fileList.value = []
message.success(data.message) message.success(data.message)
emit('onBack') emit('onBack')
......
...@@ -4,11 +4,11 @@ ...@@ -4,11 +4,11 @@
<div class="title">商品包基础信息</div> <div class="title">商品包基础信息</div>
<a-form style="margin-top: 30px" :model="formState" name="basic" :label-col="{ span: 1 }" :wrapper-col="{ span: 8 }" autocomplete="off" @finish="onFinish" @finishFailed="onFinishFailed"> <a-form style="margin-top: 30px" :model="formState" name="basic" :label-col="{ span: 1 }" :wrapper-col="{ span: 8 }" autocomplete="off" @finish="onFinish" @finishFailed="onFinishFailed">
<a-form-item label="商品名称:" name="subject" :rules="rulesRef.subject" labelAlign="left" :label-col="{ span: 2 }"> <a-form-item label="商品名称:" name="subject" :rules="rulesRef.subject" labelAlign="left" :label-col="{ span: 2 }">
<a-input v-model:value="formState.subject" /> <a-input v-model:value="formState.subject" maxlength="30" showCount/>
</a-form-item> </a-form-item>
<a-form-item label="商品简介:" name="shortname" :rules="rulesRef.shortname" labelAlign="left" :label-col="{ span: 2 }"> <a-form-item label="商品简介:" name="shortname" :rules="rulesRef.shortname" labelAlign="left" :label-col="{ span: 2 }">
<a-input v-model:value="formState.shortname" /> <a-input v-model:value="formState.shortname" maxlength="50" showCount/>
</a-form-item> </a-form-item>
<a-form-item label="商品示图:" name="picurl" :rules="rulesRef.picurl" labelAlign="left" :wrapper-col="{ offset: 0, span: 8 }" <a-form-item label="商品示图:" name="picurl" :rules="rulesRef.picurl" labelAlign="left" :wrapper-col="{ offset: 0, span: 8 }"
...@@ -26,7 +26,7 @@ ...@@ -26,7 +26,7 @@
</a-modal> </a-modal>
<div> <div>
<p class="warin"> <p class="warin">
建议图片比例为4:3,大小不超过200M,图片仅支持JPG、JPEG、PNG格式 建议图片比例为4:3,大小不超过20M,图片仅支持JPG、JPEG、PNG格式
</p> </p>
</div> </div>
</div> </div>
......
...@@ -50,14 +50,14 @@ ...@@ -50,14 +50,14 @@
<a-modal v-model:visible="visible" title="编辑" :confirm-loading="confirmLoading" :width="1000" @ok="handleOk" :maskClosable="false" <a-modal v-model:visible="visible" title="编辑" :confirm-loading="confirmLoading" :width="1000" @ok="handleOk" :maskClosable="false"
@Cancel="handleCancel" @handleChange="handleChange"> @Cancel="handleCancel" @handleChange="handleChange">
<a-form :model="modelRef" name="basic" :label-col="{ span: 2 }" :wrapper-col="{ span: 8 }" autocomplete="off"> <a-form :model="modelRef" name="basic" :label-col="{ span: 2 }" :wrapper-col="{ span: 8 }" autocomplete="off">
<a-form-item label="商品名称" name="商品名称" :rules="[{ required: true, message: '请输入商品名称!' }]" <a-form-item label="商品名称" name="subject" :rules="[{ required: true, message: '请输入商品名称!' }]" :maxlength="200"
:label-col="{ span: 2 }"> :label-col="{ span: 2 }">
<a-input v-model:value="modelRef.subject" /> <a-input v-model:value="modelRef.subject" maxlength="30"/>
</a-form-item> </a-form-item>
<a-form-item label="商品简介" name="商品简介" :rules="[{ required: true, message: '请输入商品简介!' }]" <a-form-item label="商品简介" name="shortname" :rules="[{ required: true, message: '请输入商品简介!' }]" :maxlength="200"
:label-col="{ span: 2 }"> :label-col="{ span: 2 }">
<a-input v-model:value="modelRef.shortname" /> <a-input v-model:value="modelRef.shortname" maxlength="50"/>
</a-form-item> </a-form-item>
<a-form-item label=" 商品示图" name="picurl" :wrapper-col="{ offset: 0, span: 8 }" class="Up" labelAlign="left" <a-form-item label=" 商品示图" name="picurl" :wrapper-col="{ offset: 0, span: 8 }" class="Up" labelAlign="left"
...@@ -74,7 +74,7 @@ ...@@ -74,7 +74,7 @@
</div> </div>
<div> <div>
<p class="warin"> <p class="warin">
建议图片比例为4:3,大小不超过200M,图片仅支持JPG、JPEG、PNG格式 建议图片比例为4:3,大小不超过20M,图片仅支持JPG、JPEG、PNG格式
</p> </p>
</div> </div>
</div> </div>
...@@ -117,14 +117,14 @@ ...@@ -117,14 +117,14 @@
<a-form-item name="price" :wrapper-col="{ offset: 0, span: 4 }" label="商品售价" <a-form-item name="price" :wrapper-col="{ offset: 0, span: 4 }" label="商品售价"
:rules="[{ required: true, message: '请输入输入价格' }]" labelAlign="left" :label-col="{ span: 2 }"> :rules="[{ required: true, message: '请输入输入价格' }]" labelAlign="left" :label-col="{ span: 2 }">
<div> <div>
<a-radio-group v-model:value="modelRef.sellingmodel" @change="onSelectPlain"> <a-radio-group v-model:value="modelRef.free" @change="onSelectPlain">
<a-radio value="0">免费</a-radio> <a-radio value="0">免费</a-radio>
<a-radio value="1">收费</a-radio> <a-radio value="1">收费</a-radio>
</a-radio-group> </a-radio-group>
</div> </div>
</a-form-item> </a-form-item>
<a-form-item :wrapper-col="{ offset: 2, span: 7 }"> <a-form-item :wrapper-col="{ offset: 2, span: 7 }" v-if="modelRef.free!== '0'">
<div style="display:flex;"> <div style="display:flex;">
<div style="margin-right:20px">划线价</div> <div style="margin-right:20px">划线价</div>
<a-input-number style="width: 200px" :min="0" string-mode <a-input-number style="width: 200px" :min="0" string-mode
...@@ -134,7 +134,7 @@ ...@@ -134,7 +134,7 @@
</div> </div>
</a-form-item> </a-form-item>
<a-form-item name="price" :wrapper-col="{ offset: 2, span: 7 }" <a-form-item name="price" :wrapper-col="{ offset: 2, span: 7 }"
:rules="[{ required: true, message: '请输入商品价格!' }]"> :rules="[{ required: true, message: '请输入商品价格!' }]" v-if="modelRef.free!== '0'" >
<div style="display:flex;"> <div style="display:flex;">
<div style="margin-right:20px">售卖价</div> <div style="margin-right:20px">售卖价</div>
<a-input-number style="width: 200px" :min="0" string-mode <a-input-number style="width: 200px" :min="0" string-mode
...@@ -330,18 +330,11 @@ const onEdit = (e: any) => { ...@@ -330,18 +330,11 @@ const onEdit = (e: any) => {
modelRef.value.sellingmodel = e.price? '1':'0' modelRef.value.sellingmodel = e.price? '1':'0'
modelRef.value.price = e.price/100 modelRef.value.price = e.price/100
modelRef.value.markingprice = e.markingprice/100 modelRef.value.markingprice = e.markingprice/100
modelRef.value.free = e.free
fileList.value[0].url = e.picurl fileList.value[0].url = e.picurl
}; };
const { resetFields, validate, validateInfos } = useForm( const { validate } = useForm(
modelRef, modelRef,
reactive({
subject: [
{
required: true,
message: "请输入商品名称",
},
],
})
); );
const onSelectPlain = (e: any) => { const onSelectPlain = (e: any) => {
if (e.target.value === '0') { if (e.target.value === '0') {
...@@ -468,7 +461,6 @@ defineExpose({ ...@@ -468,7 +461,6 @@ defineExpose({
modalText, modalText,
visible, visible,
confirmLoading, confirmLoading,
validateInfos,
modelRef, modelRef,
optionss, optionss,
options, options,
......
...@@ -164,9 +164,8 @@ const rulesRef = reactive({ ...@@ -164,9 +164,8 @@ const rulesRef = reactive({
message: '请输入商品简介!', message: '请输入商品简介!',
}, },
], ],
}); });
const { resetFields, validate } = useForm(formState, rulesRef); const { validate } = useForm(formState, rulesRef);
const onSelect = (value: any, option: any) => { const onSelect = (value: any, option: any) => {
price.value = option.itemKey.price/100 price.value = option.itemKey.price/100
} }
...@@ -175,27 +174,25 @@ const onSubmit = () => { ...@@ -175,27 +174,25 @@ const onSubmit = () => {
.then(async (res) => { .then(async (res) => {
const uid =getUid() const uid =getUid()
const expireendtime = (moment(toRaw(formState).expireendtime.$d).format('YYYY-MM-DD'))+(moment(endvalue.value.$d).format('THH:mm:[00][Z]')) const expireendtime = (moment(toRaw(formState).expireendtime.$d).format('YYYY-MM-DD'))+(moment(endvalue.value.$d).format('THH:mm:[00][Z]'))
// goodspayditch.value.map((item:any)=>{return item.goodsid = toRaw(formState).subject.value}) goodspayditch.value.map((item:any)=>{return item.goodsid = toRaw(formState).subject.value})
// console.log(toRaw(formState),'toRaw(formState)',goodspayditch.value); const prarms = {
subject:toRaw(formState).subject.label,
// const prarms = { shortname:toRaw(formState).shortname,
// subject:toRaw(formState).subject.label, paymentmodel:toRaw(formState).paymentmodel,
// shortname:toRaw(formState).shortname, fullphone:toRaw(formState).paymentmodel?0:1,
// paymentmodel:toRaw(formState).paymentmodel, expireendtime:expireendtime,
// fullphone:toRaw(formState).paymentmodel?0:1, starttime: moment(new Date()).format('YYYY-MM-DDTHH:mm:[00][Z]'),
// expireendtime:expireendtime, goodsid: toRaw(formState).subject.value,
// starttime: moment(new Date()).format('YYYY-MM-DDTHH:mm:[00][Z]'), goodspayditch:goodspayditch.value,
// goodsid: toRaw(formState).subject.value, payment:formState.paymentmodel == '1'?price.value*100:priceSet.value*100,
// goodspayditch:goodspayditch.value, uid,
// payment:formState.paymentmodel == '1'?price.value*100:priceSet.value*100, remark:toRaw(formState).remark
// uid, }
// remark:toRaw(formState).remark const data:any = await onCreateGoodsPay(prarms)
// } if(data.state === 1){
// const data:any = await onCreateGoodsPay(prarms) message.success(data.message)
// if(data.state === 1){ emit('onBack')
// message.success(data.message) }
// emit('onBack')
// }
}) })
.catch(err => { .catch(err => {
......
...@@ -14,7 +14,6 @@ ...@@ -14,7 +14,6 @@
<template #bodyCell="{ column, record }"> <template #bodyCell="{ column, record }">
<div v-if="column.key == 'picurl'"> <div v-if="column.key == 'picurl'">
<div style="display:flex;align-items: center;"> <div style="display:flex;align-items: center;">
<a-image :width="100" :src="record.picurl" />
<div>{{ record.subject }} <div>{{ record.subject }}
</div> </div>
</div> </div>
...@@ -64,7 +63,7 @@ ...@@ -64,7 +63,7 @@
<a-form-item label="选择商品" name="subject" :label-col="{ span: 2 }" labelAlign="left"> <a-form-item label="选择商品" name="subject" :label-col="{ span: 2 }" labelAlign="left">
<div style="width:100%;display: flex;align-items: center;"> <div style="width:100%;display: flex;align-items: center;">
<a-select v-model:value="formState.subject" style="width: 120px" <a-select v-model:value="formState.subject" style="width: 120px"
:options="listArray.map((item:any, index:number) => ({ value: item.goodsid, label: item.subject, index: index }))" @change="onSelect"> :options="listArray.map((item:any, index:number) => ({ value: item.goodsid, label: item.subject, index: index, }))" @change="onSelect">
</a-select> </a-select>
</div> </div>
</a-form-item> </a-form-item>
...@@ -72,17 +71,17 @@ ...@@ -72,17 +71,17 @@
<a-input v-model:value="formState.shortname" placeholder="请输入商品描述" /> <a-input v-model:value="formState.shortname" placeholder="请输入商品描述" />
</a-form-item> </a-form-item>
<a-form-item label="支付金额" name="price" :label-col="{ span: 2 }" labelAlign="left"> <a-form-item label="支付金额" name="price" :label-col="{ span: 2 }" labelAlign="left">
<a-radio-group v-model:value="formState.paymentmodel" name="radioGroup" class="pay"> <a-radio-group v-model:value="formState.expiremodel" name="radioGroup" class="pay">
<div style="display: flex;height: 35px;"> <div style="display: flex;height: 35px;">
<a-radio :value="0" style="width:150px;">商品默认金额</a-radio> <a-radio value="0" style="width:150px;">商品默认金额</a-radio>
<a-input-number style="width:200px;height: 35px;" v-model:value="formState.markingprice" :formatter="value => `${value}`.replace(/\B(?=(\d{3})+(?!\d))/g, ',')" <a-input-number style="width:200px;height: 35px;" v-model:value="formState.markingprice" :formatter="value => `${value}`.replace(/\B(?=(\d{3})+(?!\d))/g, ',')"
:parser="value => value.replace(/\$\s?|(,*)/g, '')" :disabled="true"/> :parser="value => value.replace(/\$\s?|(,*)/g, '')" :disabled="true"/>
<div style="width:50px;"></div> <div style="width:50px;"></div>
</div> </div>
<div style="display: flex;height: 35px;margin-top: 20px;"> <div style="display: flex;height: 35px;margin-top: 20px;">
<a-radio :value="1" style="width:150px;">自定义金额</a-radio> <a-radio value="1" style="width:150px;">自定义金额</a-radio>
<a-input-number style="width:200px;height: 35px;" v-model:value="formState.payment" :formatter="value => `${value}`.replace(/\B(?=(\d{3})+(?!\d))/g, ',')" <a-input-number style="width:200px;height: 35px;" v-model:value="formState.payment" :formatter="value => `${value}`.replace(/\B(?=(\d{3})+(?!\d))/g, ',')"
:parser="value => value.replace(/\$\s?|(,*)/g, '')"/> :parser="value => value.replace(/\$\s?|(,*)/g, '')"/>
<div style="width:50px;"></div> <div style="width:50px;"></div>
</div> </div>
</a-radio-group> </a-radio-group>
...@@ -92,13 +91,13 @@ ...@@ -92,13 +91,13 @@
<a-switch :checked="formState.fullphone === '0'" /> <a-switch :checked="formState.fullphone === '0'" />
</div> </div>
</a-form-item> </a-form-item>
<a-form-item label="开始时间" name="price" :label-col="{ span: 2 }" labelAlign="left"> <!-- <a-form-item label="开始时间" name="price" :label-col="{ span: 2 }" labelAlign="left">
<div style="display:flex"> <div style="display:flex">
<a-date-picker v-model:value="value2" :format="dateFormat" <a-date-picker v-model:value="value2" :format="dateFormat"
:disabledDate="disabledDate" /> :disabledDate="disabledDate" />
<a-time-picker style="margin-left: 20px;" v-model:value="value3" format="HH:mm" /> <a-time-picker style="margin-left: 20px;" v-model:value="value3" format="HH:mm" />
</div> </div>
</a-form-item> </a-form-item> -->
<a-form-item label="结束时间" name="price" :label-col="{ span: 2 }" labelAlign="left"> <a-form-item label="结束时间" name="price" :label-col="{ span: 2 }" labelAlign="left">
<div style="display:flex"> <div style="display:flex">
<a-date-picker v-model:value="value4" :format="dateFormat" <a-date-picker v-model:value="value4" :format="dateFormat"
...@@ -155,8 +154,8 @@ const optionsWithDisabled = [ ...@@ -155,8 +154,8 @@ const optionsWithDisabled = [
const columns = [ const columns = [
{ {
title: '支付项目名称', title: '支付项目名称',
dataIndex: 'picurl', dataIndex: 'subject',
key: 'picurl', key: 'subject',
}, },
{ {
title: '绑定商品编号', title: '绑定商品编号',
...@@ -204,16 +203,15 @@ const showModal = () => { ...@@ -204,16 +203,15 @@ const showModal = () => {
}; };
const handleOk =async(e: MouseEvent) => { const handleOk =async(e: MouseEvent) => {
const starttime = (moment(value2.value.$d).format('YYYY-MM-DD'))+(moment(value3.value.$d).format('THH:mm:[00][Z]')) const starttime = moment(new Date()).format('YYYY-MM-DDTHH:mm:[00][Z]')
const expireendtime = (moment(value4.value.$d).format('YYYY-MM-DD'))+(moment(value5.value.$d).format('THH:mm:[00][Z]')) const expireendtime = (moment(value4.value.$d).format('YYYY-MM-DD'))+(moment(value5.value.$d).format('THH:mm:[00][Z]'))
const uid =getUid() const uid =getUid()
const params={ const params={
id: formState.value.id, id: formState.value.id,
goodsid: formState.value.goodspayditch[0].goodsid, goodsid: formState.value.goodspayditch[0].goodsid,
paymentmodel: formState.value.paymentmodel*100, paymentmodel: formState.value.paymentmodel,
payment: formState.value.payment *100, payment: formState.value.payment *100,
fullphone:formState.value.fullphone, fullphone:formState.value.fullphone,
expiremodel:formState.value.expiremodel,
expireendtime:expireendtime, expireendtime:expireendtime,
expiremillisecond: formState.value.expiremillisecond, expiremillisecond: formState.value.expiremillisecond,
starttime: starttime, starttime: starttime,
...@@ -255,6 +253,7 @@ const onEdit = (e: any) => { ...@@ -255,6 +253,7 @@ const onEdit = (e: any) => {
formState.value.goodsid =e.goodsid formState.value.goodsid =e.goodsid
formState.value.expireendtime =e.expireendtime formState.value.expireendtime =e.expireendtime
formState.value.createtime =e.createtime formState.value.createtime =e.createtime
formState.value.expiremodel =e.expiremodel
value2.value = dayjs(moment(e.starttime).format(('YYYY/MM/DD')), dateFormat) value2.value = dayjs(moment(e.starttime).format(('YYYY/MM/DD')), dateFormat)
value3.value = dayjs(moment(e.starttime).format(('HH:mm')), 'HH:mm') value3.value = dayjs(moment(e.starttime).format(('HH:mm')), 'HH:mm')
value4.value = dayjs(moment(e.expireendtime).format(('YYYY-MM-DD')), dateFormat) value4.value = dayjs(moment(e.expireendtime).format(('YYYY-MM-DD')), dateFormat)
...@@ -320,11 +319,12 @@ const init = async () => { ...@@ -320,11 +319,12 @@ const init = async () => {
listArray.value = data.data listArray.value = data.data
} }
const onSelectCheckboxValue = (e: any, index: any) => { const onSelectCheckboxValue = (e: any, index: any) => {d
checkboxValue.value[index] = e checkboxValue.value[index] = e
} }
const onSelect =(e:any,label:any,index:any)=>{ const onSelect =(e:any,label:any,index:any,item:any)=>{
console.log(e,label,item,'e');
formState.value.markingprice = listArray.value[label.index].price/100 formState.value.markingprice = listArray.value[label.index].price/100
} }
onMounted(async () => { onMounted(async () => {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment