复数图片上传bug
This commit is contained in:
parent
2f84db9e31
commit
e19b458211
@ -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);
|
||||||
}
|
}
|
||||||
|
@ -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)) {
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
|
@ -95,4 +95,10 @@ private static final long serialVersionUID=1L;
|
|||||||
* 状态
|
* 状态
|
||||||
*/
|
*/
|
||||||
private Integer state;
|
private Integer state;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 排序
|
||||||
|
*/
|
||||||
|
private Integer sort;
|
||||||
}
|
}
|
||||||
|
@ -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;" />
|
||||||
|
|
||||||
|
@ -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 {
|
||||||
|
@ -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">
|
||||||
|
@ -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>
|
||||||
|
|
||||||
|
@ -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'
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -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)
|
||||||
}
|
}
|
||||||
|
@ -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'
|
||||||
|
@ -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>
|
||||||
|
|
||||||
|
@ -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"
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,4 +1,7 @@
|
|||||||
module.exports = {
|
module.exports = {
|
||||||
|
|
||||||
|
imageBaseUrl: 'https://winery-1257413599.cos.ap-beijing.myqcloud.com/',
|
||||||
|
|
||||||
title: '酒庄管理系统',
|
title: '酒庄管理系统',
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -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
|
||||||
|
@ -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,19 +83,22 @@
|
|||||||
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>
|
||||||
|
|
||||||
<el-table v-loading="loading" :data="merchantList" @selection-change="handleSelectionChange">
|
<el-table v-loading="loading" :data="merchantList" @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="mchName" />
|
<el-table-column label="商户名称" align="center" prop="mchName"/>
|
||||||
<el-table-column label="副标题" align="center" prop="subtitle" />
|
<el-table-column label="排序" align="center" prop="sort"/>
|
||||||
|
<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>
|
||||||
@ -128,21 +136,27 @@
|
|||||||
<el-dialog :title="title" :visible.sync="open" width="1000px" append-to-body>
|
<el-dialog :title="title" :visible.sync="open" width="1000px" append-to-body>
|
||||||
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
|
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
|
||||||
<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 label="排序" prop="sort">
|
||||||
|
<el-input type="number" v-model="form.sort" placeholder="请输入排序(升序)"/>
|
||||||
</el-form-item>
|
</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>
|
||||||
<el-form-item label="图标" prop="avatar">
|
<el-form-item label="图标" prop="avatar">
|
||||||
<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="获奖信息(多条使用英文逗号分割)"/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
<el-form-item label="介绍" prop="mchDesc">
|
<el-form-item label="介绍" prop="mchDesc">
|
||||||
@ -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() {
|
||||||
@ -234,7 +261,7 @@ export default {
|
|||||||
createTime: undefined,
|
createTime: undefined,
|
||||||
updateTime: undefined,
|
updateTime: undefined,
|
||||||
award: undefined,
|
award: undefined,
|
||||||
faceImage:undefined
|
faceImage: undefined
|
||||||
};
|
};
|
||||||
this.resetForm("form");
|
this.resetForm("form");
|
||||||
},
|
},
|
||||||
@ -251,7 +278,7 @@ export default {
|
|||||||
// 多选框选中数据
|
// 多选框选中数据
|
||||||
handleSelectionChange(selection) {
|
handleSelectionChange(selection) {
|
||||||
this.ids = selection.map(item => item.id)
|
this.ids = selection.map(item => item.id)
|
||||||
this.single = selection.length!==1
|
this.single = selection.length !== 1
|
||||||
this.multiple = !selection.length
|
this.multiple = !selection.length
|
||||||
},
|
},
|
||||||
/** 新增按钮操作 */
|
/** 新增按钮操作 */
|
||||||
@ -297,7 +324,7 @@ export default {
|
|||||||
confirmButtonText: "确定",
|
confirmButtonText: "确定",
|
||||||
cancelButtonText: "取消",
|
cancelButtonText: "取消",
|
||||||
type: "warning"
|
type: "warning"
|
||||||
}).then(function() {
|
}).then(function () {
|
||||||
return delMerchant(ids);
|
return delMerchant(ids);
|
||||||
}).then(() => {
|
}).then(() => {
|
||||||
this.getList();
|
this.getList();
|
||||||
@ -311,7 +338,7 @@ export default {
|
|||||||
confirmButtonText: "确定",
|
confirmButtonText: "确定",
|
||||||
cancelButtonText: "取消",
|
cancelButtonText: "取消",
|
||||||
type: "warning"
|
type: "warning"
|
||||||
}).then(function() {
|
}).then(function () {
|
||||||
return exportMerchant(queryParams);
|
return exportMerchant(queryParams);
|
||||||
}).then(response => {
|
}).then(response => {
|
||||||
this.download(response.msg);
|
this.download(response.msg);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user