Commit 0af13dd7 by liuliufashi

push

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