计量中心项目

This commit is contained in:
2022-07-25 11:09:12 +08:00
parent 5911f42537
commit c8bb34e6cb
2143 changed files with 306192 additions and 0 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 84 KiB

View File

@@ -0,0 +1,59 @@
<%@ WebHandler Language="C#" Class="HebCAService" %>
using System;
using System.Web;
using hyplat.bean.htmlsignature;
using hyplat.biz.daoimpl;
using System.Data;
using hyplat.biz.service.htmlsignature;
using hyplat.biz;
public class HebCAService : IHttpHandler {
public void ProcessRequest (HttpContext context) {
string keyvalue = context.Request["keyvalue"];
string InstanceRecordId = context.Request["InstanceRecordId"];
string filesId = context.Request["filesId"];
string opinion = context.Request["opinion"];
HTMLSignatureService htmlsignatureService = ServiceManager.getServiceBean("HTMLSignatureService") as HTMLSignatureService;
if (keyvalue!=null && keyvalue != "")
{
HTMLSignature htmlsignature = new HTMLSignature();
htmlsignature.ID = SIDWrapper.getSID("HTMLSignature");
htmlsignature.DocumentID = filesId;
htmlsignature.SignatureID = InstanceRecordId;
htmlsignature.Signature = keyvalue;
DataTable dt = htmlsignatureService.GetByDocumentIDAndSignatureId(htmlsignature.DocumentID, htmlsignature.SignatureID);
if (dt.Rows.Count > 0)
{
htmlsignature.ID = dt.Rows[0]["ID"].ToString();
htmlsignatureService.Update(htmlsignature);
}
else
{
htmlsignatureService.Add(htmlsignature);
}
}
else
{
string Signature = "";
DataTable dt = htmlsignatureService.GetByDocumentIDAndSignatureId(filesId, InstanceRecordId);
if (dt.Rows.Count > 0)
{
Signature = dt.Rows[0]["Signature"].ToString();
}
context.Response.Write(InstanceRecordId + "," + Signature + "," + opinion);
}
}
public bool IsReusable {
get {
return false;
}
}
}

View File

@@ -0,0 +1,366 @@
function HebcaClient()
{
this.clientCtrl = null;
}
HebcaClient.prototype = {
/*
旧版客户端实现
_GetClientCtrl: function() {
if (this.clientCtrl)
return this.clientCtrl;
else {
document.body.insertAdjacentHTML(
"afterEnd",
'<OBJECT classid="CLSID:78D1D24A-C552-4402-95FA-E9CA2E8924F2" id="HebcaClient" VIEWASTEXT width="1" height="1"></object>'
);
this.clientCtrl = document.getElementById("HebcaClient");
return this.clientCtrl;
}
},
*/
_GetClientCtrl: function() {
if (this.clientCtrl)
return this.clientCtrl;
else {
var certMgrObj;
try {
certMgrObj = new ActiveXObject("HebcaP11X.CertMgr");
}
catch (e) {
throw Error("没有安装客户端软件或IE阻止其运行");
}
certMgrObj.Licence = "aWViYx5oZWIcYWhlnWxhaJplY2FoZWJjoKw7gT6hg+O7EtJhfalPbDH9UlE=";
this.clientCtrl = certMgrObj;
return this.clientCtrl;
}
},
Sign: function(source) {
var c = this._GetClientCtrl().SelectSignCert();
return c.SignText(source, 1);
},
GetSignCert: function() {
return this._GetClientCtrl().SelectSignCert().GetCertB64();
},
GetCryptCert: function() {
return this._GetClientCtrl().SelectEncryptCert().GetCertB64();
},
//登录设备
Login: function(pwd) {
this._GetClientCtrl().SelectDevice().Login(pwd);
},
//退出设备
Logout:function(){
this._GetClientCtrl().SelectSignCert().Logout();
},
GetSubjectItem: function(item) {
return this._GetClientCtrl().SelectSignCert().GetSubjectItem(item);
}
};
/*
function HebcaEncrypt(){
this.alg = 0;
this.userCertMap = new Array();
this.fileIn = "";
this.fileOut = "";
this.userKeyMap = new Array();
this.clientCtrl = null;
}
HebcaEncrypt.prototype =
{
_GetClientCtrl: function() {
if (this.clientCtrl)
return this.clientCtrl;
else {
var certMgrObj;
try {
certMgrObj = new ActiveXObject("HebcaClient.CertMgr");
}
catch (e) {
throw Error("没有安装客户端软件或IE组织其运行");
}
certMgrObj.Licence = "aWViYx5oZWIcYWhlnWxhaJplY2FoZWJjoKw7gT6hg+O7EtJhfalPbDH9UlE=";
this.clientCtrl = certMgrObj;
return this.clientCtrl;
}
},
//添加一个接收者
AddReciever : function(user,cert){
this.userCertMap[this.userCertMap.length]={
user: user,
cert: cert
};
},
//加密
Encrypt : function(){
// _GetClientCtrl().
},
//获取用户名和密钥的对应字符串,字符串格式如下:
//用户1:用户1密钥;用户2:用户2密钥; ....
GetUserKeyString : function(){
var str="";
for(var i=0;i<this.userKeyMap.length;i++)
{
str=this.userKeyMap[i].user+":"+this.userKeyMap[i].key;
if(i!=this.userKeyMap.length-1)
str+=";";
}
return str;
}
};
*/
//第一次提交提示签名,第二次提交可以直接提交
var count = 0;
function checkSignature() {
var mLength1 = document.getElementsByName("iHtmlSignature").length;
//已签名
if (mLength1 > 0) {
return true;
}
else {
//第二次提交,签不签名都提交
if (count == 1) {
count = 0;
return true;
}
else {
//第一次提交,提示
alert("需要先签名后,再提交!");
count += 1;
return false;
}
}
//return true;
}
//作用:进行签名
function doSignature(objectname,caName,signatureid,documentid) {
if (document.getElementById("txtTransactMessage").value.replace(/^\s+|\s+$/g, '') == "") {
alert('请先填写处理意见,再签名!');
return false;
}
var client = new HebcaClient();
var aa = client.GetSubjectItem("G");
if (caName == "") {
alert('请先到个人设置中绑定证书,再进行签名!');
return false;
}
if (aa != caName ) {
alert('请用登录的key进行签名');
return false;
}
//对各个字段值以分号连接组织成一串字符串
var formData = document.getElementById("txtTransactMessage").value; //自定义组织数据结构形式
try {
//调用签章控件的盖章接口, 显示电子签章并生成签章结果
archivesSealResult = document.getElementById(objectname).SignAndSealForResult(formData, "", 1, false, true);
document.getElementById("archivesSealResult").value = archivesSealResult;
if (archivesSealResult != null && archivesSealResult != "") {
$.ajax({
type: "post",
url: "../HebCAService.ashx",
data: { keyvalue: archivesSealResult, InstanceRecordId: signatureid, filesId: documentid },
dataType: 'text',
success: function(msg) {
},
error: function() {
// alert("默认审核人未能自动获取,请点击“选择用户”");
}
});
}
} catch (e) {
alert(e.message);
}
}
//处理环节不能为空,选择用户不能为空,处理意见不能为空
function submitCheck(isSignatureBool, caName) {
var radios = document.getElementsByName("radiobutton");
var j = 0;
var m = 0;
if (radios != null) {
var i;
for (i = 0; i < radios.length; i++) {
if (radios[i].checked) {
j = j + 1;
}
else {
m = 0;
}
}
}
if (j == 0) {
alert("请选择处理环节!");
return false;
}
if (document.getElementById("selectUser").value == "") {
alert('请填写选择用户!');
return false;
}
if (document.getElementById("txtTransactMessage").value.replace(/^\s+|\s+$/g, '') == "") {
alert("请填写处理意见!");
return false;
}
//验证意见的长度 不能超过250个汉字或500个字符 一个汉字=2个字符
if (!checkdata()) {
alert("不能超过250个汉字或500个字符!");
return false;
}
//检查签章
return SignatureOnOpinion(isSignatureBool, caName);
}
//意见审批页面必须要签名的判断
function SignatureOnOpinion(isSignatureBool, caName) {
//验证是否需要签名
if (new String(isSignatureBool).toLowerCase() == "true") {
//验证是否签名
if (document.getElementById("archivesSealResult").value == "") {
alert("请先签名,再提交!");
return false;
}
//验证签名是否有效
document.getElementById(caName).VerifyAndShowSealWithResult(document.getElementById("archivesSealResult").value, 1, document.getElementById("txtTransactMessage").value);
var result = document.getElementById(caName).GetVerifyResult();
if (result != "0") {
alert("意见已修改,请在签名上点击右键,选择撤销签名,撤销后重新签名!");
return false;
}
}
return true;
}
//在网页中验证和显示签章
function verifyAndShowSeal(documentid, url1) {
var obs = document.getElementsByName("object");
for (var i = 0; i < obs.length; i++) {
var id = obs.item(i).id;
var opinion = obs.item(i).title;
$.ajax({
type: "post",
url: url1+"HebCAService.ashx",
data: { InstanceRecordId: id, filesId: documentid, opinion: opinion },
dataType: 'text',
success: function(msg) {
if (msg.length > 0) {
var a = msg.split(",");
if (a.length == 3) {
document.getElementById(a[0]).VerifyAndShowSealWithResult(a[1], 1, a[2]);
if (document.getElementById(a[0] + "1") != null) {
document.getElementById(a[0] + "1").VerifyAndShowSealWithResult(a[1].replace(" ", "+"), 1, a[2]);
}
}
}
},
error: function(msg) {
alert(msg);
}
});
}
}
function checkdata() {
//判断输入长度是否合法
if (strlen(document.getElementById("txtTransactMessage").value) > 500) {
return false;
}
else {
return true;
}
}
//获取字符串长度
function strlen(str) {
var totalCount = 0;
for (var i = 0; i < str.length; i++) {
var c = str.charCodeAt(i);
if ((c >= 0x0001 && c <= 0x007e) || (0xff60 <= c && c <= 0xff9f)) {
totalCount++;
}
else {
totalCount += 2;
}
}
return totalCount;
}
//无效章的判断
function TjConfirm(validate) {
if (validate == "0")
{
var j = 0;
var mSignXMl = DocForm.SignatureControl.GetSignatureInfo();
var XmlObj = new ActiveXObject("Microsoft.XMLDOM");
XmlObj.async = false;
var LoadOk = XmlObj.loadXML(mSignXMl);
var ErrorObj = XmlObj.parseError;
var CurNodes = XmlObj.getElementsByTagName("iSignature_HTML");
for (var iXml = 0; iXml < CurNodes.length; iXml++)
{
var TmpNodes = CurNodes.item(iXml);
if (TmpNodes.selectSingleNode("SignatureResult").text == "False")
{
j = j + 1;
}
}
if (j >= 1)
{
alert("当前文档内有" + j + "个无效章,请撤销重新签章后,再提交!");
return false;
}
else
{
return true;
}
}
else
{
return false;
}
}

