对后台管理中销售人员,会员推荐控制,商家累积评价,商户余额信息,商户提现记录表,商户核卡管理,商家图片,商家标签,商户奖励功能界面进行完善及相应的更新后台管理的接口

master
1020109007@qq.com 2021-11-02 11:25:47 +08:00
parent b2f1e18a07
commit d5023e4221
48 changed files with 2038 additions and 708 deletions

View File

@ -113,7 +113,7 @@ public class SegchkSalerInfoController extends BaseController
*/
@PreAuthorize("@ss.hasPermi('segchk:segchk_saler_info:edit')")
@Log(title = "seg销售人员信息", businessType = BusinessType.UPDATE)
@PutMapping
@PutMapping("/edit")
public AjaxResult edit(@RequestBody SegchkSalerInfo segchkSalerInfo)
{
// 获取当前登录用户信息
@ -128,6 +128,26 @@ public class SegchkSalerInfoController extends BaseController
return toAjax(segchkSalerInfoService.updateSegchkSalerInfo(segchkSalerInfo));
}
/**
* seg
*/
@PreAuthorize("@ss.hasPermi('segchk:segchk_saler_info:edit')")
@Log(title = "seg销售人员信息", businessType = BusinessType.UPDATE)
@PutMapping("/update_status")
public AjaxResult update_status(@RequestBody SegchkSalerInfo segchkSalerInfo)
{
// 获取当前登录用户信息
SysUser sysUser = getLoginUser().getUser();
if(sysUser.getUserId() == 1){
// 说明是超级管理员
;
}
else{
segchkSalerInfo.setProviderId(sysUser.getProviderId());
}
return toAjax(segchkSalerInfoService.updateSegchkSalerInfo(segchkSalerInfo));
}
/**
* seg
*/

View File

@ -68,7 +68,7 @@ public class SegchkSimpleListController extends BaseController
SegchkSalerInfo segchkSalerInfo = new SegchkSalerInfo();
segchkSalerInfo.setProviderId(providerId);
List<SegchkSalerInfo> list = segchkSalerInfoService.selectSegchkSalerInfoList(segchkSalerInfo);
List<SimpleListObj> collect = list.parallelStream().map(v -> {
List<SimpleListObj> collect = list.parallelStream().filter(v -> v.getSalerState() == 0).map(v -> {
SimpleListObj simpleListObj1 = new SimpleListObj();
simpleListObj1.setProviderId(String.valueOf(v.getProviderId()));
simpleListObj1.setKey(String.valueOf(v.getSalerId()));

View File

@ -116,10 +116,31 @@ public class SegchkStoreLableMgtController extends BaseController
*/
@PreAuthorize("@ss.hasPermi('segchk:segchk_store_lable_mgt:edit')")
@Log(title = "seg商家标签管理", businessType = BusinessType.UPDATE)
@PutMapping
@PutMapping("/edit")
public AjaxResult edit(@RequestBody SegchkStoreLableMgt segchkStoreLableMgt)
{
// 获取当前登录用户信息
SysUser sysUser = getLoginUser().getUser();
if(sysUser.getUserId() == 1){
// 说明是超级管理员
;
}
else{
segchkStoreLableMgt.setProviderId(sysUser.getProviderId());
}
return toAjax(segchkStoreLableMgtService.updateSegchkStoreLableMgt(segchkStoreLableMgt));
}
/**
* seg
*/
@PreAuthorize("@ss.hasPermi('segchk:segchk_store_lable_mgt:edit')")
@Log(title = "seg商家标签管理", businessType = BusinessType.UPDATE)
@PutMapping("/update_status")
public AjaxResult update_status(@RequestBody SegchkStoreLableMgt segchkStoreLableMgt)
{
// 获取当前登录用户信息
SysUser sysUser = getLoginUser().getUser();
if(sysUser.getUserId() == 1){

View File

@ -208,6 +208,7 @@ public class SegchkDefaultIndexController extends BaseController
logger.debug("list_by_providerwith_lable with: {}", segchkStoreWebReq.toString());
startPage();
segchkStoreWebReq.setUserDist(recomDist);
List<SegchkStoreIndexWebResp> list = segchkStoreIndexService.selectSegchkStoreList(segchkStoreWebReq);
return getDataTable(list);
}
@ -328,6 +329,24 @@ public class SegchkDefaultIndexController extends BaseController
return AjaxResult.success(shareInfo);
}
/**
*
*/
@UnAuth
@PostMapping("/customService")
@ResponseBody
@ApiOperation(value = "查询客服", notes = "不需要鉴权")
public AjaxResult custom_service(Long providerId, HttpServletRequest request)
{
logger.debug("customService with: {}", providerId);
HashMap<String, Object> provider = segchkStoreIndexService.getCustomService(providerId);
CustomService customService = new CustomService();
customService.setPhoneNo((String)provider.get("phoneNo"));
customService.setWechatId((String)provider.get("wechatId"));
logger.debug("customService res: {}", customService.toString());
return AjaxResult.success(customService);
}
/**
*
@ -438,4 +457,33 @@ public class SegchkDefaultIndexController extends BaseController
'}';
}
}
private class CustomService extends BaseEntity {
private String phoneNo;
private String wechatId;
public String getPhoneNo() {
return phoneNo;
}
public void setPhoneNo(String phoneNo) {
this.phoneNo = phoneNo;
}
public String getWechatId() {
return wechatId;
}
public void setWechatId(String wechatId) {
this.wechatId = wechatId;
}
@Override
public String toString() {
return "CustomService{" +
"phoneNo='" + phoneNo + '\'' +
", wechatId='" + wechatId + '\'' +
'}';
}
}
}

View File

@ -127,7 +127,15 @@ yzytest:
smsplatid: 3
segchk:
# 提现额度
cash:
# 商户提现额度
store_threshold: 300.0
# 用户提现额度
user_threshold: 10.0
default_district: 140100
recommendstore:
distince: 50
qr_path: C:\Users\Public\Desktop\dome.jpg
poster_path: F:\ideaproj\RuoYi-Vue\ruoyi-segchk\src\main\resources\templates\posters\bg.jpg
# 核消二维码保存路径,测试使用。正常不打开

View File

@ -120,7 +120,15 @@ yzytest:
loginexpire: 8
segchk:
# 提现额度
cash:
# 商户提现额度
store_threshold: 300.0
# 用户提现额度
user_threshold: 10.0
default_district: 410100
recommendstore:
distince: 50
qr_path: /home/segchk/data/resources/check/dome.jpg
poster_path: /home/segchk/data/resources/check/poster/bg1.jpg
# 核消二维码保存路径,测试使用。正常不打开

View File

@ -1,3 +1,9 @@
POST http://{{host}}/default/index/customService?providerId=2
Accept: */*
Cache-Control: no-ca
Content-Type: application/x-www-form-urlencoded
###
GET http://{{host}}/default/html/vipServiceAgreement
Accept: */*
Cache-Control: no-ca

View File

@ -1,171 +0,0 @@
package com.ruoyi.segchk.domain;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import java.util.Date;
import java.util.List;
/**
* seg segchk_provider_mgt
*
* @author yinzhiying
* @date 2021-08-23
*/
public class SegchkProviderMgt extends BaseEntity
{
private static final long serialVersionUID = 1L;
/** 小程序的openid */
@Excel(name = "小程序的openid")
private String openid;
/** 微信的联合登录id */
@Excel(name = "微信的联合登录id")
private String unionId;
/** 运营商id */
@Excel(name = "运营商id")
private Long providerId;
/** 昵称 */
@Excel(name = "昵称")
private String nickName;
/** 头像地址 */
@Excel(name = "头像地址")
private String iconUrl;
/** 手机号码 */
@Excel(name = "手机号码")
private String phoneNo;
/** 状态0正常1失效2删除 */
@Excel(name = "状态0正常1失效2删除")
private Integer flagId;
/** 区县行政代码 */
@Excel(name = "区县行政代码")
private Integer districtId;
/** 删除时间 */
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "删除时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date delTime;
/** seg首页标签管理信息 */
private List<SegchkLableMgt> segchkLableMgtList;
public void setOpenid(String openid)
{
this.openid = openid;
}
public String getOpenid()
{
return openid;
}
public void setUnionId(String unionId)
{
this.unionId = unionId;
}
public String getUnionId()
{
return unionId;
}
public void setProviderId(Long providerId)
{
this.providerId = providerId;
}
public Long getProviderId()
{
return providerId;
}
public void setNickName(String nickName)
{
this.nickName = nickName;
}
public String getNickName()
{
return nickName;
}
public void setIconUrl(String iconUrl)
{
this.iconUrl = iconUrl;
}
public String getIconUrl()
{
return iconUrl;
}
public void setPhoneNo(String phoneNo)
{
this.phoneNo = phoneNo;
}
public String getPhoneNo()
{
return phoneNo;
}
public void setFlagId(Integer flagId)
{
this.flagId = flagId;
}
public Integer getFlagId()
{
return flagId;
}
public void setDistrictId(Integer districtId)
{
this.districtId = districtId;
}
public Integer getDistrictId()
{
return districtId;
}
public void setDelTime(Date delTime)
{
this.delTime = delTime;
}
public Date getDelTime()
{
return delTime;
}
public List<SegchkLableMgt> getSegchkLableMgtList()
{
return segchkLableMgtList;
}
public void setSegchkLableMgtList(List<SegchkLableMgt> segchkLableMgtList)
{
this.segchkLableMgtList = segchkLableMgtList;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("openid", getOpenid())
.append("unionId", getUnionId())
.append("providerId", getProviderId())
.append("nickName", getNickName())
.append("iconUrl", getIconUrl())
.append("phoneNo", getPhoneNo())
.append("flagId", getFlagId())
.append("districtId", getDistrictId())
.append("createTime", getCreateTime())
.append("delTime", getDelTime())
.append("updateTime", getUpdateTime())
.append("segchkLableMgtList", getSegchkLableMgtList())
.toString();
}
}

View File

@ -1,127 +0,0 @@
package com.ruoyi.segchk.domain;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import java.math.BigDecimal;
import java.util.Date;
/**
* seg segchk_store_cash
*
* @author yinzhiying
* @date 2021-08-23
*/
public class SegchkStoreCash extends BaseEntity
{
private static final long serialVersionUID = 1L;
/** 商家id全局唯一 */
@Excel(name = "商家id全局唯一")
private Long storeId;
/** 提现额 */
@Excel(name = "提现额")
private BigDecimal cash;
/** 提现类型 */
@Excel(name = "提现类型")
private String cashType;
/** 提现id全表唯一 */
@Excel(name = "提现id全表唯一")
private Long cashId;
/** 运营商id全局唯一 */
@Excel(name = "运营商id全局唯一")
private Long providerId;
/** 创建或修改时间 */
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "创建或修改时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date modTime;
/** 提现结果0未完成1成功2失败 */
@Excel(name = "提现结果0未完成1成功2失败")
private String retFlag;
public void setStoreId(Long storeId)
{
this.storeId = storeId;
}
public Long getStoreId()
{
return storeId;
}
public void setCash(BigDecimal cash)
{
this.cash = cash;
}
public BigDecimal getCash()
{
return cash;
}
public void setCashType(String cashType)
{
this.cashType = cashType;
}
public String getCashType()
{
return cashType;
}
public void setCashId(Long cashId)
{
this.cashId = cashId;
}
public Long getCashId()
{
return cashId;
}
public void setProviderId(Long providerId)
{
this.providerId = providerId;
}
public Long getProviderId()
{
return providerId;
}
public void setModTime(Date modTime)
{
this.modTime = modTime;
}
public Date getModTime()
{
return modTime;
}
public void setRetFlag(String retFlag)
{
this.retFlag = retFlag;
}
public String getRetFlag()
{
return retFlag;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("storeId", getStoreId())
.append("cash", getCash())
.append("cashType", getCashType())
.append("cashId", getCashId())
.append("providerId", getProviderId())
.append("modTime", getModTime())
.append("retFlag", getRetFlag())
.toString();
}
}

View File

@ -184,4 +184,6 @@ public interface ISegchkStoreIndexService
public int addAccountByReward(SegchkChargeReward segchkChargeReward);
Long getVipCardFromLikego(Long likegoId);
HashMap<String, Object> getCustomService(Long providerId);
}

View File

@ -5,11 +5,8 @@ import com.ruoyi.segchk.mapper.SegchkIndexStoreAccountMapper;
import com.ruoyi.segchk.mapper.SegchkStoreCashMapper;
import com.ruoyi.segchk.mapper.SegchkStoreIndexMapper;
import com.ruoyi.segchk.mapper.SegchkStoreSecurityMapper;
import com.ruoyi.segchk.service.ISegchkPreferenceLableService;
import com.ruoyi.segchk.service.ISegchkStoreIndexService;
import com.ruoyi.segchk.service.*;
import com.ruoyi.segchk.domain.WeChatCustomerLink;
import com.ruoyi.segchk.service.ISegchkStoreSelfMgtService;
import com.ruoyi.segchk.service.ISegchkUserIndexService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
@ -41,6 +38,9 @@ public class ISegchkStoreIndexServiceImpl implements ISegchkStoreIndexService {
@Autowired
private ISegchkUserIndexService segchkUserIndexService;
@Autowired
private ISegchkProviderMgtService segchkProviderMgtService;
@Autowired
private ISegchkPreferenceLableService segchkPreferenceLableService;
@ -378,4 +378,9 @@ public class ISegchkStoreIndexServiceImpl implements ISegchkStoreIndexService {
public Long getVipCardFromLikego(Long likegoId) {
return segchkStoreIndexMapper.getVipCardFromLikego(likegoId);
}
@Override
public HashMap<String, Object> getCustomService(Long providerId) {
return segchkProviderMgtService.getCustomService(providerId);
}
}

View File

@ -15,6 +15,7 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.ObjectUtils;
@ -119,7 +120,17 @@ public class SegchkUserIndexServiceImpl implements ISegchkUserIndexService
@Autowired
private ILsPaySettingService paySetService;
@Value("${segchk.cash.store_threshold:#{0.0}}")
private BigDecimal storeThreshold;
@Value("${segchk.cash.user_threshold:#{0.0}}")
private BigDecimal userThreshold;
@Value("${segchk.cash.store_threshold_first:#{0.0}}")
private BigDecimal storeThresholdFirst;
@Value("${segchk.cash.user_threshold_first:#{0.0}}")
private BigDecimal userThresholdFirst;
/**
* seg
@ -518,9 +529,10 @@ public class SegchkUserIndexServiceImpl implements ISegchkUserIndexService
// 非正常用户
return -2;
}
BigDecimal baseline = segchkUserCashOpsReq.getUserLevel() == 1 ? new BigDecimal(3000.0) : new BigDecimal(0.0);
BigDecimal baseline1 = segchkUserCashOpsReq.getUserLevel() == 1 ? new BigDecimal(5000.0) : new BigDecimal(100.0);
if(segchkUserCashOpsReq.getCash().compareTo(segchkUserCashOpsReq.getCashId() == null ? baseline : baseline1) != 1){
BigDecimal firstline = segchkUserCashOpsReq.getUserLevel() == 1 ? storeThresholdFirst : userThresholdFirst;
BigDecimal baseline = segchkUserCashOpsReq.getUserLevel() == 1 ? storeThreshold : userThreshold;
if(segchkUserCashOpsReq.getCash().compareTo(segchkUserCashOpsReq.getCashId() == null ? firstline : baseline) != 1){
// 首次提现余额受限
return -3;
}
@ -727,6 +739,7 @@ public class SegchkUserIndexServiceImpl implements ISegchkUserIndexService
int type = segchkUserCashOpsReq.getUserLevel();
String cashId = null;
if(type == 1){
// 说明是商户提现
SegchkStoreCash segchkStoreCash = new SegchkStoreCash();
segchkStoreCash.setCash(segchkUserCashOpsReq.getCash());
segchkStoreCash.setCashType("0");
@ -737,7 +750,6 @@ public class SegchkUserIndexServiceImpl implements ISegchkUserIndexService
ret = segchkStoreCashMapper.insertSegchkStoreCash(segchkStoreCash);
// 根据提现计算商户全额
ret += segchkIndexStoreAccountMapper.insertSegchkStoreAccountByCash(segchkStoreCash);
type = 1;
cashId = segchkStoreCash.getCashId().toString();
}
else if(type == 2){
@ -751,7 +763,6 @@ public class SegchkUserIndexServiceImpl implements ISegchkUserIndexService
ret = segchkUserCashMapper.insertSegchkUserCash(segchkUserCash);
// 根据提现计算最新的余额
ret += segchkIndexUserAccountMapper.insertSegchkStoreAccountByCash(segchkUserCash);
type = 2;
cashId = segchkUserCash.getCashId().toString();
}
@ -913,12 +924,28 @@ public class SegchkUserIndexServiceImpl implements ISegchkUserIndexService
* @return
*/
private OrderInfoForPay getTransfersInfoForPay(String cashId, Long userId, int type) {
switch (type){
case 1: {
SegchkStoreCash segchkStoreCash = segchkStoreCashMapper.selectSegchkStoreCashByCashId(Long.valueOf(cashId));
if(ObjectUtils.isEmpty(segchkStoreCash)) {
return null;
}
return buildOrderInfoForTrans(cashId, segchkStoreCash.getCash(), type);
}
case 2: {
SegchkUserCash segchkUserCash = segchkUserCashMapper.selectSegchkUserCashByCashId(Long.valueOf(cashId));
if(ObjectUtils.isEmpty(segchkUserCash)) {
return null;
}
return buildOrderInfoForTrans(cashId, segchkUserCash.getCash(), type);
}
case 0: {
return null;
}
SegchkUserCash segchkUserCash = segchkUserCashMapper.selectSegchkUserCashByCashId(Long.valueOf(cashId));
if(ObjectUtils.isEmpty(segchkUserCash)) {
return null;
}
return buildOrderInfoForTrans(cashId, segchkUserCash.getCash(), type);
return null;
}
/**

View File

@ -7,6 +7,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<resultMap type="SegchkProviderMgt" id="SegchkProviderMgtResult">
<result property="openid" column="openid" />
<result property="unionId" column="union_id" />
<result property="wechatId" column="wechat_id" />
<result property="providerId" column="provider_id" />
<result property="nickName" column="nick_name" />
<result property="iconUrl" column="icon_url" />
@ -47,7 +48,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</resultMap>
<sql id="selectSegchkProviderMgtVo">
select openid, union_id, provider_id, nick_name, icon_url, phone_no, flag_id, District_id, create_time, del_time, update_time from segchk_provider_mgt
select openid, union_id, wechat_id, provider_id, nick_name, icon_url, phone_no, flag_id, District_id, create_time, del_time, update_time from segchk_provider_mgt
</sql>
<select id="selectSegchkProviderMgtList" parameterType="SegchkProviderMgt" resultMap="SegchkProviderMgtResult">
@ -55,6 +56,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<where>
<if test="openid != null and openid != ''"> and openid = #{openid}</if>
<if test="unionId != null and unionId != ''"> and union_id = #{unionId}</if>
<if test="wechatId != null and wechatId != ''"> and wechat_id = #{wechatId}</if>
<if test="providerId != null "> and provider_id = #{providerId}</if>
<if test="nickName != null and nickName != ''"> and nick_name = #{nickName}</if>
<if test="iconUrl != null and iconUrl != ''"> and icon_url = #{iconUrl}</if>
@ -77,6 +79,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="openid != null">openid,</if>
<if test="unionId != null">union_id,</if>
<if test="wechatId != null">wechat_id,</if>
<if test="nickName != null">nick_name,</if>
<if test="iconUrl != null">icon_url,</if>
<if test="phoneNo != null">phone_no,</if>
@ -89,6 +92,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="openid != null">#{openid},</if>
<if test="unionId != null">#{unionId},</if>
<if test="wechatId != null">#{wechatId},</if>
<if test="nickName != null">#{nickName},</if>
<if test="iconUrl != null">#{iconUrl},</if>
<if test="phoneNo != null">#{phoneNo},</if>

View File

@ -193,7 +193,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="lableId != null and lableId != ''"> and lable_id = #{lableId}</if>
<if test="typeId != null and typeId != ''"> and type_id = #{typeId}</if>) tmp1 where tmp.store_id = tmp1.store_id
) lable
on basic.provider_id = lable.provider_id and basic.store_id = lable.store_id) a
on basic.provider_id = lable.provider_id and basic.store_id = lable.store_id
<if test="userDist != null and userDist != ''"> and basic.user_dist <![CDATA[ <= ]]> #{userDist}</if>
) a
left join (
select provider_id, store_id, store_icon, store_gificon from segchk_store_image where provider_id = #{providerId}
) img on a.provider_id = img.provider_id and a.store_id = img.store_id
@ -262,7 +264,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
select provider_id, store_id, lable_id, type_id, mgt_state, sort_id from segchk_store_lable_mgt where provider_id = #{providerId}
<if test="lableId != null and lableId != ''"> and lable_id = #{lableId}</if>
<if test="typeId != null and typeId != ''"> and type_id = #{typeId}</if> ) lable
on basic.provider_id = lable.provider_id and basic.store_id = lable.store_id) a
on basic.provider_id = lable.provider_id and basic.store_id = lable.store_id
<if test="userDist != null and userDist != ''"> and basic.user_dist <![CDATA[ <= ]]> #{userDist}</if>
) a
left join (
select provider_id, store_id, store_icon, store_gificon from segchk_store_image where provider_id = #{providerId}
) img on a.provider_id = img.provider_id and a.store_id = img.store_id
@ -325,7 +329,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<when test="userLon != null and userLon != '' and userLat != null and userLat != ''">, round(st_distance_sphere(point(#{userLon},#{userLat}), point(store_lon, store_lat))/1000, 2)</when>
<otherwise>, 0</otherwise>
</choose>
as user_dist from segchk_store_basic_info where provider_id = #{providerId} and service_state = 0) basic) a
as user_dist from segchk_store_basic_info where provider_id = #{providerId} and service_state = 0) basic where 1 = 1
<if test="userDist != null and userDist != ''"> and basic.user_dist <![CDATA[ <= ]]> #{userDist}</if>
) a
left join (
select provider_id, store_id, store_icon, store_gificon from segchk_store_image where provider_id = #{providerId}
) img on a.provider_id = img.provider_id and a.store_id = img.store_id
@ -557,14 +563,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
, servicechk.card_type_id
, servicechk.user_id
, card.card_type_name
, ifnull(wechat.nick_name, '未知'), nick_name
, ifnull(wechat.nick_name, '匿名用户'), nick_name
from
(select comment_id, star_level, content_text, mod_time, provider_id, store_id from segchk_service_comment where provider_id = #{providerId} and store_id = #{storeId}
<!-- 取当月的所有评价记录,测试时可以先去掉-->
<if test="remark != null and remark != ''">
<!--<if test="remark != null and remark != ''">
and DATE_FORMAT( mod_time, '%Y%m' ) = DATE_FORMAT( CURDATE( ) , '%Y%m' )
</if>
order by mod_time desc ) comment
</if>-->
order by mod_time desc limit 20) comment
left join
(
select card_id, card_type_id, user_id, comment_id from segchk_service_chk where provider_id = #{providerId} and store_id = #{storeId}
@ -713,7 +719,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</choose>
as user_dist from segchk_store_basic_info where service_state=0 and provider_id = #{providerId}
) basic on a.store_id = basic.store_id and a.provider_id = basic.provider_id
<if test="userDist != null and userDist != ''"> and basic.user_dist <![CDATA[ <= ]]> #{userDist}</if>
left join (
select provider_id, store_id, count(1) as chkcount from segchk_service_chk where provider_id = #{providerId} group by provider_id, store_id
) chkc on a.store_id = chkc.store_id and a.provider_id = chkc.provider_id
@ -730,6 +735,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
union
(select provider_id, card_type_id as lable_id, card_type_name as lable_name, 0 as type_id from segchk_charge_card where provider_id = #{providerId})
) lb on a.provider_id = lb.provider_id and lable.lable_id = lb.lable_id and lable.type_id = lb.type_id
where 1 = 1
<if test="userDist != null and userDist != ''"> and basic.user_dist <![CDATA[ <= ]]> #{userDist}</if>
<choose>
<when test="sortType == 1">order by chkcount desc, lable_sort asc</when>
<when test="sortType == 2">order by staravg desc, lable_sort asc</when>

View File

@ -762,6 +762,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<trim prefix="SET" suffixOverrides=",">
<if test="openid != null and openid != ''">openid = #{openid},</if>
<if test="unionId != null">union_id = #{unionId},</if>
<if test="wechatId != null">wechat_id = #{wechatId},</if>
<if test="nickName != null and nickName != ''">nick_name = #{nickName},</if>
<if test="iconUrl != null and iconUrl != ''">icon_url = #{iconUrl},</if>
update_time = now(),

View File

@ -26,6 +26,10 @@ public class SegchkProviderMgt extends BaseEntity
@Excel(name = "微信的联合登录id")
private String unionId;
/** 微信号 */
@Excel(name = "微信号")
private String wechatId;
/** 运营商id */
@Excel(name = "运营商id")
private Long providerId;
@ -150,21 +154,28 @@ public class SegchkProviderMgt extends BaseEntity
this.segchkLableMgtList = segchkLableMgtList;
}
public String getWechatId() {
return wechatId;
}
public void setWechatId(String wechatId) {
this.wechatId = wechatId;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("openid", getOpenid())
.append("unionId", getUnionId())
.append("providerId", getProviderId())
.append("nickName", getNickName())
.append("iconUrl", getIconUrl())
.append("phoneNo", getPhoneNo())
.append("flagId", getFlagId())
.append("districtId", getDistrictId())
.append("createTime", getCreateTime())
.append("delTime", getDelTime())
.append("updateTime", getUpdateTime())
.append("segchkLableMgtList", getSegchkLableMgtList())
.toString();
return "SegchkProviderMgt{" +
"openid='" + openid + '\'' +
", unionId='" + unionId + '\'' +
", wechatId='" + wechatId + '\'' +
", providerId=" + providerId +
", nickName='" + nickName + '\'' +
", iconUrl='" + iconUrl + '\'' +
", phoneNo='" + phoneNo + '\'' +
", flagId=" + flagId +
", districtId=" + districtId +
", delTime=" + delTime +
", segchkLableMgtList=" + segchkLableMgtList +
'}';
}
}

View File

@ -47,6 +47,10 @@ public class SegchkStoreCash extends BaseEntity
@Excel(name = "提现结果0未完成1成功2失败")
private String retFlag;
/** 关联的余额id */
@Excel(name = "关联的余额id")
private String accountId;
public void setStoreId(Long storeId)
{
this.storeId = storeId;
@ -111,16 +115,25 @@ public class SegchkStoreCash extends BaseEntity
return retFlag;
}
public String getAccountId() {
return accountId;
}
public void setAccountId(String accountId) {
this.accountId = accountId;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("storeId", getStoreId())
.append("cash", getCash())
.append("cashType", getCashType())
.append("cashId", getCashId())
.append("providerId", getProviderId())
.append("modTime", getModTime())
.append("retFlag", getRetFlag())
.toString();
return "SegchkStoreCash{" +
"storeId=" + storeId +
", cash=" + cash +
", cashType='" + cashType + '\'' +
", cashId=" + cashId +
", providerId=" + providerId +
", modTime=" + modTime +
", retFlag='" + retFlag + '\'' +
", accountId='" + accountId + '\'' +
'}';
}
}

View File

@ -1,5 +1,6 @@
package com.ruoyi.segchk.mapper;
import java.util.HashMap;
import java.util.List;
import com.ruoyi.segchk.domain.SegchkProviderMgt;
import com.ruoyi.segchk.domain.SegchkLableMgt;
@ -84,4 +85,6 @@ public interface SegchkProviderMgtMapper
* @return
*/
public int deleteSegchkLableMgtByProviderId(Long providerId);
HashMap<String, Object> getCustomService(Long providerId);
}

View File

@ -1,5 +1,6 @@
package com.ruoyi.segchk.service;
import java.util.HashMap;
import java.util.List;
import com.ruoyi.segchk.domain.SegchkProviderMgt;
@ -58,4 +59,6 @@ public interface ISegchkProviderMgtService
* @return
*/
public int deleteSegchkProviderMgtByProviderId(Long providerId);
HashMap<String, Object> getCustomService(Long providerId);
}

