更新版本20201016

master
zengwh 5 years ago
parent 299fe37503
commit b30a8eb567

Binary file not shown.

@ -29,6 +29,10 @@ public class Archive_Detail_Vo extends Archive_Detail{
private String sort;
private String order;
private String ids;
private String pageCounts;
}

@ -1,5 +1,7 @@
package com.emr.entity;
import java.math.BigDecimal;
public class Archive_Master {
private String id;
@ -47,6 +49,8 @@ public class Archive_Master {
private String changeReason;
private BigDecimal d1;
public String getChangeReason() {
return changeReason;
}
@ -231,6 +235,14 @@ public class Archive_Master {
this.deptCodeLend = deptCodeLend == null ? null : deptCodeLend.trim();
}
public BigDecimal getD1() {
return d1;
}
public void setD1(BigDecimal d1) {
this.d1 = d1;
}
@Override
public String toString() {
return "Archive_Master{" +
@ -257,6 +269,7 @@ public class Archive_Master {
", returntoRole='" + returntoRole + '\'' +
", returnOperUsername='" + returnOperUsername + '\'' +
", changeReason='" + changeReason + '\'' +
", d1=" + d1 +
'}';
}
}

@ -27,6 +27,8 @@ import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import javax.servlet.http.HttpServletRequest;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
@ -236,7 +238,12 @@ public class Archive_MasterServiceImpl implements Archive_MasterService {
try{
//执行查询
List<String> selectList = new ArrayList<>();
selectList = OracleConnect.selectList(sql);
try{
//selectList = OracleConnect.selectList(sql);
}catch (Exception e){
e.printStackTrace();
ExceptionPrintUtil.printException(e);
}
for (Archive_Master_Vo masterVo : list) {
masterVo.setRemark("未签收");
//赋值
@ -345,6 +352,14 @@ public class Archive_MasterServiceImpl implements Archive_MasterService {
}
for (Archive_Master_Vo vo:list) {
//转换总费用d1
BigDecimal d1 = vo.getD1();
if(d1 != null) {
java.text.DecimalFormat myformat=new java.text.DecimalFormat("0.00");
String d1Str = myformat.format(d1);
}else{
vo.setD1(new BigDecimal(0));
}
//科室名称编码转名称
DeptNameCode2Name(dictionaries, vo);
//赋值出院天数

@ -1,184 +1,222 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.emr.dao.Archive_DetailMapper">
<resultMap id="BaseResultMap" type="com.emr.entity.Archive_Detail">
<id column="id" jdbcType="NVARCHAR" property="id" />
<result column="PDF_PATH" jdbcType="NVARCHAR" property="pdfPath" />
<result column="MasterID" jdbcType="NVARCHAR" property="masterid" />
<result column="UpLoadDateTime" jdbcType="NVARCHAR" property="uploaddatetime" />
<result column="AssortID" jdbcType="NVARCHAR" property="assortid" />
<result column="Source" jdbcType="NVARCHAR" property="source" />
<result column="SubAssort" jdbcType="NVARCHAR" property="subassort" />
<result column="Title" jdbcType="NVARCHAR" property="title" />
<result column="flag" jdbcType="NVARCHAR" property="flag" />
<result column="Sys" jdbcType="NVARCHAR" property="sys" />
</resultMap>
<resultMap id="BaseResultMap2" type="com.emr.entity.Archive_Detail_Vo">
<result column="id" jdbcType="NVARCHAR" property="id"/>
<result column="PDF_PATH" jdbcType="NVARCHAR" property="pdfPath"/>
<result column="MasterID" jdbcType="NVARCHAR" property="masterid"/>
<result column="UpLoadDateTime" jdbcType="NVARCHAR" property="uploaddatetime"/>
<result column="AssortID" jdbcType="NVARCHAR" property="assortid"/>
<result column="Source" jdbcType="NVARCHAR" property="source"/>
<result column="SubAssort" jdbcType="NVARCHAR" property="subassort"/>
<result column="Title" jdbcType="NVARCHAR" property="title"/>
<result column="flag" jdbcType="NVARCHAR" property="flag"/>
<result column="Sys" jdbcType="NVARCHAR" property="sys"/>
<result column="patient_id" property="patientId" jdbcType="VARCHAR"/>
<result column="scan_page" property="scanPage" jdbcType="VARCHAR"/>
<result column="assort_name" property="assortName" jdbcType="VARCHAR"/>
<result column="assort_sort" property="assortSort" jdbcType="SMALLINT"/>
<result column="print_flag" property="printFlag" jdbcType="VARCHAR"/>
<result column="pageNum" property="pageNum" jdbcType="INTEGER"/>
</resultMap>
<sql id="Base_Column_List">
<resultMap id="BaseResultMap" type="com.emr.entity.Archive_Detail">
<id column="id" jdbcType="NVARCHAR" property="id"/>
<result column="PDF_PATH" jdbcType="NVARCHAR" property="pdfPath"/>
<result column="MasterID" jdbcType="NVARCHAR" property="masterid"/>
<result column="UpLoadDateTime" jdbcType="NVARCHAR" property="uploaddatetime"/>
<result column="AssortID" jdbcType="NVARCHAR" property="assortid"/>
<result column="Source" jdbcType="NVARCHAR" property="source"/>
<result column="SubAssort" jdbcType="NVARCHAR" property="subassort"/>
<result column="Title" jdbcType="NVARCHAR" property="title"/>
<result column="flag" jdbcType="NVARCHAR" property="flag"/>
<result column="Sys" jdbcType="NVARCHAR" property="sys"/>
</resultMap>
<resultMap id="BaseResultMap2" type="com.emr.entity.Archive_Detail_Vo">
<result column="id" jdbcType="NVARCHAR" property="id"/>
<result column="PDF_PATH" jdbcType="NVARCHAR" property="pdfPath"/>
<result column="MasterID" jdbcType="NVARCHAR" property="masterid"/>
<result column="UpLoadDateTime" jdbcType="NVARCHAR" property="uploaddatetime"/>
<result column="AssortID" jdbcType="NVARCHAR" property="assortid"/>
<result column="Source" jdbcType="NVARCHAR" property="source"/>
<result column="SubAssort" jdbcType="NVARCHAR" property="subassort"/>
<result column="Title" jdbcType="NVARCHAR" property="title"/>
<result column="flag" jdbcType="NVARCHAR" property="flag"/>
<result column="Sys" jdbcType="NVARCHAR" property="sys"/>
<result column="patient_id" property="patientId" jdbcType="VARCHAR"/>
<result column="scan_page" property="scanPage" jdbcType="VARCHAR"/>
<result column="assort_name" property="assortName" jdbcType="VARCHAR"/>
<result column="assort_sort" property="assortSort" jdbcType="SMALLINT"/>
<result column="print_flag" property="printFlag" jdbcType="VARCHAR"/>
<result column="pageNum" property="pageNum" jdbcType="INTEGER"/>
</resultMap>
<sql id="Base_Column_List">
id, PDF_PATH, MasterID, UpLoadDateTime, AssortID, Source, SubAssort, Title, flag,
Sys
</sql>
<!--查询分段树-->
<select id="selectByClo" resultMap="BaseResultMap2" parameterType="com.emr.entity.Archive_Detail_Vo">
SELECT z.assort_id,z.assort_name,z.assort_sort,z.print_flag,s.pageNum from(select AssortID,count(*) pageNum from
archive_detail
-- MasterID='a72163dd10e6443b90fb82384a1debf4'
where 1=1
<if test="patientId != null and patientId != ''">
and MasterID=#{patientId,jdbcType=VARCHAR}
</if>
<if test="assortid != null and assortid != ''">
and AssortID in (${assortid})
</if>
GROUP BY AssortID) s
RIGHT JOIN zd_assort z
on s.AssortID=z.assort_id
where s.pageNum>0 and print_flag = 0
ORDER BY z.assort_sort
</select>
<!--分段详情文件列表-->
<select id="detailByClo" resultMap="BaseResultMap2" parameterType="com.emr.entity.Archive_Detail_Vo">
select
t.MasterID,t.id,t.PDF_PATH,t.Source,t.UpLoadDateTime,t.SubAssort,t.Title,t.flag,z.assort_id,z.assort_name,z.assort_sort,z.print_flag
from zd_assort z
left join archive_detail t
on z.assort_id=t.AssortID
where 1=1
<if test="patientId != null">
and t.MasterID=#{patientId,jdbcType=VARCHAR}
</if>
<if test="assortId != null and assortId != ''">
and t.AssortID IN (${assortId})
</if>
<if test="assortName != null and assortName != ''">
and t.AssortID in (${assortName})
</if>
<if test="title != null and title != ''">
and t.title like '%${title}%'
</if>
<if test="source != null and source != ''">
and t.Source = #{source,jdbcType=VARCHAR}
</if>
ORDER BY
<choose>
<when test="sort != null and sort != ''">
t.UpLoadDateTime ${order}
</when>
<otherwise>
z.assort_sort,t.UpLoadDateTime
</otherwise>
</choose>
</select>
<select id="selectByid" parameterType="java.lang.String" resultMap="BaseResultMap">
select
<include refid="Base_Column_List" />
from archive_detail
where id = #{id,jdbcType=NVARCHAR}
</select>
<select id="selectByIdStr" parameterType="com.emr.entity.Archive_Detail" resultMap="BaseResultMap">
select
<!--查询分段树-->
<select id="selectByClo" resultMap="BaseResultMap2" parameterType="com.emr.entity.Archive_Detail_Vo">
SELECT z.assort_id,z.assort_name,z.assort_sort,z.print_flag,s.pageNum,(
SELECT
STUFF (
(
SELECT
',' + CONVERT ( VARCHAR ( 500 ), id )
FROM
archive_detail
where
AssortID = z.assort_id
<if test="patientId != null and patientId != ''">
and MasterID=#{patientId,jdbcType=VARCHAR}
</if>
FOR XML path ( '' )
),
1,
1,
''
)
) ids,(
SELECT
STUFF (
(
SELECT
',' + CONVERT ( VARCHAR ( 255 ), isnull(PageCount,0) )
FROM
archive_detail
where
AssortID = z.assort_id
<if test="patientId != null and patientId != ''">
and MasterID=#{patientId,jdbcType=VARCHAR}
</if>
FOR XML path ( '' )
),
1,
1,
''
)
) pageCounts from(select AssortID,count(*) pageNum from
archive_detail
-- MasterID='a72163dd10e6443b90fb82384a1debf4'
where 1=1
<if test="patientId != null and patientId != ''">
and MasterID=#{patientId,jdbcType=VARCHAR}
</if>
<if test="assortid != null and assortid != ''">
and AssortID in (${assortid})
</if>
GROUP BY AssortID) s
RIGHT JOIN zd_assort z
on s.AssortID=z.assort_id
where s.pageNum>0 and print_flag = 0
ORDER BY z.assort_sort
</select>
<!--分段详情文件列表-->
<select id="detailByClo" resultMap="BaseResultMap2" parameterType="com.emr.entity.Archive_Detail_Vo">
select
t.MasterID,t.id,t.PDF_PATH,t.Source,t.UpLoadDateTime,t.SubAssort,t.Title,t.flag,z.assort_id,z.assort_name,z.assort_sort,z.print_flag,t.PageCount pageCounts,t.id ids
from zd_assort z
left join archive_detail t
on z.assort_id=t.AssortID
where 1=1
<if test="patientId != null">
and t.MasterID=#{patientId,jdbcType=VARCHAR}
</if>
<if test="assortId != null and assortId != ''">
and t.AssortID IN (${assortId})
</if>
<if test="assortName != null and assortName != ''">
and t.AssortID in (${assortName})
</if>
<if test="title != null and title != ''">
and t.title like '%${title}%'
</if>
<if test="source != null and source != ''">
and t.Source = #{source,jdbcType=VARCHAR}
</if>
ORDER BY
<choose>
<when test="sort != null and sort != ''">
t.UpLoadDateTime ${order}
</when>
<otherwise>
z.assort_sort,t.UpLoadDateTime
</otherwise>
</choose>
</select>
<select id="selectByid" parameterType="java.lang.String" resultMap="BaseResultMap">
select
<include refid="Base_Column_List"/>
from archive_detail
where id = #{id,jdbcType=NVARCHAR}
</select>
<select id="selectByIdStr" parameterType="com.emr.entity.Archive_Detail" resultMap="BaseResultMap">
select
PDF_PATH,archive_detail.AssortID,archive_detail.title
from archive_detail
left join zd_assort
on zd_assort.assort_id = archive_detail.AssortID
where 1=1 and flag=0
<if test="title != null and title!=''">
and id in (${title})
</if>
order by zd_assort.assort_sort,archive_detail.UpLoadDateTime
</select>
<select id="selectByColm" parameterType="com.emr.entity.Archive_Detail" resultMap="BaseResultMap">
select
<include refid="Base_Column_List"/>
from archive_detail
where 1=1
<if test="pdfPath != null">
and PDF_PATH = #{pdfPath,jdbcType=NVARCHAR}
</if>
<if test="masterid != null">
and MasterID = #{masterid,jdbcType=NVARCHAR}
</if>
<if test="uploaddatetime != null">
and UpLoadDateTime = #{uploaddatetime,jdbcType=NVARCHAR}
</if>
<if test="assortid != null">
and AssortID = #{assortid,jdbcType=NVARCHAR}
</if>
<if test="source != null">
and Source = #{source,jdbcType=NVARCHAR}
</if>
<if test="subassort != null">
and SubAssort = #{subassort,jdbcType=NVARCHAR}
</if>
<if test="title != null">
and Title = #{title,jdbcType=NVARCHAR}
</if>
<if test="flag != null">
and flag = #{flag,jdbcType=NVARCHAR}
</if>
<if test="sys != null">
and Sys = #{sys,jdbcType=NVARCHAR}
</if>
order by UpLoadDateTime
</select>
<select id="selectByCol" parameterType="com.emr.entity.Archive_Detail" resultMap="BaseResultMap">
select d.PDF_PATH,d.AssortID,d.title
from archive_detail d
LEFT JOIN zd_assort z
on d.AssortID=z.assort_id
where 1=1
<if test="subassort != null">
and d.SubAssort = #{subassort,jdbcType=NVARCHAR}
</if>
<if test="flag != null">
and d.flag = #{flag,jdbcType=NVARCHAR}
</if>
<if test="title != null">
<if test="masterid != null">
and d.MasterID = #{masterid,jdbcType=NVARCHAR}
</if>
and d.AssortID in
<foreach item="item" collection="title.split(',')" open="(" separator="," close=")">
#{item}
</foreach>
</if>
ORDER BY z.assort_sort,d.UpLoadDateTime
</select>
<delete id="deleteByClo" parameterType="com.emr.entity.Archive_Detail">
delete from archive_detail
where 1=1
<if test="masterid != null">
and MasterID = #{masterid,jdbcType=NVARCHAR}
</if>
<if test="assortid != null">
and AssortID = #{assortid,jdbcType=NVARCHAR}
</if>
<if test="pdfPath != null">
and PDF_PATH = #{pdfPath,jdbcType=NVARCHAR}
</if>
</delete>
<delete id="deleteByPrimaryKey" parameterType="java.lang.String">
from archive_detail
left join zd_assort
on zd_assort.assort_id = archive_detail.AssortID
where 1=1 and flag=0
<if test="title != null and title!=''">
and id in (${title})
</if>
order by zd_assort.assort_sort,archive_detail.UpLoadDateTime
</select>
<select id="selectByColm" parameterType="com.emr.entity.Archive_Detail" resultMap="BaseResultMap">
select
<include refid="Base_Column_List"/>
from archive_detail
where 1=1
<if test="pdfPath != null">
and PDF_PATH = #{pdfPath,jdbcType=NVARCHAR}
</if>
<if test="masterid != null">
and MasterID = #{masterid,jdbcType=NVARCHAR}
</if>
<if test="uploaddatetime != null">
and UpLoadDateTime = #{uploaddatetime,jdbcType=NVARCHAR}
</if>
<if test="assortid != null">
and AssortID = #{assortid,jdbcType=NVARCHAR}
</if>
<if test="source != null">
and Source = #{source,jdbcType=NVARCHAR}
</if>
<if test="subassort != null">
and SubAssort = #{subassort,jdbcType=NVARCHAR}
</if>
<if test="title != null">
and Title = #{title,jdbcType=NVARCHAR}
</if>
<if test="flag != null">
and flag = #{flag,jdbcType=NVARCHAR}
</if>
<if test="sys != null">
and Sys = #{sys,jdbcType=NVARCHAR}
</if>
order by UpLoadDateTime
</select>
<select id="selectByCol" parameterType="com.emr.entity.Archive_Detail" resultMap="BaseResultMap">
select d.PDF_PATH,d.AssortID,d.title
from archive_detail d
LEFT JOIN zd_assort z
on d.AssortID=z.assort_id
where 1=1
<if test="subassort != null">
and d.SubAssort = #{subassort,jdbcType=NVARCHAR}
</if>
<if test="flag != null">
and d.flag = #{flag,jdbcType=NVARCHAR}
</if>
<if test="title != null">
<if test="masterid != null">
and d.MasterID = #{masterid,jdbcType=NVARCHAR}
</if>
and d.AssortID in
<foreach item="item" collection="title.split(',')" open="(" separator="," close=")">
#{item}
</foreach>
</if>
ORDER BY z.assort_sort,d.UpLoadDateTime
</select>
<delete id="deleteByClo" parameterType="com.emr.entity.Archive_Detail">
delete from archive_detail
where 1=1
<if test="masterid != null">
and MasterID = #{masterid,jdbcType=NVARCHAR}
</if>
<if test="assortid != null">
and AssortID = #{assortid,jdbcType=NVARCHAR}
</if>
<if test="pdfPath != null">
and PDF_PATH = #{pdfPath,jdbcType=NVARCHAR}
</if>
</delete>
<delete id="deleteByPrimaryKey" parameterType="java.lang.String">
delete from archive_detail
where id = #{id,jdbcType=NVARCHAR}
</delete>
<insert id="insert" parameterType="com.emr.entity.Archive_Detail">
<insert id="insert" parameterType="com.emr.entity.Archive_Detail">
insert into archive_detail (id, PDF_PATH, MasterID,
UpLoadDateTime, AssortID, Source,
SubAssort, Title, flag,
@ -188,107 +226,107 @@
#{subassort,jdbcType=NVARCHAR}, #{title,jdbcType=NVARCHAR}, #{flag,jdbcType=NVARCHAR},
#{sys,jdbcType=NVARCHAR})
</insert>
<insert id="insertSel" parameterType="com.emr.entity.Archive_Detail">
insert into archive_detail
<trim prefix="(" suffix=")" suffixOverrides=",">
<!--<if test="id != null and id!=''">-->
id,
<!--</if>-->
<if test="pdfPath != null">
PDF_PATH,
</if>
<if test="masterid != null">
MasterID,
</if>
<if test="uploaddatetime != null">
UpLoadDateTime,
</if>
<if test="assortid != null">
AssortID,
</if>
<if test="source != null">
Source,
</if>
<if test="subassort != null">
SubAssort,
</if>
<if test="title != null">
Title,
</if>
<if test="flag != null">
flag,
</if>
<if test="sys != null">
Sys,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<!--<if test="id != null and id!=''">-->
(select replace(newid(),'-','')),
<!--</if>-->
<if test="pdfPath != null">
#{pdfPath,jdbcType=NVARCHAR},
</if>
<if test="masterid != null">
#{masterid,jdbcType=NVARCHAR},
</if>
<if test="uploaddatetime != null">
#{uploaddatetime,jdbcType=NVARCHAR},
</if>
<if test="assortid != null">
#{assortid,jdbcType=NVARCHAR},
</if>
<if test="source != null">
#{source,jdbcType=NVARCHAR},
</if>
<if test="subassort != null">
#{subassort,jdbcType=NVARCHAR},
</if>
<if test="title != null">
#{title,jdbcType=NVARCHAR},
</if>
<if test="flag != null">
#{flag,jdbcType=NVARCHAR},
</if>
<if test="sys != null">
#{sys,jdbcType=NVARCHAR},
</if>
</trim>
</insert>
<update id="updateCloById" parameterType="com.emr.entity.Archive_Detail">
update archive_detail
<set>
<if test="pdfPath != null and pdfPath!=''">
PDF_PATH = #{pdfPath,jdbcType=NVARCHAR},
</if>
<if test="masterid != null and masterid!=''">
MasterID = #{masterid,jdbcType=NVARCHAR},
</if>
<if test="uploaddatetime != null and uploaddatetime!=''">
UpLoadDateTime = #{uploaddatetime,jdbcType=NVARCHAR},
</if>
<if test="assortid != null and assortid!=''">
AssortID = #{assortid,jdbcType=NVARCHAR},
</if>
<if test="source != null and source!=''">
Source = #{source,jdbcType=NVARCHAR},
</if>
<if test="subassort != null and subassort!=''">
SubAssort = #{subassort,jdbcType=NVARCHAR},
</if>
<if test="title != null and title!=''">
Title = #{title,jdbcType=NVARCHAR},
</if>
<if test="flag != null and pdfPath!=''">
flag = #{flag,jdbcType=NVARCHAR},
</if>
<if test="sys != null and sys!=''">
Sys = #{sys,jdbcType=NVARCHAR},
</if>
</set>
where id = #{id,jdbcType=NVARCHAR}
</update>
<update id="updateByPrimaryKey" parameterType="com.emr.entity.Archive_Detail">
<insert id="insertSel" parameterType="com.emr.entity.Archive_Detail">
insert into archive_detail
<trim prefix="(" suffix=")" suffixOverrides=",">
<!--<if test="id != null and id!=''">-->
id,
<!--</if>-->
<if test="pdfPath != null">
PDF_PATH,
</if>
<if test="masterid != null">
MasterID,
</if>
<if test="uploaddatetime != null">
UpLoadDateTime,
</if>
<if test="assortid != null">
AssortID,
</if>
<if test="source != null">
Source,
</if>
<if test="subassort != null">
SubAssort,
</if>
<if test="title != null">
Title,
</if>
<if test="flag != null">
flag,
</if>
<if test="sys != null">
Sys,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<!--<if test="id != null and id!=''">-->
(select replace(newid(),'-','')),
<!--</if>-->
<if test="pdfPath != null">
#{pdfPath,jdbcType=NVARCHAR},
</if>
<if test="masterid != null">
#{masterid,jdbcType=NVARCHAR},
</if>
<if test="uploaddatetime != null">
#{uploaddatetime,jdbcType=NVARCHAR},
</if>
<if test="assortid != null">
#{assortid,jdbcType=NVARCHAR},
</if>
<if test="source != null">
#{source,jdbcType=NVARCHAR},
</if>
<if test="subassort != null">
#{subassort,jdbcType=NVARCHAR},
</if>
<if test="title != null">
#{title,jdbcType=NVARCHAR},
</if>
<if test="flag != null">
#{flag,jdbcType=NVARCHAR},
</if>
<if test="sys != null">
#{sys,jdbcType=NVARCHAR},
</if>
</trim>
</insert>
<update id="updateCloById" parameterType="com.emr.entity.Archive_Detail">
update archive_detail
<set>
<if test="pdfPath != null and pdfPath!=''">
PDF_PATH = #{pdfPath,jdbcType=NVARCHAR},
</if>
<if test="masterid != null and masterid!=''">
MasterID = #{masterid,jdbcType=NVARCHAR},
</if>
<if test="uploaddatetime != null and uploaddatetime!=''">
UpLoadDateTime = #{uploaddatetime,jdbcType=NVARCHAR},
</if>
<if test="assortid != null and assortid!=''">
AssortID = #{assortid,jdbcType=NVARCHAR},
</if>
<if test="source != null and source!=''">
Source = #{source,jdbcType=NVARCHAR},
</if>
<if test="subassort != null and subassort!=''">
SubAssort = #{subassort,jdbcType=NVARCHAR},
</if>
<if test="title != null and title!=''">
Title = #{title,jdbcType=NVARCHAR},
</if>
<if test="flag != null and pdfPath!=''">
flag = #{flag,jdbcType=NVARCHAR},
</if>
<if test="sys != null and sys!=''">
Sys = #{sys,jdbcType=NVARCHAR},
</if>
</set>
where id = #{id,jdbcType=NVARCHAR}
</update>
<update id="updateByPrimaryKey" parameterType="com.emr.entity.Archive_Detail">
update archive_detail
set PDF_PATH = #{pdfPath,jdbcType=NVARCHAR},
MasterID = #{masterid,jdbcType=NVARCHAR},
@ -301,17 +339,17 @@
Sys = #{sys,jdbcType=NVARCHAR}
where id = #{id,jdbcType=NVARCHAR}
</update>
<!--以master表的记账号或分类id集合组织分类树-->
<select id="selectTypeTreeByPatientIdAndAssortIds" resultMap="BaseResultMap">
SELECT
<!--以master表的记账号或分类id集合组织分类树-->
<select id="selectTypeTreeByPatientIdAndAssortIds" resultMap="BaseResultMap">
SELECT
archive_detail.id,
zd_assort.assort_name subassort,
archive_detail.AssortID,
archive_detail.Title
FROM
FROM
archive_detail
LEFT JOIN zd_assort ON archive_detail.AssortID = zd_assort.assort_id
WHERE
LEFT JOIN zd_assort ON archive_detail.AssortID = zd_assort.assort_id
WHERE
archive_detail.flag != 1
<if test="patientId != null and patientId != ''">
AND archive_detail.MasterID = #{patientId}
@ -319,18 +357,18 @@
<if test="assortIds != null and assortIds != ''">
AND archive_detail.AssortID in (${assortIds})
</if>
ORDER BY zd_assort.assort_sort
</select>
<!--按ids集合查询pdf路径-->
<select id="selectPdfPathByIds" resultMap="BaseResultMap">
ORDER BY zd_assort.assort_sort
</select>
<!--按ids集合查询pdf路径-->
<select id="selectPdfPathByIds" resultMap="BaseResultMap">
select PDF_PATH,archive_detail.AssortID,archive_detail.title from archive_detail
inner join zd_assort
on archive_detail.AssortID = zd_assort.assort_id
where MasterID = #{masterId} and archive_detail.AssortID in (${detailIds}) and flag != 1
order by zd_assort.assort_sort,archive_detail.UpLoadDateTime
</select>
<!--按查询按masterId分组查询assortId分类且需要完整性校验的集合-->
<select id="selectAssortIdsByMasterIds" resultMap="BaseResultMap" parameterType="java.lang.String">
<!--按查询按masterId分组查询assortId分类且需要完整性校验的集合-->
<select id="selectAssortIdsByMasterIds" resultMap="BaseResultMap" parameterType="java.lang.String">
SELECT
AssortID,
MasterID
@ -346,8 +384,8 @@
AssortID,
MasterID
</select>
<!--按masterId分组查询是否缺少检验检查报告MID集合-->
<select id="selectNotInspectionList" resultMap="BaseResultMap">
<!--按masterId分组查询是否缺少检验检查报告MID集合-->
<select id="selectNotInspectionList" resultMap="BaseResultMap">
SELECT
MID AS MasterID
FROM
@ -359,36 +397,36 @@
GROUP BY
MID
</select>
<!--根据masterId查询采集来源集合-->
<select id="getSourceByMasterId" resultMap="BaseResultMap">
<!--根据masterId查询采集来源集合-->
<select id="getSourceByMasterId" resultMap="BaseResultMap">
select Source from archive_detail where MasterID = ${masterid} group by Source
</select>
<!--查询已扫描上传到masterId集合-->
<select id="selectIsScan" resultMap="BaseResultMap">
SELECT
MasterID
FROM
archive_detail
<if test="fieldFlag == 1">
inner join archive_master
on archive_detail.MasterID = archive_master.id
</if>
WHERE
<choose>
<!--查询已扫描上传到masterId集合-->
<select id="selectIsScan" resultMap="BaseResultMap">
SELECT
MasterID
FROM
archive_detail
<if test="fieldFlag == 1">
inner join archive_master
on archive_detail.MasterID = archive_master.id
</if>
WHERE
<choose>
<when test="fieldFlag == 2">
MasterID
MasterID
</when>
<when test="fieldFlag == 1">
patient_id
patient_id
</when>
</choose>
IN (
<foreach collection="ids.split(',')" item="item" separator=",">
${item}
</foreach>
)
AND Source = '扫描上传'
GROUP BY
MasterID
</select>
</choose>
IN (
<foreach collection="ids.split(',')" item="item" separator=",">
${item}
</foreach>
)
AND Source = '扫描上传'
GROUP BY
MasterID
</select>
</mapper>

@ -22,6 +22,7 @@
<result column="ID_NO" jdbcType="NVARCHAR" property="idNo"/>
<result column="DISCHARGE_DISPOSITION" jdbcType="NVARCHAR" property="dischargeDisposition"/>
<result column="dept_code_lend" jdbcType="NVARCHAR" property="deptCodeLend"/>
<result column="D1" property="d1" jdbcType="DOUBLE" />
</resultMap>
<resultMap id="BaseResultMap2" type="com.emr.entity.Archive_Master_Vo">
<id column="id" jdbcType="NVARCHAR" property="id"/>
@ -322,12 +323,15 @@
</if>
</if>
</sql>
<sql id="selectColumms">
m.id,m.patient_id,m.inp_no,m.visit_id,m.name,m.sex,m.
dept_name,m.discharge_date_time,m.ArchiveState,m.admission_date_time,m.
dept_admission_to,m.LockInfo,m.DOCTOR_IN_CHARGE,m.D1
</sql>
<!---出院-->
<select id="selectByColumn" parameterType="com.emr.entity.Archive_Master_Vo" resultMap="BaseResultMap2">
select * from (select m.id,m.patient_id,m.inp_no,m.visit_id,m.name,m.sex,m.
dept_name,m.discharge_date_time,m.ArchiveState,m.admission_date_time,m.
dept_admission_to,m.LockInfo,m.DOCTOR_IN_CHARGE
select * from (
select <include refid="selectColumms"></include>
from archive_master m
/**带完整性查询*/
<if test="isSuccess != null and isSuccess != ''">
@ -398,9 +402,7 @@
<include refid="beHospitalSeach"></include>
<if test="archivestate != null and archivestate != '' and archivestate == 0 and role == 1">
UNION ALL
select m.id,m.patient_id,m.inp_no,m.visit_id,m.name,m.sex,m.
dept_name,m.discharge_date_time,m.ArchiveState,m.admission_date_time,m.
dept_admission_to,m.LockInfo,m.DOCTOR_IN_CHARGE
select <include refid="selectColumms"></include>
from archive_master m
/**带状态查询*/
left join (select archive_flow_info.master_id from archive_flow_info

@ -58,4 +58,5 @@
<script src="${path}/static/bootstrap-3.3.7/bower_components/bootstrap/dist/js/fileinput.min.js"></script>
<script type="text/javascript" src="${path}/static/js/hospitalCommom/pinying.js"></script>
<script type="text/javascript" src="${path}/static/js/comm.js?t=2020-10-13"></script>
<script type="text/javascript" src="${path}/static/js/md5.js"></script>
<input type="hidden" id="userId" value="${CURRENT_USER.userId}">

@ -285,6 +285,9 @@
<div class="col-sm-4">
入院日期:<label id="inDateLab" class="labCss"></label>
</div>
<div class="col-sm-4">
总费用:<label id="d1" class="labCss">0</label>&emsp;元
</div>
<div class="col-sm-4" id="recallDiv">
缺陷管理:
<button type="button" class="btn btn-danger btn-sm" id="getRecallBtn">缺陷查看
@ -771,7 +774,7 @@
</div>
</div>
</body>
<script src="${path}/static/js/beHospList/beHospList.js?time=2020-10-13"></script>
<script src="${path}/static/js/hospitalCommom/hospitalCommom.js?time=2020-10-13_1"></script>
<script src="${path}/static/js/hospitalLoadPdf/loadPdf.js?time=2020-10-09"></script>
<script src="${path}/static/js/beHospList/beHospList.js?time=2020-10-16"></script>
<script src="${path}/static/js/hospitalCommom/hospitalCommom.js?time=2020-10-16"></script>
<script src="${path}/static/js/hospitalLoadPdf/loadPdf.js?time=2020-10-16"></script>
</html>

@ -448,7 +448,7 @@
<script type="text/javascript">
var path = "${path}";
</script>
<script src="${path}/static/js/inHospList/inHospList.js?time=2020-10-13"></script>
<script src="${path}/static/js/hospitalLoadPdf/loadPdf.js?time=2020-08-21"></script>
<script src="${path}/static/js/hospitalCommom/hospitalCommom.js?time=2020-10-13"></script>
<script src="${path}/static/js/inHospList/inHospList.js?time=2020-10-16"></script>
<script src="${path}/static/js/hospitalLoadPdf/loadPdf.js?time=2020-10-16"></script>
<script src="${path}/static/js/hospitalCommom/hospitalCommom.js?time=2020-10-16"></script>
</html>

@ -354,7 +354,7 @@
</div>
<footer class="main-footer">
<div class="pull-right">
<b>Version</b> 20201013_1
<b>Version</b> 20201016
</div>
<strong>Copyright &copy; 2019-2090 厦门嘉时软件.</strong> All rights
reserved.
@ -399,15 +399,6 @@
</div>
</div>
<%@ include file="/WEB-INF/jspf/webSocket.jspf" %>
<script>
$(document).ready(function () {
var headerHeight = $(".main-header").height() || 0;
var footerHeight = ($(".main-footer").height() || 0) + 31;
var windowHeight = $(window).height();
$("#iFrame1").css("height", windowHeight - headerHeight - footerHeight);
$("#indexTreeMenu").css("max-height",windowHeight - headerHeight - 10);
$(".content-wrapper").css("min-height",windowHeight - headerHeight - 54);
})
</script>
<script src="${path}/static/js/index.js"></script>
</body>
</html>

@ -647,7 +647,7 @@
</div>
</body>
<script src="${path}/static/js/lastVerifyList/lastVerifyList.js?time=2020-10-13"></script>
<script src="${path}/static/js/hospitalCommom/hospitalCommom.js?time=2020-10-13"></script>
<script src="${path}/static/js/hospitalCommom/hospitalCommom.js?time=2020-10-16"></script>
<script src="${path}/static/js/statistics/getDeptCommom.js"></script>
<script src="${path}/static/js/hospitalLoadPdf/loadPdf.js?time=2020-08-21"></script>
<script src="${path}/static/js/hospitalLoadPdf/loadPdf.js?time=2020-10-16"></script>
</html>

@ -593,6 +593,6 @@
var path = "${path}";
</script>
<script src="${path}/static/js/unfileMedicalList/unfileMedicalList.js?time=2020-10-13"></script>
<script src="${path}/static/js/hospitalCommom/hospitalCommom.js?time=2020-10-13"></script>
<script src="${path}/static/js/hospitalLoadPdf/loadPdf.js?time=2020-08-21"></script>
<script src="${path}/static/js/hospitalCommom/hospitalCommom.js?time=2020-10-16"></script>
<script src="${path}/static/js/hospitalLoadPdf/loadPdf.js?time=2020-10-16"></script>
</html>

@ -218,6 +218,12 @@ function initTable() {
//$("#wzContent").text(checkSuccessResult);
$("#wzContent").text(row.lockinfo);
$("#masterId").val(row.id);
//赋值总费用
var d1 = row.d1;
if(d1 != null){
d1 = d1.toFixed(2);
$("#d1").text(d1);
}
///入/出院年+出院月+住院号+住院次数
var outDate = "";
if (row.dischargeDateTime != null && row.dischargeDateTime != "") {
@ -464,7 +470,6 @@ $("#wzSaveBtn").on('click', function () {
$("#WZModal").modal('hide');
save(1,'');
});
//批量初审功能 批量审批①
$("#approvesBtn").on('click', function () {
//生成表单token,防止表单重复提交

@ -0,0 +1,40 @@
var __localStorage = {
set : function(key, value){
if(!window.localStorage){
return;
}
//var timeMill = 7 * 24 * 3600 * 1000;
var timeMill = 5 * 1000;
if(typeof(mins) == 'undefined'){
var item = {
data : value
};
}else{
var item = {
data : value,
endTime : new Date() . getTime() + timeMill
};
}
localStorage.setItem(key, JSON.stringify(item));
},
get : function(key){
if(!window.localStorage){
return null;
}
var val = localStorage.getItem(key);
if(!val) return null;
val = JSON.parse(val);
if(typeof(val.endTime) == 'undefined' || (typeof(val.endTime) != 'undefined' && val.endTime > new Date().getTime())){
return val.data;
}else{
localStorage.removeItem(key);
return null;
}
},
enable : function () {
if(!window.localStorage){
return false;
}
return true;
}
}

@ -790,6 +790,8 @@ function initTree(patientId,checker) {
obj.assortSort = result[i].assortSort;
obj.patientId = result[i].patientId;
obj.printFlag = result[i].printFlag;
obj.ids = result[i].ids;
obj.pageCounts = result[i].pageCounts;
zNodes.push(obj);
}
}

@ -88,7 +88,9 @@ $("#pdfBtn").click(function () {
if(imgStr != ''){
imgStr = imgStr.substring(0,imgStr.length-1);
}
var pdfUrl = path+"/static/pdfjs/web/viewer.html?file="+path+"/inHosp/getPdfToPdf/"+masterId+"/"+imgStr;
var imgStrMd5 = md5(imgStr);
var page = getPage(imgStrMd5,zNodes);
var pdfUrl = path+"/static/pdfjs/web/viewer.html?file="+path+"/inHosp/getPdfToPdf/"+masterId+"/"+imgStr+"&page="+page+"&key="+imgStrMd5;
var openWin = window.open(pdfUrl,"_blank");
setTimeout(function(){ openWin.document.title = $("#nameLab").text(); }, 100);
/*var url = path+"/inHosp/getPdfToPdf/"+masterId+"/"+imgStr;
@ -109,8 +111,52 @@ $("#pdfBtn").click(function () {
toastr.warning("病案不存在!");
}
});
var table2List;
//获取缓存页码
function getPage(imgStrMd5,list){
table2List = list;
//获取用户缓存页码
var userId = $("#userId").val();
//初始化页数
var page = 0;
//组织缓存key
var localStorageKey = 'page_' + userId + "_" + imgStrMd5;
//获取缓存
var detailId_page = localStorage.getItem(localStorageKey);
if(detailId_page != null){
//拆解缓存值
var pages = detailId_page.split("_");
var detailId = pages[0];
var pageNum = pages[1];
//遍历树节点
for (var i = 0; i < list.length; i++) {
//跳过根节点
if(list[i].id != 0) {
//获取detailsIds集合
var ids = list[i].ids;
//获取页码集合
var pageCounts = list[i].pageCounts;
//遍历ids
var idArr = ids.split(",");
var pageCountArr = pageCounts.split(",");
for (var j = 0; j < idArr.length; j++) {
if (idArr[j] != detailId) {
//不等则pageNum++
page += Number(pageCountArr[j]);
} else {
if(Number(pageNum) > Number(pageCountArr[j])) {
//重复采集页码少了的情况,从该文件第一页开始
return page += 1;
}else{
return page += Number(pageNum);
}
}
}
}
}
}
return 1;
}
$("#pdfBtn2").click(function () {
//选中批量使用
var idStr = idArr.toString();
@ -127,8 +173,13 @@ $("#pdfBtn2").click(function () {
ids += "'" + idArr[i] + "'";
}
}
//获取用户缓存页码
var imgStrMd5 = md5(ids);
//获取集合
var list = $("#table2").bootstrapTable('getSelections');
var page = getPage(imgStrMd5,list);
//上传后预览pdf文件,根据id直接获取pdf并合成
var pdfUrl = path+"/static/pdfjs/web/viewer.html?file="+path+"/inHosp/getPdfById/"+ids;
var pdfUrl = path+"/static/pdfjs/web/viewer.html?file="+path+"/inHosp/getPdfById/"+ids+"&page="+page+"&key="+imgStrMd5;
var openWin = window.open(pdfUrl,"_blank");
setTimeout(function(){ openWin.document.title = $("#nameLab").text(); }, 100);
});

@ -0,0 +1,41 @@
$(document).ready(function () {
var headerHeight = $(".main-header").height() || 0;
var footerHeight = ($(".main-footer").height() || 0) + 31;
var windowHeight = $(window).height();
$("#iFrame1").css("height", windowHeight - headerHeight - footerHeight);
$("#indexTreeMenu").css("max-height",windowHeight - headerHeight - 10);
$(".content-wrapper").css("min-height",windowHeight - headerHeight - 54);
//删除过期浏览pdf页数缓存
//获取最新删除时间
var mill = localStorage.getItem(deletePageLocalStorgeKey);
if(mill == null || (new Date().getTime() - mill) > overTime){
deleteLocalStorge();
}
});
var deletePageLocalStorgeKey = 'deletePageStorge';
var overTimeDays = 7;
var overTime = overTimeDays * 24 * 3600 * 1000;
//删除过期浏览pdf页数缓存
function deleteLocalStorge(){
var flag = true;
for(var key in localStorage){
//取出带page_开头的key
var keyArr = key.split("_");
if(keyArr[0] == 'page'){
//取出值
var value = localStorage.getItem(key);
//时间戳
var mill = value.split("_")[2];
//计算设置值毫秒数
var overTimeFlag = (new Date().getTime() - mill) > overTime;
if(overTimeFlag){
//超期
localStorage.removeItem(key);
if(flag){
//缓存最新删除时间
localStorage.setItem(deletePageLocalStorgeKey,new Date().getTime());
}
}
}
}
}

@ -0,0 +1,280 @@
/*
* JavaScript MD5
* https://github.com/blueimp/JavaScript-MD5
*
* Copyright 2011, Sebastian Tschan
* https://blueimp.net
*
* Licensed under the MIT license:
* https://opensource.org/licenses/MIT
*
* Based on
* A JavaScript implementation of the RSA Data Security, Inc. MD5 Message
* Digest Algorithm, as defined in RFC 1321.
* Version 2.2 Copyright (C) Paul Johnston 1999 - 2009
* Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
* Distributed under the BSD License
* See http://pajhome.org.uk/crypt/md5 for more info.
*/
/* global define */
;(function ($) {
'use strict'
/*
* Add integers, wrapping at 2^32. This uses 16-bit operations internally
* to work around bugs in some JS interpreters.
*/
function safeAdd (x, y) {
var lsw = (x & 0xffff) + (y & 0xffff)
var msw = (x >> 16) + (y >> 16) + (lsw >> 16)
return (msw << 16) | (lsw & 0xffff)
}
/*
* Bitwise rotate a 32-bit number to the left.
*/
function bitRotateLeft (num, cnt) {
return (num << cnt) | (num >>> (32 - cnt))
}
/*
* These functions implement the four basic operations the algorithm uses.
*/
function md5cmn (q, a, b, x, s, t) {
return safeAdd(bitRotateLeft(safeAdd(safeAdd(a, q), safeAdd(x, t)), s), b)
}
function md5ff (a, b, c, d, x, s, t) {
return md5cmn((b & c) | (~b & d), a, b, x, s, t)
}
function md5gg (a, b, c, d, x, s, t) {
return md5cmn((b & d) | (c & ~d), a, b, x, s, t)
}
function md5hh (a, b, c, d, x, s, t) {
return md5cmn(b ^ c ^ d, a, b, x, s, t)
}
function md5ii (a, b, c, d, x, s, t) {
return md5cmn(c ^ (b | ~d), a, b, x, s, t)
}
/*
* Calculate the MD5 of an array of little-endian words, and a bit length.
*/
function binlMD5 (x, len) {
/* append padding */
x[len >> 5] |= 0x80 << (len % 32)
x[((len + 64) >>> 9 << 4) + 14] = len
var i
var olda
var oldb
var oldc
var oldd
var a = 1732584193
var b = -271733879
var c = -1732584194
var d = 271733878
for (i = 0; i < x.length; i += 16) {
olda = a
oldb = b
oldc = c
oldd = d
a = md5ff(a, b, c, d, x[i], 7, -680876936)
d = md5ff(d, a, b, c, x[i + 1], 12, -389564586)
c = md5ff(c, d, a, b, x[i + 2], 17, 606105819)
b = md5ff(b, c, d, a, x[i + 3], 22, -1044525330)
a = md5ff(a, b, c, d, x[i + 4], 7, -176418897)
d = md5ff(d, a, b, c, x[i + 5], 12, 1200080426)
c = md5ff(c, d, a, b, x[i + 6], 17, -1473231341)
b = md5ff(b, c, d, a, x[i + 7], 22, -45705983)
a = md5ff(a, b, c, d, x[i + 8], 7, 1770035416)
d = md5ff(d, a, b, c, x[i + 9], 12, -1958414417)
c = md5ff(c, d, a, b, x[i + 10], 17, -42063)
b = md5ff(b, c, d, a, x[i + 11], 22, -1990404162)
a = md5ff(a, b, c, d, x[i + 12], 7, 1804603682)
d = md5ff(d, a, b, c, x[i + 13], 12, -40341101)
c = md5ff(c, d, a, b, x[i + 14], 17, -1502002290)
b = md5ff(b, c, d, a, x[i + 15], 22, 1236535329)
a = md5gg(a, b, c, d, x[i + 1], 5, -165796510)
d = md5gg(d, a, b, c, x[i + 6], 9, -1069501632)
c = md5gg(c, d, a, b, x[i + 11], 14, 643717713)
b = md5gg(b, c, d, a, x[i], 20, -373897302)
a = md5gg(a, b, c, d, x[i + 5], 5, -701558691)
d = md5gg(d, a, b, c, x[i + 10], 9, 38016083)
c = md5gg(c, d, a, b, x[i + 15], 14, -660478335)
b = md5gg(b, c, d, a, x[i + 4], 20, -405537848)
a = md5gg(a, b, c, d, x[i + 9], 5, 568446438)
d = md5gg(d, a, b, c, x[i + 14], 9, -1019803690)
c = md5gg(c, d, a, b, x[i + 3], 14, -187363961)
b = md5gg(b, c, d, a, x[i + 8], 20, 1163531501)
a = md5gg(a, b, c, d, x[i + 13], 5, -1444681467)
d = md5gg(d, a, b, c, x[i + 2], 9, -51403784)
c = md5gg(c, d, a, b, x[i + 7], 14, 1735328473)
b = md5gg(b, c, d, a, x[i + 12], 20, -1926607734)
a = md5hh(a, b, c, d, x[i + 5], 4, -378558)
d = md5hh(d, a, b, c, x[i + 8], 11, -2022574463)
c = md5hh(c, d, a, b, x[i + 11], 16, 1839030562)
b = md5hh(b, c, d, a, x[i + 14], 23, -35309556)
a = md5hh(a, b, c, d, x[i + 1], 4, -1530992060)
d = md5hh(d, a, b, c, x[i + 4], 11, 1272893353)
c = md5hh(c, d, a, b, x[i + 7], 16, -155497632)
b = md5hh(b, c, d, a, x[i + 10], 23, -1094730640)
a = md5hh(a, b, c, d, x[i + 13], 4, 681279174)
d = md5hh(d, a, b, c, x[i], 11, -358537222)
c = md5hh(c, d, a, b, x[i + 3], 16, -722521979)
b = md5hh(b, c, d, a, x[i + 6], 23, 76029189)
a = md5hh(a, b, c, d, x[i + 9], 4, -640364487)
d = md5hh(d, a, b, c, x[i + 12], 11, -421815835)
c = md5hh(c, d, a, b, x[i + 15], 16, 530742520)
b = md5hh(b, c, d, a, x[i + 2], 23, -995338651)
a = md5ii(a, b, c, d, x[i], 6, -198630844)
d = md5ii(d, a, b, c, x[i + 7], 10, 1126891415)
c = md5ii(c, d, a, b, x[i + 14], 15, -1416354905)
b = md5ii(b, c, d, a, x[i + 5], 21, -57434055)
a = md5ii(a, b, c, d, x[i + 12], 6, 1700485571)
d = md5ii(d, a, b, c, x[i + 3], 10, -1894986606)
c = md5ii(c, d, a, b, x[i + 10], 15, -1051523)
b = md5ii(b, c, d, a, x[i + 1], 21, -2054922799)
a = md5ii(a, b, c, d, x[i + 8], 6, 1873313359)
d = md5ii(d, a, b, c, x[i + 15], 10, -30611744)
c = md5ii(c, d, a, b, x[i + 6], 15, -1560198380)
b = md5ii(b, c, d, a, x[i + 13], 21, 1309151649)
a = md5ii(a, b, c, d, x[i + 4], 6, -145523070)
d = md5ii(d, a, b, c, x[i + 11], 10, -1120210379)
c = md5ii(c, d, a, b, x[i + 2], 15, 718787259)
b = md5ii(b, c, d, a, x[i + 9], 21, -343485551)
a = safeAdd(a, olda)
b = safeAdd(b, oldb)
c = safeAdd(c, oldc)
d = safeAdd(d, oldd)
}
return [a, b, c, d]
}
/*
* Convert an array of little-endian words to a string
*/
function binl2rstr (input) {
var i
var output = ''
var length32 = input.length * 32
for (i = 0; i < length32; i += 8) {
output += String.fromCharCode((input[i >> 5] >>> (i % 32)) & 0xff)
}
return output
}
/*
* Convert a raw string to an array of little-endian words
* Characters >255 have their high-byte silently ignored.
*/
function rstr2binl (input) {
var i
var output = []
output[(input.length >> 2) - 1] = undefined
for (i = 0; i < output.length; i += 1) {
output[i] = 0
}
var length8 = input.length * 8
for (i = 0; i < length8; i += 8) {
output[i >> 5] |= (input.charCodeAt(i / 8) & 0xff) << (i % 32)
}
return output
}
/*
* Calculate the MD5 of a raw string
*/
function rstrMD5 (s) {
return binl2rstr(binlMD5(rstr2binl(s), s.length * 8))
}
/*
* Calculate the HMAC-MD5, of a key and some data (raw strings)
*/
function rstrHMACMD5 (key, data) {
var i
var bkey = rstr2binl(key)
var ipad = []
var opad = []
var hash
ipad[15] = opad[15] = undefined
if (bkey.length > 16) {
bkey = binlMD5(bkey, key.length * 8)
}
for (i = 0; i < 16; i += 1) {
ipad[i] = bkey[i] ^ 0x36363636
opad[i] = bkey[i] ^ 0x5c5c5c5c
}
hash = binlMD5(ipad.concat(rstr2binl(data)), 512 + data.length * 8)
return binl2rstr(binlMD5(opad.concat(hash), 512 + 128))
}
/*
* Convert a raw string to a hex string
*/
function rstr2hex (input) {
var hexTab = '0123456789abcdef'
var output = ''
var x
var i
for (i = 0; i < input.length; i += 1) {
x = input.charCodeAt(i)
output += hexTab.charAt((x >>> 4) & 0x0f) + hexTab.charAt(x & 0x0f)
}
return output
}
/*
* Encode a string as utf-8
*/
function str2rstrUTF8 (input) {
return unescape(encodeURIComponent(input))
}
/*
* Take string arguments and return either raw or hex encoded strings
*/
function rawMD5 (s) {
return rstrMD5(str2rstrUTF8(s))
}
function hexMD5 (s) {
return rstr2hex(rawMD5(s))
}
function rawHMACMD5 (k, d) {
return rstrHMACMD5(str2rstrUTF8(k), str2rstrUTF8(d))
}
function hexHMACMD5 (k, d) {
return rstr2hex(rawHMACMD5(k, d))
}
function md5 (string, key, raw) {
if (!key) {
if (!raw) {
return hexMD5(string)
}
return rawMD5(string)
}
if (!raw) {
return hexHMACMD5(key, string)
}
return rawHMACMD5(key, string)
}
if (typeof define === 'function' && define.amd) {
define(function () {
return md5
})
} else if (typeof module === 'object' && module.exports) {
module.exports = md5
} else {
$.md5 = md5
}
})(this)

@ -19,228 +19,257 @@ http://sourceforge.net/adobe/cmap/wiki/License/
-->
<html dir="ltr" mozdisallowselectionprint moznomarginboxes>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<meta name="google" content="notranslate">
<title>PDF.js viewer</title>
<link rel="stylesheet" href="viewer.css"/>
<script src="compatibility.js"></script>
<!-- This snippet is used in production (included from viewer.html) -->
<link rel="resource" type="application/l10n" href="locale/locale.properties"/>
<link rel="shortcut icon" href="../../favicon.ico">
<script type="text/javascript" src="../../js/jquery-3.3.1.js"></script>
<script type="text/javascript" src="../../bootstrap-3.3.7/bower_components/bootstrap/dist/js/bootstrap.min.js"></script>
<script src="l10n.js"></script>
<script src="../build/pdf.js"></script>
<script src="debugger.js"></script>
<script src="viewer.js?time=2020-08-27"></script>
<style>
.loading {
width: 160px;
height: 56px;
position: absolute;
top: 50%;
left: 50%;
line-height: 56px;
color: #fff;
padding-left: 60px;
font-size: 15px;
background: #000;
opacity: 0.7;
z-index: 9999;
-moz-border-radius: 20px;
-webkit-border-radius: 20px;
border-radius: 20px;
filter: progid:DXImageTransform.Microsoft.Alpha(opacity=70);
}
</style>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<meta name="google" content="notranslate">
<title>PDF.js viewer</title>
<link rel="stylesheet" href="viewer.css"/>
<script src="compatibility.js"></script>
<!-- This snippet is used in production (included from viewer.html) -->
<link rel="resource" type="application/l10n" href="locale/locale.properties"/>
<link rel="shortcut icon" href="../../favicon.ico">
<script type="text/javascript" src="../../js/jquery-3.3.1.js"></script>
<script type="text/javascript"
src="../../bootstrap-3.3.7/bower_components/bootstrap/dist/js/bootstrap.min.js"></script>
<script src="l10n.js"></script>
<script src="../build/pdf.js"></script>
<script src="debugger.js"></script>
<script src="viewer.js?time=2020-10-16"></script>
<style>
.loading {
width: 160px;
height: 56px;
position: absolute;
top: 50%;
left: 50%;
line-height: 56px;
color: #fff;
padding-left: 60px;
font-size: 15px;
background: #000;
opacity: 0.7;
z-index: 9999;
-moz-border-radius: 20px;
-webkit-border-radius: 20px;
border-radius: 20px;
filter: progid:DXImageTransform.Microsoft.Alpha(opacity=70);
}
</style>
</head>
<body tabindex="1" class="loadingInProgress" onkeydown="disabledPrint()">
<div id="myModal" class="modal fade" data-keyboard="false"
data-backdrop="static" data-role="dialog"
aria-labelledby="myModalLabel" aria-hidden="true">
<div id="loading" class="loading">加载中。。。</div>
<div id="loading" class="loading">加载中。。。</div>
</div>
<div id="outerContainer">
<div id="sidebarContainer">
<div id="toolbarSidebar">
<div class="splitToolbarButton toggled">
<button id="viewThumbnail" class="toolbarButton group toggled" title="Show Thumbnails" tabindex="2" data-l10n-id="thumbs">
<span data-l10n-id="thumbs_label">Thumbnails</span>
</button>
<button id="viewOutline" class="toolbarButton group" title="Show Document Outline" tabindex="3" data-l10n-id="outline">
<span data-l10n-id="outline_label">Document Outline</span>
</button>
<button id="viewAttachments" class="toolbarButton group" title="Show Attachments" tabindex="4" data-l10n-id="attachments">
<span data-l10n-id="attachments_label">Attachments</span>
</button>
</div>
</div>
<div id="sidebarContent">
<div id="thumbnailView">
</div>
<div id="outlineView" class="hidden">
</div>
<div id="attachmentsView" class="hidden">
</div>
</div>
</div> <!-- sidebarContainer -->
<div id="mainContainer">
<div class="findbar hidden doorHanger hiddenSmallView" id="findbar">
<label for="findInput" class="toolbarLabel" data-l10n-id="find_label">Find:</label>
<input id="findInput" class="toolbarField" tabindex="91">
<div class="splitToolbarButton">
<button class="toolbarButton findPrevious" title="" id="findPrevious" tabindex="92" data-l10n-id="find_previous">
<span data-l10n-id="find_previous_label">Previous</span>
</button>
<div class="splitToolbarButtonSeparator"></div>
<button class="toolbarButton findNext" title="" id="findNext" tabindex="93" data-l10n-id="find_next">
<span data-l10n-id="find_next_label">Next</span>
</button>
</div>
<input type="checkbox" id="findHighlightAll" class="toolbarField">
<label for="findHighlightAll" class="toolbarLabel" tabindex="94" data-l10n-id="find_highlight">Highlight all</label>
<input type="checkbox" id="findMatchCase" class="toolbarField">
<label for="findMatchCase" class="toolbarLabel" tabindex="95" data-l10n-id="find_match_case_label">Match case</label>
<span id="findMsg" class="toolbarLabel"></span>
</div> <!-- findbar -->
<div id="secondaryToolbar" class="secondaryToolbar hidden doorHangerRight">
<div id="secondaryToolbarButtonContainer">
<button id="secondaryPresentationMode" class="secondaryToolbarButton presentationMode visibleLargeView" title="Switch to Presentation Mode" tabindex="51" data-l10n-id="presentation_mode">
<span data-l10n-id="presentation_mode_label">Presentation Mode</span>
</button>
<button id="secondaryOpenFile" class="secondaryToolbarButton openFile visibleLargeView" title="Open File" tabindex="52" data-l10n-id="open_file">
<span data-l10n-id="open_file_label">Open</span>
</button>
<button id="secondaryPrint" class="secondaryToolbarButton print visibleMediumView" title="Print" tabindex="53" data-l10n-id="print">
<span data-l10n-id="print_label">Print</span>
</button>
<button id="secondaryDownload" class="secondaryToolbarButton download visibleMediumView" title="Download" tabindex="54" data-l10n-id="download">
<span data-l10n-id="download_label">Download</span>
</button>
<a href="#" id="secondaryViewBookmark" class="secondaryToolbarButton bookmark visibleSmallView" title="Current view (copy or open in new window)" tabindex="55" data-l10n-id="bookmark">
<span data-l10n-id="bookmark_label">Current View</span>
</a>
<div class="horizontalToolbarSeparator visibleLargeView"></div>
<button id="firstPage" class="secondaryToolbarButton firstPage" title="Go to First Page" tabindex="56" data-l10n-id="first_page">
<span data-l10n-id="first_page_label">Go to First Page</span>
</button>
<button id="lastPage" class="secondaryToolbarButton lastPage" title="Go to Last Page" tabindex="57" data-l10n-id="last_page">
<span data-l10n-id="last_page_label">Go to Last Page</span>
</button>
<div class="horizontalToolbarSeparator"></div>
<button id="pageRotateCw" class="secondaryToolbarButton rotateCw" title="Rotate Clockwise" tabindex="58" data-l10n-id="page_rotate_cw">
<span data-l10n-id="page_rotate_cw_label">Rotate Clockwise</span>
</button>
<button id="pageRotateCcw" class="secondaryToolbarButton rotateCcw" title="Rotate Counterclockwise" tabindex="59" data-l10n-id="page_rotate_ccw">
<span data-l10n-id="page_rotate_ccw_label">Rotate Counterclockwise</span>
</button>
<div class="horizontalToolbarSeparator"></div>
<button id="toggleHandTool" class="secondaryToolbarButton handTool" title="Enable hand tool" tabindex="60" data-l10n-id="hand_tool_enable">
<span data-l10n-id="hand_tool_enable_label">Enable hand tool</span>
</button>
<div class="horizontalToolbarSeparator"></div>
<!--<button id="documentProperties" class="secondaryToolbarButton documentProperties" title="Document Properties…" tabindex="61" data-l10n-id="document_properties">
<span data-l10n-id="document_properties_label">Document Properties…</span>
</button>-->
</div>
</div> <!-- secondaryToolbar -->
<div class="toolbar">
<div id="toolbarContainer">
<div id="toolbarViewer">
<div id="toolbarViewerLeft">
<button id="sidebarToggle" class="toolbarButton" title="Toggle Sidebar" tabindex="11" data-l10n-id="toggle_sidebar">
<span data-l10n-id="toggle_sidebar_label">Toggle Sidebar</span>
</button>
<div class="toolbarButtonSpacer"></div>
<button id="viewFind" class="toolbarButton group hiddenSmallView" title="Find in Document" tabindex="12" data-l10n-id="findbar">
<span data-l10n-id="findbar_label">Find</span>
</button>
<div class="splitToolbarButton">
<button class="toolbarButton pageUp" title="Previous Page" id="previous" tabindex="13" data-l10n-id="previous">
<span data-l10n-id="previous_label">Previous</span>
</button>
<div class="splitToolbarButtonSeparator"></div>
<button class="toolbarButton pageDown" title="Next Page" id="next" tabindex="14" data-l10n-id="next">
<span data-l10n-id="next_label">Next</span>
</button>
<div id="sidebarContainer">
<div id="toolbarSidebar">
<div class="splitToolbarButton toggled">
<button id="viewThumbnail" class="toolbarButton group toggled" title="Show Thumbnails" tabindex="2"
data-l10n-id="thumbs">
<span data-l10n-id="thumbs_label">Thumbnails</span>
</button>
<button id="viewOutline" class="toolbarButton group" title="Show Document Outline" tabindex="3"
data-l10n-id="outline">
<span data-l10n-id="outline_label">Document Outline</span>
</button>
<button id="viewAttachments" class="toolbarButton group" title="Show Attachments" tabindex="4"
data-l10n-id="attachments">
<span data-l10n-id="attachments_label">Attachments</span>
</button>
</div>
</div>
<div id="sidebarContent">
<div id="thumbnailView">
</div>
<div id="outlineView" class="hidden">
</div>
<div id="attachmentsView" class="hidden">
</div>
<label id="pageNumberLabel" class="toolbarLabel" for="pageNumber" data-l10n-id="page_label">Page: </label>
<input type="number" id="pageNumber" class="toolbarField pageNumber" value="1" size="4" min="1" tabindex="15">
<span id="numPages" class="toolbarLabel"></span>
</div>
<div id="toolbarViewerRight">
<button id="presentationMode" class="toolbarButton presentationMode hiddenLargeView" title="Switch to Presentation Mode" tabindex="31" data-l10n-id="presentation_mode">
<span data-l10n-id="presentation_mode_label">Presentation Mode</span>
</button>
<!--<button id="openFile" class="toolbarButton openFile hiddenLargeView" title="Open File" tabindex="32" data-l10n-id="open_file">
<span data-l10n-id="open_file_label">Open</span>
</button>-->
<button id="print" class="toolbarButton print hiddenMediumView" title="Print" tabindex="33" data-l10n-id="print" style="display: none">
<span data-l10n-id="print_label">Print</span>
</button>
<!--<button id="download" class="toolbarButton download hiddenMediumView" title="Download" tabindex="34" data-l10n-id="download">
<span data-l10n-id="download_label">Download</span>
</button>-->
<a href="#" id="viewBookmark" class="toolbarButton bookmark hiddenSmallView" title="Current view (copy or open in new window)" tabindex="35" data-l10n-id="bookmark">
<span data-l10n-id="bookmark_label">Current View</span>
</a>
<div class="verticalToolbarSeparator hiddenSmallView"></div>
<button id="secondaryToolbarToggle" class="toolbarButton" title="Tools" tabindex="36" data-l10n-id="tools">
<span data-l10n-id="tools_label">Tools</span>
</button>
</div>
<div class="outerCenter">
<div class="innerCenter" id="toolbarViewerMiddle">
<div class="splitToolbarButton">
<button id="zoomOut" class="toolbarButton zoomOut" title="Zoom Out" tabindex="21" data-l10n-id="zoom_out">
<span data-l10n-id="zoom_out_label">Zoom Out</span>
</div>
</div> <!-- sidebarContainer -->
<div id="mainContainer">
<div class="findbar hidden doorHanger hiddenSmallView" id="findbar">
<label for="findInput" class="toolbarLabel" data-l10n-id="find_label">Find:</label>
<input id="findInput" class="toolbarField" tabindex="91">
<div class="splitToolbarButton">
<button class="toolbarButton findPrevious" title="" id="findPrevious" tabindex="92"
data-l10n-id="find_previous">
<span data-l10n-id="find_previous_label">Previous</span>
</button>
<div class="splitToolbarButtonSeparator"></div>
<button id="zoomIn" class="toolbarButton zoomIn" title="Zoom In" tabindex="22" data-l10n-id="zoom_in">
<span data-l10n-id="zoom_in_label">Zoom In</span>
<button class="toolbarButton findNext" title="" id="findNext" tabindex="93" data-l10n-id="find_next">
<span data-l10n-id="find_next_label">Next</span>
</button>
</div>
<span id="scaleSelectContainer" class="dropdownToolbarButton">
</div>
<input type="checkbox" id="findHighlightAll" class="toolbarField">
<label for="findHighlightAll" class="toolbarLabel" tabindex="94" data-l10n-id="find_highlight">Highlight
all</label>
<input type="checkbox" id="findMatchCase" class="toolbarField">
<label for="findMatchCase" class="toolbarLabel" tabindex="95" data-l10n-id="find_match_case_label">Match
case</label>
<span id="findMsg" class="toolbarLabel"></span>
</div> <!-- findbar -->
<div id="secondaryToolbar" class="secondaryToolbar hidden doorHangerRight">
<div id="secondaryToolbarButtonContainer">
<button id="secondaryPresentationMode" class="secondaryToolbarButton presentationMode visibleLargeView"
title="Switch to Presentation Mode" tabindex="51" data-l10n-id="presentation_mode">
<span data-l10n-id="presentation_mode_label">Presentation Mode</span>
</button>
<button id="secondaryOpenFile" class="secondaryToolbarButton openFile visibleLargeView"
title="Open File" tabindex="52" data-l10n-id="open_file">
<span data-l10n-id="open_file_label">Open</span>
</button>
<button id="secondaryPrint" class="secondaryToolbarButton print visibleMediumView" title="Print"
tabindex="53" data-l10n-id="print">
<span data-l10n-id="print_label">Print</span>
</button>
<button id="secondaryDownload" class="secondaryToolbarButton download visibleMediumView"
title="Download" tabindex="54" data-l10n-id="download">
<span data-l10n-id="download_label">Download</span>
</button>
<a href="#" id="secondaryViewBookmark" class="secondaryToolbarButton bookmark visibleSmallView"
title="Current view (copy or open in new window)" tabindex="55" data-l10n-id="bookmark">
<span data-l10n-id="bookmark_label">Current View</span>
</a>
<div class="horizontalToolbarSeparator visibleLargeView"></div>
<button id="firstPage" class="secondaryToolbarButton firstPage" title="Go to First Page" tabindex="56"
data-l10n-id="first_page">
<span data-l10n-id="first_page_label">Go to First Page</span>
</button>
<button id="lastPage" class="secondaryToolbarButton lastPage" title="Go to Last Page" tabindex="57"
data-l10n-id="last_page">
<span data-l10n-id="last_page_label">Go to Last Page</span>
</button>
<div class="horizontalToolbarSeparator"></div>
<button id="pageRotateCw" class="secondaryToolbarButton rotateCw" title="Rotate Clockwise" tabindex="58"
data-l10n-id="page_rotate_cw">
<span data-l10n-id="page_rotate_cw_label">Rotate Clockwise</span>
</button>
<button id="pageRotateCcw" class="secondaryToolbarButton rotateCcw" title="Rotate Counterclockwise"
tabindex="59" data-l10n-id="page_rotate_ccw">
<span data-l10n-id="page_rotate_ccw_label">Rotate Counterclockwise</span>
</button>
<div class="horizontalToolbarSeparator"></div>
<button id="toggleHandTool" class="secondaryToolbarButton handTool" title="Enable hand tool"
tabindex="60" data-l10n-id="hand_tool_enable">
<span data-l10n-id="hand_tool_enable_label">Enable hand tool</span>
</button>
<div class="horizontalToolbarSeparator"></div>
<!--<button id="documentProperties" class="secondaryToolbarButton documentProperties" title="Document Properties…" tabindex="61" data-l10n-id="document_properties">
<span data-l10n-id="document_properties_label">Document Properties…</span>
</button>-->
</div>
</div> <!-- secondaryToolbar -->
<div class="toolbar">
<div id="toolbarContainer">
<div id="toolbarViewer">
<div id="toolbarViewerLeft">
<button id="sidebarToggle" class="toolbarButton" title="Toggle Sidebar" tabindex="11"
data-l10n-id="toggle_sidebar">
<span data-l10n-id="toggle_sidebar_label">Toggle Sidebar</span>
</button>
<div class="toolbarButtonSpacer"></div>
<button id="viewFind" class="toolbarButton group hiddenSmallView" title="Find in Document"
tabindex="12" data-l10n-id="findbar">
<span data-l10n-id="findbar_label">Find</span>
</button>
<div class="splitToolbarButton">
<button class="toolbarButton pageUp" title="Previous Page" id="previous" tabindex="13"
data-l10n-id="previous">
<span data-l10n-id="previous_label">Previous</span>
</button>
<div class="splitToolbarButtonSeparator"></div>
<button class="toolbarButton pageDown" title="Next Page" id="next" tabindex="14"
data-l10n-id="next">
<span data-l10n-id="next_label">Next</span>
</button>
</div>
<label id="pageNumberLabel" class="toolbarLabel" for="pageNumber" data-l10n-id="page_label">Page: </label>
<input type="number" id="pageNumber" class="toolbarField pageNumber" value="1" size="4" min="1"
tabindex="15">
<span id="numPages" class="toolbarLabel"></span>
</div>
<div id="toolbarViewerRight">
<button id="presentationMode" class="toolbarButton presentationMode hiddenLargeView"
title="Switch to Presentation Mode" tabindex="31" data-l10n-id="presentation_mode">
<span data-l10n-id="presentation_mode_label">Presentation Mode</span>
</button>
<!--<button id="openFile" class="toolbarButton openFile hiddenLargeView" title="Open File" tabindex="32" data-l10n-id="open_file">
<span data-l10n-id="open_file_label">Open</span>
</button>-->
<button id="print" class="toolbarButton print hiddenMediumView" title="Print" tabindex="33"
data-l10n-id="print" style="display: none">
<span data-l10n-id="print_label">Print</span>
</button>
<!--<button id="download" class="toolbarButton download hiddenMediumView" title="Download" tabindex="34" data-l10n-id="download">
<span data-l10n-id="download_label">Download</span>
</button>-->
<a href="#" id="viewBookmark" class="toolbarButton bookmark hiddenSmallView"
title="Current view (copy or open in new window)" tabindex="35" data-l10n-id="bookmark">
<span data-l10n-id="bookmark_label">Current View</span>
</a>
<div class="verticalToolbarSeparator hiddenSmallView"></div>
<button id="secondaryToolbarToggle" class="toolbarButton" title="Tools" tabindex="36"
data-l10n-id="tools">
<span data-l10n-id="tools_label">Tools</span>
</button>
</div>
<div class="outerCenter">
<div class="innerCenter" id="toolbarViewerMiddle">
<div class="splitToolbarButton">
<button id="zoomOut" class="toolbarButton zoomOut" title="Zoom Out" tabindex="21"
data-l10n-id="zoom_out">
<span data-l10n-id="zoom_out_label">Zoom Out</span>
</button>
<div class="splitToolbarButtonSeparator"></div>
<button id="zoomIn" class="toolbarButton zoomIn" title="Zoom In" tabindex="22"
data-l10n-id="zoom_in">
<span data-l10n-id="zoom_in_label">Zoom In</span>
</button>
</div>
<span id="scaleSelectContainer" class="dropdownToolbarButton">
<select id="scaleSelect" title="Zoom" tabindex="23" data-l10n-id="zoom">
<option id="pageAutoOption" title="" value="auto" data-l10n-id="page_scale_auto">Automatic Zoom</option>
<option id="pageAutoOption" title="" value="auto"
data-l10n-id="page_scale_auto">Automatic Zoom</option>
<option id="pageActualOption" title="" value="page-actual" data-l10n-id="page_scale_actual">Actual Size</option>
<option id="pageFitOption" title="" value="page-fit" data-l10n-id="page_scale_fit">Fit Page</option>
<option id="pageFitOption" title="" value="page-fit"
data-l10n-id="page_scale_fit">Fit Page</option>
<option id="pageWidthOption" title="" value="page-width" data-l10n-id="page_scale_width">Full Width</option>
<option id="customScaleOption" title="" value="custom"></option>
<option title="" value="0.5" data-l10n-id="page_scale_percent" data-l10n-args='{ "scale": 50 }'>50%</option>
<option title="" value="0.75" data-l10n-id="page_scale_percent" data-l10n-args='{ "scale": 75 }'>75%</option>
<option title="" value="1" data-l10n-id="page_scale_percent" data-l10n-args='{ "scale": 100 }' selected="selected">100%</option>
<option title="" value="1" data-l10n-id="page_scale_percent" data-l10n-args='{ "scale": 100 }'
selected="selected">100%</option>
<option title="" value="1.25" data-l10n-id="page_scale_percent" data-l10n-args='{ "scale": 125 }'>125%</option>
<option title="" value="1.5" data-l10n-id="page_scale_percent" data-l10n-args='{ "scale": 150 }'>150%</option>
<option title="" value="2" data-l10n-id="page_scale_percent" data-l10n-args='{ "scale": 200 }'>200%</option>
@ -248,234 +277,309 @@ http://sourceforge.net/adobe/cmap/wiki/License/
<option title="" value="4" data-l10n-id="page_scale_percent" data-l10n-args='{ "scale": 400 }'>400%</option>
</select>
</span>
</div>
</div>
</div>
<div id="loadingBar">
<div class="progress">
<div class="glimmer">
</div>
</div>
</div>
</div>
</div>
</div>
<div id="loadingBar">
<div class="progress">
<div class="glimmer">
</div>
</div>
</div>
</div>
</div>
<menu type="context" id="viewerContextMenu">
<menuitem id="contextFirstPage" label="First Page"
data-l10n-id="first_page"></menuitem>
<menuitem id="contextLastPage" label="Last Page"
data-l10n-id="last_page"></menuitem>
<menuitem id="contextPageRotateCw" label="Rotate Clockwise"
data-l10n-id="page_rotate_cw"></menuitem>
<menuitem id="contextPageRotateCcw" label="Rotate Counter-Clockwise"
data-l10n-id="page_rotate_ccw"></menuitem>
</menu>
<div id="viewerContainer" tabindex="0">
<div id="viewer" class="pdfViewer"></div>
</div>
<div id="errorWrapper" hidden='true'>
<div id="errorMessageLeft">
<span id="errorMessage"></span>
<button id="errorShowMore" data-l10n-id="error_more_info">
More Information
</button>
<button id="errorShowLess" data-l10n-id="error_less_info" hidden='true'>
Less Information
</button>
</div>
<div id="errorMessageRight">
<button id="errorClose" data-l10n-id="error_close">
Close
</button>
</div>
<div class="clearBoth"></div>
<textarea id="errorMoreInfo" hidden='true' readonly="readonly"></textarea>
</div>
</div> <!-- mainContainer -->
<div id="overlayContainer" class="hidden">
<div id="passwordOverlay" class="container hidden">
<div class="dialog">
<div class="row">
<p id="passwordText" data-l10n-id="password_label">Enter the password to open this PDF file:</p>
</div>
<div class="row">
<input type="password" id="password" class="toolbarField" />
</div>
<div class="buttonRow">
<button id="passwordCancel" class="overlayButton"><span data-l10n-id="password_cancel">Cancel</span></button>
<button id="passwordSubmit" class="overlayButton"><span data-l10n-id="password_ok">OK</span></button>
</div>
</div>
</div>
<div id="documentPropertiesOverlay" class="container hidden">
<div class="dialog">
<div class="row">
<span data-l10n-id="document_properties_file_name">File name:</span> <p id="fileNameField">-</p>
</div>
<div class="row">
<span data-l10n-id="document_properties_file_size">File size:</span> <p id="fileSizeField">-</p>
</div>
<div class="separator"></div>
<div class="row">
<span data-l10n-id="document_properties_title">Title:</span> <p id="titleField">-</p>
</div>
<div class="row">
<span data-l10n-id="document_properties_author">Author:</span> <p id="authorField">-</p>
</div>
<div class="row">
<span data-l10n-id="document_properties_subject">Subject:</span> <p id="subjectField">-</p>
<menu type="context" id="viewerContextMenu">
<menuitem id="contextFirstPage" label="First Page"
data-l10n-id="first_page"></menuitem>
<menuitem id="contextLastPage" label="Last Page"
data-l10n-id="last_page"></menuitem>
<menuitem id="contextPageRotateCw" label="Rotate Clockwise"
data-l10n-id="page_rotate_cw"></menuitem>
<menuitem id="contextPageRotateCcw" label="Rotate Counter-Clockwise"
data-l10n-id="page_rotate_ccw"></menuitem>
</menu>
<div id="viewerContainer" tabindex="0">
<div id="viewer" class="pdfViewer"></div>
</div>
<div class="row">
<span data-l10n-id="document_properties_keywords">Keywords:</span> <p id="keywordsField">-</p>
</div>
<div class="row">
<span data-l10n-id="document_properties_creation_date">Creation Date:</span> <p id="creationDateField">-</p>
</div>
<div class="row">
<span data-l10n-id="document_properties_modification_date">Modification Date:</span> <p id="modificationDateField">-</p>
</div>
<div class="row">
<span data-l10n-id="document_properties_creator">Creator:</span> <p id="creatorField">-</p>
</div>
<div class="separator"></div>
<div class="row">
<span data-l10n-id="document_properties_producer">PDF Producer:</span> <p id="producerField">-</p>
</div>
<div class="row">
<span data-l10n-id="document_properties_version">PDF Version:</span> <p id="versionField">-</p>
<div id="errorWrapper" hidden='true'>
<div id="errorMessageLeft">
<span id="errorMessage"></span>
<button id="errorShowMore" data-l10n-id="error_more_info">
More Information
</button>
<button id="errorShowLess" data-l10n-id="error_less_info" hidden='true'>
Less Information
</button>
</div>
<div id="errorMessageRight">
<button id="errorClose" data-l10n-id="error_close">
Close
</button>
</div>
<div class="clearBoth"></div>
<textarea id="errorMoreInfo" hidden='true' readonly="readonly"></textarea>
</div>
<div class="row">
<span data-l10n-id="document_properties_page_count">Page Count:</span> <p id="pageCountField">-</p>
</div> <!-- mainContainer -->
<div id="overlayContainer" class="hidden">
<div id="passwordOverlay" class="container hidden">
<div class="dialog">
<div class="row">
<p id="passwordText" data-l10n-id="password_label">Enter the password to open this PDF file:</p>
</div>
<div class="row">
<input type="password" id="password" class="toolbarField"/>
</div>
<div class="buttonRow">
<button id="passwordCancel" class="overlayButton"><span data-l10n-id="password_cancel">Cancel</span>
</button>
<button id="passwordSubmit" class="overlayButton"><span data-l10n-id="password_ok">OK</span>
</button>
</div>
</div>
</div>
<div class="buttonRow">
<button id="documentPropertiesClose" class="overlayButton"><span data-l10n-id="document_properties_close">Close</span></button>
<div id="documentPropertiesOverlay" class="container hidden">
<div class="dialog">
<div class="row">
<span data-l10n-id="document_properties_file_name">File name:</span>
<p id="fileNameField">-</p>
</div>
<div class="row">
<span data-l10n-id="document_properties_file_size">File size:</span>
<p id="fileSizeField">-</p>
</div>
<div class="separator"></div>
<div class="row">
<span data-l10n-id="document_properties_title">Title:</span>
<p id="titleField">-</p>
</div>
<div class="row">
<span data-l10n-id="document_properties_author">Author:</span>
<p id="authorField">-</p>
</div>
<div class="row">
<span data-l10n-id="document_properties_subject">Subject:</span>
<p id="subjectField">-</p>
</div>
<div class="row">
<span data-l10n-id="document_properties_keywords">Keywords:</span>
<p id="keywordsField">-</p>
</div>
<div class="row">
<span data-l10n-id="document_properties_creation_date">Creation Date:</span>
<p id="creationDateField">-</p>
</div>
<div class="row">
<span data-l10n-id="document_properties_modification_date">Modification Date:</span>
<p id="modificationDateField">-</p>
</div>
<div class="row">
<span data-l10n-id="document_properties_creator">Creator:</span>
<p id="creatorField">-</p>
</div>
<div class="separator"></div>
<div class="row">
<span data-l10n-id="document_properties_producer">PDF Producer:</span>
<p id="producerField">-</p>
</div>
<div class="row">
<span data-l10n-id="document_properties_version">PDF Version:</span>
<p id="versionField">-</p>
</div>
<div class="row">
<span data-l10n-id="document_properties_page_count">Page Count:</span>
<p id="pageCountField">-</p>
</div>
<div class="buttonRow">
<button id="documentPropertiesClose" class="overlayButton"><span
data-l10n-id="document_properties_close">Close</span></button>
</div>
</div>
</div>
</div>
</div>
</div> <!-- overlayContainer -->
</div> <!-- overlayContainer -->
</div> <!-- outerContainer -->
<div id="printContainer"></div>
<div id="mozPrintCallback-shim" hidden>
<style>
@media print {
#printContainer div {
page-break-after: always;
page-break-inside: avoid;
}
}
</style>
<style scoped>
#mozPrintCallback-shim {
position: fixed;
top: 0;
left: 0;
height: 100%;
width: 100%;
z-index: 9999999;
display: block;
text-align: center;
background-color: rgba(0, 0, 0, 0.5);
}
#mozPrintCallback-shim[hidden] {
display: none;
}
@media print {
#mozPrintCallback-shim {
display: none;
}
}
#mozPrintCallback-shim .mozPrintCallback-dialog-box {
display: inline-block;
margin: -50px auto 0;
position: relative;
top: 45%;
left: 0;
min-width: 220px;
max-width: 400px;
padding: 9px;
border: 1px solid hsla(0, 0%, 0%, .5);
border-radius: 2px;
box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3);
background-color: #474747;
color: hsl(0, 0%, 85%);
font-size: 16px;
line-height: 20px;
}
#mozPrintCallback-shim .progress-row {
clear: both;
padding: 1em 0;
}
#mozPrintCallback-shim progress {
width: 100%;
}
#mozPrintCallback-shim .relative-progress {
clear: both;
float: right;
}
#mozPrintCallback-shim .progress-actions {
clear: both;
}
</style>
<div class="mozPrintCallback-dialog-box">
&lt;!&ndash; TODO: Localise the following strings &ndash;&gt;
Preparing document for printing...
<div class="progress-row">
<progress value="0" max="100"></progress>
<span class="relative-progress">0%</span>
</div>
<div class="progress-actions">
<input type="button" value="Cancel" class="mozPrintCallback-cancel">
<style>
@media print {
#printContainer div {
page-break-after: always;
page-break-inside: avoid;
}
}
</style>
<style scoped>
#mozPrintCallback-shim {
position: fixed;
top: 0;
left: 0;
height: 100%;
width: 100%;
z-index: 9999999;
display: block;
text-align: center;
background-color: rgba(0, 0, 0, 0.5);
}
#mozPrintCallback-shim[hidden] {
display: none;
}
@media print {
#mozPrintCallback-shim {
display: none;
}
}
#mozPrintCallback-shim .mozPrintCallback-dialog-box {
display: inline-block;
margin: -50px auto 0;
position: relative;
top: 45%;
left: 0;
min-width: 220px;
max-width: 400px;
padding: 9px;
border: 1px solid hsla(0, 0%, 0%, .5);
border-radius: 2px;
box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3);
background-color: #474747;
color: hsl(0, 0%, 85%);
font-size: 16px;
line-height: 20px;
}
#mozPrintCallback-shim .progress-row {
clear: both;
padding: 1em 0;
}
#mozPrintCallback-shim progress {
width: 100%;
}
#mozPrintCallback-shim .relative-progress {
clear: both;
float: right;
}
#mozPrintCallback-shim .progress-actions {
clear: both;
}
</style>
<div class="mozPrintCallback-dialog-box">
&lt;!&ndash; TODO: Localise the following strings &ndash;&gt;
Preparing document for printing...
<div class="progress-row">
<progress value="0" max="100"></progress>
<span class="relative-progress">0%</span>
</div>
<div class="progress-actions">
<input type="button" value="Cancel" class="mozPrintCallback-cancel">
</div>
</div>
</div>
</div>
</body>
<script>
$("#loading").css("background","url(../../img/load.gif) no-repeat 10px 50%");
var interval = setInterval('loadPdf()', 1000);
function loadPdf() {
if (PDFViewerApplication.pdfDocument == null) {
$('#myModal').modal('show');
} else {
clearInterval(interval);
$('#myModal').remove();
$("#loading").css("background", "url(../../img/load.gif) no-repeat 10px 50%");
var interval = setInterval('loadPdf()', 1000);
function loadPdf() {
if (PDFViewerApplication.pdfDocument == null) {
$('#myModal').modal('show');
} else {
clearInterval(interval);
$('#myModal').remove();
}
}
}
$(function(){
//获取父页面打印权限显示打印按钮
var print = parent.$("#print").val();
if(print == 1){
$("#print").show();
$(function () {
//获取父页面打印权限显示打印按钮
var print = parent.$("#print").val();
if (print == 1) {
$("#print").show();
}
})
//屏蔽鼠标右键
document.oncontextmenu = function (e) {
var e = e || window.event;
e.returnValue = false;
return false;
}
})
//屏蔽鼠标右键
document.oncontextmenu = function(e) {
var e = e || window.event;
e.returnValue = false;
return false;
}
//禁止快捷键打印
function disabledPrint(){
if(event.keyCode==80 && event.ctrlKey){
event.keyCode=0;
event.returnValue=false;
//禁止快捷键打印
function disabledPrint() {
if (event.keyCode == 80 && event.ctrlKey) {
event.keyCode = 0;
event.returnValue = false;
}
if (event.ctrlKey && event.keyCode == 83) {
event.preventDefault();
event.returnValue = false;
return false;
}
}
var pageNum = 1;
var scrollFunc = function (e) {
//当前页码
var currentPageNum = document.getElementById('pageNumber').value;
if (pageNum != currentPageNum) {
pageNum = currentPageNum;
//获取用户id
var userId = window.opener.$("#userId").val();
//获取分类key
var key = getQueryVariable("key");
//设置页码缓存
var localStorageKey = 'page_'+userId + '_' + key;
//获取页面上
var list = window.opener.table2List;
var page = 0;
for (var i = 0; i < list.length; i++) {
//跳过根节点
if(list[i].id != 0) {
//获取detailsIds集合
var ids = list[i].ids;
//获取页码集合
var pageCounts = list[i].pageCounts;
//遍历ids
var idArr = ids.split(",");
var pageCountArr = pageCounts.split(",");
for (var j = 0; j < idArr.length; j++) {
//计算页码
var pageCount = Number(pageCountArr[j]);
for (var l = 0; l < pageCount; l++) {
//累加页码
page += 1;
if(page == Number(pageNum)){
//设置缓存
var localStorageValue = idArr[j] + "_" + (l+1) + "_" + new Date().getTime();
localStorage.setItem(localStorageKey, localStorageValue);
breakFlag = true;
//退出循环
return ;
}
}
}
}
}
}
}
if (event.ctrlKey && event.keyCode == 83) {
event.preventDefault();
event.returnValue = false;
return false;
/*注册事件*/
if (document.addEventListener) {
document.addEventListener('DOMMouseScroll', scrollFunc, false);
}
}
window.onmousewheel = document.onmousewheel = scrollFunc;
</script>
</html>

@ -6395,7 +6395,6 @@ var PDFViewerApplication = {
storedHash = 'page=1&zoom=' + self.preferenceDefaultZoomValue;
}
self.setInitialView(storedHash, scale);
// Make all navigation keys work on document load,
// unless the viewer is embedded in a web page.
if (!self.isViewerEmbedded) {
@ -6514,9 +6513,10 @@ var PDFViewerApplication = {
// When opening a new file (when one is already loaded in the viewer):
// Reset 'currentPageNumber', since otherwise the page's scale will be wrong
// if 'currentPageNumber' is larger than the number of pages in the file.
//获取url中的page,跳转页数
var page = getQueryVariable("page");
document.getElementById('pageNumber').value =
this.pdfViewer.currentPageNumber = 1;
this.pdfViewer.currentPageNumber = page==null?1:page;
if (PDFHistory.initialDestination) {
this.navigateTo(PDFHistory.initialDestination);
PDFHistory.initialDestination = null;
@ -7604,5 +7604,14 @@ window.addEventListener('afterprint', function afterPrint(evt) {
window.requestAnimationFrame(resolve);
});
})();
function getQueryVariable(variable){
var query = window.location.search.substring(1);
var vars = query.split("&");
for (var i=0;i<vars.length;i++) {
var pair = vars[i].split("=");
if(pair[0] == variable){return pair[1];}
}
return(false);
}

Loading…
Cancel
Save