模式改造,弹窗资源模块,组合模块,服务内容模块开发

master
elliott 2 years ago
parent 67500d3f6e
commit 3b3afc545c

@ -22,6 +22,8 @@ public class SysFile
private int index;
private String condition;
public String getName()
{
return name;
@ -50,6 +52,14 @@ public class SysFile
this.index = index;
}
public String getCondition() {
return condition;
}
public void setCondition(String condition) {
this.condition = condition;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)

@ -85,6 +85,12 @@ public class WxMode extends BaseEntity
private String lockCompanyTag;
// 弹出弹窗实体类
private List<WxModeOpenSource> openSourceData;
// 服务实体类
private List<WxModeServiceInfo> serviceData;
// 组合实体类
private List<WxModeCombineInfo> combineData;
private List<Long> lockWechatTagArray = new ArrayList<Long>();
@ -259,6 +265,30 @@ public class WxMode extends BaseEntity
this.lockCompanyTagArray = lockCompanyTagArray;
}
public List<WxModeOpenSource> getOpenSourceData() {
return openSourceData;
}
public void setOpenSourceData(List<WxModeOpenSource> openSourceData) {
this.openSourceData = openSourceData;
}
public List<WxModeServiceInfo> getServiceData() {
return serviceData;
}
public void setServiceData(List<WxModeServiceInfo> serviceData) {
this.serviceData = serviceData;
}
public List<WxModeCombineInfo> getCombineData() {
return combineData;
}
public void setCombineData(List<WxModeCombineInfo> combineData) {
this.combineData = combineData;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)

@ -0,0 +1,106 @@
package com.flossom.common.core.domain.entity;
import com.flossom.common.core.annotation.Excel;
import com.flossom.common.core.web.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import java.util.List;
/**
* wx_mode_combine_info
*
* @author flossom
* @date 2024-02-01
*/
public class WxModeCombineInfo extends BaseEntity
{
private static final long serialVersionUID = 1L;
/** 主键ID */
private Long id;
/** 关联模式ID */
@Excel(name = "关联模式ID")
private Long modeId;
/** 组合时间 */
@Excel(name = "组合时间")
private Integer combine;
/** 使用技术ID */
@Excel(name = "使用技术ID")
private String technologyInfo;
/** 功效内容 */
@Excel(name = "功效内容")
private String effectContent;
private List<String> technologyArray;
public void setId(Long id)
{
this.id = id;
}
public Long getId()
{
return id;
}
public void setModeId(Long modeId)
{
this.modeId = modeId;
}
public Long getModeId()
{
return modeId;
}
public void setCombine(Integer combine)
{
this.combine = combine;
}
public Integer getCombine()
{
return combine;
}
public void setTechnologyInfo(String technologyInfo)
{
this.technologyInfo = technologyInfo;
}
public String getTechnologyInfo()
{
return technologyInfo;
}
public void setEffectContent(String effectContent)
{
this.effectContent = effectContent;
}
public String getEffectContent()
{
return effectContent;
}
public List<String> getTechnologyArray() {
return technologyArray;
}
public void setTechnologyArray(List<String> technologyArray) {
this.technologyArray = technologyArray;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("id", getId())
.append("modeId", getModeId())
.append("combine", getCombine())
.append("technologyInfo", getTechnologyInfo())
.append("effectContent", getEffectContent())
.append("createTime", getCreateTime())
.append("createBy", getCreateBy())
.toString();
}
}

@ -0,0 +1,121 @@
package com.flossom.common.core.domain.entity;
import com.flossom.common.core.annotation.Excel;
import com.flossom.common.core.web.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
/**
* IOT wx_mode_open_source
*
* @author flossom
* @date 2024-01-29
*/
public class WxModeOpenSource extends BaseEntity
{
private static final long serialVersionUID = 1L;
/** 主键ID */
private Long id;
/** $column.columnComment */
private Long modeId;
/** 弹出标题 */
@Excel(name = "弹出标题")
private String openTitle;
/** 弹出媒体URL */
@Excel(name = "弹出媒体URL")
private String openSourceUrl;
/** 文件名字 */
@Excel(name = "文件名字")
private String openSourceName;
/** 文件后缀 */
@Excel(name = "文件后缀")
private String openSourceSuffix;
/** 提示内容 */
@Excel(name = "提示内容")
private String openContent;
public void setId(Long id)
{
this.id = id;
}
public Long getId()
{
return id;
}
public void setOpenTitle(String openTitle)
{
this.openTitle = openTitle;
}
public String getOpenTitle()
{
return openTitle;
}
public void setOpenSourceUrl(String openSourceUrl)
{
this.openSourceUrl = openSourceUrl;
}
public String getOpenSourceUrl()
{
return openSourceUrl;
}
public void setOpenSourceName(String openSourceName)
{
this.openSourceName = openSourceName;
}
public String getOpenSourceName()
{
return openSourceName;
}
public void setOpenSourceSuffix(String openSourceSuffix)
{
this.openSourceSuffix = openSourceSuffix;
}
public String getOpenSourceSuffix()
{
return openSourceSuffix;
}
public void setOpenContent(String openContent)
{
this.openContent = openContent;
}
public String getOpenContent()
{
return openContent;
}
public Long getModeId() {
return modeId;
}
public void setModeId(Long modeId) {
this.modeId = modeId;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("id", getId())
.append("openTitle", getOpenTitle())
.append("openSourceUrl", getOpenSourceUrl())
.append("openSourceName", getOpenSourceName())
.append("openSourceSuffix", getOpenSourceSuffix())
.append("openContent", getOpenContent())
.append("createTime", getCreateTime())
.append("createBy", getCreateBy())
.toString();
}
}

@ -0,0 +1,124 @@
package com.flossom.common.core.domain.entity;
import java.util.Date;
import java.util.List;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.flossom.common.core.annotation.Excel;
import com.flossom.common.core.web.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
/**
* wx_mode_service_info
*
* @author flossom
* @date 2024-02-01
*/
public class WxModeServiceInfo extends BaseEntity
{
private static final long serialVersionUID = 1L;
/** 主键ID */
private Long id;
/** 模式ID */
private Long modeId;
/** 服务开始时间 */
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "服务开始时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date serviceStartTime;
/** 服务结束时间 */
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "服务结束时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date serviceEndTime;
/** 启动图片资源 */
@Excel(name = "启动图片资源")
private String startSource;
/** 暂停图片资源 */
@Excel(name = "暂停图片资源")
private String stopSource;
// 上传的时间集合
private List<Date> startTimeArray;
public void setId(Long id)
{
this.id = id;
}
public Long getId()
{
return id;
}
public void setServiceStartTime(Date serviceStartTime)
{
this.serviceStartTime = serviceStartTime;
}
public Date getServiceStartTime()
{
return serviceStartTime;
}
public void setServiceEndTime(Date serviceEndTime)
{
this.serviceEndTime = serviceEndTime;
}
public Date getServiceEndTime()
{
return serviceEndTime;
}
public void setStartSource(String startSource)
{
this.startSource = startSource;
}
public String getStartSource()
{
return startSource;
}
public void setStopSource(String stopSource)
{
this.stopSource = stopSource;
}
public String getStopSource()
{
return stopSource;
}
public List<Date> getStartTimeArray() {
return startTimeArray;
}
public void setStartTimeArray(List<Date> startTimeArray) {
this.startTimeArray = startTimeArray;
}
public Long getModeId() {
return modeId;
}
public void setModeId(Long modeId) {
this.modeId = modeId;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("id", getId())
.append("serviceStartTime", getServiceStartTime())
.append("serviceEndTime", getServiceEndTime())
.append("startSource", getStartSource())
.append("stopSource", getStopSource())
.append("createTime", getCreateTime())
.append("createBy", getCreateBy())
.toString();
}
}

@ -0,0 +1,69 @@
package com.flossom.common.core.mapper;
import com.flossom.common.core.domain.entity.WxModeCombineInfo;
import java.util.List;
/**
* Mapper
*
* @author flossom
* @date 2024-02-01
*/
public interface WxModeCombineInfoMapper
{
/**
*
*
* @param id
* @return
*/
public WxModeCombineInfo selectWxModeCombineInfoById(Long id);
/**
*
*
* @param wxModeCombineInfo
* @return
*/
public List<WxModeCombineInfo> selectWxModeCombineInfoList(WxModeCombineInfo wxModeCombineInfo);
/**
*
*
* @param wxModeCombineInfo
* @return
*/
public int insertWxModeCombineInfo(WxModeCombineInfo wxModeCombineInfo);
/**
*
*
* @param wxModeCombineInfo
* @return
*/
public int updateWxModeCombineInfo(WxModeCombineInfo wxModeCombineInfo);
/**
*
*
* @param id
* @return
*/
public int deleteWxModeCombineInfoById(Long id);
/**
*
*
* @param ids
* @return
*/
public int deleteWxModeCombineInfoByIds(Long[] ids);
/**
*
*
* @param modeId
* @return
*/
public int deleteWxModeCombineInfoByModeId(Long modeId);
}