View File

@ -1,5 +1,6 @@
package com.ruoyi.segchk.service.impl;
import java.util.HashMap;
import java.util.List;
import com.ruoyi.common.utils.DateUtils;
import org.springframework.beans.factory.annotation.Autowired;
@ -107,6 +108,11 @@ public class SegchkProviderMgtServiceImpl implements ISegchkProviderMgtService
return segchkProviderMgtMapper.deleteSegchkProviderMgtByProviderId(providerId);
}
@Override
public HashMap<String, Object> getCustomService(Long providerId) {
return segchkProviderMgtMapper.getCustomService(providerId);
}
/**
* seg
*

View File

@ -41,14 +41,17 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="starLevel != null">star_level,</if>
<if test="storeId != null">store_id,</if>
<if test="providerId != null">provider_id,</if>
<if test="modTime != null">mod_time,</if>
mod_time,
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="starCount != null">#{starCount},</if>
<if test="starLevel != null">#{starLevel},</if>
<if test="storeId != null">#{storeId},</if>
<if test="providerId != null">#{providerId},</if>
<if test="modTime != null">#{modTime},</if>
<choose>
<when test="modTime != null">#{modTime},</when>
<otherwise>now(),</otherwise>
</choose>
</trim>
</insert>
@ -59,7 +62,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="starLevel != null">star_level = #{starLevel},</if>
<if test="storeId != null">store_id = #{storeId},</if>
<if test="providerId != null">provider_id = #{providerId},</if>
<if test="modTime != null">mod_time = #{modTime},</if>
<choose>
<when test="modTime != null">mod_time = #{modTime},</when>
<otherwise>mod_time = now(),</otherwise>
</choose>
</trim>
where update_id = #{updateId}
</update>

View File

@ -7,6 +7,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<resultMap type="SegchkProviderMgt" id="SegchkProviderMgtResult">
<result property="openid" column="openid" />
<result property="unionId" column="union_id" />
<result property="wechatId" column="wechat_id" />
<result property="providerId" column="provider_id" />
<result property="nickName" column="nick_name" />
<result property="iconUrl" column="icon_url" />
@ -34,7 +35,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</resultMap>
<sql id="selectSegchkProviderMgtVo">
select openid, union_id, provider_id, nick_name, icon_url, phone_no, flag_id, District_id, create_time, del_time, update_time from segchk_provider_mgt
select openid, union_id, wechat_id, provider_id, nick_name, icon_url, phone_no, flag_id, District_id, create_time, del_time, update_time from segchk_provider_mgt
</sql>
<select id="selectSegchkProviderMgtList" parameterType="SegchkProviderMgt" resultMap="SegchkProviderMgtResult">
@ -42,6 +43,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<where>
<if test="openid != null and openid != ''"> and openid = #{openid}</if>
<if test="unionId != null and unionId != ''"> and union_id = #{unionId}</if>
<if test="wechatId != null and wechatId != ''"> and wechat_id = #{wechatId}</if>
<if test="providerId != null "> and provider_id = #{providerId}</if>
<if test="nickName != null and nickName != ''"> and nick_name like concat('%', #{nickName}, '%')</if>
<if test="iconUrl != null and iconUrl != ''"> and icon_url = #{iconUrl}</if>
@ -61,12 +63,16 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
left join segchk_lable_mgt b on b.provider_id = a.provider_id
where a.provider_id = #{providerId}
</select>
<select id="getCustomService" resultType="java.util.HashMap">
select wechat_id as wechatId, phone_no as phoneNo from segchk_provider_mgt where provider_id = #{providerId}
</select>
<insert id="insertSegchkProviderMgt" parameterType="SegchkProviderMgt" useGeneratedKeys="true" keyProperty="providerId">
insert into segchk_provider_mgt
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="openid != null and openid != ''">openid,</if>
<if test="unionId != null and unionId != ''">union_id,</if>
<if test="wechatId != null and wechatId != ''">wechat_id,</if>
<if test="nickName != null and nickName != ''">nick_name,</if>
<if test="iconUrl != null">icon_url,</if>
<if test="phoneNo != null and phoneNo != ''">phone_no,</if>
@ -79,6 +85,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="openid != null and openid != ''">#{openid},</if>
<if test="unionId != null and unionId != ''">#{unionId},</if>
<if test="wechatId != null and wechatId != ''">#{wechatId},</if>
<if test="nickName != null and nickName != ''">#{nickName},</if>
<if test="iconUrl != null">#{iconUrl},</if>
<if test="phoneNo != null and phoneNo != ''">#{phoneNo},</if>
@ -95,6 +102,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<trim prefix="SET" suffixOverrides=",">
<if test="openid != null and openid != ''">openid = #{openid},</if>
<if test="unionId != null and unionId != ''">union_id = #{unionId},</if>
<if test="wechatId != null and wechatId != ''">wechat_id = #{wechatId},</if>
<if test="nickName != null and nickName != ''">nick_name = #{nickName},</if>
<if test="iconUrl != null">icon_url = #{iconUrl},</if>
<if test="phoneNo != null and phoneNo != ''">phone_no = #{phoneNo},</if>

View File

@ -49,7 +49,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="rewardId != null">reward_id,</if>
<if test="chargeId != null">charge_id,</if>
<if test="cashId != null">cash_id,</if>
<if test="modTime != null">mod_time,</if>
mod_time,
<if test="providerId != null">provider_id,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
@ -59,7 +59,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="rewardId != null">#{rewardId},</if>
<if test="chargeId != null">#{chargeId},</if>
<if test="cashId != null">#{cashId},</if>
<if test="modTime != null">#{modTime},</if>
<choose>
<when test="modTime != null">#{modTime},</when>
<otherwise>now(),</otherwise>
</choose>
<if test="providerId != null">#{providerId},</if>
</trim>
</insert>
@ -73,7 +76,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="rewardId != null">reward_id = #{rewardId},</if>
<if test="chargeId != null">charge_id = #{chargeId},</if>
<if test="cashId != null">cash_id = #{cashId},</if>
<if test="modTime != null">mod_time = #{modTime},</if>
<choose>
<when test="modTime != null">mod_time = #{modTime},</when>
<otherwise>mod_time = now(),</otherwise>
</choose>
<if test="providerId != null">provider_id = #{providerId},</if>
</trim>
where account_id = #{accountId}

View File

@ -75,7 +75,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="storeEnv2 != null">store_env2,</if>
<if test="storeEnv3 != null">store_env3,</if>
<if test="storeEnv4 != null">store_env4,</if>
<if test="modTime != null">mod_time,</if>
mod_time,
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="providerId != null">#{providerId},</if>
@ -94,7 +94,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="storeEnv2 != null">#{storeEnv2},</if>
<if test="storeEnv3 != null">#{storeEnv3},</if>
<if test="storeEnv4 != null">#{storeEnv4},</if>
<if test="modTime != null">#{modTime},</if>
<choose>
<when test="modTime != null">#{modTime},</when>
<otherwise>now(),</otherwise>
</choose>
</trim>
</insert>
@ -116,7 +119,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="storeEnv2 != null">store_env2 = #{storeEnv2},</if>
<if test="storeEnv3 != null">store_env3 = #{storeEnv3},</if>
<if test="storeEnv4 != null">store_env4 = #{storeEnv4},</if>
<if test="modTime != null">mod_time = #{modTime},</if>
<choose>
<when test="modTime != null">mod_time = #{modTime},</when>
<otherwise>mod_time = now(),</otherwise>
</choose>
<!-- <if test="modTime != null">mod_time = #{modTime},</if>-->
</trim>
where store_id = #{storeId}
</update>

View File

@ -47,7 +47,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="sortId != null">sort_id,</if>
<if test="typeId != null">type_id,</if>
<if test="mgtState != null">mgt_state,</if>
<if test="modTime != null">mod_time,</if>
mod_time,
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="storeId != null">#{storeId},</if>
@ -56,7 +56,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="sortId != null">#{sortId},</if>
<if test="typeId != null">#{typeId},</if>
<if test="mgtState != null">#{mgtState},</if>
<if test="modTime != null">#{modTime},</if>
<choose>
<when test="modTime != null">#{modTime},</when>
<otherwise>now(),</otherwise>
</choose>
</trim>
</insert>
@ -69,7 +72,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="sortId != null">sort_id = #{sortId},</if>
<if test="typeId != null">type_id = #{typeId},</if>
<if test="mgtState != null">mgt_state = #{mgtState},</if>
<if test="modTime != null">mod_time = #{modTime},</if>
<choose>
<when test="modTime != null">mod_time = #{modTime},</when>
<otherwise>mod_time = now(),</otherwise>
</choose>
</trim>
where mgt_id = #{mgtId}
</update>

View File

@ -46,7 +46,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="rewardType != null and rewardType != ''">reward_type,</if>
<if test="rewardCardId != null">reward_card_id,</if>
<if test="rewardCardTypeId != null">reward_card_type_id,</if>
<if test="modTime != null">mod_time,</if>
mod_time,
<if test="providerId != null">provider_id,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
@ -55,7 +55,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="rewardType != null and rewardType != ''">#{rewardType},</if>
<if test="rewardCardId != null">#{rewardCardId},</if>
<if test="rewardCardTypeId != null">#{rewardCardTypeId},</if>
<if test="modTime != null">#{modTime},</if>
<choose>
<when test="modTime != null">#{modTime},</when>
<otherwise>now(),</otherwise>
</choose>
<if test="providerId != null">#{providerId},</if>
</trim>
</insert>
@ -68,7 +71,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="rewardType != null and rewardType != ''">reward_type = #{rewardType},</if>
<if test="rewardCardId != null">reward_card_id = #{rewardCardId},</if>
<if test="rewardCardTypeId != null">reward_card_type_id = #{rewardCardTypeId},</if>
<if test="modTime != null">mod_time = #{modTime},</if>
<choose>
<when test="modTime != null">mod_time = #{modTime},</when>
<otherwise>mod_time = now(),</otherwise>
</choose>
<if test="providerId != null">provider_id = #{providerId},</if>
</trim>
where reward_id = #{rewardId}

View File

@ -29,7 +29,21 @@ export function addSegchk_saler_info(data) {
// 修改seg销售人员信息
export function updateSegchk_saler_info(data) {
return request({
url: '/segchk/segchk_saler_info',
url: '/segchk/segchk_saler_info/edit',
method: 'put',
data: data
})
}
// 修改seg销售人员信息
export function updateSegchk_saler_status(providerId, salerId, salerState) {
const data = {
providerId,
salerId,
salerState
}
return request({
url: '/segchk/segchk_saler_info/update_status',
method: 'put',
data: data
})
@ -50,4 +64,4 @@ export function exportSegchk_saler_info(query) {
method: 'get',
params: query
})
}
}

View File

@ -29,7 +29,20 @@ export function addSegchk_store_lable_mgt(data) {
// 修改seg商家标签管理
export function updateSegchk_store_lable_mgt(data) {
return request({
url: '/segchk/segchk_store_lable_mgt',
url: '/segchk/segchk_store_lable_mgt/edit',
method: 'put',
data: data
})
}
// 修改seg商家标签管理
export function updateSegchk_store_lable_status(mgtId, mgtState) {
const data = {
mgtId,
mgtState
}
return request({
url: '/segchk/segchk_store_lable_mgt/update_status',
method: 'put',
data: data
})
@ -50,4 +63,4 @@ export function exportSegchk_store_lable_mgt(query) {
method: 'get',
params: query
})
}
}

View File

@ -0,0 +1,53 @@
import request from '@/utils/request'
// 查询系统设置列表
export function listSegchk_system_setting(query) {
return request({
url: '/segchk/segchk_system_setting/list',
method: 'get',
params: query
})
}
// 查询系统设置详细
export function getSegchk_system_setting(id) {
return request({
url: '/segchk/segchk_system_setting/' + id,
method: 'get'
})
}
// 新增系统设置
export function addSegchk_system_setting(data) {
return request({
url: '/segchk/segchk_system_setting',
method: 'post',
data: data
})
}
// 修改系统设置
export function updateSegchk_system_setting(data) {
return request({
url: '/segchk/segchk_system_setting/edit',
method: 'put',
data: data
})
}
// 删除系统设置
export function delSegchk_system_setting(id) {
return request({
url: '/segchk/segchk_system_setting/' + id,
method: 'delete'
})
}
// 导出系统设置
export function exportSegchk_system_setting(query) {
return request({
url: '/segchk/segchk_system_setting/export',
method: 'get',
params: query
})
}

View File

@ -0,0 +1,115 @@
<template>
<div class="upload-container">
<el-button icon="el-icon-upload" size="mini" type="primary" @click=" dialogVisible=true">
上传图片
</el-button>
<el-dialog :visible.sync="dialogVisible">
<el-upload
:multiple="true"
:file-list="fileList"
:show-file-list="true"
:on-remove="handleRemove"
:on-success="handleSuccess"
:before-upload="beforeUpload"
class="editor-slide-upload"
:action="uploadApi"
:headers="headers"
list-type="picture-card"
name="image"
accept=",.JPG,.jpeg,.png,.gif,.ico,.JPEG,.PNG,.GIF,.ICO,.jpg"
>
<i class="el-icon-plus"></i>
</el-upload>
<div style="text-align: right">
<el-button @click="dialogVisible = false">
取消
</el-button>
<el-button type="primary" @click="handleSubmit">
确定
</el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { getToken } from '@/utils/auth'
export default {
name: 'EditorSlideUpload',
data() {
return {
uploadApi: process.env.VUE_APP_BASE_API+'/aliyun/oss/uploadToAliOss', // api
headers: {
Authorization: 'Bearer ' + getToken()
}, //
dialogVisible: false,
listObj: {},
fileList: []
}
},
methods: {
checkAllSuccess() {
return Object.keys(this.listObj).every(item => this.listObj[item].hasSuccess)
},
handleSubmit() {
const arr = Object.keys(this.listObj).map(v => this.listObj[v])
if (!this.checkAllSuccess()) {
this.$message('请等待所有图片上传成功。如果有网络问题,请刷新页面并再次上传!')
return
}
this.$emit('successCBK', arr)
this.listObj = {}
this.fileList = []
this.dialogVisible = false
},
handleSuccess(response, file) {
const uid = file.uid
const objKeyArr = Object.keys(this.listObj)
for (let i = 0, len = objKeyArr.length; i < len; i++) {
if (this.listObj[objKeyArr[i]].uid === uid) {
this.listObj[objKeyArr[i]].url = response;
this.listObj[objKeyArr[i]].hasSuccess = true
return
}
}
},
handleRemove(file) {
const uid = file.uid
const objKeyArr = Object.keys(this.listObj)
for (let i = 0, len = objKeyArr.length; i < len; i++) {
if (this.listObj[objKeyArr[i]].uid === uid) {
delete this.listObj[objKeyArr[i]]
return
}
}
},
beforeUpload(file) {
const _self = this
const _URL = window.URL || window.webkitURL
const fileName = file.uid
this.listObj[fileName] = {}
return new Promise((resolve, reject) => {
const img = new Image()
img.src = _URL.createObjectURL(file)
img.onload = function () {
_self.listObj[fileName] = {hasSuccess: false, uid: file.uid, width: this.width, height: this.height}
}
resolve(true)
})
}
}
}
</script>
<style lang="scss" scoped>
.editor-slide-upload {
margin-bottom: 20px;
}
/*/deep/*/
.el-upload--picture-card {
width: 100px;
}
</style>

View File

@ -0,0 +1,60 @@
let callbacks = []
function loadedTinymce() {
// to fixed https://github.com/PanJiaChen/vue-element-admin/issues/2144
// check is successfully downloaded script
return window.tinymce
}
const dynamicLoadScript = (src, callback) => {
const existingScript = document.getElementById(src)
const cb = callback || function () {
}
if (!existingScript) {
const script = document.createElement('script')
script.src = src // src url for the third-party library being loaded.
script.id = src
document.body.appendChild(script)
callbacks.push(cb)
const onEnd = 'onload' in script ? stdOnEnd : ieOnEnd
onEnd(script)
}
if (existingScript && cb) {
if (loadedTinymce()) {
cb(null, existingScript)
} else {
callbacks.push(cb)
}
}
function stdOnEnd(script) {
script.onload = function () {
// this.onload = null here is necessary
// because even IE9 works not like others
this.onerror = this.onload = null
for (const cb of callbacks) {
cb(null, script)
}
callbacks = null
}
script.onerror = function () {
this.onerror = this.onload = null
cb(new Error('Failed to load ' + src), script)
}
}
function ieOnEnd(script) {
script.onreadystatechange = function () {
if (this.readyState !== 'complete' && this.readyState !== 'loaded') return
this.onreadystatechange = null
for (const cb of callbacks) {
cb(null, script) // there is no way to catch loading errors in IE8
}
callbacks = null
}
}
}
export default dynamicLoadScript

View File

@ -0,0 +1,204 @@
<template>
<div :class="{fullscreen:fullscreen}" class="tinymce-container" :style="{width:containerWidth}">
<textarea :id="tinymceId" class="tinymce-textarea" />
<div class="editor-custom-btn-container">
<editorImage color="#1890ff" class="editor-upload-btn" @successCBK="imageSuccessCBK" />
</div>
</div>
</template>
<script>
/**
* docs:
* https://panjiachen.github.io/vue-element-admin-site/feature/component/rich-editor.html#tinymce
*/
import editorImage from './components/EditorImage'
import plugins from './plugins'
import toolbar from './toolbar'
import load from './dynamicLoadScript'
// why use this cdn, detail see https://github.com/PanJiaChen/tinymce-all-in-one
const tinymceCDN = 'https://cdn.jsdelivr.net/npm/tinymce-all-in-one@4.9.3/tinymce.min.js'
export default {
name: 'Tinymce',
components: { editorImage },
props: {
id: {
type: String,
default: function() {
return 'vue-tinymce-' + +new Date() + ((Math.random() * 1000).toFixed(0) + '')
}
},
value: {
type: String,
default: ''
},
toolbar: {
type: Array,
required: false,
default() {
return []
}
},
menubar: {
type: String,
default: 'file edit insert view format table'
},
height: {
type: [Number, String],
required: false,
default: 360
},
width: {
type: [Number, String],
required: false,
default: 'auto'
}
},
data() {
return {
hasChange: false,
hasInit: false,
tinymceId: this.id,
fullscreen: false,
languageTypeList: {
'en': 'en',
'zh': 'zh_CN',
'es': 'es_MX',
'ja': 'ja'
}
}
},
computed: {
containerWidth() {
const width = this.width
if (/^[\d]+(\.[\d]+)?$/.test(width)) { // matches `100`, `'100'`
return `${width}px`
}
return width
}
},
watch: {
value(val) {
if (!this.hasChange && this.hasInit) {
this.$nextTick(() =>
window.tinymce.get(this.tinymceId).setContent(val || ''))
}
}
},
mounted() {
this.init()
},
activated() {
if (window.tinymce) {
this.initTinymce()
}
},
deactivated() {
this.destroyTinymce()
},
destroyed() {
this.destroyTinymce()
},
methods: {
init() {
// dynamic load tinymce from cdn
load(tinymceCDN, (err) => {
if (err) {
this.$message.error(err.message)
return
}
this.initTinymce()
})
},
initTinymce() {
const _this = this
window.tinymce.init({
selector: `#${this.tinymceId}`,
language: this.languageTypeList['zh'],
height: this.height,
body_class: 'panel-body ',
object_resizing: false,
toolbar: this.toolbar.length > 0 ? this.toolbar : toolbar,
menubar: this.menubar,
plugins: plugins,
end_container_on_empty_block: true,
powerpaste_word_import: 'clean',
code_dialog_height: 450,
code_dialog_width: 1000,
advlist_bullet_styles: 'square',
advlist_number_styles: 'default',
imagetools_cors_hosts: ['www.tinymce.com', 'codepen.io'],
default_link_target: '_blank',
link_title: false,
nonbreaking_force_tab: true, // inserting nonbreaking space &nbsp; need Nonbreaking Space Plugin
init_instance_callback: editor => {
if (_this.value) {
editor.setContent(_this.value)
}
_this.hasInit = true
editor.on('NodeChange Change KeyUp SetContent', () => {
this.hasChange = true
this.$emit('input', editor.getContent())
})
},
setup(editor) {
editor.on('FullscreenStateChanged', (e) => {
_this.fullscreen = e.state
})
}
})
},
destroyTinymce() {
const tinymce = window.tinymce.get(this.tinymceId)
if (this.fullscreen) {
tinymce.execCommand('mceFullScreen')
}
if (tinymce) {
tinymce.destroy()
}
},
setContent(value) {
window.tinymce.get(this.tinymceId).setContent(value)
},
getContent() {
window.tinymce.get(this.tinymceId).getContent()
},
imageSuccessCBK(arr) {
const _this = this
arr.forEach(v => {
window.tinymce.get(_this.tinymceId).insertContent(`<img class="wscnph" src="${v.url}" >`)
})
}
}
}
</script>
<style scoped>
.tinymce-container {
position: relative;
line-height: normal;
}
.tinymce-container>>>.mce-fullscreen {
z-index: 10000;
}
.tinymce-textarea {
visibility: hidden;
z-index: -1;
}
.editor-custom-btn-container {
position: absolute;
right: 4px;
top: 4px;
/*z-index: 2005;*/
}
.fullscreen .editor-custom-btn-container {
z-index: 10000;
position: fixed;
}
.editor-upload-btn {
display: inline-block;
}
</style>

View File

@ -0,0 +1,7 @@
// Any plugins you want to use has to be imported
// Detail plugins list see https://www.tinymce.com/docs/plugins/
// Custom builds see https://www.tinymce.com/download/custom-builds/
const plugins = ['advlist anchor autolink autosave code codesample colorpicker colorpicker contextmenu directionality emoticons fullscreen hr imagetools insertdatetime link lists nonbreaking noneditable pagebreak paste preview print save searchreplace spellchecker tabfocus table template textcolor textpattern visualblocks visualchars wordcount']
export default plugins

View File

@ -0,0 +1,6 @@
// Here is a list of the toolbar
// Detail list see https://www.tinymce.com/docs/advanced/editor-control-identifiers/#toolbarcontrols
const toolbar = ['searchreplace bold italic underline strikethrough alignleft aligncenter alignright outdent indent blockquote undo redo removeformat subscript superscript code codesample', 'hr bullist numlist link charmap preview anchor pagebreak insertdatetime table emoticons forecolor backcolor fullscreen']
export default toolbar

View File

@ -0,0 +1,96 @@
<template> 
<div>
<el-upload
:action="uploadApi"
:data="dataObj"
list-type="picture-card"
:file-list="fileList"
:before-upload="beforeUpload"
:on-remove="handleRemove"
:on-success="handleUploadSuccess"
:on-preview="handlePreview"
:limit="maxCount"
:on-exceed="handleExceed"
>
<i class="el-icon-plus"></i>
</el-upload>
<el-dialog :visible.sync="dialogVisible">
<img width="100%" :src="dialogImageUrl" alt="">
</el-dialog>
</div>
</template>
<script>
export default {
name: 'multiUpload',
props: {
//
value: Array,
//
maxCount:{
type:Number,
default:5
}
},
data() {
return {
uploadApi: process.env.VUE_APP_BASE_API+'/aliyun/oss/uploadToAliOss',//
dataObj: {
policy: '',
signature: '',
key: '',
ossaccessKeyId: '',
dir: '',
host: ''
},
dialogVisible: false,
dialogImageUrl:null
};
},
computed: {
fileList() {
let fileList=[];
for(let i=0;i<this.value.length;i++){
fileList.push({url:this.value[i]});
}
return fileList;
}
},
methods: {
emitInput(fileList) {
let value=[];
for(let i=0;i<fileList.length;i++){
value.push(fileList[i].url);
}
this.$emit('input', value)
},
handleRemove(file, fileList) {
this.emitInput(fileList);
},
handlePreview(file) {
this.dialogVisible = true;
this.dialogImageUrl=file.url;
},
beforeUpload(file) {
},
handleUploadSuccess(res, file) {
this.fileList.push({url: file.name,url:res.data});
this.emitInput(this.fileList);
},
handleExceed(files, fileList) {
this.$message({
message: '最多只能上传'+this.maxCount+'张图片',
type: 'warning',
duration:1000
});
},
}
}
</script>
<style>
</style>

