修改产品信息

master
username 1 year ago
parent 73b0040eef
commit 1f9f8fafa8

@ -3,6 +3,7 @@ package com.bs.df.controller;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
import com.bs.df.utils.HtmlUtils;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.security.access.prepost.PreAuthorize;
@ -50,6 +51,9 @@ public class DfProductArticleController extends BaseController {
LambdaQueryWrapper<DfProductArticle> queryWrapper = new LambdaQueryWrapper();
condition(queryWrapper,dfProductArticle);
List<DfProductArticle> list = dfProductArticleService.list(queryWrapper);
for (DfProductArticle article : list) {
article.setArticleContent(HtmlUtils.stripHtmlTags(article.getArticleContent()));
}
return getDataTable(list);
}
@ -75,6 +79,10 @@ public class DfProductArticleController extends BaseController {
LambdaQueryWrapper<DfProductArticle> queryWrapper = new LambdaQueryWrapper();
condition(queryWrapper,dfProductArticle);
List<DfProductArticle> list = dfProductArticleService.list(queryWrapper);
for (DfProductArticle article : list) {
//去除富文本中的HTML标签
article.setArticleContent(HtmlUtils.stripHtmlTags(article.getArticleContent()));
}
ExcelUtil<DfProductArticle> util = new ExcelUtil<DfProductArticle>(DfProductArticle. class);
util.exportExcel(response, list, "产品文章数据");
}
@ -141,7 +149,7 @@ public class DfProductArticleController extends BaseController {
//文章标题
if(Validator.isNotEmpty(dfProductArticle.getArticleTitle())){
queryWrapper.eq(DfProductArticle::getArticleTitle,dfProductArticle.getArticleTitle());
queryWrapper.like(DfProductArticle::getArticleTitle,dfProductArticle.getArticleTitle());
}
//发布时间
@ -149,6 +157,14 @@ public class DfProductArticleController extends BaseController {
queryWrapper.eq(DfProductArticle::getPublishTime,dfProductArticle.getPublishTime());
}
if(Validator.isNotEmpty(dfProductArticle.getPublishTimeBegin())){
queryWrapper.ge(DfProductArticle::getPublishTime,dfProductArticle.getPublishTimeBegin());
}
if(Validator.isNotEmpty(dfProductArticle.getPublishTimeEnd())){
queryWrapper.le(DfProductArticle::getPublishTime,dfProductArticle.getPublishTimeEnd());
}
//文章正文
if(Validator.isNotEmpty(dfProductArticle.getArticleContent())){
queryWrapper.eq(DfProductArticle::getArticleContent,dfProductArticle.getArticleContent());

@ -3,6 +3,7 @@ package com.bs.df.controller;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
import com.bs.df.utils.HtmlUtils;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.security.access.prepost.PreAuthorize;
@ -50,6 +51,11 @@ public class DfProductInfoController extends BaseController {
LambdaQueryWrapper<DfProductInfo> queryWrapper = new LambdaQueryWrapper();
condition(queryWrapper,dfProductInfo);
List<DfProductInfo> list = dfProductInfoService.list(queryWrapper);
for (DfProductInfo productInfo : list) {
productInfo.setInterestRate(productInfo.getInterestRateBegin() + "%-" + productInfo.getInterestRateEnd() + "%");
productInfo.setProductIntro(HtmlUtils.stripHtmlTags(productInfo.getProductIntro()));
productInfo.setProductDetail(HtmlUtils.stripHtmlTags(productInfo.getProductDetail()));
}
return getDataTable(list);
}
@ -75,6 +81,11 @@ public class DfProductInfoController extends BaseController {
LambdaQueryWrapper<DfProductInfo> queryWrapper = new LambdaQueryWrapper();
condition(queryWrapper,dfProductInfo);
List<DfProductInfo> list = dfProductInfoService.list(queryWrapper);
for (DfProductInfo productInfo : list) {
productInfo.setInterestRate(productInfo.getInterestRateBegin() + "%-" + productInfo.getInterestRateEnd() + "%");
productInfo.setProductIntro(HtmlUtils.stripHtmlTags(productInfo.getProductIntro()));
productInfo.setProductDetail(HtmlUtils.stripHtmlTags(productInfo.getProductDetail()));
}
ExcelUtil<DfProductInfo> util = new ExcelUtil<DfProductInfo>(DfProductInfo. class);
util.exportExcel(response, list, "产品信息数据");
}
@ -131,12 +142,12 @@ public class DfProductInfoController extends BaseController {
//产品名称
if(Validator.isNotEmpty(dfProductInfo.getProductName())){
queryWrapper.eq(DfProductInfo::getProductName,dfProductInfo.getProductName());
queryWrapper.like(DfProductInfo::getProductName,dfProductInfo.getProductName());
}
//产品简称
if(Validator.isNotEmpty(dfProductInfo.getSimpleName())){
queryWrapper.eq(DfProductInfo::getSimpleName,dfProductInfo.getSimpleName());
queryWrapper.like(DfProductInfo::getSimpleName,dfProductInfo.getSimpleName());
}
//产品类型
@ -154,9 +165,21 @@ public class DfProductInfoController extends BaseController {
queryWrapper.eq(DfProductInfo::getMaxAmount,dfProductInfo.getMaxAmount());
}
if(Validator.isNotEmpty(dfProductInfo.getMaxAmountBegin())){
queryWrapper.ge(DfProductInfo::getMaxAmount,dfProductInfo.getMaxAmountBegin());
}
if(Validator.isNotEmpty(dfProductInfo.getMaxAmountEnd())){
queryWrapper.le(DfProductInfo::getMaxAmount,dfProductInfo.getMaxAmountEnd());
}
//年利率(单利)
if(Validator.isNotEmpty(dfProductInfo.getInterestRate())){
queryWrapper.eq(DfProductInfo::getInterestRate,dfProductInfo.getInterestRate());
if(Validator.isNotEmpty(dfProductInfo.getInterestRateBegin())){
queryWrapper.ge(DfProductInfo::getInterestRateBegin,dfProductInfo.getInterestRateBegin());
}
if(Validator.isNotEmpty(dfProductInfo.getInterestRateEnd())){
queryWrapper.le(DfProductInfo::getInterestRateEnd,dfProductInfo.getInterestRateEnd());
}
//产品简介
@ -171,12 +194,32 @@ public class DfProductInfoController extends BaseController {
//上架时间起
if(Validator.isNotEmpty(dfProductInfo.getListBegin())){
queryWrapper.eq(DfProductInfo::getListBegin,dfProductInfo.getListBegin());
queryWrapper.gt(DfProductInfo::getListBegin,dfProductInfo.getListBegin());
}
//上架时间止
if(Validator.isNotEmpty(dfProductInfo.getListEnd())){
queryWrapper.eq(DfProductInfo::getListEnd,dfProductInfo.getListEnd());
queryWrapper.le(DfProductInfo::getListEnd,dfProductInfo.getListEnd());
}
//还款周期
if(Validator.isNotEmpty(dfProductInfo.getRepaymentCycle())){
queryWrapper.eq(DfProductInfo::getRepaymentCycle,dfProductInfo.getRepaymentCycle());
}
//还款方式
if(Validator.isNotEmpty(dfProductInfo.getRepaymentMethod())){
queryWrapper.eq(DfProductInfo::getRepaymentMethod,dfProductInfo.getRepaymentMethod());
}
//展业城市
if(Validator.isNotEmpty(dfProductInfo.getBusinessCity())){
queryWrapper.eq(DfProductInfo::getBusinessCity,dfProductInfo.getBusinessCity());
}
//综合费率
if(Validator.isNotEmpty(dfProductInfo.getCombinedRates())){
queryWrapper.eq(DfProductInfo::getCombinedRates,dfProductInfo.getCombinedRates());
}
//状态0草稿1上架

@ -1,8 +1,13 @@
package com.bs.df.controller;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import javax.servlet.http.HttpServletResponse;
import com.bs.df.domain.DfProductInfo;
import com.bs.df.service.IDfProductInfoService;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.security.access.prepost.PreAuthorize;
@ -39,6 +44,8 @@ import javax.annotation.Resource;
public class DfProductPosterController extends BaseController {
@Resource
private IDfProductPosterService dfProductPosterService;
@Resource
private IDfProductInfoService dfProductInfoService;
/**
*
@ -47,8 +54,12 @@ public class DfProductPosterController extends BaseController {
@GetMapping("/pageList")
public TableDataInfo pageList(DfProductPoster dfProductPoster) {
startPage();
LambdaQueryWrapper<DfProductPoster> queryWrapper = new LambdaQueryWrapper();
condition(queryWrapper,dfProductPoster);
MPJLambdaWrapper<DfProductPoster> queryWrapper = new MPJLambdaWrapper();
queryWrapper.selectAll(DfProductPoster.class)
.select(DfProductInfo::getProductName)
.disableSubLogicDel()
.leftJoin(DfProductInfo.class,DfProductInfo::getId,DfProductPoster::getProductId);
conditionByMPJ(queryWrapper,dfProductPoster);
List<DfProductPoster> list = dfProductPosterService.list(queryWrapper);
return getDataTable(list);
}
@ -72,8 +83,12 @@ public class DfProductPosterController extends BaseController {
@Log(title = "产品海报导出", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(HttpServletResponse response, DfProductPoster dfProductPoster) {
LambdaQueryWrapper<DfProductPoster> queryWrapper = new LambdaQueryWrapper();
condition(queryWrapper,dfProductPoster);
MPJLambdaWrapper<DfProductPoster> queryWrapper = new MPJLambdaWrapper();
queryWrapper.selectAll(DfProductPoster.class)
.select(DfProductInfo::getProductName)
.disableSubLogicDel()
.leftJoin(DfProductInfo.class,DfProductInfo::getId,DfProductPoster::getProductId);
conditionByMPJ(queryWrapper,dfProductPoster);
List<DfProductPoster> list = dfProductPosterService.list(queryWrapper);
ExcelUtil<DfProductPoster> util = new ExcelUtil<DfProductPoster>(DfProductPoster. class);
util.exportExcel(response, list, "产品海报数据");
@ -118,6 +133,91 @@ public class DfProductPosterController extends BaseController {
return toAjax(dfProductPosterService.removeBatchByIds(ids));
}
private void conditionByMPJ (MPJLambdaWrapper<DfProductPoster> queryWrapper,DfProductPoster dfProductPoster){
//海报id
if(Validator.isNotEmpty(dfProductPoster.getId())){
queryWrapper.eq(DfProductPoster::getId,dfProductPoster.getId());
}
//产品id
if(Validator.isNotEmpty(dfProductPoster.getProductId())){
queryWrapper.eq(DfProductPoster::getProductId,dfProductPoster.getProductId());
}
//产品名称
if(Validator.isNotEmpty(dfProductPoster.getProductName())){
queryWrapper.like(DfProductInfo::getProductName,dfProductPoster.getProductName());
}
//海报分类0产品海报1经纪海报
if(Validator.isNotEmpty(dfProductPoster.getPosterType())){
queryWrapper.eq(DfProductPoster::getPosterType,dfProductPoster.getPosterType());
}
//海报名称
if(Validator.isNotEmpty(dfProductPoster.getPosterName())){
queryWrapper.like(DfProductPoster::getPosterName,dfProductPoster.getPosterName());
}
//海报标签
if(Validator.isNotEmpty(dfProductPoster.getPosterTag())){
queryWrapper.like(DfProductPoster::getPosterTag,dfProductPoster.getPosterTag());
}
//海报图片id
if(Validator.isNotEmpty(dfProductPoster.getPosterFileId())){
queryWrapper.eq(DfProductPoster::getPosterFileId,dfProductPoster.getPosterFileId());
}
//状态0草稿1上架
if(Validator.isNotEmpty(dfProductPoster.getStatus())){
queryWrapper.eq(DfProductPoster::getStatus,dfProductPoster.getStatus());
}
//备注
if(Validator.isNotEmpty(dfProductPoster.getRemark())){
queryWrapper.eq(DfProductPoster::getRemark,dfProductPoster.getRemark());
}
//创建部门
if(Validator.isNotEmpty(dfProductPoster.getCreateDept())){
queryWrapper.eq(DfProductPoster::getCreateDept,dfProductPoster.getCreateDept());
}
//创建人员
if(Validator.isNotEmpty(dfProductPoster.getCreateBy())){
queryWrapper.eq(DfProductPoster::getCreateBy,dfProductPoster.getCreateBy());
}
//创建时间
if(Validator.isNotEmpty(dfProductPoster.getCreateTime())){
queryWrapper.eq(DfProductPoster::getCreateTime,dfProductPoster.getCreateTime());
}
//修改人员
if(Validator.isNotEmpty(dfProductPoster.getUpdateBy())){
queryWrapper.eq(DfProductPoster::getUpdateBy,dfProductPoster.getUpdateBy());
}
//修改时间
if(Validator.isNotEmpty(dfProductPoster.getUpdateTime())){
queryWrapper.eq(DfProductPoster::getUpdateTime,dfProductPoster.getUpdateTime());
}
//删除标志0代表存在 2代表删除
if(Validator.isNotEmpty(dfProductPoster.getDelFlag())){
queryWrapper.eq(DfProductPoster::getDelFlag,dfProductPoster.getDelFlag());
}
//租户id
if(Validator.isNotEmpty(dfProductPoster.getTenantId())){
queryWrapper.eq(DfProductPoster::getTenantId,dfProductPoster.getTenantId());
}
}
/**
*
*/

@ -33,13 +33,13 @@ public class DfProductArticle extends BaseEntity{
/** 文章分类0产品文章1经纪文章 */
@Excel(name = "文章分类0产品文章1经纪文章")
@Excel(name = "文章分类",dictType = "product_classify")
@ApiModelProperty(value = "文章分类0产品文章1经纪文章")
private String articleType;
/** 文章类型 */
@Excel(name = "文章类型")
@Excel(name = "文章类型",dictType = "article_kind")
@ApiModelProperty(value = "文章类型")
private String articleKind;
@ -64,7 +64,7 @@ public class DfProductArticle extends BaseEntity{
/** 状态0草稿1上架 */
@Excel(name = "状态0草稿1上架")
@Excel(name = "状态",dictType = "product_status")
@ApiModelProperty(value = "状态0草稿1上架")
private String status;
@ -74,6 +74,12 @@ public class DfProductArticle extends BaseEntity{
@ApiModelProperty(value = "备注")
private String remark;
@TableField(exist = false)
private String publishTimeBegin;
@TableField(exist = false)
private String publishTimeEnd;

@ -1,5 +1,6 @@
package com.bs.df.domain;
import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.bs.common.annotation.Excel;
@ -45,7 +46,7 @@ public class DfProductInfo extends BaseEntity{
/** 产品类型 */
@Excel(name = "产品类型")
@Excel(name = "产品类型",dictType = "product_type")
@ApiModelProperty(value = "产品类型")
private String productType;
@ -57,14 +58,22 @@ public class DfProductInfo extends BaseEntity{
/** 最高额度(元) */
@Excel(name = "最高额度", readConverterExp = "元=")
@Excel(name = "最高额度(元)")
@ApiModelProperty(value = "最高额度(元)")
private Long maxAmount;
/** 年利率(单利) */
@Excel(name = "年利率", readConverterExp = "单=利")
//@Excel(name = "年利率", readConverterExp = "单=利")
@ApiModelProperty(value = "年利率(单利)")
private BigDecimal interestRateBegin;
//@Excel(name = "年利率止", readConverterExp = "单=利")
@ApiModelProperty(value = "年利率(单利)")
private BigDecimal interestRateEnd;
@Excel(name = "年利率(单利)")
@TableField(exist = false)
private String interestRate;
/** 产品简介 */
@ -75,7 +84,7 @@ public class DfProductInfo extends BaseEntity{
/** 产品详情(富文本) */
@Excel(name = "产品详情", readConverterExp = "富=文本")
@Excel(name = "产品详情")
@ApiModelProperty(value = "产品详情(富文本)")
private String productDetail;
@ -93,9 +102,33 @@ public class DfProductInfo extends BaseEntity{
@ApiModelProperty(value = "上架时间止")
private Date listEnd;
/** 还款周期 */
@Excel(name = "还款周期")
@ApiModelProperty(value = "还款周期")
private String repaymentCycle;
/** 还款方式 */
@Excel(name = "还款方式")
@ApiModelProperty(value = "还款方式")
private String repaymentMethod;
/** 展业城市 */
@Excel(name = "展业城市")
@ApiModelProperty(value = "展业城市")
private String businessCity;
/** 综合费率 */
@Excel(name = "综合费率")
@ApiModelProperty(value = "综合费率")
private String combinedRates;
/** 状态0草稿1上架 */
@Excel(name = "状态0草稿1上架")
@Excel(name = "状态",dictType = "product_status")
@ApiModelProperty(value = "状态0草稿1上架")
private String status;
@ -105,6 +138,12 @@ public class DfProductInfo extends BaseEntity{
@ApiModelProperty(value = "备注")
private String remark;
@TableField(exist = false)
private Long maxAmountBegin;
@TableField(exist = false)
private Long maxAmountEnd;

@ -31,13 +31,17 @@ public class DfProductPoster extends BaseEntity{
/** 产品id */
@Excel(name = "产品id")
//@Excel(name = "产品id")
@ApiModelProperty(value = "产品id")
private Long productId;
@Excel(name = "产品名称")
@TableField(exist = false)
private String productName;
/** 海报分类0产品海报1经纪海报 */
@Excel(name = "海报分类0产品海报1经纪海报")
@Excel(name = "海报分类",dictType = "product_classify")
@ApiModelProperty(value = "海报分类0产品海报1经纪海报")
private String posterType;
@ -49,19 +53,19 @@ public class DfProductPoster extends BaseEntity{
/** 海报标签 */
@Excel(name = "海报标签")
@Excel(name = "海报标签",dictType = "poster_tag")
@ApiModelProperty(value = "海报标签")
private String posterTag;
/** 海报图片id */
@Excel(name = "海报图片id")
@Excel(name = "海报图片")
@ApiModelProperty(value = "海报图片id")
private String posterFileId;
/** 状态0草稿1上架 */
@Excel(name = "状态0草稿1上架")
@Excel(name = "状态",dictType = "product_status")
@ApiModelProperty(value = "状态0草稿1上架")
private String status;

@ -0,0 +1,20 @@
package com.bs.df.utils;
import java.util.regex.Pattern;
import java.util.regex.Matcher;
public class HtmlUtils {
// 定义 HTML 标签的正则表达式
private static final Pattern HTML_TAG_PATTERN = Pattern.compile("<[^>]+>");
// 去除 HTML 标签的方法
public static String stripHtmlTags(String html) {
if (html == null || html.trim().isEmpty()) {
return "";
}
Matcher matcher = HTML_TAG_PATTERN.matcher(html);
return matcher.replaceAll("");
}
}

@ -113,7 +113,7 @@ public class SwaggerConfig
// 用ApiInfoBuilder进行定制
return new ApiInfoBuilder()
// 设置标题
.title("标题:保税仓库管理系统_接口文档")
.title("标题:德富金服经纪推广系统_接口文档")
// 描述
.description("描述:用于管理集团旗下公司的人员信息,具体包括XXX,XXX模块...")
// 作者信息

@ -1,10 +1,10 @@
# 页面标题
VUE_APP_TITLE = 保税仓库管理系统
VUE_APP_TITLE = 德富金服经纪推广系统
# 开发环境配置
ENV = 'development'
# 保税仓库管理系统/开发环境
# 德富金服经纪推广系统/开发环境
#VUE_APP_BASE_API = 'http://124.71.134.146:8096/prod-api'
VUE_APP_BASE_API = 'http://localhost:8080'
# VUE_APP_BASE_API = 'http://tanjunwei.test.jiutianda.cn'

@ -1,8 +1,8 @@
# 页面标题
VUE_APP_TITLE = 保税仓库管理系统
VUE_APP_TITLE = 德富金服经纪推广系统
# 生产环境配置
ENV = 'production'
# 保税仓库管理系统/生产环境
# 德富金服经纪推广系统/生产环境
VUE_APP_BASE_API = '/prod-api'

@ -1,10 +1,10 @@
# 页面标题
VUE_APP_TITLE = 保税仓库管理系统
VUE_APP_TITLE = 德富金服经纪推广系统
NODE_ENV = production
# 测试环境配置
ENV = 'staging'
# 保税仓库管理系统/测试环境
# 德富金服经纪推广系统/测试环境
VUE_APP_BASE_API = '/stage-api'

@ -1,8 +1,8 @@
{
"name": "bs",
"version": "3.8.6",
"description": "保税仓库管理系统",
"author": "保税仓库",
"description": "德富金服经纪推广系统",
"author": "德富金服经纪推广",
"license": "MIT",
"scripts": {
"dev": "vue-cli-service serve",

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 153 KiB

@ -1,30 +1,49 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="文章类型" prop="articleKind">
<el-input
v-model="queryParams.articleKind"
placeholder="请输入文章类型"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="文章标题" prop="articleTitle">
<el-input
v-model="queryParams.articleTitle"
placeholder="请输入文章标题"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="发布时间" prop="publishTime">
<el-date-picker clearable
v-model="queryParams.publishTime"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择发布时间">
</el-date-picker>
</el-form-item>
<el-form-item label="文章分类" prop="articleType">
<el-select v-model="queryParams.articleType" placeholder="选择文章分类" clearable @keyup.enter.native="handleQuery">
<el-option v-for="dict in dict.type.product_classify" :key="dict.value" :label="dict.label"
:value="dict.value"/>
</el-select>
</el-form-item>
<el-form-item label="文章类型" prop="articleKind">
<el-select v-model="queryParams.articleKind" placeholder="选择文章类型" clearable @keyup.enter.native="handleQuery">
<el-option v-for="dict in dict.type.article_kind" :key="dict.value" :label="dict.label"
:value="dict.value"/>
</el-select>
</el-form-item>
<el-form-item label="文章标题" prop="articleTitle">
<el-input
v-model="queryParams.articleTitle"
placeholder="请输入文章标题"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="状态" prop="status">
<el-select v-model="queryParams.status" placeholder="选择状态" clearable @keyup.enter.native="handleQuery">
<el-option v-for="dict in dict.type.product_status" :key="dict.value" :label="dict.label"
:value="dict.value"/>
</el-select>
</el-form-item>
<el-form-item label="发布时间" prop="publishTimeBegin">
<el-date-picker clearable
style="width: 150px"
v-model="queryParams.publishTimeBegin"
type="date"
value-format="yyyy-MM-dd"
placeholder="发布时间起">
</el-date-picker>
-
<el-date-picker clearable
style="width: 150px"
v-model="queryParams.publishTimeEnd"
type="date"
value-format="yyyy-MM-dd"
placeholder="发布时间止">
</el-date-picker>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery"></el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"></el-button>
@ -40,7 +59,8 @@
size="mini"
@click="handleAdd"
v-hasPermi="['article:article:add']"
>新增</el-button>
>新增
</el-button>
</el-col>
<el-col :span="1.5">
<el-button
@ -51,7 +71,8 @@
:disabled="single"
@click="handleUpdate"
v-hasPermi="['article:article:edit']"
>修改</el-button>
>修改
</el-button>
</el-col>
<el-col :span="1.5">
<el-button
@ -62,7 +83,8 @@
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['article:article:remove']"
>删除</el-button>
>删除
</el-button>
</el-col>
<el-col :span="1.5">
<el-button
@ -72,25 +94,39 @@
size="mini"
@click="handleExport"
v-hasPermi="['article:article:export']"
>导出</el-button>
>导出
</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="articleList" @sort-change="handleSortChange" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="文章id" align="center" prop="id" sortable='custom' />
<el-table-column label="文章分类0产品文章1经纪文章" align="center" prop="articleType" sortable='custom' />
<el-table-column label="文章类型" align="center" prop="articleKind" sortable='custom' />
<el-table-column label="文章标题" align="center" prop="articleTitle" sortable='custom' />
<el-table-column label="发布时间" align="center" prop="publishTime" width="180" sortable='custom'>
<template slot-scope="scope">
<span>{{ parseTime(scope.row.publishTime, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="文章正文" align="center" prop="articleContent" sortable='custom' />
<el-table-column label="状态0草稿1上架" align="center" prop="status" sortable='custom' />
<el-table-column label="备注" align="center" prop="remark" sortable='custom' />
<el-table v-loading="loading" :data="articleList" @sort-change="handleSortChange"
@selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center"/>
<!-- <el-table-column label="文章分类" align="center" prop="articleType" sortable='custom'/>-->
<el-table-column label="文章分类" align="center" prop="articleType" sortable='custom'>
<template slot-scope="scope">
<dict-tag :options="dict.type.product_classify" :value="scope.row.articleType"/>
</template>
</el-table-column>
<el-table-column label="文章类型" align="center" prop="articleKind" sortable='custom'>
<template slot-scope="scope">
<dict-tag :options="dict.type.article_kind" :value="scope.row.articleKind"/>
</template>
</el-table-column>
<el-table-column label="文章标题" align="center" prop="articleTitle" sortable='custom'/>
<el-table-column label="文章正文" align="center" prop="articleContent" sortable='custom' show-overflow-tooltip/>
<el-table-column label="发布时间" align="center" prop="publishTime" width="180" sortable='custom'>
<template slot-scope="scope">
<span>{{ parseTime(scope.row.publishTime, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="状态" align="center" prop="status" sortable='custom'>
<template slot-scope="scope">
<dict-tag :options="dict.type.product_status" :value="scope.row.status"/>
</template>
</el-table-column>
<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">
<template slot-scope="scope">
<el-button
@ -99,20 +135,21 @@
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['article:article:edit']"
>修改</el-button>
>修改
</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['article:article:remove']"
>删除</el-button>
>删除
</el-button>
</template>
</el-table-column>
</el-table>
<pagination
hide-on-single-page
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@ -122,36 +159,78 @@
<!-- 添加或修改产品文章对话框 -->
<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-col :span="12">
<el-form-item label="文章类型" prop="articleKind">
<el-input v-model="form.articleKind" placeholder="请输入文章类型" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="文章标题" prop="articleTitle">
<el-input v-model="form.articleTitle" placeholder="请输入文章标题" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="发布时间" prop="publishTime">
<el-date-picker clearable
v-model="form.publishTime"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择发布时间">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="文章正文">
<editor v-model="form.articleContent" :min-height="192"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" type="textarea" placeholder="请输入内容" />
</el-form-item>
</el-col>
<el-row>
<el-col :span="12">
<el-form-item label="文章分类" prop="articleType">
<el-select style="width: 100%;" v-model="form.articleType" placeholder="请选择文章分类">
<el-option
v-for="dict in dict.type.product_classify"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="文章类型" prop="articleKind">
<el-select style="width: 100%;" v-model="form.articleKind" placeholder="请选择文章类型">
<el-option
v-for="dict in dict.type.article_kind"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="文章标题" prop="articleTitle">
<el-input v-model="form.articleTitle" placeholder="请输入文章标题"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="发布时间" prop="publishTime">
<el-date-picker clearable
style="width: 100%;"
v-model="form.publishTime"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择发布时间">
</el-date-picker>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="状态" prop="status">
<el-select style="width: 100%;" v-model="form.status" placeholder="请选择状态">
<el-option
v-for="dict in dict.type.product_status"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="文章正文">
<editor v-model="form.articleContent" :min-height="192"/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" type="textarea" placeholder="请输入内容"/>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
@ -162,180 +241,185 @@
</template>
<script>
import { pageListArticle, getArticle, delArticle, addArticle, updateArticle } from "@/api/article/article";
import {pageListArticle, getArticle, delArticle, addArticle, updateArticle} from "@/api/article/article";
export default {
name: "Article",
data() {
return {
//
loading: true,
//
ids: [],
//
names: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
//
articleList: [],
//
title: "",
//
open: false,
//
queryParams: {
pageNum: 1,
pageSize: 10,
articleType: null,
articleKind: null,
articleTitle: null,
publishTime: null,
articleContent: null,
status: null,
},
//
form: {},
//
rules: {
articleType: [
{ required: true, message: "文章分类0产品文章1经纪文章不能为空", trigger: "change" }
],
articleKind: [
{ required: true, message: "文章类型不能为空", trigger: "blur" }
],
articleTitle: [
{ required: true, message: "文章标题不能为空", trigger: "blur" }
],
publishTime: [
{ required: true, message: "发布时间不能为空", trigger: "blur" }
],
articleContent: [
{ required: true, message: "文章正文不能为空", trigger: "blur" }
],
status: [
{ required: true, message: "状态0草稿1上架不能为空", trigger: "change" }
],
remark: [
{ required: true, message: "备注不能为空", trigger: "blur" }
],
}
export default {
name: "Article",
dicts: ["product_classify", "article_kind", "product_status"],
data() {
return {
//
loading: true,
//
ids: [],
//
names: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
//
articleList: [],
//
title: "",
//
open: false,
//
queryParams: {
pageNum: 1,
pageSize: 10,
articleType: null,
articleKind: null,
articleTitle: null,
publishTime: null,
publishTimeBegin: null,
publishTimeEnd: null,
articleContent: null,
status: null,
},
//
form: {},
//
rules: {
articleType: [
{required: true, message: "文章分类", trigger: "change"}
],
articleKind: [
{required: true, message: "文章类型不能为空", trigger: "blur"}
],
articleTitle: [
{required: true, message: "文章标题不能为空", trigger: "blur"}
],
publishTime: [
{required: true, message: "发布时间不能为空", trigger: "blur"}
],
articleContent: [
{required: true, message: "文章正文不能为空", trigger: "blur"}
],
status: [
{required: true, message: "状态", trigger: "change"}
],
// remark: [
// {required: true, message: "", trigger: "blur"}
// ],
}
};
},
created() {
this.getList();
},
methods: {
/** 查询产品文章列表 */
getList() {
this.loading = true;
pageListArticle(this.queryParams).then(response => {
this.articleList = response.rows;
this.total = response.total;
this.loading = false;
}).catch(e => {
this.loading = false;
});
},
//
cancel() {
this.open = false;
this.reset();
},
//
reset() {
this.form = {
id: null,
articleType: null,
articleKind: null,
articleTitle: null,
publishTime: null,
articleContent: null,
status: null,
remark: null,
};
this.resetForm("form");
},
created() {
//
handleSortChange(col) {
this.$sortBy(col, this.queryParams);
this.getList();
},
methods: {
/** 查询产品文章列表 */
getList() {
this.loading = true;
pageListArticle(this.queryParams).then(response => {
this.articleList = response.rows;
this.total = response.total;
this.loading = false;
}).catch(e => {
this.loading = false;
});
},
//
cancel() {
this.open = false;
this.reset();
},
//
reset() {
this.form = {
id: null,
articleType: null,
articleKind: null,
articleTitle: null,
publishTime: null,
articleContent: null,
status: null,
remark: null,
};
this.resetForm("form");
},
//
handleSortChange(col) {
this.$sortBy(col, this.queryParams);
this.getList();
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
//
handleSelectionChange(selection) {
this.ids = selection.map(item => item.id);
this.names = selection.map(item => item.id);
this.single = selection.length!==1;
this.multiple = !selection.length;
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
//
handleSelectionChange(selection) {
this.ids = selection.map(item => item.id);
this.names = selection.map(item => item.id);
this.single = selection.length !== 1;
this.multiple = !selection.length;
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.form.publishTime = new Date();
this.title = "添加产品文章";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const id = row.id || this.ids;
getArticle(id).then(response => {
this.form = response.data;
this.open = true;
this.title = "添加产品文章";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const id = row.id || this.ids;
getArticle(id).then(response => {
this.form = response.data;
this.open = true;
this.title = "修改产品文章";
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.id != null) {
updateArticle(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addArticle(this.form).then(response => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
});
}
this.title = "修改产品文章";
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.id != null) {
updateArticle(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addArticle(this.form).then(response => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
});
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
const names = row.id || this.names;
this.$modal.confirm('是否确认删除产品文章为"' + names + '"的数据项?').then(function() {
return delArticle(ids);
}).then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
}).catch(() => {});
},
/** 导出按钮操作 */
handleExport() {
this.download('article/article/export', {
...this.queryParams
}, `article_${new Date().getTime()}.xlsx`)
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
const names = row.id || this.names;
this.$modal.confirm('是否确认删除产品文章为"' + names + '"的数据项?').then(function () {
return delArticle(ids);
}).then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
}).catch(() => {
});
},
/** 导出按钮操作 */
handleExport() {
this.download('article/article/export', {
...this.queryParams
}, `article_${new Date().getTime()}.xlsx`)
}
}
};
};
</script>

@ -59,7 +59,7 @@
</el-form>
<!-- 底部 -->
<div class="el-login-footer">
<span>Copyright © 2018-2023 八方莆田 All Rights Reserved.</span>
<span>Copyright © 2018-2023 德富金服 All Rights Reserved.</span>
</div>
</div>
</template>
@ -192,7 +192,7 @@ export default {
justify-content: center;
align-items: center;
height: 100%;
background-image: url("../assets/images/login-background.jpg");
background-image: url("../assets/images/login-background4.png");
background-size: cover;
}
.title {

@ -1,38 +1,46 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="产品id" prop="productId">
<el-input
v-model="queryParams.productId"
placeholder="请输入产品id"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="海报名称" prop="posterName">
<el-input
v-model="queryParams.posterName"
placeholder="请输入海报名称"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="海报标签" prop="posterTag">
<el-input
v-model="queryParams.posterTag"
placeholder="请输入海报标签"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="海报图片id" prop="posterFileId">
<el-input
v-model="queryParams.posterFileId"
placeholder="请输入海报图片id"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<!-- <el-form-item label="产品id" prop="productId">-->
<!-- <el-input-->
<!-- v-model="queryParams.productId"-->
<!-- placeholder="请输入产品id"-->
<!-- clearable-->
<!-- @keyup.enter.native="handleQuery"-->
<!-- />-->
<!-- </el-form-item>-->
<el-form-item label="产品名称" prop="productId">
<el-select style="width: 100%;" filterable v-model="queryParams.productId" placeholder="请选择产品名称" clearable>
<el-option v-for="info in lsInfo" :key="info.id" :label="info.productName" @keyup.enter.native="handleQuery"
:value="info.id"/>
</el-select>
</el-form-item>
<el-form-item label="海报分类" prop="posterType">
<el-select v-model="queryParams.posterType" placeholder="选择海报分类" clearable @keyup.enter.native="handleQuery">
<el-option v-for="dict in dict.type.product_classify" :key="dict.value" :label="dict.label"
:value="dict.value"/>
</el-select>
</el-form-item>
<el-form-item label="海报名称" prop="posterName">
<el-input
v-model="queryParams.posterName"
placeholder="请输入海报名称"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="海报标签" prop="posterTag">
<el-select v-model="queryParams.posterTag" placeholder="选择海报标签" clearable @keyup.enter.native="handleQuery">
<el-option v-for="dict in dict.type.poster_tag" :key="dict.value" :label="dict.label"
:value="dict.value"/>
</el-select>
</el-form-item>
<el-form-item label="状态" prop="status">
<el-select v-model="queryParams.status" placeholder="选择状态" clearable @keyup.enter.native="handleQuery">
<el-option v-for="dict in dict.type.product_status" :key="dict.value" :label="dict.label"
:value="dict.value"/>
</el-select>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery"></el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"></el-button>
@ -48,7 +56,8 @@
size="mini"
@click="handleAdd"
v-hasPermi="['poster:poster:add']"
>新增</el-button>
>新增
</el-button>
</el-col>
<el-col :span="1.5">
<el-button
@ -59,7 +68,8 @@
:disabled="single"
@click="handleUpdate"
v-hasPermi="['poster:poster:edit']"
>修改</el-button>
>修改
</el-button>
</el-col>
<el-col :span="1.5">
<el-button
@ -70,7 +80,8 @@
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['poster:poster:remove']"
>删除</el-button>
>删除
</el-button>
</el-col>
<el-col :span="1.5">
<el-button
@ -80,21 +91,35 @@
size="mini"
@click="handleExport"
v-hasPermi="['poster:poster:export']"
>导出</el-button>
>导出
</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="posterList" @sort-change="handleSortChange" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="海报id" align="center" prop="id" sortable='custom' />
<el-table-column label="产品id" align="center" prop="productId" sortable='custom' />
<el-table-column label="海报分类0产品海报1经纪海报" align="center" prop="posterType" sortable='custom' />
<el-table-column label="海报名称" align="center" prop="posterName" sortable='custom' />
<el-table-column label="海报标签" align="center" prop="posterTag" sortable='custom' />
<el-table-column label="海报图片id" align="center" prop="posterFileId" sortable='custom' />
<el-table-column label="状态0草稿1上架" align="center" prop="status" sortable='custom' />
<el-table-column label="备注" align="center" prop="remark" sortable='custom' />
<el-table v-loading="loading" :data="posterList" @sort-change="handleSortChange"
@selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center"/>
<el-table-column label="产品名称" align="center" prop="productName" sortable='custom'/>
<!-- <el-table-column label="海报分类" align="center" prop="posterType" sortable='custom'/>-->
<el-table-column label="海报分类" align="center" prop="posterType" sortable='custom'>
<template slot-scope="scope">
<dict-tag :options="dict.type.product_classify" :value="scope.row.posterType"/>
</template>
</el-table-column>
<el-table-column label="海报名称" align="center" prop="posterName" sortable='custom'/>
<el-table-column label="海报标签" align="center" prop="posterTag" sortable='custom'>
<template slot-scope="scope">
<dict-tag :options="dict.type.poster_tag" :value="scope.row.posterTag"/>
</template>
</el-table-column>
<el-table-column label="海报图片" align="center" prop="posterFileId" sortable='custom'/>
<el-table-column label="状态" align="center" prop="status" sortable='custom'>
<template slot-scope="scope">
<dict-tag :options="dict.type.product_status" :value="scope.row.status"/>
</template>
</el-table-column>
<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">
<template slot-scope="scope">
<el-button
@ -103,20 +128,21 @@
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['poster:poster:edit']"
>修改</el-button>
>修改
</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['poster:poster:remove']"
>删除</el-button>
>删除
</el-button>
</template>
</el-table-column>
</el-table>
<pagination
hide-on-single-page
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@ -126,31 +152,62 @@
<!-- 添加或修改产品海报对话框 -->
<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-col :span="12">
<el-form-item label="产品id" prop="productId">
<el-input v-model="form.productId" placeholder="请输入产品id" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="海报名称" prop="posterName">
<el-input v-model="form.posterName" placeholder="请输入海报名称" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="海报标签" prop="posterTag">
<el-input v-model="form.posterTag" placeholder="请输入海报标签" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="海报图片id" prop="posterFileId">
<el-input v-model="form.posterFileId" placeholder="请输入海报图片id" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" type="textarea" placeholder="请输入内容" />
</el-form-item>
</el-col>
<el-row>
<el-col :span="12">
<el-form-item label="产品名称" prop="productId">
<el-select style="width: 100%;" filterable v-model="form.productId" placeholder="请选择产品名称"
clearable>
<el-option v-for="info in lsInfo" :key="info.id" :label="info.productName"
:value="info.id"/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="海报分类" prop="posterType">
<el-select style="width: 100%;" v-model="form.posterType" placeholder="选择海报分类">
<el-option v-for="dict in dict.type.product_classify" :key="dict.value" :label="dict.label"
:value="dict.value"/>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="海报名称" prop="posterName">
<el-input v-model="form.posterName" placeholder="请输入海报名称"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="海报标签" prop="posterTag">
<el-select style="width: 100%;" v-model="form.posterTag" placeholder="选择海报标签" filterable clearable multiple>
<el-option v-for="dict in dict.type.poster_tag" :key="dict.value" :label="dict.label"
:value="dict.value"/>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="海报图片" prop="posterFileId">
<el-input v-model="form.posterFileId" placeholder="请输入海报图片"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="状态" prop="status">
<el-select style="width: 100%;" v-model="form.status" placeholder="选择状态" clearable>
<el-option v-for="dict in dict.type.product_status" :key="dict.value" :label="dict.label"
:value="dict.value"/>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" type="textarea" placeholder="请输入内容"/>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
@ -161,180 +218,197 @@
</template>
<script>
import { pageListPoster, getPoster, delPoster, addPoster, updatePoster } from "@/api/poster/poster";
import {pageListPoster, getPoster, delPoster, addPoster, updatePoster} from "@/api/poster/poster";
import {listInfo} from "@/api/product/info";
export default {
name: "Poster",
data() {
return {
//
loading: true,
//
ids: [],
//
names: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
//
posterList: [],
//
title: "",
//
open: false,
//
queryParams: {
pageNum: 1,
pageSize: 10,
productId: null,
posterType: null,
posterName: null,
posterTag: null,
posterFileId: null,
status: null,
},
//
form: {},
//
rules: {
productId: [
{ required: true, message: "产品id不能为空", trigger: "blur" }
],
posterType: [
{ required: true, message: "海报分类0产品海报1经纪海报不能为空", trigger: "change" }
],
posterName: [
{ required: true, message: "海报名称不能为空", trigger: "blur" }
],
posterTag: [
{ required: true, message: "海报标签不能为空", trigger: "blur" }
],
posterFileId: [
{ required: true, message: "海报图片id不能为空", trigger: "blur" }
],
status: [
{ required: true, message: "状态0草稿1上架不能为空", trigger: "change" }
],
remark: [
{ required: true, message: "备注不能为空", trigger: "blur" }
],
}
export default {
name: "Poster",
dicts: ["product_status", "product_classify","poster_tag"],
data() {
return {
//
lsInfo: [],
//
loading: true,
//
ids: [],
//
names: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
//
posterList: [],
//
title: "",
//
open: false,
//
queryParams: {
pageNum: 1,
pageSize: 10,
productId: null,
posterType: null,
posterName: null,
posterTag: null,
posterFileId: null,
status: null,
},
//
form: {},
//
rules: {
productId: [
{required: true, message: "产品名称不能为空", trigger: "blur"}
],
posterType: [
{required: true, message: "海报分类不能为空", trigger: "change"}
],
posterName: [
{required: true, message: "海报名称不能为空", trigger: "blur"}
],
posterTag: [
{required: true, message: "海报标签不能为空", trigger: "blur"}
],
posterFileId: [
{required: true, message: "海报图片不能为空", trigger: "blur"}
],
status: [
{required: true, message: "状态不能为空", trigger: "change"}
],
// remark: [
// {required: true, message: "", trigger: "blur"}
// ],
}
};
},
created() {
this.getList();
this.getInfoList();
},
methods: {
getInfoList() {
listInfo().then(response => {
this.lsInfo = response.data;
});
},
/** 查询产品海报列表 */
getList() {
this.loading = true;
pageListPoster(this.queryParams).then(response => {
this.posterList = response.rows;
this.total = response.total;
this.loading = false;
}).catch(e => {
this.loading = false;
});
},
//
cancel() {
this.open = false;
this.reset();
},
//
reset() {
this.form = {
id: null,
productId: null,
posterType: null,
posterName: null,
posterTag: null,
posterFileId: null,
status: null,
remark: null,
};
this.resetForm("form");
},
created() {
//
handleSortChange(col) {
this.$sortBy(col, this.queryParams);
this.getList();
},
methods: {
/** 查询产品海报列表 */
getList() {
this.loading = true;
pageListPoster(this.queryParams).then(response => {
this.posterList = response.rows;
this.total = response.total;
this.loading = false;
}).catch(e => {
this.loading = false;
});
},
//
cancel() {
this.open = false;
this.reset();
},
//
reset() {
this.form = {
id: null,
productId: null,
posterType: null,
posterName: null,
posterTag: null,
posterFileId: null,
status: null,
remark: null,
};
this.resetForm("form");
},
//
handleSortChange(col) {
this.$sortBy(col, this.queryParams);
this.getList();
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
//
handleSelectionChange(selection) {
this.ids = selection.map(item => item.id);
this.names = selection.map(item => item.id);
this.single = selection.length!==1;
this.multiple = !selection.length;
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
//
handleSelectionChange(selection) {
this.ids = selection.map(item => item.id);
this.names = selection.map(item => item.id);
this.single = selection.length !== 1;
this.multiple = !selection.length;
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.title = "添加产品海报";
},
/** 修改按钮操作 */
handleUpdate(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(',');
}
this.open = true;
this.title = "添加产品海报";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const id = row.id || this.ids;
getPoster(id).then(response => {
this.form = response.data;
this.open = true;
this.title = "修改产品海报";
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.id != null) {
updatePoster(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addPoster(this.form).then(response => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
});
}
this.title = "修改产品海报";
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
if (this.form.posterTag) {
this.form.posterTag = this.form.posterTag.join(',');
}
if (valid) {
if (this.form.id != null) {
updatePoster(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addPoster(this.form).then(response => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
});
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
const names = row.id || this.names;
this.$modal.confirm('是否确认删除产品海报为"' + names + '"的数据项?').then(function() {
return delPoster(ids);
}).then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
}).catch(() => {});
},
/** 导出按钮操作 */
handleExport() {
this.download('poster/poster/export', {
...this.queryParams
}, `poster_${new Date().getTime()}.xlsx`)
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
const names = row.id || this.names;
this.$modal.confirm('是否确认删除产品海报为"' + names + '"的数据项?').then(function () {
return delPoster(ids);
}).then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
}).catch(() => {
});
},
/** 导出按钮操作 */
handleExport() {
this.download('poster/poster/export', {
...this.queryParams
}, `产品海报数据_${new Date().getTime()}.xlsx`)
}
}
};
};
</script>

@ -1,54 +1,119 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="产品名称" prop="productName">
<el-input
v-model="queryParams.productName"
placeholder="请输入产品名称"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="产品简称" prop="simpleName">
<el-input
v-model="queryParams.simpleName"
placeholder="请输入产品简称"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="最高额度" prop="maxAmount">
<el-input
v-model="queryParams.maxAmount"
placeholder="请输入最高额度"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="年利率" prop="interestRate">
<el-input
v-model="queryParams.interestRate"
placeholder="请输入年利率"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="上架时间起" prop="listBegin">
<el-date-picker clearable
v-model="queryParams.listBegin"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择上架时间起">
</el-date-picker>
</el-form-item>
<el-form-item label="上架时间止" prop="listEnd">
<el-date-picker clearable
v-model="queryParams.listEnd"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择上架时间止">
</el-date-picker>
</el-form-item>
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="100px">
<el-form-item label="产品名称" prop="productName">
<el-input
v-model="queryParams.productName"
placeholder="请输入产品名称"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="产品简称" prop="simpleName">
<el-input
v-model="queryParams.simpleName"
placeholder="请输入产品简称"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="产品类型" prop="productType">
<el-select v-model="queryParams.productType" placeholder="选择产品类型" clearable @keyup.enter.native="handleQuery">
<el-option v-for="dict in dict.type.product_type" :key="dict.value" :label="dict.label"
:value="dict.value"/>
</el-select>
</el-form-item>
<el-form-item label="还款周期" prop="repaymentCycle">
<el-input
v-model="queryParams.repaymentCycle"
placeholder="请输入还款周期"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="还款方式" prop="repaymentMethod">
<el-input
v-model="queryParams.repaymentMethod"
placeholder="请输入还款方式"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="展业城市" prop="businessCity">
<el-input
v-model="queryParams.businessCity"
placeholder="请输入展业城市"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="综合费率" prop="combinedRates">
<el-input
v-model="queryParams.combinedRates"
placeholder="请输入综合费率"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="状态" prop="status">
<el-select v-model="queryParams.status" placeholder="选择状态" clearable @keyup.enter.native="handleQuery">
<el-option v-for="dict in dict.type.product_status" :key="dict.value" :label="dict.label"
:value="dict.value"/>
</el-select>
</el-form-item>
<el-form-item label="上架时间" prop="listBegin">
<el-date-picker clearable
style="width: 170px"
v-model="queryParams.listBegin"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择上架时间起">
</el-date-picker>
-
<el-date-picker clearable
style="width: 170px"
v-model="queryParams.listEnd"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择上架时间止">
</el-date-picker>
</el-form-item>
<el-form-item label="年利率(单利)" prop="interestRateBegin">
<el-input-number
:min="0"
:precision="2"
style="width: 150px"
v-model="queryParams.interestRateBegin"
clearable
@keyup.enter.native="handleQuery"
/>
-
<el-input-number
:min="0"
:precision="2"
style="width: 150px"
v-model="queryParams.interestRateEnd"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="最高额度(元)" prop="maxAmount">
<el-input-number
:min="0"
v-model="queryParams.maxAmountBegin"
style="width: 150px"
clearable
@keyup.enter.native="handleQuery"
/>
-
<el-input-number
:min="0"
style="width: 150px"
v-model="queryParams.maxAmountEnd"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery"></el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"></el-button>
@ -64,7 +129,8 @@
size="mini"
@click="handleAdd"
v-hasPermi="['product:info:add']"
>新增</el-button>
>新增
</el-button>
</el-col>
<el-col :span="1.5">
<el-button
@ -75,7 +141,8 @@
:disabled="single"
@click="handleUpdate"
v-hasPermi="['product:info:edit']"
>修改</el-button>
>修改
</el-button>
</el-col>
<el-col :span="1.5">
<el-button
@ -86,7 +153,8 @@
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['product:info:remove']"
>删除</el-button>
>删除
</el-button>
</el-col>
<el-col :span="1.5">
<el-button
@ -96,35 +164,48 @@
size="mini"
@click="handleExport"
v-hasPermi="['product:info:export']"
>导出</el-button>
>导出
</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="infoList" @sort-change="handleSortChange" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="产品id" align="center" prop="id" sortable='custom' />
<el-table-column label="产品名称" align="center" prop="productName" sortable='custom' />
<el-table-column label="产品简称" align="center" prop="simpleName" sortable='custom' />
<el-table-column label="产品类型" align="center" prop="productType" sortable='custom' />
<el-table-column label="产品细类" align="center" prop="productSubtype" sortable='custom' />
<el-table-column label="最高额度" align="center" prop="maxAmount" sortable='custom' />
<el-table-column label="年利率" align="center" prop="interestRate" sortable='custom' />
<el-table-column label="产品简介" align="center" prop="productIntro" sortable='custom' />
<el-table-column label="产品详情" align="center" prop="productDetail" sortable='custom' />
<el-table-column label="上架时间起" align="center" prop="listBegin" width="180" sortable='custom'>
<template slot-scope="scope">
<span>{{ parseTime(scope.row.listBegin, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="上架时间止" align="center" prop="listEnd" width="180" sortable='custom'>
<template slot-scope="scope">
<span>{{ parseTime(scope.row.listEnd, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="状态0草稿1上架" align="center" prop="status" sortable='custom' />
<el-table-column label="备注" align="center" prop="remark" sortable='custom' />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<el-table v-loading="loading" :data="infoList" @sort-change="handleSortChange"
@selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center"/>
<el-table-column label="产品名称" align="center" prop="productName" sortable='custom'/>
<el-table-column label="产品简称" align="center" prop="simpleName" sortable='custom'/>
<el-table-column label="产品类型" align="center" prop="productType" sortable='custom'>
<template slot-scope="scope">
<dict-tag :options="dict.type.product_type" :value="scope.row.productType"/>
</template>
</el-table-column>
<el-table-column label="产品细类" align="center" prop="productSubtype" sortable='custom'/>
<el-table-column label="最高额度(元)" align="center" prop="maxAmount" sortable='custom'/>
<el-table-column label="年利率(单利)" align="center" prop="interestRate" sortable='custom'/>
<el-table-column label="产品简介" align="center" prop="productIntro" sortable='custom' show-overflow-tooltip/>
<el-table-column label="产品详情" align="center" prop="productDetail" sortable='custom' show-overflow-tooltip/>
<el-table-column label="还款周期" align="center" prop="repaymentCycle" sortable='custom'/>
<el-table-column label="还款方式" align="center" prop="repaymentMethod" sortable='custom'/>
<el-table-column label="展业城市" align="center" prop="businessCity" sortable='custom'/>
<el-table-column label="综合费率" align="center" prop="combinedRates" sortable='custom'/>
<el-table-column label="上架时间起" align="center" prop="listBegin" width="150" sortable='custom'>
<template slot-scope="scope">
<span>{{ parseTime(scope.row.listBegin, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="上架时间止" align="center" prop="listEnd" width="150" sortable='custom'>
<template slot-scope="scope">
<span>{{ parseTime(scope.row.listEnd, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="状态" align="center" prop="status" sortable='custom'>
<template slot-scope="scope">
<dict-tag :options="dict.type.product_status" :value="scope.row.status"/>
</template>
</el-table-column>
<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="100">
<template slot-scope="scope">
<el-button
size="mini"
@ -132,20 +213,21 @@
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['product:info:edit']"
>修改</el-button>
>修改
</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['product:info:remove']"
>删除</el-button>
>删除
</el-button>
</template>
</el-table-column>
</el-table>
<pagination
hide-on-single-page
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@ -154,62 +236,126 @@
<!-- 添加或修改产品信息对话框 -->
<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-col :span="12">
<el-form-item label="产品名称" prop="productName">
<el-input v-model="form.productName" placeholder="请输入产品名称" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="产品简称" prop="simpleName">
<el-input v-model="form.simpleName" placeholder="请输入产品简称" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="最高额度" prop="maxAmount">
<el-input v-model="form.maxAmount" placeholder="请输入最高额度" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="年利率" prop="interestRate">
<el-input v-model="form.interestRate" placeholder="请输入年利率" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="产品简介" prop="productIntro">
<el-input v-model="form.productIntro" type="textarea" placeholder="请输入内容" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="产品详情" prop="productDetail">
<el-input v-model="form.productDetail" type="textarea" placeholder="请输入内容" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="上架时间起" prop="listBegin">
<el-date-picker clearable
v-model="form.listBegin"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择上架时间起">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="上架时间止" prop="listEnd">
<el-date-picker clearable
v-model="form.listEnd"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择上架时间止">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" type="textarea" placeholder="请输入内容" />
</el-form-item>
</el-col>
<el-form ref="form" :model="form" :rules="rules" label-width="115px">
<el-row>
<el-col :span="8">
<el-form-item label="产品名称" prop="productName">
<el-input v-model="form.productName" placeholder="请输入产品名称"/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="产品简称" prop="simpleName">
<el-input v-model="form.simpleName" placeholder="请输入产品简称"/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="产品类型" prop="productType">
<el-select style="width: 100%;" v-model="form.productType" placeholder="选择产品类型" clearable>
<el-option v-for="dict in dict.type.product_type" :key="dict.value" :label="dict.label"
:value="dict.value"/>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="产品细类" prop="productSubtype">
<el-input v-model="form.productSubtype" placeholder="请输入产品细类"/>
</el-form-item>
</el-col>
<el-col :span="12">
<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.interestRateEnd" style="width: 160px;" :min="0" :precision="2"/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="最高额度(元)" prop="maxAmount">
<el-input-number v-model="form.maxAmount" placeholder="请输入最高额度(元)" style="width: 100%;" :min="0"/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="还款周期" prop="repaymentCycle">
<el-input v-model="form.repaymentCycle" placeholder="请输入还款周期"/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="还款方式" prop="repaymentMethod">
<el-input v-model="form.repaymentMethod" placeholder="请输入还款方式"/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="展业城市" prop="businessCity">
<el-input v-model="form.businessCity" placeholder="请输入展业城市"/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="综合费率" prop="combinedRates">
<el-input v-model="form.combinedRates" placeholder="请输入综合费率"/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="上架时间起" prop="listBegin">
<el-date-picker clearable
v-model="form.listBegin"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择上架时间起"
style="width: 100%;">
</el-date-picker>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="上架时间止" prop="listEnd">
<el-date-picker clearable
v-model="form.listEnd"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择上架时间止"
style="width: 100%;">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="状态" prop="status">
<el-select style="width: 100%;" v-model="form.status" placeholder="选择状态" clearable>
<el-option v-for="dict in dict.type.product_status" :key="dict.value" :label="dict.label"
:value="dict.value"/>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="产品简介" prop="productIntro">
<editor v-model="form.productIntro" :min-height="92"/>
<!-- <el-input v-model="form.productIntro" type="textarea" placeholder="请输入内容"/>-->
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="产品详情" prop="productDetail">
<editor v-model="form.productDetail" :min-height="152"/>
<!-- <el-input v-model="form.productDetail" type="textarea" placeholder="请输入内容"/>-->
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" type="textarea" placeholder="请输入内容"/>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
@ -220,205 +366,235 @@
</template>
<script>
import { pageListInfo, getInfo, delInfo, addInfo, updateInfo } from "@/api/product/info";
import {pageListInfo, getInfo, delInfo, addInfo, updateInfo} from "@/api/product/info";
export default {
name: "Info",
data() {
return {
//
loading: true,
//
ids: [],
//
names: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
//
infoList: [],
//
title: "",
//
open: false,
//
queryParams: {
pageNum: 1,
pageSize: 10,
productName: null,
simpleName: null,
productType: null,
productSubtype: null,
maxAmount: null,
interestRate: null,
productIntro: null,
productDetail: null,
listBegin: null,
listEnd: null,
status: null,
},
//
form: {},
//
rules: {
productName: [
{ required: true, message: "产品名称不能为空", trigger: "blur" }
],
simpleName: [
{ required: true, message: "产品简称不能为空", trigger: "blur" }
],
productType: [
{ required: true, message: "产品类型不能为空", trigger: "change" }
],
productSubtype: [
{ required: true, message: "产品细类不能为空", trigger: "change" }
],
maxAmount: [
{ required: true, message: "最高额度不能为空", trigger: "blur" }
],
interestRate: [
{ required: true, message: "年利率不能为空", trigger: "blur" }
],
productIntro: [
{ required: true, message: "产品简介不能为空", trigger: "blur" }
],
productDetail: [
{ required: true, message: "产品详情不能为空", trigger: "blur" }
],
listBegin: [
{ required: true, message: "上架时间起不能为空", trigger: "blur" }
],
listEnd: [
{ required: true, message: "上架时间止不能为空", trigger: "blur" }
],
status: [
{ required: true, message: "状态0草稿1上架不能为空", trigger: "change" }
],
remark: [
{ required: true, message: "备注不能为空", trigger: "blur" }
],
}
export default {
name: "Info",
dicts: ['product_type', "product_status"],
data() {
return {
//
loading: true,
//
ids: [],
//
names: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
//
infoList: [],
//
title: "",
//
open: false,
//
queryParams: {
pageNum: 1,
pageSize: 10,
productName: null,
simpleName: null,
productType: null,
productSubtype: null,
maxAmount: null,
interestRate: null,
productIntro: null,
productDetail: null,
listBegin: null,
listEnd: null,
status: null,
maxAmountBegin: undefined,
maxAmountEnd: undefined,
},
//
form: {},
//
rules: {
productName: [
{required: true, message: "产品名称不能为空", trigger: "blur"}
],
simpleName: [
{required: true, message: "产品简称不能为空", trigger: "blur"}
],
productType: [
{required: true, message: "产品类型不能为空", trigger: "change"}
],
// productSubtype: [
// {required: true, message: "", trigger: "change"}
// ],
maxAmount: [
{required: true, message: "最高额度(元)不能为空", trigger: "blur"}
],
interestRateBegin: [
{required: true, message: "年利率(单利)不能为空", trigger: "blur"}
],
// productIntro: [
// {required: true, message: "", trigger: "blur"}
// ],
// productDetail: [
// {required: true, message: "", trigger: "blur"}
// ],
// listBegin: [
// {required: true, message: "", trigger: "blur"}
// ],
// listEnd: [
// {required: true, message: "", trigger: "blur"}
// ],
status: [
{required: true, message: "状态不能为空", trigger: "change"}
],
// remark: [
// {required: true, message: "", trigger: "blur"}
// ],
}
};
},
created() {
this.getList();
},
methods: {
/** 查询产品信息列表 */
getList() {
this.loading = true;
pageListInfo(this.queryParams).then(response => {
this.infoList = response.rows;
this.total = response.total;
this.loading = false;
}).catch(e => {
this.loading = false;
});
// if (!isNaN(this.queryParams.maxAmountBegin) && !isNaN(this.queryParams.maxAmountEnd)) {
// pageListInfo(this.queryParams).then(response => {
// this.infoList = response.rows;
// this.total = response.total;
// this.loading = false;
// }).catch(e => {
// this.loading = false;
// });
// } else {
// this.$modal.msgWarning("")
// this.queryParams.maxAmountBegin = undefined;
// this.queryParams.maxAmountEnd = undefined;
// pageListInfo(this.queryParams).then(response => {
// this.infoList = response.rows;
// this.total = response.total;
// this.loading = false;
// }).catch(e => {
// this.loading = false;
// });
// }
},
//
cancel() {
this.open = false;
this.reset();
},
//
reset() {
this.form = {
id: null,
productName: null,
simpleName: null,
productType: null,
productSubtype: null,
maxAmount: null,
interestRateBegin: null,
interestRateEnd: null,
productIntro: null,
productDetail: null,
listBegin: null,
listEnd: null,
status: null,
remark: null,
maxAmountBegin: null,
maxAmountEnd: null,
};
this.resetForm("form");
},
created() {
//
handleSortChange(col) {
this.$sortBy(col, this.queryParams);
this.getList();
},
methods: {
/** 查询产品信息列表 */
getList() {
this.loading = true;
pageListInfo(this.queryParams).then(response => {
this.infoList = response.rows;
this.total = response.total;
this.loading = false;
}).catch(e => {
this.loading = false;
});
},
//
cancel() {
this.open = false;
this.reset();
},
//
reset() {
this.form = {
id: null,
productName: null,
simpleName: null,
productType: null,
productSubtype: null,
maxAmount: null,
interestRate: null,
productIntro: null,
productDetail: null,
listBegin: null,
listEnd: null,
status: null,
remark: null,
};
this.resetForm("form");
},
//
handleSortChange(col) {
this.$sortBy(col, this.queryParams);
this.getList();
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
//
handleSelectionChange(selection) {
this.ids = selection.map(item => item.id);
this.names = selection.map(item => item.id);
this.single = selection.length!==1;
this.multiple = !selection.length;
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.queryParams.maxAmountBegin = undefined;
this.queryParams.maxAmountEnd = undefined;
this.queryParams.interestRateEnd = undefined;
this.handleQuery();
},
//
handleSelectionChange(selection) {
this.ids = selection.map(item => item.id);
this.names = selection.map(item => item.id);
this.single = selection.length !== 1;
this.multiple = !selection.length;
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.title = "添加产品信息";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const id = row.id || this.ids;
getInfo(id).then(response => {
this.form = response.data;
this.open = true;
this.title = "添加产品信息";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const id = row.id || this.ids;
getInfo(id).then(response => {
this.form = response.data;
this.open = true;
this.title = "修改产品信息";
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.id != null) {
updateInfo(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addInfo(this.form).then(response => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
});
}
this.title = "修改产品信息";
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.id != null) {
updateInfo(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addInfo(this.form).then(response => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
});
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
const names = row.id || this.names;
this.$modal.confirm('是否确认删除产品信息为"' + names + '"的数据项?').then(function() {
return delInfo(ids);
}).then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
}).catch(() => {});
},
/** 导出按钮操作 */
handleExport() {
this.download('product/info/export', {
...this.queryParams
}, `info_${new Date().getTime()}.xlsx`)
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
const names = row.id || this.names;
this.$modal.confirm('是否确认删除产品信息为"' + names + '"的数据项?').then(function () {
return delInfo(ids);
}).then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
}).catch(() => {
});
},
/** 导出按钮操作 */
handleExport() {
this.download('product/info/export', {
...this.queryParams
}, `产品信息数据_${new Date().getTime()}.xlsx`)
}
}
};
};
</script>

@ -1,7 +1,7 @@
<template>
<div class="register">
<el-form ref="registerForm" :model="registerForm" :rules="registerRules" class="register-form">
<h3 class="title">保税仓库管理系统</h3>
<h3 class="title">德富金服经纪推广系统</h3>
<el-form-item prop="username">
<el-input v-model="registerForm.username" type="text" auto-complete="off" placeholder="账号">
<svg-icon slot="prefix" icon-class="user" class="el-input__icon input-icon" />

@ -7,7 +7,7 @@ function resolve(dir) {
const CompressionPlugin = require('compression-webpack-plugin')
const name = process.env.VUE_APP_TITLE || '保税仓库管理系统' // 网页标题
const name = process.env.VUE_APP_TITLE || '德富金服经纪推广系统' // 网页标题
const port = process.env.port || process.env.npm_config_port || 80 // 端口

Loading…
Cancel
Save