@ -0,0 +1,70 @@
package com.flossom.common.core.mapper;
import com.flossom.common.core.domain.entity.WxModeOpenSource;
import java.util.List;
/**
* IOTMapper
*
* @author flossom
* @date 2024-01-29
*/
public interface WxModeOpenSourceMapper
{
/**
* IOT
*
* @param id IOT
* @return IOT
*/
public WxModeOpenSource selectWxModeOpenSourceById(Long id);
/**
* IOT
*
* @param wxModeOpenSource IOT
* @return IOT
*/
public List<WxModeOpenSource> selectWxModeOpenSourceList(WxModeOpenSource wxModeOpenSource);
/**
* IOT
*
* @param wxModeOpenSource IOT
* @return
*/
public int insertWxModeOpenSource(WxModeOpenSource wxModeOpenSource);
/**
* IOT
*
* @param wxModeOpenSource IOT
* @return
*/
public int updateWxModeOpenSource(WxModeOpenSource wxModeOpenSource);
/**
* IOT
*
* @param id IOT
* @return
*/
public int deleteWxModeOpenSourceById(Long id);
/**
* IOT
*
* @param ids
* @return
*/
public int deleteWxModeOpenSourceByIds(Long[] ids);
/**
* IOT
*
* @param modeId ID
* @return
*/
public int deleteWxModeOpenSourceByModeId(Long modeId);
}

@ -0,0 +1,69 @@
package com.flossom.common.core.mapper;
import com.flossom.common.core.domain.entity.WxModeServiceInfo;
import java.util.List;
/**
* Mapper
*
* @author flossom
* @date 2024-02-01
*/
public interface WxModeServiceInfoMapper
{
/**
*
*
* @param id
* @return
*/
public WxModeServiceInfo selectWxModeServiceInfoById(Long id);
/**
*
*
* @param wxModeServiceInfo
* @return
*/
public List<WxModeServiceInfo> selectWxModeServiceInfoList(WxModeServiceInfo wxModeServiceInfo);
/**
*
*
* @param wxModeServiceInfo
* @return
*/
public int insertWxModeServiceInfo(WxModeServiceInfo wxModeServiceInfo);
/**
*
*
* @param wxModeServiceInfo
* @return
*/
public int updateWxModeServiceInfo(WxModeServiceInfo wxModeServiceInfo);
/**
*
*
* @param id
* @return
*/
public int deleteWxModeServiceInfoById(Long id);
/**
*
*
* @param ids
* @return
*/
public int deleteWxModeServiceInfoByIds(Long[] ids);
/**
*
*
* @param modeId
* @return
*/
public int deleteWxModeServiceInfoByModeId(Long modeId);
}

@ -0,0 +1,86 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.flossom.common.core.mapper.WxModeCombineInfoMapper">
<resultMap type="WxModeCombineInfo" id="WxModeCombineInfoResult">
<result property="id" column="id" />
<result property="modeId" column="mode_id" />
<result property="combine" column="combine" />
<result property="technologyInfo" column="technology_info" />
<result property="effectContent" column="effect_content" />
<result property="createTime" column="create_time" />
<result property="createBy" column="create_by" />
</resultMap>
<sql id="selectWxModeCombineInfoVo">
select id, mode_id, combine, technology_info, effect_content, create_time, create_by from wx_mode_combine_info
</sql>
<select id="selectWxModeCombineInfoList" parameterType="WxModeCombineInfo" resultMap="WxModeCombineInfoResult">
<include refid="selectWxModeCombineInfoVo"/>
<where>
<if test="modeId != null "> and mode_id = #{modeId}</if>
<if test="combine != null "> and combine = #{combine}</if>
<if test="technologyInfo != null and technologyInfo != ''"> and technology_info = #{technologyInfo}</if>
<if test="effectContent != null and effectContent != ''"> and effect_content = #{effectContent}</if>
</where>
</select>
<select id="selectWxModeCombineInfoById" parameterType="Long" resultMap="WxModeCombineInfoResult">
<include refid="selectWxModeCombineInfoVo"/>
where id = #{id}
</select>
<insert id="insertWxModeCombineInfo" parameterType="WxModeCombineInfo">
insert into wx_mode_combine_info
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="id != null">id,</if>
<if test="modeId != null">mode_id,</if>
<if test="combine != null">combine,</if>
<if test="technologyInfo != null">technology_info,</if>
<if test="effectContent != null">effect_content,</if>
<if test="createTime != null">create_time,</if>
<if test="createBy != null">create_by,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="id != null">#{id},</if>
<if test="modeId != null">#{modeId},</if>
<if test="combine != null">#{combine},</if>
<if test="technologyInfo != null">#{technologyInfo},</if>
<if test="effectContent != null">#{effectContent},</if>
<if test="createTime != null">#{createTime},</if>
<if test="createBy != null">#{createBy},</if>
</trim>
</insert>
<update id="updateWxModeCombineInfo" parameterType="WxModeCombineInfo">
update wx_mode_combine_info
<trim prefix="SET" suffixOverrides=",">
<if test="modeId != null">mode_id = #{modeId},</if>
<if test="combine != null">combine = #{combine},</if>
<if test="technologyInfo != null">technology_info = #{technologyInfo},</if>
<if test="effectContent != null">effect_content = #{effectContent},</if>
<if test="createTime != null">create_time = #{createTime},</if>
<if test="createBy != null">create_by = #{createBy},</if>
</trim>
where id = #{id}
</update>
<delete id="deleteWxModeCombineInfoById" parameterType="Long">
delete from wx_mode_combine_info where id = #{id}
</delete>
<delete id="deleteWxModeCombineInfoByModeId" parameterType="Long">
delete from wx_mode_combine_info where mode_id = #{modeId}
</delete>
<delete id="deleteWxModeCombineInfoByIds" parameterType="String">
delete from wx_mode_combine_info where id in
<foreach item="id" collection="array" open="(" separator="," close=")">
#{id}
</foreach>
</delete>
</mapper>