View File

@ -0,0 +1,103 @@
<template> 
<div>
<el-upload
:action="uploadApi"
:data="dataObj"
list-type="picture"
:multiple="false"
:show-file-list="showFileList"
:file-list="fileList"
:before-upload="beforeUpload"
:on-remove="handleRemove"
:on-success="handleUploadSuccess"
:headers="headers"
:on-preview="handlePreview">
<el-button size="small" type="primary">点击上传</el-button>
<div slot="tip" class="el-upload__tip">只能上传jpg/png文件且不超过10MB</div>
</el-upload>
<el-dialog :visible.sync="dialogVisible">
<img width="100%" :src="fileList[0].url" alt="">
</el-dialog>
</div>
</template>
<script>
import {getToken} from "@/utils/auth";
export default {
name: 'singleUpload',
props: {
value: String
},
computed: {
imageUrl() {
return this.value;
},
imageName() {
if (this.value != null && this.value !== '') {
return this.value.substr(this.value.lastIndexOf("/") + 1);
} else {
return null;
}
},
fileList() {
return [{
name: this.imageName,
url: this.imageUrl
}]
},
showFileList: {
get: function () {
return this.value !== null && this.value !== ''&& this.value!==undefined;
},
set: function (newValue) {
}
}
},
data() {
return {
uploadApi: process.env.VUE_APP_BASE_API + "/common/upload",//
// uploadApi: process.env.VUE_APP_BASE_API+'/aliyun/oss/uploadToAliOss',//
dataObj: {
policy: '',
signature: '',
key: '',
ossaccessKeyId: '',
dir: '',
host: ''
},
dialogVisible: false,
headers: {
Authorization: "Bearer " + getToken(),
}
};
},
methods: {
emitInput(val) {
this.$emit('input', val)
},
handleRemove(file, fileList) {
this.emitInput('');
},
handlePreview(file) {
this.dialogVisible = true;
},
beforeUpload(file) {
},
handleUploadSuccess(res, file) {
console.log(res)
console.log(file)
this.showFileList = true;
this.fileList.pop();
this.fileList.push({name: res.fileName, url: res.url});
this.emitInput(this.fileList[0].url);
}
}
}
</script>
<style>
</style>

View File