View File

@@ -0,0 +1,703 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="JFWEdit.aspx.cs" Inherits="office_workflow_OAjfw_JFWEdit" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
<title>您现在正在办理的工作是:<%=dtPro.Rows[0]["processName"].ToString()%></title>
<script type="text/javascript" src="../../../js/fullscreen.js"></script>
<script src="../../../js/HebcaClient.js" type="text/javascript"></script>
<link href="../../../css/layout.css" rel="stylesheet" type="text/css" />
<link href="../../../css/columns.css" rel="stylesheet" type="text/css" />
<script src="../../../js/ChooseUser.js" type="text/javascript"></script>
<script language="javascript" src="../../../js/control.js" type="text/javascript"></script>
<script language="javascript" src="../../../js/jquery-1.3.2-vsdoc2.js"></script>
<link href="../../../css/css.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" language="javascript">
function T()
{
document.getElementById('ceng').style.display='none';
document.getElementById('close').style.display='none';
var cslb="";
var radios=document.getElementsByName("users");
for(var i=0;i<radios.length;i++){
if(radios[i].checked==true){
document.getElementById("selectUser").value=radios[i].value;
document.getElementById("hh").value=radios[i].id;
}
}
}
function Pub()
{
document.getElementById("change").value="1";
}
// function Pub1()
// {
// document.getElementById("change1").value="1";
// }
</script>
<script type="text/javascript" language="javascript">
function GetId()
{
document.getElementById("selectUser").value="";
var radios = document.getElementsByName("radiobutton");
for (var i = 0; i < radios.length; i++) {
if (radios[i].checked == true) {
document.getElementById("HiddenField4").value = radios[i].id;
document.getElementById("hiddenradio").value = radios[i].value;
$.ajax({
type:"post",
url:"../GetActionPerson.ashx",
data:{name:document.getElementById("HiddenField4").value,shili:document.getElementById("HiddenFieldShiLi").value},
dataType:'text',
success: function(msg)
{
if(msg.length>2){
var a=msg.split(",");
if(a[0]=="1")
{
document.getElementById("btnSelect").style.display="none";
}
else
{
document.getElementById("btnSelect").style.display="block";
}
document.getElementById("hh").value=a[1];
document.getElementById("selectUser").value=a[2];
}
// else
// {
// document.getElementById("selectUser").value="";
// }
},
error: function()
{
// alert("默认审核人未能自动获取,请点击“选择用户”");
}
});
}
}
}
</script>
<script type="text/javascript" language="javascript">
function Fload()
{
document.getElementById('iDBody1').style.display = "";
document.getElementById('iDBody2').style.display = "none";
document.getElementById('iDBody3').style.display = "none";
document.getElementById('iDBody4').style.display = "none";
document.getElementById('iDBody5').style.display = "";
document.getElementById('topdiv').style.display = "";
document.getElementById('divtext').style.display = "";
}
var iBStatus="0";
$(function() {
document.getElementById("iUpload").src = "../UploadFile.aspx?filesID=" + document.getElementById("txthide").value;
//上传《公平竞争自查、审查表》
document.getElementById("iUploadgpjzsc").src = "UploadFile.aspx?filesID=" + document.getElementById("txthide").value + "&ordel=1";
//选择是否涉及下拉框时,是否显示“下载模板”和上传自查、审查表的附件
$("#ddlaboutmark").change(function() {
if ($("#ddlaboutmark").val() == "涉及") {
$("#gpjzsc").css("display", "");
$("#uptabletr").css("display", "");
}
else {
$("#gpjzsc").css("display", "none");
$("#uptabletr").css("display", "none");
}
});
//页面加载时判断是否显示“下载模板”和上传自查、审查表的附件
if ($("#ddlaboutmark").val() == "涉及") {
$("#gpjzsc").css("display", "");
$("#uptabletr").css("display", "");
}
else {
$("#gpjzsc").css("display", "none");
$("#uptabletr").css("display", "none");
}
$("#docedit").click(function() {
if (document.getElementById("change").value != "1") {
alert("请选择信息公开类别!");
return;
}
if (document.getElementById("ddlaboutmark").value == "请选择") {
alert("请选择是否涉及市场主体经济活动!");
return;
}
// if(document.getElementById("change1").value!="1")
// {
// alert("请选择是否纳入体系文件!");
// return;
// }
$("#iDBody1").hide();
if (iBStatus == "1") {
CopyTextToBookMark();
}
$("#iDBody2").show();
$("#iDBody3").hide();
$("#iDBody4").hide();
$("#iDBody5").show();
// setparent("true");
});
$("#returnMenu").click(function() {
$("#iDBody2").hide();
$("#iDBody1").show();
$("#iDBody3").hide();
$("#iDBody4").hide();
$("#iDBody5").show();
//switchBar("true");
// setparent("false");
});
$("#fujian").click(function() {
if (document.getElementById("change").value != "1") {
alert("请选择信息公开类别!");
return;
}
if (document.getElementById("ddlaboutmark").value == "请选择") {
alert("请选择是否涉及市场主体经济活动!");
return;
}
if ($("#ddlaboutmark").val() == "涉及" && $("#iUploadgpjzsc").contents().find("#dlAcc").html() == null) {
alert("涉及市场主体经济活动时,请上传《公平竞争自查、审查表》!")
return;
}
// if(document.getElementById("change1").value!="1")
// {
// alert("请选择是否纳入体系文件!");
// return;
// }
$("#iDBody2").hide();
$("#iDBody1").hide();
$("#iDBody3").show();
$("#iDBody4").hide();
$("#iDBody5").show();
//switchBar("true");
// setparent("false");
});
$("#Btijiao").click(function() {
if (document.getElementById("TxtZCJG").value == "") {
alert("主送机关不能为空!");
$("#iDBody2").hide();
$("#iDBody1").show();
$("#iDBody3").hide();
$("#iDBody4").hide();
$("#iDBody5").show();
// setparent("false");
} else if (document.getElementById("change").value != "1") {
alert("请选择信息公开类别!");
return;
} else if (document.getElementById("ddlaboutmark").value == "请选择") {
alert("请选择是否涉及市场主体经济活动!");
return;
}
else if ($("#ddlaboutmark").val() == "涉及" && $("#iUploadgpjzsc").contents().find("#dlAcc").html() == null) {
alert("涉及市场主体经济活动时,请上传《公平竞争自查、审查表》!")
return;
}
// else if(document.getElementById("change1").value!="1")
// {
// alert("请选择是否纳入体系文件!");
// return;
// }
else {
if (iBStatus == "1") {
SoaSave();
$("#iDBody2").hide();
$("#iDBody1").hide();
$("#iDBody3").hide();
$("#iDBody4").show();
$("#iDBody5").hide();
$("#topdiv").hide();
$("#divtext").hide();
// setparent("false");
}
else {
alert("您还未编辑正文,编辑正文后才可以提交!");
iBStatus = "1";
$("#iDBody1").hide();
if (iBStatus == "1") {
CopyTextToBookMark();
}
$("#iDBody2").show();
$("#iDBody3").hide();
$("#iDBody4").hide();
$("#iDBody5").show();
// setparent("true");
}
}
});
$("#toBack").click(function() {
$("#iDBody2").hide();
$("#iDBody1").show();
$("#iDBody3").hide();
$("#iDBody4").hide();
$("#iDBody5").show();
$("#topdiv").show();
$("#divtext").show();
//switchBar("true");
// setparent("false");
});
});
function CopyTextToBookMark()
{
try
{
BookMarkReplace();
}
catch(err){
// alert(err);
}
finally{
}
}
function SetWinHeight(obj)
{
var win=obj;
if (document.getElementById)
{
if (win && !window.opera)
{
if (win.contentDocument && win.contentDocument.body.offsetHeight)
win.height = win.contentDocument.body.offsetHeight;
else if(win.Document && win.Document.body.scrollHeight)
win.height = win.Document.body.scrollHeight;
}
}
}
function SoaSave()
{
document.getElementById("selectJJCD").value = document.getElementById("DrpJJCD").value;
document.getElementById("selectOrPublic").value = document.getElementById("DrpOrPublic").value;
document.getElementById("selectAboutMark").value = document.getElementById("ddlaboutmark").value;
document.getElementById("txtFileCode").value=document.getElementById("txthide").value;
// document.getElementById("DropTX").value=document.getElementById("DropType").value;
if(iBStatus=="1")
document.getElementById("SOAOfficeCtrl").WebSave();
}
</script>
<script type="text/javascript" language="javascript">
//签名
function DoSignature() {
doSignature("ObjWebSealCtrl2", "<%=caName %>", "<%=signatureid %>", "<%=documentid %>");
}
//提交检查
function SubmitCheck() {
return submitCheck('<%=isqzbool %>', "ObjWebSealCtrl2");
}
</script>
</head>
<body style="padding:2px;" onload="verifyAndShowSeal('<%=documentid %>','../');">
<form id="DocForm" runat="server" >
<div class="workflowhere">
您现在正在办理的工作是:<%=dtPro.Rows[0]["processName"].ToString()%>
</div>
<div class="workflowright" >
<div id="topdiv" class="linktitle">
<a id="returnMenu" style=" text-decoration :underline; cursor:pointer;">1)审核单</a>&nbsp;
<a id="docedit" style=" text-decoration:underline;cursor:pointer;">2)编辑正文</a>&nbsp;
<a id="fujian" style="text-decoration:underline;cursor:pointer;display:none;">3)上传非编辑型附件 </a></div>
<div id="iDBody1" align="center" >
<div id="divtext" class="workflowtitle">
<span style="color:Red;">注:请填写表单中带*的项后,点击“编辑正文”</span>
</div>
<asp:HiddenField ID="HiddenFieldShiLi" runat="server" />
<asp:HiddenField ID="HiddenFieldLiuCheng" runat="server" />
<asp:HiddenField ID="HiddenFieldUserName" runat="server" />
<asp:HiddenField ID="docHead" runat="server" />
<asp:HiddenField ID="change" runat="server" />
<%--<asp:HiddenField ID="change1" runat="server" />--%>
<input type='hidden' name='archivesSealResult' id='archivesSealResult' value="" />
<table class="messagetable">
<tr>
<td class="messagetable_td_right">
&nbsp;文件标题:</td>
<td colspan="3" class="messagetable_td_body">
&nbsp;<asp:TextBox ID="TxtTitle" runat="server" Width="90%"></asp:TextBox> <asp:TextBox ID="txthide" runat="server" Width="50px" style="display:none">
</asp:TextBox></td>
</tr>
<tr>
<td class="messagetable_td_right">
&nbsp;起草处室:</td>
<td class="messagetable_td_body">
&nbsp;<asp:TextBox ID="TxtFilesDraftOffice" runat="server" Width="201px"
BackColor="#C0C0C0" ReadOnly="True"></asp:TextBox></td>
<td class="messagetable_td_right">
&nbsp;起 草&nbsp; 人:</td>
<td class="messagetable_td_body">
&nbsp;<asp:TextBox ID="TxtFilesDraftPerson" runat="server" Width="201px"
BackColor="#C0C0C0" ReadOnly="True"></asp:TextBox></td>
</tr>
<tr>
<td class="messagetable_td_right">
&nbsp;签 发 人:</td>
<td class="messagetable_td_body">
&nbsp;<asp:TextBox ID="TxtFilesIssuePerson" runat="server" Width="201px" BackColor="#C0C0C0" Enabled="False"></asp:TextBox></td>
<td class="messagetable_td_right">
签发日期:&nbsp;</td>
<td class="messagetable_td_body">
&nbsp;<asp:TextBox ID="TxtilesIssueTime" runat="server" Width="201px"
BackColor="#C0C0C0" Enabled="False"></asp:TextBox></td>
</tr>
<tr>
<td class="messagetable_td_right">
主 题 词:</td>
<td colspan="3" class="messagetable_td_body">
&nbsp;<asp:TextBox ID="TxtZTC" runat="server" Width="383px"></asp:TextBox></td>
</tr>
<tr>
<td class="messagetable_td_right">
主送机关:</td>
<td colspan="3" class="messagetable_td_body">
&nbsp;<asp:TextBox ID="TxtZCJG" runat="server" Width="383px"></asp:TextBox>
<span style="color:Red;">*</span>
</td>
</tr>
<tr>
<td class="messagetable_td_right">
抄送机关:</td>
<td colspan="3" class="messagetable_td_body">
&nbsp;<asp:TextBox ID="TxtCSJG" runat="server" Width="383px"></asp:TextBox></td>
</tr>
<tr>
<td class="messagetable_td_right">
密 &nbsp; &nbsp;级:</td>
<td class="messagetable_td_body">
&nbsp;<asp:TextBox ID="TxtMJ" runat="server" Width="201px"
ReadOnly="True" ForeColor="Red">非密</asp:TextBox></td>
<td class="messagetable_td_right">
紧急程度:</td>
<td class="messagetable_td_body">
&nbsp;<asp:DropDownList ID="DrpJJCD" runat="server">
<asp:ListItem Value="一般">一般</asp:ListItem>
<asp:ListItem Value="紧急"></asp:ListItem>
</asp:DropDownList><input type="hidden" name="selectJJCD" id="selectJJCD" value="" /></td>
</tr>
<tr>
<td class="messagetable_td_right">
文件编号:</td>
<td class="messagetable_td_body">
&nbsp;<asp:TextBox ID="TxtFileNum" runat="server" Width="201px" BackColor="#C0C0C0" Enabled="False"></asp:TextBox>
<input type="hidden" name="selectDllFileNum" id="selectDllFileNum" value=""/>
<input type="hidden" name="txtFileCode" id="txtFileCode" value="" /></td>
<td class="messagetable_td_right">
印&nbsp; &nbsp; 数:</td>
<td class="messagetable_td_body">
&nbsp;<asp:TextBox ID="TxtPageNum" runat="server" Width="201px"></asp:TextBox></td>
</tr>
<tr>
<td class="messagetable_td_right">
信息公开类别:</td>
<td class="messagetable_td_body">
&nbsp;<asp:DropDownList ID="DrpOrPublic" runat="server" onclick="Pub()">
<asp:ListItem>主动公开</asp:ListItem>
<asp:ListItem>依申请公开</asp:ListItem>
<asp:ListItem>不予公开</asp:ListItem>
</asp:DropDownList><span style="color:Red;">*</span>
<input type="hidden" name="selectOrPublic" id="selectOrPublic" value="" /></td>
<td class="messagetable_td_right">
是否涉及市场主体经济活动:</td>
<td class="messagetable_td_body">
&nbsp;<asp:DropDownList ID="ddlaboutmark" runat="server">
<asp:ListItem>请选择</asp:ListItem>
<asp:ListItem>不涉及</asp:ListItem>
<asp:ListItem>涉及</asp:ListItem>
</asp:DropDownList><span style="color:Red;">*</span>&nbsp;&nbsp;&nbsp;&nbsp;
<a id="gpjzsc" style="text-decoration: underline; cursor: pointer; display:none;" href="template\gpjzsc.doc" target="_blank">下载《公平竞争自查、审查表》模板</a>
<input type="hidden" name="selectAboutMark" id="selectAboutMark" value="" /></td>
</tr>
<tr id="uptabletr" runat="server" style="display:none;">
<td colspan="4">
<div id="iDBody31" runat="server">
<iframe name="iUploadgpjzsc" id="iUploadgpjzsc" frameborder="0" style="border: 0; height: 80px;width: 100%"></iframe>
</div>
</td></tr>
</table>
</div>
<div id="iDBody2" style="display:none;">
<div class="soaoffice">
<TABLE>
<TBODY>
<TR vAlign="top">
<TD height="100%">
<table class="soatable">
<tr>
<td><A href="javascript:jsSave();">保存文件</A></td>
</tr>
<tr>
<td><A href="javascript:saveLocal();">保存本地</A></td>
</tr>
<tr>
<td><A href="javascript:jsDocPageSetup();">页面设置</A></td>
</tr>
<tr>
<td><A href="javascript:jsPrintDoc();">打印文件</A></td>
</tr>
<tr>
<td><A href="javascript:jsFullScreen();">全屏显示</A></td>
</tr>
<tr>
<td><a disabled>文件套红</a></td>
</tr>
<tr>
<td><A href="javascript:jsStartHandDraw();">批注[<font color="#993300">绘图</font>]</A></td>
</tr>
<tr>
<td><A href="javascript:jsOpenImageDialog();">插入图片</A></td>
</tr>
<tr>
<td><A href="javascript:jsToggleTitlebar();">切换标题栏</A></td>
</tr>
<tr>
<td><A href="javascript:jsToggleMenubar();">切换菜单栏</A></td>
</tr>
<tr>
<td><A href="javascript:jsToggleToolbars();">切换工具栏</A></td>
</tr>
</table>
</TD>
<TD width="100%">
<TABLE class="soa">
<TBODY>
<TR vAlign="top" align="left">
<td height="655px">
<script language="javascript">
function SoaSaveReturn()
{
if(iBStatus=="1")
{
// document.getElementById("DropTX").value = document.getElementById("DropType").value;
document.getElementById("selectJJCD").value = document.getElementById("DrpJJCD").value;
document.getElementById("selectOrPublic").value = document.getElementById("DrpOrPublic").value;
document.getElementById("selectAboutMark").value = document.getElementById("ddlaboutmark").value;
document.getElementById("txtFileCode").value=document.getElementById("txthide").value;
document.getElementById("SOAOfficeCtrl").WebSave();
// setparent("false");
window.location.href='../Transact.aspx';
}else
{
alert("请先编辑正文!");
$("#iDBody1").hide();
$("#iDBody2").show();
$("#iDBody3").hide();
$("#iDBody4").hide();
$("#iDBody5").show();
// setparent("true");
}
}
//文档另存为Html并发布到web服务器
function SaveAsHtml()
{
if (bDocOpen)
{
formData.SOAOfficeCtrl.WebSaveAsHtml();
}
}
</script>
<script type="text/javascript" language="javascript">
function ShowUserDialog(){
var obj=new Object();
var userDg=window.showModalDialog("selectuser1/PubIndex.aspx",obj,"dialogHeight=600px;dialogWidth=800px;center=yes;");
document.getElementById("lblCheckedUser").value=userDg[0];
document.getElementById("selectUser").value = userDg[1];
}
</script>
<!--************** SOAOFFICE 客户端代码开始 ************************-->
<SCRIPT language="JavaScript" event="OnInit()" for="SOAOfficeCtrl">
// 控件打开文档前触发,用来初始化界面样式
</SCRIPT>
<SCRIPT language="JavaScript" event="OnDocumentOpened(str, obj)" for="SOAOfficeCtrl">
// 控件打开文档后立即触发,添加自定义菜单,自定义工具栏,禁止打印,禁止另存,禁止保存等等
bDocOpen = true;
// 添加自定义菜单
SOAOfficeCtrl.UserMenuCaption = "自定义菜单(&N)";
SOAOfficeCtrl.AppendMenuItem(1, "显示痕迹(&S)", false);
SOAOfficeCtrl.AppendMenuItem(2, "隐藏痕迹(&H)", false);
SOAOfficeCtrl.AppendMenuItem(3, "-");
SOAOfficeCtrl.AppendMenuItem(4, "显示标题(&T)");
SOAOfficeCtrl.AppendMenuItem(5, "-");
SOAOfficeCtrl.AppendMenuItem(6, "领导圈阅(&D)");
// SOAOfficeCtrl.AppendMenuItem(7, "插入印章(&I)",false);
SOAOfficeCtrl.AppendMenuItem(8, "接受所有修订(&A)", false);
SOAOfficeCtrl.AppendMenuItem(9, "-");
SOAOfficeCtrl.AppendMenuItem(10, "分层显示手写批注(&G)");
// document.all("SOAOfficeCtrl").Titlebar = false;
// TrackRevision(false);
BookMarkReplace();
//TrackRevision(true);
//修改痕迹所有者
//SetWordRevisionUser('<%= Session["UserName"].ToString() %>');
iBStatus="1";
//SOAOfficeCtrl.ShowRevisions = false;
</SCRIPT>
<SCRIPT language="JavaScript" event="OnDocumentClosed()" for="SOAOfficeCtrl">
bDocOpen = false;
</SCRIPT>
<SCRIPT language="JavaScript" event="OnUserMenuClick(index, caption)" for="SOAOfficeCtrl">
// 添加您的自定义菜单项事件响应
if(index == 1) SOAOfficeCtrl.ShowRevisions = true;
if(index == 2) SOAOfficeCtrl.ShowRevisions = false;
if(index == 4) alert("该菜单的标题是:"+caption);
if(index == 6) SOAOfficeCtrl.StartHandDraw();
if(index == 7) jsInsertSeal();
if(index == 8) SOAOfficeCtrl.AcceptAllRevisions();
if(index == 10) SOAOfficeCtrl.ShowHandDrawDispBar();
</SCRIPT>
<SCRIPT language="JavaScript" event="OnCustomToolBarClick(index, caption)" for="SOAOfficeCtrl">
// 添加您的自定义工具栏按钮事件响应
if(index == 1) {
formData.SOAOfficeCtrl.WebSave();
alert("保存成功!");
}
if(index == 3) SOAOfficeCtrl.ShowRevisions = !SOAOfficeCtrl.ShowRevisions;
if(index == 6) SOAOfficeCtrl.StartHandDraw();
if(index == 7) SOAOfficeCtrl.ShowHandDrawDispBar();
if(index == 9) SOAOfficeCtrl.FullScreen = !SOAOfficeCtrl.FullScreen;
</SCRIPT>
<!--************** SOAOFFICE 客户端代码结束 ************************-->
<script src="../../../js/soaoffice.js"></script>
</td>
</TR>
</TBODY></TABLE>
</TD>
</TR>
</TBODY></TABLE>
</div>
</div>
<div id="iDBody3" style="display:none;">
<iframe name="iUpload" id="iUpload" frameborder="0" style="border:0;height:auto;width:100%"></iframe>
</div>
<div id="iDBody4" style="display:<%=iDBody4Display %>;">
<table class="messagetable" style="font-size:14px;">
<tr>
<td class="messagetable_td_right">当前环节:</td>
<td colspan="2" class="messagetable_td_body">起草人办理<asp:HiddenField ID="HiddenField1" runat="server" />
<asp:HiddenField ID="hiddenFieldFileName" runat="server" />
</td>
</tr>
<tr>
<td class="messagetable_td_right" style="width:20%">处理动作:</td>
<td class="messagetable_td_body" style="width:40%"><input id="hiddenradio" name="hiddenradio" type="hidden" value=""/>
<%for (int i = 0; i < 4; i++)
{%>
<input id="<%=dtAction.Rows[i]["actionID"].ToString() %>" type="radio" name="radiobutton" value="<%=dtAction.Rows[i]["nexNodeID"].ToString() %>" onclick="document.getElementById('show').style.display='block',GetId()"/><%=dtAction.Rows[i]["actionName"].ToString()%>
<br/>
<%} %><asp:HiddenField ID="HiddenField4" runat="server" />
</td>
<td style="width:40%">
<div id="show" style="border:0px;display:none; background-color: #FFFFFF;">
<table border="0">
<tr>
<td style="border:0px"> <input type="text" name="selectUser" style="font-size:14px;" id="selectUser" value="" readonly="readonly" /> <input type="hidden" id="hh" name="hh" value=""/></td>
<td style="border:0px"> <input type="button" id="btnSelect" onclick="user_select('hh','selectUser','','1','../../userdialog/selectuser_local/PubIndex.aspx')" value="" class="xzyh" /><asp:Label style="display:none;" runat="server" ID="lblCheckedUser" Text=""></asp:Label></td>
</tr>
</table>
</div>
</td>
</tr>
<tr>
<td class="messagetable_td_right">处理意见:</td>
<td colspan="2" class="messagetable_td_body">
<asp:TextBox ID="txtTransactMessage" name="txtTransactMessage" runat="server" Font-Size="14px" Height="105px" TextMode="MultiLine"
Width="85%"></asp:TextBox><asp:HiddenField ID="hidRecordid" runat="server" />
<input id="hidopinion" name="<%=signatureid %>" type="hidden" value="" />
</td>
</tr>
<tr style="display: <%=issignature %>">
<td class="messagetable_td_right">
签名区:
</td>
<td class="messagetable_td_body">
<object style="width:94px;height:57px" id="ObjWebSealCtrl2" classid="CLSID:AD05FC92-22B4-47D3-9D3A-A8558CBFB912"></object>
</td>
<td class="messagetable_td_body" style="text-align: left; height: 35px; vertical-align: middle;">
<input type="button" value="" class="qm" onclick="DoSignature()" />
</td>
</tr>
<tr>
<td class="messagetable_td_right">提醒方式:</td>
<td colspan="2" class="messagetable_td_body">
<asp:CheckBox ID="CheckBox6" runat="server" Text="及时提醒" Checked="true" />
</td>
</tr>
<tr>
<td class="messagetable_td_right" colspan="3">
<asp:ImageButton ID="ImageButton1" runat="server"
ImageUrl="~/images/Button/button26.gif" OnClientClick="return SubmitCheck()" onclick="ImageButton1_Click" />
&nbsp;&nbsp;
<img src="../../../images/Button/button25.gif" id="toBack"/>
&nbsp;&nbsp;
<asp:ImageButton ID="ImageButton2" runat="server"
ImageUrl="~/images/Button/dybd.gif" onclick="imgBtnPrint_Click" />
</td>
</tr>
</table>
</div>
</div>
<div id="iDBody5" class="tablebtn" style="height:30px;">
<img id="Btijiao" src="../../../images/Button/button26.gif" />&nbsp;&nbsp;
<img src="../../../images/Button/bcbfh.gif" onClick="SoaSaveReturn();" />
&nbsp;&nbsp;
<asp:ImageButton ID="imgBtnPrint" runat="server"
ImageUrl="~/images/Button/dybd.gif" OnClientClick="SoaSave();" onclick="imgBtnPrint_Click" />
</div>
</form>
</body>
</html>

