复数图片上传bug

This commit is contained in:
mactj 2021-01-20 15:28:25 +08:00
parent 2f84db9e31
commit e19b458211
16 changed files with 246 additions and 117 deletions

View File

@ -8,6 +8,7 @@ import java.util.Arrays;
import com.itextpdf.styledxmlparser.jsoup.nodes.Document; import com.itextpdf.styledxmlparser.jsoup.nodes.Document;
import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.winery.domain.goods.GoodsMain;
import com.ruoyi.winery.utils.RichTextUtil; import com.ruoyi.winery.utils.RichTextUtil;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.security.access.prepost.PreAuthorize;
@ -63,6 +64,7 @@ public class AppMerchantController extends BaseController {
if (StringUtils.isNotBlank(appMerchant.getMchDesc())){ if (StringUtils.isNotBlank(appMerchant.getMchDesc())){
lqw.eq(AppMerchant::getMchDesc ,appMerchant.getMchDesc()); lqw.eq(AppMerchant::getMchDesc ,appMerchant.getMchDesc());
} }
lqw.orderByAsc(AppMerchant::getSort);
List<AppMerchant> list = iAppMerchantService.list(lqw); List<AppMerchant> list = iAppMerchantService.list(lqw);
return getDataTable(list); return getDataTable(list);
} }

View File

