From 0023766f0d4379858c2450eac5d0b56f5983deaa Mon Sep 17 00:00:00 2001
From: username@email.com <yzy2002yzy@163.com>
Date: 星期三, 26 一月 2022 10:13:06 +0800
Subject: [PATCH] 导出word

---
 zhengcaioa/zhengcaioa/Views/CooperOrder/Printtousushu.cshtml |  149 ++++++++------
 zhengcaioa/zhengcaioa/Views/CooperOrder/selectWenshu.cshtml  |    4 
 zhengcaioa/zhengcaioa/wwwroot/js/jquery.wordexport.js        |   84 ++++++++
 zhengcaioa/zhengcaioa/Views/CooperOrder/PrintZhiyihan.cshtml |  162 +++++++++------
 zhengcaioa/zhengcaioa/wwwroot/js/fileSaver.js                |  188 ++++++++++++++++++
 5 files changed, 458 insertions(+), 129 deletions(-)

diff --git a/zhengcaioa/zhengcaioa/Views/CooperOrder/PrintZhiyihan.cshtml b/zhengcaioa/zhengcaioa/Views/CooperOrder/PrintZhiyihan.cshtml
index 9d96439..2a5a6cf 100644
--- a/zhengcaioa/zhengcaioa/Views/CooperOrder/PrintZhiyihan.cshtml
+++ b/zhengcaioa/zhengcaioa/Views/CooperOrder/PrintZhiyihan.cshtml
@@ -40,7 +40,7 @@
     <link href="~/css/plugins/toastr/toastr.min.css" rel="stylesheet" />
     <link href="~/css/plugins/webuploader/webuploader.css" rel="stylesheet" />
 
-   
+
 
     <!-- jqgrid-->
     @*<link href="~/css/plugins/jqgrid/ui.jqgrid.css" rel="stylesheet">*@
@@ -65,12 +65,37 @@
     @*<script src="~/js/plugins/iTexbox/itextbox.js" type="text/javascript"></script>*@
     @*<script src="~/js/plugins/iuploader/iuploader.js"></script>*@
     <script src="~/js/TUJS.js"></script>
+    <script language="javascript" src="~/js/fileSaver.js" type="text/javascript"></script>
+    <script language="javascript" src="~/js/jquery.wordexport.js" type="text/javascript"></script>
 </head>
 <body class="gray-bg" style="overflow:auto">
     <form id="formtest">
         <div class="wrapper wrapper-content" id="ibox-content" style="padding:15px;">
             <div class="row">
                 <div id="content" style="overflow-y:auto;height:100%;background: #fff;width:850px; margin: 0 auto;">
+                    <style type="text/css">
+                        table {
+                            width: 595px;
+                            font-size: 16pt;
+                            font-family: 'FangSong';
+                            background: #fff;
+                            line-height: 1.5;
+                        }
+
+                        span {
+                            font-size: 15pt;
+                            display: inline;
+                            border-bottom: 1px dashed #111;
+                        }
+
+                        s22pan:after {
+                            content: '';
+                            display: inline;
+                            width: 100%;
+                            margin-top: -5px;
+                            border-bottom: 1px dashed #111;
+                        }
+                    </style>
                     <div id="page1" style="page-break-after:always;">
                         <table border="0" align="center" cellpadding="3" cellspacing="0">
                             <tr>
@@ -133,58 +158,78 @@
                                         <tr>
                                             <td colspan="2">
                                                 璐ㄧ枒浜嬮」锛�<span style="text-indent:10px">@challengeItemDTOs[i].QuestionName </span>
-                                                <br />
-                                                浜嬪疄渚濇嵁锛欯Html.Raw("<span>" + (string.IsNullOrEmpty(challengeItemDTOs[i].Evidential) ? "" : challengeItemDTOs[i].Evidential.Replace(" ", "&nbsp;").Replace("\r", "<br/>"))  + "</span>");
-                                                <br />
-                                                @for (int j = 0; j < challengeItemDTOs[i].sysCodeDtls.Count; j++)
-                                                {
-                                                    if (challengeItemDTOs[i].sysCodeDtls.Count == 1)
-                                                    {
-                                                        @Html.Raw("娉曞緥渚濇嵁锛�<span>銆�" + challengeItemDTOs[i].sysCodeDtls[j].CodeSn + "銆�" + challengeItemDTOs[i].sysCodeDtls[j].Classify2 + "锛�" + challengeItemDTOs[i].sysCodeDtls[j].Contents + "</span>")
-                                                        <br />
-                                                    }
-                                                    else
-                                                    {
-                                                        @Html.Raw("娉曞緥渚濇嵁" + (j + 1) + "锛�<span>銆�" + challengeItemDTOs[i].sysCodeDtls[j].CodeSn + "銆�" + challengeItemDTOs[i].sysCodeDtls[j].Classify2 + "锛�" + challengeItemDTOs[i].sysCodeDtls[j].Contents + "</span>")
-                                                        <br />
-
-                                                    }
-
-
-                                                }
-
-
                                             </td>
                                         </tr>
+                                        <tr>
+                                            <td colspan="2">
+                                                浜嬪疄渚濇嵁锛欯Html.Raw("<span>" + (string.IsNullOrEmpty(challengeItemDTOs[i].Evidential) ? "" : challengeItemDTOs[i].Evidential.Replace(" ", "&nbsp;").Replace("\r", "<br/>")) + "</span>");
+                                            </td>
+                                        </tr>
+
+                                        @for (int j = 0; j < challengeItemDTOs[i].sysCodeDtls.Count; j++)
+                                        {
+                                            if (challengeItemDTOs[i].sysCodeDtls.Count == 1)
+                                            {
+                                                <tr>
+                                                    <td colspan="2">
+                                                        @Html.Raw("娉曞緥渚濇嵁锛�<span>銆�" + challengeItemDTOs[i].sysCodeDtls[j].CodeSn + "銆�" + challengeItemDTOs[i].sysCodeDtls[j].Classify2 + "锛�" + challengeItemDTOs[i].sysCodeDtls[j].Contents + "</span>")
+                                                    </td>
+                                                </tr>
+                                            }
+                                            else
+                                            {
+                                                <tr>
+                                                    <td colspan="2">
+                                                        @Html.Raw("娉曞緥渚濇嵁" + (j + 1) + "锛�<span>銆�" + challengeItemDTOs[i].sysCodeDtls[j].CodeSn + "銆�" + challengeItemDTOs[i].sysCodeDtls[j].Classify2 + "锛�" + challengeItemDTOs[i].sysCodeDtls[j].Contents + "</span>")
+                                                    </td>
+                                                </tr>
+
+                                            }
+
+
+                                        }
+
+
+
                                     }
                                     else
                                     {
                                         <tr>
                                             <td colspan="2">
                                                 璐ㄧ枒浜嬮」@((i + 1) + "")锛�<span style="text-indent:10px">@challengeItemDTOs[i].QuestionName </span>
-                                                <br />
-                                                浜嬪疄渚濇嵁@((i + 1) + "")锛� @Html.Raw("<span>" + (string.IsNullOrEmpty(challengeItemDTOs[i].Evidential) ? "" : challengeItemDTOs[i].Evidential.Replace(" ", "&nbsp;").Replace("\r", "<br/>")) + "</span>");
-                                                <br />
-                                                @for (int j = 0; j < challengeItemDTOs[i].sysCodeDtls.Count; j++)
-                                                {
-
-
-                                                    if (challengeItemDTOs[i].sysCodeDtls.Count == 1)
-                                                    {
-                                                        @Html.Raw("娉曞緥渚濇嵁锛�<span>銆�" + challengeItemDTOs[i].sysCodeDtls[j].CodeSn + "銆�" + challengeItemDTOs[i].sysCodeDtls[j].Classify2 + "锛�" + challengeItemDTOs[i].sysCodeDtls[j].Contents + "</span>")
-                                                        <br />
-                                                    }
-                                                    else
-                                                    {
-                                                        @Html.Raw("娉曞緥渚濇嵁" + (j + 1) + "锛�<span>銆�" + challengeItemDTOs[i].sysCodeDtls[j].CodeSn + "銆�" + challengeItemDTOs[i].sysCodeDtls[j].Classify2 + "锛�" + challengeItemDTOs[i].sysCodeDtls[j].Contents + "</span>")
-                                                        <br />
-
-                                                    }
-                                                }
-
-
                                             </td>
                                         </tr>
+                                        <tr>
+                                            <td colspan="2">
+                                                浜嬪疄渚濇嵁@((i + 1) + "")锛� @Html.Raw("<span>" + (string.IsNullOrEmpty(challengeItemDTOs[i].Evidential) ? "" : challengeItemDTOs[i].Evidential.Replace(" ", "&nbsp;").Replace("\r", "<br/>")) + "</span>");
+                                            </td>
+                                        </tr>
+
+                                        @for (int j = 0; j < challengeItemDTOs[i].sysCodeDtls.Count; j++)
+                                        {
+
+
+                                            if (challengeItemDTOs[i].sysCodeDtls.Count == 1)
+                                            {
+                                                <tr>
+                                                    <td colspan="2">
+                                                        @Html.Raw("娉曞緥渚濇嵁锛�<span>銆�" + challengeItemDTOs[i].sysCodeDtls[j].CodeSn + "銆�" + challengeItemDTOs[i].sysCodeDtls[j].Classify2 + "锛�" + challengeItemDTOs[i].sysCodeDtls[j].Contents + "</span>")
+
+                                                    </td>
+                                                </tr>
+                                            }
+                                            else
+                                            {
+                                                <tr>
+                                                    <td colspan="2">
+                                                        @Html.Raw("娉曞緥渚濇嵁" + (j + 1) + "锛�<span>銆�" + challengeItemDTOs[i].sysCodeDtls[j].CodeSn + "銆�" + challengeItemDTOs[i].sysCodeDtls[j].Classify2 + "锛�" + challengeItemDTOs[i].sysCodeDtls[j].Contents + "</span>")
+                                                    </td>
+                                                </tr>
+
+                                            }
+                                        }
+
+
                                     }
 
                                 }
@@ -208,31 +253,9 @@
                         </table>
                     </div>
 
-                  
-                    <style type="text/css">
-                        table {
-                            width: 595px;
-                            font-size: 16pt;
-                            font-family: 'FangSong';
-                            background: #fff;
-                            line-height: 1.5;
-                        }
 
-                        span {
-                            font-size: 15pt;
-                            display: inline;
-                            border-bottom: 1px dashed #111;
-                        }
 
-                        s22pan:after {
-                            content: '';
-                            display: inline;
-                            width: 100%;
-                            margin-top: -5px;
-                            border-bottom: 1px dashed #111;
-                        }
-    </style>
-    </div>
+                </div>
     </div>
 
     </div>
@@ -243,6 +266,9 @@
 
             <a class="btn btn-success" href="javascript:void(0)" onclick="printWin();" style="margin-left:4px; border-radius:4px;">
                 <i class="glyphicon glyphicon-ok"></i>&nbsp;&nbsp;<span class="bold">鎵撳嵃</span>
+            </a>
+            <a class="btn btn-success" href="javascript:void(0)" onclick="daochuword();" style="margin-left:4px; border-radius:4px;">
+                <i class="glyphicon glyphicon-ok"></i>&nbsp;&nbsp;<span class="bold">瀵煎嚭word</span>
             </a>
         </div>
     </div>
@@ -274,7 +300,9 @@
             }
 
 
-
+        function daochuword() {
+            $("#content").wordExport("璐ㄧ枒鍑紷(Html.Raw(Model.GysName))");                  //fileName涓哄鍑虹殑word鏂囦欢鐨勫懡鍚�,content涓鸿瀵煎嚭鐨刪tml鍐呭瀹瑰櫒
+        }
 
 
 
diff --git a/zhengcaioa/zhengcaioa/Views/CooperOrder/Printtousushu.cshtml b/zhengcaioa/zhengcaioa/Views/CooperOrder/Printtousushu.cshtml
index 4666fa0..377d06c 100644
--- a/zhengcaioa/zhengcaioa/Views/CooperOrder/Printtousushu.cshtml
+++ b/zhengcaioa/zhengcaioa/Views/CooperOrder/Printtousushu.cshtml
@@ -69,12 +69,37 @@
     @*<script src="~/js/plugins/iTexbox/itextbox.js" type="text/javascript"></script>*@
     @*<script src="~/js/plugins/iuploader/iuploader.js"></script>*@
     <script src="~/js/TUJS.js"></script>
+    <script language="javascript" src="~/js/fileSaver.js" type="text/javascript"></script>
+    <script language="javascript" src="~/js/jquery.wordexport.js" type="text/javascript"></script>
 </head>
 <body class="gray-bg" style="overflow:auto">
     <form id="formtest">
         <div class="wrapper wrapper-content" id="ibox-content" style="padding:15px;">
             <div class="row">
                 <div id="content" style="overflow-y:auto;height:100%;background: #fff;width:850px; margin: 0 auto;">
+                    <style type="text/css">
+                        table {
+                            width: 595px;
+                            font-size: 16pt;
+                            font-family: 'FangSong';
+                            background: #fff;
+                            line-height: 1.5;
+                        }
+
+                        span {
+                            font-size: 15pt;
+                            display: inline;
+                            border-bottom: 1px dashed #111;
+                        }
+
+                        s22pan:after {
+                            content: '';
+                            display: inline;
+                            width: 100%;
+                            margin-top: -5px;
+                            border-bottom: 1px dashed #111;
+                        }
+                    </style>
                     <div id="page1" style="page-break-after:always;">
                         <table border="0" align="center" cellpadding="3" cellspacing="0">
                             <tr>