View File

@@ -0,0 +1,236 @@
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using hyplat.bean.workflat;
using hyplat.biz.service.workflat;
using hyplat.biz;
using System.Collections.Generic;
using hyplat.utilities;
using hyplat.biz.service.organization;
using hyplat.biz.service.user;
using System.Text;
using hyplat.bean.plat.workflow;
using hyplat.biz.service.plat.workflow;
using hyplat.bean.SMSremind;
using hyplat.biz.service.SMSremind;
using hyplat.bean.user;
public partial class office_workflow_OAjfw_JFWEdit : System.Web.UI.Page
{
public string fileName;
//public DataTable dt = new DataTable();
private ProcessInstanceService processInstanceService = ServiceManager.getServiceBean("ProcessInstanceService") as ProcessInstanceService;
private UserCaService userCaS = ServiceManager.getServiceBean("UserCaService") as UserCaService;
//当前环节的所有的action
public DataTable dtAction = null;
//流程定义
public DataTable dtPro = null;
//表单中的流程实例
public DataTable dtProcessInstance = null;
public string iDBody1Display;
public string iDBody2Display;
public string iDBody3Display;
public string iDBody4Display;
public string iDBody5Display;
//签名定义
protected string documentid = ""; //formid
protected string signatureid = ""; //instanceid
protected string caName = "";
protected string isqzbool = "";
protected string issignature = "none";
protected void Page_Load(object sender, EventArgs e)
{
//是否签章验证
isqzbool = DictionaryClass.getIsSignature(Session["RoleID"].ToString());
if (isqzbool == "true")
{
issignature = "";
//电子签名
if (Session["UserId"] != null && Session["UserId"].ToString() != "")
{
DataTable dtca = userCaS.GetByUserId(Session["UserId"].ToString());
if (dtca != null && dtca.Rows.Count > 0)
{
caName = dtca.Rows[0]["ca"].ToString();
}
}
//签章流程记录id
signatureid = hidRecordid.Value;
}
//先判断是否session过期
LoginLogic.reloadSession();
HiddenFieldUserName.Value = Session["UserName"].ToString();
//流程实例Table
dtProcessInstance = processInstanceService.getProcessInstanceByID(Request.QueryString["instanceId"].ToString());
//动作Table
NodeActionService nodeActionService = ServiceManager.getServiceBean("NodeActionService") as NodeActionService;
dtAction = nodeActionService.getActionsByNodeIDAndProcessID(dtProcessInstance.Rows[0]["currentNodeID"].ToString(), dtProcessInstance.Rows[0]["processID"].ToString());
iDBody2Display = "none";
iDBody3Display = "none";
iDBody4Display = "none";
if (!IsPostBack)
{
change.Value = "0";
HiddenField1.Value = DateTime.Now.ToString();
txthide.Text = SIDWrapper.getSID("FilesId");//生成表单主键
documentid = txthide.Text; //签章的documentid
//签章
hidRecordid.Value = SIDWrapper.getSID("InstanceRecord"); //审批记录ID
signatureid = hidRecordid.Value;
}
#region
this.TxtTitle.Text = Server.UrlDecode(Request.QueryString["Title"].ToString());
fileName = dtProcessInstance.Rows[0]["docpath"].ToString();
hiddenFieldFileName.Value = fileName;
SOAOfficeX.SOAOfficeCtrl SOACtrl = new SOAOfficeX.SOAOfficeCtrl();
SOACtrl.ServerURL = "../soaservice/soaserv.aspx";
SOACtrl.MainStyle = SOAOfficeX.soaMainStyle.VistaBlue;
SOACtrl.Caption = "编辑或查看正文";
SOACtrl.BorderStyle = SOAOfficeX.soaBorderStyle.BorderNone;
SOACtrl.MenubarStyle = SOAOfficeX.soaMenubarStyle.Center1;
SOACtrl.MenubarColor = Color.FromArgb(236, 233, 216);
SOACtrl.TitlebarTextColor = Color.FromArgb(80, 192, 72);
SOACtrl.TitlebarColor = Color.ForestGreen;
HiddenFieldShiLi.Value = Request.QueryString["instanceId"].ToString();//实例ID
HiddenFieldLiuCheng.Value = Request.QueryString["processId"].ToString();//流程ID
ProcessDefinitionService processDefinitionService = ServiceManager.getServiceBean("ProcessDefinitionService") as ProcessDefinitionService;
dtPro = processDefinitionService.getProcessDefinitionByID(HiddenFieldLiuCheng.Value);
SDepartmentService deptService = (SDepartmentService)ServiceManager.getServiceBean("SDepartmentService");
DataTable dtDept = deptService.getSDepartmentByID(Session["DeptID"].ToString());
TxtFilesDraftOffice.Text = dtDept.Rows[0]["DeptName"].ToString();
TxtFilesDraftPerson.Text = Session["UserName"].ToString();
SOACtrl.SaveDocURL = "SaveDoc/SaveDoc2.aspx";
SOACtrl.FileTitle = StringHandler.replaceIllegalCharacter(TxtTitle.Text.Trim());
SOACtrl.WebOpen(fileName, SOAOfficeX.soaWorkMode.docAdmin, Session["UserName"].ToString(), "Word.Document");
#endregion
string[] manageDept = new OrgTool().getManageDeptByID(Session["DeptID"].ToString()).Split(',');
//套红doc表头
docHead.Value = manageDept[1];
}
protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
{
//先判断是否session过期
LoginLogic.reloadSession();
//DataTable dtInstance = processInstanceService.getProcessInstanceByID(HiddenFieldShiLi.Value);
//判断瞬间重复多次提交
if (dtProcessInstance.Rows[0]["currentProcesserID"].ToString() != Request.Form["hh"].ToString() || dtProcessInstance.Rows[0]["currentActionID"].ToString() != HiddenField4.Value)
{
//更新的流程实例
ProcessInstance processInstance = new ProcessInstance();
processInstance.instanceID = HiddenFieldShiLi.Value;
processInstance.processID = dtProcessInstance.Rows[0]["processID"].ToString();
processInstance.drafterID = dtProcessInstance.Rows[0]["drafterID"].ToString();
processInstance.drafterTime = (DateTime)dtProcessInstance.Rows[0]["drafterTime"];
//需要修改的字段
//当前处理人ID=====>下一步处理人的ID
processInstance.currentProcesserID = Request.Form["hh"].ToString();
//当前动作=========选择的下一步处理动作
processInstance.currentActionID = HiddenField4.Value;//当前处理动作
//当前环节=========>所选择的动作的环节ID
processInstance.currentNodeID = Request.Form["hiddenradio"].ToString();
//当前状态
processInstance.instanceStatus = "00";
//表单ID
processInstance.formID = txthide.Text;
//表单标题
processInstance.formTitleName = TxtTitle.Text;
processInstance.docPath = hiddenFieldFileName.Value;
processInstance.workType = dtPro.Rows[0]["processName"].ToString();
/*上一步处理人信息*/
processInstance.priorProcesserID = dtProcessInstance.Rows[0]["currentProcesserID"].ToString();
processInstance.priorNodeID = dtProcessInstance.Rows[0]["currentNodeID"].ToString();
processInstance.priorActionID = dtProcessInstance.Rows[0]["currentActionID"].ToString();
///发起部门
processInstance.CreateDept = dtProcessInstance.Rows[0]["CreateDept"].ToString();
processInstance.CreateDeptId = dtProcessInstance.Rows[0]["CreateDeptId"].ToString();
//审批记录
InstanceRecord instanceRecord = new InstanceRecord();
instanceRecord.recordID = hidRecordid.Value;
instanceRecord.instanceID = HiddenFieldShiLi.Value;//实例ID
instanceRecord.processID = HiddenFieldLiuCheng.Value;//流程ID
instanceRecord.currentProcesserID = Session["UserId"].ToString();//当前处理人
instanceRecord.currentProcessTime = DateTime.Now;//当前处理时间
instanceRecord.currentNodeID = processInstance.currentNodeID;//当前处理环节
instanceRecord.currentNodeActionID = processInstance.currentActionID;//当前处理动作
instanceRecord.nextProcesserID = Request.Form["hh"].ToString();//Request.Form["hh"].ToString();下一步处理人
instanceRecord.nextNodeID = processInstance.currentNodeID;//修改通过查询得到
instanceRecord.status = "00";
///当前处理人的部门
instanceRecord.currentDeptName = Session["DeptName"].ToString();
instanceRecord.currentDeptId = Session["DeptID"].ToString();
//处理意见
InstanceOpinion instanceOpinion = new InstanceOpinion();
instanceOpinion.recordID = instanceRecord.recordID;
instanceOpinion.instanceID = processInstance.instanceID;//流程实例ID
instanceOpinion.processID = instanceRecord.processID;
instanceOpinion.opinion = txtTransactMessage.Text;
instanceOpinion.isRemind = this.CheckBox6.Checked == true ? "01" : "00";
//如果选择了消息提醒,在消息提醒表中添加一条记录
if (this.CheckBox6.Checked == true)
{
//添加一条消息提醒记录,多个接受者添加多条记录
//string receiveID = txtuserIDs.Text.Trim();
string receiveUserID = Request.Form["hh"].ToString();
SMS sms = new SMS();
sms.msgContent = dtProcessInstance.Rows[0]["formTitleName"].ToString();
sms.msgID = dtProcessInstance.Rows[0]["formID"].ToString();
sms.msgSource = "工作流_" + dtPro.Rows[0]["processName"].ToString();
sms.senderID = Session["UserID"].ToString();
sms.sendTime = DateTime.Now.ToString();
sms.status = "00";
//添加一个消息提醒记录
SMSService smsService = ServiceManager.getServiceBean("SMSService") as SMSService;
smsService.addSMS(sms, receiveUserID);
#region
MsgWs msgWs = new MsgWs();
msgWs.SendWaitWorkMsg(Session["UserId"].ToString(), Request.Form["hh"].ToString(), dtProcessInstance.Rows[0]["formTitleName"].ToString(), dtPro.Rows[0]["processName"].ToString(), "", "");
#endregion
}
ProcessManagerService processManagerService = ServiceManager.getServiceBean("ProcessManagerService") as ProcessManagerService;
processManagerService.nextProcess(instanceRecord, instanceOpinion, processInstance);
}
Response.Write("<script>alert('操作成功');window.location.href='../Transact.aspx'</script>");
}
//打印表单
protected void imgBtnPrint_Click(object sender, ImageClickEventArgs e)
{
string url = "Print.aspx?shiliID=" + HiddenFieldShiLi.Value;
Page.ClientScript.RegisterStartupScript(this.GetType(), "", " <script type='text/JavaScript'>window.open('" + url + "'); </script>");
}
}