@ -86,6 +86,8 @@ public class GoodsMainController extends BaseController {
if (StringUtils.isNotBlank(goodsMain.getGoodsImg())) { if (StringUtils.isNotBlank(goodsMain.getGoodsImg())) {
lqw.eq(GoodsMain::getGoodsImg, goodsMain.getGoodsImg()); lqw.eq(GoodsMain::getGoodsImg, goodsMain.getGoodsImg());
} }
lqw.orderByAsc(GoodsMain::getSort);
List<GoodsMain> list = iWineryGoodsService.list(lqw); List<GoodsMain> list = iWineryGoodsService.list(lqw);
return getDataTable(list); return getDataTable(list);
} }
@ -119,7 +121,7 @@ public class GoodsMainController extends BaseController {
@Log(title = "商品信息", businessType = BusinessType.INSERT) @Log(title = "商品信息", businessType = BusinessType.INSERT)
@PostMapping @PostMapping
public AjaxResult add(UsernamePasswordAuthenticationToken token, @RequestBody GoodsMain goodsMain) { public AjaxResult add(UsernamePasswordAuthenticationToken token, @RequestBody GoodsMain goodsMain) {
goodsMain.setDeptId(getDeptId()); // goodsMain.setDeptId(getDeptId());
goodsMain.setCreateBy(getUsername()); goodsMain.setCreateBy(getUsername());
String richText = goodsMain.getGoodsDesc(); String richText = goodsMain.getGoodsDesc();
if (richText != null && StringUtils.isNotEmpty(richText)) { if (richText != null && StringUtils.isNotEmpty(richText)) {

View File

@ -52,6 +52,10 @@ private static final long serialVersionUID=1L;
@Excel(name = "封面图") @Excel(name = "封面图")
private String faceImage; private String faceImage;
/** 置顶图 */
@Excel(name = "置顶图")
private String topImage;
/** 奖项信息 */ /** 奖项信息 */
@Excel(name = "奖项信息") @Excel(name = "奖项信息")
private String award; private String award;
@ -71,4 +75,9 @@ private static final long serialVersionUID=1L;
/** 更新时间 */ /** 更新时间 */
private Date updateTime; private Date updateTime;
/**
* 排序
*/
private Integer sort;
} }

View File

@ -95,4 +95,10 @@ private static final long serialVersionUID=1L;
* 状态 * 状态
*/ */
private Integer state; private Integer state;
/**
* 排序
*/
private Integer sort;
} }

View File

@ -3,7 +3,7 @@
.header-image { .header-image {
width: 100%; width: 100%;
height: 200px; height: 273px;
z-index: -1; z-index: -1;
position: absolute; position: absolute;
top: 0; top: 0;
@ -61,7 +61,7 @@
</style> </style>
<template> <template>
<image class="header-image" :src="imageDefine.HOME_TITLE_IMAGE" /> <image class="header-image" :src="imageDefine.MY_HEADER" />
<div class="container" style="margin: 10px 10px 80px 10px;"> <div class="container" style="margin: 10px 10px 80px 10px;">
@ -69,19 +69,30 @@
<div class="user-info"> <div class="user-info">
<van-image round width="90rpx" height="90rpx" :src="user.userInfo.avatarUrl" /> <van-image round width="90rpx" height="90rpx" :src="user.userInfo.avatarUrl" />
<div class="user-info-msg"> <div class="user-info-msg">
<span style="font-size: 18px;">{{user.mobile}}</span> <span style="font-size: 18px;font-weight: bold;">{{user.userInfo.nickName}}</span>
<span style="font-size: 12px;">{{user.userInfo.nickName}}</span> <span style="font-size: 12px;">{{user.mobile}}</span>
</div> </div>
</div> </div>
<div class="header-grid-body-top"> <!-- <div class="header-grid-body-top">-->
<div style="display: flex;"> <!-- <div style="display: flex;">-->
<span>{{user.userInfo.nickName}} </span> <!-- <span>{{user.userInfo.nickName}} </span>-->
<van-tag round type="primary">标签</van-tag> <!-- <van-tag round type="primary">标签</van-tag>-->
</div> <!-- </div>-->
</div> <!-- </div>-->
<div class="header-grid-body-bottom"> <!-- <div class="header-grid-body-bottom">-->
<!-- <van-grid column-num="3" border="{{ false }}" style="margin-top: 15px;">-->
<!-- <van-grid-item use-slot v-for=" (item, index) in navDefine.MY_MENU1" @tap="onNavItem(item)">-->
<!-- <van-image round width="90rpx" height="90rpx" :src="item.icon" />-->
<!-- <span style="margin-top: 10px;">{{item.name}} </span>-->
<!-- </van-grid-item>-->
<!-- </van-grid>-->
<!-- </div>-->
<div class="grid-body">
<span style="margin:25px 10px 15px 10px;font-weight: bold;">我的订单</span>
<van-divider />
<van-grid column-num="3" border="{{ false }}" style="margin-top: 15px;"> <van-grid column-num="3" border="{{ false }}" style="margin-top: 15px;">
<van-grid-item use-slot v-for=" (item, index) in navDefine.MY_MENU1" @tap="onNavItem(item)"> <van-grid-item use-slot v-for=" (item, index) in navDefine.MY_MENU1" @tap="onNavItem(item)">
<van-image round width="90rpx" height="90rpx" :src="item.icon" /> <van-image round width="90rpx" height="90rpx" :src="item.icon" />
@ -92,6 +103,7 @@
<div class="grid-body"> <div class="grid-body">
<span style="margin:25px 10px 15px 10px;font-weight: bold;">常用功能</span> <span style="margin:25px 10px 15px 10px;font-weight: bold;">常用功能</span>
<van-divider />
<van-grid column-num="3" border="{{ false }}" style="margin-top: 15px;"> <van-grid column-num="3" border="{{ false }}" style="margin-top: 15px;">
<van-grid-item use-slot v-for=" (item, index) in navDefine.MY_MENU2" @tap="onNavItem(item)"> <van-grid-item use-slot v-for=" (item, index) in navDefine.MY_MENU2" @tap="onNavItem(item)">
<van-image round width="90rpx" height="90rpx" :src="item.icon" /> <van-image round width="90rpx" height="90rpx" :src="item.icon" />
@ -100,15 +112,15 @@
</van-grid> </van-grid>
</div> </div>
<div class="grid-body"> <!-- <div class="grid-body">-->
<span style="margin:25px 10px 15px 10px;font-weight: bold;">更多推荐</span> <!-- <span style="margin:25px 10px 15px 10px;font-weight: bold;">更多推荐</span>-->
<van-grid column-num="3" border="{{ false }}" style="margin-top: 15px;"> <!-- <van-grid column-num="3" border="{{ false }}" style="margin-top: 15px;">-->
<van-grid-item use-slot v-for=" (item, index) in navDefine.MY_MENU3" @tap="onNavItem(item)"> <!-- <van-grid-item use-slot v-for=" (item, index) in navDefine.MY_MENU3" @tap="onNavItem(item)">-->
<van-image round width="90rpx" height="90rpx" :src="item.icon" /> <!-- <van-image round width="90rpx" height="90rpx" :src="item.icon" />-->
<span style="margin-top: 10px;">{{item.name}} </span> <!-- <span style="margin-top: 10px;">{{item.name}} </span>-->
</van-grid-item> <!-- </van-grid-item>-->
</van-grid> <!-- </van-grid>-->
</div> <!-- </div>-->
<div style="margin-top: 100px;" /> <div style="margin-top: 100px;" />

View File

@ -11,43 +11,50 @@ module.exports.parseImage = parseImage;
<van-nav-bar <van-nav-bar
title="福利购" title="福利购"
/> />
<view style="margin: 10px 10px 80px 10px;"> <view class="contianer" style="margin: 10px 16px 80px 16px;">
<van-image class="banner" :src="navDefine.HOME_BANNER.image" /> <van-image class="banner" :src="imageDefine.SHOPPING_BANNER" width="686rpx"
height="96px" />
<div style="margin-top: 20px;">
<van-row gutter="20"> <van-row gutter="20">
<van-col span="8" style="font-weight: bold;font-size: 20px;">精选推荐</van-col> <van-col span="8" style="font-weight: bold;font-size: 20px;">精选推荐</van-col>
<van-col offset="10" span="6"> <van-col offset="10" span="6">
<div> <div @tap="onShppingCar">
<van-icon name="shopping-cart-o" color="#1989fa" /> <van-icon name="shopping-cart-o" color="#940D46" />
<span style="margin-left: 5px;">购物车</span> <span style="margin-left: 5px;">购物车</span>
</div> </div>
</van-col> </van-col>
</van-row> </van-row>
</div>
<div style="display: flex;flex-wrap: wrap;"> <div style="display: flex;flex-wrap: wrap;margin-bottom: 10px;">
<div class="filter-button" v-for="(item,index) in filterButtons"> <div class="filter-button" v-for="(item,index) in filterButtons">
<van-button round size="small" :color="currentFilter.dictLabel === item.dictLabel ? '#7232dd' : '#7232dd' " <van-button round size="small" :color="currentFilter.dictLabel === item.dictLabel ? '#940D46' : '#940D46' "
:plain="currentFilter.dictLabel === item.dictLabel ? false : true" @tap="onFilterBtn(item)">{{item.dictLabel}} :plain="currentFilter.dictLabel === item.dictLabel ? false : true" @tap="onFilterBtn(item)">
{{item.dictLabel}}
</van-button> </van-button>
</div> </div>
</div> </div>
<view v-for="(item, index) in records" :key="index" <view v-for="(item, index) in records" :key="index"
style="margin-top: 10px;border: #fafafa 1px solid; border-radius: 10px;"> style="margin-top: 10px;border: #fafafa 1px solid; border-radius: 10px;background-color: white;">
<van-card <van-card
:title="item.goodsName" :title="item.goodsName"
:desc="item.goodsAlias"
:price="item.goodsPrice" :price="item.goodsPrice"
:thumb="filters.parseImage(item.goodsFaceImg)" :thumb="filters.parseImage(item.goodsFaceImg)"
@tap="onItem(item)" @tap="onItem(item)"
> >
<!-- <view slot="num" style="float:right;">--> <view slot="num" style="display: flex; justify-content: space-between;align-items: center;">
<!-- <div>{{'已优惠¥xx元'}}</div>-->
<!-- </view>--> <span style="color: #999;">{{item.goodsAlias}}</span>
<van-image :src="imageDefine.LIST_BAG" width="30px" height="30px" />
</view>
</van-card> </van-card>
@ -68,6 +75,7 @@ import mallApis from '../../../apis/mallApis'
import defaultMix from '../../../mixins/defaultMix' import defaultMix from '../../../mixins/defaultMix'
import { goodsDetailPage } from '../../../store/constant/nav/pages' import { goodsDetailPage } from '../../../store/constant/nav/pages'
import xiao4rApis from '../../../apis/xiao4rApis' import xiao4rApis from '../../../apis/xiao4rApis'
import { navDefine } from '../../../store/constant/navDefine'
wepy.component({ wepy.component({
store, store,
@ -97,17 +105,30 @@ wepy.component({
appManager.navigateTo(goodsDetailPage + `?id=${item.id}`) appManager.navigateTo(goodsDetailPage + `?id=${item.id}`)
}, },
onShppingCar() {
appManager.navigateTo(navDefine.SHOPPING_CAR_LIST)
},
onFilterBtn(item) { onFilterBtn(item) {
this.currentFilter = item this.currentFilter = item
this.init(false)
}, },
async init() { async init(isFirst = true) {
this.isInit = false this.isInit = false
if (isFirst) {
const dict = await xiao4rApis.getDicts('goods_type') const dict = await xiao4rApis.getDicts('goods_type')
this.filterButtons = dict.data this.filterButtons = dict.data
}
const req = await mallApis.getGoodsList() let body = {}
if (this.currentFilter.dictLabel !== '全部') {
body.goodsType = this.currentFilter.dictValue
}
const req = await mallApis.getGoodsList(body)
this.records = req.rows this.records = req.rows
@ -136,8 +157,7 @@ wepy.component({
border: #eeeeee 1px solid; border: #eeeeee 1px solid;
border-radius: 25px; border-radius: 25px;
margin-top: 15px; margin-top: 15px;
width: 100%;
height: 80px;
} }
.filter-button { .filter-button {

View File

@ -36,7 +36,7 @@ module.exports.parseImage = parseImage;
<van-cell :title="goodsItems.goodsName" value="内容能显示多长" label="描述信息描述信息描述信息描述信息描述信息描述信息描述信息描述信息" <van-cell :title="goodsItems.goodsName" value="内容能显示多长" label="描述信息描述信息描述信息描述信息描述信息描述信息描述信息描述信息"
border="{{ false }}" /> border="{{ false }}" />
<van-cell title="选择下单" is-link @tap="onShowSpec" /> <van-cell title="立即下单" is-link @tap="onShowSpec" />
<div style="margin: 10px 15px;"> <div style="margin: 10px 15px;">
<span>商品详情</span> <span>商品详情</span>
@ -72,7 +72,7 @@ module.exports.parseImage = parseImage;
<van-col offset="1" span="8"> <van-col offset="1" span="8">
<div style="display: flex; flex-direction: column;"> <div style="display: flex; flex-direction: column;">
<span>购买数量</span> <span>购买数量</span>
<span style="font-size: 12px; color: #cccccc;">剩余:xx</span> <span style="font-size: 12px; color: #cccccc;">剩余:{{goodsItem.goodsStock}}</span>
</div> </div>
</van-col> </van-col>
<van-col offset="7" span="8"> <van-col offset="7" span="8">

View File

@ -40,12 +40,6 @@
<van-loading wx:if="{{ !isInit }}" style="margin-top: 20px;"></van-loading> <van-loading wx:if="{{ !isInit }}" style="margin-top: 20px;"></van-loading>
<view wx:else> <view wx:else>
<div style="display: flex;align-items: center;justify-content: start;width: 100%;margin-left: 10px;">
<van-image :src="imageDefine.ADDRESS_ADD_IMAGE" width="60rpx" height="60rpx" @tap="onAdd" />
<span style="margin-left: 10px;">添加收货地址</span>
</div>
<div v-if="records.length < 1" style="display: flex;flex-direction: column;align-items: center;width: 100%;"> <div v-if="records.length < 1" style="display: flex;flex-direction: column;align-items: center;width: 100%;">
<van-empty description="您还没有添加收货地址" /> <van-empty description="您还没有添加收货地址" />
@ -91,6 +85,11 @@
</div> </div>
</div> </div>
<van-button round type="info" size="large" @tap="onAdd" style="margin-top: 20px;">+ 新建收获地址</van-button>
</view> </view>
</div> </div>

View File

@ -1,6 +1,5 @@
import { imgbaseUrl, sysImgBaseUrl } from '../../baseDefine' import { imgbaseUrl, sysImgBaseUrl } from '../../baseDefine'
export const imageDefine = { export const imageDefine = {
SYS_IMG_BASE_URL: sysImgBaseUrl, SYS_IMG_BASE_URL: sysImgBaseUrl,
TAP_BAR_ICON1_OFF: imgbaseUrl + 'nav/1.png', TAP_BAR_ICON1_OFF: imgbaseUrl + 'nav/1.png',
@ -16,6 +15,10 @@ export const imageDefine = {
HOME_WINE_LAB: imgbaseUrl + 'icon/home_wine_lab.png', HOME_WINE_LAB: imgbaseUrl + 'icon/home_wine_lab.png',
HOME_NOTICE_ICON: imgbaseUrl + 'icon/home_wine.png', HOME_NOTICE_ICON: imgbaseUrl + 'icon/home_wine.png',
ADDRESS_ADD_IMAGE: imgbaseUrl + 'add.png', ADDRESS_ADD_IMAGE: imgbaseUrl + 'add.png',
WINERY_HEADER: imgbaseUrl + 'winery/winery-header.png' WINERY_HEADER: imgbaseUrl + 'winery/winery-header.png',
SHOPPING_BANNER: imgbaseUrl + 'shopping/list-banner.png',
LIST_BAG: imgbaseUrl + 'shopping/list-bag.png',
MY_HEADER: imgbaseUrl + 'my/header.png',
BBS_BG: imgbaseUrl + 'bbs/bg.gif'
} }

View File

@ -90,8 +90,8 @@
.van-card__price { .van-card__price {
display: inline-block; display: inline-block;
font-weight: 700; font-weight: 700;
color: #ee0a24; color: #98002E;
color: var(--card-price-color, #ee0a24); color: var(--card-price-color, #98002E);
font-size: 12px; font-size: 12px;
font-size: var(--card-price-font-size, 12px) font-size: var(--card-price-font-size, 12px)
} }

View File

@ -2,4 +2,5 @@
ENV = 'production' ENV = 'production'
# 若依管理系统/生产环境 # 若依管理系统/生产环境
# VUE_APP_BASE_API = 'https://mall.xiao4r.com/api'
VUE_APP_BASE_API = '/prod-api' VUE_APP_BASE_API = '/prod-api'

View File

@ -17,6 +17,7 @@
:limit="5" :limit="5"
:file-list="fileList" :file-list="fileList"
:on-exceed="handleExceed" :on-exceed="handleExceed"
:on-change="handleChange"
list-type="picture"> list-type="picture">
<el-button size="small" type="primary">点击上传</el-button> <el-button size="small" type="primary">点击上传</el-button>
@ -46,10 +47,8 @@ export default {
default: "", default: "",
}, },
}, },
filters: { watch: {
image(value) {
return process.env.VUE_APP_BASE_API + "/common/file?fileName=" + value
}
}, },
computed: { computed: {
@ -87,6 +86,7 @@ export default {
}, },
handleRemove(file, fileList) { handleRemove(file, fileList) {
let temp = fileList.map(x => { let temp = fileList.map(x => {
console.log(x)
return x.response.fileName return x.response.fileName
}) })
@ -101,11 +101,14 @@ export default {
message: "超出上传数量限制", message: "超出上传数量限制",
type: 'error' type: 'error'
}) })
},
handleChange(file, fileList) {
},
setFileList(list) {
this.fileList = list
} }
}, }
watch: {},
}; };
</script> </script>

View File

@ -1,12 +1,13 @@
import Vue from 'vue' import Vue from 'vue'
import {imageBaseUrl} from "@/settings";
Vue.filter('getImageForKey', val => { Vue.filter('getImageForKey', val => {
return "https://winery-1257413599.cos.ap-beijing.myqcloud.com/" + val return imageBaseUrl + val
}) })
Vue.filter('getImage200', val => { Vue.filter('getImage200', val => {
return "https://winery-1257413599.cos.ap-beijing.myqcloud.com/" + val + "?imageMogr2/thumbnail/!200x200r/|imageMogr2/gravity/center/crop/200x200/interlace/0" return imageBaseUrl + val + "?imageMogr2/thumbnail/!200x200r/|imageMogr2/gravity/center/crop/200x200/interlace/0"
}) })

View File

@ -1,4 +1,7 @@
module.exports = { module.exports = {
imageBaseUrl: 'https://winery-1257413599.cos.ap-beijing.myqcloud.com/',
title: '酒庄管理系统', title: '酒庄管理系统',
/** /**

View File

@ -105,8 +105,9 @@
<el-table v-loading="loading" :data="goodsList" @selection-change="handleSelectionChange"> <el-table v-loading="loading" :data="goodsList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center"/> <el-table-column type="selection" width="55" align="center"/>
<el-table-column label="商品ID" align="center" prop="id" v-if="false"/> <el-table-column label="商品ID" align="center" prop="id" v-if="false"/>
<el-table-column label="商户名称" align="center" prop="deptId" :formatter="deptFormat" width="100px"/>
<el-table-column label="商品名称" align="center" prop="goodsName"/> <el-table-column label="商品名称" align="center" prop="goodsName"/>
<el-table-column label="商户名称" align="center" prop="deptId" :formatter="deptFormat" width="100px"/>
<el-table-column label="排序" align="center" prop="sort"/>
<el-table-column label="商品简称" align="center" prop="goodsAlias"/> <el-table-column label="商品简称" align="center" prop="goodsAlias"/>
<el-table-column label="商品价格" align="center" prop="goodsPrice"/> <el-table-column label="商品价格" align="center" prop="goodsPrice"/>
<el-table-column label="商品库存" align="center" prop="goodsStock"/> <el-table-column label="商品库存" align="center" prop="goodsStock"/>
@ -179,6 +180,10 @@
<el-form-item label="商品简称" prop="goodsAlias"> <el-form-item label="商品简称" prop="goodsAlias">
<el-input v-model="form.goodsAlias" placeholder="请输入商品简称"/> <el-input v-model="form.goodsAlias" placeholder="请输入商品简称"/>
</el-form-item> </el-form-item>
<el-form-item label="排序" prop="sort">
<el-input type="number" v-model="form.sort" placeholder="请输入排序(升序)"/>
</el-form-item>
<el-form-item label="商品价格" prop="goodsPrice"> <el-form-item label="商品价格" prop="goodsPrice">
<el-input type="number" v-model="form.goodsPrice" placeholder="请输入商品价格"/> <el-input type="number" v-model="form.goodsPrice" placeholder="请输入商品价格"/>
</el-form-item> </el-form-item>
@ -191,7 +196,7 @@
<!-- <el-input v-model="form.goodsFaceImg" placeholder="请输入商品封面" />--> <!-- <el-input v-model="form.goodsFaceImg" placeholder="请输入商品封面" />-->
</el-form-item> </el-form-item>
<el-form-item label="商品图片" prop="goodsImg"> <el-form-item label="商品图片" prop="goodsImg">
<upload-image-multiple :value="form.goodsImg" @input="inputGoodsImg"/> <upload-image-multiple id="multipleImg" ref="multipleImg" :value="form.goodsImg" @input="inputGoodsImg"/>
<!-- <el-input v-model="form.goodsImg" placeholder="请输入商品图片"/>--> <!-- <el-input v-model="form.goodsImg" placeholder="请输入商品图片"/>-->
</el-form-item> </el-form-item>
<el-form-item label="状态" prop="state"> <el-form-item label="状态" prop="state">
@ -254,6 +259,8 @@ import Editor from '@/components/Editor/index';
import {listSpec} from "@/api/goods/goods_spec"; import {listSpec} from "@/api/goods/goods_spec";
import {getDept, listDept} from "@/api/system/dept"; import {getDept, listDept} from "@/api/system/dept";
import {selectDictLabel} from "@/utils/ruoyi"; import {selectDictLabel} from "@/utils/ruoyi";
import * as settings from "@/settings";
import {imageBaseUrl} from "@/settings";
export default { export default {
name: "GoodsMain", name: "GoodsMain",
@ -304,7 +311,8 @@ export default {
goodsPrice: undefined, goodsPrice: undefined,
goodsStock: undefined, goodsStock: undefined,
deptId: undefined, deptId: undefined,
state: 0 state: undefined,
sort: undefined
}, },
// //
form: {}, form: {},
@ -359,10 +367,15 @@ export default {
// //
deptFormat(row, column) { deptFormat(row, column) {
if (this.deptOptions.length < 1) { if (this.deptOptions.length < 1) {
return '' return ''
} }
return this.deptOptions.filter(x => x.deptId === row.deptId)[0].deptName
const dept = this.deptOptions.filter(x => x.deptId === row.deptId)[0]
return dept.deptName
}, },
/** 查询商品信息列表 */ /** 查询商品信息列表 */
getList() { getList() {
@ -397,7 +410,8 @@ export default {
updateBy: undefined, updateBy: undefined,
updateTime: undefined, updateTime: undefined,
state: 0, state: 0,
remark: undefined remark: undefined,
sort: 10
}; };
this.resetForm("form"); this.resetForm("form");
}, },
@ -432,6 +446,33 @@ export default {
this.open = true; this.open = true;
this.title = "修改商品信息"; this.title = "修改商品信息";
this.$nextTick(() => {
const imageList = this.form.goodsImg.split(',')
const fileList = []
this.$refs.multipleImg.setFileList(fileList)
imageList.forEach(x => {
fileList.push({
name: x,
url: imageBaseUrl + x,
response: {
msg: "操作成功",
fileName: x,
code: 200,
url: imageBaseUrl + x,
}
})
})
this.$refs.multipleImg.setFileList(fileList)
})
listSpec({ listSpec({
pageNum: 1, pageNum: 1,
pageSize: 999 pageSize: 999

View File

@ -51,7 +51,8 @@
size="mini" size="mini"
@click="handleAdd" @click="handleAdd"
v-hasPermi="['winery:merchant:add']" v-hasPermi="['winery:merchant:add']"
>新增</el-button> >新增
</el-button>
</el-col> </el-col>
<el-col :span="1.5"> <el-col :span="1.5">
<el-button <el-button
@ -61,7 +62,8 @@
:disabled="single" :disabled="single"
@click="handleUpdate" @click="handleUpdate"
v-hasPermi="['winery:merchant:edit']" v-hasPermi="['winery:merchant:edit']"
>修改</el-button> >修改
</el-button>
</el-col> </el-col>
<el-col :span="1.5"> <el-col :span="1.5">
<el-button <el-button
@ -71,7 +73,8 @@
:disabled="multiple" :disabled="multiple"
@click="handleDelete" @click="handleDelete"
v-hasPermi="['winery:merchant:remove']" v-hasPermi="['winery:merchant:remove']"
>删除</el-button> >删除
</el-button>
</el-col> </el-col>
<el-col :span="1.5"> <el-col :span="1.5">
<el-button <el-button
@ -80,7 +83,8 @@
size="mini" size="mini"
@click="handleExport" @click="handleExport"
v-hasPermi="['winery:merchant:export']" v-hasPermi="['winery:merchant:export']"
>导出</el-button> >导出
</el-button>
</el-col> </el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row> </el-row>
@ -89,10 +93,12 @@
<el-table-column type="selection" width="55" align="center"/> <el-table-column type="selection" width="55" align="center"/>
<el-table-column label="ID" align="center" prop="id" v-if="false"/> <el-table-column label="ID" align="center" prop="id" v-if="false"/>
<el-table-column label="商户名称" align="center" prop="mchName"/> <el-table-column label="商户名称" align="center" prop="mchName"/>
<el-table-column label="排序" align="center" prop="sort"/>
<el-table-column label="副标题" align="center" prop="subtitle"/> <el-table-column label="副标题" align="center" prop="subtitle"/>
<el-table-column label="图标" align="center" prop="avatar"> <el-table-column label="图标" align="center" prop="avatar">
<template slot-scope="scope"> <template slot-scope="scope">
<el-image :src="'https://winery-1257413599.cos.ap-beijing.myqcloud.com/' + scope.row.avatar" style="width: 60px; height: 60px"/> <el-image :src="scope.row.avatar | getImageForKey"
style="width: 60px; height: 60px"/>
</template> </template>
</el-table-column> </el-table-column>
<!--<el-table-column label="介绍" align="center" prop="mchDesc" />--> <!--<el-table-column label="介绍" align="center" prop="mchDesc" />-->
@ -104,14 +110,16 @@
icon="el-icon-edit" icon="el-icon-edit"
@click="handleUpdate(scope.row)" @click="handleUpdate(scope.row)"
v-hasPermi="['winery:merchant:edit']" v-hasPermi="['winery:merchant:edit']"
>修改</el-button> >修改
</el-button>
<el-button <el-button
size="mini" size="mini"
type="text" type="text"
icon="el-icon-delete" icon="el-icon-delete"
@click="handleDelete(scope.row)" @click="handleDelete(scope.row)"
v-hasPermi="['winery:merchant:remove']" v-hasPermi="['winery:merchant:remove']"
>删除</el-button> >删除
</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
@ -130,6 +138,9 @@
<el-form-item label="商户名称" prop="mchName"> <el-form-item label="商户名称" prop="mchName">
<el-input v-model="form.mchName" placeholder="请输入商户名称"/> <el-input v-model="form.mchName" placeholder="请输入商户名称"/>
</el-form-item> </el-form-item>
<el-form-item label="排序" prop="sort">
<el-input type="number" v-model="form.sort" placeholder="请输入排序(升序)"/>
</el-form-item>
<el-form-item label="副标题" prop="subtitle"> <el-form-item label="副标题" prop="subtitle">
<el-input v-model="form.subtitle" placeholder="请输入副标题"/> <el-input v-model="form.subtitle" placeholder="请输入副标题"/>
</el-form-item> </el-form-item>
@ -137,9 +148,12 @@
<uploadImage v-model="form.avatar"/> <uploadImage v-model="form.avatar"/>
</el-form-item> </el-form-item>
<el-form-item label="封面图" prop="faceImage"> <el-form-item label="封面图" prop="faceImage">
<uploadImage v-model="form.faceImage"/> <uploadImage v-model="form.faceImage"/>
</el-form-item> </el-form-item>
<el-form-item label="内容置顶图" prop="topImage">
<uploadImage v-model="form.topImage"/>
</el-form-item>
<el-form-item label="获奖信息" prop="award"> <el-form-item label="获奖信息" prop="award">
<el-input v-model="form.award" placeholder="获奖信息(多条使用英文逗号分割)"/> <el-input v-model="form.award" placeholder="获奖信息(多条使用英文逗号分割)"/>
@ -158,15 +172,27 @@
</template> </template>
<script> <script>
import { listMerchant, getMerchant, delMerchant, addMerchant, updateMerchant, exportMerchant } from "@/api/winery/merchant"; import {
listMerchant,
getMerchant,
delMerchant,
addMerchant,
updateMerchant,
exportMerchant
} from "@/api/winery/merchant";
import UploadImage from '@/components/UploadImage'; import UploadImage from '@/components/UploadImage';
import Editor from '@/components/Editor'; import Editor from '@/components/Editor';
import CommonMixin from "@/mixin/common";
export default { export default {
name: "Merchant", name: "Merchant",
components: { components: {
Editor, Editor,
UploadImage UploadImage
}, },
mixins: {
CommonMixin
},
data() { data() {
return { return {
// //
@ -196,13 +222,14 @@ export default {
avatar: undefined, avatar: undefined,
mchDesc: undefined, mchDesc: undefined,
award: undefined, award: undefined,
faceImage:undefined faceImage: undefined,
topImage: undefined,
sort: undefined
}, },
// //
form: {}, form: {},
// //
rules: { rules: {}
}
}; };
}, },
created() { created() {