Merge branch 'v1.3' into master
This commit is contained in:
commit
fe4a585863
|
@ -6,15 +6,17 @@ import java.io.Serializable;
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
public class Notice implements Serializable {
|
public class Notice implements Serializable {
|
||||||
|
private String id;
|
||||||
|
|
||||||
private String event;
|
private String event;
|
||||||
|
|
||||||
private String testId;
|
private String testId;
|
||||||
|
|
||||||
private String name;
|
private String name;
|
||||||
|
|
||||||
private String email;
|
|
||||||
|
|
||||||
private String enable;
|
private String enable;
|
||||||
|
|
||||||
|
private String type;
|
||||||
|
|
||||||
private static final long serialVersionUID = 1L;
|
private static final long serialVersionUID = 1L;
|
||||||
}
|
}
|
|
@ -104,6 +104,76 @@ public class NoticeExample {
|
||||||
criteria.add(new Criterion(condition, value1, value2));
|
criteria.add(new Criterion(condition, value1, value2));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Criteria andIdIsNull() {
|
||||||
|
addCriterion("id is null");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andIdIsNotNull() {
|
||||||
|
addCriterion("id is not null");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andIdEqualTo(String value) {
|
||||||
|
addCriterion("id =", value, "id");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andIdNotEqualTo(String value) {
|
||||||
|
addCriterion("id <>", value, "id");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andIdGreaterThan(String value) {
|
||||||
|
addCriterion("id >", value, "id");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andIdGreaterThanOrEqualTo(String value) {
|
||||||
|
addCriterion("id >=", value, "id");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andIdLessThan(String value) {
|
||||||
|
addCriterion("id <", value, "id");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andIdLessThanOrEqualTo(String value) {
|
||||||
|
addCriterion("id <=", value, "id");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andIdLike(String value) {
|
||||||
|
addCriterion("id like", value, "id");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andIdNotLike(String value) {
|
||||||
|
addCriterion("id not like", value, "id");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andIdIn(List<String> values) {
|
||||||
|
addCriterion("id in", values, "id");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andIdNotIn(List<String> values) {
|
||||||
|
addCriterion("id not in", values, "id");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andIdBetween(String value1, String value2) {
|
||||||
|
addCriterion("id between", value1, value2, "id");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andIdNotBetween(String value1, String value2) {
|
||||||
|
addCriterion("id not between", value1, value2, "id");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
public Criteria andEventIsNull() {
|
public Criteria andEventIsNull() {
|
||||||
addCriterion("EVENT is null");
|
addCriterion("EVENT is null");
|
||||||
return (Criteria) this;
|
return (Criteria) this;
|
||||||
|
@ -314,76 +384,6 @@ public class NoticeExample {
|
||||||
return (Criteria) this;
|
return (Criteria) this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Criteria andEmailIsNull() {
|
|
||||||
addCriterion("EMAIL is null");
|
|
||||||
return (Criteria) this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Criteria andEmailIsNotNull() {
|
|
||||||
addCriterion("EMAIL is not null");
|
|
||||||
return (Criteria) this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Criteria andEmailEqualTo(String value) {
|
|
||||||
addCriterion("EMAIL =", value, "email");
|
|
||||||
return (Criteria) this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Criteria andEmailNotEqualTo(String value) {
|
|
||||||
addCriterion("EMAIL <>", value, "email");
|
|
||||||
return (Criteria) this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Criteria andEmailGreaterThan(String value) {
|
|
||||||
addCriterion("EMAIL >", value, "email");
|
|
||||||
return (Criteria) this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Criteria andEmailGreaterThanOrEqualTo(String value) {
|
|
||||||
addCriterion("EMAIL >=", value, "email");
|
|
||||||
return (Criteria) this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Criteria andEmailLessThan(String value) {
|
|
||||||
addCriterion("EMAIL <", value, "email");
|
|
||||||
return (Criteria) this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Criteria andEmailLessThanOrEqualTo(String value) {
|
|
||||||
addCriterion("EMAIL <=", value, "email");
|
|
||||||
return (Criteria) this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Criteria andEmailLike(String value) {
|
|
||||||
addCriterion("EMAIL like", value, "email");
|
|
||||||
return (Criteria) this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Criteria andEmailNotLike(String value) {
|
|
||||||
addCriterion("EMAIL not like", value, "email");
|
|
||||||
return (Criteria) this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Criteria andEmailIn(List<String> values) {
|
|
||||||
addCriterion("EMAIL in", values, "email");
|
|
||||||
return (Criteria) this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Criteria andEmailNotIn(List<String> values) {
|
|
||||||
addCriterion("EMAIL not in", values, "email");
|
|
||||||
return (Criteria) this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Criteria andEmailBetween(String value1, String value2) {
|
|
||||||
addCriterion("EMAIL between", value1, value2, "email");
|
|
||||||
return (Criteria) this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Criteria andEmailNotBetween(String value1, String value2) {
|
|
||||||
addCriterion("EMAIL not between", value1, value2, "email");
|
|
||||||
return (Criteria) this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Criteria andEnableIsNull() {
|
public Criteria andEnableIsNull() {
|
||||||
addCriterion("`ENABLE` is null");
|
addCriterion("`ENABLE` is null");
|
||||||
return (Criteria) this;
|
return (Criteria) this;
|
||||||
|
@ -453,6 +453,76 @@ public class NoticeExample {
|
||||||
addCriterion("`ENABLE` not between", value1, value2, "enable");
|
addCriterion("`ENABLE` not between", value1, value2, "enable");
|
||||||
return (Criteria) this;
|
return (Criteria) this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Criteria andTypeIsNull() {
|
||||||
|
addCriterion("`type` is null");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andTypeIsNotNull() {
|
||||||
|
addCriterion("`type` is not null");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andTypeEqualTo(String value) {
|
||||||
|
addCriterion("`type` =", value, "type");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andTypeNotEqualTo(String value) {
|
||||||
|
addCriterion("`type` <>", value, "type");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andTypeGreaterThan(String value) {
|
||||||
|
addCriterion("`type` >", value, "type");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andTypeGreaterThanOrEqualTo(String value) {
|
||||||
|
addCriterion("`type` >=", value, "type");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andTypeLessThan(String value) {
|
||||||
|
addCriterion("`type` <", value, "type");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andTypeLessThanOrEqualTo(String value) {
|
||||||
|
addCriterion("`type` <=", value, "type");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andTypeLike(String value) {
|
||||||
|
addCriterion("`type` like", value, "type");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andTypeNotLike(String value) {
|
||||||
|
addCriterion("`type` not like", value, "type");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andTypeIn(List<String> values) {
|
||||||
|
addCriterion("`type` in", values, "type");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andTypeNotIn(List<String> values) {
|
||||||
|
addCriterion("`type` not in", values, "type");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andTypeBetween(String value1, String value2) {
|
||||||
|
addCriterion("`type` between", value1, value2, "type");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Criteria andTypeNotBetween(String value1, String value2) {
|
||||||
|
addCriterion("`type` not between", value1, value2, "type");
|
||||||
|
return (Criteria) this;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static class Criteria extends GeneratedCriteria {
|
public static class Criteria extends GeneratedCriteria {
|
||||||
|
|
|
@ -2,21 +2,30 @@ package io.metersphere.base.mapper;
|
||||||
|
|
||||||
import io.metersphere.base.domain.Notice;
|
import io.metersphere.base.domain.Notice;
|
||||||
import io.metersphere.base.domain.NoticeExample;
|
import io.metersphere.base.domain.NoticeExample;
|
||||||
import java.util.List;
|
|
||||||
import org.apache.ibatis.annotations.Param;
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
public interface NoticeMapper {
|
public interface NoticeMapper {
|
||||||
long countByExample(NoticeExample example);
|
long countByExample(NoticeExample example);
|
||||||
|
|
||||||
int deleteByExample(NoticeExample example);
|
int deleteByExample(NoticeExample example);
|
||||||
|
|
||||||
|
int deleteByPrimaryKey(String id);
|
||||||
|
|
||||||
int insert(Notice record);
|
int insert(Notice record);
|
||||||
|
|
||||||
int insertSelective(Notice record);
|
int insertSelective(Notice record);
|
||||||
|
|
||||||
List<Notice> selectByExample(NoticeExample example);
|
List<Notice> selectByExample(NoticeExample example);
|
||||||
|
|
||||||
|
Notice selectByPrimaryKey(String id);
|
||||||
|
|
||||||
int updateByExampleSelective(@Param("record") Notice record, @Param("example") NoticeExample example);
|
int updateByExampleSelective(@Param("record") Notice record, @Param("example") NoticeExample example);
|
||||||
|
|
||||||
int updateByExample(@Param("record") Notice record, @Param("example") NoticeExample example);
|
int updateByExample(@Param("record") Notice record, @Param("example") NoticeExample example);
|
||||||
|
|
||||||
|
int updateByPrimaryKeySelective(Notice record);
|
||||||
|
|
||||||
|
int updateByPrimaryKey(Notice record);
|
||||||
}
|
}
|
|
@ -2,11 +2,12 @@
|
||||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
<mapper namespace="io.metersphere.base.mapper.NoticeMapper">
|
<mapper namespace="io.metersphere.base.mapper.NoticeMapper">
|
||||||
<resultMap id="BaseResultMap" type="io.metersphere.base.domain.Notice">
|
<resultMap id="BaseResultMap" type="io.metersphere.base.domain.Notice">
|
||||||
|
<id column="id" jdbcType="VARCHAR" property="id" />
|
||||||
<result column="EVENT" jdbcType="VARCHAR" property="event" />
|
<result column="EVENT" jdbcType="VARCHAR" property="event" />
|
||||||
<result column="TEST_ID" jdbcType="VARCHAR" property="testId" />
|
<result column="TEST_ID" jdbcType="VARCHAR" property="testId" />
|
||||||
<result column="NAME" jdbcType="VARCHAR" property="name" />
|
<result column="NAME" jdbcType="VARCHAR" property="name" />
|
||||||
<result column="EMAIL" jdbcType="VARCHAR" property="email" />
|
|
||||||
<result column="ENABLE" jdbcType="VARCHAR" property="enable" />
|
<result column="ENABLE" jdbcType="VARCHAR" property="enable" />
|
||||||
|
<result column="type" jdbcType="VARCHAR" property="type" />
|
||||||
</resultMap>
|
</resultMap>
|
||||||
<sql id="Example_Where_Clause">
|
<sql id="Example_Where_Clause">
|
||||||
<where>
|
<where>
|
||||||
|
@ -67,7 +68,7 @@
|
||||||
</where>
|
</where>
|
||||||
</sql>
|
</sql>
|
||||||
<sql id="Base_Column_List">
|
<sql id="Base_Column_List">
|
||||||
EVENT, TEST_ID, `NAME`, EMAIL, `ENABLE`
|
id, EVENT, TEST_ID, `NAME`, `ENABLE`, `type`
|
||||||
</sql>
|
</sql>
|
||||||
<select id="selectByExample" parameterType="io.metersphere.base.domain.NoticeExample" resultMap="BaseResultMap">
|
<select id="selectByExample" parameterType="io.metersphere.base.domain.NoticeExample" resultMap="BaseResultMap">
|
||||||
select
|
select
|
||||||
|
@ -83,6 +84,16 @@
|
||||||
order by ${orderByClause}
|
order by ${orderByClause}
|
||||||
</if>
|
</if>
|
||||||
</select>
|
</select>
|
||||||
|
<select id="selectByPrimaryKey" parameterType="java.lang.String" resultMap="BaseResultMap">
|
||||||
|
select
|
||||||
|
<include refid="Base_Column_List" />
|
||||||
|
from notice
|
||||||
|
where id = #{id,jdbcType=VARCHAR}
|
||||||
|
</select>
|
||||||
|
<delete id="deleteByPrimaryKey" parameterType="java.lang.String">
|
||||||
|
DELETE FROM notice
|
||||||
|
WHERE id = #{id,jdbcType=VARCHAR}
|
||||||
|
</delete>
|
||||||
<delete id="deleteByExample" parameterType="io.metersphere.base.domain.NoticeExample">
|
<delete id="deleteByExample" parameterType="io.metersphere.base.domain.NoticeExample">
|
||||||
delete from notice
|
delete from notice
|
||||||
<if test="_parameter != null">
|
<if test="_parameter != null">
|
||||||
|
@ -90,14 +101,17 @@
|
||||||
</if>
|
</if>
|
||||||
</delete>
|
</delete>
|
||||||
<insert id="insert" parameterType="io.metersphere.base.domain.Notice">
|
<insert id="insert" parameterType="io.metersphere.base.domain.Notice">
|
||||||
insert into notice (EVENT, TEST_ID, `NAME`,
|
INSERT INTO notice (id, EVENT, TEST_ID,
|
||||||
EMAIL, `ENABLE`)
|
`NAME`, `ENABLE`, `type`)
|
||||||
values (#{event,jdbcType=VARCHAR}, #{testId,jdbcType=VARCHAR}, #{name,jdbcType=VARCHAR},
|
VALUES (#{id,jdbcType=VARCHAR}, #{event,jdbcType=VARCHAR}, #{testId,jdbcType=VARCHAR},
|
||||||
#{email,jdbcType=VARCHAR}, #{enable,jdbcType=VARCHAR})
|
#{name,jdbcType=VARCHAR}, #{enable,jdbcType=VARCHAR}, #{type,jdbcType=VARCHAR})
|
||||||
</insert>
|
</insert>
|
||||||
<insert id="insertSelective" parameterType="io.metersphere.base.domain.Notice">
|
<insert id="insertSelective" parameterType="io.metersphere.base.domain.Notice">
|
||||||
insert into notice
|
insert into notice
|
||||||
<trim prefix="(" suffix=")" suffixOverrides=",">
|
<trim prefix="(" suffix=")" suffixOverrides=",">
|
||||||
|
<if test="id != null">
|
||||||
|
id,
|
||||||
|
</if>
|
||||||
<if test="event != null">
|
<if test="event != null">
|
||||||
EVENT,
|
EVENT,
|
||||||
</if>
|
</if>
|
||||||
|
@ -107,14 +121,17 @@
|
||||||
<if test="name != null">
|
<if test="name != null">
|
||||||
`NAME`,
|
`NAME`,
|
||||||
</if>
|
</if>
|
||||||
<if test="email != null">
|
|
||||||
EMAIL,
|
|
||||||
</if>
|
|
||||||
<if test="enable != null">
|
<if test="enable != null">
|
||||||
`ENABLE`,
|
`ENABLE`,
|
||||||
</if>
|
</if>
|
||||||
|
<if test="type != null">
|
||||||
|
`type`,
|
||||||
|
</if>
|
||||||
</trim>
|
</trim>
|
||||||
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
||||||
|
<if test="id != null">
|
||||||
|
#{id,jdbcType=VARCHAR},
|
||||||
|
</if>
|
||||||
<if test="event != null">
|
<if test="event != null">
|
||||||
#{event,jdbcType=VARCHAR},
|
#{event,jdbcType=VARCHAR},
|
||||||
</if>
|
</if>
|
||||||
|
@ -124,12 +141,12 @@
|
||||||
<if test="name != null">
|
<if test="name != null">
|
||||||
#{name,jdbcType=VARCHAR},
|
#{name,jdbcType=VARCHAR},
|
||||||
</if>
|
</if>
|
||||||
<if test="email != null">
|
|
||||||
#{email,jdbcType=VARCHAR},
|
|
||||||
</if>
|
|
||||||
<if test="enable != null">
|
<if test="enable != null">
|
||||||
#{enable,jdbcType=VARCHAR},
|
#{enable,jdbcType=VARCHAR},
|
||||||
</if>
|
</if>
|
||||||
|
<if test="type != null">
|
||||||
|
#{type,jdbcType=VARCHAR},
|
||||||
|
</if>
|
||||||
</trim>
|
</trim>
|
||||||
</insert>
|
</insert>
|
||||||
<select id="countByExample" parameterType="io.metersphere.base.domain.NoticeExample" resultType="java.lang.Long">
|
<select id="countByExample" parameterType="io.metersphere.base.domain.NoticeExample" resultType="java.lang.Long">
|
||||||
|
@ -141,6 +158,9 @@
|
||||||
<update id="updateByExampleSelective" parameterType="map">
|
<update id="updateByExampleSelective" parameterType="map">
|
||||||
update notice
|
update notice
|
||||||
<set>
|
<set>
|
||||||
|
<if test="record.id != null">
|
||||||
|
id = #{record.id,jdbcType=VARCHAR},
|
||||||
|
</if>
|
||||||
<if test="record.event != null">
|
<if test="record.event != null">
|
||||||
EVENT = #{record.event,jdbcType=VARCHAR},
|
EVENT = #{record.event,jdbcType=VARCHAR},
|
||||||
</if>
|
</if>
|
||||||
|
@ -150,12 +170,12 @@
|
||||||
<if test="record.name != null">
|
<if test="record.name != null">
|
||||||
`NAME` = #{record.name,jdbcType=VARCHAR},
|
`NAME` = #{record.name,jdbcType=VARCHAR},
|
||||||
</if>
|
</if>
|
||||||
<if test="record.email != null">
|
|
||||||
EMAIL = #{record.email,jdbcType=VARCHAR},
|
|
||||||
</if>
|
|
||||||
<if test="record.enable != null">
|
<if test="record.enable != null">
|
||||||
`ENABLE` = #{record.enable,jdbcType=VARCHAR},
|
`ENABLE` = #{record.enable,jdbcType=VARCHAR},
|
||||||
</if>
|
</if>
|
||||||
|
<if test="record.type != null">
|
||||||
|
`type` = #{record.type,jdbcType=VARCHAR},
|
||||||
|
</if>
|
||||||
</set>
|
</set>
|
||||||
<if test="_parameter != null">
|
<if test="_parameter != null">
|
||||||
<include refid="Update_By_Example_Where_Clause" />
|
<include refid="Update_By_Example_Where_Clause" />
|
||||||
|
@ -163,13 +183,44 @@
|
||||||
</update>
|
</update>
|
||||||
<update id="updateByExample" parameterType="map">
|
<update id="updateByExample" parameterType="map">
|
||||||
update notice
|
update notice
|
||||||
set EVENT = #{record.event,jdbcType=VARCHAR},
|
set id = #{record.id,jdbcType=VARCHAR},
|
||||||
|
EVENT = #{record.event,jdbcType=VARCHAR},
|
||||||
TEST_ID = #{record.testId,jdbcType=VARCHAR},
|
TEST_ID = #{record.testId,jdbcType=VARCHAR},
|
||||||
`NAME` = #{record.name,jdbcType=VARCHAR},
|
`NAME` = #{record.name,jdbcType=VARCHAR},
|
||||||
EMAIL = #{record.email,jdbcType=VARCHAR},
|
`ENABLE` = #{record.enable,jdbcType=VARCHAR},
|
||||||
`ENABLE` = #{record.enable,jdbcType=VARCHAR}
|
`type` = #{record.type,jdbcType=VARCHAR}
|
||||||
<if test="_parameter != null">
|
<if test="_parameter != null">
|
||||||
<include refid="Update_By_Example_Where_Clause" />
|
<include refid="Update_By_Example_Where_Clause" />
|
||||||
</if>
|
</if>
|
||||||
</update>
|
</update>
|
||||||
|
<update id="updateByPrimaryKeySelective" parameterType="io.metersphere.base.domain.Notice">
|
||||||
|
update notice
|
||||||
|
<set>
|
||||||
|
<if test="event != null">
|
||||||
|
EVENT = #{event,jdbcType=VARCHAR},
|
||||||
|
</if>
|
||||||
|
<if test="testId != null">
|
||||||
|
TEST_ID = #{testId,jdbcType=VARCHAR},
|
||||||
|
</if>
|
||||||
|
<if test="name != null">
|
||||||
|
`NAME` = #{name,jdbcType=VARCHAR},
|
||||||
|
</if>
|
||||||
|
<if test="enable != null">
|
||||||
|
`ENABLE` = #{enable,jdbcType=VARCHAR},
|
||||||
|
</if>
|
||||||
|
<if test="type != null">
|
||||||
|
`type` = #{type,jdbcType=VARCHAR},
|
||||||
|
</if>
|
||||||
|
</set>
|
||||||
|
where id = #{id,jdbcType=VARCHAR}
|
||||||
|
</update>
|
||||||
|
<update id="updateByPrimaryKey" parameterType="io.metersphere.base.domain.Notice">
|
||||||
|
UPDATE notice
|
||||||
|
SET EVENT = #{event,jdbcType=VARCHAR},
|
||||||
|
TEST_ID = #{testId,jdbcType=VARCHAR},
|
||||||
|
`NAME` = #{name,jdbcType=VARCHAR},
|
||||||
|
`ENABLE` = #{enable,jdbcType=VARCHAR},
|
||||||
|
`type` = #{type,jdbcType=VARCHAR}
|
||||||
|
WHERE id = #{id,jdbcType=VARCHAR}
|
||||||
|
</update>
|
||||||
</mapper>
|
</mapper>
|
|
@ -0,0 +1,6 @@
|
||||||
|
package io.metersphere.commons.constants;
|
||||||
|
|
||||||
|
public interface NoticeConstants {
|
||||||
|
String EXECUTE_SUCCESSFUL = "EXECUTE_SUCCESSFUL";
|
||||||
|
String EXECUTE_FAILED = "EXECUTE_FAILED";
|
||||||
|
}
|
|
@ -6,8 +6,7 @@ import lombok.Data;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
public class NoticeRequest extends NoticeDetail {
|
public class NoticeRequest {
|
||||||
private String testId;
|
private String testId;
|
||||||
private List<NoticeDetail> notices;
|
private List<NoticeDetail> notices;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,16 +6,4 @@ import lombok.Data;
|
||||||
@Data
|
@Data
|
||||||
public class NoticeDetail extends Notice {
|
public class NoticeDetail extends Notice {
|
||||||
private String[] names;
|
private String[] names;
|
||||||
|
|
||||||
private String[] emails;
|
|
||||||
|
|
||||||
private String event;
|
|
||||||
|
|
||||||
private String testId;
|
|
||||||
|
|
||||||
private String name;
|
|
||||||
|
|
||||||
private String email;
|
|
||||||
|
|
||||||
private String enable;
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,6 +4,7 @@ import io.metersphere.base.domain.ApiTestReport;
|
||||||
import io.metersphere.base.domain.LoadTestWithBLOBs;
|
import io.metersphere.base.domain.LoadTestWithBLOBs;
|
||||||
import io.metersphere.base.domain.SystemParameter;
|
import io.metersphere.base.domain.SystemParameter;
|
||||||
import io.metersphere.base.domain.TestCaseWithBLOBs;
|
import io.metersphere.base.domain.TestCaseWithBLOBs;
|
||||||
|
import io.metersphere.commons.constants.NoticeConstants;
|
||||||
import io.metersphere.commons.constants.ParamConstants;
|
import io.metersphere.commons.constants.ParamConstants;
|
||||||
import io.metersphere.commons.utils.EncryptUtils;
|
import io.metersphere.commons.utils.EncryptUtils;
|
||||||
import io.metersphere.commons.utils.LogUtil;
|
import io.metersphere.commons.utils.LogUtil;
|
||||||
|
@ -222,10 +223,10 @@ public class MailService {
|
||||||
List<String> failEmailList = new ArrayList<>();
|
List<String> failEmailList = new ArrayList<>();
|
||||||
if (noticeList.size() > 0) {
|
if (noticeList.size() > 0) {
|
||||||
for (NoticeDetail n : noticeList) {
|
for (NoticeDetail n : noticeList) {
|
||||||
if (n.getEnable().equals("true") && n.getEvent().equals("执行成功")) {
|
if (n.getEnable().equals("true") && n.getEvent().equals(NoticeConstants.EXECUTE_SUCCESSFUL)) {
|
||||||
successEmailList = userService.queryEmail(n.getNames());
|
successEmailList = userService.queryEmail(n.getNames());
|
||||||
}
|
}
|
||||||
if (n.getEnable().equals("true") && n.getEvent().equals("执行失败")) {
|
if (n.getEnable().equals("true") && n.getEvent().equals(NoticeConstants.EXECUTE_FAILED)) {
|
||||||
failEmailList = userService.queryEmail(n.getNames());
|
failEmailList = userService.queryEmail(n.getNames());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,6 +10,10 @@ import org.springframework.stereotype.Service;
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
|
import static io.metersphere.commons.constants.NoticeConstants.EXECUTE_FAILED;
|
||||||
|
import static io.metersphere.commons.constants.NoticeConstants.EXECUTE_SUCCESSFUL;
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
public class NoticeService {
|
public class NoticeService {
|
||||||
|
@ -17,34 +21,24 @@ public class NoticeService {
|
||||||
private NoticeMapper noticeMapper;
|
private NoticeMapper noticeMapper;
|
||||||
|
|
||||||
public void saveNotice(NoticeRequest noticeRequest) {
|
public void saveNotice(NoticeRequest noticeRequest) {
|
||||||
Notice notice = new Notice();
|
|
||||||
NoticeExample example = new NoticeExample();
|
NoticeExample example = new NoticeExample();
|
||||||
example.createCriteria().andTestIdEqualTo(noticeRequest.getTestId());
|
example.createCriteria().andTestIdEqualTo(noticeRequest.getTestId());
|
||||||
List<Notice> notices = noticeMapper.selectByExample(example);
|
List<Notice> notices = noticeMapper.selectByExample(example);
|
||||||
if (notices.size() > 0) {
|
if (notices.size() > 0) {
|
||||||
noticeMapper.deleteByExample(example);
|
noticeMapper.deleteByExample(example);
|
||||||
}
|
}
|
||||||
saveNotice(noticeRequest, notice);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void saveNotice(NoticeRequest noticeRequest, Notice notice) {
|
|
||||||
noticeRequest.getNotices().forEach(n -> {
|
noticeRequest.getNotices().forEach(n -> {
|
||||||
if (n.getNames().length > 0) {
|
if (n.getNames().length > 0) {
|
||||||
for (String x : n.getNames()) {
|
for (String x : n.getNames()) {
|
||||||
|
Notice notice = new Notice();
|
||||||
|
notice.setId(UUID.randomUUID().toString());
|
||||||
notice.setEvent(n.getEvent());
|
notice.setEvent(n.getEvent());
|
||||||
notice.setEmail(n.getEmail());
|
|
||||||
notice.setEnable(n.getEnable());
|
notice.setEnable(n.getEnable());
|
||||||
notice.setTestId(noticeRequest.getTestId());
|
notice.setTestId(noticeRequest.getTestId());
|
||||||
notice.setName(x);
|
notice.setName(x);
|
||||||
|
notice.setType(n.getType());
|
||||||
noticeMapper.insert(notice);
|
noticeMapper.insert(notice);
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
notice.setEvent(n.getEvent());
|
|
||||||
notice.setEmail(n.getEmail());
|
|
||||||
notice.setEnable(n.getEnable());
|
|
||||||
notice.setTestId(noticeRequest.getTestId());
|
|
||||||
notice.setName("");
|
|
||||||
noticeMapper.insert(notice);
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -53,7 +47,7 @@ public class NoticeService {
|
||||||
NoticeExample example = new NoticeExample();
|
NoticeExample example = new NoticeExample();
|
||||||
example.createCriteria().andTestIdEqualTo(id);
|
example.createCriteria().andTestIdEqualTo(id);
|
||||||
List<Notice> notices = noticeMapper.selectByExample(example);
|
List<Notice> notices = noticeMapper.selectByExample(example);
|
||||||
List<NoticeDetail> notice = new ArrayList<>();
|
List<NoticeDetail> result = new ArrayList<>();
|
||||||
List<String> success = new ArrayList<>();
|
List<String> success = new ArrayList<>();
|
||||||
List<String> fail = new ArrayList<>();
|
List<String> fail = new ArrayList<>();
|
||||||
String[] successArray;
|
String[] successArray;
|
||||||
|
@ -62,29 +56,29 @@ public class NoticeService {
|
||||||
NoticeDetail notice2 = new NoticeDetail();
|
NoticeDetail notice2 = new NoticeDetail();
|
||||||
if (notices.size() > 0) {
|
if (notices.size() > 0) {
|
||||||
for (Notice n : notices) {
|
for (Notice n : notices) {
|
||||||
if (n.getEvent().equals("执行成功")) {
|
if (n.getEvent().equals(EXECUTE_SUCCESSFUL)) {
|
||||||
success.add(n.getName());
|
success.add(n.getName());
|
||||||
notice1.setEnable(n.getEnable());
|
notice1.setEnable(n.getEnable());
|
||||||
notice1.setTestId(id);
|
notice1.setTestId(id);
|
||||||
|
notice1.setType(n.getType());
|
||||||
notice1.setEvent(n.getEvent());
|
notice1.setEvent(n.getEvent());
|
||||||
notice1.setEmail(n.getEmail());
|
|
||||||
}
|
}
|
||||||
if (n.getEvent().equals("执行失败")) {
|
if (n.getEvent().equals(EXECUTE_FAILED)) {
|
||||||
fail.add(n.getName());
|
fail.add(n.getName());
|
||||||
notice2.setEnable(n.getEnable());
|
notice2.setEnable(n.getEnable());
|
||||||
notice2.setTestId(id);
|
notice2.setTestId(id);
|
||||||
|
notice2.setType(n.getType());
|
||||||
notice2.setEvent(n.getEvent());
|
notice2.setEvent(n.getEvent());
|
||||||
notice2.setEmail(n.getEmail());
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
successArray = success.toArray(new String[success.size()]);
|
successArray = success.toArray(new String[0]);
|
||||||
failArray = fail.toArray(new String[fail.size()]);
|
failArray = fail.toArray(new String[0]);
|
||||||
notice1.setNames(successArray);
|
notice1.setNames(successArray);
|
||||||
notice2.setNames(failArray);
|
notice2.setNames(failArray);
|
||||||
notice.add(notice1);
|
result.add(notice1);
|
||||||
notice.add(notice2);
|
result.add(notice2);
|
||||||
}
|
}
|
||||||
return notice;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -36,6 +36,11 @@ public class TestCaseIssuesController {
|
||||||
issuesService.closeLocalIssue(id);
|
issuesService.closeLocalIssue(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@GetMapping("/delete/{id}")
|
||||||
|
public void deleteIssue(@PathVariable String id) {
|
||||||
|
issuesService.deleteIssue(id);
|
||||||
|
}
|
||||||
|
|
||||||
@GetMapping("/tapd/user/{caseId}")
|
@GetMapping("/tapd/user/{caseId}")
|
||||||
public List<TapdUser> getTapdUsers(@PathVariable String caseId) {
|
public List<TapdUser> getTapdUsers(@PathVariable String caseId) {
|
||||||
return issuesService.getTapdProjectUsers(caseId);
|
return issuesService.getTapdProjectUsers(caseId);
|
||||||
|
|
|
@ -507,11 +507,7 @@ public class IssuesService {
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<Issues> getLocalIssues(String caseId) {
|
public List<Issues> getLocalIssues(String caseId) {
|
||||||
List<Issues> list = extIssuesMapper.getIssues(caseId, IssuesManagePlatform.Local.toString());
|
return extIssuesMapper.getIssues(caseId, IssuesManagePlatform.Local.toString());
|
||||||
List<Issues> issues = list.stream()
|
|
||||||
.filter(l -> !StringUtils.equals(l.getStatus(), "closed"))
|
|
||||||
.collect(Collectors.toList());
|
|
||||||
return issues;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getTapdProjectId(String testCaseId) {
|
public String getTapdProjectId(String testCaseId) {
|
||||||
|
@ -559,4 +555,7 @@ public class IssuesService {
|
||||||
return users;
|
return users;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void deleteIssue(String id) {
|
||||||
|
issuesMapper.deleteByPrimaryKey(id);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
Subproject commit c2dacf960cdb1ed35664bdd3432120b1203b73d8
|
Subproject commit cf6b06526324326a563d933e07118fac014a63b4
|
|
@ -0,0 +1,10 @@
|
||||||
|
ALTER TABLE notice
|
||||||
|
ADD COLUMN id VARCHAR(50);
|
||||||
|
UPDATE notice
|
||||||
|
SET id = uuid();
|
||||||
|
ALTER TABLE notice
|
||||||
|
MODIFY COLUMN id VARCHAR(50) PRIMARY KEY;
|
||||||
|
ALTER TABLE notice
|
||||||
|
DROP COLUMN EMAIL;
|
||||||
|
ALTER TABLE notice
|
||||||
|
ADD COLUMN type VARCHAR(100) DEFAULT 'EMAIL';
|
|
@ -5,7 +5,7 @@
|
||||||
</span>
|
</span>
|
||||||
<div class="kv-row" v-for="(item, index) in items" :key="index">
|
<div class="kv-row" v-for="(item, index) in items" :key="index">
|
||||||
<el-row type="flex" :gutter="20" justify="space-between" align="middle">
|
<el-row type="flex" :gutter="20" justify="space-between" align="middle">
|
||||||
<el-col v-if="isShowEnable" class="kv-checkbox">
|
<el-col class="kv-checkbox">
|
||||||
<input type="checkbox" v-if="!isDisable(index)" v-model="item.enable"
|
<input type="checkbox" v-if="!isDisable(index)" v-model="item.enable"
|
||||||
:disabled="isReadOnly"/>
|
:disabled="isReadOnly"/>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
@ -19,6 +19,7 @@
|
||||||
show-word-limit/>
|
show-word-limit/>
|
||||||
|
|
||||||
</el-col>
|
</el-col>
|
||||||
|
|
||||||
<el-col>
|
<el-col>
|
||||||
<el-input :disabled="isReadOnly" v-model="item.value" size="small" @change="change"
|
<el-input :disabled="isReadOnly" v-model="item.value" size="small" @change="change"
|
||||||
:placeholder="valueText" show-word-limit/>
|
:placeholder="valueText" show-word-limit/>
|
||||||
|
@ -42,7 +43,6 @@
|
||||||
keyPlaceholder: String,
|
keyPlaceholder: String,
|
||||||
valuePlaceholder: String,
|
valuePlaceholder: String,
|
||||||
description: String,
|
description: String,
|
||||||
isShowEnable: Boolean,
|
|
||||||
items: Array,
|
items: Array,
|
||||||
isReadOnly: {
|
isReadOnly: {
|
||||||
type: Boolean,
|
type: Boolean,
|
||||||
|
@ -52,7 +52,6 @@
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
// checkedValues: []
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
|
@ -66,11 +65,6 @@
|
||||||
|
|
||||||
methods: {
|
methods: {
|
||||||
remove: function (index) {
|
remove: function (index) {
|
||||||
if (this.isShowEnable) {
|
|
||||||
// 移除勾选内容
|
|
||||||
let checkIndex = this.checkedValues.indexOf(this.items[index].uuid);
|
|
||||||
checkIndex != -1 ? this.checkedValues.splice(checkIndex, 1) : this.checkedValues;
|
|
||||||
}
|
|
||||||
// 移除整行输入控件及内容
|
// 移除整行输入控件及内容
|
||||||
this.items.splice(index, 1);
|
this.items.splice(index, 1);
|
||||||
this.$emit('change', this.items);
|
this.$emit('change', this.items);
|
||||||
|
|
|
@ -29,7 +29,7 @@
|
||||||
|
|
||||||
<el-tabs v-model="activeName" :disabled="isReadOnly">
|
<el-tabs v-model="activeName" :disabled="isReadOnly">
|
||||||
<el-tab-pane :label="$t('api_test.scenario.variables')" name="parameters">
|
<el-tab-pane :label="$t('api_test.scenario.variables')" name="parameters">
|
||||||
<ms-api-scenario-variables :isShowEnable="true" :is-read-only="isReadOnly" :items="scenario.variables"
|
<ms-api-scenario-variables :is-read-only="isReadOnly" :items="scenario.variables"
|
||||||
:description="$t('api_test.scenario.kv_description')"/>
|
:description="$t('api_test.scenario.kv_description')"/>
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
<el-tab-pane :label="$t('api_test.scenario.headers')" name="headers">
|
<el-tab-pane :label="$t('api_test.scenario.headers')" name="headers">
|
||||||
|
|
|
@ -5,8 +5,8 @@
|
||||||
</span>
|
</span>
|
||||||
<div class="kv-row" v-for="(item, index) in items" :key="index">
|
<div class="kv-row" v-for="(item, index) in items" :key="index">
|
||||||
<el-row type="flex" :gutter="20" justify="space-between" align="middle">
|
<el-row type="flex" :gutter="20" justify="space-between" align="middle">
|
||||||
<el-col v-if="isShowEnable" class="kv-checkbox">
|
<el-col class="kv-checkbox">
|
||||||
<input type="checkbox" v-if="!isDisable(index)" @change="change" :value="item.uuid" v-model="checkedValues"
|
<input type="checkbox" v-if="!isDisable(index)" @change="change" :value="item.uuid" v-model="item.enable"
|
||||||
:disabled="isDisable(index) || isReadOnly"/>
|
:disabled="isDisable(index) || isReadOnly"/>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
|
||||||
|
@ -41,10 +41,6 @@
|
||||||
type: Boolean,
|
type: Boolean,
|
||||||
default: false
|
default: false
|
||||||
},
|
},
|
||||||
isShowEnable: {
|
|
||||||
type: Boolean,
|
|
||||||
default: false
|
|
||||||
},
|
|
||||||
showVariable: {
|
showVariable: {
|
||||||
type: Boolean,
|
type: Boolean,
|
||||||
default: true
|
default: true
|
||||||
|
@ -52,16 +48,10 @@
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
checkedValues: []
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
remove: function (index) {
|
remove: function (index) {
|
||||||
if (this.isShowEnable) {
|
|
||||||
// 移除勾选内容
|
|
||||||
let checkIndex = this.checkedValues.indexOf(this.items[index].uuid);
|
|
||||||
checkIndex != -1 ? this.checkedValues.splice(checkIndex, 1) : this.checkedValues;
|
|
||||||
}
|
|
||||||
this.items.splice(index, 1);
|
this.items.splice(index, 1);
|
||||||
this.$emit('change', this.items);
|
this.$emit('change', this.items);
|
||||||
},
|
},
|
||||||
|
@ -69,10 +59,6 @@
|
||||||
let isNeedCreate = true;
|
let isNeedCreate = true;
|
||||||
let removeIndex = -1;
|
let removeIndex = -1;
|
||||||
this.items.forEach((item, index) => {
|
this.items.forEach((item, index) => {
|
||||||
// 启用行赋值
|
|
||||||
if (this.isShowEnable) {
|
|
||||||
item.enable = this.checkedValues.indexOf(item.uuid) != -1 ? true : false;
|
|
||||||
}
|
|
||||||
if (!item.name && !item.value) {
|
if (!item.name && !item.value) {
|
||||||
// 多余的空行
|
// 多余的空行
|
||||||
if (index !== this.items.length - 1) {
|
if (index !== this.items.length - 1) {
|
||||||
|
@ -83,20 +69,11 @@
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
if (isNeedCreate) {
|
if (isNeedCreate) {
|
||||||
// 往后台送入的复选框值布尔值
|
this.items.push(new KeyValue({enable: true}));
|
||||||
if (this.isShowEnable) {
|
|
||||||
this.items[this.items.length - 1].enable = true;
|
|
||||||
// v-model 选中状态
|
|
||||||
this.checkedValues.push(this.items[this.items.length - 1].uuid);
|
|
||||||
}
|
|
||||||
this.items.push(new KeyValue());
|
|
||||||
}
|
}
|
||||||
this.$emit('change', this.items);
|
this.$emit('change', this.items);
|
||||||
// TODO 检查key重复
|
// TODO 检查key重复
|
||||||
},
|
},
|
||||||
uuid: function () {
|
|
||||||
return (((1 + Math.random()) * 0x100000) | 0).toString(16).substring(1);
|
|
||||||
},
|
|
||||||
isDisable: function (index) {
|
isDisable: function (index) {
|
||||||
return this.items.length - 1 === index;
|
return this.items.length - 1 === index;
|
||||||
}
|
}
|
||||||
|
@ -104,15 +81,7 @@
|
||||||
|
|
||||||
created() {
|
created() {
|
||||||
if (this.items.length === 0) {
|
if (this.items.length === 0) {
|
||||||
this.items.push(new KeyValue());
|
this.items.push(new KeyValue({enable: true}));
|
||||||
}else if (this.isShowEnable) {
|
|
||||||
this.items.forEach((item, index) => {
|
|
||||||
let uuid = this.uuid();
|
|
||||||
item.uuid = uuid;
|
|
||||||
if (item.enable) {
|
|
||||||
this.checkedValues.push(uuid);
|
|
||||||
}
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<template>
|
<template>
|
||||||
<el-dialog :close-on-click-modal="false" width="50%" class="schedule-edit" :visible.sync="dialogVisible"
|
<el-dialog :close-on-click-modal="false" width="60%" class="schedule-edit" :visible.sync="dialogVisible"
|
||||||
@close="close">
|
@close="close">
|
||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
|
@ -21,7 +21,7 @@
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<crontab-result :ex="form.cronValue" ref="crontabResult"/>
|
<crontab-result :ex="form.cronValue" ref="crontabResult"/>
|
||||||
</el-form>
|
</el-form>
|
||||||
<el-dialog :title="$t('schedule.generate_expression')" :visible.sync="showCron" :modal="false">
|
<el-dialog width="60%" :title="$t('schedule.generate_expression')" :visible.sync="showCron" :modal="false">
|
||||||
<crontab @hide="showCron=false" @fill="crontabFill" :expression="schedule.value" ref="crontab"/>
|
<crontab @hide="showCron=false" @fill="crontabFill" :expression="schedule.value" ref="crontab"/>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
|
@ -32,9 +32,12 @@
|
||||||
style="width: 100%">
|
style="width: 100%">
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="event"
|
prop="event"
|
||||||
:label="$t('schedule.event')"
|
:label="$t('schedule.event')">
|
||||||
|
<template v-slot:default="{row}">
|
||||||
>
|
<span v-if="row.event === 'EXECUTE_SUCCESSFUL'"> {{ $t('schedule.event_success') }}</span>
|
||||||
|
<span v-else-if="row.event === 'EXECUTE_FAILED'"> {{ $t('schedule.event_failed') }}</span>
|
||||||
|
<span v-else>{{ row.event }}</span>
|
||||||
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="name"
|
prop="name"
|
||||||
|
@ -42,7 +45,8 @@
|
||||||
width="200"
|
width="200"
|
||||||
>
|
>
|
||||||
<template v-slot:default="{row}">
|
<template v-slot:default="{row}">
|
||||||
<el-select v-model="row.names" filterable multiple placeholder="请选择" @click.native="userList()">
|
<el-select v-model="row.names" filterable multiple :placeholder="$t('commons.please_select')"
|
||||||
|
@click.native="userList()">
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in options"
|
v-for="item in options"
|
||||||
:key="item.id"
|
:key="item.id"
|
||||||
|
@ -53,7 +57,7 @@
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="email"
|
prop="type"
|
||||||
:label="$t('schedule.receiving_mode')"
|
:label="$t('schedule.receiving_mode')"
|
||||||
>
|
>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
@ -142,21 +146,21 @@ export default {
|
||||||
},
|
},
|
||||||
tableData: [
|
tableData: [
|
||||||
{
|
{
|
||||||
event: "执行成功",
|
event: "EXECUTE_SUCCESSFUL",
|
||||||
|
type: "EMAIL",
|
||||||
names: [],
|
names: [],
|
||||||
email: "邮箱",
|
|
||||||
enable: false
|
enable: false
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
event: "执行失败",
|
event: "EXECUTE_FAILED",
|
||||||
|
type: "EMAIL",
|
||||||
names: [],
|
names: [],
|
||||||
email: "邮箱",
|
|
||||||
enable: false
|
enable: false
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
options: [{}],
|
options: [{}],
|
||||||
enable: true,
|
enable: true,
|
||||||
email: "",
|
type: "",
|
||||||
activeName: 'first',
|
activeName: 'first',
|
||||||
rules: {
|
rules: {
|
||||||
cronValue: [{required: true, validator: validateCron, trigger: 'blur'}],
|
cronValue: [{required: true, validator: validateCron, trigger: 'blur'}],
|
||||||
|
@ -170,17 +174,18 @@ export default {
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
handleClick() {
|
handleClick() {
|
||||||
if (this.activeName == "second") {
|
if (this.activeName === "second") {
|
||||||
this.result = this.$get('notice/query/' + this.testId, response => {
|
this.result = this.$get('notice/query/' + this.testId, response => {
|
||||||
if (response.data.length > 0) {
|
if (response.data.length > 0) {
|
||||||
this.tableData = response.data
|
this.tableData = response.data
|
||||||
this.tableData[0].email="邮箱"
|
|
||||||
this.tableData[0].event="执行成功"
|
this.tableData[0].event = "EXECUTE_SUCCESSFUL"
|
||||||
this.tableData[1].email="邮箱"
|
this.tableData[0].type = "EMAIL"
|
||||||
this.tableData[1].event="执行失败"
|
this.tableData[1].event = "EXECUTE_FAILED"
|
||||||
}else{
|
this.tableData[1].type = "EMAIL"
|
||||||
this.tableData[0].names=[]
|
} else {
|
||||||
this.tableData[1].names=[]
|
this.tableData[0].names = []
|
||||||
|
this.tableData[1].names = []
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
|
@ -334,14 +334,10 @@
|
||||||
},
|
},
|
||||||
handleSelectAll(selection) {
|
handleSelectAll(selection) {
|
||||||
if (selection.length > 0) {
|
if (selection.length > 0) {
|
||||||
if (selection.length === 1) {
|
|
||||||
this.selectRows.add(selection[0]);
|
|
||||||
} else {
|
|
||||||
this.tableData.forEach(item => {
|
this.tableData.forEach(item => {
|
||||||
this.$set(item, "showMore", true);
|
this.$set(item, "showMore", true);
|
||||||
this.selectRows.add(item);
|
this.selectRows.add(item);
|
||||||
});
|
});
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
this.selectRows.clear();
|
this.selectRows.clear();
|
||||||
this.tableData.forEach(row => {
|
this.tableData.forEach(row => {
|
||||||
|
@ -350,11 +346,6 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
handleSelectionChange(selection, row) {
|
handleSelectionChange(selection, row) {
|
||||||
// if (this.selectIds.has(row.id)) {
|
|
||||||
// this.selectIds.delete(row.id);
|
|
||||||
// } else {
|
|
||||||
// this.selectIds.add(row.id);
|
|
||||||
// }
|
|
||||||
if (this.selectRows.has(row)) {
|
if (this.selectRows.has(row)) {
|
||||||
this.$set(row, "showMore", false);
|
this.$set(row, "showMore", false);
|
||||||
this.selectRows.delete(row);
|
this.selectRows.delete(row);
|
||||||
|
@ -362,17 +353,6 @@
|
||||||
this.$set(row, "showMore", true);
|
this.$set(row, "showMore", true);
|
||||||
this.selectRows.add(row);
|
this.selectRows.add(row);
|
||||||
}
|
}
|
||||||
|
|
||||||
let arr = Array.from(this.selectRows);
|
|
||||||
|
|
||||||
// 选中1个以上的用例时显示更多操作
|
|
||||||
if (this.selectRows.size === 1) {
|
|
||||||
this.$set(arr[0], "showMore", false);
|
|
||||||
} else if (this.selectRows.size === 2) {
|
|
||||||
arr.forEach(row => {
|
|
||||||
this.$set(row, "showMore", true);
|
|
||||||
})
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
importTestCase() {
|
importTestCase() {
|
||||||
this.$refs.testCaseImport.open();
|
this.$refs.testCaseImport.open();
|
||||||
|
|
|
@ -21,29 +21,29 @@
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<el-button plain size="mini"
|
<el-button plain size="mini"
|
||||||
icon="el-icon-back"
|
icon="el-icon-back"
|
||||||
@click="cancel">{{$t('test_track.return')}}
|
@click="cancel">{{ $t('test_track.return') }}
|
||||||
</el-button>
|
</el-button>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
|
||||||
<el-col :span="12" class="head-right">
|
<el-col :span="12" class="head-right">
|
||||||
<span class="head-right-tip" v-if="index + 1 == testCases.length">
|
<span class="head-right-tip" v-if="index + 1 == testCases.length">
|
||||||
{{$t('test_track.plan_view.pre_case')}} : {{testCases[index - 1] ? testCases[index - 1].name : ''}}
|
{{ $t('test_track.plan_view.pre_case') }} : {{ testCases[index - 1] ? testCases[index - 1].name : '' }}
|
||||||
</span>
|
</span>
|
||||||
<span class="head-right-tip" v-if="index + 1 != testCases.length">
|
<span class="head-right-tip" v-if="index + 1 != testCases.length">
|
||||||
{{$t('test_track.plan_view.next_case')}} : {{testCases[index + 1] ? testCases[index + 1].name : ''}}
|
{{ $t('test_track.plan_view.next_case') }} : {{ testCases[index + 1] ? testCases[index + 1].name : '' }}
|
||||||
</span>
|
</span>
|
||||||
|
|
||||||
<el-button plain size="mini" icon="el-icon-arrow-up"
|
<el-button plain size="mini" icon="el-icon-arrow-up"
|
||||||
:disabled="index + 1 <= 1"
|
:disabled="index + 1 <= 1"
|
||||||
@click="handlePre()"/>
|
@click="handlePre()"/>
|
||||||
<span> {{index + 1}}/{{testCases.length}} </span>
|
<span> {{ index + 1 }}/{{ testCases.length }} </span>
|
||||||
<el-button plain size="mini" icon="el-icon-arrow-down"
|
<el-button plain size="mini" icon="el-icon-arrow-down"
|
||||||
:disabled="index + 1 >= testCases.length"
|
:disabled="index + 1 >= testCases.length"
|
||||||
@click="handleNext()"/>
|
@click="handleNext()"/>
|
||||||
<el-divider direction="vertical"></el-divider>
|
<el-divider direction="vertical"></el-divider>
|
||||||
|
|
||||||
<el-button type="primary" size="mini" :disabled="isReadOnly" @click="saveCase()">
|
<el-button type="primary" size="mini" :disabled="isReadOnly" @click="saveCase()">
|
||||||
{{$t('test_track.save')}}
|
{{ $t('test_track.save') }}
|
||||||
</el-button>
|
</el-button>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
|
||||||
|
@ -51,7 +51,7 @@
|
||||||
|
|
||||||
<el-row style="margin-top: 0px;">
|
<el-row style="margin-top: 0px;">
|
||||||
<el-col>
|
<el-col>
|
||||||
<el-divider content-position="left">{{testCase.name}}</el-divider>
|
<el-divider content-position="left">{{ testCase.name }}</el-divider>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
||||||
|
@ -60,14 +60,14 @@
|
||||||
<div class="case_container">
|
<div class="case_container">
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="4" :offset="1">
|
<el-col :span="4" :offset="1">
|
||||||
<span class="cast_label">{{$t('test_track.case.priority')}}:</span>
|
<span class="cast_label">{{ $t('test_track.case.priority') }}:</span>
|
||||||
<span class="cast_item">{{testCase.priority}}</span>
|
<span class="cast_item">{{ testCase.priority }}</span>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="5">
|
<el-col :span="5">
|
||||||
<span class="cast_label">{{$t('test_track.case.case_type')}}:</span>
|
<span class="cast_label">{{ $t('test_track.case.case_type') }}:</span>
|
||||||
<span class="cast_item" v-if="testCase.type == 'functional'">{{$t('commons.functional')}}</span>
|
<span class="cast_item" v-if="testCase.type == 'functional'">{{ $t('commons.functional') }}</span>
|
||||||
<span class="cast_item" v-if="testCase.type == 'performance'">{{$t('commons.performance')}}</span>
|
<span class="cast_item" v-if="testCase.type == 'performance'">{{ $t('commons.performance') }}</span>
|
||||||
<span class="cast_item" v-if="testCase.type == 'api'">{{$t('commons.api')}}</span>
|
<span class="cast_item" v-if="testCase.type == 'api'">{{ $t('commons.api') }}</span>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="13">
|
<el-col :span="13">
|
||||||
<test-plan-test-case-status-button class="status-button"
|
<test-plan-test-case-status-button class="status-button"
|
||||||
|
@ -80,24 +80,24 @@
|
||||||
|
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="4" :offset="1">
|
<el-col :span="4" :offset="1">
|
||||||
<span class="cast_label">{{$t('test_track.case.method')}}:</span>
|
<span class="cast_label">{{ $t('test_track.case.method') }}:</span>
|
||||||
<span v-if="testCase.method == 'manual'">{{$t('test_track.case.manual')}}</span>
|
<span v-if="testCase.method == 'manual'">{{ $t('test_track.case.manual') }}</span>
|
||||||
<span v-if="testCase.method == 'auto'">{{$t('test_track.case.auto')}}</span>
|
<span v-if="testCase.method == 'auto'">{{ $t('test_track.case.auto') }}</span>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="5">
|
<el-col :span="5">
|
||||||
<span class="cast_label">{{$t('test_track.case.module')}}:</span>
|
<span class="cast_label">{{ $t('test_track.case.module') }}:</span>
|
||||||
<span class="cast_item">{{testCase.nodePath}}</span>
|
<span class="cast_item">{{ testCase.nodePath }}</span>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="4" :offset="1">
|
<el-col :span="4" :offset="1">
|
||||||
<span class="cast_label">{{$t('test_track.plan.plan_project')}}:</span>
|
<span class="cast_label">{{ $t('test_track.plan.plan_project') }}:</span>
|
||||||
<span class="cast_item">{{testCase.projectName}}</span>
|
<span class="cast_item">{{ testCase.projectName }}</span>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :offset="1">
|
<el-col :offset="1">
|
||||||
<span class="cast_label">{{$t('test_track.case.prerequisite')}}:</span>
|
<span class="cast_label">{{ $t('test_track.case.prerequisite') }}:</span>
|
||||||
<span class="cast_item">{{testCase.prerequisite}}</span>
|
<span class="cast_item">{{ testCase.prerequisite }}</span>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
||||||
|
@ -122,7 +122,7 @@
|
||||||
<el-row v-if="testCase.method && testCase.method != 'auto'">
|
<el-row v-if="testCase.method && testCase.method != 'auto'">
|
||||||
<el-col :span="20" :offset="1">
|
<el-col :span="20" :offset="1">
|
||||||
<div>
|
<div>
|
||||||
<span class="cast_label">{{$t('test_track.case.steps')}}:</span>
|
<span class="cast_label">{{ $t('test_track.case.steps') }}:</span>
|
||||||
</div>
|
</div>
|
||||||
<el-table
|
<el-table
|
||||||
:data="testCase.steptResults"
|
:data="testCase.steptResults"
|
||||||
|
@ -220,12 +220,14 @@
|
||||||
v-model="testCase.issues.content"/>
|
v-model="testCase.issues.content"/>
|
||||||
<el-row v-if="hasTapdId">
|
<el-row v-if="hasTapdId">
|
||||||
Tapd平台处理人:
|
Tapd平台处理人:
|
||||||
<el-select v-model="testCase.tapdUsers" placeholder="请选择处理人" style="width: 20%" multiple collapse-tags>
|
<el-select v-model="testCase.tapdUsers" placeholder="请选择处理人" style="width: 20%" multiple
|
||||||
<el-option v-for="(userInfo, index) in users" :key="index" :label="userInfo.user" :value="userInfo.user"/>
|
collapse-tags>
|
||||||
|
<el-option v-for="(userInfo, index) in users" :key="index" :label="userInfo.user"
|
||||||
|
:value="userInfo.user"/>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-row>
|
</el-row>
|
||||||
<el-button type="primary" size="small" @click="saveIssues">{{$t('commons.save')}}</el-button>
|
<el-button type="primary" size="small" @click="saveIssues">{{ $t('commons.save') }}</el-button>
|
||||||
<el-button size="small" @click="issuesSwitch=false">{{$t('commons.cancel')}}</el-button>
|
<el-button size="small" @click="issuesSwitch=false">{{ $t('commons.cancel') }}</el-button>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
||||||
|
@ -243,7 +245,7 @@
|
||||||
>
|
>
|
||||||
<ckeditor :editor="editor" disabled :config="readConfig"
|
<ckeditor :editor="editor" disabled :config="readConfig"
|
||||||
v-model="scope.row.description"/>
|
v-model="scope.row.description"/>
|
||||||
<el-button slot="reference" type="text">{{$t('test_track.issue.preview')}}</el-button>
|
<el-button slot="reference" type="text">{{ $t('test_track.issue.preview') }}</el-button>
|
||||||
</el-popover>
|
</el-popover>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
@ -252,12 +254,19 @@
|
||||||
<el-table-column :label="$t('test_track.issue.operate')">
|
<el-table-column :label="$t('test_track.issue.operate')">
|
||||||
<template v-slot:default="scope">
|
<template v-slot:default="scope">
|
||||||
<el-tooltip :content="$t('test_track.issue.close')"
|
<el-tooltip :content="$t('test_track.issue.close')"
|
||||||
placement="right">
|
placement="top" :enterable="false">
|
||||||
<el-button type="danger" icon="el-icon-circle-close" size="mini"
|
<el-button type="danger" icon="el-icon-circle-close" size="mini"
|
||||||
circle v-if="scope.row.platform === 'Local'"
|
circle v-if="scope.row.platform === 'Local'"
|
||||||
@click="closeIssue(scope.row)"
|
@click="closeIssue(scope.row)"
|
||||||
/>
|
/>
|
||||||
</el-tooltip>
|
</el-tooltip>
|
||||||
|
<el-tooltip :content="$t('test_track.issue.delete')"
|
||||||
|
placement="top" :enterable="false">
|
||||||
|
<el-button type="danger" icon="el-icon-delete" size="mini"
|
||||||
|
circle v-if="scope.row.platform === 'Local'"
|
||||||
|
@click="deleteIssue(scope.row)"
|
||||||
|
/>
|
||||||
|
</el-tooltip>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
|
@ -267,8 +276,9 @@
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="15" :offset="1">
|
<el-col :span="15" :offset="1">
|
||||||
<div>
|
<div>
|
||||||
<span class="cast_label">{{$t('commons.remark')}}:</span>
|
<span class="cast_label">{{ $t('commons.remark') }}:</span>
|
||||||
<span v-if="testCase.remark == null || testCase.remark == ''" style="color: darkgrey">{{$t('commons.not_filled')}}</span>
|
<span v-if="testCase.remark == null || testCase.remark == ''"
|
||||||
|
style="color: darkgrey">{{ $t('commons.not_filled') }}</span>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<el-input :rows="3"
|
<el-input :rows="3"
|
||||||
|
@ -293,16 +303,16 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import TestPlanTestCaseStatusButton from '../../common/TestPlanTestCaseStatusButton';
|
import TestPlanTestCaseStatusButton from '../../common/TestPlanTestCaseStatusButton';
|
||||||
import ClassicEditor from '@ckeditor/ckeditor5-build-classic';
|
import ClassicEditor from '@ckeditor/ckeditor5-build-classic';
|
||||||
import ApiTestDetail from "./test/ApiTestDetail";
|
import ApiTestDetail from "./test/ApiTestDetail";
|
||||||
import ApiTestResult from "./test/ApiTestResult";
|
import ApiTestResult from "./test/ApiTestResult";
|
||||||
import PerformanceTestDetail from "./test/PerformanceTestDetail";
|
import PerformanceTestDetail from "./test/PerformanceTestDetail";
|
||||||
import PerformanceTestResult from "./test/PerformanceTestResult";
|
import PerformanceTestResult from "./test/PerformanceTestResult";
|
||||||
import {listenGoBack, removeGoBackListener} from "../../../../../../common/js/utils";
|
import {listenGoBack, removeGoBackListener} from "../../../../../../common/js/utils";
|
||||||
import {CURRENT_PROJECT} from "../../../../../../common/js/constants";
|
import {CURRENT_PROJECT} from "../../../../../../common/js/constants";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "TestPlanTestCaseEdit",
|
name: "TestPlanTestCaseEdit",
|
||||||
components: {
|
components: {
|
||||||
PerformanceTestResult,
|
PerformanceTestResult,
|
||||||
|
@ -552,68 +562,78 @@
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
closeIssue(row) {
|
closeIssue(row) {
|
||||||
|
if (row.status === 'closed') {
|
||||||
|
this.$success(this.$t('test_track.issue.close_success'));
|
||||||
|
} else {
|
||||||
this.result = this.$get("/issues/close/" + row.id, () => {
|
this.result = this.$get("/issues/close/" + row.id, () => {
|
||||||
this.getIssues(this.testCase.caseId);
|
this.getIssues(this.testCase.caseId);
|
||||||
this.$success(this.$t('test_track.issue.close_success'));
|
this.$success(this.$t('test_track.issue.close_success'));
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
deleteIssue(row) {
|
||||||
|
this.result = this.$get("/issues/delete/" + row.id, () => {
|
||||||
|
this.getIssues(this.testCase.caseId);
|
||||||
|
this.$success(this.$t('commons.delete_success'));
|
||||||
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped>
|
<style scoped>
|
||||||
|
|
||||||
.border-hidden >>> .el-textarea__inner {
|
.border-hidden >>> .el-textarea__inner {
|
||||||
border-style: hidden;
|
border-style: hidden;
|
||||||
background-color: white;
|
background-color: white;
|
||||||
color: #606266;
|
color: #606266;
|
||||||
}
|
}
|
||||||
|
|
||||||
.cast_label {
|
.cast_label {
|
||||||
color: dimgray;
|
color: dimgray;
|
||||||
}
|
}
|
||||||
|
|
||||||
.status-button {
|
.status-button {
|
||||||
padding-left: 4%;
|
padding-left: 4%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.head-right {
|
.head-right {
|
||||||
text-align: right;
|
text-align: right;
|
||||||
}
|
}
|
||||||
|
|
||||||
.el-col:not(.test-detail) {
|
.el-col:not(.test-detail) {
|
||||||
line-height: 50px;
|
line-height: 50px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.issues-edit >>> p {
|
.issues-edit >>> p {
|
||||||
line-height: 16px;
|
line-height: 16px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.status-button {
|
.status-button {
|
||||||
float: right;
|
float: right;
|
||||||
}
|
}
|
||||||
|
|
||||||
.head-right-tip {
|
.head-right-tip {
|
||||||
color: darkgrey;
|
color: darkgrey;
|
||||||
}
|
}
|
||||||
|
|
||||||
.el-scrollbar {
|
.el-scrollbar {
|
||||||
height: 100%;
|
height: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.container {
|
.container {
|
||||||
height: 100vh;
|
height: 100vh;
|
||||||
}
|
}
|
||||||
|
|
||||||
.case_container > .el-row {
|
.case_container > .el-row {
|
||||||
margin-top: 1%;
|
margin-top: 1%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.el-switch >>> .el-switch__label {
|
.el-switch >>> .el-switch__label {
|
||||||
color: dimgray;
|
color: dimgray;
|
||||||
}
|
}
|
||||||
|
|
||||||
.el-switch >>> .el-switch__label.is-active {
|
.el-switch >>> .el-switch__label.is-active {
|
||||||
color: #409EFF;
|
color: #409EFF;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
|
@ -855,6 +855,7 @@ export default {
|
||||||
platform: "Platform",
|
platform: "Platform",
|
||||||
operate: "Operate",
|
operate: "Operate",
|
||||||
close: "Close",
|
close: "Close",
|
||||||
|
delete: "Delete",
|
||||||
title_description_required: "Title and description are required",
|
title_description_required: "Title and description are required",
|
||||||
close_success: "Closed successfully",
|
close_success: "Closed successfully",
|
||||||
preview: "Preview"
|
preview: "Preview"
|
||||||
|
@ -930,6 +931,8 @@ export default {
|
||||||
schedule: {
|
schedule: {
|
||||||
input_email: "Please input email account",
|
input_email: "Please input email account",
|
||||||
event: "event",
|
event: "event",
|
||||||
|
event_success: 'EXECUTE SUCCESSFUL',
|
||||||
|
event_failed: 'EXECUTE FAILED',
|
||||||
receiving_mode: "mailbox",
|
receiving_mode: "mailbox",
|
||||||
receiver: "Receiver",
|
receiver: "Receiver",
|
||||||
operation: "operation",
|
operation: "operation",
|
||||||
|
|
|
@ -861,6 +861,7 @@ export default {
|
||||||
platform: "平台",
|
platform: "平台",
|
||||||
operate: "操作",
|
operate: "操作",
|
||||||
close: "关闭缺陷",
|
close: "关闭缺陷",
|
||||||
|
delete: "删除缺陷",
|
||||||
title_description_required: "标题和描述必填",
|
title_description_required: "标题和描述必填",
|
||||||
close_success: "关闭成功",
|
close_success: "关闭成功",
|
||||||
preview: "预览"
|
preview: "预览"
|
||||||
|
@ -935,6 +936,8 @@ export default {
|
||||||
schedule: {
|
schedule: {
|
||||||
input_email: "请输入邮箱账号",
|
input_email: "请输入邮箱账号",
|
||||||
event: "事件",
|
event: "事件",
|
||||||
|
event_success: '执行成功',
|
||||||
|
event_failed: '执行失败',
|
||||||
receiving_mode: "接收方式",
|
receiving_mode: "接收方式",
|
||||||
receiver: "接收人",
|
receiver: "接收人",
|
||||||
operation: "操作",
|
operation: "操作",
|
||||||
|
|
|
@ -857,6 +857,7 @@ export default {
|
||||||
platform: "平臺",
|
platform: "平臺",
|
||||||
operate: "操作",
|
operate: "操作",
|
||||||
close: "關閉缺陷",
|
close: "關閉缺陷",
|
||||||
|
delete: "刪除缺陷",
|
||||||
title_description_required: "標題和描述必填",
|
title_description_required: "標題和描述必填",
|
||||||
close_success: "關閉成功",
|
close_success: "關閉成功",
|
||||||
preview: "預覽"
|
preview: "預覽"
|
||||||
|
@ -931,6 +932,8 @@ export default {
|
||||||
schedule: {
|
schedule: {
|
||||||
input_email: "請輸入郵箱賬號",
|
input_email: "請輸入郵箱賬號",
|
||||||
event: "事件",
|
event: "事件",
|
||||||
|
event_success: '執行成功',
|
||||||
|
event_failed: '執行失敗',
|
||||||
receiving_mode: "接收方式",
|
receiving_mode: "接收方式",
|
||||||
receiver: "接收人",
|
receiver: "接收人",
|
||||||
operation: "操作",
|
operation: "操作",
|
||||||
|
|
Loading…
Reference in New Issue