@@ -240,54 +265,73 @@
                                         <tr>
                                             <td colspan="2">
                                                 鎶曡瘔浜嬮」锛�<span style="text-indent:10px">@complaintItemDTOs[i].QuestionName </span>
-                                                <br />
-                                                浜嬪疄渚濇嵁锛� @Html.Raw("<span>" + (string.IsNullOrEmpty(complaintItemDTOs[i].Evidential) ? "" : complaintItemDTOs[i].Evidential.Replace(" ", "&nbsp;").Replace("\r", "<br/>")) + "</span>");
-                                                <br />
-                                                @for (int j = 0; j < complaintItemDTOs[i].sysCodeDtls.Count; j++)
-                                                {
-
-
-                                                    if (complaintItemDTOs[i].sysCodeDtls.Count == 1)
-                                                    {
-                                                        @Html.Raw("娉曞緥渚濇嵁锛�<span>銆�" + complaintItemDTOs[i].sysCodeDtls[j].CodeSn + "銆�" + complaintItemDTOs[i].sysCodeDtls[j].Classify2 + "锛�" + complaintItemDTOs[i].sysCodeDtls[j].Contents + "</span>")
-                                                        <br />
-                                                    }
-                                                    else
-                                                    {
-                                                        @Html.Raw("娉曞緥渚濇嵁" + (j + 1) + "锛�<span>銆�" + complaintItemDTOs[i].sysCodeDtls[j].CodeSn + "銆�" + complaintItemDTOs[i].sysCodeDtls[j].Classify2 + "锛�" + complaintItemDTOs[i].sysCodeDtls[j].Contents + "</span>")
-                                                        <br />
-
-                                                    }
-                                                }
                                             </td>
                                         </tr>
