增加查看按钮

master
username 11 months ago
parent 452255420d
commit 1d03f857b5

@ -82,10 +82,10 @@ public class DfBizClueController extends BaseController {
@GetMapping("/getVisitsNum") @GetMapping("/getVisitsNum")
public TableDataInfo getVisitsNum(DfBizClue dfBizClue) { public TableDataInfo getVisitsNum(DfBizClue dfBizClue) {
// startPage(); // startPage();
//condition(queryWrapper,dfBizClue);
Integer pageNum = ServletUtils.getParameterToInt(Constants.PAGE_NUM); Integer pageNum = ServletUtils.getParameterToInt(Constants.PAGE_NUM);
Integer pageSize = ServletUtils.getParameterToInt(Constants.PAGE_SIZE); Integer pageSize = ServletUtils.getParameterToInt(Constants.PAGE_SIZE);
LambdaQueryWrapper<DfBizClue> queryWrapper = new LambdaQueryWrapper(); LambdaQueryWrapper<DfBizClue> queryWrapper = new LambdaQueryWrapper();
// condition(queryWrapper,dfBizClue);
queryWrapper.eq(DfBizClue::getDataType,dfBizClue.getDataType()); queryWrapper.eq(DfBizClue::getDataType,dfBizClue.getDataType());
queryWrapper.eq(DfBizClue::getShareUser,SecurityUtils.getUserId()); queryWrapper.eq(DfBizClue::getShareUser,SecurityUtils.getUserId());
//传入hasOrder参数为1时查询出存在orderId的数据 //传入hasOrder参数为1时查询出存在orderId的数据
@ -95,21 +95,21 @@ public class DfBizClueController extends BaseController {
List<DfBizClue> list = dfBizClueService.list(queryWrapper); List<DfBizClue> list = dfBizClueService.list(queryWrapper);
Map<String, Integer> visitsNum = new HashMap<>(); Map<String, Integer> visitsNum = new HashMap<>();
for (DfBizClue clue : list) { for (DfBizClue clue : list) {
String key = clue.getUserId() + "_" + clue.getDataType(); String key = clue.getUnionId() + "_" + clue.getDataType();
int count = visitsNum.getOrDefault(key, 0) + 1; int count = visitsNum.getOrDefault(key, 0) + 1;
visitsNum.put(key, count); visitsNum.put(key, count);
clue.setVisitsNum(count); clue.setVisitsNum(count);
} }
Map<String, DfBizClue> latestClues = new HashMap<>(); Map<String, DfBizClue> latestClues = new HashMap<>();
for (DfBizClue clue : list) { for (DfBizClue clue : list) {
String key = clue.getUserId() + "_" + clue.getDataType(); String key = clue.getUnionId() + "_" + clue.getDataType();
if (!latestClues.containsKey(key) || clue.getBrowseTime().after(latestClues.get(key).getBrowseTime())) { if (!latestClues.containsKey(key) || clue.getBrowseTime().after(latestClues.get(key).getBrowseTime())) {
latestClues.put(key, clue); latestClues.put(key, clue);
} }
} }
List<DfBizClue> newList = new ArrayList<>(latestClues.values()); List<DfBizClue> newList = new ArrayList<>(latestClues.values());
for (DfBizClue clue : newList) { for (DfBizClue clue : newList) {
String key = clue.getUserId() + "_" + clue.getDataType(); String key = clue.getUnionId() + "_" + clue.getDataType();
int visits = visitsNum.getOrDefault(key, 0); int visits = visitsNum.getOrDefault(key, 0);
clue.setVisitsNum(visits); clue.setVisitsNum(visits);
} }
@ -218,6 +218,7 @@ public class DfBizClueController extends BaseController {
public AjaxResult addVisitor(DfBizClue dfBizClue) { public AjaxResult addVisitor(DfBizClue dfBizClue) {
Date date = new Date(); Date date = new Date();
dfBizClue.setCreateTimeVo(date); dfBizClue.setCreateTimeVo(date);
dfBizClue.setTenantId(0L);
// dfBizClue.setTenantId(SecurityUtils.getTenantId()); // dfBizClue.setTenantId(SecurityUtils.getTenantId());
return toAjax(dfBizClueMapper.insertClue(dfBizClue)); return toAjax(dfBizClueMapper.insertClue(dfBizClue));
} }

@ -7,17 +7,21 @@ import java.util.stream.Collectors;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import com.bs.common.annotation.Anonymous; import com.bs.common.annotation.Anonymous;
import com.bs.common.constant.Constants;
import com.bs.common.core.domain.entity.SysUser; import com.bs.common.core.domain.entity.SysUser;
import com.bs.common.utils.SecurityUtils; import com.bs.common.utils.SecurityUtils;
import com.bs.common.utils.ServletUtils;
import com.bs.df.domain.DfBizClue; import com.bs.df.domain.DfBizClue;
import com.bs.df.domain.DfBroker; import com.bs.df.domain.DfBroker;
import com.bs.df.mapper.DfBizClueMapper; import com.bs.df.mapper.DfBizClueMapper;
import com.bs.df.mapper.DfOrderMapper; import com.bs.df.mapper.DfOrderMapper;
import com.bs.df.service.IDfBizClueService; import com.bs.df.service.IDfBizClueService;
import com.bs.df.service.IDfBrokerService; import com.bs.df.service.IDfBrokerService;
import com.bs.system.mapper.SysUserMapper;
import com.bs.system.service.ISysUserService; import com.bs.system.service.ISysUserService;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.apache.commons.lang3.StringUtils;
import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
@ -39,6 +43,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import cn.hutool.core.lang.Validator; import cn.hutool.core.lang.Validator;
import com.bs.df.domain.DfOrder; import com.bs.df.domain.DfOrder;
import com.bs.df.service.IDfOrderService; import com.bs.df.service.IDfOrderService;
import javax.annotation.Resource; import javax.annotation.Resource;
/** /**
@ -63,48 +68,86 @@ public class DfOrderController extends BaseController {
private IDfBizClueService dfBizClueService; private IDfBizClueService dfBizClueService;
@Resource @Resource
private DfBizClueMapper dfBizClueMapper; private DfBizClueMapper dfBizClueMapper;
@Autowired
private SysUserMapper sysUserMapper;
/** /**
* *
*/ */
@ApiOperation("分页查询客户订单列表") @ApiOperation("分页查询客户订单列表")
@GetMapping("/pageList") @GetMapping("/pageList")
public TableDataInfo pageList(DfOrder dfOrder) { public TableDataInfo pageList(DfOrder dfOrder) {
startPage(); // startPage();
Integer pageNum = ServletUtils.getParameterToInt(Constants.PAGE_NUM);
Integer pageSize = ServletUtils.getParameterToInt(Constants.PAGE_SIZE);
LambdaQueryWrapper<DfOrder> queryWrapper = new LambdaQueryWrapper(); LambdaQueryWrapper<DfOrder> queryWrapper = new LambdaQueryWrapper();
queryWrapper.orderByDesc(DfOrder::getSubmitTime); queryWrapper.orderByDesc(DfOrder::getSubmitTime);
condition(queryWrapper, dfOrder);
boolean admin = SecurityUtils.isAdmin(SecurityUtils.getUserId()); boolean admin = SecurityUtils.isAdmin(SecurityUtils.getUserId());
if (!admin) { if (!admin) {
SysUser byId = userService.getById(SecurityUtils.getUserId()); SysUser byId = userService.getById(SecurityUtils.getUserId());
if ("jj".equals(byId.getUserType())) { if ("jj".equals(byId.getUserType())) {
queryWrapper.eq(DfOrder::getUserId,SecurityUtils.getUserId()); queryWrapper.eq(DfOrder::getBrokerId, SecurityUtils.getUserId());
} }
} }
List<DfOrder> list = dfOrderService.list(queryWrapper); List<DfOrder> list = dfOrderService.list(queryWrapper);
List<DfOrder> dfOrders = setOrderList(list);
if (StringUtils.isNotEmpty(dfOrder.getUserName())) {
dfOrders = dfOrders.stream()
.filter(info -> info.getUserName() != null && info.getUserName().contains(dfOrder.getUserName()))
.collect(Collectors.toList());
}
if (StringUtils.isNotEmpty(dfOrder.getBrokerName())) {
dfOrders = dfOrders.stream()
.filter(info -> info.getBrokerName() != null && info.getBrokerName().contains(dfOrder.getBrokerName()))
.collect(Collectors.toList());
}
if (StringUtils.isNotEmpty(dfOrder.getPhone())) {
dfOrders = dfOrders.stream()
.filter(info -> info.getPhone() != null && info.getPhone().contains(dfOrder.getPhone()))
.collect(Collectors.toList());
}
Integer start = (pageNum - 1) * pageSize;
List<DfOrder> result = dfOrders.stream()
.skip(start)
.limit(pageSize)
.collect(Collectors.toList());
TableDataInfo data = getDataTable(result);
data.setTotal(dfOrders.size());
return data;
}
private List<DfOrder> setOrderList(List<DfOrder> list) {
List<SysUser> userList = userService.list(); List<SysUser> userList = userService.list();
List<DfBroker> brokerList = dfBrokerService.list(); List<DfBizClue> clueList = dfBizClueService.list(new LambdaQueryWrapper<DfBizClue>().orderByDesc(DfBizClue::getCreateTime));
// 将用户列表转换为 Map以 userId 为键userName 为值 Map<String, String> userIdToNameMap = clueList.stream()
Map<Long, String> userIdToNameMap = userList.stream() .filter(clue -> clue.getOrderId() != null && clue.getNickName() != null)
.collect(Collectors.toMap(
DfBizClue::getOrderId,
DfBizClue::getNickName,
(existingValue, newValue) -> existingValue));
Map<String, String> orderIdToPhoneMap = clueList.stream()
.filter(clue -> clue.getOrderId() != null && clue.getPhone() != null)
.collect(Collectors.toMap(
DfBizClue::getOrderId,
DfBizClue::getPhone,
(existingValue, newValue) -> existingValue));
Map<Long, String> userIdToNameMapVo = userList.stream()
.collect(Collectors.toMap(SysUser::getUserId, SysUser::getUserName)); .collect(Collectors.toMap(SysUser::getUserId, SysUser::getUserName));
Map<Long, String> userIdToPhoneMap = userList.stream()
.collect(Collectors.toMap(SysUser::getUserId, SysUser::getPhonenumber));
Map<Long, String> brokerToNameMap = brokerList.stream()
.collect(Collectors.toMap(DfBroker::getId, DfBroker::getBrokerName));
list.forEach(order -> { list.forEach(order -> {
String userName = userIdToNameMap.get(order.getUserId()); String userName = userIdToNameMap.get(order.getId().toString());
String brokerName = brokerToNameMap.get(order.getBrokerId()); String userJJName = userIdToNameMapVo.get(order.getBrokerId());
String phone = userIdToPhoneMap.get(order.getUserId()); String phone = orderIdToPhoneMap.get(order.getId().toString());
if (null != userName) { if (null != userName) {
order.setUserName(userName); order.setUserName(userName);
} }
if (null != brokerName) { if (null != userJJName) {
order.setBrokerName(brokerName); order.setBrokerName(userJJName);
} }
if (null != phone) { if (null != phone) {
order.setPhone(phone); order.setPhone(phone);
} }
}); });
return getDataTable(list); return list;
} }
/** /**
@ -114,7 +157,7 @@ public class DfOrderController extends BaseController {
@GetMapping("/list") @GetMapping("/list")
public AjaxResult list(DfOrder dfOrder) { public AjaxResult list(DfOrder dfOrder) {
LambdaQueryWrapper<DfOrder> queryWrapper = new LambdaQueryWrapper(); LambdaQueryWrapper<DfOrder> queryWrapper = new LambdaQueryWrapper();
condition(queryWrapper,dfOrder); condition(queryWrapper, dfOrder);
List<DfOrder> list = dfOrderService.list(queryWrapper); List<DfOrder> list = dfOrderService.list(queryWrapper);
return success(list); return success(list);
} }
@ -127,41 +170,41 @@ public class DfOrderController extends BaseController {
@PostMapping("/export") @PostMapping("/export")
public void export(HttpServletResponse response, DfOrder dfOrder) { public void export(HttpServletResponse response, DfOrder dfOrder) {
LambdaQueryWrapper<DfOrder> queryWrapper = new LambdaQueryWrapper(); LambdaQueryWrapper<DfOrder> queryWrapper = new LambdaQueryWrapper();
condition(queryWrapper,dfOrder); queryWrapper.orderByDesc(DfOrder::getSubmitTime);
List<DfOrder> list = dfOrderService.list(queryWrapper); condition(queryWrapper, dfOrder);
List<SysUser> userList = userService.list(); boolean admin = SecurityUtils.isAdmin(SecurityUtils.getUserId());
List<DfBroker> brokerList = dfBrokerService.list(); if (!admin) {
// 将用户列表转换为 Map以 userId 为键userName 为值 SysUser byId = userService.getById(SecurityUtils.getUserId());
Map<Long, String> userIdToNameMap = userList.stream() if ("jj".equals(byId.getUserType())) {
.collect(Collectors.toMap(SysUser::getUserId, SysUser::getUserName)); queryWrapper.eq(DfOrder::getBrokerId, SecurityUtils.getUserId());
Map<Long, String> brokerToNameMap = brokerList.stream()
.collect(Collectors.toMap(DfBroker::getId, DfBroker::getBrokerName));
list.forEach(order -> {
String userName = userIdToNameMap.get(order.getUserId());
String brokerName = brokerToNameMap.get(order.getBrokerId());
if (userName != null) {
order.setUserName(userName);
} }
if (brokerName != null) {
order.setBrokerName(brokerName);
} }
if (Validator.isNotNull(order.getStaus())) { List<DfOrder> list = dfOrderService.list(queryWrapper);
if ("0".equals(order.getStaus())) { List<DfOrder> dfOrders = setOrderList(list);
order.setStaus("未完成"); dfOrders.forEach(order -> {
} else if ("1".equals(order.getStaus())) { String isFirst = order.getIsFirst();
order.setStaus("已完成"); if (StringUtils.isNotEmpty(isFirst)) {
String isFirstDisplay = isFirst.equals("1") ? "是" : "否";
order.setIsFirst(isFirstDisplay);
} }
});
if (StringUtils.isNotEmpty(dfOrder.getUserName())) {
dfOrders = dfOrders.stream()
.filter(info -> info.getUserName() != null && info.getUserName().contains(dfOrder.getUserName()))
.collect(Collectors.toList());
} }
if (Validator.isNotNull(order.getIsFirst())) { if (StringUtils.isNotEmpty(dfOrder.getBrokerName())) {
if ("0".equals(order.getIsFirst())) { dfOrders = dfOrders.stream()
order.setIsFirst("否"); .filter(info -> info.getBrokerName() != null && info.getBrokerName().contains(dfOrder.getBrokerName()))
} else if ("1".equals(order.getIsFirst())) { .collect(Collectors.toList());
order.setIsFirst("是");
} }
if (StringUtils.isNotEmpty(dfOrder.getPhone())) {
dfOrders = dfOrders.stream()
.filter(info -> info.getPhone() != null && info.getPhone().contains(dfOrder.getPhone()))
.collect(Collectors.toList());
} }
}); ExcelUtil<DfOrder> util = new ExcelUtil<DfOrder>(DfOrder.class);
ExcelUtil<DfOrder> util = new ExcelUtil<DfOrder>(DfOrder. class); util.exportExcel(response, dfOrders, "客户订单数据");
util.exportExcel(response, list, "客户订单数据");
} }
/** /**
@ -170,7 +213,37 @@ public class DfOrderController extends BaseController {
@ApiOperation("获取客户订单详细信息") @ApiOperation("获取客户订单详细信息")
@GetMapping(value = "/{id}") @GetMapping(value = "/{id}")
public AjaxResult getInfo(@PathVariable("id") Long id) { public AjaxResult getInfo(@PathVariable("id") Long id) {
return success(dfOrderService.getById(id)); DfOrder byId = dfOrderService.getById(id);
List<SysUser> userList = userService.list();
List<DfBizClue> clueList = dfBizClueService.list(new LambdaQueryWrapper<DfBizClue>().orderByDesc(DfBizClue::getCreateTime));
// 将用户列表转换为 Map以 userId 为键userName 为值
Map<String, String> userIdToNameMap = clueList.stream()
.filter(clue -> clue.getOrderId() != null && clue.getNickName() != null)
.collect(Collectors.toMap(
DfBizClue::getOrderId, // Key mapper
DfBizClue::getNickName, // Value mapper
(existingValue, newValue) -> existingValue)); // Merge function (keep existing value)
Map<String, String> orderIdToPhoneMap = clueList.stream()
.filter(clue -> clue.getOrderId() != null && clue.getPhone() != null)
.collect(Collectors.toMap(
DfBizClue::getOrderId, // Key mapper
DfBizClue::getPhone, // Value mapper
(existingValue, newValue) -> existingValue)); // Merge function (keep existing value)
Map<Long, String> userIdToNameMapVo = userList.stream()
.collect(Collectors.toMap(SysUser::getUserId, SysUser::getUserName));
String userName = userIdToNameMap.get(byId.getId().toString());
String userJJName = userIdToNameMapVo.get(byId.getBrokerId());
String phone = orderIdToPhoneMap.get(byId.getId().toString());
if (null != userName) {
byId.setUserName(userName);
}
if (null != userJJName) {
byId.setBrokerName(userJJName);
}
if (null != phone) {
byId.setPhone(phone);
}
return success(byId);
} }
/** /**
@ -184,23 +257,35 @@ public class DfOrderController extends BaseController {
/** /**
* *
*
*/ */
@ApiOperation("新增客户订单") @ApiOperation("新增客户订单")
@PostMapping("/visitorAdd") @PostMapping("/visitorAdd")
@Anonymous @Anonymous
public AjaxResult visitorAdd(DfOrder dfOrder) { public AjaxResult visitorAdd(@RequestBody DfOrder dfOrder) {
SysUser sysUser = sysUserMapper.selectById(dfOrder.getShareUser());
if (sysUser == null) {
return AjaxResult.warn("链接有误");
}
List<Long> productIdsByBrokerId = dfBrokerService.getProductIdsByBrokerIdByUserId(Long.valueOf(dfOrder.getShareUser()));
Long productId = Long.valueOf(dfOrder.getProductId());
if (!productIdsByBrokerId.contains(productId)) {
return AjaxResult.warn("链接有误");
}
Date date = new Date(); Date date = new Date();
dfOrder.setCreateTimeVo(date); dfOrder.setCreateTimeVo(date);
String billNumber = dfOrderService.getBillNumber("RK");
dfOrder.setOrderNo(billNumber);
dfOrder.setTenantId(0L);
dfOrderMapper.insertOrder(dfOrder); dfOrderMapper.insertOrder(dfOrder);
List<DfOrder> dfOrders = dfOrderService.list(new LambdaQueryWrapper<DfOrder>().eq(DfOrder::getOrderNo, dfOrder.getOrderNo()) List<DfOrder> dfOrders = dfOrderService.list(new LambdaQueryWrapper<DfOrder>().eq(DfOrder::getOrderNo, billNumber)
.eq(DfOrder::getUserId, dfOrder.getUserId())
.orderByDesc(DfOrder::getCreateTime)); .orderByDesc(DfOrder::getCreateTime));
if (Validator.isNotEmpty(dfOrder.getShareUser())) { if (Validator.isNotEmpty(dfOrder.getShareUser())) {
List<DfBizClue> list = dfBizClueService.list(new LambdaQueryWrapper<DfBizClue>().eq(DfBizClue::getShareUser, dfOrder.getShareUser()) List<DfBizClue> list = dfBizClueService.list(new LambdaQueryWrapper<DfBizClue>().eq(DfBizClue::getShareUser, dfOrder.getShareUser())
.isNull(DfBizClue::getOrderId)); .isNull(DfBizClue::getOrderId));
for (DfBizClue clue : list) { for (DfBizClue clue : list) {
clue.setOrderId(dfOrders.get(0).getId().toString()); clue.setOrderId(dfOrders.get(0).getId().toString());
clue.setPhone(dfOrder.getPhone());
clue.setNickName(dfOrder.getUserName());
dfBizClueMapper.updateClue(clue); dfBizClueMapper.updateClue(clue);
} }
} }
@ -209,6 +294,8 @@ public class DfOrderController extends BaseController {
.isNull(DfBizClue::getOrderId)); .isNull(DfBizClue::getOrderId));
for (DfBizClue clue : list) { for (DfBizClue clue : list) {
clue.setOrderId(dfOrders.get(0).getId().toString()); clue.setOrderId(dfOrders.get(0).getId().toString());
clue.setPhone(dfOrder.getPhone());
clue.setNickName(dfOrder.getUserName());
dfBizClueMapper.updateClue(clue); dfBizClueMapper.updateClue(clue);
} }
} }
@ -244,133 +331,134 @@ public class DfOrderController extends BaseController {
String billNumber = dfOrderService.getBillNumber(billPrefix); String billNumber = dfOrderService.getBillNumber(billPrefix);
return AjaxResult.success("获取成功", billNumber); return AjaxResult.success("获取成功", billNumber);
} }
/** /**
* *
*/ */
private void condition (LambdaQueryWrapper<DfOrder> queryWrapper,DfOrder dfOrder){ private void condition(LambdaQueryWrapper<DfOrder> queryWrapper, DfOrder dfOrder) {
//id //id
if(Validator.isNotEmpty(dfOrder.getId())){ if (Validator.isNotEmpty(dfOrder.getId())) {
queryWrapper.eq(DfOrder::getId,dfOrder.getId()); queryWrapper.eq(DfOrder::getId, dfOrder.getId());
} }
//订单号 //订单号
if(Validator.isNotEmpty(dfOrder.getOrderNo())){ if (Validator.isNotEmpty(dfOrder.getOrderNo())) {
queryWrapper.like(DfOrder::getOrderNo,dfOrder.getOrderNo()); queryWrapper.like(DfOrder::getOrderNo, dfOrder.getOrderNo());
} }
//客户id //客户id
if(Validator.isNotEmpty(dfOrder.getUserId())){ if (Validator.isNotEmpty(dfOrder.getUserId())) {
queryWrapper.eq(DfOrder::getUserId,dfOrder.getUserId()); queryWrapper.eq(DfOrder::getUserId, dfOrder.getUserId());
} }
//经纪id //经纪id
if(Validator.isNotEmpty(dfOrder.getBrokerId())){ if (Validator.isNotEmpty(dfOrder.getBrokerId())) {
queryWrapper.eq(DfOrder::getBrokerId,dfOrder.getBrokerId()); queryWrapper.eq(DfOrder::getBrokerId, dfOrder.getBrokerId());
} }
//产品id //产品id
if(Validator.isNotEmpty(dfOrder.getProductId())){ if (Validator.isNotEmpty(dfOrder.getProductId())) {
queryWrapper.eq(DfOrder::getProductId,dfOrder.getProductId()); queryWrapper.eq(DfOrder::getProductId, dfOrder.getProductId());
} }
//产品名称 //产品名称
if(Validator.isNotEmpty(dfOrder.getProductName())){ if (Validator.isNotEmpty(dfOrder.getProductName())) {
queryWrapper.like(DfOrder::getProductName,dfOrder.getProductName()); queryWrapper.like(DfOrder::getProductName, dfOrder.getProductName());
} }
//提交时间 //提交时间
if(Validator.isNotEmpty(dfOrder.getSubmitTime())){ if (Validator.isNotEmpty(dfOrder.getSubmitTime())) {
queryWrapper.eq(DfOrder::getSubmitTime,dfOrder.getSubmitTime()); queryWrapper.eq(DfOrder::getSubmitTime, dfOrder.getSubmitTime());
} }
if(Validator.isNotEmpty(dfOrder.getSubmitTimeBegin())){ if (Validator.isNotEmpty(dfOrder.getSubmitTimeBegin())) {
queryWrapper.ge(DfOrder::getSubmitTime,dfOrder.getSubmitTimeBegin()); queryWrapper.ge(DfOrder::getSubmitTime, dfOrder.getSubmitTimeBegin());
} }
if(Validator.isNotEmpty(dfOrder.getSubmitTimeEnd())){ if (Validator.isNotEmpty(dfOrder.getSubmitTimeEnd())) {
queryWrapper.le(DfOrder::getSubmitTime,dfOrder.getSubmitTimeEnd()); queryWrapper.le(DfOrder::getSubmitTime, dfOrder.getSubmitTimeEnd());
} }
//申请额(万元) //申请额(万元)
if(Validator.isNotEmpty(dfOrder.getApplyAmount())){ if (Validator.isNotEmpty(dfOrder.getApplyAmount())) {
queryWrapper.eq(DfOrder::getApplyAmount,dfOrder.getApplyAmount()); queryWrapper.eq(DfOrder::getApplyAmount, dfOrder.getApplyAmount());
} }
//授信额(万元) //授信额(万元)
if(Validator.isNotEmpty(dfOrder.getLimitAmount())){ if (Validator.isNotEmpty(dfOrder.getLimitAmount())) {
queryWrapper.eq(DfOrder::getLimitAmount,dfOrder.getLimitAmount()); queryWrapper.eq(DfOrder::getLimitAmount, dfOrder.getLimitAmount());
} }
//放款额(万元) //放款额(万元)
if(Validator.isNotEmpty(dfOrder.getLoanAmount())){ if (Validator.isNotEmpty(dfOrder.getLoanAmount())) {
queryWrapper.eq(DfOrder::getLoanAmount,dfOrder.getLoanAmount()); queryWrapper.eq(DfOrder::getLoanAmount, dfOrder.getLoanAmount());
} }
//放款利率 //放款利率
if(Validator.isNotEmpty(dfOrder.getLoanRate())){ if (Validator.isNotEmpty(dfOrder.getLoanRate())) {
queryWrapper.eq(DfOrder::getLoanRate,dfOrder.getLoanRate()); queryWrapper.eq(DfOrder::getLoanRate, dfOrder.getLoanRate());
} }
//贷款期限(月) //贷款期限(月)
if(Validator.isNotEmpty(dfOrder.getLoadMonth())){ if (Validator.isNotEmpty(dfOrder.getLoadMonth())) {
queryWrapper.eq(DfOrder::getLoadMonth,dfOrder.getLoadMonth()); queryWrapper.eq(DfOrder::getLoadMonth, dfOrder.getLoadMonth());
} }
//是否首贷 //是否首贷
if(Validator.isNotEmpty(dfOrder.getIsFirst())){ if (Validator.isNotEmpty(dfOrder.getIsFirst())) {
queryWrapper.eq(DfOrder::getIsFirst,dfOrder.getIsFirst()); queryWrapper.eq(DfOrder::getIsFirst, dfOrder.getIsFirst());
} }
//可结算金额(万元) //可结算金额(万元)
if(Validator.isNotEmpty(dfOrder.getSettleAmount())){ if (Validator.isNotEmpty(dfOrder.getSettleAmount())) {
queryWrapper.eq(DfOrder::getSettleAmount,dfOrder.getSettleAmount()); queryWrapper.eq(DfOrder::getSettleAmount, dfOrder.getSettleAmount());
} }
//状态 //状态
if(Validator.isNotEmpty(dfOrder.getStaus())){ if (Validator.isNotEmpty(dfOrder.getStaus())) {
queryWrapper.eq(DfOrder::getStaus,dfOrder.getStaus()); queryWrapper.eq(DfOrder::getStaus, dfOrder.getStaus());
} }
//备注 //备注
if(Validator.isNotEmpty(dfOrder.getRemark())){ if (Validator.isNotEmpty(dfOrder.getRemark())) {
queryWrapper.eq(DfOrder::getRemark,dfOrder.getRemark()); queryWrapper.eq(DfOrder::getRemark, dfOrder.getRemark());
} }
//创建部门 //创建部门
if(Validator.isNotEmpty(dfOrder.getCreateDept())){ if (Validator.isNotEmpty(dfOrder.getCreateDept())) {
queryWrapper.eq(DfOrder::getCreateDept,dfOrder.getCreateDept()); queryWrapper.eq(DfOrder::getCreateDept, dfOrder.getCreateDept());
} }
//创建人员 //创建人员
if(Validator.isNotEmpty(dfOrder.getCreateBy())){ if (Validator.isNotEmpty(dfOrder.getCreateBy())) {
queryWrapper.eq(DfOrder::getCreateBy,dfOrder.getCreateBy()); queryWrapper.eq(DfOrder::getCreateBy, dfOrder.getCreateBy());
} }
//创建时间 //创建时间
if(Validator.isNotEmpty(dfOrder.getCreateTime())){ if (Validator.isNotEmpty(dfOrder.getCreateTime())) {
queryWrapper.eq(DfOrder::getCreateTime,dfOrder.getCreateTime()); queryWrapper.eq(DfOrder::getCreateTime, dfOrder.getCreateTime());
} }
//修改人员 //修改人员
if(Validator.isNotEmpty(dfOrder.getUpdateBy())){ if (Validator.isNotEmpty(dfOrder.getUpdateBy())) {
queryWrapper.eq(DfOrder::getUpdateBy,dfOrder.getUpdateBy()); queryWrapper.eq(DfOrder::getUpdateBy, dfOrder.getUpdateBy());
} }
//修改时间 //修改时间
if(Validator.isNotEmpty(dfOrder.getUpdateTime())){ if (Validator.isNotEmpty(dfOrder.getUpdateTime())) {
queryWrapper.eq(DfOrder::getUpdateTime,dfOrder.getUpdateTime()); queryWrapper.eq(DfOrder::getUpdateTime, dfOrder.getUpdateTime());
} }
//删除标志0代表存在 2代表删除 //删除标志0代表存在 2代表删除
if(Validator.isNotEmpty(dfOrder.getDelFlag())){ if (Validator.isNotEmpty(dfOrder.getDelFlag())) {
queryWrapper.eq(DfOrder::getDelFlag,dfOrder.getDelFlag()); queryWrapper.eq(DfOrder::getDelFlag, dfOrder.getDelFlag());
} }
//租户id //租户id
if(Validator.isNotEmpty(dfOrder.getTenantId())){ if (Validator.isNotEmpty(dfOrder.getTenantId())) {
queryWrapper.eq(DfOrder::getTenantId,dfOrder.getTenantId()); queryWrapper.eq(DfOrder::getTenantId, dfOrder.getTenantId());
} }
} }

@ -9,10 +9,14 @@ import javax.servlet.http.HttpServletResponse;
import com.bs.cm.domain.CmAttach; import com.bs.cm.domain.CmAttach;
import com.bs.cm.service.ICmAttachService; import com.bs.cm.service.ICmAttachService;
import com.bs.common.core.domain.entity.SysUser;
import com.bs.common.utils.SecurityUtils; import com.bs.common.utils.SecurityUtils;
import com.bs.df.domain.DfProductArticle;
import com.bs.df.domain.DfProductInfo; import com.bs.df.domain.DfProductInfo;
import com.bs.df.service.IDfBrokerService; import com.bs.df.service.IDfBrokerService;
import com.bs.df.service.IDfProductInfoService; import com.bs.df.service.IDfProductInfoService;
import com.bs.system.mapper.SysUserMapper;
import com.bs.system.service.ISysUserService;
import com.github.yulichang.wrapper.MPJLambdaWrapper; import com.github.yulichang.wrapper.MPJLambdaWrapper;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
@ -56,6 +60,8 @@ public class DfProductPosterController extends BaseController {
private ICmAttachService cmAttachService; private ICmAttachService cmAttachService;
@Resource @Resource
private IDfBrokerService dfBrokerService;; private IDfBrokerService dfBrokerService;;
@Resource
private ISysUserService userService;
/** /**
* *
*/ */
@ -74,6 +80,10 @@ public class DfProductPosterController extends BaseController {
productIdsByBrokerId.add(0L); productIdsByBrokerId.add(0L);
} }
queryWrapper.in(DfProductPoster::getProductId, productIdsByBrokerId); queryWrapper.in(DfProductPoster::getProductId, productIdsByBrokerId);
SysUser byId = userService.getById(SecurityUtils.getUserId());
if ("jj".equals(byId.getUserType()) || "kh".equals(byId.getUserType())) {
queryWrapper.eq(DfProductPoster::getStatus,"1");
}
} }
conditionByMPJ(queryWrapper,dfProductPoster); conditionByMPJ(queryWrapper,dfProductPoster);
List<DfProductPoster> list = dfProductPosterService.list(queryWrapper); List<DfProductPoster> list = dfProductPosterService.list(queryWrapper);

@ -35,19 +35,18 @@ public class DfBizClue extends BaseEntity{
/** 数据类型0客户1经纪 */ /** 数据类型0客户1经纪 */
@Excel(name = "数据类型") @Excel(name = "数据类型",dictType = "product_classify")
@ApiModelProperty(value = "数据类型0客户1经纪") @ApiModelProperty(value = "数据类型")
private String dataType; private String dataType;
/** 线索类型 */ /** 线索类型 */
@Excel(name = "线索类型") @Excel(name = "线索类型",dictType = "clue_type")
@ApiModelProperty(value = "线索类型") @ApiModelProperty(value = "线索类型")
private String clueType; private String clueType;
/** 用户id */ /** 用户id */
@Excel(name = "用户id")
@ApiModelProperty(value = "用户id") @ApiModelProperty(value = "用户id")
private Long userId; private Long userId;

@ -52,13 +52,17 @@ public class DfOrder extends BaseEntity{
@TableField(exist = false) @TableField(exist = false)
private String userName; private String userName;
@Excel(name = "联系方式")
@TableField(exist = false)
private String phone;
/** 经纪id */ /** 经纪id */
//@Excel(name = "经纪id") //@Excel(name = "经纪id")
@ApiModelProperty(value = "经纪id") @ApiModelProperty(value = "经纪id")
private Long brokerId; private Long brokerId;
@Excel(name = "代理商名称") @Excel(name = "经纪人")
@TableField(exist = false) @TableField(exist = false)
private String brokerName; private String brokerName;
@ -76,26 +80,26 @@ public class DfOrder extends BaseEntity{
/** 提交时间 */ /** 提交时间 */
@JsonFormat(pattern = "yyyy-MM-dd") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Excel(name = "提交时间", width = 30, dateFormat = "yyyy-MM-dd") @Excel(name = "提交时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "提交时间") @ApiModelProperty(value = "提交时间")
private Date submitTime; private Date submitTime;
/** 申请额(万元) */ /** 申请额(万元) */
@Excel(name = "申请额", readConverterExp = "万=元") @Excel(name = "申请额")
@ApiModelProperty(value = "申请额(万元)") @ApiModelProperty(value = "申请额(万元)")
private Long applyAmount; private Long applyAmount;
/** 授信额(万元) */ /** 授信额(万元) */
@Excel(name = "授信额", readConverterExp = "万=元") @Excel(name = "授信额")
@ApiModelProperty(value = "授信额(万元)") @ApiModelProperty(value = "授信额(万元)")
private Long limitAmount; private Long limitAmount;
/** 放款额(万元) */ /** 放款额(万元) */
@Excel(name = "放款额", readConverterExp = "万=元") @Excel(name = "放款额")
@ApiModelProperty(value = "放款额(万元)") @ApiModelProperty(value = "放款额(万元)")
private Long loanAmount; private Long loanAmount;
@ -107,7 +111,7 @@ public class DfOrder extends BaseEntity{
/** 贷款期限(月) */ /** 贷款期限(月) */
@Excel(name = "贷款期限", readConverterExp = "月=") @Excel(name = "贷款期限")
@ApiModelProperty(value = "贷款期限(月)") @ApiModelProperty(value = "贷款期限(月)")
private Long loadMonth; private Long loadMonth;
@ -119,7 +123,7 @@ public class DfOrder extends BaseEntity{
/** 可结算金额(万元) */ /** 可结算金额(万元) */
@Excel(name = "可结算金额", readConverterExp = "万=元") @Excel(name = "可结算金额")
@ApiModelProperty(value = "可结算金额(万元)") @ApiModelProperty(value = "可结算金额(万元)")
private Long settleAmount; private Long settleAmount;
@ -156,10 +160,6 @@ public class DfOrder extends BaseEntity{
private Date createTimeVo; private Date createTimeVo;
@Excel(name = "联系方式")
@TableField(exist = false)
private String phone;
@JsonFormat(pattern = "yyyy-MM-dd") @JsonFormat(pattern = "yyyy-MM-dd")
@TableField(exist = false) @TableField(exist = false)

@ -31,4 +31,11 @@ public interface IDfBrokerService extends MPJBaseService<DfBroker>{
*/ */
public List<Long> getProductIdsByBrokerId(); public List<Long> getProductIdsByBrokerId();
/**
* idid
* @return id
*/
public List<Long> getProductIdsByBrokerIdByUserId(Long userId);
} }

@ -34,7 +34,7 @@ public class DfBrokerServiceImpl extends MPJBaseServiceImpl<DfBrokerMapper, DfB
@Autowired @Autowired
private IDfBrokerProductService dfBrokerProductService; private IDfBrokerProductService dfBrokerProductService;
public List<Long> filterByUser() { public List<Long> filterByUser() {
SecurityUtils.getUserId(); //SecurityUtils.getUserId();
SysUser sysUser = userService.selectUserById(SecurityUtils.getUserId()); SysUser sysUser = userService.selectUserById(SecurityUtils.getUserId());
Long deptId = sysUser.getDeptId(); Long deptId = sysUser.getDeptId();
List<DfBroker> allSubordinates = findAllSubordinates(deptId); List<DfBroker> allSubordinates = findAllSubordinates(deptId);
@ -45,6 +45,17 @@ public class DfBrokerServiceImpl extends MPJBaseServiceImpl<DfBrokerMapper, DfB
return brokerIds; return brokerIds;
} }
public List<Long> filterByUserId(Long userId) {
SysUser sysUser = userService.selectUserById(userId);
Long deptId = sysUser.getDeptId();
List<DfBroker> allSubordinates = findAllSubordinates(deptId);
List<Long> brokerIds = allSubordinates.stream()
.map(DfBroker::getId)
.collect(Collectors.toList());
brokerIds.add(deptId);
return brokerIds;
}
public List<DfBroker> findAllSubordinates(Long brokerId) { public List<DfBroker> findAllSubordinates(Long brokerId) {
List<DfBroker> result = new ArrayList<>(); List<DfBroker> result = new ArrayList<>();
// 查询当前brokerId的所有下级 // 查询当前brokerId的所有下级
@ -65,6 +76,14 @@ public class DfBrokerServiceImpl extends MPJBaseServiceImpl<DfBrokerMapper, DfB
return list.stream().map(DfBrokerProduct::getProductId).collect(Collectors.toList()); return list.stream().map(DfBrokerProduct::getProductId).collect(Collectors.toList());
} }
public List<Long> getProductIdsByBrokerIdByUserId(Long UserId) {
List<Long> longs = filterByUserId(UserId);
List<DfBrokerProduct> list = dfBrokerProductService.list(new LambdaQueryWrapper<DfBrokerProduct>()
.in(DfBrokerProduct::getBrokerId, longs)
.eq(DfBrokerProduct::getStaus, "1"));
return list.stream().map(DfBrokerProduct::getProductId).collect(Collectors.toList());
}
} }

@ -14,8 +14,10 @@ import com.bs.common.enums.BusinessType;
import com.bs.common.utils.SecurityUtils; import com.bs.common.utils.SecurityUtils;
import com.bs.common.utils.StringUtils; import com.bs.common.utils.StringUtils;
import com.bs.df.domain.DfBizClue; import com.bs.df.domain.DfBizClue;
import com.bs.df.domain.DfProductInfo;
import com.bs.df.mapper.DfBizClueMapper; import com.bs.df.mapper.DfBizClueMapper;
import com.bs.df.service.IDfBizClueService; import com.bs.df.service.IDfBizClueService;
import com.bs.df.service.impl.DfBrokerServiceImpl;
import com.bs.framework.web.service.SysLoginService; import com.bs.framework.web.service.SysLoginService;
import com.bs.framework.web.service.SysPermissionService; import com.bs.framework.web.service.SysPermissionService;
import com.bs.framework.web.service.TokenService; import com.bs.framework.web.service.TokenService;
@ -73,6 +75,8 @@ public class SysLoginController
private IDfBizClueService dfBizClueService; private IDfBizClueService dfBizClueService;
@Autowired @Autowired
private DfBizClueMapper dfBizClueMapper; private DfBizClueMapper dfBizClueMapper;
@Autowired
private DfBrokerServiceImpl dfBrokerService;
/** /**
* *
@ -353,6 +357,17 @@ public class SysLoginController
@Anonymous @Anonymous
public AjaxResult addVisitor(@RequestBody LoginBody loginBody) public AjaxResult addVisitor(@RequestBody LoginBody loginBody)
{ {
if ("0".equals(loginBody.getClueType()) || "3".equals(loginBody.getClueType())) {
SysUser sysUser = sysUserMapper.selectById(loginBody.getShareUser());
if (sysUser == null) {
return AjaxResult.warn("链接有误");
}
List<Long> productIdsByBrokerId = dfBrokerService.getProductIdsByBrokerIdByUserId(Long.valueOf(loginBody.getShareUser()));
Long businessLinks = Long.valueOf(loginBody.getBusinessLinks());
if (!productIdsByBrokerId.contains(businessLinks)) {
return AjaxResult.warn("链接有误");
}
}
String nickname = null; String nickname = null;
String headimgurl = null; String headimgurl = null;
String unionId = null; String unionId = null;
@ -378,6 +393,7 @@ public class SysLoginController
dfBizClue.setFromType(loginBody.getFromType()); dfBizClue.setFromType(loginBody.getFromType());
dfBizClue.setClueType(loginBody.getClueType()); dfBizClue.setClueType(loginBody.getClueType());
dfBizClue.setDataType(loginBody.getDataType()); dfBizClue.setDataType(loginBody.getDataType());
dfBizClue.setBusinessLinks(loginBody.getBusinessLinks());
dfBizClue.setNickName(nickname); dfBizClue.setNickName(nickname);
dfBizClue.setAvatarLink(headimgurl); dfBizClue.setAvatarLink(headimgurl);
dfBizClue.setBrowseTime(new Date()); dfBizClue.setBrowseTime(new Date());
@ -385,13 +401,7 @@ public class SysLoginController
dfBizClue.setOpenId(openIdNew); dfBizClue.setOpenId(openIdNew);
dfBizClue.setCreateTimeVo(new Date()); dfBizClue.setCreateTimeVo(new Date());
dfBizClue.setTenantId(0L); dfBizClue.setTenantId(0L);
// dfBizClue.setTenantId(SecurityUtils.getTenantId());
// if (StringUtils.isNotEmpty(nickname)) {
dfBizClueMapper.insertClue(dfBizClue); dfBizClueMapper.insertClue(dfBizClue);
// }
// AjaxResult ajax = AjaxResult.success();
// ajax.put("openid", openIdNew);
// ajax.put("unionid",unionId);
return AjaxResult.success(dfBizClue); return AjaxResult.success(dfBizClue);
} }

@ -50,14 +50,12 @@ public class SignUtil {
"&noncestr=" + nonce_str + "&noncestr=" + nonce_str +
"&timestamp=" + timestamp + "&timestamp=" + timestamp +
"&url=" + url; "&url=" + url;
System.out.println(string1);
try try
{ {
MessageDigest crypt = MessageDigest.getInstance("SHA-1"); MessageDigest crypt = MessageDigest.getInstance("SHA-1");
crypt.reset(); crypt.reset();
crypt.update(string1.getBytes("UTF-8")); crypt.update(string1.getBytes("UTF-8"));
signature = byteToHex(crypt.digest()); signature = byteToHex(crypt.digest());
System.out.println("signature" + signature);
} }
catch (NoSuchAlgorithmException e) catch (NoSuchAlgorithmException e)
{ {

@ -543,9 +543,7 @@ public class WeiXinUtil {
// 获取Access_token // 获取Access_token
public synchronized String getAccess_token(String appid, String appsecret) { public synchronized String getAccess_token(String appid, String appsecret) {
System.out.println("appid:" + appid + ".appsecret:" + appsecret);
String access_token = getSysConfig("access_token"); String access_token = getSysConfig("access_token");
System.out.println(access_token);
if (StringUtils.isNotEmpty(access_token)){ if (StringUtils.isNotEmpty(access_token)){
JSONObject jo = JSONObject.parseObject(access_token); JSONObject jo = JSONObject.parseObject(access_token);
jo.getString("expirettime"); jo.getString("expirettime");
@ -1034,7 +1032,6 @@ public class WeiXinUtil {
public String getTitcket() throws Exception { public String getTitcket() throws Exception {
String accessToken = getAccess_token(gzhappid, gzhappsecret); String accessToken = getAccess_token(gzhappid, gzhappsecret);
System.out.println(accessToken);
String url = "https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=" + accessToken + "&type=jsapi"; String url = "https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=" + accessToken + "&type=jsapi";
String returnValue = httpGet(url,null); String returnValue = httpGet(url,null);
JSONObject jsonObject = JSONObject.parseObject(returnValue); JSONObject jsonObject = JSONObject.parseObject(returnValue);

@ -15,7 +15,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<update id="updateClue" parameterType="com.bs.df.domain.DfBizClue"> <update id="updateClue" parameterType="com.bs.df.domain.DfBizClue">
UPDATE df_biz_clue UPDATE df_biz_clue
SET SET
order_id = #{dfBizClue.orderId} order_id = #{dfBizClue.orderId},
phone = #{dfBizClue.phone},
nick_name = #{dfBizClue.nickName}
WHERE id = #{dfBizClue.id} WHERE id = #{dfBizClue.id}
</update> </update>

@ -72,8 +72,17 @@ public class LoginBody
private String shareUser; private String shareUser;
private String businessLinks;
public String getBusinessLinks()
{
return businessLinks;
}
public void setBusinessLinks(String businessLinks)
{
this.businessLinks = businessLinks;
}
public String getUsername() public String getUsername()
{ {

@ -151,6 +151,13 @@
</el-table-column> </el-table-column>
<el-table-column label="操作" align="center" width="120" class-name="small-padding fixed-width"> <el-table-column label="操作" align="center" width="120" class-name="small-padding fixed-width">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-view"
@click="handleRead(scope.row)"
>查看
</el-button>
<el-button <el-button
size="mini" size="mini"
type="text" type="text"
@ -184,7 +191,7 @@
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="文章分类" prop="articleType"> <el-form-item label="文章分类" prop="articleType">
<el-select style="width: 100%;" v-model="form.articleType" placeholder="请选择文章分类"> <el-select style="width: 100%;" v-model="form.articleType" placeholder="请选择文章分类" :disabled="readonly">
<el-option <el-option
v-for="dict in dict.type.product_classify" v-for="dict in dict.type.product_classify"
:key="dict.value" :key="dict.value"
@ -196,7 +203,7 @@
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="文章类型" prop="articleKind"> <el-form-item label="文章类型" prop="articleKind">
<el-select style="width: 100%;" v-model="form.articleKind" placeholder="请选择文章类型"> <el-select style="width: 100%;" v-model="form.articleKind" placeholder="请选择文章类型" :disabled="readonly">
<el-option <el-option
v-for="dict in dict.type.article_kind" v-for="dict in dict.type.article_kind"
:key="dict.value" :key="dict.value"
@ -210,12 +217,13 @@
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="文章标题" prop="articleTitle"> <el-form-item label="文章标题" prop="articleTitle">
<el-input v-model="form.articleTitle" placeholder="请输入文章标题"/> <el-input v-model="form.articleTitle" placeholder="请输入文章标题" :disabled="readonly"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="发布时间" prop="publishTime"> <el-form-item label="发布时间" prop="publishTime">
<el-date-picker clearable <el-date-picker clearable
:disabled="readonly"
style="width: 100%;" style="width: 100%;"
v-model="form.publishTime" v-model="form.publishTime"
type="date" type="date"
@ -228,7 +236,7 @@
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="状态" prop="status"> <el-form-item label="状态" prop="status">
<el-select style="width: 100%;" v-model="form.status" placeholder="请选择状态"> <el-select style="width: 100%;" v-model="form.status" placeholder="请选择状态" :disabled="readonly">
<el-option <el-option
v-for="dict in dict.type.product_status" v-for="dict in dict.type.product_status"
:key="dict.value" :key="dict.value"
@ -249,18 +257,18 @@
<el-row> <el-row>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="备注" prop="remark"> <el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" type="textarea" placeholder="请输入内容"/> <el-input v-model="form.remark" type="textarea" placeholder="请输入内容" :disabled="readonly"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-form-item label="上传" prop="field"> <el-form-item label="上传" prop="field">
<el-form :model="form"> <el-form :model="form">
<PictureUpload :biz-id="form.id" ></PictureUpload> <PictureUpload :biz-id="form.id" :readonly="readonly"></PictureUpload>
</el-form> </el-form>
</el-form-item> </el-form-item>
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button> <el-button type="primary" @click="submitForm" v-if="!readonly"> </el-button>
<el-button @click="cancel"> </el-button> <el-button @click="cancel"> </el-button>
</div> </div>
</el-dialog> </el-dialog>
@ -271,6 +279,8 @@
import {pageListArticle, getArticle, delArticle, addArticle, updateArticle,changeStatusByArticle} from "@/api/article/article"; import {pageListArticle, getArticle, delArticle, addArticle, updateArticle,changeStatusByArticle} from "@/api/article/article";
import {changeStatus} from "@/api/product/info"; import {changeStatus} from "@/api/product/info";
import {addMoment, changeStatusByMoment, updateMoment} from "@/api/moment/moment"; import {addMoment, changeStatusByMoment, updateMoment} from "@/api/moment/moment";
import {getPoster} from "@/api/poster/poster";
import {getAttachList} from "@/api/common/file";
export default { export default {
name: "Article", name: "Article",
@ -297,6 +307,7 @@ export default {
title: "", title: "",
// //
open: false, open: false,
readonly:false,
// //
queryParams: { queryParams: {
pageNum: 1, pageNum: 1,
@ -427,12 +438,23 @@ export default {
handleAdd() { handleAdd() {
this.reset(); this.reset();
this.open = true; this.open = true;
this.readonly = false;
this.form.publishTime = new Date(); this.form.publishTime = new Date();
this.title = "添加产品文章"; this.title = "添加产品文章";
const { v4: uuidv4 } = require('uuid'); const { v4: uuidv4 } = require('uuid');
const uniqueID = uuidv4().replace(/-/g, ''); const uniqueID = uuidv4().replace(/-/g, '');
this.$set(this.form, 'id', uniqueID); this.$set(this.form, 'id', uniqueID);
}, },
handleRead(row) {
this.reset();
const id = row.id || this.ids;
getArticle(id).then(response => {
this.form = response.data;
this.open = true;
this.readonly = true;
this.title = "查看产品文章";
});
},
/** 修改按钮操作 */ /** 修改按钮操作 */
handleUpdate(row) { handleUpdate(row) {
this.reset(); this.reset();
@ -440,6 +462,7 @@ export default {
getArticle(id).then(response => { getArticle(id).then(response => {
this.form = response.data; this.form = response.data;
this.open = true; this.open = true;
this.readonly = false;
this.title = "修改产品文章"; this.title = "修改产品文章";
}); });
}, },

@ -15,14 +15,14 @@
@keyup.enter.native="handleQuery" @keyup.enter.native="handleQuery"
/> />
</el-form-item> </el-form-item>
<!-- <el-form-item label="浏览时间" prop="browseTime">--> <!-- <el-form-item label="浏览时间" prop="browseTime">-->
<!-- <el-date-picker clearable--> <!-- <el-date-picker clearable-->
<!-- v-model="queryParams.browseTime"--> <!-- v-model="queryParams.browseTime"-->
<!-- type="date"--> <!-- type="date"-->
<!-- value-format="yyyy-MM-dd"--> <!-- value-format="yyyy-MM-dd"-->
<!-- placeholder="请选择浏览时间">--> <!-- placeholder="请选择浏览时间">-->
<!-- </el-date-picker>--> <!-- </el-date-picker>-->
<!-- </el-form-item>--> <!-- </el-form-item>-->
<el-form-item label="浏览时间"> <el-form-item label="浏览时间">
<el-date-picker <el-date-picker
v-model="dateRange" v-model="dateRange"
@ -41,41 +41,41 @@
</el-form> </el-form>
<el-row :gutter="10" class="mb8"> <el-row :gutter="10" class="mb8">
<!-- <el-col :span="1.5">--> <!-- <el-col :span="1.5">-->
<!-- <el-button--> <!-- <el-button-->
<!-- type="primary"--> <!-- type="primary"-->
<!-- plain--> <!-- plain-->
<!-- icon="el-icon-plus"--> <!-- icon="el-icon-plus"-->
<!-- size="mini"--> <!-- size="mini"-->
<!-- @click="handleAdd"--> <!-- @click="handleAdd"-->
<!-- v-hasPermi="['biz:clue:add']"--> <!-- v-hasPermi="['biz:clue:add']"-->
<!-- >新增--> <!-- >新增-->
<!-- </el-button>--> <!-- </el-button>-->
<!-- </el-col>--> <!-- </el-col>-->
<!-- <el-col :span="1.5">--> <!-- <el-col :span="1.5">-->
<!-- <el-button--> <!-- <el-button-->
<!-- type="success"--> <!-- type="success"-->
<!-- plain--> <!-- plain-->
<!-- icon="el-icon-edit"--> <!-- icon="el-icon-edit"-->
<!-- size="mini"--> <!-- size="mini"-->
<!-- :disabled="single"--> <!-- :disabled="single"-->
<!-- @click="handleUpdate"--> <!-- @click="handleUpdate"-->
<!-- v-hasPermi="['biz:clue:edit']"--> <!-- v-hasPermi="['biz:clue:edit']"-->
<!-- >修改--> <!-- >修改-->
<!-- </el-button>--> <!-- </el-button>-->
<!-- </el-col>--> <!-- </el-col>-->
<!-- <el-col :span="1.5">--> <!-- <el-col :span="1.5">-->
<!-- <el-button--> <!-- <el-button-->
<!-- type="danger"--> <!-- type="danger"-->
<!-- plain--> <!-- plain-->
<!-- icon="el-icon-delete"--> <!-- icon="el-icon-delete"-->
<!-- size="mini"--> <!-- size="mini"-->
<!-- :disabled="multiple"--> <!-- :disabled="multiple"-->
<!-- @click="handleDelete"--> <!-- @click="handleDelete"-->
<!-- v-hasPermi="['biz:clue:remove']"--> <!-- v-hasPermi="['biz:clue:remove']"-->
<!-- >删除--> <!-- >删除-->
<!-- </el-button>--> <!-- </el-button>-->
<!-- </el-col>--> <!-- </el-col>-->
<el-col :span="1.5"> <el-col :span="1.5">
<el-button <el-button
type="warning" type="warning"
@ -104,7 +104,7 @@
<dict-tag :options="dict.type.clue_type" :value="scope.row.clueType"/> <dict-tag :options="dict.type.clue_type" :value="scope.row.clueType"/>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="手机号" prop="phone" width="120" sortable='custom' /> <el-table-column label="手机号" prop="phone" width="120" sortable='custom'/>
<el-table-column label="浏览时间" prop="browseTime" min-width="100" sortable='custom'> <el-table-column label="浏览时间" prop="browseTime" min-width="100" sortable='custom'>
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ parseTime(scope.row.browseTime, '{y}-{m}-{d}') }}</span> <span>{{ parseTime(scope.row.browseTime, '{y}-{m}-{d}') }}</span>
@ -112,26 +112,17 @@
</el-table-column> </el-table-column>
<!-- <el-table-column label="业务链接" prop="businessLinks" sortable='custom'/> --> <!-- <el-table-column label="业务链接" prop="businessLinks" sortable='custom'/> -->
<!-- <el-table-column label="头像链接" prop="avatarLink" sortable='custom' /> --> <!-- <el-table-column label="头像链接" prop="avatarLink" sortable='custom' /> -->
<!-- <el-table-column label="操作" align="center" class-name="small-padding fixed-width">--> <el-table-column label="操作" align="center" class-name="small-padding fixed-width" fixed="right">
<!-- <template slot-scope="scope">--> <template slot-scope="scope">
<!-- <el-button--> <el-button
<!-- size="mini"--> size="mini"
<!-- type="text"--> type="text"
<!-- icon="el-icon-edit"--> icon="el-icon-view"
<!-- @click="handleUpdate(scope.row)"--> @click="handleRead(scope.row)"
<!-- v-hasPermi="['biz:clue:edit']"--> >查看
<!-- >修改--> </el-button>
<!-- </el-button>--> </template>
<!-- <el-button--> </el-table-column>
<!-- size="mini"-->
<!-- type="text"-->
<!-- icon="el-icon-delete"-->
<!-- @click="handleDelete(scope.row)"-->
<!-- v-hasPermi="['biz:clue:remove']"-->
<!-- >删除-->
<!-- </el-button>-->
<!-- </template>-->
<!-- </el-table-column>-->
</el-table> </el-table>
<pagination <pagination
@ -144,9 +135,10 @@
<!-- 添加或修改业务线索对话框 --> <!-- 添加或修改业务线索对话框 -->
<el-dialog :title="title" :visible.sync="open" width="70%" append-to-body :close-on-click-modal="false"> <el-dialog :title="title" :visible.sync="open" width="70%" append-to-body :close-on-click-modal="false">
<el-form ref="form" :model="form" :rules="rules" label-width="100px"> <el-form ref="form" :model="form" :rules="rules" label-width="100px">
<el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="数据类型0客户1经纪" prop="dataType"> <el-form-item label="数据类型" prop="dataType">
<el-select v-model="form.dataType" placeholder="请选择数据类型0客户1经纪"> <el-select v-model="form.dataType" placeholder="请选择数据类型" :disabled="readonly" style="width: 100%">
<el-option <el-option
v-for="dict in dict.type.product_classify" v-for="dict in dict.type.product_classify"
:key="dict.value" :key="dict.value"
@ -158,7 +150,7 @@
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="线索类型" prop="clueType"> <el-form-item label="线索类型" prop="clueType">
<el-select v-model="form.clueType" placeholder="请选择线索类型"> <el-select v-model="form.clueType" placeholder="请选择线索类型" :disabled="readonly" style="width: 100%">
<el-option <el-option
v-for="dict in dict.type.clue_type" v-for="dict in dict.type.clue_type"
:key="dict.value" :key="dict.value"
@ -168,19 +160,18 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> </el-row>
<el-form-item label="用户id" prop="userId"> <el-row>
<el-input v-model="form.userId" placeholder="请输入用户id" />
</el-form-item>
</el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="用户昵称" prop="nickName"> <el-form-item label="用户昵称" prop="nickName">
<el-input v-model="form.nickName" placeholder="请输入用户昵称" /> <el-input v-model="form.nickName" placeholder="请输入用户昵称" :disabled="readonly"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="浏览时间" prop="browseTime"> <el-form-item label="浏览时间" prop="browseTime">
<el-date-picker clearable <el-date-picker clearable
style="width: 100%"
:disabled="readonly"
v-model="form.browseTime" v-model="form.browseTime"
type="date" type="date"
value-format="yyyy-MM-dd" value-format="yyyy-MM-dd"
@ -188,24 +179,31 @@
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> </el-row>
<el-form-item label="头像链接" prop="avatarLink"> <el-row>
<el-input v-model="form.avatarLink" placeholder="请输入头像链接" />
</el-form-item>
</el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="手机号" prop="phone"> <el-form-item label="手机号" prop="phone">
<el-input v-model="form.phone" placeholder="请输入手机号" /> <el-input v-model="form.phone" placeholder="请输入手机号" :disabled="readonly"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row>
<el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="业务链接" prop="businessLinks"> <el-form-item label="头像" prop="avatarLink">
<el-input v-model="form.businessLinks" placeholder="请输入业务链接"/> <img :src="form.avatarLink" alt="头像预览" style="max-width: 100%; max-height: 300px;">
<!-- <el-input v-model="form.avatarLink" placeholder="请输入头像链接" :disabled="readonly"/>-->
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row>
<!-- <el-col :span="12">-->
<!-- <el-form-item label="业务链接" prop="businessLinks">-->
<!-- <el-input v-model="form.businessLinks" placeholder="请输入业务链接" :disabled="readonly"/>-->
<!-- </el-form-item>-->
<!-- </el-col>-->
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button> <el-button type="primary" @click="submitForm" v-if="!readonly"> </el-button>
<el-button @click="cancel"> </el-button> <el-button @click="cancel"> </el-button>
</div> </div>
</el-dialog> </el-dialog>
@ -214,10 +212,11 @@
<script> <script>
import {pageListClue, getClue, delClue, addClue, updateClue} from "@/api/biz/clue"; import {pageListClue, getClue, delClue, addClue, updateClue} from "@/api/biz/clue";
import {getUser} from "@/api/system/user";
export default { export default {
name: "Clue", name: "Clue",
dicts: ["data_type","product_classify","clue_type"], dicts: ["data_type", "product_classify", "clue_type"],
data() { data() {
return { return {
dateRange: [], dateRange: [],
@ -241,6 +240,7 @@ export default {
title: "", title: "",
// //
open: false, open: false,
readonly: false,
// //
queryParams: { queryParams: {
pageNum: 1, pageNum: 1,
@ -336,8 +336,19 @@ export default {
handleAdd() { handleAdd() {
this.reset(); this.reset();
this.open = true; this.open = true;
this.readonly = false;
this.title = "添加业务线索"; this.title = "添加业务线索";
}, },
handleRead(row) {
this.reset();
const id = row.id || this.ids;
getClue(id).then(response => {
this.form = response.data;
this.open = true;
this.readonly = true;
this.title = "查看业务线索";
});
},
/** 修改按钮操作 */ /** 修改按钮操作 */
handleUpdate(row) { handleUpdate(row) {
this.reset(); this.reset();
@ -345,6 +356,7 @@ export default {
getClue(id).then(response => { getClue(id).then(response => {
this.form = response.data; this.form = response.data;
this.open = true; this.open = true;
this.readonly = false;
this.title = "修改业务线索"; this.title = "修改业务线索";
}); });
}, },
@ -384,7 +396,7 @@ export default {
handleExport() { handleExport() {
this.download('biz/clue/export', { this.download('biz/clue/export', {
...this.queryParams ...this.queryParams
}, `clue_${new Date().getTime()}.xlsx`) }, `业务线索数据_${new Date().getTime()}.xlsx`)
} }
} }
}; };

@ -145,6 +145,13 @@
fixed="right" fixed="right"
> >
<template slot-scope="scope" v-if="scope.row.userId !== 1&&scope.row.isTenantAdmin !=='Y'"> <template slot-scope="scope" v-if="scope.row.userId !== 1&&scope.row.isTenantAdmin !=='Y'">
<el-button
size="mini"
type="text"
icon="el-icon-view"
@click="handleRead(scope.row)"
>查看
</el-button>
<el-button <el-button
size="mini" size="mini"
type="text" type="text"
@ -189,12 +196,13 @@
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="用户昵称" prop="nickName"> <el-form-item label="用户昵称" prop="nickName">
<el-input v-model="form.nickName" placeholder="请输入用户昵称" maxlength="30"/> <el-input v-model="form.nickName" placeholder="请输入用户昵称" maxlength="30" :disabled="readonly"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="归属部门" prop="deptId"> <el-form-item label="归属部门" prop="deptId">
<treeselect v-model="form.deptId" :options="brokerList" props="lable" :show-count="true" <treeselect v-model="form.deptId" :options="brokerList" props="lable" :show-count="true"
:disabled="readonly"
:defaultExpandLevel="Infinity" :defaultExpandLevel="Infinity"
placeholder="请选择归属部门" :normalizer="tenantIdnormalizer"/> placeholder="请选择归属部门" :normalizer="tenantIdnormalizer"/>
</el-form-item> </el-form-item>
@ -203,31 +211,31 @@
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="手机号码" prop="phonenumber"> <el-form-item label="手机号码" prop="phonenumber">
<el-input v-model="form.phonenumber" placeholder="请输入手机号码" maxlength="11"/> <el-input v-model="form.phonenumber" placeholder="请输入手机号码" maxlength="11" :disabled="readonly"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="邮箱" prop="email"> <el-form-item label="邮箱" prop="email">
<el-input v-model="form.email" placeholder="请输入邮箱" maxlength="50"/> <el-input v-model="form.email" placeholder="请输入邮箱" maxlength="50" :disabled="readonly"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item v-if="title == '添加用户'" label="用户名称" prop="userName"> <el-form-item v-if="title == '添加用户'" label="用户名称" prop="userName">
<el-input v-model="form.userName" placeholder="请输入用户名称" maxlength="30"/> <el-input v-model="form.userName" placeholder="请输入用户名称" maxlength="30" :disabled="readonly"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item v-if="title == '添加用户'" label="用户密码" prop="password"> <el-form-item v-if="title == '添加用户'" label="用户密码" prop="password">
<el-input v-model="form.password" placeholder="请输入用户密码" type="password" maxlength="20" show-password/> <el-input v-model="form.password" placeholder="请输入用户密码" type="password" maxlength="20" show-password :disabled="readonly"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="用户性别"> <el-form-item label="用户性别">
<el-select v-model="form.sex" placeholder="请选择性别" style="width: 100%"> <el-select v-model="form.sex" placeholder="请选择性别" style="width: 100%" :disabled="readonly">
<el-option <el-option
v-for="dict in dict.type.sys_user_sex" v-for="dict in dict.type.sys_user_sex"
:key="dict.value" :key="dict.value"
@ -239,7 +247,7 @@
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="状态"> <el-form-item label="状态">
<el-radio-group v-model="form.status"> <el-radio-group v-model="form.status" :disabled="readonly">
<el-radio <el-radio
v-for="dict in dict.type.sys_normal_disable" v-for="dict in dict.type.sys_normal_disable"
:key="dict.value" :key="dict.value"
@ -253,7 +261,7 @@
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="岗位"> <el-form-item label="岗位">
<el-select v-model="form.postIds" multiple placeholder="请选择岗位" style="width: 100%"> <el-select v-model="form.postIds" multiple placeholder="请选择岗位" style="width: 100%" :disabled="readonly">
<el-option <el-option
v-for="item in postOptions" v-for="item in postOptions"
:key="item.postId" :key="item.postId"
@ -266,7 +274,7 @@
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="角色"> <el-form-item label="角色">
<el-select v-model="form.roleIds" multiple placeholder="请选择角色" style="width: 100%"> <el-select v-model="form.roleIds" multiple placeholder="请选择角色" style="width: 100%" :disabled="readonly">
<el-option <el-option
v-for="item in roleOptions" v-for="item in roleOptions"
:key="item.roleId" :key="item.roleId"
@ -281,12 +289,12 @@
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="地址" prop="address"> <el-form-item label="地址" prop="address">
<el-input v-model="form.address" placeholder="请输入地址"/> <el-input v-model="form.address" placeholder="请输入地址" :disabled="readonly"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="公司" prop="company"> <el-form-item label="公司" prop="company">
<el-input v-model="form.company" placeholder="请输入公司"/> <el-input v-model="form.company" placeholder="请输入公司" :disabled="readonly"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
@ -300,13 +308,13 @@
<el-row> <el-row>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="备注"> <el-form-item label="备注">
<el-input v-model="form.remark" type="textarea" placeholder="请输入内容"></el-input> <el-input v-model="form.remark" type="textarea" placeholder="请输入内容" :disabled="readonly"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button> <el-button type="primary" @click="submitForm" v-if="!readonly"> </el-button>
<el-button @click="cancel"> </el-button> <el-button @click="cancel"> </el-button>
</div> </div>
</el-dialog> </el-dialog>
@ -329,6 +337,7 @@ import {
import {getToken} from "@/utils/auth"; import {getToken} from "@/utils/auth";
import Treeselect from "@riophae/vue-treeselect"; import Treeselect from "@riophae/vue-treeselect";
import "@riophae/vue-treeselect/dist/vue-treeselect.css"; import "@riophae/vue-treeselect/dist/vue-treeselect.css";
import {getMoment} from "@/api/moment/moment";
export default { export default {
name: "BrokerUser", name: "BrokerUser",
@ -343,6 +352,7 @@ export default {
}, },
data() { data() {
return { return {
readonly:false,
brokerList: [], brokerList: [],
deptId: "", deptId: "",
rowDataNew: {}, rowDataNew: {},
@ -610,12 +620,29 @@ export default {
this.postOptions = response.posts; this.postOptions = response.posts;
this.roleOptions = response.roles; this.roleOptions = response.roles;
this.open = true; this.open = true;
this.readonly = false;
this.title = "添加用户"; this.title = "添加用户";
this.form.deptId = this.deptId; this.form.deptId = this.deptId;
this.form.userType = "jj" this.form.userType = "jj"
this.form.password = this.initPassword; this.form.password = this.initPassword;
}); });
}, },
handleRead(row) {
this.getbrokerList();
this.reset();
const userId = row.userId || this.ids;
getUser(userId).then(response => {
this.form = response.data;
this.postOptions = response.posts;
this.roleOptions = response.roles;
this.$set(this.form, "postIds", response.postIds);
this.$set(this.form, "roleIds", response.roleIds);
this.open = true;
this.readonly = true;
this.title = "查看用户";
this.form.password = "";
});
},
/** 修改按钮操作 */ /** 修改按钮操作 */
handleUpdate(row) { handleUpdate(row) {
this.getbrokerList(); this.getbrokerList();
@ -628,6 +655,7 @@ export default {
this.$set(this.form, "postIds", response.postIds); this.$set(this.form, "postIds", response.postIds);
this.$set(this.form, "roleIds", response.roleIds); this.$set(this.form, "roleIds", response.roleIds);
this.open = true; this.open = true;
this.readonly = false;
this.title = "修改用户"; this.title = "修改用户";
this.form.password = ""; this.form.password = "";
}); });

@ -115,6 +115,13 @@
<!-- <el-table-column label="备注" align="center" prop="remark" sortable='custom' show-overflow-tooltip/> --> <!-- <el-table-column label="备注" align="center" prop="remark" sortable='custom' show-overflow-tooltip/> -->
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="120px" fixed="right"> <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="120px" fixed="right">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-view"
@click="handleRead(scope.row)"
>查看
</el-button>
<el-button <el-button
size="mini" size="mini"
type="text" type="text"
@ -149,7 +156,7 @@
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="上级代理商" prop="parentId"> <el-form-item label="上级代理商" prop="parentId">
<treeselect v-model="form.parentId" :options="brokerList" props="lable" :show-count="true" :defaultExpandLevel="Infinity" <treeselect v-model="form.parentId" :options="brokerList" props="lable" :show-count="true" :defaultExpandLevel="Infinity" :disabled="readonly"
placeholder="选择上级代理商" :normalizer="tenantIdnormalizer" /> placeholder="选择上级代理商" :normalizer="tenantIdnormalizer" />
<!-- <el-select v-model="form.parentId" placeholder="选择上级代理商" style="width: 100%">--> <!-- <el-select v-model="form.parentId" placeholder="选择上级代理商" style="width: 100%">-->
<!-- <el-option--> <!-- <el-option-->
@ -164,43 +171,43 @@
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="代理商名称" prop="brokerName"> <el-form-item label="代理商名称" prop="brokerName">
<el-input v-model="form.brokerName" placeholder="请输入代理商名称"/> <el-input v-model="form.brokerName" placeholder="请输入代理商名称" :disabled="readonly"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="地址" prop="brokerAddress"> <el-form-item label="地址" prop="brokerAddress">
<el-input v-model="form.brokerAddress" placeholder="请输入地址"/> <el-input v-model="form.brokerAddress" placeholder="请输入地址" :disabled="readonly"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="显示顺序" prop="orderNum"> <el-form-item label="显示顺序" prop="orderNum">
<el-input-number style="width: 100%" v-model="form.orderNum" placeholder="请输入显示顺序" :min="0"/> <el-input-number style="width: 100%" v-model="form.orderNum" placeholder="请输入显示顺序" :min="0" :disabled="readonly"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="负责人" prop="chargePerson"> <el-form-item label="负责人" prop="chargePerson">
<el-input v-model="form.chargePerson" placeholder="请输入负责人"/> <el-input v-model="form.chargePerson" placeholder="请输入负责人" :disabled="readonly"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="联系电话" prop="contactPhone"> <el-form-item label="联系电话" prop="contactPhone">
<el-input v-model="form.contactPhone" placeholder="请输入联系电话"/> <el-input v-model="form.contactPhone" placeholder="请输入联系电话" :disabled="readonly"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="邮箱" prop="email"> <el-form-item label="邮箱" prop="email">
<el-input v-model="form.email" placeholder="请输入邮箱"/> <el-input v-model="form.email" placeholder="请输入邮箱" :disabled="readonly"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="是否机构" prop="isInstitution"> <el-form-item label="是否机构" prop="isInstitution">
<el-select v-model="form.isInstitution" placeholder="请选择状态" style="width: 100%"> <el-select v-model="form.isInstitution" placeholder="请选择状态" style="width: 100%" :disabled="readonly">
<el-option v-for="dict in dict.type.sys_yes_no" :key="dict.value" :label="dict.label" <el-option v-for="dict in dict.type.sys_yes_no" :key="dict.value" :label="dict.label"
:value="dict.value"/> :value="dict.value"/>
</el-select> </el-select>
@ -210,7 +217,7 @@
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="状态" prop="staus"> <el-form-item label="状态" prop="staus">
<el-radio-group v-model="form.staus"> <el-radio-group v-model="form.staus" :disabled="readonly">
<el-radio <el-radio
v-for="dict in dict.type.df_broker_staus" v-for="dict in dict.type.df_broker_staus"
:key="dict.value" :key="dict.value"
@ -235,13 +242,13 @@
<el-row> <el-row>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="备注" prop="remark"> <el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" type="textarea" placeholder="请输入内容"/> <el-input v-model="form.remark" type="textarea" placeholder="请输入内容" :disabled="readonly"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button> <el-button type="primary" @click="submitForm" v-if="!readonly"> </el-button>
<el-button @click="cancel"> </el-button> <el-button @click="cancel"> </el-button>
</div> </div>
</el-dialog> </el-dialog>
@ -259,7 +266,7 @@ import {
listBrokerByTree listBrokerByTree
} from "@/api/broker/broker"; } from "@/api/broker/broker";
import AutoTableHeight from '@/views/broker/AutoTableHeight'; import AutoTableHeight from '@/views/broker/AutoTableHeight';
import {changeUserStatus} from "@/api/system/user"; import {changeUserStatus, getUser} from "@/api/system/user";
import Treeselect from "@riophae/vue-treeselect"; import Treeselect from "@riophae/vue-treeselect";
import "@riophae/vue-treeselect/dist/vue-treeselect.css"; import "@riophae/vue-treeselect/dist/vue-treeselect.css";
@ -270,6 +277,7 @@ export default {
components: {Treeselect}, components: {Treeselect},
data() { data() {
return { return {
readonly:false,
brokerOptions: [], brokerOptions: [],
// //
loading: true, loading: true,
@ -457,9 +465,20 @@ export default {
this.reset(); this.reset();
this.form.isInstitution = "Y"; this.form.isInstitution = "Y";
this.form.staus = "0"; this.form.staus = "0";
this.readonly = false;
this.open = true; this.open = true;
this.title = "添加代理商经纪"; this.title = "添加代理商经纪";
}, },
handleRead(row) {
this.reset();
const id = row.id || this.ids;
getBroker(id).then(response => {
this.form = response.data;
this.open = true;
this.readonly = true;
this.title = "查看代理商经纪";
});
},
/** 修改按钮操作 */ /** 修改按钮操作 */
handleUpdate(row) { handleUpdate(row) {
this.reset(); this.reset();
@ -467,6 +486,7 @@ export default {
getBroker(id).then(response => { getBroker(id).then(response => {
this.form = response.data; this.form = response.data;
this.open = true; this.open = true;
this.readonly = false;
this.title = "修改代理商经纪"; this.title = "修改代理商经纪";
}); });
}, },

@ -146,6 +146,13 @@
<!-- <el-table-column label="备注" align="center" prop="remark" sortable='custom' show-overflow-tooltip/> --> <!-- <el-table-column label="备注" align="center" prop="remark" sortable='custom' show-overflow-tooltip/> -->
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="120" fixed="right"> <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="120" fixed="right">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-view"
@click="handleRead(scope.row)"
>查看
</el-button>
<el-button <el-button
size="mini" size="mini"
type="text" type="text"
@ -180,6 +187,7 @@
<el-col :span="8"> <el-col :span="8">
<el-form-item label="所属代理商" prop="brokerId"> <el-form-item label="所属代理商" prop="brokerId">
<treeselect v-model="form.brokerId" :options="brokerList" props="lable" :show-count="true" <treeselect v-model="form.brokerId" :options="brokerList" props="lable" :show-count="true"
:disabled="readonly"
:defaultExpandLevel="Infinity" disabled :defaultExpandLevel="Infinity" disabled
placeholder="请选择归属部门" :normalizer="tenantIdnormalizer"/> placeholder="请选择归属部门" :normalizer="tenantIdnormalizer"/>
</el-form-item> </el-form-item>
@ -187,6 +195,7 @@
<el-col :span="8"> <el-col :span="8">
<el-form-item label="产品名称" prop="id"> <el-form-item label="产品名称" prop="id">
<el-select style="width: 100%;" filterable v-model="form.id" placeholder="请选择产品名称" @change="handleChange" <el-select style="width: 100%;" filterable v-model="form.id" placeholder="请选择产品名称" @change="handleChange"
:disabled="readonly"
clearable> clearable>
<el-option v-for="info in infoListAll" :key="info.id" :label="info.productName" <el-option v-for="info in infoListAll" :key="info.id" :label="info.productName"
:value="info.id"/> :value="info.id"/>
@ -196,7 +205,7 @@
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="产品简称" prop="simpleName"> <el-form-item label="产品简称" prop="simpleName">
<el-input v-model="form.simpleName" placeholder="请输入产品简称" disabled/> <el-input v-model="form.simpleName" placeholder="请输入产品简称" disabled />
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
@ -315,7 +324,7 @@
</el-row> </el-row>
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button> <el-button type="primary" @click="submitForm" v-if="!readonly"> </el-button>
<el-button @click="cancel"> </el-button> <el-button @click="cancel"> </el-button>
</div> </div>
</el-dialog> </el-dialog>
@ -384,6 +393,7 @@ import {listArea} from "@/api/system/area";
import {listBrokerByTree} from "@/api/broker/broker"; import {listBrokerByTree} from "@/api/broker/broker";
import Treeselect from "@riophae/vue-treeselect"; import Treeselect from "@riophae/vue-treeselect";
import "@riophae/vue-treeselect/dist/vue-treeselect.css"; import "@riophae/vue-treeselect/dist/vue-treeselect.css";
import {getUser} from "@/api/system/user";
export default { export default {
name: "BrokerUser", name: "BrokerUser",
@ -713,11 +723,29 @@ export default {
this.reset(); this.reset();
this.getAllInfo(); this.getAllInfo();
this.getbrokerList(); this.getbrokerList();
this.readonly = false;
this.form.brokerId = this.brokerId; this.form.brokerId = this.brokerId;
this.open = true; this.open = true;
// this.isReadOnly = false; // this.isReadOnly = false;
this.title = "添加产品信息"; this.title = "添加产品信息";
}, },
handleRead(row) {
this.reset();
this.getbrokerList();
const id = row.id || this.ids;
var param = {
id: id,
brokerId: this.brokerId
};
getInfoByBroker(param).then(response => {
this.form = response.data;
this.getAllInfo(id);
this.open = true;
this.readonly = true;
this.title = "查看产品信息";
// this.isReadOnly = true;
});
},
/** 修改按钮操作 */ /** 修改按钮操作 */
handleUpdate(row) { handleUpdate(row) {
this.reset(); this.reset();
@ -731,6 +759,7 @@ export default {
this.form = response.data; this.form = response.data;
this.getAllInfo(id); this.getAllInfo(id);
this.open = true; this.open = true;
this.readonly = false;
this.title = "修改产品信息"; this.title = "修改产品信息";
// this.isReadOnly = true; // this.isReadOnly = true;
}); });

@ -150,6 +150,13 @@
fixed="right" fixed="right"
> >
<template slot-scope="scope" v-if="scope.row.userId !== 1&&scope.row.isTenantAdmin !=='Y'"> <template slot-scope="scope" v-if="scope.row.userId !== 1&&scope.row.isTenantAdmin !=='Y'">
<el-button
size="mini"
type="text"
icon="el-icon-view"
@click="handleRead(scope.row)"
>查看
</el-button>
<el-button <el-button
size="mini" size="mini"
type="text" type="text"
@ -194,12 +201,12 @@
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="用户昵称" prop="nickName"> <el-form-item label="用户昵称" prop="nickName">
<el-input v-model="form.nickName" placeholder="请输入用户昵称" maxlength="30"/> <el-input v-model="form.nickName" placeholder="请输入用户昵称" maxlength="30" :disabled="readonly"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="归属部门" prop="deptId"> <el-form-item label="归属部门" prop="deptId">
<treeselect v-model="form.deptId" :options="brokerList" props="lable" :show-count="true" :defaultExpandLevel="Infinity" <treeselect v-model="form.deptId" :options="brokerList" props="lable" :show-count="true" :defaultExpandLevel="Infinity" :disabled="readonly"
placeholder="请选择归属部门" :normalizer="tenantIdnormalizer" /> placeholder="请选择归属部门" :normalizer="tenantIdnormalizer" />
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -207,31 +214,31 @@
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="手机号码" prop="phonenumber"> <el-form-item label="手机号码" prop="phonenumber">
<el-input v-model="form.phonenumber" placeholder="请输入手机号码" maxlength="11"/> <el-input v-model="form.phonenumber" placeholder="请输入手机号码" maxlength="11" :disabled="readonly"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="邮箱" prop="email"> <el-form-item label="邮箱" prop="email">
<el-input v-model="form.email" placeholder="请输入邮箱" maxlength="50"/> <el-input v-model="form.email" placeholder="请输入邮箱" maxlength="50" :disabled="readonly"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item v-if="form.userId == undefined" label="用户名称" prop="userName"> <el-form-item v-if="form.userId == undefined" label="用户名称" prop="userName">
<el-input v-model="form.userName" placeholder="请输入用户名称" maxlength="30"/> <el-input v-model="form.userName" placeholder="请输入用户名称" maxlength="30" :disabled="readonly"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item v-if="form.userId == undefined" label="用户密码" prop="password"> <el-form-item v-if="form.userId == undefined" label="用户密码" prop="password">
<el-input v-model="form.password" placeholder="请输入用户密码" type="password" maxlength="20" show-password/> <el-input v-model="form.password" placeholder="请输入用户密码" type="password" maxlength="20" show-password :disabled="readonly"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="用户性别"> <el-form-item label="用户性别">
<el-select v-model="form.sex" placeholder="请选择性别" style="width: 100%"> <el-select v-model="form.sex" placeholder="请选择性别" style="width: 100%" :disabled="readonly">
<el-option <el-option
v-for="dict in dict.type.sys_user_sex" v-for="dict in dict.type.sys_user_sex"
:key="dict.value" :key="dict.value"
@ -243,7 +250,7 @@
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="状态"> <el-form-item label="状态">
<el-radio-group v-model="form.status"> <el-radio-group v-model="form.status" :disabled="readonly">
<el-radio <el-radio
v-for="dict in dict.type.sys_normal_disable" v-for="dict in dict.type.sys_normal_disable"
:key="dict.value" :key="dict.value"
@ -257,7 +264,7 @@
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="岗位"> <el-form-item label="岗位">
<el-select v-model="form.postIds" multiple placeholder="请选择岗位" style="width: 100%"> <el-select v-model="form.postIds" multiple placeholder="请选择岗位" style="width: 100%" :disabled="readonly">
<el-option <el-option
v-for="item in postOptions" v-for="item in postOptions"
:key="item.postId" :key="item.postId"
@ -270,7 +277,7 @@
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="角色"> <el-form-item label="角色">
<el-select v-model="form.roleIds" multiple placeholder="请选择角色" style="width: 100%"> <el-select v-model="form.roleIds" multiple placeholder="请选择角色" style="width: 100%" :disabled="readonly">
<el-option <el-option
v-for="item in roleOptions" v-for="item in roleOptions"
:key="item.roleId" :key="item.roleId"
@ -285,12 +292,12 @@
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="身份证号" prop="identityCard"> <el-form-item label="身份证号" prop="identityCard">
<el-input v-model="form.identityCard" placeholder="请输入身份证号" /> <el-input v-model="form.identityCard" placeholder="请输入身份证号" :disabled="readonly"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="城市" prop="city"> <el-form-item label="城市" prop="city">
<treeselect v-model="form.city" :options="cityOptions" props="lable" :show-count="true" <treeselect v-model="form.city" :options="cityOptions" props="lable" :show-count="true" :disabled="readonly"
placeholder="选择城市" :normalizer="citynormalizer" /> placeholder="选择城市" :normalizer="citynormalizer" />
<!-- <el-input v-model="form.city" placeholder="请输入城市" />--> <!-- <el-input v-model="form.city" placeholder="请输入城市" />-->
</el-form-item> </el-form-item>
@ -301,6 +308,7 @@
<el-form-item label="注册时间" prop="registrationTime" > <el-form-item label="注册时间" prop="registrationTime" >
<el-date-picker clearable <el-date-picker clearable
style="width: 100%" style="width: 100%"
:disabled="readonly"
v-model="form.registrationTime" v-model="form.registrationTime"
type="date" type="date"
value-format="yyyy-MM-dd" value-format="yyyy-MM-dd"
@ -319,13 +327,13 @@
<el-row> <el-row>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="备注"> <el-form-item label="备注">
<el-input v-model="form.remark" type="textarea" placeholder="请输入内容"></el-input> <el-input v-model="form.remark" type="textarea" placeholder="请输入内容" :disabled="readonly"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button> <el-button type="primary" @click="submitForm" v-if="!readonly"> </el-button>
<el-button @click="cancel"> </el-button> <el-button @click="cancel"> </el-button>
</div> </div>
</el-dialog> </el-dialog>
@ -364,6 +372,7 @@ export default {
}, },
data() { data() {
return { return {
readonly:false,
cityOptions: [], cityOptions: [],
brokerList: [], brokerList: [],
deptId: "", deptId: "",
@ -673,12 +682,29 @@ export default {
this.roleOptions = response.roles; this.roleOptions = response.roles;
this.open = true; this.open = true;
this.title = "添加用户"; this.title = "添加用户";
this.readonly = false;
this.form.deptId = this.deptId; this.form.deptId = this.deptId;
this.form.userType = "kh" this.form.userType = "kh"
this.form.password = this.initPassword; this.form.password = this.initPassword;
this.form.registrationTime = new Date(); this.form.registrationTime = new Date();
}); });
}, },
handleRead(row) {
this.getbrokerList();
this.reset();
const userId = row.userId || this.ids;
getUser(userId).then(response => {
this.form = response.data;
this.postOptions = response.posts;
this.roleOptions = response.roles;
this.$set(this.form, "postIds", response.postIds);
this.$set(this.form, "roleIds", response.roleIds);
this.open = true;
this.readonly = true;
this.title = "修改用户";
this.form.password = "";
});
},
/** 修改按钮操作 */ /** 修改按钮操作 */
handleUpdate(row) { handleUpdate(row) {
this.getbrokerList(); this.getbrokerList();
@ -691,6 +717,7 @@ export default {
this.$set(this.form, "postIds", response.postIds); this.$set(this.form, "postIds", response.postIds);
this.$set(this.form, "roleIds", response.roleIds); this.$set(this.form, "roleIds", response.roleIds);
this.open = true; this.open = true;
this.readonly = false;
this.title = "修改用户"; this.title = "修改用户";
this.form.password = ""; this.form.password = "";
}); });

@ -118,6 +118,13 @@
</el-table-column> </el-table-column>
<el-table-column label="操作" align="center" width="120" class-name="small-padding fixed-width"> <el-table-column label="操作" align="center" width="120" class-name="small-padding fixed-width">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-view"
@click="handleRead(scope.row)"
>查看
</el-button>
<el-button <el-button
size="mini" size="mini"
type="text" type="text"
@ -152,7 +159,7 @@
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="朋友圈分类" prop="momentType"> <el-form-item label="朋友圈分类" prop="momentType">
<el-select style="width: 100%" v-model="form.momentType" placeholder="选择朋友圈分类"> <el-select style="width: 100%" v-model="form.momentType" placeholder="选择朋友圈分类" :disabled="readonly">
<el-option <el-option
v-for="dict in dict.type.product_classify" v-for="dict in dict.type.product_classify"
:key="dict.value" :key="dict.value"
@ -164,7 +171,7 @@
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="朋友圈类型" prop="momentKind"> <el-form-item label="朋友圈类型" prop="momentKind">
<el-select style="width: 100%" v-model="form.momentKind" placeholder="选择朋友圈类型"> <el-select style="width: 100%" v-model="form.momentKind" placeholder="选择朋友圈类型" :disabled="readonly">
<el-option <el-option
v-for="dict in dict.type.moment_kind" v-for="dict in dict.type.moment_kind"
:key="dict.value" :key="dict.value"
@ -178,12 +185,12 @@
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="朋友圈标题" prop="momentTitle"> <el-form-item label="朋友圈标题" prop="momentTitle">
<el-input v-model="form.momentTitle" placeholder="请输入朋友圈标题"/> <el-input v-model="form.momentTitle" placeholder="请输入朋友圈标题" :disabled="readonly"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="状态" prop="status"> <el-form-item label="状态" prop="status">
<el-select style="width: 100%" v-model="form.status" placeholder="请选择状态"> <el-select style="width: 100%" v-model="form.status" placeholder="请选择状态" :disabled="readonly">
<el-option <el-option
v-for="dict in dict.type.product_status" v-for="dict in dict.type.product_status"
:key="dict.value" :key="dict.value"
@ -202,18 +209,18 @@
</el-col> </el-col>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="备注" prop="remark"> <el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" type="textarea" placeholder="请输入内容"/> <el-input v-model="form.remark" type="textarea" placeholder="请输入内容" :disabled="readonly"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-form-item label="上传" prop="field"> <el-form-item label="上传" prop="field">
<el-form :model="form"> <el-form :model="form">
<PictureUpload :biz-id="form.id" ></PictureUpload> <PictureUpload :biz-id="form.id" :readonly="readonly"></PictureUpload>
</el-form> </el-form>
</el-form-item> </el-form-item>
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button> <el-button type="primary" @click="submitForm" v-if="!readonly"> </el-button>
<el-button @click="cancel"> </el-button> <el-button @click="cancel"> </el-button>
</div> </div>
</el-dialog> </el-dialog>
@ -223,6 +230,7 @@
<script> <script>
import {pageListMoment, getMoment, delMoment, addMoment, updateMoment,changeStatusByMoment} from "@/api/moment/moment"; import {pageListMoment, getMoment, delMoment, addMoment, updateMoment,changeStatusByMoment} from "@/api/moment/moment";
import {addPoster, updatePoster} from "@/api/poster/poster"; import {addPoster, updatePoster} from "@/api/poster/poster";
import {getArticle} from "@/api/article/article";
export default { export default {
name: "Moment", name: "Moment",
@ -249,6 +257,7 @@ export default {
title: "", title: "",
// //
open: false, open: false,
readonly:false,
// //
queryParams: { queryParams: {
pageNum: 1, pageNum: 1,
@ -368,11 +377,22 @@ export default {
handleAdd() { handleAdd() {
this.reset(); this.reset();
this.open = true; this.open = true;
this.readonly = false;
this.title = "添加产品朋友圈"; this.title = "添加产品朋友圈";
const { v4: uuidv4 } = require('uuid'); const { v4: uuidv4 } = require('uuid');
const uniqueID = uuidv4().replace(/-/g, ''); const uniqueID = uuidv4().replace(/-/g, '');
this.$set(this.form, 'id', uniqueID); this.$set(this.form, 'id', uniqueID);
}, },
handleRead(row) {
this.reset();
const id = row.id || this.ids;
getMoment(id).then(response => {
this.form = response.data;
this.open = true;
this.readonly = true;
this.title = "查看产品朋友圈";
});
},
/** 修改按钮操作 */ /** 修改按钮操作 */
handleUpdate(row) { handleUpdate(row) {
this.reset(); this.reset();
@ -380,6 +400,7 @@ export default {
getMoment(id).then(response => { getMoment(id).then(response => {
this.form = response.data; this.form = response.data;
this.open = true; this.open = true;
this.readonly = false;
this.title = "修改产品朋友圈"; this.title = "修改产品朋友圈";
}); });
}, },

@ -9,20 +9,29 @@
@keyup.enter.native="handleQuery" @keyup.enter.native="handleQuery"
/> />
</el-form-item> </el-form-item>
<el-form-item label="客户" prop="userId"> <el-form-item label="客户" prop="userName">
<el-select v-model="queryParams.userId" placeholder="请选择客户" clearable> <el-input
<el-option v-model="queryParams.userName"
v-for="item in lsUser" placeholder="请输入客户"
:key="item.userId" clearable
:label="item.userName" @keyup.enter.native="handleQuery"
:value="item.userId"
/> />
</el-select>
</el-form-item> </el-form-item>
<el-form-item label="代理商名称" prop="brokerId"> <el-form-item label="经纪人" prop="brokerName">
<treeselect v-model="queryParams.brokerId" :options="brokerOptions" props="lable" :show-count="true" style="width: 200px" <el-input
:defaultExpandLevel="Infinity" v-model="queryParams.brokerName"
placeholder="选择代理商名称" :normalizer="tenantIdnormalizer" @keyup.enter.native="handleQuery"/> placeholder="请输入经纪人"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="联系方式" prop="phone">
<el-input
v-model="queryParams.phone"
placeholder="请输入联系方式"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item> </el-form-item>
<el-form-item label="产品名称" prop="productName"> <el-form-item label="产品名称" prop="productName">
<el-input <el-input
@ -43,33 +52,6 @@
end-placeholder="结束日期" end-placeholder="结束日期"
></el-date-picker> ></el-date-picker>
</el-form-item> </el-form-item>
<!-- <el-form-item label="放款利率" prop="loanRate">-->
<!-- <el-input-->
<!-- v-model="queryParams.loanRate"-->
<!-- placeholder="请输入放款利率"-->
<!-- clearable-->
<!-- @keyup.enter.native="handleQuery"-->
<!-- />-->
<!-- </el-form-item>-->
<!-- <el-form-item label="贷款期限" prop="loadMonth">-->
<!-- <el-input-->
<!-- v-model="queryParams.loadMonth"-->
<!-- placeholder="请输入贷款期限"-->
<!-- clearable-->
<!-- @keyup.enter.native="handleQuery"-->
<!-- />-->
<!-- </el-form-item>-->
<!-- <el-form-item label="是否首贷" prop="isFirst">-->
<!-- <el-select v-model="queryParams.isFirst" placeholder="请选择是否首贷" clearable>-->
<!-- <el-option-->
<!-- v-for="dict in lsIsFirst"-->
<!-- :key="dict.id"-->
<!-- :label="dict.name"-->
<!-- :value="dict.id"-->
<!-- @keyup.enter.native="handleQuery"-->
<!-- />-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<el-form-item label="状态" prop="staus"> <el-form-item label="状态" prop="staus">
<el-select v-model="queryParams.staus" placeholder="请选择状态" clearable> <el-select v-model="queryParams.staus" placeholder="请选择状态" clearable>
<el-option <el-option
@ -87,17 +69,17 @@
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-row :gutter="10" class="mb8"> <el-row :gutter="10" class="mb8">
<el-col :span="1.5"> <!-- <el-col :span="1.5">-->
<el-button <!-- <el-button-->
type="primary" <!-- type="primary"-->
plain <!-- plain-->
icon="el-icon-plus" <!-- icon="el-icon-plus"-->
size="mini" <!-- size="mini"-->
@click="handleAdd" <!-- @click="handleAdd"-->
v-hasPermi="['order:order:add']" <!-- v-hasPermi="['order:order:add']"-->
>新增 <!-- >新增-->
</el-button> <!-- </el-button>-->
</el-col> <!-- </el-col>-->
<!-- <el-col :span="1.5">--> <!-- <el-col :span="1.5">-->
<!-- <el-button--> <!-- <el-button-->
<!-- type="success"--> <!-- type="success"-->
@ -143,7 +125,7 @@
<el-table-column label="订单号" prop="orderNo" sortable='custom' width="100px"/> <el-table-column label="订单号" prop="orderNo" sortable='custom' width="100px"/>
<el-table-column label="客户" width="120" prop="userName"/> <el-table-column label="客户" width="120" prop="userName"/>
<el-table-column label="联系方式" width="110" prop="phone"/> <el-table-column label="联系方式" width="110" prop="phone"/>
<el-table-column label="代理商" prop="brokerName" width="120"/> <el-table-column label="经济人" prop="brokerName" width="120"/>
<el-table-column label="产品名称" prop="productName" sortable='custom' width="100px"/> <el-table-column label="产品名称" prop="productName" sortable='custom' width="100px"/>
<el-table-column label="申请额" prop="applyAmount" sortable='custom' width="90px"/> <el-table-column label="申请额" prop="applyAmount" sortable='custom' width="90px"/>
<el-table-column label="授信额" prop="limitAmount" sortable='custom' width="90px"/> <el-table-column label="授信额" prop="limitAmount" sortable='custom' width="90px"/>
@ -166,6 +148,17 @@
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="备注" prop="remark" sortable='custom'/> <el-table-column label="备注" prop="remark" sortable='custom'/>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" fixed="right">
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-view"
@click="handleRead(scope.row)"
>查看
</el-button>
</template>
</el-table-column>
</el-table> </el-table>
<pagination <pagination
@ -181,39 +174,39 @@
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="订单号" prop="orderNo"> <el-form-item label="订单号" prop="orderNo">
<BillNumberInput v-model="form.orderNo" title="订单编号"></BillNumberInput> <BillNumberInput v-model="form.orderNo" title="订单编号" :disabled="readonly"></BillNumberInput>
<!-- <el-input v-model="form.orderNo" placeholder="请输入订单号"/>--> <!-- <el-input v-model="form.orderNo" placeholder="请输入订单号"/>-->
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="客户" prop="userId"> <el-form-item label="客户" prop="userName">
<el-select style="width: 100%;" v-model="form.userId" placeholder="请选择客户" clearable> <el-input v-model="form.userName" placeholder="请输入客户" style="width: 100%" :disabled="readonly"/>
<el-option v-for="info in lsUser" :key="info.userId" :label="info.userName"
:value="info.userId"/>
</el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="代理商" prop="brokerId"> <el-form-item label="联系方式" prop="phone">
<treeselect v-model="form.brokerId" :options="brokerOptions" props="lable" :show-count="true" <el-input v-model="form.phone" placeholder="请输入联系方式" style="width: 100%" :disabled="readonly"/>
:defaultExpandLevel="Infinity" </el-form-item>
placeholder="选择上级代理商" :normalizer="tenantIdnormalizer"/> </el-col>
<el-col :span="12">
<el-form-item label="经济人" prop="brokerName">
<el-input v-model="form.brokerName" placeholder="请输入经济人" style="width: 100%" :disabled="readonly"/>
<!-- <el-input v-model="form.brokerId" placeholder="请输入代理商"/>--> <!-- <el-input v-model="form.brokerId" placeholder="请输入代理商"/>-->
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row>
<el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="产品" prop="productId"> <el-form-item label="产品" prop="productId">
<el-select style="width: 100%;" v-model="form.productId" placeholder="请选择产品" clearable> <el-select style="width: 100%;" v-model="form.productId" placeholder="请选择产品" clearable :disabled="readonly">
<el-option v-for="info in lsProduct" :key="info.id" :label="info.productName" <el-option v-for="info in lsProduct" :key="info.id" :label="info.productName"
:value="info.id"/> :value="info.id"/>
</el-select> </el-select>
<!-- <el-input v-model="form.productId" placeholder="请输入产品id"/>--> <!-- <el-input v-model="form.productId" placeholder="请输入产品id"/>-->
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row>
<el-row>
<!-- <el-col :span="12">--> <!-- <el-col :span="12">-->
<!-- <el-form-item label="产品名称" prop="productName">--> <!-- <el-form-item label="产品名称" prop="productName">-->
<!-- <el-input v-model="form.productName" placeholder="请输入产品名称" />--> <!-- <el-input v-model="form.productName" placeholder="请输入产品名称" />-->
@ -222,6 +215,7 @@
<el-col :span="12"> <el-col :span="12">
<el-form-item label="提交时间" prop="submitTime"> <el-form-item label="提交时间" prop="submitTime">
<el-date-picker clearable <el-date-picker clearable
:disabled="readonly"
style="width: 100%" style="width: 100%"
v-model="form.submitTime" v-model="form.submitTime"
type="date" type="date"
@ -230,56 +224,56 @@
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row>
<el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="申请额(万元)" prop="applyAmount"> <el-form-item label="申请额(万元)" prop="applyAmount">
<el-input-number v-model="form.applyAmount" placeholder="请输入申请额" :min="0" style="width: 100%"/> <el-input-number v-model="form.applyAmount" placeholder="请输入申请额" :min="0" style="width: 100%" :disabled="readonly"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row>
<el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="授信额(万元)" prop="limitAmount"> <el-form-item label="授信额(万元)" prop="limitAmount">
<el-input-number v-model="form.limitAmount" placeholder="请输入授信额" :min="0" style="width: 100%"/> <el-input-number v-model="form.limitAmount" placeholder="请输入授信额" :min="0" style="width: 100%" :disabled="readonly"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row>
<el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="放款额(万元)" prop="loanAmount"> <el-form-item label="放款额(万元)" prop="loanAmount">
<el-input-number v-model="form.loanAmount" placeholder="请输入放款额" :min="0" style="width: 100%"/> <el-input-number v-model="form.loanAmount" placeholder="请输入放款额" :min="0" style="width: 100%" :disabled="readonly"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row>
<el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="放款利率" prop="loanRate"> <el-form-item label="放款利率" prop="loanRate">
<el-input-number v-model="form.loanRate" placeholder="请输入放款利率" :min="0" style="width: 100%"/> <el-input-number v-model="form.loanRate" placeholder="请输入放款利率" :min="0" style="width: 100%" :disabled="readonly"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row>
<el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="贷款期限(月)" prop="loadMonth"> <el-form-item label="贷款期限(月)" prop="loadMonth">
<el-input-number v-model="form.loadMonth" placeholder="请输入贷款期限" :min="0" style="width: 100%"/> <el-input-number v-model="form.loadMonth" placeholder="请输入贷款期限" :min="0" style="width: 100%" :disabled="readonly"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row>
<el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="是否首贷" prop="isFirst"> <el-form-item label="是否首贷" prop="isFirst">
<el-select style="width: 100%;" v-model="form.isFirst" placeholder="请选择是否首贷" clearable> <el-select style="width: 100%;" v-model="form.isFirst" placeholder="请选择是否首贷" clearable :disabled="readonly">
<el-option v-for="info in lsIsFirst" :key="info.id" :label="info.name" <el-option v-for="info in lsIsFirst" :key="info.id" :label="info.name"
:value="info.id"/> :value="info.id"/>
</el-select> </el-select>
<!-- <el-input v-model="form.isFirst" placeholder="请输入是否首贷"/>--> <!-- <el-input v-model="form.isFirst" placeholder="请输入是否首贷"/>-->
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row>
<el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="可结算金额(万元)" prop="settleAmount"> <el-form-item label="可结算金额(万元)" prop="settleAmount">
<el-input-number v-model="form.settleAmount" placeholder="请输入可结算金额" :min="0" style="width: 100%"/> <el-input-number v-model="form.settleAmount" placeholder="请输入可结算金额" :min="0" style="width: 100%" :disabled="readonly"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row>
<el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="状态" prop="staus"> <el-form-item label="状态" prop="staus">
<el-select style="width: 100%;" v-model="form.staus" placeholder="请选择状态" clearable> <el-select style="width: 100%;" v-model="form.staus" placeholder="请选择状态" clearable :disabled="readonly">
<el-option v-for="info in lsStatus" :key="info.id" :label="info.name" <el-option v-for="info in lsStatus" :key="info.id" :label="info.name"
:value="info.id"/> :value="info.id"/>
</el-select> </el-select>
@ -290,13 +284,13 @@
<el-row> <el-row>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="备注" prop="remark"> <el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" type="textarea" placeholder="请输入内容"/> <el-input v-model="form.remark" type="textarea" placeholder="请输入内容" :disabled="readonly"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button> <el-button type="primary" @click="submitForm" v-if="!readonly"> </el-button>
<el-button @click="cancel"> </el-button> <el-button @click="cancel"> </el-button>
</div> </div>
</el-dialog> </el-dialog>
@ -315,6 +309,7 @@ import AutoTableHeight from '@/views/broker/AutoTableHeight';
import {changeUserStatus} from "@/api/system/user"; import {changeUserStatus} from "@/api/system/user";
import Treeselect from "@riophae/vue-treeselect"; import Treeselect from "@riophae/vue-treeselect";
import "@riophae/vue-treeselect/dist/vue-treeselect.css"; import "@riophae/vue-treeselect/dist/vue-treeselect.css";
import {getClue} from "@/api/biz/clue";
export default { export default {
name: "Order", name: "Order",
@ -377,6 +372,7 @@ export default {
staus: null, staus: null,
submitTimeBegin: null, submitTimeBegin: null,
submitTimeEnd: null, submitTimeEnd: null,
brokerName: null,
}, },
// //
form: {}, form: {},
@ -509,10 +505,21 @@ export default {
handleAdd() { handleAdd() {
this.reset(); this.reset();
this.open = true; this.open = true;
this.readonly = false;
this.form.submitTime = new Date(); this.form.submitTime = new Date();
this.form.staus = '0'; this.form.staus = '0';
this.title = "添加客户订单"; this.title = "添加客户订单";
}, },
handleRead(row) {
this.reset();
const id = row.id || this.ids;
getOrder(id).then(response => {
this.form = response.data;
this.open = true;
this.readonly = true;
this.title = "查看客户订单";
});
},
/** 修改按钮操作 */ /** 修改按钮操作 */
handleUpdate(row) { handleUpdate(row) {
this.reset(); this.reset();
@ -520,6 +527,7 @@ export default {
getOrder(id).then(response => { getOrder(id).then(response => {
this.form = response.data; this.form = response.data;
this.open = true; this.open = true;
this.readonly = false;
this.title = "修改客户订单"; this.title = "修改客户订单";
}); });
}, },

@ -144,6 +144,13 @@
<el-table-column label="备注" prop="remark" sortable='custom' show-overflow-tooltip/> <el-table-column label="备注" prop="remark" sortable='custom' show-overflow-tooltip/>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width"> <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-view"
@click="handleRead(scope.row)"
>查看
</el-button>
<el-button <el-button
size="mini" size="mini"
type="text" type="text"
@ -177,7 +184,7 @@
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="产品名称" prop="productId"> <el-form-item label="产品名称" prop="productId">
<el-select style="width: 100%;" filterable v-model="form.productId" placeholder="请选择产品名称" <el-select style="width: 100%;" filterable v-model="form.productId" placeholder="请选择产品名称" :disabled="readonly"
clearable> clearable>
<el-option v-for="info in lsInfo" :key="info.id" :label="info.productName" <el-option v-for="info in lsInfo" :key="info.id" :label="info.productName"
:value="info.id"/> :value="info.id"/>
@ -186,7 +193,7 @@
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="海报分类" prop="posterType"> <el-form-item label="海报分类" prop="posterType">
<el-select style="width: 100%;" v-model="form.posterType" placeholder="选择海报分类"> <el-select style="width: 100%;" v-model="form.posterType" placeholder="选择海报分类" :disabled="readonly">
<el-option v-for="dict in dict.type.product_classify" :key="dict.value" :label="dict.label" <el-option v-for="dict in dict.type.product_classify" :key="dict.value" :label="dict.label"
:value="dict.value"/> :value="dict.value"/>
</el-select> </el-select>
@ -196,12 +203,12 @@
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="海报名称" prop="posterName"> <el-form-item label="海报名称" prop="posterName">
<el-input v-model="form.posterName" placeholder="请输入海报名称"/> <el-input v-model="form.posterName" placeholder="请输入海报名称" :disabled="readonly"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="海报标签" prop="posterTag"> <el-form-item label="海报标签" prop="posterTag">
<el-select style="width: 100%;" v-model="form.posterTag" placeholder="选择海报标签" filterable clearable <el-select style="width: 100%;" v-model="form.posterTag" placeholder="选择海报标签" filterable clearable :disabled="readonly"
multiple> multiple>
<el-option v-for="dict in dict.type.poster_tag" :key="dict.value" :label="dict.label" <el-option v-for="dict in dict.type.poster_tag" :key="dict.value" :label="dict.label"
:value="dict.value"/> :value="dict.value"/>
@ -217,7 +224,7 @@
<!-- </el-col>--> <!-- </el-col>-->
<el-col :span="12"> <el-col :span="12">
<el-form-item label="状态" prop="status"> <el-form-item label="状态" prop="status">
<el-select style="width: 100%;" v-model="form.status" placeholder="选择状态" clearable> <el-select style="width: 100%;" v-model="form.status" placeholder="选择状态" clearable :disabled="readonly">
<el-option v-for="dict in dict.type.product_status" :key="dict.value" :label="dict.label" <el-option v-for="dict in dict.type.product_status" :key="dict.value" :label="dict.label"
:value="dict.value"/> :value="dict.value"/>
</el-select> </el-select>
@ -227,20 +234,20 @@
<el-row> <el-row>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="备注" prop="remark"> <el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" type="textarea" placeholder="请输入内容"/> <el-input v-model="form.remark" type="textarea" placeholder="请输入内容" :disabled="readonly"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-form-item label="上传" prop="field"> <el-form-item label="上传" prop="field">
<el-form :model="form"> <el-form :model="form">
<PictureUpload :biz-id="form.id" ></PictureUpload> <PictureUpload :biz-id="form.id" :readonly="readonly"></PictureUpload>
</el-form> </el-form>
<!-- <BannerUpload v-show="form.id" :bannerId="form.id" :businessUnits="'海报信息'" :maxLength="1">--> <!-- <BannerUpload v-show="form.id" :bannerId="form.id" :businessUnits="'海报信息'" :maxLength="1">-->
<!-- </BannerUpload>--> <!-- </BannerUpload>-->
</el-form-item> </el-form-item>
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button> <el-button type="primary" @click="submitForm" v-if="!readonly"> </el-button>
<el-button @click="cancel"> </el-button> <el-button @click="cancel"> </el-button>
</div> </div>
</el-dialog> </el-dialog>
@ -249,7 +256,7 @@
<script> <script>
import {pageListPoster, getPoster, delPoster, addPoster, updatePoster, changeStatusByPoster} from "@/api/poster/poster"; import {pageListPoster, getPoster, delPoster, addPoster, updatePoster, changeStatusByPoster} from "@/api/poster/poster";
import {changeStatus, listInfo} from "@/api/product/info"; import {changeStatus, getInfo, listInfo} from "@/api/product/info";
import {uploadFiles, getAttachList} from "@/api/common/file"; import {uploadFiles, getAttachList} from "@/api/common/file";
import {getToken} from "@/utils/auth"; import {getToken} from "@/utils/auth";
import {changeStatusByArticle} from "@/api/article/article"; import {changeStatusByArticle} from "@/api/article/article";
@ -289,6 +296,7 @@ export default {
title: "", title: "",
// //
open: false, open: false,
readonly: false,
// //
queryParams: { queryParams: {
pageNum: 1, pageNum: 1,
@ -423,11 +431,28 @@ export default {
handleAdd() { handleAdd() {
this.reset(); this.reset();
this.open = true; this.open = true;
this.readonly = false;
this.title = "添加产品海报"; this.title = "添加产品海报";
const { v4: uuidv4 } = require('uuid'); const { v4: uuidv4 } = require('uuid');
const uniqueID = uuidv4().replace(/-/g, ''); const uniqueID = uuidv4().replace(/-/g, '');
this.$set(this.form, 'id', uniqueID); this.$set(this.form, 'id', uniqueID);
}, },
handleRead(row) {
this.reset();
const id = row.id || this.ids;
getPoster(id).then(response => {
this.form = response.data;
if (this.form.posterTag) {
this.form.posterTag = this.form.posterTag.split(',');
}
getAttachList(this.form.id).then(response => {
this.fileList = response.data;
});
this.open = true;
this.readonly = true;
this.title = "查看产品海报";
});
},
/** 修改按钮操作 */ /** 修改按钮操作 */
handleUpdate(row) { handleUpdate(row) {
this.reset(); this.reset();
@ -441,6 +466,7 @@ export default {
this.fileList = response.data; this.fileList = response.data;
}); });
this.open = true; this.open = true;
this.readonly = false;
this.title = "修改产品海报"; this.title = "修改产品海报";
}); });
}, },

@ -225,6 +225,13 @@
</el-table-column> </el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="120" fixed="right"> <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="120" fixed="right">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-view"
@click="handleRead(scope.row)"
>查看
</el-button>
<el-button <el-button
size="mini" size="mini"
type="text" type="text"
@ -257,18 +264,18 @@
<el-form ref="form" :model="form" :rules="rules" label-width="115px"> <el-form ref="form" :model="form" :rules="rules" label-width="115px">
<el-row> <el-row>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="产品名称" prop="productName"> <el-form-item label="产品名称" prop="productName" >
<el-input v-model="form.productName" placeholder="请输入产品名称"/> <el-input v-model="form.productName" placeholder="请输入产品名称" :disabled="readonly"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="产品简称" prop="simpleName"> <el-form-item label="产品简称" prop="simpleName" >
<el-input v-model="form.simpleName" placeholder="请输入产品简称"/> <el-input v-model="form.simpleName" placeholder="请输入产品简称" :disabled="readonly"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="产品类型" prop="productType"> <el-form-item label="产品类型" prop="productType">
<el-select style="width: 100%;" v-model="form.productType" placeholder="选择产品类型" clearable> <el-select style="width: 100%;" v-model="form.productType" placeholder="选择产品类型" clearable :disabled="readonly">
<el-option v-for="dict in dict.type.product_type" :key="dict.value" :label="dict.label" <el-option v-for="dict in dict.type.product_type" :key="dict.value" :label="dict.label"
:value="dict.value"/> :value="dict.value"/>
</el-select> </el-select>
@ -278,50 +285,51 @@
<el-row> <el-row>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="产品细类" prop="productSubtype"> <el-form-item label="产品细类" prop="productSubtype">
<el-input v-model="form.productSubtype" placeholder="请输入产品细类"/> <el-input v-model="form.productSubtype" placeholder="请输入产品细类" :disabled="readonly"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="年利率(单利%)" prop="interestRateBegin"> <el-form-item label="年利率(单利%)" prop="interestRateBegin">
<el-input-number v-model="form.interestRateBegin" style="width: 160px;" :min="0" :precision="2"/> <el-input-number v-model="form.interestRateBegin" style="width: 160px;" :min="0" :precision="2" :disabled="readonly"/>
- -
<el-input-number v-model="form.interestRateEnd" style="width: 160px;" :min="0" :precision="2"/> <el-input-number v-model="form.interestRateEnd" style="width: 160px;" :min="0" :precision="2" :disabled="readonly"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="最高额度(元)" prop="maxAmount"> <el-form-item label="最高额度(元)" prop="maxAmount">
<el-input-number v-model="form.maxAmount" placeholder="请输入最高额度(元)" style="width: 100%;" :min="0"/> <el-input-number v-model="form.maxAmount" placeholder="请输入最高额度(元)" style="width: 100%;" :min="0" :disabled="readonly"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="还款周期" prop="repaymentCycle"> <el-form-item label="还款周期" prop="repaymentCycle">
<el-input v-model="form.repaymentCycle" placeholder="请输入还款周期"/> <el-input v-model="form.repaymentCycle" placeholder="请输入还款周期" :disabled="readonly"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="还款方式" prop="repaymentMethod"> <el-form-item label="还款方式" prop="repaymentMethod">
<el-input v-model="form.repaymentMethod" placeholder="请输入还款方式"/> <el-input v-model="form.repaymentMethod" placeholder="请输入还款方式" :disabled="readonly"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="展业城市" prop="businessCityByName"> <el-form-item label="展业城市" prop="businessCityByName">
<el-input v-model="form.businessCityByName" placeholder="选择展业城市" style="width: 100%;" readonly> <el-input v-model="form.businessCityByName" placeholder="选择展业城市" style="width: 100%;" readonly >
<el-button slot="append" icon="el-icon-arrow-down" @click="openModal"></el-button> <el-button slot="append" icon="el-icon-arrow-down" @click="openModal"></el-button>
</el-input> </el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="综合费率" prop="combinedRates"> <el-form-item label="综合费率" prop="combinedRates">
<el-input v-model="form.combinedRates" placeholder="请输入综合费率"/> <el-input v-model="form.combinedRates" placeholder="请输入综合费率" :disabled="readonly"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="上架时间起" prop="listBegin"> <el-form-item label="上架时间起" prop="listBegin">
<el-date-picker clearable <el-date-picker clearable
:disabled="readonly"
v-model="form.listBegin" v-model="form.listBegin"
type="date" type="date"
value-format="yyyy-MM-dd" value-format="yyyy-MM-dd"
@ -335,6 +343,7 @@
<el-col :span="8"> <el-col :span="8">
<el-form-item label="上架时间止" prop="listEnd"> <el-form-item label="上架时间止" prop="listEnd">
<el-date-picker clearable <el-date-picker clearable
:disabled="readonly"
v-model="form.listEnd" v-model="form.listEnd"
type="date" type="date"
value-format="yyyy-MM-dd" value-format="yyyy-MM-dd"
@ -345,7 +354,7 @@
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="状态" prop="status"> <el-form-item label="状态" prop="status">
<el-select style="width: 100%;" v-model="form.status" placeholder="选择状态" clearable> <el-select style="width: 100%;" v-model="form.status" placeholder="选择状态" clearable :disabled="readonly">
<el-option v-for="dict in dict.type.product_status" :key="dict.value" :label="dict.label" <el-option v-for="dict in dict.type.product_status" :key="dict.value" :label="dict.label"
:value="dict.value"/> :value="dict.value"/>
</el-select> </el-select>
@ -354,16 +363,16 @@
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="产品简介" prop="productIntro"> <el-form-item label="产品简介" prop="productIntro" >
<editor v-model="form.productIntro" :min-height="92"/> <editor v-model="form.productIntro" :min-height="92" />
<!-- <el-input v-model="form.productIntro" type="textarea" placeholder="请输入内容"/>--> <!-- <el-input v-model="form.productIntro" type="textarea" placeholder="请输入内容"/>-->
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="产品详情" prop="productDetail"> <el-form-item label="产品详情" prop="productDetail" >
<editor v-model="form.productDetail" :min-height="152"/> <editor v-model="form.productDetail" :min-height="152" />
<!-- <el-input v-model="form.productDetail" type="textarea" placeholder="请输入内容"/>--> <!-- <el-input v-model="form.productDetail" type="textarea" placeholder="请输入内容"/>-->
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -371,13 +380,13 @@
<el-row> <el-row>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="备注" prop="remark"> <el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" type="textarea" placeholder="请输入内容"/> <el-input v-model="form.remark" type="textarea" placeholder="请输入内容" :disabled="readonly"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button> <el-button type="primary" @click="submitForm" v-if="!readonly"> </el-button>
<el-button @click="cancel"> </el-button> <el-button @click="cancel"> </el-button>
</div> </div>
</el-dialog> </el-dialog>
@ -400,7 +409,7 @@
<template v-slot="{ node, data }"> <template v-slot="{ node, data }">
<div class="city-item"> <div class="city-item">
<span>{{ node.label }}</span> <span>{{ node.label }}</span>
<el-button @click="selectCity(data)" type="text" size="mini" class="add-button">添加</el-button> <el-button @click="selectCity(data)" type="text" size="mini" class="add-button" v-if="!readonly"></el-button>
</div> </div>
</template> </template>
@ -413,7 +422,7 @@
<li v-for="(city, index) in selectedCities" :key="index"> <li v-for="(city, index) in selectedCities" :key="index">
<div class="selected-city-item"> <div class="selected-city-item">
{{ city.name }} {{ city.name }}
<el-button @click="removeCity(index)" type="text" size="mini">移除</el-button> <el-button @click="removeCity(index)" type="text" size="mini" v-if="!readonly"></el-button>
</div> </div>
</li> </li>
</ul> </ul>
@ -464,6 +473,7 @@ export default {
infoList: [], infoList: [],
// //
title: "", title: "",
readonly: false,
// //
open: false, open: false,
// //
@ -739,9 +749,19 @@ export default {
handleAdd() { handleAdd() {
this.reset(); this.reset();
this.open = true; this.open = true;
this.readonly = false;
this.title = "添加产品信息"; this.title = "添加产品信息";
} },
, handleRead(row) {
this.reset();
const id = row.id || this.ids;
getInfo(id).then(response => {
this.form = response.data;
this.open = true;
this.readonly = true;
this.title = "查看产品信息";
});
},
/** 修改按钮操作 */ /** 修改按钮操作 */
handleUpdate(row) { handleUpdate(row) {
this.reset(); this.reset();
@ -749,10 +769,10 @@ export default {
getInfo(id).then(response => { getInfo(id).then(response => {
this.form = response.data; this.form = response.data;
this.open = true; this.open = true;
this.readonly = false
this.title = "修改产品信息"; this.title = "修改产品信息";
}); });
} },
,
/** 提交按钮 */ /** 提交按钮 */
submitForm() { submitForm() {
this.$refs["form"].validate(valid => { this.$refs["form"].validate(valid => {

Loading…
Cancel
Save