Commit 942c09f7 authored by 王晓倩's avatar 王晓倩

Merge remote-tracking branch 'origin/master'

parents 533635b6 2dd93bed
...@@ -12,7 +12,7 @@ import com.zehong.common.core.domain.BaseEntity; ...@@ -12,7 +12,7 @@ import com.zehong.common.core.domain.BaseEntity;
* 设备监控对象 t_device_report_data * 设备监控对象 t_device_report_data
* *
* @author zehong * @author zehong
* @date 2022-02-16 * @date 2022-02-17
*/ */
public class TDeviceReportData extends BaseEntity public class TDeviceReportData extends BaseEntity
{ {
...@@ -21,6 +21,10 @@ public class TDeviceReportData extends BaseEntity ...@@ -21,6 +21,10 @@ public class TDeviceReportData extends BaseEntity
/** 设备上报id */ /** 设备上报id */
private Long deviceReportDataId; private Long deviceReportDataId;
/** 设备名称 */
@Excel(name = "设备名称")
private String deviceName;
/** 设备id(物联网编号) */ /** 设备id(物联网编号) */
@Excel(name = "设备id", readConverterExp = "物=联网编号") @Excel(name = "设备id", readConverterExp = "物=联网编号")
private String deviceNum; private String deviceNum;
...@@ -70,6 +74,14 @@ public class TDeviceReportData extends BaseEntity ...@@ -70,6 +74,14 @@ public class TDeviceReportData extends BaseEntity
@Excel(name = "设备状态") @Excel(name = "设备状态")
private String deviceStatus; private String deviceStatus;
/** 所属企业id */
@Excel(name = "所属企业id")
private Long beyondEnterpriseId;
/** 所属企业名称 */
@Excel(name = "所属企业名称")
private String beyondEnterpriseName;
/** 是否删除(0正常,1删除) */ /** 是否删除(0正常,1删除) */
@Excel(name = "是否删除(0正常,1删除)") @Excel(name = "是否删除(0正常,1删除)")
private String isDel; private String isDel;
...@@ -87,6 +99,15 @@ public class TDeviceReportData extends BaseEntity ...@@ -87,6 +99,15 @@ public class TDeviceReportData extends BaseEntity
{ {
return deviceReportDataId; return deviceReportDataId;
} }
public void setDeviceName(String deviceName)
{
this.deviceName = deviceName;
}
public String getDeviceName()
{
return deviceName;
}
public void setDeviceNum(String deviceNum) public void setDeviceNum(String deviceNum)
{ {
this.deviceNum = deviceNum; this.deviceNum = deviceNum;
...@@ -195,6 +216,24 @@ public class TDeviceReportData extends BaseEntity ...@@ -195,6 +216,24 @@ public class TDeviceReportData extends BaseEntity
{ {
return deviceStatus; return deviceStatus;
} }
public void setBeyondEnterpriseId(Long beyondEnterpriseId)
{
this.beyondEnterpriseId = beyondEnterpriseId;
}
public Long getBeyondEnterpriseId()
{
return beyondEnterpriseId;
}
public void setBeyondEnterpriseName(String beyondEnterpriseName)
{
this.beyondEnterpriseName = beyondEnterpriseName;
}
public String getBeyondEnterpriseName()
{
return beyondEnterpriseName;
}
public void setIsDel(String isDel) public void setIsDel(String isDel)
{ {
this.isDel = isDel; this.isDel = isDel;
...@@ -218,6 +257,7 @@ public class TDeviceReportData extends BaseEntity ...@@ -218,6 +257,7 @@ public class TDeviceReportData extends BaseEntity
public String toString() { public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("deviceReportDataId", getDeviceReportDataId()) .append("deviceReportDataId", getDeviceReportDataId())
.append("deviceName", getDeviceName())
.append("deviceNum", getDeviceNum()) .append("deviceNum", getDeviceNum())
.append("standardConditionAccumulation", getStandardConditionAccumulation()) .append("standardConditionAccumulation", getStandardConditionAccumulation())
.append("workingConditionAccumulation", getWorkingConditionAccumulation()) .append("workingConditionAccumulation", getWorkingConditionAccumulation())
...@@ -230,6 +270,8 @@ public class TDeviceReportData extends BaseEntity ...@@ -230,6 +270,8 @@ public class TDeviceReportData extends BaseEntity
.append("reportTime", getReportTime()) .append("reportTime", getReportTime())
.append("communicationStatus", getCommunicationStatus()) .append("communicationStatus", getCommunicationStatus())
.append("deviceStatus", getDeviceStatus()) .append("deviceStatus", getDeviceStatus())
.append("beyondEnterpriseId", getBeyondEnterpriseId())
.append("beyondEnterpriseName", getBeyondEnterpriseName())
.append("createBy", getCreateBy()) .append("createBy", getCreateBy())
.append("createTime", getCreateTime()) .append("createTime", getCreateTime())
.append("updateBy", getUpdateBy()) .append("updateBy", getUpdateBy())
......
...@@ -8,7 +8,7 @@ import com.zehong.common.core.domain.BaseEntity; ...@@ -8,7 +8,7 @@ import com.zehong.common.core.domain.BaseEntity;
/** /**
* 管道信息对象 t_pipe_info * 管道信息对象 t_pipe_info
* *
* @author zehong * @author zehong
* @date 2022-02-09 * @date 2022-02-09
*/ */
...@@ -55,6 +55,10 @@ public class TPipeInfo extends BaseEntity ...@@ -55,6 +55,10 @@ public class TPipeInfo extends BaseEntity
@Excel(name = "建设单位") @Excel(name = "建设单位")
private String buildUnit; private String buildUnit;
/**人员类型*/
@Excel(name = "人员类型")
private String peopleOccupation;
/** 权属单位 */ /** 权属单位 */
@Excel(name = "权属单位") @Excel(name = "权属单位")
private Long beyondEnterpriseId; private Long beyondEnterpriseId;
...@@ -75,164 +79,173 @@ public class TPipeInfo extends BaseEntity ...@@ -75,164 +79,173 @@ public class TPipeInfo extends BaseEntity
@Excel(name = "备注") @Excel(name = "备注")
private String remarks; private String remarks;
public void setPipeId(Long pipeId) public static long getSerialVersionUID() {
return serialVersionUID;
}
public String getPeopleOccupation() {
return peopleOccupation;
}
public void setPeopleOccupation(String peopleOccupation) {
this.peopleOccupation = peopleOccupation;
}
public void setPipeId(Long pipeId)
{ {
this.pipeId = pipeId; this.pipeId = pipeId;
} }
public Long getPipeId() public Long getPipeId()
{ {
return pipeId; return pipeId;
} }
public void setPipeLength(BigDecimal pipeLength) public void setPipeLength(BigDecimal pipeLength)
{ {
this.pipeLength = pipeLength; this.pipeLength = pipeLength;
} }
public BigDecimal getPipeLength() public BigDecimal getPipeLength()
{ {
return pipeLength; return pipeLength;
} }
public void setPipeDiameter(BigDecimal pipeDiameter) public void setPipeDiameter(BigDecimal pipeDiameter)
{ {
this.pipeDiameter = pipeDiameter; this.pipeDiameter = pipeDiameter;
} }
public BigDecimal getPipeDiameter() public BigDecimal getPipeDiameter()
{ {
return pipeDiameter; return pipeDiameter;
} }
public void setPipePressure(BigDecimal pipePressure) public void setPipePressure(BigDecimal pipePressure)
{ {
this.pipePressure = pipePressure; this.pipePressure = pipePressure;
} }
public BigDecimal getPipePressure() public BigDecimal getPipePressure()
{ {
return pipePressure; return pipePressure;
} }
public void setPipeMaterial(String pipeMaterial) public void setPipeMaterial(String pipeMaterial)
{ {
this.pipeMaterial = pipeMaterial; this.pipeMaterial = pipeMaterial;
} }
public String getPipeMaterial() public String getPipeMaterial()
{ {
return pipeMaterial; return pipeMaterial;
} }
public void setPipeAddr(String pipeAddr) public void setPipeAddr(String pipeAddr)
{ {
this.pipeAddr = pipeAddr; this.pipeAddr = pipeAddr;
} }
public String getPipeAddr() public String getPipeAddr()
{ {
return pipeAddr; return pipeAddr;
} }
public void setBuriedDepth(BigDecimal buriedDepth) public void setBuriedDepth(BigDecimal buriedDepth)
{ {
this.buriedDepth = buriedDepth; this.buriedDepth = buriedDepth;
} }
public BigDecimal getBuriedDepth() public BigDecimal getBuriedDepth()
{ {
return buriedDepth; return buriedDepth;
} }
public void setPipeTrend(String pipeTrend) public void setPipeTrend(String pipeTrend)
{ {
this.pipeTrend = pipeTrend; this.pipeTrend = pipeTrend;
} }
public String getPipeTrend() public String getPipeTrend()
{ {
return pipeTrend; return pipeTrend;
} }
public void setBuildDate(String buildDate) public void setBuildDate(String buildDate)
{ {
this.buildDate = buildDate; this.buildDate = buildDate;
} }
public String getBuildDate() public String getBuildDate()
{ {
return buildDate; return buildDate;
} }
public void setBuildUnit(String buildUnit) public void setBuildUnit(String buildUnit)
{ {
this.buildUnit = buildUnit; this.buildUnit = buildUnit;
} }
public String getBuildUnit() public String getBuildUnit()
{ {
return buildUnit; return buildUnit;
} }
public void setBeyondEnterpriseId(Long beyondEnterpriseId) public void setBeyondEnterpriseId(Long beyondEnterpriseId)
{ {
this.beyondEnterpriseId = beyondEnterpriseId; this.beyondEnterpriseId = beyondEnterpriseId;
} }
public Long getBeyondEnterpriseId() public Long getBeyondEnterpriseId()
{ {
return beyondEnterpriseId; return beyondEnterpriseId;
} }
public void setBeyondEnterpriseName(String beyondEnterpriseName) public void setBeyondEnterpriseName(String beyondEnterpriseName)
{ {
this.beyondEnterpriseName = beyondEnterpriseName; this.beyondEnterpriseName = beyondEnterpriseName;
} }
public String getBeyondEnterpriseName() public String getBeyondEnterpriseName()
{ {
return beyondEnterpriseName; return beyondEnterpriseName;
} }
public void setCoordinates(String coordinates) public void setCoordinates(String coordinates)
{ {
this.coordinates = coordinates; this.coordinates = coordinates;
} }
public String getCoordinates() public String getCoordinates()
{ {
return coordinates; return coordinates;
} }
public void setIsDel(String isDel) public void setIsDel(String isDel)
{ {
this.isDel = isDel; this.isDel = isDel;
} }
public String getIsDel() public String getIsDel()
{ {
return isDel; return isDel;
} }
public void setRemarks(String remarks) public void setRemarks(String remarks)
{ {
this.remarks = remarks; this.remarks = remarks;
} }
public String getRemarks() public String getRemarks()
{ {
return remarks; return remarks;
} }
@Override @Override
public String toString() { public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) return "TPipeInfo{" +
.append("pipeId", getPipeId()) "pipeId=" + pipeId +
.append("pipeLength", getPipeLength()) ", pipeLength=" + pipeLength +
.append("pipeDiameter", getPipeDiameter()) ", pipeDiameter=" + pipeDiameter +
.append("pipePressure", getPipePressure()) ", pipePressure=" + pipePressure +
.append("pipeMaterial", getPipeMaterial()) ", pipeMaterial='" + pipeMaterial + '\'' +
.append("pipeAddr", getPipeAddr()) ", pipeAddr='" + pipeAddr + '\'' +
.append("buriedDepth", getBuriedDepth()) ", buriedDepth=" + buriedDepth +
.append("pipeTrend", getPipeTrend()) ", pipeTrend='" + pipeTrend + '\'' +
.append("buildDate", getBuildDate()) ", buildDate='" + buildDate + '\'' +
.append("buildUnit", getBuildUnit()) ", buildUnit='" + buildUnit + '\'' +
.append("beyondEnterpriseId", getBeyondEnterpriseId()) ", peopleOccupation='" + peopleOccupation + '\'' +
.append("beyondEnterpriseName", getBeyondEnterpriseName()) ", beyondEnterpriseId=" + beyondEnterpriseId +
.append("coordinates", getCoordinates()) ", beyondEnterpriseName='" + beyondEnterpriseName + '\'' +
.append("createBy", getCreateBy()) ", coordinates='" + coordinates + '\'' +
.append("createTime", getCreateTime()) ", isDel='" + isDel + '\'' +
.append("updateBy", getUpdateBy()) ", remarks='" + remarks + '\'' +
.append("updateTime", getUpdateTime()) '}';
.append("isDel", getIsDel())
.append("remarks", getRemarks())
.toString();
} }
} }
...@@ -29,6 +29,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ...@@ -29,6 +29,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="username != null and username != ''"> and username like concat('%', #{username}, '%')</if> <if test="username != null and username != ''"> and username like concat('%', #{username}, '%')</if>
<if test="nickName != null and nickName != ''"> and nick_name like concat('%', #{nickName}, '%')</if> <if test="nickName != null and nickName != ''"> and nick_name like concat('%', #{nickName}, '%')</if>
</where> </where>
group by user_id desc
</select> </select>
<select id="selectTDetectorUserById" parameterType="Long" resultMap="TDetectorUserResult"> <select id="selectTDetectorUserById" parameterType="Long" resultMap="TDetectorUserResult">
......
...@@ -6,6 +6,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ...@@ -6,6 +6,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<resultMap type="TDeviceReportData" id="TDeviceReportDataResult"> <resultMap type="TDeviceReportData" id="TDeviceReportDataResult">
<result property="deviceReportDataId" column="device_report_data_id" /> <result property="deviceReportDataId" column="device_report_data_id" />
<result property="deviceName" column="device_name" />
<result property="deviceNum" column="device_num" /> <result property="deviceNum" column="device_num" />
<result property="standardConditionAccumulation" column="standard_condition_accumulation" /> <result property="standardConditionAccumulation" column="standard_condition_accumulation" />
<result property="workingConditionAccumulation" column="working_condition_accumulation" /> <result property="workingConditionAccumulation" column="working_condition_accumulation" />
...@@ -18,6 +19,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ...@@ -18,6 +19,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="reportTime" column="report_time" /> <result property="reportTime" column="report_time" />
<result property="communicationStatus" column="communication_status" /> <result property="communicationStatus" column="communication_status" />
<result property="deviceStatus" column="device_status" /> <result property="deviceStatus" column="device_status" />
<result property="beyondEnterpriseId" column="beyond_enterprise_id" />
<result property="beyondEnterpriseName" column="beyond_enterprise_name" />
<result property="createBy" column="create_by" /> <result property="createBy" column="create_by" />
<result property="createTime" column="create_time" /> <result property="createTime" column="create_time" />
<result property="updateBy" column="update_by" /> <result property="updateBy" column="update_by" />
...@@ -27,13 +30,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ...@@ -27,13 +30,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</resultMap> </resultMap>
<sql id="selectTDeviceReportDataVo"> <sql id="selectTDeviceReportDataVo">
select device_report_data_id, device_num, standard_condition_accumulation, working_condition_accumulation, backing_standard_condition_accumulation, residual_quantity, standard_condition_flow, working_condition_flow, temperature, pressure, report_time, communication_status, device_status, create_by, create_time, update_by, update_time, is_del, remarks from t_device_report_data select device_report_data_id, device_name, device_num, standard_condition_accumulation, working_condition_accumulation, backing_standard_condition_accumulation, residual_quantity, standard_condition_flow, working_condition_flow, temperature, pressure, report_time, communication_status, device_status, beyond_enterprise_id, beyond_enterprise_name, create_by, create_time, update_by, update_time, is_del, remarks from t_device_report_data
</sql> </sql>
<select id="selectTDeviceReportDataList" parameterType="TDeviceReportData" resultMap="TDeviceReportDataResult"> <select id="selectTDeviceReportDataList" parameterType="TDeviceReportData" resultMap="TDeviceReportDataResult">
<include refid="selectTDeviceReportDataVo"/> <include refid="selectTDeviceReportDataVo"/>
<where> <where>
<if test="deviceNum != null and deviceNum != ''"> and device_num = #{deviceNum}</if> <if test="deviceName != null and deviceName != ''"> and device_name like concat('%', #{deviceName}, '%')</if>
<if test="deviceNum != null and deviceNum != ''"> and device_num like concat('%', #{deviceNum}, '%')</if>
<if test="standardConditionAccumulation != null "> and standard_condition_accumulation = #{standardConditionAccumulation}</if> <if test="standardConditionAccumulation != null "> and standard_condition_accumulation = #{standardConditionAccumulation}</if>
<if test="workingConditionAccumulation != null "> and working_condition_accumulation = #{workingConditionAccumulation}</if> <if test="workingConditionAccumulation != null "> and working_condition_accumulation = #{workingConditionAccumulation}</if>
<if test="backingStandardConditionAccumulation != null "> and backing_standard_condition_accumulation = #{backingStandardConditionAccumulation}</if> <if test="backingStandardConditionAccumulation != null "> and backing_standard_condition_accumulation = #{backingStandardConditionAccumulation}</if>
...@@ -45,6 +49,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ...@@ -45,6 +49,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="reportTime != null "> and report_time = #{reportTime}</if> <if test="reportTime != null "> and report_time = #{reportTime}</if>
<if test="communicationStatus != null and communicationStatus != ''"> and communication_status = #{communicationStatus}</if> <if test="communicationStatus != null and communicationStatus != ''"> and communication_status = #{communicationStatus}</if>
<if test="deviceStatus != null and deviceStatus != ''"> and device_status = #{deviceStatus}</if> <if test="deviceStatus != null and deviceStatus != ''"> and device_status = #{deviceStatus}</if>
<if test="beyondEnterpriseId != null "> and beyond_enterprise_id = #{beyondEnterpriseId}</if>
<if test="beyondEnterpriseName != null and beyondEnterpriseName != ''"> and beyond_enterprise_name like concat('%', #{beyondEnterpriseName}, '%')</if>
<if test="isDel != null and isDel != ''"> and is_del = #{isDel}</if> <if test="isDel != null and isDel != ''"> and is_del = #{isDel}</if>
<if test="remarks != null and remarks != ''"> and remarks = #{remarks}</if> <if test="remarks != null and remarks != ''"> and remarks = #{remarks}</if>
</where> </where>
...@@ -58,6 +64,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ...@@ -58,6 +64,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<insert id="insertTDeviceReportData" parameterType="TDeviceReportData" useGeneratedKeys="true" keyProperty="deviceReportDataId"> <insert id="insertTDeviceReportData" parameterType="TDeviceReportData" useGeneratedKeys="true" keyProperty="deviceReportDataId">
insert into t_device_report_data insert into t_device_report_data
<trim prefix="(" suffix=")" suffixOverrides=","> <trim prefix="(" suffix=")" suffixOverrides=",">
<if test="deviceName != null">device_name,</if>
<if test="deviceNum != null and deviceNum != ''">device_num,</if> <if test="deviceNum != null and deviceNum != ''">device_num,</if>
<if test="standardConditionAccumulation != null">standard_condition_accumulation,</if> <if test="standardConditionAccumulation != null">standard_condition_accumulation,</if>
<if test="workingConditionAccumulation != null">working_condition_accumulation,</if> <if test="workingConditionAccumulation != null">working_condition_accumulation,</if>
...@@ -70,6 +77,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ...@@ -70,6 +77,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="reportTime != null">report_time,</if> <if test="reportTime != null">report_time,</if>
<if test="communicationStatus != null">communication_status,</if> <if test="communicationStatus != null">communication_status,</if>
<if test="deviceStatus != null">device_status,</if> <if test="deviceStatus != null">device_status,</if>
<if test="beyondEnterpriseId != null">beyond_enterprise_id,</if>
<if test="beyondEnterpriseName != null">beyond_enterprise_name,</if>
<if test="createBy != null">create_by,</if> <if test="createBy != null">create_by,</if>
<if test="createTime != null">create_time,</if> <if test="createTime != null">create_time,</if>
<if test="updateBy != null">update_by,</if> <if test="updateBy != null">update_by,</if>
...@@ -78,6 +87,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ...@@ -78,6 +87,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="remarks != null">remarks,</if> <if test="remarks != null">remarks,</if>
</trim> </trim>
<trim prefix="values (" suffix=")" suffixOverrides=","> <trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="deviceName != null">#{deviceName},</if>
<if test="deviceNum != null and deviceNum != ''">#{deviceNum},</if> <if test="deviceNum != null and deviceNum != ''">#{deviceNum},</if>
<if test="standardConditionAccumulation != null">#{standardConditionAccumulation},</if> <if test="standardConditionAccumulation != null">#{standardConditionAccumulation},</if>
<if test="workingConditionAccumulation != null">#{workingConditionAccumulation},</if> <if test="workingConditionAccumulation != null">#{workingConditionAccumulation},</if>
...@@ -90,6 +100,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ...@@ -90,6 +100,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="reportTime != null">#{reportTime},</if> <if test="reportTime != null">#{reportTime},</if>
<if test="communicationStatus != null">#{communicationStatus},</if> <if test="communicationStatus != null">#{communicationStatus},</if>
<if test="deviceStatus != null">#{deviceStatus},</if> <if test="deviceStatus != null">#{deviceStatus},</if>
<if test="beyondEnterpriseId != null">#{beyondEnterpriseId},</if>
<if test="beyondEnterpriseName != null">#{beyondEnterpriseName},</if>
<if test="createBy != null">#{createBy},</if> <if test="createBy != null">#{createBy},</if>
<if test="createTime != null">#{createTime},</if> <if test="createTime != null">#{createTime},</if>
<if test="updateBy != null">#{updateBy},</if> <if test="updateBy != null">#{updateBy},</if>
...@@ -102,6 +114,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ...@@ -102,6 +114,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<update id="updateTDeviceReportData" parameterType="TDeviceReportData"> <update id="updateTDeviceReportData" parameterType="TDeviceReportData">
update t_device_report_data update t_device_report_data
<trim prefix="SET" suffixOverrides=","> <trim prefix="SET" suffixOverrides=",">
<if test="deviceName != null">device_name = #{deviceName},</if>
<if test="deviceNum != null and deviceNum != ''">device_num = #{deviceNum},</if> <if test="deviceNum != null and deviceNum != ''">device_num = #{deviceNum},</if>
<if test="standardConditionAccumulation != null">standard_condition_accumulation = #{standardConditionAccumulation},</if> <if test="standardConditionAccumulation != null">standard_condition_accumulation = #{standardConditionAccumulation},</if>
<if test="workingConditionAccumulation != null">working_condition_accumulation = #{workingConditionAccumulation},</if> <if test="workingConditionAccumulation != null">working_condition_accumulation = #{workingConditionAccumulation},</if>
...@@ -114,6 +127,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ...@@ -114,6 +127,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="reportTime != null">report_time = #{reportTime},</if> <if test="reportTime != null">report_time = #{reportTime},</if>
<if test="communicationStatus != null">communication_status = #{communicationStatus},</if> <if test="communicationStatus != null">communication_status = #{communicationStatus},</if>
<if test="deviceStatus != null">device_status = #{deviceStatus},</if> <if test="deviceStatus != null">device_status = #{deviceStatus},</if>
<if test="beyondEnterpriseId != null">beyond_enterprise_id = #{beyondEnterpriseId},</if>
<if test="beyondEnterpriseName != null">beyond_enterprise_name = #{beyondEnterpriseName},</if>
<if test="createBy != null">create_by = #{createBy},</if> <if test="createBy != null">create_by = #{createBy},</if>
<if test="createTime != null">create_time = #{createTime},</if> <if test="createTime != null">create_time = #{createTime},</if>
<if test="updateBy != null">update_by = #{updateBy},</if> <if test="updateBy != null">update_by = #{updateBy},</if>
......
...@@ -52,6 +52,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ...@@ -52,6 +52,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="idCard != null and idCard != ''"> and id_card = #{idCard}</if> <if test="idCard != null and idCard != ''"> and id_card = #{idCard}</if>
<if test="remarks != null and remarks != ''"> and remarks = #{remarks}</if> <if test="remarks != null and remarks != ''"> and remarks = #{remarks}</if>
</where> </where>
group by employed_people_id desc
</select> </select>
<select id="selectTEmployedPeopleInfoById" parameterType="Long" resultMap="TEmployedPeopleInfoResult"> <select id="selectTEmployedPeopleInfoById" parameterType="Long" resultMap="TEmployedPeopleInfoResult">
......
...@@ -40,6 +40,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ...@@ -40,6 +40,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="annualSupervisionInspection != null and annualSupervisionInspection != ''"> and annual_supervision_inspection = #{annualSupervisionInspection}</if> <if test="annualSupervisionInspection != null and annualSupervisionInspection != ''"> and annual_supervision_inspection = #{annualSupervisionInspection}</if>
<if test="remarks != null and remarks != ''"> and remarks = #{remarks}</if> <if test="remarks != null and remarks != ''"> and remarks = #{remarks}</if>
</where> </where>
group by enterprise_id desc
</select> </select>
<select id="selectTEnterpriseInfoById" parameterType="Long" resultMap="TEnterpriseInfoResult"> <select id="selectTEnterpriseInfoById" parameterType="Long" resultMap="TEnterpriseInfoResult">
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd"> "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.zehong.system.mapper.TPipeInfoMapper"> <mapper namespace="com.zehong.system.mapper.TPipeInfoMapper">
<resultMap type="TPipeInfo" id="TPipeInfoResult"> <resultMap type="TPipeInfo" id="TPipeInfoResult">
<result property="pipeId" column="pipe_id" /> <result property="pipeId" column="pipe_id" />
<result property="pipeLength" column="pipe_length" /> <result property="pipeLength" column="pipe_length" />
...@@ -13,6 +13,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ...@@ -13,6 +13,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="pipeAddr" column="pipe_addr" /> <result property="pipeAddr" column="pipe_addr" />
<result property="buriedDepth" column="buried_depth" /> <result property="buriedDepth" column="buried_depth" />
<result property="pipeTrend" column="pipe_trend" /> <result property="pipeTrend" column="pipe_trend" />
<result property="peopleOccupation" column="people_occupation" />
<result property="buildDate" column="build_date" /> <result property="buildDate" column="build_date" />
<result property="buildUnit" column="build_unit" /> <result property="buildUnit" column="build_unit" />
<result property="beyondEnterpriseId" column="beyond_enterprise_id" /> <result property="beyondEnterpriseId" column="beyond_enterprise_id" />
...@@ -27,12 +28,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ...@@ -27,12 +28,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</resultMap> </resultMap>
<sql id="selectTPipeInfoVo"> <sql id="selectTPipeInfoVo">
select pipe_id, pipe_length, pipe_diameter, pipe_pressure, pipe_material, pipe_addr, buried_depth, pipe_trend, build_date, build_unit, beyond_enterprise_id, beyond_enterprise_name, coordinates, create_by, create_time, update_by, update_time, is_del, remarks from t_pipe_info select pipe_id,(CASE people_occupation WHEN '1' THEN '运行维护人员' WHEN '2' THEN '抢修人员'end ) as people_occupation,
pipe_length, pipe_diameter, pipe_pressure, pipe_material, pipe_addr, buried_depth, pipe_trend, build_date, build_unit, beyond_enterprise_id, beyond_enterprise_name, coordinates, create_by, create_time, update_by, update_time, is_del, remarks from t_pipe_info
</sql> </sql>
<select id="selectTPipeInfoList" parameterType="TPipeInfo" resultMap="TPipeInfoResult"> <select id="selectTPipeInfoList" parameterType="TPipeInfo" resultMap="TPipeInfoResult">
<include refid="selectTPipeInfoVo"/> <include refid="selectTPipeInfoVo"/>
<where> <where>
<if test="pipeLength != null "> and pipe_length = #{pipeLength}</if> <if test="pipeLength != null "> and pipe_length = #{pipeLength}</if>
<if test="pipeDiameter != null "> and pipe_diameter = #{pipeDiameter}</if> <if test="pipeDiameter != null "> and pipe_diameter = #{pipeDiameter}</if>
<if test="pipePressure != null "> and pipe_pressure = #{pipePressure}</if> <if test="pipePressure != null "> and pipe_pressure = #{pipePressure}</if>
...@@ -48,13 +50,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ...@@ -48,13 +50,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="isDel != null and isDel != ''"> and is_del = #{isDel}</if> <if test="isDel != null and isDel != ''"> and is_del = #{isDel}</if>
<if test="remarks != null and remarks != ''"> and remarks = #{remarks}</if> <if test="remarks != null and remarks != ''"> and remarks = #{remarks}</if>
</where> </where>
group by pipe_id desc
</select> </select>
<select id="selectTPipeInfoById" parameterType="Long" resultMap="TPipeInfoResult"> <select id="selectTPipeInfoById" parameterType="Long" resultMap="TPipeInfoResult">
<include refid="selectTPipeInfoVo"/> <include refid="selectTPipeInfoVo"/>
where pipe_id = #{pipeId} where pipe_id = #{pipeId}
</select> </select>
<insert id="insertTPipeInfo" parameterType="TPipeInfo" useGeneratedKeys="true" keyProperty="pipeId"> <insert id="insertTPipeInfo" parameterType="TPipeInfo" useGeneratedKeys="true" keyProperty="pipeId">
insert into t_pipe_info insert into t_pipe_info
<trim prefix="(" suffix=")" suffixOverrides=","> <trim prefix="(" suffix=")" suffixOverrides=",">
...@@ -67,6 +70,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ...@@ -67,6 +70,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="pipeTrend != null">pipe_trend,</if> <if test="pipeTrend != null">pipe_trend,</if>
<if test="buildDate != null">build_date,</if> <if test="buildDate != null">build_date,</if>
<if test="buildUnit != null">build_unit,</if> <if test="buildUnit != null">build_unit,</if>
<if test="peopleOccupation != null">people_occupation,</if>
<if test="beyondEnterpriseId != null">beyond_enterprise_id,</if> <if test="beyondEnterpriseId != null">beyond_enterprise_id,</if>
<if test="beyondEnterpriseName != null">beyond_enterprise_name,</if> <if test="beyondEnterpriseName != null">beyond_enterprise_name,</if>
<if test="coordinates != null">coordinates,</if> <if test="coordinates != null">coordinates,</if>
...@@ -87,6 +91,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ...@@ -87,6 +91,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="pipeTrend != null">#{pipeTrend},</if> <if test="pipeTrend != null">#{pipeTrend},</if>
<if test="buildDate != null">#{buildDate},</if> <if test="buildDate != null">#{buildDate},</if>
<if test="buildUnit != null">#{buildUnit},</if> <if test="buildUnit != null">#{buildUnit},</if>
<if test="peopleOccupation != null">#{peopleOccupation},</if>
<if test="beyondEnterpriseId != null">#{beyondEnterpriseId},</if> <if test="beyondEnterpriseId != null">#{beyondEnterpriseId},</if>
<if test="beyondEnterpriseName != null">#{beyondEnterpriseName},</if> <if test="beyondEnterpriseName != null">#{beyondEnterpriseName},</if>
<if test="coordinates != null">#{coordinates},</if> <if test="coordinates != null">#{coordinates},</if>
...@@ -111,6 +116,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ...@@ -111,6 +116,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="pipeTrend != null">pipe_trend = #{pipeTrend},</if> <if test="pipeTrend != null">pipe_trend = #{pipeTrend},</if>
<if test="buildDate != null">build_date = #{buildDate},</if> <if test="buildDate != null">build_date = #{buildDate},</if>
<if test="buildUnit != null">build_unit = #{buildUnit},</if> <if test="buildUnit != null">build_unit = #{buildUnit},</if>
<if test="peopleOccupation != null">people_occupation = #{peopleOccupation},</if>
<if test="beyondEnterpriseId != null">beyond_enterprise_id = #{beyondEnterpriseId},</if> <if test="beyondEnterpriseId != null">beyond_enterprise_id = #{beyondEnterpriseId},</if>
<if test="beyondEnterpriseName != null">beyond_enterprise_name = #{beyondEnterpriseName},</if> <if test="beyondEnterpriseName != null">beyond_enterprise_name = #{beyondEnterpriseName},</if>
<if test="coordinates != null">coordinates = #{coordinates},</if> <if test="coordinates != null">coordinates = #{coordinates},</if>
...@@ -129,9 +135,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ...@@ -129,9 +135,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</delete> </delete>
<delete id="deleteTPipeInfoByIds" parameterType="String"> <delete id="deleteTPipeInfoByIds" parameterType="String">
delete from t_pipe_info where pipe_id in delete from t_pipe_info where pipe_id in
<foreach item="pipeId" collection="array" open="(" separator="," close=")"> <foreach item="pipeId" collection="array" open="(" separator="," close=")">
#{pipeId} #{pipeId}
</foreach> </foreach>
</delete> </delete>
</mapper> </mapper>
\ No newline at end of file
...@@ -36,6 +36,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ...@@ -36,6 +36,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="beyondEnterpriseName != null and beyondEnterpriseName != ''"> and beyond_enterprise_name like concat('%', #{beyondEnterpriseName}, '%')</if> <if test="beyondEnterpriseName != null and beyondEnterpriseName != ''"> and beyond_enterprise_name like concat('%', #{beyondEnterpriseName}, '%')</if>
<if test="remarks != null and remarks != ''"> and remarks = #{remarks}</if> <if test="remarks != null and remarks != ''"> and remarks = #{remarks}</if>
</where> </where>
group by site_station_id desc
</select> </select>
<select id="selectTSiteStationInfoById" parameterType="Long" resultMap="TSiteStationInfoResult"> <select id="selectTSiteStationInfoById" parameterType="Long" resultMap="TSiteStationInfoResult">
......
...@@ -40,7 +40,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ...@@ -40,7 +40,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<select id="selectTWorkOrderList" parameterType="TWorkOrder" resultMap="TWorkOrderResult"> <select id="selectTWorkOrderList" parameterType="TWorkOrder" resultMap="TWorkOrderResult">
<include refid="selectTWorkOrderVo"/> <include refid="selectTWorkOrderVo"/>
<where> <where>
<if test="workTitle != null and workTitle != ''"> and work_title = #{workTitle}</if> <if test="workTitle != null and workTitle != ''"> and work_title like concat('%', #{workTitle}, '%')</if>
<if test="workType != null and workType != ''"> and work_type = #{workType}</if> <if test="workType != null and workType != ''"> and work_type = #{workType}</if>
<if test="workContent != null and workContent != ''"> and work_content = #{workContent}</if> <if test="workContent != null and workContent != ''"> and work_content = #{workContent}</if>
<if test="workCreateEnterpriseName != null and workCreateEnterpriseName != ''"> and work_create_enterprise_name like concat('%', #{workCreateEnterpriseName}, '%')</if> <if test="workCreateEnterpriseName != null and workCreateEnterpriseName != ''"> and work_create_enterprise_name like concat('%', #{workCreateEnterpriseName}, '%')</if>
......
...@@ -33,11 +33,12 @@ ...@@ -33,11 +33,12 @@
], ],
"repository": {}, "repository": {},
"dependencies": { "dependencies": {
"@easydarwin/easywasmplayer": "^4.0.13",
"@riophae/vue-treeselect": "0.4.0", "@riophae/vue-treeselect": "0.4.0",
"axios": "0.21.0", "axios": "0.21.0",
"clipboard": "2.0.6", "clipboard": "2.0.6",
"core-js": "^3.19.1", "core-js": "^3.19.1",
"echarts": "4.9.0", "echarts": "^5.3.0",
"element-ui": "2.15.0", "element-ui": "2.15.0",
"file-saver": "2.0.4", "file-saver": "2.0.4",
"fuse.js": "6.4.3", "fuse.js": "6.4.3",
......
This diff is collapsed.
/**
* Created by wangweijie5 on 2016/12/16.
*/
"use strict";
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
var __instance = function () {
var instance = void 0;
return function (newInstance) {
if (newInstance) instance = newInstance;
return instance;
};
}();
var AudioRenderer = function () {
function AudioRenderer() {
_classCallCheck(this, AudioRenderer);
if (__instance()) return __instance();
// 确保只有单例
if (AudioRenderer.unique !== undefined) {
return AudioRenderer.unique;
}
AudioRenderer.unique = this;
this.oAudioContext = null;
this.currentVolume = 0.8; // 初始音量
this.bSetVolume = false;
this.gainNode = null;
this.iWndNum = -1; // 窗口号
this.mVolumes = new Map(); // 用于存储所有音量
// Init AudioContext
var AudioContext = window.AudioContext || window.webkitAudioContext;
this.oAudioContext = new AudioContext();
this.writeString = function (view, offset, string) {
for (var i = 0; i < string.length; i++) {
view.setUint8(offset + i, string.charCodeAt(i));
}
};
this.setBufferToDataview = function (output, offset, input) {
for (var i = 0; i < input.length; i++, offset++) {
output.setUint8(offset, input[i]);
}
};
__instance(this);
}
/**
* @synopsis 音频播放
*
* @param dataBuf [IN] 音频缓存
* @param dataLen [IN] 缓存长度
* @param audioInfo [IN] 音频参数
*
* @returns 状态码
*/
_createClass(AudioRenderer, [{
key: 'Play',
value: function Play(dataBuf, dataLen, audioInfo) {
var bufferData = new ArrayBuffer(44 + dataLen);
var viewTalk = new DataView(bufferData);
var sampleRates = audioInfo.samplesPerSec;
var channels = audioInfo.channels;
var bitsPerSample = audioInfo.bitsPerSample;
//console.log("audiorender sampleRates"+sampleRates+"channels:"+channels+"bitsPerSample:"+bitsPerSample);
/* RIFF identifier */
this.writeString(viewTalk, 0, 'RIFF');
/* file length */
viewTalk.setUint32(4, 32 + dataLen * 2, true);
/* RIFF type */
this.writeString(viewTalk, 8, 'WAVE');
/* format chunk identifier */
this.writeString(viewTalk, 12, 'fmt ');
/* format chunk length */
viewTalk.setUint32(16, 16, true);
/* sample format (raw) */
viewTalk.setUint16(20, 1, true);
/* channel count */
viewTalk.setUint16(22, channels, true);
/* sample rate */
viewTalk.setUint32(24, sampleRates, true);
/* byte rate (sample rate * block align) */
viewTalk.setUint32(28, sampleRates * 2, true);
/* block align (channel count * bytes per sample)/8 */
viewTalk.setUint16(32, channels * bitsPerSample / 8, true);
/* bits per sample */
viewTalk.setUint16(34, bitsPerSample, true);
/* data chunk identifier */
this.writeString(viewTalk, 36, 'data');
/* data chunk length */
viewTalk.setUint32(40, dataLen, true);
this.setBufferToDataview(viewTalk, 44, dataBuf);
var self = this;
this.oAudioContext.decodeAudioData(viewTalk.buffer, function (buffer) {
var bufferSource = self.oAudioContext.createBufferSource();
if (bufferSource == null) {
return -1;
}
bufferSource.buffer = buffer;
bufferSource.start(0);
if (self.gainNode == null || self.bSetVolume) {
self.gainNode = self.oAudioContext.createGain();
// self.gainNode.gain.value = self.currentVolume;
// // self.currentVolume = self.gainNode.gain.value;
// self.gainNode.connect(self.oAudioContext.destination);
self.bSetVolume = false;
}
self.gainNode.gain.value = self.currentVolume;
// self.currentVolume = self.gainNode.gain.value;
self.gainNode.connect(self.oAudioContext.destination);
bufferSource.connect(self.gainNode);
}, function (e) {
console.log("decode error");
return -1;
});
return 0;
}
/**
* @synopsis 停止播放
*
* @returns 返回音量
*/
}, {
key: 'Stop',
value: function Stop() {
if (this.gainNode != null) {
this.gainNode.disconnect();
this.gainNode = null;
}
// this.oAudioContext.close();
// AudioRenderer.unique = undefined;
// __instance() = null;
return true;
}
/**
* @synopsis 设置音量
*
* @param iVolume [IN] 音量
*
* @returns 状态码
*/
}, {
key: 'SetVolume',
value: function SetVolume(iVolume) {
this.bSetVolume = true;
this.currentVolume = iVolume;
// 储存当前窗口设置音量值
this.mVolumes.set(this.iWndNum, iVolume);
return true;
}
/**
* @synopsis 设置窗口号
*
* @param iWndNum [IN] 窗口号
*
* @returns 状态码
*/
}, {
key: 'SetWndNum',
value: function SetWndNum(iWndNum) {
this.iWndNum = iWndNum;
// 获取当前窗口设置音量值
var iVolume = this.mVolumes.get(iWndNum);
if (iVolume == undefined) {
iVolume = 0.8; // 默认音量
}
this.currentVolume = iVolume;
return true;
}
/**
* @synopsis 获取音量
*
* @returns 返回音量
*/
}, {
key: 'GetVolume',
value: function GetVolume() {
// 获取当前窗口设置音量值
var iVolume = this.mVolumes.get(this.iWndNum);
if (iVolume == undefined) {
iVolume = 0.8; // 默认音量
}
return iVolume;
}
}]);
return AudioRenderer;
}();
//# sourceMappingURL=AudioRenderer.js.map
\ No newline at end of file
This diff is collapsed.
"use strict";var vertexYUVShader=["#version 300 es","layout(location = 0) in vec4 vertexPos;","layout(location = 1) in vec2 texturePos;","out vec2 textureCoord;","void main()","{","gl_Position = vertexPos;","textureCoord = texturePos;","}"].join("\n");var fragmentYUVShader=["#version 300 es","precision highp float;","in vec2 textureCoord;","out vec4 fragColor;","uniform sampler2D ySampler;","uniform sampler2D uSampler;","uniform sampler2D vSampler;","const mat4 YUV2RGB = mat4","(","1.1643828125, 0, 1.59602734375, -.87078515625,","1.1643828125, -.39176171875, -.81296875, .52959375,","1.1643828125, 2.017234375, 0, -1.081390625,","0, 0, 0, 1",");","void main(void) {","float y = texture(ySampler, textureCoord).r;","float u = texture(uSampler, textureCoord).r;","float v = texture(vSampler, textureCoord).r;","fragColor = vec4(y, u, v, 1) * YUV2RGB;","}"].join("\n");var vertexLineShader=["#version 300 es","layout(location = 0) in vec4 vertexPosLine;","void main()","{","gl_Position = vertexPosLine;","}"].join("\n");var fragmentLineShader=["#version 300 es","precision highp float;","uniform mediump float fRcom;","uniform mediump float fGcom;","uniform mediump float fBcom;","out vec4 fragColor;","void main()","{","fragColor = vec4(fRcom,fGcom,fBcom,1.0);","}"].join("\n");(function(e,r){e.SuperRender2=r()})(this,function(){function e(e){this.canvasElement=document.getElementById(e);this.initContextGL();if(this.contextGL){this.YUVProgram=this.initProgram(vertexYUVShader,fragmentYUVShader);this.LineProgram=this.initProgram(vertexLineShader,fragmentLineShader);this.initBuffers();this.initTextures()}}e.prototype.initContextGL=function(){var e=this.canvasElement;var r=null;try{r=e.getContext("webgl2")}catch(e){r=null}if(!r||typeof r.getParameter!=="function"){r=null}this.contextGL=r;console.log("WebGL2.0")};e.prototype.initProgram=function(e,r){var t=this.contextGL;var a=t.createShader(t.VERTEX_SHADER);t.shaderSource(a,e);t.compileShader(a);if(!t.getShaderParameter(a,t.COMPILE_STATUS)){console.log("Vertex shader failed to compile: "+t.getShaderInfoLog(a))}var i=t.createShader(t.FRAGMENT_SHADER);t.shaderSource(i,r);t.compileShader(i);if(!t.getShaderParameter(i,t.COMPILE_STATUS)){console.log("Fragment shader failed to compile: "+t.getShaderInfoLog(i))}var o=t.createProgram();t.attachShader(o,a);t.attachShader(o,i);t.linkProgram(o);if(!t.getProgramParameter(o,t.LINK_STATUS)){console.log("Program failed to compile: "+t.getProgramInfoLog(o))}t.deleteShader(a);t.deleteShader(i);return o};e.prototype.initBuffers=function(){var e=this.contextGL;var r=e.createBuffer();e.bindBuffer(e.ARRAY_BUFFER,r);e.bufferData(e.ARRAY_BUFFER,new Float32Array([1,1,-1,1,1,-1,-1,-1]),e.STATIC_DRAW);e.bindBuffer(e.ARRAY_BUFFER,null);var t=e.createBuffer();e.bindBuffer(e.ARRAY_BUFFER,t);e.bufferData(e.ARRAY_BUFFER,new Float32Array([1,0,0,0,1,1,0,1]),e.DYNAMIC_DRAW);e.bindBuffer(e.ARRAY_BUFFER,null);var a=e.createBuffer();e.bindBuffer(e.ARRAY_BUFFER,a);e.bufferData(e.ARRAY_BUFFER,16,e.DYNAMIC_DRAW);e.bindBuffer(e.ARRAY_BUFFER,null);this.vertexPosBuffer=r;this.texturePosBuffer=t;this.vertexLineBuffer=a};e.prototype.initTextures=function(){var e=this.contextGL;var r=this.YUVProgram;e.useProgram(r);var t=this.initTexture();var a=e.getUniformLocation(r,"ySampler");e.uniform1i(a,0);this.yTextureRef=t;var i=this.initTexture();var o=e.getUniformLocation(r,"uSampler");e.uniform1i(o,1);this.uTextureRef=i;var n=this.initTexture();var f=e.getUniformLocation(r,"vSampler");e.uniform1i(f,2);this.vTextureRef=n;e.useProgram(null)};e.prototype.initTexture=function(){var e=this.contextGL;var r=e.createTexture();e.bindTexture(e.TEXTURE_2D,r);e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR);e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR);e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE);e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE);e.bindTexture(e.TEXTURE_2D,null);return r};e.prototype.SR_DisplayFrameData=function(e,r,t){if(e<=0||r<=0){return}var a=this.contextGL;if(null==t){a.clearColor(0,0,0,0);a.clear(a.COLOR_BUFFER_BIT|a.DEPTH_BUFFER_BIT);return}var i=this.canvasElement;this.nWindowWidth=i.width;this.nWindowHeight=i.height;var o=this.nWindowWidth;var n=this.nWindowHeight;a.clearColor(.8,.8,1,1);a.clear(a.COLOR_BUFFER_BIT|a.DEPTH_BUFFER_BIT);a.viewport(0,0,o,n);this.updateFrameData(e,r,t);var f=this.YUVProgram;a.useProgram(f);var u=this.vertexPosBuffer;a.bindBuffer(a.ARRAY_BUFFER,u);var s=a.getAttribLocation(f,"vertexPos");a.enableVertexAttribArray(s);a.vertexAttribPointer(s,2,a.FLOAT,false,0,0);a.bindBuffer(a.ARRAY_BUFFER,null);var v=this.texturePosBuffer;a.bindBuffer(a.ARRAY_BUFFER,v);var l=a.getAttribLocation(f,"texturePos");a.enableVertexAttribArray(l);a.vertexAttribPointer(l,2,a.FLOAT,false,0,0);a.bindBuffer(a.ARRAY_BUFFER,null);a.drawArrays(a.TRIANGLE_STRIP,0,4);a.disableVertexAttribArray(s);a.disableVertexAttribArray(l);a.useProgram(null)};e.prototype.updateFrameData=function(e,r,t){var a=this.contextGL;var i=this.yTextureRef;var o=this.uTextureRef;var n=this.vTextureRef;var f=t;var u=e*r;var s=f.subarray(0,u);a.activeTexture(a.TEXTURE0);a.bindTexture(a.TEXTURE_2D,i);a.texImage2D(a.TEXTURE_2D,0,a.LUMINANCE,e,r,0,a.LUMINANCE,a.UNSIGNED_BYTE,s);var v=e/2*r/2;var l=f.subarray(u,u+v);a.activeTexture(a.TEXTURE1);a.bindTexture(a.TEXTURE_2D,o);a.texImage2D(a.TEXTURE_2D,0,a.LUMINANCE,e/2,r/2,0,a.LUMINANCE,a.UNSIGNED_BYTE,l);var R=v;var m=f.subarray(u+v,u+v+R);a.activeTexture(a.TEXTURE2);a.bindTexture(a.TEXTURE_2D,n);a.texImage2D(a.TEXTURE_2D,0,a.LUMINANCE,e/2,r/2,0,a.LUMINANCE,a.UNSIGNED_BYTE,m)};e.prototype.SR_DrawLine=function(e,r,t,a){var i=this.contextGL;var o=this.nWindowWidth;var n=this.nWindowHeight;var f=this.LineProgram;i.useProgram(f);var u=i.getUniformLocation(f,"fRcom");i.uniform1f(u,t.fR);var s=i.getUniformLocation(f,"fGcom");i.uniform1f(s,t.fG);var v=i.getUniformLocation(f,"fBcom");i.uniform1f(v,t.fB);var l=e.fX/o*2-1;var R=-(e.fY/n)*2+1;var m=r.fX/o*2-1;var h=-(r.fY/n)*2+1;var E=this.vertexLineBuffer;i.bindBuffer(i.ARRAY_BUFFER,E);i.bufferSubData(i.ARRAY_BUFFER,0,new Float32Array([l,R,m,h]));var T=i.getAttribLocation(f,"vertexPosLine");i.enableVertexAttribArray(T);i.vertexAttribPointer(T,2,i.FLOAT,false,0,0);i.bindBuffer(i.ARRAY_BUFFER,null);i.drawArrays(i.LINES,0,2);i.disableVertexAttribArray(T);i.useProgram(null)};e.prototype.SR_SetDisplayRect=function(e){var r=this.contextGL;var t=this.nWindowWidth;var a=this.nWindowHeight;var i=null;if(e&&t>0&&a>0){var o=e.left/t;var n=e.top/a;var f=e.right/t;var u=e.bottom/a;i=new Float32Array([f,n,o,n,f,u,o,u])}else{i=new Float32Array([1,0,0,0,1,1,0,1])}var s=this.texturePosBuffer;r.bindBuffer(r.ARRAY_BUFFER,s);r.bufferSubData(r.ARRAY_BUFFER,0,i);r.bindBuffer(r.ARRAY_BUFFER,null)};e.prototype.SR_Destroy=function(){var e=this.contextGL;var r=this.YUVProgram;e.deleteProgram(r);var t=this.LineProgram;e.deleteProgram(t);var a=this.vertexPosBuffer;var i=this.texturePosBuffer;var o=this.vertexLineBuffer;e.deleteBuffer(a);e.deleteBuffer(i);e.deleteBuffer(o);var n=this.yTextureRef;var f=this.uTextureRef;var u=this.vTextureRef;e.deleteTexture(n);e.deleteTexture(f);e.deleteTexture(u)};return e});
\ No newline at end of file
This diff is collapsed.
/**
* @license
* Copyright 2015 The Emscripten Authors
* SPDX-License-Identifier: MIT
*/
// Pthread Web Worker startup routine:
// This is the entry point file that is loaded first by each Web Worker
// that executes pthreads on the Emscripten application.
// Thread-local:
var initializedJS = false; // Guard variable for one-time init of the JS state (currently only embind types registration)
var Module = {};
function assert(condition, text) {
if (!condition) abort('Assertion failed: ' + text);
}
function threadPrintErr() {
var text = Array.prototype.slice.call(arguments).join(' ');
console.error(text);
}
function threadAlert() {
var text = Array.prototype.slice.call(arguments).join(' ');
postMessage({cmd: 'alert', text: text, threadId: Module['_pthread_self']()});
}
// We don't need out() for now, but may need to add it if we want to use it
// here. Or, if this code all moves into the main JS, that problem will go
// away. (For now, adding it here increases code size for no benefit.)
var out = function() {
throw 'out() is not defined in worker.js.';
}
var err = threadPrintErr;
this.alert = threadAlert;
Module['instantiateWasm'] = function(info, receiveInstance) {
// Instantiate from the module posted from the main thread.
// We can just use sync instantiation in the worker.
var instance = new WebAssembly.Instance(Module['wasmModule'], info);
// TODO: Due to Closure regression https://github.com/google/closure-compiler/issues/3193,
// the above line no longer optimizes out down to the following line.
// When the regression is fixed, we can remove this if/else.
receiveInstance(instance);
// We don't need the module anymore; new threads will be spawned from the main thread.
Module['wasmModule'] = null;
return instance.exports;
};
function moduleLoaded() {
}
this.onmessage = function(e) {
try {
if (e.data.cmd === 'load') { // Preload command that is called once per worker to parse and load the Emscripten code.
// Module and memory were sent from main thread
Module['wasmModule'] = e.data.wasmModule;
Module['wasmMemory'] = e.data.wasmMemory;
Module['buffer'] = Module['wasmMemory'].buffer;
Module['ENVIRONMENT_IS_PTHREAD'] = true;
if (typeof e.data.urlOrBlob === 'string') {
importScripts(e.data.urlOrBlob);
} else {
var objectUrl = URL.createObjectURL(e.data.urlOrBlob);
importScripts(objectUrl);
URL.revokeObjectURL(objectUrl);
}
JSPlayerModule(Module).then(function (instance) {
Module = instance;
moduleLoaded();
});
} else if (e.data.cmd === 'objectTransfer') {
Module['PThread'].receiveObjectTransfer(e.data);
} else if (e.data.cmd === 'run') {
// This worker was idle, and now should start executing its pthread entry
// point.
// performance.now() is specced to return a wallclock time in msecs since
// that Web Worker/main thread launched. However for pthreads this can
// cause subtle problems in emscripten_get_now() as this essentially
// would measure time from pthread_create(), meaning that the clocks
// between each threads would be wildly out of sync. Therefore sync all
// pthreads to the clock on the main browser thread, so that different
// threads see a somewhat coherent clock across each of them
// (+/- 0.1msecs in testing).
Module['__performance_now_clock_drift'] = performance.now() - e.data.time;
// Pass the thread address inside the asm.js scope to store it for fast access that avoids the need for a FFI out.
Module['__emscripten_thread_init'](e.data.threadInfoStruct, /*isMainBrowserThread=*/0, /*isMainRuntimeThread=*/0);
// Establish the stack frame for this thread in global scope
// The stack grows downwards
var max = e.data.stackBase;
var top = e.data.stackBase + e.data.stackSize;
assert(e.data.threadInfoStruct);
assert(top != 0);
assert(max != 0);
assert(top > max);
// Also call inside JS module to set up the stack frame for this pthread in JS module scope
Module['establishStackSpace'](top, max);
Module['PThread'].receiveObjectTransfer(e.data);
Module['PThread'].threadInit();
// Embind must initialize itself on all threads, as it generates support JS.
// We only do this once per worker since they get reused
if (!initializedJS) {
Module['___embind_register_native_and_builtin_types']();
initializedJS = true;
}
try {
// pthread entry points are always of signature 'void *ThreadMain(void *arg)'
// Native codebases sometimes spawn threads with other thread entry point signatures,
// such as void ThreadMain(void *arg), void *ThreadMain(), or void ThreadMain().
// That is not acceptable per C/C++ specification, but x86 compiler ABI extensions
// enable that to work. If you find the following line to crash, either change the signature
// to "proper" void *ThreadMain(void *arg) form, or try linking with the Emscripten linker
// flag -s EMULATE_FUNCTION_POINTER_CASTS=1 to add in emulation for this x86 ABI extension.
var result = Module['invokeEntryPoint'](e.data.start_routine, e.data.arg);
Module['checkStackCookie']();
if (Module['keepRuntimeAlive']()) {
Module['PThread'].setExitStatus(result);
} else {
Module['PThread'].threadExit(result);
}
} catch(ex) {
if (ex === 'Canceled!') {
Module['PThread'].threadCancel();
} else if (ex != 'unwind') {
// FIXME(sbc): Figure out if this is still needed or useful. Its not
// clear to me how this check could ever fail. In order to get into
// this try/catch block at all we have already called bunch of
// functions on `Module`.. why is this one special?
if (typeof(Module['_emscripten_futex_wake']) !== "function") {
err("Thread Initialisation failed.");
throw ex;
}
// ExitStatus not present in MINIMAL_RUNTIME
if (ex instanceof Module['ExitStatus']) {
if (Module['keepRuntimeAlive']()) {
err('Pthread 0x' + Module['_pthread_self']().toString(16) + ' called exit(), staying alive due to noExitRuntime.');
} else {
err('Pthread 0x' + Module['_pthread_self']().toString(16) + ' called exit(), calling threadExit.');
Module['PThread'].threadExit(ex.status);
}
}
else
{
Module['PThread'].threadExit(-2);
throw ex;
}
} else {
// else e == 'unwind', and we should fall through here and keep the pthread alive for asynchronous events.
err('Pthread 0x' + Module['_pthread_self']().toString(16) + ' completed its pthread main entry point with an unwind, keeping the pthread worker alive for asynchronous operation.');
}
}
} else if (e.data.cmd === 'cancel') { // Main thread is asking for a pthread_cancel() on this thread.
if (Module['_pthread_self']()) {
Module['PThread'].threadCancel();
}
} else if (e.data.target === 'setimmediate') {
// no-op
} else if (e.data.cmd === 'processThreadQueue') {
if (Module['_pthread_self']()) { // If this thread is actually running?
Module['_emscripten_current_thread_process_queued_calls']();
}
} else {
err('worker.js received unknown command ' + e.data.cmd);
err(e.data);
}
} catch(ex) {
err('worker.js onmessage() captured an uncaught exception: ' + ex);
if (ex && ex.stack) err(ex.stack);
throw ex;
}
};
This diff is collapsed.
This diff is collapsed.
/**
* @license
* Copyright 2015 The Emscripten Authors
* SPDX-License-Identifier: MIT
*/
// Pthread Web Worker startup routine:
// This is the entry point file that is loaded first by each Web Worker
// that executes pthreads on the Emscripten application.
// Thread-local:
var initializedJS = false; // Guard variable for one-time init of the JS state (currently only embind types registration)
var Module = {};
function assert(condition, text) {
if (!condition) abort('Assertion failed: ' + text);
}
function threadPrintErr() {
var text = Array.prototype.slice.call(arguments).join(' ');
console.error(text);
}
function threadAlert() {
var text = Array.prototype.slice.call(arguments).join(' ');
postMessage({cmd: 'alert', text: text, threadId: Module['_pthread_self']()});
}
// We don't need out() for now, but may need to add it if we want to use it
// here. Or, if this code all moves into the main JS, that problem will go
// away. (For now, adding it here increases code size for no benefit.)
var out = function() {
throw 'out() is not defined in worker.js.';
}
var err = threadPrintErr;
this.alert = threadAlert;
Module['instantiateWasm'] = function(info, receiveInstance) {
// Instantiate from the module posted from the main thread.
// We can just use sync instantiation in the worker.
var instance = new WebAssembly.Instance(Module['wasmModule'], info);
// TODO: Due to Closure regression https://github.com/google/closure-compiler/issues/3193,
// the above line no longer optimizes out down to the following line.
// When the regression is fixed, we can remove this if/else.
receiveInstance(instance);
// We don't need the module anymore; new threads will be spawned from the main thread.
Module['wasmModule'] = null;
return instance.exports;
};
function moduleLoaded() {
}
this.onmessage = function(e) {
try {
if (e.data.cmd === 'load') { // Preload command that is called once per worker to parse and load the Emscripten code.
// Module and memory were sent from main thread
Module['wasmModule'] = e.data.wasmModule;
Module['wasmMemory'] = e.data.wasmMemory;
Module['buffer'] = Module['wasmMemory'].buffer;
Module['ENVIRONMENT_IS_PTHREAD'] = true;
if (typeof e.data.urlOrBlob === 'string') {
importScripts(e.data.urlOrBlob);
} else {
var objectUrl = URL.createObjectURL(e.data.urlOrBlob);
importScripts(objectUrl);
URL.revokeObjectURL(objectUrl);
}
JSAudioInterComModule(Module).then(function (instance) {
Module = instance;
moduleLoaded();
});
} else if (e.data.cmd === 'objectTransfer') {
Module['PThread'].receiveObjectTransfer(e.data);
} else if (e.data.cmd === 'run') {
// This worker was idle, and now should start executing its pthread entry
// point.
// performance.now() is specced to return a wallclock time in msecs since
// that Web Worker/main thread launched. However for pthreads this can
// cause subtle problems in emscripten_get_now() as this essentially
// would measure time from pthread_create(), meaning that the clocks
// between each threads would be wildly out of sync. Therefore sync all
// pthreads to the clock on the main browser thread, so that different
// threads see a somewhat coherent clock across each of them
// (+/- 0.1msecs in testing).
Module['__performance_now_clock_drift'] = performance.now() - e.data.time;
// Pass the thread address inside the asm.js scope to store it for fast access that avoids the need for a FFI out.
Module['__emscripten_thread_init'](e.data.threadInfoStruct, /*isMainBrowserThread=*/0, /*isMainRuntimeThread=*/0);
// Establish the stack frame for this thread in global scope
// The stack grows downwards
var max = e.data.stackBase;
var top = e.data.stackBase + e.data.stackSize;
assert(e.data.threadInfoStruct);
assert(top != 0);
assert(max != 0);
assert(top > max);
// Also call inside JS module to set up the stack frame for this pthread in JS module scope
Module['establishStackSpace'](top, max);
Module['PThread'].receiveObjectTransfer(e.data);
Module['PThread'].threadInit();
// Embind must initialize itself on all threads, as it generates support JS.
// We only do this once per worker since they get reused
if (!initializedJS) {
Module['___embind_register_native_and_builtin_types']();
initializedJS = true;
}
try {
// pthread entry points are always of signature 'void *ThreadMain(void *arg)'
// Native codebases sometimes spawn threads with other thread entry point signatures,
// such as void ThreadMain(void *arg), void *ThreadMain(), or void ThreadMain().
// That is not acceptable per C/C++ specification, but x86 compiler ABI extensions
// enable that to work. If you find the following line to crash, either change the signature
// to "proper" void *ThreadMain(void *arg) form, or try linking with the Emscripten linker
// flag -s EMULATE_FUNCTION_POINTER_CASTS=1 to add in emulation for this x86 ABI extension.
var result = Module['invokeEntryPoint'](e.data.start_routine, e.data.arg);
Module['checkStackCookie']();
if (Module['keepRuntimeAlive']()) {
Module['PThread'].setExitStatus(result);
} else {
Module['PThread'].threadExit(result);
}
} catch(ex) {
if (ex === 'Canceled!') {
Module['PThread'].threadCancel();
} else if (ex != 'unwind') {
// FIXME(sbc): Figure out if this is still needed or useful. Its not
// clear to me how this check could ever fail. In order to get into
// this try/catch block at all we have already called bunch of
// functions on `Module`.. why is this one special?
if (typeof(Module['_emscripten_futex_wake']) !== "function") {
err("Thread Initialisation failed.");
throw ex;
}
// ExitStatus not present in MINIMAL_RUNTIME
if (ex instanceof Module['ExitStatus']) {
if (Module['keepRuntimeAlive']()) {
err('Pthread 0x' + Module['_pthread_self']().toString(16) + ' called exit(), staying alive due to noExitRuntime.');
} else {
err('Pthread 0x' + Module['_pthread_self']().toString(16) + ' called exit(), calling threadExit.');
Module['PThread'].threadExit(ex.status);
}
}
else
{
Module['PThread'].threadExit(-2);
throw ex;
}
} else {
// else e == 'unwind', and we should fall through here and keep the pthread alive for asynchronous events.
err('Pthread 0x' + Module['_pthread_self']().toString(16) + ' completed its pthread main entry point with an unwind, keeping the pthread worker alive for asynchronous operation.');
}
}
} else if (e.data.cmd === 'cancel') { // Main thread is asking for a pthread_cancel() on this thread.
if (Module['_pthread_self']()) {
Module['PThread'].threadCancel();
}
} else if (e.data.target === 'setimmediate') {
// no-op
} else if (e.data.cmd === 'processThreadQueue') {
if (Module['_pthread_self']()) { // If this thread is actually running?
Module['_emscripten_current_thread_process_queued_calls']();
}
} else {
err('worker.js received unknown command ' + e.data.cmd);
err(e.data);
}
} catch(ex) {
err('worker.js onmessage() captured an uncaught exception: ' + ex);
if (ex && ex.stack) err(ex.stack);
throw ex;
}
};
// Node.js support
if (typeof process === 'object' && typeof process.versions === 'object' && typeof process.versions.node === 'string') {
// Create as web-worker-like an environment as we can.
self = {
location: {
href: __filename
}
};
var onmessage = this.onmessage;
var nodeWorkerThreads = require('worker_threads');
global.Worker = nodeWorkerThreads.Worker;
var parentPort = nodeWorkerThreads.parentPort;
parentPort.on('message', function(data) {
onmessage({ data: data });
});
var nodeFS = require('fs');
var nodeRead = function(filename) {
return nodeFS.readFileSync(filename, 'utf8');
};
function globalEval(x) {
global.require = require;
global.Module = Module;
eval.call(null, x);
}
importScripts = function(f) {
globalEval(nodeRead(f));
};
postMessage = function(msg) {
parentPort.postMessage(msg);
};
if (typeof performance === 'undefined') {
performance = {
now: function() {
return Date.now();
}
};
}
}
importScripts('libSystemTransform.js');
const RECORDRTP = 0; //录制一份未经过转封装的码流原始数据,用于定位问题
let dataType = 1;
// 转封装库回调函数
self.STCallBack = function (fileIndex,indexLen, data, dataLen)
{
//stFrameInfo的类型见DETAIL_FRAME_INFO
let stFrameInfo = Module._GetDetialFrameInfo();
let nIsMp4Index = stFrameInfo.nIsMp4Index;
//console.log("FrameType is " , stFrameInfo);
//console.log("nIsMp4Index is " + nIsMp4Index);
//debugger
var pData = null;
pData = new Uint8Array(dataLen);
pData.set(Module.HEAPU8.subarray(data, data + dataLen));
if (dataType === 1) {
if (pData[0] == 0x49 && pData[1] == 0x4d && pData[2] == 0x4b && pData[3] == 0x48) {//码流头丢掉
return;
}
postMessage({type: "outputData", buf: pData, dType: 1});
dataType = 2;
} else {
if (nIsMp4Index) {
postMessage({type: "outputData", buf: pData, dType: 6}); //6:索引类型
} else {
postMessage({type: "outputData", buf: pData, dType: 2}); //2:码流
}
}
//stFrameInfo的类型见DETAIL_FRAME_INFO
//let stFrameInfo = Module._GetDetialFrameInfo();
//let stFrameType = stFrameInfo.nFrameType;
//let nFrameNum = stFrameInfo.nFrameNum;
//let nTimeStamp = stFrameInfo.nTimeStamp;
//let nIsMp4Index = stFrameInfo.nIsMp4Index;
//console.log("FrameType is " + stFrameType);
//console.log("nIsMp4Index is " + nIsMp4Index);
}
// self.Module = { memoryInitializerRequest: loadMemInitFile(), TOTAL_MEMORY: 128*1024*1024 };
// importScripts('SystemTransform.js');
self.Module['onRuntimeInitialized'] = function (){
postMessage({type: "loaded"});
}
onmessage = function (e) {
var data = e.data;
if ("create" === data.type) {
if (RECORDRTP) {
postMessage({type: "created"});
postMessage({type: "outputData", buf: data.buf, dType: 1});
} else {
var iHeadLen = data.len;
var pHead = Module._malloc(iHeadLen);
self.writeArrayToMemory(new Uint8Array(data.buf), pHead);
var iTransType = data.packType;//目标格式
var iRet = Module._CreatHandle(pHead, iTransType, 4096);
if (iRet != 0) {
console.log("_CreatHandle failed!" + iRet);
} else {
iRet = Module._SysTransRegisterDataCallBack();
if(iRet != 0)
{
console.log("_SysTransRegisterDataCallBack Failed:" + iRet);
}
iRet = Module._SysTransStart(null, null);
if(iRet != 0)
{
console.log("_SysTransStart Failed:" + iRet);
}
postMessage({type: "created"});
}
}
} else if ("inputData" === data.type) {
if (RECORDRTP) {
var aFileData = new Uint8Array(data.buf); // 拷贝一份
var iBufferLen = aFileData.length;
var szBufferLen = iBufferLen.toString(16);
if (szBufferLen.length === 1) {
szBufferLen = "000" + szBufferLen;
} else if (szBufferLen.length === 2) {
szBufferLen = "00" + szBufferLen;
} else if (szBufferLen.length === 3) {
szBufferLen = "0" + szBufferLen;
}
var aData = [0, 0, parseInt(szBufferLen.substring(0, 2), 16), parseInt(szBufferLen.substring(2, 4), 16)];
for(var iIndex = 0, iDataLength = aFileData.length; iIndex < iDataLength; iIndex++) {
aData[iIndex + 4] = aFileData[iIndex]
}
var dataUint8 = new Uint8Array(aData);
postMessage({type: "outputData", buf: dataUint8.buffer, dType: 2});
} else {
let pInputDataBuf = Module._malloc(data.len);
var idataLen = data.len;
self.writeArrayToMemory(new Uint8Array(data.buf), pInputDataBuf);
// 输入数据,每次最多2m
let pp = Module._SysTransInputData(0, pInputDataBuf, idataLen);
if(pp != 0) {
//console.log("InputData Failed:" + pp);
}
Module._free(pInputDataBuf);
}
} else if ("release" === data.type) {
var iRet = Module._SysTransStop();
if (iRet != 0) {
console.log("_SysTransStop Failed:", iRet);
}
Module._SysTransRelease();
if (iRet != 0) {
console.log("_SysTransRelease Failed:", iRet);
}
close();
}
};
\ No newline at end of file
...@@ -8,7 +8,8 @@ ...@@ -8,7 +8,8 @@
<link rel="icon" href="<%= BASE_URL %>favicon.ico"> <link rel="icon" href="<%= BASE_URL %>favicon.ico">
<title><%= webpackConfig.name %></title> <title><%= webpackConfig.name %></title>
<!--[if lt IE 11]><script>window.location.href='/html/ie.html';</script><![endif]--> <!--[if lt IE 11]><script>window.location.href='/html/ie.html';</script><![endif]-->
<script src="https://webapi.amap.com/maps?v=2.0&key=eed7ca3167f765467aa377fa78e61ece&plugin=Map3D,AMap.DistrictSearch,AMap.Scale,AMap.OverView,AMap.ToolBar,AMap.MouseTool,AMap.ControlBar,AMap.CircleEditor,AMap.PolyEditor"></script> <script src="https://webapi.amap.com/maps?v=2.0&key=49fcb156d466062435d7d33437099582&plugin=Map3D,AMap.DistrictSearch,AMap.Scale,AMap.OverView,AMap.ToolBar,AMap.MouseTool,AMap.ControlBar,AMap.CircleEditor,AMap.PolyEditor"></script>
<script src="h5player/h5player.min.js"></script> <script src="h5player/h5player.min.js"></script>
<style> <style>
html, html,
......
@font-face {
font-family: "arialbd";
src: url('~@/assets/fonts/UnidreamLED.ttf') format('truetype');
font-weight: normal;
font-style: normal;
}
\ No newline at end of file
@font-face {
font-family: 'UnidreamLED';
src: url('UnidreamLED.ttf');
font-weight: normal;
font-style: normal;
}
\ No newline at end of file
<svg id="组_2445" data-name="组 2445" xmlns="http://www.w3.org/2000/svg" width="18" height="25" viewBox="0 0 23 34.049">
<path id="路径_169" data-name="路径 169" d="M-2160.2,287.287a9.537,9.537,0,0,1,9.538,9.537,9.537,9.537,0,0,1-9.538,9.537,9.538,9.538,0,0,1-9.537-9.537A9.538,9.538,0,0,1-2160.2,287.287Zm0,1.467a8.069,8.069,0,0,0-8.069,8.07,8.069,8.069,0,0,0,8.069,8.07,8.069,8.069,0,0,0,8.07-8.07A8.069,8.069,0,0,0-2160.2,288.754Zm-.109,1.485a6.691,6.691,0,0,1,6.681,6.68,6.691,6.691,0,0,1-6.681,6.68,6.691,6.691,0,0,1-6.68-6.68A6.691,6.691,0,0,1-2160.309,290.239Zm.144,11.685h-.276v1.1h.276Zm-3.65-1.433-.771.772.2.2.772-.772-.2-.2Zm6.748,0-.2.2.771.772.2-.2Zm-1.874-6.328-1.808,2.094a.671.671,0,0,0-.265.286.825.825,0,0,0,.375,1.081.831.831,0,0,0,1.08-.375.723.723,0,0,0,.089-.375l.529-2.711Z" transform="translate(2171.7 -284.903)" fill="#7bf8f4"/>
<g id="路径_188" data-name="路径 188" fill="none">
<path d="M11.5,0A11.5,11.5,0,0,1,23,11.5c0,6.351-11.6,18.226-11.5,18.3S0,17.851,0,11.5A11.5,11.5,0,0,1,11.5,0Z" stroke="none"/>
<path d="M 11.5 0.9999980926513672 C 5.71027946472168 0.9999980926513672 1 5.710289001464844 1 11.50002861022949 C 1 15.44052600860596 6.295671463012695 22.62869071960449 11.47669506072998 28.3024730682373 C 12.68497657775879 26.95182228088379 15.33078575134277 23.97880554199219 17.65543937683105 20.72857856750488 C 19.63740921020508 17.95747756958008 22 14.10697841644287 22 11.50002861022949 C 22 5.710289001464844 17.28972053527832 0.9999980926513672 11.5 0.9999980926513672 M 11.5 -1.9073486328125e-06 C 17.85127067565918 -1.9073486328125e-06 23 5.148738861083984 23 11.50002861022949 C 23 17.82768249511719 11.48916530609131 29.63789749145508 11.49940204620361 29.80171585083008 C 11.36462783813477 29.63818168640137 0 17.7873649597168 0 11.50002861022949 C 0 5.148738861083984 5.14872932434082 -1.9073486328125e-06 11.5 -1.9073486328125e-06 Z M 11.49940204620361 29.80171585083008 C 11.50076866149902 29.80337524414062 11.50098419189453 29.8038387298584 11.5 29.80305862426758 C 11.49963855743408 29.80277252197266 11.49944019317627 29.80232810974121 11.49940204620361 29.80171585083008 Z" stroke="none" fill="#7bf8f4"/>
</g>
<path id="多边形_35" data-name="多边形 35" d="M4.524,0,9.049,6.033H0Z" transform="translate(16.59 29.951) rotate(180)" fill="#7bf8f4"/>
</svg>
<svg id="组_2447" data-name="组 2447" xmlns="http://www.w3.org/2000/svg" width="18" height="25" viewBox="0 0 23.304 34.295">
<path id="路径_168" data-name="路径 168" d="M-1603.123-57.691a9.445,9.445,0,0,0-9.234-8.255,9.5,9.5,0,0,0-9.333,9.663,9.5,9.5,0,0,0,9.333,9.663,9.445,9.445,0,0,0,9.234-8.255h.76v-2.817Zm-16.383.73a7.312,7.312,0,0,1,6.469-6.722v1.475a5.871,5.871,0,0,0-5.045,5.246Zm6.469,8.079a7.311,7.311,0,0,1-6.465-6.67h1.425a5.869,5.869,0,0,0,5.039,5.2Zm-.242-6.99v3.214h-1.149v-7.262h4.784V-58.9h-3.635v2.014h3.429v1.017Zm1.6,6.99v-1.475a5.869,5.869,0,0,0,5.039-5.2h1.425A7.311,7.311,0,0,1-1611.677-48.883Zm5.045-8.079a5.871,5.871,0,0,0-5.045-5.246v-1.475a7.313,7.313,0,0,1,6.469,6.722Z" transform="translate(1624.104 68.362)" fill="#7bf8f4"/>
<g id="路径_185" data-name="路径 185" fill="none">
<path d="M11.652,0A11.652,11.652,0,0,1,23.3,11.652c0,6.435-11.75,18.467-11.652,18.545S0,18.087,0,11.652A11.652,11.652,0,0,1,11.652,0Z" stroke="none"/>
<path d="M 11.65185546875 0.9999942779541016 C 5.77839469909668 0.9999942779541016 0.9999961853027344 5.778413772583008 0.9999961853027344 11.65188407897949 C 0.9999961853027344 15.65063667297363 6.374073028564453 22.94361305236816 11.62834739685059 28.69588470458984 C 12.84814071655273 27.33243751525879 15.5371789932251 24.3126106262207 17.89928436279297 21.01001358032227 C 19.90856552124023 18.20073509216309 22.3037052154541 14.29677486419678 22.3037052154541 11.65188407897949 C 22.3037052154541 5.778413772583008 17.52530479431152 0.9999942779541016 11.65185546875 0.9999942779541016 M 11.65185546875 -5.7220458984375e-06 C 18.08699607849121 -5.7220458984375e-06 23.3037052154541 5.216724395751953 23.3037052154541 11.65188407897949 C 23.3037052154541 18.06309509277344 11.64087867736816 30.02925682067871 11.65124988555908 30.19523429870605 C 11.5146951675415 30.02953720092773 -3.814697265625e-06 18.02224731445312 -3.814697265625e-06 11.65188407897949 C -3.814697265625e-06 5.216724395751953 5.216714859008789 -5.7220458984375e-06 11.65185546875 -5.7220458984375e-06 Z M 11.65124988555908 30.19523429870605 C 11.65263366699219 30.19691467285156 11.65285301208496 30.19738388061523 11.65185546875 30.19659423828125 C 11.6514892578125 30.19630432128906 11.65128803253174 30.19585609436035 11.65124988555908 30.19523429870605 Z" stroke="none" fill="#7bf8f4"/>
</g>
<path id="多边形_32" data-name="多边形 32" d="M4.53,0l4.53,6.039H0Z" transform="translate(16.306 30.197) rotate(180)" fill="#7bf8f4"/>
</svg>
<svg xmlns="http://www.w3.org/2000/svg" width="18" height="25" viewBox="0 0 23 34.049">
<g id="组_2451" data-name="组 2451" transform="translate(7189 23993)">
<g id="路径_188" data-name="路径 188" transform="translate(-7189 -23993)" fill="none">
<path d="M11.5,0A11.5,11.5,0,0,1,23,11.5c0,6.351-11.6,18.226-11.5,18.3S0,17.851,0,11.5A11.5,11.5,0,0,1,11.5,0Z" stroke="none"/>
<path d="M 11.5 0.9999980926513672 C 5.71027946472168 0.9999980926513672 1 5.710289001464844 1 11.50002861022949 C 1 15.44052600860596 6.295671463012695 22.62869071960449 11.47669506072998 28.3024730682373 C 12.68497657775879 26.95182228088379 15.33078575134277 23.97880554199219 17.65543937683105 20.72857856750488 C 19.63740921020508 17.95747756958008 22 14.10697841644287 22 11.50002861022949 C 22 5.710289001464844 17.28972053527832 0.9999980926513672 11.5 0.9999980926513672 M 11.5 -1.9073486328125e-06 C 17.85127067565918 -1.9073486328125e-06 23 5.148738861083984 23 11.50002861022949 C 23 17.82768249511719 11.48916530609131 29.63789749145508 11.49940204620361 29.80171585083008 C 11.36462783813477 29.63818168640137 0 17.7873649597168 0 11.50002861022949 C 0 5.148738861083984 5.14872932434082 -1.9073486328125e-06 11.5 -1.9073486328125e-06 Z M 11.49940204620361 29.80171585083008 C 11.50076866149902 29.80337524414062 11.50098419189453 29.8038387298584 11.5 29.80305862426758 C 11.49963855743408 29.80277252197266 11.49944019317627 29.80232810974121 11.49940204620361 29.80171585083008 Z" stroke="none" fill="#7bf8f4"/>
</g>
<path id="多边形_35" data-name="多边形 35" d="M4.524,0,9.049,6.033H0Z" transform="translate(-7172.411 -23963.049) rotate(180)" fill="#7bf8f4"/>
<path id="路径_1298" data-name="路径 1298" d="M21.1,8.659v7.97l-2.46-.621V13.532l-5.534-1.863V9.8h-.613V8.563l-3.428.807,1.315-1.4-.129-.791c-.1.323-.282.54-.508.573-.476.081-.992-.67-1.154-1.67-.145-.928.065-1.75.484-1.92L7.742,2.577l-.1-.04-1.888.307.016.452,1.3-.21L7.4,5.191l-.694.1L5.168,3.593,5.12,2.327,6.5,2.109l.9-.145.791-.129L16.51.512l.976.371,1.452,2.549L10.025,4.86a3.109,3.109,0,0,1,.21.549L18.2,4.134,18.624,6.8,17.285,8.062l-2.323.508V9.813h-.613v1.242L18.656,12.3V9.2ZM9.323,5.175c-.21.032-.315.411-.25.839s.29.758.5.726.315-.411.25-.839S9.532,5.142,9.323,5.175ZM7.943,8.119l-.411-2.6-.6.1.46,2.864,1.549.96.46-.419Z" transform="translate(-7191.327 -23989.652)" fill="#7bf8f4"/>
</g>
</svg>
<svg id="组_2448" data-name="组 2448" xmlns="http://www.w3.org/2000/svg" width="18" height="25" viewBox="0 0 23 33.9">
<path id="路径_173" data-name="路径 173" d="M-1877.09-49.461a9.537,9.537,0,0,0-9.537,9.537,9.537,9.537,0,0,0,9.537,9.537,9.537,9.537,0,0,0,9.537-9.537A9.537,9.537,0,0,0-1877.09-49.461Zm5.722,12.875h-.954v1.431h-1.43v.954h-1.907v-.954h-2.384v.954h-1.907v-.954h-1.431v-1.431h-.954v-6.676h.954v-1.431h1.431v-.477h1.431v.477h.953v-.477h1.431v.477h.954v-.477h1.431v.477h1.43v1.431h.954Zm-9.537,0h8.107v-7.153h-8.107Zm7.153-6.676h.477v6.2h-.477Zm-.954,0h.477v6.2h-.477Zm-.953,0h.477v6.2h-.477Zm-.954,0h.477v6.2h-.477Zm-.954,0h.477v6.2h-.477Zm-.953,0h.477v6.2h-.477Zm-.954,0h.477v6.2h-.477Zm-.954,0h.477v6.2h-.477Z" transform="translate(1888.59 51.845)" fill="#7bf8f4"/>
<g id="路径_186" data-name="路径 186" fill="none">
<path d="M11.5,0A11.5,11.5,0,0,1,23,11.5c0,6.351-11.6,18.226-11.5,18.3S0,17.851,0,11.5A11.5,11.5,0,0,1,11.5,0Z" stroke="none"/>
<path d="M 11.5 0.9999942779541016 C 5.71027946472168 0.9999942779541016 1 5.710294723510742 1 11.50003433227539 C 1 15.44047451019287 6.295700073242188 22.62868881225586 11.47670364379883 28.30246925354004 C 12.68497562408447 26.95181846618652 15.33078575134277 23.97880172729492 17.65543937683105 20.72857475280762 C 19.63740921020508 17.95747375488281 22 14.10698509216309 22 11.50003433227539 C 22 5.710294723510742 17.28972053527832 0.9999942779541016 11.5 0.9999942779541016 M 11.5 -5.7220458984375e-06 C 17.85128021240234 -5.7220458984375e-06 23 5.148744583129883 23 11.50003433227539 C 23 17.82767868041992 11.48916530609131 29.63789367675781 11.49940204620361 29.80171203613281 C 11.36462783813477 29.63816833496094 0 17.78736114501953 0 11.50003433227539 C 0 5.148744583129883 5.14872932434082 -5.7220458984375e-06 11.5 -5.7220458984375e-06 Z M 11.49940204620361 29.80171203613281 C 11.50076866149902 29.80337142944336 11.50098419189453 29.80383491516113 11.5 29.80305480957031 C 11.49963855743408 29.80276870727539 11.49944019317627 29.80232429504395 11.49940204620361 29.80171203613281 Z" stroke="none" fill="#7bf8f4"/>
</g>
<path id="多边形_33" data-name="多边形 33" d="M4.471,0,8.941,5.961H0Z" transform="translate(16.094 29.803) rotate(180)" fill="#7bf8f4"/>
</svg>
<svg id="组_2446" data-name="组 2446" xmlns="http://www.w3.org/2000/svg" width="18" height="25" viewBox="0 0 23 33.9">
<path id="路径_170" data-name="路径 170" d="M-1583.57,295.955a3.719,3.719,0,0,0-3.714,3.713,3.719,3.719,0,0,0,3.714,3.713,3.719,3.719,0,0,0,3.713-3.713,3.719,3.719,0,0,0-3.713-3.713Zm2.287,4.15a.608.608,0,0,1-.437.184h-1.862a.618.618,0,0,1-.621-.621V297.2a.618.618,0,0,1,.621-.621.608.608,0,0,1,.437.184.608.608,0,0,1,.184.437v1.862h1.242a.618.618,0,0,1,.621.621.6.6,0,0,1-.184.425Zm-8.966-5.047a4.143,4.143,0,0,0,4.161,0,4.166,4.166,0,0,0,2.081-3.61,4.161,4.161,0,0,0-4.162-4.161,4.16,4.16,0,0,0-4.161,4.161A4.179,4.179,0,0,0-1590.249,295.058Zm1.724,4.61a4.872,4.872,0,0,1,.391-1.931,5.639,5.639,0,0,1,.54-.966,4.67,4.67,0,0,1-.575.035,5.145,5.145,0,0,1-2.081-.425,5.006,5.006,0,0,1-.943-.517,1.2,1.2,0,0,0-1.345-.011,7.8,7.8,0,0,0-3.414,6.265v.069a.6.6,0,0,0,.6.575h7.92a5.215,5.215,0,0,1-.7-1.161,5.035,5.035,0,0,1-.391-1.931Z" transform="translate(1599.528 -284.903)" fill="#7bf8f4" opacity="0.996"/>
<g id="路径_190" data-name="路径 190" fill="none">
<path d="M11.5,0A11.5,11.5,0,0,1,23,11.5c0,6.351-11.6,18.226-11.5,18.3S0,17.851,0,11.5A11.5,11.5,0,0,1,11.5,0Z" stroke="none"/>
<path d="M 11.5 1.000003814697266 C 5.71027946472168 1.000003814697266 1 5.710294723510742 1 11.50003433227539 C 1 15.44052124023438 6.295677185058594 22.62869262695312 11.47670078277588 28.30246353149414 C 12.68496322631836 26.95182609558105 15.33070659637451 23.97891044616699 17.65538024902344 20.72865295410156 C 19.63738059997559 17.95753479003906 22 14.10700416564941 22 11.50003433227539 C 22 5.710294723510742 17.28972053527832 1.000003814697266 11.5 1.000003814697266 M 11.5 3.814697265625e-06 C 17.85128021240234 3.814697265625e-06 23 5.148744583129883 23 11.50003433227539 C 23 17.82767677307129 11.48916530609131 29.63790130615234 11.49940204620361 29.80170249938965 C 11.36462783813477 29.63816833496094 0 17.78736114501953 0 11.50003433227539 C 0 5.148744583129883 5.14872932434082 3.814697265625e-06 11.5 3.814697265625e-06 Z M 11.49940204620361 29.80170249938965 C 11.50076866149902 29.80335998535156 11.50098419189453 29.80382347106934 11.5 29.80304336547852 C 11.49963855743408 29.80275726318359 11.49944019317627 29.80231475830078 11.49940204620361 29.80170249938965 Z" stroke="none" fill="#7bf8f4"/>
</g>
<path id="多边形_37" data-name="多边形 37" d="M4.471,0,8.941,5.961H0Z" transform="translate(16.094 29.803) rotate(180)" fill="#7bf8f4"/>
</svg>
<svg id="组_2449" data-name="组 2449" xmlns="http://www.w3.org/2000/svg" width="18" height="25" viewBox="0 0 23 33.9">
<g id="路径_186" data-name="路径 186" fill="none">
<path d="M11.5,0A11.5,11.5,0,0,1,23,11.5c0,6.351-11.6,18.226-11.5,18.3S0,17.851,0,11.5A11.5,11.5,0,0,1,11.5,0Z" stroke="none"/>
<path d="M 11.5 0.9999942779541016 C 5.71027946472168 0.9999942779541016 1 5.710294723510742 1 11.50003433227539 C 1 15.44047451019287 6.295700073242188 22.62868881225586 11.47670364379883 28.30246925354004 C 12.68497562408447 26.95181846618652 15.33078575134277 23.97880172729492 17.65543937683105 20.72857475280762 C 19.63740921020508 17.95747375488281 22 14.10698509216309 22 11.50003433227539 C 22 5.710294723510742 17.28972053527832 0.9999942779541016 11.5 0.9999942779541016 M 11.5 -5.7220458984375e-06 C 17.85127067565918 -5.7220458984375e-06 23 5.148744583129883 23 11.50003433227539 C 23 17.82767868041992 11.48916530609131 29.63789367675781 11.49940204620361 29.80171203613281 C 11.36462783813477 29.63816833496094 0 17.78736114501953 0 11.50003433227539 C 0 5.148744583129883 5.14872932434082 -5.7220458984375e-06 11.5 -5.7220458984375e-06 Z M 11.49940204620361 29.80171203613281 C 11.50076866149902 29.80337142944336 11.50098419189453 29.80383491516113 11.5 29.80305480957031 C 11.49963855743408 29.80276870727539 11.49944019317627 29.80232429504395 11.49940204620361 29.80171203613281 Z" stroke="none" fill="#7bf8f4"/>
</g>
<path id="多边形_33" data-name="多边形 33" d="M4.471,0,8.941,5.961H0Z" transform="translate(16.094 29.804) rotate(180)" fill="#7bf8f4"/>
<path id="路径_966" data-name="路径 966" d="M99.476,156.616a6.028,6.028,0,0,1-1.622,2.267.9.9,0,0,1-.583.252.8.8,0,0,1-.567-.236.765.765,0,0,1-.236-.535.705.705,0,0,1,.236-.535,6.035,6.035,0,0,0,1.748-4.377A5.726,5.726,0,0,0,96.7,149.2a6.645,6.645,0,0,0-9.085.016,5.836,5.836,0,0,0-1.763,4.283,6.134,6.134,0,0,0,1.952,4.346.765.765,0,0,1,.236.535.705.705,0,0,1-.236.535.748.748,0,0,1-.567.236.8.8,0,0,1-.567-.236,7.414,7.414,0,0,1-2.047-2.724,7.528,7.528,0,0,1,1.748-8.266,7.836,7.836,0,0,1,2.629-1.685,9.392,9.392,0,0,1,6.361-.063,6.113,6.113,0,0,1,2.141,1.26c2.866,2.425,3.023,5.9,2.047,8.943Zm-7.337-7.684a4.366,4.366,0,0,0-4.377,4.267.5.5,0,0,1-.236.5.527.527,0,0,1-.567,0,.513.513,0,0,1-.236-.5,5.254,5.254,0,0,1,1.575-3.684,5.533,5.533,0,0,1,7.7,0,5.208,5.208,0,0,1,1.606,3.732.5.5,0,0,1-.236.5.527.527,0,0,1-.567,0,.513.513,0,0,1-.236-.5,4.382,4.382,0,0,0-4.424-4.314Zm.913,5.4a1.113,1.113,0,0,1-1.559-.047,1.054,1.054,0,0,1-.268-1.149l-1.212-1.2a.418.418,0,0,1,0-.6.479.479,0,0,1,.63,0l1.228,1.2a1.162,1.162,0,0,1,1.2.268,1.024,1.024,0,0,1,.331.771A1.093,1.093,0,0,1,93.052,154.333Zm.016-.016" transform="translate(-80.582 -142.727)" fill="#7bf8f4"/>
</svg>
This diff is collapsed.
<!-- <!--
* @Author: your name * @Author: your name
* @Date: 2022-02-12 11:07:10 * @Date: 2022-02-12 11:07:10
* @LastEditTime: 2022-02-15 10:33:20 * @LastEditTime: 2022-02-16 17:08:55
* @LastEditors: Please set LastEditors * @LastEditors: Please set LastEditors
* @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE * @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
* @FilePath: /test/hello-world/src/components/GetPos.vue/index.vue * @FilePath: /test/hello-world/src/components/GetPos.vue/index.vue
...@@ -79,6 +79,7 @@ export default { ...@@ -79,6 +79,7 @@ export default {
this.init(); this.init();
} else { } else {
this.map.destroy(); this.map.destroy();
this.searchinput="";
} }
this.$nextTick(() => { this.$nextTick(() => {
const input = this.$refs.input.$refs.input; const input = this.$refs.input.$refs.input;
......
<template>
<div v-if="show" class="myCenter">
<div class="left">
<div class="title-wrapper">
<div class="title">报警器列表</div>
<div class="close" @click="close">
<img src="@/assets/mapImages/closeBtn.png" alt="" />
</div>
</div>
<div class="bottom right-bottom-data-left">
<el-table
size="mini"
:data="tableData"
class="el-bottom"
>
<!-- :height="tableHeight" -->
<el-table-column prop="detectorCode" label="设备编号" width="">
<template slot-scope="scope">
<div :title="scope.row.deviceNo" class="zzz">
{{ scope.row.deviceNo }}
</div>
</template>
</el-table-column>
<el-table-column prop="deviceType" label="设备类型" width="">
<template slot-scope="scope">
<div :title="scope.row.deviceType" class="zzz">
{{ scope.row.deviceType == 1 ? "流量计" : "压力表" }}
</div>
</template>
</el-table-column>
<el-table-column prop="deviceState" label="设备状态" width="">
<template slot-scope="scope">
<div v-if="scope.row.deviceState == 1">正常</div>
<div style="color: red" v-else-if="scope.row.deviceState == 2">
报警
</div>
</template>
</el-table-column>
<el-table-column prop="reportTime" label="报警时间" width="">
<template slot-scope="scope">
<div>{{ scope.row.reportTime }}</div>
</template>
</el-table-column>
</el-table>
<div>
<el-pagination
@current-change="handleCurrentChangvale"
:page-size="pageSize"
:current-page="pageCurrent"
layout="prev, pager, next, jumper"
:total="total"
:hide-on-single-page="total < pageSize"
>
</el-pagination>
</div>
</div>
</div>
</div>
</template>
<script>
export default {
props: {
centerData: {
type: Array,
},
show: {
type: Boolean,
},
},
data() {
return {
// 动画效果的切换
tableHeight: 600,
pageSize: 16,
pageCurrent: 1,
};
},
created() {
// this.getList();
},
watch: {
// 当组件显示的时候
show(newVal) {
if (newVal) {
this.pageCurrent = 1;
}
},
},
computed: {
total() {
return this.centerData.length;
},
tableData() {
return this.centerData.filter((item, index) => {
return (
index < this.pageCurrent * this.pageSize &&
index >= (this.pageCurrent - 1) * this.pageSize
);
});
},
},
methods: {
handleSizeChange(val) {
console.log(val);
this.pageCurrent = val;
},
handleCurrentChangvale(val) {
console.log(val);
this.pageCurrent = val;
},
close() {
this.$parent.centerShow(false);
},
},
};
</script>
<style lang="scss" >
.myCenter {
// width: 978px;
max-height: 600px;
position: fixed;
top: 50%;
left: 50%;
margin-top: -300px;
margin-left: -500px;
// background-color: #fff;
display: flex;
justify-content: space-between;
z-index: 9999;
& > div {
}
.left {
// width: 100px;
max-height: 598px;
margin-right: 12px;
// box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.16);
// background-color: #fff;
// color: #fff;
font-size: 14px;
font-weight: 400;
.title-wrapper {
// width: 99%;
width: 100%;
height: 30px;
display: flex;
justify-content: space-between;
background: #1890ff;
padding: 5px;
.title {
width: 100%;
color: #fff;
text-align: center;
line-height: 30px;
}
.close {
box-sizing: border-box;
padding-top: 5px;
padding-right: 5px;
cursor: pointer;
}
}
.el-table__body-wrappe {
height: 140px !important;
}
.top {
height: 19px;
// background-color: #053b6a;
color: #fff;
// line-height: 32px;
// padding-left: 12px;
position: relative;
.title {
position: absolute;
left: 50%;
margin-left: -92px;
top: -5px;
}
.repeat {
position: absolute;
top: -5px;
right: 160px;
color: #fff;
cursor: pointer;
&:hover {
color: #2788ea;
}
}
.repeat2 {
position: absolute;
right: 206px;
color: #67c23a;
}
.more {
position: absolute;
right: 38px;
top: -5px;
color: #fff;
float: right;
margin-right: 20px;
cursor: pointer;
&:hover {
color: #2788ea;
}
}
}
.bottom {
width: 1000px;
margin: 0 auto;
position: relative;
}
}
.right {
width: 740px;
display: flex;
flex-wrap: wrap;
// justify-content: space-between;
align-content: flex-start;
// margin-top: 7px;
& > .right-content {
background-color: #fff;
width: 238px;
height: 82px;
margin-bottom: 29px;
box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.16);
margin-right: 10px;
display: flex;
&.three {
margin-right: 0px;
}
// align-items: center;
.text-icon {
line-height: 82px;
padding-left: 22px;
margin-right: 22px;
i {
color: #053b6a;
font-size: 60px;
}
}
.text {
font-size: 14px;
padding-top: 16px;
.top {
color: #000;
margin-bottom: 10px;
font-weight: 600;
}
.bottom {
color: #2788ea;
}
}
}
}
.iconfont {
cursor: pointer;
}
// 单独调整下最后一个icon的大小
.iconFontSize {
font-size: 50px !important;
}
}
</style>
\ No newline at end of file
<!--
* @Author: your name
* @Date: 2022-01-26 20:07:52
* @LastEditTime: 2022-02-17 10:13:02
* @LastEditors: Please set LastEditors
* @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
* @FilePath: /test/hello-world/src/views/components/deviceA.vue
-->
<template>
<div class="devicea-wrapper">
<div class="title">
{{
deviceData.deviceName ? deviceData.deviceName : deviceData.stationName
}}
</div>
<div class="close" @click="close">
<img src="@/assets/mapImages/closeBtn.png" alt="" />
</div>
<div class="top flex">
<div class="group">
<div class="left">所属公司:</div>
<div class="right zzz">{{ companyType[deviceData.companyType] }}</div>
</div>
<div class="group">
<div class="left">设备类型:</div>
<div class="right zzz">
{{ deviceType[deviceData.type] }}
</div>
</div>
<div class="group">
<div class="left">设备地址:</div>
<div
v-if="deviceData.deviceAddr"
:title="deviceData.deviceAddr"
class="right last zzz"
>
{{ deviceData.deviceAddr || "-" }}
</div>
<div
v-else-if="deviceData.stationAddr"
:title="deviceData.stationAddr"
class="right last zzz"
>
{{ deviceData.stationAddr || "-" }}
</div>
</div>
</div>
<div class="middle">{{ profile }}</div>
<div class="foot">
<div class="thead flex">
<div class="first">设备类型</div>
<div>设备数量</div>
<div>在线设备</div>
<div>离线设备</div>
<div>历史报警</div>
<div>已处理报警</div>
<div class="last">报警中</div>
</div>
<div class="tbody flex">
<div class="first zzz">{{ "流量计与压力表" }}</div>
<div class="">{{ deviceData.pressureFlow.length }}</div>
<div class="">
{{ (Math.random() * deviceData.pressureFlow.length) >> 1 }}
</div>
<div class="">
{{ (Math.random() * deviceData.pressureFlow.length) >> 1 }}
</div>
<div class="">
{{ (Math.random() * deviceData.pressureFlow.length) >> 1 }}
</div>
<div class="">
{{ (Math.random() * deviceData.pressureFlow.length) >> 1 }}
</div>
<div class="last zzz">
{{
deviceData.pressureFlow.filter((item) => {
return item.deviceState == 2;
}).length
}}
</div>
</div>
</div>
<div class="btn">
<div @click="btnClick">感知设备</div>
</div>
</div>
</template>
<script>
import { companyType, deviceType } from "@/utils/mapClass/config.js";
export default {
data() {
return {
companyType,
deviceType,
profile:
"公司位于长江三角洲经济快速增长、风景秀丽的太湖之畔——无锡。 公司自1984年成立至今,已经过了3次跨越式的发展。2004年至今公司投入5000多万元资金建设新的生产基地,目前已竣工并投入生产,占地面积达40000m2,厂房面积近15000m2。公司2004年的年产值达4350多万元,并且每年以平均30%的速度快速增长。",
};
},
methods: {
close() {
this.mapClass.infowindowClose();
},
btnClick() {
this.vueRoot.centerDataFunc(this.deviceData.pressureFlow);
},
},
};
</script>
<style lang="scss" scoped>
.devicea-wrapper {
background-color: rgba(9, 18, 32, 0.6);
padding: 10px;
position: relative;
width: 700px;
.title {
// padding-top: 10px;
// padding-left: 10px;
font-size: 14px;
line-height: 14px;
color: #ffffff;
}
.close {
position: absolute;
right: 10px;
top: 5px;
cursor: pointer;
}
.top {
margin-top: 10px;
margin-bottom: 10px;
border: 1px solid #cccccc;
box-sizing: border-box;
.group {
height: 30px;
flex: 1;
display: flex;
justify-content: space-between;
box-sizing: border-box;
div {
flex: 1;
box-sizing: border-box;
border-right: 1px solid #cccccc;
text-align: center;
font-size: 14px;
color: #ffffff;
line-height: 30px;
padding: 0 5px;
&.last {
border-right: none;
}
}
.left {
text-align: right;
background-color: rgba(255, 255, 255, 0.1);
}
}
}
.middle {
width: 100%;
padding: 5px;
border: 1px solid #ffffff;
box-sizing: border-box;
font-size: 14px;
color: #ffffff;
text-indent: 2em;
margin-bottom: 10px;
}
.foot {
font-size: 14px;
color: #ffffff;
.thead,
.tbody {
border: 1px solid #cccccc;
div {
flex: 1;
text-align: left;
border-right: 1px solid #cccccc;
box-sizing: border-box;
padding: 0 5px;
}
.first {
flex: 2;
}
.last {
border-right: none;
}
}
.tbody {
border-top: none;
}
.thead {
div {
background-color: rgba(255, 255, 255, 0.1);
}
}
}
.btn {
position: relative;
margin-top: 10px;
text-align: right;
div {
font-size: 14px;
color: #ffffff;
padding: 2px 4px;
box-sizing: border-box;
display: inline-block;
cursor: pointer;
border: 1px solid #cccccc;
background-color: #1890ff;
&:hover {
// background: rgba(9, 18, 32, 0.6);
background-color: #18baff;
}
}
}
.flex {
display: flex;
justify-content: space-between;
}
}
</style>
\ No newline at end of file
<!--
* @Author: your name
* @Date: 2022-01-27 14:25:45
* @LastEditTime: 2022-02-17 10:11:42
* @LastEditors: Please set LastEditors
* @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
* @FilePath: /hello-world/src/views/components/User.vue
-->
<template>
<div class="user-wrapper">
<div class="title">{{ companyType[deviceData.companyType] }}</div>
<div class="close" @click="close">
<img src="@/assets/mapImages/closeBtn.png" alt="" />
</div>
<div class="group flex first">
<div class="left first">管道长度:</div>
<div class="right zzz">{{ deviceData.pipeLength }}</div>
<div class="left">管径:</div>
<div class="right last">{{ deviceData.pipeDiameter }}</div>
</div>
<!-- <div class="group flex">
</div> -->
<div class="group flex">
<div class="left first">管道压力:</div>
<div :title="deviceData.address" class="right zzz">
{{ pipePressure[deviceData.pipePressure] }}
</div>
<div class="left">所属公司:</div>
<div class="right last">{{ companyType[deviceData.companyType] }}</div>
</div>
<div class="group flex">
<div class="first left">管道材质:</div>
<div class="right">{{ deviceData.pipeMaterial }}</div>
<div class="left">管道埋深:</div>
<div class="right last">{{ deviceData.pipeDepth }}</div>
</div>
<div class="group flex">
<div class="left first">管道走向:</div>
<div class="right">{{ deviceData.pipeTrend }}</div>
<div class="left">权属单位:</div>
<div :title="deviceData.powerCompany" class="right last zzz">{{ deviceData.powerCompany }}</div>
</div>
<div class="group flex">
<div class="first left">建设年代:</div>
<div class="right">{{ deviceData.buildyear }}</div>
<div class="left">建设单位:</div>
<div class="last right">{{ deviceData.buildCompany }}</div>
</div>
<div class="group flex">
<div class="first once left">管道位置:</div>
<div :title="deviceData.pipeAddr" class=" last pipeAddr right zzz">
{{ deviceData.pipeAddr }}
</div>
</div>
</div>
</template>
<script>
import { companyType, pipePressure } from "@/utils/mapClass/config.js";
export default {
data() {
return {
companyType,
pipePressure,
};
},
methods: {
close() {
this.mapClass.infowindowClose();
},
},
};
</script>
<style lang="scss" scoped>
.user-wrapper {
background-color: rgba(9, 18, 32, 0.6);
padding: 10px;
position: relative;
width: 400px;
.title {
font-size: 14px;
line-height: 14px;
color: #ffffff;
}
.close {
position: absolute;
right: 10px;
top: 5px;
cursor: pointer;
}
.group {
border: 1px solid #cccccc;
border-top: none;
height: 28px;
font-size: 14px;
line-height: 28px;
color: #ffffff;
&.first {
border-top: 1px solid #cccccc;
margin-top: 10px;
}
div {
flex: 1;
border-right: 1px solid #cccccc;
}
.left {
background-color: rgba(255, 255, 255, 0.1);
text-align: right;
}
.right {
box-sizing: border-box;
text-align: left;
padding: 0 1em;
}
.last {
border: none;
}
.once{
flex:1;
}
.pipeAddr{
flex:3;
padding:0 3em 0 1em;
}
}
.flex {
display: flex;
justify-content: space-between;
}
}
</style>
\ No newline at end of file
<!--
* @Author: your name
* @Date: 2022-01-26 10:52:10
* @LastEditTime: 2022-02-17 10:11:35
* @LastEditors: Please set LastEditors
* @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
* @FilePath: /test/hello-world/src/components/PipeColor.vue
-->
<template>
<div>
<div class="pipePressure">
<!-- <div>管道压力</div> -->
<div class="hasColorBox" :style="{ color: pipeColor[`1`] }">
<div :style="{ backgroundColor: pipeColor[`1`] }"></div>
低压
</div>
<div class="hasColorBox" :style="{ color: pipeColor[`2`] }">
<div :style="{ backgroundColor: pipeColor[`2`] }"></div>
中压
</div>
<div class="hasColorBox" :style="{ color: pipeColor[`3`] }">
<div :style="{ backgroundColor: pipeColor[`3`] }"></div>
次高压
</div>
<div class="hasColorBox" :style="{ color: pipeColor[`4`] }">
<div :style="{ backgroundColor: pipeColor[`4`] }"></div>
高压
</div>
</div>
<div class="mapChange">
<div :class="{ active: !mapStyle }" @click="mapChange(1)">卫星地图</div>
<div :class="{ active: mapStyle }" @click="mapChange(2)">全景地图</div>
</div>
</div>
</template>
<script>
import { pipeColor } from "@/utils/mapClass/config.js";
export default {
data() {
return {
pipeColor,
mapStyle:true
};
},
methods: {
// 更改卫星图
mapChange(num) {
if (num == 1) {
this.mapStyle = false;
} else {
this.mapStyle = true;
}
this.$parent.map.changeMap(this.mapStyle);
},
},
};
</script>
<style lang="scss" scoped>
.pipePressure {
position: fixed;
color: #fff;
left: 460px;
top: 120px;
padding: 1px;
// background: rgba(6, 29, 51, 0.8);
.hasColorBox {
// border: 1px solid #053b6a;
padding: 2px 5px;
margin-bottom: 5px;
& > div {
display: inline-block;
width: 10px;
height: 10px;
}
}
}
.mapChange {
left: 460px;
top: 76px;
color: #fff;
position: absolute;
display: flex;
div {
padding: 4px 8px;
border: 1px solid #fff;
margin-left: 8px;
cursor: pointer;
&.active,
&:hover {
background-color: #053b6a;
color: #31eaea;
}
}
}
</style>
\ No newline at end of file
<!--
* @Author: your name
* @Date: 2022-01-11 13:44:17
* @LastEditTime: 2022-01-20 14:30:03
* @LastEditors: Please set LastEditors
* @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
* @FilePath: /hello-world/src/views/About.vue
-->
<template>
<div class="wrapper">
<div @click="click">点我</div>
<div>{{deviceData.lat}}</div>
<div>{{deviceData.id}}</div>
<div>{{deviceData.type}}</div>
<div>{{deviceData.lng}}</div>
<div>12312312321{{a}}</div>
</div>
</template>
<script>
//这个东西是用新的实例创建的,跟主vue没有关联,必须传进来才可以
// vueRoot,
// // 自己写的map类
// mapClass,
// // 数据
// deviceData,
export default {
name: "Pipe",
data() {
return {
a:123
};
},
// props: {
// // 代表地图页面的vue
// vueRoot: {
// type: Object,
// default: () => null,
// },
// // 数据
// deviceData: {
// type: Object,
// default: () => null,
// },
// },
mounted(){
console.log(this.deviceData)
},
methods: {
click() {
},
},
};
</script>
<style lang="scss" scoped>
.wrapper {
width: 200px;
height: 200px;
background: red;
}
</style>
\ No newline at end of file
<!--
* @Author: your name
* @Date: 2022-01-27 14:25:45
* @LastEditTime: 2022-02-17 10:12:02
* @LastEditors: Please set LastEditors
* @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
* @FilePath: /hello-world/src/views/components/User.vue
-->
<template>
<div class="user-wrapper">
<div class="title">{{ deviceData.usrName }}</div>
<div class="close" @click="close">
<img src="@/assets/mapImages/closeBtn.png" alt="" />
</div>
<div class="group flex first">
<div class="left">用户姓名:</div>
<div :title="deviceData.usrName" class="right zzz">{{ deviceData.usrName }}</div>
</div>
<div class="group flex">
<div class="left">联系方式:</div>
<div class="right">{{ deviceData.phone }}</div>
</div>
<div class="group flex">
<div class="left">用户地址:</div>
<div :title="deviceData.address" class="right zzz">
{{ deviceData.address }}
</div>
</div>
<div class="group flex">
<div class="left">所属公司:</div>
<div class="right">{{ companyType[deviceData.companyType] }}</div>
</div>
</div>
</template>
<script>
import { companyType } from "@/utils/mapClass/config.js";
export default {
data() {
return {
companyType,
};
},
methods: {
close() {
this.mapClass.infowindowClose();
},
},
};
</script>
<style lang="scss" scoped>
.user-wrapper {
background-color: rgba(9, 18, 32, 0.6);
padding: 10px;
position: relative;
width: 300px;
.title {
font-size: 14px;
line-height: 14px;
color: #ffffff;
}
.close {
position: absolute;
right: 10px;
top: 5px;
cursor: pointer;
}
.group {
border: 1px solid #cccccc;
border-top:none;
height: 28px;
font-size: 14px;
line-height: 28px;
color: #ffffff;
&.first {
border-top:1px solid #cccccc;
margin-top: 10px;
}
div {
flex: 1;
}
.left {
border-right: 1px solid #cccccc;
background-color: rgba(255, 255, 255, 0.1);
text-align: right;
}
.right {
box-sizing: border-box;
text-align: left;
padding:0 1em;
}
}
.flex {
display: flex;
justify-content: space-between;
}
}
</style>
\ No newline at end of file
<!--
* @Author: your name
* @Date: 2022-01-26 22:44:02
* @LastEditTime: 2022-01-27 10:12:46
* @LastEditors: Please set LastEditors
* @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
* @FilePath: /test/hello-world/src/views/components/videoView.vue
-->
<template>
<div class="box-wrapper">
<div class="title">{{ deviceData.videoName }}</div>
<div class="close" @click="close">
<img src="@/assets/mapImages/closeBtn.png" alt="" />
</div>
<div class="box videoBox">
<div id="video"></div>
</div>
<span slot="footer" class="dialog-footer">
<!-- <el-button type="primary" @click="dialogVisible = false"
>确 定
</el-button>
<el-button @click="dialogVisible = false">取 消</el-button> -->
</span>
</div>
</template>
<script>
import WasmPlayer from "@easydarwin/easywasmplayer"; //导入WasmPlayer.js
export default {
data() {
return {
// dialogVisible: true,
// AfterClose: true,
};
},
watch: {},
mounted() {
setTimeout(() => {
this.player = new WasmPlayer(null, "video", this.callBack, {
Height: true,
});
this.player.play(this.deviceData.usr, 1);
}, 1);
},
methods: {
show() {
this.dialogVisible = true;
},
handleClose() {
console.log("关闭");
this.player.destroy(this.deviceData.usr);
// document.body.removeChild(this.$refs.videoBox.$el);
},
callBack() {},
close() {
this.handleClose();
this.mapClass.infowindowClose();
},
},
};
</script>
<style lang="scss">
.box-wrapper {
background-color: rgba(9, 18, 32, 0.6);
position: relative;
.title {
padding-top: 10px;
padding-left: 10px;
font-size: 14px;
line-height: 14px;
color: #ffffff;
}
.close {
position: absolute;
right: 10px;
top: 5px;
cursor: pointer;
}
.box {
padding: 5px 12px 10px 10px;
width: 350px;
height: 200px;
#video {
height: 100%;
}
}
}
</style>
This diff is collapsed.
<template>
<div id="">
qqqq
</div>
</template>
<script>
// import moment from "moment";
//line移入时的的infowindow
// export default {
// props: {
// obj: { typs: Object },
// title: "",
// data: {},
// map: null,
// },
// methods: {
// moment,
// deviceMore() {
// this.data.class.view.$router.push({
// // path: "/dataMonitoring/realtimedetail",
// path: "/device/deviceInfoDetail",
// query: {
// deviceId: this.data.deviceId,
// // deviceType: this.data.deviceType,
// },
// });
// },
// close() {
// this.map.clearInfoWindow();
// this.data.class.view.domAllShow()
// },
// },
// };
</script>
</style>
This diff is collapsed.
/*
* @Author: your name
* @Date: 2022-01-07 11:29:13
* @LastEditTime: 2022-02-17 11:35:38
* @LastEditors: Please set LastEditors
* @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
* @FilePath: /gassafety-progress/gassafetyprogress-web/src/main.js
*/
import Vue from 'vue' import Vue from 'vue'
import Cookies from 'js-cookie' import Cookies from 'js-cookie'
...@@ -7,11 +15,14 @@ import './assets/styles/element-variables.scss' ...@@ -7,11 +15,14 @@ import './assets/styles/element-variables.scss'
import '@/assets/styles/index.scss' // global css import '@/assets/styles/index.scss' // global css
import '@/assets/styles/zehong.scss' // zehong css import '@/assets/styles/zehong.scss' // zehong css
import './assets/css/font.css'
import './assets/styles/all.scss'
import App from './App' import App from './App'
import store from './store' import store from './store'
import router from './router' import router from './router'
import permission from './directive/permission' import permission from './directive/permission'
import * as echarts from 'echarts'
import './assets/icons' // icon import './assets/icons' // icon
import './permission' // permission control import './permission' // permission control
import { getDicts } from "@/api/system/dict/data"; import { getDicts } from "@/api/system/dict/data";
...@@ -21,7 +32,10 @@ import Pagination from "@/components/Pagination"; ...@@ -21,7 +32,10 @@ import Pagination from "@/components/Pagination";
// 自定义表格工具扩展 // 自定义表格工具扩展
import RightToolbar from "@/components/RightToolbar" import RightToolbar from "@/components/RightToolbar"
// 全局方法挂载 // 全局方法挂载
Vue.prototype.$echarts = echarts
Vue.prototype.$Vue = Vue;
Vue.prototype.getDicts = getDicts Vue.prototype.getDicts = getDicts
Vue.prototype.getConfigKey = getConfigKey Vue.prototype.getConfigKey = getConfigKey
Vue.prototype.parseTime = parseTime Vue.prototype.parseTime = parseTime
......
...@@ -19,7 +19,7 @@ module.exports = { ...@@ -19,7 +19,7 @@ module.exports = {
/** /**
* 是否显示 tagsView * 是否显示 tagsView
*/ */
tagsView: true, tagsView: false,
/** /**
* 是否固定头部 * 是否固定头部
......
This diff is collapsed.
/* /*
* @Author: your name * @Author: your name
* @Date: 2022-01-11 13:45:12 * @Date: 2022-01-11 13:45:12
* @LastEditTime: 2022-02-12 15:13:52 * @LastEditTime: 2022-02-17 10:10:11
* @LastEditors: Please set LastEditors * @LastEditors: Please set LastEditors
* @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE * @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
* @FilePath: /test/hello-world/src/untils/mapClass.js * @FilePath: /test/hello-world/src/utils/mapClass.js
*/ */
// 编辑类 // 编辑类
......
This diff is collapsed.
<template> <template>
<div class="app-container home"> <div class="app-container homeA">
<el-row :gutter="20"> <el-row :gutter="20">
<el-col :sm="24" :lg="24"> <el-col :sm="24" :lg="24">
<blockquote class="text-warning" style="font-size: 14px"> <blockquote class="text-warning" style="font-size: 14px">
...@@ -581,7 +581,7 @@ export default { ...@@ -581,7 +581,7 @@ export default {
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
.home { .homeA {
blockquote { blockquote {
padding: 10px 20px; padding: 10px 20px;
margin: 0 0 20px; margin: 0 0 20px;
......
<template> <template>
<div class="app-container"> <div class="app-container">
<el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px"> <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="设备名称" prop="deviceName">
<el-input
v-model="queryParams.deviceName"
placeholder="请输入设备名称"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="设备编号" prop="deviceNum"> <el-form-item label="设备编号" prop="deviceNum">
<el-input <el-input
v-model="queryParams.deviceNum" v-model="queryParams.deviceNum"
...@@ -10,6 +19,23 @@ ...@@ -10,6 +19,23 @@
@keyup.enter.native="handleQuery" @keyup.enter.native="handleQuery"
/> />
</el-form-item> </el-form-item>
<el-form-item label="所属企业" prop="beyondEnterpriseId">
<!--<el-input
v-model="queryParams.beyondEnterpriseName"
placeholder="请输入所属企业名称"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>-->
<el-select v-model="queryParams.beyondEnterpriseId" placeholder="请选择所属企业">
<el-option
v-for="item in enterprises"
:key="item.enterpriseId"
:label="item.enterpriseName"
:value="item.enterpriseId"
></el-option>
</el-select>
</el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button> <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-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
...@@ -65,20 +91,22 @@ ...@@ -65,20 +91,22 @@
<el-table v-loading="loading" :data="dataList" @selection-change="handleSelectionChange"> <el-table v-loading="loading" :data="dataList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" /> <el-table-column type="selection" width="55" align="center" />
<el-table-column label="设备名称" align="center" prop="deviceName" width="155"/>
<el-table-column label="设备编号" align="center" prop="deviceNum" width="155"/> <el-table-column label="设备编号" align="center" prop="deviceNum" width="155"/>
<el-table-column label="标况累计量" align="center" prop="standardConditionAccumulation" /> <el-table-column label="所属企业" align="center" prop="beyondEnterpriseName" />
<el-table-column label="工况累计量" align="center" prop="workingConditionAccumulation" /> <el-table-column label="标况累计量(m³)" align="center" prop="standardConditionAccumulation"/>
<el-table-column label="逆向标况累计量" align="center" prop="backingStandardConditionAccumulation" /> <el-table-column label="工况累计量(m³)" align="center" prop="workingConditionAccumulation" />
<el-table-column label="剩余量" align="center" prop="residualQuantity" /> <el-table-column label="逆向标况累计量(m³)" align="center" prop="backingStandardConditionAccumulation" />
<el-table-column label="标况流量" align="center" prop="standardConditionFlow" /> <el-table-column label="剩余量(m³)" align="center" prop="residualQuantity" />
<el-table-column label="工况流量" align="center" prop="workingConditionFlow" /> <el-table-column label="标况流量(m³/h)" align="center" prop="standardConditionFlow" />
<el-table-column label="温度" align="center" prop="temperature" /> <el-table-column label="工况流量(m³/h)" align="center" prop="workingConditionFlow" />
<el-table-column label="压力" align="center" prop="pressure" /> <el-table-column label="温度(℃)" align="center" prop="temperature" />
<el-table-column label="上报时间" align="center" prop="reportTime" width="180"> <el-table-column label="压力(KPa)" align="center" prop="pressure" />
<template slot-scope="scope"> <el-table-column label="上报时间" align="center" prop="createTime" width="180" />
<!-- <template slot-scope="scope">
<span>{{ parseTime(scope.row.reportTime, '{y}-{m}-{d}') }}</span> <span>{{ parseTime(scope.row.reportTime, '{y}-{m}-{d}') }}</span>
</template> </template>
</el-table-column> </el-table-column>-->
<!--<el-table-column label="创建时间" align="center" prop="createTime" />--> <!--<el-table-column label="创建时间" align="center" prop="createTime" />-->
<!--<el-table-column label="操作" align="center" class-name="small-padding fixed-width"> <!--<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope"> <template slot-scope="scope">
...@@ -173,7 +201,7 @@ ...@@ -173,7 +201,7 @@
<script> <script>
import { listData, getData, delData, addData, updateData, exportData } from "@/api/operationMonitor/data"; import { listData, getData, delData, addData, updateData, exportData } from "@/api/operationMonitor/data";
import { enterpriseLists } from "@/api/regulation/info";
export default { export default {
name: "Data", name: "Data",
components: { components: {
...@@ -226,11 +254,13 @@ export default { ...@@ -226,11 +254,13 @@ export default {
deviceNum: [ deviceNum: [
{ required: true, message: "设备id不能为空", trigger: "blur" } { required: true, message: "设备id不能为空", trigger: "blur" }
], ],
} },
enterprises:[]
}; };
}, },
created() { created() {
this.getList(); this.getList();
this.getEnterpriseLists();
}, },
methods: { methods: {
/** 查询设备监控列表 */ /** 查询设备监控列表 */
...@@ -352,6 +382,12 @@ export default { ...@@ -352,6 +382,12 @@ export default {
this.download(response.msg); this.download(response.msg);
this.exportLoading = false; this.exportLoading = false;
}).catch(() => {}); }).catch(() => {});
},
//所属单位
getEnterpriseLists(){
enterpriseLists().then(response => {
this.enterprises = response.rows;
});
} }
} }
}; };
......
<template> <template>
<div class="app-container"> <div class="app-container" style="">
<el-row> <div style="height: 100%;">
<el-col :span="5"> <el-col style="border:1px solid #cccccc;height: 100%;" :span="4">
<el-tree :data="videoData" :props="defaultProps" @node-click="handleNodeClick"></el-tree> <el-tree :data="videoData" :props="defaultProps" @node-click="handleNodeClick"></el-tree>
</el-col> </el-col>
<el-col :span="19"> <el-col :span="20" style="height: 100%;">
<div id="player" style="width: calc(67vw - 8px);height: calc((67vw - 8px) * 5 / 8)"></div> <div id="player"></div>
</el-col> </el-col>
</el-row> </div>
</div> </div>
</template> </template>
<!--<script src="@api/video/h5player.js"></script>-->
<script> <script>
import { getVideoTree } from "@/api/video/manager"; import { getVideoTree } from "@/api/video/manager";
import { getPreviewURLs } from "@/api/video/artemis" import { getPreviewURLs } from "@/api/video/artemis"
...@@ -116,3 +112,15 @@ export default { ...@@ -116,3 +112,15 @@ export default {
} }
}; };
</script> </script>
<style scoped lang="scss">
.app-container{
position:absolute;
top:0;
bottom:0;
width: 100%;
}
#player{
width: 100% ;
height: 100% ;
}
</style>
...@@ -147,7 +147,7 @@ ...@@ -147,7 +147,7 @@
@click="handleDelete(scope.row)" @click="handleDelete(scope.row)"
v-hasPermi="['system:order:remove']" v-hasPermi="['system:order:remove']"
>删除</el-button> >删除</el-button>
<el-button v-if="'inpector'!= roleType && (scope.row.workAssignManId == '' || scope.row.workAssignManId == null) && scope.row.workStatus == '0'" <el-button v-if="(('enterprise'== roleType && (scope.row.workAssignManId == '' || scope.row.workAssignManId == null)) || ('zhengfu'== roleType && (scope.row.workAssignEnterproseId == '' || scope.row.workAssignEnterproseId == null))) && scope.row.workStatus == '0'"
size="mini" size="mini"
type="text" type="text"
icon="el-icon-edit" icon="el-icon-edit"
...@@ -184,7 +184,7 @@ ...@@ -184,7 +184,7 @@
/> />
<!-- 添加或修改燃气任务对话框 --> <!-- 添加或修改燃气任务对话框 -->
<el-dialog :title="title" :visible.sync="open" width="900px" @closed="dialogClose" @open="dialogOpen"> <el-dialog :title="title" :visible.sync="open" width="900px" @closed="dialogClose" @open="dialogOpen" :close-on-click-modal="false">
<el-form ref="form" :model="form" :rules="rules" label-width="80px"> <el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
...@@ -257,7 +257,7 @@ ...@@ -257,7 +257,7 @@
<el-form-item label="巡检路线" prop="inspectionRoute" v-show="form.workType=='2'"> <el-form-item label="巡检路线" prop="inspectionRoute" v-show="form.workType=='2'">
<el-input v-model="form.inspectionRoute" type="textarea" placeholder="请输入巡检路线" :disabled="isDetail"/> <el-input v-model="form.inspectionRoute" type="textarea" placeholder="请输入巡检路线" :disabled="isDetail"/>
</el-form-item> </el-form-item>
<el-form-item label="问题描述" prop="problemDescription"> <el-form-item label="问题描述" prop="problemDescription" v-show="form.workType=='3'">
<el-input v-model="form.problemDescription" type="textarea" placeholder="请输入问题描述" :disabled="isDetail"/> <el-input v-model="form.problemDescription" type="textarea" placeholder="请输入问题描述" :disabled="isDetail"/>
</el-form-item> </el-form-item>
<el-form-item label="整改方案" prop="rectificationPlan" v-show="form.workType=='3' && isDetail && (form.workStatus =='2' || form.workStatus =='3')"> <el-form-item label="整改方案" prop="rectificationPlan" v-show="form.workType=='3' && isDetail && (form.workStatus =='2' || form.workStatus =='3')">
...@@ -626,9 +626,10 @@ export default { ...@@ -626,9 +626,10 @@ export default {
this.form = response.data; this.form = response.data;
this.open = true; this.open = true;
this.title = "修改燃气任务"; this.title = "修改燃气任务";
this.getEnterpriseLists();
this.getInspectionUserList(response.data.workAssignEnterproseId);
}); });
this.getEnterpriseLists();
this.getInspectionUserList(row.workAssignEnterproseId);
}, },
/** 提交按钮 */ /** 提交按钮 */
submitForm() { submitForm() {
......
...@@ -74,7 +74,6 @@ ...@@ -74,7 +74,6 @@
<el-table v-loading="loading" :data="userList" @selection-change="handleSelectionChange"> <el-table v-loading="loading" :data="userList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" /> <el-table-column type="selection" width="55" align="center" />
<el-table-column label="用户id" align="center" prop="userId" />
<el-table-column label="用户账号" align="center" prop="username" /> <el-table-column label="用户账号" align="center" prop="username" />
<el-table-column label="用户名称" align="center" prop="nickName" /> <el-table-column label="用户名称" align="center" prop="nickName" />
<el-table-column label="用户类型" align="center" prop="userType" /> <el-table-column label="用户类型" align="center" prop="userType" />
...@@ -114,14 +113,25 @@ ...@@ -114,14 +113,25 @@
/> />
<!-- 添加或修改燃气用户对话框 --> <!-- 添加或修改燃气用户对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body> <el-dialog :title="title" :visible.sync="open"width="780px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="100px"> <el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-row>
<el-col :span="11">
<el-form-item label="用户账号" prop="username"> <el-form-item label="用户账号" prop="username">
<el-input v-model="form.username" placeholder="请输入用户账号" /> <el-input v-model="form.username" placeholder="请输入用户账号" />
</el-form-item> </el-form-item>
</el-col>
<el-col :span="11">
<el-form-item label="用户名称" prop="nickName"> <el-form-item label="用户名称" prop="nickName">
<el-input v-model="form.nickName" placeholder="请输入用户名称" /> <el-input v-model="form.nickName" placeholder="请输入用户名称" />
</el-form-item> </el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="11">
<el-form-item label="用户类型" prop="userType"> <el-form-item label="用户类型" prop="userType">
<el-select v-model="form.userType" placeholder="请选择用户类型"> <el-select v-model="form.userType" placeholder="请选择用户类型">
<el-option label="居民用户" value="1" /> <el-option label="居民用户" value="1" />
...@@ -129,27 +139,59 @@ ...@@ -129,27 +139,59 @@
<el-option label="工业用户" value="3" /> <el-option label="工业用户" value="3" />
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col>
<el-col :span="11">
<el-form-item label="地址" prop="address"> <el-form-item label="地址" prop="address">
<el-input v-model="form.address" placeholder="请输入地址" /> <el-input v-model="form.address" placeholder="请输入地址" />
</el-form-item> </el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="11">
<el-form-item label="经度" prop="longitude"> <el-form-item label="经度" prop="longitude">
<el-input onkeyup="this.value=this.value.replace(/\D/g,'')" v-model="form.longitude" placeholder="请输入经度" /> <el-input v-model="form.longitude" placeholder="请输入经度" />
</el-form-item> </el-form-item>
</el-col>
<el-col :span="11">
<el-form-item label="纬度" prop="latitude"> <el-form-item label="纬度" prop="latitude">
<el-input onkeyup="this.value=this.value.replace(/\D/g,'')" v-model="form.latitude" placeholder="请输入纬度" /> <el-input v-model="form.latitude" placeholder="请输入纬度" />
</el-form-item> </el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="11">
<el-form-item label="联系人" prop="linkman"> <el-form-item label="联系人" prop="linkman">
<el-input v-model="form.linkman" placeholder="请输入联系人" /> <el-input v-model="form.linkman" placeholder="请输入联系人" />
</el-form-item> </el-form-item>
</el-col>
<el-col :span="11">
<el-form-item label="电话" prop="phone"> <el-form-item label="电话" prop="phone">
<el-input onkeyup="this.value=this.value.replace(/\D/g,'')" v-model="form.phone" placeholder="请输入电话" /> <el-input onkeyup="this.value=this.value.replace(/\D/g,'')" v-model="form.phone" placeholder="请输入电话" />
</el-form-item> </el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="22">
<el-form-item label="邮箱" prop="email"> <el-form-item label="邮箱" prop="email">
<el-input v-model="form.email" placeholder="请输入邮箱" /> <el-input v-model="form.email" type="textarea" placeholder="请输入邮箱" />
</el-form-item> </el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="22">
<el-form-item label="备注" prop="remarks"> <el-form-item label="备注" prop="remarks">
<el-input v-model="form.remarks" type="textarea" placeholder="请输入内容" /> <el-input v-model="form.remarks" type="textarea" placeholder="请输入内容" />
</el-form-item> </el-form-item>
</el-col>
</el-row>
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm">确 定</el-button> <el-button type="primary" @click="submitForm">确 定</el-button>
...@@ -199,6 +241,18 @@ export default { ...@@ -199,6 +241,18 @@ export default {
form: {}, form: {},
// 表单校验 // 表单校验
rules: { rules: {
username: [
{ required: true, message: "请输入用户账号", trigger: "blur" },
],
nickName: [
{ required: true, message: "请输入用户名称", trigger: "blur" },
],
userType: [
{ required: true, message: "请选择用户类型", trigger: "blur" },
],
address: [
{ required: true, message: "请输入地址", trigger: "blur" },
],
} }
}; };
}, },
......
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
@keyup.enter.native="handleQuery" @keyup.enter.native="handleQuery"
/> />
</el-form-item> </el-form-item>
<el-form-item label="权属单位名称" prop="beyondEnterpriseName"> <el-form-item label="权属单位名称" label-width="100px" prop="beyondEnterpriseName">
<el-input <el-input
v-model="queryParams.beyondEnterpriseName" v-model="queryParams.beyondEnterpriseName"
placeholder="请输入权属单位名称" placeholder="请输入权属单位名称"
...@@ -19,7 +19,7 @@ ...@@ -19,7 +19,7 @@
@keyup.enter.native="handleQuery" @keyup.enter.native="handleQuery"
/> />
</el-form-item> </el-form-item>
<el-form-item label="备注" prop="remarks"> <el-form-item label="备注" label-width="50px" prop="remarks">
<el-input <el-input
v-model="queryParams.remarks" v-model="queryParams.remarks"
placeholder="请输入备注" placeholder="请输入备注"
...@@ -83,7 +83,6 @@ ...@@ -83,7 +83,6 @@
<el-table v-loading="loading" :data="stationList" @selection-change="handleSelectionChange"> <el-table v-loading="loading" :data="stationList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" /> <el-table-column type="selection" width="55" align="center" />
<el-table-column label="场站id" align="center" prop="siteStationId" />
<el-table-column label="场站类型" align="center" prop="siteStationType" /> <el-table-column label="场站类型" align="center" prop="siteStationType" />
<el-table-column label="场站名称" align="center" prop="siteStationName" /> <el-table-column label="场站名称" align="center" prop="siteStationName" />
<el-table-column label="建设年代" align="center" prop="buildDate" width="180"> <el-table-column label="建设年代" align="center" prop="buildDate" width="180">
...@@ -126,9 +125,11 @@ ...@@ -126,9 +125,11 @@
/> />
<!-- 添加或修改场站信息对话框 --> <!-- 添加或修改场站信息对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body> <el-dialog :title="title" :visible.sync="open" width="780px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px"> <el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-row>
<el-col :span="11">
<el-form-item label="场站类型" prop="siteStationType"> <el-form-item label="场站类型" prop="siteStationType">
<el-select v-model="form.siteStationType" placeholder="请选择场站类型"> <el-select v-model="form.siteStationType" placeholder="请选择场站类型">
<el-option label="加气站" value="1" /> <el-option label="加气站" value="1" />
...@@ -138,10 +139,17 @@ ...@@ -138,10 +139,17 @@
<el-option label="气化站" value="5" /> <el-option label="气化站" value="5" />
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col>
<el-col :span="11">
<el-form-item label="场站名称" prop="siteStationName"> <el-form-item label="场站名称" prop="siteStationName">
<el-input v-model="form.siteStationName" placeholder="请输入场站名称" /> <el-input v-model="form.siteStationName" placeholder="请输入场站名称" />
</el-form-item> </el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="11">
<el-form-item label="建设年代" prop="buildDate"> <el-form-item label="建设年代" prop="buildDate">
<el-date-picker clearable size="small" <el-date-picker clearable size="small"
v-model="form.buildDate" v-model="form.buildDate"
...@@ -150,9 +158,14 @@ ...@@ -150,9 +158,14 @@
placeholder="选择建设年代"> placeholder="选择建设年代">
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
</el-col>
<el-col :span="11">
<el-form-item label="建设单位" prop="buildUnit"> <el-form-item label="建设单位" prop="buildUnit">
<el-input v-model="form.buildUnit" placeholder="请输入建设单位" /> <el-input v-model="form.buildUnit" placeholder="请输入建设单位" />
</el-form-item> </el-form-item>
</el-col>
</el-row>
<!-- <el-form-item label="权属单位" prop="beyondEnterpriseId">--> <!-- <el-form-item label="权属单位" prop="beyondEnterpriseId">-->
<!-- <el-input v-model="form.beyondEnterpriseId" placeholder="请输入权属单位" />--> <!-- <el-input v-model="form.beyondEnterpriseId" placeholder="请输入权属单位" />-->
<!-- </el-form-item>--> <!-- </el-form-item>-->
...@@ -160,22 +173,38 @@ ...@@ -160,22 +173,38 @@
<!-- <el-input v-model="form.beyondEnterpriseName" placeholder="请输入权属单位名称" />--> <!-- <el-input v-model="form.beyondEnterpriseName" placeholder="请输入权属单位名称" />-->
<!-- </el-form-item>--> <!-- </el-form-item>-->
<el-form-item label="权属单位" prop="beyondEnterpriseName"> <el-row>
<el-select v-model="form.beyondEnterpriseId" placeholder="请在下拉框中选择权属单位" maxlength="255" :disabled="false" clearable> <el-col :span="11">
<el-option v-for="item in test" :key="item.enterpriseId" :label="item.enterpriseName" :value="item.enterpriseId">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="经度" prop="longitude"> <el-form-item label="经度" prop="longitude">
<el-input v-model="form.longitude" placeholder="请输入经度" /> <el-input v-model="form.longitude" placeholder="请输入经度" />
</el-form-item> </el-form-item>
</el-col>
<el-col :span="11">
<el-form-item label="纬度" prop="latitude"> <el-form-item label="纬度" prop="latitude">
<el-input onkeyup="this.value=this.value.replace(/\D/g,'')" v-model="form.latitude" placeholder="请输入纬度" /> <el-input v-model="form.latitude" placeholder="请输入纬度" />
</el-form-item> </el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="11">
<el-form-item label="权属单位" prop="beyondEnterpriseName">
<el-select v-model="form.beyondEnterpriseId" placeholder="请在下拉框中选择权属单位" maxlength="255" :disabled="false" clearable>
<el-option v-for="item in test" :key="item.enterpriseId" :label="item.enterpriseName" :value="item.enterpriseId">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="22">
<el-form-item label="备注" prop="remarks"> <el-form-item label="备注" prop="remarks">
<el-input onkeyup="this.value=this.value.replace(/\D/g,'')" v-model="form.remarks" placeholder="请输入备注" /> <el-input v-model="form.remarks" type="textarea" placeholder="请输入备注" />
</el-form-item> </el-form-item>
</el-col>
</el-row>
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button> <el-button type="primary" @click="submitForm"> </el-button>
...@@ -230,6 +259,18 @@ export default { ...@@ -230,6 +259,18 @@ export default {
test: {}, test: {},
// 表单校验 // 表单校验
rules: { rules: {
siteStationType: [
{ required: true, message: "请输入场站类型", trigger: "blur" },
],
siteStationName: [
{ required: true, message: "请输入场站名称", trigger: "blur" },
],
buildDate: [
{ required: true, message: "请选择建设年代", trigger: "blur" },
],
buildUnit: [
{ required: true, message: "请输入建设单位", trigger: "blur" },
],
} }
}; };
}, },
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment