wyq 4 роки тому
батько
коміт
f12d76925c

+ 111 - 1
src/css/staticInfo.less

@@ -361,6 +361,7 @@
       display: flex;
       flex-flow: wrap;
       .radio {
+        display: flex;
         margin: 5px;
         margin-right: 25px;
         label{
@@ -376,8 +377,117 @@
             margin-left: 10px;
           }
         }
-
+        .recommend{
+          width: 18px;
+          height: 18px;
+        }
       } 
     }
   }
 }
+.scalebot{
+  display: flex;
+  align-items: center;
+  justify-content: flex-end;
+  margin-bottom: 44px;
+  .but{
+    width: 94px;
+    height: 34px;
+    background: #FFFFFF;
+    border-radius: 8px;
+    border: 1px solid #2A9BD5;
+    font-size: 16px;
+    font-weight: 400;
+    color: #2A9BD5;
+  }
+  .score{
+    font-size: 16px;
+    font-weight: 400;
+    color: #333333;
+    margin-right: 30px;
+    display: none;
+  }
+}
+.result{
+  height: 72px;
+  background: #EDFAFF;
+  border-radius: 10px;
+  font-size: 14px;
+  font-weight: 500;
+  color: #333333;
+  line-height: 72px;
+  margin-bottom: 40px;
+  text-align: center;
+  display: none;
+  margin: 0 6.5%;
+  .result_box{
+    height: 72px;
+    display: flex;
+    align-items: center;
+    justify-content: center;
+    padding:  0 20px;
+    .hel{
+      width: 21px;
+      height: 21px;
+      background: #2C96E5;
+      border-radius: 50%;
+      display: flex;
+      align-items: center;
+      justify-content: center;
+      color: #fff;
+      margin-right: 9px;
+      font-size: 12px;
+    }
+  }
+  
+}
+.result_title{
+  overflow: hidden;
+  text-overflow:ellipsis;
+  white-space: nowrap;
+}
+.foot{
+  margin-bottom: 20px;
+  margin-top: 40px;
+  display: none;
+  .foot_box{
+    display: flex;
+    justify-content: center;
+    .printing{
+      display: flex;
+      align-items: center;
+      justify-content: space-around;
+      width: 94px;
+      height: 32px;
+      background: #FFFFFF;
+      border-radius: 4px;
+      border: 1px solid #333333;
+      cursor: pointer;
+    }
+    .printing:hover{
+      background: #2C96E5;
+      color: #fff;
+      border:1px solid #2C96E5;
+    }
+    .copy{
+      width: 132px;
+      height: 32px;
+      background: #FFFFFF;
+      border-radius: 4px;
+      border: 1px solid #333333;
+      text-align: center;
+      line-height: 32px;
+      margin-left: 38px;
+      cursor: pointer;
+    }
+    .copy:hover{
+      background: #2C96E5;
+      color: #fff;
+      border:1px solid #2C96E5;
+    }
+  }
+  
+}
+#inputs{
+  position: absolute;top: 0;left: 0;opacity: 0;z-index: -10;
+}

+ 3 - 2
src/html/staticInfo.html

@@ -14,6 +14,7 @@
   </script>
 </head>
 
+
 <body>
   <div class="banner">
     <a href="homeStatic.html"><img class="staticTopLogo" src="../images/staticLogo.png" alt=""></a>
@@ -46,6 +47,7 @@
   </div>
   <div class=" container disCopy notice">
     <div class="content">
+
       <div class="infos"></div>
       <div class="anchors">
         <div class="a-circle"></div>
@@ -56,8 +58,7 @@
   </div>
   <div class=" container disCopy scale">
     <div class="content">
-      <div class="infos">
-
+      <div class="infos" id="Print">
       </div>
       <div class="anchors">
         <div class="a-circle"></div>

BIN
src/images/printing.png


BIN
src/images/printing2.png


BIN
src/images/recommend.png


+ 7 - 0
src/js/cdss.js

@@ -181,6 +181,13 @@ function moreInfo() {
     const type = $(this).parent().attr('data-type')
     openNewWin(`staticInfo.html?type=${encodeURIComponent(type)}&position=0&name=${encodeURIComponent(name)}`)
   })
