Commit 28d6f871 by liuliufashi

push

parent 43f55f51
......@@ -124,17 +124,23 @@ export const onfindWX = async(uid:any)=>{
method:'post',
});
}
export const onSelectGoods = async(uid:any)=>{
export const onSelectGoods = async(data:any)=>{
return await request({
url: `/goods/select?uid=${uid}`,
url: `/goods/select?uid=${data.uid}&page=${data.page}&size=${data.size}&strtus=${data.strtus}`,
method:'post',
});
}
export const onFindbyLikeName = async(params:any)=>{
return await request({
url: `/goods/findbylikename?uid=${params.uid}&name=${params.name}&page=${params.page}&size=${params.size}`,
method:'post',
});
}
export const onfindby = async(params:any)=>{
return await request({
url: `/goods/findgoodspays?uid=${params.uid}&name=${params.name}&status=${params.status}`,
url: `/goods/findgoodspays?uid=${params.uid}&name=${params.name}&status=${params.status}&page=${params.page}&size=${params.size}`,
method:'post',
});
}
......
......@@ -57,7 +57,7 @@ const routes: Array<RouteRecordRaw> = [
path: '/home/payinfo',
name: '订单详情',
meta:{
icon:'icon-fencengpeizhi'
icon:'icon-gouwuchekong'
},
component: ()=>import('@/views/pay-info/index.vue')
},
......
......@@ -57,7 +57,7 @@
</div>
</a-form-item>
<a-form-item name="price" :wrapper-col="{ offset: 0, span: 2 }" label="商品售价"
:rules="[{ required: true, message: '请输入输入价格' }]" labelAlign="left" :label-col="{ span: 2 }">
labelAlign="left" :label-col="{ span: 2 }">
<div>
<a-radio-group v-model:value="value" @change="onSelectPlain">
<a-radio value="0">免费</a-radio>
......@@ -288,7 +288,9 @@ const onEdithandleChange = (info: any) => {
}
};
const onSelectPlain = (e: any) => {
formState.price = "1"
if(e.target.value == '0'){
formState.price = "1"
}
value.value = e.target.value;
};
......
......@@ -54,7 +54,7 @@
<a-form-item label="选择商品:" labelAlign="left" :wrapper-col="{ offset: 0, span: 8 }" name="sub" :rules="rulesRef.sub"
:label-col="{ span: 2 }">
<div style="width:100%;display: flex;align-items: center;">
<a-select v-model:value="formState.sub" mode="multiple" style="width: 100%" placeholder="请选择商品" @change="handleChanges">
<a-select v-model:value="formState.sub" mode="multiple" style="width: 100%" placeholder="请选择商品" @focus="handleChanges" @search="handleChanges" @select="onSelect" @popupScroll="popupScroll">
<a-select-option v-for="item in optionss" :itemKey="item" :value="item.goodsid" :label="item.goodsid">
{{item.subject}}
</a-select-option>
......@@ -66,7 +66,7 @@
</div>
</a-form-item>
<a-form-item name="price" labelAlign="left" :wrapper-col="{ offset: 0, span: 2 }" label="商品售价"
:rules="[{ required: true, message: '请输入输入价格' }]" :label-col="{ span: 2 }">
:label-col="{ span: 2 }">
<div>
<a-radio-group v-model:value="value" @change="onSelectPlain">
<a-radio value="0">免费</a-radio>
......@@ -103,7 +103,7 @@ import { message, UploadProps, Upload } from "ant-design-vue";
import { Form } from 'ant-design-vue';
import { QuillEditor } from '@vueup/vue-quill'
import '@vueup/vue-quill/dist/vue-quill.snow.css';
import { onCreateGoods, onSelectGoods } from '@/api/index'
import { onCreateGoods, onFindbyLikeName } from '@/api/index'
import { getUid } from "@/utils/userInfo";
const useForm = Form.useForm;
const upImage = ref<any>(null)
......@@ -233,30 +233,14 @@ const rulesRef = reactive({
message: '请输入商品简介!',
},
],
body: [
{
required: true,
message: '请输入商品详情!',
},
],
picurl: [
{
validateOnRuleChange: true,
message: '请上传商品示图!',
},
],
markingprice: [
{
required: true,
message: '请输入划线价格',
},
],
price: [
{
required: true,
message: '请输入售卖价格',
},
],
sub: [
{
required: true,
......@@ -293,36 +277,55 @@ const handleChange = (info: any) => {
fileList.value = resFileList;
};
const onSelectPlain = (e: any) => {
formState.price = "0"
if(e.target.value == '0'){
formState.price = "1"
}
// free 0
value.value = e.target.value;
};
const handleChanges = (value: string) => {
console.log(`selected ${value}`);
const handleChanges = async(value: string) => {
const uid = getUid();
const params = {
name: '',
size:10,
page:1,
uid,
};
const data = await onFindbyLikeName(params);
optionss.value = data.data.goods
};
const onSelect =(value:any, option:any)=>{
console.log(value,option,'option');
console.log(formState.sub,'formState');
}
const beforeUpload: UploadProps['beforeUpload'] = file => {
if (!(file.type.includes('png') || file.type.includes('jpeg') || file.type.includes('jpg'))) {
message.error(`${file.name}不是png/jpef/jpg格式`);
return Upload.LIST_IGNORE;
}
};
const popupScroll =()=>{
console.log(1);
}
const onSubmit = () => {
validate()
.then(async () => {
const fromData:any = toRaw(formState)
const uid = getUid()
const prarms = {
body: fromData.body,
remember: fromData.remember,
shortname: fromData.shortname,
subject: fromData.subject,
uid,
parent: 1,
markingprice:fromData.markingprice*100,
price:fromData.price*100,
picurl:fromData.picurl
body: fromData.body,
remember: fromData.remember,
shortname: fromData.shortname,
subject: fromData.subject,
uid,
parent: 1,
markingprice:fromData.markingprice*100,
price:fromData.price*100,
picurl:fromData.picurl,
sub:fromData.sub
}
const data: any = await onCreateGoods(JSON.stringify(prarms))
if (data.state === 1) {
......@@ -372,42 +375,38 @@ watch(isEditfileList, (newVal:any) => {
formState.body = str
}
})
onMounted(async () => {
const uid = getUid()
const data = await onSelectGoods(uid)
optionss.value = data.data
return options
})
defineExpose({
optionss,
plainOptions,
value,
crossedPrice,
sellingPrice,
textarea,
optionsEdit,
formState,
upImage,
onFinish,
onFinishFailed,
previewTitle,
options,
content,
previewVisible,
previewImage,
fileList,
onFinish,
onFinishFailed,
handleCancel,
handlePreview,
previewTitle,
options,
content,
handleChange,
plainOptions,
value,
onSelectPlain,
crossedPrice,
sellingPrice,
onSubmit,
handleChanges,
optionss,
beforeUpload,
textarea,
optionsEdit,
textChange,
onEditorFocus,
onEditorBlur,
onEditorChange
onEditorChange,
popupScroll
});
</script>
......
......@@ -25,7 +25,7 @@
@click="goNewPage(item)"
>
<div style="display: flex; align-items: center" >
<i :class="getText(item)" style="font-size:30px;"> </i>
<i :class="getText(item)" style="font-size:24px; padding: 5px;"> </i>
<span class="nav-text" >{{ item.name }}</span>
</div>
</a-menu-item>
......
......@@ -53,7 +53,8 @@
style="
margin-left: 20px;
width: 350px;
height: 50px;
margin-top: 10px;
height: 35px;
border: blueviolet;
"
:loading="loading"
......
......@@ -6,19 +6,16 @@
<a-form-item label="选择商品" name="subject" :rules="rulesRef.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: 100%"
:options="optionss.map((item:any,index:number) => ({ value: item.goodsid, label: item.subject,index:index }))"
@change="onSelectss"
>
</a-select>
<a-select v-model:value="formState.subject" :default-active-first-option="false" mode="multiple" style="width: 100%" placeholder="请选择商品" @focus="onSubSearch" @search="onSubSearch" @select="onSelectss" @popupScroll="popupScroll">
<a-select-option v-for="item,index in optionss" :itemKey="item" :value="item.goodsid" :label="index" >
{{item.subject}}
</a-select-option>
</a-select>
</div>
</a-form-item>
<a-form-item label="项目描述" name="shortname" :label-col="{ span: 2 }" labelAlign="left"
:rules="rulesRef.shortname">
<a-input v-model:value="formState.shortname" placeholder="请输入商品描述" />
<a-input v-model:value="formState.shortname" placeholder="请输入商品描述" :disabled="true" />
</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">
......@@ -96,12 +93,12 @@
</div>
</template>
<script lang="ts" setup>
import { reactive, ref, defineEmits, defineExpose, toRaw, onMounted, watch,toRefs } from "vue";
import { reactive, ref, defineEmits, defineExpose, toRaw, watch,toRefs } from "vue";
import dayjs, { Dayjs } from 'dayjs';
import locale from 'ant-design-vue/es/date-picker/locale/zh_CN';
import { message} from "ant-design-vue";
import { Form } from 'ant-design-vue';
import { onSelectGoods,onCreateGoodsPay,onfindWX,onfindAli } from '@/api/index'
import { onCreateGoodsPay,onfindWX,onfindAli,onFindbyLikeName } from '@/api/index'
import { getUid } from "@/utils/userInfo";
import moment from 'moment';
const useForm = Form.useForm;
......@@ -116,10 +113,21 @@ interface FormState {
fullphone:boolean,
remark:string,
}
let formState = ref<FormState>({
subject: [],
shortname: '',
payment: '',
paymentmodel: '0',
checked:false,
starttime:'',
expireendtime:'',
fullphone:false,
remark:''
});
const visible = ref<boolean>(false);
const list = ref<any>([])
const optionss = ref<any>([])
let goodspayditch = ref([])
let goodspayditch = ref<any>([])
const props = defineProps();
const dateFormat = 'YYYY/MM/DD';
const endvalue = ref<Dayjs>(dayjs('10:00', 'HH:mm'));
......@@ -131,20 +139,13 @@ const optionsWithDisabled = [
];
const checkboxValue = ref<any>([])
const onSelectss =(value:any, option:any)=>{
formState.subject = option
formState.value = {
...option.itemKey
}
formState.value.paymentmodel = formState.value.paymentmodel+''
}
const emit = defineEmits(['onBack']);
const formState = reactive<FormState>({
subject: [],
shortname: '',
payment: '',
paymentmodel: '0',
checked:false,
starttime:'',
expireendtime:'',
fullphone:false,
remark:''
});
let price = ref(0)
let priceSet = ref(0)
const modalvalue = ref<any>('0')
......@@ -173,20 +174,20 @@ const onSubmit = () => {
validate()
.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})
const expireendtime = (moment(toRaw(formState.value).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.value).goodsid})
const prarms = {
subject:toRaw(formState).subject.label,
shortname:toRaw(formState).shortname,
paymentmodel:toRaw(formState).paymentmodel,
fullphone:toRaw(formState).paymentmodel?0:1,
subject:toRaw(formState.value).subject,
shortname:toRaw(formState.value).shortname,
paymentmodel:toRaw(formState.value).paymentmodel,
fullphone:toRaw(formState.value).paymentmodel?1:0,
expireendtime:expireendtime,
starttime: moment(new Date()).format('YYYY-MM-DDTHH:mm:[00][Z]'),
goodsid: toRaw(formState).subject.value,
goodsid: toRaw(formState.value).goodsid,
goodspayditch:goodspayditch.value,
payment:formState.paymentmodel == '1'?price.value*100:priceSet.value*100,
payment:formState.value.paymentmodel == '1'?price.value*100:priceSet.value*100,
uid,
remark:toRaw(formState).remark
remark:toRaw(formState.value).remark
}
const data:any = await onCreateGoodsPay(prarms)
if(data.state === 1){
......@@ -221,7 +222,22 @@ const onSet = async(index:string)=>{
list.value = data.data;
showModal()
}
const popupScroll = ()=>{
console.log(1);
}
const onSubSearch = async(value:any)=>{
const uid = getUid();
const params = {
name: '',
page:1,
size:10,
uid,
};
const data = await onFindbyLikeName(params);
optionss.value = data.data.goods
}
const onSelectCheckboxValue = async(e:any,index:any)=>{
index = index+1
const uid =getUid()
let data:any ={}
......@@ -245,21 +261,15 @@ const hideModal = () => {
goodspayditch.value[radioValue.paytype-1] = {
appointpay: radioValue.id,
goodsid: radioValue.id,
goodspayid: formState.subject.value,
goodspayid: formState.value.goodsid,
optpay: radioValue.paytype,
payname: radioValue.name,
name: radioValue.name,
random: '1',
status: radioValue.status
}
listValue.value[radioValue.paytype-1] = radioValue
visible.value = false;
};
onMounted(async () => {
const uid = getUid()
const data = await onSelectGoods(uid)
optionss.value = data.data
return optionss
})
watch(formState,(newVal:any) => {
if(newVal.paymentmodel =='0'){
price.value = optionss.value[newVal.subject.index].price/100
......@@ -267,23 +277,25 @@ watch(formState,(newVal:any) => {
})
defineExpose({
optionss,
value1: ref<Dayjs>(),
onSelect,
endvalue,
price,
priceSet,
dateFormat,
visible,
list,
modalvalue,
optionss,
value1: ref<Dayjs>(),
formState,
onSelect,
disabledDate,
endvalue,
...toRefs(checkboxValue),
onChangeRadioName,
onSet,
visible,
showModal,
hideModal,
list,
modalvalue,
onSelectCheckboxValue,
popupScroll,
emit
});
......
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