View File

@@ -0,0 +1,186 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Login.aspx.cs" Inherits="Login" %>
<%@ OutputCache Location="None" VaryByParam="none" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>河北省质量技术监督局机关标准化管理系统<%=versionTitle %> - 用户登录</title>
<script src="js/HebcaClient.js" type="text/javascript"></script>
<link href="css/css.css" type="text/css" rel="stylesheet"/>
<script language="JavaScript" type="text/javascript">
// var client = new HebcaClient();
function Sign() {
try {
var client = new HebcaClient();
document.getElementById("signature").value = client.Sign(Form1.msg.value);
document.getElementById("signCert").value = client.GetSignCert();
document.getElementById("cryptCert").value = client.GetCryptCert();
return true;
}
catch (e) {
alert(e.message);
return false;
}
}
function document.onkeydown() {
if (event.keyCode == 13) {
document.getElementById("ImgBtnLogin").click();
return false;
}
}
</script>
<style type="text/css">
.style1
{
height: 48px;
}
.style3
{
height: 36px;
}
</style>
</head>
<body style="background-color:#A6CDFE;">
<form id="Form1" runat="server">
<asp:HiddenField runat="server" ID="hidsolt" />
<div style="display: none">
<asp:TextBox ID="msg" runat="server"></asp:TextBox>
<asp:TextBox runat="server" ID="signature" />
<asp:TextBox runat="server" ID="signCert" />
<asp:TextBox runat="server" ID="cryptCert" />
</div>
<!--登录中间最外层背景填充-->
<div class="login1" align="center">
<!--中间三部分图片的外层容器-->
<div style="width:1024px;">
<div id="login_left" style="background-image:url(<%=loginLeft%>);" ></div>
<div id="login_center">
<table border="0" cellspacing="0" cellpadding="0" align="center"
style="height: 173px; width: 384px;">
<tr>
<td width="90" align="right" style="height:18px">
</td>
<td width="207" style="height:18px">
&nbsp;
</td>
<td></td>
</tr>
<tr>
<td width="90" align="right" class="style3">
登录名:
</td>
<td width="207" class="style3">
<asp:TextBox ID="txtUserName" class="logintxt" runat="server"></asp:TextBox>
</td>
<td rowspan="2" style="display:<%=issignature%>">
<asp:Button ID="btnCa" Text="证书登录"
runat="server" Width="80px" OnClientClick="return Sign();"
onclick="btnCa_Click" Height="60px" TabIndex="3" />
</td>
</tr>
<tr>
<td width="90" align="right" class="style3">
密&nbsp;&nbsp;&nbsp;码:
</td>
<td width="207" class="style3">
<asp:TextBox runat="server" class="logintxt" ID="txtUserPassword"
TextMode="Password" TabIndex="1" ></asp:TextBox>
</td>
<%--<td class="style3"><a href="UserReGetPassword.aspx" target="_blank" title="获取密码" style=" text-decoration:underline;">获取密码</a>
</td>--%>
</tr>
<tr>
<td width="90px" align="right" style="height:30px; line-height:30px">验 证 码:</td>
<td colspan="2" style="height:30px; line-height:30px; text-align:left;">
<asp:TextBox id="validatechar" runat="server" style="width:80px;height:18px; line-height:18px; vertical-align:middle;margin-left:5px;" />
<asp:ImageButton id="imgBtn" runat="server" Width="80px" Height="30px" style="vertical-align:middle;" /><a href="javascript:changeCode()" style="text-decoration: underline;"> 换一张</a>
</td>
</tr>
<tr>
<td colspan="3" align="center" class="style1" valign="bottom">
<asp:ImageButton src="images/login-1.gif" Width="81" Height="23" ID="ImgBtnLogin"
runat="server" OnClick="ImgBtnLogin_Click" TabIndex="2" />&nbsp;&nbsp;&nbsp;&nbsp;<asp:ImageButton
src="images/login-2.gif" Width="81" Height="23" ID="ImgBtnClear" runat="server"
OnClick="ImgBtnClear_Click" TabIndex="4" />
</td>
</tr>
<tr>
<td height="30" colspan="3" align="center" style="text-align: left">
<asp:Label ID="lblLoginMsg" runat="server" ForeColor="Red" TabIndex="6"></asp:Label>
</td>
</tr>
</table>
<div style="text-align: center;">
如果您的机器不能正常安装在线办公的插件请<asp:LinkButton ID="LinkButton1" runat="server" ForeColor="Red"
OnClick="LinkButton1_Click" TabIndex="5">下载在线客户端控件</asp:LinkButton>
</div>
<div style="text-align: center; line-height:20px;"><span style="color:yellow;">(目前证书登录功能仅限局领导使用,其他人员可按原登录方式登录。)</span><br/>
查看局领导电子签名,请下载并安装<a href="soasetup/河北腾翔电子签章客户端.zip" target="_blank"
style="color:Red;" tabindex="7">证书客户端</a>。
</div>
<!-- OBJECT标签客户端控件引用 -->
<br />
<div id="obj" style="display: none">
<object id="SOAOfficeCtrl" codebase="zsoffice.cab#version=2,0,0,1" height="5px"
width="5px" data="" classid="clsid:AD06827C-D92F-4648-B880-138AF11E8A13" viewastext>
</object>
</div>
<div id="install" style="display:inline">
<span style="color: red; text-align: left;">
本机尚未安装在线客户端控件,请安装浏览器上方黄色提示条或弹出提示框中的客户端控件。第一次登录系统后,请及时修改密码。&nbsp; </span>
</div>
<div id="chk">
<img src="images/load.gif" width="100%" height="16">
</div>
<div id="info" style="display: none">
</div>
<!--************** SOAOFFICE 客户端代码结束 ************************-->
<table width="1px"><tr><td height="1"><%--<object id="WebPDF" width="100%" height="100%" classid="clsid:39E08D82-C8AC-4934-BE07-F6E816FD47A1" codebase="iso9000/iWebPDF.cab#version=7,2,0,338" VIEWASTEXT></object>--%></td></tr></table>
</div>
<div id="login_right"></div>
</div>
</div>
</form>
<script language="javascript" type="text/javascript">
function changeCode() {
document.getElementById('imgBtn').src = document.getElementById('imgBtn').src + '?';
}
// confirm(' 2012年8月21日19:00-21:00省局信息中心对“河北省质量技术监督局协同办公系统省局版”\n进行了迁移升级新系统的登录地址、用户名及登录密码与原系统相同。\n\n 具体功能变化详见新系统首页通知公告!\n\n 对新系统使用中的问题和疑问请联系信息中心以便改进完善。联系方式0311-67568151\n0311-67568150或13513219196\n\n2012年8月22日');
var mObject=false;
try{
document.getElementById("SOAOfficeCtrl").Menubar = false;
}catch(e)
{
mObject=true;
}
if(!mObject){
//alert('1');
document.all.install.style.display="none";
document.all.chk.style.display="none";
}
else{
//alert('2');
document.all.install.style.display="block";
document.all.chk.style.display="none";
}
</script>
</body>
</html>