+  $('.pushItemName').off("click").click(function () {
+    console.log(11)
+    const name = $(this).parent().attr('data-name')
+    const type = $(this).parent().attr('data-type')
+    console.log(name)
+    openNewWin(`staticInfo.html?type=${encodeURIComponent(type)}&position=0&name=${encodeURIComponent(name)}&page=1`)
+  })
 }
 
 function getVersion() {

+ 17 - 0
src/js/cdssHorizontal.js

@@ -655,6 +655,23 @@ function moreInfo() {
     const type = $(this).parent().attr('data-type')
     openNewWin(`staticInfo.html?type=${encodeURIComponent(type)}&position=0&name=${encodeURIComponent(name)}`)
   })
+  $('.pushItemName').off("click").click(function () {
+    console.log(11)
+    const name = $(this).parent().attr('data-name')
+    const type = $(this).parent().attr('data-type')
+    console.log(name)
+    openNewWin(`staticInfo.html?type=${encodeURIComponent(type)}&position=0&name=${encodeURIComponent(name)}&page=1`)
+  })
+  
+}
+function pushItemName(){
+  $('.pushItemName').off("click").click(function () {
+    console.log(11)
+    const name = $(this).parent().attr('data-name')
+    const type = $(this).parent().attr('data-type')
+    console.log(name)
+    openNewWin(`staticInfo.html?type=${encodeURIComponent(type)}&position=0&name=${encodeURIComponent(name)}`)
+  })
 }
 function getVersion() {
   return post(config.getVersion, 'confArr').then((res) => {

Різницю між файлами не показано, бо вона завелика
+ 5 - 0
src/js/jquery-migrate.js


+ 71 - 0
src/js/jquery.PrintArea.js

@@ -0,0 +1,71 @@
+// -----------------------------------------------------------------------
+// Eros Fratini - eros@recoding.it
+// jqprint 0.3
+//
+// - 19/06/2009 - some new implementations, added Opera support
+// - 11/05/2009 - first sketch
+//
+// Printing plug-in for jQuery, evolution of jPrintArea: http://plugins.jquery.com/project/jPrintArea
+// requires jQuery 1.3.x
+//
+// Licensed under the MIT license: http://www.opensource.org/licenses/mit-license.php
+//------------------------------------------------------------------------
+const $ = require("jquery");
+(function ($) {
+  var opt;
+
+  $.fn.jqprint = function (options) {
+    opt = $.extend({}, $.fn.jqprint.defaults, options);
+
+    var $element = (this instanceof $) ? this : $(this);
+
+    if (opt.operaSupport && $.browser.opera) {
+      var tab = window.open("", "jqPrint-preview");
+
+      tab.document.open();
+
+      var doc = tab.document;
+    }
+    else {
+      var $iframe = $("<iframe  />");
+
+      if (!opt.debug) { $iframe.css({ position: "absolute", width: "0px", height: "0px", left: "-600px", top: "-600px" }); }
+
+      $iframe.appendTo("body");
+      var doc = $iframe[0].contentWindow.document;
+    }
+
+    if (opt.importCSS) {
+      if ($("link[media=print]").length > 0) {
+        $("link[media=print]").each(function () {
+          doc.write("<link type='text/css' rel='stylesheet' href='" + $(this).attr("href") + "' media='print' />");
+        });
+      }
+      else {
+        $("link").each(function () {
+          doc.write("<link type='text/css' rel='stylesheet' href='" + $(this).attr("href") + "' />");
+        });
+      }
+    }
+
+    if (opt.printContainer) { doc.write($element.outer()); }
+    else { $element.each(function () { doc.write($(this).html()); }); }
+
+    doc.close();
+
+    (opt.operaSupport && $.browser.opera ? tab : $iframe[0].contentWindow).focus();
+    setTimeout(function () { (opt.operaSupport && $.browser.opera ? tab : $iframe[0].contentWindow).print(); if (tab) { tab.close(); } }, 1000);
+  }
+
+  $.fn.jqprint.defaults = {
+    debug: false,
+    importCSS: true,
+    printContainer: true,
+    operaSupport: true
+  };
+
+  // Thanks to 9__, found at http://users.livejournal.com/9__/380664.html
+  $.fn.outer = function () {
+    return $($('<div></div>').html(this.clone())).html();
+  }
+})($);

+ 15 - 1
src/js/promise.js

@@ -337,6 +337,19 @@ const titleConfigH = {
     location:"left"
   }
 }
+const Toast = function (msg, duration) {
+  duration = isNaN(duration) ? 3000 : duration;
+  var m = document.createElement('div');
+  m.innerHTML = msg;
+  m.style.cssText = "max-width:60%;min-width: 150px;padding:0 14px;height: 40px;color: rgb(255, 255, 255);line-height: 40px;text-align: center;border-radius: 4px;position: fixed;top: 50%;left: 50%;transform: translate(-50%, -50%);z-index: 999999;background: rgba(0, 0, 0,.7);font-size: 16px;";
+  document.body.appendChild(m);
+  setTimeout(function () {
+    var d = 0.5;
+    m.style.webkitTransition = '-webkit-transform ' + d + 's ease-in, opacity ' + d + 's ease-in';
+    m.style.opacity = '0';
+    setTimeout(function () { document.body.removeChild(m) }, d * 1000);
+  }, duration);
+}
 module.exports = {
   config,
     get,
@@ -347,5 +360,6 @@ module.exports = {
   openNewWin,
   isIe8,
   titleConfig,
-  titleConfigH
+  titleConfigH,
+  Toast
 }

+ 157 - 36
src/js/staticInfo.js

@@ -7,17 +7,24 @@ if (!Promise) {
   })
 }
 require('../css/staticInfo.less')
+
 const {
   post,
   throttle,
   imageUrlPrefix,
   config,
   getUrlArgObject,
-  openNewWin
+  openNewWin,
+  Toast
 } = require('./promise.js');
 const $ = require("jquery");
-let showName, noticeName, clinicalPathwayName
+require("./jquery-migrate");
+const jqprint = require("../js/jquery.PrintArea")
+let printing = require('./../images/printing.png');
+let printing2 = require('./../images/printing2.png');
+let recommend = require('./../images/recommend.png');
 
+let showName, noticeName, clinicalPathwayName
 function getInfomation() {
   var param = {
     "type": getUrlArgObject('type'),
@@ -30,6 +37,7 @@ function getInfomation() {
 
   post(config.information, param).then((res) => {
     const data = res.data.data
+    // const data = dataaaa.data
     document.title = showName
     var str = '';
     var anchors = '';
@@ -44,17 +52,15 @@ function getInfomation() {
     var staticKnowList = detailList['静态知识']
     var noticeInfo = detailList['注意事项']
     var clinicalPathwayInfo = detailList['临床路径']
-    var scaleInfo = scale ? scale.scaleDetails : ''
+    var scaleInfo = data.scale ? data.scale.scaleDetails : ''
     var name = data.name
     noticeName = data.noticeName || "注意事项"
     clinicalPathwayName = data.clinicalPathwayName || "临床路径"
-    console.log(clinicalPathwayName)
     renderTab(detailList, scale)
     staticKnowList && renderContent(staticKnowList, 'staticKnowledge')
     noticeInfo && renderContent(noticeInfo, 'notice')
     clinicalPathwayInfo && renderContent(clinicalPathwayInfo, 'clinicalPathway')
     scaleInfo && renderContentscale(scaleInfo, 'scale', name)
-
     $('.content img').bind('contextmenu', function () {
       return false
     })
@@ -105,6 +111,7 @@ function renderContent(list, contentWrapClassName) {
 }
 
 function renderContentscale(list, contentWrapClassName, name) {
+  var pushInfo=[]
   anchors = '<li><i></i><a href="#' + contentWrapClassName +
     '">' + name + '</a></li><li class="anchor-line"></li>';
   str = '<p class="scaletitle">' + name + '</p>'
@@ -112,39 +119,59 @@ function renderContentscale(list, contentWrapClassName, name) {
   $(`.${contentWrapClassName} .anchors ul`).append(anchors);
   for (var i = 0; i < list[0].detailList.length; i++) {
     var item = list[0].detailList[i];
-    item.content = item.content && item.content.replace(/{imageUrlPrefix}/g, imageUrlPrefix);
-    str = '<div class="infoBox scaleBox"><div class="title"> <h2 class="titleH2" id="' + contentWrapClassName + i +
-      '">'
-    str += item.content
-    str += '</h2></div>'
-    str = `<div class="infoWrapper">${str}</div>`
-    $(`.${contentWrapClassName} .infos`).append(str);
-    for (var j = 0; j < item.subList.length; j++) {
-      var items = item.subList[j];
-      for (var k = 0; k < items.detailList.length; k++) {
-        var it = items.detailList[k];
-        it.content = it.content && it.content.replace(/{imageUrlPrefix}/g, imageUrlPrefix);
-        str = '<div class="contentList"><div class="item-list">';
-        str += '<p class="item-title">' + it.content + '</p>'
-        str += '<div class="item-content" data-id="' + it.id + '">'
-        str += '</div></div></div>'
-        $(`.${contentWrapClassName} .infos .infoWrapper .infoBox`).append(str);
-        for (var l = 0; l < it.subList[0].detailList.length; l++) {
-          var its = it.subList[0].detailList[l];
-          its.content = its.content && its.content.replace(/{imageUrlPrefix}/g, imageUrlPrefix);
-          str = '<div class="radio">';
-          str += '<label><input class="radio_type" name="scale' + its.parentId + '" type="radio" value="" />'
-          str += its.content
-          str += '<span class="num">' + '(' + its.score + ')' + '</span>'
-          str += '</label>'
-          str += '</div>'
-          $(".scale .infos .infoWrapper .infoBox .contentList .item-content[data-id=" + its.parentId + "]").append(str);
+    if (item.textType == 11) {
+      item.content = item.content && item.content.replace(/{imageUrlPrefix}/g, imageUrlPrefix);
+      str = '<div class="infoBox scaleBox"><div class="title"> <h2 class="titleH2" id="' + contentWrapClassName + i +
+        '">'
+      str += item.content
+      str += '</h2></div>'
+      str = `<div class="infoWrapper">${str}</div>`
+      $(`.${contentWrapClassName} .infos`).append(str);
+      for (var j = 0; j < item.subList.length; j++) {
+        var items = item.subList[j];
+        for (var k = 0; k < items.detailList.length; k++) {
+          var it = items.detailList[k];
+          it.content = it.content && it.content.replace(/{imageUrlPrefix}/g, imageUrlPrefix);
+          str = '<div class="contentList"><div class="item-list">';
+          str += '<p class="item-title">' + it.content + '</p>'
+          str += '<div class="item-content" data-id="' + it.id + '">'
+          str += '</div></div></div>'
+          $(`.${contentWrapClassName} .infos .infoWrapper .infoBox`).append(str);
+          for (var l = 0; l < it.subList[0].detailList.length; l++) {
+            var its = it.subList[0].detailList[l];
+            its.content = its.content && its.content.replace(/{imageUrlPrefix}/g, imageUrlPrefix);
+            str = '<div class="radio" name="scale' + its.parentId + '" value="' + its.score + '">';
+            str += '<label><input class="radio_type" name="scale' + its.parentId + '" type="radio" value="' + its.score + '" />'
+            str += its.content
+            str += '<span class="num">' + '(' + its.score + ')' + '</span>'
+            str += '</label>'
+            str += `${item.match ? `<img class="recommend" src=${recommend} />` : `` }</div>`
+            $(".scale .infos .infoWrapper .infoBox .contentList .item-content[data-id=" + its.parentId + "]").append(str);
+          }
+        }
+      }
+      
+    }
+    if (item.textType == 13){
+      for (var m = 0; m < item.subList[0].detailList[0].subList[0].detailList.length; m++ ){
+        var itl = item.subList[0].detailList[0].subList[0].detailList[m]
+        let arr = {
+          content: JSON.parse(itl.content),
+          result: itl.result,
+          pushInfo: itl.pushInfo
         }
+        pushInfo.push(arr)
       }
     }
   }
-
-
+  str = '<div class="scalebot">'
+  str += '<p class="score"></p>'
+  str += '<button class="but">结果</button></div>'
+  str += '<div class="result"><div class="result_box"><p class="hel">?</p><span>结果:</span><p id="result_title" class="result_title"></p><textarea id="inputs"></textarea></div></div>'
+  str += `<div class="foot"><div class="foot_box"><div class="printing"><img src=${printing} class="slideImg"/>打印</div><div class="copy">确认并复制结果</div></div></div>`
+  $(`.${contentWrapClassName} .infos `).append(str);
+  // str = `<div class="foot"><div class="foot_box"><div class="printing"><img src=${printing} class="slideImg"/>打印</div><div class="copy">确认并复制结果</div></div></div>`
+  // $(`.${contentWrapClassName} .infos`).after(str);
   function addScrollEvent() {
     var scrollTop = $(`.${contentWrapClassName} .infos`).scrollTop()
 
@@ -162,8 +189,95 @@ function renderContentscale(list, contentWrapClassName, name) {
   addLinkClickEvent(contentWrapClassName);
   adjustHeight();
   adjustWidth()
+  getcheck()
+  getResult(pushInfo)
+  copy()
+  getprinting()
+}
+
+function getprinting() {
+  $('.printing').click(function () {
+    $('.foot').hide()
+    $('#Print').css({
+      'height': 'auto', //高度自动
+    }).jqprint();
+    $('.foot').show()
+  })
+
+}
+
+function getcheck() {
+  $('input:radio').click(function () {
+    var domName = $(this).attr('name');
+    var $radio = $(this);
+    if ($radio.data('waschecked') == true) {
+      $radio.prop('checked', false);
+      $("input:radio[name='" + domName + "']").data('waschecked', false);
+    } else {
+      $radio.prop('checked', true);
+      $("input:radio[name='" + domName + "']").data('waschecked', false);
+      $radio.data('waschecked', true);
+    }
+    console.log("选中状态:", $(this).prop("checked"));
+    console.log($("input:radio[name='" + domName + "']:checked").val());
+  });
 }
 
+function copy() {
+  $(".copy").click(function () {
+    var texts = document.getElementById("result_title").innerText;
+    var inputs = document.getElementById("inputs");
+    inputs.value = texts; // 修改文本框的内容(赋值内容)
+    inputs.select(); // 选中文本
+    document.execCommand("copy"); // 执行浏览器复制命令
+    Toast('复制成功', 500)
+    setTimeout(()=>{
+      window.close()
+    },500)
+    
+  })
+  
+}
+
+function getResult(pushInfo) {
+
+  $(".but").click(function () {
+    let arr = [];
+    let num = 0
+    $(".contentList").each(function (i) {
+      if (Number(parseFloat($(this).find('input[type="radio"]:checked').val()))) {
+        num += parseFloat($(this).find('input[type="radio"]:checked').val())
+      }
+    })
+    for (var i = 0; i < pushInfo.length; i++) {
+      console.log(pushInfo[i])
+      if (pushInfo[i].content.max >= num >= pushInfo[i].content.min) {
+        $(".result_title").attr({
+          "title": pushInfo[i].result
+        });
+        $(".hel").attr({
+          "title": pushInfo[i].pushInfo
+        });
+        
+        $(".result_title").html(pushInfo[i].result);
+      }
+    }
+    $(".score").html('总分:' + num + '分');
+    $(".score").css('display', 'block')
+    $(".result").css('display', 'block')
+    $(".foot").css('display', 'block')
+
+  })
+
+  $(".printing").hover(
+    function () {
+      $(".slideImg").attr("src", printing2);
+    }, function () {
+      $(".slideImg").attr("src", printing);
+
+    });
+
+}
 
 function addLinkClickEvent(contentWrapClassName) {
   $(`.${contentWrapClassName} .anchors li:first`).addClass("active");
@@ -194,8 +308,15 @@ function renderTab(detailList, scale) {
     $(".tabList").append(`<span class="tab" data-module="scale" data-title="` + showName + `">评估内容</span>`)
     //$(".tabBox .title").html(noticeName);
   }
-  $(".tabList .tab").eq(0).addClass("activeTab")
-  let defaultModuleName = $(".tabList .tab").eq(0).attr("data-module")
+  let defaultModuleName
+  if (getUrlArgObject('page') && getUrlArgObject('page') == 1){
+    $(".tabList .tab").eq(1).addClass("activeTab")
+    defaultModuleName = $(".tabList .tab").eq(1).attr("data-module")
+  }else{
+    $(".tabList .tab").eq(0).addClass("activeTab")
+    defaultModuleName = $(".tabList .tab").eq(0).attr("data-module")
+  }
+  
   $(`.${defaultModuleName}`).css("display", "block")
   bindTabClick()
 }

Різницю між файлами не показано, бо вона завелика
+ 1608 - 0
src/response_1624414026017.json