+                                        <tr>
+                                            <td colspan="2">
+                                                浜嬪疄渚濇嵁锛� @Html.Raw("<span>" + (string.IsNullOrEmpty(complaintItemDTOs[i].Evidential) ? "" : complaintItemDTOs[i].Evidential.Replace(" ", "&nbsp;").Replace("\r", "<br/>")) + "</span>");
+                                            </td>
+                                        </tr>
+
+                                        @for (int j = 0; j < complaintItemDTOs[i].sysCodeDtls.Count; j++)
+                                        {
+
+
+                                            if (complaintItemDTOs[i].sysCodeDtls.Count == 1)
+                                            {
+                                                <tr>
+                                                    <td colspan="2">
+                                                        @Html.Raw("娉曞緥渚濇嵁锛�<span>銆�" + complaintItemDTOs[i].sysCodeDtls[j].CodeSn + "銆�" + complaintItemDTOs[i].sysCodeDtls[j].Classify2 + "锛�" + complaintItemDTOs[i].sysCodeDtls[j].Contents + "</span>")
+                                                    </td>
+                                                </tr>
+                                            }
+                                            else
+                                            {
+                                                <tr>
+                                                    <td colspan="2">
+                                                        @Html.Raw("娉曞緥渚濇嵁" + (j + 1) + "锛�<span>銆�" + complaintItemDTOs[i].sysCodeDtls[j].CodeSn + "銆�" + complaintItemDTOs[i].sysCodeDtls[j].Classify2 + "锛�" + complaintItemDTOs[i].sysCodeDtls[j].Contents + "</span>")
+                                                    </td>
+                                                </tr>
+
+                                            }
+                                        }
+
                                     }
                                     else
                                     {
                                         <tr>
                                             <td colspan="2">
                                                 鎶曡瘔浜嬮」@((i+1)+"")锛�<span style="text-indent:10px">@complaintItemDTOs[i].QuestionName </span>
-                                                <br />
-                                                浜嬪疄渚濇嵁@((i+1)+"")锛欯Html.Raw("<span>" +(string.IsNullOrEmpty(complaintItemDTOs[i].Evidential)?"": complaintItemDTOs[i].Evidential.Replace(" ", "&nbsp;").Replace("\r", "<br/>"))  + "</span>");
-                                                <br />
-                                                @for (int j = 0; j < complaintItemDTOs[i].sysCodeDtls.Count; j++)
-                                                {
-
-
-                                                    if (complaintItemDTOs[i].sysCodeDtls.Count == 1)
-                                                    {
-                                                        @Html.Raw("娉曞緥渚濇嵁锛�<span>銆�" + complaintItemDTOs[i].sysCodeDtls[j].CodeSn + "銆�" + complaintItemDTOs[i].sysCodeDtls[j].Classify2 + "锛�" + complaintItemDTOs[i].sysCodeDtls[j].Contents + "</span>")
-                                                        <br />
-                                                    }
-                                                    else
-                                                    {
-                                                        @Html.Raw("娉曞緥渚濇嵁" + (j + 1) + "锛�<span>銆�" + complaintItemDTOs[i].sysCodeDtls[j].CodeSn + "銆�" + complaintItemDTOs[i].sysCodeDtls[j].Classify2 + "锛�" + complaintItemDTOs[i].sysCodeDtls[j].Contents + "</span>")
-                                                        <br />
-
-                                                    }
-                                                }
                                             </td>
                                         </tr>
+                                        <tr>
+                                            <td colspan="2">
+                                                浜嬪疄渚濇嵁@((i+1)+"")锛欯Html.Raw("<span>" + (string.IsNullOrEmpty(complaintItemDTOs[i].Evidential) ? "" : complaintItemDTOs[i].Evidential.Replace(" ", "&nbsp;").Replace("\r", "<br/>")) + "</span>");
+                                            </td>
+                                        </tr>
+                                        @for (int j = 0; j < complaintItemDTOs[i].sysCodeDtls.Count; j++)
+                                        {
+
+
+                                            if (complaintItemDTOs[i].sysCodeDtls.Count == 1)
+                                            {
+                                                <tr>
+                                                    <td colspan="2">
+                                                        @Html.Raw("娉曞緥渚濇嵁锛�<span>銆�" + complaintItemDTOs[i].sysCodeDtls[j].CodeSn + "銆�" + complaintItemDTOs[i].sysCodeDtls[j].Classify2 + "锛�" + complaintItemDTOs[i].sysCodeDtls[j].Contents + "</span>")
+                                                    </td>
+                                                </tr>
+                                            }
+                                            else
+                                            {
+                                                <tr>
+                                                    <td colspan="2">
+                                                        @Html.Raw("娉曞緥渚濇嵁" + (j + 1) + "锛�<span>銆�" + complaintItemDTOs[i].sysCodeDtls[j].CodeSn + "銆�" + complaintItemDTOs[i].sysCodeDtls[j].Classify2 + "锛�" + complaintItemDTOs[i].sysCodeDtls[j].Contents + "</span>")
+                                                    </td>
+                                                </tr>
+
+                                            }
+                                        }
+
                                     }
 
                                 }
@@ -312,29 +356,7 @@
                     </div>
 
 
-                    <style type="text/css">
-                        table {
-                            width: 595px;
-                            font-size: 16pt;
-                            font-family: 'FangSong';
-                            background: #fff;
-                            line-height: 1.5;
-                        }
 
-                        span {
-                            font-size: 15pt;
-                            display: inline;
-                            border-bottom: 1px dashed #111;
-                        }
-
-                        s22pan:after {
-                            content: '';
-                            display: inline;
-                            width: 100%;
-                            margin-top: -5px;
-                            border-bottom: 1px dashed #111;
-                        }
-                    </style>
                 </div>
             </div>
 
@@ -346,6 +368,10 @@
 
                 <a class="btn btn-success" href="javascript:void(0)" onclick="printWin();" style="margin-left:4px; border-radius:4px;">
                     <i class="glyphicon glyphicon-ok"></i>&nbsp;&nbsp;<span class="bold">鎵撳嵃</span>
+                </a>
+
+                <a class="btn btn-success" href="javascript:void(0)" onclick="daochuword();" style="margin-left:4px; border-radius:4px;">
+                    <i class="glyphicon glyphicon-ok"></i>&nbsp;&nbsp;<span class="bold">瀵煎嚭word</span>
                 </a>
             </div>
         </div>
@@ -376,6 +402,9 @@
                 return false;
             }
 
+        function daochuword() {
+            $("#content").wordExport("鎶曡瘔涔(Html.Raw(Model.TsrName))");                  //fileName涓哄鍑虹殑word鏂囦欢鐨勫懡鍚�,content涓鸿瀵煎嚭鐨刪tml鍐呭瀹瑰櫒
+        }
 
 
 