View File

@@ -0,0 +1,335 @@
using System;
using System.Data;
using System.Web;
using System.Web.UI;
using hyplat.bean.sysconfig;
using hyplat.biz;
using hyplat.biz.service.orgcode;
using hyplat.biz.service.sysconfig;
using hyplat.biz.service.user;
using hyplat.utilities;
using System.Web.UI.WebControls;
using System.Security.Cryptography.X509Certificates;
using System.Text;
using SSOAgentLibrary.client.filter;
public partial class Login : System.Web.UI.Page
{
protected static string loginLeft = "images/loginImgs/bg_left.jpg";
protected static string versionTitle = "";
protected string issignature = "none";
protected string iscertlogin = "false";
UserLoginTimeService ulservice = ServiceManager.getServiceBean("UserLoginTimeService") as UserLoginTimeService;
private UserCaService userCaS = ServiceManager.getServiceBean("UserCaService") as UserCaService;
protected void Page_Load(object sender, EventArgs e)
{
//神州融信单点登录
//AuthenFilter authenfilter = new AuthenFilter();
//authenfilter.doFilter(Request);
//if (Session["UserID"] != null && Session["UserID"].ToString().Length > 0)
//{
// Response.Redirect("Default.aspx");
//}
//是否签章验证
iscertlogin = DictionaryClass.getValue("是否证书登录");
if (iscertlogin == "true")
issignature = "";
if (!IsPostBack)
{
//不知道干什么用11.26mtl暂时删除
//if (Request.QueryString["userName"] != null && Request.QueryString["userPassword"] != null)
// {
// txtUserName.Text = Server.UrlDecode(Request.QueryString["userName"].ToString());
// txtUserPassword.Text = Server.UrlDecode(Request.QueryString["userPassword"].ToString());
// userLoginChecked();
// }
//打开页面时先生成一个随机数发给客户端并保存到session中。
Random r = new Random();
String random = RandomString.Next();
Session["random"] = random;
msg.Text = random.ToString();
}
//随机字符串
Session["solt"] = RandomString.Next();
hidsolt.Value = Session["solt"].ToString();
imgBtn.ImageUrl = "ImageCodeValidate.aspx";
}
protected void ImgBtnClear_Click(object sender, ImageClickEventArgs e)
{
clearLoginContent();
}
protected void ImgBtnLogin_Click(object sender, ImageClickEventArgs e)
{
string code = validatechar.Text;
HttpCookie htco = Request.Cookies["ImageV"];
string scode = htco.Value.ToString();
if (code != scode)
{
MessageBox.Show("验证码输入不正确,请重新输入!", Page);
validatechar.Text = "";
}
else
{
userLoginChecked();
}
}
/// <summary>
/// 清空登录的文本框并让用户名文本框获得焦点以便用户重新输入
/// </summary>
protected void clearLoginContent()
{
txtUserName.Text = string.Empty;
txtUserPassword.Text = string.Empty;
txtUserName.Focus();
}
/// <summary>
/// 登录信息验证的方法
/// </summary>
protected void userLoginChecked()
{
if (Session["solt"].ToString() != hidsolt.Value)
{
return;
}
Session["solt"] = null;
string userName = txtUserName.Text.Trim();
//特殊情况可以不用证书登录
bool isSpecial = userName.Contains("_hebqts@yxt");
//解密页面上传过来的密码
//string userPassword = hyplat.utilities.EncryptionTool.GetDecodeString(txtUserPassword.Text.Trim());
//加密密码与数据库中的对比
string userPassword = hyplat.utilities.EncryptionTool.BBS_MD5_Encrypt(txtUserPassword.Text.Trim(), 32);
if (userName != string.Empty && userPassword != string.Empty)
{
UserService uService = (UserService)ServiceManager.getServiceBean("UserService");
DataTable dtLoginUser = uService.getUserForLogin(userName);
if (dtLoginUser != null && dtLoginUser.Rows.Count > 0)
{
string userOrg = dtLoginUser.Rows[0]["OrgID"].ToString();
OrgCodeService codeServide = ServiceManager.getServiceBean("OrgCodeService") as OrgCodeService;
string localOrg = codeServide.getLocalCode();
if (userOrg != "0" && userOrg != localOrg)
{
lblLoginMsg.Text = "请核对您登录的服务器是否正确";
return;
}
}
else
{
lblLoginMsg.Text = "用户名或密码错误!";
return;
}
//特殊情况可以不用证书登录
if (!isSpecial)
{
DictionaryService DicSer = ServiceManager.getServiceBean("DictionaryService") as DictionaryService;
string value = DictionaryClass.getIsSignature(dtLoginUser.Rows[0]["RoleID"].ToString());
if (value == "true")
{
DataTable dtCa = userCaS.GetByUserId(dtLoginUser.Rows[0]["ID"].ToString());
if (dtCa != null && dtCa.Rows.Count > 0)
{
if (dtCa.Rows[0]["ca"].ToString() != "hebqts_commonuser")
{
MessageBox.Show("已绑定数字证书,请使用数字证书登录!", Page);
return;
}
}
}
}
//需要有一个非法字符的判断
int result = 0;
lblLoginMsg.Text = string.Empty;
result = ulservice.LoginControl(userName, userPassword,HttpContext.Current.Request.UserHostAddress);
//登录成功
if (1 == result)
{
//是否允许重复登陆读写配置文件中的项1为不允许其他为允许mtl20170422
string filterStr = System.Configuration.ConfigurationManager.AppSettings["hebqts_onlylogin"];
if (filterStr == "1")
{
if (dtLoginUser.Rows[0]["Status"].ToString() == "01")
{
lblLoginMsg.Text = "您已经登陆,不能重复登陆。";
return;
}
}
LoginLogic.LoginInit(dtLoginUser);
if (Request.QueryString["type"] != null)
Response.Redirect("Default.aspx?type=" + Request.QueryString["type"].ToString());
else
Response.Redirect("Default.aspx");
//Response.Redirect("TreeTest.aspx");
//Response.Redirect("Index.aspx");
//Response.Redirect("iso9000/isoFiles/IsoFilesCollection.aspx");
//Response.Redirect("office/sendfile/sendfile.aspx");
//return;
}
if (0 == result)
{
lblLoginMsg.Text = "用户或密码错误,请核对";
return;
}
//默认密码登录,请修改密码
if (-6 == result)
{
Session["checkstr"] = System.DateTime.Now.ToString();
Response.Redirect("AlterPassword.aspx?UserName=" + userName);
return;
}
//网络连接失败
if (-90 == result)
{
lblLoginMsg.Text = "网络连接失败,请稍候重试!";
return;
}
//网络连接失败
if (-99 == result)
{
lblLoginMsg.Text = "未知错误!";
return;
}
ErrorControl(dtLoginUser.Rows[0]["ID"].ToString(),result);
}
else
{
lblLoginMsg.Text = "用户名和密码不允许为空 ";
}
}
private void ErrorControl(string userId,int error)
{
//用户名或者密码不正确
DataTable dtul = ulservice.getUserLoginTimeByUserID(userId);
if (dtul != null && dtul.Rows.Count > 0)
{
int errorcount = Convert.ToInt32(ulservice.getLoginErrorQuantity()) - Convert.ToInt32(dtul.Rows[0]["ErrorQuantity"]);
if (error == -1)
{
lblLoginMsg.Text = "输入用户名或密码错误。";
//if (errorcount > 0)
lblLoginMsg.Text += "您还有 " + errorcount.ToString() + " 次机会可以登陆到系统";
}
if (error == -9)
{
int lockMinutes = Convert.ToInt32(ulservice.getLockTime());
int errorTimes = DateTool.DateDiff(DateTime.Now, Convert.ToDateTime(dtul.Rows[0]["LastErrorTime"]), "minute");
lblLoginMsg.Text = "对不起,您的账户已经锁定,在 " + (lockMinutes-errorTimes).ToString() + " 分钟后才可以重新登陆到系统。<br />如果您忘记密码请联系管理员!";
txtUserName.Enabled = false;
txtUserPassword.Enabled = false;
ImgBtnLogin.Enabled = false;
}
}
}
protected void LinkButton1_Click(object sender, EventArgs e)
{
try
{
Response.Buffer = true;
Response.Clear();
Response.AddHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode("SOA中间件安装SOAOfficeSetup.rar"));
Response.ContentType = "application/octet-stream";
Response.WriteFile("~/soasetup/download.rar");
Response.Flush();
Response.End();
}
catch (Exception)
{
}
}
protected void btnCa_Click(object sender, EventArgs e)
{
//从session中获取随机数
if (Session["random"] == null)
{
MessageBox.Show("验签失败:操作超时,请重新登录", Page);
return;
}
String random = msg.Text;
//LogFile.log(random + "点击登陆", "时间:" + DateTime.Now);
//联系svs服务器进行验证
int result = BLL.SvsManager.VerifyCertSign(Encoding.ASCII.GetBytes(random), signCert.Text, signature.Text);
if (result != 0) //认证失败
{
string strResult = "验证失败:";
switch (result)
{
case -1:
strResult += "(无法连接svs服务器)";
break;
case 2:
strResult += "(证书已经过期,需要延期后才能使用)";
break;
case -6805:
strResult += "(无效的证书文件)";
break;
case -6406:
strResult += "(签名验证失败)";
break;
default:
strResult += "(errorcode:" + result + ")";
break;
}
MessageBox.Show(strResult, Page);
}
else
{
//解析证书获取CN
X509Certificate2 xcert = new X509Certificate2(Encoding.ASCII.GetBytes(signCert.Text));
DN dn = new DN(xcert.Subject);
String cn = dn.CommonName;
String gName = dn.GivenName;
String uniqueCode = gName;
if (cn.Length > gName.Length)
{
uniqueCode = cn;
}
//LogFile.log(random+"验证成功", "时间:" + DateTime.Now);
UserService uservice = ServiceManager.getServiceBean("UserService") as UserService;
DataTable dtLoginUser = uservice.GetLoginByCA(uniqueCode);
if (dtLoginUser != null && dtLoginUser.Rows.Count > 0)
{
LoginLogic.LoginInit(dtLoginUser);
Response.Redirect("Default.aspx");
}
else
{
MessageBox.Show("证书还没有绑定用户!", Page);
}
}
}
}

