Commit 28d6f871 by liuliufashi

push

parent 43f55f51
...@@ -124,17 +124,23 @@ export const onfindWX = async(uid:any)=>{ ...@@ -124,17 +124,23 @@ export const onfindWX = async(uid:any)=>{
method:'post', method:'post',
}); });
} }
export const onSelectGoods = async(uid:any)=>{ export const onSelectGoods = async(data:any)=>{
return await request({ 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', 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)=>{ export const onfindby = async(params:any)=>{
return await request({ 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', method:'post',
}); });
} }
......
...@@ -57,7 +57,7 @@ const routes: Array<RouteRecordRaw> = [ ...@@ -57,7 +57,7 @@ const routes: Array<RouteRecordRaw> = [
path: '/home/payinfo', path: '/home/payinfo',
name: '订单详情', name: '订单详情',
meta:{ meta:{
icon:'icon-fencengpeizhi' icon:'icon-gouwuchekong'
}, },
component: ()=>import('@/views/pay-info/index.vue') component: ()=>import('@/views/pay-info/index.vue')
}, },
......
...@@ -57,7 +57,7 @@ ...@@ -57,7 +57,7 @@
</div> </div>
</a-form-item> </a-form-item>
<a-form-item name="price" :wrapper-col="{ offset: 0, span: 2 }" label="商品售价" <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> <div>
<a-radio-group v-model:value="value" @change="onSelectPlain"> <a-radio-group v-model:value="value" @change="onSelectPlain">
<a-radio value="0">免费</a-radio> <a-radio value="0">免费</a-radio>
...@@ -288,7 +288,9 @@ const onEdithandleChange = (info: any) => { ...@@ -288,7 +288,9 @@ const onEdithandleChange = (info: any) => {
} }
}; };
const onSelectPlain = (e: any) => { const onSelectPlain = (e: any) => {
formState.price = "1" if(e.target.value == '0'){
formState.price = "1"
}
value.value = e.target.value; value.value = e.target.value;
}; };
......
...@@ -54,7 +54,7 @@ ...@@ -54,7 +54,7 @@
<a-form-item label="选择商品:" labelAlign="left" :wrapper-col="{ offset: 0, span: 8 }" name="sub" :rules="rulesRef.sub" <a-form-item label="选择商品:" labelAlign="left" :wrapper-col="{ offset: 0, span: 8 }" name="sub" :rules="rulesRef.sub"
:label-col="{ span: 2 }"> :label-col="{ span: 2 }">
<div style="width:100%;display: flex;align-items: center;"> <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"> <a-select-option v-for="item in optionss" :itemKey="item" :value="item.goodsid" :label="item.goodsid">
{{item.subject}} {{item.subject}}
</a-select-option> </a-select-option>
...@@ -66,7 +66,7 @@ ...@@ -66,7 +66,7 @@
</div> </div>
</a-form-item> </a-form-item>
<a-form-item name="price" labelAlign="left" :wrapper-col="{ offset: 0, span: 2 }" label="商品售价" <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> <div>
<a-radio-group v-model:value="value" @change="onSelectPlain"> <a-radio-group v-model:value="value" @change="onSelectPlain">
<a-radio value="0">免费</a-radio> <a-radio value="0">免费</a-radio>
...@@ -103,7 +103,7 @@ import { message, UploadProps, Upload } from "ant-design-vue"; ...@@ -103,7 +103,7 @@ import { message, UploadProps, Upload } from "ant-design-vue";
import { Form } from 'ant-design-vue'; import { Form } from 'ant-design-vue';
import { QuillEditor } from '@vueup/vue-quill' import { QuillEditor } from '@vueup/vue-quill'
import '@vueup/vue-quill/dist/vue-quill.snow.css'; 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"; import { getUid } from "@/utils/userInfo";
const useForm = Form.useForm; const useForm = Form.useForm;
const upImage = ref<any>(null) const upImage = ref<any>(null)
...@@ -233,30 +233,14 @@ const rulesRef = reactive({ ...@@ -233,30 +233,14 @@ const rulesRef = reactive({
message: '请输入商品简介!', message: '请输入商品简介!',
}, },
], ],
body: [
{
required: true,
message: '请输入商品详情!',
},
],
picurl: [ picurl: [
{ {
validateOnRuleChange: true, validateOnRuleChange: true,
message: '请上传商品示图!', message: '请上传商品示图!',
}, },
], ],
markingprice: [
{
required: true,
message: '请输入划线价格',
},
],
price: [
{
required: true,
message: '请输入售卖价格',
},
],
sub: [ sub: [
{ {
required: true, required: true,
...@@ -293,36 +277,55 @@ const handleChange = (info: any) => { ...@@ -293,36 +277,55 @@ const handleChange = (info: any) => {
fileList.value = resFileList; fileList.value = resFileList;
}; };
const onSelectPlain = (e: any) => { const onSelectPlain = (e: any) => {
formState.price = "0" if(e.target.value == '0'){
formState.price = "1"
}
// free 0 // free 0
value.value = e.target.value; value.value = e.target.value;
}; };
const handleChanges = (value: string) => { const handleChanges = async(value: string) => {
console.log(`selected ${value}`); 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 => { const beforeUpload: UploadProps['beforeUpload'] = file => {
if (!(file.type.includes('png') || file.type.includes('jpeg') || file.type.includes('jpg'))) { if (!(file.type.includes('png') || file.type.includes('jpeg') || file.type.includes('jpg'))) {
message.error(`${file.name}不是png/jpef/jpg格式`); message.error(`${file.name}不是png/jpef/jpg格式`);
return Upload.LIST_IGNORE; return Upload.LIST_IGNORE;
} }
}; };
const popupScroll =()=>{
console.log(1);
}
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 = {
body: fromData.body, body: fromData.body,
remember: fromData.remember, remember: fromData.remember,
shortname: fromData.shortname, shortname: fromData.shortname,
subject: fromData.subject, subject: fromData.subject,
uid, uid,
parent: 1, parent: 1,
markingprice:fromData.markingprice*100, markingprice:fromData.markingprice*100,
price:fromData.price*100, price:fromData.price*100,
picurl:fromData.picurl picurl:fromData.picurl,
sub:fromData.sub
} }
const data: any = await onCreateGoods(JSON.stringify(prarms)) const data: any = await onCreateGoods(JSON.stringify(prarms))
if (data.state === 1) { if (data.state === 1) {
...@@ -372,42 +375,38 @@ watch(isEditfileList, (newVal:any) => { ...@@ -372,42 +375,38 @@ watch(isEditfileList, (newVal:any) => {
formState.body = str formState.body = str
} }
}) })
onMounted(async () => {
const uid = getUid()
const data = await onSelectGoods(uid)
optionss.value = data.data
return options
})
defineExpose({ defineExpose({
optionss,
plainOptions,
value,
crossedPrice,
sellingPrice,
textarea,
optionsEdit,
formState, formState,
upImage, upImage,
onFinish, previewTitle,
onFinishFailed, options,
content,
previewVisible, previewVisible,
previewImage, previewImage,
fileList, fileList,
onFinish,
onFinishFailed,
handleCancel, handleCancel,
handlePreview, handlePreview,
previewTitle,
options,
content,
handleChange, handleChange,
plainOptions,
value,
onSelectPlain, onSelectPlain,
crossedPrice,
sellingPrice,
onSubmit, onSubmit,
handleChanges, handleChanges,
optionss,
beforeUpload, beforeUpload,
textarea,
optionsEdit,
textChange, textChange,
onEditorFocus, onEditorFocus,
onEditorBlur, onEditorBlur,
onEditorChange onEditorChange,
popupScroll
}); });
</script> </script>
......
...@@ -3,12 +3,12 @@ ...@@ -3,12 +3,12 @@
<div class="good-search" v-if="!isShowGoods"> <div class="good-search" v-if="!isShowGoods">
<div> <div>
<a-radio-group v-model:value="status"> <a-radio-group v-model:value="status">
<a-radio-button value="0" class="status" @click="onSearch">全部</a-radio-button> <a-radio-button value="3" class="status" @click="onSearch">全部</a-radio-button>
<a-radio-button value="1" class="status" @click="onSearch">正常</a-radio-button> <a-radio-button value="1" class="status" @click="onSearch">正常</a-radio-button>
<a-radio-button value="2" class="status" @click="onSearch">已下架</a-radio-button> <a-radio-button value="2" class="status" @click="onSearch">已下架</a-radio-button>
</a-radio-group> </a-radio-group>
<a-input-search v-model:value="value" placeholder="请输入商品名称" style="width: 200px; margin-left: 10px" <a-input-search v-model:value="value" placeholder="请输入商品名称" style="width: 200px; margin-left: 10px"
@search="onSearch" /> @search="onSearchName" />
</div> </div>
<div class="good-cad"> <div class="good-cad">
<a-button type="primary" class="mr10" @click="onGoods(0)">新建商品</a-button> <a-button type="primary" class="mr10" @click="onGoods(0)">新建商品</a-button>
...@@ -16,7 +16,7 @@ ...@@ -16,7 +16,7 @@
</div> </div>
</div> </div>
<div class="goods-list" v-if="!isShowGoods"> <div class="goods-list" v-if="!isShowGoods">
<a-table :columns="columns" :data-source="list"> <a-table :columns="columns" :data-source="list" :pagination="pagination" @change="tableChange">
<template #bodyCell="{ column, record }"> <template #bodyCell="{ column, record }">
<template v-if="column.key === 'tags'"> <template v-if="column.key === 'tags'">
<a-button type="primary" @click="onEdit(record)">编辑</a-button> <a-button type="primary" @click="onEdit(record)">编辑</a-button>
...@@ -26,7 +26,7 @@ ...@@ -26,7 +26,7 @@
</a-popconfirm> </a-popconfirm>
</template> </template>
<template v-if="column.key === 'price'"> <template v-if="column.key === 'price'">
<div>{{record.price/100}}</div> <div>{{ record.price / 100 }}</div>
</template> </template>
</template> </template>
</a-table> </a-table>
...@@ -47,25 +47,25 @@ ...@@ -47,25 +47,25 @@
<GoodsBagSubs :props="{ propsData }" v-else @onBack="onBack"> <GoodsBagSubs :props="{ propsData }" v-else @onBack="onBack">
</GoodsBagSubs> </GoodsBagSubs>
</div> </div>
<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"
@Cancel="handleCancel" @handleChange="handleChange"> :maskClosable="false" @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="subject" :rules="[{ required: true, message: '请输入商品名称!' }]" :maxlength="200" <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" maxlength="30"/> <a-input v-model:value="modelRef.subject" maxlength="30" />
</a-form-item> </a-form-item>
<a-form-item label="商品简介" name="shortname" :rules="[{ required: true, message: '请输入商品简介!' }]" :maxlength="200" <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" maxlength="50"/> <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"
:label-col="{ span: 2 }"> :label-col="{ span: 2 }">
<div class="clearfix"> <div class="clearfix">
<div style="display: flex;"> <div style="display: flex;">
<a-upload v-model:file-list="fileList" :maxCount="1" action="http://43.142.42.187:8899/file/upload" list-type="picture-card" <a-upload v-model:file-list="fileList" :maxCount="1" action="http://43.142.42.187:8899/file/upload"
@preview="handlePreview" @change="handleChange"> list-type="picture-card" @preview="handlePreview" @change="handleChange">
<div v-if="fileList.length < 8"> <div v-if="fileList.length < 8">
<plus-outlined /> <plus-outlined />
<div style="margin-top: 8px">Upload</div> <div style="margin-top: 8px">Upload</div>
...@@ -80,20 +80,20 @@ ...@@ -80,20 +80,20 @@
</div> </div>
</a-form-item> </a-form-item>
<a-form-item label="商品详情" name="body" labelAlign="left" :label-col="{ span: 2 }"> <a-form-item label="商品详情" name="body" labelAlign="left" :label-col="{ span: 2 }">
<div style="position: relative;" > <div style="position: relative;">
<div style="display: none;"> <div style="display: none;">
<a-upload class="clearfix-up-1" action="http://43.142.42.187:8899/file/upload" list-type="picture-card" :maxCount="1" <a-upload class="clearfix-up-1" action="http://43.142.42.187:8899/file/upload" list-type="picture-card"
@preview="onHandlePreview" @change="onEdithandleChange" :before-upload="onBeforeUpload"> :maxCount="1" @preview="onHandlePreview" @change="onEdithandleChange" :before-upload="onBeforeUpload">
<div ref="upImage" style="width:30px;height:30px;border: none;"><i class="iconfont icon-tupian" <div ref="upImage" style="width:30px;height:30px;border: none;"><i class="iconfont icon-tupian"
style="font-size:28px;"></i> </div> style="font-size:28px;"></i> </div>
</a-upload> </a-upload>
</div> </div>
<QuillEditor style="height:200px" ref="myQuillEditor" :options="options" :content="modelRef.body" <QuillEditor style="height:200px" ref="myQuillEditor" :options="options" :content="modelRef.body"
content-type="html" @update:content="textChange" @focus="onEditorFocus($event)" content-type="html" @update:content="textChange" @focus="onEditorFocus($event)"
@blur="onEditorBlur($event)" @change="onEditorChange($event)" > @blur="onEditorBlur($event)" @change="onEditorChange($event)">
</QuillEditor> </QuillEditor>
</div> </div>
<div class="editor-text"> <div class="editor-text">
<p>1、商品描述需符合《中华人民共和国广告法》</p> <p>1、商品描述需符合《中华人民共和国广告法》</p>
...@@ -102,20 +102,6 @@ ...@@ -102,20 +102,6 @@
</p> </p>
</div> </div>
</a-form-item> </a-form-item>
<a-form-item label="选择商品" :wrapper-col="{ offset: 0, span: 8 }" name="sub" :label-col="{ span: 2 }"
v-if="modelRef.parent == 0">
<div style="width:100%;display: flex;align-items: center;">
<a-select v-model:value="modelRef.sub" mode="multiple" style="width: 100%" placeholder="请选择商品">
<a-select-option v-for="item in optionss" :itemKey="item" :value="item.goodsid" :label="item.goodsid">
{{ item.subject }}
</a-select-option>
</a-select>
<a-button type="primary" style="margin-left:20px;">
添加
</a-button>
<div class="please">请添加至少两个商品</div>
</div>
</a-form-item>
<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>
...@@ -126,23 +112,21 @@ ...@@ -126,23 +112,21 @@
</div> </div>
</a-form-item> </a-form-item>
<a-form-item :wrapper-col="{ offset: 2, span: 7 }" v-if="modelRef.free!== '0'"> <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
:formatter="value => `${value}`.replace(/\B(?=(\d{3})+(?!\d))/g, ',')" :formatter="value => `${value}`.replace(/\B(?=(\d{3})+(?!\d))/g, ',')"
:parser="value => value.replace(/\$\s?|(,*)/g, '')" :parser="value => value.replace(/\$\s?|(,*)/g, '')" v-model:value="modelRef.markingprice" />
v-model:value="modelRef.markingprice" />
</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: '请输入商品价格!' }]" v-if="modelRef.free!== '0'" > :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
:formatter="value => `${value}`.replace(/\B(?=(\d{3})+(?!\d))/g, ',')" :formatter="value => `${value}`.replace(/\B(?=(\d{3})+(?!\d))/g, ',')"
:parser="value => value.replace(/\$\s?|(,*)/g, '')" :parser="value => value.replace(/\$\s?|(,*)/g, '')" v-model:value="modelRef.price" />
v-model:value="modelRef.price" />
</div> </div>
</a-form-item> </a-form-item>
</a-form> </a-form>
...@@ -150,14 +134,14 @@ ...@@ -150,14 +134,14 @@
</div> </div>
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
import { ref, reactive, defineExpose, onMounted,watch, toRaw } from "vue"; import { ref, reactive, defineExpose, onMounted, watch, toRaw } from "vue";
import { LeftOutlined } from "@ant-design/icons-vue"; import { LeftOutlined } from "@ant-design/icons-vue";
import GoodsBags from "./components/goods/index.vue"; import GoodsBags from "./components/goods/index.vue";
import GoodsBagSubs from "./components/goodsubs/index.vue"; import GoodsBagSubs from "./components/goodsubs/index.vue";
import { onSelectGoods, onfindby, onUpdateGoods } from "@/api/index"; import { onSelectGoods, onUpdateGoods,onFindbyLikeName } from "@/api/index";
import { getUid } from "@/utils/userInfo"; import { getUid } from "@/utils/userInfo";
import { Form, message, Upload, UploadProps } from 'ant-design-vue'; import { Form, message, Upload, UploadProps } from 'ant-design-vue';
import { Quill, QuillEditor } from '@vueup/vue-quill' import { QuillEditor } from '@vueup/vue-quill'
import '@vueup/vue-quill/dist/vue-quill.snow.css'; import '@vueup/vue-quill/dist/vue-quill.snow.css';
const useForm = Form.useForm; const useForm = Form.useForm;
...@@ -206,6 +190,14 @@ const columns = [ ...@@ -206,6 +190,14 @@ const columns = [
dataIndex: "tags", dataIndex: "tags",
}, },
]; ];
const pagination = ref({
current_page:1,
total:0,
defaultPageSize:10,
showSizeChanger:true,
pageSizeOptions: ['5', '10', '15', '20'],
onShowSizeChange:(current:any, pageSize:any)=>{pageSize = pageSize;}
})
interface props { interface props {
isCad: Number; isCad: Number;
} }
...@@ -223,9 +215,9 @@ let options = reactive({ ...@@ -223,9 +215,9 @@ let options = reactive({
], ],
handlers: { handlers: {
image: function (value: any) { image: function (value: any) {
if(value){ if (value) {
upImage.value.click() upImage.value.click()
} }
}, },
}, },
}, },
...@@ -250,19 +242,17 @@ const propsData = reactive<props>({ ...@@ -250,19 +242,17 @@ const propsData = reactive<props>({
let isEditfileList = ref<any>([ let isEditfileList = ref<any>([
]); ]);
const fileList = ref<any>([ const fileList = ref<any>([
{ {
uid: '-1', uid: '-1',
name: 'image.png', name: 'image.png',
status: 'done', status: 'done',
url: 'https://zos.alipayobjects.com/rmsportal/jkjgkEfvpUPVyRjUImniVslZfWPnJuuZ.png', url: 'https://zos.alipayobjects.com/rmsportal/jkjgkEfvpUPVyRjUImniVslZfWPnJuuZ.png',
}, },
]); ]);
const isShowGoods = ref<Boolean>(false); const isShowGoods = ref<Boolean>(false);
const modalText = ref<string>("Content of the modal"); const modalText = ref<string>("Content of the modal");
const visible = ref<boolean>(false); const visible = ref<boolean>(false);
const confirmLoading = ref<boolean>(false); const confirmLoading = ref<boolean>(false);
const showModal = () => { const showModal = () => {
visible.value = true; visible.value = true;
}; };
...@@ -277,14 +267,14 @@ const handleOk = async () => { ...@@ -277,14 +267,14 @@ const handleOk = async () => {
shortname: modelRef.value.shortname, shortname: modelRef.value.shortname,
picurl: fileList.value[0].url, picurl: fileList.value[0].url,
body: modelRef.value.body, body: modelRef.value.body,
price: modelRef.value.price*100, price: modelRef.value.price * 100,
markingprice: modelRef.value.markingprice*100, markingprice: modelRef.value.markingprice * 100,
status: modelRef.value.status, status: modelRef.value.status,
parent: modelRef.value.parent, parent: modelRef.value.parent,
free: modelRef.value.sellingmodel, free: modelRef.value.sellingmodel,
sub: [0] sub: [0]
} }
const data:any = await onUpdateGoods(prarms); const data: any = await onUpdateGoods(prarms);
if (data.state === 1) { if (data.state === 1) {
visible.value = false; visible.value = false;
modelRef.value = {} modelRef.value = {}
...@@ -295,14 +285,47 @@ const handleCancel = () => { ...@@ -295,14 +285,47 @@ const handleCancel = () => {
modelRef.value = {} modelRef.value = {}
visible.value = false; visible.value = false;
} }
const onSearch = async () => { const onSearch = async (e:any) => {
status.value = e.target.value
const uid = getUid();
const prarms: any = {
size: 10,
page: 1,
strtus: e.target.value,
uid,
}
const data = await onSelectGoods(prarms);
list.value = data.data;
};
const tableChange=async(e:any)=>{
let queryData = {
current_page:e.current,//当前页数
per_page:e.pageSize//每页显示条数
};
const uid = getUid();
const prarms: any = {
size: queryData.current_page,
page: queryData.per_page,
strtus:status.value,
uid,
}
const data = await onSelectGoods(prarms);
list.value = data.data;
}
const onSearchName = async (e:any) => {
const uid = getUid();
const params = { const params = {
status: status.value,
name: value.value, name: value.value,
uid: getUid(), size:10,
page:1,
uid,
}; };
const data = await onfindby(params); console.log(params,'params');
list.value = data.data;
const data = await onFindbyLikeName(params);
list.value = data.data.goods;
}; };
const onGoods = (e: Number) => { const onGoods = (e: Number) => {
propsData.isCad = e; propsData.isCad = e;
...@@ -310,30 +333,28 @@ const onGoods = (e: Number) => { ...@@ -310,30 +333,28 @@ const onGoods = (e: Number) => {
}; };
const onBack = async (e: Number) => { const onBack = async (e: Number) => {
isShowGoods.value = !isShowGoods.value; isShowGoods.value = !isShowGoods.value;
const uid = getUid(); await onSearch({target:{value:'3'}})
const data = await onSelectGoods(uid);
list.value = data.data;
}; };
const onEdit = (e: any) => { const onEdit = (e: any) => {
visible.value = !visible.value; visible.value = !visible.value;
modelRef.value.parent = e.parent modelRef.value.parent = e.parent
modelRef.value.goodsid = e.goodsid modelRef.value.goodsid = e.goodsid
modelRef.value.picurl = e.picurl modelRef.value.picurl = e.picurl
modelRef.value.sellamount = e.sellamount modelRef.value.sellamount = e.sellamount
modelRef.value.sellcount = e.sellcount modelRef.value.sellcount = e.sellcount
modelRef.value.shortname = e.shortname modelRef.value.shortname = e.shortname
modelRef.value.status = e.status modelRef.value.status = e.status
modelRef.value.subject = e.subject modelRef.value.subject = e.subject
modelRef.value.tenantid = e.tenantid modelRef.value.tenantid = e.tenantid
modelRef.value.userid = e.userid modelRef.value.userid = e.userid
modelRef.value.body = e.body modelRef.value.body = e.body
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 modelRef.value.free = e.free
fileList.value[0].url = e.picurl fileList.value[0].url = e.picurl
}; };
const { validate } = useForm( const { validate } = useForm(
modelRef, modelRef,
); );
const onSelectPlain = (e: any) => { const onSelectPlain = (e: any) => {
...@@ -358,11 +379,16 @@ const onDel = async (e: any) => { ...@@ -358,11 +379,16 @@ const onDel = async (e: any) => {
const data = await onUpdateGoods(e); const data = await onUpdateGoods(e);
await init(); await init();
}; };
const init = async () => { const init = async () => {
const uid = getUid(); const uid = getUid();
const data = await onSelectGoods(uid); const prarms: any = {
const datas = await onSelectGoods(uid) size: 10,
optionss.value = datas.data page: 1,
strtus: 0,
uid,
}
const data = await onSelectGoods(prarms);
list.value = data.data; list.value = data.data;
}; };
const textChange = (e: any) => { const textChange = (e: any) => {
...@@ -411,7 +437,7 @@ const handlePreview = async (file: any) => { ...@@ -411,7 +437,7 @@ const handlePreview = async (file: any) => {
previewImage.value = file.url || file.preview; previewImage.value = file.url || file.preview;
previewVisible.value = true; previewVisible.value = true;
previewTitle.value = previewTitle.value =
file.name || file.url.substring(file.url.lastIndexOf("/") + 1); file.name || file.url.substring(file.url.lastIndexOf("/") + 1);
}; };
const beforeUpload: UploadProps['beforeUpload'] = file => { const beforeUpload: UploadProps['beforeUpload'] = file => {
if (!(file.type.includes('png') || file.type.includes('jpeg') || file.type.includes('jpg'))) { if (!(file.type.includes('png') || file.type.includes('jpeg') || file.type.includes('jpg'))) {
...@@ -429,10 +455,8 @@ const handleChange = (info: any) => { ...@@ -429,10 +455,8 @@ const handleChange = (info: any) => {
// 2. read from response and show file link // 2. read from response and show file link
resFileList = resFileList.map((file) => { resFileList = resFileList.map((file) => {
if (file.response) { if (file.response) {
console.log(fileList,'fileList'); console.log(fileList, 'fileList');
} }
return file; return file;
}); });
...@@ -465,6 +489,8 @@ defineExpose({ ...@@ -465,6 +489,8 @@ defineExpose({
previewVisible, previewVisible,
textarea, textarea,
upImage, upImage,
pagination,
tableChange,
textChange, textChange,
onEditorFocus, onEditorFocus,
beforeUpload, beforeUpload,
......
...@@ -25,7 +25,7 @@ ...@@ -25,7 +25,7 @@
@click="goNewPage(item)" @click="goNewPage(item)"
> >
<div style="display: flex; align-items: center" > <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> <span class="nav-text" >{{ item.name }}</span>
</div> </div>
</a-menu-item> </a-menu-item>
......
...@@ -53,7 +53,8 @@ ...@@ -53,7 +53,8 @@
style=" style="
margin-left: 20px; margin-left: 20px;
width: 350px; width: 350px;
height: 50px; margin-top: 10px;
height: 35px;
border: blueviolet; border: blueviolet;
" "
:loading="loading" :loading="loading"
......
...@@ -6,19 +6,16 @@ ...@@ -6,19 +6,16 @@
<a-form-item label="选择商品" name="subject" :rules="rulesRef.subject" :label-col="{ span: 2 }" <a-form-item label="选择商品" name="subject" :rules="rulesRef.subject" :label-col="{ span: 2 }"
labelAlign="left"> labelAlign="left">
<div style="width:100%;display: flex;align-items: center;"> <div style="width:100%;display: flex;align-items: center;">
<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">
v-model:value="formState.subject" <a-select-option v-for="item,index in optionss" :itemKey="item" :value="item.goodsid" :label="index" >
style="width: 100%" {{item.subject}}
:options="optionss.map((item:any,index:number) => ({ value: item.goodsid, label: item.subject,index:index }))" </a-select-option>
@change="onSelectss" </a-select>
>
</a-select>
</div> </div>
</a-form-item> </a-form-item>
<a-form-item label="项目描述" name="shortname" :label-col="{ span: 2 }" labelAlign="left" <a-form-item label="项目描述" name="shortname" :label-col="{ span: 2 }" labelAlign="left"
:rules="rulesRef.shortname"> :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>
<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.paymentmodel" name="radioGroup" class="pay">
...@@ -96,12 +93,12 @@ ...@@ -96,12 +93,12 @@
</div> </div>
</template> </template>
<script lang="ts" setup> <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 dayjs, { Dayjs } from 'dayjs';
import locale from 'ant-design-vue/es/date-picker/locale/zh_CN'; import locale from 'ant-design-vue/es/date-picker/locale/zh_CN';
import { message} from "ant-design-vue"; import { message} from "ant-design-vue";
import { Form } 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 { getUid } from "@/utils/userInfo";
import moment from 'moment'; import moment from 'moment';
const useForm = Form.useForm; const useForm = Form.useForm;
...@@ -116,10 +113,21 @@ interface FormState { ...@@ -116,10 +113,21 @@ interface FormState {
fullphone:boolean, fullphone:boolean,
remark:string, remark:string,
} }
let formState = ref<FormState>({
subject: [],
shortname: '',
payment: '',
paymentmodel: '0',
checked:false,
starttime:'',
expireendtime:'',
fullphone:false,
remark:''
});
const visible = ref<boolean>(false); const visible = ref<boolean>(false);
const list = ref<any>([]) const list = ref<any>([])
const optionss = ref<any>([]) const optionss = ref<any>([])
let goodspayditch = ref([]) let goodspayditch = ref<any>([])
const props = defineProps(); const props = defineProps();
const dateFormat = 'YYYY/MM/DD'; const dateFormat = 'YYYY/MM/DD';
const endvalue = ref<Dayjs>(dayjs('10:00', 'HH:mm')); const endvalue = ref<Dayjs>(dayjs('10:00', 'HH:mm'));
...@@ -131,20 +139,13 @@ const optionsWithDisabled = [ ...@@ -131,20 +139,13 @@ const optionsWithDisabled = [
]; ];
const checkboxValue = ref<any>([]) const checkboxValue = ref<any>([])
const onSelectss =(value:any, option: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 emit = defineEmits(['onBack']);
const formState = reactive<FormState>({
subject: [],
shortname: '',
payment: '',
paymentmodel: '0',
checked:false,
starttime:'',
expireendtime:'',
fullphone:false,
remark:''
});
let price = ref(0) let price = ref(0)
let priceSet = ref(0) let priceSet = ref(0)
const modalvalue = ref<any>('0') const modalvalue = ref<any>('0')
...@@ -173,20 +174,20 @@ const onSubmit = () => { ...@@ -173,20 +174,20 @@ const onSubmit = () => {
validate() validate()
.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.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).subject.value}) goodspayditch.value.map((item:any)=>{return item.goodsid = toRaw(formState.value).goodsid})
const prarms = { const prarms = {
subject:toRaw(formState).subject.label, subject:toRaw(formState.value).subject,
shortname:toRaw(formState).shortname, shortname:toRaw(formState.value).shortname,
paymentmodel:toRaw(formState).paymentmodel, paymentmodel:toRaw(formState.value).paymentmodel,
fullphone:toRaw(formState).paymentmodel?0:1, fullphone:toRaw(formState.value).paymentmodel?1:0,
expireendtime:expireendtime, expireendtime:expireendtime,
starttime: moment(new Date()).format('YYYY-MM-DDTHH:mm:[00][Z]'), starttime: moment(new Date()).format('YYYY-MM-DDTHH:mm:[00][Z]'),
goodsid: toRaw(formState).subject.value, goodsid: toRaw(formState.value).goodsid,
goodspayditch:goodspayditch.value, 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, uid,
remark:toRaw(formState).remark remark:toRaw(formState.value).remark
} }
const data:any = await onCreateGoodsPay(prarms) const data:any = await onCreateGoodsPay(prarms)
if(data.state === 1){ if(data.state === 1){
...@@ -221,7 +222,22 @@ const onSet = async(index:string)=>{ ...@@ -221,7 +222,22 @@ const onSet = async(index:string)=>{
list.value = data.data; list.value = data.data;
showModal() 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)=>{ const onSelectCheckboxValue = async(e:any,index:any)=>{
index = index+1 index = index+1
const uid =getUid() const uid =getUid()
let data:any ={} let data:any ={}
...@@ -245,21 +261,15 @@ const hideModal = () => { ...@@ -245,21 +261,15 @@ const hideModal = () => {
goodspayditch.value[radioValue.paytype-1] = { goodspayditch.value[radioValue.paytype-1] = {
appointpay: radioValue.id, appointpay: radioValue.id,
goodsid: radioValue.id, goodsid: radioValue.id,
goodspayid: formState.subject.value, goodspayid: formState.value.goodsid,
optpay: radioValue.paytype, optpay: radioValue.paytype,
payname: radioValue.name, name: radioValue.name,
random: '1', random: '1',
status: radioValue.status status: radioValue.status
} }
listValue.value[radioValue.paytype-1] = radioValue listValue.value[radioValue.paytype-1] = radioValue
visible.value = false; visible.value = false;
}; };
onMounted(async () => {
const uid = getUid()
const data = await onSelectGoods(uid)
optionss.value = data.data
return optionss
})
watch(formState,(newVal:any) => { watch(formState,(newVal:any) => {
if(newVal.paymentmodel =='0'){ if(newVal.paymentmodel =='0'){
price.value = optionss.value[newVal.subject.index].price/100 price.value = optionss.value[newVal.subject.index].price/100
...@@ -267,23 +277,25 @@ watch(formState,(newVal:any) => { ...@@ -267,23 +277,25 @@ watch(formState,(newVal:any) => {
}) })
defineExpose({ defineExpose({
optionss, endvalue,
value1: ref<Dayjs>(),
onSelect,
price, price,
priceSet, priceSet,
dateFormat, dateFormat,
visible,
list,
modalvalue,
optionss,
value1: ref<Dayjs>(),
formState,
onSelect,
disabledDate, disabledDate,
endvalue,
...toRefs(checkboxValue), ...toRefs(checkboxValue),
onChangeRadioName, onChangeRadioName,
onSet, onSet,
visible,
showModal, showModal,
hideModal, hideModal,
list,
modalvalue,
onSelectCheckboxValue, onSelectCheckboxValue,
popupScroll,
emit emit
}); });
......
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
</div> </div>
</div> </div>
<div style="margin-top: 10px;" v-if="isShow"> <div style="margin-top: 10px;" v-if="isShow">
<a-table :dataSource="list" :columns="columns"> <a-table :dataSource="list" :columns="columns" :pagination="pagination" @change="tableChange">
<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;">
...@@ -57,24 +57,26 @@ ...@@ -57,24 +57,26 @@
</div> </div>
<CreatePay @onBack="onBack"></CreatePay> <CreatePay @onBack="onBack"></CreatePay>
</div> </div>
<a-modal v-model:visible="visible" title="编辑" @ok="handleOk" :width="1000"> <a-modal v-model:visible="visible" title="编辑" @ok="handleOk" :width="1000" >
<a-form :model="formState" name="basic" :label-col="{ span: 8 }" :wrapper-col="{ span: 16 }" <a-form :model="formState" name="basic" :label-col="{ span: 8 }" :wrapper-col="{ span: 16 }"
autocomplete="off" @finish="onFinish" @finishFailed="onFinishFailed"> autocomplete="off" >
<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" :default-active-first-option="false" mode="multiple" style="width: 100%" placeholder="请选择商品" @focus="onSubSearch" @search="onSubSearch" @select="onSelect" @popupScroll="popupScroll">
:options="listArray.map((item:any, index:number) => ({ value: item.goodsid, label: item.subject,index:index }))" @change="onSelect"> <a-select-option v-for="item,index in listArray" :itemKey="item" :value="item.goodsid" :label="index" >
</a-select> <span>{{item.subject}}</span>
</a-select-option>
</a-select>
</div> </div>
</a-form-item> </a-form-item>
<a-form-item label="项目描述" name="shortname" :label-col="{ span: 2 }" labelAlign="left"> <a-form-item label="项目描述" name="shortname" :label-col="{ span: 2 }" labelAlign="left">
<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.payment" name="radioGroup" class="pay"> <a-radio-group v-model:value="formState.paymentmodel" 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;" :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>
...@@ -88,16 +90,9 @@ ...@@ -88,16 +90,9 @@
</a-form-item> </a-form-item>
<a-form-item label="支付前填写手机号" name="price" :label-col="{ span: 3 }" labelAlign="left"> <a-form-item label="支付前填写手机号" name="price" :label-col="{ span: 3 }" labelAlign="left">
<div style="display: flex;"> <div style="display: flex;">
<a-switch :checked="formState.fullphone === '0'" /> <a-switch v-model:checked="formState.fullphone" />
</div> </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="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 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"
...@@ -116,26 +111,21 @@ ...@@ -116,26 +111,21 @@
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
import { ref, defineExpose, onMounted, } from 'vue'; import { ref, defineExpose, onMounted,reactive } from 'vue';
import { SelectProps,message } from 'ant-design-vue'; import { SelectProps,message } from 'ant-design-vue';
import { getUid } from '@/utils/userInfo' import { getUid } from '@/utils/userInfo'
import moment from 'moment'; import moment from 'moment';
import { onUpdateGoodsPay, onfindby, onSelectGoods,onfindWX,onfindAli,onDelectgoodpay} from '@/api/index' import { onUpdateGoodsPay, onfindby,onfindWX,onfindAli,onDelectgoodpay,onFindbyLikeName} from '@/api/index'
import CreatePay from './components/createpay/index.vue' import CreatePay from './components/createpay/index.vue'
import dayjs, { Dayjs } from 'dayjs'; import dayjs, { Dayjs } from 'dayjs';
import useClipboard from 'vue-clipboard3' import useClipboard from 'vue-clipboard3'
import { LeftOutlined} from "@ant-design/icons-vue"; import { LeftOutlined} from "@ant-design/icons-vue";
const dateFormat = 'YYYY/MM/DD'; const dateFormat = 'YYYY/MM/DD';
let listValue = ref<any>([]) let listValue = ref<any>([])
const startvalue = ref<Dayjs>(dayjs('08:00', 'HH:mm')); const { toClipboard } = useClipboard()
const endvalue = ref<Dayjs>(dayjs('10:00', 'HH:mm'));
const { toClipboard } = useClipboard()
const disabledDate = (current: any) => { const disabledDate = (current: any) => {
return current && current < moment().startOf("day") return current && current < moment().startOf("day")
} }
const popupScroll = () => {
console.log('popupScroll');
};
const uid =getUid() const uid =getUid()
const value = ref<string>(''); const value = ref<string>('');
const checkboxValue = ref<any>([]) const checkboxValue = ref<any>([])
...@@ -144,7 +134,15 @@ const options = [...Array(25)].map((_, i) => ({ value: (i + 10).toString(36) + ( ...@@ -144,7 +134,15 @@ const options = [...Array(25)].map((_, i) => ({ value: (i + 10).toString(36) + (
let list = ref() let list = ref()
let listArray = ref<any>([]) let listArray = ref<any>([])
let isShow = ref(true) let isShow = ref(true)
let formState = ref<any>({}) let formState = ref<any>({
})
const pagination = reactive({
total:0,
defaultPageSize:10,
showSizeChanger:true,
pageSizeOptions: ['5', '10', '15', '20'],
onShowSizeChange:(current:any, pageSize:any)=>pageSize = pageSize
})
const optionsWithDisabled = [ const optionsWithDisabled = [
{ value: '微信', label: '1' }, { value: '微信', label: '1' },
{ label: '2', value: '支付宝' }, { label: '2', value: '支付宝' },
...@@ -201,15 +199,14 @@ const value5 = ref<any>() ...@@ -201,15 +199,14 @@ const value5 = ref<any>()
const showModal = () => { const showModal = () => {
visible.value = true; visible.value = true;
}; };
const handleOk =async(e: MouseEvent) => { const handleOk =async(e: MouseEvent) => {
const uid =getUid() const uid =getUid()
const starttime = moment(new Date()).format('YYYY-MM-DDTHH: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]'))
formState.value.fullphone = formState.value.fullphone?'1':'0'
const params={ const params={
...formState.value, ...formState.value,
uid, uid,
} }
const data:any = await onUpdateGoodsPay(params) const data:any = await onUpdateGoodsPay(params)
if(data.state == 1){ if(data.state == 1){
...@@ -218,39 +215,40 @@ const handleOk =async(e: MouseEvent) => { ...@@ -218,39 +215,40 @@ const handleOk =async(e: MouseEvent) => {
} }
}; };
const onEdit = (e: any) => { const onEdit = (e: any) => {
formState.value.subject =e.subject formState.value= {
formState.value.userid =e.userid ...e
formState.value.remark =e.remark }
formState.value.shortname =e.shortname
formState.value.status =e.status
formState.value.starttime =e.starttime
formState.value.goodspayditch =e.goodspayditch
formState.value.id =e.id
formState.value.payment =e.payment
formState.value.paymentmodel =e.paymentmodel
formState.value.fullphone =e.fullphone
formState.value.expiremillisecond =e.expiremillisecond
formState.value.fullphone =e.fullphone
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) 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)
value5.value = dayjs(moment(e.expireendtime).format(('HH:mm')), 'HH:mm') value5.value = dayjs(moment(e.expireendtime).format(('HH:mm')), 'HH:mm')
formState.value.payment = e.payment/100 formState.value.payment = formState.value.payment/100
formState.value.paymentmodel = formState.value.paymentmodel+''
showModal() showModal()
} }
const onSearch = async () => { const onSearch = async () => {
const params = { const params = {
status: "0", page: 1,
size:10,
name: value.value, name: value.value,
uid: getUid() uid: getUid()
} }
const data = await onfindby(params) const data = await onfindby(params)
list.value = data.data list.value = data.data
}; };
const tableChange=async(e:any)=>{
let queryData = {
current_page:e.current,//当前页数
per_page:e.pageSize//每页显示条数
};
const params = {
size: queryData.current_page,
page: queryData.per_page,
uid: getUid()
}
const data = await onfindby(params)
list.value = data.data
}
const onBack = (e: Number) => { const onBack = (e: Number) => {
isShow.value = !isShow.value; isShow.value = !isShow.value;
onSearch() onSearch()
...@@ -294,31 +292,39 @@ const onFinish = (values: any) => { ...@@ -294,31 +292,39 @@ const onFinish = (values: any) => {
const onFinishFailed = (errorInfo: any) => { const onFinishFailed = (errorInfo: any) => {
console.log('Failed:', errorInfo); console.log('Failed:', errorInfo);
}; };
const init = async () => {
const uid = getUid() const onSelectCheckboxValue = (e: any, index: any) => {
const data = await onSelectGoods(uid)
listArray.value = data.data
}
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,opt:any)=>{
console.log(listArray.value[label.index]); formState.value.subject = ''
const goodspayditch = formState.value.goodspayditch const goodspayditch = formState.value.goodspayditch
const id = formState.value.id
formState.value ={ formState.value ={
...listArray.value[label.index] goodspayditch:goodspayditch,
...opt.itemKey,
id
} }
formState.value.markingprice = listArray.value[label.index].price/100 formState.value.markingprice = formState.value.markingprice/100
formState.value.goodspayditch = goodspayditch
formState.value.paymentmodel= '0' formState.value.paymentmodel= '0'
}
const onSubSearch = async(value:any)=>{
const uid = getUid();
const params = {
name: '',
size:10,
page:1,
uid,
};
const data = await onFindbyLikeName(params);
listArray.value = data.data.goods
}
const popupScroll = ()=>{
console.log(1);
} }
onMounted(async () => { onMounted(async () => {
onSearch() onSearch()
init()
}) })
defineExpose({ defineExpose({
size: ref<SelectProps['size']>('middle'), size: ref<SelectProps['size']>('middle'),
...@@ -331,8 +337,6 @@ defineExpose({ ...@@ -331,8 +337,6 @@ defineExpose({
checkboxValue, checkboxValue,
optionsWithDisabled, optionsWithDisabled,
dateFormat, dateFormat,
startvalue,
endvalue,
listValue, listValue,
list, list,
value2, value2,
...@@ -340,11 +344,13 @@ defineExpose({ ...@@ -340,11 +344,13 @@ defineExpose({
value4, value4,
value5, value5,
uid, uid,
pagination,
optionss,
columns,
popupScroll,
onSet, onSet,
onSearch, onSearch,
columns,
onEdit, onEdit,
optionss,
onCreatePay, onCreatePay,
onBack, onBack,
onCopy, onCopy,
......
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