diff --git a/zhengcaioa/zhengcaioa/Views/CooperOrder/selectWenshu.cshtml b/zhengcaioa/zhengcaioa/Views/CooperOrder/selectWenshu.cshtml
index 28a90b2..83b1b93 100644
--- a/zhengcaioa/zhengcaioa/Views/CooperOrder/selectWenshu.cshtml
+++ b/zhengcaioa/zhengcaioa/Views/CooperOrder/selectWenshu.cshtml
@@ -31,10 +31,10 @@
                 formatter: function (cellvalue, options, rowObject) {
 
                     if (rowObject.OrderType1 == "浠f嫙鎶曡瘔涔�") {
-                        return "<a onclick=\"OpenWindow('鏌ョ湅鎶曡瘔涔�','98%','100%', '/CooperOrder/Printtousushu?id=" + rowObject.Id + "')\"  >鏌ョ湅鎶曡瘔涔�</a>";
+                        return "<a onclick=\"OpenWindow('鎵撳嵃瀵煎嚭鎶曡瘔涔�','98%','100%', '/CooperOrder/Printtousushu?id=" + rowObject.Id + "')\"  >鎵撳嵃瀵煎嚭鎶曡瘔涔�</a>";
                     }
                     else if (rowObject.OrderType1 == "浠f嫙璐ㄧ枒鍑�") {
-                        return "<a onclick=\"OpenWindow('鏌ョ湅璐ㄧ枒鍑�','98%','100%', '/CooperOrder/PrintZhiyihan?id=" + rowObject.Id + "')\"  >鏌ョ湅璐ㄧ枒鍑�</a>";
+                        return "<a onclick=\"OpenWindow('鎵撳嵃瀵煎嚭璐ㄧ枒鍑�','98%','100%', '/CooperOrder/PrintZhiyihan?id=" + rowObject.Id + "')\"  >鎵撳嵃瀵煎嚭璐ㄧ枒鍑�</a>";
                     }
                 }
             },
