Commit 32ea87b0 authored by Junling Bu's avatar Junling Bu
Browse files

[litemall-admin, litemall-admin-api]: 管理后台调整

parent a86ec8b6
...@@ -15,36 +15,25 @@ ...@@ -15,36 +15,25 @@
<!-- 查询结果 --> <!-- 查询结果 -->
<el-table size="small" :data="list" v-loading="listLoading" element-loading-text="正在查询中。。。" border fit highlight-current-row> <el-table size="small" :data="list" v-loading="listLoading" element-loading-text="正在查询中。。。" border fit highlight-current-row>
<el-table-column type="expand"> <el-table-column align="center" label="品牌商ID" prop="id">
<template slot-scope="props">
</template>
</el-table-column>
<el-table-column align="center" width="150px" label="品牌商ID" prop="id" sortable>
</el-table-column>
<el-table-column align="center" min-width="100px" label="品牌商名称" prop="name">
</el-table-column>
<el-table-column align="center" min-width="300px" label="介绍" prop="simpleDesc">
</el-table-column> </el-table-column>
<el-table-column align="center" min-width="50px" label="底价" prop="floorPrice"> <el-table-column align="center" label="品牌商名称" prop="name">
</el-table-column> </el-table-column>
<el-table-column align="center" min-width="100px" label="是否显示" prop="isShow"> <el-table-column align="center" property="picUrl" label="品牌商图片">
<template slot-scope="scope"> <template slot-scope="scope">
<el-tag :type="scope.row.isShow ? 'success' : 'error' ">{{scope.row.isShow ? '可显示' : '不显示'}}</el-tag> <img :src="scope.row.picUrl" width="80" v-if="scope.row.picUrl"/>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column align="center" min-width="100px" label="是否新上" prop="isNew"> <el-table-column align="center" min-width="400px" label="介绍" prop="desc">
<template slot-scope="scope"> </el-table-column>
<el-tag :type="scope.row.isNew ? 'success' : 'error' ">{{scope.row.isShow ? '' : ''}}</el-tag>
</template> <el-table-column align="center" label="底价" prop="floorPrice">
</el-table-column> </el-table-column>
<el-table-column align="center" label="操作" width="250" class-name="small-padding fixed-width"> <el-table-column align="center" label="操作" width="200" class-name="small-padding fixed-width">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button type="primary" size="mini" @click="handleUpdate(scope.row)">编辑</el-button> <el-button type="primary" size="mini" @click="handleUpdate(scope.row)">编辑</el-button>
<el-button type="danger" size="mini" @click="handleDelete(scope.row)">删除</el-button> <el-button type="danger" size="mini" @click="handleDelete(scope.row)">删除</el-button>
...@@ -66,51 +55,17 @@ ...@@ -66,51 +55,17 @@
<el-input v-model="dataForm.name"></el-input> <el-input v-model="dataForm.name"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="介绍" prop="simpleDesc"> <el-form-item label="介绍" prop="simpleDesc">
<el-input v-model="dataForm.simpleDesc"></el-input> <el-input v-model="dataForm.desc"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="品牌商图片" prop="picUrl"> <el-form-item label="品牌商图片" prop="picUrl">
<el-input v-model="dataForm.picUrl"></el-input> <el-upload class="avatar-uploader" :action='uploadPath' list-type="picture-card" :show-file-list="false" accept=".jpg,.jpeg,.png,.gif" :on-success="uploadPicUrl">
<el-upload action="#" list-type="picture" :show-file-list="false" :limit="1" :http-request="uploadPicUrl"> <img v-if="dataForm.picUrl" :src="dataForm.picUrl" class="avatar">
<el-button size="small" type="primary">点击上传</el-button> <i v-else class="el-icon-plus avatar-uploader-icon"></i>
</el-upload>
</el-form-item>
<el-form-item label="宣传图片" prop="listPicUrl">
<el-input v-model="dataForm.listPicUrl"></el-input>
<el-upload action="#" list-type="picture" :show-file-list="false" :limit="1" :http-request="uploadListPicUrl">
<el-button size="small" type="primary">点击上传</el-button>
</el-upload>
</el-form-item>
<el-form-item label="APP宣传图片" prop="appListPicUrl">
<el-input v-model="dataForm.appListPicUrl"></el-input>
<el-upload action="#" list-type="picture" :show-file-list="false" :limit="1" :http-request="uploadAppListPicUrl">
<el-button size="small" type="primary">点击上传</el-button>
</el-upload> </el-upload>
</el-form-item> </el-form-item>
<el-form-item label="底价" prop="floorPrice"> <el-form-item label="底价" prop="floorPrice">
<el-input v-model="dataForm.floorPrice"></el-input> <el-input v-model="dataForm.floorPrice"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="是否显示" prop="isShow">
<el-select v-model="dataForm.isShow" placeholder="请选择">
<el-option label="显示" :value="true">
</el-option>
<el-option label="不显示" :value="false">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="是否新上" prop="isNew">
<el-select v-model="dataForm.isNew" placeholder="请选择">
<el-option label="新上" :value="true">
</el-option>
<el-option label="不是新上" :value="false">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="新上宣传图片" prop="newPicUrl" v-if="dataForm.isNew === 'true'">
<el-input v-model="dataForm.newPicUrl"></el-input>
<el-upload action="#" list-type="picture" :show-file-list="false" :limit="1" :http-request="uploadNewPicUrl">
<el-button size="small" type="primary">点击上传</el-button>
</el-upload>
</el-form-item>
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button @click="dialogFormVisible = false">取消</el-button> <el-button @click="dialogFormVisible = false">取消</el-button>
...@@ -123,27 +78,40 @@ ...@@ -123,27 +78,40 @@
</template> </template>
<style> <style>
.demo-table-expand { .avatar-uploader .el-upload {
font-size: 0; border: 1px dashed #d9d9d9;
border-radius: 6px;
cursor: pointer;
position: relative;
overflow: hidden;
}
.avatar-uploader .el-upload:hover {
border-color: #20a0ff;
} }
.demo-table-expand label { .avatar-uploader-icon {
width: 200px; font-size: 28px;
color: #99a9bf; color: #8c939d;
width: 120px;
height: 120px;
line-height: 120px;
text-align: center;
} }
.demo-table-expand .el-form-item { .avatar {
margin-right: 0; width: 120px;
margin-bottom: 0; height: 120px;
display: block;
} }
</style> </style>
<script> <script>
import { listBrand, createBrand, updateBrand, deleteBrand } from '@/api/brand' import { listBrand, createBrand, updateBrand, deleteBrand } from '@/api/brand'
import { createStorage } from '@/api/storage' import { uploadPath } from '@/api/storage'
export default { export default {
name: 'Brand', name: 'Brand',
data() { data() {
return { return {
uploadPath,
list: undefined, list: undefined,
total: undefined, total: undefined,
listLoading: true, listLoading: true,
...@@ -157,14 +125,9 @@ export default { ...@@ -157,14 +125,9 @@ export default {
dataForm: { dataForm: {
id: undefined, id: undefined,
name: '', name: '',
simpleDesc: '', desc: '',
floorPrice: undefined, floorPrice: undefined,
picUrl: undefined, picUrl: undefined
listPicUrl: undefined,
appListPicUrl: undefined,
isShow: undefined,
isNew: undefined,
newPicUrl: undefined
}, },
dialogFormVisible: false, dialogFormVisible: false,
dialogStatus: '', dialogStatus: '',
...@@ -173,7 +136,7 @@ export default { ...@@ -173,7 +136,7 @@ export default {
create: '创建' create: '创建'
}, },
rules: { rules: {
name: [{ required: true, message: '类目名称不能为空', trigger: 'blur' }] name: [{ required: true, message: '品牌商名称不能为空', trigger: 'blur' }]
}, },
downloadLoading: false downloadLoading: false
} }
...@@ -210,14 +173,9 @@ export default { ...@@ -210,14 +173,9 @@ export default {
this.dataForm = { this.dataForm = {
id: undefined, id: undefined,
name: '', name: '',
simpleDesc: '', desc: '',
floorPrice: undefined, floorPrice: undefined,
picUrl: undefined, picUrl: undefined
listPicUrl: undefined,
appListPicUrl: undefined,
isShow: undefined,
isNew: undefined,
newPicUrl: undefined
} }
}, },
handleCreate() { handleCreate() {
...@@ -228,41 +186,8 @@ export default { ...@@ -228,41 +186,8 @@ export default {
this.$refs['dataForm'].clearValidate() this.$refs['dataForm'].clearValidate()
}) })
}, },
uploadPicUrl(item) { uploadPicUrl: function(response) {
const formData = new FormData() this.dataForm.picUrl = response.data.data.url
formData.append('file', item.file)
createStorage(formData).then(res => {
this.dataForm.picUrl = res.data.data.url
}).catch(() => {
this.$message.error('上传失败,请重新上传')
})
},
uploadListPicUrl(item) {
const formData = new FormData()
formData.append('file', item.file)
createStorage(formData).then(res => {
this.dataForm.listPicUrl = res.data.data.url
}).catch(() => {
this.$message.error('上传失败,请重新上传')
})
},
uploadAppListPicUrl(item) {
const formData = new FormData()
formData.append('file', item.file)
createStorage(formData).then(res => {
this.dataForm.appListPicUrl = res.data.data.url
}).catch(() => {
this.$message.error('上传失败,请重新上传')
})
},
uploadNewPicUrl(item) {
const formData = new FormData()
formData.append('file', item.file)
createStorage(formData).then(res => {
this.dataForm.newPicUrl = res.data.data.url
}).catch(() => {
this.$message.error('上传失败,请重新上传')
})
}, },
createData() { createData() {
this.$refs['dataForm'].validate((valid) => { this.$refs['dataForm'].validate((valid) => {
...@@ -325,8 +250,8 @@ export default { ...@@ -325,8 +250,8 @@ export default {
handleDownload() { handleDownload() {
this.downloadLoading = true this.downloadLoading = true
import('@/vendor/Export2Excel').then(excel => { import('@/vendor/Export2Excel').then(excel => {
const tHeader = ['品牌商ID', '品牌商名称', '介绍', '低价', '是否显示', '品牌商图片', '宣传图片', 'APP宣传图片', '是否新上', '新上宣传图片'] const tHeader = ['品牌商ID', '品牌商名称', '介绍', '低价', '品牌商图片']
const filterVal = ['id', 'name', 'simpleDesc', 'floorPrice', 'isShow', 'picUrl', 'listPicUrl', 'appListPicUrl', 'isNew', 'newPicUrl'] const filterVal = ['id', 'name', 'desc', 'floorPrice', 'picUrl']
excel.export_json_to_excel2(tHeader, this.list, filterVal, '品牌商信息') excel.export_json_to_excel2(tHeader, this.list, filterVal, '品牌商信息')
this.downloadLoading = false this.downloadLoading = false
}) })
......
...@@ -15,54 +15,41 @@ ...@@ -15,54 +15,41 @@
<!-- 查询结果 --> <!-- 查询结果 -->
<el-table size="small" :data="list" v-loading="listLoading" element-loading-text="正在查询中。。。" border fit highlight-current-row> <el-table size="small" :data="list" v-loading="listLoading" element-loading-text="正在查询中。。。" border fit highlight-current-row>
<el-table-column type="expand"> <el-table-column align="center" label="类目ID" prop="id">
<template slot-scope="props"> </el-table-column>
<el-form label-position="left" class="demo-table-expand">
<el-form-item label="首页页面类目图标"> <el-table-column align="center" label="类目名" prop="name">
<img :src="props.row.iconUrl"> </el-table-column>
</el-form-item>
<el-form-item label="首页页面类目横幅图片"> <el-table-column align="center" property="iconUrl" label="类目图标">
<img :src="props.row.bannerUrl"> <template slot-scope="scope">
</el-form-item> <img :src="scope.row.iconUrl" width="40" v-if="scope.row.iconUrl"/>
<el-form-item label="类目页标题">
<span>{{ props.row.frontName }}</span>
</el-form-item>
<el-form-item label="类目页介绍">
<span>{{ props.row.frontDesc }}</span>
</el-form-item>
<el-form-item label="类目页横幅">
<img :src="props.row.wapBannerUrl">
</el-form-item>
</el-form>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column align="center" width="100px" label="类目ID" prop="id" sortable> <el-table-column align="center" property="picUrl" label="类目图片">
<template slot-scope="scope">
<img :src="scope.row.picUrl" width="80" v-if="scope.row.picUrl"/>
</template>
</el-table-column> </el-table-column>
<el-table-column align="center" min-width="100px" label="名称" prop="name"> <el-table-column align="center" label="关键字" prop="keyword">
</el-table-column> </el-table-column>
<el-table-column align="center" min-width="100px" label="关键字" prop="keyword"> <el-table-column align="center" min-width="100" label="简介" prop="desc">
</el-table-column> </el-table-column>
<el-table-column align="center" min-width="100px" label="级别" prop="level" <el-table-column align="center" label="级别" prop="level"
:filters="[{ text: '一级类目', value: 'L1' }, { text: '二级类目', value: 'L2' }]" :filter-method="filterLevel"> :filters="[{ text: '一级类目', value: 'L1' }, { text: '二级类目', value: 'L2' }]" :filter-method="filterLevel">
<template slot-scope="scope"> <template slot-scope="scope">
<el-tag :type="scope.row.level === 'L1' ? 'primary' : 'info' ">{{scope.row.level === 'L1' ? '一级类目' : '二级类目'}}</el-tag> <el-tag :type="scope.row.level === 'L1' ? 'primary' : 'info' ">{{scope.row.level === 'L1' ? '一级类目' : '二级类目'}}</el-tag>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column align="center" min-width="100px" label="父类目ID" prop="parentId"> <el-table-column align="center" label="父类目ID" prop="pid">
</el-table-column>
<el-table-column align="center" min-width="100px" label="是否显示" prop="isShow">
<template slot-scope="scope">
<el-tag :type="scope.row.isShow ? 'success' : 'error' ">{{scope.row.isShow ? '可显示' : '不显示'}}</el-tag>
</template>
</el-table-column> </el-table-column>
<el-table-column align="center" label="操作" width="250" class-name="small-padding fixed-width"> <el-table-column align="center" label="操作" width="200" class-name="small-padding fixed-width">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button type="primary" size="mini" @click="handleUpdate(scope.row)">编辑</el-button> <el-button type="primary" size="mini" @click="handleUpdate(scope.row)">编辑</el-button>
<el-button type="danger" size="mini" @click="handleDelete(scope.row)">删除</el-button> <el-button type="danger" size="mini" @click="handleDelete(scope.row)">删除</el-button>
...@@ -83,10 +70,10 @@ ...@@ -83,10 +70,10 @@
<el-form-item label="类目名称" prop="name"> <el-form-item label="类目名称" prop="name">
<el-input v-model="dataForm.name"></el-input> <el-input v-model="dataForm.name"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="类目关键字" prop="keyword"> <el-form-item label="关键字" prop="keyword">
<el-input v-model="dataForm.keyword"></el-input> <el-input v-model="dataForm.keyword"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="类目级别" prop="level"> <el-form-item label="级别" prop="level">
<el-select v-model="dataForm.level" placeholder="请选择"> <el-select v-model="dataForm.level" placeholder="请选择">
<el-option label="一级类目" value="L1"> <el-option label="一级类目" value="L1">
</el-option> </el-option>
...@@ -94,35 +81,26 @@ ...@@ -94,35 +81,26 @@
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="父类目" prop="parentId" v-if="dataForm.level === 'L2'"> <el-form-item label="父类目" prop="pid" v-if="dataForm.level === 'L2'">
<el-select v-model="dataForm.parentId" placeholder="请选择"> <el-select v-model="dataForm.pid">
<el-option v-for="(key, val) in catL1" :key="key" :label="key" :value="val"> <el-option v-for="item in catL1" :key="item.value" :label="item.label" :value="item.value">
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="图标" prop="iconUrl"> <el-form-item label="类目图标" prop="iconUrl">
<el-input v-model="dataForm.iconUrl"></el-input> <el-upload class="avatar-uploader" :action='uploadPath' list-type="picture-card" :show-file-list="false" accept=".jpg,.jpeg,.png,.gif" :on-success="uploadIconUrl">
<el-upload action="#" list-type="picture" :show-file-list="false" :limit="1" :http-request="handleIconUrl"> <img v-if="dataForm.iconUrl" :src="dataForm.iconUrl" class="avatar">
<el-button size="small" type="primary">点击上传</el-button> <i v-else class="el-icon-plus avatar-uploader-icon"></i>
</el-upload> </el-upload>
</el-form-item> </el-form-item>
<el-form-item label="首页横幅" prop="bannerUrl"> <el-form-item label="类目图片" prop="picUrl">
<el-input v-model="dataForm.bannerUrl"></el-input> <el-upload class="avatar-uploader" :action='uploadPath' list-type="picture-card" :show-file-list="false" accept=".jpg,.jpeg,.png,.gif" :on-success="uploadPicUrl">
<el-upload action="#" list-type="picture" :show-file-list="false" :limit="1" :http-request="handleBannerUrl"> <img v-if="dataForm.picUrl" :src="dataForm.picUrl" class="avatar">
<el-button size="small" type="primary">点击上传</el-button> <i v-else class="el-icon-plus avatar-uploader-icon"></i>
</el-upload> </el-upload>
</el-form-item> </el-form-item>
<el-form-item label="类目页标题" prop="frontName"> <el-form-item label="类目简介" prop="desc">
<el-input v-model="dataForm.frontName"></el-input> <el-input v-model="dataForm.desc"></el-input>
</el-form-item>
<el-form-item label="类目页介绍" prop="frontDesc">
<el-input v-model="dataForm.frontDesc"></el-input>
</el-form-item>
<el-form-item label="类目页横幅" prop="wapBannerUrl">
<el-input v-model="dataForm.wapBannerUrl"></el-input>
<el-upload action="#" list-type="picture" :show-file-list="false" :limit="1" :http-request="handleWapBannerUrl">
<el-button size="small" type="primary">点击上传</el-button>
</el-upload>
</el-form-item> </el-form-item>
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
...@@ -136,27 +114,40 @@ ...@@ -136,27 +114,40 @@
</template> </template>
<style> <style>
.demo-table-expand { .avatar-uploader .el-upload {
font-size: 0; border: 1px dashed #d9d9d9;
border-radius: 6px;
cursor: pointer;
position: relative;
overflow: hidden;
}
.avatar-uploader .el-upload:hover {
border-color: #20a0ff;
} }
.demo-table-expand label { .avatar-uploader-icon {
width: 200px; font-size: 28px;
color: #99a9bf; color: #8c939d;
width: 120px;
height: 120px;
line-height: 120px;
text-align: center;
} }
.demo-table-expand .el-form-item { .avatar {
margin-right: 0; width: 120px;
margin-bottom: 0; height: 120px;
display: block;
} }
</style> </style>
<script> <script>
import { listCategory, listCatL1, createCategory, updateCategory, deleteCategory } from '@/api/category' import { listCategory, listCatL1, createCategory, updateCategory, deleteCategory } from '@/api/category'
import { createStorage } from '@/api/storage' import { uploadPath } from '@/api/storage'
export default { export default {
name: 'Category', name: 'Category',
data() { data() {
return { return {
uploadPath,
list: undefined, list: undefined,
total: undefined, total: undefined,
listLoading: true, listLoading: true,
...@@ -172,14 +163,11 @@ export default { ...@@ -172,14 +163,11 @@ export default {
id: undefined, id: undefined,
name: '', name: '',
keyword: '', keyword: '',
level: 'L1', level: 'L2',
parentId: '', pid: 1005000,
isShow: 'true', desc: '',
frontName: '',
frontDesc: '',
iconUrl: undefined, iconUrl: undefined,
bannerUrl: undefined, picUrl: undefined
wapBannerUrl: undefined
}, },
dialogFormVisible: false, dialogFormVisible: false,
dialogStatus: '', dialogStatus: '',
...@@ -188,8 +176,7 @@ export default { ...@@ -188,8 +176,7 @@ export default {
create: '创建' create: '创建'
}, },
rules: { rules: {
name: [{ required: true, message: '类目名称不能为空', trigger: 'blur' }], name: [{ required: true, message: '类目名不能为空', trigger: 'blur' }]
keyword: [{ required: true, message: '类目关键字不能为空', trigger: 'blur' }]
}, },
downloadLoading: false downloadLoading: false
} }
...@@ -233,14 +220,11 @@ export default { ...@@ -233,14 +220,11 @@ export default {
id: undefined, id: undefined,
name: '', name: '',
keyword: '', keyword: '',
level: 'L1', level: 'L2',
parentId: '', pid: 1005000,
isShow: 'true', desc: '',
frontName: '',
frontDesc: '',
iconUrl: undefined, iconUrl: undefined,
bannerUrl: undefined, picUrl: undefined
wapBannerUrl: undefined
} }
}, },
filterLevel(value, row) { filterLevel(value, row) {
...@@ -254,32 +238,11 @@ export default { ...@@ -254,32 +238,11 @@ export default {
this.$refs['dataForm'].clearValidate() this.$refs['dataForm'].clearValidate()
}) })
}, },
handleIconUrl(item) { uploadIconUrl: function(response) {
const formData = new FormData() this.dataForm.iconUrl = response.data.data.url
formData.append('file', item.file)
createStorage(formData).then(res => {
this.dataForm.iconUrl = res.data.data.url
}).catch(() => {
this.$message.error('上传失败,请重新上传')
})
}, },
handleBannerUrl(item) { uploadPicUrl: function(response) {
const formData = new FormData() this.dataForm.picUrl = response.data.data.url
formData.append('file', item.file)
createStorage(formData).then(res => {
this.dataForm.bannerUrl = res.data.data.url
}).catch(() => {
this.$message.error('上传失败,请重新上传')
})
},
handleWapBannerUrl(item) {
const formData = new FormData()
formData.append('file', item.file)
createStorage(formData).then(res => {
this.dataForm.wapBannerUrl = res.data.data.url
}).catch(() => {
this.$message.error('上传失败,请重新上传')
})
}, },
createData() { createData() {
this.$refs['dataForm'].validate((valid) => { this.$refs['dataForm'].validate((valid) => {
...@@ -342,8 +305,8 @@ export default { ...@@ -342,8 +305,8 @@ export default {
handleDownload() { handleDownload() {
this.downloadLoading = true this.downloadLoading = true
import('@/vendor/Export2Excel').then(excel => { import('@/vendor/Export2Excel').then(excel => {
const tHeader = ['类目ID', '名称', '关键字', '级别', '父类目ID', '是否显示', '图标', '首页横幅', '类目页标题', '类目页介绍', '类目页横幅'] const tHeader = ['类目ID', '名称', '关键字', '级别', '父类目ID', '类目图标', '类目图片', '简介']
const filterVal = ['id', 'name', 'keyword', 'level', 'parentId', 'isShow', 'iconUrl', 'bannerUrl', 'frontName', 'frontDesc', 'wapBannerUrl'] const filterVal = ['id', 'name', 'keyword', 'level', 'pid', 'iconUrl', 'picUrl', 'desc']
excel.export_json_to_excel2(tHeader, this.list, filterVal, '商品类目信息') excel.export_json_to_excel2(tHeader, this.list, filterVal, '商品类目信息')
this.downloadLoading = false this.downloadLoading = false
}) })
......
...@@ -24,7 +24,7 @@ ...@@ -24,7 +24,7 @@
<el-table-column align="center" min-width="300px" label="跳转链接" prop="url"> <el-table-column align="center" min-width="300px" label="跳转链接" prop="url">
</el-table-column> </el-table-column>
<el-table-column align="center" min-width="100px" label="是否热门" prop="isHot"> <el-table-column align="center" min-width="100px" label="是否推荐" prop="isHot">
<template slot-scope="scope"> <template slot-scope="scope">
<el-tag :type="scope.row.isHot ? 'success' : 'error' ">{{scope.row.isHot ? '' : ''}}</el-tag> <el-tag :type="scope.row.isHot ? 'success' : 'error' ">{{scope.row.isHot ? '' : ''}}</el-tag>
</template> </template>
...@@ -36,12 +36,6 @@ ...@@ -36,12 +36,6 @@
</template> </template>
</el-table-column> </el-table-column>
<el-table-column align="center" min-width="100px" label="是否显示" prop="isShow">
<template slot-scope="scope">
<el-tag :type="scope.row.isShow ? 'success' : 'error' ">{{scope.row.isShow ? '可显示' : '不显示'}}</el-tag>
</template>
</el-table-column>
<el-table-column align="center" label="操作" width="250" class-name="small-padding fixed-width"> <el-table-column align="center" label="操作" width="250" class-name="small-padding fixed-width">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button type="primary" size="mini" @click="handleUpdate(scope.row)">编辑</el-button> <el-button type="primary" size="mini" @click="handleUpdate(scope.row)">编辑</el-button>
...@@ -66,11 +60,11 @@ ...@@ -66,11 +60,11 @@
<el-form-item label="跳转链接" prop="url"> <el-form-item label="跳转链接" prop="url">
<el-input v-model="dataForm.url"></el-input> <el-input v-model="dataForm.url"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="是否热门" prop="isHot"> <el-form-item label="是否推荐" prop="isHot">
<el-select v-model="dataForm.isHot" placeholder="请选择"> <el-select v-model="dataForm.isHot" placeholder="请选择">
<el-option label="热门" :value="true"> <el-option label="推荐" :value="true">
</el-option> </el-option>
<el-option label="非热门" :value="false"> <el-option label="普通" :value="false">
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
...@@ -82,14 +76,6 @@ ...@@ -82,14 +76,6 @@
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="是否显示" prop="isShow">
<el-select v-model="dataForm.isShow" placeholder="请选择">
<el-option label="显示" :value="true">
</el-option>
<el-option label="不显示" :value="false">
</el-option>
</el-select>
</el-form-item>
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button @click="dialogFormVisible = false">取消</el-button> <el-button @click="dialogFormVisible = false">取消</el-button>
...@@ -101,20 +87,6 @@ ...@@ -101,20 +87,6 @@
</div> </div>
</template> </template>
<style>
.demo-table-expand {
font-size: 0;
}
.demo-table-expand label {
width: 200px;
color: #99a9bf;
}
.demo-table-expand .el-form-item {
margin-right: 0;
margin-bottom: 0;
}
</style>
<script> <script>
import { listKeyword, createKeyword, updateKeyword, deleteKeyword } from '@/api/keyword' import { listKeyword, createKeyword, updateKeyword, deleteKeyword } from '@/api/keyword'
...@@ -136,9 +108,8 @@ export default { ...@@ -136,9 +108,8 @@ export default {
id: undefined, id: undefined,
keyword: undefined, keyword: undefined,
url: undefined, url: undefined,
isNew: undefined, isHot: undefined,
isDefault: undefined, isDefault: undefined
isShow: undefined
}, },
dialogFormVisible: false, dialogFormVisible: false,
dialogStatus: '', dialogStatus: '',
...@@ -147,8 +118,7 @@ export default { ...@@ -147,8 +118,7 @@ export default {
create: '创建' create: '创建'
}, },
rules: { rules: {
keyword: [{ required: true, message: '关键词不能为空', trigger: 'blur' }], keyword: [{ required: true, message: '关键词不能为空', trigger: 'blur' }]
url: [{ required: true, message: '跳转链接称不能为空', trigger: 'blur' }]
}, },
downloadLoading: false downloadLoading: false
} }
...@@ -186,9 +156,8 @@ export default { ...@@ -186,9 +156,8 @@ export default {
id: undefined, id: undefined,
keyword: undefined, keyword: undefined,
url: undefined, url: undefined,
isNew: undefined, isHot: undefined,
isDefault: undefined, isDefault: undefined
isShow: undefined
} }
}, },
handleCreate() { handleCreate() {
...@@ -260,9 +229,9 @@ export default { ...@@ -260,9 +229,9 @@ export default {
handleDownload() { handleDownload() {
this.downloadLoading = true this.downloadLoading = true
import('@/vendor/Export2Excel').then(excel => { import('@/vendor/Export2Excel').then(excel => {
const tHeader = ['关键词ID', '关键词', '跳转链接', '是否新上', '是否默认', '是否显示'] const tHeader = ['关键词ID', '关键词', '跳转链接', '是否推荐', '是否默认']
const filterVal = ['id', 'keyword', 'url', 'isNew', 'isDefault', 'isShow'] const filterVal = ['id', 'keyword', 'url', 'isHot', 'isDefault']
excel.export_json_to_excel2(tHeader, this.list, filterVal, '关键词信息') excel.export_json_to_excel2(tHeader, this.list, filterVal, '关键词设置')
this.downloadLoading = false this.downloadLoading = false
}) })
} }
......
...@@ -85,6 +85,22 @@ public class JacksonUtil { ...@@ -85,6 +85,22 @@ public class JacksonUtil {
return null; return null;
} }
public static Byte parseByte(String body, String field) {
ObjectMapper mapper = new ObjectMapper();
JsonNode node = null;
try {
node = mapper.readTree(body);
JsonNode leaf = node.get(field);
if(leaf != null) {
Integer value = leaf.asInt();
return value.byteValue();
}
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
public static <T> T parseObject(String body, String field, Class<T> clazz) { public static <T> T parseObject(String body, String field, Class<T> clazz) {
ObjectMapper mapper = new ObjectMapper(); ObjectMapper mapper = new ObjectMapper();
JsonNode node = null; JsonNode node = null;
...@@ -112,4 +128,5 @@ public class JacksonUtil { ...@@ -112,4 +128,5 @@ public class JacksonUtil {
return null; return null;
} }
} }
Supports Markdown
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