dev
parent
553e108b46
commit
c5a24b17bc
@ -0,0 +1,35 @@
|
|||||||
|
import httpService from "@/request"
|
||||||
|
|
||||||
|
// 轮播图列表
|
||||||
|
export function swiperList(params) {
|
||||||
|
return httpService({
|
||||||
|
url: `/user/homepageCarousel/list`,
|
||||||
|
method: 'get',
|
||||||
|
params: params,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
// 删除
|
||||||
|
export function swiperDel(params) {
|
||||||
|
return httpService({
|
||||||
|
url: `/user/homepageCarousel/delete`,
|
||||||
|
method: 'get',
|
||||||
|
params: params,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
// 新增
|
||||||
|
export function swiperInsert(params) {
|
||||||
|
return httpService({
|
||||||
|
url: `/user/homepageCarousel/insert`,
|
||||||
|
method: 'get',
|
||||||
|
params: params,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
// 修改
|
||||||
|
export function swiperUpdate(params) {
|
||||||
|
return httpService({
|
||||||
|
url: `/user/homepageCarousel/update`,
|
||||||
|
method: 'get',
|
||||||
|
params: params,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,26 @@
|
|||||||
|
export const form = {
|
||||||
|
id:null,
|
||||||
|
title:undefined,
|
||||||
|
content:undefined,
|
||||||
|
status:undefined,
|
||||||
|
isPublic:undefined,
|
||||||
|
isRating:undefined,
|
||||||
|
imgUrls:[]
|
||||||
|
}
|
||||||
|
export const rules = {
|
||||||
|
title:[{required:true,message:'请输入标题',trigger:'blur'}],
|
||||||
|
content:[{required:true,message:'请输入内容',trigger:'blur'}],
|
||||||
|
status:[{required:true,message:'请选择',trigger:'change'}],
|
||||||
|
isPublic:[{required:true,message:'请选择',trigger:'change'}],
|
||||||
|
isRating:[{required:true,message:'请选择',trigger:'change'}],
|
||||||
|
}
|
||||||
|
export const options = {
|
||||||
|
isTrue:[
|
||||||
|
{ id:1, name:'是' },
|
||||||
|
{ id:0, name:'否' },
|
||||||
|
],
|
||||||
|
status: [
|
||||||
|
{ id:1, name:'启用中' },
|
||||||
|
{ id:2, name:'禁用中' },
|
||||||
|
]
|
||||||
|
}
|
@ -0,0 +1,188 @@
|
|||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<a-drawer
|
||||||
|
:title="title"
|
||||||
|
:width="720"
|
||||||
|
:visible="show"
|
||||||
|
:body-style="{ paddingBottom: '80px' }"
|
||||||
|
@close="addClose"
|
||||||
|
>
|
||||||
|
<div class="drawer-content">
|
||||||
|
基本信息
|
||||||
|
<a-divider></a-divider>
|
||||||
|
<a-form-model
|
||||||
|
ref="ruleForm"
|
||||||
|
:model="form"
|
||||||
|
:rules="rules"
|
||||||
|
layout="vertical"
|
||||||
|
>
|
||||||
|
<a-form-model-item prop="title" label="标题">
|
||||||
|
<a-input
|
||||||
|
v-model="form.title"
|
||||||
|
placeholder="请输入标题"
|
||||||
|
style="width: 60%"
|
||||||
|
></a-input>
|
||||||
|
</a-form-model-item>
|
||||||
|
<a-form-model-item prop="content" label="内容">
|
||||||
|
<a-input
|
||||||
|
v-model="form.content"
|
||||||
|
placeholder="请输入标题"
|
||||||
|
style="width: 60%"
|
||||||
|
></a-input>
|
||||||
|
</a-form-model-item>
|
||||||
|
<a-form-model-item prop="status" label="状态">
|
||||||
|
<a-select
|
||||||
|
v-model="form.status"
|
||||||
|
placeholder="请选择"
|
||||||
|
style="width: 60%"
|
||||||
|
>
|
||||||
|
<a-select-option
|
||||||
|
v-for="item in options.status"
|
||||||
|
:key="item.id"
|
||||||
|
:value="item.id"
|
||||||
|
>{{ item.name }}</a-select-option
|
||||||
|
>
|
||||||
|
</a-select>
|
||||||
|
</a-form-model-item>
|
||||||
|
<a-form-model-item prop="isPublic" label="是否公开">
|
||||||
|
<a-select
|
||||||
|
v-model="form.isPublic"
|
||||||
|
placeholder="请选择"
|
||||||
|
style="width: 60%"
|
||||||
|
>
|
||||||
|
<a-select-option
|
||||||
|
v-for="item in options.isTrue"
|
||||||
|
:key="item.id"
|
||||||
|
:value="item.id"
|
||||||
|
>{{ item.name }}</a-select-option
|
||||||
|
>
|
||||||
|
</a-select>
|
||||||
|
</a-form-model-item>
|
||||||
|
<a-form-model-item prop="isRating" label="是否可以评论">
|
||||||
|
<a-select
|
||||||
|
v-model="form.isRating"
|
||||||
|
placeholder="请选择"
|
||||||
|
style="width: 60%"
|
||||||
|
>
|
||||||
|
<a-select-option
|
||||||
|
v-for="item in options.isTrue"
|
||||||
|
:key="item.id"
|
||||||
|
:value="item.id"
|
||||||
|
>{{ item.name }}</a-select-option
|
||||||
|
>
|
||||||
|
</a-select>
|
||||||
|
</a-form-model-item>
|
||||||
|
话题图片
|
||||||
|
<commonUpload :fileList='fileList' @handleChange="handleChange" />
|
||||||
|
</a-form-model>
|
||||||
|
</div>
|
||||||
|
<div class="drawer-footer">
|
||||||
|
<a-button :style="{ marginRight: '8px' }" @click="addClose">
|
||||||
|
关闭
|
||||||
|
</a-button>
|
||||||
|
<a-button type="primary" @click="submit"> 提交 </a-button>
|
||||||
|
</div>
|
||||||
|
</a-drawer>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { form, rules, options } from "./form.js";
|
||||||
|
import { topicInsert,topicUpdate, topicInfo } from '@/api/operation/dynamic/topic'
|
||||||
|
export default {
|
||||||
|
props: {
|
||||||
|
show: {
|
||||||
|
type: Boolean,
|
||||||
|
default: false,
|
||||||
|
},
|
||||||
|
editId:Number
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
title: "新增话题",
|
||||||
|
form,
|
||||||
|
rules,
|
||||||
|
options,
|
||||||
|
fileList:[]
|
||||||
|
};
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
addClose() {
|
||||||
|
this.$refs.ruleForm.resetFields();
|
||||||
|
this.fileList = []
|
||||||
|
this.$emit('addClose');
|
||||||
|
},
|
||||||
|
success() {
|
||||||
|
this.$emit('success');
|
||||||
|
this.addClose()
|
||||||
|
},
|
||||||
|
submit() {
|
||||||
|
this.$refs.ruleForm.validate(async (valid) => {
|
||||||
|
if (valid) {
|
||||||
|
if(this.editId === null) {
|
||||||
|
let res = await topicInsert(this.form)
|
||||||
|
if(res.code===200){
|
||||||
|
this.$message.success(res.msg)
|
||||||
|
this.success()
|
||||||
|
}else{
|
||||||
|
this.$message.error(res.msg)
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
let res = await topicUpdate(this.form)
|
||||||
|
if(res.code===200){
|
||||||
|
this.$message.success(res.msg)
|
||||||
|
this.success()
|
||||||
|
}else{
|
||||||
|
this.$message.error(res.msg)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
handleChange(data) {
|
||||||
|
this.fileList = data
|
||||||
|
if(data[0].status==='done'){
|
||||||
|
this.form.imgUrls.push(data[0].response.data)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
},
|
||||||
|
watch: {
|
||||||
|
editId:{
|
||||||
|
handler(val){
|
||||||
|
if(val!==null){
|
||||||
|
this.title = '修改话题'
|
||||||
|
this.form.id = val
|
||||||
|
topicInfo({topicId:val}).then(res=>{
|
||||||
|
let data = res.data
|
||||||
|
this.form.title = data.title
|
||||||
|
this.form.content = data.content
|
||||||
|
this.form.status = data.status
|
||||||
|
this.form.isPublic = data.isPublic
|
||||||
|
this.form.isRating = data.isRating
|
||||||
|
if(data.imgList.length>0){
|
||||||
|
console.log(data.imgList);
|
||||||
|
const pic = []
|
||||||
|
for(let item of data.imgList){
|
||||||
|
let obj = {
|
||||||
|
name:item.url.split('_')[0] +'.'+ item.url.split('.')[1],
|
||||||
|
url: this.$ImgUrl(item.url),
|
||||||
|
uid:item.url.split('_')[1],
|
||||||
|
status:'done',
|
||||||
|
thumbUrl: this.$ImgUrl(item.url),
|
||||||
|
}
|
||||||
|
pic.push(obj)
|
||||||
|
}
|
||||||
|
this.fileList = pic
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}else{
|
||||||
|
this.title = '新增话题'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
immediate: true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style></style>
|
@ -0,0 +1,53 @@
|
|||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<a-table
|
||||||
|
:columns="columns"
|
||||||
|
:data-source="tableData"
|
||||||
|
:pagination="pagination"
|
||||||
|
:scroll="{ x: 1400 }"
|
||||||
|
@change="handleTableChange"
|
||||||
|
:row-selection="{
|
||||||
|
selectedRowKeys: selectedRowKeys,
|
||||||
|
onChange: selectionChoosed,
|
||||||
|
}"
|
||||||
|
:row-key="
|
||||||
|
(record, index) => {
|
||||||
|
return record.id;
|
||||||
|
}
|
||||||
|
"
|
||||||
|
>
|
||||||
|
</a-table>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { columns } from "./tableConfig.js";
|
||||||
|
import { shopPushList } from "@/api/shop/goods";
|
||||||
|
export default {
|
||||||
|
props:{
|
||||||
|
type
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return{
|
||||||
|
columns,
|
||||||
|
tableData:[]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
watch:{
|
||||||
|
type:{
|
||||||
|
handler(val){
|
||||||
|
if(val===2){
|
||||||
|
shopPushList().then(res=>{
|
||||||
|
this.tableData = res.data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
immediate: true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
|
||||||
|
</style>
|
@ -0,0 +1,78 @@
|
|||||||
|
export const columns = {
|
||||||
|
shop:[
|
||||||
|
{
|
||||||
|
title: "商品名称",
|
||||||
|
width: "12%",
|
||||||
|
dataIndex: "skuName",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "sku编码",
|
||||||
|
width: "12%",
|
||||||
|
dataIndex: "skuId",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "商品类型",
|
||||||
|
width: "7%",
|
||||||
|
dataIndex: "mallType",
|
||||||
|
customRender: function (mallType) {
|
||||||
|
switch (mallType) {
|
||||||
|
case 1:
|
||||||
|
return 'Jcook'
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "店铺名",
|
||||||
|
width: "8%",
|
||||||
|
dataIndex: "shopName",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "品牌名",
|
||||||
|
width: "8%",
|
||||||
|
dataIndex: "brandName",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "供应商名",
|
||||||
|
width: "8%",
|
||||||
|
dataIndex: "vendorName",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "一级分类名称",
|
||||||
|
width: "8%",
|
||||||
|
dataIndex: "categoryFirstName",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "二级分类名称",
|
||||||
|
width: "8%",
|
||||||
|
dataIndex: "categorySecondName",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "三级分类名称",
|
||||||
|
width: "8%",
|
||||||
|
dataIndex: "categoryThirdName",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "主图url",
|
||||||
|
width: "8%",
|
||||||
|
dataIndex: "mainPhoto",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "售卖价",
|
||||||
|
width: "8%",
|
||||||
|
dataIndex: "sellPrice",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "折扣价",
|
||||||
|
width: "8%",
|
||||||
|
dataIndex: "discountPrice",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "浏览量",
|
||||||
|
width: "8%",
|
||||||
|
dataIndex: "viewsNum",
|
||||||
|
},
|
||||||
|
]
|
||||||
|
}
|
@ -0,0 +1,14 @@
|
|||||||
|
<template>
|
||||||
|
<div></div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
data() {
|
||||||
|
return {};
|
||||||
|
},
|
||||||
|
methods: {},
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="less" scoped></style>
|
@ -0,0 +1,14 @@
|
|||||||
|
<template>
|
||||||
|
<div></div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
data() {
|
||||||
|
return {};
|
||||||
|
},
|
||||||
|
methods: {},
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="less" scoped></style>
|
@ -0,0 +1,76 @@
|
|||||||
|
export const columns = [
|
||||||
|
{
|
||||||
|
title: "商品名称",
|
||||||
|
width: "12%",
|
||||||
|
dataIndex: "skuName",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "sku编码",
|
||||||
|
width: "12%",
|
||||||
|
dataIndex: "skuId",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "商品类型",
|
||||||
|
width: "7%",
|
||||||
|
dataIndex: "mallType",
|
||||||
|
customRender: function (mallType) {
|
||||||
|
switch (mallType) {
|
||||||
|
case 1:
|
||||||
|
return 'Jcook'
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "店铺名",
|
||||||
|
width: "8%",
|
||||||
|
dataIndex: "shopName",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "品牌名",
|
||||||
|
width: "8%",
|
||||||
|
dataIndex: "brandName",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "供应商名",
|
||||||
|
width: "8%",
|
||||||
|
dataIndex: "vendorName",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "一级分类名称",
|
||||||
|
width: "8%",
|
||||||
|
dataIndex: "categoryFirstName",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "二级分类名称",
|
||||||
|
width: "8%",
|
||||||
|
dataIndex: "categorySecondName",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "三级分类名称",
|
||||||
|
width: "8%",
|
||||||
|
dataIndex: "categoryThirdName",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "主图url",
|
||||||
|
width: "8%",
|
||||||
|
dataIndex: "mainPhoto",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "售卖价",
|
||||||
|
width: "8%",
|
||||||
|
dataIndex: "sellPrice",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "折扣价",
|
||||||
|
width: "8%",
|
||||||
|
dataIndex: "discountPrice",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "浏览量",
|
||||||
|
width: "8%",
|
||||||
|
dataIndex: "viewsNum",
|
||||||
|
},
|
||||||
|
]
|
@ -0,0 +1,14 @@
|
|||||||
|
<template>
|
||||||
|
<div></div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
data() {
|
||||||
|
return {};
|
||||||
|
},
|
||||||
|
methods: {},
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="less" scoped></style>
|
Loading…
Reference in new issue