# Conflicts:
#	dl_admin/ruoyi-admin/src/main/java/com/ruoyi/busi/service/impl/BusiCategoryServiceImpl.java
This commit is contained in:
PQZ 2025-10-09 14:43:56 +08:00
commit 3ee97a885a
20 changed files with 240 additions and 189 deletions

View File

@ -115,6 +115,9 @@ public class BaseSiteController extends BaseController {
@DeleteMapping("/{ids}")
public AjaxResult remove(@PathVariable String[] ids) {
List<String> list = new ArrayList<>(Arrays.asList(ids));
if (list.contains("main")){
return error("请勿删除主站点");
}
return toAjax(baseSiteService.removeByIds(list));
}
}

View File

@ -64,6 +64,8 @@ public class WebController extends BaseController {
@Autowired
private IBusiChatMainService busiChatMainService;
@Autowired
private IBusiThirdItemService busiThirdItemService;
@Autowired
private IBusiPageService pageService;
@Autowired
private CommonUtils commonUtils;
@ -373,7 +375,6 @@ public class WebController extends BaseController {
@ApiImplicitParam(name = "tenantId", value = "站点唯一码", required = true, dataType = "string", paramType = "query", dataTypeClass = String.class)
@GetMapping("/inquirySet")
public R<BaseInquiry> inquirySet(@RequestParam(required = true) String tenantId, HttpServletRequest request) {
String ip = CommonUtils.getIpAddr(request);
return R.ok(baseInquiryService.getInquiry(tenantId));
}
@ -526,4 +527,27 @@ public class WebController extends BaseController {
}
}
/**
* 三方询盘点击记录次数
*
* @return com.ruoyi.common.core.domain.AjaxResult
* @author vinjor-M
* @date 10:04 2025/7/8
**/
@ApiOperation("三方询盘点击记录次数")
@ApiImplicitParams(value = {
@ApiImplicitParam(name = "thirdSoft", value = "三方程序类型Email|WhatsApp|Tel", required = true, paramType = "body"),
@ApiImplicitParam(name = "tenantId", value = "站点编码", required = true, paramType = "body"),
@ApiImplicitParam(name = "equipment", value = "设备类型(移动端|电脑端)", required = true, paramType = "body")
})
@PostMapping("/thirdItemSave")
public R<String> thirdItemSave(@ApiIgnore @RequestBody BusiThirdItem thirdItem, HttpServletRequest request) {
thirdItem.setViewType("漂浮询盘");
Map<String, String> ipMap = commonUtils.getIPAndCountry(request);
thirdItem.setIp(ipMap.get("ip"));
thirdItem.setNational(ipMap.get("national"));
thirdItem.setOceania(ipMap.get("oceania"));
busiThirdItemService.save(thirdItem);
return R.ok();
}
}

View File

@ -1,6 +1,7 @@
package com.ruoyi.busi.domain;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
@ -70,9 +71,15 @@ public class BusiProdNew extends DlBaseEntity
@ApiModelProperty("文章来源")
private String newsFrom;
/** 展示平台PC、APP */
@Excel(name = "展示平台PC、APP")
@ApiModelProperty("展示平台PC、APP")
private String showPlat;
/** 文章发布日期 */
@Excel(name = "文章发布日期")
@ApiModelProperty("文章发布日期")
@JsonFormat(pattern = "yyyy-MM-dd")
private Date publicDate;
/** 产品主图或文章图片 */

View File

@ -39,6 +39,9 @@ public class BusiThirdItem extends DlBaseEntity
/** 来源国家 */
@Excel(name = "来源国家")
private String national;
/** 来源洲 */
@Excel(name = "来源洲")
private String oceania;
/** 所属email/电话/teams账户 */
@Excel(name = "所属email/电话/teams账户")

View File