View File

@@ -0,0 +1,54 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="selectTemplate.aspx.cs" Inherits="office_workflow_selectTemplate" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>可选择的套红模版</title>
<META HTTP-EQUIV="pragma" CONTENT="no-cache">
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<SCRIPT LANGUAGE="javascript" type="text/javascript" src="../../js/control.js"></SCRIPT>
<script language="javascript" src="../../js/jquery-1.3.2-vsdoc2.js"></script>
<link href="../../css/css.css" rel="stylesheet" type="text/css" />
<script language=javascript>
function CheckValue(theForm) {
var mObject;
if (parent.dialogArguments)
mObject = parent.dialogArguments;
else
mObject = window.parent.opener;
mObject = window.dialogArguments;
mObject.SelectValue = theForm.WordList.value;
window.close();
return;
}
</SCRIPT>
</head>
<body style="background-color:#fdfae7">
<form name="FormSelect">
<table class="messagetable">
<tr>
<td align="center">请选择您要使用的套红模板</td>
</tr>
<tr>
<td align="center">
<select name="WordList">
<%for (int i = 0; i < dtTemp.Rows.Count;i++ ){%>
<option value="<%=dtTemp.Rows[i]["webPath"].ToString() %>"><%=dtTemp.Rows[i]["VbaName"].ToString()%></option>
<%} %>
</select>
</td>
</tr>
<tr>
<td align="center">
<input class="button" type="button" value="确定" onclick="CheckValue(FormSelect);">
<input class="button" type="button" value="取消" onclick="window.close();"> </td>
</tr>
</table>
</form>
</body>
</html>

