图片上传

master
lion 3 years ago
parent 86aac60c44
commit 4df083b62b

@ -2,5 +2,5 @@
ENV = 'development' ENV = 'development'
# base api # base api
#VUE_APP_BASE_API = https://yybtest.ali251.langye.net/ VUE_APP_BASE_API = https://yybtest.ali251.langye.net/
VUE_APP_BASE_API = https://yunyubang.ali251.langye.net/ #VUE_APP_BASE_API = https://yunyubang.ali251.langye.net/

@ -0,0 +1,9 @@
import request from '@/utils/request'
export function uploads(data) {
return request({
url: '/api/admin/upload-file',
method: 'post',
data
})
}

@ -29,4 +29,5 @@ export function getAuthMenu(token) {
method: 'get', method: 'get',
params: { token } params: { token }
}) })
} }

@ -178,7 +178,7 @@ export default {
tableHeight: null, tableHeight: null,
//document.documentElement.clientHeight -50 -37 - 20- 25 - 76, //document.documentElement.clientHeight -50 -37 - 20- 25 - 76,
isShowPage: true, isShowPage: true,
checkTable: this.tableItem.map((item) => item?.prop), checkTable:this.tableItem.map((item)=> item?.prop),
loading: false, loading: false,
visibleBtn: true, // visibleBtn: true, //

@ -102,6 +102,7 @@ export default {
}, },
beforeUpload(file) { beforeUpload(file) {
console.log(file) console.log(file)
return
if((file.size/1000) > 1024){ if((file.size/1000) > 1024){
Message({ Message({
type:'warning', type:'warning',

@ -0,0 +1,142 @@
<template>
<div class="tinymce">
<Editor v-model="myValue" :init="init" :disabled="disabled"></Editor>
<EditorImage
:show="showImg"
class="tinymce__upload"
@successCBK="imageSuccessCBK"
@updateshow="updateshow"
></EditorImage>
</div>
</template>
<script>
import EditorImage from "@/components/XyTinymce/EditorImage.vue";
import tinymce from "tinymce/tinymce";
import Editor from "@tinymce/tinymce-vue";
import "tinymce/skins/ui/oxide/skin.css";
import "@/assets/tinymce/langs/zh_CN";
import "tinymce/themes/silver/theme";
import "tinymce/plugins/media";
import "tinymce/plugins/lists";
import "tinymce/plugins/table";
import "tinymce/plugins/hr";
import "tinymce/plugins/autolink";
import "tinymce/plugins/help";
import "tinymce/plugins/visualblocks";
import "tinymce/plugins/fullscreen";
import "tinymce/plugins/textpattern";
import "tinymce/plugins/contextmenu";
import "tinymce/plugins/wordcount";
import "tinymce/plugins/colorpicker";
import "tinymce/plugins/textcolor";
import "tinymce/icons/default"
import 'tinymce/plugins/code'
export default {
components: {
Editor,
EditorImage,
},
props: {
height: {
type: Number,
default: 300,
},
value: {
type: String,
default: "",
},
disabled: {
type: Boolean,
default: false,
},
plugins: {
type: [String, Array],
default:
"code paste preview searchreplace autolink directionality visualblocks visualchars fullscreen image template codesample table charmap hr pagebreak nonbreaking anchor insertdatetime advlist lists wordcount imagetools textpattern help emoticons autosave ",
},
toolbar: {
type: [String, Array],
default: ` undo redo restoredraft | code | assignment | cut copy paste pastetext | forecolor backcolor bold italic underline strikethrough anchor | alignleft aligncenter alignright alignjustify outdent indent |
styleselect formatselect fontselect fontsizeselect | table image charmap emoticons hr pagebreak |bullist numlist | blockquote subscript superscript removeformat |
insertdatetime print preview | fullscreen | bdmap indent2em lineheight formatpainter axupimgs`,
},
menubar: {
type: String,
default: "edit insert view format table CardBtn",
},
},
data() {
return {
myValue: this.value,
showImg:false,
init: {
language_url: "@/asset/tinymce/langs/zh_CN.js", //
language: "zh_CN",
height: this.height,
plugins: this.plugins,
fontsize_formats: "8px 10px 12px 14px 16px 18px 24px 28px 36px",
toolbar: this.toolbar,
branding: false,
menubar: this.menubar,
setup: (editor) => {
let _this = this
// assignment toolbar
editor.ui.registry.addButton('assignment', {
text: `<i class="el-icon-position" style="font-size: 16px">上传</i>`,
// tooltip: '',
onAction: () => {
this.showImg = true
// _this.showEdit = true
},
})
},
//base64
//ajaxhttps://www.tiny.cloud/docs/configure/file-image-upload/#images_upload_handler
// images_upload_handler: (blobInfo, success, failure) => {
// const img = 'data:image/jpeg;base64,' + blobInfo.base64()
// success(img)
// },
},
};
},
methods: {
updateshow(val){
this.showImg = val
},
imageSuccessCBK(arr) {
console.log("arr",arr)
arr.forEach(
(v) => (this.myValue += `<img class="wscnph" src="${v.url}" >`)
);
},
},
computed: {},
mounted() {
tinymce.init({});
},
watch: {
value(newValue) {
this.myValue = newValue;
},
myValue(newValue) {
this.$emit("input", newValue);
},
},
};
</script>
<style scoped lang="scss">
.tinymce {
position: relative;
&__upload {
z-index: 2;
position: absolute;
right: 4px;
top: 0px;
}
::v-deep .tox.tox-tinymce.tox-fullscreen{
z-index:0
}
}
</style>

@ -1,142 +1,169 @@
<template> <template>
<div class="tinymce"> <div class="tinymce">
<Editor v-model="myValue" :init="init" :disabled="disabled"></Editor> <Editor v-model="myValue" :init="init" :disabled="disabled"></Editor>
<EditorImage </div>
:show="showImg" </template>
class="tinymce__upload"
@successCBK="imageSuccessCBK" <script>
@updateshow="updateshow" import {
></EditorImage> uploads
</div> } from '@/api/uploads.js'
</template> import tinymce from "tinymce/tinymce";
import Editor from "@tinymce/tinymce-vue";
<script> import "tinymce/skins/ui/oxide/skin.css";
import EditorImage from "@/components/XyTinymce/EditorImage.vue"; import "@/assets/tinymce/langs/zh_CN";
import tinymce from "tinymce/tinymce"; import "tinymce/themes/silver/theme";
import Editor from "@tinymce/tinymce-vue"; import "tinymce/plugins/media";
import "tinymce/skins/ui/oxide/skin.css"; import "tinymce/plugins/lists";
import "@/assets/tinymce/langs/zh_CN"; import "tinymce/plugins/table";
import "tinymce/themes/silver/theme"; import "tinymce/plugins/hr";
import "tinymce/plugins/media"; import "tinymce/plugins/autolink";
import "tinymce/plugins/lists"; import "tinymce/plugins/help";
import "tinymce/plugins/table"; import "tinymce/plugins/visualblocks";
import "tinymce/plugins/hr"; import "tinymce/plugins/fullscreen";
import "tinymce/plugins/autolink"; import "tinymce/plugins/textpattern";
import "tinymce/plugins/help"; import "tinymce/plugins/contextmenu";
import "tinymce/plugins/visualblocks"; import "tinymce/plugins/wordcount";
import "tinymce/plugins/fullscreen"; import "tinymce/plugins/colorpicker";
import "tinymce/plugins/textpattern"; import "tinymce/plugins/textcolor";
import "tinymce/plugins/contextmenu"; import "tinymce/icons/default"
import "tinymce/plugins/wordcount"; import 'tinymce/plugins/code'
import "tinymce/plugins/colorpicker"; import "tinymce/plugins/image"
import "tinymce/plugins/textcolor"; import "tinymce/plugins/imagetools"
import "tinymce/icons/default" export default {
import 'tinymce/plugins/code' components: {
export default { Editor
components: { },
Editor, props: {
EditorImage, height: {
}, type: Number,
props: { default: 300,
height: { },
type: Number, value: {
default: 300, type: String,
}, default: "",
value: { },
type: String, disabled: {
default: "", type: Boolean,
}, default: false,
disabled: { },
type: Boolean, plugins: {
default: false, type: [String, Array],
}, default: "code image paste preview searchreplace autolink directionality visualblocks visualchars fullscreen template codesample table charmap hr pagebreak nonbreaking anchor insertdatetime advlist lists wordcount imagetools textpattern help emoticons autosave ",
plugins: { },
type: [String, Array], toolbar: {
default: type: [String, Array],
"code paste preview searchreplace autolink directionality visualblocks visualchars fullscreen image template codesample table charmap hr pagebreak nonbreaking anchor insertdatetime advlist lists wordcount imagetools textpattern help emoticons autosave ", default: ` undo redo restoredraft | code | image | imagetools | assignment | cut copy paste pastetext | forecolor backcolor bold italic underline strikethrough anchor | alignleft aligncenter alignright alignjustify outdent indent |
}, styleselect formatselect fontselect fontsizeselect | table charmap emoticons hr pagebreak | bullist numlist | blockquote subscript superscript removeformat |
toolbar: { insertdatetime print preview | fullscreen | bdmap indent2em lineheight formatpainter axupimgs`,
type: [String, Array], },
default: ` undo redo restoredraft | code | assignment | cut copy paste pastetext | forecolor backcolor bold italic underline strikethrough anchor | alignleft aligncenter alignright alignjustify outdent indent | menubar: {
styleselect formatselect fontselect fontsizeselect | table image charmap emoticons hr pagebreak |bullist numlist | blockquote subscript superscript removeformat | type: String,
insertdatetime print preview | fullscreen | bdmap indent2em lineheight formatpainter axupimgs`, default: "edit insert view format table CardBtn",
}, },
menubar: { },
type: String, data() {
default: "edit insert view format table CardBtn", return {
}, myValue: this.value,
}, showImg: false,
data() { imgUploadUrl: `${process.env.VUE_APP_BASE_API}/api/admin/upload-file`,
return { init: {
myValue: this.value, language_url: "@/asset/tinymce/langs/zh_CN.js", //
showImg:false, language: "zh_CN",
init: { height: this.height,
language_url: "@/asset/tinymce/langs/zh_CN.js", // plugins: this.plugins,
language: "zh_CN", fontsize_formats: "8px 10px 12px 14px 16px 18px 24px 28px 36px",
height: this.height, toolbar: this.toolbar,
plugins: this.plugins, branding: false,
fontsize_formats: "8px 10px 12px 14px 16px 18px 24px 28px 36px", menubar: this.menubar,
toolbar: this.toolbar, //
branding: false, images_upload_url: this.imgUploadUrl,
menubar: this.menubar, images_upload_handler: (blobInfo, success, failure) => {
setup: (editor) => { this.handleImgUpload(blobInfo, success, failure);
let _this = this },
// assignment toolbar
editor.ui.registry.addButton('assignment', { // setup: (editor) => {
text: `<i class="el-icon-position" style="font-size: 16px">上传</i>`, // let _this = this
// tooltip: '', // // assignment toolbar
onAction: () => { // editor.ui.registry.addButton('assignment', {
this.showImg = true // text: `<i class="el-icon-position" style="font-size: 16px"></i>`,
// _this.showEdit = true // // tooltip: '',
}, // onAction: () => {
}) // this.showImg = true
}, // // _this.showEdit = true
//base64 // },
//ajaxhttps://www.tiny.cloud/docs/configure/file-image-upload/#images_upload_handler // })
// images_upload_handler: (blobInfo, success, failure) => { // },
// const img = 'data:image/jpeg;base64,' + blobInfo.base64()
// success(img) //base64
// }, //ajaxhttps://www.tiny.cloud/docs/configure/file-image-upload/#images_upload_handler
}, // images_upload_handler: (blobInfo, success, failure) => {
}; // const img = 'data:image/jpeg;base64,' + blobInfo.base64()
}, // success(img)
methods: { // },
updateshow(val){ },
this.showImg = val };
}, },
imageSuccessCBK(arr) { methods: {
console.log("arr",arr) updateshow(val) {
arr.forEach( this.showImg = val
(v) => (this.myValue += `<img class="wscnph" src="${v.url}" >`) },
); imageSuccessCBK(arr) {
}, console.log("arr", arr)
}, arr.forEach(
computed: {}, (v) => (this.myValue += `<img class="wscnph" src="${v.url}" >`)
mounted() { );
tinymce.init({}); },
}, handleImgUpload(blobInfo, success, failure) {
watch: { console.log("我要上传", blobInfo);
value(newValue) { let self = this;
this.myValue = newValue; let file = blobInfo.blob();
}, const isLt2M = file.size / 1024 < 1024;
myValue(newValue) { if (!isLt2M) {
this.$emit("input", newValue); failure("上传失败图片不可超过1M!");
}, return false;
}, }
}; let formdate = new FormData();
</script> formdate.append("file", blobInfo.blob()); //imageFile
uploads(formdate).then(res => {
<style scoped lang="scss"> if (res) {
.tinymce { let url = res.url;
position: relative; success(url); //url
&__upload { } else {
z-index: 2; failure(res.errmsg);
position: absolute; this.$message.error(res.errmsg);
right: 4px; }
top: 0px; })
} }
::v-deep .tox.tox-tinymce.tox-fullscreen{ },
z-index:0 computed: {},
} mounted() {
} tinymce.init({});
},
watch: {
value(newValue) {
this.myValue = newValue;
},
myValue(newValue) {
this.$emit("input", newValue);
},
},
};
</script>
<style scoped lang="scss">
.tinymce {
position: relative;
&__upload {
z-index: 2;
position: absolute;
right: 4px;
top: 0px;
}
::v-deep .tox.tox-tinymce.tox-fullscreen {
z-index: 0
}
}
</style> </style>

@ -137,7 +137,7 @@ export default {
// align:"right" // align:"right"
// }, // },
{ {
label:"开放名额", label:"总活动名额",
width: 140, width: 140,
prop:'member_sum', prop:'member_sum',
formatter:(cell,data,value)=>{ formatter:(cell,data,value)=>{
@ -160,7 +160,7 @@ export default {
} }
}, },
{ {
label:"报名数", label:"报名数",
width: 140, width: 140,
prop:'total', prop:'total',
customFn: (cell) => { customFn: (cell) => {

@ -159,6 +159,25 @@
</div> </div>
</div> </div>
</template> </template>
<template v-slot:applyDate>
<div class="xy-table-item">
<div class="xy-table-item-label">
<span style="color: red;font-weight: 600;padding-right: 4px;">*</span>预约报名日期
</div>
<div class="xy-table-item-content">
<el-date-picker
align='center'
style="width: 360px;"
v-model="form.applyDate"
value-format="yyyy-MM-dd HH:mm:ss"
type="datetimerange"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期">
</el-date-picker>
</div>
</div>
</template>
<template v-slot:address> <template v-slot:address>
<div class="xy-table-item"> <div class="xy-table-item">
<div class="xy-table-item-label"> <div class="xy-table-item-label">
@ -202,7 +221,7 @@
<template v-slot:memberSum> <template v-slot:memberSum>
<div class="xy-table-item"> <div class="xy-table-item">
<div class="xy-table-item-label"> <div class="xy-table-item-label">
活动人数 活动人数
</div> </div>
<div class="xy-table-item-content"> <div class="xy-table-item-content">
<el-input-number :precision="0" :controls="false" v-model="form.memberSum" placeholder="请输入活动人数" clearable style="width: 300px;"></el-input-number> <el-input-number :precision="0" :controls="false" v-model="form.memberSum" placeholder="请输入活动人数" clearable style="width: 300px;"></el-input-number>
@ -229,25 +248,6 @@
</div> </div>
</div> </div>
</template> </template>
<template v-slot:applyDate>
<div class="xy-table-item">
<div class="xy-table-item-label">
<span style="color: red;font-weight: 600;padding-right: 4px;">*</span>报名日期
</div>
<div class="xy-table-item-content">
<el-date-picker
align='center'
style="width: 360px;"
v-model="form.applyDate"
value-format="yyyy-MM-dd HH:mm:ss"
type="datetimerange"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期">
</el-date-picker>
</div>
</div>
</template>
<!-- <template v-slot:money> <!-- <template v-slot:money>
<div class="xy-table-item"> <div class="xy-table-item">
<div class="xy-table-item-label"> <div class="xy-table-item-label">
@ -336,7 +336,7 @@ import { Message } from 'element-ui'
import { getparameter } from "@/api/system/dictionary"; import { getparameter } from "@/api/system/dictionary";
import xyTinymce from "@/components/XyTinymce/index.vue"; import xyTinymce from "@/components/XyTinymce/index.vue";
import {replaceAll} from "@/utils/index" import {replaceAll} from "@/utils/index"
export default { export default {
components:{ components:{
xyTinymce xyTinymce
@ -358,14 +358,16 @@ companykeyword:"",
recommend:"", recommend:"",
//slogan:"", //slogan:"",
date:"", date:"",
applyDate:[],
address:'', address:'',
relationName:"", relationName:"",
phoneNumber:"", phoneNumber:"",
group:"", group:"",
memberSum:"",
startMemberSum:"", startMemberSum:"",
memberSum:"",
greatServices:"", greatServices:"",
applyDate:[], // applyDate:[],
// money:0.00, // money:0.00,
activePlaybill:"", activePlaybill:"",
sort:0, sort:0,
@ -548,8 +550,8 @@ companykeyword:"",
relationName:res.relation_name, relationName:res.relation_name,
phoneNumber:res.phone_number, phoneNumber:res.phone_number,
group:res.group, group:res.group,
startMemberSum:res.start_member_sum,
memberSum:res.member_sum, memberSum:res.member_sum,
startMemberSum:res.start_member_sum,
greatServices:res.great_services, greatServices:res.great_services,
applyDate:[res.apply_start,res.apply_end], applyDate:[res.apply_start,res.apply_end],
// money:Number(res.money), // money:Number(res.money),
@ -557,6 +559,7 @@ companykeyword:"",
sort:res.sort, sort:res.sort,
content:res?.content, content:res?.content,
} }
}, },
compareDate(d1, d2) { compareDate(d1, d2) {
@ -566,12 +569,12 @@ companykeyword:"",
}, },
submit(){ submit(){
let start_date = this.form.date[0] let end_date = this.form.date[1]
let apply_end = this.form.applyDate[1] let apply_end = this.form.applyDate[1]
if(this.compareDate(apply_end,start_date)){ if(this.compareDate(apply_end,end_date)){
Message({ Message({
type:'warning', type:'warning',
message:'截止报名日期不能晚于活动开始日期' message:'截止报名日期不能晚于活动结束日期'
}) })
return return
@ -605,7 +608,7 @@ companykeyword:"",
active_playbill:this.form.activePlaybill, active_playbill:this.form.activePlaybill,
sort:this.form.sort, sort:this.form.sort,
content: replaceAll(this.form.content,'../storage/files',`${process.env.VUE_APP_BASE_API}storage/files`) content: replaceAll(this.form.content,'../storage/files',`${process.env.VUE_APP_BASE_API}storage/files`)
}).then(res => { }).then(res => {
Message({ Message({
type:'success', type:'success',
@ -644,7 +647,7 @@ companykeyword:"",
active_playbill:this.form.activePlaybill, active_playbill:this.form.activePlaybill,
sort:this.form.sort, sort:this.form.sort,
content: replaceAll(this.form.content,'../storage/files',`${process.env.VUE_APP_BASE_API}storage/files`) content: replaceAll(this.form.content,'../storage/files',`${process.env.VUE_APP_BASE_API}storage/files`)
}).then(res => { }).then(res => {
Message({ Message({
type:'success', type:'success',

@ -112,7 +112,7 @@ export default {
}).then(res => { }).then(res => {
Message({ Message({
type:'success', type:'success',
message:'新增活动成功' message:'新增活动关联方成功'
}) })
this.isShow = false this.isShow = false
this.$emit('refresh') this.$emit('refresh')
@ -128,7 +128,7 @@ export default {
}).then(res => { }).then(res => {
Message({ Message({
type:'success', type:'success',
message:'编辑活动成功' message:'编辑活动关联方成功'
}) })
this.isShow = false this.isShow = false
this.$emit('refresh') this.$emit('refresh')

@ -282,9 +282,10 @@
{ {
label: "客户服务地址", label: "客户服务地址",
width: 220, width: 220,
align: "left", align: "left",
prop:'customAddress',
customFn: (row) => { customFn: (row) => {
return ( < div style = { return ( <div style = {
{ {
display: 'flex', display: 'flex',
alignItems: 'left', alignItems: 'left',
@ -300,36 +301,25 @@
this.isShowEdit = true; this.isShowEdit = true;
} }
} }
} }>
>
{ {
row.order.member_address ? row.order.member_address : "修改服务地址" row.order.member_address ? row.order.member_address : "修改服务地址"
} < /div> ) } </div> )
} }
}, },
{
{ prop: "member.name",
label: "用户信息",
Fprop: 'member',
multiHd: [{
prop: "name",
label: "姓名", label: "姓名",
width: 110, width: 110
customFn: (row) => {
return (row.row.member?.name)
}
}, },
{ {
prop: "wechat_nickname", prop: "member.wechat_nickname",
label: "微信昵称", label: "微信昵称",
width: 110, width: 110
customFn: (row) => {
return (row.row.member?.wechat_nickname)
}
}, },
{ {
label: "头像", label: "头像",
prop:'member.avatar',
width: 80, width: 80,
customFn: (row) => { customFn: (row) => {
return ( < div style = { return ( < div style = {
@ -339,69 +329,148 @@
justifyContent: 'center' justifyContent: 'center'
} }
} > <el-avatar src = { } > <el-avatar src = {
row.row.member?.avatar row.member?.avatar
} > </el-avatar></div > ) } > </el-avatar></div > )
} }
}, },
{ {
prop: "phone", prop: "member.phone",
label: "联系电话", label: "联系电话",
width: 120, width: 120
customFn: (row) => {
return (row.row.member?.phone)
}
}, },
{ {
prop: "area", prop: "member.area",
label: "区域", label: "区域",
width: 110, width: 110
customFn: (row) => {
return (row.row.member?.area)
}
}, },
{ {
prop: "due_date", prop: "member.due_date",
label: "预产期", label: "预产期",
width: 120,
customFn: (row) => {
return (row.row.member?.due_date)
}
}
],
},
{
label: '订单明细',
multiHd: [{
prop: "product_type.name",
label: "产品类型",
width: 100
},
{
prop: "merchant.username",
label: "服务商家",
align: "left",
width: 160
},
{
label: "历史商家",
width: 160,
align: "left",
customFn: (row) => {
return row.row.assign_merchant.map(item => {
return ( <div> {
item.username
} </div>)
})
}
},
{
prop: "state_name",
label: "状态",
width: 120 width: 120
} },
] {
}, prop: "product_type.name",
label: "产品类型",
width: 100
},
{
prop: "merchant.username",
label: "服务商家",
align: "left",
width: 160
},
{
label: "历史商家",
width: 160,
align: "left",
customFn: (row) => {
return row.assign_merchant.map(item => {
return ( <div> {
item.username
} </div>)
})
}
},
{
prop: "state_name",
label: "状态",
width: 120
},
// {
// label: "",
// prop: 'member',
// multiHd: [{
// prop: "name",
// label: "",
// width: 110,
// customFn: (row) => {
// return (row.row.member?.name)
// }
// },
// {
// prop: "wechat_nickname",
// label: "",
// width: 110,
// customFn: (row) => {
// return (row.row.member?.wechat_nickname)
// }
// },
// {
// label: "",
// width: 80,
// customFn: (row) => {
// return ( < div style = {
// {
// display: 'flex',
// alignItems: 'center',
// justifyContent: 'center'
// }
// } > <el-avatar src = {
// row.row.member?.avatar
// } > </el-avatar></div > )
// }
// },
// {
// prop: "phone",
// label: "",
// width: 120,
// customFn: (row) => {
// return (row.row.member?.phone)
// }
// },
// {
// prop: "area",
// label: "",
// width: 110,
// customFn: (row) => {
// return (row.row.member?.area)
// }
// },
// {
// prop: "due_date",
// label: "",
// width: 120,
// customFn: (row) => {
// return (row.row.member?.due_date)
// }
// }
// ],
// },
// {
// label: '',
// prop:'orderInfo',
// multiHd: [{
// prop: "product_type.name",
// label: "",
// width: 100
// },
// {
// prop: "merchant.username",
// label: "",
// align: "left",
// width: 160
// },
// {
// label: "",
// width: 160,
// align: "left",
// customFn: (row) => {
// return row.row.assign_merchant.map(item => {
// return ( <div> {
// item.username
// } </div>)
// })
// }
// },
// {
// prop: "state_name",
// label: "",
// width: 120
// }
// ]
// },
{ {
prop: "order.member_comment", prop: "order.member_comment",
@ -520,7 +589,9 @@
product_type_id: this.select.productType, product_type_id: this.select.productType,
merchant_id: this.select.merchant.id, merchant_id: this.select.merchant.id,
order_state: this.select.orderStates.key, order_state: this.select.orderStates.key,
member_id:this.memberId, member_id:this.memberId,
sort_name:'paid_at',
sort_type:'DESC',
...this.select ...this.select
}) })
this.select.is_merchant = is_merchant; this.select.is_merchant = is_merchant;

@ -948,6 +948,9 @@ export default {
::v-deep .el-input__inner { ::v-deep .el-input__inner {
text-align: left; text-align: left;
} }
::v-deep .avue-dialog{
z-index:2374
}
</style> </style>
<style> <style>
.avatar-uploader .el-upload { .avatar-uploader .el-upload {

Loading…
Cancel
Save