@ -40,20 +40,18 @@ public class BusiCategoryServiceImpl extends ServiceImpl<BusiCategoryMapper, Bus
public List<BusiCategoryVO> treeCategory(BusiCategory category) {
//查询全部栏目
LambdaQueryWrapper<BusiCategory> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.eq(DlBaseEntity::getDelFlag,0)
.eq(BusiCategory::getTenantId,category.getTenantId());
if(StringUtils.isNotEmpty(category.getCatgType())){
lambdaQueryWrapper.eq(BusiCategory::getCatgType,category.getCatgType());
lambdaQueryWrapper.eq(DlBaseEntity::getDelFlag, 0)
.eq(BusiCategory::getTenantId, category.getTenantId());
if (StringUtils.isNotEmpty(category.getCatgType())) {
lambdaQueryWrapper.eq(BusiCategory::getCatgType, category.getCatgType());
}
if (!StringUtils.isEmpty(category.getCatgName())) {
lambdaQueryWrapper.like(BusiCategory::getCatgName, category.getCatgName());
}
lambdaQueryWrapper.orderByAsc(BusiCategory::getSort);
lambdaQueryWrapper.orderByDesc(BusiCategory::getSort);
List<BusiCategory> list = list(lambdaQueryWrapper);
List<BusiCategoryVO> rtnList = buildCategoryTree(list);
return rtnList.stream().sorted(Comparator.comparing(BusiCategoryVO::getSort,
Comparator.nullsLast(Comparator.reverseOrder())))
.collect(Collectors.toList());
return rtnList;
}
/**
@ -152,12 +150,10 @@ public class BusiCategoryServiceImpl extends ServiceImpl<BusiCategoryMapper, Bus
/**
* 生成树结构
* 生成树结构修改版
*
* @param list 网站栏目列表
* @return java.util.List<com.ruoyi.busi.vo.BusiCategoryVO>
* @author PQZ
* @date 14:11 2025/6/23
**/
private List<BusiCategoryVO> buildCategoryTree(List<BusiCategory> list) {
// Map存放id到VO的映射
@ -165,7 +161,7 @@ public class BusiCategoryServiceImpl extends ServiceImpl<BusiCategoryMapper, Bus
// 先将所有节点转换为VO并放入Map
for (BusiCategory category : list) {
BusiCategoryVO vo = new BusiCategoryVO();
BeanUtils.copyProperties(category,vo);
BeanUtils.copyProperties(category, vo);
vo.setId(category.getId());
vo.setLabel(category.getCatgName());
idToNodeMap.put(vo.getId(), vo);
@ -183,9 +179,36 @@ public class BusiCategoryServiceImpl extends ServiceImpl<BusiCategoryMapper, Bus
parent.getChildren().add(node);
}
}
// 对所有层级节点进行排序
sortTreeNodes(roots);
return roots;
}
/**
* 递归对树节点进行排序
*
* @param nodes 节点列表
*/
private void sortTreeNodes(List<BusiCategoryVO> nodes) {
if (nodes == null || nodes.isEmpty()) {
return;
}
// 对当前层级节点排序
nodes.sort(Comparator.comparing(BusiCategoryVO::getSort,
Comparator.nullsLast(Comparator.reverseOrder())));
// 递归对子节点排序
for (BusiCategoryVO node : nodes) {
if (node.getChildren() != null && !node.getChildren().isEmpty()) {
sortTreeNodes(node.getChildren());
}
}
}
/**
* @param id 查询的栏目ID
* @return java.util.List<java.lang.String>
@ -207,54 +230,55 @@ public class BusiCategoryServiceImpl extends ServiceImpl<BusiCategoryMapper, Bus
**/
@Override
public List<BusiCategoryVO> dealFirstId(List<BusiCategoryVO> busiCategoryVOList) {
busiCategoryVOList.forEach(item->{
busiCategoryVOList.forEach(item -> {
String thisMaxParentId = item.getId();
item.setMaxParentId(thisMaxParentId);
if(null!=item.getChildren() && !item.getChildren().isEmpty()){
if (null != item.getChildren() && !item.getChildren().isEmpty()) {
//有子级
this.setChildMaxParentId(item.getChildren(),thisMaxParentId);
this.setChildMaxParentId(item.getChildren(), thisMaxParentId);
}
});
return busiCategoryVOList;
}
private void setChildMaxParentId(List<BusiCategoryVO> childList,String maxParentId){
childList.forEach(item->{
private void setChildMaxParentId(List<BusiCategoryVO> childList, String maxParentId) {
childList.forEach(item -> {
item.setMaxParentId(maxParentId);
if(null!=item.getChildren()&& !item.getChildren().isEmpty()){
this.setChildMaxParentId(item.getChildren(),maxParentId);
if (null != item.getChildren() && !item.getChildren().isEmpty()) {
this.setChildMaxParentId(item.getChildren(), maxParentId);
}
});
}
/**
* 给所有子级设置最父级ID并且反回map格式
* @author vinjor-M
* @date 11:23 2025/7/19
*
* @param busiCategoryVOList 栏目树
* @return java.util.List<com.ruoyi.busi.vo.BusiCategoryVO>
* @author vinjor-M
* @date 11:23 2025/7/19
**/
@Override
public Map<String,String> dealFirstIdRtnMap(List<BusiCategoryVO> busiCategoryVOList){
Map<String,String> rtnMap = new HashMap<>();
busiCategoryVOList.forEach(item->{
public Map<String, String> dealFirstIdRtnMap(List<BusiCategoryVO> busiCategoryVOList) {
Map<String, String> rtnMap = new HashMap<>();
busiCategoryVOList.forEach(item -> {
String thisMaxParentId = item.getId();
item.setMaxParentId(thisMaxParentId);
rtnMap.put(item.getId(),thisMaxParentId);
if(null!=item.getChildren() && !item.getChildren().isEmpty()){
rtnMap.put(item.getId(), thisMaxParentId);
if (null != item.getChildren() && !item.getChildren().isEmpty()) {
//有子级
this.setChildMaxParentIdMap(item.getChildren(),thisMaxParentId,rtnMap);
this.setChildMaxParentIdMap(item.getChildren(), thisMaxParentId, rtnMap);
}
});
return rtnMap;
}
private void setChildMaxParentIdMap(List<BusiCategoryVO> childList,String maxParentId,Map<String,String> rtnMap){
childList.forEach(item->{
private void setChildMaxParentIdMap(List<BusiCategoryVO> childList, String maxParentId, Map<String, String> rtnMap) {
childList.forEach(item -> {
item.setMaxParentId(maxParentId);
rtnMap.put(item.getId(),maxParentId);
if(null!=item.getChildren()&& !item.getChildren().isEmpty()){
this.setChildMaxParentIdMap(item.getChildren(),maxParentId,rtnMap);
rtnMap.put(item.getId(), maxParentId);
if (null != item.getChildren() && !item.getChildren().isEmpty()) {
this.setChildMaxParentIdMap(item.getChildren(), maxParentId, rtnMap);
}
});
}

View File

@ -5,15 +5,15 @@ spring:
driverClassName: com.mysql.cj.jdbc.Driver
druid:
# # 主库数据源-点亮开发库
# master:
# url: jdbc:mysql://82.156.161.160:3306/dl_site_system?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
# username: site
# password: 123456
# 主库数据源-客户测试服务器
master:
url: jdbc:mysql://1.92.99.15:3306/dl_site_system?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
url: jdbc:mysql://82.156.161.160:3306/dl_site_system?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
username: site
password: 123456
# 主库数据源-客户生产服务器
# master:
# url: jdbc:mysql://8.220.74.244:3306/dl_site_system?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
# username: site
# password: Chengda@2025~
# 从库数据源
slave:
# 从数据源开关/默认关闭

View File

@ -7,7 +7,7 @@ ruoyi:
# 版权年份
copyrightYear: 2025
# 文件路径 示例( Windows配置D:/ruoyi/uploadPathLinux配置 /home/ruoyi/uploadPath
profile: D:/ruoyi/uploadPath
profile: /uploadPath
# 获取ip地址开关
addressEnabled: false
# 验证码类型 math 数字计算 char 字符验证
@ -146,10 +146,10 @@ xss:
# 阿里云OSS配置
aliyun:
oss:
end-point: oss-cn-qingdao.aliyuncs.com
access-key-id: LTAI5tLThQFWgMLRTf3siNjb
access-key-secret: M5HjOyB8ir5tYEPFOQwImfJNgsumaG
bucket-name: dianliang123
end-point: oss-eu-central-1.aliyuncs.com
access-key-id: LTAI5tB7zL8KuHDnMsdUhXRy
access-key-secret: bZ28G69DLR6Q3WhvvrWyxWw3lEbfzk
bucket-name: sd-chengda
#google ads配置
google:
ads:

View File

@ -13,7 +13,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
select id, tenant_id from dl_busi_keyword
</sql>
<delete id="deleteByIdAndTenantId">
DELETE dl_busi_keyword WHERE id =#{id} AND tenant_id=#{tenantId}
DELETE FROM dl_busi_keyword WHERE id =#{id} AND tenant_id=#{tenantId}
</delete>
<select id="queryListPage" parameterType="BusiKeyword" resultMap="BusiKeywordResult">

View File

@ -11,6 +11,7 @@
<result property="prodTitle" column="prod_title"/>
<result property="prodKeyword" column="prod_keyword"/>
<result property="prodDescription" column="prod_description"/>
<result property="showPlat" column="show_plat"/>
<result property="newsFrom" column="news_from"/>
<result property="publicDate" column="public_date"/>
<result property="mainPic" column="main_pic"/>
@ -42,6 +43,7 @@
prod_title,
prod_keyword,
prod_description,
show_plat,
news_from,
public_date,
main_pic,
@ -106,6 +108,10 @@
AND product.news_from like concat('%',
#{entity.newsFrom}, '%')
</if>
<if test="entity.showPlat != null and entity.showPlat != ''">
AND product.show_plat like concat('%',
#{entity.showPlat}, '%')
</if>
</where>
GROUP BY
product.id

View File

@ -9,6 +9,7 @@
<result property="prodId" column="prod_id"/>
<result property="thirdSoft" column="third_soft"/>
<result property="national" column="national"/>
<result property="oceania" column="oceania"/>
<result property="thirdAccount" column="third_account"/>
<result property="viewType" column="view_type"/>
<result property="pageUrl" column="page_url"/>
@ -27,7 +28,7 @@
<sql id="selectBusiThirdItemVo">
select id,
prod_id,
third_soft, national, third_account, view_type, page_url, equipment, ip, tenant_id, creator, create_time, updater, update_time, del_flag
third_soft, national, oceania,third_account, view_type, page_url, equipment, ip, tenant_id, creator, create_time, updater, update_time, del_flag
from dl_busi_third_item
</sql>
@ -39,6 +40,7 @@
<if test="entity.prodName != null and entity.prodName != ''">and dbpn.title LIKE CONCAT('%',#{entity.prodName},'%')</if>
<if test="entity.thirdSoft != null and entity.thirdSoft != ''">and dbti.third_soft = #{entity.thirdSoft}</if>
<if test="entity.national != null and entity.national != ''">and dbti.national LIKE CONCAT('%',#{entity.national},'%')</if>
<if test="entity.oceania != null and entity.oceania != ''">and dbti.national LIKE CONCAT('%',#{entity.oceania},'%')</if>
<if test="entity.thirdAccount != null and entity.thirdAccount != ''">and dbti.third_account LIKE CONCAT('%',#{entity.thirdAccount},'%')</if>
<if test="entity.viewType != null and entity.viewType != ''">and dbti.view_type = #{entity.viewType}</if>
<if test="entity.pageUrl != null and entity.pageUrl != ''">and dbti.page_url LIKE CONCAT('%',#{entity.pageUrl},'%')</if>

View File

@ -4,14 +4,14 @@ VUE_APP_TITLE = 成事达管理平台
# 开发环境配置
ENV = 'development'
# 成事达管理平台/开发环境
VUE_APP_BASE_API = 'http://192.168.1.13:8099'
# 成事达管理平台/生产环境
VUE_APP_BASE_API = 'http://127.0.0.1:8099'
# 路由懒加载
VUE_CLI_BABEL_TRANSPILE_MODULES = true
# websocket
VUE_APP_WEBSOCKET = 'ws://localhost:8099/ws/asset/'
VUE_APP_WEBSOCKET = 'ws://127.0.0.1:8099/ws/asset/'
# 产品、文章预览
VUE_APP_PREVIEW = 'http://192.168.1.13:3001/admin-preview/'
VUE_APP_PREVIEW = 'https://www.cdtrucktralier.com/admin-preview/'

View File

@ -5,10 +5,13 @@ VUE_APP_TITLE = 成事达管理平台
ENV = 'production'
# 成事达管理平台/生产环境
VUE_APP_BASE_API = 'http://1.92.99.15:8099'
VUE_APP_BASE_API = 'https://admin.cdtrucktralier.com'
# 路由懒加载
VUE_CLI_BABEL_TRANSPILE_MODULES = true
# websocket
VUE_APP_WEBSOCKET = 'ws://1.92.99.15:8099/ws/asset/'
VUE_APP_WEBSOCKET = 'wss://admin.cdtrucktralier.com/ws/asset/'
# 产品、文章预览
VUE_APP_PREVIEW = 'http://www.lighting-it.cn/admin-preview/'
VUE_APP_PREVIEW = 'https://www.cdtrucktralier.com/admin-preview/'

View File

@ -205,31 +205,4 @@
</div>
</div>
</body>
<!-- 客服聊天窗口代码 -->
<script>
window.difyChatbotConfig = {
token: 'BC985VI4DnedSaIQ',
baseUrl: 'http://101.245.103.204',
systemVariables: {
// user_id: 'YOU CAN DEFINE USER ID HERE',
// conversation_id: 'YOU CAN DEFINE CONVERSATION ID HERE, IT MUST BE A VALID UUID',
},
}
</script>
<script
src="http://101.245.103.204/embed.min.js"
id="BC985VI4DnedSaIQ"
defer>
</script>
<style>
#dify-chatbot-bubble-button {
background-color: #1C64F2 !important;
z-index: 50 !important;
}
#dify-chatbot-bubble-window {
width: 24rem !important;
height: 40rem !important;
z-index: 50 !important;
}
</style>
</html>

View File

@ -4,31 +4,6 @@
<theme-picker />
</div>
</template>
<!-- 客服聊天窗口代码 -->
<script>
window.difyChatbotConfig = {
token: 'BC985VI4DnedSaIQ',
baseUrl: 'http://101.245.103.204',
systemVariables: {
// user_id: 'YOU CAN DEFINE USER ID HERE',
// conversation_id: 'YOU CAN DEFINE CONVERSATION ID HERE, IT MUST BE A VALID UUID',
},
}
</script>
<script
src="http://101.245.103.204/embed.min.js"
id="BC985VI4DnedSaIQ"
defer>
</script>
<style>
#dify-chatbot-bubble-button {
background-color: #1C64F2 !important;
}
#dify-chatbot-bubble-window {
width: 24rem !important;
height: 40rem !important;
}
</style>
<script>
import ThemePicker from "@/components/ThemePicker";
import Cookies from "js-cookie";

View File

@ -23,14 +23,18 @@ const websocket = {
console.log(e.data)
}else {
console.log(e.data,'消息内容')
let messageData;
//这里捕获消息
const messageData = JSON.parse(e.data)
try {
messageData = JSON.parse(e.data)
// 触发事件通知
EventBus.$emit('newMessage', messageData);
//存储消息
state.message.push(messageData);
}catch (e) {
console.log("无法识别的消息");
}
}
};
state.socket.onerror= function () {
console.log("WebSocket连接发生错误");

View File

@ -24,62 +24,62 @@
@click="handleAdd"
>新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="primary"
plain
size="mini"
@click="shareToTwitter"
>Twitter</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="primary"
plain
size="mini"
@click="shareToFacebook"
>Facebook</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="primary"
plain
size="mini"
@click="shareToLinkedin"
>Linkedin</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="primary"
plain
size="mini"
@click="shareToPinterest"
>Pinterest</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="primary"
plain
size="mini"
@click="shareToWhatsapp"
>Whatsapp</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="primary"
plain
size="mini"
@click="shareToWhatsapp2"
>Whatsapp8618253112969</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="primary"
plain
size="mini"
@click="shareToEmail"
>E-mail:alicesales@scdtrailer.com</el-button>
</el-col>
<!-- <el-col :span="1.5">-->
<!-- <el-button-->
<!-- type="primary"-->
<!-- plain-->
<!-- size="mini"-->
<!-- @click="shareToTwitter"-->
<!-- >Twitter</el-button>-->
<!-- </el-col>-->
<!-- <el-col :span="1.5">-->
<!-- <el-button-->
<!-- type="primary"-->
<!-- plain-->
<!-- size="mini"-->
<!-- @click="shareToFacebook"-->
<!-- >Facebook</el-button>-->
<!-- </el-col>-->
<!-- <el-col :span="1.5">-->
<!-- <el-button-->
<!-- type="primary"-->
<!-- plain-->
<!-- size="mini"-->
<!-- @click="shareToLinkedin"-->
<!-- >Linkedin</el-button>-->
<!-- </el-col>-->
<!-- <el-col :span="1.5">-->
<!-- <el-button-->
<!-- type="primary"-->
<!-- plain-->
<!-- size="mini"-->
<!-- @click="shareToPinterest"-->
<!-- >Pinterest</el-button>-->
<!-- </el-col>-->
<!-- <el-col :span="1.5">-->
<!-- <el-button-->
<!-- type="primary"-->
<!-- plain-->
<!-- size="mini"-->
<!-- @click="shareToWhatsapp"-->
<!-- >Whatsapp</el-button>-->
<!-- </el-col>-->
<!-- <el-col :span="1.5">-->
<!-- <el-button-->
<!-- type="primary"-->
<!-- plain-->
<!-- size="mini"-->
<!-- @click="shareToWhatsapp2"-->
<!-- >Whatsapp8618253112969</el-button>-->
<!-- </el-col>-->
<!-- <el-col :span="1.5">-->
<!-- <el-button-->
<!-- type="primary"-->
<!-- plain-->
<!-- size="mini"-->
<!-- @click="shareToEmail"-->
<!-- >E-mail:alicesales@scdtrailer.com</el-button>-->
<!-- </el-col>-->
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table

View File

@ -215,6 +215,7 @@ export default {
<style scoped>
.session-list {
z-index: 999;
max-width: 350px;
max-height: 400px;
position: absolute;

View File

@ -6,6 +6,7 @@
<el-button type="success" @click="saveTmp"> </el-button>
<el-button type="primary" @click="submitForm"> </el-button>
<el-button type="warning" @click="checkContent">相似度检测</el-button>
<el-button @click="preview">文章预览</el-button>
<el-button @click="toggleSideBar">{{ showKeywords ? '关闭' : '打开' }}关键词推荐</el-button>
</el-col>
</el-row>
@ -215,6 +216,7 @@
<el-button type="success" @click="saveTmp"> </el-button>
<el-button type="primary" @click="submitForm"> </el-button>
<el-button type="warning" @click="checkContent">相似度检测</el-button>
<el-button @click="preview">文章预览</el-button>
</el-col>
</el-row>
@ -393,6 +395,17 @@ export default {
toggleSideBar() {
this.showKeywords = !this.showKeywords
},
/**
* 预览文章
*/
preview(){
if(!this.form.id){
this.$modal.msgWarning("请先保存或暂存新闻信息!")
return
}
let url =this.previewPrex+this.form.id+"?private=1BC0FFEC2294283E9BDB89E188FCA574"
window.open(url)
},
//
handleCommand(command, row) {
switch (command) {

View File

@ -6,6 +6,7 @@
<el-button type="success" @click="saveTmp"> </el-button>
<el-button type="primary" @click="submitForm"> </el-button>
<el-button type="warning" @click="checkContent">相似度检测</el-button>
<el-button @click="preview">产品预览</el-button>
<el-button @click="toggleSideBar">{{ showKeywords ? '关闭' : '打开' }}关键词推荐</el-button>
</el-col>
</el-row>
@ -201,6 +202,7 @@
<el-button type="success" @click="saveTmp"> </el-button>
<el-button type="primary" @click="submitForm"> </el-button>
<el-button type="warning" @click="checkContent">相似度检测</el-button>
<el-button @click="preview">产品预览</el-button>
</el-col>
</el-row>
@ -372,6 +374,17 @@ export default {
toggleSideBar() {
this.showKeywords = !this.showKeywords
},
/**
* 预览产品
*/
preview(){
if(!this.form.id){
this.$modal.msgWarning("请先保存或暂存产品信息!")
return
}
let url =this.previewPrex+this.form.id+"?private=CAC8F0807B8FB7EA72AF3596600F888A"
window.open(url)
},
//
handleCommand(command, row) {
switch (command) {

View File

@ -31,14 +31,14 @@
/>
</el-select>
</el-form-item>
<el-form-item label="请输入产品名称" prop="prodName">
<el-input
v-model="queryParams.prodName"
placeholder="请输入产品名称"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<!-- <el-form-item label="请输入产品名称" prop="prodName">-->
<!-- <el-input-->
<!-- v-model="queryParams.prodName"-->
<!-- placeholder="请输入产品名称"-->
<!-- clearable-->
<!-- @keyup.enter.native="handleQuery"-->
<!-- />-->
<!-- </el-form-item>-->
<el-form-item label="来源国家" prop="national">
<el-input
v-model="queryParams.national"
@ -132,20 +132,20 @@
<el-table v-loading="loading" :data="thirdItemList" @selection-change="handleSelectionChange">
<el-table-column type="index" width="60" label="序号" align="center"/>
<!-- <el-table-column type="selection" width="55" align="center" />-->
<el-table-column label="产品名称" align="center" prop="prodName" :min-width="120">
<template slot="header" slot-scope="scope">
<span>产品名称</span>
<el-tooltip class="item" effect="dark" content="鼠标单机数据可查看产品详情"
placement="bottom"
>
<i class="el-icon-question"></i>
</el-tooltip>
</template>
<template slot-scope="scope">
<span @click="goProdDetail(scope.row.prodId)" style="color: #1890ff;cursor: pointer"
>{{ scope.row.prodName }}</span>
</template>
</el-table-column>
<!-- <el-table-column label="产品名称" align="center" prop="prodName" :min-width="120">-->
<!-- <template slot="header" slot-scope="scope">-->
<!-- <span>产品名称</span>-->
<!-- <el-tooltip class="item" effect="dark" content="鼠标单机数据可查看产品详情"-->
<!-- placement="bottom"-->
<!-- >-->
<!-- <i class="el-icon-question"></i>-->
<!-- </el-tooltip>-->
<!-- </template>-->
<!-- <template slot-scope="scope">-->
<!-- <span @click="goProdDetail(scope.row.prodId)" style="color: #1890ff;cursor: pointer"-->
<!-- >{{ scope.row.prodName }}</span>-->
<!-- </template>-->
<!-- </el-table-column>-->
<el-table-column label="三方程序类型" align="center" prop="thirdSoft" width="100">
<template slot-scope="scope">
<dict-tag :options="dict.type.third_soft" :value="scope.row.thirdSoft"/>