@ -37,7 +37,7 @@
<!-- />-->
<el-select v-model="queryParams.storeId" placeholder="运营商id" @keyup.enter.native="handleQuery">
<el-option
v-for="dict in this.segchk_storeList"
v-for="dict in watch_provider(queryParams.providerId)"
:key="dict.key"
:label="dict.value"
:value="dict.key"
@ -348,7 +348,7 @@ export default {
}
if (column.property == 'storeId'){
var ret = this.segchk_storeList.find(value => {
return value.typeId == row.lableFlag
return value.key == row.storeId
})
var provName = ret == null ? "未知" : ret.value;
return provName
@ -359,7 +359,7 @@ export default {
// console.log(typeof row.mgtState)
// return
var ret = this.segchk_storeList.find(value => {
return value.typeId == row.lableFlag
return value.key == row.storeId
})
var storeName = ret == null ? "未知" : ret.value;
this.$confirm('确认要"' + text + '""' + storeName + '"吗?', "警告", {

View File

@ -1,7 +1,7 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="更新id,全表唯一" prop="updateId">
<el-form-item label="更新id" prop="updateId">
<el-input
v-model="queryParams.updateId"
placeholder="请输入更新id全表唯一"
@ -28,23 +28,25 @@
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="商家id全局唯一" prop="storeId">
<el-input
v-model="queryParams.storeId"
placeholder="请输入商家id全局唯一"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
<el-form-item label="商家id" prop="storeId">
<el-select v-model="queryParams.storeId" placeholder="商家id" @keyup.enter.native="handleQuery">
<el-option
v-for="dict in this.segchk_storeList"
:key="dict.key"
:label="dict.value"
:value="dict.key"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="运营商id全局唯一" prop="providerId">
<el-input
v-model="queryParams.providerId"
placeholder="请输入运营商id全局唯一"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
<el-form-item label="运营商id" prop="providerId">
<el-select v-model="queryParams.providerId" placeholder="运营商id" @keyup.enter.native="handleQuery">
<el-option
v-for="dict in this.segchk_providerList"
:key="dict.key"
:label="dict.value"
:value="dict.key"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="创建或修改时间">
<el-date-picker
@ -116,8 +118,8 @@
<el-table-column label="更新id全表唯一" align="center" prop="updateId" />
<el-table-column label="评价次数" align="center" prop="starCount" />
<el-table-column label="评价总分" align="center" prop="starLevel" />
<el-table-column label="商家id全局唯一" align="center" prop="storeId" />
<el-table-column label="运营商id全局唯一" align="center" prop="providerId" />
<el-table-column label="商家id全局唯一" align="center" prop="storeId" :formatter="tableStoreName" />
<el-table-column label="运营商id全局唯一" align="center" prop="providerId" :formatter="tableStoreName" />
<el-table-column label="创建或修改时间" align="center" prop="modTime" width="180">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.modTime, '{y}-{m}-{d}') }}</span>
@ -142,7 +144,7 @@
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
:total="total"
@ -154,26 +156,35 @@
<!-- 添加或修改seg商家累积评价对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="运营商id" prop="providerId">
<el-select v-model="form.providerId" placeholder="运营商" >
<el-option
v-for="dict in segchk_providerList"
:key="parseInt(dict.key)"
:label="dict.value"
:value="parseInt(dict.key)"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="商家id" prop="storeId">
<el-select v-model="form.storeId" placeholder="请输入商家id" >
<el-option
v-for="dict in getLabelComp(form.providerId)"
:key="parseInt(dict.key)"
:label="dict.value"
:value="parseInt(dict.key)"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="评价次数" prop="starCount">
<el-input v-model="form.starCount" placeholder="请输入评价次数" />
</el-form-item>
<el-form-item label="评价总分" prop="starLevel">
<el-input v-model="form.starLevel" placeholder="请输入评价总分" />
</el-form-item>
<el-form-item label="商家id全局唯一" prop="storeId">
<el-input v-model="form.storeId" placeholder="请输入商家id全局唯一" />
</el-form-item>
<el-form-item label="运营商id全局唯一" prop="providerId">
<el-input v-model="form.providerId" placeholder="请输入运营商id全局唯一" />
</el-form-item>
<el-form-item label="创建或修改时间" prop="modTime">
<el-date-picker clearable size="small"
v-model="form.modTime"
type="date"
value-format="yyyy-MM-dd"
placeholder="选择创建或修改时间">
</el-date-picker>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
@ -185,6 +196,7 @@
<script>
import { listSegchk_comment_acc, getSegchk_comment_acc, delSegchk_comment_acc, addSegchk_comment_acc, updateSegchk_comment_acc, exportSegchk_comment_acc } from "@/api/segchk/segchk_comment_acc";
import {segchk_get_provider_list, segchk_get_store_list} from "@/api/segchk/segchk_get_simple_list";
export default {
name: "Segchk_comment_acc",
@ -201,7 +213,7 @@ export default {
//
multiple: true,
//
showSearch: true,
showSearch: false,
//
total: 0,
// seg
@ -223,6 +235,8 @@ export default {
providerId: null,
modTime: null
},
segchk_storeList: [],
segchk_providerList: [],
//
form: {},
//
@ -248,7 +262,31 @@ export default {
created() {
this.getList();
},
computed:{
getLabelComp(){
return function (providerId) {
let arr = []
arr = this.segchk_storeList
.filter(value => value.providerId == providerId)
return arr
}
}
},
methods: {
tableStoreName(row, column) {
if(column.property == 'providerId') {
var ret = this.segchk_providerList.find((value) => {return parseInt(value.key) == row.providerId})
var provName = ret == null ? "未知" : ret.value;
return provName
}
if(column.property == 'storeId') {
var ret = this.segchk_storeList.find((value) => {
return value.providerId == row.providerId && value.key == row.storeId
})
var provName = ret == null ? "未知" : ret.value;
return provName
}
},
/** 查询seg商家累积评价列表 */
getList() {
this.loading = true;
@ -257,6 +295,12 @@ export default {
this.queryParams.params["beginModTime"] = this.daterangeModTime[0];
this.queryParams.params["endModTime"] = this.daterangeModTime[1];
}
segchk_get_store_list(this.queryParams.providerId).then(response => {
this.segchk_storeList = response.rows;
})
segchk_get_provider_list(this.queryParams.providerId).then(response => {
this.segchk_providerList = response.rows;
})
listSegchk_comment_acc(this.queryParams).then(response => {
this.segchk_comment_accList = response.rows;
this.total = response.total;

View File

@ -38,6 +38,15 @@
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="微信号" prop="wechatId">
<el-input
v-model="queryParams.wechatId"
placeholder="请输入昵称"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="手机号码" prop="phoneNo">
<el-input
v-model="queryParams.phoneNo"
@ -162,6 +171,7 @@
<el-table-column label="微信的联合登录id" align="center" prop="unionId" />-->
<el-table-column label="运营商id" align="center" prop="providerId" :formatter="tableProviderName"/>
<el-table-column label="昵称" align="center" prop="nickName" />
<el-table-column label="微信号" align="center" prop="wechatId" />
<el-table-column label="头像地址" align="center" prop="iconUrl" >
<template slot-scope="scope">
<!-- <el-input v-model="scope.row.card2" placeholder="请输入身份证反面照片路径" />-->
@ -245,6 +255,9 @@
<el-form-item label="昵称" prop="nickName">
<el-input v-model="form.nickName" placeholder="请输入昵称" />
</el-form-item>
<el-form-item label="微信号" prop="wechatId">
<el-input v-model="form.wechatId" placeholder="请输入微信号" />
</el-form-item>
<el-form-item label="头像地址">
<imageUpload v-model="form.iconUrl"/>
</el-form-item>
@ -363,6 +376,7 @@ export default {
pageSize: 10,
openid: null,
unionId: null,
wechatId: null,
providerId: null,
nickName: null,
iconUrl: null,
@ -511,6 +525,7 @@ export default {
this.form = {
openid: null,
unionId: null,
wechatId: null,
providerId: null,
nickName: null,
iconUrl: null,

View File

@ -81,13 +81,14 @@
<el-tooltip content="0工作1非工作状态2删除" placement="top">
<i class="el-icon-question"></i>
</el-tooltip>
<el-input
v-model="queryParams.salerState"
placeholder="请输入销售人员状态"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
<el-select v-model="queryParams.salerState" placeholder="状态" @keyup.enter.native="handleQuery">
<el-option
v-for="dict in this.salerStatus"
:key="parseInt(dict.key)"
:label="dict.value"
:value="parseInt(dict.key)"
></el-option>
</el-select>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery"></el-button>
@ -156,6 +157,16 @@
<el-table-column label="销售人员电话" align="center" prop="salerPhone" />
<el-table-column label="销售人员身份证号" align="center" prop="salerCard" />
<el-table-column filter-placement="top" label="销售人员状态" align="center" prop="salerState">
<template slot-scope="scope">
<el-select v-model="scope.row.salerState" @change="handleStatusChange(scope.row)">
<el-option
v-for="dict in salerStatus"
:key="parseInt(dict.key)"
:label="dict.value"
:value="parseInt(dict.key)"
></el-option>
</el-select>
</template>
</el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
@ -223,7 +234,14 @@
<el-tooltip content="0工作1非工作状态2删除" placement="top">
<i class="el-icon-question"></i>
</el-tooltip>
<el-input v-model="form.salerState" placeholder="请输入销售人员状态" />
<el-select v-model="form.salerState" >
<el-option
v-for="dict in salerStatus"
:key="parseInt(dict.key)"
:label="dict.value"
:value="parseInt(dict.key)"
></el-option>
</el-select>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
@ -235,7 +253,7 @@
</template>
<script>
import { listSegchk_saler_info, getSegchk_saler_info, delSegchk_saler_info, addSegchk_saler_info, updateSegchk_saler_info, exportSegchk_saler_info } from "@/api/segchk/segchk_saler_info";
import { listSegchk_saler_info, getSegchk_saler_info, delSegchk_saler_info, addSegchk_saler_info, updateSegchk_saler_info, exportSegchk_saler_info, updateSegchk_saler_status } from "@/api/segchk/segchk_saler_info";
import {segchk_get_provider_list, segchk_get_saler_list} from "@/api/segchk/segchk_get_simple_list"
@ -277,6 +295,20 @@ export default {
salerCard: null,
salerState: null
},
salerStatus:[
{
key: 0,
value:"正常"
},
{
key: 1,
value:"失效"
},
{
key: 2,
value:"删除"
}
],
segchk_providerList: [],
//
segchk_salerList: [],
@ -306,12 +338,23 @@ export default {
this.getList();
},
methods: {
//
handleStatusChange(row, index) {
let text = row.flagId === 0 ? "上线" : row.flagId === 1 ? "下线" : "删除";
this.$confirm('确认要"' + text + '" 销售"' + row.salerName + '?', "警告", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
}).then(function() {
// return
return updateSegchk_saler_status(row.providerId, row.salerId, row.salerState);
}).then((response) => {
console.log(response)
this.msgSuccess(text + "成功");
}).catch(function(res) {
});
},
salerselect(providerId) {
// if(providerId == undefined) {
// console.log("prov is "+providerId)
// alert("id")
// return [];
// }
var providerId = providerId
var segchk_salerList = this.segchk_salerList
.map(value => {

View File

@ -1,14 +1,25 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="商家id全局唯一" prop="storeId">
<el-input
v-model="queryParams.storeId"
placeholder="请输入商家id全局唯一"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
<el-form-item label="运营商id" prop="providerId">
<el-select v-model="queryParams.providerId" placeholder="运营商id" @keyup.enter.native="handleQuery">
<el-option
v-for="dict in this.segchk_providerList"
:key="dict.key"
:label="dict.value"
:value="dict.key"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="商家id" prop="storeId">
<el-select v-model="queryParams.storeId" placeholder="商家id" @keyup.enter.native="handleQuery">
<el-option
v-for="dict in getLabelComp(queryParams.providerId)"
:key="dict.key"
:label="dict.value"
:value="dict.key"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="余额" prop="account">
<el-input
@ -19,11 +30,11 @@
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="余额类型" prop="accountType">
<!--<el-form-item label="余额类型" prop="accountType">
<el-select v-model="queryParams.accountType" placeholder="请选择余额类型" clearable size="small">
<el-option label="请选择字典生成" value="" />
</el-select>
</el-form-item>
</el-form-item>-->
<el-form-item label="余额id" prop="accountId">
<el-input
v-model="queryParams.accountId"
@ -72,15 +83,7 @@
end-placeholder="结束日期"
></el-date-picker>
</el-form-item>
<el-form-item label="运营商id全局唯一" prop="providerId">
<el-input
v-model="queryParams.providerId"
placeholder="请输入运营商id全局唯一"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery"></el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"></el-button>
@ -136,9 +139,10 @@
<el-table v-loading="loading" :data="segchk_store_accountList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="商家id全局唯一" align="center" prop="storeId" />
<el-table-column label="运营商id" align="center" prop="providerId" :formatter="tableStoreName" />
<el-table-column label="商家id" align="center" prop="storeId" :formatter="tableStoreName" />
<el-table-column label="余额" align="center" prop="account" />
<el-table-column label="余额类型" align="center" prop="accountType" />
<!--<el-table-column label="余额类型" align="center" prop="accountType" />-->
<el-table-column label="余额id" align="center" prop="accountId" />
<el-table-column label="奖励id" align="center" prop="rewardId" />
<el-table-column label="充值id" align="center" prop="chargeId" />
@ -148,7 +152,7 @@
<span>{{ parseTime(scope.row.modTime, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="运营商id全局唯一" align="center" prop="providerId" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button
@ -168,7 +172,7 @@
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
:total="total"
@ -180,17 +184,34 @@
<!-- 添加或修改seg商户余额信息对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="商家id全局唯一" prop="storeId">
<el-input v-model="form.storeId" placeholder="请输入商家id全局唯一" />
<el-form-item label="运营商id" prop="providerId">
<el-select v-model="form.providerId" placeholder="运营商" >
<el-option
v-for="dict in segchk_providerList"
:key="parseInt(dict.key)"
:label="dict.value"
:value="parseInt(dict.key)"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="商家id" prop="storeId">
<el-select v-model="form.storeId" placeholder="请输入商家id" >
<el-option
v-for="dict in getLabelComp(form.providerId)"
:key="parseInt(dict.key)"
:label="dict.value"
:value="parseInt(dict.key)"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="余额" prop="account">
<el-input v-model="form.account" placeholder="请输入余额" />
</el-form-item>
<el-form-item label="余额类型" prop="accountType">
<!--<el-form-item label="余额类型" prop="accountType">
<el-select v-model="form.accountType" placeholder="请选择余额类型">
<el-option label="请选择字典生成" value="" />
</el-select>
</el-form-item>
</el-form-item>-->
<el-form-item label="奖励id" prop="rewardId">
<el-input v-model="form.rewardId" placeholder="请输入奖励id" />
</el-form-item>
@ -200,17 +221,14 @@
<el-form-item label="充值id" prop="cashId">
<el-input v-model="form.cashId" placeholder="请输入充值id" />
</el-form-item>
<el-form-item label="创建或修改时间" prop="modTime">
<!--<el-form-item label="创建或修改时间" prop="modTime">
<el-date-picker clearable size="small"
v-model="form.modTime"
type="date"
value-format="yyyy-MM-dd"
placeholder="选择创建或修改时间">
</el-date-picker>
</el-form-item>
<el-form-item label="运营商id全局唯一" prop="providerId">
<el-input v-model="form.providerId" placeholder="请输入运营商id全局唯一" />
</el-form-item>
</el-form-item>-->
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
@ -222,6 +240,7 @@
<script>
import { listSegchk_store_account, getSegchk_store_account, delSegchk_store_account, addSegchk_store_account, updateSegchk_store_account, exportSegchk_store_account } from "@/api/segchk/segchk_store_account";
import {segchk_get_provider_list, segchk_get_store_list} from "@/api/segchk/segchk_get_simple_list";
export default {
name: "Segchk_store_account",
@ -238,7 +257,7 @@ export default {
//
multiple: true,
//
showSearch: true,
showSearch: false,
//
total: 0,
// seg
@ -263,6 +282,8 @@ export default {
modTime: null,
providerId: null
},
segchk_storeList: [],
segchk_providerList: [],
//
form: {},
//
@ -273,15 +294,7 @@ export default {
account: [
{ required: true, message: "余额不能为空", trigger: "blur" }
],
rewardId: [
{ required: true, message: "奖励id不能为空", trigger: "blur" }
],
chargeId: [
{ required: true, message: "充值id不能为空", trigger: "blur" }
],
cashId: [
{ required: true, message: "充值id不能为空", trigger: "blur" }
],
modTime: [
{ required: true, message: "创建或修改时间不能为空", trigger: "blur" }
],
@ -294,7 +307,31 @@ export default {
created() {
this.getList();
},
computed:{
getLabelComp(){
return function (providerId) {
let arr = []
arr = this.segchk_storeList
.filter(value => value.providerId == providerId)
return arr
}
}
},
methods: {
tableStoreName(row, column) {
if(column.property == 'providerId') {
var ret = this.segchk_providerList.find((value) => {return parseInt(value.key) == row.providerId})
var provName = ret == null ? "未知" : ret.value;
return provName
}
if(column.property == 'storeId') {
var ret = this.segchk_storeList.find((value) => {
return value.providerId == row.providerId && value.key == row.storeId
})
var provName = ret == null ? "未知" : ret.value;
return provName
}
},
/** 查询seg商户余额信息列表 */
getList() {
this.loading = true;
@ -303,6 +340,12 @@ export default {
this.queryParams.params["beginModTime"] = this.daterangeModTime[0];
this.queryParams.params["endModTime"] = this.daterangeModTime[1];
}
segchk_get_store_list(this.queryParams.providerId).then(response => {
this.segchk_storeList = response.rows;
})
segchk_get_provider_list(this.queryParams.providerId).then(response => {
this.segchk_providerList = response.rows;
})
listSegchk_store_account(this.queryParams).then(response => {
this.segchk_store_accountList = response.rows;
this.total = response.total;

View File

@ -493,7 +493,7 @@
<el-table-column label="序号" align="center" prop="index" width="50"/>
<el-table-column label="商家营业执照图1路径" prop="storeCertificate1" width="200">
<template slot-scope="scope">
<imageUpload :limit="1" v-model="scope.row.storeCertificate1" aria-placeholder="1" />
<imageUpload :file-size=1 :limit=1 v-model="scope.row.storeCertificate1" aria-placeholder="1" />
</template>
</el-table-column>
<el-table-column label="商家营业执照图2路径" prop="storeCertificate2" width="200">
@ -503,69 +503,69 @@
</el-table-column>
<el-table-column label="商家图标路径" prop="storeIcon" width="200">
<template slot-scope="scope">
<imageUpload :limit="1" v-model="scope.row.storeIcon" aria-placeholder=""/>
<imageUpload :file-size=1 :limit=1 v-model="scope.row.storeIcon" aria-placeholder=""/>
</template>
</el-table-column>
<el-table-column label="商家大图标路径" prop="storeGificon" width="200">
<template slot-scope="scope">
<imageUpload :limit="1" v-model="scope.row.storeGificon" aria-placeholder=""/>
<imageUpload :file-size=1 :limit=1 v-model="scope.row.storeGificon" aria-placeholder=""/>
</template>
</el-table-column>
<el-table-column label="商家轮播图1路径" prop="storeCarousel1" width="200">
<template slot-scope="scope">
<imageUpload :limit="1" v-model="scope.row.storeCarousel1" aria-placeholder="1"/>
<imageUpload :file-size=1 :limit=1 v-model="scope.row.storeCarousel1" aria-placeholder="1"/>
</template>
</el-table-column>
<el-table-column label="商家轮播图2路径" prop="storeCarousel2" width="200">
<template slot-scope="scope">
<imageUpload :limit="1" v-model="scope.row.storeCarousel2" aria-placeholder="2"/>
<imageUpload :file-size=1 :limit=1 v-model="scope.row.storeCarousel2" aria-placeholder="2"/>
</template>
</el-table-column>
<el-table-column label="商家轮播图3路径" prop="storeCarousel3" width="200">
<template slot-scope="scope">
<!-- <el-input v-model="scope.row.storeCarousel3" placeholder="请输入商家轮播图3路径" />-->
<imageUpload :limit="1" v-model="scope.row.storeCarousel3" aria-placeholder="3"/>
<imageUpload :file-size=1 :limit=1 v-model="scope.row.storeCarousel3" aria-placeholder="3"/>
</template>
</el-table-column>
<el-table-column label="商家轮播图4路径" prop="storeCarousel4" width="200">
<template slot-scope="scope">
<!-- <el-input v-model="scope.row.storeCarousel4" placeholder="请输入商家轮播图4路径" />-->
<imageUpload :limit="1" v-model="scope.row.storeCarousel4" aria-placeholder="4"/>
<imageUpload :file-size=1 :limit=1 v-model="scope.row.storeCarousel4" aria-placeholder="4"/>
</template>
</el-table-column>
<el-table-column label="商家轮播图5路径" prop="storeCarousel5" width="200">
<template slot-scope="scope">
<!-- <el-input v-model="scope.row.storeCarousel5" placeholder="请输入商家轮播图5路径" />-->
<imageUpload :limit="1" v-model="scope.row.storeCarousel5" aria-placeholder="5"/>
<imageUpload :file-size=1 :limit=1 v-model="scope.row.storeCarousel5" aria-placeholder="5"/>
</template>
</el-table-column>
<el-table-column label="商家轮播图6路径" prop="storeCarousel6" width="200">
<template slot-scope="scope">
<!-- <el-input v-model="scope.row.storeCarousel6" placeholder="请输入商家轮播图6路径" />-->
<imageUpload :limit="1" v-model="scope.row.storeCarousel6" aria-placeholder="6"/>
<imageUpload :file-size=1 :limit=1 v-model="scope.row.storeCarousel6" aria-placeholder="6"/>
</template>
</el-table-column>
<el-table-column label="商家环境图1" prop="storeEnv1" width="200">
<template slot-scope="scope">
<!-- <el-input v-model="scope.row.storeEnv1" placeholder="请输入商家环境图1" />-->
<imageUpload :limit="1" v-model="scope.row.storeEnv1" aria-placeholder="1"/>
<imageUpload :file-size=1 :limit=1 v-model="scope.row.storeEnv1" aria-placeholder="1"/>
</template>
</el-table-column>
<el-table-column label="商家环境图2" prop="storeEnv2" width="200">
<template slot-scope="scope">
<!-- <el-input v-model="scope.row.storeEnv2" placeholder="请输入商家环境图2" />-->
<imageUpload :limit="1" v-model="scope.row.storeEnv2" aria-placeholder="2"/>
<imageUpload :file-size=1 :limit=1 v-model="scope.row.storeEnv2" aria-placeholder="2"/>
</template>
</el-table-column>
<el-table-column label="商家环境图3" prop="storeEnv3" width="200">
<template slot-scope="scope">
<!-- <el-input v-model="scope.row.storeEnv3" placeholder="请输入商家环境图3" />-->
<imageUpload :limit="1" v-model="scope.row.storeEnv3" aria-placeholder="3"/>
<imageUpload :file-size=1 :limit=1 v-model="scope.row.storeEnv3" aria-placeholder="3"/>
</template>
</el-table-column>
<el-table-column label="商家环境图4" prop="storeEnv4" width="200">
<template slot-scope="scope">
<imageUpload :limit="1" v-model="scope.row.storeEnv4" aria-placeholder="4"/>
<imageUpload :file-size=1 :limit=1 v-model="scope.row.storeEnv4" aria-placeholder="4"/>
</template>
</el-table-column>
<!--<el-table-column label="创建或修改时间" prop="modTime" width="150">

View File

@ -1,14 +1,25 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="商家id全局唯一" prop="storeId">
<el-input
v-model="queryParams.storeId"
placeholder="请输入商家id全局唯一"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
<el-form-item label="运营商id" prop="providerId">
<el-select v-model="queryParams.providerId" placeholder="运营商id" @keyup.enter.native="handleQuery">
<el-option
v-for="dict in this.segchk_providerList"
:key="dict.key"
:label="dict.value"
:value="dict.key"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="商家id" prop="storeId">
<el-select v-model="queryParams.storeId" placeholder="商家id" @keyup.enter.native="handleQuery">
<el-option
v-for="dict in getLabelComp(queryParams.providerId)"
:key="dict.key"
:label="dict.value"
:value="dict.key"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="提现额" prop="cash">
<el-input
@ -19,24 +30,15 @@
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="提现类型" prop="cashType">
<!--<el-form-item label="提现类型" prop="cashType">
<el-select v-model="queryParams.cashType" placeholder="请选择提现类型" clearable size="small">
<el-option label="请选择字典生成" value="" />
</el-select>
</el-form-item>
<el-form-item label="提现id,全表唯一" prop="cashId">
</el-form-item>-->
<el-form-item label="提现id" prop="cashId">
<el-input
v-model="queryParams.cashId"
placeholder="请输入提现id全表唯一"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="运营商id全局唯一" prop="providerId">
<el-input
v-model="queryParams.providerId"
placeholder="请输入运营商id全局唯一"
placeholder="请输入提现id"
clearable
size="small"
@keyup.enter.native="handleQuery"
@ -54,14 +56,15 @@
end-placeholder="结束日期"
></el-date-picker>
</el-form-item>
<el-form-item label="提现结果0未完成1成功2失败" prop="retFlag">
<el-input
v-model="queryParams.retFlag"
placeholder="请输入提现结果0未完成1成功2失败"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
<el-form-item label="提现结果" prop="retFlag">
<el-select v-model="queryParams.retFlag" placeholder="运营商id" @keyup.enter.native="handleQuery">
<el-option
v-for="dict in this.cashRet"
:key="dict.key"
:label="dict.value"
:value="dict.key"
></el-option>
</el-select>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery"></el-button>
@ -118,17 +121,17 @@
<el-table v-loading="loading" :data="segchk_store_cashList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="商家id全局唯一" align="center" prop="storeId" />
<el-table-column label="运营商id" align="center" prop="providerId" :formatter="tableStoreName" />
<el-table-column label="商家id" align="center" prop="storeId" :formatter="tableStoreName" />
<el-table-column label="提现额" align="center" prop="cash" />
<el-table-column label="提现类型" align="center" prop="cashType" />
<el-table-column label="提现id全表唯一" align="center" prop="cashId" />
<el-table-column label="运营商id全局唯一" align="center" prop="providerId" />
<!--<el-table-column label="提现类型" align="center" prop="cashType" />-->
<el-table-column label="提现id" align="center" prop="cashId" />
<el-table-column label="创建或修改时间" align="center" prop="modTime" width="180">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.modTime, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="提现结果0未完成1成功2失败" align="center" prop="retFlag" />
<el-table-column label="提现结果" align="center" prop="retFlag" :formatter="tableStoreName" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button
@ -148,7 +151,7 @@
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
:total="total"
@ -160,20 +163,34 @@
<!-- 添加或修改seg商户户提现记录对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="商家id全局唯一" prop="storeId">
<el-input v-model="form.storeId" placeholder="请输入商家id全局唯一" />
<el-form-item label="运营商id" prop="providerId">
<el-select v-model="form.providerId" placeholder="运营商" >
<el-option
v-for="dict in segchk_providerList"
:key="parseInt(dict.key)"
:label="dict.value"
:value="parseInt(dict.key)"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="商家id" prop="storeId">
<el-select v-model="form.storeId" placeholder="请输入商家id" >
<el-option
v-for="dict in getLabelComp(form.providerId)"
:key="parseInt(dict.key)"
:label="dict.value"
:value="parseInt(dict.key)"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="提现额" prop="cash">
<el-input v-model="form.cash" placeholder="请输入提现额" />
</el-form-item>
<el-form-item label="提现类型" prop="cashType">
<!--<el-form-item label="提现类型" prop="cashType">
<el-select v-model="form.cashType" placeholder="请选择提现类型">
<el-option label="请选择字典生成" value="" />
</el-select>
</el-form-item>
<el-form-item label="运营商id全局唯一" prop="providerId">
<el-input v-model="form.providerId" placeholder="请输入运营商id全局唯一" />
</el-form-item>
<el-form-item label="创建或修改时间" prop="modTime">
<el-date-picker clearable size="small"
v-model="form.modTime"
@ -181,9 +198,16 @@
value-format="yyyy-MM-dd"
placeholder="选择创建或修改时间">
</el-date-picker>
</el-form-item>
<el-form-item label="提现结果0未完成1成功2失败" prop="retFlag">
<el-input v-model="form.retFlag" placeholder="请输入提现结果0未完成1成功2失败" />
</el-form-item>-->
<el-form-item label="提现结果" prop="retFlag">
<el-select v-model="form.retFlag" >
<el-option
v-for="dict in cashRet"
:key="dict.key"
:label="dict.value"
:value="dict.key"
></el-option>
</el-select>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
@ -196,6 +220,7 @@
<script>
import { listSegchk_store_cash, getSegchk_store_cash, delSegchk_store_cash, addSegchk_store_cash, updateSegchk_store_cash, exportSegchk_store_cash } from "@/api/segchk/segchk_store_cash";
import {segchk_get_provider_list, segchk_get_store_list} from "@/api/segchk/segchk_get_simple_list";
export default {
name: "Segchk_store_cash",
@ -212,7 +237,7 @@ export default {
//
multiple: true,
//
showSearch: true,
showSearch: false,
//
total: 0,
// seg
@ -235,6 +260,23 @@ export default {
modTime: null,
retFlag: null
},
cashRet:[
{
key: '0',
value:"未完成"
},
{
key: '1',
value:"成功"
},
{
key: '2',
value:"失败"
}
],
segchk_storeList: [],
segchk_providerList: [],
//
form: {},
//
@ -260,7 +302,38 @@ export default {
created() {
this.getList();
},
computed:{
getLabelComp(){
return function (providerId) {
let arr = []
arr = this.segchk_storeList
.filter(value => value.providerId == providerId)
return arr
}
}
},
methods: {
tableStoreName(row, column) {
if(column.property == 'providerId') {
var ret = this.segchk_providerList.find((value) => {return parseInt(value.key) == row.providerId})
var provName = ret == null ? "未知" : ret.value;
return provName
}
if(column.property == 'storeId') {
var ret = this.segchk_storeList.find((value) => {
return value.providerId == row.providerId && value.key == row.storeId
})
var provName = ret == null ? "未知" : ret.value;
return provName
}
if(column.property == 'retFlag') {
var ret = this.cashRet.find((value) => {
return value.key == row.retFlag
})
var provName = ret == null ? "未知" : ret.value;
return provName
}
},
/** 查询seg商户户提现记录列表 */
getList() {
this.loading = true;
@ -269,6 +342,12 @@ export default {
this.queryParams.params["beginModTime"] = this.daterangeModTime[0];
this.queryParams.params["endModTime"] = this.daterangeModTime[1];
}
segchk_get_store_list(this.queryParams.providerId).then(response => {
this.segchk_storeList = response.rows;
})
segchk_get_provider_list(this.queryParams.providerId).then(response => {
this.segchk_providerList = response.rows;
})
listSegchk_store_cash(this.queryParams).then(response => {
this.segchk_store_cashList = response.rows;
this.total = response.total;

View File

@ -1,32 +1,35 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="运营商id全局唯一" prop="providerId">
<el-input
v-model="queryParams.providerId"
placeholder="请输入运营商id全局唯一"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
<el-form-item label="运营商id" prop="providerId">
<el-select v-model="queryParams.providerId" placeholder="运营商id" @keyup.enter.native="handleQuery">
<el-option
v-for="dict in this.segchk_providerList"
:key="dict.key"
:label="dict.value"
:value="dict.key"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="商家id全局唯一" prop="storeId">
<el-input
v-model="queryParams.storeId"
placeholder="请输入商家id全局唯一"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
<el-form-item label="商家id" prop="storeId">
<el-select v-model="queryParams.storeId" placeholder="商家id" @keyup.enter.native="handleQuery">
<el-option
v-for="dict in watch_provider(form.providerId)"
:key="dict.key"
:label="dict.value"
:value="dict.key"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="卡类型id" prop="cardTypeId">
<el-input
v-model="queryParams.cardTypeId"
placeholder="请输入卡类型id"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
<el-select v-model="queryParams.cardTypeId" placeholder="卡类型id" @keyup.enter.native="handleQuery">
<el-option
v-for="dict in getLabelComp(0, queryParams.providerId)"
:key="dict.value"
:label="dict.lable"
:value="dict.value"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="该商家针对该类型卡可核消次数" prop="chkCount">
<el-input
@ -128,9 +131,9 @@
<el-table v-loading="loading" :data="segchk_store_chk_mgtList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="运营商id,全局唯一" align="center" prop="providerId" />
<el-table-column label="商家id,全局唯一" align="center" prop="storeId" />
<el-table-column label="卡类型id" align="center" prop="cardTypeId" />
<el-table-column label="运营商id" align="center" prop="providerId" :formatter="tableProviderName" />
<el-table-column label="商家id" align="center" prop="storeId" :formatter="tableProviderName" />
<el-table-column label="卡类型id" align="center" prop="cardTypeId" :formatter="tableProviderName" />
<el-table-column label="该商家针对该类型卡可核消次数" align="center" prop="chkCount" />
<el-table-column label="该商家针对该类型卡每月可售卡量" align="center" prop="saleCount" />
<el-table-column label="售卡奖励" align="center" prop="cardCommission" />
@ -155,7 +158,7 @@
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
:total="total"
@ -168,13 +171,34 @@
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="运营商id全局唯一" prop="providerId">
<el-input v-model="form.providerId" placeholder="请输入运营商id全局唯一" />
<el-select v-model="form.providerId" placeholder="运营商id" >
<el-option
v-for="dict in segchk_providerList"
:key="parseInt(dict.key)"
:label="dict.value"
:value="parseInt(dict.key)"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="商家id全局唯一" prop="storeId">
<el-input v-model="form.storeId" placeholder="请输入商家id全局唯一" />
<el-select v-model="form.storeId" placeholder="商家id" >
<el-option
v-for="dict in watch_provider(form.providerId)"
:key="parseInt(dict.key)"
:label="dict.value"
:value="parseInt(dict.key)"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="卡类型id" prop="cardTypeId">
<el-input v-model="form.cardTypeId" placeholder="请输入卡类型id" />
<el-select v-model="form.cardTypeId" placeholder="卡类型id" >
<el-option
v-for="dict in getLabelComp(0, form.providerId)"
:key="parseInt(dict.value)"
:label="dict.lable"
:value="parseInt(dict.value)"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="该商家针对该类型卡可核消次数" prop="chkCount">
<el-input v-model="form.chkCount" placeholder="请输入该商家针对该类型卡可核消次数" />
@ -199,6 +223,11 @@
<script>
import { listSegchk_store_chk_mgt, getSegchk_store_chk_mgt, delSegchk_store_chk_mgt, addSegchk_store_chk_mgt, updateSegchk_store_chk_mgt, exportSegchk_store_chk_mgt } from "@/api/segchk/segchk_store_chk_mgt";
import {
segchk_get_chargecard_list,
segchk_get_provider_list,
segchk_get_store_list
} from "@/api/segchk/segchk_get_simple_list";
export default {
name: "Segchk_store_chk_mgt",
@ -215,7 +244,7 @@ export default {
//
multiple: true,
//
showSearch: true,
showSearch: false,
//
total: 0,
// seg
@ -237,6 +266,9 @@ export default {
salerCommission: null,
mgtId: null
},
segchk_providerList: [],
segchk_charge_cardList: [],
segchk_storeList: [],
//
form: {},
//
@ -268,10 +300,74 @@ export default {
created() {
this.getList();
},
computed: {
getLabelComp() {
return function (fromLableId, providerId) {
let arr = []
if (fromLableId == 0) {
arr = this.segchk_charge_cardList
.filter(value => value.providerId == providerId)
.map(e => {
return {value: parseInt(e.key), lable: e.value}
}) //
}
return arr
}
},
watch_provider() {
return function (providerId) {
let arr = []
arr = this.segchk_storeList
.filter(value => value.providerId == providerId)
.map(e=> {
return { key: parseInt(e.key), value: e.value }
})
return arr
}
}
},
methods: {
tableProviderName(row, column) {
if (column.property == 'providerId'){
var ret = this.segchk_providerList.find((value) => {return value.key == row.providerId})
var provName = ret == null ? "未知" : ret.value;
return provName
}
if (column.property == 'storeId'){
var ret = this.segchk_storeList.find(value => {
return value.key == row.storeId
})
var provName = ret == null ? "未知" : ret.value;
return provName
}
if (column.property == 'cardTypeId'){
var ret = this.segchk_charge_cardList.find(value => {
return value.providerId == row.providerId && value.key == row.cardTypeId
})
var provName = ret == null ? "未知" : ret.value;
return provName
}
},
/** 查询seg商家核消卡管理列表 */
getList() {
this.loading = true;
//
segchk_get_provider_list(this.queryParams.providerId).then(response => {
this.segchk_providerList = response.rows;
// this.cardtotal = response.total;
});
//
segchk_get_chargecard_list(this.queryParams.providerId).then(response => {
this.segchk_charge_cardList = response.rows;
// this.cardtotal = response.total;
});
//
segchk_get_store_list(this.queryParams.providerId).then(response => {
this.segchk_storeList = response.rows;
// this.cardtotal = response.total;
});
listSegchk_store_chk_mgt(this.queryParams).then(response => {
this.segchk_store_chk_mgtList = response.rows;
this.total = response.total;

View File

@ -1,23 +1,25 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="运营商id全局唯一" prop="providerId">
<el-input
v-model="queryParams.providerId"
placeholder="请输入运营商id全局唯一"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
<el-form-item label="运营商id" prop="providerId">
<el-select v-model="queryParams.providerId" placeholder="运营商id" @keyup.enter.native="handleQuery">
<el-option
v-for="dict in this.segchk_providerList"
:key="dict.key"
:label="dict.value"
:value="dict.key"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="商家id全局唯一" prop="storeId">
<el-input
v-model="queryParams.storeId"
placeholder="请输入商家id全局唯一"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
<el-form-item label="商家id" prop="storeId">
<el-select v-model="queryParams.storeId" placeholder="商家id" @keyup.enter.native="handleQuery">
<el-option
v-for="dict in watch_provider(queryParams.providerId)"
:key="dict.key"
:label="dict.value"
:value="dict.key"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="创建或修改时间">
<el-date-picker
@ -86,8 +88,8 @@
<el-table v-loading="loading" :data="segchk_store_imageList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="运营商id,全局唯一" align="center" prop="providerId" />
<el-table-column label="商家id,全局唯一" align="center" prop="storeId" />
<el-table-column label="运营商id" align="center" prop="providerId" :formatter="tableProviderName" />
<el-table-column label="商家id" align="center" prop="storeId" :formatter="tableProviderName" />
<el-table-column label="商家营业执照图1路径" align="center" prop="storeCertificate1" >
<template slot-scope="scope">
<img :src="scope.row.storeCertificate1"/>
@ -113,7 +115,7 @@
<img :src="scope.row.storeCarousel1"/>
</template>
</el-table-column>
<el-table-column label="商家轮播图2路径" align="center" prop="storeCarousel2" >
<!--<el-table-column label="商家轮播图2路径" align="center" prop="storeCarousel2" >
<template slot-scope="scope">
<img :src="scope.row.storeCarousel2"/>
</template>
@ -137,13 +139,13 @@
<template slot-scope="scope">
<img :src="scope.row.storeCarousel6"/>
</template>
</el-table-column>
</el-table-column>-->
<el-table-column label="商家环境图1" align="center" prop="storeEnv1" >
<template slot-scope="scope">
<img :src="scope.row.storeEnv1"/>
</template>
</el-table-column>
<el-table-column label="商家环境图2" align="center" prop="storeEnv2" >
<!--<el-table-column label="商家环境图2" align="center" prop="storeEnv2" >
<template slot-scope="scope">
<img :src="scope.row.storeEnv2"/>
</template>
@ -157,7 +159,7 @@
<template slot-scope="scope">
<img :src="scope.row.storeEnv4"/>
</template>
</el-table-column>
</el-table-column>-->
<el-table-column label="创建或修改时间" align="center" prop="modTime" width="180">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.modTime, '{y}-{m}-{d}') }}</span>
@ -194,59 +196,76 @@
<!-- 添加或修改seg商家图片信息对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="运营商id全局唯一" prop="providerId">
<el-input v-model="form.providerId" placeholder="请输入运营商id全局唯一" />
<el-form-item label="运营商id" prop="providerId">
<el-select v-model="form.providerId" placeholder="运营商id" >
<el-option
v-for="dict in segchk_providerList"
:key="parseInt(dict.key)"
:label="dict.value"
:value="parseInt(dict.key)"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="商家id" prop="storeId">
<el-select v-model="form.storeId" placeholder="商家id" >
<el-option
v-for="dict in watch_provider(form.providerId)"
:key="parseInt(dict.key)"
:label="dict.value"
:value="parseInt(dict.key)"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="商家营业执照图1路径">
<imageUpload v-model="form.storeCertificate1"/>
<imageUpload :file-size=1 :limit=1 v-model="form.storeCertificate1"/>
</el-form-item>
<el-form-item label="商家营业执照图2路径">
<imageUpload v-model="form.storeCertificate2"/>
<imageUpload :file-size=1 :limit=1 v-model="form.storeCertificate2"/>
</el-form-item>
<el-form-item label="商家图标路径,用于在商家列表中显示">
<imageUpload v-model="form.storeIcon"/>
<imageUpload :file-size=1 :limit=1 v-model="form.storeIcon"/>
</el-form-item>
<el-form-item label="商家大图标路径,用于在商家列表中显示">
<imageUpload v-model="form.storeGificon"/>
<imageUpload :file-size=1 :limit=1 v-model="form.storeGificon"/>
</el-form-item>
<el-form-item label="商家轮播图1路径默认用于首页推荐轮播图">
<imageUpload v-model="form.storeCarousel1"/>
<imageUpload :file-size=1 :limit=1 v-model="form.storeCarousel1"/>
</el-form-item>
<el-form-item label="商家轮播图2路径">
<imageUpload v-model="form.storeCarousel2"/>
<imageUpload :file-size=1 :limit=1 v-model="form.storeCarousel2"/>
</el-form-item>
<el-form-item label="商家轮播图3路径">
<imageUpload v-model="form.storeCarousel3"/>
<imageUpload :file-size=1 :limit=1 v-model="form.storeCarousel3"/>
</el-form-item>
<el-form-item label="商家轮播图4路径">
<imageUpload v-model="form.storeCarousel4"/>
<imageUpload :file-size=1 :limit=1 v-model="form.storeCarousel4"/>
</el-form-item>
<el-form-item label="商家轮播图5路径">
<imageUpload v-model="form.storeCarousel5"/>
<imageUpload :file-size=1 :limit=1 v-model="form.storeCarousel5"/>
</el-form-item>
<el-form-item label="商家轮播图6路径">
<imageUpload v-model="form.storeCarousel6"/>
<imageUpload :file-size=1 :limit=1 v-model="form.storeCarousel6"/>
</el-form-item>
<el-form-item label="商家环境图1">
<imageUpload v-model="form.storeEnv1"/>
<imageUpload :file-size=1 :limit=1 v-model="form.storeEnv1"/>
</el-form-item>
<el-form-item label="商家环境图2">
<imageUpload v-model="form.storeEnv2"/>
<imageUpload :file-size=1 :limit=1 v-model="form.storeEnv2"/>
</el-form-item>
<el-form-item label="商家环境图3">
<imageUpload v-model="form.storeEnv3"/>
<imageUpload :file-size=1 :limit=1 v-model="form.storeEnv3"/>
</el-form-item>
<el-form-item label="商家环境图4">
<imageUpload v-model="form.storeEnv4"/>
<imageUpload :file-size=1 :limit=1 v-model="form.storeEnv4"/>
</el-form-item>
<el-form-item label="创建或修改时间" prop="modTime">
<!--<el-form-item label="创建或修改时间" prop="modTime">
<el-date-picker clearable size="small"
v-model="form.modTime"
type="date"
value-format="yyyy-MM-dd"
placeholder="选择创建或修改时间">
placeholder="选择创建或修改时间">s
</el-date-picker>
</el-form-item>
</el-form-item>-->
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
@ -258,6 +277,7 @@
<script>
import { listSegchk_store_image, getSegchk_store_image, delSegchk_store_image, addSegchk_store_image, updateSegchk_store_image, exportSegchk_store_image } from "@/api/segchk/segchk_store_image";
import {segchk_get_provider_list, segchk_get_store_list} from "@/api/segchk/segchk_get_simple_list";
export default {
name: "Segchk_store_image",
@ -274,7 +294,7 @@ export default {
//
multiple: true,
//
showSearch: true,
showSearch: false,
//
total: 0,
// seg
@ -307,6 +327,8 @@ export default {
storeEnv4: null,
modTime: null
},
segchk_providerList: [],
segchk_storeList: [],
//
form: {},
//
@ -316,17 +338,42 @@ export default {
],
storeId: [
{ required: true, message: "商家id全局唯一不能为空", trigger: "blur" }
],
modTime: [
{ required: true, message: "创建或修改时间不能为空", trigger: "blur" }
]
}
};
},
created() {
this.getList();
},
computed: {
watch_provider() {
return function (providerId) {
let arr = []
arr = this.segchk_storeList
.filter(value => value.providerId == providerId)
.map(e=> {
return { key: parseInt(e.key), value: e.value }
})
return arr
}
}
},
methods: {
tableProviderName(row, column) {
if (column.property == 'providerId'){
var ret = this.segchk_providerList.find((value) => {return value.key == row.providerId})
var provName = ret == null ? "未知" : ret.value;
return provName
}
if (column.property == 'storeId'){
var ret = this.segchk_storeList.find(value => {
return value.key == row.storeId
})
var provName = ret == null ? "未知" : ret.value;
return provName
}
},
/** 查询seg商家图片信息列表 */
getList() {
this.loading = true;
@ -335,6 +382,16 @@ export default {
this.queryParams.params["beginModTime"] = this.daterangeModTime[0];
this.queryParams.params["endModTime"] = this.daterangeModTime[1];
}
//
segchk_get_provider_list(this.queryParams.providerId).then(response => {
this.segchk_providerList = response.rows;
// this.cardtotal = response.total;
});
//
segchk_get_store_list(this.queryParams.providerId).then(response => {
this.segchk_storeList = response.rows;
// this.cardtotal = response.total;
});
listSegchk_store_image(this.queryParams).then(response => {
this.segchk_store_imageList = response.rows;
this.total = response.total;

View File

@ -1,32 +1,45 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="商家id全局唯一" prop="storeId">
<el-input
v-model="queryParams.storeId"
placeholder="请输入商家id全局唯一"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
<el-form-item label="运营商id" prop="providerId">
<el-select v-model="queryParams.providerId" placeholder="运营商id" @keyup.enter.native="handleQuery">
<el-option
v-for="dict in this.segchk_providerList"
:key="dict.key"
:label="dict.value"
:value="dict.key"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="运营商id全局唯一" prop="providerId">
<el-input
v-model="queryParams.providerId"
placeholder="请输入运营商id全局唯一"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
<el-form-item label="商家id" prop="storeId">
<el-select v-model="queryParams.storeId" placeholder="商家id" @keyup.enter.native="handleQuery">
<el-option
v-for="dict in watch_provider(queryParams.providerId)"
:key="dict.key"
:label="dict.value"
:value="dict.key"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="标签来源" prop="typeId">
<el-select v-model="queryParams.typeId" placeholder="标签来源" @keyup.enter.native="handleQuery">
<el-option
v-for="dict in typeIds"
:key="dict.key"
:label="dict.value"
:value="dict.key"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="标签id" prop="lableId">
<el-input
v-model="queryParams.lableId"
placeholder="请输入标签id"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
<el-select v-model="queryParams.lableId" placeholder="标签id" @keyup.enter.native="handleQuery">
<el-option
v-for="dict in getLabelComp(queryParams.typeId, queryParams.providerId)"
:key="dict.value"
:label="dict.lable"
:value="dict.value"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="显示顺序id" prop="sortId">
<el-input
@ -37,23 +50,15 @@
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="标签来源id0关键字1优惠标签" prop="typeId">
<el-input
v-model="queryParams.typeId"
placeholder="请输入标签来源id0关键字1优惠标签"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="管理状态0有效-1失效" prop="mgtState">
<el-input
v-model="queryParams.mgtState"
placeholder="请输入管理状态0有效-1失效"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
<el-form-item label="管理状态" prop="mgtState">
<el-select v-model="queryParams.mgtState" placeholder="管理状态" @keyup.enter.native="handleQuery">
<el-option
v-for="dict in mgtStates"
:key="dict.key"
:label="dict.value"
:value="dict.key"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="创建或修改时间">
<el-date-picker
@ -132,12 +137,21 @@
<el-table v-loading="loading" :data="segchk_store_lable_mgtList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="商家id" align="center" prop="storeId" />
<el-table-column label="运营商id" align="center" prop="providerId" />
<el-table-column label="标签id" align="center" prop="lableId" />
<el-table-column label="运营商id" align="center" prop="providerId" :formatter="tableProviderName" />
<el-table-column label="商家id" align="center" prop="storeId" :formatter="tableProviderName" />
<el-table-column label="标签来源id" align="center" prop="typeId" :formatter="tableProviderName" />
<el-table-column label="标签id" align="center" prop="lableId" :formatter="tableProviderName" />
<el-table-column label="显示顺序id" align="center" prop="sortId" />
<el-table-column label="标签来源id" align="center" prop="typeId" />
<el-table-column label="管理状态" align="center" prop="mgtState" />
<el-table-column label="管理状态" align="center" prop="mgtState">
<template slot-scope="scope">
<el-switch
v-model="scope.row.mgtState"
:active-value=0
:inactive-value=-1
@change="handleStatusChange(scope.row)"
></el-switch>
</template>
</el-table-column>
<el-table-column label="创建或修改时间" align="center" prop="modTime" width="180">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.modTime, '{y}-{m}-{d}') }}</span>
@ -175,32 +189,67 @@
<!-- 添加或修改seg商家标签管理对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="商家id全局唯一" prop="storeId">
<el-input v-model="form.storeId" placeholder="请输入商家id全局唯一" />
<el-form-item label="运营商id" prop="providerId">
<el-select v-model="form.providerId" placeholder="运营商id" >
<el-option
v-for="dict in segchk_providerList"
:key="parseInt(dict.key)"
:label="dict.value"
:value="parseInt(dict.key)"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="运营商id全局唯一" prop="providerId">
<el-input v-model="form.providerId" placeholder="请输入运营商id全局唯一" />
<el-form-item label="商家id" prop="storeId">
<el-select v-model="form.storeId" placeholder="请输入商家id" >
<el-option
v-for="dict in getLabelComp(-1, form.providerId)"
:key="parseInt(dict.value)"
:label="dict.lable"
:value="parseInt(dict.value)"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="标签来源" prop="typeId">
<el-select v-model="form.typeId" placeholder="标签来源" >
<el-option
v-for="dict in typeIds"
:key="parseInt(dict.key)"
:label="dict.value"
:value="parseInt(dict.key)"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="标签id" prop="lableId">
<el-input v-model="form.lableId" placeholder="请输入标签id" />
<el-select v-model="form.lableId" placeholder="标签id" >
<el-option
v-for="dict in getLabelComp(form.typeId, form.providerId)"
:key="dict.value"
:label="dict.lable"
:value="dict.value"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="显示顺序id" prop="sortId">
<el-input v-model="form.sortId" placeholder="请输入显示顺序id" />
</el-form-item>
<el-form-item label="标签来源id0关键字1优惠标签" prop="typeId">
<el-input v-model="form.typeId" placeholder="请输入标签来源id0关键字1优惠标签" />
<el-form-item label="管理状态" prop="mgtState">
<el-select v-model="form.mgtState" placeholder="管理状态" >
<el-option
v-for="dict in mgtStates"
:key="parseInt(dict.key)"
:label="dict.value"
:value="parseInt(dict.key)"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="管理状态0有效-1失效" prop="mgtState">
<el-input v-model="form.mgtState" placeholder="请输入管理状态0有效-1失效" />
</el-form-item>
<el-form-item label="创建或修改时间" prop="modTime">
<!--<el-form-item label="创建或修改时间" prop="modTime">
<el-date-picker clearable size="small"
v-model="form.modTime"
type="date"
value-format="yyyy-MM-dd"
placeholder="选择创建或修改时间">
</el-date-picker>
</el-form-item>
</el-form-item>-->
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
@ -211,7 +260,12 @@
</template>
<script>
import { listSegchk_store_lable_mgt, getSegchk_store_lable_mgt, delSegchk_store_lable_mgt, addSegchk_store_lable_mgt, updateSegchk_store_lable_mgt, exportSegchk_store_lable_mgt } from "@/api/segchk/segchk_store_lable_mgt";
import { listSegchk_store_lable_mgt, getSegchk_store_lable_mgt, delSegchk_store_lable_mgt, addSegchk_store_lable_mgt, updateSegchk_store_lable_mgt, updateSegchk_store_lable_status, exportSegchk_store_lable_mgt } from "@/api/segchk/segchk_store_lable_mgt";
import {
segchk_get_chargecard_list,
segchk_get_keyword_list, segchk_get_preference_lable_list,
segchk_get_provider_list, segchk_get_store_list
} from "@/api/segchk/segchk_get_simple_list";
export default {
name: "Segchk_store_lable_mgt",
@ -252,6 +306,39 @@ export default {
modTime: null,
mgtId: null
},
//
segchk_charge_cardList: [],
//
segchk_keyword_lableList: [],
//
segchk_preference_lableList: [],
segchk_storeList: [],
//
segchk_providerList: [],
mgtStates: [
{
key: 0,
value: "有效"
},
{
key: -1,
value: "失效"
}
],
typeIds:[
{
key: 0,
value:"会员卡"
},
{
key: 1,
value:"关键字"
},
{
key: 2,
value:"优惠券"
}
],
//
form: {},
//
@ -265,25 +352,130 @@ export default {
lableId: [
{ required: true, message: "标签id不能为空", trigger: "blur" }
],
sortId: [
/*sortId: [
{ required: true, message: "显示顺序id不能为空", trigger: "blur" }
],
],*/
typeId: [
{ required: true, message: "标签来源id0关键字1优惠标签不能为空", trigger: "blur" }
],
mgtState: [
{ required: true, message: "管理状态0有效-1失效不能为空", trigger: "blur" }
],
modTime: [
{ required: true, message: "创建或修改时间不能为空", trigger: "blur" }
],
}
};
},
created() {
this.getList();
},
computed: {
getLabelComp(){
return function (fromLableId, providerId) {
let arr = []
if(fromLableId == 0){
arr = this.segchk_charge_cardList
.filter(value => value.providerId == providerId)
.map(e=> {
return { value: parseInt(e.key), lable: e.value }
}) //
}else if(fromLableId == 1){
arr = this.segchk_keyword_lableList
.filter(value => value.providerId == providerId)
.map(e=> {
return { value: parseInt(e.key), lable: e.value }
}) //
}else if(fromLableId == 2){
arr = this.segchk_preference_lableList
.filter(value => value.providerId == providerId)
.map(e=> {
return { value: parseInt(e.key), lable: e.value }
}) //
}else if(fromLableId == -1){
arr = this.segchk_storeList
.filter(value => value.providerId == providerId)
.map(e=> {
return { value: parseInt(e.key), lable: e.value }
}) //
}
return arr
}
},
watch_provider() {
return function (providerId) {
let arr = []
arr = this.segchk_storeList
.filter(value => value.providerId == providerId)
.map(e=> {
return { key: parseInt(e.key), value: e.value }
})
return arr
}
}
},
methods: {
handleStatusChange(row) {
let text = row.mgtState === 0 ? "生效" : "失效";
// console.log(typeof row.mgtState)
// return
var ret = this.segchk_storeList.find(value => {
return value.key == row.storeId
})
var storeName = ret == null ? "未知" : ret.value;
this.$confirm('确认要"' + text + '"商家"' + storeName + '"的标签吗?', "警告", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
}).then(function() {
return updateSegchk_store_lable_status(row.mgtId, row.mgtState);
}).then((response) => {
// console.log("handleStatusChange ---" + response)
this.msgSuccess(text + "成功");
}).catch(function(res) {
// console.log("updateSegchk_store_service_state res " + res)
row.mgtState = row.mgtState === 0 ? -1 : 0;
});
},
tableProviderName(row, column) {
if (column.property == 'providerId'){
var ret = this.segchk_providerList.find((value) => {return value.key == row.providerId})
var provName = ret == null ? "未知" : ret.value;
return provName
}
if (column.property == 'storeId'){
var ret = this.segchk_storeList.find(value => {
return value.key == row.storeId
})
var provName = ret == null ? "未知" : ret.value;
return provName
}
if (column.property == 'typeId'){
var ret = this.typeIds.find(value => {
return value.key == row.typeId
})
var provName = ret == null ? "未知" : ret.value;
return provName
}
if (column.property == 'mgtState'){
var ret = this.mgtStates.find(value => {
return value.key == row.mgtState
})
var provName = ret == null ? "未知" : ret.value;
return provName
}
if (column.property == 'lableId'){
let tmplist = []
switch (row.typeId) {
case 0: tmplist = this.segchk_charge_cardList;break;
case 1: tmplist = this.segchk_keyword_lableList;break;
case 2: tmplist = this.segchk_preference_lableList;break;
}
var ret = tmplist.find(value => {
return value.key == row.lableId && value.providerId == row.providerId
})
var provName = ret == null ? "未知" : ret.value;
return provName
}
},
/** 查询seg商家标签管理列表 */
getList() {
this.loading = true;
@ -292,6 +484,34 @@ export default {
this.queryParams.params["beginModTime"] = this.daterangeModTime[0];
this.queryParams.params["endModTime"] = this.daterangeModTime[1];
}
//
segchk_get_provider_list(this.queryParams.providerId).then(response => {
this.segchk_providerList = response.rows;
// this.cardtotal = response.total;
});
//
segchk_get_store_list(this.queryParams.providerId).then(response => {
this.segchk_storeList = response.rows;
// this.cardtotal = response.total;
});
//
segchk_get_chargecard_list(this.queryParams.providerId).then(response => {
this.segchk_charge_cardList = response.rows;
// this.cardtotal = response.total;
});
//
segchk_get_keyword_list(this.queryParams.providerId).then(response => {
this.segchk_keyword_lableList = response.rows;
// this.keywordtotal = response.total;
});
//
segchk_get_preference_lable_list(this.queryParams.providerId).then(response => {
this.segchk_preference_lableList = response.rows;
// this.preferencetotal = response.total;
});
listSegchk_store_lable_mgt(this.queryParams).then(response => {
this.segchk_store_lable_mgtList = response.rows;
this.total = response.total;

View File

@ -1,14 +1,25 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="商家id全局唯一" prop="storeId">
<el-input
v-model="queryParams.storeId"
placeholder="请输入商家id全局唯一"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
<el-form-item label="运营商id" prop="providerId">
<el-select v-model="queryParams.providerId" placeholder="运营商id" @keyup.enter.native="handleQuery">
<el-option
v-for="dict in this.segchk_providerList"
:key="dict.key"
:label="dict.value"
:value="dict.key"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="商家id" prop="storeId">
<el-select v-model="queryParams.storeId" placeholder="商家id" @keyup.enter.native="handleQuery">
<el-option
v-for="dict in getLabelComp(-1, queryParams.providerId)"
:key="dict.value"
:label="dict.lable"
:value="dict.value"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="奖励额" prop="reward">
<el-input
@ -19,7 +30,7 @@
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="奖励类型" prop="rewardType">
<!--<el-form-item label="奖励类型" prop="rewardType">
<el-input
v-model="queryParams.rewardType"
placeholder="请输入奖励类型"
@ -27,7 +38,7 @@
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
</el-form-item>-->
<el-form-item label="奖励卡号" prop="rewardCardId">
<el-input
v-model="queryParams.rewardCardId"
@ -37,14 +48,15 @@
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="奖励卡类型0--9块9卡1--99卡" prop="rewardCardTypeId">
<el-input
v-model="queryParams.rewardCardTypeId"
placeholder="请输入奖励卡类型0--9块9卡1--99卡"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
<el-form-item label="奖励卡类型" prop="rewardCardTypeId">
<el-select v-model="queryParams.storeId" placeholder="商家id" @keyup.enter.native="handleQuery">
<el-option
v-for="dict in getLabelComp(0, queryParams.providerId)"
:key="dict.value"
:label="dict.lable"
:value="dict.value"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="创建或修改时间">
<el-date-picker
@ -67,15 +79,6 @@
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="运营商id全局唯一" prop="providerId">
<el-input
v-model="queryParams.providerId"
placeholder="请输入运营商id全局唯一"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery"></el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"></el-button>
@ -131,18 +134,18 @@
<el-table v-loading="loading" :data="segchk_store_rewardList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="商家id全局唯一" align="center" prop="storeId" />
<el-table-column label="运营商id" align="center" prop="providerId" :formatter="tableProviderName" />
<el-table-column label="商家id" align="center" prop="storeId" :formatter="tableProviderName" />
<el-table-column label="奖励额" align="center" prop="reward" />
<el-table-column label="奖励类型" align="center" prop="rewardType" />
<el-table-column label="奖励卡号" align="center" prop="rewardCardId" />
<el-table-column label="奖励卡类型0--9块9卡1--99卡" align="center" prop="rewardCardTypeId" />
<el-table-column label="奖励卡类型" align="center" prop="rewardCardTypeId" :formatter="tableProviderName" />
<el-table-column label="创建或修改时间" align="center" prop="modTime" width="180">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.modTime, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="奖励id号全表唯一" align="center" prop="rewardId" />
<el-table-column label="运营商id全局唯一" align="center" prop="providerId" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button
@ -162,7 +165,7 @@
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
:total="total"
@ -174,32 +177,53 @@
<!-- 添加或修改seg商户奖励对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="商家id全局唯一" prop="storeId">
<el-input v-model="form.storeId" placeholder="请输入商家id全局唯一" />
<el-form-item label="运营商id" prop="providerId">
<el-select v-model="form.providerId" placeholder="运营商id" >
<el-option
v-for="dict in segchk_providerList"
:key="parseInt(dict.key)"
:label="dict.value"
:value="parseInt(dict.key)"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="商家id" prop="storeId">
<el-select v-model="form.storeId" placeholder="请输入商家id" >
<el-option
v-for="dict in getLabelComp(-1, form.providerId)"
:key="parseInt(dict.value)"
:label="dict.lable"
:value="parseInt(dict.value)"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="奖励额" prop="reward">
<el-input v-model="form.reward" placeholder="请输入奖励额" />
</el-form-item>
<el-form-item label="奖励类型" prop="rewardType">
<!--<el-form-item label="奖励类型" prop="rewardType">
<el-input v-model="form.rewardType" placeholder="请输入奖励类型" />
</el-form-item>
</el-form-item>-->
<el-form-item label="奖励卡号" prop="rewardCardId">
<el-input v-model="form.rewardCardId" placeholder="请输入奖励卡号" />
</el-form-item>
<el-form-item label="奖励卡类型0--9块9卡1--99卡" prop="rewardCardTypeId">
<el-input v-model="form.rewardCardTypeId" placeholder="请输入奖励卡类型0--9块9卡1--99卡" />
<el-form-item label="奖励卡类型" prop="rewardCardTypeId">
<el-select v-model="form.rewardCardTypeId" placeholder="请输入商家id" >
<el-option
v-for="dict in getLabelComp(0, form.providerId)"
:key="parseInt(dict.value)"
:label="dict.lable"
:value="parseInt(dict.value)"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="创建或修改时间" prop="modTime">
<!--<el-form-item label="创建或修改时间" prop="modTime">
<el-date-picker clearable size="small"
v-model="form.modTime"
type="date"
value-format="yyyy-MM-dd"
placeholder="选择创建或修改时间">
</el-date-picker>
</el-form-item>
<el-form-item label="运营商id全局唯一" prop="providerId">
<el-input v-model="form.providerId" placeholder="请输入运营商id全局唯一" />
</el-form-item>
</el-form-item>-->
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
@ -211,6 +235,11 @@
<script>
import { listSegchk_store_reward, getSegchk_store_reward, delSegchk_store_reward, addSegchk_store_reward, updateSegchk_store_reward, exportSegchk_store_reward } from "@/api/segchk/segchk_store_reward";
import {
segchk_get_chargecard_list,
segchk_get_provider_list,
segchk_get_store_list
} from "@/api/segchk/segchk_get_simple_list";
export default {
name: "Segchk_store_reward",
@ -227,7 +256,7 @@ export default {
//
multiple: true,
//
showSearch: true,
showSearch: false,
//
total: 0,
// seg
@ -251,6 +280,11 @@ export default {
rewardId: null,
providerId: null
},
//
segchk_charge_cardList: [],
segchk_storeList: [],
//
segchk_providerList: [],
//
form: {},
//
@ -261,18 +295,12 @@ export default {
reward: [
{ required: true, message: "奖励额不能为空", trigger: "blur" }
],
rewardType: [
{ required: true, message: "奖励类型不能为空", trigger: "blur" }
],
rewardCardId: [
{ required: true, message: "奖励卡号不能为空", trigger: "blur" }
],
rewardCardTypeId: [
{ required: true, message: "奖励卡类型0--9块9卡1--99卡不能为空", trigger: "blur" }
],
modTime: [
{ required: true, message: "创建或修改时间不能为空", trigger: "blur" }
],
providerId: [
{ required: true, message: "运营商id全局唯一不能为空", trigger: "blur" }
]
@ -282,7 +310,92 @@ export default {
created() {
this.getList();
},
computed: {
getLabelComp(){
return function (fromLableId, providerId) {
let arr = []
if(fromLableId == 0){
arr = this.segchk_charge_cardList
.filter(value => value.providerId == providerId)
.map(e=> {
return { value: parseInt(e.key), lable: e.value }
}) //
}else if(fromLableId == 1){
arr = this.segchk_keyword_lableList
.filter(value => value.providerId == providerId)
.map(e=> {
return { value: parseInt(e.key), lable: e.value }
}) //
}else if(fromLableId == 2){
arr = this.segchk_preference_lableList
.filter(value => value.providerId == providerId)
.map(e=> {
return { value: parseInt(e.key), lable: e.value }
}) //
}else if(fromLableId == -1){
arr = this.segchk_storeList
.filter(value => value.providerId == providerId)
.map(e=> {
return { value: parseInt(e.key), lable: e.value }
}) //
}
return arr
}
},
watch_provider() {
return function (providerId) {
let arr = []
arr = this.segchk_storeList
.filter(value => value.providerId == providerId)
.map(e=> {
return { key: parseInt(e.key), value: e.value }
})
return arr
}
}
},
methods: {
tableProviderName(row, column) {
if (column.property == 'providerId'){
var ret = this.segchk_providerList.find((value) => {return value.key == row.providerId})
var provName = ret == null ? "未知" : ret.value;
return provName
}
if (column.property == 'storeId'){
var ret = this.segchk_storeList.find(value => {
return value.key == row.storeId
})
var provName = ret == null ? "未知" : ret.value;
return provName
}
if (column.property == 'typeId'){
var ret = this.typeIds.find(value => {
return value.key == row.typeId
})
var provName = ret == null ? "未知" : ret.value;
return provName
}
if (column.property == 'mgtState'){
var ret = this.mgtStates.find(value => {
return value.key == row.mgtState
})
var provName = ret == null ? "未知" : ret.value;
return provName
}
if (column.property == 'rewardCardTypeId'){
let tmplist = []
switch (0) {
case 0: tmplist = this.segchk_charge_cardList;break;
case 1: tmplist = this.segchk_keyword_lableList;break;
case 2: tmplist = this.segchk_preference_lableList;break;
}
var ret = tmplist.find(value => {
return value.key == row.rewardCardTypeId && value.providerId == row.providerId
})
var provName = ret == null ? "未知" : ret.value;
return provName
}
},
/** 查询seg商户奖励列表 */
getList() {
this.loading = true;
@ -291,6 +404,21 @@ export default {
this.queryParams.params["beginModTime"] = this.daterangeModTime[0];
this.queryParams.params["endModTime"] = this.daterangeModTime[1];
}
//
segchk_get_provider_list(this.queryParams.providerId).then(response => {
this.segchk_providerList = response.rows;
// this.cardtotal = response.total;
});
//
segchk_get_store_list(this.queryParams.providerId).then(response => {
this.segchk_storeList = response.rows;
// this.cardtotal = response.total;
});
//
segchk_get_chargecard_list(this.queryParams.providerId).then(response => {
this.segchk_charge_cardList = response.rows;
// this.cardtotal = response.total;
});
listSegchk_store_reward(this.queryParams).then(response => {
this.segchk_store_rewardList = response.rows;
this.total = response.total;

View File

@ -385,7 +385,7 @@ export default {
}
if (column.property == 'toId'){
var ret = this.segchk_charge_cardList.find(value => {
return value.typeId == row.toId || value.key == -1
return value.key == row.toId || value.key == -1
})
var provName = ret == null ? "普通用户" : ret.value;
return provName