@ -0,0 +1,94 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.flossom.common.core.mapper.WxModeOpenSourceMapper">
<resultMap type="WxModeOpenSource" id="WxModeOpenSourceResult">
<result property="id" column="id" />
<result property="modeId" column="mode_id" />
<result property="openTitle" column="open_title" />
<result property="openSourceUrl" column="open_source_url" />
<result property="openSourceName" column="open_source_name" />
<result property="openSourceSuffix" column="open_source_suffix" />
<result property="openContent" column="open_content" />
<result property="createTime" column="create_time" />
<result property="createBy" column="create_by" />
</resultMap>
<sql id="selectWxModeOpenSourceVo">
select id, mode_id,open_title, open_source_url, open_source_name, open_source_suffix, open_content, create_time, create_by from wx_mode_open_source
</sql>
<select id="selectWxModeOpenSourceList" parameterType="WxModeOpenSource" resultMap="WxModeOpenSourceResult">
<include refid="selectWxModeOpenSourceVo"/>
<where>
<if test="modeId != null and modeId != ''"> and mode_id = #{modeId}</if>
<if test="openTitle != null and openTitle != ''"> and open_title = #{openTitle}</if>
<if test="openSourceUrl != null and openSourceUrl != ''"> and open_source_url = #{openSourceUrl}</if>
<if test="openSourceName != null and openSourceName != ''"> and open_source_name like concat('%', #{openSourceName}, '%')</if>
<if test="openSourceSuffix != null and openSourceSuffix != ''"> and open_source_suffix = #{openSourceSuffix}</if>
<if test="openContent != null and openContent != ''"> and open_content = #{openContent}</if>
</where>
</select>
<select id="selectWxModeOpenSourceById" parameterType="Long" resultMap="WxModeOpenSourceResult">
<include refid="selectWxModeOpenSourceVo"/>
where id = #{id}
</select>
<insert id="insertWxModeOpenSource" parameterType="WxModeOpenSource">
insert into wx_mode_open_source
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="id != null">id,</if>
<if test="modeId != null">mode_id,</if>
<if test="openTitle != null">open_title,</if>
<if test="openSourceUrl != null">open_source_url,</if>
<if test="openSourceName != null">open_source_name,</if>
<if test="openSourceSuffix != null">open_source_suffix,</if>
<if test="openContent != null">open_content,</if>
<if test="createTime != null">create_time,</if>
<if test="createBy != null">create_by,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="id != null">#{id},</if>
<if test="modeId != null">#{modeId},</if>
<if test="openTitle != null">#{openTitle},</if>
<if test="openSourceUrl != null">#{openSourceUrl},</if>
<if test="openSourceName != null">#{openSourceName},</if>
<if test="openSourceSuffix != null">#{openSourceSuffix},</if>
<if test="openContent != null">#{openContent},</if>
<if test="createTime != null">#{createTime},</if>
<if test="createBy != null">#{createBy},</if>
</trim>
</insert>
<update id="updateWxModeOpenSource" parameterType="WxModeOpenSource">
update wx_mode_open_source
<trim prefix="SET" suffixOverrides=",">
<if test="modeId != null">mode_id = #{modeId},</if>
<if test="openTitle != null">open_title = #{openTitle},</if>
<if test="openSourceUrl != null">open_source_url = #{openSourceUrl},</if>
<if test="openSourceName != null">open_source_name = #{openSourceName},</if>
<if test="openSourceSuffix != null">open_source_suffix = #{openSourceSuffix},</if>
<if test="openContent != null">open_content = #{openContent},</if>
<if test="createTime != null">create_time = #{createTime},</if>
<if test="createBy != null">create_by = #{createBy},</if>
</trim>
where id = #{id}
</update>
<delete id="deleteWxModeOpenSourceById" parameterType="Long">
delete from wx_mode_open_source where id = #{id}
</delete>
<delete id="deleteWxModeOpenSourceByModeId" parameterType="Long">
delete from wx_mode_open_source where mode_id = #{modId}
</delete>
<delete id="deleteWxModeOpenSourceByIds" parameterType="String">
delete from wx_mode_open_source where id in
<foreach item="id" collection="array" open="(" separator="," close=")">
#{id}
</foreach>
</delete>
</mapper>

@ -0,0 +1,90 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.flossom.common.core.mapper.WxModeServiceInfoMapper">
<resultMap type="WxModeServiceInfo" id="WxModeServiceInfoResult">
<result property="id" column="id" />
<result property="modeId" column="mode_id" />
<result property="serviceStartTime" column="service_start_time" />
<result property="serviceEndTime" column="service_end_time" />
<result property="startSource" column="start_source" />
<result property="stopSource" column="stop_source" />
<result property="createTime" column="create_time" />
<result property="createBy" column="create_by" />
</resultMap>
<sql id="selectWxModeServiceInfoVo">
select id,mode_id, service_start_time, service_end_time, start_source, stop_source, create_time, create_by from wx_mode_service_info
</sql>
<select id="selectWxModeServiceInfoList" parameterType="WxModeServiceInfo" resultMap="WxModeServiceInfoResult">
<include refid="selectWxModeServiceInfoVo"/>
<where>
<if test="modeId != null "> and mode_id = #{modeId}</if>
<if test="serviceStartTime != null "> and service_start_time = #{serviceStartTime}</if>
<if test="serviceEndTime != null "> and service_end_time = #{serviceEndTime}</if>
<if test="startSource != null and startSource != ''"> and start_source = #{startSource}</if>
<if test="stopSource != null and stopSource != ''"> and stop_source = #{stopSource}</if>
</where>
</select>
<select id="selectWxModeServiceInfoById" parameterType="Long" resultMap="WxModeServiceInfoResult">
<include refid="selectWxModeServiceInfoVo"/>
where id = #{id}
</select>
<insert id="insertWxModeServiceInfo" parameterType="WxModeServiceInfo" useGeneratedKeys="true" keyProperty="id">
insert into wx_mode_service_info
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="modeId != null">mode_id,</if>
<if test="serviceStartTime != null">service_start_time,</if>
<if test="serviceEndTime != null">service_end_time,</if>
<if test="startSource != null">start_source,</if>
<if test="stopSource != null">stop_source,</if>
<if test="createTime != null">create_time,</if>
<if test="createBy != null">create_by,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="modeId != null">#{modeId},</if>
<if test="serviceStartTime != null">#{serviceStartTime},</if>
<if test="serviceEndTime != null">#{serviceEndTime},</if>
<if test="startSource != null">#{startSource},</if>
<if test="stopSource != null">#{stopSource},</if>
<if test="createTime != null">#{createTime},</if>
<if test="createBy != null">#{createBy},</if>
</trim>
</insert>
<update id="updateWxModeServiceInfo" parameterType="WxModeServiceInfo">
update wx_mode_service_info
<trim prefix="SET" suffixOverrides=",">
<if test="modeId != null">mode_id = #{modeId},</if>
<if test="serviceStartTime != null">service_start_time = #{serviceStartTime},</if>
<if test="serviceEndTime != null">service_end_time = #{serviceEndTime},</if>
<if test="startSource != null">start_source = #{startSource},</if>
<if test="stopSource != null">stop_source = #{stopSource},</if>
<if test="createTime != null">create_time = #{createTime},</if>
<if test="createBy != null">create_by = #{createBy},</if>
</trim>
where id = #{id}
</update>
<delete id="deleteWxModeServiceInfoById" parameterType="Long">
delete from wx_mode_service_info where id = #{id}
</delete>
<delete id="deleteWxModeServiceInfoByModeId" parameterType="Long">
delete from wx_mode_service_info where mode_id = #{modeId}
</delete>
<delete id="deleteWxModeServiceInfoByIds" parameterType="String">
delete from wx_mode_service_info where id in
<foreach item="id" collection="array" open="(" separator="," close=")">
#{id}
</foreach>
</delete>
</mapper>

@ -54,7 +54,7 @@ public class SysFileController
*
*/
@PostMapping("upload/else")
public R<SysFile> upload(MultipartFile file, int index)
public R<SysFile> upload(MultipartFile file, int index, String condition)
{
try
{
@ -65,6 +65,7 @@ public class SysFileController
sysFile.setName(FileUtils.getName(url));
sysFile.setUrl(url);
sysFile.setIndex(index);
sysFile.setCondition(condition);
return R.ok(sysFile);
}
catch (Exception e)

@ -0,0 +1,106 @@
package com.flossom.system.controller;
import java.util.List;
import java.io.IOException;
import javax.servlet.http.HttpServletResponse;
import com.flossom.common.core.domain.entity.WxModeOpenSource;
import com.flossom.common.core.utils.poi.ExcelUtil;
import com.flossom.common.core.web.controller.BaseController;
import com.flossom.common.core.web.domain.AjaxResult;
import com.flossom.common.core.web.page.TableDataInfo;
import com.flossom.common.log.annotation.Log;
import com.flossom.common.log.enums.BusinessType;
import com.flossom.common.security.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.flossom.system.service.IWxModeOpenSourceService;
/**
* IOTController
*
* @author flossom
* @date 2024-01-29
*/
@RestController
@RequestMapping("/modeOpenSource")
public class WxModeOpenSourceController extends BaseController
{
@Autowired
private IWxModeOpenSourceService wxModeOpenSourceService;
/**
* IOT
*/
@RequiresPermissions("system:modeOpenSource:list")
@GetMapping("/list")
public TableDataInfo list(WxModeOpenSource wxModeOpenSource)
{
startPage();
List<WxModeOpenSource> list = wxModeOpenSourceService.selectWxModeOpenSourceList(wxModeOpenSource);
return getDataTable(list);
}
/**
* IOT
*/
@RequiresPermissions("system:modeOpenSource:export")
@Log(title = "IOT仪器弹出视频", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(HttpServletResponse response, WxModeOpenSource wxModeOpenSource)
{
List<WxModeOpenSource> list = wxModeOpenSourceService.selectWxModeOpenSourceList(wxModeOpenSource);
ExcelUtil<WxModeOpenSource> util = new ExcelUtil<WxModeOpenSource>(WxModeOpenSource.class);
util.exportExcel(response, list, "IOT仪器弹出视频数据");
}
/**
* IOT
*/
@RequiresPermissions("system:modeOpenSource:query")
@GetMapping(value = "/{id}")
public AjaxResult getInfo(@PathVariable("id") Long id)
{
return success(wxModeOpenSourceService.selectWxModeOpenSourceById(id));
}
/**
* IOT
*/
@RequiresPermissions("system:modeOpenSource:add")
@Log(title = "IOT仪器弹出视频", businessType = BusinessType.INSERT)
@PostMapping
public AjaxResult add(@RequestBody WxModeOpenSource wxModeOpenSource)
{
return toAjax(wxModeOpenSourceService.insertWxModeOpenSource(wxModeOpenSource));
}
/**
* IOT
*/
@RequiresPermissions("system:modeOpenSource:edit")
@Log(title = "IOT仪器弹出视频", businessType = BusinessType.UPDATE)
@PutMapping
public AjaxResult edit(@RequestBody WxModeOpenSource wxModeOpenSource)
{
return toAjax(wxModeOpenSourceService.updateWxModeOpenSource(wxModeOpenSource));
}
/**
* IOT
*/
@RequiresPermissions("system:modeOpenSource:remove")
@Log(title = "IOT仪器弹出视频", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public AjaxResult remove(@PathVariable Long[] ids)
{
return toAjax(wxModeOpenSourceService.deleteWxModeOpenSourceByIds(ids));
}
}

@ -0,0 +1,62 @@
package com.flossom.system.service;
import com.flossom.common.core.domain.entity.WxModeCombineInfo;
import java.util.List;
/**
* Service
*
* @author flossom
* @date 2024-02-01
*/
public interface IWxModeCombineInfoService
{
/**
*
*
* @param id
* @return
*/
public WxModeCombineInfo selectWxModeCombineInfoById(Long id);
/**
*
*
* @param wxModeCombineInfo
* @return
*/
public List<WxModeCombineInfo> selectWxModeCombineInfoList(WxModeCombineInfo wxModeCombineInfo);
/**
*
*
* @param wxModeCombineInfo
* @return
*/
public int insertWxModeCombineInfo(WxModeCombineInfo wxModeCombineInfo);
/**
*
*
* @param wxModeCombineInfo
* @return
*/
public int updateWxModeCombineInfo(WxModeCombineInfo wxModeCombineInfo);
/**
*
*
* @param ids
* @return
*/
public int deleteWxModeCombineInfoByIds(Long[] ids);
/**
*
*
* @param id
* @return
*/
public int deleteWxModeCombineInfoById(Long id);
}

@ -0,0 +1,62 @@
package com.flossom.system.service;
import com.flossom.common.core.domain.entity.WxModeOpenSource;
import java.util.List;
/**
* IOTService
*
* @author flossom
* @date 2024-01-29
*/
public interface IWxModeOpenSourceService
{
/**
* IOT
*
* @param id IOT
* @return IOT
*/
public WxModeOpenSource selectWxModeOpenSourceById(Long id);
/**
* IOT
*
* @param wxModeOpenSource IOT
* @return IOT
*/
public List<WxModeOpenSource> selectWxModeOpenSourceList(WxModeOpenSource wxModeOpenSource);
/**
* IOT
*
* @param wxModeOpenSource IOT
* @return
*/
public int insertWxModeOpenSource(WxModeOpenSource wxModeOpenSource);
/**
* IOT
*
* @param wxModeOpenSource IOT
* @return
*/
public int updateWxModeOpenSource(WxModeOpenSource wxModeOpenSource);
/**
* IOT
*
* @param ids IOT
* @return
*/
public int deleteWxModeOpenSourceByIds(Long[] ids);
/**
* IOT
*
* @param id IOT
* @return
*/
public int deleteWxModeOpenSourceById(Long id);
}

@ -0,0 +1,62 @@
package com.flossom.system.service;
import com.flossom.common.core.domain.entity.WxModeServiceInfo;
import java.util.List;
/**
* Service
*
* @author flossom
* @date 2024-02-01
*/
public interface IWxModeServiceInfoService
{
/**
*
*
* @param id
* @return
*/
public WxModeServiceInfo selectWxModeServiceInfoById(Long id);
/**
*
*
* @param wxModeServiceInfo
* @return
*/
public List<WxModeServiceInfo> selectWxModeServiceInfoList(WxModeServiceInfo wxModeServiceInfo);
/**
*
*
* @param wxModeServiceInfo
* @return
*/
public int insertWxModeServiceInfo(WxModeServiceInfo wxModeServiceInfo);
/**
*
*
* @param wxModeServiceInfo
* @return
*/
public int updateWxModeServiceInfo(WxModeServiceInfo wxModeServiceInfo);
/**
*
*
* @param ids
* @return
*/
public int deleteWxModeServiceInfoByIds(Long[] ids);
/**
*
*
* @param id
* @return
*/
public int deleteWxModeServiceInfoById(Long id);
}

@ -0,0 +1,96 @@
package com.flossom.system.service.impl;
import java.util.List;
import com.flossom.common.core.domain.entity.WxModeCombineInfo;
import com.flossom.common.core.mapper.WxModeCombineInfoMapper;
import com.flossom.common.core.utils.DateUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.flossom.system.service.IWxModeCombineInfoService;
/**
* Service
*
* @author flossom
* @date 2024-02-01
*/
@Service
public class WxModeCombineInfoServiceImpl implements IWxModeCombineInfoService
{
@Autowired
private WxModeCombineInfoMapper wxModeCombineInfoMapper;
/**
*
*
* @param id
* @return
*/
@Override
public WxModeCombineInfo selectWxModeCombineInfoById(Long id)
{
return wxModeCombineInfoMapper.selectWxModeCombineInfoById(id);
}
/**
*
*
* @param wxModeCombineInfo
* @return
*/
@Override
public List<WxModeCombineInfo> selectWxModeCombineInfoList(WxModeCombineInfo wxModeCombineInfo)
{
return wxModeCombineInfoMapper.selectWxModeCombineInfoList(wxModeCombineInfo);
}
/**
*
*
* @param wxModeCombineInfo
* @return
*/
@Override
public int insertWxModeCombineInfo(WxModeCombineInfo wxModeCombineInfo)
{
wxModeCombineInfo.setCreateTime(DateUtils.getNowDate());
return wxModeCombineInfoMapper.insertWxModeCombineInfo(wxModeCombineInfo);
}
/**
*
*
* @param wxModeCombineInfo
* @return
*/
@Override
public int updateWxModeCombineInfo(WxModeCombineInfo wxModeCombineInfo)
{
return wxModeCombineInfoMapper.updateWxModeCombineInfo(wxModeCombineInfo);
}
/**
*
*
* @param ids
* @return
*/
@Override
public int deleteWxModeCombineInfoByIds(Long[] ids)
{
return wxModeCombineInfoMapper.deleteWxModeCombineInfoByIds(ids);
}
/**
*
*
* @param id
* @return
*/
@Override
public int deleteWxModeCombineInfoById(Long id)
{
return wxModeCombineInfoMapper.deleteWxModeCombineInfoById(id);
}
}

@ -0,0 +1,96 @@
package com.flossom.system.service.impl;
import java.util.List;
import com.flossom.common.core.domain.entity.WxModeOpenSource;
import com.flossom.common.core.mapper.WxModeOpenSourceMapper;
import com.flossom.common.core.utils.DateUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.flossom.system.service.IWxModeOpenSourceService;
/**
* IOTService
*
* @author flossom
* @date 2024-01-29
*/
@Service
public class WxModeOpenSourceServiceImpl implements IWxModeOpenSourceService
{
@Autowired
private WxModeOpenSourceMapper wxModeOpenSourceMapper;
/**
* IOT
*
* @param id IOT
* @return IOT
*/
@Override
public WxModeOpenSource selectWxModeOpenSourceById(Long id)
{
return wxModeOpenSourceMapper.selectWxModeOpenSourceById(id);
}
/**
* IOT
*
* @param wxModeOpenSource IOT
* @return IOT
*/
@Override
public List<WxModeOpenSource> selectWxModeOpenSourceList(WxModeOpenSource wxModeOpenSource)
{
return wxModeOpenSourceMapper.selectWxModeOpenSourceList(wxModeOpenSource);
}
/**
* IOT
*
* @param wxModeOpenSource IOT
* @return
*/
@Override
public int insertWxModeOpenSource(WxModeOpenSource wxModeOpenSource)
{
wxModeOpenSource.setCreateTime(DateUtils.getNowDate());
return wxModeOpenSourceMapper.insertWxModeOpenSource(wxModeOpenSource);
}
/**
* IOT
*
* @param wxModeOpenSource IOT
* @return
*/
@Override
public int updateWxModeOpenSource(WxModeOpenSource wxModeOpenSource)
{
return wxModeOpenSourceMapper.updateWxModeOpenSource(wxModeOpenSource);
}
/**
* IOT
*
* @param ids IOT
* @return
*/
@Override
public int deleteWxModeOpenSourceByIds(Long[] ids)
{
return wxModeOpenSourceMapper.deleteWxModeOpenSourceByIds(ids);
}
/**
* IOT
*
* @param id IOT
* @return
*/
@Override
public int deleteWxModeOpenSourceById(Long id)
{
return wxModeOpenSourceMapper.deleteWxModeOpenSourceById(id);
}
}

@ -1,15 +1,17 @@
package com.flossom.system.service.impl;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
import com.alibaba.nacos.common.utils.CollectionUtils;
import com.flossom.common.core.domain.entity.WxMode;
import com.flossom.common.core.domain.entity.WxModeTag;
import com.flossom.common.core.domain.entity.*;
import com.flossom.common.core.enums.TagTypeStatusEnum;
import com.flossom.common.core.mapper.WxModeMapper;
import com.flossom.common.core.mapper.WxModeTagMapper;
import com.flossom.common.core.mapper.*;
import com.flossom.common.core.utils.DateUtils;
import com.flossom.common.core.utils.StringUtils;
import org.apache.commons.compress.utils.Lists;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.flossom.system.service.IWxModeService;
@ -27,6 +29,12 @@ public class WxModeServiceImpl implements IWxModeService
private WxModeMapper wxModeMapper;
@Autowired
private WxModeTagMapper wxModeTagMapper;
@Autowired
private WxModeOpenSourceMapper wxModeOpenSourceMapper;
@Autowired
private WxModeServiceInfoMapper wxModeServiceInfoMapper;
@Autowired
private WxModeCombineInfoMapper wxModeCombineInfoMapper;
/**
*
*
@ -53,6 +61,35 @@ public class WxModeServiceImpl implements IWxModeService
wxMode.setLockCompanyTagArray(companyIds);
}
}
WxModeOpenSource openSource = new WxModeOpenSource();
openSource.setModeId(id);
List<WxModeOpenSource> wxModeOpenSources = wxModeOpenSourceMapper.selectWxModeOpenSourceList(openSource);
wxMode.setOpenSourceData(wxModeOpenSources);
// 获取服务内容
WxModeServiceInfo serviceInfo = new WxModeServiceInfo();
serviceInfo.setModeId(id);
List<WxModeServiceInfo> wxModeServiceInfos = wxModeServiceInfoMapper.selectWxModeServiceInfoList(serviceInfo);
for (WxModeServiceInfo wxModeServiceInfo: wxModeServiceInfos) {
List<Date> queryDate = Lists.newArrayList();
queryDate.add(wxModeServiceInfo.getServiceStartTime());
queryDate.add(wxModeServiceInfo.getServiceEndTime());
wxModeServiceInfo.setStartTimeArray(queryDate);
}
wxMode.setServiceData(wxModeServiceInfos);
// 获取组合内容
WxModeCombineInfo modeCombineInfo = new WxModeCombineInfo();
modeCombineInfo.setModeId(id);
List<WxModeCombineInfo> wxModeCombineInfos = wxModeCombineInfoMapper.selectWxModeCombineInfoList(modeCombineInfo);
for(WxModeCombineInfo wxModeCombineInfo:wxModeCombineInfos) {
String technologyInfo = wxModeCombineInfo.getTechnologyInfo();
if (StringUtils.isNotEmpty(technologyInfo)) {
List<String> technologyList = Arrays.asList(technologyInfo.split(",")).stream().map(String::valueOf).collect(Collectors.toList());
wxModeCombineInfo.setTechnologyArray(technologyList);
}
}
wxMode.setCombineData(wxModeCombineInfos);
return wxMode;
}
@ -103,6 +140,40 @@ public class WxModeServiceImpl implements IWxModeService
wxModeTagMapper.insertWxModeTag(modeTag);
}
}
// 插入弹出资源数据
if (CollectionUtils.isNotEmpty(wxMode.getOpenSourceData())) {
List<WxModeOpenSource> openSourceData = wxMode.getOpenSourceData();
for(WxModeOpenSource openSource: openSourceData) {
openSource.setCreateTime(DateUtils.getNowDate());
openSource.setModeId(wxMode.getId());
wxModeOpenSourceMapper.insertWxModeOpenSource(openSource);
}
}
// 插入服务时间内容
if (CollectionUtils.isNotEmpty(wxMode.getServiceData())) {
List<WxModeServiceInfo> serviceData = wxMode.getServiceData();
for (WxModeServiceInfo wxModeServiceInfo: serviceData) {
wxModeServiceInfo.setModeId(wxMode.getId());
wxModeServiceInfo.setCreateTime(DateUtils.getNowDate());
List<Date> startTimeArray = wxModeServiceInfo.getStartTimeArray();
wxModeServiceInfo.setServiceStartTime(startTimeArray.get(0));
wxModeServiceInfo.setServiceEndTime(startTimeArray.get(1));
wxModeServiceInfoMapper.insertWxModeServiceInfo(wxModeServiceInfo);
}
}
// 插入组合数据
if(CollectionUtils.isNotEmpty(wxMode.getCombineData())) {
List<WxModeCombineInfo> combineData = wxMode.getCombineData();
for (WxModeCombineInfo wxModeCombineInfo: combineData) {
wxModeCombineInfo.setModeId(wxMode.getId());
wxModeCombineInfo.setCreateTime(DateUtils.getNowDate());
if (CollectionUtils.isNotEmpty(wxModeCombineInfo.getTechnologyArray())) {
String keys = wxModeCombineInfo.getTechnologyArray().stream().map(String::valueOf).collect(Collectors.joining(","));
wxModeCombineInfo.setTechnologyInfo(keys);
}
wxModeCombineInfoMapper.insertWxModeCombineInfo(wxModeCombineInfo);
}
}
return i;
}
@ -118,7 +189,12 @@ public class WxModeServiceImpl implements IWxModeService
wxMode.setUpdateTime(DateUtils.getNowDate());
// 先删除关联关系
wxModeTagMapper.deleteWxModeTagByModeId(wxMode.getId());
// 删除关联弹窗视频
wxModeOpenSourceMapper.deleteWxModeOpenSourceByModeId(wxMode.getId());
// 删除服务关系
wxModeServiceInfoMapper.deleteWxModeServiceInfoByModeId(wxMode.getId());
// 删除组合关系
wxModeCombineInfoMapper.deleteWxModeCombineInfoByModeId(wxMode.getId());
// 插入企微关联关系
if (CollectionUtils.isNotEmpty(wxMode.getLockCompanyTagArray())) {
List<Long> lockCompanyTagArray = wxMode.getLockCompanyTagArray();
@ -143,6 +219,40 @@ public class WxModeServiceImpl implements IWxModeService
wxModeTagMapper.insertWxModeTag(modeTag);
}
}
// 插入弹出资源数据
if (CollectionUtils.isNotEmpty(wxMode.getOpenSourceData())) {
List<WxModeOpenSource> openSourceData = wxMode.getOpenSourceData();
for(WxModeOpenSource openSource: openSourceData) {
openSource.setCreateTime(DateUtils.getNowDate());
openSource.setModeId(wxMode.getId());
wxModeOpenSourceMapper.insertWxModeOpenSource(openSource);
}
}
// 插入服务时间已经内容
if (CollectionUtils.isNotEmpty(wxMode.getServiceData())) {
List<WxModeServiceInfo> serviceData = wxMode.getServiceData();
for (WxModeServiceInfo wxModeServiceInfo: serviceData) {
wxModeServiceInfo.setModeId(wxMode.getId());
wxModeServiceInfo.setCreateTime(DateUtils.getNowDate());
List<Date> startTimeArray = wxModeServiceInfo.getStartTimeArray();
wxModeServiceInfo.setServiceStartTime(startTimeArray.get(0));
wxModeServiceInfo.setServiceEndTime(startTimeArray.get(1));
wxModeServiceInfoMapper.insertWxModeServiceInfo(wxModeServiceInfo);
}
}
// 插入组合数据
if(CollectionUtils.isNotEmpty(wxMode.getCombineData())) {
List<WxModeCombineInfo> combineData = wxMode.getCombineData();
for (WxModeCombineInfo wxModeCombineInfo: combineData) {
wxModeCombineInfo.setModeId(wxMode.getId());
wxModeCombineInfo.setCreateTime(DateUtils.getNowDate());
if (CollectionUtils.isNotEmpty(wxModeCombineInfo.getTechnologyArray())) {
String keys = wxModeCombineInfo.getTechnologyArray().stream().map(String::valueOf).collect(Collectors.joining(","));
wxModeCombineInfo.setTechnologyInfo(keys);
}
wxModeCombineInfoMapper.insertWxModeCombineInfo(wxModeCombineInfo);
}
}
return wxModeMapper.updateWxMode(wxMode);
}

@ -0,0 +1,96 @@
package com.flossom.system.service.impl;
import java.util.List;
import com.flossom.common.core.domain.entity.WxModeServiceInfo;
import com.flossom.common.core.mapper.WxModeServiceInfoMapper;
import com.flossom.common.core.utils.DateUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.flossom.system.service.IWxModeServiceInfoService;
/**
* Service
*
* @author flossom
* @date 2024-02-01
*/
@Service
public class WxModeServiceInfoServiceImpl implements IWxModeServiceInfoService
{
@Autowired
private WxModeServiceInfoMapper wxModeServiceInfoMapper;
/**
*
*
* @param id
* @return
*/
@Override
public WxModeServiceInfo selectWxModeServiceInfoById(Long id)
{
return wxModeServiceInfoMapper.selectWxModeServiceInfoById(id);
}
/**
*
*
* @param wxModeServiceInfo
* @return
*/
@Override
public List<WxModeServiceInfo> selectWxModeServiceInfoList(WxModeServiceInfo wxModeServiceInfo)
{
return wxModeServiceInfoMapper.selectWxModeServiceInfoList(wxModeServiceInfo);
}
/**
*
*
* @param wxModeServiceInfo
* @return
*/
@Override
public int insertWxModeServiceInfo(WxModeServiceInfo wxModeServiceInfo)
{
wxModeServiceInfo.setCreateTime(DateUtils.getNowDate());
return wxModeServiceInfoMapper.insertWxModeServiceInfo(wxModeServiceInfo);
}
/**
*
*
* @param wxModeServiceInfo
* @return
*/
@Override
public int updateWxModeServiceInfo(WxModeServiceInfo wxModeServiceInfo)
{
return wxModeServiceInfoMapper.updateWxModeServiceInfo(wxModeServiceInfo);
}
/**
*
*
* @param ids
* @return
*/
@Override
public int deleteWxModeServiceInfoByIds(Long[] ids)
{
return wxModeServiceInfoMapper.deleteWxModeServiceInfoByIds(ids);
}
/**
*
*
* @param id
* @return
*/
@Override
public int deleteWxModeServiceInfoById(Long id)
{
return wxModeServiceInfoMapper.deleteWxModeServiceInfoById(id);
}
}

@ -9,6 +9,16 @@ export function listMode(query) {
})
}
// 查询模式所有数据
export function listModeAll(query) {
return request({
url: '/system/mode/listAll',
method: 'get',
params: query
})
}
// 查询模式列详细
export function getMode(id) {
return request({

@ -0,0 +1,44 @@
import request from '@/utils/request'
// 查询IOT仪器弹出视频列表
export function listSource(query) {
return request({
url: '/system/modeOpenSource/list',
method: 'get',
params: query
})
}
// 查询IOT仪器弹出视频详细
export function getSource(id) {
return request({
url: '/system/modeOpenSource/' + id,
method: 'get'
})
}
// 新增IOT仪器弹出视频
export function addSource(data) {
return request({
url: '/system/modeOpenSource',
method: 'post',
data: data
})
}
// 修改IOT仪器弹出视频
export function updateSource(data) {
return request({
url: '/system/modeOpenSource',
method: 'put',
data: data
})
}
// 删除IOT仪器弹出视频
export function delSource(id) {
return request({
url: '/system/modeOpenSource/' + id,
method: 'delete'
})
}

@ -48,7 +48,7 @@
ref="upload"
:limit="1"
accept=".jpg, .png, .jpeg"
:data="{index:index}"
:data="{index:index,condition: index+''}"
:headers="upload.headers"
:action="upload.url+'/else'"
:disabled="upload.isUploading"

@ -1,100 +1,5 @@
<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="instrumentModel">-->
<!-- <el-input-->
<!-- v-model="queryParams.instrumentModel"-->
<!-- placeholder="请输入仪器型号"-->
<!-- clearable-->
<!-- @keyup.enter.native="handleQuery"-->
<!-- />-->
<!-- </el-form-item>-->
<!-- <el-form-item label="模式名称" prop="modeName">-->
<!-- <el-input-->
<!-- v-model="queryParams.modeName"-->
<!-- placeholder="请输入模式名称"-->
<!-- clearable-->
<!-- @keyup.enter.native="handleQuery"-->
<!-- />-->
<!-- </el-form-item>-->
<!-- <el-form-item label="模式描述" prop="modeDesc">-->
<!-- <el-input-->
<!-- v-model="queryParams.modeDesc"-->
<!-- placeholder="请输入模式描述"-->
<!-- clearable-->
<!-- @keyup.enter.native="handleQuery"-->
<!-- />-->
<!-- </el-form-item>-->
<!-- <el-form-item label="模式封面图片" prop="modeBanner">-->
<!-- <el-input-->
<!-- v-model="queryParams.modeBanner"-->
<!-- placeholder="请输入模式封面图片"-->
<!-- clearable-->
<!-- @keyup.enter.native="handleQuery"-->
<!-- />-->
<!-- </el-form-item>-->
<!-- <el-form-item label="模式视频" prop="modeVideo">-->
<!-- <el-input-->
<!-- v-model="queryParams.modeVideo"-->
<!-- placeholder="请输入模式视频"-->
<!-- clearable-->
<!-- @keyup.enter.native="handleQuery"-->
<!-- />-->
<!-- </el-form-item>-->
<!-- <el-form-item label="模式分类(每个仪器有不一样的模式分类)" prop="modeClass">-->
<!-- <el-input-->
<!-- v-model="queryParams.modeClass"-->
<!-- placeholder="请输入模式分类(每个仪器有不一样的模式分类)"-->
<!-- clearable-->
<!-- @keyup.enter.native="handleQuery"-->
<!-- />-->
<!-- </el-form-item>-->
<!-- <el-form-item label="是否属于舱体模式0、不是 1、是" prop="isCabinMode">-->
<!-- <el-input-->
<!-- v-model="queryParams.isCabinMode"-->
<!-- placeholder="请输入是否属于舱体模式0、不是 1、是"-->
<!-- clearable-->
<!-- @keyup.enter.native="handleQuery"-->
<!-- />-->
<!-- </el-form-item>-->
<!-- <el-form-item label="模式时长" prop="modeTime">-->
<!-- <el-date-picker clearable-->
<!-- v-model="queryParams.modeTime"-->
<!-- type="date"-->
<!-- value-format="yyyy-MM-dd"-->
<!-- placeholder="请选择模式时长">-->
<!-- </el-date-picker>-->
<!-- </el-form-item>-->
<!-- <el-form-item label="准备视频" prop="preparationVideo">-->
<!-- <el-input-->
<!-- v-model="queryParams.preparationVideo"-->
<!-- placeholder="请输入准备视频"-->
<!-- clearable-->
<!-- @keyup.enter.native="handleQuery"-->
<!-- />-->
<!-- </el-form-item>-->
<!-- <el-form-item label="启动图片GIF" prop="beganVideo">-->
<!-- <el-input-->
<!-- v-model="queryParams.beganVideo"-->
<!-- placeholder="请输入启动图片GIF"-->
<!-- clearable-->
<!-- @keyup.enter.native="handleQuery"-->
<!-- />-->
<!-- </el-form-item>-->
<!-- <el-form-item label="暂停图片GIF" prop="pauseVideo">-->
<!-- <el-input-->
<!-- v-model="queryParams.pauseVideo"-->
<!-- placeholder="请输入暂停图片GIF"-->
<!-- 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>-->
<!-- </el-form-item>-->
<!-- </el-form>-->
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
@ -106,38 +11,6 @@
v-hasPermi="['system:mode:add']"
>新增</el-button>
</el-col>
<!-- <el-col :span="1.5">-->
<!-- <el-button-->
<!-- type="success"-->
<!-- plain-->
<!-- icon="el-icon-edit"-->
<!-- size="mini"-->
<!-- :disabled="single"-->
<!-- @click="handleUpdate"-->
<!-- v-hasPermi="['system:mode:edit']"-->
<!-- >修改</el-button>-->
<!-- </el-col>-->
<!-- <el-col :span="1.5">-->
<!-- <el-button-->
<!-- type="danger"-->
<!-- plain-->
<!-- icon="el-icon-delete"-->
<!-- size="mini"-->
<!-- :disabled="multiple"-->
<!-- @click="handleDelete"-->
<!-- v-hasPermi="['system:mode:remove']"-->
<!-- >删除</el-button>-->
<!-- </el-col>-->
<!-- <el-col :span="1.5">-->
<!-- <el-button-->
<!-- type="warning"-->
<!-- plain-->
<!-- icon="el-icon-download"-->
<!-- size="mini"-->
<!-- @click="handleExport"-->
<!-- v-hasPermi="['system:mode:export']"-->
<!-- >导出</el-button>-->
<!-- </el-col>-->
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
@ -197,22 +70,144 @@
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<!-- 添加或修改模式弹窗资源对话框 -->
<el-dialog title="添加弹出视频/图片" :visible.sync="openSourceOpen" width="500px" append-to-body :before-close="closeOpenSource">
<el-form ref="openSourceForm" :model="openSourceForm" label-width="80px">
<el-form-item label="弹出标题" prop="openTitle">
<el-input v-model="openSourceForm.openTitle" placeholder="请输入弹出标题" />
</el-form-item>
<el-form-item label="弹出视频/图片" prop="openSourceUrl" label-width="100px">
<el-upload
class="upload-demo"
ref="uploadOpenSource"
:action="upload.url"
:on-remove="handleOpenSourceRemove"
:on-success="handleOpenSourceFileSuccess"
:headers="upload.headers"
:file-list="fileOpenSourceList"
>
<el-button size="small" type="primary">点击上传</el-button>
<div slot="tip" class="el-upload__tip">只能上传视频/图片文件且不超过50M</div>
</el-upload>
</el-form-item>
<el-form-item label="提示内容" prop="openTitle">
<el-input v-model="openSourceForm.openContent" placeholder="请输入提示内容" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="addOpenSource"> </el-button>
<el-button @click="closeOpenSource"> </el-button>
</div>
</el-dialog>
<!-- 添加或修改模式列表对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body :before-close="closeOpen">
<el-dialog :title="title" :visible.sync="open" width="780px" append-to-body :before-close="closeOpen">
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="仪器类型" prop="instrumentType">
<el-select v-model="form.instrumentType">
<el-option label="非iot仪器" :value="1" :key="1"></el-option>
<el-option label="iot仪器" :value="2" :key="2"></el-option>
</el-select>
</el-form-item>
<el-row>
<el-col :span ="12">
<el-form-item label="仪器类型" prop="instrumentType">
<el-select v-model="form.instrumentType" @change="setModeTitle">
<el-option label="非iot仪器" :value="1" :key="1"></el-option>
<el-option label="iot仪器" :value="2" :key="2"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span ="12">
<el-form-item label="仪器型号" prop="instrumentModel" v-if="form.instrumentType == 2">
<el-select v-model="form.instrumentModel" @change="setModeType">
<el-option
v-for="dict in dict.type.instrument_model"
:key="dict.value"
:label="dict.label"
:value="dict.value"
></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span ="12">
<el-form-item label="模式类型" prop="modeType" v-if="form.instrumentModel == 'FR200'">
<el-select v-model="form.modeType">
<el-option
v-for="dict in dict.type.instrument_model_type_fr200"
:key="dict.value"
:label="dict.label"
:value="dict.value"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="模式类型" prop="modeType" v-if="form.instrumentModel == 'WL200'">
<el-select v-model="form.modeType">
<el-option
v-for="dict in dict.type.instrument_model_type_wl200"
:key="dict.value"
:label="dict.label"
:value="dict.value"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="模式类型" prop="modeType" v-if="form.instrumentModel == 'M01'">
<el-select v-model="form.modeType">
<el-option
v-for="dict in dict.type.instrument_model_type_m01"
:key="dict.value"
:label="dict.label"
:value="dict.value"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span ="12">
<el-form-item label="模式分类" prop="modeClass" v-if="form.instrumentModel == 'FR200'">
<el-select v-model="form.modeClass">
<el-option
v-for="dict in dict.type.instrument_model_class_fr200"
:key="dict.value"
:label="dict.label"
:value="dict.value"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="模式分类" prop="modeClass" v-if="form.instrumentModel == 'WL200'">
<el-select v-model="form.modeClass">
<el-option
v-for="dict in dict.type.instrument_model_class_wl200"
:key="dict.value"
:label="dict.label"
:value="dict.value"
></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span ="12">
<el-form-item label="舱体模式" prop="isCabinMode" v-if="form.instrumentModel == 'WL200' & form.modeType != 10">
<el-select v-model="form.isCabinMode">
<el-option label="是" value="1"></el-option>
<el-option label="否" value="0"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span ="12">
<el-form-item label="自定义组合" prop="isCustomMode" v-if="(form.modeType != 10&&form.instrumentType==2)" label-width="100px">
<el-select v-model="form.isCustomMode">
<el-option label="是" value="1"></el-option>
<el-option label="否" value="0"></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-form-item label="模式名称" prop="modeName">
<el-input v-model="form.modeName" placeholder="请输入模式名称" maxlength="10"/>
</el-form-item>
<el-form-item label="模式描述" prop="modeDesc">
<el-input v-model="form.modeDesc" placeholder="请输入模式描述" maxlength="10"/>
</el-form-item>
<el-form-item label="模式时长" prop="modeTime" v-if="form.instrumentType == 2">
<el-input v-model="form.modeTime" placeholder="请输入模式时间"/>
</el-form-item>
<el-form-item label="模式封面" prop="modeBanner">
<el-upload
:action="upload.url"
@ -229,7 +224,7 @@
<img width="100%" :src="dialogImageUrl" alt="">
</el-dialog>
</el-form-item>
<el-form-item label="模式视频" prop="modeVideo">
<el-form-item :label="modeVideoTitle" prop="modeVideo" label-width="100px">
<el-upload
class="upload-demo"
:action="upload.url"
@ -243,6 +238,136 @@
<div slot="tip" class="el-upload__tip">只能上传视频文件且不超过50M</div>
</el-upload>
</el-form-item>
<el-form-item label="弹出视频窗" prop="openSource" label-width="100px">
<el-button type="primary" @click="showOpenSource"></el-button>
<el-table :data="openSourceData" style="width: 100%" max-height="250">
<el-table-column prop="openTitle" label="弹窗标题" width="150" />
<el-table-column prop="openSourceName" label="弹出视频/图片" width="120" />
<el-table-column prop="openSourceSuffix" label="类型" width="120" />
<el-table-column prop="openContent" label="提示内容" width="120" />
<el-table-column fixed="right" label="操作" width="120">
<template slot-scope="scope">
<el-button type="text" size="small" @click="handleDelOpenSource(scope.row)">
删除
</el-button>
</template>
</el-table-column>
</el-table>
</el-form-item>
<el-form-item label="启动/暂停图片GIF" prop="openSource" label-width="130px" v-if="form.instrumentType == 2">
<el-button type="primary" @click="addService"></el-button>
<el-form label-width="80px">
<div v-for="(item,index) of serviceData">
<el-row style="margin-top: 10px">
<el-col :span ="12">
<el-form-item label="护理时间范围" prop="startTimeArray" label-width="110px">
<el-time-picker
is-range
v-model="item.startTimeArray"
range-separator="至"
start-placeholder="开始时间"
end-placeholder="结束时间"
placeholder="选择时间范围">
</el-time-picker>
</el-form-item>
</el-col>
<el-col :span ="12">
<el-form-item style="margin-left: 38%">
<el-button type="primary" @click="delService(item)"></el-button>
</el-form-item>
</el-col>
</el-row>
<el-row style="margin-top: 10px">
<el-col :span ="12">
<el-form-item label="启动图片GIF" prop="modeBanner" label-width="110px">
<el-upload
:action="upload.url+'/else'"
:headers="upload.headers"
:data="{index:index,condition:index+'_start'}"
:file-list="item.startSourceArray"
list-type="picture-card"
:on-preview="handlePreviewFile"
:on-success="uploadServiceSuccess"
>
<i class="el-icon-plus"></i>
</el-upload>
<el-dialog :visible.sync="dialogVisible">
<img width="100%" :src="dialogImageUrl" alt="">
</el-dialog>
</el-form-item>
</el-col>
<el-col :span ="12">
<el-form-item label="暂停图片GIF" prop="modeBanner" label-width="110px">
<el-upload
:action="upload.url+'/else'"
:headers="upload.headers"
:data="{index:index,condition:index+'_stop'}"
:file-list="item.stopSourceArray"
list-type="picture-card"
:on-preview="handlePreviewFile"
:on-success="uploadServiceSuccess"
>
<i class="el-icon-plus"></i>
</el-upload>
<el-dialog :visible.sync="dialogVisible">
<img width="100%" :src="dialogImageUrl" alt="">
</el-dialog>
</el-form-item>
</el-col>
</el-row>
</div>
</el-form>
</el-form-item>
<el-form-item label="模式组合" prop="combineSource" label-width="120px">
<el-button type="primary" @click="addCombine"></el-button>
<div v-for="(item,index) of combineData">
<el-divider content-position="left">组合{{index+1}}</el-divider>
<el-form-item label="模式名称" prop="modeName" label-width="110px" style="margin-top: 10px">
<el-row>
<el-col :span ="12">
<el-select v-model="item.modeId">
<el-option
v-for="mode in combineModeList"
:key="mode.id"
:label="mode.modeName"
:value="mode.id"
></el-option>
</el-select>
</el-col>
<el-col :span ="12">
<el-form-item style="margin-left: 38%">
<el-button type="primary" @click="delCombine(item)"></el-button>
</el-form-item>
</el-col>
</el-row>
</el-form-item>
<el-form-item label="时间(分)" prop="modeName" label-width="110px" style="margin-top: 10px">
<el-input-number v-model="item.combine" controls-position="right" :min="1" />
</el-form-item>
<el-form-item label="使用技术" prop="technologyInfo" label-width="110px" style="margin-top: 10px">
<el-select
v-model="item.technologyArray"
placeholder="请选择技术"
clearable
multiple
style="width: 240px"
>
<el-option
v-for="dict in dict.type.instrument_technology"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item label="模式功效" prop="effectContent" label-width="110px" style="margin-top: 10px">
<el-input v-model="item.effectContent" placeholder="请输入模式功效" maxlength="50"/>
</el-form-item>
</div>
</el-form-item>
<el-form-item label="解锁小程序标签" prop="showWechatTagId" label-width="120px">
<treeselect v-model="form.lockWechatTagArray" :options="chatTagOptions" :multiple="true" :show-count="true" placeholder="请选择小程序标签" :disable-branch-nodes="true" />
</el-form-item>
@ -252,7 +377,6 @@
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" type="textarea" placeholder="请输入内容" maxlength="50"></el-input>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
@ -263,7 +387,11 @@
</template>
<script>
import { listMode, getMode, delMode, addMode, updateMode } from "@/api/system/mode";
import { listMode, getMode, delMode, addMode, updateMode,listModeAll } from "@/api/system/mode";
import { listSource, getSource, delSource, addSource, updateSource } from "@/api/system/modeOpenSource";
import {getToken} from "@/utils/auth";
import { tagTreeSelect } from "@/api/system/wechatTab";
import Treeselect from "@riophae/vue-treeselect";
@ -271,12 +399,36 @@ import "@riophae/vue-treeselect/dist/vue-treeselect.css";
export default {
name: "Mode",
components: { Treeselect },
dicts: ['instrument_model','instrument_model_type_fr200','instrument_model_type_wl200','instrument_model_type_m01','instrument_model_class_fr200','instrument_model_class_wl200','instrument_technology'],
data() {
return {
combineModeList:[],
//
combineModeQueryParams: {
instrumentType: 1,
instrumentModel: null,
modeName: null,
isCustomMode:null,
modeType: null,
modeClass: null,
status: null,
},
//
combineData:[],
//
serviceData: [],
fileOpenSourceList: [],
//
openSourceData: [],
//
openSourceForm: {},
//
openSourceOpen: false,
//
loading: true,
//
ids: [],
modeVideoTitle: '模式视频',
//
single: true,
//
@ -322,6 +474,7 @@ export default {
modeName: null,
modeDesc: null,
modeBanner: null,
isCustomMode:null,
modeVideo: null,
modeType: null,
modeClass: null,
@ -337,8 +490,23 @@ export default {
//
rules: {
instrumentType: [
{ required: true, message: "仪器类型不能为空", trigger: "blur" }
],
instrumentModel: [
{ required: true, message: "仪器型号不能为空", trigger: "blur" }
],
modeType: [
{ required: true, message: "模式类型不能为空", trigger: "blur" }
],
modeClass: [
{ required: true, message: "模式分类不能为空", trigger: "blur" }
],
isCabinMode: [
{ required: true, message: "舱体模式不能为空", trigger: "blur" }
],
isCustomMode: [
{ required: true, message: "自定义组合不能为空", trigger: "blur" }
],
modeName: [
{ required: true, message: "模式名称不能为空", trigger: "blur" }
],
@ -354,8 +522,14 @@ export default {
created() {
this.getList();
this.getDeptTree();
this.getCombineList();
},
methods: {
getCombineList(){
listModeAll(this.combineModeQueryParams).then(response => {
this.combineModeList = response.data;
});
},
/** 查询模式列表列表 */
getList() {
this.loading = true;
@ -365,6 +539,18 @@ export default {
this.loading = false;
});
},
setModeType(){
this.form.modeType = null;
this.form.modeClass = null;
this.form.isCabinMode = null;
},
setModeTitle(){
if (this.form.instrumentType == 1) {
this.modeVideoTitle = '模式视频';
} else {
this.modeVideoTitle = '准备页视频';
}
},
closeOpen(){
this.fileList = [];
this.bannerList = [];
@ -402,6 +588,8 @@ export default {
this.resetForm("form");
this.bannerList = [];
this.fileList = [];
this.serviceData = [];
this.combineData = [];
},
/** 搜索按钮操作 */
handleQuery() {
@ -425,6 +613,7 @@ export default {
this.open = true;
this.title = "添加模式";
this.form.instrumentType = 1;
this.openSourceData = [];
},
/** 修改按钮操作 */
handleUpdate(row) {
@ -444,6 +633,19 @@ export default {
name: this.handleFileInfo(this.form.modeBanner),
url: this.form.modeBanner
})
//
this.openSourceData = this.form.openSourceData;
//
this.serviceData = this.form.serviceData;
this.serviceData.forEach(function(item,index){
item.startSourceArray = [{url:item.startSource}];
item.stopSourceArray = [{url:item.stopSource}];
})
//
this.combineData = this.form.combineData;
console.log('最终的数据:',JSON.stringify(this.serviceData))
});
},
handleFileInfo(url) {
@ -456,6 +658,12 @@ export default {
},
/** 提交按钮 */
submitForm() {
//
this.form.openSourceData = this.openSourceData;
//
this.form.serviceData = this.serviceData;
//
this.form.combineData = this.combineData;
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.id != null) {
@ -536,11 +744,136 @@ export default {
this.dialogVisible = true;
},
beforeBannerUpload(){
// if(this.bannerList.length == 1){
// this.$message.error('');
// return false;
// }
}
},
//
showOpenSource(){
this.openSourceOpen = true;
},
//
closeOpenSource(){
this.openSourceOpen = false;
this.openSourceForm = {};
this.$refs.uploadOpenSource.clearFiles();
},
//
addOpenSource(){
if (!this.openSourceForm.openTitle) {
this.$modal.msgError("弹出标题不能为空");
return ;
}
if (!this.openSourceForm.openContent) {
this.$modal.msgError("弹出内容不能为空");
return ;
}
console.log("提交后的数据==》",this.openSourceForm)
if (!this.openSourceForm.openSourceUrl) {
this.$modal.msgError("弹出图片/视频不能为空");
return ;
}
this.openSourceForm.timeFlag = new Date().getTime();
this.openSourceData.push(this.openSourceForm);
this.openSourceOpen = false;
this.openSourceForm = {};
this.$refs.uploadOpenSource.clearFiles();
},
//
handleDelOpenSource(row){
this.openSourceData = this.openSourceData.filter(x => x.timeFlag != row.timeFlag);
},
handleOpenSourceRemove(){
this.fileOpenSourceList = [];
},
handleOpenSourceFileSuccess(response, file, fileList, item){
if(response.code == '200') {
const url = response.data.url;;
const filePath = url.substring(0, url.lastIndexOf("/"));
//
const fileNameWithExtension = url.substr(filePath.length + 1);
this.fileOpenSourceList = [];
this.openSourceForm.openSourceUrl = response.data.url;
//
this.openSourceForm.openSourceName = fileNameWithExtension;
//
this.openSourceForm.openSourceSuffix = url.substring(url.lastIndexOf(".")+1,url.length);
this.fileOpenSourceList.push({name:response.data.name,url:response.data.url});
}
},
//
addService(){
const year = new Date().getFullYear().toString(); //
const months = (new Date().getMonth() + 1).toString().padStart(2, '0'); //
const day = new Date().getDate().toString().padStart(2, '0'); //
let hour = 0;
let min = 0;
let startTimeArray = [];
if(this.form.modeTime) {
if(this.form.modeTime > 60) {
hour = this.form.modeTime / 60 ;
min = this.form.modeTime % 60 ;
} else {
min = this.form.modeTime;
}
startTimeArray = [new Date(year, months, day, 0, 0), new Date(year, months, day, hour, min)];
} else {
this.$message.error('模式时长不能为空');
return ;
}
this.serviceData.push({
timeFlag : new Date().getTime(),
startTimeArray: startTimeArray,
startSourceArray: [],
stopSourceArray: [],
});
},
//
delService(row){
if (row.timeFlag) {
this.serviceData = this.serviceData.filter(x => x.timeFlag != row.timeFlag);
} else {
this.serviceData = this.serviceData.filter(x => x.id != row.id);
}
},
//
uploadServiceSuccess(response, file, fileList, item){
if(response.code == '200') {
if(response.data.condition){
//
const indexArray = response.data.condition.split('_');
const index = indexArray[0];
const flag = indexArray[1];
if ('start' == flag) {
this.serviceData[index].startSourceArray = [];
this.serviceData[index].startSource = response.data.url;
this.serviceData[index].startSourceArray.push({name:response.data.name,url:response.data.url})
} else {
this.serviceData[index].stopSourceArray = [];
this.serviceData[index].stopSource = response.data.url;
this.serviceData[index].stopSourceArray.push({name:response.data.name,url:response.data.url})
}
}
}
},
//
addCombine(){
this.combineData.push({
timeFlag : new Date().getTime(),
modeId: null,
combine: 1,
technologyArray: [],
effectContent: null
})
},
//
delCombine(row){
if (row.timeFlag) {
this.combineData = this.combineData.filter(x => x.timeFlag != row.timeFlag);
} else {
this.combineData = this.combineData.filter(x => x.id != row.id);
}
},
}
};
</script>

Loading…
Cancel
Save