ssm實現查看流程圖


jsp

       <!--顯示數據列表-->

        <tbody id="TableData" class="dataContainer" datakey="processDefList">

           <c:forEach items="${pdList}" var="pd">

              <tr class="TableDetail1 template">

                  <td>${pd.name}&nbsp;</td>

                  <td align="CENTER">${pd.version}&nbsp;</td>

                  <td>

                     <a onclick="return window.confirm('確定刪除當前記錄嗎?')" href="${pageContext.request.contextPath}/pd/deleteByKey?key=${pd.key}">刪除</a>

                     <a href="javascript:void(0);" onclick="showPng('${pd.id}','${pd.name}')">查看流程圖</a>

                  </td>

              </tr>

           </c:forEach>

        </tbody>

js

    <script type="text/javascript">

       function showPng(pid,pname){

           $.ajax({

               type:"POST",

              data:{

                   "lcdyId":pid

               },

               dataType:'json',

               url:"${pageContext.request.contextPath}/pd/showPng",

               async:true,

               cache:false,

               beforeSend:function(){

                   return true;

               },

               success:function(list){

                   var imgSrc="data:image/png;base64,";

                   for(var i=0;i<list.length;i++){

                      imgSrc+=list[i];

                   }

                   var img="<img src='"+imgSrc+"'>";

                   layer.open({

                      type:1,

                      area:['800px','400px'],

                      title:pname,

                      shade:0.6,

                      anim:1,

                      shadeClose:true,//點擊陰影處關閉

                      content:img

                   });

               },

               error:function(){

                   layer.msg("流程圖加載失敗",{time:1000, icon:5, shift:6});

               }

            });

       }

    </script>

controller

    /**

     * 顯示png圖片(文件下載)

     */

    @RequestMapping("/showPng")

    @ResponseBody

    public List showPng(String lcdyId){

       InputStream inputStream = processDefinitionService.findPngStream(lcdyId);

       byte[] data=null;

       try {

           data=new byte[inputStream.available()];

           inputStream.read(data);

       } catch (IOException e) {

           e.printStackTrace();

       }

       List<byte[]> list=new ArrayList<byte[]>();

       list.add(data);

       return list;

    }

service

    /**

     * 根據流程定義id獲得png的輸入流

     */

    @Override

    public InputStream findPngStream(String lcdyId) {

       return processEngine.getRepositoryService().getProcessDiagram(lcdyId);

    }


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM