首页推荐

This commit is contained in:
xk_chenlianjie
2024-01-15 14:10:59 +08:00
parent 93cc41f557
commit c48da8d53b
17 changed files with 1031 additions and 996 deletions

View File

@@ -1,109 +1,105 @@
<template>
<div class="divBox">
<el-card class="box-card">
<div style="width :100%;height:45px;line-height: 45px;background: #f3f3f3; padding-left:20px">
<!-- <el-card class="box-card"> -->
<!-- <div style="width :100%;height:45px;line-height: 45px;background: #f3f3f3; padding-left:20px">
添加广告
</div>
<el-form :rules="rules" ref="form" :model="advertisement" class="formValidate mt20 " label-width="100px">
<el-row>
<el-col :span="13">
<el-form-item label="广告名称" prop="storeName">
<el-input v-model="advertisement.storeName" maxlength="249" placeholder="请输入商品名称" />
</el-form-item>
</el-col>
</div> -->
<el-form :rules="rules" ref="form" :model="advertisement" class="formValidate " label-width="100px">
<el-row>
<el-col :span="15">
<el-form-item label="广告名称" prop="advertiseName">
<el-input v-model="advertisement.advertiseName" maxlength="249" placeholder="请输入商品名称" />
</el-form-item>
</el-col>
<el-col :span="13">
<el-form-item label="开始时间" prop="startTime">
<el-date-picker style="width:100%" v-model="advertisement.startTime" type="date" value-format="yyyy-MM-dd" placeholder="选择日期">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="13">
<el-form-item label="结束时间" prop="endTime">
<el-date-picker style="width:100%" v-model="advertisement.endTime" type="date" value-format="yyyy-MM-dd" placeholder="选择日期">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="15">
<el-form-item label="开始时间" prop="startTime">
<el-date-picker style="width:100%" v-model="advertisement.startTime" type="date" value-format="yyyy-MM-dd" placeholder="选择日期">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="15">
<el-form-item label="结束时间" prop="endTime">
<el-date-picker style="width:100%" v-model="advertisement.endTime" type="date" value-format="yyyy-MM-dd" placeholder="选择日期">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="上线/下线" prop="specType">
<el-radio-group v-model="advertisement.specType" @change="onChangeSpec(advertisement.specType)">
<el-radio :label="false">上线</el-radio>
<el-radio :label="true">下线</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="上线/下线" prop="isDownline">
<el-radio-group v-model="advertisement.isDownline">
<el-radio :label="1">上线</el-radio>
<el-radio :label="0">下线</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col>
<el-form-item label="广告图片" prop="picture">
<el-upload
:action="updateFileUrl"
:data="$store.state.global.headOss"
:before-upload="imgCompress"
:on-remove="headPhotoRemove"
:on-success="headPhotoSuccess"
:headers="headers"
:limit="1"
:on-exceed="handleExceed"
>
<el-button size="small" type="primary">点击上传</el-button>
<div slot="tip" class="el-upload__tip">只能上传jpg/png文件且不超过50kb</div>
</el-upload>
</el-form-item>
</el-col>
<el-col>
<el-form-item label="广告图片" prop="positionImage">
<div class="upLoadPicBox">
<upload :photo="advertisement.positionImage" @success="uploadSuccess" tip="只能上传jpg/png格式文件文件不能超过50kb"></upload>
</div>
</el-form-item>
</el-col>
<el-col :span="13">
<el-form-item label="广告链接" prop="link">
<el-input v-model="advertisement.link" placeholder="请输入广告链接" />
</el-form-item>
</el-col>
</el-row>
<el-col :span="15">
<el-form-item label="广告链接" prop="advertiseUrl">
<el-input v-model="advertisement.advertiseUrl" type='url' placeholder="请输入广告链接" />
</el-form-item>
</el-col>
</el-row>
<el-form-item>
<el-button type="primary" class="submission" @click="handleSubmit">提交</el-button>
</el-form-item>
</el-form>
</el-card>
<el-form-item>
<el-button type="primary" class="submission" @click="handleSubmit">提交</el-button>
<el-button :size="$store.getters.size" @click="close">取消</el-button>
</el-form-item>
</el-form>
<!-- </el-card> -->
</div>
</template>
<script>
import { imgCompress } from '@/utils'
import { getToken } from '@/utils/auth'
import utils from '@/utils/encode'
const JSESSIONID = utils.uuid()
import marketingApi from '@/api/finance/marketing.js'
import { loadingFn } from '@/utils/validate'
import upload from '@/components/Upload/index'
export default {
components: { upload },
data() {
return {
advertisement: { specType: false },
imgCompress,
updateFileUrl: process.env.VUE_APP_UPLOAD_URL,
headers: {
dataSources: 'WEB',
Authorization: getToken(),
JSESSIONID: JSESSIONID,
token: utils.bcrypt(JSESSIONID)
},
advertisement: { isDownline: '1' },
rules: {
storeName: [{ required: true, message: '请输入广告名称', trigger: 'blur' }],
advertiseName: [{ required: true, message: '请输入广告名称', trigger: 'blur' }],
startTime: [{ required: true, message: '请选择开始时间', trigger: 'change' }],
endTime: [{ required: true, message: '请选择结束时间', trigger: 'change' }],
picture: [{ required: true, message: '请上传广告图片', trigger: 'change' }],
link: [{ required: true, message: '请输入广告链接', trigger: 'blur' }]
positionImage: [{ required: true, message: '请上传广告图片', trigger: 'change' }],
advertiseUrl: [{ required: true, message: '请输入广告链接', trigger: 'blur' }]
}
}
},
methods: {
onChangeSpec(num) {},
headPhotoRemove(file, fileList) {
// 删除
this.advertisement.businessLienceImg = undefined
handleSubmit() {
this.$refs['form'].validate(valid => {
if (valid) {
this.save()
}
})
},
headPhotoSuccess(res) {
// 头像上传成功
this.advertisement.businessLienceImg = res.data.publicUrl
save() {
loadingFn.call(
this,
'loading',
marketingApi.save(this.advertisement).then(res => {
if ((res.code = 20000)) this.$message.success(res.msg)
this.$emit('closeDialog')
this.$emit('getList')
})
)
},
uploadSuccess(e, res) {
console.log(res)
if (res.code == 20000) {
this.advertisement.positionImage = res.data.publicUrl
}
},
handleSubmit() {
this.$refs['form'].validate(valid => {
@@ -111,10 +107,11 @@ export default {
this.save(this.advertisement)
}
})
},
close() {
this.$emit('closeDialog')
}
}
}
</script>
<style scoped lang="stylus">
</style>
<style scoped lang="stylus"></style>

View File

@@ -2,18 +2,18 @@
<div class="article-manager">
<el-card :bordered="false" shadow="never" class="ivu-mt-16">
<div>
<el-form ref="artFrom" :model="artFrom" label-width="80px" label-position="right" inline @submit.native.prevent>
<el-form-item label="广告名称:" label-for="pid">
<el-input clearable placeholder="广告名称" v-model="artFrom.name" class="form_content_width" />
<el-form :model="page" label-width="80px" label-position="right" inline @submit.native.prevent>
<el-form-item label="广告名称:">
<el-input clearable placeholder="广告名称" v-model="page.params.advertiseName" class="form_content_width" />
</el-form-item>
<el-form-item label="是否上线:" label-for="store_name">
<el-select v-model="artFrom.type" placeholder="状态" clearable @keyup.enter.native="getByPage">
<el-form-item label="是否上线:">
<el-select v-model="page.params.isDownline" placeholder="状态" clearable @keyup.enter.native="getByPage">
<el-option label="是" value="0" />
<el-option label="否" value="1" />
</el-select>
</el-form-item>
<el-form-item label="到期时间:" label-for="store_name">
<el-date-picker v-model="artFrom.createTime" type="date" placeholder="选择日期"> </el-date-picker>
<el-form-item label="到期时间:">
<el-date-picker v-model="page.params.endTime" type="date" placeholder="选择日期"> </el-date-picker>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="userSearchs">查询</el-button>
@@ -22,29 +22,44 @@
</div>
<el-button type="primary" class="bnt" @click="addClass()">添加广告</el-button>
<el-dropdown class="bnt mr14" @command="batchSelect">
<el-button>批量修改<i class="el-icon-arrow-down el-icon--right"></i></el-button>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item :command="1">删除</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
<el-table row-key="id" class="mt14" v-loading="loading" :data="tableData" empty-text="暂无数据">
<el-table-column prop="categoryNum" label="编号"></el-table-column>
<el-table-column prop="categoryName" label="广告名称"></el-table-column>
<el-table-column prop="categoryName" label="广告位置"></el-table-column>
<el-table-column prop="icon" label="广告图片" min-width="80">
<el-table-column type="selection" width="55"> </el-table-column>
<el-table-column prop="id" label="编号" min-width="120"></el-table-column>
<el-table-column prop="advertiseName" label="广告名称"></el-table-column>
<el-table-column prop="advertisePosition" label="广告位置"></el-table-column>
<el-table-column prop="positionImage" label="广告图片" min-width="80">
<template slot-scope="scope">
<el-image style="width: 50px; height: 50px" :src="scope.row.icon" :preview-src-list="[scope.row.icon]"> </el-image>
<el-image style="width: 50px; height: 50px" :src="scope.row.positionImage"> </el-image>
</template>
</el-table-column>
<el-table-column label="时间" min-width="150">
<template slot-scope="scope">
<span>开始时间{{ scope.row.createTime }}</span>
<span>开始时间{{ scope.row.startTime }}</span>
<br />
<span>到期时间{{ scope.row.updateTime }}</span>
<span>到期时间{{ scope.row.endTime }}</span>
</template>
</el-table-column>
<el-table-column prop="showFlag" label="上线/下线">
<el-table-column prop="isDownline" label="上线/下线">
<template slot-scope="scope">
<el-switch active-value="1" inactive-value="0" v-model="scope.row.showFlag" active-color="#13ce66" inactive-color="#ff4949"> </el-switch>
<el-switch
:active-value="1"
:inactive-value="0"
@change="onchangeIsShow(scope.row)"
v-model="scope.row.isDownline"
active-color="#13ce66"
inactive-color="#ff4949"
>
</el-switch>
</template>
</el-table-column>
<el-table-column prop="sort" label="排序" min-width="100" tooltip="true"></el-table-column>
<el-table-column prop="sortNumber" label="排序" min-width="50" tooltip="true"></el-table-column>
<el-table-column prop="date" label="操作" width="120" fixed="right">
<template slot-scope="scope">
<el-button type="text" @click="edit(scope.row)">编辑</el-button>
@@ -66,32 +81,35 @@
/>
</div>
<!-- 添加 编辑表单-->
<edit-from ref="edits" :FromData="FromData" @submitFail="userSearchs"></edit-from>
<el-dialog title="添加分类" :visible.sync="editDialogConfig.visible" destroy-on-close :close-on-click-modal="false">
<edit ref="edit" :parentOptions="tableData" />
<el-dialog title="添加广告" :visible.sync="addDialog" v-el-drag-dialog width="45%">
<advertisementAdd @getByPage="getByPage" @closeDialog="closeDialog" v-if="addDialog" />
</el-dialog>
<el-dialog title="修改广告" :visible.sync="updateDialog" v-el-drag-dialog width="45%">
<advertisementUpdate @getByPage="getByPage" @closeDialog="closeDialog" v-if="updateDialog" :advertisement="advertisement" />
</el-dialog>
</div>
</template>
<script>
import edit from '@/components/Category/edit'
import editFrom from '../../../components/from/from'
import productApi from '@/api/product/productAttr.js'
import advertisementAdd from './advertisementAdd'
import advertisementUpdate from './advertisementUpdate'
import marketingApi from '@/api/finance/marketing.js'
import { loadingFn } from '@/utils/validate'
export default {
name: 'product_productClassify',
components: {
editFrom,
edit
// editFrom,
advertisementAdd,
advertisementUpdate
},
data() {
return {
editDialogConfig: {
visible: false
},
addDialog: false, // 添加弹窗
updateDialog: false, // 修改弹窗
treeSelect: [],
FromData: null,
advertisement: {},
grid: {
xl: 7,
lg: 7,
@@ -100,10 +118,7 @@ export default {
xs: 24
},
loading: false,
artFrom: {
page: 1,
limit: 15
},
page: {
currentPage: 1,
pageSize: 10,
@@ -127,77 +142,60 @@ export default {
this.page.currentPage = val
this.getList()
},
// 商品分类;
goodsCategory() {},
// 列表
getList() {
loadingFn.call(
this,
'loading',
productApi.classifyGetByPage(this.page).then(res => {
marketingApi.getByPage(this.page).then(res => {
if ((res.code = 20000)) ({ list: this.tableData = [], totalCount: this.page.totalCount = 0 } = res.data)
})
)
},
pageChange(index) {
this.artFrom.page = index
this.page.currentPage = index
this.getList()
},
// 添加
addClass(parent = null) {
this.editDialogConfig.visible = true
this.$refs.edit.model = 'classifySave'
// this.$nextTick(()=>{
// this.$refs.edit.parent = parent;
// });
if (parent) {
let { categoryName, id } = parent
this.$nextTick(() => {
this.$refs.edit.editPram = Object.assign(this.$refs.edit.editPram, { parentCategoryName: categoryName, parentId: id, level: 2 })
})
}
addClass() {
this.addDialog = true
},
// 编辑
edit(row) {
this.editDialogConfig.visible = true
this.$nextTick(() => {
let { level, icon, showFlag, categoryName, sort, parentId, id } = row
console.log(this.tableData.find(item => item == parentId), 'categoryName')
if (row.level == 1) {
this.$refs.edit.model = 'classifyUpdate'
this.$refs.edit.editPram = Object.assign(this.$refs.edit.editPram, { level, icon, showFlag, categoryName, sort, parentId, id })
} else {
this.$refs.edit.editPram = Object.assign(this.$refs.edit.editPram, {
level,
icon,
showFlag,
parentCategoryName: this.tableData.find(item => item == parentId).categoryName,
categoryName,
sort,
parentId,
id
})
}
// 跳转到更新
marketingApi.get(row.id).then(res => {
this.advertisement = res.data
this.updateDialog = true
})
},
closeDialog() {
this.addDialog = false
this.updateDialog = false
},
// 修改状态
onchangeIsShow(row) {
console.log(row)
let data = {
id: row.id,
is_show: row.is_show
isDownline: row.isDownline
}
setShowApi(data)
marketingApi
.goOnlineAndGoOffline(data)
.then(async res => {
this.$message.success(res.msg)
this.getList()
})
.catch(res => {
this.$message.error(res.msg)
this.getList()
})
},
// 删除
del(row, scope) {
console.log(scope)
console.log(row)
this.$alert('请确定删除!', '提示', {
confirmButtonText: '确定',
callback: action => {
@@ -205,7 +203,7 @@ export default {
loadingFn.call(
this,
'loading',
productApi.classifyDelete(row).then(res => {
marketingApi.delete(row).then(res => {
if ((res.code = 20000)) {
this.$message.success('操作成功!')
this.handleCurrentChange()
@@ -218,7 +216,7 @@ export default {
},
// 表格搜索
userSearchs() {
this.artFrom.page = 1
this.page.currentPage = 1
this.getList()
}
}
@@ -239,8 +237,8 @@ export default {
img {
width: 100%;
height: 100%;
}
}
</style>

View File

@@ -0,0 +1,115 @@
<template>
<div class="divBox">
<!-- <el-card class="box-card">
<div style="width :100%;height:45px;line-height: 45px;background: #f3f3f3; padding-left:20px">
添加广告
</div> -->
<el-form :rules="rules" ref="form" :model="advertisement" class="formValidate" label-width="100px">
<el-row>
<el-col :span="13">
<el-form-item label="广告名称" prop="advertiseName">
<el-input v-model="advertisement.advertiseName" maxlength="249" placeholder="请输入商品名称" />
</el-form-item>
</el-col>
<el-col :span="13">
<el-form-item label="开始时间" prop="startTime">
<el-date-picker style="width:100%" v-model="advertisement.startTime" type="date" value-format="yyyy-MM-dd" placeholder="选择日期">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="13">
<el-form-item label="结束时间" prop="endTime">
<el-date-picker style="width:100%" v-model="advertisement.endTime" type="date" value-format="yyyy-MM-dd" placeholder="选择日期">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="上线/下线" prop="isDownline">
<el-radio-group v-model="advertisement.isDownline">
<el-radio :label="1">上线</el-radio>
<el-radio :label="0">下线</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col>
<el-form-item label="广告图片" prop="positionImage">
<div class="upLoadPicBox">
<upload :photo="advertisement.positionImage" @success="uploadSuccess" tip="只能上传jpg/png格式文件文件不能超过50kb"></upload>
</div>
</el-form-item>
</el-col>
<el-col :span="13">
<el-form-item label="广告链接" prop="advertiseUrl">
<el-input v-model="advertisement.advertiseUrl" type="url" placeholder="请输入广告链接" />
</el-form-item>
</el-col>
</el-row>
<el-form-item>
<el-button type="primary" class="submission" @click="handleSubmit">提交</el-button>
<el-button :size="$store.getters.size" @click="close">取消</el-button>
</el-form-item>
</el-form>
<!-- </el-card> -->
</div>
</template>
<script>
import marketingApi from '@/api/finance/marketing.js'
import upload from '@/components/Upload/index'
export default {
components: { upload },
props: {
advertisement: {
type: Object,
default() {}
}
},
data() {
return {
advertisement: { isDownline: '1' },
rules: {
advertiseName: [{ required: true, message: '请输入广告名称', trigger: 'blur' }],
startTime: [{ required: true, message: '请选择开始时间', trigger: 'change' }],
endTime: [{ required: true, message: '请选择结束时间', trigger: 'change' }],
picture: [{ required: true, message: '请上传广告图片', trigger: 'change' }],
advertiseUrl: [{ required: true, message: '请输入广告链接', trigger: 'blur' }]
}
}
},
methods: {
handleSubmit() {
this.$refs['form'].validate(valid => {
if (valid) {
this.update()
}
})
},
update() {
loadingFn.call(
this,
'loading',
marketingApi.update(this.advertisement).then(res => {
if ((res.code = 20000)) this.$message.success(res.msg)
this.$emit('closeDialog')
this.$emit('getList')
})
)
},
uploadSuccess(e, res) {
console.log(res)
if (res.code == 20000) {
this.advertisement.positionImage = res.data.publicUrl
}
},
close() {
this.$emit('closeDialog')
}
}
}
</script>
<style scoped lang="stylus"></style>

View File

@@ -2,12 +2,12 @@
<div class="article-manager">
<el-card :bordered="false" shadow="never" class="ivu-mt-16">
<div>
<el-form ref="artFrom" :model="artFrom" label-width="80px" label-position="right" inline @submit.native.prevent>
<el-form-item label="商品名称:" label-for="pid">
<el-input clearable placeholder="商品名称" v-model="artFrom.name" class="form_content_width" />
<el-form :model="page" label-width="80px" label-position="right" inline @submit.native.prevent>
<el-form-item label="商品名称:">
<el-input clearable placeholder="商品名称" v-model="page.params.productName" class="form_content_width" />
</el-form-item>
<el-form-item label="推荐状态:" label-for="store_name">
<el-select v-model="artFrom.type" placeholder="状态" clearable @keyup.enter.native="getByPage">
<el-form-item label="推荐状态:">
<el-select v-model="page.params.isRecommended" placeholder="状态" clearable @keyup.enter.native="getByPage">
<el-option label="是" value="0" />
<el-option label="否" value="1" />
</el-select>
@@ -20,18 +20,35 @@
</div>
<el-button type="primary" class="bnt" @click="addClass()">选择商品</el-button>
<el-table row-key="id" class="mt14" v-loading="loading" :data="tableData" empty-text="暂无数据">
<el-table-column prop="categoryNum" label="编号"></el-table-column>
<el-table-column prop="categoryName" label="商品名称"></el-table-column>
<el-table-column prop="showFlag" label="是否推荐">
<el-dropdown class="bnt mr14" @command="batchSelect">
<el-button>批量修改<i class="el-icon-arrow-down el-icon--right"></i></el-button>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item :command="1">取消推荐</el-dropdown-item>
<el-dropdown-item :command="2">删除</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
<el-table row-key="id" class="mt14" v-loading="loading" :data="tableData" empty-text="暂无数据">
<el-table-column type="selection" width="55"> </el-table-column>
<el-table-column prop="productId" label="编号"></el-table-column>
<el-table-column prop="productName" label="商品名称"></el-table-column>
<el-table-column prop="isRecommended" label="是否推荐">
<template slot-scope="scope">
<el-switch active-value="1" inactive-value="0" v-model="scope.row.showFlag" active-color="#13ce66" inactive-color="#ff4949"> </el-switch>
<el-switch
:active-value="0"
:inactive-value="1"
@change="onchangeIsShow(scope.row)"
v-model="scope.row.isRecommended"
active-color="#13ce66"
inactive-color="#ff4949"
>
</el-switch>
</template>
</el-table-column>
<el-table-column prop="date" label="操作" width="120" fixed="right">
<template slot-scope="scope">
<el-button type="text" @click="edit(scope.row)">置顶</el-button>
<el-button type="text" @click="topOne(scope.row)">置顶</el-button>
<el-button @click="del(scope.row, scope)" type="text">删除</el-button>
</template>
@@ -49,26 +66,15 @@
:total="page.totalCount"
/>
</div>
<!-- 添加 编辑表单-->
<edit-from ref="edits" :FromData="FromData" @submitFail="userSearchs"></edit-from>
<el-dialog title="添加分类" :visible.sync="editDialogConfig.visible" destroy-on-close :close-on-click-modal="false">
<edit ref="edit" :parentOptions="tableData" />
</el-dialog>
</div>
</template>
<script>
import edit from '@/components/Category/edit'
import editFrom from '../../../components/from/from'
import productApi from '@/api/product/productAttr.js'
import marketingApi from '@/api/finance/marketing.js'
import { loadingFn } from '@/utils/validate'
export default {
name: 'product_productClassify',
components: {
editFrom,
edit
},
components: {},
data() {
return {
editDialogConfig: {
@@ -84,14 +90,13 @@ export default {
xs: 24
},
loading: false,
artFrom: {
page: 1,
limit: 15
},
page: {
currentPage: 1,
pageSize: 10,
params: {},
params: {
type: '1'
},
totalCount: 0
},
total: 0,
@@ -118,67 +123,56 @@ export default {
loadingFn.call(
this,
'loading',
productApi.classifyGetByPage(this.page).then(res => {
marketingApi.getHomeByPage(this.page).then(res => {
if ((res.code = 20000)) ({ list: this.tableData = [], totalCount: this.page.totalCount = 0 } = res.data)
})
)
},
pageChange(index) {
this.artFrom.page = index
this.page.currentPage = index
this.getList()
},
// 添加
addClass(parent = null) {
this.editDialogConfig.visible = true
this.$refs.edit.model = 'classifySave'
// this.$nextTick(()=>{
// this.$refs.edit.parent = parent;
// });
if (parent) {
let { categoryName, id } = parent
this.$nextTick(() => {
this.$refs.edit.editPram = Object.assign(this.$refs.edit.editPram, { parentCategoryName: categoryName, parentId: id, level: 2 })
})
}
},
// 编辑
edit(row) {
this.editDialogConfig.visible = true
this.$nextTick(() => {
let { level, icon, showFlag, categoryName, sort, parentId, id } = row
console.log(this.tableData.find(item => item == parentId), 'categoryName')
if (row.level == 1) {
this.$refs.edit.model = 'classifyUpdate'
this.$refs.edit.editPram = Object.assign(this.$refs.edit.editPram, { level, icon, showFlag, categoryName, sort, parentId, id })
} else {
this.$refs.edit.editPram = Object.assign(this.$refs.edit.editPram, {
level,
icon,
showFlag,
parentCategoryName: this.tableData.find(item => item == parentId).categoryName,
categoryName,
sort,
parentId,
id
})
}
})
},
// 修改状态
onchangeIsShow(row) {
console.log(row)
let data = {
id: row.id,
is_show: row.is_show
isRecommended: row.isRecommended
}
setShowApi(data)
marketingApi
.whetherToRecommend(data)
.then(async res => {
this.$message.success(res.msg)
this.getList()
})
.catch(res => {
this.$message.error(res.msg)
this.getList()
})
},
// 置顶
topOne(row, scope) {
console.log(row)
this.$alert('请确定将改商品置顶!', '提示', {
confirmButtonText: '确定',
callback: action => {
if (action == 'confirm') {
loadingFn.call(
this,
'loading',
marketingApi.topOne(row.id).then(res => {
if ((res.code = 20000)) {
this.$message.success('操作成功!')
this.handleCurrentChange()
}
})
)
}
}
})
},
// 删除
del(row, scope) {
console.log(scope)
@@ -189,7 +183,7 @@ export default {
loadingFn.call(
this,
'loading',
productApi.classifyDelete(row).then(res => {
marketingApi.homeDelete(row).then(res => {
if ((res.code = 20000)) {
this.$message.success('操作成功!')
this.handleCurrentChange()
@@ -202,7 +196,7 @@ export default {
},
// 表格搜索
userSearchs() {
this.artFrom.page = 1
this.page.currentPage = 1
this.getList()
}
}

View File

@@ -2,12 +2,12 @@
<div class="article-manager">
<el-card :bordered="false" shadow="never" class="ivu-mt-16">
<div>
<el-form ref="artFrom" :model="artFrom" label-width="80px" label-position="right" inline @submit.native.prevent>
<el-form-item label="商品名称:" label-for="pid">
<el-input clearable placeholder="商品名称" v-model="artFrom.name" class="form_content_width" />
<el-form :model="page" label-width="80px" label-position="right" inline @submit.native.prevent>
<el-form-item label="商品名称:">
<el-input clearable placeholder="商品名称" v-model="page.params.productName" class="form_content_width" />
</el-form-item>
<el-form-item label="推荐状态:" label-for="store_name">
<el-select v-model="artFrom.type" placeholder="状态" clearable @keyup.enter.native="getByPage">
<el-form-item label="推荐状态:">
<el-select v-model="page.params.isRecommended" placeholder="状态" clearable @keyup.enter.native="getByPage">
<el-option label="是" value="0" />
<el-option label="否" value="1" />
</el-select>
@@ -20,18 +20,35 @@
</div>
<el-button type="primary" class="bnt" @click="addClass()">选择商品</el-button>
<el-table row-key="id" class="mt14" v-loading="loading" :data="tableData" empty-text="暂无数据">
<el-table-column prop="categoryNum" label="编号"></el-table-column>
<el-table-column prop="categoryName" label="商品名称"></el-table-column>
<el-table-column prop="showFlag" label="是否推荐">
<el-dropdown class="bnt mr14" @command="batchSelect">
<el-button>批量修改<i class="el-icon-arrow-down el-icon--right"></i></el-button>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item :command="1">取消推荐</el-dropdown-item>
<el-dropdown-item :command="2">删除</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
<el-table row-key="id" class="mt14" v-loading="loading" :data="tableData" empty-text="暂无数据">
<el-table-column type="selection" width="55"> </el-table-column>
<el-table-column prop="productId" label="编号"></el-table-column>
<el-table-column prop="productName" label="商品名称"></el-table-column>
<el-table-column prop="isRecommended" label="是否推荐">
<template slot-scope="scope">
<el-switch active-value="1" inactive-value="0" v-model="scope.row.showFlag" active-color="#13ce66" inactive-color="#ff4949"> </el-switch>
<el-switch
:active-value="0"
:inactive-value="1"
@change="onchangeIsShow(scope.row)"
v-model="scope.row.isRecommended"
active-color="#13ce66"
inactive-color="#ff4949"
>
</el-switch>
</template>
</el-table-column>
<el-table-column prop="date" label="操作" width="120" fixed="right">
<template slot-scope="scope">
<el-button type="text" @click="edit(scope.row)">置顶</el-button>
<el-button type="text" @click="topOne(scope.row)">置顶</el-button>
<el-button @click="del(scope.row, scope)" type="text">删除</el-button>
</template>
@@ -49,26 +66,15 @@
:total="page.totalCount"
/>
</div>
<!-- 添加 编辑表单-->
<edit-from ref="edits" :FromData="FromData" @submitFail="userSearchs"></edit-from>
<el-dialog title="添加分类" :visible.sync="editDialogConfig.visible" destroy-on-close :close-on-click-modal="false">
<edit ref="edit" :parentOptions="tableData" />
</el-dialog>
</div>
</template>
<script>
import edit from '@/components/Category/edit'
import editFrom from '../../../components/from/from'
import productApi from '@/api/product/productAttr.js'
import marketingApi from '@/api/finance/marketing.js'
import { loadingFn } from '@/utils/validate'
export default {
name: 'product_productClassify',
components: {
editFrom,
edit
},
components: {},
data() {
return {
editDialogConfig: {
@@ -84,14 +90,13 @@ export default {
xs: 24
},
loading: false,
artFrom: {
page: 1,
limit: 15
},
page: {
currentPage: 1,
pageSize: 10,
params: {},
params: {
type: '3'
},
totalCount: 0
},
total: 0,
@@ -118,67 +123,55 @@ export default {
loadingFn.call(
this,
'loading',
productApi.classifyGetByPage(this.page).then(res => {
marketingApi.getHomeByPage(this.page).then(res => {
if ((res.code = 20000)) ({ list: this.tableData = [], totalCount: this.page.totalCount = 0 } = res.data)
})
)
},
pageChange(index) {
this.artFrom.page = index
this.page.currentPage = index
this.getList()
},
// 添加
addClass(parent = null) {
this.editDialogConfig.visible = true
this.$refs.edit.model = 'classifySave'
// this.$nextTick(()=>{
// this.$refs.edit.parent = parent;
// });
if (parent) {
let { categoryName, id } = parent
this.$nextTick(() => {
this.$refs.edit.editPram = Object.assign(this.$refs.edit.editPram, { parentCategoryName: categoryName, parentId: id, level: 2 })
})
}
},
// 编辑
edit(row) {
this.editDialogConfig.visible = true
this.$nextTick(() => {
let { level, icon, showFlag, categoryName, sort, parentId, id } = row
console.log(this.tableData.find(item => item == parentId), 'categoryName')
if (row.level == 1) {
this.$refs.edit.model = 'classifyUpdate'
this.$refs.edit.editPram = Object.assign(this.$refs.edit.editPram, { level, icon, showFlag, categoryName, sort, parentId, id })
} else {
this.$refs.edit.editPram = Object.assign(this.$refs.edit.editPram, {
level,
icon,
showFlag,
parentCategoryName: this.tableData.find(item => item == parentId).categoryName,
categoryName,
sort,
parentId,
id
})
}
})
},
// 修改状态
onchangeIsShow(row) {
console.log(row)
let data = {
id: row.id,
is_show: row.is_show
isRecommended: row.isRecommended
}
setShowApi(data)
marketingApi
.whetherToRecommend(data)
.then(async res => {
this.$message.success(res.msg)
this.getList()
})
.catch(res => {
this.$message.error(res.msg)
this.getList()
})
},
// 置顶
topOne(row, scope) {
console.log(row)
this.$alert('请确定将改商品置顶!', '提示', {
confirmButtonText: '确定',
callback: action => {
if (action == 'confirm') {
loadingFn.call(
this,
'loading',
marketingApi.topOne(row.id).then(res => {
if ((res.code = 20000)) {
this.$message.success('操作成功!')
this.handleCurrentChange()
}
})
)
}
}
})
},
// 删除
del(row, scope) {
console.log(scope)
@@ -189,7 +182,7 @@ export default {
loadingFn.call(
this,
'loading',
productApi.classifyDelete(row).then(res => {
marketingApi.homeDelete(row).then(res => {
if ((res.code = 20000)) {
this.$message.success('操作成功!')
this.handleCurrentChange()
@@ -202,7 +195,7 @@ export default {
},
// 表格搜索
userSearchs() {
this.artFrom.page = 1
this.page.currentPage = 1
this.getList()
}
}

View File

@@ -2,12 +2,12 @@
<div class="article-manager">
<el-card :bordered="false" shadow="never" class="ivu-mt-16">
<div>
<el-form ref="artFrom" :model="artFrom" label-width="80px" label-position="right" inline @submit.native.prevent>
<el-form-item label="商品名称:" label-for="pid">
<el-input clearable placeholder="商品名称" v-model="artFrom.name" class="form_content_width" />
<el-form :model="page" label-width="80px" label-position="right" inline @submit.native.prevent>
<el-form-item label="商品名称:">
<el-input clearable placeholder="商品名称" v-model="page.params.productName" class="form_content_width" />
</el-form-item>
<el-form-item label="推荐状态:" label-for="store_name">
<el-select v-model="artFrom.type" placeholder="状态" clearable @keyup.enter.native="getByPage">
<el-form-item label="推荐状态:">
<el-select v-model="page.params.isRecommended" placeholder="状态" clearable @keyup.enter.native="getByPage">
<el-option label="是" value="0" />
<el-option label="否" value="1" />
</el-select>
@@ -20,18 +20,35 @@
</div>
<el-button type="primary" class="bnt" @click="addClass()">选择商品</el-button>
<el-table row-key="id" class="mt14" v-loading="loading" :data="tableData" empty-text="暂无数据">
<el-table-column prop="categoryNum" label="编号"></el-table-column>
<el-table-column prop="categoryName" label="商品名称"></el-table-column>
<el-table-column prop="showFlag" label="是否推荐">
<el-dropdown class="bnt mr14" @command="batchSelect">
<el-button>批量修改<i class="el-icon-arrow-down el-icon--right"></i></el-button>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item :command="1">取消推荐</el-dropdown-item>
<el-dropdown-item :command="2">删除</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
<el-table row-key="id" class="mt14" v-loading="loading" :data="tableData" empty-text="暂无数据">
<el-table-column type="selection" width="55"> </el-table-column>
<el-table-column prop="productId" label="编号"></el-table-column>
<el-table-column prop="productName" label="商品名称"></el-table-column>
<el-table-column prop="isRecommended" label="是否推荐">
<template slot-scope="scope">
<el-switch active-value="1" inactive-value="0" v-model="scope.row.showFlag" active-color="#13ce66" inactive-color="#ff4949"> </el-switch>
<el-switch
:active-value="0"
:inactive-value="1"
@change="onchangeIsShow(scope.row)"
v-model="scope.row.isRecommended"
active-color="#13ce66"
inactive-color="#ff4949"
>
</el-switch>
</template>
</el-table-column>
<el-table-column prop="date" label="操作" width="120" fixed="right">
<template slot-scope="scope">
<el-button type="text" @click="edit(scope.row)">置顶</el-button>
<el-button type="text" @click="topOne(scope.row)">置顶</el-button>
<el-button @click="del(scope.row, scope)" type="text">删除</el-button>
</template>
@@ -49,26 +66,15 @@
:total="page.totalCount"
/>
</div>
<!-- 添加 编辑表单-->
<edit-from ref="edits" :FromData="FromData" @submitFail="userSearchs"></edit-from>
<el-dialog title="添加分类" :visible.sync="editDialogConfig.visible" destroy-on-close :close-on-click-modal="false">
<edit ref="edit" :parentOptions="tableData" />
</el-dialog>
</div>
</template>
<script>
import edit from '@/components/Category/edit'
import editFrom from '../../../components/from/from'
import productApi from '@/api/product/productAttr.js'
import marketingApi from '@/api/finance/marketing.js'
import { loadingFn } from '@/utils/validate'
export default {
name: 'product_productClassify',
components: {
editFrom,
edit
},
components: {},
data() {
return {
editDialogConfig: {
@@ -84,14 +90,13 @@ export default {
xs: 24
},
loading: false,
artFrom: {
page: 1,
limit: 15
},
page: {
currentPage: 1,
pageSize: 10,
params: {},
params: {
type: '2'
},
totalCount: 0
},
total: 0,
@@ -118,67 +123,55 @@ export default {
loadingFn.call(
this,
'loading',
productApi.classifyGetByPage(this.page).then(res => {
marketingApi.getHomeByPage(this.page).then(res => {
if ((res.code = 20000)) ({ list: this.tableData = [], totalCount: this.page.totalCount = 0 } = res.data)
})
)
},
pageChange(index) {
this.artFrom.page = index
this.page.currentPage = index
this.getList()
},
// 添加
addClass(parent = null) {
this.editDialogConfig.visible = true
this.$refs.edit.model = 'classifySave'
// this.$nextTick(()=>{
// this.$refs.edit.parent = parent;
// });
if (parent) {
let { categoryName, id } = parent
this.$nextTick(() => {
this.$refs.edit.editPram = Object.assign(this.$refs.edit.editPram, { parentCategoryName: categoryName, parentId: id, level: 2 })
})
}
},
// 编辑
edit(row) {
this.editDialogConfig.visible = true
this.$nextTick(() => {
let { level, icon, showFlag, categoryName, sort, parentId, id } = row
console.log(this.tableData.find(item => item == parentId), 'categoryName')
if (row.level == 1) {
this.$refs.edit.model = 'classifyUpdate'
this.$refs.edit.editPram = Object.assign(this.$refs.edit.editPram, { level, icon, showFlag, categoryName, sort, parentId, id })
} else {
this.$refs.edit.editPram = Object.assign(this.$refs.edit.editPram, {
level,
icon,
showFlag,
parentCategoryName: this.tableData.find(item => item == parentId).categoryName,
categoryName,
sort,
parentId,
id
})
}
})
},
// 修改状态
onchangeIsShow(row) {
console.log(row)
let data = {
id: row.id,
is_show: row.is_show
isRecommended: row.isRecommended
}
setShowApi(data)
marketingApi
.whetherToRecommend(data)
.then(async res => {
this.$message.success(res.msg)
this.getList()
})
.catch(res => {
this.$message.error(res.msg)
this.getList()
})
},
// 置顶
topOne(row, scope) {
console.log(row)
this.$alert('请确定将改商品置顶!', '提示', {
confirmButtonText: '确定',
callback: action => {
if (action == 'confirm') {
loadingFn.call(
this,
'loading',
marketingApi.topOne(row.id).then(res => {
if ((res.code = 20000)) {
this.$message.success('操作成功!')
this.handleCurrentChange()
}
})
)
}
}
})
},
// 删除
del(row, scope) {
console.log(scope)
@@ -189,7 +182,7 @@ export default {
loadingFn.call(
this,
'loading',
productApi.classifyDelete(row).then(res => {
marketingApi.homeDelete(row).then(res => {
if ((res.code = 20000)) {
this.$message.success('操作成功!')
this.handleCurrentChange()
@@ -202,7 +195,7 @@ export default {
},
// 表格搜索
userSearchs() {
this.artFrom.page = 1
this.page.currentPage = 1
this.getList()
}
}