View File

@@ -0,0 +1,32 @@
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using hyplat.biz.service.soaweb;
using hyplat.biz;
public partial class office_workflow_selectTemplate : System.Web.UI.Page
{
public DataTable dtTemp;
protected void Page_Load(object sender, EventArgs e)
{
LoginLogic.reloadSession();
if (Request.QueryString["ProcessId"].ToString() != "")
{
VbaAuthorizeService vbaAuthorizeService = ServiceManager.getServiceBean("VbaAuthorizeService") as VbaAuthorizeService;
dtTemp = vbaAuthorizeService.getVbaAuthorizeByID(Session["UserId"].ToString(), Request.QueryString["ProcessId"].ToString());
}
}
}

View File

@@ -0,0 +1,3 @@
mvn install:install-file -Dfile=pageoffice-5.1.0.1.jar -DgroupId=com.zhuozhengsoft -DartifactId=pageoffice -Dversion=5.1.0.1 -Dpackaging=jar
 

View File

@@ -0,0 +1,227 @@
//pageoffice内容
//保存文档到web服务器
function jsSave() {
try {
if (iBStatus == "1")
document.getElementById("PageOfficeCtrl1").WebSave(); // 保存到服务器
}
catch (e) {
alert("文档保存失败!\n错误信息:" + e.message);
}
}
//保存并返回
function SoaSaveReturn() {
if (iBStatus == "1") {
jsSave();
window.location.href = '../Transact.aspx';
} else {
alert("请先编辑或查看正文!");
return false;
}
}
//另存到本地1:打开 2:保存 3:另存为 4:打印 5:打印设置 6:文件属性
function saveLocal() {
document.getElementById("PageOfficeCtrl1").ShowDialog(3);
}
//页面设置
function jsDocPageSetup() {
document.getElementById("PageOfficeCtrl1").ShowDialog(5);
}
//打印文件
function jsPrintDoc() {
document.getElementById("PageOfficeCtrl1").ShowDialog(4);
}
//全屏显示
function jsFullScreen() {
document.getElementById("PageOfficeCtrl1").FullScreen = !document.getElementById("PageOfficeCtrl1").FullScreen;
}
//打开插入本地图片的对话框
function jsOpenImageDialog() {
document.getElementById("PageOfficeCtrl1").OpenImageDialog();
}
//隐藏或显示修订痕迹
function jsShowTrack(value) {
document.getElementById("PageOfficeCtrl1").ShowRevisions = value;
}
//作用是否保留痕迹true表示保留痕迹false表示不保留痕迹
//function TrackRevision(value) {
// try {
// document.getElementById("PageOfficeCtrl1").ShowRevisions = value;
// }
// catch (e) {
// }
//}
//切换标题栏
function jsToggleTitlebar() {
document.getElementById("PageOfficeCtrl1").Titlebar = !document.getElementById("PageOfficeCtrl1").Titlebar;
}
//切换菜单栏
function jsToggleMenubar() {
document.getElementById("PageOfficeCtrl1").Menubar = !document.getElementById("PageOfficeCtrl1").Menubar;
}
//切换工具栏
function jsToggleToolbars() {
document.getElementById("PageOfficeCtrl1").CustomToolbar = !document.getElementById("PageOfficeCtrl1").CustomToolbar;
}
//全文手写批注
function jsStartHandDraw() {
document.getElementById("PageOfficeCtrl1").HandDraw.Start();
}
//控制套红是否显示
function orVbaShow() {
if (document.getElementById("vbaStatus").value == "true") {
document.getElementById("vbaOne").style.display = "block";
document.getElementById("vbaTwo").style.display = "none";
} else {
document.getElementById("vbaOne").style.display = "none";
document.getElementById("vbaTwo").style.display = "block";
}
}
//使用指定的模板套红../office/workflow/selectTemplate.aspx
function jsApplyFileTemplate() {
var mDialogUrl = "../selectTemplate.aspx?ProcessId=" + document.getElementById("HiddenFieldLiuCheng").value;
var mObject = new Object();
mObject.SelectValue = "";
window.showModalDialog(mDialogUrl, mObject, "dialogHeight:180px; dialogWidth:440px;center:yes;scroll:no;status:no;");
//判断用户是否选择模板
if (mObject.SelectValue != "") {
document.getElementById("PageOfficeCtrl1").InsertDocumentFromURL("../" + mObject.SelectValue);
BookMarkReplace();
}
}
//替换页面标签
function BookMarkReplace() {
//如果是套红,则会动态增加书签,需要先刷新
document.getElementById("PageOfficeCtrl1").DataRegionList.Refresh();
for (i = 0; i < document.getElementById("PageOfficeCtrl1").DataRegionList.Count; i++) {
var formMark = document.getElementById("PageOfficeCtrl1").DataRegionList.Item(i).Name.replace("PO_", "");
if (formMark.toLowerCase() == "content") {
continue;
}
//套红中的编号和紧急程度替换
if (formMark.toLowerCase() == "jjcd") {
formMark = "DrpJJCD";
}
if (formMark.toLowerCase() == "filecode") {
formMark = "selectDllFileNum";
}
if (formMark.toLowerCase() == "qfr") {
formMark = "TxtFilesIssuePerson";
}
//采标流程中的日期大写
if (formMark.toLowerCase() == "txtcbdate") {
document.getElementById("PageOfficeCtrl1").DataRegionList.Item(i).Value = ConverToDate(document.getElementById(formMark).value);
}
else {
var marktxt = new String(document.getElementById("PageOfficeCtrl1").DataRegionList.Item(i).Value).replace(/\r\n/g, '').replace(/\s/g, '');
var lbltxt = new String(document.getElementById(formMark).value).replace(/\r\n/g, '').replace(/\s/g, '');
//替换之前先判断标题是否改过,如果改过需要替换,如果只是修改了格式则无需替换。
if (marktxt != lbltxt) {
if (lbltxt != "")
document.getElementById("PageOfficeCtrl1").DataRegionList.Item(i).Value = document.getElementById(formMark).value;
else
document.getElementById("PageOfficeCtrl1").DataRegionList.Item(i).Value = " ";
}
}
}
//默认为隐藏痕迹
jsShowTrack(false);
}
function ConverToDate(date) {
var chinese = ['', '一', '二', '三', '四', '五', '六', '七', '八', '九'];
var strs = date.split('-');
var y = strs[0];
var m = strs[1];
var d = strs[2];
var result = "";
for (var i = 0; i < y.length; i++) {
result += chinese[y.charAt(i)];
}
result += "年";
if (m.length == 2) {
if (m.charAt(0) == "1") {
result += ("十" + chinese[m.charAt(1)] + "月");
}
else {
result += (chinese[m.charAt(1)] + "月");
}
} else {
result += (chinese[m.charAt(0)] + "月");
}
if (d.length == 2) {
if (d.charAt(0) == "0") {
result += (chinese[d.charAt(0)] + "日");
}
else if (d.charAt(0) == "1") {
result += ("十" + chinese[d.charAt(1)] + "日");
}
else {
result += (chinese[d.charAt(0)] + "十" + chinese[d.charAt(1)] + "日");
}
} else {
result += (chinese[d.charAt(0)] + "日");
}
return result;
}

View File

@@ -0,0 +1 @@
保存本地、打印文件、文件套红、显示痕迹、隐藏痕迹、插入图片、全屏显示、书签管理