diff --git a/zhengcaioa/zhengcaioa/wwwroot/js/fileSaver.js b/zhengcaioa/zhengcaioa/wwwroot/js/fileSaver.js
new file mode 100644
index 0000000..cc0c310
--- /dev/null
+++ b/zhengcaioa/zhengcaioa/wwwroot/js/fileSaver.js
@@ -0,0 +1,188 @@
+锘�/* FileSaver.js
+ * A saveAs() FileSaver implementation.
+ * 1.3.2
+ * 2016-06-16 18:25:19
+ *
+ * By Eli Grey, http://eligrey.com
+ * License: MIT
+ *   See https://github.com/eligrey/FileSaver.js/blob/master/LICENSE.md
+ */
+ 
+/*global self */
+/*jslint bitwise: true, indent: 4, laxbreak: true, laxcomma: true, smarttabs: true, plusplus: true */
+ 
+/*! @source http://purl.eligrey.com/github/FileSaver.js/blob/master/FileSaver.js */
+ 
+var saveAs = saveAs || (function(view) {
+    "use strict";
+    // IE <10 is explicitly unsupported
+    if (typeof view === "undefined" || typeof navigator !== "undefined" && /MSIE [1-9]\./.test(navigator.userAgent)) {
+        return;
+    }
+    var
+          doc = view.document
+          // only get URL when necessary in case Blob.js hasn't overridden it yet
+        , get_URL = function() {
+            return view.URL || view.webkitURL || view;
+        }
+        , save_link = doc.createElementNS("http://www.w3.org/1999/xhtml", "a")
+        , can_use_save_link = "download" in save_link
+        , click = function(node) {
+            var event = new MouseEvent("click");
+            node.dispatchEvent(event);
+        }
+        , is_safari = /constructor/i.test(view.HTMLElement)
+        , is_chrome_ios =/CriOS\/[\d]+/.test(navigator.userAgent)
+        , throw_outside = function(ex) {
+            (view.setImmediate || view.setTimeout)(function() {
+                throw ex;
+            }, 0);
+        }
+        , force_saveable_type = "application/octet-stream"
+        // the Blob API is fundamentally broken as there is no "downloadfinished" event to subscribe to
+        , arbitrary_revoke_timeout = 1000 * 40 // in ms
+        , revoke = function(file) {
+            var revoker = function() {
+                if (typeof file === "string") { // file is an object URL
+                    get_URL().revokeObjectURL(file);
+                } else { // file is a File
+                    file.remove();
+                }
+            };
+            setTimeout(revoker, arbitrary_revoke_timeout);
+        }
+        , dispatch = function(filesaver, event_types, event) {
+            event_types = [].concat(event_types);
+            var i = event_types.length;
+            while (i--) {
+                var listener = filesaver["on" + event_types[i]];
+                if (typeof listener === "function") {
+                    try {
+                        listener.call(filesaver, event || filesaver);
+                    } catch (ex) {
+                        throw_outside(ex);
+                    }
+                }
+            }
+        }
+        , auto_bom = function(blob) {
+            // prepend BOM for UTF-8 XML and text/* types (including HTML)
+            // note: your browser will automatically convert UTF-16 U+FEFF to EF BB BF
+            if (/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(blob.type)) {
+                return new Blob([String.fromCharCode(0xFEFF), blob], {type: blob.type});
+            }
+            return blob;
+        }
+        , FileSaver = function(blob, name, no_auto_bom) {
+            if (!no_auto_bom) {
+                blob = auto_bom(blob);
+            }
+            // First try a.download, then web filesystem, then object URLs
+            var
+                  filesaver = this
+                , type = blob.type
+                , force = type === force_saveable_type
+                , object_url
+                , dispatch_all = function() {
+                    dispatch(filesaver, "writestart progress write writeend".split(" "));
+                }
+                // on any filesys errors revert to saving with object URLs
+                , fs_error = function() {
+                    if ((is_chrome_ios || (force && is_safari)) && view.FileReader) {
+                        // Safari doesn't allow downloading of blob urls
+                        var reader = new FileReader();
+                        reader.onloadend = function() {
+                            var url = is_chrome_ios ? reader.result : reader.result.replace(/^data:[^;]*;/, 'data:attachment/file;');
+                            var popup = view.open(url, '_blank');
+                            if(!popup) view.location.href = url;
+                            url=undefined; // release reference before dispatching
+                            filesaver.readyState = filesaver.DONE;
+                            dispatch_all();
+                        };
+                        reader.readAsDataURL(blob);
+                        filesaver.readyState = filesaver.INIT;
+                        return;
+                    }
+                    // don't create more object URLs than needed
+                    if (!object_url) {
+                        object_url = get_URL().createObjectURL(blob);
+                    }
+                    if (force) {
+                        view.location.href = object_url;
+                    } else {
+                        var opened = view.open(object_url, "_blank");
+                        if (!opened) {
+                            // Apple does not allow window.open, see https://developer.apple.com/library/safari/documentation/Tools/Conceptual/SafariExtensionGuide/WorkingwithWindowsandTabs/WorkingwithWindowsandTabs.html
+                            view.location.href = object_url;
+                        }
+                    }
+                    filesaver.readyState = filesaver.DONE;
+                    dispatch_all();
+                    revoke(object_url);
+                }
+            ;
+            filesaver.readyState = filesaver.INIT;
+ 
+            if (can_use_save_link) {
+                object_url = get_URL().createObjectURL(blob);
+                setTimeout(function() {
+                    save_link.href = object_url;
+                    save_link.download = name;
+                    click(save_link);
+                    dispatch_all();
+                    revoke(object_url);
+                    filesaver.readyState = filesaver.DONE;
+                });
+                return;
+            }
+ 
+            fs_error();
+        }
+        , FS_proto = FileSaver.prototype
+        , saveAs = function(blob, name, no_auto_bom) {
+            return new FileSaver(blob, name || blob.name || "download", no_auto_bom);
+        }
+    ;
+    // IE 10+ (native saveAs)
+    if (typeof navigator !== "undefined" && navigator.msSaveOrOpenBlob) {
+        return function(blob, name, no_auto_bom) {
+            name = name || blob.name || "download";
+ 
+            if (!no_auto_bom) {
+                blob = auto_bom(blob);
+            }
+            return navigator.msSaveOrOpenBlob(blob, name);
+        };
+    }
+ 
+    FS_proto.abort = function(){};
+    FS_proto.readyState = FS_proto.INIT = 0;
+    FS_proto.WRITING = 1;
+    FS_proto.DONE = 2;
+ 
+    FS_proto.error =
+    FS_proto.onwritestart =
+    FS_proto.onprogress =
+    FS_proto.onwrite =
+    FS_proto.onabort =
+    FS_proto.onerror =
+    FS_proto.onwriteend =
+        null;
+ 
+    return saveAs;
+}(
+       typeof self !== "undefined" && self
+    || typeof window !== "undefined" && window
+    || this.content
+));
+// `self` is undefined in Firefox for Android content script context
+// while `this` is nsIContentFrameMessageManager
+// with an attribute `content` that corresponds to the window
+ 
+if (typeof module !== "undefined" && module.exports) {
+  module.exports.saveAs = saveAs;
+} else if ((typeof define !== "undefined" && define !== null) && (define.amd !== null)) {
+  define([], function() {
+    return saveAs;
+  });
+}
\ No newline at end of file
diff --git a/zhengcaioa/zhengcaioa/wwwroot/js/jquery.wordexport.js b/zhengcaioa/zhengcaioa/wwwroot/js/jquery.wordexport.js
new file mode 100644
index 0000000..14ac6d5
--- /dev/null
+++ b/zhengcaioa/zhengcaioa/wwwroot/js/jquery.wordexport.js
@@ -0,0 +1,84 @@
+锘縤f (typeof jQuery !== "undefined" && typeof saveAs !== "undefined") {
+    (function($) {
+        $.fn.wordExport = function(fileName) {
+            fileName = typeof fileName !== 'undefined' ? fileName : "jQuery-Word-Export";
+            var static = {
+                mhtml: {
+                    top: "Mime-Version: 1.0\nContent-Base: " + location.href + "\nContent-Type: Multipart/related; boundary=\"NEXT.ITEM-BOUNDARY\";type=\"text/html\"\n\n--NEXT.ITEM-BOUNDARY\nContent-Type: text/html; charset=\"utf-8\"\nContent-Location: " + location.href + "\n\n<!DOCTYPE html>\n<html>\n_html_</html>",
+                    head: "<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\n<style>\n_styles_\n</style>\n</head>\n",
+                    body: "<body>_body_</body>"
+                }
+            };
+            var options = {
+                maxWidth: 624
+            };
+            // Clone selected element before manipulating it
+            var markup = $(this).clone();
+ 
+            // Remove hidden elements from the output
+            markup.each(function() {
+                var self = $(this);
+                if (self.is(':hidden'))
+                    self.remove();
+            });
+ 
+            // Embed all images using Data URLs
+            var images = Array();
+            var img = markup.find('img');
+            for (var i = 0; i < img.length; i++) {
+                // Calculate dimensions of output image
+                var w = Math.min(img[i].width, options.maxWidth);
+                var h = img[i].height * (w / img[i].width);
+                // Create canvas for converting image to data URL
+                var canvas = document.createElement("CANVAS");
+                canvas.width = w;
+                canvas.height = h;
+                // Draw image to canvas
+                var context = canvas.getContext('2d');
+                context.drawImage(img[i], 0, 0, w, h);
+                // Get data URL encoding of image
+                var uri = canvas.toDataURL("image/png");
+                $(img[i]).attr("src", img[i].src);
+                img[i].width = w;
+                img[i].height = h;
+                // Save encoded image to array
+                images[i] = {
+                    type: uri.substring(uri.indexOf(":") + 1, uri.indexOf(";")),
+                    encoding: uri.substring(uri.indexOf(";") + 1, uri.indexOf(",")),
+                    location: $(img[i]).attr("src"),
+                    data: uri.substring(uri.indexOf(",") + 1)
+                };
+            }
+ 
+            // Prepare bottom of mhtml file with image data
+            var mhtmlBottom = "\n";
+            for (var i = 0; i < images.length; i++) {
+                mhtmlBottom += "--NEXT.ITEM-BOUNDARY\n";
+                mhtmlBottom += "Content-Location: " + images[i].location + "\n";
+                mhtmlBottom += "Content-Type: " + images[i].type + "\n";
+                mhtmlBottom += "Content-Transfer-Encoding: " + images[i].encoding + "\n\n";
+                mhtmlBottom += images[i].data + "\n\n";
+            }
+            mhtmlBottom += "--NEXT.ITEM-BOUNDARY--";
+ 
+            //TODO: load css from included stylesheet
+            var styles = "";
+ 
+            // Aggregate parts of the file together
+            var fileContent = static.mhtml.top.replace("_html_", static.mhtml.head.replace("_styles_", styles) + static.mhtml.body.replace("_body_", markup.html())) + mhtmlBottom;
+ 
+            // Create a Blob with the file contents
+            var blob = new Blob([fileContent], {
+                type: "application/msword;charset=utf-8"
+            });
+            saveAs(blob, fileName + ".doc");
+        };
+    })(jQuery);
+} else {
+    if (typeof jQuery === "undefined") {
+        console.error("jQuery Word Export: missing dependency (jQuery)");
+    }
+    if (typeof saveAs === "undefined") {
+        console.error("jQuery Word Export: missing dependency (FileSaver.js)");
+    }
+}
\ No newline at end of file

--
Gitblit v1.9.1