This commit is contained in:
tys1998 2020-02-11 17:05:24 +08:00
commit 097d79b224
278 changed files with 29266 additions and 0 deletions

19
.classpath Normal file
View file

@ -0,0 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src"/>
<classpathentry kind="src" path="resource"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/jdk1.8.0_231">
<attributes>
<attribute name="owner.project.facets" value="java"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.jst.server.core.container/org.eclipse.jst.server.tomcat.runtimeTarget/Apache Tomcat v9.0">
<attributes>
<attribute name="owner.project.facets" value="jst.web"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.web.container"/>
<classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.module.container"/>
<classpathentry kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/5"/>
<classpathentry kind="output" path="WebContent/WEB-INF/classes"/>
</classpath>

14
.editorconfig Normal file
View file

@ -0,0 +1,14 @@
root = true
[*]
indent_style = tab
indent_size = 4
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true
[*.md]
indent_style = space
indent_size = 4
trim_trailing_whitespace = false

31
.project Normal file
View file

@ -0,0 +1,31 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>DIMS</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.wst.common.project.facet.core.builder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.wst.validation.validationbuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.jem.workbench.JavaEMFNature</nature>
<nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
<nature>org.eclipse.wst.common.project.facet.core.nature</nature>
<nature>org.eclipse.jdt.core.javanature</nature>
<nature>org.eclipse.wst.jsdt.core.jsNature</nature>
</natures>
</projectDescription>

12
.settings/.jsdtscope Normal file
View file

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry excluding="**/bower_components/*|**/node_modules/*|**/*.min.js" kind="src" path="WebContent"/>
<classpathentry kind="con" path="org.eclipse.wst.jsdt.launching.JRE_CONTAINER"/>
<classpathentry kind="con" path="org.eclipse.wst.jsdt.launching.WebProject">
<attributes>
<attribute name="hide" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.wst.jsdt.launching.baseBrowserLibrary"/>
<classpathentry kind="output" path=""/>
</classpath>

View file

@ -0,0 +1,6 @@
eclipse.preferences.version=1
encoding//WebContent/WEB-INF/views/admin/storage-form.jsp=UTF-8
encoding//WebContent/WEB-INF/views/login.jsp=UTF-8
encoding//WebContent/WEB-INF/views/nurse/profile.jsp=UTF-8
encoding//WebContent/WEB-INF/views/nurse/query-specific-rx.jsp=UTF-8
encoding//WebContent/WEB-INF/views/nurse/welcome.jsp=UTF-8

View file

@ -0,0 +1,7 @@
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
org.eclipse.jdt.core.compiler.compliance=1.8
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.source=1.8

View file

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?><project-modules id="moduleCoreId" project-version="1.5.0">
<wb-module deploy-name="DIMS">
<wb-resource deploy-path="/" source-path="/WebContent" tag="defaultRootSource"/>
<wb-resource deploy-path="/WEB-INF/classes" source-path="/src"/>
<wb-resource deploy-path="/WEB-INF/classes" source-path="/resource"/>
<property name="context-root" value="DIMS"/>
<property name="java-output-path" value="/DIMS/WebContent/WEB-INF/classes"/>
</wb-module>
</project-modules>

View file

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<faceted-project>
<runtime name="Apache Tomcat v9.0"/>
<fixed facet="jst.web"/>
<fixed facet="wst.jsdt.web"/>
<fixed facet="java"/>
<installed facet="java" version="1.8"/>
<installed facet="jst.web" version="4.0"/>
<installed facet="wst.jsdt.web" version="1.0"/>
</faceted-project>

View file

@ -0,0 +1 @@
org.eclipse.wst.jsdt.launching.baseBrowserLibrary

View file

@ -0,0 +1 @@
Window

BIN
Doc/screenshot_1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 174 KiB

BIN
Doc/screenshot_2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 83 KiB

BIN
Doc/screenshot_3.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 78 KiB

BIN
Doc/screenshot_4.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 86 KiB

BIN
Doc/screenshot_5.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 92 KiB

BIN
Doc/screenshot_6.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

BIN
Doc/screenshot_7.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 121 KiB

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 87 KiB

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 95 KiB

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 82 KiB

Binary file not shown.

1301
README.md Normal file

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,3 @@
Manifest-Version: 1.0
Class-Path:

1
WebContent/WEB-INF/.gitignore vendored Normal file
View file

@ -0,0 +1 @@
/classes/

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View file

@ -0,0 +1,859 @@
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<meta charset="utf-8" />
<title>销毁一个药品批次 - 医院药品库存管理系统</title>
<meta name="description" content="销毁一个药品批次 - 医院药品库存管理系统" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0" />
<!-- bootstrap & fontawesome -->
<link rel="stylesheet" href="../assets/css/bootstrap.min.css" />
<link rel="stylesheet" href="../assets/font-awesome/4.5.0/css/font-awesome.min.css" />
<!-- page specific plugin styles -->
<link rel="stylesheet" href="../assets/css/jquery-ui.custom.min.css" />
<link rel="stylesheet" href="../assets/css/chosen.min.css" />
<link rel="stylesheet" href="../assets/css/bootstrap-datepicker3.min.css" />
<link rel="stylesheet" href="../assets/css/bootstrap-timepicker.min.css" />
<link rel="stylesheet" href="../assets/css/daterangepicker.min.css" />
<link rel="stylesheet" href="../assets/css/bootstrap-datetimepicker.min.css" />
<link rel="stylesheet" href="../assets/css/bootstrap-colorpicker.min.css" />
<!-- text fonts -->
<link rel="stylesheet" href="../assets/css/fonts.googleapis.com.css" />
<!-- ace styles -->
<link rel="stylesheet" href="../assets/css/ace.min.css" class="ace-main-stylesheet" id="main-ace-style" />
<!--[if lte IE 9]>
<link rel="stylesheet" href="../assets/css/ace-part2.min.css" class="ace-main-stylesheet" />
<![endif]-->
<link rel="stylesheet" href="../assets/css/ace-skins.min.css" />
<link rel="stylesheet" href="../assets/css/ace-rtl.min.css" />
<!--[if lte IE 9]>
<link rel="stylesheet" href="../assets/css/ace-ie.min.css" />
<![endif]-->
<!-- inline styles related to this page -->
<!-- ace settings handler -->
<script src="../assets/js/ace-extra.min.js"></script>
<!-- HTML5shiv and Respond.js for IE8 to support HTML5 elements and media queries -->
<!--[if lte IE 8]>
<script src="../assets/js/html5shiv.min.js"></script>
<script src="../assets/js/respond.min.js"></script>
<![endif]-->
</head>
<body class="no-skin">
<div id="navbar" class="navbar navbar-default ace-save-state">
<div class="navbar-container ace-save-state" id="navbar-container">
<button type="button" class="navbar-toggle menu-toggler pull-left" id="menu-toggler" data-target="#sidebar">
<span class="sr-only">Toggle sidebar</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<div class="navbar-header pull-left">
<a href="index.html" class="navbar-brand">
<small>
<i class="fa fa-leaf"></i>
医院药品库存管理系统 DIMS
</small>
</a>
</div>
<div class="navbar-buttons navbar-header pull-right" role="navigation">
<ul class="nav ace-nav">
<li class="grey dropdown-modal">
<a data-toggle="dropdown" class="dropdown-toggle" href="#">
<i class="ace-icon fa fa-tasks"></i>
<span class="badge badge-grey">3</span>
</a>
<ul class="dropdown-menu-right dropdown-navbar dropdown-menu dropdown-caret dropdown-close">
<li class="dropdown-header">
<i class="ace-icon fa fa-check"></i>
统计信息
</li>
<li class="dropdown-content">
<ul class="dropdown-menu dropdown-navbar">
<li>
<a href="../admin/query-specific-admin?Ano=${currentAdmin.ano}">
<div class="clearfix">
<span class="pull-left">由我入库的药品总批数占比</span>
<span class="pull-right">
<fmt:formatNumber value="${myPDbatchesNum / (inventoryPDbatchesNum + destroyedPDbatchesNum) * 100}" pattern="#.00"/>
%
</span>
</div>
<div class="progress progress-mini progress-striped active">
<div style="width:${myPDbatchesNum / (inventoryPDbatchesNum + destroyedPDbatchesNum) * 100}%" class="progress-bar"></div>
</div>
</a>
</li>
<li>
<a href="../admin/query-specific-admin?Ano=${currentAdmin.ano}">
<div class="clearfix">
<span class="pull-left">由我入库的库存药品批数占比</span>
<span class="pull-right">
<fmt:formatNumber value="${myInventoryPDbatchesNum / inventoryPDbatchesNum * 100}" pattern="#.00"/>
%
</span>
</div>
<div class="progress progress-mini progress-striped active">
<div style="width:${myInventoryPDbatchesNum / inventoryPDbatchesNum * 100}%" class="progress-bar progress-bar-warning"></div>
</div>
</a>
</li>
<li>
<a href="../admin/query-specific-admin?Ano=${currentAdmin.ano}">
<div class="clearfix">
<span class="pull-left">由我销毁的药品批数占比</span>
<span class="pull-right">
<fmt:formatNumber value="${myDestroyedPDbatchesNum / destroyedPDbatchesNum * 100}" pattern="#.00"/>
%
</span>
</div>
<div class="progress progress-mini progress-striped active">
<div style="width:${myDestroyedPDbatchesNum / destroyedPDbatchesNum * 100}%" class="progress-bar progress-bar-success"></div>
</div>
</a>
</li>
</ul>
</li>
</ul>
</li>
<li class="green dropdown-modal">
<a data-toggle="dropdown" class="dropdown-toggle" href="#">
<i class="ace-icon fa fa-bell icon-animated-bell"></i>
<span class="badge badge-success">${lowInventoryDrugsNum + close2ExpiryPDbatchesNum}</span>
</a>
<ul class="dropdown-menu-right dropdown-navbar dropdown-menu dropdown-caret dropdown-close">
<li class="dropdown-header">
<i class="ace-icon fa fa-exclamation-triangle"></i>
警报
</li>
<li class="dropdown-content">
<ul class="dropdown-menu dropdown-navbar navbar-pink">
<li>
<a href="../admin/query-low-inventory-drug-list">
<div class="clearfix">
<span class="pull-left">
<i class="btn btn-xs no-hover btn-pink fa fa-comment"></i>
库存药品数量到达下限警报
</span>
<span class="pull-right badge badge-info">${lowInventoryDrugsNum}</span>
</div>
</a>
</li>
<li>
<a href="../admin/query-close-2-expiry-pdbatch-list">
<div class="clearfix">
<span class="pull-left">
<i class="btn btn-xs no-hover btn-success fa fa-shopping-cart"></i>
库存药品批次临期警报
</span>
<span class="pull-right badge badge-success">${close2ExpiryPDbatchesNum}</span>
</div>
</a>
</li>
</ul>
</li>
</ul>
</li>
<li class="light-blue dropdown-modal">
<a data-toggle="dropdown" href="#" class="dropdown-toggle">
<img class="nav-user-photo" src="../assets/images/avatars/Admin.png" alt="头像" />
<span class="user-info">
<small>欢迎,</small>
${currentAdmin.aname}
</span>
<i class="ace-icon fa fa-caret-down"></i>
</a>
<ul class="user-menu dropdown-menu-right dropdown-menu dropdown-yellow dropdown-caret dropdown-close">
<li>
<a href="../admin/profile">
<i class="ace-icon fa fa-user"></i>
个人信息
</a>
</li>
<li class="divider"></li>
<li>
<a href="../logout">
<i class="ace-icon fa fa-power-off"></i>
登出
</a>
</li>
</ul>
</li>
</ul>
</div>
</div><!-- /.navbar-container -->
</div>
<div class="main-container ace-save-state" id="main-container">
<script type="text/javascript">
try{ace.settings.loadState('main-container')}catch(e){}
</script>
<div id="sidebar" class="sidebar responsive ace-save-state">
<script type="text/javascript">
try{ace.settings.loadState('sidebar')}catch(e){}
</script>
<div class="sidebar-shortcuts" id="sidebar-shortcuts">
<div class="sidebar-shortcuts-large" id="sidebar-shortcuts-large">
<button class="btn btn-success">
<i class="ace-icon fa fa-signal"></i>
</button>
<button class="btn btn-info">
<i class="ace-icon fa fa-pencil"></i>
</button>
<button class="btn btn-warning">
<i class="ace-icon fa fa-users"></i>
</button>
<button class="btn btn-danger">
<i class="ace-icon fa fa-cogs"></i>
</button>
</div>
<div class="sidebar-shortcuts-mini" id="sidebar-shortcuts-mini">
<span class="btn btn-success"></span>
<span class="btn btn-info"></span>
<span class="btn btn-warning"></span>
<span class="btn btn-danger"></span>
</div>
</div><!-- /.sidebar-shortcuts -->
<ul class="nav nav-list">
<li class="">
<a href="../admin/welcome">
<i class="menu-icon fa fa-tachometer"></i>
<span class="menu-text"> 欢迎页面 </span>
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="../admin/profile">
<i class="menu-icon fa fa-tag"></i>
<span class="menu-text"> 个人信息页面 </span>
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="../admin/query-supplier-list">
<i class="menu-icon fa fa-briefcase"></i>
<span class="menu-text"> 查看供应商信息列表 </span>
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="../admin/add-supplier-form">
<i class="menu-icon fa fa-desktop"></i>
<span class="menu-text"> 填写新增供应商表单 </span>
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="../admin/query-low-inventory-drug-list">
<i class="menu-icon fa fa-cogs"></i>
<span class="menu-text"> 查看库存紧张的药品 </span>
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="../admin/query-close-2-expiry-pdbatch-list">
<i class="menu-icon fa fa-exclamation-circle"></i>
<span class="menu-text"> 查看临期的药品批次 </span>
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="#" class="dropdown-toggle">
<i class="menu-icon fa fa-list"></i>
<span class="menu-text"> 查看药品库存信息 </span>
<b class="arrow fa fa-angle-down"></b>
</a>
<b class="arrow"></b>
<ul class="submenu">
<li class="">
<a href="../admin/query-drug-list">
<i class="menu-icon fa fa-caret-right"></i>
查看库存药品列表
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="../admin/query-pdbatch-list">
<i class="menu-icon fa fa-caret-right"></i>
查看库存药品批次明细
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="../admin/query-destroyed-pdbatch-list">
<i class="menu-icon fa fa-caret-right"></i>
查看已销毁药品批次列表
</a>
<b class="arrow"></b>
</li>
</ul>
</li>
<li class="">
<a href="../admin/add-storage-form">
<i class="menu-icon fa fa-pencil-square-o"></i>
<span class="menu-text"> 填写药品入库表单 </span>
</a>
<b class="arrow"></b>
</li>
</ul><!-- /.nav-list -->
<div class="sidebar-toggle sidebar-collapse" id="sidebar-collapse">
<i id="sidebar-toggle-icon" class="ace-icon fa fa-angle-double-left ace-save-state" data-icon1="ace-icon fa fa-angle-double-left" data-icon2="ace-icon fa fa-angle-double-right"></i>
</div>
</div>
<div class="main-content">
<div class="main-content-inner">
<div class="breadcrumbs ace-save-state" id="breadcrumbs">
<ul class="breadcrumb">
<li>
<i class="ace-icon fa fa-home home-icon"></i>
<a href="../admin/index">首页</a>
</li>
<li class="active">销毁一个药品批次</li>
</ul><!-- /.breadcrumb -->
</div>
<div class="page-content">
<div class="page-header">
<h1>
销毁一个药品批次
<small>
<i class="ace-icon fa fa-angle-double-right"></i>
选择负责销毁的库存管理员、填写销毁日期和销毁时间
</small>
</h1>
</div><!-- /.page-header -->
<c:choose>
<c:when test="${echo != null}">
<div class="alert alert-info">
<button class="close" data-dismiss="alert">
<i class="ace-icon fa fa-times"></i>
</button>
<i class="ace-icon fa fa-hand-o-right"></i>
${echo}
</div>
</c:when>
</c:choose>
<div class="row">
<div class="col-xs-12">
<!-- PAGE CONTENT BEGINS -->
<form class="form-horizontal" role="form" method="post" action="../admin/submit-destroy-form">
<div class="form-group">
<label class="col-sm-3 control-label no-padding-right" for="form-field-1"> 药品编号 (不可修改) </label>
<div class="col-sm-4">
<input class="form-control" id="form-field-1" type="text" readonly="readonly" placeholder="药品编号 (不可修改)" name="PDno" value="${pdbatch.PDno}" required="required" />
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label no-padding-right" for="id-date-picker-1"> 药品批次 (生产时间) (不可修改) </label>
<div class="col-sm-4">
<div class="input-group">
<input class="form-control" id="id-date-picker-1" type="text" readonly="readonly" placeholder="药品批次 (生产时间) (不可修改)" name="tempPDbatch" value="<fmt:formatDate value="${pdbatch.PDbatch}" pattern="yyyy 年 MM 月 dd 日"/>" required="required" />
<span class="input-group-addon">
<i class="fa fa-calendar bigger-110"></i>
</span>
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label no-padding-right" for="form-field-3"> 药品数量 (不可修改) </label>
<div class="col-sm-4">
<input class="form-control" id="form-field-3" type="text" readonly="readonly" placeholder="药品数量 (不可修改)" name="PDnum" value="${pdbatch.PDnum}" required="required" />
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label no-padding-right" for="form-field-4"> 药品供应商 (不可修改) </label>
<div class="col-sm-4">
<input class="form-control" id="form-field-4" type="text" readonly="readonly" placeholder="药品供应商 (不可修改)" name="Sno" value="${pdbatch.sno}" required="required" />
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label no-padding-right" for="form-field-5"> 入库库存管理员 (不可修改) </label>
<div class="col-sm-4">
<input class="form-control" id="form-field-5" type="text" readonly="readonly" placeholder="入库库存管理员 (不可修改)" name="SAno" value="${pdbatch.SAno}" required="required" />
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label no-padding-right" for="id-date-picker-2"> 药品入库日期 (不可修改) </label>
<div class="col-sm-4">
<div class="input-group">
<input class="form-control" id="id-date-picker-2" type="text" readonly="readonly" placeholder="药品入库日期 (不可修改)" name="tempSdate" value="<fmt:formatDate value="${pdbatch.stime}" pattern="yyyy 年 MM 月 dd 日"/>" required="required" />
<span class="input-group-addon">
<i class="fa fa-calendar bigger-110"></i>
</span>
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label no-padding-right" for="form-field-7"> 药品入库时间 (不可修改) </label>
<div class="col-sm-4">
<div class="input-group">
<input class="form-control" id="form-field-7" type="text" readonly="readonly" placeholder="药品入库时间 (不可修改)" name="tempStime" value="<fmt:formatDate value="${pdbatch.stime}" pattern="HH:mm:ss"/>" required="required" />
<span class="input-group-addon">
<i class="fa fa-clock-o bigger-110"></i>
</span>
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label no-padding-right" for="form-field-8"> 负责销毁的库存管理员 </label>
<div class="col-sm-4">
<select class="chosen-select form-control" id="form-field-8" data-placeholder="选择负责销毁的库存管理员..." name="DAno" required="required">
<option value=""></option>
<c:forEach items="${admins}" var="admin">
<option value="${admin.ano}">${admin.aname}</option>
</c:forEach>
</select>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label no-padding-right" for="id-date-picker-2"> 药品销毁日期 </label>
<div class="col-sm-4">
<div class="input-group">
<input class="form-control date-picker" id="id-date-picker-2" type="text" placeholder="药品销毁日期" name="tempDdate" data-date-format="yyyy 年 mm 月 dd 日" required="required" />
<span class="input-group-addon">
<i class="fa fa-calendar bigger-110"></i>
</span>
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label no-padding-right" for="timepicker1"> 药品销毁时间 </label>
<div class="col-sm-4">
<div class="input-group">
<input class="form-control" id="timepicker1" type="text" placeholder="药品销毁时间" name="tempDtime" required="required" />
<span class="input-group-addon">
<i class="fa fa-clock-o bigger-110"></i>
</span>
</div>
</div>
</div>
<div class="clearfix form-actions">
<div class="col-md-offset-3 col-md-9">
<button class="btn btn-info" type="submit">
<i class="ace-icon fa fa-check bigger-110"></i>
提交
</button>
&nbsp; &nbsp; &nbsp;
<button class="btn" type="reset">
<i class="ace-icon fa fa-undo bigger-110"></i>
重置
</button>
</div>
</div>
</form>
<!-- PAGE CONTENT ENDS -->
</div><!-- /.col -->
</div><!-- /.row -->
</div><!-- /.page-content -->
</div>
</div><!-- /.main-content -->
<div class="footer">
<div class="footer-inner">
<div class="footer-content">
<span class="bigger-120">
<span class="blue bolder">医院药品库存管理系统</span>
DIMS &copy; 2019-2020
</span>
</div>
</div>
</div>
<a href="#" id="btn-scroll-up" class="btn-scroll-up btn btn-sm btn-inverse">
<i class="ace-icon fa fa-angle-double-up icon-only bigger-110"></i>
</a>
</div><!-- /.main-container -->
<!-- basic scripts -->
<!--[if !IE]> -->
<script src="../assets/js/jquery-2.1.4.min.js"></script>
<!-- <![endif]-->
<!--[if IE]>
<script src="../assets/js/jquery-1.11.3.min.js"></script>
<![endif]-->
<script type="text/javascript">
if('ontouchstart' in document.documentElement) document.write("<script src='assets/js/jquery.mobile.custom.min.js'>"+"<"+"/script>");
</script>
<script src="../assets/js/bootstrap.min.js"></script>
<!-- page specific plugin scripts -->
<!--[if lte IE 8]>
<script src="../assets/js/excanvas.min.js"></script>
<![endif]-->
<script src="../assets/js/jquery-ui.custom.min.js"></script>
<script src="../assets/js/jquery.ui.touch-punch.min.js"></script>
<script src="../assets/js/chosen.jquery.min.js"></script>
<script src="../assets/js/spinbox.min.js"></script>
<script src="../assets/js/bootstrap-datepicker.min.js"></script>
<script src="../assets/js/bootstrap-timepicker.min.js"></script>
<script src="../assets/js/moment.min.js"></script>
<script src="../assets/js/daterangepicker.min.js"></script>
<script src="../assets/js/bootstrap-datetimepicker.min.js"></script>
<script src="../assets/js/bootstrap-colorpicker.min.js"></script>
<script src="../assets/js/jquery.knob.min.js"></script>
<script src="../assets/js/autosize.min.js"></script>
<script src="../assets/js/jquery.inputlimiter.min.js"></script>
<script src="../assets/js/jquery.maskedinput.min.js"></script>
<script src="../assets/js/bootstrap-tag.min.js"></script>
<!-- ace scripts -->
<script src="../assets/js/ace-elements.min.js"></script>
<script src="../assets/js/ace.min.js"></script>
<!-- inline scripts related to this page -->
<script type="text/javascript">
jQuery(function($) {
$('#id-disable-check').on('click', function() {
var inp = $('#form-input-readonly').get(0);
if(inp.hasAttribute('disabled')) {
inp.setAttribute('readonly', 'true');
inp.removeAttribute('disabled');
inp.value="This text field is readonly!";
}
else {
inp.setAttribute('disabled', 'disabled');
inp.removeAttribute('readonly');
inp.value="This text field is disabled!";
}
});
if(!ace.vars['touch']) {
$('.chosen-select').chosen({allow_single_deselect:true});
//resize the chosen on window resize
$(window)
.off('resize.chosen')
.on('resize.chosen', function() {
$('.chosen-select').each(function() {
var $this = $(this);
$this.next().css({'width': $this.parent().width()});
})
}).trigger('resize.chosen');
//resize chosen on sidebar collapse/expand
$(document).on('settings.ace.chosen', function(e, event_name, event_val) {
if(event_name != 'sidebar_collapsed') return;
$('.chosen-select').each(function() {
var $this = $(this);
$this.next().css({'width': $this.parent().width()});
})
});
$('#chosen-multiple-style .btn').on('click', function(e){
var target = $(this).find('input[type=radio]');
var which = parseInt(target.val());
if(which == 2) $('#form-field-select-4').addClass('tag-input-style');
else $('#form-field-select-4').removeClass('tag-input-style');
});
}
$('[data-rel=tooltip]').tooltip({container:'body'});
$('[data-rel=popover]').popover({container:'body'});
autosize($('textarea[class*=autosize]'));
$('textarea.limited').inputlimiter({
remText: '%n character%s remaining...',
limitText: 'max allowed : %n.'
});
$.mask.definitions['~']='[+-]';
$('.input-mask-date').mask('99/99/9999');
$('.input-mask-phone').mask('(999) 999-9999');
$('.input-mask-eyescript').mask('~9.99 ~9.99 999');
$(".input-mask-product").mask("a*-999-a999",{placeholder:" ",completed:function(){alert("You typed the following: "+this.val());}});
$( "#input-size-slider" ).css('width','200px').slider({
value:1,
range: "min",
min: 1,
max: 8,
step: 1,
slide: function( event, ui ) {
var sizing = ['', 'input-sm', 'input-lg', 'input-mini', 'input-small', 'input-medium', 'input-large', 'input-xlarge', 'input-xxlarge'];
var val = parseInt(ui.value);
$('#form-field-4').attr('class', sizing[val]).attr('placeholder', '.'+sizing[val]);
}
});
$( "#input-span-slider" ).slider({
value:1,
range: "min",
min: 1,
max: 12,
step: 1,
slide: function( event, ui ) {
var val = parseInt(ui.value);
$('#form-field-5').attr('class', 'col-xs-'+val).val('.col-xs-'+val);
}
});
//"jQuery UI Slider"
//range slider tooltip example
$( "#slider-range" ).css('height','200px').slider({
orientation: "vertical",
range: true,
min: 0,
max: 100,
values: [ 17, 67 ],
slide: function( event, ui ) {
var val = ui.values[$(ui.handle).index()-1] + "";
if( !ui.handle.firstChild ) {
$("<div class='tooltip right in' style='display:none;left:16px;top:-6px;'><div class='tooltip-arrow'></div><div class='tooltip-inner'></div></div>")
.prependTo(ui.handle);
}
$(ui.handle.firstChild).show().children().eq(1).text(val);
}
}).find('span.ui-slider-handle').on('blur', function(){
$(this.firstChild).hide();
});
$( "#slider-range-max" ).slider({
range: "max",
min: 1,
max: 10,
value: 2
});
$( "#slider-eq > span" ).css({width:'90%', 'float':'left', margin:'15px'}).each(function() {
// read initial values from markup and remove that
var value = parseInt( $( this ).text(), 10 );
$( this ).empty().slider({
value: value,
range: "min",
animate: true
});
});
$("#slider-eq > span.ui-slider-purple").slider('disable');//disable third item
$('#id-input-file-1, #id-input-file-2').ace_file_input({
no_file:'No File ...',
btn_choose:'Choose',
btn_change:'Change',
droppable:false,
onchange:null,
thumbnail:false //| true | large
//whitelist:'gif|png|jpg|jpeg'
//blacklist:'exe|php'
//onchange:''
//
});
//pre-show a file name, for example a previously selected file
//$('#id-input-file-1').ace_file_input('show_file_list', ['myfile.txt'])
$('#id-input-file-3').ace_file_input({
style: 'well',
btn_choose: 'Drop files here or click to choose',
btn_change: null,
no_icon: 'ace-icon fa fa-cloud-upload',
droppable: true,
thumbnail: 'small'//large | fit
//,icon_remove:null//set null, to hide remove/reset button
/**,before_change:function(files, dropped) {
//Check an example below
//or examples/file-upload.html
return true;
}*/
/**,before_remove : function() {
return true;
}*/
,
preview_error : function(filename, error_code) {
//name of the file that failed
//error_code values
//1 = 'FILE_LOAD_FAILED',
//2 = 'IMAGE_LOAD_FAILED',
//3 = 'THUMBNAIL_FAILED'
//alert(error_code);
}
}).on('change', function(){
//console.log($(this).data('ace_input_files'));
//console.log($(this).data('ace_input_method'));
});
//$('#id-input-file-3')
//.ace_file_input('show_file_list', [
//{type: 'image', name: 'name of image', path: 'http://path/to/image/for/preview'},
//{type: 'file', name: 'hello.txt'}
//]);
//dynamically change allowed formats by changing allowExt && allowMime function
$('#id-file-format').removeAttr('checked').on('change', function() {
var whitelist_ext, whitelist_mime;
var btn_choose
var no_icon
if(this.checked) {
btn_choose = "Drop images here or click to choose";
no_icon = "ace-icon fa fa-picture-o";
whitelist_ext = ["jpeg", "jpg", "png", "gif", "bmp"];
whitelist_mime = ["image/jpg", "image/jpeg", "image/png", "image/gif", "image/bmp"];
}
else {
btn_choose = "Drop files here or click to choose";
no_icon = "ace-icon fa fa-cloud-upload";
whitelist_ext = null;//all extensions are acceptable
whitelist_mime = null;//all mimes are acceptable
}
var file_input = $('#id-input-file-3');
file_input
.ace_file_input('update_settings',
{
'btn_choose': btn_choose,
'no_icon': no_icon,
'allowExt': whitelist_ext,
'allowMime': whitelist_mime
})
file_input.ace_file_input('reset_input');
file_input
.off('file.error.ace')
.on('file.error.ace', function(e, info) {
//console.log(info.file_count);//number of selected files
//console.log(info.invalid_count);//number of invalid files
//console.log(info.error_list);//a list of errors in the following format
//info.error_count['ext']
//info.error_count['mime']
//info.error_count['size']
//info.error_list['ext'] = [list of file names with invalid extension]
//info.error_list['mime'] = [list of file names with invalid mimetype]
//info.error_list['size'] = [list of file names with invalid size]
/**
if( !info.dropped ) {
//perhapse reset file field if files have been selected, and there are invalid files among them
//when files are dropped, only valid files will be added to our file array
e.preventDefault();//it will rest input
}
*/
//if files have been selected (not dropped), you can choose to reset input
//because browser keeps all selected files anyway and this cannot be changed
//we can only reset file field to become empty again
//on any case you still should check files with your server side script
//because any arbitrary file can be uploaded by user and it's not safe to rely on browser-side measures
});
/**
file_input
.off('file.preview.ace')
.on('file.preview.ace', function(e, info) {
console.log(info.file.width);
console.log(info.file.height);
e.preventDefault();//to prevent preview
});
*/
});
$('#spinner1').ace_spinner({value:0, min:0, max:10000, step:100, btn_up_class:'btn-info', btn_down_class:'btn-info'})
.closest('.ace-spinner')
.on('changed.fu.spinbox', function(){
//console.log($('#spinner1').val())
});
$('#spinner2').ace_spinner({value:0, min:0, max:10000, step:100, touch_spinner: true, icon_up:'ace-icon fa fa-caret-up bigger-110', icon_down:'ace-icon fa fa-caret-down bigger-110'});
$('#spinner3').ace_spinner({value:0, min:-100, max:100, step:10, on_sides: true, icon_up:'ace-icon fa fa-plus bigger-110', icon_down:'ace-icon fa fa-minus bigger-110', btn_up_class:'btn-success', btn_down_class:'btn-danger'});
$('#spinner4').ace_spinner({value:0, min:-100, max:100, step:10, on_sides: true, icon_up:'ace-icon fa fa-plus', icon_down:'ace-icon fa fa-minus', btn_up_class:'btn-purple', btn_down_class:'btn-purple'});
//$('#spinner1').ace_spinner('disable').ace_spinner('value', 11);
//or
//$('#spinner1').closest('.ace-spinner').spinner('disable').spinner('enable').spinner('value', 11);//disable, enable or change value
//$('#spinner1').closest('.ace-spinner').spinner('value', 0);//reset to 0
//datepicker plugin
//link
$('.date-picker').datepicker({
autoclose: true,
todayHighlight: true
})
//show datepicker when clicking on the icon
.next().on(ace.click_event, function(){
$(this).prev().focus();
});
//or change it into a date range picker
$('.input-daterange').datepicker({autoclose:true});
//to translate the daterange picker, please copy the "examples/daterange-fr.js" contents here before initialization
$('input[name=date-range-picker]').daterangepicker({
'applyClass' : 'btn-sm btn-success',
'cancelClass' : 'btn-sm btn-default',
locale: {
applyLabel: 'Apply',
cancelLabel: 'Cancel',
}
})
.prev().on(ace.click_event, function(){
$(this).next().focus();
});
$('#timepicker1').timepicker({
minuteStep: 1,
showSeconds: true,
showMeridian: false,
disableFocus: true,
icons: {
up: 'fa fa-chevron-up',
down: 'fa fa-chevron-down'
}
}).on('focus', function() {
$('#timepicker1').timepicker('showWidget');
}).next().on(ace.click_event, function(){
$(this).prev().focus();
});
if(!ace.vars['old_ie']) $('#date-timepicker1').datetimepicker({
//format: 'MM/DD/YYYY h:mm:ss A',//use this option to display seconds
icons: {
time: 'fa fa-clock-o',
date: 'fa fa-calendar',
up: 'fa fa-chevron-up',
down: 'fa fa-chevron-down',
previous: 'fa fa-chevron-left',
next: 'fa fa-chevron-right',
today: 'fa fa-arrows ',
clear: 'fa fa-trash',
close: 'fa fa-times'
}
}).next().on(ace.click_event, function(){
$(this).prev().focus();
});
$('#colorpicker1').colorpicker();
//$('.colorpicker').last().css('z-index', 2000);//if colorpicker is inside a modal, its z-index should be higher than modal'safe
$('#simple-colorpicker-1').ace_colorpicker();
//$('#simple-colorpicker-1').ace_colorpicker('pick', 2);//select 2nd color
//$('#simple-colorpicker-1').ace_colorpicker('pick', '#fbe983');//select #fbe983 color
//var picker = $('#simple-colorpicker-1').data('ace_colorpicker')
//picker.pick('red', true);//insert the color if it doesn't exist
$(".knob").knob();
var tag_input = $('#form-field-tags');
try{
tag_input.tag(
{
placeholder:tag_input.attr('placeholder'),
//enable typeahead by specifying the source array
source: ace.vars['US_STATES'],//defined in ace.js >> ace.enable_search_ahead
/**
//or fetch data from database, fetch those that match "query"
source: function(query, process) {
$.ajax({url: 'remote_source.php?q='+encodeURIComponent(query)})
.done(function(result_items){
process(result_items);
});
}
*/
}
)
//programmatically add/remove a tag
var $tag_obj = $('#form-field-tags').data('tag');
$tag_obj.add('Programmatically Added');
var index = $tag_obj.inValues('some tag');
$tag_obj.remove(index);
}
catch(e) {
//display a textarea for old IE, because it doesn't support this plugin or another one I tried!
tag_input.after('<textarea id="'+tag_input.attr('id')+'" name="'+tag_input.attr('name')+'" rows="3">'+tag_input.val()+'</textarea>').remove();
//autosize($('#form-field-tags'));
}
/////////
$('#modal-form input[type=file]').ace_file_input({
style:'well',
btn_choose:'Drop files here or click to choose',
btn_change:null,
no_icon:'ace-icon fa fa-cloud-upload',
droppable:true,
thumbnail:'large'
})
//chosen plugin inside a modal will have a zero width because the select element is originally hidden
//and its width cannot be determined.
//so we set the width after modal is show
$('#modal-form').on('shown.bs.modal', function () {
if(!ace.vars['touch']) {
$(this).find('.chosen-container').each(function(){
$(this).find('a:first-child').css('width', '210px');
$(this).find('.chosen-drop').css('width', '210px');
$(this).find('.chosen-search input').css('width', '200px');
});
}
})
/**
//or you can activate the chosen plugin after modal is shown
//this way select element becomes visible with dimensions and chosen works as expected
$('#modal-form').on('shown', function () {
$(this).find('.modal-chosen').chosen();
})
*/
$(document).one('ajaxloadstart.page', function(e) {
autosize.destroy('textarea[class*=autosize]')
$('.limiterBox,.autosizejs').remove();
$('.daterangepicker.dropdown-menu,.colorpicker.dropdown-menu,.bootstrap-datetimepicker-widget.dropdown-menu').remove();
});
});
</script>
</body>
</html>

View file

@ -0,0 +1,854 @@
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<meta charset="utf-8" />
<title>个人信息页面 - 医院药品库存管理系统</title>
<meta name="description" content="个人信息页面 - 医院药品库存管理系统" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0" />
<!-- bootstrap & fontawesome -->
<link rel="stylesheet" href="../assets/css/bootstrap.min.css" />
<link rel="stylesheet" href="../assets/font-awesome/4.5.0/css/font-awesome.min.css" />
<!-- page specific plugin styles -->
<link rel="stylesheet" href="../assets/css/jquery-ui.custom.min.css" />
<link rel="stylesheet" href="../assets/css/jquery.gritter.min.css" />
<link rel="stylesheet" href="../assets/css/select2.min.css" />
<link rel="stylesheet" href="../assets/css/bootstrap-datepicker3.min.css" />
<link rel="stylesheet" href="../assets/css/bootstrap-editable.min.css" />
<!-- text fonts -->
<link rel="stylesheet" href="../assets/css/fonts.googleapis.com.css" />
<!-- ace styles -->
<link rel="stylesheet" href="../assets/css/ace.min.css" class="ace-main-stylesheet" id="main-ace-style" />
<!--[if lte IE 9]>
<link rel="stylesheet" href="../assets/css/ace-part2.min.css" class="ace-main-stylesheet" />
<![endif]-->
<link rel="stylesheet" href="../assets/css/ace-skins.min.css" />
<link rel="stylesheet" href="../assets/css/ace-rtl.min.css" />
<!--[if lte IE 9]>
<link rel="stylesheet" href="../assets/css/ace-ie.min.css" />
<![endif]-->
<!-- inline styles related to this page -->
<!-- ace settings handler -->
<script src="../assets/js/ace-extra.min.js"></script>
<!-- HTML5shiv and Respond.js for IE8 to support HTML5 elements and media queries -->
<!--[if lte IE 8]>
<script src="../assets/js/html5shiv.min.js"></script>
<script src="../assets/js/respond.min.js"></script>
<![endif]-->
</head>
<body class="no-skin">
<div id="navbar" class="navbar navbar-default ace-save-state">
<div class="navbar-container ace-save-state" id="navbar-container">
<button type="button" class="navbar-toggle menu-toggler pull-left" id="menu-toggler" data-target="#sidebar">
<span class="sr-only">Toggle sidebar</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<div class="navbar-header pull-left">
<a href="../admin/index" class="navbar-brand">
<small>
<i class="fa fa-leaf"></i>
医院药品库存管理系统 DIMS
</small>
</a>
</div>
<div class="navbar-buttons navbar-header pull-right" role="navigation">
<ul class="nav ace-nav">
<li class="grey dropdown-modal">
<a data-toggle="dropdown" class="dropdown-toggle" href="#">
<i class="ace-icon fa fa-tasks"></i>
<span class="badge badge-grey">3</span>
</a>
<ul class="dropdown-menu-right dropdown-navbar dropdown-menu dropdown-caret dropdown-close">
<li class="dropdown-header">
<i class="ace-icon fa fa-check"></i>
统计信息
</li>
<li class="dropdown-content">
<ul class="dropdown-menu dropdown-navbar">
<li>
<a href="../admin/query-specific-admin?Ano=${currentAdmin.ano}">
<div class="clearfix">
<span class="pull-left">由我入库的药品总批数占比</span>
<span class="pull-right">
<fmt:formatNumber value="${myPDbatchesNum / (inventoryPDbatchesNum + destroyedPDbatchesNum) * 100}" pattern="#.00"/>
%
</span>
</div>
<div class="progress progress-mini progress-striped active">
<div style="width:${myPDbatchesNum / (inventoryPDbatchesNum + destroyedPDbatchesNum) * 100}%" class="progress-bar"></div>
</div>
</a>
</li>
<li>
<a href="../admin/query-specific-admin?Ano=${currentAdmin.ano}">
<div class="clearfix">
<span class="pull-left">由我入库的库存药品批数占比</span>
<span class="pull-right">
<fmt:formatNumber value="${myInventoryPDbatchesNum / inventoryPDbatchesNum * 100}" pattern="#.00"/>
%
</span>
</div>
<div class="progress progress-mini progress-striped active">
<div style="width:${myInventoryPDbatchesNum / inventoryPDbatchesNum * 100}%" class="progress-bar progress-bar-warning"></div>
</div>
</a>
</li>
<li>
<a href="../admin/query-specific-admin?Ano=${currentAdmin.ano}">
<div class="clearfix">
<span class="pull-left">由我销毁的药品批数占比</span>
<span class="pull-right">
<fmt:formatNumber value="${myDestroyedPDbatchesNum / destroyedPDbatchesNum * 100}" pattern="#.00"/>
%
</span>
</div>
<div class="progress progress-mini progress-striped active">
<div style="width:${myDestroyedPDbatchesNum / destroyedPDbatchesNum * 100}%" class="progress-bar progress-bar-success"></div>
</div>
</a>
</li>
</ul>
</li>
</ul>
</li>
<li class="green dropdown-modal">
<a data-toggle="dropdown" class="dropdown-toggle" href="#">
<i class="ace-icon fa fa-bell icon-animated-bell"></i>
<span class="badge badge-success">${lowInventoryDrugsNum + close2ExpiryPDbatchesNum}</span>
</a>
<ul class="dropdown-menu-right dropdown-navbar dropdown-menu dropdown-caret dropdown-close">
<li class="dropdown-header">
<i class="ace-icon fa fa-exclamation-triangle"></i>
警报
</li>
<li class="dropdown-content">
<ul class="dropdown-menu dropdown-navbar navbar-pink">
<li>
<a href="../admin/query-low-inventory-drug-list">
<div class="clearfix">
<span class="pull-left">
<i class="btn btn-xs no-hover btn-pink fa fa-comment"></i>
库存药品数量到达下限警报
</span>
<span class="pull-right badge badge-info">${lowInventoryDrugsNum}</span>
</div>
</a>
</li>
<li>
<a href="../admin/query-close-2-expiry-pdbatch-list">
<div class="clearfix">
<span class="pull-left">
<i class="btn btn-xs no-hover btn-success fa fa-shopping-cart"></i>
库存药品批次临期警报
</span>
<span class="pull-right badge badge-success">${close2ExpiryPDbatchesNum}</span>
</div>
</a>
</li>
</ul>
</li>
</ul>
</li>
<li class="light-blue dropdown-modal">
<a data-toggle="dropdown" href="#" class="dropdown-toggle">
<img class="nav-user-photo" src="../assets/images/avatars/Admin.png" alt="头像" />
<span class="user-info">
<small>欢迎,</small>
${currentAdmin.aname}
</span>
<i class="ace-icon fa fa-caret-down"></i>
</a>
<ul class="user-menu dropdown-menu-right dropdown-menu dropdown-yellow dropdown-caret dropdown-close">
<li>
<a href="../admin/profile">
<i class="ace-icon fa fa-user"></i>
个人信息
</a>
</li>
<li class="divider"></li>
<li>
<a href="../logout">
<i class="ace-icon fa fa-power-off"></i>
登出
</a>
</li>
</ul>
</li>
</ul>
</div>
</div><!-- /.navbar-container -->
</div>
<div class="main-container ace-save-state" id="main-container">
<script type="text/javascript">
try{ace.settings.loadState('main-container')}catch(e){}
</script>
<div id="sidebar" class="sidebar responsive ace-save-state">
<script type="text/javascript">
try{ace.settings.loadState('sidebar')}catch(e){}
</script>
<div class="sidebar-shortcuts" id="sidebar-shortcuts">
<div class="sidebar-shortcuts-large" id="sidebar-shortcuts-large">
<button class="btn btn-success">
<i class="ace-icon fa fa-signal"></i>
</button>
<button class="btn btn-info">
<i class="ace-icon fa fa-pencil"></i>
</button>
<button class="btn btn-warning">
<i class="ace-icon fa fa-users"></i>
</button>
<button class="btn btn-danger">
<i class="ace-icon fa fa-cogs"></i>
</button>
</div>
<div class="sidebar-shortcuts-mini" id="sidebar-shortcuts-mini">
<span class="btn btn-success"></span>
<span class="btn btn-info"></span>
<span class="btn btn-warning"></span>
<span class="btn btn-danger"></span>
</div>
</div><!-- /.sidebar-shortcuts -->
<ul class="nav nav-list">
<li class="">
<a href="../admin/welcome">
<i class="menu-icon fa fa-tachometer"></i>
<span class="menu-text"> 欢迎页面 </span>
</a>
<b class="arrow"></b>
</li>
<li class="active">
<a href="../admin/profile">
<i class="menu-icon fa fa-tag"></i>
<span class="menu-text"> 个人信息页面 </span>
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="../admin/query-supplier-list">
<i class="menu-icon fa fa-briefcase"></i>
<span class="menu-text"> 查看供应商信息列表 </span>
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="../admin/add-supplier-form">
<i class="menu-icon fa fa-desktop"></i>
<span class="menu-text"> 填写新增供应商表单 </span>
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="../admin/query-low-inventory-drug-list">
<i class="menu-icon fa fa-cogs"></i>
<span class="menu-text"> 查看库存紧张的药品 </span>
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="../admin/query-close-2-expiry-pdbatch-list">
<i class="menu-icon fa fa-exclamation-circle"></i>
<span class="menu-text"> 查看临期的药品批次 </span>
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="#" class="dropdown-toggle">
<i class="menu-icon fa fa-list"></i>
<span class="menu-text"> 查看药品库存信息 </span>
<b class="arrow fa fa-angle-down"></b>
</a>
<b class="arrow"></b>
<ul class="submenu">
<li class="">
<a href="../admin/query-drug-list">
<i class="menu-icon fa fa-caret-right"></i>
查看库存药品列表
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="../admin/query-pdbatch-list">
<i class="menu-icon fa fa-caret-right"></i>
查看库存药品批次明细
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="../admin/query-destroyed-pdbatch-list">
<i class="menu-icon fa fa-caret-right"></i>
查看已销毁药品批次列表
</a>
<b class="arrow"></b>
</li>
</ul>
</li>
<li class="">
<a href="../admin/add-storage-form">
<i class="menu-icon fa fa-pencil-square-o"></i>
<span class="menu-text"> 填写药品入库表单 </span>
</a>
<b class="arrow"></b>
</li>
</ul><!-- /.nav-list -->
<div class="sidebar-toggle sidebar-collapse" id="sidebar-collapse">
<i id="sidebar-toggle-icon" class="ace-icon fa fa-angle-double-left ace-save-state" data-icon1="ace-icon fa fa-angle-double-left" data-icon2="ace-icon fa fa-angle-double-right"></i>
</div>
</div>
<div class="main-content">
<div class="main-content-inner">
<div class="breadcrumbs ace-save-state" id="breadcrumbs">
<ul class="breadcrumb">
<li>
<i class="ace-icon fa fa-home home-icon"></i>
<a href="../admin/index">首页</a>
</li>
<li class="active">个人信息页面</li>
</ul><!-- /.breadcrumb -->
</div>
<div class="page-content">
<div class="page-header">
<h1>个人信息</h1>
</div><!-- /.page-header -->
<c:choose>
<c:when test="${echo != null}">
<div class="alert alert-info">
<button class="close" data-dismiss="alert">
<i class="ace-icon fa fa-times"></i>
</button>
<i class="ace-icon fa fa-hand-o-right"></i>
${echo}
</div>
</c:when>
</c:choose>
<div class="row">
<div class="col-xs-12">
<!-- PAGE CONTENT BEGINS -->
<div>
<div id="user-profile-3" class="user-profile row">
<div class="col-sm-offset-1 col-sm-10">
<div class="tabbable">
<ul class="nav nav-tabs padding-16">
<li class="active">
<a data-toggle="tab" href="#edit-basic">
<i class="green ace-icon fa fa-pencil-square-o bigger-125"></i>
基本信息
</a>
</li>
<li>
<a data-toggle="tab" href="#edit-password">
<i class="blue ace-icon fa fa-key bigger-125"></i>
更改密码
</a>
</li>
</ul>
<div class="tab-content profile-edit-tab-content">
<div id="edit-basic" class="tab-pane in active">
<div class="tabbable">
<div class="tab-content no-border padding-24">
<div id="home" class="tab-pane in active">
<div class="row">
<div class="col-xs-12 col-sm-3 center">
<span class="profile-picture">
<img class="editable img-responsive" id="avatar" src="../assets/images/avatars/Admin.png" alt="头像" />
</span>
</div><!-- /.col -->
<div class="col-xs-12 col-sm-9">
<h4 class="blue">
<span class="middle">&nbsp; ${currentAdmin.aname}</span>
<span class="label label-purple arrowed-in-right">
<i class="ace-icon fa fa-circle smaller-80 align-middle"></i>
库存管理员
</span>
</h4>
<div class="profile-user-info">
<div class="profile-info-row">
<div class="profile-info-name"> 编号 </div>
<div class="profile-info-value">
<span>${currentAdmin.ano}</span>
</div>
</div>
<div class="profile-info-row">
<div class="profile-info-name"> 姓名 </div>
<div class="profile-info-value">
<span>${currentAdmin.aname}</span>
</div>
</div>
<div class="profile-info-row">
<div class="profile-info-name"> 性别 </div>
<div class="profile-info-value">
<span>${currentAdmin.asex ? '男' : '女'}</span>
</div>
</div>
<div class="profile-info-row">
<div class="profile-info-name"> 年龄 </div>
<div class="profile-info-value">
<span>${currentAdmin.aage}</span>
</div>
</div>
</div>
</div><!-- /.col -->
</div><!-- /.row -->
</div><!-- /#home -->
</div>
</div>
</div>
<div id="edit-password" class="tab-pane">
<form action="../admin/changeApwd" method="post" class="form-horizontal">
<div class="space-20"></div>
<div class="form-group">
<label class="col-sm-3 control-label no-padding-right" for="form-field-pass1">新密码</label>
<div class="col-sm-9">
<input type="password" name="Apwd1" required="required" id="form-field-pass1" />
</div>
</div>
<div class="space-4"></div>
<div class="form-group">
<label class="col-sm-3 control-label no-padding-right" for="form-field-pass2">确认密码</label>
<div class="col-sm-9">
<input type="password" name="Apwd2" required="required" id="form-field-pass2" />
</div>
</div>
<div class="clearfix form-actions">
<div class="col-md-offset-3 col-md-9">
<button class="btn btn-info" type="submit">
<i class="ace-icon fa fa-check bigger-110"></i>
保存
</button>
&nbsp; &nbsp;
<button class="btn" type="reset">
<i class="ace-icon fa fa-undo bigger-110"></i>
重置
</button>
</div>
</div>
</form>
</div>
</div>
</div>
</div><!-- /.span -->
</div><!-- /.user-profile -->
</div>
<!-- PAGE CONTENT ENDS -->
</div><!-- /.col -->
</div><!-- /.row -->
</div><!-- /.page-content -->
</div>
</div><!-- /.main-content -->
<div class="footer">
<div class="footer-inner">
<div class="footer-content">
<span class="bigger-120">
<span class="blue bolder">医院药品库存管理系统</span>
DIMS &copy; 2019-2020
</span>
</div>
</div>
</div>
<a href="#" id="btn-scroll-up" class="btn-scroll-up btn btn-sm btn-inverse">
<i class="ace-icon fa fa-angle-double-up icon-only bigger-110"></i>
</a>
</div><!-- /.main-container -->
<!-- basic scripts -->
<!--[if !IE]> -->
<script src="../assets/js/jquery-2.1.4.min.js"></script>
<!-- <![endif]-->
<!--[if IE]>
<script src="../assets/js/jquery-1.11.3.min.js"></script>
<![endif]-->
<script type="text/javascript">
if('ontouchstart' in document.documentElement) document.write("<script src='../assets/js/jquery.mobile.custom.min.js'>"+"<"+"/script>");
</script>
<script src="../assets/js/bootstrap.min.js"></script>
<!-- page specific plugin scripts -->
<!--[if lte IE 8]>
<script src="../assets/js/excanvas.min.js"></script>
<![endif]-->
<script src="../assets/js/jquery-ui.custom.min.js"></script>
<script src="../assets/js/jquery.ui.touch-punch.min.js"></script>
<script src="../assets/js/jquery.gritter.min.js"></script>
<script src="../assets/js/bootbox.js"></script>
<script src="../assets/js/jquery.easypiechart.min.js"></script>
<script src="../assets/js/bootstrap-datepicker.min.js"></script>
<script src="../assets/js/jquery.hotkeys.index.min.js"></script>
<script src="../assets/js/bootstrap-wysiwyg.min.js"></script>
<script src="../assets/js/select2.min.js"></script>
<script src="../assets/js/spinbox.min.js"></script>
<script src="../assets/js/bootstrap-editable.min.js"></script>
<script src="../assets/js/ace-editable.min.js"></script>
<script src="../assets/js/jquery.maskedinput.min.js"></script>
<!-- ace scripts -->
<script src="../assets/js/ace-elements.min.js"></script>
<script src="../assets/js/ace.min.js"></script>
<!-- inline scripts related to this page -->
<script type="text/javascript">
jQuery(function($) {
//editables on first profile page
$.fn.editable.defaults.mode = 'inline';
$.fn.editableform.loading = "<div class='editableform-loading'><i class='ace-icon fa fa-spinner fa-spin fa-2x light-blue'></i></div>";
$.fn.editableform.buttons = '<button type="submit" class="btn btn-info editable-submit"><i class="ace-icon fa fa-check"></i></button>'+
'<button type="button" class="btn editable-cancel"><i class="ace-icon fa fa-times"></i></button>';
//editables
//text editable
$('#username')
.editable({
type: 'text',
name: 'username'
});
//select2 editable
var countries = [];
$.each({ "CA": "Canada", "IN": "India", "NL": "Netherlands", "TR": "Turkey", "US": "United States"}, function(k, v) {
countries.push({id: k, text: v});
});
var cities = [];
cities["CA"] = [];
$.each(["Toronto", "Ottawa", "Calgary", "Vancouver"], function(k, v){
cities["CA"].push({id: v, text: v});
});
cities["IN"] = [];
$.each(["Delhi", "Mumbai", "Bangalore"], function(k, v){
cities["IN"].push({id: v, text: v});
});
cities["NL"] = [];
$.each(["Amsterdam", "Rotterdam", "The Hague"], function(k, v){
cities["NL"].push({id: v, text: v});
});
cities["TR"] = [];
$.each(["Ankara", "Istanbul", "Izmir"], function(k, v){
cities["TR"].push({id: v, text: v});
});
cities["US"] = [];
$.each(["New York", "Miami", "Los Angeles", "Chicago", "Wysconsin"], function(k, v){
cities["US"].push({id: v, text: v});
});
var currentValue = "NL";
$('#country').editable({
type: 'select2',
value : 'NL',
//onblur:'ignore',
source: countries,
select2: {
'width': 140
},
success: function(response, newValue) {
if(currentValue == newValue) return;
currentValue = newValue;
var new_source = (!newValue || newValue == "") ? [] : cities[newValue];
//the destroy method is causing errors in x-editable v1.4.6+
//it worked fine in v1.4.5
/**
$('#city').editable('destroy').editable({
type: 'select2',
source: new_source
}).editable('setValue', null);
*/
//so we remove it altogether and create a new element
var city = $('#city').removeAttr('id').get(0);
$(city).clone().attr('id', 'city').text('Select City').editable({
type: 'select2',
value : null,
//onblur:'ignore',
source: new_source,
select2: {
'width': 140
}
}).insertAfter(city);//insert it after previous instance
$(city).remove();//remove previous instance
}
});
$('#city').editable({
type: 'select2',
value : 'Amsterdam',
//onblur:'ignore',
source: cities[currentValue],
select2: {
'width': 140
}
});
//custom date editable
$('#signup').editable({
type: 'adate',
date: {
//datepicker plugin options
format: 'yyyy/mm/dd',
viewformat: 'yyyy/mm/dd',
weekStart: 1
//,nativeUI: true//if true and browser support input[type=date], native browser control will be used
//,format: 'yyyy-mm-dd',
//viewformat: 'yyyy-mm-dd'
}
})
$('#age').editable({
type: 'spinner',
name : 'age',
spinner : {
min : 16,
max : 99,
step: 1,
on_sides: true
//,nativeUI: true//if true and browser support input[type=number], native browser control will be used
}
});
$('#login').editable({
type: 'slider',
name : 'login',
slider : {
min : 1,
max: 50,
width: 100
//,nativeUI: true//if true and browser support input[type=range], native browser control will be used
},
success: function(response, newValue) {
if(parseInt(newValue) == 1)
$(this).html(newValue + " hour ago");
else $(this).html(newValue + " hours ago");
}
});
$('#about').editable({
mode: 'inline',
type: 'wysiwyg',
name : 'about',
wysiwyg : {
//css : {'max-width':'300px'}
},
success: function(response, newValue) {
}
});
// *** editable avatar *** //
try {//ie8 throws some harmless exceptions, so let's catch'em
//first let's add a fake appendChild method for Image element for browsers that have a problem with this
//because editable plugin calls appendChild, and it causes errors on IE at unpredicted points
try {
document.createElement('IMG').appendChild(document.createElement('B'));
} catch(e) {
Image.prototype.appendChild = function(el){}
}
var last_gritter
$('#avatar').editable({
type: 'image',
name: 'avatar',
value: null,
//onblur: 'ignore', //don't reset or hide editable onblur?!
image: {
//specify ace file input plugin's options here
btn_choose: 'Change Avatar',
droppable: true,
maxSize: 110000,//~100Kb
//and a few extra ones here
name: 'avatar',//put the field name here as well, will be used inside the custom plugin
on_error : function(error_type) {//on_error function will be called when the selected file has a problem
if(last_gritter) $.gritter.remove(last_gritter);
if(error_type == 1) {//file format error
last_gritter = $.gritter.add({
title: 'File is not an image!',
text: 'Please choose a jpg|gif|png image!',
class_name: 'gritter-error gritter-center'
});
} else if(error_type == 2) {//file size rror
last_gritter = $.gritter.add({
title: 'File too big!',
text: 'Image size should not exceed 100Kb!',
class_name: 'gritter-error gritter-center'
});
}
else {//other error
}
},
on_success : function() {
$.gritter.removeAll();
}
},
url: function(params) {
// ***UPDATE AVATAR HERE*** //
//for a working upload example you can replace the contents of this function with
//examples/profile-avatar-update.js
var deferred = new $.Deferred
var value = $('#avatar').next().find('input[type=hidden]:eq(0)').val();
if(!value || value.length == 0) {
deferred.resolve();
return deferred.promise();
}
//dummy upload
setTimeout(function(){
if("FileReader" in window) {
//for browsers that have a thumbnail of selected image
var thumb = $('#avatar').next().find('img').data('thumb');
if(thumb) $('#avatar').get(0).src = thumb;
}
deferred.resolve({'status':'OK'});
if(last_gritter) $.gritter.remove(last_gritter);
last_gritter = $.gritter.add({
title: 'Avatar Updated!',
text: 'Uploading to server can be easily implemented. A working example is included with the template.',
class_name: 'gritter-info gritter-center'
});
}, parseInt(Math.random() * 800 + 800))
return deferred.promise();
// ***END OF UPDATE AVATAR HERE*** //
},
success: function(response, newValue) {
}
})
}catch(e) {}
/**
//let's display edit mode by default?
var blank_image = true;//somehow you determine if image is initially blank or not, or you just want to display file input at first
if(blank_image) {
$('#avatar').editable('show').on('hidden', function(e, reason) {
if(reason == 'onblur') {
$('#avatar').editable('show');
return;
}
$('#avatar').off('hidden');
})
}
*/
//another option is using modals
$('#avatar2').on('click', function(){
var modal =
'<div class="modal fade">\
<div class="modal-dialog">\
<div class="modal-content">\
<div class="modal-header">\
<button type="button" class="close" data-dismiss="modal">&times;</button>\
<h4 class="blue">Change Avatar</h4>\
</div>\
\
<form class="no-margin">\
<div class="modal-body">\
<div class="space-4"></div>\
<div style="width:75%;margin-left:12%;"><input type="file" name="file-input" /></div>\
</div>\
\
<div class="modal-footer center">\
<button type="submit" class="btn btn-sm btn-success"><i class="ace-icon fa fa-check"></i> Submit</button>\
<button type="button" class="btn btn-sm" data-dismiss="modal"><i class="ace-icon fa fa-times"></i> Cancel</button>\
</div>\
</form>\
</div>\
</div>\
</div>';
var modal = $(modal);
modal.modal("show").on("hidden", function(){
modal.remove();
});
var working = false;
var form = modal.find('form:eq(0)');
var file = form.find('input[type=file]').eq(0);
file.ace_file_input({
style:'well',
btn_choose:'Click to choose new avatar',
btn_change:null,
no_icon:'ace-icon fa fa-picture-o',
thumbnail:'small',
before_remove: function() {
//don't remove/reset files while being uploaded
return !working;
},
allowExt: ['jpg', 'jpeg', 'png', 'gif'],
allowMime: ['image/jpg', 'image/jpeg', 'image/png', 'image/gif']
});
form.on('submit', function(){
if(!file.data('ace_input_files')) return false;
file.ace_file_input('disable');
form.find('button').attr('disabled', 'disabled');
form.find('.modal-body').append("<div class='center'><i class='ace-icon fa fa-spinner fa-spin bigger-150 orange'></i></div>");
var deferred = new $.Deferred;
working = true;
deferred.done(function() {
form.find('button').removeAttr('disabled');
form.find('input[type=file]').ace_file_input('enable');
form.find('.modal-body > :last-child').remove();
modal.modal("hide");
var thumb = file.next().find('img').data('thumb');
if(thumb) $('#avatar2').get(0).src = thumb;
working = false;
});
setTimeout(function(){
deferred.resolve();
}, parseInt(Math.random() * 800 + 800));
return false;
});
});
//////////////////////////////
$('#profile-feed-1').ace_scroll({
height: '250px',
mouseWheelLock: true,
alwaysVisible : true
});
$('a[ data-original-title]').tooltip();
$('.easy-pie-chart.percentage').each(function(){
var barColor = $(this).data('color') || '#555';
var trackColor = '#E2E2E2';
var size = parseInt($(this).data('size')) || 72;
$(this).easyPieChart({
barColor: barColor,
trackColor: trackColor,
scaleColor: false,
lineCap: 'butt',
lineWidth: parseInt(size/10),
animate:false,
size: size
}).css('color', barColor);
});
///////////////////////////////////////////
//right & left position
//show the user info on right or left depending on its position
$('#user-profile-2 .memberdiv').on('mouseenter touchstart', function(){
var $this = $(this);
var $parent = $this.closest('.tab-pane');
var off1 = $parent.offset();
var w1 = $parent.width();
var off2 = $this.offset();
var w2 = $this.width();
var place = 'left';
if( parseInt(off2.left) < parseInt(off1.left) + parseInt(w1 / 2) ) place = 'right';
$this.find('.popover').removeClass('right left').addClass(place);
}).on('click', function(e) {
e.preventDefault();
});
///////////////////////////////////////////
$('#user-profile-3')
.find('input[type=file]').ace_file_input({
style:'well',
btn_choose:'Change avatar',
btn_change:null,
no_icon:'ace-icon fa fa-picture-o',
thumbnail:'large',
droppable:true,
allowExt: ['jpg', 'jpeg', 'png', 'gif'],
allowMime: ['image/jpg', 'image/jpeg', 'image/png', 'image/gif']
})
.end().find('button[type=reset]').on(ace.click_event, function(){
$('#user-profile-3 input[type=file]').ace_file_input('reset_input');
})
.end().find('.date-picker').datepicker().next().on(ace.click_event, function(){
$(this).prev().focus();
})
$('.input-mask-phone').mask('(999) 999-9999');
$('#user-profile-3').find('input[type=file]').ace_file_input('show_file_list', [{type: 'image', name: $('#avatar').attr('src')}]);
////////////////////
//change profile
$('[data-toggle="buttons"] .btn').on('click', function(e){
var target = $(this).find('input[type=radio]');
var which = parseInt(target.val());
$('.user-profile').parent().addClass('hide');
$('#user-profile-'+which).parent().removeClass('hide');
});
/////////////////////////////////////
$(document).one('ajaxloadstart.page', function(e) {
//in ajax mode, remove remaining elements before leaving page
try {
$('.editable').editable('destroy');
} catch(e) {}
$('[class*=select2]').remove();
});
});
</script>
</body>
</html>

View file

@ -0,0 +1,666 @@
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<meta charset="utf-8" />
<title>查看临期的药品批次列表 - 医院药品库存管理系统</title>
<meta name="description" content="查看临期的药品批次列表 - 医院药品库存管理系统" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0" />
<!-- bootstrap & fontawesome -->
<link rel="stylesheet" href="../assets/css/bootstrap.min.css" />
<link rel="stylesheet" href="../assets/font-awesome/4.5.0/css/font-awesome.min.css" />
<!-- page specific plugin styles -->
<!-- text fonts -->
<link rel="stylesheet" href="../assets/css/fonts.googleapis.com.css" />
<!-- ace styles -->
<link rel="stylesheet" href="../assets/css/ace.min.css" class="ace-main-stylesheet" id="main-ace-style" />
<!--[if lte IE 9]>
<link rel="stylesheet" href="../assets/css/ace-part2.min.css" class="ace-main-stylesheet" />
<![endif]-->
<link rel="stylesheet" href="../assets/css/ace-skins.min.css" />
<link rel="stylesheet" href="../assets/css/ace-rtl.min.css" />
<!--[if lte IE 9]>
<link rel="stylesheet" href="../assets/css/ace-ie.min.css" />
<![endif]-->
<!-- inline styles related to this page -->
<!-- ace settings handler -->
<script src="../assets/js/ace-extra.min.js"></script>
<!-- HTML5shiv and Respond.js for IE8 to support HTML5 elements and media queries -->
<!--[if lte IE 8]>
<script src="../assets/js/html5shiv.min.js"></script>
<script src="../assets/js/respond.min.js"></script>
<![endif]-->
</head>
<body class="no-skin">
<div id="navbar" class="navbar navbar-default ace-save-state">
<div class="navbar-container ace-save-state" id="navbar-container">
<button type="button" class="navbar-toggle menu-toggler pull-left" id="menu-toggler" data-target="#sidebar">
<span class="sr-only">Toggle sidebar</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<div class="navbar-header pull-left">
<a href="../admin/index" class="navbar-brand">
<small>
<i class="fa fa-leaf"></i>
医院药品库存管理系统 DIMS
</small>
</a>
</div>
<div class="navbar-buttons navbar-header pull-right" role="navigation">
<ul class="nav ace-nav">
<li class="grey dropdown-modal">
<a data-toggle="dropdown" class="dropdown-toggle" href="#">
<i class="ace-icon fa fa-tasks"></i>
<span class="badge badge-grey">3</span>
</a>
<ul class="dropdown-menu-right dropdown-navbar dropdown-menu dropdown-caret dropdown-close">
<li class="dropdown-header">
<i class="ace-icon fa fa-check"></i>
统计信息
</li>
<li class="dropdown-content">
<ul class="dropdown-menu dropdown-navbar">
<li>
<a href="../admin/query-specific-admin?Ano=${currentAdmin.ano}">
<div class="clearfix">
<span class="pull-left">由我入库的药品总批数占比</span>
<span class="pull-right">
<fmt:formatNumber value="${myPDbatchesNum / (inventoryPDbatchesNum + destroyedPDbatchesNum) * 100}" pattern="#.00"/>
%
</span>
</div>
<div class="progress progress-mini progress-striped active">
<div style="width:${myPDbatchesNum / (inventoryPDbatchesNum + destroyedPDbatchesNum) * 100}%" class="progress-bar"></div>
</div>
</a>
</li>
<li>
<a href="../admin/query-specific-admin?Ano=${currentAdmin.ano}">
<div class="clearfix">
<span class="pull-left">由我入库的库存药品批数占比</span>
<span class="pull-right">
<fmt:formatNumber value="${myInventoryPDbatchesNum / inventoryPDbatchesNum * 100}" pattern="#.00"/>
%
</span>
</div>
<div class="progress progress-mini progress-striped active">
<div style="width:${myInventoryPDbatchesNum / inventoryPDbatchesNum * 100}%" class="progress-bar progress-bar-warning"></div>
</div>
</a>
</li>
<li>
<a href="../admin/query-specific-admin?Ano=${currentAdmin.ano}">
<div class="clearfix">
<span class="pull-left">由我销毁的药品批数占比</span>
<span class="pull-right">
<fmt:formatNumber value="${myDestroyedPDbatchesNum / destroyedPDbatchesNum * 100}" pattern="#.00"/>
%
</span>
</div>
<div class="progress progress-mini progress-striped active">
<div style="width:${myDestroyedPDbatchesNum / destroyedPDbatchesNum * 100}%" class="progress-bar progress-bar-success"></div>
</div>
</a>
</li>
</ul>
</li>
</ul>
</li>
<li class="green dropdown-modal">
<a data-toggle="dropdown" class="dropdown-toggle" href="#">
<i class="ace-icon fa fa-bell icon-animated-bell"></i>
<span class="badge badge-success">${lowInventoryDrugsNum + close2ExpiryPDbatchesNum}</span>
</a>
<ul class="dropdown-menu-right dropdown-navbar dropdown-menu dropdown-caret dropdown-close">
<li class="dropdown-header">
<i class="ace-icon fa fa-exclamation-triangle"></i>
警报
</li>
<li class="dropdown-content">
<ul class="dropdown-menu dropdown-navbar navbar-pink">
<li>
<a href="../admin/query-low-inventory-drug-list">
<div class="clearfix">
<span class="pull-left">
<i class="btn btn-xs no-hover btn-pink fa fa-comment"></i>
库存药品数量到达下限警报
</span>
<span class="pull-right badge badge-info">${lowInventoryDrugsNum}</span>
</div>
</a>
</li>
<li>
<a href="../admin/query-close-2-expiry-pdbatch-list">
<div class="clearfix">
<span class="pull-left">
<i class="btn btn-xs no-hover btn-success fa fa-shopping-cart"></i>
库存药品批次临期警报
</span>
<span class="pull-right badge badge-success">${close2ExpiryPDbatchesNum}</span>
</div>
</a>
</li>
</ul>
</li>
</ul>
</li>
<li class="light-blue dropdown-modal">
<a data-toggle="dropdown" href="#" class="dropdown-toggle">
<img class="nav-user-photo" src="../assets/images/avatars/Admin.png" alt="头像" />
<span class="user-info">
<small>欢迎,</small>
${currentAdmin.aname}
</span>
<i class="ace-icon fa fa-caret-down"></i>
</a>
<ul class="user-menu dropdown-menu-right dropdown-menu dropdown-yellow dropdown-caret dropdown-close">
<li>
<a href="../admin/profile">
<i class="ace-icon fa fa-user"></i>
个人信息
</a>
</li>
<li class="divider"></li>
<li>
<a href="../logout">
<i class="ace-icon fa fa-power-off"></i>
登出
</a>
</li>
</ul>
</li>
</ul>
</div>
</div><!-- /.navbar-container -->
</div>
<div class="main-container ace-save-state" id="main-container">
<script type="text/javascript">
try{ace.settings.loadState('main-container')}catch(e){}
</script>
<div id="sidebar" class="sidebar responsive ace-save-state">
<script type="text/javascript">
try{ace.settings.loadState('sidebar')}catch(e){}
</script>
<div class="sidebar-shortcuts" id="sidebar-shortcuts">
<div class="sidebar-shortcuts-large" id="sidebar-shortcuts-large">
<button class="btn btn-success">
<i class="ace-icon fa fa-signal"></i>
</button>
<button class="btn btn-info">
<i class="ace-icon fa fa-pencil"></i>
</button>
<button class="btn btn-warning">
<i class="ace-icon fa fa-users"></i>
</button>
<button class="btn btn-danger">
<i class="ace-icon fa fa-cogs"></i>
</button>
</div>
<div class="sidebar-shortcuts-mini" id="sidebar-shortcuts-mini">
<span class="btn btn-success"></span>
<span class="btn btn-info"></span>
<span class="btn btn-warning"></span>
<span class="btn btn-danger"></span>
</div>
</div><!-- /.sidebar-shortcuts -->
<ul class="nav nav-list">
<li class="">
<a href="../admin/welcome">
<i class="menu-icon fa fa-tachometer"></i>
<span class="menu-text"> 欢迎页面 </span>
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="../admin/profile">
<i class="menu-icon fa fa-tag"></i>
<span class="menu-text"> 个人信息页面 </span>
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="../admin/query-supplier-list">
<i class="menu-icon fa fa-briefcase"></i>
<span class="menu-text"> 查看供应商信息列表 </span>
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="../admin/add-supplier-form">
<i class="menu-icon fa fa-desktop"></i>
<span class="menu-text"> 填写新增供应商表单 </span>
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="../admin/query-low-inventory-drug-list">
<i class="menu-icon fa fa-cogs"></i>
<span class="menu-text"> 查看库存紧张的药品 </span>
</a>
<b class="arrow"></b>
</li>
<li class="active">
<a href="../admin/query-close-2-expiry-pdbatch-list">
<i class="menu-icon fa fa-exclamation-circle"></i>
<span class="menu-text"> 查看临期的药品批次 </span>
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="#" class="dropdown-toggle">
<i class="menu-icon fa fa-list"></i>
<span class="menu-text"> 查看药品库存信息 </span>
<b class="arrow fa fa-angle-down"></b>
</a>
<b class="arrow"></b>
<ul class="submenu">
<li class="">
<a href="../admin/query-drug-list">
<i class="menu-icon fa fa-caret-right"></i>
查看库存药品列表
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="../admin/query-pdbatch-list">
<i class="menu-icon fa fa-caret-right"></i>
查看库存药品批次明细
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="../admin/query-destroyed-pdbatch-list">
<i class="menu-icon fa fa-caret-right"></i>
查看已销毁药品批次列表
</a>
<b class="arrow"></b>
</li>
</ul>
</li>
<li class="">
<a href="../admin/add-storage-form">
<i class="menu-icon fa fa-pencil-square-o"></i>
<span class="menu-text"> 填写药品入库表单 </span>
</a>
<b class="arrow"></b>
</li>
</ul><!-- /.nav-list -->
<div class="sidebar-toggle sidebar-collapse" id="sidebar-collapse">
<i id="sidebar-toggle-icon" class="ace-icon fa fa-angle-double-left ace-save-state" data-icon1="ace-icon fa fa-angle-double-left" data-icon2="ace-icon fa fa-angle-double-right"></i>
</div>
</div>
<div class="main-content">
<div class="main-content-inner">
<div class="breadcrumbs ace-save-state" id="breadcrumbs">
<ul class="breadcrumb">
<li>
<i class="ace-icon fa fa-home home-icon"></i>
<a href="../admin/index">首页</a>
</li>
<li class="active">查看临期的药品批次列表</li>
</ul><!-- /.breadcrumb -->
</div>
<div class="page-content">
<div class="page-header">
<h1>
查看临期的药品批次列表
<small>
<i class="ace-icon fa fa-angle-double-right"></i>
临期的药品批次列表
</small>
</h1>
</div><!-- /.page-header -->
<c:choose>
<c:when test="${echo != null}">
<div class="alert alert-info">
<button class="close" data-dismiss="alert">
<i class="ace-icon fa fa-times"></i>
</button>
<i class="ace-icon fa fa-hand-o-right"></i>
${echo}
</div>
</c:when>
</c:choose>
<a href="../admin/add-storage-form" role="button" class="green" data-toggle="modal">
<button class="btn btn-sm btn-primary">
<i class="ace-icon fa fa-pencil-square-o bigger-110"></i>
添加药品批次入库记录
<i class="ace-icon fa fa-arrow-right icon-on-right"></i>
</button>
</a>
<div class="row">
<div class="col-xs-12">
<!-- PAGE CONTENT BEGINS -->
<div class="row">
<div class="col-xs-12">
<div class="clearfix">
<div class="pull-right tableTools-container"></div>
</div>
<div class="table-header">
查询结果
</div>
<!-- div.table-responsive -->
<!-- div.dataTables_borderWrap -->
<div>
<table id="dynamic-table" class="table table-striped table-bordered table-hover">
<thead>
<tr>
<th>药品编号</th>
<th>药品名称</th>
<th>药品保质期 (天数)</th>
<th>药品批次 (生产日期)</th>
<th>药品数量</th>
<th>药品供应商</th>
<th>入库管理员</th>
<th>药品入库时间</th>
<th>距到期日天数</th>
<th>操作</th>
</tr>
</thead>
<tbody>
<c:forEach items="${drugs}" var="drug">
<tr>
<td>
<a href="../admin/query-specific-drug?PDno=${drug.PDno}" title="查看该药品的库存明细">${drug.PDno}</a>
</td>
<td>
<a href="../admin/query-specific-drug?PDno=${drug.PDno}" title="查看该药品的库存明细">${drug.PDname}</a>
</td>
<td>${drug.PDlife}</td>
<td>
<fmt:formatDate value="${drug.PDbatch}" pattern="yyyy 年 MM 月 dd 日"/>
</td>
<td>${drug.PDnum}</td>
<td>
<a href="../admin/query-specific-supplier?Sno=${drug.sno}" title="查看该供应商的供货明细">${drug.sno}</a>
</td>
<td>
<a href="../admin/query-specific-admin?Ano=${drug.SAno}" title="查看该库存管理员的管理明细">${drug.SAno}</a>
</td>
<td>
<fmt:formatDate value="${drug.stime}" pattern="yyyy 年 MM 月 dd 日 HH:mm"/>
</td>
<td>${drug.rdays}</td>
<td>
<div class="hidden-sm hidden-xs action-buttons">
<a class="green" href="../admin/edit-storage-form?PDno=${drug.PDno}&tempPDbatch=<fmt:formatDate value="${drug.PDbatch}" pattern="yyyy+年+MM+月+dd+日"/>" title="编辑该批次药品的信息">
<i class="ace-icon fa fa-pencil bigger-130"></i>
</a>
<a class="red" href="../admin/destroy-form?PDno=${drug.PDno}&tempPDbatch=<fmt:formatDate value="${drug.PDbatch}" pattern="yyyy+年+MM+月+dd+日"/>" title="销毁删除该批次药品">
<i class="ace-icon fa fa-trash-o bigger-130"></i>
</a>
</div>
<div class="hidden-md hidden-lg">
<div class="inline pos-rel">
<button class="btn btn-minier btn-yellow dropdown-toggle" data-toggle="dropdown" data-position="auto">
<i class="ace-icon fa fa-caret-down icon-only bigger-120"></i>
</button>
<ul class="dropdown-menu dropdown-only-icon dropdown-yellow dropdown-menu-right dropdown-caret dropdown-close">
<li>
<a href="../admin/edit-storage-form?PDno=${drug.PDno}&tempPDbatch=<fmt:formatDate value="${drug.PDbatch}" pattern="yyyy+年+MM+月+dd+日"/>" class="tooltip-success" data-rel="tooltip" title="编辑该批次药品的信息">
<span class="green">
<i class="ace-icon fa fa-pencil-square-o bigger-120"></i>
</span>
</a>
</li>
<li>
<a href="../admin/destroy-form?PDno=${drug.PDno}&tempPDbatch=<fmt:formatDate value="${drug.PDbatch}" pattern="yyyy+年+MM+月+dd+日"/>" class="tooltip-error" data-rel="tooltip" title="销毁删除该批次药品">
<span class="red">
<i class="ace-icon fa fa-trash-o bigger-120"></i>
</span>
</a>
</li>
</ul>
</div>
</div>
</td>
</tr>
</c:forEach>
</tbody>
</table>
</div>
</div>
</div>
<!-- PAGE CONTENT ENDS -->
</div><!-- /.col -->
</div><!-- /.row -->
</div><!-- /.page-content -->
</div>
</div><!-- /.main-content -->
<div class="footer">
<div class="footer-inner">
<div class="footer-content">
<span class="bigger-120">
<span class="blue bolder">医院药品库存管理系统</span>
DIMS &copy; 2019-2020
</span>
</div>
</div>
</div>
<a href="#" id="btn-scroll-up" class="btn-scroll-up btn btn-sm btn-inverse">
<i class="ace-icon fa fa-angle-double-up icon-only bigger-110"></i>
</a>
</div><!-- /.main-container -->
<!-- basic scripts -->
<!--[if !IE]> -->
<script src="../assets/js/jquery-2.1.4.min.js"></script>
<!-- <![endif]-->
<!--[if IE]>
<script src="../assets/js/jquery-1.11.3.min.js"></script>
<![endif]-->
<script type="text/javascript">
if('ontouchstart' in document.documentElement) document.write("<script src='../assets/js/jquery.mobile.custom.min.js'>"+"<"+"/script>");
</script>
<script src="../assets/js/bootstrap.min.js"></script>
<!-- page specific plugin scripts -->
<script src="../assets/js/jquery.dataTables.min.js"></script>
<script src="../assets/js/jquery.dataTables.bootstrap.min.js"></script>
<script src="../assets/js/dataTables.buttons.min.js"></script>
<script src="../assets/js/buttons.flash.min.js"></script>
<script src="../assets/js/buttons.html5.min.js"></script>
<script src="../assets/js/buttons.print.min.js"></script>
<script src="../assets/js/buttons.colVis.min.js"></script>
<script src="../assets/js/dataTables.select.min.js"></script>
<!-- ace scripts -->
<script src="../assets/js/ace-elements.min.js"></script>
<script src="../assets/js/ace.min.js"></script>
<!-- inline scripts related to this page -->
<script type="text/javascript">
jQuery(function($) {
//initiate dataTables plugin
var myTable =
$('#dynamic-table')
//.wrap("<div class='dataTables_borderWrap' />") //if you are applying horizontal scrolling (sScrollX)
.DataTable( {
bAutoWidth: false,
"aoColumns": [
null, null, null, null, null, null, null, null, null, { "bSortable": false }
],
"aaSorting": [],
"iDisplayLength": 5,
"aLengthMenu": [
[5, 10, 15, 20, 25, 30, 35, 40, 45, 50, -1],
["5 条", "10 条", "15 条", "20 条", "25 条", "30 条", "35 条", "40 条", "45 条", "50 条", "全部"]
],
"oLanguage": { // 自定义提示信息
"sLengthMenu": "每页显示 _MENU_ 记录",
"sZeroRecords": "抱歉,没有找到",
"sInfo": "从 _START_ 到 _END_ / 共 _TOTAL_ 条数据 ",
"sInfoEmpty": "没有数据",
"sInfoFiltered": "(从 _MAX_ 条数据中检索) ",
"sSearch": "检索",
"oPaginate": {
"sFirst": "首页",
"sPrevious": "前一页",
"sNext": "后一页",
"sLast": "尾页"
}
}
//"bProcessing": true,
//"bServerSide": true,
//"sAjaxSource": "http://127.0.0.1/table.php" ,
//,
//"sScrollY": "200px",
//"bPaginate": false,
//"sScrollX": "100%",
//"sScrollXInner": "120%",
//"bScrollCollapse": true,
//Note: if you are applying horizontal scrolling (sScrollX) on a ".table-bordered"
//you may want to wrap the table inside a "div.dataTables_borderWrap" element
//"iDisplayLength": 50
} );
$.fn.dataTable.Buttons.defaults.dom.container.className = 'dt-buttons btn-overlap btn-group btn-overlap';
new $.fn.dataTable.Buttons( myTable, {
buttons: [
{
"extend": "colvis",
"text": "<i class='fa fa-search bigger-110 blue'></i> <span class='hidden'>显示/隐藏列</span>",
"className": "btn btn-white btn-primary btn-bold",
columns: ':not(:first):not(:last)'
},
{
"extend": "copy",
"text": "<i class='fa fa-copy bigger-110 pink'></i> <span class='hidden'>复制到剪贴板</span>",
"className": "btn btn-white btn-primary btn-bold"
},
{
"extend": "csv",
"text": "<i class='fa fa-database bigger-110 orange'></i> <span class='hidden'>导出到 CSV 文件</span>",
"className": "btn btn-white btn-primary btn-bold"
},
/* {
"extend": "excel",
"text": "<i class='fa fa-file-excel-o bigger-110 green'></i> <span class='hidden'>导出到 Excel 文件</span>",
"className": "btn btn-white btn-primary btn-bold"
},
{
"extend": "pdf",
"text": "<i class='fa fa-file-pdf-o bigger-110 red'></i> <span class='hidden'>导出到 PDF 文件</span>",
"className": "btn btn-white btn-primary btn-bold"
}, */
{
"extend": "print",
"text": "<i class='fa fa-print bigger-110 grey'></i> <span class='hidden'>打印</span>",
"className": "btn btn-white btn-primary btn-bold",
autoPrint: false
}
]
} );
myTable.buttons().container().appendTo( $('.tableTools-container') );
//style the message box
var defaultCopyAction = myTable.button(1).action();
myTable.button(1).action(function (e, dt, button, config) {
defaultCopyAction(e, dt, button, config);
$('.dt-button-info').addClass('gritter-item-wrapper gritter-info gritter-center white');
});
var defaultColvisAction = myTable.button(0).action();
myTable.button(0).action(function (e, dt, button, config) {
defaultColvisAction(e, dt, button, config);
if($('.dt-button-collection > .dropdown-menu').length == 0) {
$('.dt-button-collection')
.wrapInner('<ul class="dropdown-menu dropdown-light dropdown-caret dropdown-caret" />')
.find('a').attr('href', '#').wrap("<li />")
}
$('.dt-button-collection').appendTo('.tableTools-container .dt-buttons')
});
////
setTimeout(function() {
$($('.tableTools-container')).find('a.dt-button').each(function() {
var div = $(this).find(' > div').first();
if(div.length == 1) div.tooltip({container: 'body', title: div.parent().text()});
else $(this).tooltip({container: 'body', title: $(this).text()});
});
}, 500);
myTable.on( 'select', function ( e, dt, type, index ) {
if ( type === 'row' ) {
$( myTable.row( index ).node() ).find('input:checkbox').prop('checked', true);
}
} );
myTable.on( 'deselect', function ( e, dt, type, index ) {
if ( type === 'row' ) {
$( myTable.row( index ).node() ).find('input:checkbox').prop('checked', false);
}
} );
/////////////////////////////////
//table checkboxes
$('th input[type=checkbox], td input[type=checkbox]').prop('checked', false);
//select/deselect all rows according to table header checkbox
$('#dynamic-table > thead > tr > th input[type=checkbox], #dynamic-table_wrapper input[type=checkbox]').eq(0).on('click', function(){
var th_checked = this.checked;//checkbox inside "TH" table header
$('#dynamic-table').find('tbody > tr').each(function(){
var row = this;
if(th_checked) myTable.row(row).select();
else myTable.row(row).deselect();
});
});
//select/deselect a row when the checkbox is checked/unchecked
$('#dynamic-table').on('click', 'td input[type=checkbox]', function(){
var row = $(this).closest('tr').get(0);
if(this.checked) myTable.row(row).deselect();
else myTable.row(row).select();
});
$(document).on('click', '#dynamic-table .dropdown-toggle', function(e) {
e.stopImmediatePropagation();
e.stopPropagation();
e.preventDefault();
});
//And for the first simple table, which doesn't have TableTools or dataTables
//select/deselect all rows according to table header checkbox
var active_class = 'active';
$('#simple-table > thead > tr > th input[type=checkbox]').eq(0).on('click', function(){
var th_checked = this.checked;//checkbox inside "TH" table header
$(this).closest('table').find('tbody > tr').each(function(){
var row = this;
if(th_checked) $(row).addClass(active_class).find('input[type=checkbox]').eq(0).prop('checked', true);
else $(row).removeClass(active_class).find('input[type=checkbox]').eq(0).prop('checked', false);
});
});
//select/deselect a row when the checkbox is checked/unchecked
$('#simple-table').on('click', 'td input[type=checkbox]', function(){
var $row = $(this).closest('tr');
if($row.is('.detail-row ')) return;
if(this.checked) $row.addClass(active_class);
else $row.removeClass(active_class);
});
/********************************/
//add tooltip for small view action buttons in dropdown menu
$('[data-rel="tooltip"]').tooltip({placement: tooltip_placement});
//tooltip placement on right or left
function tooltip_placement(context, source) {
var $source = $(source);
var $parent = $source.closest('table')
var off1 = $parent.offset();
var w1 = $parent.width();
var off2 = $source.offset();
//var w2 = $source.width();
if( parseInt(off2.left) < parseInt(off1.left) + parseInt(w1 / 2) ) return 'right';
return 'left';
}
/***************/
$('.show-details-btn').on('click', function(e) {
e.preventDefault();
$(this).closest('tr').next().toggleClass('open');
$(this).find(ace.vars['.icon']).toggleClass('fa-angle-double-down').toggleClass('fa-angle-double-up');
});
/***************/
/**
//add horizontal scrollbars to a simple table
$('#simple-table').css({'width':'2000px', 'max-width': 'none'}).wrap('<div style="width: 1000px;" />').parent().ace_scroll(
{
horizontal: true,
styleClass: 'scroll-top scroll-dark scroll-visible',//show the scrollbars on top(default is bottom)
size: 2000,
mouseWheelLock: true
}
).css('padding-top', '12px');
*/
})
</script>
</body>
</html>

View file

@ -0,0 +1,632 @@
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<meta charset="utf-8" />
<title>查看已销毁药品批次列表 - 医院药品库存管理系统</title>
<meta name="description" content="查看已销毁药品批次列表 - 医院药品库存管理系统" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0" />
<!-- bootstrap & fontawesome -->
<link rel="stylesheet" href="../assets/css/bootstrap.min.css" />
<link rel="stylesheet" href="../assets/font-awesome/4.5.0/css/font-awesome.min.css" />
<!-- page specific plugin styles -->
<!-- text fonts -->
<link rel="stylesheet" href="../assets/css/fonts.googleapis.com.css" />
<!-- ace styles -->
<link rel="stylesheet" href="../assets/css/ace.min.css" class="ace-main-stylesheet" id="main-ace-style" />
<!--[if lte IE 9]>
<link rel="stylesheet" href="../assets/css/ace-part2.min.css" class="ace-main-stylesheet" />
<![endif]-->
<link rel="stylesheet" href="../assets/css/ace-skins.min.css" />
<link rel="stylesheet" href="../assets/css/ace-rtl.min.css" />
<!--[if lte IE 9]>
<link rel="stylesheet" href="../assets/css/ace-ie.min.css" />
<![endif]-->
<!-- inline styles related to this page -->
<!-- ace settings handler -->
<script src="../assets/js/ace-extra.min.js"></script>
<!-- HTML5shiv and Respond.js for IE8 to support HTML5 elements and media queries -->
<!--[if lte IE 8]>
<script src="../assets/js/html5shiv.min.js"></script>
<script src="../assets/js/respond.min.js"></script>
<![endif]-->
</head>
<body class="no-skin">
<div id="navbar" class="navbar navbar-default ace-save-state">
<div class="navbar-container ace-save-state" id="navbar-container">
<button type="button" class="navbar-toggle menu-toggler pull-left" id="menu-toggler" data-target="#sidebar">
<span class="sr-only">Toggle sidebar</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<div class="navbar-header pull-left">
<a href="../admin/index" class="navbar-brand">
<small>
<i class="fa fa-leaf"></i>
医院药品库存管理系统 DIMS
</small>
</a>
</div>
<div class="navbar-buttons navbar-header pull-right" role="navigation">
<ul class="nav ace-nav">
<li class="grey dropdown-modal">
<a data-toggle="dropdown" class="dropdown-toggle" href="#">
<i class="ace-icon fa fa-tasks"></i>
<span class="badge badge-grey">3</span>
</a>
<ul class="dropdown-menu-right dropdown-navbar dropdown-menu dropdown-caret dropdown-close">
<li class="dropdown-header">
<i class="ace-icon fa fa-check"></i>
统计信息
</li>
<li class="dropdown-content">
<ul class="dropdown-menu dropdown-navbar">
<li>
<a href="../admin/query-specific-admin?Ano=${currentAdmin.ano}">
<div class="clearfix">
<span class="pull-left">由我入库的药品总批数占比</span>
<span class="pull-right">
<fmt:formatNumber value="${myPDbatchesNum / (inventoryPDbatchesNum + destroyedPDbatchesNum) * 100}" pattern="#.00"/>
%
</span>
</div>
<div class="progress progress-mini progress-striped active">
<div style="width:${myPDbatchesNum / (inventoryPDbatchesNum + destroyedPDbatchesNum) * 100}%" class="progress-bar"></div>
</div>
</a>
</li>
<li>
<a href="../admin/query-specific-admin?Ano=${currentAdmin.ano}">
<div class="clearfix">
<span class="pull-left">由我入库的库存药品批数占比</span>
<span class="pull-right">
<fmt:formatNumber value="${myInventoryPDbatchesNum / inventoryPDbatchesNum * 100}" pattern="#.00"/>
%
</span>
</div>
<div class="progress progress-mini progress-striped active">
<div style="width:${myInventoryPDbatchesNum / inventoryPDbatchesNum * 100}%" class="progress-bar progress-bar-warning"></div>
</div>
</a>
</li>
<li>
<a href="../admin/query-specific-admin?Ano=${currentAdmin.ano}">
<div class="clearfix">
<span class="pull-left">由我销毁的药品批数占比</span>
<span class="pull-right">
<fmt:formatNumber value="${myDestroyedPDbatchesNum / destroyedPDbatchesNum * 100}" pattern="#.00"/>
%
</span>
</div>
<div class="progress progress-mini progress-striped active">
<div style="width:${myDestroyedPDbatchesNum / destroyedPDbatchesNum * 100}%" class="progress-bar progress-bar-success"></div>
</div>
</a>
</li>
</ul>
</li>
</ul>
</li>
<li class="green dropdown-modal">
<a data-toggle="dropdown" class="dropdown-toggle" href="#">
<i class="ace-icon fa fa-bell icon-animated-bell"></i>
<span class="badge badge-success">${lowInventoryDrugsNum + close2ExpiryPDbatchesNum}</span>
</a>
<ul class="dropdown-menu-right dropdown-navbar dropdown-menu dropdown-caret dropdown-close">
<li class="dropdown-header">
<i class="ace-icon fa fa-exclamation-triangle"></i>
警报
</li>
<li class="dropdown-content">
<ul class="dropdown-menu dropdown-navbar navbar-pink">
<li>
<a href="../admin/query-low-inventory-drug-list">
<div class="clearfix">
<span class="pull-left">
<i class="btn btn-xs no-hover btn-pink fa fa-comment"></i>
库存药品数量到达下限警报
</span>
<span class="pull-right badge badge-info">${lowInventoryDrugsNum}</span>
</div>
</a>
</li>
<li>
<a href="../admin/query-close-2-expiry-pdbatch-list">
<div class="clearfix">
<span class="pull-left">
<i class="btn btn-xs no-hover btn-success fa fa-shopping-cart"></i>
库存药品批次临期警报
</span>
<span class="pull-right badge badge-success">${close2ExpiryPDbatchesNum}</span>
</div>
</a>
</li>
</ul>
</li>
</ul>
</li>
<li class="light-blue dropdown-modal">
<a data-toggle="dropdown" href="#" class="dropdown-toggle">
<img class="nav-user-photo" src="../assets/images/avatars/Admin.png" alt="头像" />
<span class="user-info">
<small>欢迎,</small>
${currentAdmin.aname}
</span>
<i class="ace-icon fa fa-caret-down"></i>
</a>
<ul class="user-menu dropdown-menu-right dropdown-menu dropdown-yellow dropdown-caret dropdown-close">
<li>
<a href="../admin/profile">
<i class="ace-icon fa fa-user"></i>
个人信息
</a>
</li>
<li class="divider"></li>
<li>
<a href="../logout">
<i class="ace-icon fa fa-power-off"></i>
登出
</a>
</li>
</ul>
</li>
</ul>
</div>
</div><!-- /.navbar-container -->
</div>
<div class="main-container ace-save-state" id="main-container">
<script type="text/javascript">
try{ace.settings.loadState('main-container')}catch(e){}
</script>
<div id="sidebar" class="sidebar responsive ace-save-state">
<script type="text/javascript">
try{ace.settings.loadState('sidebar')}catch(e){}
</script>
<div class="sidebar-shortcuts" id="sidebar-shortcuts">
<div class="sidebar-shortcuts-large" id="sidebar-shortcuts-large">
<button class="btn btn-success">
<i class="ace-icon fa fa-signal"></i>
</button>
<button class="btn btn-info">
<i class="ace-icon fa fa-pencil"></i>
</button>
<button class="btn btn-warning">
<i class="ace-icon fa fa-users"></i>
</button>
<button class="btn btn-danger">
<i class="ace-icon fa fa-cogs"></i>
</button>
</div>
<div class="sidebar-shortcuts-mini" id="sidebar-shortcuts-mini">
<span class="btn btn-success"></span>
<span class="btn btn-info"></span>
<span class="btn btn-warning"></span>
<span class="btn btn-danger"></span>
</div>
</div><!-- /.sidebar-shortcuts -->
<ul class="nav nav-list">
<li class="">
<a href="../admin/welcome">
<i class="menu-icon fa fa-tachometer"></i>
<span class="menu-text"> 欢迎页面 </span>
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="../admin/profile">
<i class="menu-icon fa fa-tag"></i>
<span class="menu-text"> 个人信息页面 </span>
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="../admin/query-supplier-list">
<i class="menu-icon fa fa-briefcase"></i>
<span class="menu-text"> 查看供应商信息列表 </span>
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="../admin/add-supplier-form">
<i class="menu-icon fa fa-desktop"></i>
<span class="menu-text"> 填写新增供应商表单 </span>
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="../admin/query-low-inventory-drug-list">
<i class="menu-icon fa fa-cogs"></i>
<span class="menu-text"> 查看库存紧张的药品 </span>
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="../admin/query-close-2-expiry-pdbatch-list">
<i class="menu-icon fa fa-exclamation-circle"></i>
<span class="menu-text"> 查看临期的药品批次 </span>
</a>
<b class="arrow"></b>
</li>
<li class="active open">
<a href="#" class="dropdown-toggle">
<i class="menu-icon fa fa-list"></i>
<span class="menu-text"> 查看药品库存信息 </span>
<b class="arrow fa fa-angle-down"></b>
</a>
<b class="arrow"></b>
<ul class="submenu">
<li class="">
<a href="../admin/query-drug-list">
<i class="menu-icon fa fa-caret-right"></i>
查看库存药品列表
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="../admin/query-pdbatch-list">
<i class="menu-icon fa fa-caret-right"></i>
查看库存药品批次明细
</a>
<b class="arrow"></b>
</li>
<li class="active">
<a href="../admin/query-destroyed-pdbatch-list">
<i class="menu-icon fa fa-caret-right"></i>
查看已销毁药品批次列表
</a>
<b class="arrow"></b>
</li>
</ul>
</li>
<li class="">
<a href="../admin/add-storage-form">
<i class="menu-icon fa fa-pencil-square-o"></i>
<span class="menu-text"> 填写药品入库表单 </span>
</a>
<b class="arrow"></b>
</li>
</ul><!-- /.nav-list -->
<div class="sidebar-toggle sidebar-collapse" id="sidebar-collapse">
<i id="sidebar-toggle-icon" class="ace-icon fa fa-angle-double-left ace-save-state" data-icon1="ace-icon fa fa-angle-double-left" data-icon2="ace-icon fa fa-angle-double-right"></i>
</div>
</div>
<div class="main-content">
<div class="main-content-inner">
<div class="breadcrumbs ace-save-state" id="breadcrumbs">
<ul class="breadcrumb">
<li>
<i class="ace-icon fa fa-home home-icon"></i>
<a href="../admin/index">首页</a>
</li>
<li>
<a href="../admin/query-drug-list">查看药品库存信息</a>
</li>
<li class="active">查看已销毁药品批次列表</li>
</ul><!-- /.breadcrumb -->
</div>
<div class="page-content">
<div class="page-header">
<h1>
查看已销毁药品批次列表
<small>
<i class="ace-icon fa fa-angle-double-right"></i>
已销毁药品批次列表
</small>
</h1>
</div><!-- /.page-header -->
<c:choose>
<c:when test="${echo != null}">
<div class="alert alert-info">
<button class="close" data-dismiss="alert">
<i class="ace-icon fa fa-times"></i>
</button>
<i class="ace-icon fa fa-hand-o-right"></i>
${echo}
</div>
</c:when>
</c:choose>
<div class="row">
<div class="col-xs-12">
<!-- PAGE CONTENT BEGINS -->
<div class="row">
<div class="col-xs-12">
<div class="clearfix">
<div class="pull-right tableTools-container"></div>
</div>
<div class="table-header">
查询结果
</div>
<!-- div.table-responsive -->
<!-- div.dataTables_borderWrap -->
<div>
<table id="dynamic-table" class="table table-striped table-bordered table-hover">
<thead>
<tr>
<th>药品编号</th>
<th>药品名称</th>
<th>药品批次 (生产日期)</th>
<th>药品数量</th>
<th>供应商</th>
<th>入库管理员</th>
<th>入库时间</th>
<th>销毁管理员</th>
<th>销毁时间</th>
</tr>
</thead>
<tbody>
<c:forEach items="${destroyedDrugs}" var="drug">
<tr>
<td>
<a href="../admin/query-specific-drug?PDno=${drug.PDno}" title="查看该药品的库存明细">${drug.PDno}</a>
</td>
<td>
<a href="../admin/query-specific-drug?PDno=${drug.PDno}" title="查看该药品的库存明细">${drug.PDname}</a>
</td>
<td>
<fmt:formatDate value="${drug.PDbatch}" pattern="yyyy 年 MM 月 dd 日"/>
</td>
<td>${drug.PDnum}</td>
<td>
<a href="../admin/query-specific-supplier?Sno=${drug.sno}" title="查看该供应商的供货明细">${drug.sno}</a>
</td>
<td>
<a href="../admin/query-specific-admin?Ano=${drug.SAno}" title="查看该库存管理员的管理明细">${drug.SAno}</a>
</td>
<td>
<fmt:formatDate value="${drug.stime}" pattern="yyyy 年 MM 月 dd 日 HH:mm"/>
</td>
<td>
<a href="../admin/query-specific-admin?Ano=${drug.DAno}" title="查看该库存管理员的管理明细">${drug.DAno}</a>
</td>
<td>
<fmt:formatDate value="${drug.dtime}" pattern="yyyy 年 MM 月 dd 日 HH:mm"/>
</td>
</tr>
</c:forEach>
</tbody>
</table>
</div>
</div>
</div>
<!-- PAGE CONTENT ENDS -->
</div><!-- /.col -->
</div><!-- /.row -->
</div><!-- /.page-content -->
</div>
</div><!-- /.main-content -->
<div class="footer">
<div class="footer-inner">
<div class="footer-content">
<span class="bigger-120">
<span class="blue bolder">医院药品库存管理系统</span>
DIMS &copy; 2019-2020
</span>
</div>
</div>
</div>
<a href="#" id="btn-scroll-up" class="btn-scroll-up btn btn-sm btn-inverse">
<i class="ace-icon fa fa-angle-double-up icon-only bigger-110"></i>
</a>
</div><!-- /.main-container -->
<!-- basic scripts -->
<!--[if !IE]> -->
<script src="../assets/js/jquery-2.1.4.min.js"></script>
<!-- <![endif]-->
<!--[if IE]>
<script src="../assets/js/jquery-1.11.3.min.js"></script>
<![endif]-->
<script type="text/javascript">
if('ontouchstart' in document.documentElement) document.write("<script src='../assets/js/jquery.mobile.custom.min.js'>"+"<"+"/script>");
</script>
<script src="../assets/js/bootstrap.min.js"></script>
<!-- page specific plugin scripts -->
<script src="../assets/js/jquery.dataTables.min.js"></script>
<script src="../assets/js/jquery.dataTables.bootstrap.min.js"></script>
<script src="../assets/js/dataTables.buttons.min.js"></script>
<script src="../assets/js/buttons.flash.min.js"></script>
<script src="../assets/js/buttons.html5.min.js"></script>
<script src="../assets/js/buttons.print.min.js"></script>
<script src="../assets/js/buttons.colVis.min.js"></script>
<script src="../assets/js/dataTables.select.min.js"></script>
<!-- ace scripts -->
<script src="../assets/js/ace-elements.min.js"></script>
<script src="../assets/js/ace.min.js"></script>
<!-- inline scripts related to this page -->
<script type="text/javascript">
jQuery(function($) {
//initiate dataTables plugin
var myTable =
$('#dynamic-table')
//.wrap("<div class='dataTables_borderWrap' />") //if you are applying horizontal scrolling (sScrollX)
.DataTable( {
bAutoWidth: false,
"aoColumns": [
null, null, null, null, null, null, null, null, null
],
"aaSorting": [],
"iDisplayLength": 5,
"aLengthMenu": [
[5, 10, 15, 20, 25, 30, 35, 40, 45, 50, -1],
["5 条", "10 条", "15 条", "20 条", "25 条", "30 条", "35 条", "40 条", "45 条", "50 条", "全部"]
],
"oLanguage": { // 自定义提示信息
"sLengthMenu": "每页显示 _MENU_ 记录",
"sZeroRecords": "抱歉,没有找到",
"sInfo": "从 _START_ 到 _END_ / 共 _TOTAL_ 条数据 ",
"sInfoEmpty": "没有数据",
"sInfoFiltered": "(从 _MAX_ 条数据中检索) ",
"sSearch": "检索",
"oPaginate": {
"sFirst": "首页",
"sPrevious": "前一页",
"sNext": "后一页",
"sLast": "尾页"
}
}
//"bProcessing": true,
//"bServerSide": true,
//"sAjaxSource": "http://127.0.0.1/table.php" ,
//,
//"sScrollY": "200px",
//"bPaginate": false,
//"sScrollX": "100%",
//"sScrollXInner": "120%",
//"bScrollCollapse": true,
//Note: if you are applying horizontal scrolling (sScrollX) on a ".table-bordered"
//you may want to wrap the table inside a "div.dataTables_borderWrap" element
//"iDisplayLength": 50
} );
$.fn.dataTable.Buttons.defaults.dom.container.className = 'dt-buttons btn-overlap btn-group btn-overlap';
new $.fn.dataTable.Buttons( myTable, {
buttons: [
{
"extend": "colvis",
"text": "<i class='fa fa-search bigger-110 blue'></i> <span class='hidden'>显示/隐藏列</span>",
"className": "btn btn-white btn-primary btn-bold",
columns: ':not(:first):not(:last)'
},
{
"extend": "copy",
"text": "<i class='fa fa-copy bigger-110 pink'></i> <span class='hidden'>复制到剪贴板</span>",
"className": "btn btn-white btn-primary btn-bold"
},
{
"extend": "csv",
"text": "<i class='fa fa-database bigger-110 orange'></i> <span class='hidden'>导出到 CSV 文件</span>",
"className": "btn btn-white btn-primary btn-bold"
},
/* {
"extend": "excel",
"text": "<i class='fa fa-file-excel-o bigger-110 green'></i> <span class='hidden'>导出到 Excel 文件</span>",
"className": "btn btn-white btn-primary btn-bold"
},
{
"extend": "pdf",
"text": "<i class='fa fa-file-pdf-o bigger-110 red'></i> <span class='hidden'>导出到 PDF 文件</span>",
"className": "btn btn-white btn-primary btn-bold"
}, */
{
"extend": "print",
"text": "<i class='fa fa-print bigger-110 grey'></i> <span class='hidden'>打印</span>",
"className": "btn btn-white btn-primary btn-bold",
autoPrint: false
}
]
} );
myTable.buttons().container().appendTo( $('.tableTools-container') );
//style the message box
var defaultCopyAction = myTable.button(1).action();
myTable.button(1).action(function (e, dt, button, config) {
defaultCopyAction(e, dt, button, config);
$('.dt-button-info').addClass('gritter-item-wrapper gritter-info gritter-center white');
});
var defaultColvisAction = myTable.button(0).action();
myTable.button(0).action(function (e, dt, button, config) {
defaultColvisAction(e, dt, button, config);
if($('.dt-button-collection > .dropdown-menu').length == 0) {
$('.dt-button-collection')
.wrapInner('<ul class="dropdown-menu dropdown-light dropdown-caret dropdown-caret" />')
.find('a').attr('href', '#').wrap("<li />")
}
$('.dt-button-collection').appendTo('.tableTools-container .dt-buttons')
});
////
setTimeout(function() {
$($('.tableTools-container')).find('a.dt-button').each(function() {
var div = $(this).find(' > div').first();
if(div.length == 1) div.tooltip({container: 'body', title: div.parent().text()});
else $(this).tooltip({container: 'body', title: $(this).text()});
});
}, 500);
myTable.on( 'select', function ( e, dt, type, index ) {
if ( type === 'row' ) {
$( myTable.row( index ).node() ).find('input:checkbox').prop('checked', true);
}
} );
myTable.on( 'deselect', function ( e, dt, type, index ) {
if ( type === 'row' ) {
$( myTable.row( index ).node() ).find('input:checkbox').prop('checked', false);
}
} );
/////////////////////////////////
//table checkboxes
$('th input[type=checkbox], td input[type=checkbox]').prop('checked', false);
//select/deselect all rows according to table header checkbox
$('#dynamic-table > thead > tr > th input[type=checkbox], #dynamic-table_wrapper input[type=checkbox]').eq(0).on('click', function(){
var th_checked = this.checked;//checkbox inside "TH" table header
$('#dynamic-table').find('tbody > tr').each(function(){
var row = this;
if(th_checked) myTable.row(row).select();
else myTable.row(row).deselect();
});
});
//select/deselect a row when the checkbox is checked/unchecked
$('#dynamic-table').on('click', 'td input[type=checkbox]', function(){
var row = $(this).closest('tr').get(0);
if(this.checked) myTable.row(row).deselect();
else myTable.row(row).select();
});
$(document).on('click', '#dynamic-table .dropdown-toggle', function(e) {
e.stopImmediatePropagation();
e.stopPropagation();
e.preventDefault();
});
//And for the first simple table, which doesn't have TableTools or dataTables
//select/deselect all rows according to table header checkbox
var active_class = 'active';
$('#simple-table > thead > tr > th input[type=checkbox]').eq(0).on('click', function(){
var th_checked = this.checked;//checkbox inside "TH" table header
$(this).closest('table').find('tbody > tr').each(function(){
var row = this;
if(th_checked) $(row).addClass(active_class).find('input[type=checkbox]').eq(0).prop('checked', true);
else $(row).removeClass(active_class).find('input[type=checkbox]').eq(0).prop('checked', false);
});
});
//select/deselect a row when the checkbox is checked/unchecked
$('#simple-table').on('click', 'td input[type=checkbox]', function(){
var $row = $(this).closest('tr');
if($row.is('.detail-row ')) return;
if(this.checked) $row.addClass(active_class);
else $row.removeClass(active_class);
});
/********************************/
//add tooltip for small view action buttons in dropdown menu
$('[data-rel="tooltip"]').tooltip({placement: tooltip_placement});
//tooltip placement on right or left
function tooltip_placement(context, source) {
var $source = $(source);
var $parent = $source.closest('table')
var off1 = $parent.offset();
var w1 = $parent.width();
var off2 = $source.offset();
//var w2 = $source.width();
if( parseInt(off2.left) < parseInt(off1.left) + parseInt(w1 / 2) ) return 'right';
return 'left';
}
/***************/
$('.show-details-btn').on('click', function(e) {
e.preventDefault();
$(this).closest('tr').next().toggleClass('open');
$(this).find(ace.vars['.icon']).toggleClass('fa-angle-double-down').toggleClass('fa-angle-double-up');
});
/***************/
/**
//add horizontal scrollbars to a simple table
$('#simple-table').css({'width':'2000px', 'max-width': 'none'}).wrap('<div style="width: 1000px;" />').parent().ace_scroll(
{
horizontal: true,
styleClass: 'scroll-top scroll-dark scroll-visible',//show the scrollbars on top(default is bottom)
size: 2000,
mouseWheelLock: true
}
).css('padding-top', '12px');
*/
})
</script>
</body>
</html>

View file

@ -0,0 +1,672 @@
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<meta charset="utf-8" />
<title>查看库存药品列表 - 医院药品库存管理系统</title>
<meta name="description" content="查看库存药品列表 - 医院药品库存管理系统" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0" />
<!-- bootstrap & fontawesome -->
<link rel="stylesheet" href="../assets/css/bootstrap.min.css" />
<link rel="stylesheet" href="../assets/font-awesome/4.5.0/css/font-awesome.min.css" />
<!-- page specific plugin styles -->
<!-- text fonts -->
<link rel="stylesheet" href="../assets/css/fonts.googleapis.com.css" />
<!-- ace styles -->
<link rel="stylesheet" href="../assets/css/ace.min.css" class="ace-main-stylesheet" id="main-ace-style" />
<!--[if lte IE 9]>
<link rel="stylesheet" href="../assets/css/ace-part2.min.css" class="ace-main-stylesheet" />
<![endif]-->
<link rel="stylesheet" href="../assets/css/ace-skins.min.css" />
<link rel="stylesheet" href="../assets/css/ace-rtl.min.css" />
<!--[if lte IE 9]>
<link rel="stylesheet" href="../assets/css/ace-ie.min.css" />
<![endif]-->
<!-- inline styles related to this page -->
<!-- ace settings handler -->
<script src="../assets/js/ace-extra.min.js"></script>
<!-- HTML5shiv and Respond.js for IE8 to support HTML5 elements and media queries -->
<!--[if lte IE 8]>
<script src="../assets/js/html5shiv.min.js"></script>
<script src="../assets/js/respond.min.js"></script>
<![endif]-->
</head>
<body class="no-skin">
<div id="navbar" class="navbar navbar-default ace-save-state">
<div class="navbar-container ace-save-state" id="navbar-container">
<button type="button" class="navbar-toggle menu-toggler pull-left" id="menu-toggler" data-target="#sidebar">
<span class="sr-only">Toggle sidebar</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<div class="navbar-header pull-left">
<a href="../admin/index" class="navbar-brand">
<small>
<i class="fa fa-leaf"></i>
医院药品库存管理系统 DIMS
</small>
</a>
</div>
<div class="navbar-buttons navbar-header pull-right" role="navigation">
<ul class="nav ace-nav">
<li class="grey dropdown-modal">
<a data-toggle="dropdown" class="dropdown-toggle" href="#">
<i class="ace-icon fa fa-tasks"></i>
<span class="badge badge-grey">3</span>
</a>
<ul class="dropdown-menu-right dropdown-navbar dropdown-menu dropdown-caret dropdown-close">
<li class="dropdown-header">
<i class="ace-icon fa fa-check"></i>
统计信息
</li>
<li class="dropdown-content">
<ul class="dropdown-menu dropdown-navbar">
<li>
<a href="../admin/query-specific-admin?Ano=${currentAdmin.ano}">
<div class="clearfix">
<span class="pull-left">由我入库的药品总批数占比</span>
<span class="pull-right">
<fmt:formatNumber value="${myPDbatchesNum / (inventoryPDbatchesNum + destroyedPDbatchesNum) * 100}" pattern="#.00"/>
%
</span>
</div>
<div class="progress progress-mini progress-striped active">
<div style="width:${myPDbatchesNum / (inventoryPDbatchesNum + destroyedPDbatchesNum) * 100}%" class="progress-bar"></div>
</div>
</a>
</li>
<li>
<a href="../admin/query-specific-admin?Ano=${currentAdmin.ano}">
<div class="clearfix">
<span class="pull-left">由我入库的库存药品批数占比</span>
<span class="pull-right">
<fmt:formatNumber value="${myInventoryPDbatchesNum / inventoryPDbatchesNum * 100}" pattern="#.00"/>
%
</span>
</div>
<div class="progress progress-mini progress-striped active">
<div style="width:${myInventoryPDbatchesNum / inventoryPDbatchesNum * 100}%" class="progress-bar progress-bar-warning"></div>
</div>
</a>
</li>
<li>
<a href="../admin/query-specific-admin?Ano=${currentAdmin.ano}">
<div class="clearfix">
<span class="pull-left">由我销毁的药品批数占比</span>
<span class="pull-right">
<fmt:formatNumber value="${myDestroyedPDbatchesNum / destroyedPDbatchesNum * 100}" pattern="#.00"/>
%
</span>
</div>
<div class="progress progress-mini progress-striped active">
<div style="width:${myDestroyedPDbatchesNum / destroyedPDbatchesNum * 100}%" class="progress-bar progress-bar-success"></div>
</div>
</a>
</li>
</ul>
</li>
</ul>
</li>
<li class="green dropdown-modal">
<a data-toggle="dropdown" class="dropdown-toggle" href="#">
<i class="ace-icon fa fa-bell icon-animated-bell"></i>
<span class="badge badge-success">${lowInventoryDrugsNum + close2ExpiryPDbatchesNum}</span>
</a>
<ul class="dropdown-menu-right dropdown-navbar dropdown-menu dropdown-caret dropdown-close">
<li class="dropdown-header">
<i class="ace-icon fa fa-exclamation-triangle"></i>
警报
</li>
<li class="dropdown-content">
<ul class="dropdown-menu dropdown-navbar navbar-pink">
<li>
<a href="../admin/query-low-inventory-drug-list">
<div class="clearfix">
<span class="pull-left">
<i class="btn btn-xs no-hover btn-pink fa fa-comment"></i>
库存药品数量到达下限警报
</span>
<span class="pull-right badge badge-info">${lowInventoryDrugsNum}</span>
</div>
</a>
</li>
<li>
<a href="../admin/query-close-2-expiry-pdbatch-list">
<div class="clearfix">
<span class="pull-left">
<i class="btn btn-xs no-hover btn-success fa fa-shopping-cart"></i>
库存药品批次临期警报
</span>
<span class="pull-right badge badge-success">${close2ExpiryPDbatchesNum}</span>
</div>
</a>
</li>
</ul>
</li>
</ul>
</li>
<li class="light-blue dropdown-modal">
<a data-toggle="dropdown" href="#" class="dropdown-toggle">
<img class="nav-user-photo" src="../assets/images/avatars/Admin.png" alt="头像" />
<span class="user-info">
<small>欢迎,</small>
${currentAdmin.aname}
</span>
<i class="ace-icon fa fa-caret-down"></i>
</a>
<ul class="user-menu dropdown-menu-right dropdown-menu dropdown-yellow dropdown-caret dropdown-close">
<li>
<a href="../admin/profile">
<i class="ace-icon fa fa-user"></i>
个人信息
</a>
</li>
<li class="divider"></li>
<li>
<a href="../logout">
<i class="ace-icon fa fa-power-off"></i>
登出
</a>
</li>
</ul>
</li>
</ul>
</div>
</div><!-- /.navbar-container -->
</div>
<div class="main-container ace-save-state" id="main-container">
<script type="text/javascript">
try{ace.settings.loadState('main-container')}catch(e){}
</script>
<div id="sidebar" class="sidebar responsive ace-save-state">
<script type="text/javascript">
try{ace.settings.loadState('sidebar')}catch(e){}
</script>
<div class="sidebar-shortcuts" id="sidebar-shortcuts">
<div class="sidebar-shortcuts-large" id="sidebar-shortcuts-large">
<button class="btn btn-success">
<i class="ace-icon fa fa-signal"></i>
</button>
<button class="btn btn-info">
<i class="ace-icon fa fa-pencil"></i>
</button>
<button class="btn btn-warning">
<i class="ace-icon fa fa-users"></i>
</button>
<button class="btn btn-danger">
<i class="ace-icon fa fa-cogs"></i>
</button>
</div>
<div class="sidebar-shortcuts-mini" id="sidebar-shortcuts-mini">
<span class="btn btn-success"></span>
<span class="btn btn-info"></span>
<span class="btn btn-warning"></span>
<span class="btn btn-danger"></span>
</div>
</div><!-- /.sidebar-shortcuts -->
<ul class="nav nav-list">
<li class="">
<a href="../admin/welcome">
<i class="menu-icon fa fa-tachometer"></i>
<span class="menu-text"> 欢迎页面 </span>
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="../admin/profile">
<i class="menu-icon fa fa-tag"></i>
<span class="menu-text"> 个人信息页面 </span>
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="../admin/query-supplier-list">
<i class="menu-icon fa fa-briefcase"></i>
<span class="menu-text"> 查看供应商信息列表 </span>
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="../admin/add-supplier-form">
<i class="menu-icon fa fa-desktop"></i>
<span class="menu-text"> 填写新增供应商表单 </span>
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="../admin/query-low-inventory-drug-list">
<i class="menu-icon fa fa-cogs"></i>
<span class="menu-text"> 查看库存紧张的药品 </span>
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="../admin/query-close-2-expiry-pdbatch-list">
<i class="menu-icon fa fa-exclamation-circle"></i>
<span class="menu-text"> 查看临期的药品批次 </span>
</a>
<b class="arrow"></b>
</li>
<li class="active open">
<a href="#" class="dropdown-toggle">
<i class="menu-icon fa fa-list"></i>
<span class="menu-text"> 查看药品库存信息 </span>
<b class="arrow fa fa-angle-down"></b>
</a>
<b class="arrow"></b>
<ul class="submenu">
<li class="active">
<a href="../admin/query-drug-list">
<i class="menu-icon fa fa-caret-right"></i>
查看库存药品列表
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="../admin/query-pdbatch-list">
<i class="menu-icon fa fa-caret-right"></i>
查看库存药品批次明细
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="../admin/query-destroyed-pdbatch-list">
<i class="menu-icon fa fa-caret-right"></i>
查看已销毁药品批次列表
</a>
<b class="arrow"></b>
</li>
</ul>
</li>
<li class="">
<a href="../admin/add-storage-form">
<i class="menu-icon fa fa-pencil-square-o"></i>
<span class="menu-text"> 填写药品入库表单 </span>
</a>
<b class="arrow"></b>
</li>
</ul><!-- /.nav-list -->
<div class="sidebar-toggle sidebar-collapse" id="sidebar-collapse">
<i id="sidebar-toggle-icon" class="ace-icon fa fa-angle-double-left ace-save-state" data-icon1="ace-icon fa fa-angle-double-left" data-icon2="ace-icon fa fa-angle-double-right"></i>
</div>
</div>
<div class="main-content">
<div class="main-content-inner">
<div class="breadcrumbs ace-save-state" id="breadcrumbs">
<ul class="breadcrumb">
<li>
<i class="ace-icon fa fa-home home-icon"></i>
<a href="../admin/index">首页</a>
</li>
<li>
<a href="../admin/query-drug-list">查看药品库存信息</a>
</li>
<li class="active">查看库存药品列表</li>
</ul><!-- /.breadcrumb -->
</div>
<div class="page-content">
<div class="page-header">
<h1>
查看库存药品列表
<small>
<i class="ace-icon fa fa-angle-double-right"></i>
库存药品列表
</small>
</h1>
</div><!-- /.page-header -->
<c:choose>
<c:when test="${echo != null}">
<div class="alert alert-info">
<button class="close" data-dismiss="alert">
<i class="ace-icon fa fa-times"></i>
</button>
<i class="ace-icon fa fa-hand-o-right"></i>
${echo}
</div>
</c:when>
</c:choose>
<a href="../admin/add-storage-form" role="button" class="green" data-toggle="modal">
<button class="btn btn-sm btn-primary">
<i class="ace-icon fa fa-pencil-square-o bigger-110"></i>
添加药品批次入库记录
<i class="ace-icon fa fa-arrow-right icon-on-right"></i>
</button>
</a>
<div class="row">
<div class="col-xs-12">
<!-- PAGE CONTENT BEGINS -->
<div class="row">
<div class="col-xs-12">
<div class="clearfix">
<div class="pull-right tableTools-container"></div>
</div>
<div class="table-header">
查询结果
</div>
<!-- div.table-responsive -->
<!-- div.dataTables_borderWrap -->
<div>
<table id="dynamic-table" class="table table-striped table-bordered table-hover">
<thead>
<tr>
<th>药品编号</th>
<th>药品名称</th>
<th>药品保质期 (天数)</th>
<th>药品数量</th>
<th class="hidden-480">药品状态</th>
<th>操作</th>
</tr>
</thead>
<tbody>
<c:forEach items="${drugs}" var="drug">
<tr>
<td>
<a href="../admin/query-specific-drug?PDno=${drug.PDno}" title="查看该药品的库存明细">${drug.PDno}</a>
</td>
<td>
<a href="../admin/query-specific-drug?PDno=${drug.PDno}" title="查看该药品的库存明细">${drug.PDname}</a>
</td>
<td>${drug.PDlife}</td>
<td>${drug.PDnum}</td>
<td class="hidden-480">
<c:if test="${drug.PDnum <= 50}">
<span class="label label-sm label-warning arrowed-in-right arrowed">
<i class="ace-icon fa fa-fire bigger-110"></i>
库存紧张
</span>
</c:if>
<c:if test="${drug.existClose2ExpiryPDbatch}">
<span class="label label-sm label-danger arrowed-in-right arrowed">
<i class="ace-icon fa fa-bolt bigger-110"></i>
存在临期批次
</span>
</c:if>
<c:if test="${drug.PDnum > 50 && drug.existClose2ExpiryPDbatch == false}">
<span class="label label-sm label-info arrowed-in-right arrowed">
<i class="ace-icon fa fa-lightbulb-o bigger-110"></i>
正常状态
</span>
</c:if>
</td>
<td>
<div class="hidden-sm hidden-xs action-buttons">
<a class="blue" href="../admin/query-specific-drug?PDno=${drug.PDno}" title="查看该药品的库存明细">
<i class="ace-icon fa fa-search-plus bigger-130"></i>
</a>
<a class="green" href="../admin/specific-storage-form?PDno=${drug.PDno}" title="入库一批该药品">
<i class="ace-icon fa fa-pencil bigger-130"></i>
</a>
</div>
<div class="hidden-md hidden-lg">
<div class="inline pos-rel">
<button class="btn btn-minier btn-yellow dropdown-toggle" data-toggle="dropdown" data-position="auto">
<i class="ace-icon fa fa-caret-down icon-only bigger-120"></i>
</button>
<ul class="dropdown-menu dropdown-only-icon dropdown-yellow dropdown-menu-right dropdown-caret dropdown-close">
<li>
<a href="../admin/query-specific-drug?PDno=${drug.PDno}" class="tooltip-info" data-rel="tooltip" title="查看该药品的库存明细">
<span class="blue">
<i class="ace-icon fa fa-search-plus bigger-120"></i>
</span>
</a>
</li>
<li>
<a href="../admin/specific-storage-form?PDno=${drug.PDno}" class="tooltip-success" data-rel="tooltip" title="入库一批该药品">
<span class="green">
<i class="ace-icon fa fa-pencil-square-o bigger-120"></i>
</span>
</a>
</li>
</ul>
</div>
</div>
</td>
</tr>
</c:forEach>
</tbody>
</table>
</div>
</div>
</div>
<!-- PAGE CONTENT ENDS -->
</div><!-- /.col -->
</div><!-- /.row -->
</div><!-- /.page-content -->
</div>
</div><!-- /.main-content -->
<div class="footer">
<div class="footer-inner">
<div class="footer-content">
<span class="bigger-120">
<span class="blue bolder">医院药品库存管理系统</span>
DIMS &copy; 2019-2020
</span>
</div>
</div>
</div>
<a href="#" id="btn-scroll-up" class="btn-scroll-up btn btn-sm btn-inverse">
<i class="ace-icon fa fa-angle-double-up icon-only bigger-110"></i>
</a>
</div><!-- /.main-container -->
<!-- basic scripts -->
<!--[if !IE]> -->
<script src="../assets/js/jquery-2.1.4.min.js"></script>
<!-- <![endif]-->
<!--[if IE]>
<script src="../assets/js/jquery-1.11.3.min.js"></script>
<![endif]-->
<script type="text/javascript">
if('ontouchstart' in document.documentElement) document.write("<script src='../assets/js/jquery.mobile.custom.min.js'>"+"<"+"/script>");
</script>
<script src="../assets/js/bootstrap.min.js"></script>
<!-- page specific plugin scripts -->
<script src="../assets/js/jquery.dataTables.min.js"></script>
<script src="../assets/js/jquery.dataTables.bootstrap.min.js"></script>
<script src="../assets/js/dataTables.buttons.min.js"></script>
<script src="../assets/js/buttons.flash.min.js"></script>
<script src="../assets/js/buttons.html5.min.js"></script>
<script src="../assets/js/buttons.print.min.js"></script>
<script src="../assets/js/buttons.colVis.min.js"></script>
<script src="../assets/js/dataTables.select.min.js"></script>
<!-- ace scripts -->
<script src="../assets/js/ace-elements.min.js"></script>
<script src="../assets/js/ace.min.js"></script>
<!-- inline scripts related to this page -->
<script type="text/javascript">
jQuery(function($) {
//initiate dataTables plugin
var myTable =
$('#dynamic-table')
//.wrap("<div class='dataTables_borderWrap' />") //if you are applying horizontal scrolling (sScrollX)
.DataTable( {
bAutoWidth: false,
"aoColumns": [
null, null, null, null, null, { "bSortable": false }
],
"aaSorting": [],
"iDisplayLength": 5,
"aLengthMenu": [
[5, 10, 15, 20, 25, 30, 35, 40, 45, 50, -1],
["5 条", "10 条", "15 条", "20 条", "25 条", "30 条", "35 条", "40 条", "45 条", "50 条", "全部"]
],
"oLanguage": { // 自定义提示信息
"sLengthMenu": "每页显示 _MENU_ 记录",
"sZeroRecords": "抱歉,没有找到",
"sInfo": "从 _START_ 到 _END_ / 共 _TOTAL_ 条数据 ",
"sInfoEmpty": "没有数据",
"sInfoFiltered": "(从 _MAX_ 条数据中检索) ",
"sSearch": "检索",
"oPaginate": {
"sFirst": "首页",
"sPrevious": "前一页",
"sNext": "后一页",
"sLast": "尾页"
}
}
//"bProcessing": true,
//"bServerSide": true,
//"sAjaxSource": "http://127.0.0.1/table.php" ,
//,
//"sScrollY": "200px",
//"bPaginate": false,
//"sScrollX": "100%",
//"sScrollXInner": "120%",
//"bScrollCollapse": true,
//Note: if you are applying horizontal scrolling (sScrollX) on a ".table-bordered"
//you may want to wrap the table inside a "div.dataTables_borderWrap" element
//"iDisplayLength": 50
} );
$.fn.dataTable.Buttons.defaults.dom.container.className = 'dt-buttons btn-overlap btn-group btn-overlap';
new $.fn.dataTable.Buttons( myTable, {
buttons: [
{
"extend": "colvis",
"text": "<i class='fa fa-search bigger-110 blue'></i> <span class='hidden'>显示/隐藏列</span>",
"className": "btn btn-white btn-primary btn-bold",
columns: ':not(:first):not(:last)'
},
{
"extend": "copy",
"text": "<i class='fa fa-copy bigger-110 pink'></i> <span class='hidden'>复制到剪贴板</span>",
"className": "btn btn-white btn-primary btn-bold"
},
{
"extend": "csv",
"text": "<i class='fa fa-database bigger-110 orange'></i> <span class='hidden'>导出到 CSV 文件</span>",
"className": "btn btn-white btn-primary btn-bold"
},
/* {
"extend": "excel",
"text": "<i class='fa fa-file-excel-o bigger-110 green'></i> <span class='hidden'>导出到 Excel 文件</span>",
"className": "btn btn-white btn-primary btn-bold"
},
{
"extend": "pdf",
"text": "<i class='fa fa-file-pdf-o bigger-110 red'></i> <span class='hidden'>导出到 PDF 文件</span>",
"className": "btn btn-white btn-primary btn-bold"
}, */
{
"extend": "print",
"text": "<i class='fa fa-print bigger-110 grey'></i> <span class='hidden'>打印</span>",
"className": "btn btn-white btn-primary btn-bold",
autoPrint: false
}
]
} );
myTable.buttons().container().appendTo( $('.tableTools-container') );
//style the message box
var defaultCopyAction = myTable.button(1).action();
myTable.button(1).action(function (e, dt, button, config) {
defaultCopyAction(e, dt, button, config);
$('.dt-button-info').addClass('gritter-item-wrapper gritter-info gritter-center white');
});
var defaultColvisAction = myTable.button(0).action();
myTable.button(0).action(function (e, dt, button, config) {
defaultColvisAction(e, dt, button, config);
if($('.dt-button-collection > .dropdown-menu').length == 0) {
$('.dt-button-collection')
.wrapInner('<ul class="dropdown-menu dropdown-light dropdown-caret dropdown-caret" />')
.find('a').attr('href', '#').wrap("<li />")
}
$('.dt-button-collection').appendTo('.tableTools-container .dt-buttons')
});
////
setTimeout(function() {
$($('.tableTools-container')).find('a.dt-button').each(function() {
var div = $(this).find(' > div').first();
if(div.length == 1) div.tooltip({container: 'body', title: div.parent().text()});
else $(this).tooltip({container: 'body', title: $(this).text()});
});
}, 500);
myTable.on( 'select', function ( e, dt, type, index ) {
if ( type === 'row' ) {
$( myTable.row( index ).node() ).find('input:checkbox').prop('checked', true);
}
} );
myTable.on( 'deselect', function ( e, dt, type, index ) {
if ( type === 'row' ) {
$( myTable.row( index ).node() ).find('input:checkbox').prop('checked', false);
}
} );
/////////////////////////////////
//table checkboxes
$('th input[type=checkbox], td input[type=checkbox]').prop('checked', false);
//select/deselect all rows according to table header checkbox
$('#dynamic-table > thead > tr > th input[type=checkbox], #dynamic-table_wrapper input[type=checkbox]').eq(0).on('click', function(){
var th_checked = this.checked;//checkbox inside "TH" table header
$('#dynamic-table').find('tbody > tr').each(function(){
var row = this;
if(th_checked) myTable.row(row).select();
else myTable.row(row).deselect();
});
});
//select/deselect a row when the checkbox is checked/unchecked
$('#dynamic-table').on('click', 'td input[type=checkbox]', function(){
var row = $(this).closest('tr').get(0);
if(this.checked) myTable.row(row).deselect();
else myTable.row(row).select();
});
$(document).on('click', '#dynamic-table .dropdown-toggle', function(e) {
e.stopImmediatePropagation();
e.stopPropagation();
e.preventDefault();
});
//And for the first simple table, which doesn't have TableTools or dataTables
//select/deselect all rows according to table header checkbox
var active_class = 'active';
$('#simple-table > thead > tr > th input[type=checkbox]').eq(0).on('click', function(){
var th_checked = this.checked;//checkbox inside "TH" table header
$(this).closest('table').find('tbody > tr').each(function(){
var row = this;
if(th_checked) $(row).addClass(active_class).find('input[type=checkbox]').eq(0).prop('checked', true);
else $(row).removeClass(active_class).find('input[type=checkbox]').eq(0).prop('checked', false);
});
});
//select/deselect a row when the checkbox is checked/unchecked
$('#simple-table').on('click', 'td input[type=checkbox]', function(){
var $row = $(this).closest('tr');
if($row.is('.detail-row ')) return;
if(this.checked) $row.addClass(active_class);
else $row.removeClass(active_class);
});
/********************************/
//add tooltip for small view action buttons in dropdown menu
$('[data-rel="tooltip"]').tooltip({placement: tooltip_placement});
//tooltip placement on right or left
function tooltip_placement(context, source) {
var $source = $(source);
var $parent = $source.closest('table')
var off1 = $parent.offset();
var w1 = $parent.width();
var off2 = $source.offset();
//var w2 = $source.width();
if( parseInt(off2.left) < parseInt(off1.left) + parseInt(w1 / 2) ) return 'right';
return 'left';
}
/***************/
$('.show-details-btn').on('click', function(e) {
e.preventDefault();
$(this).closest('tr').next().toggleClass('open');
$(this).find(ace.vars['.icon']).toggleClass('fa-angle-double-down').toggleClass('fa-angle-double-up');
});
/***************/
/**
//add horizontal scrollbars to a simple table
$('#simple-table').css({'width':'2000px', 'max-width': 'none'}).wrap('<div style="width: 1000px;" />').parent().ace_scroll(
{
horizontal: true,
styleClass: 'scroll-top scroll-dark scroll-visible',//show the scrollbars on top(default is bottom)
size: 2000,
mouseWheelLock: true
}
).css('padding-top', '12px');
*/
})
</script>
</body>
</html>

View file

@ -0,0 +1,648 @@
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<meta charset="utf-8" />
<title>查看库存紧张的药品列表 - 医院药品库存管理系统</title>
<meta name="description" content="查看库存紧张的药品列表 - 医院药品库存管理系统" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0" />
<!-- bootstrap & fontawesome -->
<link rel="stylesheet" href="../assets/css/bootstrap.min.css" />
<link rel="stylesheet" href="../assets/font-awesome/4.5.0/css/font-awesome.min.css" />
<!-- page specific plugin styles -->
<!-- text fonts -->
<link rel="stylesheet" href="../assets/css/fonts.googleapis.com.css" />
<!-- ace styles -->
<link rel="stylesheet" href="../assets/css/ace.min.css" class="ace-main-stylesheet" id="main-ace-style" />
<!--[if lte IE 9]>
<link rel="stylesheet" href="../assets/css/ace-part2.min.css" class="ace-main-stylesheet" />
<![endif]-->
<link rel="stylesheet" href="../assets/css/ace-skins.min.css" />
<link rel="stylesheet" href="../assets/css/ace-rtl.min.css" />
<!--[if lte IE 9]>
<link rel="stylesheet" href="../assets/css/ace-ie.min.css" />
<![endif]-->
<!-- inline styles related to this page -->
<!-- ace settings handler -->
<script src="../assets/js/ace-extra.min.js"></script>
<!-- HTML5shiv and Respond.js for IE8 to support HTML5 elements and media queries -->
<!--[if lte IE 8]>
<script src="../assets/js/html5shiv.min.js"></script>
<script src="../assets/js/respond.min.js"></script>
<![endif]-->
</head>
<body class="no-skin">
<div id="navbar" class="navbar navbar-default ace-save-state">
<div class="navbar-container ace-save-state" id="navbar-container">
<button type="button" class="navbar-toggle menu-toggler pull-left" id="menu-toggler" data-target="#sidebar">
<span class="sr-only">Toggle sidebar</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<div class="navbar-header pull-left">
<a href="../admin/index" class="navbar-brand">
<small>
<i class="fa fa-leaf"></i>
医院药品库存管理系统 DIMS
</small>
</a>
</div>
<div class="navbar-buttons navbar-header pull-right" role="navigation">
<ul class="nav ace-nav">
<li class="grey dropdown-modal">
<a data-toggle="dropdown" class="dropdown-toggle" href="#">
<i class="ace-icon fa fa-tasks"></i>
<span class="badge badge-grey">3</span>
</a>
<ul class="dropdown-menu-right dropdown-navbar dropdown-menu dropdown-caret dropdown-close">
<li class="dropdown-header">
<i class="ace-icon fa fa-check"></i>
统计信息
</li>
<li class="dropdown-content">
<ul class="dropdown-menu dropdown-navbar">
<li>
<a href="../admin/query-specific-admin?Ano=${currentAdmin.ano}">
<div class="clearfix">
<span class="pull-left">由我入库的药品总批数占比</span>
<span class="pull-right">
<fmt:formatNumber value="${myPDbatchesNum / (inventoryPDbatchesNum + destroyedPDbatchesNum) * 100}" pattern="#.00"/>
%
</span>
</div>
<div class="progress progress-mini progress-striped active">
<div style="width:${myPDbatchesNum / (inventoryPDbatchesNum + destroyedPDbatchesNum) * 100}%" class="progress-bar"></div>
</div>
</a>
</li>
<li>
<a href="../admin/query-specific-admin?Ano=${currentAdmin.ano}">
<div class="clearfix">
<span class="pull-left">由我入库的库存药品批数占比</span>
<span class="pull-right">
<fmt:formatNumber value="${myInventoryPDbatchesNum / inventoryPDbatchesNum * 100}" pattern="#.00"/>
%
</span>
</div>
<div class="progress progress-mini progress-striped active">
<div style="width:${myInventoryPDbatchesNum / inventoryPDbatchesNum * 100}%" class="progress-bar progress-bar-warning"></div>
</div>
</a>
</li>
<li>
<a href="../admin/query-specific-admin?Ano=${currentAdmin.ano}">
<div class="clearfix">
<span class="pull-left">由我销毁的药品批数占比</span>
<span class="pull-right">
<fmt:formatNumber value="${myDestroyedPDbatchesNum / destroyedPDbatchesNum * 100}" pattern="#.00"/>
%
</span>
</div>
<div class="progress progress-mini progress-striped active">
<div style="width:${myDestroyedPDbatchesNum / destroyedPDbatchesNum * 100}%" class="progress-bar progress-bar-success"></div>
</div>
</a>
</li>
</ul>
</li>
</ul>
</li>
<li class="green dropdown-modal">
<a data-toggle="dropdown" class="dropdown-toggle" href="#">
<i class="ace-icon fa fa-bell icon-animated-bell"></i>
<span class="badge badge-success">${lowInventoryDrugsNum + close2ExpiryPDbatchesNum}</span>
</a>
<ul class="dropdown-menu-right dropdown-navbar dropdown-menu dropdown-caret dropdown-close">
<li class="dropdown-header">
<i class="ace-icon fa fa-exclamation-triangle"></i>
警报
</li>
<li class="dropdown-content">
<ul class="dropdown-menu dropdown-navbar navbar-pink">
<li>
<a href="../admin/query-low-inventory-drug-list">
<div class="clearfix">
<span class="pull-left">
<i class="btn btn-xs no-hover btn-pink fa fa-comment"></i>
库存药品数量到达下限警报
</span>
<span class="pull-right badge badge-info">${lowInventoryDrugsNum}</span>
</div>
</a>
</li>
<li>
<a href="../admin/query-close-2-expiry-pdbatch-list">
<div class="clearfix">
<span class="pull-left">
<i class="btn btn-xs no-hover btn-success fa fa-shopping-cart"></i>
库存药品批次临期警报
</span>
<span class="pull-right badge badge-success">${close2ExpiryPDbatchesNum}</span>
</div>
</a>
</li>
</ul>
</li>
</ul>
</li>
<li class="light-blue dropdown-modal">
<a data-toggle="dropdown" href="#" class="dropdown-toggle">
<img class="nav-user-photo" src="../assets/images/avatars/Admin.png" alt="头像" />
<span class="user-info">
<small>欢迎,</small>
${currentAdmin.aname}
</span>
<i class="ace-icon fa fa-caret-down"></i>
</a>
<ul class="user-menu dropdown-menu-right dropdown-menu dropdown-yellow dropdown-caret dropdown-close">
<li>
<a href="../admin/profile">
<i class="ace-icon fa fa-user"></i>
个人信息
</a>
</li>
<li class="divider"></li>
<li>
<a href="../logout">
<i class="ace-icon fa fa-power-off"></i>
登出
</a>
</li>
</ul>
</li>
</ul>
</div>
</div><!-- /.navbar-container -->
</div>
<div class="main-container ace-save-state" id="main-container">
<script type="text/javascript">
try{ace.settings.loadState('main-container')}catch(e){}
</script>
<div id="sidebar" class="sidebar responsive ace-save-state">
<script type="text/javascript">
try{ace.settings.loadState('sidebar')}catch(e){}
</script>
<div class="sidebar-shortcuts" id="sidebar-shortcuts">
<div class="sidebar-shortcuts-large" id="sidebar-shortcuts-large">
<button class="btn btn-success">
<i class="ace-icon fa fa-signal"></i>
</button>
<button class="btn btn-info">
<i class="ace-icon fa fa-pencil"></i>
</button>
<button class="btn btn-warning">
<i class="ace-icon fa fa-users"></i>
</button>
<button class="btn btn-danger">
<i class="ace-icon fa fa-cogs"></i>
</button>
</div>
<div class="sidebar-shortcuts-mini" id="sidebar-shortcuts-mini">
<span class="btn btn-success"></span>
<span class="btn btn-info"></span>
<span class="btn btn-warning"></span>
<span class="btn btn-danger"></span>
</div>
</div><!-- /.sidebar-shortcuts -->
<ul class="nav nav-list">
<li class="">
<a href="../admin/welcome">
<i class="menu-icon fa fa-tachometer"></i>
<span class="menu-text"> 欢迎页面 </span>
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="../admin/profile">
<i class="menu-icon fa fa-tag"></i>
<span class="menu-text"> 个人信息页面 </span>
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="../admin/query-supplier-list">
<i class="menu-icon fa fa-briefcase"></i>
<span class="menu-text"> 查看供应商信息列表 </span>
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="../admin/add-supplier-form">
<i class="menu-icon fa fa-desktop"></i>
<span class="menu-text"> 填写新增供应商表单 </span>
</a>
<b class="arrow"></b>
</li>
<li class="active">
<a href="../admin/query-low-inventory-drug-list">
<i class="menu-icon fa fa-cogs"></i>
<span class="menu-text"> 查看库存紧张的药品 </span>
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="../admin/query-close-2-expiry-pdbatch-list">
<i class="menu-icon fa fa-exclamation-circle"></i>
<span class="menu-text"> 查看临期的药品批次 </span>
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="#" class="dropdown-toggle">
<i class="menu-icon fa fa-list"></i>
<span class="menu-text"> 查看药品库存信息 </span>
<b class="arrow fa fa-angle-down"></b>
</a>
<b class="arrow"></b>
<ul class="submenu">
<li class="">
<a href="../admin/query-drug-list">
<i class="menu-icon fa fa-caret-right"></i>
查看库存药品列表
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="../admin/query-pdbatch-list">
<i class="menu-icon fa fa-caret-right"></i>
查看库存药品批次明细
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="../admin/query-destroyed-pdbatch-list">
<i class="menu-icon fa fa-caret-right"></i>
查看已销毁药品批次列表
</a>
<b class="arrow"></b>
</li>
</ul>
</li>
<li class="">
<a href="../admin/add-storage-form">
<i class="menu-icon fa fa-pencil-square-o"></i>
<span class="menu-text"> 填写药品入库表单 </span>
</a>
<b class="arrow"></b>
</li>
</ul><!-- /.nav-list -->
<div class="sidebar-toggle sidebar-collapse" id="sidebar-collapse">
<i id="sidebar-toggle-icon" class="ace-icon fa fa-angle-double-left ace-save-state" data-icon1="ace-icon fa fa-angle-double-left" data-icon2="ace-icon fa fa-angle-double-right"></i>
</div>
</div>
<div class="main-content">
<div class="main-content-inner">
<div class="breadcrumbs ace-save-state" id="breadcrumbs">
<ul class="breadcrumb">
<li>
<i class="ace-icon fa fa-home home-icon"></i>
<a href="../admin/index">首页</a>
</li>
<li class="active">查看库存紧张的药品列表</li>
</ul><!-- /.breadcrumb -->
</div>
<div class="page-content">
<div class="page-header">
<h1>
查看库存紧张的药品列表
<small>
<i class="ace-icon fa fa-angle-double-right"></i>
库存紧张的药品列表
</small>
</h1>
</div><!-- /.page-header -->
<c:choose>
<c:when test="${echo != null}">
<div class="alert alert-info">
<button class="close" data-dismiss="alert">
<i class="ace-icon fa fa-times"></i>
</button>
<i class="ace-icon fa fa-hand-o-right"></i>
${echo}
</div>
</c:when>
</c:choose>
<a href="../admin/add-storage-form" role="button" class="green" data-toggle="modal">
<button class="btn btn-sm btn-primary">
<i class="ace-icon fa fa-pencil-square-o bigger-110"></i>
添加药品批次入库记录
<i class="ace-icon fa fa-arrow-right icon-on-right"></i>
</button>
</a>
<div class="row">
<div class="col-xs-12">
<!-- PAGE CONTENT BEGINS -->
<div class="row">
<div class="col-xs-12">
<div class="clearfix">
<div class="pull-right tableTools-container"></div>
</div>
<div class="table-header">
查询结果
</div>
<!-- div.table-responsive -->
<!-- div.dataTables_borderWrap -->
<div>
<table id="dynamic-table" class="table table-striped table-bordered table-hover">
<thead>
<tr>
<th>药品编号</th>
<th>药品名称</th>
<th>药品保质期 (天数)</th>
<th>药品数量</th>
<th>操作</th>
</tr>
</thead>
<tbody>
<c:forEach items="${drugs}" var="drug">
<tr>
<td>
<a href="../admin/query-specific-drug?PDno=${drug.PDno}" title="查看该药品的库存明细">${drug.PDno}</a>
</td>
<td>
<a href="../admin/query-specific-drug?PDno=${drug.PDno}" title="查看该药品的库存明细">${drug.PDname}</a>
</td>
<td>${drug.PDlife}</td>
<td>${drug.PDnum}</td>
<td>
<div class="hidden-sm hidden-xs action-buttons">
<a class="blue" href="../admin/query-specific-drug?PDno=${drug.PDno}" title="查看该药品的库存明细">
<i class="ace-icon fa fa-search-plus bigger-130"></i>
</a>
<a class="green" href="../admin/specific-storage-form?PDno=${drug.PDno}" title="入库一批该药品">
<i class="ace-icon fa fa-pencil bigger-130"></i>
</a>
</div>
<div class="hidden-md hidden-lg">
<div class="inline pos-rel">
<button class="btn btn-minier btn-yellow dropdown-toggle" data-toggle="dropdown" data-position="auto">
<i class="ace-icon fa fa-caret-down icon-only bigger-120"></i>
</button>
<ul class="dropdown-menu dropdown-only-icon dropdown-yellow dropdown-menu-right dropdown-caret dropdown-close">
<li>
<a href="../admin/query-specific-drug?PDno=${drug.PDno}" class="tooltip-info" data-rel="tooltip" title="查看该药品的库存明细">
<span class="blue">
<i class="ace-icon fa fa-search-plus bigger-120"></i>
</span>
</a>
</li>
<li>
<a href="../admin/specific-storage-form?PDno=${drug.PDno}" class="tooltip-success" data-rel="tooltip" title="入库一批该药品">
<span class="green">
<i class="ace-icon fa fa-pencil-square-o bigger-120"></i>
</span>
</a>
</li>
</ul>
</div>
</div>
</td>
</tr>
</c:forEach>
</tbody>
</table>
</div>
</div>
</div>
<!-- PAGE CONTENT ENDS -->
</div><!-- /.col -->
</div><!-- /.row -->
</div><!-- /.page-content -->
</div>
</div><!-- /.main-content -->
<div class="footer">
<div class="footer-inner">
<div class="footer-content">
<span class="bigger-120">
<span class="blue bolder">医院药品库存管理系统</span>
DIMS &copy; 2019-2020
</span>
</div>
</div>
</div>
<a href="#" id="btn-scroll-up" class="btn-scroll-up btn btn-sm btn-inverse">
<i class="ace-icon fa fa-angle-double-up icon-only bigger-110"></i>
</a>
</div><!-- /.main-container -->
<!-- basic scripts -->
<!--[if !IE]> -->
<script src="../assets/js/jquery-2.1.4.min.js"></script>
<!-- <![endif]-->
<!--[if IE]>
<script src="../assets/js/jquery-1.11.3.min.js"></script>
<![endif]-->
<script type="text/javascript">
if('ontouchstart' in document.documentElement) document.write("<script src='../assets/js/jquery.mobile.custom.min.js'>"+"<"+"/script>");
</script>
<script src="../assets/js/bootstrap.min.js"></script>
<!-- page specific plugin scripts -->
<script src="../assets/js/jquery.dataTables.min.js"></script>
<script src="../assets/js/jquery.dataTables.bootstrap.min.js"></script>
<script src="../assets/js/dataTables.buttons.min.js"></script>
<script src="../assets/js/buttons.flash.min.js"></script>
<script src="../assets/js/buttons.html5.min.js"></script>
<script src="../assets/js/buttons.print.min.js"></script>
<script src="../assets/js/buttons.colVis.min.js"></script>
<script src="../assets/js/dataTables.select.min.js"></script>
<!-- ace scripts -->
<script src="../assets/js/ace-elements.min.js"></script>
<script src="../assets/js/ace.min.js"></script>
<!-- inline scripts related to this page -->
<script type="text/javascript">
jQuery(function($) {
//initiate dataTables plugin
var myTable =
$('#dynamic-table')
//.wrap("<div class='dataTables_borderWrap' />") //if you are applying horizontal scrolling (sScrollX)
.DataTable( {
bAutoWidth: false,
"aoColumns": [
null, null, null, null, { "bSortable": false }
],
"aaSorting": [],
"iDisplayLength": 5,
"aLengthMenu": [
[5, 10, 15, 20, 25, 30, 35, 40, 45, 50, -1],
["5 条", "10 条", "15 条", "20 条", "25 条", "30 条", "35 条", "40 条", "45 条", "50 条", "全部"]
],
"oLanguage": { // 自定义提示信息
"sLengthMenu": "每页显示 _MENU_ 记录",
"sZeroRecords": "抱歉,没有找到",
"sInfo": "从 _START_ 到 _END_ / 共 _TOTAL_ 条数据 ",
"sInfoEmpty": "没有数据",
"sInfoFiltered": "(从 _MAX_ 条数据中检索) ",
"sSearch": "检索",
"oPaginate": {
"sFirst": "首页",
"sPrevious": "前一页",
"sNext": "后一页",
"sLast": "尾页"
}
}
//"bProcessing": true,
//"bServerSide": true,
//"sAjaxSource": "http://127.0.0.1/table.php" ,
//,
//"sScrollY": "200px",
//"bPaginate": false,
//"sScrollX": "100%",
//"sScrollXInner": "120%",
//"bScrollCollapse": true,
//Note: if you are applying horizontal scrolling (sScrollX) on a ".table-bordered"
//you may want to wrap the table inside a "div.dataTables_borderWrap" element
//"iDisplayLength": 50
} );
$.fn.dataTable.Buttons.defaults.dom.container.className = 'dt-buttons btn-overlap btn-group btn-overlap';
new $.fn.dataTable.Buttons( myTable, {
buttons: [
{
"extend": "colvis",
"text": "<i class='fa fa-search bigger-110 blue'></i> <span class='hidden'>显示/隐藏列</span>",
"className": "btn btn-white btn-primary btn-bold",
columns: ':not(:first):not(:last)'
},
{
"extend": "copy",
"text": "<i class='fa fa-copy bigger-110 pink'></i> <span class='hidden'>复制到剪贴板</span>",
"className": "btn btn-white btn-primary btn-bold"
},
{
"extend": "csv",
"text": "<i class='fa fa-database bigger-110 orange'></i> <span class='hidden'>导出到 CSV 文件</span>",
"className": "btn btn-white btn-primary btn-bold"
},
/* {
"extend": "excel",
"text": "<i class='fa fa-file-excel-o bigger-110 green'></i> <span class='hidden'>导出到 Excel 文件</span>",
"className": "btn btn-white btn-primary btn-bold"
},
{
"extend": "pdf",
"text": "<i class='fa fa-file-pdf-o bigger-110 red'></i> <span class='hidden'>导出到 PDF 文件</span>",
"className": "btn btn-white btn-primary btn-bold"
}, */
{
"extend": "print",
"text": "<i class='fa fa-print bigger-110 grey'></i> <span class='hidden'>打印</span>",
"className": "btn btn-white btn-primary btn-bold",
autoPrint: false
}
]
} );
myTable.buttons().container().appendTo( $('.tableTools-container') );
//style the message box
var defaultCopyAction = myTable.button(1).action();
myTable.button(1).action(function (e, dt, button, config) {
defaultCopyAction(e, dt, button, config);
$('.dt-button-info').addClass('gritter-item-wrapper gritter-info gritter-center white');
});
var defaultColvisAction = myTable.button(0).action();
myTable.button(0).action(function (e, dt, button, config) {
defaultColvisAction(e, dt, button, config);
if($('.dt-button-collection > .dropdown-menu').length == 0) {
$('.dt-button-collection')
.wrapInner('<ul class="dropdown-menu dropdown-light dropdown-caret dropdown-caret" />')
.find('a').attr('href', '#').wrap("<li />")
}
$('.dt-button-collection').appendTo('.tableTools-container .dt-buttons')
});
////
setTimeout(function() {
$($('.tableTools-container')).find('a.dt-button').each(function() {
var div = $(this).find(' > div').first();
if(div.length == 1) div.tooltip({container: 'body', title: div.parent().text()});
else $(this).tooltip({container: 'body', title: $(this).text()});
});
}, 500);
myTable.on( 'select', function ( e, dt, type, index ) {
if ( type === 'row' ) {
$( myTable.row( index ).node() ).find('input:checkbox').prop('checked', true);
}
} );
myTable.on( 'deselect', function ( e, dt, type, index ) {
if ( type === 'row' ) {
$( myTable.row( index ).node() ).find('input:checkbox').prop('checked', false);
}
} );
/////////////////////////////////
//table checkboxes
$('th input[type=checkbox], td input[type=checkbox]').prop('checked', false);
//select/deselect all rows according to table header checkbox
$('#dynamic-table > thead > tr > th input[type=checkbox], #dynamic-table_wrapper input[type=checkbox]').eq(0).on('click', function(){
var th_checked = this.checked;//checkbox inside "TH" table header
$('#dynamic-table').find('tbody > tr').each(function(){
var row = this;
if(th_checked) myTable.row(row).select();
else myTable.row(row).deselect();
});
});
//select/deselect a row when the checkbox is checked/unchecked
$('#dynamic-table').on('click', 'td input[type=checkbox]', function(){
var row = $(this).closest('tr').get(0);
if(this.checked) myTable.row(row).deselect();
else myTable.row(row).select();
});
$(document).on('click', '#dynamic-table .dropdown-toggle', function(e) {
e.stopImmediatePropagation();
e.stopPropagation();
e.preventDefault();
});
//And for the first simple table, which doesn't have TableTools or dataTables
//select/deselect all rows according to table header checkbox
var active_class = 'active';
$('#simple-table > thead > tr > th input[type=checkbox]').eq(0).on('click', function(){
var th_checked = this.checked;//checkbox inside "TH" table header
$(this).closest('table').find('tbody > tr').each(function(){
var row = this;
if(th_checked) $(row).addClass(active_class).find('input[type=checkbox]').eq(0).prop('checked', true);
else $(row).removeClass(active_class).find('input[type=checkbox]').eq(0).prop('checked', false);
});
});
//select/deselect a row when the checkbox is checked/unchecked
$('#simple-table').on('click', 'td input[type=checkbox]', function(){
var $row = $(this).closest('tr');
if($row.is('.detail-row ')) return;
if(this.checked) $row.addClass(active_class);
else $row.removeClass(active_class);
});
/********************************/
//add tooltip for small view action buttons in dropdown menu
$('[data-rel="tooltip"]').tooltip({placement: tooltip_placement});
//tooltip placement on right or left
function tooltip_placement(context, source) {
var $source = $(source);
var $parent = $source.closest('table')
var off1 = $parent.offset();
var w1 = $parent.width();
var off2 = $source.offset();
//var w2 = $source.width();
if( parseInt(off2.left) < parseInt(off1.left) + parseInt(w1 / 2) ) return 'right';
return 'left';
}
/***************/
$('.show-details-btn').on('click', function(e) {
e.preventDefault();
$(this).closest('tr').next().toggleClass('open');
$(this).find(ace.vars['.icon']).toggleClass('fa-angle-double-down').toggleClass('fa-angle-double-up');
});
/***************/
/**
//add horizontal scrollbars to a simple table
$('#simple-table').css({'width':'2000px', 'max-width': 'none'}).wrap('<div style="width: 1000px;" />').parent().ace_scroll(
{
horizontal: true,
styleClass: 'scroll-top scroll-dark scroll-visible',//show the scrollbars on top(default is bottom)
size: 2000,
mouseWheelLock: true
}
).css('padding-top', '12px');
*/
})
</script>
</body>
</html>

View file

@ -0,0 +1,611 @@
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<meta charset="utf-8" />
<title>查看库存药品批次明细 - 医院药品库存管理系统</title>
<meta name="description" content="查看库存药品批次明细 - 医院药品库存管理系统" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0" />
<!-- bootstrap & fontawesome -->
<link rel="stylesheet" href="../assets/css/bootstrap.min.css" />
<link rel="stylesheet" href="../assets/font-awesome/4.5.0/css/font-awesome.min.css" />
<!-- page specific plugin styles -->
<!-- text fonts -->
<link rel="stylesheet" href="../assets/css/fonts.googleapis.com.css" />
<!-- ace styles -->
<link rel="stylesheet" href="../assets/css/ace.min.css" class="ace-main-stylesheet" id="main-ace-style" />
<!--[if lte IE 9]>
<link rel="stylesheet" href="../assets/css/ace-part2.min.css" class="ace-main-stylesheet" />
<![endif]-->
<link rel="stylesheet" href="../assets/css/ace-skins.min.css" />
<link rel="stylesheet" href="../assets/css/ace-rtl.min.css" />
<!--[if lte IE 9]>
<link rel="stylesheet" href="../assets/css/ace-ie.min.css" />
<![endif]-->
<!-- inline styles related to this page -->
<!-- ace settings handler -->
<script src="../assets/js/ace-extra.min.js"></script>
<!-- HTML5shiv and Respond.js for IE8 to support HTML5 elements and media queries -->
<!--[if lte IE 8]>
<script src="../assets/js/html5shiv.min.js"></script>
<script src="../assets/js/respond.min.js"></script>
<![endif]-->
</head>
<body class="no-skin">
<div id="navbar" class="navbar navbar-default ace-save-state">
<div class="navbar-container ace-save-state" id="navbar-container">
<button type="button" class="navbar-toggle menu-toggler pull-left" id="menu-toggler" data-target="#sidebar">
<span class="sr-only">Toggle sidebar</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<div class="navbar-header pull-left">
<a href="../admin/index" class="navbar-brand">
<small>
<i class="fa fa-leaf"></i>
医院药品库存管理系统 DIMS
</small>
</a>
</div>
<div class="navbar-buttons navbar-header pull-right" role="navigation">
<ul class="nav ace-nav">
<li class="grey dropdown-modal">
<a data-toggle="dropdown" class="dropdown-toggle" href="#">
<i class="ace-icon fa fa-tasks"></i>
<span class="badge badge-grey">3</span>
</a>
<ul class="dropdown-menu-right dropdown-navbar dropdown-menu dropdown-caret dropdown-close">
<li class="dropdown-header">
<i class="ace-icon fa fa-check"></i>
统计信息
</li>
<li class="dropdown-content">
<ul class="dropdown-menu dropdown-navbar">
<li>
<a href="../admin/query-specific-admin?Ano=${currentAdmin.ano}">
<div class="clearfix">
<span class="pull-left">由我入库的药品总批数占比</span>
<span class="pull-right">
<fmt:formatNumber value="${myPDbatchesNum / (inventoryPDbatchesNum + destroyedPDbatchesNum) * 100}" pattern="#.00"/>
%
</span>
</div>
<div class="progress progress-mini progress-striped active">
<div style="width:${myPDbatchesNum / (inventoryPDbatchesNum + destroyedPDbatchesNum) * 100}%" class="progress-bar"></div>
</div>
</a>
</li>
<li>
<a href="../admin/query-specific-admin?Ano=${currentAdmin.ano}">
<div class="clearfix">
<span class="pull-left">由我入库的库存药品批数占比</span>
<span class="pull-right">
<fmt:formatNumber value="${myInventoryPDbatchesNum / inventoryPDbatchesNum * 100}" pattern="#.00"/>
%
</span>
</div>
<div class="progress progress-mini progress-striped active">
<div style="width:${myInventoryPDbatchesNum / inventoryPDbatchesNum * 100}%" class="progress-bar progress-bar-warning"></div>
</div>
</a>
</li>
<li>
<a href="../admin/query-specific-admin?Ano=${currentAdmin.ano}">
<div class="clearfix">
<span class="pull-left">由我销毁的药品批数占比</span>
<span class="pull-right">
<fmt:formatNumber value="${myDestroyedPDbatchesNum / destroyedPDbatchesNum * 100}" pattern="#.00"/>
%
</span>
</div>
<div class="progress progress-mini progress-striped active">
<div style="width:${myDestroyedPDbatchesNum / destroyedPDbatchesNum * 100}%" class="progress-bar progress-bar-success"></div>
</div>
</a>
</li>
</ul>
</li>
</ul>
</li>
<li class="green dropdown-modal">
<a data-toggle="dropdown" class="dropdown-toggle" href="#">
<i class="ace-icon fa fa-bell icon-animated-bell"></i>
<span class="badge badge-success">${lowInventoryDrugsNum + close2ExpiryPDbatchesNum}</span>
</a>
<ul class="dropdown-menu-right dropdown-navbar dropdown-menu dropdown-caret dropdown-close">
<li class="dropdown-header">
<i class="ace-icon fa fa-exclamation-triangle"></i>
警报
</li>
<li class="dropdown-content">
<ul class="dropdown-menu dropdown-navbar navbar-pink">
<li>
<a href="../admin/query-low-inventory-drug-list">
<div class="clearfix">
<span class="pull-left">
<i class="btn btn-xs no-hover btn-pink fa fa-comment"></i>
库存药品数量到达下限警报
</span>
<span class="pull-right badge badge-info">${lowInventoryDrugsNum}</span>
</div>
</a>
</li>
<li>
<a href="../admin/query-close-2-expiry-pdbatch-list">
<div class="clearfix">
<span class="pull-left">
<i class="btn btn-xs no-hover btn-success fa fa-shopping-cart"></i>
库存药品批次临期警报
</span>
<span class="pull-right badge badge-success">${close2ExpiryPDbatchesNum}</span>
</div>
</a>
</li>
</ul>
</li>
</ul>
</li>
<li class="light-blue dropdown-modal">
<a data-toggle="dropdown" href="#" class="dropdown-toggle">
<img class="nav-user-photo" src="../assets/images/avatars/Admin.png" alt="头像" />
<span class="user-info">
<small>欢迎,</small>
${currentAdmin.aname}
</span>
<i class="ace-icon fa fa-caret-down"></i>
</a>
<ul class="user-menu dropdown-menu-right dropdown-menu dropdown-yellow dropdown-caret dropdown-close">
<li>
<a href="../admin/profile">
<i class="ace-icon fa fa-user"></i>
个人信息
</a>
</li>
<li class="divider"></li>
<li>
<a href="../logout">
<i class="ace-icon fa fa-power-off"></i>
登出
</a>
</li>
</ul>
</li>
</ul>
</div>
</div><!-- /.navbar-container -->
</div>
<div class="main-container ace-save-state" id="main-container">
<script type="text/javascript">
try{ace.settings.loadState('main-container')}catch(e){}
</script>
<div id="sidebar" class="sidebar responsive ace-save-state">
<script type="text/javascript">
try{ace.settings.loadState('sidebar')}catch(e){}
</script>
<div class="sidebar-shortcuts" id="sidebar-shortcuts">
<div class="sidebar-shortcuts-large" id="sidebar-shortcuts-large">
<button class="btn btn-success">
<i class="ace-icon fa fa-signal"></i>
</button>
<button class="btn btn-info">
<i class="ace-icon fa fa-pencil"></i>
</button>
<button class="btn btn-warning">
<i class="ace-icon fa fa-users"></i>
</button>
<button class="btn btn-danger">
<i class="ace-icon fa fa-cogs"></i>
</button>
</div>
<div class="sidebar-shortcuts-mini" id="sidebar-shortcuts-mini">
<span class="btn btn-success"></span>
<span class="btn btn-info"></span>
<span class="btn btn-warning"></span>
<span class="btn btn-danger"></span>
</div>
</div><!-- /.sidebar-shortcuts -->
<ul class="nav nav-list">
<li class="">
<a href="../admin/welcome">
<i class="menu-icon fa fa-tachometer"></i>
<span class="menu-text"> 欢迎页面 </span>
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="../admin/profile">
<i class="menu-icon fa fa-tag"></i>
<span class="menu-text"> 个人信息页面 </span>
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="../admin/query-supplier-list">
<i class="menu-icon fa fa-briefcase"></i>
<span class="menu-text"> 查看供应商信息列表 </span>
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="../admin/add-supplier-form">
<i class="menu-icon fa fa-desktop"></i>
<span class="menu-text"> 填写新增供应商表单 </span>
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="../admin/query-low-inventory-drug-list">
<i class="menu-icon fa fa-cogs"></i>
<span class="menu-text"> 查看库存紧张的药品 </span>
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="../admin/query-close-2-expiry-pdbatch-list">
<i class="menu-icon fa fa-exclamation-circle"></i>
<span class="menu-text"> 查看临期的药品批次 </span>
</a>
<b class="arrow"></b>
</li>
<li class="active open">
<a href="#" class="dropdown-toggle">
<i class="menu-icon fa fa-list"></i>
<span class="menu-text"> 查看药品库存信息 </span>
<b class="arrow fa fa-angle-down"></b>
</a>
<b class="arrow"></b>
<ul class="submenu">
<li class="">
<a href="../admin/query-drug-list">
<i class="menu-icon fa fa-caret-right"></i>
查看库存药品列表
</a>
<b class="arrow"></b>
</li>
<li class="active">
<a href="../admin/query-pdbatch-list">
<i class="menu-icon fa fa-caret-right"></i>
查看库存药品批次明细
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="../admin/query-destroyed-pdbatch-list">
<i class="menu-icon fa fa-caret-right"></i>
查看已销毁药品批次列表
</a>
<b class="arrow"></b>
</li>
</ul>
</li>
<li class="">
<a href="../admin/add-storage-form">
<i class="menu-icon fa fa-pencil-square-o"></i>
<span class="menu-text"> 填写药品入库表单 </span>
</a>
<b class="arrow"></b>
</li>
</ul><!-- /.nav-list -->
<div class="sidebar-toggle sidebar-collapse" id="sidebar-collapse">
<i id="sidebar-toggle-icon" class="ace-icon fa fa-angle-double-left ace-save-state" data-icon1="ace-icon fa fa-angle-double-left" data-icon2="ace-icon fa fa-angle-double-right"></i>
</div>
</div>
<div class="main-content">
<div class="main-content-inner">
<div class="breadcrumbs ace-save-state" id="breadcrumbs">
<ul class="breadcrumb">
<li>
<i class="ace-icon fa fa-home home-icon"></i>
<a href="../admin/index">首页</a>
</li>
<li>
<a href="../admin/query-drug-list">查看药品库存信息</a>
</li>
<li class="active">查看库存药品批次明细</li>
</ul><!-- /.breadcrumb -->
</div>
<div class="page-content">
<div class="page-header">
<h1>
查看库存药品批次明细
<small>
<i class="ace-icon fa fa-angle-double-right"></i>
库存药品批次明细
</small>
</h1>
</div><!-- /.page-header -->
<c:choose>
<c:when test="${echo != null}">
<div class="alert alert-info">
<button class="close" data-dismiss="alert">
<i class="ace-icon fa fa-times"></i>
</button>
<i class="ace-icon fa fa-hand-o-right"></i>
${echo}
</div>
</c:when>
</c:choose>
<a href="../admin/add-storage-form">
<button class="btn btn-sm btn-primary">
<i class="ace-icon fa fa-pencil-square-o bigger-110"></i>
添加药品批次入库记录
<i class="ace-icon fa fa-arrow-right icon-on-right"></i>
</button>
</a>
<div class="space space-6"></div>
<div class="row">
<div class="col-xs-12">
<!-- PAGE CONTENT BEGINS -->
<div class="row">
<div class="col-xs-12">
<table id="simple-table" class="table table-bordered table-hover">
<thead>
<tr>
<th class="detail-col">明细</th>
<th>药品编号</th>
<th>药品名称</th>
<th>药品保质期 (天数)</th>
<th>药品数量</th>
<th class="hidden-480">药品状态</th>
<th>操作</th>
</tr>
</thead>
<tbody>
<c:forEach items="${drugs}" var="drug">
<tr>
<td class="center">
<div class="action-buttons">
<a href="#" class="green bigger-140 show-details-btn" title="具体明细">
<i class="ace-icon fa fa-angle-double-down"></i>
<span class="sr-only">具体明细</span>
</a>
</div>
</td>
<td>
<a href="../admin/query-specific-drug?PDno=${drug.PDno}" title="查看该药品的库存明细">${drug.PDno}</a>
</td>
<td>
<a href="../admin/query-specific-drug?PDno=${drug.PDno}" title="查看该药品的库存明细">${drug.PDname}</a>
</td>
<td>${drug.PDlife}</td>
<td>${drug.PDnum}</td>
<td class="hidden-480">
<c:if test="${drug.PDnum <= 50}">
<span class="label label-sm label-warning arrowed-in-right arrowed">
<i class="ace-icon fa fa-fire bigger-110"></i>
库存紧张
</span>
</c:if>
<c:if test="${drug.existClose2ExpiryPDbatch}">
<span class="label label-sm label-danger arrowed-in-right arrowed">
<i class="ace-icon fa fa-bolt bigger-110"></i>
存在临期批次
</span>
</c:if>
<c:if test="${drug.PDnum > 50 && drug.existClose2ExpiryPDbatch == false}">
<span class="label label-sm label-info arrowed-in-right arrowed">
<i class="ace-icon fa fa-lightbulb-o bigger-110"></i>
正常状态
</span>
</c:if>
</td>
<td>
<div class="hidden-sm hidden-xs action-buttons">
<a class="blue" href="../admin/query-specific-drug?PDno=${drug.PDno}" title="查看该药品的库存明细">
<i class="ace-icon fa fa-search-plus bigger-130"></i>
</a>
<a class="green" href="../admin/specific-storage-form?PDno=${drug.PDno}" title="入库一批该药品">
<i class="ace-icon fa fa-pencil bigger-130"></i>
</a>
</div>
<div class="hidden-md hidden-lg">
<div class="inline pos-rel">
<button class="btn btn-minier btn-primary dropdown-toggle" data-toggle="dropdown" data-position="auto">
<i class="ace-icon fa fa-cog icon-only bigger-110"></i>
</button>
<ul class="dropdown-menu dropdown-only-icon dropdown-yellow dropdown-menu-right dropdown-caret dropdown-close">
<li>
<a href="../admin/query-specific-drug?PDno=${drug.PDno}" class="tooltip-info" data-rel="tooltip" title="查看该药品的库存明细">
<span class="blue">
<i class="ace-icon fa fa-search-plus bigger-120"></i>
</span>
</a>
</li>
<li>
<a href="../admin/specific-storage-form?PDno=${drug.PDno}" class="tooltip-success" data-rel="tooltip" title="入库一批该药品">
<span class="green">
<i class="ace-icon fa fa-pencil-square-o bigger-120"></i>
</span>
</a>
</li>
</ul>
</div>
</div>
</td>
</tr>
<tr class="detail-row">
<td colspan="8">
<div class="table-detail">
<div class="row">
<div class="col-sm-10">
<table id="simple-table" class="table table-bordered table-hover">
<thead>
<tr>
<th>药品批次 (生产日期)</th>
<th>药品数量</th>
<th>药品供应商</th>
<th>入库管理员</th>
<th>药品入库时间</th>
<th>距到期日天数</th>
<th>操作</th>
</tr>
</thead>
<tbody>
<c:forEach items="${drug.inventoryDrugs}" var="batch">
<tr>
<td>
<fmt:formatDate value="${batch.PDbatch}" pattern="yyyy 年 MM 月 dd 日"/>
</td>
<td>${batch.PDnum}</td>
<td>
<a href="../admin/query-specific-supplier?Sno=${batch.sno}" title="查看该供应商的供货明细">${batch.sno}</a>
</td>
<td>
<a href="../admin/query-specific-admin?Ano=${batch.SAno}" title="查看该库存管理员的管理明细">${batch.SAno}</a>
</td>
<td>
<fmt:formatDate value="${batch.stime}" pattern="yyyy 年 MM 月 dd 日 HH:mm"/>
</td>
<td>${batch.rdays}</td>
<td>
<div class="hidden-sm hidden-xs action-buttons">
<a class="green" href="../admin/edit-storage-form?PDno=${batch.PDno}&tempPDbatch=<fmt:formatDate value="${batch.PDbatch}" pattern="yyyy+年+MM+月+dd+日"/>" title="编辑该批次药品的信息">
<i class="ace-icon fa fa-pencil bigger-130"></i>
</a>
<a class="red" href="../admin/destroy-form?PDno=${batch.PDno}&tempPDbatch=<fmt:formatDate value="${batch.PDbatch}" pattern="yyyy+年+MM+月+dd+日"/>" title="销毁删除该批次药品">
<i class="ace-icon fa fa-trash-o bigger-130"></i>
</a>
</div>
<div class="hidden-md hidden-lg">
<div class="inline pos-rel">
<button class="btn btn-minier btn-primary dropdown-toggle" data-toggle="dropdown" data-position="auto">
<i class="ace-icon fa fa-cog icon-only bigger-110"></i>
</button>
<ul class="dropdown-menu dropdown-only-icon dropdown-yellow dropdown-menu-right dropdown-caret dropdown-close">
<li>
<a href="../admin/edit-storage-form?PDno=${batch.PDno}&tempPDbatch=<fmt:formatDate value="${batch.PDbatch}" pattern="yyyy+年+MM+月+dd+日"/>" class="tooltip-success" data-rel="tooltip" title="编辑该批次药品的信息">
<span class="green">
<i class="ace-icon fa fa-pencil-square-o bigger-120"></i>
</span>
</a>
</li>
<li>
<a href="../admin/destroy-form?PDno=${batch.PDno}&tempPDbatch=<fmt:formatDate value="${batch.PDbatch}" pattern="yyyy+年+MM+月+dd+日"/>" class="tooltip-error" data-rel="tooltip" title="销毁删除该批次药品">
<span class="red">
<i class="ace-icon fa fa-trash-o bigger-120"></i>
</span>
</a>
</li>
</ul>
</div>
</div>
</td>
</tr>
</c:forEach>
</tbody>
</table>
</div>
</div>
</div>
</td>
</tr>
</c:forEach>
</tbody>
</table>
</div><!-- /.span -->
</div><!-- /.row -->
<!-- PAGE CONTENT ENDS -->
</div><!-- /.col -->
</div><!-- /.row -->
</div><!-- /.page-content -->
</div>
</div><!-- /.main-content -->
<div class="footer">
<div class="footer-inner">
<div class="footer-content">
<span class="bigger-120">
<span class="blue bolder">医院药品库存管理系统</span>
DIMS &copy; 2019-2020
</span>
</div>
</div>
</div>
<a href="#" id="btn-scroll-up" class="btn-scroll-up btn btn-sm btn-inverse">
<i class="ace-icon fa fa-angle-double-up icon-only bigger-110"></i>
</a>
</div><!-- /.main-container -->
<!-- basic scripts -->
<!--[if !IE]> -->
<script src="../assets/js/jquery-2.1.4.min.js"></script>
<!-- <![endif]-->
<!--[if IE]>
<script src="../assets/js/jquery-1.11.3.min.js"></script>
<![endif]-->
<script type="text/javascript">
if('ontouchstart' in document.documentElement) document.write("<script src='../assets/js/jquery.mobile.custom.min.js'>"+"<"+"/script>");
</script>
<script src="../assets/js/bootstrap.min.js"></script>
<!-- page specific plugin scripts -->
<script src="../assets/js/jquery.dataTables.min.js"></script>
<script src="../assets/js/jquery.dataTables.bootstrap.min.js"></script>
<script src="../assets/js/dataTables.buttons.min.js"></script>
<script src="../assets/js/buttons.flash.min.js"></script>
<script src="../assets/js/buttons.html5.min.js"></script>
<script src="../assets/js/buttons.print.min.js"></script>
<script src="../assets/js/buttons.colVis.min.js"></script>
<script src="../assets/js/dataTables.select.min.js"></script>
<!-- ace scripts -->
<script src="../assets/js/ace-elements.min.js"></script>
<script src="../assets/js/ace.min.js"></script>
<!-- inline scripts related to this page -->
<script type="text/javascript">
jQuery(function($) {
//And for the first simple table, which doesn't have TableTools or dataTables
//select/deselect all rows according to table header checkbox
var active_class = 'active';
$('#simple-table > thead > tr > th input[type=checkbox]').eq(0).on('click', function(){
var th_checked = this.checked;//checkbox inside "TH" table header
$(this).closest('table').find('tbody > tr').each(function(){
var row = this;
if(th_checked) $(row).addClass(active_class).find('input[type=checkbox]').eq(0).prop('checked', true);
else $(row).removeClass(active_class).find('input[type=checkbox]').eq(0).prop('checked', false);
});
});
//select/deselect a row when the checkbox is checked/unchecked
$('#simple-table').on('click', 'td input[type=checkbox]', function(){
var $row = $(this).closest('tr');
if($row.is('.detail-row ')) return;
if(this.checked) $row.addClass(active_class);
else $row.removeClass(active_class);
});
/********************************/
//add tooltip for small view action buttons in dropdown menu
$('[data-rel="tooltip"]').tooltip({placement: tooltip_placement});
//tooltip placement on right or left
function tooltip_placement(context, source) {
var $source = $(source);
var $parent = $source.closest('table')
var off1 = $parent.offset();
var w1 = $parent.width();
var off2 = $source.offset();
//var w2 = $source.width();
if( parseInt(off2.left) < parseInt(off1.left) + parseInt(w1 / 2) ) return 'right';
return 'left';
}
/***************/
$('.show-details-btn').on('click', function(e) {
e.preventDefault();
$(this).closest('tr').next().toggleClass('open');
$(this).find(ace.vars['.icon']).toggleClass('fa-angle-double-down').toggleClass('fa-angle-double-up');
});
/***************/
/**
//add horizontal scrollbars to a simple table
$('#simple-table').css({'width':'2000px', 'max-width': 'none'}).wrap('<div style="width: 1000px;" />').parent().ace_scroll(
{
horizontal: true,
styleClass: 'scroll-top scroll-dark scroll-visible',//show the scrollbars on top(default is bottom)
size: 2000,
mouseWheelLock: true
}
).css('padding-top', '12px');
*/
})
</script>
</body>
</html>

View file

@ -0,0 +1,729 @@
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<meta charset="utf-8" />
<title>查看${specificAdmin.aname}的管理明细 - 医院药品库存管理系统</title>
<meta name="description" content="查看${specificAdmin.aname}的管理明细 - 医院药品库存管理系统" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0" />
<!-- bootstrap & fontawesome -->
<link rel="stylesheet" href="../assets/css/bootstrap.min.css" />
<link rel="stylesheet" href="../assets/font-awesome/4.5.0/css/font-awesome.min.css" />
<!-- page specific plugin styles -->
<!-- text fonts -->
<link rel="stylesheet" href="../assets/css/fonts.googleapis.com.css" />
<!-- ace styles -->
<link rel="stylesheet" href="../assets/css/ace.min.css" class="ace-main-stylesheet" id="main-ace-style" />
<!--[if lte IE 9]>
<link rel="stylesheet" href="../assets/css/ace-part2.min.css" class="ace-main-stylesheet" />
<![endif]-->
<link rel="stylesheet" href="../assets/css/ace-skins.min.css" />
<link rel="stylesheet" href="../assets/css/ace-rtl.min.css" />
<!--[if lte IE 9]>
<link rel="stylesheet" href="../assets/css/ace-ie.min.css" />
<![endif]-->
<!-- inline styles related to this page -->
<!-- ace settings handler -->
<script src="../assets/js/ace-extra.min.js"></script>
<!-- HTML5shiv and Respond.js for IE8 to support HTML5 elements and media queries -->
<!--[if lte IE 8]>
<script src="../assets/js/html5shiv.min.js"></script>
<script src="../assets/js/respond.min.js"></script>
<![endif]-->
</head>
<body class="no-skin">
<div id="navbar" class="navbar navbar-default ace-save-state">
<div class="navbar-container ace-save-state" id="navbar-container">
<button type="button" class="navbar-toggle menu-toggler pull-left" id="menu-toggler" data-target="#sidebar">
<span class="sr-only">Toggle sidebar</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<div class="navbar-header pull-left">
<a href="../admin/index" class="navbar-brand">
<small>
<i class="fa fa-leaf"></i>
医院药品库存管理系统 DIMS
</small>
</a>
</div>
<div class="navbar-buttons navbar-header pull-right" role="navigation">
<ul class="nav ace-nav">
<li class="grey dropdown-modal">
<a data-toggle="dropdown" class="dropdown-toggle" href="#">
<i class="ace-icon fa fa-tasks"></i>
<span class="badge badge-grey">3</span>
</a>
<ul class="dropdown-menu-right dropdown-navbar dropdown-menu dropdown-caret dropdown-close">
<li class="dropdown-header">
<i class="ace-icon fa fa-check"></i>
统计信息
</li>
<li class="dropdown-content">
<ul class="dropdown-menu dropdown-navbar">
<li>
<a href="../admin/query-specific-admin?Ano=${currentAdmin.ano}">
<div class="clearfix">
<span class="pull-left">由我入库的药品总批数占比</span>
<span class="pull-right">
<fmt:formatNumber value="${myPDbatchesNum / (inventoryPDbatchesNum + destroyedPDbatchesNum) * 100}" pattern="#.00"/>
%
</span>
</div>
<div class="progress progress-mini progress-striped active">
<div style="width:${myPDbatchesNum / (inventoryPDbatchesNum + destroyedPDbatchesNum) * 100}%" class="progress-bar"></div>
</div>
</a>
</li>
<li>
<a href="../admin/query-specific-admin?Ano=${currentAdmin.ano}">
<div class="clearfix">
<span class="pull-left">由我入库的库存药品批数占比</span>
<span class="pull-right">
<fmt:formatNumber value="${myInventoryPDbatchesNum / inventoryPDbatchesNum * 100}" pattern="#.00"/>
%
</span>
</div>
<div class="progress progress-mini progress-striped active">
<div style="width:${myInventoryPDbatchesNum / inventoryPDbatchesNum * 100}%" class="progress-bar progress-bar-warning"></div>
</div>
</a>
</li>
<li>
<a href="../admin/query-specific-admin?Ano=${currentAdmin.ano}">
<div class="clearfix">
<span class="pull-left">由我销毁的药品批数占比</span>
<span class="pull-right">
<fmt:formatNumber value="${myDestroyedPDbatchesNum / destroyedPDbatchesNum * 100}" pattern="#.00"/>
%
</span>
</div>
<div class="progress progress-mini progress-striped active">
<div style="width:${myDestroyedPDbatchesNum / destroyedPDbatchesNum * 100}%" class="progress-bar progress-bar-success"></div>
</div>
</a>
</li>
</ul>
</li>
</ul>
</li>
<li class="green dropdown-modal">
<a data-toggle="dropdown" class="dropdown-toggle" href="#">
<i class="ace-icon fa fa-bell icon-animated-bell"></i>
<span class="badge badge-success">${lowInventoryDrugsNum + close2ExpiryPDbatchesNum}</span>
</a>
<ul class="dropdown-menu-right dropdown-navbar dropdown-menu dropdown-caret dropdown-close">
<li class="dropdown-header">
<i class="ace-icon fa fa-exclamation-triangle"></i>
警报
</li>
<li class="dropdown-content">
<ul class="dropdown-menu dropdown-navbar navbar-pink">
<li>
<a href="../admin/query-low-inventory-drug-list">
<div class="clearfix">
<span class="pull-left">
<i class="btn btn-xs no-hover btn-pink fa fa-comment"></i>
库存药品数量到达下限警报
</span>
<span class="pull-right badge badge-info">${lowInventoryDrugsNum}</span>
</div>
</a>
</li>
<li>
<a href="../admin/query-close-2-expiry-pdbatch-list">
<div class="clearfix">
<span class="pull-left">
<i class="btn btn-xs no-hover btn-success fa fa-shopping-cart"></i>
库存药品批次临期警报
</span>
<span class="pull-right badge badge-success">${close2ExpiryPDbatchesNum}</span>
</div>
</a>
</li>
</ul>
</li>
</ul>
</li>
<li class="light-blue dropdown-modal">
<a data-toggle="dropdown" href="#" class="dropdown-toggle">
<img class="nav-user-photo" src="../assets/images/avatars/Admin.png" alt="头像" />
<span class="user-info">
<small>欢迎,</small>
${currentAdmin.aname}
</span>
<i class="ace-icon fa fa-caret-down"></i>
</a>
<ul class="user-menu dropdown-menu-right dropdown-menu dropdown-yellow dropdown-caret dropdown-close">
<li>
<a href="../admin/profile">
<i class="ace-icon fa fa-user"></i>
个人信息
</a>
</li>
<li class="divider"></li>
<li>
<a href="../logout">
<i class="ace-icon fa fa-power-off"></i>
登出
</a>
</li>
</ul>
</li>
</ul>
</div>
</div><!-- /.navbar-container -->
</div>
<div class="main-container ace-save-state" id="main-container">
<script type="text/javascript">
try{ace.settings.loadState('main-container')}catch(e){}
</script>
<div id="sidebar" class="sidebar responsive ace-save-state">
<script type="text/javascript">
try{ace.settings.loadState('sidebar')}catch(e){}
</script>
<div class="sidebar-shortcuts" id="sidebar-shortcuts">
<div class="sidebar-shortcuts-large" id="sidebar-shortcuts-large">
<button class="btn btn-success">
<i class="ace-icon fa fa-signal"></i>
</button>
<button class="btn btn-info">
<i class="ace-icon fa fa-pencil"></i>
</button>
<button class="btn btn-warning">
<i class="ace-icon fa fa-users"></i>
</button>
<button class="btn btn-danger">
<i class="ace-icon fa fa-cogs"></i>
</button>
</div>
<div class="sidebar-shortcuts-mini" id="sidebar-shortcuts-mini">
<span class="btn btn-success"></span>
<span class="btn btn-info"></span>
<span class="btn btn-warning"></span>
<span class="btn btn-danger"></span>
</div>
</div><!-- /.sidebar-shortcuts -->
<ul class="nav nav-list">
<li class="">
<a href="../admin/welcome">
<i class="menu-icon fa fa-tachometer"></i>
<span class="menu-text"> 欢迎页面 </span>
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="../admin/profile">
<i class="menu-icon fa fa-tag"></i>
<span class="menu-text"> 个人信息页面 </span>
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="../admin/query-supplier-list">
<i class="menu-icon fa fa-briefcase"></i>
<span class="menu-text"> 查看供应商信息列表 </span>
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="../admin/add-supplier-form">
<i class="menu-icon fa fa-desktop"></i>
<span class="menu-text"> 填写新增供应商表单 </span>
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="../admin/query-low-inventory-drug-list">
<i class="menu-icon fa fa-cogs"></i>
<span class="menu-text"> 查看库存紧张的药品 </span>
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="../admin/query-close-2-expiry-pdbatch-list">
<i class="menu-icon fa fa-exclamation-circle"></i>
<span class="menu-text"> 查看临期的药品批次 </span>
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="#" class="dropdown-toggle">
<i class="menu-icon fa fa-list"></i>
<span class="menu-text"> 查看药品库存信息 </span>
<b class="arrow fa fa-angle-down"></b>
</a>
<b class="arrow"></b>
<ul class="submenu">
<li class="">
<a href="../admin/query-drug-list">
<i class="menu-icon fa fa-caret-right"></i>
查看库存药品列表
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="../admin/query-pdbatch-list">
<i class="menu-icon fa fa-caret-right"></i>
查看库存药品批次明细
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="../admin/query-destroyed-pdbatch-list">
<i class="menu-icon fa fa-caret-right"></i>
查看已销毁药品批次列表
</a>
<b class="arrow"></b>
</li>
</ul>
</li>
<li class="">
<a href="../admin/add-storage-form">
<i class="menu-icon fa fa-pencil-square-o"></i>
<span class="menu-text"> 填写药品入库表单 </span>
</a>
<b class="arrow"></b>
</li>
</ul><!-- /.nav-list -->
<div class="sidebar-toggle sidebar-collapse" id="sidebar-collapse">
<i id="sidebar-toggle-icon" class="ace-icon fa fa-angle-double-left ace-save-state" data-icon1="ace-icon fa fa-angle-double-left" data-icon2="ace-icon fa fa-angle-double-right"></i>
</div>
</div>
<div class="main-content">
<div class="main-content-inner">
<div class="breadcrumbs ace-save-state" id="breadcrumbs">
<ul class="breadcrumb">
<li>
<i class="ace-icon fa fa-home home-icon"></i>
<a href="../admin/index">首页</a>
</li>
<li class="active">查看${specificAdmin.aname}的管理明细</li>
</ul><!-- /.breadcrumb -->
</div>
<div class="page-content">
<div class="page-header">
<h1>
查看${specificAdmin.aname}的管理明细
<small>
<i class="ace-icon fa fa-angle-double-right"></i>
${specificAdmin.aname}的相关信息
</small>
</h1>
</div><!-- /.page-header -->
<c:choose>
<c:when test="${echo != null}">
<div class="alert alert-info">
<button class="close" data-dismiss="alert">
<i class="ace-icon fa fa-times"></i>
</button>
<i class="ace-icon fa fa-hand-o-right"></i>
${echo}
</div>
</c:when>
</c:choose>
<div class="row">
<div class="col-xs-12">
<!-- PAGE CONTENT BEGINS -->
<form class="form-horizontal" role="form" method="post" action="../admin/submit-storage-form">
<div class="form-group">
<label class="col-sm-4 control-label no-padding-right" for="form-field-1"> 库存管理员编号 </label>
<div class="col-sm-4">
<input class="form-control" id="form-field-1" type="text" readonly="readonly" placeholder="库存管理员编号" name="Ano" value="${specificAdmin.ano}">
</div>
</div>
<div class="form-group">
<label class="col-sm-4 control-label no-padding-right" for="form-field-2"> 库存管理员姓名 </label>
<div class="col-sm-4">
<input class="form-control" id="form-field-2" type="text" readonly="readonly" placeholder="库存管理员姓名" name="Aname" value="${specificAdmin.aname}">
</div>
</div>
<div class="form-group">
<label class="col-sm-4 control-label no-padding-right" for="form-field-3"> 库存管理员性别 </label>
<div class="col-sm-4">
<input class="form-control" id="form-field-3" type="text" readonly="readonly" placeholder="库存管理员性别" name="Asex" value="${specificAdmin.asex ? '男' : '女'}">
</div>
</div>
<div class="form-group">
<label class="col-sm-4 control-label no-padding-right" for="form-field-4"> 库存管理员年龄 </label>
<div class="col-sm-4">
<input class="form-control" id="form-field-4" type="text" readonly="readonly" placeholder="库存管理员年龄" name="Aage" value="${specificAdmin.aage}">
</div>
</div>
</form>
<h3 class="header smaller lighter blue">
查看由${specificAdmin.aname}负责的所有批次
<small>
<i class="ace-icon fa fa-angle-double-right"></i>
包括库存批次和已销毁批次,包括负责入库和出库
</small>
</h3>
<div class="row">
<div class="col-xs-12">
<div class="clearfix">
<div class="pull-right tableTools-container"></div>
</div>
<div class="table-header">
查询结果
</div>
<!-- div.table-responsive -->
<!-- div.dataTables_borderWrap -->
<div>
<table id="dynamic-table" class="table table-striped table-bordered table-hover">
<thead>
<tr>
<th>药品编号</th>
<th>药品名称</th>
<th>药品批次 (生产日期)</th>
<th>数量</th>
<th>供应商</th>
<th>入库管理员</th>
<th>入库时间</th>
<th>销毁管理员</th>
<th>销毁时间</th>
<th class="hidden-480">药品状态</th>
<th>操作</th>
</tr>
</thead>
<tbody>
<c:forEach items="${specificAdmin.allPDbatches}" var="pdbatch">
<tr>
<td>
<a href="../admin/query-specific-drug?PDno=${pdbatch.PDno}" title="查看该药品的库存明细">${pdbatch.PDno}</a>
</td>
<td>
<a href="../admin/query-specific-drug?PDno=${pdbatch.PDno}" title="查看该药品的库存明细">${pdbatch.PDname}</a>
</td>
<td>
<fmt:formatDate value="${pdbatch.PDbatch}" pattern="yyyy 年 MM 月 dd 日"/>
</td>
<td>${pdbatch.PDnum}</td>
<td>
<a href="../admin/query-specific-supplier?Sno=${pdbatch.sno}" title="查看该供应商的供货明细">${pdbatch.sno}</a>
</td>
<td align="center">
<c:choose>
<c:when test="${pdbatch.SAno == specificAdmin.ano}">
<i class="ace-icon glyphicon glyphicon-ok green"></i>
</c:when>
<c:otherwise>
<a href="../admin/query-specific-admin?Ano=${pdbatch.SAno}" title="查看该库存管理员的管理明细">${pdbatch.SAno}</a>
</c:otherwise>
</c:choose>
</td>
<td>
<fmt:formatDate value="${pdbatch.stime}" pattern="yyyy 年 MM 月 dd 日"/>
</td>
<td align="center">
<c:choose>
<c:when test="${pdbatch.DAno == specificAdmin.ano}">
<i class="ace-icon glyphicon glyphicon-ok green"></i>
</c:when>
<c:otherwise>
<a href="../admin/query-specific-admin?Ano=${pdbatch.DAno}" title="查看该库存管理员的管理明细">${pdbatch.DAno}</a>
</c:otherwise>
</c:choose>
</td>
<td>
<fmt:formatDate value="${pdbatch.dtime}" pattern="yyyy 年 MM 月 dd 日"/>
</td>
<td class="hidden-480">
<c:choose>
<c:when test="${pdbatch.DAno == null}">
<span class="label label-sm label-info arrowed-in-right arrowed">
<i class="ace-icon fa fa-flag bigger-110"></i>
正常批次
</span>
</c:when>
<c:otherwise>
<span class="label label-sm label-inverse arrowed-in-right arrowed">
<i class="ace-icon fa fa-exclamation-triangle bigger-110"></i>
已销毁批次
</span>
</c:otherwise>
</c:choose>
</td>
<td>
<c:if test="${pdbatch.DAno == null}">
<div class="hidden-sm hidden-xs action-buttons">
<a class="green" href="../admin/edit-storage-form?PDno=${pdbatch.PDno}&tempPDbatch=<fmt:formatDate value="${pdbatch.PDbatch}" pattern="yyyy+年+MM+月+dd+日"/>" title="编辑该批次药品的信息">
<i class="ace-icon fa fa-pencil bigger-130"></i>
</a>
<a class="red" href="../admin/destroy-form?PDno=${pdbatch.PDno}&tempPDbatch=<fmt:formatDate value="${pdbatch.PDbatch}" pattern="yyyy+年+MM+月+dd+日"/>" title="销毁删除该批次药品">
<i class="ace-icon fa fa-trash-o bigger-130"></i>
</a>
</div>
<div class="hidden-md hidden-lg">
<div class="inline pos-rel">
<button class="btn btn-minier btn-yellow dropdown-toggle" data-toggle="dropdown" data-position="auto">
<i class="ace-icon fa fa-caret-down icon-only bigger-120"></i>
</button>
<ul class="dropdown-menu dropdown-only-icon dropdown-yellow dropdown-menu-right dropdown-caret dropdown-close">
<li>
<a href="../admin/edit-storage-form?PDno=${pdbatch.PDno}&tempPDbatch=<fmt:formatDate value="${pdbatch.PDbatch}" pattern="yyyy+年+MM+月+dd+日"/>" class="tooltip-success" data-rel="tooltip" title="编辑该批次药品的信息">
<span class="green">
<i class="ace-icon fa fa-pencil-square-o bigger-120"></i>
</span>
</a>
</li>
<li>
<a href="../admin/destroy-form?PDno=${pdbatch.PDno}&tempPDbatch=<fmt:formatDate value="${pdbatch.PDbatch}" pattern="yyyy+年+MM+月+dd+日"/>" class="tooltip-error" data-rel="tooltip" title="销毁删除该批次药品">
<span class="red">
<i class="ace-icon fa fa-trash-o bigger-120"></i>
</span>
</a>
</li>
</ul>
</div>
</div>
</c:if>
</td>
</tr>
</c:forEach>
</tbody>
</table>
</div>
</div>
</div>
<!-- PAGE CONTENT ENDS -->
</div><!-- /.col -->
</div><!-- /.row -->
</div><!-- /.page-content -->
</div>
</div><!-- /.main-content -->
<div class="footer">
<div class="footer-inner">
<div class="footer-content">
<span class="bigger-120">
<span class="blue bolder">医院药品库存管理系统</span>
DIMS &copy; 2019-2020
</span>
</div>
</div>
</div>
<a href="#" id="btn-scroll-up" class="btn-scroll-up btn btn-sm btn-inverse">
<i class="ace-icon fa fa-angle-double-up icon-only bigger-110"></i>
</a>
</div><!-- /.main-container -->
<!-- basic scripts -->
<!--[if !IE]> -->
<script src="../assets/js/jquery-2.1.4.min.js"></script>
<!-- <![endif]-->
<!--[if IE]>
<script src="../assets/js/jquery-1.11.3.min.js"></script>
<![endif]-->
<script type="text/javascript">
if('ontouchstart' in document.documentElement) document.write("<script src='../assets/js/jquery.mobile.custom.min.js'>"+"<"+"/script>");
</script>
<script src="../assets/js/bootstrap.min.js"></script>
<!-- page specific plugin scripts -->
<script src="../assets/js/jquery.dataTables.min.js"></script>
<script src="../assets/js/jquery.dataTables.bootstrap.min.js"></script>
<script src="../assets/js/dataTables.buttons.min.js"></script>
<script src="../assets/js/buttons.flash.min.js"></script>
<script src="../assets/js/buttons.html5.min.js"></script>
<script src="../assets/js/buttons.print.min.js"></script>
<script src="../assets/js/buttons.colVis.min.js"></script>
<script src="../assets/js/dataTables.select.min.js"></script>
<!-- ace scripts -->
<script src="../assets/js/ace-elements.min.js"></script>
<script src="../assets/js/ace.min.js"></script>
<!-- inline scripts related to this page -->
<script type="text/javascript">
jQuery(function($) {
//initiate dataTables plugin
var myTable =
$('#dynamic-table')
//.wrap("<div class='dataTables_borderWrap' />") //if you are applying horizontal scrolling (sScrollX)
.DataTable( {
bAutoWidth: false,
"aoColumns": [
null, null, null, null, null, null, null, null, null, null, { "bSortable": false }
],
"aaSorting": [],
"iDisplayLength": 5,
"aLengthMenu": [
[5, 10, 15, 20, 25, 30, 35, 40, 45, 50, -1],
["5 条", "10 条", "15 条", "20 条", "25 条", "30 条", "35 条", "40 条", "45 条", "50 条", "全部"]
],
"oLanguage": { // 自定义提示信息
"sLengthMenu": "每页显示 _MENU_ 记录",
"sZeroRecords": "抱歉,没有找到",
"sInfo": "从 _START_ 到 _END_ / 共 _TOTAL_ 条数据 ",
"sInfoEmpty": "没有数据",
"sInfoFiltered": "(从 _MAX_ 条数据中检索) ",
"sSearch": "检索",
"oPaginate": {
"sFirst": "首页",
"sPrevious": "前一页",
"sNext": "后一页",
"sLast": "尾页"
}
}
//"bProcessing": true,
//"bServerSide": true,
//"sAjaxSource": "http://127.0.0.1/table.php" ,
//,
//"sScrollY": "200px",
//"bPaginate": false,
//"sScrollX": "100%",
//"sScrollXInner": "120%",
//"bScrollCollapse": true,
//Note: if you are applying horizontal scrolling (sScrollX) on a ".table-bordered"
//you may want to wrap the table inside a "div.dataTables_borderWrap" element
//"iDisplayLength": 50
} );
$.fn.dataTable.Buttons.defaults.dom.container.className = 'dt-buttons btn-overlap btn-group btn-overlap';
new $.fn.dataTable.Buttons( myTable, {
buttons: [
{
"extend": "colvis",
"text": "<i class='fa fa-search bigger-110 blue'></i> <span class='hidden'>显示/隐藏列</span>",
"className": "btn btn-white btn-primary btn-bold",
columns: ':not(:first):not(:last)'
},
{
"extend": "copy",
"text": "<i class='fa fa-copy bigger-110 pink'></i> <span class='hidden'>复制到剪贴板</span>",
"className": "btn btn-white btn-primary btn-bold"
},
{
"extend": "csv",
"text": "<i class='fa fa-database bigger-110 orange'></i> <span class='hidden'>导出到 CSV 文件</span>",
"className": "btn btn-white btn-primary btn-bold"
},
/* {
"extend": "excel",
"text": "<i class='fa fa-file-excel-o bigger-110 green'></i> <span class='hidden'>导出到 Excel 文件</span>",
"className": "btn btn-white btn-primary btn-bold"
},
{
"extend": "pdf",
"text": "<i class='fa fa-file-pdf-o bigger-110 red'></i> <span class='hidden'>导出到 PDF 文件</span>",
"className": "btn btn-white btn-primary btn-bold"
}, */
{
"extend": "print",
"text": "<i class='fa fa-print bigger-110 grey'></i> <span class='hidden'>打印</span>",
"className": "btn btn-white btn-primary btn-bold",
autoPrint: false
}
]
} );
myTable.buttons().container().appendTo( $('.tableTools-container') );
//style the message box
var defaultCopyAction = myTable.button(1).action();
myTable.button(1).action(function (e, dt, button, config) {
defaultCopyAction(e, dt, button, config);
$('.dt-button-info').addClass('gritter-item-wrapper gritter-info gritter-center white');
});
var defaultColvisAction = myTable.button(0).action();
myTable.button(0).action(function (e, dt, button, config) {
defaultColvisAction(e, dt, button, config);
if($('.dt-button-collection > .dropdown-menu').length == 0) {
$('.dt-button-collection')
.wrapInner('<ul class="dropdown-menu dropdown-light dropdown-caret dropdown-caret" />')
.find('a').attr('href', '#').wrap("<li />")
}
$('.dt-button-collection').appendTo('.tableTools-container .dt-buttons')
});
////
setTimeout(function() {
$($('.tableTools-container')).find('a.dt-button').each(function() {
var div = $(this).find(' > div').first();
if(div.length == 1) div.tooltip({container: 'body', title: div.parent().text()});
else $(this).tooltip({container: 'body', title: $(this).text()});
});
}, 500);
myTable.on( 'select', function ( e, dt, type, index ) {
if ( type === 'row' ) {
$( myTable.row( index ).node() ).find('input:checkbox').prop('checked', true);
}
} );
myTable.on( 'deselect', function ( e, dt, type, index ) {
if ( type === 'row' ) {
$( myTable.row( index ).node() ).find('input:checkbox').prop('checked', false);
}
} );
/////////////////////////////////
//table checkboxes
$('th input[type=checkbox], td input[type=checkbox]').prop('checked', false);
//select/deselect all rows according to table header checkbox
$('#dynamic-table > thead > tr > th input[type=checkbox], #dynamic-table_wrapper input[type=checkbox]').eq(0).on('click', function(){
var th_checked = this.checked;//checkbox inside "TH" table header
$('#dynamic-table').find('tbody > tr').each(function(){
var row = this;
if(th_checked) myTable.row(row).select();
else myTable.row(row).deselect();
});
});
//select/deselect a row when the checkbox is checked/unchecked
$('#dynamic-table').on('click', 'td input[type=checkbox]', function(){
var row = $(this).closest('tr').get(0);
if(this.checked) myTable.row(row).deselect();
else myTable.row(row).select();
});
$(document).on('click', '#dynamic-table .dropdown-toggle', function(e) {
e.stopImmediatePropagation();
e.stopPropagation();
e.preventDefault();
});
//And for the first simple table, which doesn't have TableTools or dataTables
//select/deselect all rows according to table header checkbox
var active_class = 'active';
$('#simple-table > thead > tr > th input[type=checkbox]').eq(0).on('click', function(){
var th_checked = this.checked;//checkbox inside "TH" table header
$(this).closest('table').find('tbody > tr').each(function(){
var row = this;
if(th_checked) $(row).addClass(active_class).find('input[type=checkbox]').eq(0).prop('checked', true);
else $(row).removeClass(active_class).find('input[type=checkbox]').eq(0).prop('checked', false);
});
});
//select/deselect a row when the checkbox is checked/unchecked
$('#simple-table').on('click', 'td input[type=checkbox]', function(){
var $row = $(this).closest('tr');
if($row.is('.detail-row ')) return;
if(this.checked) $row.addClass(active_class);
else $row.removeClass(active_class);
});
/********************************/
//add tooltip for small view action buttons in dropdown menu
$('[data-rel="tooltip"]').tooltip({placement: tooltip_placement});
//tooltip placement on right or left
function tooltip_placement(context, source) {
var $source = $(source);
var $parent = $source.closest('table')
var off1 = $parent.offset();
var w1 = $parent.width();
var off2 = $source.offset();
//var w2 = $source.width();
if( parseInt(off2.left) < parseInt(off1.left) + parseInt(w1 / 2) ) return 'right';
return 'left';
}
/***************/
$('.show-details-btn').on('click', function(e) {
e.preventDefault();
$(this).closest('tr').next().toggleClass('open');
$(this).find(ace.vars['.icon']).toggleClass('fa-angle-double-down').toggleClass('fa-angle-double-up');
});
/***************/
/**
//add horizontal scrollbars to a simple table
$('#simple-table').css({'width':'2000px', 'max-width': 'none'}).wrap('<div style="width: 1000px;" />').parent().ace_scroll(
{
horizontal: true,
styleClass: 'scroll-top scroll-dark scroll-visible',//show the scrollbars on top(default is bottom)
size: 2000,
mouseWheelLock: true
}
).css('padding-top', '12px');
*/
})
</script>
</body>
</html>

View file

@ -0,0 +1,750 @@
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<meta charset="utf-8" />
<title>查看${specificDrug.PDname}的库存明细 - 医院药品库存管理系统</title>
<meta name="description" content="查看${specificDrug.PDname}的库存明细 - 医院药品库存管理系统" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0" />
<!-- bootstrap & fontawesome -->
<link rel="stylesheet" href="../assets/css/bootstrap.min.css" />
<link rel="stylesheet" href="../assets/font-awesome/4.5.0/css/font-awesome.min.css" />
<!-- page specific plugin styles -->
<!-- text fonts -->
<link rel="stylesheet" href="../assets/css/fonts.googleapis.com.css" />
<!-- ace styles -->
<link rel="stylesheet" href="../assets/css/ace.min.css" class="ace-main-stylesheet" id="main-ace-style" />
<!--[if lte IE 9]>
<link rel="stylesheet" href="../assets/css/ace-part2.min.css" class="ace-main-stylesheet" />
<![endif]-->
<link rel="stylesheet" href="../assets/css/ace-skins.min.css" />
<link rel="stylesheet" href="../assets/css/ace-rtl.min.css" />
<!--[if lte IE 9]>
<link rel="stylesheet" href="../assets/css/ace-ie.min.css" />
<![endif]-->
<!-- inline styles related to this page -->
<!-- ace settings handler -->
<script src="../assets/js/ace-extra.min.js"></script>
<!-- HTML5shiv and Respond.js for IE8 to support HTML5 elements and media queries -->
<!--[if lte IE 8]>
<script src="../assets/js/html5shiv.min.js"></script>
<script src="../assets/js/respond.min.js"></script>
<![endif]-->
</head>
<body class="no-skin">
<div id="navbar" class="navbar navbar-default ace-save-state">
<div class="navbar-container ace-save-state" id="navbar-container">
<button type="button" class="navbar-toggle menu-toggler pull-left" id="menu-toggler" data-target="#sidebar">
<span class="sr-only">Toggle sidebar</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<div class="navbar-header pull-left">
<a href="../admin/index" class="navbar-brand">
<small>
<i class="fa fa-leaf"></i>
医院药品库存管理系统 DIMS
</small>
</a>
</div>
<div class="navbar-buttons navbar-header pull-right" role="navigation">
<ul class="nav ace-nav">
<li class="grey dropdown-modal">
<a data-toggle="dropdown" class="dropdown-toggle" href="#">
<i class="ace-icon fa fa-tasks"></i>
<span class="badge badge-grey">3</span>
</a>
<ul class="dropdown-menu-right dropdown-navbar dropdown-menu dropdown-caret dropdown-close">
<li class="dropdown-header">
<i class="ace-icon fa fa-check"></i>
统计信息
</li>
<li class="dropdown-content">
<ul class="dropdown-menu dropdown-navbar">
<li>
<a href="../admin/query-specific-admin?Ano=${currentAdmin.ano}">
<div class="clearfix">
<span class="pull-left">由我入库的药品总批数占比</span>
<span class="pull-right">
<fmt:formatNumber value="${myPDbatchesNum / (inventoryPDbatchesNum + destroyedPDbatchesNum) * 100}" pattern="#.00"/>
%
</span>
</div>
<div class="progress progress-mini progress-striped active">
<div style="width:${myPDbatchesNum / (inventoryPDbatchesNum + destroyedPDbatchesNum) * 100}%" class="progress-bar"></div>
</div>
</a>
</li>
<li>
<a href="../admin/query-specific-admin?Ano=${currentAdmin.ano}">
<div class="clearfix">
<span class="pull-left">由我入库的库存药品批数占比</span>
<span class="pull-right">
<fmt:formatNumber value="${myInventoryPDbatchesNum / inventoryPDbatchesNum * 100}" pattern="#.00"/>
%
</span>
</div>
<div class="progress progress-mini progress-striped active">
<div style="width:${myInventoryPDbatchesNum / inventoryPDbatchesNum * 100}%" class="progress-bar progress-bar-warning"></div>
</div>
</a>
</li>
<li>
<a href="../admin/query-specific-admin?Ano=${currentAdmin.ano}">
<div class="clearfix">
<span class="pull-left">由我销毁的药品批数占比</span>
<span class="pull-right">
<fmt:formatNumber value="${myDestroyedPDbatchesNum / destroyedPDbatchesNum * 100}" pattern="#.00"/>
%
</span>
</div>
<div class="progress progress-mini progress-striped active">
<div style="width:${myDestroyedPDbatchesNum / destroyedPDbatchesNum * 100}%" class="progress-bar progress-bar-success"></div>
</div>
</a>
</li>
</ul>
</li>
</ul>
</li>
<li class="green dropdown-modal">
<a data-toggle="dropdown" class="dropdown-toggle" href="#">
<i class="ace-icon fa fa-bell icon-animated-bell"></i>
<span class="badge badge-success">${lowInventoryDrugsNum + close2ExpiryPDbatchesNum}</span>
</a>
<ul class="dropdown-menu-right dropdown-navbar dropdown-menu dropdown-caret dropdown-close">
<li class="dropdown-header">
<i class="ace-icon fa fa-exclamation-triangle"></i>
警报
</li>
<li class="dropdown-content">
<ul class="dropdown-menu dropdown-navbar navbar-pink">
<li>
<a href="../admin/query-low-inventory-drug-list">
<div class="clearfix">
<span class="pull-left">
<i class="btn btn-xs no-hover btn-pink fa fa-comment"></i>
库存药品数量到达下限警报
</span>
<span class="pull-right badge badge-info">${lowInventoryDrugsNum}</span>
</div>
</a>
</li>
<li>
<a href="../admin/query-close-2-expiry-pdbatch-list">
<div class="clearfix">
<span class="pull-left">
<i class="btn btn-xs no-hover btn-success fa fa-shopping-cart"></i>
库存药品批次临期警报
</span>
<span class="pull-right badge badge-success">${close2ExpiryPDbatchesNum}</span>
</div>
</a>
</li>
</ul>
</li>
</ul>
</li>
<li class="light-blue dropdown-modal">
<a data-toggle="dropdown" href="#" class="dropdown-toggle">
<img class="nav-user-photo" src="../assets/images/avatars/Admin.png" alt="头像" />
<span class="user-info">
<small>欢迎,</small>
${currentAdmin.aname}
</span>
<i class="ace-icon fa fa-caret-down"></i>
</a>
<ul class="user-menu dropdown-menu-right dropdown-menu dropdown-yellow dropdown-caret dropdown-close">
<li>
<a href="../admin/profile">
<i class="ace-icon fa fa-user"></i>
个人信息
</a>
</li>
<li class="divider"></li>
<li>
<a href="../logout">
<i class="ace-icon fa fa-power-off"></i>
登出
</a>
</li>
</ul>
</li>
</ul>
</div>
</div><!-- /.navbar-container -->
</div>
<div class="main-container ace-save-state" id="main-container">
<script type="text/javascript">
try{ace.settings.loadState('main-container')}catch(e){}
</script>
<div id="sidebar" class="sidebar responsive ace-save-state">
<script type="text/javascript">
try{ace.settings.loadState('sidebar')}catch(e){}
</script>
<div class="sidebar-shortcuts" id="sidebar-shortcuts">
<div class="sidebar-shortcuts-large" id="sidebar-shortcuts-large">
<button class="btn btn-success">
<i class="ace-icon fa fa-signal"></i>
</button>
<button class="btn btn-info">
<i class="ace-icon fa fa-pencil"></i>
</button>
<button class="btn btn-warning">
<i class="ace-icon fa fa-users"></i>
</button>
<button class="btn btn-danger">
<i class="ace-icon fa fa-cogs"></i>
</button>
</div>
<div class="sidebar-shortcuts-mini" id="sidebar-shortcuts-mini">
<span class="btn btn-success"></span>
<span class="btn btn-info"></span>
<span class="btn btn-warning"></span>
<span class="btn btn-danger"></span>
</div>
</div><!-- /.sidebar-shortcuts -->
<ul class="nav nav-list">
<li class="">
<a href="../admin/welcome">
<i class="menu-icon fa fa-tachometer"></i>
<span class="menu-text"> 欢迎页面 </span>
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="../admin/profile">
<i class="menu-icon fa fa-tag"></i>
<span class="menu-text"> 个人信息页面 </span>
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="../admin/query-supplier-list">
<i class="menu-icon fa fa-briefcase"></i>
<span class="menu-text"> 查看供应商信息列表 </span>
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="../admin/add-supplier-form">
<i class="menu-icon fa fa-desktop"></i>
<span class="menu-text"> 填写新增供应商表单 </span>
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="../admin/query-low-inventory-drug-list">
<i class="menu-icon fa fa-cogs"></i>
<span class="menu-text"> 查看库存紧张的药品 </span>
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="../admin/query-close-2-expiry-pdbatch-list">
<i class="menu-icon fa fa-exclamation-circle"></i>
<span class="menu-text"> 查看临期的药品批次 </span>
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="#" class="dropdown-toggle">
<i class="menu-icon fa fa-list"></i>
<span class="menu-text"> 查看药品库存信息 </span>
<b class="arrow fa fa-angle-down"></b>
</a>
<b class="arrow"></b>
<ul class="submenu">
<li class="">
<a href="../admin/query-drug-list">
<i class="menu-icon fa fa-caret-right"></i>
查看库存药品列表
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="../admin/query-pdbatch-list">
<i class="menu-icon fa fa-caret-right"></i>
查看库存药品批次明细
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="../admin/query-destroyed-pdbatch-list">
<i class="menu-icon fa fa-caret-right"></i>
查看已销毁药品批次列表
</a>
<b class="arrow"></b>
</li>
</ul>
</li>
<li class="">
<a href="../admin/add-storage-form">
<i class="menu-icon fa fa-pencil-square-o"></i>
<span class="menu-text"> 填写药品入库表单 </span>
</a>
<b class="arrow"></b>
</li>
</ul><!-- /.nav-list -->
<div class="sidebar-toggle sidebar-collapse" id="sidebar-collapse">
<i id="sidebar-toggle-icon" class="ace-icon fa fa-angle-double-left ace-save-state" data-icon1="ace-icon fa fa-angle-double-left" data-icon2="ace-icon fa fa-angle-double-right"></i>
</div>
</div>
<div class="main-content">
<div class="main-content-inner">
<div class="breadcrumbs ace-save-state" id="breadcrumbs">
<ul class="breadcrumb">
<li>
<i class="ace-icon fa fa-home home-icon"></i>
<a href="../admin/index">首页</a>
</li>
<li>
<a href="../admin/query-drug-list">查看药品库存信息</a>
</li>
<li class="active">查看${specificDrug.PDname}的库存明细</li>
</ul><!-- /.breadcrumb -->
</div>
<div class="page-content">
<div class="page-header">
<h1>
查看${specificDrug.PDname}的库存明细
<small>
<i class="ace-icon fa fa-angle-double-right"></i>
${specificDrug.PDname}的相关信息
</small>
</h1>
</div><!-- /.page-header -->
<c:choose>
<c:when test="${echo != null}">
<div class="alert alert-info">
<button class="close" data-dismiss="alert">
<i class="ace-icon fa fa-times"></i>
</button>
<i class="ace-icon fa fa-hand-o-right"></i>
${echo}
</div>
</c:when>
</c:choose>
<div class="row">
<div class="col-xs-12">
<!-- PAGE CONTENT BEGINS -->
<form class="form-horizontal" role="form" method="post" action="../admin/submit-storage-form">
<div class="form-group">
<label class="col-sm-4 control-label no-padding-right" for="form-field-1"> 药品编号 </label>
<div class="col-sm-4">
<input class="form-control" id="form-field-1" type="text" readonly="readonly" placeholder="药品编号" name="PDno" value="${specificDrug.PDno}">
</div>
</div>
<div class="form-group">
<label class="col-sm-4 control-label no-padding-right" for="form-field-2"> 药品名称 </label>
<div class="col-sm-4">
<input class="form-control" id="form-field-2" type="text" readonly="readonly" placeholder="药品名称" name="PDname" value="${specificDrug.PDname}">
</div>
</div>
<div class="form-group">
<label class="col-sm-4 control-label no-padding-right" for="form-field-3"> 药品保质期 (天数) </label>
<div class="col-sm-4">
<input class="form-control" id="form-field-3" type="text" readonly="readonly" placeholder="药品保质期 (天数)" name="PDlife" value="${specificDrug.PDlife}">
</div>
</div>
<div class="form-group">
<label class="col-sm-4 control-label no-padding-right" for="form-field-4"> 药品库存总数 </label>
<div class="col-sm-4">
<input class="form-control" id="form-field-4" type="text" readonly="readonly" placeholder="药品库存总数" name="PDnum" value="${specificDrug.PDnum}">
</div>
</div>
<div class="form-group">
<label class="col-sm-4 control-label no-padding-right" for="form-field-4"> 药品状态 </label>
<div class="col-sm-4">
<c:if test="${specificDrug.PDnum <= 50}">
<span class="label label-sm label-warning arrowed-in-right arrowed">
<i class="ace-icon fa fa-fire bigger-110"></i>
库存紧张
</span>
</c:if>
<c:if test="${specificDrug.existClose2ExpiryPDbatch}">
<span class="label label-sm label-danger arrowed-in-right arrowed">
<i class="ace-icon fa fa-bolt bigger-110"></i>
存在临期批次
</span>
</c:if>
<c:if test="${specificDrug.PDnum > 50 && specificDrug.existClose2ExpiryPDbatch == false}">
<span class="label label-sm label-info arrowed-in-right arrowed">
<i class="ace-icon fa fa-lightbulb-o bigger-110"></i>
正常状态
</span>
</c:if>
</div>
</div>
</form>
<h3 class="header smaller lighter blue">
查看${specificDrug.PDname}的所有批次
<small>
<i class="ace-icon fa fa-angle-double-right"></i>
包括库存批次和已销毁批次
</small>
</h3>
<a href="../admin/specific-storage-form?PDno=${specificDrug.PDno}" role="button" class="green" data-toggle="modal">
<button class="btn btn-sm btn-primary">
<i class="ace-icon fa fa-pencil-square-o bigger-110"></i>
添加${specificDrug.PDname}的批次入库记录
<i class="ace-icon fa fa-arrow-right icon-on-right"></i>
</button>
</a>
<div class="row">
<div class="col-xs-12">
<div class="clearfix">
<div class="pull-right tableTools-container"></div>
</div>
<div class="table-header">
查询结果
</div>
<!-- div.table-responsive -->
<!-- div.dataTables_borderWrap -->
<div>
<table id="dynamic-table" class="table table-striped table-bordered table-hover">
<thead>
<tr>
<th>药品批次 (生产日期)</th>
<th>药品数量</th>
<th>药品供应商</th>
<th>入库管理员</th>
<th>入库时间</th>
<th>销毁管理员</th>
<th>销毁时间</th>
<th class="hidden-480">药品状态</th>
<th>操作</th>
</tr>
</thead>
<tbody>
<c:forEach items="${specificDrug.allPDbatches}" var="pdbatch">
<tr>
<td>
<fmt:formatDate value="${pdbatch.PDbatch}" pattern="yyyy 年 MM 月 dd 日"/>
</td>
<td>${pdbatch.PDnum}</td>
<td>
<a href="../admin/query-specific-supplier?Sno=${pdbatch.sno}" title="查看该供应商的供货明细">${pdbatch.sno}</a>
</td>
<td>
<a href="../admin/query-specific-admin?Ano=${pdbatch.SAno}" title="查看该库存管理员的管理明细">${pdbatch.SAno}</a>
</td>
<td>
<fmt:formatDate value="${pdbatch.stime}" pattern="yyyy 年 MM 月 dd 日 HH:mm"/>
</td>
<td>
<a href="../admin/query-specific-admin?Ano=${pdbatch.DAno}" title="查看该库存管理员的管理明细">${pdbatch.DAno}</a>
</td>
<td>
<fmt:formatDate value="${pdbatch.dtime}" pattern="yyyy 年 MM 月 dd 日 HH:mm"/>
</td>
<td class="hidden-480">
<c:choose>
<c:when test="${pdbatch.DAno == null}">
<c:choose>
<c:when test="${pdbatch.rdays <= (specificDrug.PDlife / 10)}">
<span class="label label-sm label-danger arrowed-in-right arrowed">
<i class="ace-icon fa fa-bolt bigger-110"></i>
临期状态
</span>
</c:when>
<c:otherwise>
<span class="label label-sm label-info arrowed-in-right arrowed">
<i class="ace-icon fa fa-flag bigger-110"></i>
正常状态
</span>
</c:otherwise>
</c:choose>
</c:when>
<c:otherwise>
<span class="label label-sm label-inverse arrowed-in-right arrowed">
<i class="ace-icon fa fa-exclamation-triangle bigger-110"></i>
已销毁状态
</span>
</c:otherwise>
</c:choose>
</td>
<td>
<c:if test="${pdbatch.DAno == null}">
<div class="hidden-sm hidden-xs action-buttons">
<a class="green" href="../admin/edit-storage-form?PDno=${pdbatch.PDno}&tempPDbatch=<fmt:formatDate value="${pdbatch.PDbatch}" pattern="yyyy+年+MM+月+dd+日"/>" title="编辑该批次药品的信息">
<i class="ace-icon fa fa-pencil bigger-130"></i>
</a>
<a class="red" href="../admin/destroy-form?PDno=${pdbatch.PDno}&tempPDbatch=<fmt:formatDate value="${pdbatch.PDbatch}" pattern="yyyy+年+MM+月+dd+日"/>" title="销毁删除该批次药品">
<i class="ace-icon fa fa-trash-o bigger-130"></i>
</a>
</div>
<div class="hidden-md hidden-lg">
<div class="inline pos-rel">
<button class="btn btn-minier btn-yellow dropdown-toggle" data-toggle="dropdown" data-position="auto">
<i class="ace-icon fa fa-caret-down icon-only bigger-120"></i>
</button>
<ul class="dropdown-menu dropdown-only-icon dropdown-yellow dropdown-menu-right dropdown-caret dropdown-close">
<li>
<a href="../admin/edit-storage-form?PDno=${pdbatch.PDno}&tempPDbatch=<fmt:formatDate value="${pdbatch.PDbatch}" pattern="yyyy+年+MM+月+dd+日"/>" class="tooltip-success" data-rel="tooltip" title="编辑该批次药品的信息">
<span class="green">
<i class="ace-icon fa fa-pencil-square-o bigger-120"></i>
</span>
</a>
</li>
<li>
<a href="../admin/destroy-form?PDno=${pdbatch.PDno}&tempPDbatch=<fmt:formatDate value="${pdbatch.PDbatch}" pattern="yyyy+年+MM+月+dd+日"/>" class="tooltip-error" data-rel="tooltip" title="销毁删除该批次药品">
<span class="red">
<i class="ace-icon fa fa-trash-o bigger-120"></i>
</span>
</a>
</li>
</ul>
</div>
</div>
</c:if>
</td>
</tr>
</c:forEach>
</tbody>
</table>
</div>
</div>
</div>
<!-- PAGE CONTENT ENDS -->
</div><!-- /.col -->
</div><!-- /.row -->
</div><!-- /.page-content -->
</div>
</div><!-- /.main-content -->
<div class="footer">
<div class="footer-inner">
<div class="footer-content">
<span class="bigger-120">
<span class="blue bolder">医院药品库存管理系统</span>
DIMS &copy; 2019-2020
</span>
</div>
</div>
</div>
<a href="#" id="btn-scroll-up" class="btn-scroll-up btn btn-sm btn-inverse">
<i class="ace-icon fa fa-angle-double-up icon-only bigger-110"></i>
</a>
</div><!-- /.main-container -->
<!-- basic scripts -->
<!--[if !IE]> -->
<script src="../assets/js/jquery-2.1.4.min.js"></script>
<!-- <![endif]-->
<!--[if IE]>
<script src="../assets/js/jquery-1.11.3.min.js"></script>
<![endif]-->
<script type="text/javascript">
if('ontouchstart' in document.documentElement) document.write("<script src='../assets/js/jquery.mobile.custom.min.js'>"+"<"+"/script>");
</script>
<script src="../assets/js/bootstrap.min.js"></script>
<!-- page specific plugin scripts -->
<script src="../assets/js/jquery.dataTables.min.js"></script>
<script src="../assets/js/jquery.dataTables.bootstrap.min.js"></script>
<script src="../assets/js/dataTables.buttons.min.js"></script>
<script src="../assets/js/buttons.flash.min.js"></script>
<script src="../assets/js/buttons.html5.min.js"></script>
<script src="../assets/js/buttons.print.min.js"></script>
<script src="../assets/js/buttons.colVis.min.js"></script>
<script src="../assets/js/dataTables.select.min.js"></script>
<!-- ace scripts -->
<script src="../assets/js/ace-elements.min.js"></script>
<script src="../assets/js/ace.min.js"></script>
<!-- inline scripts related to this page -->
<script type="text/javascript">
jQuery(function($) {
//initiate dataTables plugin
var myTable =
$('#dynamic-table')
//.wrap("<div class='dataTables_borderWrap' />") //if you are applying horizontal scrolling (sScrollX)
.DataTable( {
bAutoWidth: false,
"aoColumns": [
null, null, null, null, null, null, null, null, { "bSortable": false }
],
"aaSorting": [],
"iDisplayLength": 5,
"aLengthMenu": [
[5, 10, 15, 20, 25, 30, 35, 40, 45, 50, -1],
["5 条", "10 条", "15 条", "20 条", "25 条", "30 条", "35 条", "40 条", "45 条", "50 条", "全部"]
],
"oLanguage": { // 自定义提示信息
"sLengthMenu": "每页显示 _MENU_ 记录",
"sZeroRecords": "抱歉,没有找到",
"sInfo": "从 _START_ 到 _END_ / 共 _TOTAL_ 条数据 ",
"sInfoEmpty": "没有数据",
"sInfoFiltered": "(从 _MAX_ 条数据中检索) ",
"sSearch": "检索",
"oPaginate": {
"sFirst": "首页",
"sPrevious": "前一页",
"sNext": "后一页",
"sLast": "尾页"
}
}
//"bProcessing": true,
//"bServerSide": true,
//"sAjaxSource": "http://127.0.0.1/table.php" ,
//,
//"sScrollY": "200px",
//"bPaginate": false,
//"sScrollX": "100%",
//"sScrollXInner": "120%",
//"bScrollCollapse": true,
//Note: if you are applying horizontal scrolling (sScrollX) on a ".table-bordered"
//you may want to wrap the table inside a "div.dataTables_borderWrap" element
//"iDisplayLength": 50
} );
$.fn.dataTable.Buttons.defaults.dom.container.className = 'dt-buttons btn-overlap btn-group btn-overlap';
new $.fn.dataTable.Buttons( myTable, {
buttons: [
{
"extend": "colvis",
"text": "<i class='fa fa-search bigger-110 blue'></i> <span class='hidden'>显示/隐藏列</span>",
"className": "btn btn-white btn-primary btn-bold",
columns: ':not(:first):not(:last)'
},
{
"extend": "copy",
"text": "<i class='fa fa-copy bigger-110 pink'></i> <span class='hidden'>复制到剪贴板</span>",
"className": "btn btn-white btn-primary btn-bold"
},
{
"extend": "csv",
"text": "<i class='fa fa-database bigger-110 orange'></i> <span class='hidden'>导出到 CSV 文件</span>",
"className": "btn btn-white btn-primary btn-bold"
},
/* {
"extend": "excel",
"text": "<i class='fa fa-file-excel-o bigger-110 green'></i> <span class='hidden'>导出到 Excel 文件</span>",
"className": "btn btn-white btn-primary btn-bold"
},
{
"extend": "pdf",
"text": "<i class='fa fa-file-pdf-o bigger-110 red'></i> <span class='hidden'>导出到 PDF 文件</span>",
"className": "btn btn-white btn-primary btn-bold"
}, */
{
"extend": "print",
"text": "<i class='fa fa-print bigger-110 grey'></i> <span class='hidden'>打印</span>",
"className": "btn btn-white btn-primary btn-bold",
autoPrint: false
}
]
} );
myTable.buttons().container().appendTo( $('.tableTools-container') );
//style the message box
var defaultCopyAction = myTable.button(1).action();
myTable.button(1).action(function (e, dt, button, config) {
defaultCopyAction(e, dt, button, config);
$('.dt-button-info').addClass('gritter-item-wrapper gritter-info gritter-center white');
});
var defaultColvisAction = myTable.button(0).action();
myTable.button(0).action(function (e, dt, button, config) {
defaultColvisAction(e, dt, button, config);
if($('.dt-button-collection > .dropdown-menu').length == 0) {
$('.dt-button-collection')
.wrapInner('<ul class="dropdown-menu dropdown-light dropdown-caret dropdown-caret" />')
.find('a').attr('href', '#').wrap("<li />")
}
$('.dt-button-collection').appendTo('.tableTools-container .dt-buttons')
});
////
setTimeout(function() {
$($('.tableTools-container')).find('a.dt-button').each(function() {
var div = $(this).find(' > div').first();
if(div.length == 1) div.tooltip({container: 'body', title: div.parent().text()});
else $(this).tooltip({container: 'body', title: $(this).text()});
});
}, 500);
myTable.on( 'select', function ( e, dt, type, index ) {
if ( type === 'row' ) {
$( myTable.row( index ).node() ).find('input:checkbox').prop('checked', true);
}
} );
myTable.on( 'deselect', function ( e, dt, type, index ) {
if ( type === 'row' ) {
$( myTable.row( index ).node() ).find('input:checkbox').prop('checked', false);
}
} );
/////////////////////////////////
//table checkboxes
$('th input[type=checkbox], td input[type=checkbox]').prop('checked', false);
//select/deselect all rows according to table header checkbox
$('#dynamic-table > thead > tr > th input[type=checkbox], #dynamic-table_wrapper input[type=checkbox]').eq(0).on('click', function(){
var th_checked = this.checked;//checkbox inside "TH" table header
$('#dynamic-table').find('tbody > tr').each(function(){
var row = this;
if(th_checked) myTable.row(row).select();
else myTable.row(row).deselect();
});
});
//select/deselect a row when the checkbox is checked/unchecked
$('#dynamic-table').on('click', 'td input[type=checkbox]', function(){
var row = $(this).closest('tr').get(0);
if(this.checked) myTable.row(row).deselect();
else myTable.row(row).select();
});
$(document).on('click', '#dynamic-table .dropdown-toggle', function(e) {
e.stopImmediatePropagation();
e.stopPropagation();
e.preventDefault();
});
//And for the first simple table, which doesn't have TableTools or dataTables
//select/deselect all rows according to table header checkbox
var active_class = 'active';
$('#simple-table > thead > tr > th input[type=checkbox]').eq(0).on('click', function(){
var th_checked = this.checked;//checkbox inside "TH" table header
$(this).closest('table').find('tbody > tr').each(function(){
var row = this;
if(th_checked) $(row).addClass(active_class).find('input[type=checkbox]').eq(0).prop('checked', true);
else $(row).removeClass(active_class).find('input[type=checkbox]').eq(0).prop('checked', false);
});
});
//select/deselect a row when the checkbox is checked/unchecked
$('#simple-table').on('click', 'td input[type=checkbox]', function(){
var $row = $(this).closest('tr');
if($row.is('.detail-row ')) return;
if(this.checked) $row.addClass(active_class);
else $row.removeClass(active_class);
});
/********************************/
//add tooltip for small view action buttons in dropdown menu
$('[data-rel="tooltip"]').tooltip({placement: tooltip_placement});
//tooltip placement on right or left
function tooltip_placement(context, source) {
var $source = $(source);
var $parent = $source.closest('table')
var off1 = $parent.offset();
var w1 = $parent.width();
var off2 = $source.offset();
//var w2 = $source.width();
if( parseInt(off2.left) < parseInt(off1.left) + parseInt(w1 / 2) ) return 'right';
return 'left';
}
/***************/
$('.show-details-btn').on('click', function(e) {
e.preventDefault();
$(this).closest('tr').next().toggleClass('open');
$(this).find(ace.vars['.icon']).toggleClass('fa-angle-double-down').toggleClass('fa-angle-double-up');
});
/***************/
/**
//add horizontal scrollbars to a simple table
$('#simple-table').css({'width':'2000px', 'max-width': 'none'}).wrap('<div style="width: 1000px;" />').parent().ace_scroll(
{
horizontal: true,
styleClass: 'scroll-top scroll-dark scroll-visible',//show the scrollbars on top(default is bottom)
size: 2000,
mouseWheelLock: true
}
).css('padding-top', '12px');
*/
})
</script>
</body>
</html>

View file

@ -0,0 +1,714 @@
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<meta charset="utf-8" />
<title>查看${specificSupplier.sname}的供货明细 - 医院药品库存管理系统</title>
<meta name="description" content="查看${specificSupplier.sname}的供货明细 - 医院药品库存管理系统" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0" />
<!-- bootstrap & fontawesome -->
<link rel="stylesheet" href="../assets/css/bootstrap.min.css" />
<link rel="stylesheet" href="../assets/font-awesome/4.5.0/css/font-awesome.min.css" />
<!-- page specific plugin styles -->
<!-- text fonts -->
<link rel="stylesheet" href="../assets/css/fonts.googleapis.com.css" />
<!-- ace styles -->
<link rel="stylesheet" href="../assets/css/ace.min.css" class="ace-main-stylesheet" id="main-ace-style" />
<!--[if lte IE 9]>
<link rel="stylesheet" href="../assets/css/ace-part2.min.css" class="ace-main-stylesheet" />
<![endif]-->
<link rel="stylesheet" href="../assets/css/ace-skins.min.css" />
<link rel="stylesheet" href="../assets/css/ace-rtl.min.css" />
<!--[if lte IE 9]>
<link rel="stylesheet" href="../assets/css/ace-ie.min.css" />
<![endif]-->
<!-- inline styles related to this page -->
<!-- ace settings handler -->
<script src="../assets/js/ace-extra.min.js"></script>
<!-- HTML5shiv and Respond.js for IE8 to support HTML5 elements and media queries -->
<!--[if lte IE 8]>
<script src="../assets/js/html5shiv.min.js"></script>
<script src="../assets/js/respond.min.js"></script>
<![endif]-->
</head>
<body class="no-skin">
<div id="navbar" class="navbar navbar-default ace-save-state">
<div class="navbar-container ace-save-state" id="navbar-container">
<button type="button" class="navbar-toggle menu-toggler pull-left" id="menu-toggler" data-target="#sidebar">
<span class="sr-only">Toggle sidebar</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<div class="navbar-header pull-left">
<a href="../admin/index" class="navbar-brand">
<small>
<i class="fa fa-leaf"></i>
医院药品库存管理系统 DIMS
</small>
</a>
</div>
<div class="navbar-buttons navbar-header pull-right" role="navigation">
<ul class="nav ace-nav">
<li class="grey dropdown-modal">
<a data-toggle="dropdown" class="dropdown-toggle" href="#">
<i class="ace-icon fa fa-tasks"></i>
<span class="badge badge-grey">3</span>
</a>
<ul class="dropdown-menu-right dropdown-navbar dropdown-menu dropdown-caret dropdown-close">
<li class="dropdown-header">
<i class="ace-icon fa fa-check"></i>
统计信息
</li>
<li class="dropdown-content">
<ul class="dropdown-menu dropdown-navbar">
<li>
<a href="../admin/query-specific-admin?Ano=${currentAdmin.ano}">
<div class="clearfix">
<span class="pull-left">由我入库的药品总批数占比</span>
<span class="pull-right">
<fmt:formatNumber value="${myPDbatchesNum / (inventoryPDbatchesNum + destroyedPDbatchesNum) * 100}" pattern="#.00"/>
%
</span>
</div>
<div class="progress progress-mini progress-striped active">
<div style="width:${myPDbatchesNum / (inventoryPDbatchesNum + destroyedPDbatchesNum) * 100}%" class="progress-bar"></div>
</div>
</a>
</li>
<li>
<a href="../admin/query-specific-admin?Ano=${currentAdmin.ano}">
<div class="clearfix">
<span class="pull-left">由我入库的库存药品批数占比</span>
<span class="pull-right">
<fmt:formatNumber value="${myInventoryPDbatchesNum / inventoryPDbatchesNum * 100}" pattern="#.00"/>
%
</span>
</div>
<div class="progress progress-mini progress-striped active">
<div style="width:${myInventoryPDbatchesNum / inventoryPDbatchesNum * 100}%" class="progress-bar progress-bar-warning"></div>
</div>
</a>
</li>
<li>
<a href="../admin/query-specific-admin?Ano=${currentAdmin.ano}">
<div class="clearfix">
<span class="pull-left">由我销毁的药品批数占比</span>
<span class="pull-right">
<fmt:formatNumber value="${myDestroyedPDbatchesNum / destroyedPDbatchesNum * 100}" pattern="#.00"/>
%
</span>
</div>
<div class="progress progress-mini progress-striped active">
<div style="width:${myDestroyedPDbatchesNum / destroyedPDbatchesNum * 100}%" class="progress-bar progress-bar-success"></div>
</div>
</a>
</li>
</ul>
</li>
</ul>
</li>
<li class="green dropdown-modal">
<a data-toggle="dropdown" class="dropdown-toggle" href="#">
<i class="ace-icon fa fa-bell icon-animated-bell"></i>
<span class="badge badge-success">${lowInventoryDrugsNum + close2ExpiryPDbatchesNum}</span>
</a>
<ul class="dropdown-menu-right dropdown-navbar dropdown-menu dropdown-caret dropdown-close">
<li class="dropdown-header">
<i class="ace-icon fa fa-exclamation-triangle"></i>
警报
</li>
<li class="dropdown-content">
<ul class="dropdown-menu dropdown-navbar navbar-pink">
<li>
<a href="../admin/query-low-inventory-drug-list">
<div class="clearfix">
<span class="pull-left">
<i class="btn btn-xs no-hover btn-pink fa fa-comment"></i>
库存药品数量到达下限警报
</span>
<span class="pull-right badge badge-info">${lowInventoryDrugsNum}</span>
</div>
</a>
</li>
<li>
<a href="../admin/query-close-2-expiry-pdbatch-list">
<div class="clearfix">
<span class="pull-left">
<i class="btn btn-xs no-hover btn-success fa fa-shopping-cart"></i>
库存药品批次临期警报
</span>
<span class="pull-right badge badge-success">${close2ExpiryPDbatchesNum}</span>
</div>
</a>
</li>
</ul>
</li>
</ul>
</li>
<li class="light-blue dropdown-modal">
<a data-toggle="dropdown" href="#" class="dropdown-toggle">
<img class="nav-user-photo" src="../assets/images/avatars/Admin.png" alt="头像" />
<span class="user-info">
<small>欢迎,</small>
${currentAdmin.aname}
</span>
<i class="ace-icon fa fa-caret-down"></i>
</a>
<ul class="user-menu dropdown-menu-right dropdown-menu dropdown-yellow dropdown-caret dropdown-close">
<li>
<a href="../admin/profile">
<i class="ace-icon fa fa-user"></i>
个人信息
</a>
</li>
<li class="divider"></li>
<li>
<a href="../logout">
<i class="ace-icon fa fa-power-off"></i>
登出
</a>
</li>
</ul>
</li>
</ul>
</div>
</div><!-- /.navbar-container -->
</div>
<div class="main-container ace-save-state" id="main-container">
<script type="text/javascript">
try{ace.settings.loadState('main-container')}catch(e){}
</script>
<div id="sidebar" class="sidebar responsive ace-save-state">
<script type="text/javascript">
try{ace.settings.loadState('sidebar')}catch(e){}
</script>
<div class="sidebar-shortcuts" id="sidebar-shortcuts">
<div class="sidebar-shortcuts-large" id="sidebar-shortcuts-large">
<button class="btn btn-success">
<i class="ace-icon fa fa-signal"></i>
</button>
<button class="btn btn-info">
<i class="ace-icon fa fa-pencil"></i>
</button>
<button class="btn btn-warning">
<i class="ace-icon fa fa-users"></i>
</button>
<button class="btn btn-danger">
<i class="ace-icon fa fa-cogs"></i>
</button>
</div>
<div class="sidebar-shortcuts-mini" id="sidebar-shortcuts-mini">
<span class="btn btn-success"></span>
<span class="btn btn-info"></span>
<span class="btn btn-warning"></span>
<span class="btn btn-danger"></span>
</div>
</div><!-- /.sidebar-shortcuts -->
<ul class="nav nav-list">
<li class="">
<a href="../admin/welcome">
<i class="menu-icon fa fa-tachometer"></i>
<span class="menu-text"> 欢迎页面 </span>
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="../admin/profile">
<i class="menu-icon fa fa-tag"></i>
<span class="menu-text"> 个人信息页面 </span>
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="../admin/query-supplier-list">
<i class="menu-icon fa fa-briefcase"></i>
<span class="menu-text"> 查看供应商信息列表 </span>
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="../admin/add-supplier-form">
<i class="menu-icon fa fa-desktop"></i>
<span class="menu-text"> 填写新增供应商表单 </span>
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="../admin/query-low-inventory-drug-list">
<i class="menu-icon fa fa-cogs"></i>
<span class="menu-text"> 查看库存紧张的药品 </span>
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="../admin/query-close-2-expiry-pdbatch-list">
<i class="menu-icon fa fa-exclamation-circle"></i>
<span class="menu-text"> 查看临期的药品批次 </span>
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="#" class="dropdown-toggle">
<i class="menu-icon fa fa-list"></i>
<span class="menu-text"> 查看药品库存信息 </span>
<b class="arrow fa fa-angle-down"></b>
</a>
<b class="arrow"></b>
<ul class="submenu">
<li class="">
<a href="../admin/query-drug-list">
<i class="menu-icon fa fa-caret-right"></i>
查看库存药品列表
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="../admin/query-pdbatch-list">
<i class="menu-icon fa fa-caret-right"></i>
查看库存药品批次明细
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="../admin/query-destroyed-pdbatch-list">
<i class="menu-icon fa fa-caret-right"></i>
查看已销毁药品批次列表
</a>
<b class="arrow"></b>
</li>
</ul>
</li>
<li class="">
<a href="../admin/add-storage-form">
<i class="menu-icon fa fa-pencil-square-o"></i>
<span class="menu-text"> 填写药品入库表单 </span>
</a>
<b class="arrow"></b>
</li>
</ul><!-- /.nav-list -->
<div class="sidebar-toggle sidebar-collapse" id="sidebar-collapse">
<i id="sidebar-toggle-icon" class="ace-icon fa fa-angle-double-left ace-save-state" data-icon1="ace-icon fa fa-angle-double-left" data-icon2="ace-icon fa fa-angle-double-right"></i>
</div>
</div>
<div class="main-content">
<div class="main-content-inner">
<div class="breadcrumbs ace-save-state" id="breadcrumbs">
<ul class="breadcrumb">
<li>
<i class="ace-icon fa fa-home home-icon"></i>
<a href="../admin/index">首页</a>
</li>
<li>
<a href="../admin/query-supplier-list">查看供应商信息列表</a>
</li>
<li class="active">查看${specificSupplier.sname}的供货明细</li>
</ul><!-- /.breadcrumb -->
</div>
<div class="page-content">
<div class="page-header">
<h1>
查看${specificSupplier.sname}的供货明细
<small>
<i class="ace-icon fa fa-angle-double-right"></i>
${specificSupplier.sname}的相关信息
</small>
</h1>
</div><!-- /.page-header -->
<c:choose>
<c:when test="${echo != null}">
<div class="alert alert-info">
<button class="close" data-dismiss="alert">
<i class="ace-icon fa fa-times"></i>
</button>
<i class="ace-icon fa fa-hand-o-right"></i>
${echo}
</div>
</c:when>
</c:choose>
<div class="row">
<div class="col-xs-12">
<!-- PAGE CONTENT BEGINS -->
<form class="form-horizontal" role="form" method="post" action="../admin/submit-storage-form">
<div class="form-group">
<label class="col-sm-4 control-label no-padding-right" for="form-field-1"> 供应商编号 </label>
<div class="col-sm-4">
<input class="form-control" id="form-field-1" type="text" readonly="readonly" placeholder="供应商编号" name="Sno" value="${specificSupplier.sno}">
</div>
</div>
<div class="form-group">
<label class="col-sm-4 control-label no-padding-right" for="form-field-2"> 供应商名称 </label>
<div class="col-sm-4">
<input class="form-control" id="form-field-2" type="text" readonly="readonly" placeholder="供应商名称" name="Sname" value="${specificSupplier.sname}">
</div>
</div>
<div class="form-group">
<label class="col-sm-4 control-label no-padding-right" for="form-field-3"> 供应商地址 </label>
<div class="col-sm-4">
<input class="form-control" id="form-field-3" type="text" readonly="readonly" placeholder="供应商地址" name="Saddr" value="${specificSupplier.saddr}">
</div>
</div>
<div class="form-group">
<label class="col-sm-4 control-label no-padding-right" for="form-field-4"> 供应商电话 </label>
<div class="col-sm-4">
<input class="form-control" id="form-field-4" type="text" readonly="readonly" placeholder="供应商电话" name="Sphone" value="${specificSupplier.sphone}">
</div>
</div>
</form>
<h3 class="header smaller lighter blue">
查看由${specificSupplier.sname}供应的所有批次
<small>
<i class="ace-icon fa fa-angle-double-right"></i>
包括库存批次和已销毁批次
</small>
</h3>
<div class="row">
<div class="col-xs-12">
<div class="clearfix">
<div class="pull-right tableTools-container"></div>
</div>
<div class="table-header">
查询结果
</div>
<!-- div.table-responsive -->
<!-- div.dataTables_borderWrap -->
<div>
<table id="dynamic-table" class="table table-striped table-bordered table-hover">
<thead>
<tr>
<th>药品编号</th>
<th>药品名称</th>
<th>药品批次 (生产日期)</th>
<th>药品数量</th>
<th>入库管理员</th>
<th>入库时间</th>
<th>销毁管理员</th>
<th>销毁时间</th>
<th class="hidden-480">药品状态</th>
<th>操作</th>
</tr>
</thead>
<tbody>
<c:forEach items="${specificSupplier.allPDbatches}" var="pdbatch">
<tr>
<td>
<a href="../admin/query-specific-drug?PDno=${pdbatch.PDno}" title="查看该药品的库存明细">${pdbatch.PDno}</a>
</td>
<td>
<a href="../admin/query-specific-drug?PDno=${pdbatch.PDno}" title="查看该药品的库存明细">${pdbatch.PDname}</a>
</td>
<td>
<fmt:formatDate value="${pdbatch.PDbatch}" pattern="yyyy 年 MM 月 dd 日"/>
</td>
<td>${pdbatch.PDnum}</td>
<td>
<a href="../admin/query-specific-admin?Ano=${pdbatch.SAno}" title="查看该库存管理员的管理明细">${pdbatch.SAno}</a>
</td>
<td>
<fmt:formatDate value="${pdbatch.stime}" pattern="yyyy 年 MM 月 dd 日 HH:mm"/>
</td>
<td>
<a href="../admin/query-specific-admin?Ano=${pdbatch.DAno}" title="查看该库存管理员的管理明细">${pdbatch.DAno}</a>
</td>
<td>
<fmt:formatDate value="${pdbatch.dtime}" pattern="yyyy 年 MM 月 dd 日 HH:mm"/>
</td>
<td class="hidden-480">
<c:choose>
<c:when test="${pdbatch.DAno == null}">
<span class="label label-sm label-info arrowed-in-right arrowed">
<i class="ace-icon fa fa-flag bigger-110"></i>
正常
</span>
</c:when>
<c:otherwise>
<span class="label label-sm label-inverse arrowed-in-right arrowed">
<i class="ace-icon fa fa-exclamation-triangle bigger-110"></i>
已销毁
</span>
</c:otherwise>
</c:choose>
</td>
<td>
<c:if test="${pdbatch.DAno == null}">
<div class="hidden-sm hidden-xs action-buttons">
<a class="green" href="../admin/edit-storage-form?PDno=${pdbatch.PDno}&tempPDbatch=<fmt:formatDate value="${pdbatch.PDbatch}" pattern="yyyy+年+MM+月+dd+日"/>" title="编辑该批次药品的信息">
<i class="ace-icon fa fa-pencil bigger-130"></i>
</a>
<a class="red" href="../admin/destroy-form?PDno=${pdbatch.PDno}&tempPDbatch=<fmt:formatDate value="${pdbatch.PDbatch}" pattern="yyyy+年+MM+月+dd+日"/>" title="销毁删除该批次药品">
<i class="ace-icon fa fa-trash-o bigger-130"></i>
</a>
</div>
<div class="hidden-md hidden-lg">
<div class="inline pos-rel">
<button class="btn btn-minier btn-yellow dropdown-toggle" data-toggle="dropdown" data-position="auto">
<i class="ace-icon fa fa-caret-down icon-only bigger-120"></i>
</button>
<ul class="dropdown-menu dropdown-only-icon dropdown-yellow dropdown-menu-right dropdown-caret dropdown-close">
<li>
<a href="../admin/edit-storage-form?PDno=${pdbatch.PDno}&tempPDbatch=<fmt:formatDate value="${pdbatch.PDbatch}" pattern="yyyy+年+MM+月+dd+日"/>" class="tooltip-success" data-rel="tooltip" title="编辑该批次药品的信息">
<span class="green">
<i class="ace-icon fa fa-pencil-square-o bigger-120"></i>
</span>
</a>
</li>
<li>
<a href="../admin/destroy-form?PDno=${pdbatch.PDno}&tempPDbatch=<fmt:formatDate value="${pdbatch.PDbatch}" pattern="yyyy+年+MM+月+dd+日"/>" class="tooltip-error" data-rel="tooltip" title="销毁删除该批次药品">
<span class="red">
<i class="ace-icon fa fa-trash-o bigger-120"></i>
</span>
</a>
</li>
</ul>
</div>
</div>
</c:if>
</td>
</tr>
</c:forEach>
</tbody>
</table>
</div>
</div>
</div>
<!-- PAGE CONTENT ENDS -->
</div><!-- /.col -->
</div><!-- /.row -->
</div><!-- /.page-content -->
</div>
</div><!-- /.main-content -->
<div class="footer">
<div class="footer-inner">
<div class="footer-content">
<span class="bigger-120">
<span class="blue bolder">医院药品库存管理系统</span>
DIMS &copy; 2019-2020
</span>
</div>
</div>
</div>
<a href="#" id="btn-scroll-up" class="btn-scroll-up btn btn-sm btn-inverse">
<i class="ace-icon fa fa-angle-double-up icon-only bigger-110"></i>
</a>
</div><!-- /.main-container -->
<!-- basic scripts -->
<!--[if !IE]> -->
<script src="../assets/js/jquery-2.1.4.min.js"></script>
<!-- <![endif]-->
<!--[if IE]>
<script src="../assets/js/jquery-1.11.3.min.js"></script>
<![endif]-->
<script type="text/javascript">
if('ontouchstart' in document.documentElement) document.write("<script src='../assets/js/jquery.mobile.custom.min.js'>"+"<"+"/script>");
</script>
<script src="../assets/js/bootstrap.min.js"></script>
<!-- page specific plugin scripts -->
<script src="../assets/js/jquery.dataTables.min.js"></script>
<script src="../assets/js/jquery.dataTables.bootstrap.min.js"></script>
<script src="../assets/js/dataTables.buttons.min.js"></script>
<script src="../assets/js/buttons.flash.min.js"></script>
<script src="../assets/js/buttons.html5.min.js"></script>
<script src="../assets/js/buttons.print.min.js"></script>
<script src="../assets/js/buttons.colVis.min.js"></script>
<script src="../assets/js/dataTables.select.min.js"></script>
<!-- ace scripts -->
<script src="../assets/js/ace-elements.min.js"></script>
<script src="../assets/js/ace.min.js"></script>
<!-- inline scripts related to this page -->
<script type="text/javascript">
jQuery(function($) {
//initiate dataTables plugin
var myTable =
$('#dynamic-table')
//.wrap("<div class='dataTables_borderWrap' />") //if you are applying horizontal scrolling (sScrollX)
.DataTable( {
bAutoWidth: false,
"aoColumns": [
null, null, null, null, null, null, null, null, null, { "bSortable": false }
],
"aaSorting": [],
"iDisplayLength": 5,
"aLengthMenu": [
[5, 10, 15, 20, 25, 30, 35, 40, 45, 50, -1],
["5 条", "10 条", "15 条", "20 条", "25 条", "30 条", "35 条", "40 条", "45 条", "50 条", "全部"]
],
"oLanguage": { // 自定义提示信息
"sLengthMenu": "每页显示 _MENU_ 记录",
"sZeroRecords": "抱歉,没有找到",
"sInfo": "从 _START_ 到 _END_ / 共 _TOTAL_ 条数据 ",
"sInfoEmpty": "没有数据",
"sInfoFiltered": "(从 _MAX_ 条数据中检索) ",
"sSearch": "检索",
"oPaginate": {
"sFirst": "首页",
"sPrevious": "前一页",
"sNext": "后一页",
"sLast": "尾页"
}
}
//"bProcessing": true,
//"bServerSide": true,
//"sAjaxSource": "http://127.0.0.1/table.php" ,
//,
//"sScrollY": "200px",
//"bPaginate": false,
//"sScrollX": "100%",
//"sScrollXInner": "120%",
//"bScrollCollapse": true,
//Note: if you are applying horizontal scrolling (sScrollX) on a ".table-bordered"
//you may want to wrap the table inside a "div.dataTables_borderWrap" element
//"iDisplayLength": 50
} );
$.fn.dataTable.Buttons.defaults.dom.container.className = 'dt-buttons btn-overlap btn-group btn-overlap';
new $.fn.dataTable.Buttons( myTable, {
buttons: [
{
"extend": "colvis",
"text": "<i class='fa fa-search bigger-110 blue'></i> <span class='hidden'>显示/隐藏列</span>",
"className": "btn btn-white btn-primary btn-bold",
columns: ':not(:first):not(:last)'
},
{
"extend": "copy",
"text": "<i class='fa fa-copy bigger-110 pink'></i> <span class='hidden'>复制到剪贴板</span>",
"className": "btn btn-white btn-primary btn-bold"
},
{
"extend": "csv",
"text": "<i class='fa fa-database bigger-110 orange'></i> <span class='hidden'>导出到 CSV 文件</span>",
"className": "btn btn-white btn-primary btn-bold"
},
/* {
"extend": "excel",
"text": "<i class='fa fa-file-excel-o bigger-110 green'></i> <span class='hidden'>导出到 Excel 文件</span>",
"className": "btn btn-white btn-primary btn-bold"
},
{
"extend": "pdf",
"text": "<i class='fa fa-file-pdf-o bigger-110 red'></i> <span class='hidden'>导出到 PDF 文件</span>",
"className": "btn btn-white btn-primary btn-bold"
}, */
{
"extend": "print",
"text": "<i class='fa fa-print bigger-110 grey'></i> <span class='hidden'>打印</span>",
"className": "btn btn-white btn-primary btn-bold",
autoPrint: false
}
]
} );
myTable.buttons().container().appendTo( $('.tableTools-container') );
//style the message box
var defaultCopyAction = myTable.button(1).action();
myTable.button(1).action(function (e, dt, button, config) {
defaultCopyAction(e, dt, button, config);
$('.dt-button-info').addClass('gritter-item-wrapper gritter-info gritter-center white');
});
var defaultColvisAction = myTable.button(0).action();
myTable.button(0).action(function (e, dt, button, config) {
defaultColvisAction(e, dt, button, config);
if($('.dt-button-collection > .dropdown-menu').length == 0) {
$('.dt-button-collection')
.wrapInner('<ul class="dropdown-menu dropdown-light dropdown-caret dropdown-caret" />')
.find('a').attr('href', '#').wrap("<li />")
}
$('.dt-button-collection').appendTo('.tableTools-container .dt-buttons')
});
////
setTimeout(function() {
$($('.tableTools-container')).find('a.dt-button').each(function() {
var div = $(this).find(' > div').first();
if(div.length == 1) div.tooltip({container: 'body', title: div.parent().text()});
else $(this).tooltip({container: 'body', title: $(this).text()});
});
}, 500);
myTable.on( 'select', function ( e, dt, type, index ) {
if ( type === 'row' ) {
$( myTable.row( index ).node() ).find('input:checkbox').prop('checked', true);
}
} );
myTable.on( 'deselect', function ( e, dt, type, index ) {
if ( type === 'row' ) {
$( myTable.row( index ).node() ).find('input:checkbox').prop('checked', false);
}
} );
/////////////////////////////////
//table checkboxes
$('th input[type=checkbox], td input[type=checkbox]').prop('checked', false);
//select/deselect all rows according to table header checkbox
$('#dynamic-table > thead > tr > th input[type=checkbox], #dynamic-table_wrapper input[type=checkbox]').eq(0).on('click', function(){
var th_checked = this.checked;//checkbox inside "TH" table header
$('#dynamic-table').find('tbody > tr').each(function(){
var row = this;
if(th_checked) myTable.row(row).select();
else myTable.row(row).deselect();
});
});
//select/deselect a row when the checkbox is checked/unchecked
$('#dynamic-table').on('click', 'td input[type=checkbox]', function(){
var row = $(this).closest('tr').get(0);
if(this.checked) myTable.row(row).deselect();
else myTable.row(row).select();
});
$(document).on('click', '#dynamic-table .dropdown-toggle', function(e) {
e.stopImmediatePropagation();
e.stopPropagation();
e.preventDefault();
});
//And for the first simple table, which doesn't have TableTools or dataTables
//select/deselect all rows according to table header checkbox
var active_class = 'active';
$('#simple-table > thead > tr > th input[type=checkbox]').eq(0).on('click', function(){
var th_checked = this.checked;//checkbox inside "TH" table header
$(this).closest('table').find('tbody > tr').each(function(){
var row = this;
if(th_checked) $(row).addClass(active_class).find('input[type=checkbox]').eq(0).prop('checked', true);
else $(row).removeClass(active_class).find('input[type=checkbox]').eq(0).prop('checked', false);
});
});
//select/deselect a row when the checkbox is checked/unchecked
$('#simple-table').on('click', 'td input[type=checkbox]', function(){
var $row = $(this).closest('tr');
if($row.is('.detail-row ')) return;
if(this.checked) $row.addClass(active_class);
else $row.removeClass(active_class);
});
/********************************/
//add tooltip for small view action buttons in dropdown menu
$('[data-rel="tooltip"]').tooltip({placement: tooltip_placement});
//tooltip placement on right or left
function tooltip_placement(context, source) {
var $source = $(source);
var $parent = $source.closest('table')
var off1 = $parent.offset();
var w1 = $parent.width();
var off2 = $source.offset();
//var w2 = $source.width();
if( parseInt(off2.left) < parseInt(off1.left) + parseInt(w1 / 2) ) return 'right';
return 'left';
}
/***************/
$('.show-details-btn').on('click', function(e) {
e.preventDefault();
$(this).closest('tr').next().toggleClass('open');
$(this).find(ace.vars['.icon']).toggleClass('fa-angle-double-down').toggleClass('fa-angle-double-up');
});
/***************/
/**
//add horizontal scrollbars to a simple table
$('#simple-table').css({'width':'2000px', 'max-width': 'none'}).wrap('<div style="width: 1000px;" />').parent().ace_scroll(
{
horizontal: true,
styleClass: 'scroll-top scroll-dark scroll-visible',//show the scrollbars on top(default is bottom)
size: 2000,
mouseWheelLock: true
}
).css('padding-top', '12px');
*/
})
</script>
</body>
</html>

View file

@ -0,0 +1,648 @@
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<meta charset="utf-8" />
<title>查看供应商信息列表 - 医院药品库存管理系统</title>
<meta name="description" content="查看供应商信息列表 - 医院药品库存管理系统" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0" />
<!-- bootstrap & fontawesome -->
<link rel="stylesheet" href="../assets/css/bootstrap.min.css" />
<link rel="stylesheet" href="../assets/font-awesome/4.5.0/css/font-awesome.min.css" />
<!-- page specific plugin styles -->
<!-- text fonts -->
<link rel="stylesheet" href="../assets/css/fonts.googleapis.com.css" />
<!-- ace styles -->
<link rel="stylesheet" href="../assets/css/ace.min.css" class="ace-main-stylesheet" id="main-ace-style" />
<!--[if lte IE 9]>
<link rel="stylesheet" href="../assets/css/ace-part2.min.css" class="ace-main-stylesheet" />
<![endif]-->
<link rel="stylesheet" href="../assets/css/ace-skins.min.css" />
<link rel="stylesheet" href="../assets/css/ace-rtl.min.css" />
<!--[if lte IE 9]>
<link rel="stylesheet" href="../assets/css/ace-ie.min.css" />
<![endif]-->
<!-- inline styles related to this page -->
<!-- ace settings handler -->
<script src="../assets/js/ace-extra.min.js"></script>
<!-- HTML5shiv and Respond.js for IE8 to support HTML5 elements and media queries -->
<!--[if lte IE 8]>
<script src="../assets/js/html5shiv.min.js"></script>
<script src="../assets/js/respond.min.js"></script>
<![endif]-->
</head>
<body class="no-skin">
<div id="navbar" class="navbar navbar-default ace-save-state">
<div class="navbar-container ace-save-state" id="navbar-container">
<button type="button" class="navbar-toggle menu-toggler pull-left" id="menu-toggler" data-target="#sidebar">
<span class="sr-only">Toggle sidebar</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<div class="navbar-header pull-left">
<a href="../admin/index" class="navbar-brand">
<small>
<i class="fa fa-leaf"></i>
医院药品库存管理系统 DIMS
</small>
</a>
</div>
<div class="navbar-buttons navbar-header pull-right" role="navigation">
<ul class="nav ace-nav">
<li class="grey dropdown-modal">
<a data-toggle="dropdown" class="dropdown-toggle" href="#">
<i class="ace-icon fa fa-tasks"></i>
<span class="badge badge-grey">3</span>
</a>
<ul class="dropdown-menu-right dropdown-navbar dropdown-menu dropdown-caret dropdown-close">
<li class="dropdown-header">
<i class="ace-icon fa fa-check"></i>
统计信息
</li>
<li class="dropdown-content">
<ul class="dropdown-menu dropdown-navbar">
<li>
<a href="../admin/query-specific-admin?Ano=${currentAdmin.ano}">
<div class="clearfix">
<span class="pull-left">由我入库的药品总批数占比</span>
<span class="pull-right">
<fmt:formatNumber value="${myPDbatchesNum / (inventoryPDbatchesNum + destroyedPDbatchesNum) * 100}" pattern="#.00"/>
%
</span>
</div>
<div class="progress progress-mini progress-striped active">
<div style="width:${myPDbatchesNum / (inventoryPDbatchesNum + destroyedPDbatchesNum) * 100}%" class="progress-bar"></div>
</div>
</a>
</li>
<li>
<a href="../admin/query-specific-admin?Ano=${currentAdmin.ano}">
<div class="clearfix">
<span class="pull-left">由我入库的库存药品批数占比</span>
<span class="pull-right">
<fmt:formatNumber value="${myInventoryPDbatchesNum / inventoryPDbatchesNum * 100}" pattern="#.00"/>
%
</span>
</div>
<div class="progress progress-mini progress-striped active">
<div style="width:${myInventoryPDbatchesNum / inventoryPDbatchesNum * 100}%" class="progress-bar progress-bar-warning"></div>
</div>
</a>
</li>
<li>
<a href="../admin/query-specific-admin?Ano=${currentAdmin.ano}">
<div class="clearfix">
<span class="pull-left">由我销毁的药品批数占比</span>
<span class="pull-right">
<fmt:formatNumber value="${myDestroyedPDbatchesNum / destroyedPDbatchesNum * 100}" pattern="#.00"/>
%
</span>
</div>
<div class="progress progress-mini progress-striped active">
<div style="width:${myDestroyedPDbatchesNum / destroyedPDbatchesNum * 100}%" class="progress-bar progress-bar-success"></div>
</div>
</a>
</li>
</ul>
</li>
</ul>
</li>
<li class="green dropdown-modal">
<a data-toggle="dropdown" class="dropdown-toggle" href="#">
<i class="ace-icon fa fa-bell icon-animated-bell"></i>
<span class="badge badge-success">${lowInventoryDrugsNum + close2ExpiryPDbatchesNum}</span>
</a>
<ul class="dropdown-menu-right dropdown-navbar dropdown-menu dropdown-caret dropdown-close">
<li class="dropdown-header">
<i class="ace-icon fa fa-exclamation-triangle"></i>
警报
</li>
<li class="dropdown-content">
<ul class="dropdown-menu dropdown-navbar navbar-pink">
<li>
<a href="../admin/query-low-inventory-drug-list">
<div class="clearfix">
<span class="pull-left">
<i class="btn btn-xs no-hover btn-pink fa fa-comment"></i>
库存药品数量到达下限警报
</span>
<span class="pull-right badge badge-info">${lowInventoryDrugsNum}</span>
</div>
</a>
</li>
<li>
<a href="../admin/query-close-2-expiry-pdbatch-list">
<div class="clearfix">
<span class="pull-left">
<i class="btn btn-xs no-hover btn-success fa fa-shopping-cart"></i>
库存药品批次临期警报
</span>
<span class="pull-right badge badge-success">${close2ExpiryPDbatchesNum}</span>
</div>
</a>
</li>
</ul>
</li>
</ul>
</li>
<li class="light-blue dropdown-modal">
<a data-toggle="dropdown" href="#" class="dropdown-toggle">
<img class="nav-user-photo" src="../assets/images/avatars/Admin.png" alt="头像" />
<span class="user-info">
<small>欢迎,</small>
${currentAdmin.aname}
</span>
<i class="ace-icon fa fa-caret-down"></i>
</a>
<ul class="user-menu dropdown-menu-right dropdown-menu dropdown-yellow dropdown-caret dropdown-close">
<li>
<a href="../admin/profile">
<i class="ace-icon fa fa-user"></i>
个人信息
</a>
</li>
<li class="divider"></li>
<li>
<a href="../logout">
<i class="ace-icon fa fa-power-off"></i>
登出
</a>
</li>
</ul>
</li>
</ul>
</div>
</div><!-- /.navbar-container -->
</div>
<div class="main-container ace-save-state" id="main-container">
<script type="text/javascript">
try{ace.settings.loadState('main-container')}catch(e){}
</script>
<div id="sidebar" class="sidebar responsive ace-save-state">
<script type="text/javascript">
try{ace.settings.loadState('sidebar')}catch(e){}
</script>
<div class="sidebar-shortcuts" id="sidebar-shortcuts">
<div class="sidebar-shortcuts-large" id="sidebar-shortcuts-large">
<button class="btn btn-success">
<i class="ace-icon fa fa-signal"></i>
</button>
<button class="btn btn-info">
<i class="ace-icon fa fa-pencil"></i>
</button>
<button class="btn btn-warning">
<i class="ace-icon fa fa-users"></i>
</button>
<button class="btn btn-danger">
<i class="ace-icon fa fa-cogs"></i>
</button>
</div>
<div class="sidebar-shortcuts-mini" id="sidebar-shortcuts-mini">
<span class="btn btn-success"></span>
<span class="btn btn-info"></span>
<span class="btn btn-warning"></span>
<span class="btn btn-danger"></span>
</div>
</div><!-- /.sidebar-shortcuts -->
<ul class="nav nav-list">
<li class="">
<a href="../admin/welcome">
<i class="menu-icon fa fa-tachometer"></i>
<span class="menu-text"> 欢迎页面 </span>
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="../admin/profile">
<i class="menu-icon fa fa-tag"></i>
<span class="menu-text"> 个人信息页面 </span>
</a>
<b class="arrow"></b>
</li>
<li class="active">
<a href="../admin/query-supplier-list">
<i class="menu-icon fa fa-briefcase"></i>
<span class="menu-text"> 查看供应商信息列表 </span>
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="../admin/add-supplier-form">
<i class="menu-icon fa fa-desktop"></i>
<span class="menu-text"> 填写新增供应商表单 </span>
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="../admin/query-low-inventory-drug-list">
<i class="menu-icon fa fa-cogs"></i>
<span class="menu-text"> 查看库存紧张的药品 </span>
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="../admin/query-close-2-expiry-pdbatch-list">
<i class="menu-icon fa fa-exclamation-circle"></i>
<span class="menu-text"> 查看临期的药品批次 </span>
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="#" class="dropdown-toggle">
<i class="menu-icon fa fa-list"></i>
<span class="menu-text"> 查看药品库存信息 </span>
<b class="arrow fa fa-angle-down"></b>
</a>
<b class="arrow"></b>
<ul class="submenu">
<li class="">
<a href="../admin/query-drug-list">
<i class="menu-icon fa fa-caret-right"></i>
查看库存药品列表
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="../admin/query-pdbatch-list">
<i class="menu-icon fa fa-caret-right"></i>
查看库存药品批次明细
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="../admin/query-destroyed-pdbatch-list">
<i class="menu-icon fa fa-caret-right"></i>
查看已销毁药品批次列表
</a>
<b class="arrow"></b>
</li>
</ul>
</li>
<li class="">
<a href="../admin/add-storage-form">
<i class="menu-icon fa fa-pencil-square-o"></i>
<span class="menu-text"> 填写药品入库表单 </span>
</a>
<b class="arrow"></b>
</li>
</ul><!-- /.nav-list -->
<div class="sidebar-toggle sidebar-collapse" id="sidebar-collapse">
<i id="sidebar-toggle-icon" class="ace-icon fa fa-angle-double-left ace-save-state" data-icon1="ace-icon fa fa-angle-double-left" data-icon2="ace-icon fa fa-angle-double-right"></i>
</div>
</div>
<div class="main-content">
<div class="main-content-inner">
<div class="breadcrumbs ace-save-state" id="breadcrumbs">
<ul class="breadcrumb">
<li>
<i class="ace-icon fa fa-home home-icon"></i>
<a href="../admin/index">首页</a>
</li>
<li class="active">查看供应商信息列表</li>
</ul><!-- /.breadcrumb -->
</div>
<div class="page-content">
<div class="page-header">
<h1>
查看供应商信息列表
<small>
<i class="ace-icon fa fa-angle-double-right"></i>
供应商信息列表
</small>
</h1>
</div><!-- /.page-header -->
<c:choose>
<c:when test="${echo != null}">
<div class="alert alert-info">
<button class="close" data-dismiss="alert">
<i class="ace-icon fa fa-times"></i>
</button>
<i class="ace-icon fa fa-hand-o-right"></i>
${echo}
</div>
</c:when>
</c:choose>
<a href="../admin/add-supplier-form">
<button class="btn btn-sm btn-primary">
<i class="ace-icon fa fa-pencil-square-o bigger-110"></i>
添加供应商记录
<i class="ace-icon fa fa-arrow-right icon-on-right"></i>
</button>
</a>
<div class="row">
<div class="col-xs-12">
<!-- PAGE CONTENT BEGINS -->
<div class="row">
<div class="col-xs-12">
<div class="clearfix">
<div class="pull-right tableTools-container"></div>
</div>
<div class="table-header">
查询结果
</div>
<!-- div.table-responsive -->
<!-- div.dataTables_borderWrap -->
<div>
<table id="dynamic-table" class="table table-striped table-bordered table-hover">
<thead>
<tr>
<th>供应商编号</th>
<th>供应商名称</th>
<th>供应商地址</th>
<th>供应商电话</th>
<th>操作</th>
</tr>
</thead>
<tbody>
<c:forEach items="${suppliers}" var="supplier">
<tr>
<td>
<a href="../admin/query-specific-supplier?Sno=${supplier.sno}" title="查看该供应商的供货明细">${supplier.sno}</a>
</td>
<td>
<a href="../admin/query-specific-supplier?Sno=${supplier.sno}" title="查看该供应商的供货明细">${supplier.sname}</a>
</td>
<td>${supplier.saddr}</td>
<td>${supplier.sphone}</td>
<td>
<div class="hidden-sm hidden-xs action-buttons">
<a class="blue" href="../admin/query-specific-supplier?Sno=${supplier.sno}" title="查看该供应商的供货明细">
<i class="ace-icon fa fa-search-plus bigger-130"></i>
</a>
<a class="green" href="../admin/edit-supplier-form?Sno=${supplier.sno}" title="编辑该供应商的具体信息">
<i class="ace-icon fa fa-pencil bigger-130"></i>
</a>
</div>
<div class="hidden-md hidden-lg">
<div class="inline pos-rel">
<button class="btn btn-minier btn-yellow dropdown-toggle" data-toggle="dropdown" data-position="auto">
<i class="ace-icon fa fa-caret-down icon-only bigger-120"></i>
</button>
<ul class="dropdown-menu dropdown-only-icon dropdown-yellow dropdown-menu-right dropdown-caret dropdown-close">
<li>
<a href="../admin/query-specific-supplier?Sno=${supplier.sno}" class="tooltip-info" data-rel="tooltip" title="查看该供应商的供货明细">
<span class="blue">
<i class="ace-icon fa fa-search-plus bigger-120"></i>
</span>
</a>
</li>
<li>
<a href="../admin/edit-supplier-form?Sno=${supplier.sno}" class="tooltip-success" data-rel="tooltip" title="编辑该供应商的具体信息">
<span class="green">
<i class="ace-icon fa fa-pencil-square-o bigger-120"></i>
</span>
</a>
</li>
</ul>
</div>
</div>
</td>
</tr>
</c:forEach>
</tbody>
</table>
</div>
</div>
</div>
<!-- PAGE CONTENT ENDS -->
</div><!-- /.col -->
</div><!-- /.row -->
</div><!-- /.page-content -->
</div>
</div><!-- /.main-content -->
<div class="footer">
<div class="footer-inner">
<div class="footer-content">
<span class="bigger-120">
<span class="blue bolder">医院药品库存管理系统</span>
DIMS &copy; 2019-2020
</span>
</div>
</div>
</div>
<a href="#" id="btn-scroll-up" class="btn-scroll-up btn btn-sm btn-inverse">
<i class="ace-icon fa fa-angle-double-up icon-only bigger-110"></i>
</a>
</div><!-- /.main-container -->
<!-- basic scripts -->
<!--[if !IE]> -->
<script src="../assets/js/jquery-2.1.4.min.js"></script>
<!-- <![endif]-->
<!--[if IE]>
<script src="../assets/js/jquery-1.11.3.min.js"></script>
<![endif]-->
<script type="text/javascript">
if('ontouchstart' in document.documentElement) document.write("<script src='../assets/js/jquery.mobile.custom.min.js'>"+"<"+"/script>");
</script>
<script src="../assets/js/bootstrap.min.js"></script>
<!-- page specific plugin scripts -->
<script src="../assets/js/jquery.dataTables.min.js"></script>
<script src="../assets/js/jquery.dataTables.bootstrap.min.js"></script>
<script src="../assets/js/dataTables.buttons.min.js"></script>
<script src="../assets/js/buttons.flash.min.js"></script>
<script src="../assets/js/buttons.html5.min.js"></script>
<script src="../assets/js/buttons.print.min.js"></script>
<script src="../assets/js/buttons.colVis.min.js"></script>
<script src="../assets/js/dataTables.select.min.js"></script>
<!-- ace scripts -->
<script src="../assets/js/ace-elements.min.js"></script>
<script src="../assets/js/ace.min.js"></script>
<!-- inline scripts related to this page -->
<script type="text/javascript">
jQuery(function($) {
//initiate dataTables plugin
var myTable =
$('#dynamic-table')
//.wrap("<div class='dataTables_borderWrap' />") //if you are applying horizontal scrolling (sScrollX)
.DataTable( {
bAutoWidth: false,
"aoColumns": [
null, null, null, null, { "bSortable": false }
],
"aaSorting": [],
"iDisplayLength": 5,
"aLengthMenu": [
[5, 10, 15, 20, 25, 30, 35, 40, 45, 50, -1],
["5 条", "10 条", "15 条", "20 条", "25 条", "30 条", "35 条", "40 条", "45 条", "50 条", "全部"]
],
"oLanguage": { // 自定义提示信息
"sLengthMenu": "每页显示 _MENU_ 记录",
"sZeroRecords": "抱歉,没有找到",
"sInfo": "从 _START_ 到 _END_ / 共 _TOTAL_ 条数据 ",
"sInfoEmpty": "没有数据",
"sInfoFiltered": "(从 _MAX_ 条数据中检索) ",
"sSearch": "检索",
"oPaginate": {
"sFirst": "首页",
"sPrevious": "前一页",
"sNext": "后一页",
"sLast": "尾页"
}
}
//"bProcessing": true,
//"bServerSide": true,
//"sAjaxSource": "http://127.0.0.1/table.php" ,
//,
//"sScrollY": "200px",
//"bPaginate": false,
//"sScrollX": "100%",
//"sScrollXInner": "120%",
//"bScrollCollapse": true,
//Note: if you are applying horizontal scrolling (sScrollX) on a ".table-bordered"
//you may want to wrap the table inside a "div.dataTables_borderWrap" element
//"iDisplayLength": 50
} );
$.fn.dataTable.Buttons.defaults.dom.container.className = 'dt-buttons btn-overlap btn-group btn-overlap';
new $.fn.dataTable.Buttons( myTable, {
buttons: [
{
"extend": "colvis",
"text": "<i class='fa fa-search bigger-110 blue'></i> <span class='hidden'>显示/隐藏列</span>",
"className": "btn btn-white btn-primary btn-bold",
columns: ':not(:first):not(:last)'
},
{
"extend": "copy",
"text": "<i class='fa fa-copy bigger-110 pink'></i> <span class='hidden'>复制到剪贴板</span>",
"className": "btn btn-white btn-primary btn-bold"
},
{
"extend": "csv",
"text": "<i class='fa fa-database bigger-110 orange'></i> <span class='hidden'>导出到 CSV 文件</span>",
"className": "btn btn-white btn-primary btn-bold"
},
/* {
"extend": "excel",
"text": "<i class='fa fa-file-excel-o bigger-110 green'></i> <span class='hidden'>导出到 Excel 文件</span>",
"className": "btn btn-white btn-primary btn-bold"
},
{
"extend": "pdf",
"text": "<i class='fa fa-file-pdf-o bigger-110 red'></i> <span class='hidden'>导出到 PDF 文件</span>",
"className": "btn btn-white btn-primary btn-bold"
}, */
{
"extend": "print",
"text": "<i class='fa fa-print bigger-110 grey'></i> <span class='hidden'>打印</span>",
"className": "btn btn-white btn-primary btn-bold",
autoPrint: false
}
]
} );
myTable.buttons().container().appendTo( $('.tableTools-container') );
//style the message box
var defaultCopyAction = myTable.button(1).action();
myTable.button(1).action(function (e, dt, button, config) {
defaultCopyAction(e, dt, button, config);
$('.dt-button-info').addClass('gritter-item-wrapper gritter-info gritter-center white');
});
var defaultColvisAction = myTable.button(0).action();
myTable.button(0).action(function (e, dt, button, config) {
defaultColvisAction(e, dt, button, config);
if($('.dt-button-collection > .dropdown-menu').length == 0) {
$('.dt-button-collection')
.wrapInner('<ul class="dropdown-menu dropdown-light dropdown-caret dropdown-caret" />')
.find('a').attr('href', '#').wrap("<li />")
}
$('.dt-button-collection').appendTo('.tableTools-container .dt-buttons')
});
////
setTimeout(function() {
$($('.tableTools-container')).find('a.dt-button').each(function() {
var div = $(this).find(' > div').first();
if(div.length == 1) div.tooltip({container: 'body', title: div.parent().text()});
else $(this).tooltip({container: 'body', title: $(this).text()});
});
}, 500);
myTable.on( 'select', function ( e, dt, type, index ) {
if ( type === 'row' ) {
$( myTable.row( index ).node() ).find('input:checkbox').prop('checked', true);
}
} );
myTable.on( 'deselect', function ( e, dt, type, index ) {
if ( type === 'row' ) {
$( myTable.row( index ).node() ).find('input:checkbox').prop('checked', false);
}
} );
/////////////////////////////////
//table checkboxes
$('th input[type=checkbox], td input[type=checkbox]').prop('checked', false);
//select/deselect all rows according to table header checkbox
$('#dynamic-table > thead > tr > th input[type=checkbox], #dynamic-table_wrapper input[type=checkbox]').eq(0).on('click', function(){
var th_checked = this.checked;//checkbox inside "TH" table header
$('#dynamic-table').find('tbody > tr').each(function(){
var row = this;
if(th_checked) myTable.row(row).select();
else myTable.row(row).deselect();
});
});
//select/deselect a row when the checkbox is checked/unchecked
$('#dynamic-table').on('click', 'td input[type=checkbox]', function(){
var row = $(this).closest('tr').get(0);
if(this.checked) myTable.row(row).deselect();
else myTable.row(row).select();
});
$(document).on('click', '#dynamic-table .dropdown-toggle', function(e) {
e.stopImmediatePropagation();
e.stopPropagation();
e.preventDefault();
});
//And for the first simple table, which doesn't have TableTools or dataTables
//select/deselect all rows according to table header checkbox
var active_class = 'active';
$('#simple-table > thead > tr > th input[type=checkbox]').eq(0).on('click', function(){
var th_checked = this.checked;//checkbox inside "TH" table header
$(this).closest('table').find('tbody > tr').each(function(){
var row = this;
if(th_checked) $(row).addClass(active_class).find('input[type=checkbox]').eq(0).prop('checked', true);
else $(row).removeClass(active_class).find('input[type=checkbox]').eq(0).prop('checked', false);
});
});
//select/deselect a row when the checkbox is checked/unchecked
$('#simple-table').on('click', 'td input[type=checkbox]', function(){
var $row = $(this).closest('tr');
if($row.is('.detail-row ')) return;
if(this.checked) $row.addClass(active_class);
else $row.removeClass(active_class);
});
/********************************/
//add tooltip for small view action buttons in dropdown menu
$('[data-rel="tooltip"]').tooltip({placement: tooltip_placement});
//tooltip placement on right or left
function tooltip_placement(context, source) {
var $source = $(source);
var $parent = $source.closest('table')
var off1 = $parent.offset();
var w1 = $parent.width();
var off2 = $source.offset();
//var w2 = $source.width();
if( parseInt(off2.left) < parseInt(off1.left) + parseInt(w1 / 2) ) return 'right';
return 'left';
}
/***************/
$('.show-details-btn').on('click', function(e) {
e.preventDefault();
$(this).closest('tr').next().toggleClass('open');
$(this).find(ace.vars['.icon']).toggleClass('fa-angle-double-down').toggleClass('fa-angle-double-up');
});
/***************/
/**
//add horizontal scrollbars to a simple table
$('#simple-table').css({'width':'2000px', 'max-width': 'none'}).wrap('<div style="width: 1000px;" />').parent().ace_scroll(
{
horizontal: true,
styleClass: 'scroll-top scroll-dark scroll-visible',//show the scrollbars on top(default is bottom)
size: 2000,
mouseWheelLock: true
}
).css('padding-top', '12px');
*/
})
</script>
</body>
</html>

View file

@ -0,0 +1,836 @@
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<meta charset="utf-8" />
<title>新增一批${specificDrug.PDname} - 医院药品库存管理系统</title>
<meta name="description" content="新增一批${specificDrug.PDname} - 医院药品库存管理系统" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0" />
<!-- bootstrap & fontawesome -->
<link rel="stylesheet" href="../assets/css/bootstrap.min.css" />
<link rel="stylesheet" href="../assets/font-awesome/4.5.0/css/font-awesome.min.css" />
<!-- page specific plugin styles -->
<link rel="stylesheet" href="../assets/css/jquery-ui.custom.min.css" />
<link rel="stylesheet" href="../assets/css/chosen.min.css" />
<link rel="stylesheet" href="../assets/css/bootstrap-datepicker3.min.css" />
<link rel="stylesheet" href="../assets/css/bootstrap-timepicker.min.css" />
<link rel="stylesheet" href="../assets/css/daterangepicker.min.css" />
<link rel="stylesheet" href="../assets/css/bootstrap-datetimepicker.min.css" />
<link rel="stylesheet" href="../assets/css/bootstrap-colorpicker.min.css" />
<!-- text fonts -->
<link rel="stylesheet" href="../assets/css/fonts.googleapis.com.css" />
<!-- ace styles -->
<link rel="stylesheet" href="../assets/css/ace.min.css" class="ace-main-stylesheet" id="main-ace-style" />
<!--[if lte IE 9]>
<link rel="stylesheet" href="../assets/css/ace-part2.min.css" class="ace-main-stylesheet" />
<![endif]-->
<link rel="stylesheet" href="../assets/css/ace-skins.min.css" />
<link rel="stylesheet" href="../assets/css/ace-rtl.min.css" />
<!--[if lte IE 9]>
<link rel="stylesheet" href="../assets/css/ace-ie.min.css" />
<![endif]-->
<!-- inline styles related to this page -->
<!-- ace settings handler -->
<script src="../assets/js/ace-extra.min.js"></script>
<!-- HTML5shiv and Respond.js for IE8 to support HTML5 elements and media queries -->
<!--[if lte IE 8]>
<script src="../assets/js/html5shiv.min.js"></script>
<script src="../assets/js/respond.min.js"></script>
<![endif]-->
</head>
<body class="no-skin">
<div id="navbar" class="navbar navbar-default ace-save-state">
<div class="navbar-container ace-save-state" id="navbar-container">
<button type="button" class="navbar-toggle menu-toggler pull-left" id="menu-toggler" data-target="#sidebar">
<span class="sr-only">Toggle sidebar</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<div class="navbar-header pull-left">
<a href="index.html" class="navbar-brand">
<small>
<i class="fa fa-leaf"></i>
医院药品库存管理系统 DIMS
</small>
</a>
</div>
<div class="navbar-buttons navbar-header pull-right" role="navigation">
<ul class="nav ace-nav">
<li class="grey dropdown-modal">
<a data-toggle="dropdown" class="dropdown-toggle" href="#">
<i class="ace-icon fa fa-tasks"></i>
<span class="badge badge-grey">3</span>
</a>
<ul class="dropdown-menu-right dropdown-navbar dropdown-menu dropdown-caret dropdown-close">
<li class="dropdown-header">
<i class="ace-icon fa fa-check"></i>
统计信息
</li>
<li class="dropdown-content">
<ul class="dropdown-menu dropdown-navbar">
<li>
<a href="../admin/query-specific-admin?Ano=${currentAdmin.ano}">
<div class="clearfix">
<span class="pull-left">由我入库的药品总批数占比</span>
<span class="pull-right">
<fmt:formatNumber value="${myPDbatchesNum / (inventoryPDbatchesNum + destroyedPDbatchesNum) * 100}" pattern="#.00"/>
%
</span>
</div>
<div class="progress progress-mini progress-striped active">
<div style="width:${myPDbatchesNum / (inventoryPDbatchesNum + destroyedPDbatchesNum) * 100}%" class="progress-bar"></div>
</div>
</a>
</li>
<li>
<a href="../admin/query-specific-admin?Ano=${currentAdmin.ano}">
<div class="clearfix">
<span class="pull-left">由我入库的库存药品批数占比</span>
<span class="pull-right">
<fmt:formatNumber value="${myInventoryPDbatchesNum / inventoryPDbatchesNum * 100}" pattern="#.00"/>
%
</span>
</div>
<div class="progress progress-mini progress-striped active">
<div style="width:${myInventoryPDbatchesNum / inventoryPDbatchesNum * 100}%" class="progress-bar progress-bar-warning"></div>
</div>
</a>
</li>
<li>
<a href="../admin/query-specific-admin?Ano=${currentAdmin.ano}">
<div class="clearfix">
<span class="pull-left">由我销毁的药品批数占比</span>
<span class="pull-right">
<fmt:formatNumber value="${myDestroyedPDbatchesNum / destroyedPDbatchesNum * 100}" pattern="#.00"/>
%
</span>
</div>
<div class="progress progress-mini progress-striped active">
<div style="width:${myDestroyedPDbatchesNum / destroyedPDbatchesNum * 100}%" class="progress-bar progress-bar-success"></div>
</div>
</a>
</li>
</ul>
</li>
</ul>
</li>
<li class="green dropdown-modal">
<a data-toggle="dropdown" class="dropdown-toggle" href="#">
<i class="ace-icon fa fa-bell icon-animated-bell"></i>
<span class="badge badge-success">${lowInventoryDrugsNum + close2ExpiryPDbatchesNum}</span>
</a>
<ul class="dropdown-menu-right dropdown-navbar dropdown-menu dropdown-caret dropdown-close">
<li class="dropdown-header">
<i class="ace-icon fa fa-exclamation-triangle"></i>
警报
</li>
<li class="dropdown-content">
<ul class="dropdown-menu dropdown-navbar navbar-pink">
<li>
<a href="../admin/query-low-inventory-drug-list">
<div class="clearfix">
<span class="pull-left">
<i class="btn btn-xs no-hover btn-pink fa fa-comment"></i>
库存药品数量到达下限警报
</span>
<span class="pull-right badge badge-info">${lowInventoryDrugsNum}</span>
</div>
</a>
</li>
<li>
<a href="../admin/query-close-2-expiry-pdbatch-list">
<div class="clearfix">
<span class="pull-left">
<i class="btn btn-xs no-hover btn-success fa fa-shopping-cart"></i>
库存药品批次临期警报
</span>
<span class="pull-right badge badge-success">${close2ExpiryPDbatchesNum}</span>
</div>
</a>
</li>
</ul>
</li>
</ul>
</li>
<li class="light-blue dropdown-modal">
<a data-toggle="dropdown" href="#" class="dropdown-toggle">
<img class="nav-user-photo" src="../assets/images/avatars/Admin.png" alt="头像" />
<span class="user-info">
<small>欢迎,</small>
${currentAdmin.aname}
</span>
<i class="ace-icon fa fa-caret-down"></i>
</a>
<ul class="user-menu dropdown-menu-right dropdown-menu dropdown-yellow dropdown-caret dropdown-close">
<li>
<a href="../admin/profile">
<i class="ace-icon fa fa-user"></i>
个人信息
</a>
</li>
<li class="divider"></li>
<li>
<a href="../logout">
<i class="ace-icon fa fa-power-off"></i>
登出
</a>
</li>
</ul>
</li>
</ul>
</div>
</div><!-- /.navbar-container -->
</div>
<div class="main-container ace-save-state" id="main-container">
<script type="text/javascript">
try{ace.settings.loadState('main-container')}catch(e){}
</script>
<div id="sidebar" class="sidebar responsive ace-save-state">
<script type="text/javascript">
try{ace.settings.loadState('sidebar')}catch(e){}
</script>
<div class="sidebar-shortcuts" id="sidebar-shortcuts">
<div class="sidebar-shortcuts-large" id="sidebar-shortcuts-large">
<button class="btn btn-success">
<i class="ace-icon fa fa-signal"></i>
</button>
<button class="btn btn-info">
<i class="ace-icon fa fa-pencil"></i>
</button>
<button class="btn btn-warning">
<i class="ace-icon fa fa-users"></i>
</button>
<button class="btn btn-danger">
<i class="ace-icon fa fa-cogs"></i>
</button>
</div>
<div class="sidebar-shortcuts-mini" id="sidebar-shortcuts-mini">
<span class="btn btn-success"></span>
<span class="btn btn-info"></span>
<span class="btn btn-warning"></span>
<span class="btn btn-danger"></span>
</div>
</div><!-- /.sidebar-shortcuts -->
<ul class="nav nav-list">
<li class="">
<a href="../admin/welcome">
<i class="menu-icon fa fa-tachometer"></i>
<span class="menu-text"> 欢迎页面 </span>
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="../admin/profile">
<i class="menu-icon fa fa-tag"></i>
<span class="menu-text"> 个人信息页面 </span>
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="../admin/query-supplier-list">
<i class="menu-icon fa fa-briefcase"></i>
<span class="menu-text"> 查看供应商信息列表 </span>
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="../admin/add-supplier-form">
<i class="menu-icon fa fa-desktop"></i>
<span class="menu-text"> 填写新增供应商表单 </span>
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="../admin/query-low-inventory-drug-list">
<i class="menu-icon fa fa-cogs"></i>
<span class="menu-text"> 查看库存紧张的药品 </span>
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="../admin/query-close-2-expiry-pdbatch-list">
<i class="menu-icon fa fa-exclamation-circle"></i>
<span class="menu-text"> 查看临期的药品批次 </span>
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="#" class="dropdown-toggle">
<i class="menu-icon fa fa-list"></i>
<span class="menu-text"> 查看药品库存信息 </span>
<b class="arrow fa fa-angle-down"></b>
</a>
<b class="arrow"></b>
<ul class="submenu">
<li class="">
<a href="../admin/query-drug-list">
<i class="menu-icon fa fa-caret-right"></i>
查看库存药品列表
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="../admin/query-pdbatch-list">
<i class="menu-icon fa fa-caret-right"></i>
查看库存药品批次明细
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="../admin/query-destroyed-pdbatch-list">
<i class="menu-icon fa fa-caret-right"></i>
查看已销毁药品批次列表
</a>
<b class="arrow"></b>
</li>
</ul>
</li>
<li class="">
<a href="../admin/add-storage-form">
<i class="menu-icon fa fa-pencil-square-o"></i>
<span class="menu-text"> 填写药品入库表单 </span>
</a>
<b class="arrow"></b>
</li>
</ul><!-- /.nav-list -->
<div class="sidebar-toggle sidebar-collapse" id="sidebar-collapse">
<i id="sidebar-toggle-icon" class="ace-icon fa fa-angle-double-left ace-save-state" data-icon1="ace-icon fa fa-angle-double-left" data-icon2="ace-icon fa fa-angle-double-right"></i>
</div>
</div>
<div class="main-content">
<div class="main-content-inner">
<div class="breadcrumbs ace-save-state" id="breadcrumbs">
<ul class="breadcrumb">
<li>
<i class="ace-icon fa fa-home home-icon"></i>
<a href="../admin/index">首页</a>
</li>
<li class="active">新增一批${specificDrug.PDname}</li>
</ul><!-- /.breadcrumb -->
</div>
<div class="page-content">
<div class="page-header">
<h1>
新增一批${specificDrug.PDname}
<small>
<i class="ace-icon fa fa-angle-double-right"></i>
填写${specificDrug.PDname}入库表单
</small>
</h1>
</div><!-- /.page-header -->
<c:choose>
<c:when test="${echo != null}">
<div class="alert alert-info">
<button class="close" data-dismiss="alert">
<i class="ace-icon fa fa-times"></i>
</button>
<i class="ace-icon fa fa-hand-o-right"></i>
${echo}
</div>
</c:when>
</c:choose>
<div class="row">
<div class="col-xs-12">
<!-- PAGE CONTENT BEGINS -->
<form class="form-horizontal" role="form" method="post" action="../admin/submit-storage-form">
<div class="form-group">
<label class="col-sm-3 control-label no-padding-right" for="form-field-1"> 药品编号 (不可修改) </label>
<div class="col-sm-4">
<input class="form-control" id="form-field-1" type="text" readonly="readonly" placeholder="药品编号" name="PDno" value="${specificDrug.PDno}">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label no-padding-right" for="id-date-picker-1"> 药品批次 (生产时间)${type ? '' : ' (不可修改)'} </label>
<div class="col-sm-4">
<div class="input-group">
<input class="form-control date-picker" id="id-date-picker-1" name="tempPDbatch" type="text" placeholder="药品批次 (生产时间)" data-date-format="yyyy 年 mm 月 dd 日" required="required" />
<span class="input-group-addon">
<i class="fa fa-calendar bigger-110"></i>
</span>
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label no-padding-right" for="spinner1"> 药品数量 </label>
<div class="col-sm-4">
<input type="text" id="spinner1" name="PDnum" placeholder="药品数量" required="required" />
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label no-padding-right" for="form-field-4"> 药品供应商 </label>
<div class="col-sm-4">
<select class="chosen-select form-control" id="form-field-4" name="Sno" data-placeholder="选择药品供应商..." required="required">
<option value=""></option>
<c:forEach items="${suppliers}" var="supplier">
<option value="${supplier.sno}">${supplier.sname}</option>
</c:forEach>
</select>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label no-padding-right" for="form-field-5"> 入库库存管理员 </label>
<div class="col-sm-4">
<select class="chosen-select form-control" id="form-field-5" name="SAno" data-placeholder="选择入库库存管理员..." required="required">
<option value=""></option>
<c:forEach items="${admins}" var="admin">
<option value="${admin.ano}">${admin.ano} ${admin.aname}</option>
</c:forEach>
</select>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label no-padding-right" for="id-date-picker-2"> 药品入库日期 </label>
<div class="col-sm-4">
<div class="input-group">
<input class="form-control date-picker" id="id-date-picker-2" name="tempSdate" value="<fmt:formatDate value="${pdbatch.stime}" pattern="yyyy 年 MM 月 dd 日"/>" type="text" placeholder="药品入库日期" data-date-format="yyyy 年 mm 月 dd 日" required="required" />
<span class="input-group-addon">
<i class="fa fa-calendar bigger-110"></i>
</span>
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label no-padding-right" for="timepicker1"> 药品入库时间 </label>
<div class="col-sm-4">
<div class="input-group">
<input id="timepicker1" name="tempStime" value="<fmt:formatDate value="${pdbatch.stime}" pattern="HH:mm:ss"/>" type="text" class="form-control" placeholder="药品入库时间" required="required" />
<span class="input-group-addon">
<i class="fa fa-clock-o bigger-110"></i>
</span>
</div>
</div>
</div>
<div class="clearfix form-actions">
<div class="col-md-offset-3 col-md-9">
<button class="btn btn-info" type="submit">
<i class="ace-icon fa fa-check bigger-110"></i>
提交
</button>
&nbsp; &nbsp; &nbsp;
<button class="btn" type="reset">
<i class="ace-icon fa fa-undo bigger-110"></i>
重置
</button>
</div>
</div>
</form>
<!-- PAGE CONTENT ENDS -->
</div><!-- /.col -->
</div><!-- /.row -->
</div><!-- /.page-content -->
</div>
</div><!-- /.main-content -->
<div class="footer">
<div class="footer-inner">
<div class="footer-content">
<span class="bigger-120">
<span class="blue bolder">医院药品库存管理系统</span>
DIMS &copy; 2019-2020
</span>
</div>
</div>
</div>
<a href="#" id="btn-scroll-up" class="btn-scroll-up btn btn-sm btn-inverse">
<i class="ace-icon fa fa-angle-double-up icon-only bigger-110"></i>
</a>
</div><!-- /.main-container -->
<!-- basic scripts -->
<!--[if !IE]> -->
<script src="../assets/js/jquery-2.1.4.min.js"></script>
<!-- <![endif]-->
<!--[if IE]>
<script src="../assets/js/jquery-1.11.3.min.js"></script>
<![endif]-->
<script type="text/javascript">
if('ontouchstart' in document.documentElement) document.write("<script src='assets/js/jquery.mobile.custom.min.js'>"+"<"+"/script>");
</script>
<script src="../assets/js/bootstrap.min.js"></script>
<!-- page specific plugin scripts -->
<!--[if lte IE 8]>
<script src="../assets/js/excanvas.min.js"></script>
<![endif]-->
<script src="../assets/js/jquery-ui.custom.min.js"></script>
<script src="../assets/js/jquery.ui.touch-punch.min.js"></script>
<script src="../assets/js/chosen.jquery.min.js"></script>
<script src="../assets/js/spinbox.min.js"></script>
<script src="../assets/js/bootstrap-datepicker.min.js"></script>
<script src="../assets/js/bootstrap-timepicker.min.js"></script>
<script src="../assets/js/moment.min.js"></script>
<script src="../assets/js/daterangepicker.min.js"></script>
<script src="../assets/js/bootstrap-datetimepicker.min.js"></script>
<script src="../assets/js/bootstrap-colorpicker.min.js"></script>
<script src="../assets/js/jquery.knob.min.js"></script>
<script src="../assets/js/autosize.min.js"></script>
<script src="../assets/js/jquery.inputlimiter.min.js"></script>
<script src="../assets/js/jquery.maskedinput.min.js"></script>
<script src="../assets/js/bootstrap-tag.min.js"></script>
<!-- ace scripts -->
<script src="../assets/js/ace-elements.min.js"></script>
<script src="../assets/js/ace.min.js"></script>
<!-- inline scripts related to this page -->
<script type="text/javascript">
jQuery(function($) {
$('#id-disable-check').on('click', function() {
var inp = $('#form-input-readonly').get(0);
if(inp.hasAttribute('disabled')) {
inp.setAttribute('readonly', 'true');
inp.removeAttribute('disabled');
inp.value="This text field is readonly!";
}
else {
inp.setAttribute('disabled', 'disabled');
inp.removeAttribute('readonly');
inp.value="This text field is disabled!";
}
});
if(!ace.vars['touch']) {
$('.chosen-select').chosen({allow_single_deselect:true});
//resize the chosen on window resize
$(window)
.off('resize.chosen')
.on('resize.chosen', function() {
$('.chosen-select').each(function() {
var $this = $(this);
$this.next().css({'width': $this.parent().width()});
})
}).trigger('resize.chosen');
//resize chosen on sidebar collapse/expand
$(document).on('settings.ace.chosen', function(e, event_name, event_val) {
if(event_name != 'sidebar_collapsed') return;
$('.chosen-select').each(function() {
var $this = $(this);
$this.next().css({'width': $this.parent().width()});
})
});
$('#chosen-multiple-style .btn').on('click', function(e){
var target = $(this).find('input[type=radio]');
var which = parseInt(target.val());
if(which == 2) $('#form-field-select-4').addClass('tag-input-style');
else $('#form-field-select-4').removeClass('tag-input-style');
});
}
$('[data-rel=tooltip]').tooltip({container:'body'});
$('[data-rel=popover]').popover({container:'body'});
autosize($('textarea[class*=autosize]'));
$('textarea.limited').inputlimiter({
remText: '%n character%s remaining...',
limitText: 'max allowed : %n.'
});
$.mask.definitions['~']='[+-]';
$('.input-mask-date').mask('99/99/9999');
$('.input-mask-phone').mask('(999) 999-9999');
$('.input-mask-eyescript').mask('~9.99 ~9.99 999');
$(".input-mask-product").mask("a*-999-a999",{placeholder:" ",completed:function(){alert("You typed the following: "+this.val());}});
$( "#input-size-slider" ).css('width','200px').slider({
value:1,
range: "min",
min: 1,
max: 8,
step: 1,
slide: function( event, ui ) {
var sizing = ['', 'input-sm', 'input-lg', 'input-mini', 'input-small', 'input-medium', 'input-large', 'input-xlarge', 'input-xxlarge'];
var val = parseInt(ui.value);
$('#form-field-4').attr('class', sizing[val]).attr('placeholder', '.'+sizing[val]);
}
});
$( "#input-span-slider" ).slider({
value:1,
range: "min",
min: 1,
max: 12,
step: 1,
slide: function( event, ui ) {
var val = parseInt(ui.value);
$('#form-field-5').attr('class', 'col-xs-'+val).val('.col-xs-'+val);
}
});
//"jQuery UI Slider"
//range slider tooltip example
$( "#slider-range" ).css('height','200px').slider({
orientation: "vertical",
range: true,
min: 0,
max: 100,
values: [ 17, 67 ],
slide: function( event, ui ) {
var val = ui.values[$(ui.handle).index()-1] + "";
if( !ui.handle.firstChild ) {
$("<div class='tooltip right in' style='display:none;left:16px;top:-6px;'><div class='tooltip-arrow'></div><div class='tooltip-inner'></div></div>")
.prependTo(ui.handle);
}
$(ui.handle.firstChild).show().children().eq(1).text(val);
}
}).find('span.ui-slider-handle').on('blur', function(){
$(this.firstChild).hide();
});
$( "#slider-range-max" ).slider({
range: "max",
min: 1,
max: 10,
value: 2
});
$( "#slider-eq > span" ).css({width:'90%', 'float':'left', margin:'15px'}).each(function() {
// read initial values from markup and remove that
var value = parseInt( $( this ).text(), 10 );
$( this ).empty().slider({
value: value,
range: "min",
animate: true
});
});
$("#slider-eq > span.ui-slider-purple").slider('disable');//disable third item
$('#id-input-file-1, #id-input-file-2').ace_file_input({
no_file:'No File ...',
btn_choose:'Choose',
btn_change:'Change',
droppable:false,
onchange:null,
thumbnail:false //| true | large
//whitelist:'gif|png|jpg|jpeg'
//blacklist:'exe|php'
//onchange:''
//
});
//pre-show a file name, for example a previously selected file
//$('#id-input-file-1').ace_file_input('show_file_list', ['myfile.txt'])
$('#id-input-file-3').ace_file_input({
style: 'well',
btn_choose: 'Drop files here or click to choose',
btn_change: null,
no_icon: 'ace-icon fa fa-cloud-upload',
droppable: true,
thumbnail: 'small'//large | fit
//,icon_remove:null//set null, to hide remove/reset button
/**,before_change:function(files, dropped) {
//Check an example below
//or examples/file-upload.html
return true;
}*/
/**,before_remove : function() {
return true;
}*/
,
preview_error : function(filename, error_code) {
//name of the file that failed
//error_code values
//1 = 'FILE_LOAD_FAILED',
//2 = 'IMAGE_LOAD_FAILED',
//3 = 'THUMBNAIL_FAILED'
//alert(error_code);
}
}).on('change', function(){
//console.log($(this).data('ace_input_files'));
//console.log($(this).data('ace_input_method'));
});
//$('#id-input-file-3')
//.ace_file_input('show_file_list', [
//{type: 'image', name: 'name of image', path: 'http://path/to/image/for/preview'},
//{type: 'file', name: 'hello.txt'}
//]);
//dynamically change allowed formats by changing allowExt && allowMime function
$('#id-file-format').removeAttr('checked').on('change', function() {
var whitelist_ext, whitelist_mime;
var btn_choose
var no_icon
if(this.checked) {
btn_choose = "Drop images here or click to choose";
no_icon = "ace-icon fa fa-picture-o";
whitelist_ext = ["jpeg", "jpg", "png", "gif", "bmp"];
whitelist_mime = ["image/jpg", "image/jpeg", "image/png", "image/gif", "image/bmp"];
}
else {
btn_choose = "Drop files here or click to choose";
no_icon = "ace-icon fa fa-cloud-upload";
whitelist_ext = null;//all extensions are acceptable
whitelist_mime = null;//all mimes are acceptable
}
var file_input = $('#id-input-file-3');
file_input
.ace_file_input('update_settings',
{
'btn_choose': btn_choose,
'no_icon': no_icon,
'allowExt': whitelist_ext,
'allowMime': whitelist_mime
})
file_input.ace_file_input('reset_input');
file_input
.off('file.error.ace')
.on('file.error.ace', function(e, info) {
//console.log(info.file_count);//number of selected files
//console.log(info.invalid_count);//number of invalid files
//console.log(info.error_list);//a list of errors in the following format
//info.error_count['ext']
//info.error_count['mime']
//info.error_count['size']
//info.error_list['ext'] = [list of file names with invalid extension]
//info.error_list['mime'] = [list of file names with invalid mimetype]
//info.error_list['size'] = [list of file names with invalid size]
/**
if( !info.dropped ) {
//perhapse reset file field if files have been selected, and there are invalid files among them
//when files are dropped, only valid files will be added to our file array
e.preventDefault();//it will rest input
}
*/
//if files have been selected (not dropped), you can choose to reset input
//because browser keeps all selected files anyway and this cannot be changed
//we can only reset file field to become empty again
//on any case you still should check files with your server side script
//because any arbitrary file can be uploaded by user and it's not safe to rely on browser-side measures
});
/**
file_input
.off('file.preview.ace')
.on('file.preview.ace', function(e, info) {
console.log(info.file.width);
console.log(info.file.height);
e.preventDefault();//to prevent preview
});
*/
});
$('#spinner1').ace_spinner({value:1, min:1, max:10000, step:100, btn_up_class:'btn-info', btn_down_class:'btn-info'})
.closest('.ace-spinner')
.on('changed.fu.spinbox', function(){
//console.log($('#spinner1').val())
});
$('#spinner2').ace_spinner({value:0, min:0, max:10000, step:100, touch_spinner: true, icon_up:'ace-icon fa fa-caret-up bigger-110', icon_down:'ace-icon fa fa-caret-down bigger-110'});
$('#spinner3').ace_spinner({value:0, min:-100, max:100, step:10, on_sides: true, icon_up:'ace-icon fa fa-plus bigger-110', icon_down:'ace-icon fa fa-minus bigger-110', btn_up_class:'btn-success', btn_down_class:'btn-danger'});
$('#spinner4').ace_spinner({value:0, min:-100, max:100, step:10, on_sides: true, icon_up:'ace-icon fa fa-plus', icon_down:'ace-icon fa fa-minus', btn_up_class:'btn-purple', btn_down_class:'btn-purple'});
//$('#spinner1').ace_spinner('disable').ace_spinner('value', 11);
//or
//$('#spinner1').closest('.ace-spinner').spinner('disable').spinner('enable').spinner('value', 11);//disable, enable or change value
//$('#spinner1').closest('.ace-spinner').spinner('value', 0);//reset to 0
//datepicker plugin
//link
$('.date-picker').datepicker({
autoclose: true,
todayHighlight: true
})
//show datepicker when clicking on the icon
.next().on(ace.click_event, function(){
$(this).prev().focus();
});
//or change it into a date range picker
$('.input-daterange').datepicker({autoclose:true});
//to translate the daterange picker, please copy the "examples/daterange-fr.js" contents here before initialization
$('input[name=date-range-picker]').daterangepicker({
'applyClass' : 'btn-sm btn-success',
'cancelClass' : 'btn-sm btn-default',
locale: {
applyLabel: 'Apply',
cancelLabel: 'Cancel',
}
})
.prev().on(ace.click_event, function(){
$(this).next().focus();
});
$('#timepicker1').timepicker({
minuteStep: 1,
showSeconds: true,
showMeridian: false,
disableFocus: true,
icons: {
up: 'fa fa-chevron-up',
down: 'fa fa-chevron-down'
}
}).on('focus', function() {
$('#timepicker1').timepicker('showWidget');
}).next().on(ace.click_event, function(){
$(this).prev().focus();
});
if(!ace.vars['old_ie']) $('#date-timepicker1').datetimepicker({
//format: 'MM/DD/YYYY h:mm:ss A',//use this option to display seconds
icons: {
time: 'fa fa-clock-o',
date: 'fa fa-calendar',
up: 'fa fa-chevron-up',
down: 'fa fa-chevron-down',
previous: 'fa fa-chevron-left',
next: 'fa fa-chevron-right',
today: 'fa fa-arrows ',
clear: 'fa fa-trash',
close: 'fa fa-times'
}
}).next().on(ace.click_event, function(){
$(this).prev().focus();
});
$('#colorpicker1').colorpicker();
//$('.colorpicker').last().css('z-index', 2000);//if colorpicker is inside a modal, its z-index should be higher than modal'safe
$('#simple-colorpicker-1').ace_colorpicker();
//$('#simple-colorpicker-1').ace_colorpicker('pick', 2);//select 2nd color
//$('#simple-colorpicker-1').ace_colorpicker('pick', '#fbe983');//select #fbe983 color
//var picker = $('#simple-colorpicker-1').data('ace_colorpicker')
//picker.pick('red', true);//insert the color if it doesn't exist
$(".knob").knob();
var tag_input = $('#form-field-tags');
try{
tag_input.tag(
{
placeholder:tag_input.attr('placeholder'),
//enable typeahead by specifying the source array
source: ace.vars['US_STATES'],//defined in ace.js >> ace.enable_search_ahead
/**
//or fetch data from database, fetch those that match "query"
source: function(query, process) {
$.ajax({url: 'remote_source.php?q='+encodeURIComponent(query)})
.done(function(result_items){
process(result_items);
});
}
*/
}
)
//programmatically add/remove a tag
var $tag_obj = $('#form-field-tags').data('tag');
$tag_obj.add('Programmatically Added');
var index = $tag_obj.inValues('some tag');
$tag_obj.remove(index);
}
catch(e) {
//display a textarea for old IE, because it doesn't support this plugin or another one I tried!
tag_input.after('<textarea id="'+tag_input.attr('id')+'" name="'+tag_input.attr('name')+'" rows="3">'+tag_input.val()+'</textarea>').remove();
//autosize($('#form-field-tags'));
}
/////////
$('#modal-form input[type=file]').ace_file_input({
style:'well',
btn_choose:'Drop files here or click to choose',
btn_change:null,
no_icon:'ace-icon fa fa-cloud-upload',
droppable:true,
thumbnail:'large'
})
//chosen plugin inside a modal will have a zero width because the select element is originally hidden
//and its width cannot be determined.
//so we set the width after modal is show
$('#modal-form').on('shown.bs.modal', function () {
if(!ace.vars['touch']) {
$(this).find('.chosen-container').each(function(){
$(this).find('a:first-child').css('width', '210px');
$(this).find('.chosen-drop').css('width', '210px');
$(this).find('.chosen-search input').css('width', '200px');
});
}
})
/**
//or you can activate the chosen plugin after modal is shown
//this way select element becomes visible with dimensions and chosen works as expected
$('#modal-form').on('shown', function () {
$(this).find('.modal-chosen').chosen();
})
*/
$(document).one('ajaxloadstart.page', function(e) {
autosize.destroy('textarea[class*=autosize]')
$('.limiterBox,.autosizejs').remove();
$('.daterangepicker.dropdown-menu,.colorpicker.dropdown-menu,.bootstrap-datetimepicker-widget.dropdown-menu').remove();
});
});
</script>
</body>
</html>

View file

@ -0,0 +1,855 @@
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<meta charset="utf-8" />
<title>${type ? '新增' : '修改'}药品批次信息 - 医院药品库存管理系统</title>
<meta name="description" content="${type ? '新增' : '修改'}药品批次信息 - 医院药品库存管理系统" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0" />
<!-- bootstrap & fontawesome -->
<link rel="stylesheet" href="../assets/css/bootstrap.min.css" />
<link rel="stylesheet" href="../assets/font-awesome/4.5.0/css/font-awesome.min.css" />
<!-- page specific plugin styles -->
<link rel="stylesheet" href="../assets/css/jquery-ui.custom.min.css" />
<link rel="stylesheet" href="../assets/css/chosen.min.css" />
<link rel="stylesheet" href="../assets/css/bootstrap-datepicker3.min.css" />
<link rel="stylesheet" href="../assets/css/bootstrap-timepicker.min.css" />
<link rel="stylesheet" href="../assets/css/daterangepicker.min.css" />
<link rel="stylesheet" href="../assets/css/bootstrap-datetimepicker.min.css" />
<link rel="stylesheet" href="../assets/css/bootstrap-colorpicker.min.css" />
<!-- text fonts -->
<link rel="stylesheet" href="../assets/css/fonts.googleapis.com.css" />
<!-- ace styles -->
<link rel="stylesheet" href="../assets/css/ace.min.css" class="ace-main-stylesheet" id="main-ace-style" />
<!--[if lte IE 9]>
<link rel="stylesheet" href="../assets/css/ace-part2.min.css" class="ace-main-stylesheet" />
<![endif]-->
<link rel="stylesheet" href="../assets/css/ace-skins.min.css" />
<link rel="stylesheet" href="../assets/css/ace-rtl.min.css" />
<!--[if lte IE 9]>
<link rel="stylesheet" href="../assets/css/ace-ie.min.css" />
<![endif]-->
<!-- inline styles related to this page -->
<!-- ace settings handler -->
<script src="../assets/js/ace-extra.min.js"></script>
<!-- HTML5shiv and Respond.js for IE8 to support HTML5 elements and media queries -->
<!--[if lte IE 8]>
<script src="../assets/js/html5shiv.min.js"></script>
<script src="../assets/js/respond.min.js"></script>
<![endif]-->
</head>
<body class="no-skin">
<div id="navbar" class="navbar navbar-default ace-save-state">
<div class="navbar-container ace-save-state" id="navbar-container">
<button type="button" class="navbar-toggle menu-toggler pull-left" id="menu-toggler" data-target="#sidebar">
<span class="sr-only">Toggle sidebar</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<div class="navbar-header pull-left">
<a href="index.html" class="navbar-brand">
<small>
<i class="fa fa-leaf"></i>
医院药品库存管理系统 DIMS
</small>
</a>
</div>
<div class="navbar-buttons navbar-header pull-right" role="navigation">
<ul class="nav ace-nav">
<li class="grey dropdown-modal">
<a data-toggle="dropdown" class="dropdown-toggle" href="#">
<i class="ace-icon fa fa-tasks"></i>
<span class="badge badge-grey">3</span>
</a>
<ul class="dropdown-menu-right dropdown-navbar dropdown-menu dropdown-caret dropdown-close">
<li class="dropdown-header">
<i class="ace-icon fa fa-check"></i>
统计信息
</li>
<li class="dropdown-content">
<ul class="dropdown-menu dropdown-navbar">
<li>
<a href="../admin/query-specific-admin?Ano=${currentAdmin.ano}">
<div class="clearfix">
<span class="pull-left">由我入库的药品总批数占比</span>
<span class="pull-right">
<fmt:formatNumber value="${myPDbatchesNum / (inventoryPDbatchesNum + destroyedPDbatchesNum) * 100}" pattern="#.00"/>
%
</span>
</div>
<div class="progress progress-mini progress-striped active">
<div style="width:${myPDbatchesNum / (inventoryPDbatchesNum + destroyedPDbatchesNum) * 100}%" class="progress-bar"></div>
</div>
</a>
</li>
<li>
<a href="../admin/query-specific-admin?Ano=${currentAdmin.ano}">
<div class="clearfix">
<span class="pull-left">由我入库的库存药品批数占比</span>
<span class="pull-right">
<fmt:formatNumber value="${myInventoryPDbatchesNum / inventoryPDbatchesNum * 100}" pattern="#.00"/>
%
</span>
</div>
<div class="progress progress-mini progress-striped active">
<div style="width:${myInventoryPDbatchesNum / inventoryPDbatchesNum * 100}%" class="progress-bar progress-bar-warning"></div>
</div>
</a>
</li>
<li>
<a href="../admin/query-specific-admin?Ano=${currentAdmin.ano}">
<div class="clearfix">
<span class="pull-left">由我销毁的药品批数占比</span>
<span class="pull-right">
<fmt:formatNumber value="${myDestroyedPDbatchesNum / destroyedPDbatchesNum * 100}" pattern="#.00"/>
%
</span>
</div>
<div class="progress progress-mini progress-striped active">
<div style="width:${myDestroyedPDbatchesNum / destroyedPDbatchesNum * 100}%" class="progress-bar progress-bar-success"></div>
</div>
</a>
</li>
</ul>
</li>
</ul>
</li>
<li class="green dropdown-modal">
<a data-toggle="dropdown" class="dropdown-toggle" href="#">
<i class="ace-icon fa fa-bell icon-animated-bell"></i>
<span class="badge badge-success">${lowInventoryDrugsNum + close2ExpiryPDbatchesNum}</span>
</a>
<ul class="dropdown-menu-right dropdown-navbar dropdown-menu dropdown-caret dropdown-close">
<li class="dropdown-header">
<i class="ace-icon fa fa-exclamation-triangle"></i>
警报
</li>
<li class="dropdown-content">
<ul class="dropdown-menu dropdown-navbar navbar-pink">
<li>
<a href="../admin/query-low-inventory-drug-list">
<div class="clearfix">
<span class="pull-left">
<i class="btn btn-xs no-hover btn-pink fa fa-comment"></i>
库存药品数量到达下限警报
</span>
<span class="pull-right badge badge-info">${lowInventoryDrugsNum}</span>
</div>
</a>
</li>
<li>
<a href="../admin/query-close-2-expiry-pdbatch-list">
<div class="clearfix">
<span class="pull-left">
<i class="btn btn-xs no-hover btn-success fa fa-shopping-cart"></i>
库存药品批次临期警报
</span>
<span class="pull-right badge badge-success">${close2ExpiryPDbatchesNum}</span>
</div>
</a>
</li>
</ul>
</li>
</ul>
</li>
<li class="light-blue dropdown-modal">
<a data-toggle="dropdown" href="#" class="dropdown-toggle">
<img class="nav-user-photo" src="../assets/images/avatars/Admin.png" alt="头像" />
<span class="user-info">
<small>欢迎,</small>
${currentAdmin.aname}
</span>
<i class="ace-icon fa fa-caret-down"></i>
</a>
<ul class="user-menu dropdown-menu-right dropdown-menu dropdown-yellow dropdown-caret dropdown-close">
<li>
<a href="../admin/profile">
<i class="ace-icon fa fa-user"></i>
个人信息
</a>
</li>
<li class="divider"></li>
<li>
<a href="../logout">
<i class="ace-icon fa fa-power-off"></i>
登出
</a>
</li>
</ul>
</li>
</ul>
</div>
</div><!-- /.navbar-container -->
</div>
<div class="main-container ace-save-state" id="main-container">
<script type="text/javascript">
try{ace.settings.loadState('main-container')}catch(e){}
</script>
<div id="sidebar" class="sidebar responsive ace-save-state">
<script type="text/javascript">
try{ace.settings.loadState('sidebar')}catch(e){}
</script>
<div class="sidebar-shortcuts" id="sidebar-shortcuts">
<div class="sidebar-shortcuts-large" id="sidebar-shortcuts-large">
<button class="btn btn-success">
<i class="ace-icon fa fa-signal"></i>
</button>
<button class="btn btn-info">
<i class="ace-icon fa fa-pencil"></i>
</button>
<button class="btn btn-warning">
<i class="ace-icon fa fa-users"></i>
</button>
<button class="btn btn-danger">
<i class="ace-icon fa fa-cogs"></i>
</button>
</div>
<div class="sidebar-shortcuts-mini" id="sidebar-shortcuts-mini">
<span class="btn btn-success"></span>
<span class="btn btn-info"></span>
<span class="btn btn-warning"></span>
<span class="btn btn-danger"></span>
</div>
</div><!-- /.sidebar-shortcuts -->
<ul class="nav nav-list">
<li class="">
<a href="../admin/welcome">
<i class="menu-icon fa fa-tachometer"></i>
<span class="menu-text"> 欢迎页面 </span>
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="../admin/profile">
<i class="menu-icon fa fa-tag"></i>
<span class="menu-text"> 个人信息页面 </span>
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="../admin/query-supplier-list">
<i class="menu-icon fa fa-briefcase"></i>
<span class="menu-text"> 查看供应商信息列表 </span>
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="../admin/add-supplier-form">
<i class="menu-icon fa fa-desktop"></i>
<span class="menu-text"> 填写新增供应商表单 </span>
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="../admin/query-low-inventory-drug-list">
<i class="menu-icon fa fa-cogs"></i>
<span class="menu-text"> 查看库存紧张的药品 </span>
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="../admin/query-close-2-expiry-pdbatch-list">
<i class="menu-icon fa fa-exclamation-circle"></i>
<span class="menu-text"> 查看临期的药品批次 </span>
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="#" class="dropdown-toggle">
<i class="menu-icon fa fa-list"></i>
<span class="menu-text"> 查看药品库存信息 </span>
<b class="arrow fa fa-angle-down"></b>
</a>
<b class="arrow"></b>
<ul class="submenu">
<li class="">
<a href="../admin/query-drug-list">
<i class="menu-icon fa fa-caret-right"></i>
查看库存药品列表
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="../admin/query-pdbatch-list">
<i class="menu-icon fa fa-caret-right"></i>
查看库存药品批次明细
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="../admin/query-destroyed-pdbatch-list">
<i class="menu-icon fa fa-caret-right"></i>
查看已销毁药品批次列表
</a>
<b class="arrow"></b>
</li>
</ul>
</li>
<li class="${type ? 'active' : ''}">
<a href="../admin/add-storage-form">
<i class="menu-icon fa fa-pencil-square-o"></i>
<span class="menu-text"> 填写药品入库表单 </span>
</a>
<b class="arrow"></b>
</li>
</ul><!-- /.nav-list -->
<div class="sidebar-toggle sidebar-collapse" id="sidebar-collapse">
<i id="sidebar-toggle-icon" class="ace-icon fa fa-angle-double-left ace-save-state" data-icon1="ace-icon fa fa-angle-double-left" data-icon2="ace-icon fa fa-angle-double-right"></i>
</div>
</div>
<div class="main-content">
<div class="main-content-inner">
<div class="breadcrumbs ace-save-state" id="breadcrumbs">
<ul class="breadcrumb">
<li>
<i class="ace-icon fa fa-home home-icon"></i>
<a href="../admin/index">首页</a>
</li>
<li class="active">${type ? '新增' : '修改'}药品批次信息</li>
</ul><!-- /.breadcrumb -->
</div>
<div class="page-content">
<div class="page-header">
<h1>
${type ? '新增' : '修改'}药品批次信息
<small>
<i class="ace-icon fa fa-angle-double-right"></i>
${type ? '填写' : '修改'}药品入库表单
</small>
</h1>
</div><!-- /.page-header -->
<c:choose>
<c:when test="${echo != null}">
<div class="alert alert-info">
<button class="close" data-dismiss="alert">
<i class="ace-icon fa fa-times"></i>
</button>
<i class="ace-icon fa fa-hand-o-right"></i>
${echo}
</div>
</c:when>
</c:choose>
<div class="row">
<div class="col-xs-12">
<!-- PAGE CONTENT BEGINS -->
<form class="form-horizontal" role="form" method="post" action="../admin/submit-storage-form">
<div class="form-group">
<label class="col-sm-3 control-label no-padding-right" for="form-field-1"> 药品${type ? '名称' : '编号 (不可修改)'} </label>
<div class="col-sm-4">
<c:choose>
<c:when test="${type}">
<select class="chosen-select form-control" id="form-field-1" data-placeholder="选择药品..." name="PDno" required="required">
<option value=""></option>
<c:forEach items="${drugs}" var="drug">
<option value="${drug.PDno}">${drug.PDname}</option>
</c:forEach>
</select>
</c:when>
<c:otherwise>
<input class="form-control" id="form-field-1" type="text" readonly="readonly" placeholder="药品编号 (不可修改)" name="PDno" value="${pdbatch.PDno}" required="required" />
</c:otherwise>
</c:choose>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label no-padding-right" for="id-date-picker-1"> 药品批次 (生产时间)${type ? '' : ' (不可修改)'} </label>
<div class="col-sm-4">
<div class="input-group">
<c:choose>
<c:when test="${type}">
<input class="form-control date-picker" id="id-date-picker-1" type="text" placeholder="药品批次 (生产时间)" name="tempPDbatch" data-date-format="yyyy 年 mm 月 dd 日" required="required" />
</c:when>
<c:otherwise>
<input class="form-control" id="id-date-picker-1" type="text" readonly="readonly" placeholder="药品批次 (生产时间) (不可修改)" name="tempPDbatch" value="<fmt:formatDate value="${pdbatch.PDbatch}" pattern="yyyy 年 MM 月 dd 日"/>" required="required" />
</c:otherwise>
</c:choose>
<span class="input-group-addon">
<i class="fa fa-calendar bigger-110"></i>
</span>
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label no-padding-right" for="spinner1"> 药品数量 </label>
<div class="col-sm-4">
<input class="form-control" id="spinner1" type="text" placeholder="药品数量" name="PDnum" value="${pdbatch.PDnum}" required="required" />
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label no-padding-right" for="form-field-4"> 药品供应商 </label>
<div class="col-sm-4">
<select class="chosen-select form-control" id="form-field-4" data-placeholder="选择药品供应商..." name="Sno" required="required">
<option value=""></option>
<c:forEach items="${suppliers}" var="supplier">
<option value="${supplier.sno}" ${supplier.sno == pdbatch.sno ? 'selected="selected"' : ''}>${supplier.sname}</option>
</c:forEach>
</select>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label no-padding-right" for="form-field-5"> 入库库存管理员 </label>
<div class="col-sm-4">
<select class="chosen-select form-control" id="form-field-5" data-placeholder="选择入库库存管理员..." name="SAno" required="required">
<option value=""></option>
<c:forEach items="${admins}" var="admin">
<option value="${admin.ano}" ${admin.ano == pdbatch.SAno ? 'selected="selected"' : ''}>${admin.aname}</option>
</c:forEach>
</select>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label no-padding-right" for="id-date-picker-2"> 药品入库日期 </label>
<div class="col-sm-4">
<div class="input-group">
<input class="form-control date-picker" id="id-date-picker-2" type="text" placeholder="药品入库日期" name="tempSdate" value="<fmt:formatDate value="${pdbatch.stime}" pattern="yyyy 年 MM 月 dd 日"/>" data-date-format="yyyy 年 mm 月 dd 日" required="required" />
<span class="input-group-addon">
<i class="fa fa-calendar bigger-110"></i>
</span>
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label no-padding-right" for="timepicker1"> 药品入库时间 </label>
<div class="col-sm-4">
<div class="input-group">
<input class="form-control" id="timepicker1" type="text" placeholder="药品入库时间" name="tempStime" value="<fmt:formatDate value="${pdbatch.stime}" pattern="HH:mm:ss"/>" required="required" />
<span class="input-group-addon">
<i class="fa fa-clock-o bigger-110"></i>
</span>
</div>
</div>
</div>
<div class="clearfix form-actions">
<div class="col-md-offset-3 col-md-9">
<button class="btn btn-info" type="submit">
<i class="ace-icon fa fa-check bigger-110"></i>
提交
</button>
&nbsp; &nbsp; &nbsp;
<button class="btn" type="reset">
<i class="ace-icon fa fa-undo bigger-110"></i>
重置
</button>
</div>
</div>
</form>
<!-- PAGE CONTENT ENDS -->
</div><!-- /.col -->
</div><!-- /.row -->
</div><!-- /.page-content -->
</div>
</div><!-- /.main-content -->
<div class="footer">
<div class="footer-inner">
<div class="footer-content">
<span class="bigger-120">
<span class="blue bolder">医院药品库存管理系统</span>
DIMS &copy; 2019-2020
</span>
</div>
</div>
</div>
<a href="#" id="btn-scroll-up" class="btn-scroll-up btn btn-sm btn-inverse">
<i class="ace-icon fa fa-angle-double-up icon-only bigger-110"></i>
</a>
</div><!-- /.main-container -->
<!-- basic scripts -->
<!--[if !IE]> -->
<script src="../assets/js/jquery-2.1.4.min.js"></script>
<!-- <![endif]-->
<!--[if IE]>
<script src="../assets/js/jquery-1.11.3.min.js"></script>
<![endif]-->
<script type="text/javascript">
if('ontouchstart' in document.documentElement) document.write("<script src='assets/js/jquery.mobile.custom.min.js'>"+"<"+"/script>");
</script>
<script src="../assets/js/bootstrap.min.js"></script>
<!-- page specific plugin scripts -->
<!--[if lte IE 8]>
<script src="../assets/js/excanvas.min.js"></script>
<![endif]-->
<script src="../assets/js/jquery-ui.custom.min.js"></script>
<script src="../assets/js/jquery.ui.touch-punch.min.js"></script>
<script src="../assets/js/chosen.jquery.min.js"></script>
<script src="../assets/js/spinbox.min.js"></script>
<script src="../assets/js/bootstrap-datepicker.min.js"></script>
<script src="../assets/js/bootstrap-timepicker.min.js"></script>
<script src="../assets/js/moment.min.js"></script>
<script src="../assets/js/daterangepicker.min.js"></script>
<script src="../assets/js/bootstrap-datetimepicker.min.js"></script>
<script src="../assets/js/bootstrap-colorpicker.min.js"></script>
<script src="../assets/js/jquery.knob.min.js"></script>
<script src="../assets/js/autosize.min.js"></script>
<script src="../assets/js/jquery.inputlimiter.min.js"></script>
<script src="../assets/js/jquery.maskedinput.min.js"></script>
<script src="../assets/js/bootstrap-tag.min.js"></script>
<!-- ace scripts -->
<script src="../assets/js/ace-elements.min.js"></script>
<script src="../assets/js/ace.min.js"></script>
<!-- inline scripts related to this page -->
<script type="text/javascript">
jQuery(function($) {
$('#id-disable-check').on('click', function() {
var inp = $('#form-input-readonly').get(0);
if(inp.hasAttribute('disabled')) {
inp.setAttribute('readonly', 'true');
inp.removeAttribute('disabled');
inp.value="This text field is readonly!";
}
else {
inp.setAttribute('disabled', 'disabled');
inp.removeAttribute('readonly');
inp.value="This text field is disabled!";
}
});
if(!ace.vars['touch']) {
$('.chosen-select').chosen({allow_single_deselect:true});
//resize the chosen on window resize
$(window)
.off('resize.chosen')
.on('resize.chosen', function() {
$('.chosen-select').each(function() {
var $this = $(this);
$this.next().css({'width': $this.parent().width()});
})
}).trigger('resize.chosen');
//resize chosen on sidebar collapse/expand
$(document).on('settings.ace.chosen', function(e, event_name, event_val) {
if(event_name != 'sidebar_collapsed') return;
$('.chosen-select').each(function() {
var $this = $(this);
$this.next().css({'width': $this.parent().width()});
})
});
$('#chosen-multiple-style .btn').on('click', function(e){
var target = $(this).find('input[type=radio]');
var which = parseInt(target.val());
if(which == 2) $('#form-field-select-4').addClass('tag-input-style');
else $('#form-field-select-4').removeClass('tag-input-style');
});
}
$('[data-rel=tooltip]').tooltip({container:'body'});
$('[data-rel=popover]').popover({container:'body'});
autosize($('textarea[class*=autosize]'));
$('textarea.limited').inputlimiter({
remText: '%n character%s remaining...',
limitText: 'max allowed : %n.'
});
$.mask.definitions['~']='[+-]';
$('.input-mask-date').mask('99/99/9999');
$('.input-mask-phone').mask('(999) 999-9999');
$('.input-mask-eyescript').mask('~9.99 ~9.99 999');
$(".input-mask-product").mask("a*-999-a999",{placeholder:" ",completed:function(){alert("You typed the following: "+this.val());}});
$( "#input-size-slider" ).css('width','200px').slider({
value:1,
range: "min",
min: 1,
max: 8,
step: 1,
slide: function( event, ui ) {
var sizing = ['', 'input-sm', 'input-lg', 'input-mini', 'input-small', 'input-medium', 'input-large', 'input-xlarge', 'input-xxlarge'];
var val = parseInt(ui.value);
$('#form-field-4').attr('class', sizing[val]).attr('placeholder', '.'+sizing[val]);
}
});
$( "#input-span-slider" ).slider({
value:1,
range: "min",
min: 1,
max: 12,
step: 1,
slide: function( event, ui ) {
var val = parseInt(ui.value);
$('#form-field-5').attr('class', 'col-xs-'+val).val('.col-xs-'+val);
}
});
//"jQuery UI Slider"
//range slider tooltip example
$( "#slider-range" ).css('height','200px').slider({
orientation: "vertical",
range: true,
min: 0,
max: 100,
values: [ 17, 67 ],
slide: function( event, ui ) {
var val = ui.values[$(ui.handle).index()-1] + "";
if( !ui.handle.firstChild ) {
$("<div class='tooltip right in' style='display:none;left:16px;top:-6px;'><div class='tooltip-arrow'></div><div class='tooltip-inner'></div></div>")
.prependTo(ui.handle);
}
$(ui.handle.firstChild).show().children().eq(1).text(val);
}
}).find('span.ui-slider-handle').on('blur', function(){
$(this.firstChild).hide();
});
$( "#slider-range-max" ).slider({
range: "max",
min: 1,
max: 10,
value: 2
});
$( "#slider-eq > span" ).css({width:'90%', 'float':'left', margin:'15px'}).each(function() {
// read initial values from markup and remove that
var value = parseInt( $( this ).text(), 10 );
$( this ).empty().slider({
value: value,
range: "min",
animate: true
});
});
$("#slider-eq > span.ui-slider-purple").slider('disable');//disable third item
$('#id-input-file-1, #id-input-file-2').ace_file_input({
no_file:'No File ...',
btn_choose:'Choose',
btn_change:'Change',
droppable:false,
onchange:null,
thumbnail:false //| true | large
//whitelist:'gif|png|jpg|jpeg'
//blacklist:'exe|php'
//onchange:''
//
});
//pre-show a file name, for example a previously selected file
//$('#id-input-file-1').ace_file_input('show_file_list', ['myfile.txt'])
$('#id-input-file-3').ace_file_input({
style: 'well',
btn_choose: 'Drop files here or click to choose',
btn_change: null,
no_icon: 'ace-icon fa fa-cloud-upload',
droppable: true,
thumbnail: 'small'//large | fit
//,icon_remove:null//set null, to hide remove/reset button
/**,before_change:function(files, dropped) {
//Check an example below
//or examples/file-upload.html
return true;
}*/
/**,before_remove : function() {
return true;
}*/
,
preview_error : function(filename, error_code) {
//name of the file that failed
//error_code values
//1 = 'FILE_LOAD_FAILED',
//2 = 'IMAGE_LOAD_FAILED',
//3 = 'THUMBNAIL_FAILED'
//alert(error_code);
}
}).on('change', function(){
//console.log($(this).data('ace_input_files'));
//console.log($(this).data('ace_input_method'));
});
//$('#id-input-file-3')
//.ace_file_input('show_file_list', [
//{type: 'image', name: 'name of image', path: 'http://path/to/image/for/preview'},
//{type: 'file', name: 'hello.txt'}
//]);
//dynamically change allowed formats by changing allowExt && allowMime function
$('#id-file-format').removeAttr('checked').on('change', function() {
var whitelist_ext, whitelist_mime;
var btn_choose
var no_icon
if(this.checked) {
btn_choose = "Drop images here or click to choose";
no_icon = "ace-icon fa fa-picture-o";
whitelist_ext = ["jpeg", "jpg", "png", "gif", "bmp"];
whitelist_mime = ["image/jpg", "image/jpeg", "image/png", "image/gif", "image/bmp"];
}
else {
btn_choose = "Drop files here or click to choose";
no_icon = "ace-icon fa fa-cloud-upload";
whitelist_ext = null;//all extensions are acceptable
whitelist_mime = null;//all mimes are acceptable
}
var file_input = $('#id-input-file-3');
file_input
.ace_file_input('update_settings',
{
'btn_choose': btn_choose,
'no_icon': no_icon,
'allowExt': whitelist_ext,
'allowMime': whitelist_mime
})
file_input.ace_file_input('reset_input');
file_input
.off('file.error.ace')
.on('file.error.ace', function(e, info) {
//console.log(info.file_count);//number of selected files
//console.log(info.invalid_count);//number of invalid files
//console.log(info.error_list);//a list of errors in the following format
//info.error_count['ext']
//info.error_count['mime']
//info.error_count['size']
//info.error_list['ext'] = [list of file names with invalid extension]
//info.error_list['mime'] = [list of file names with invalid mimetype]
//info.error_list['size'] = [list of file names with invalid size]
/**
if( !info.dropped ) {
//perhapse reset file field if files have been selected, and there are invalid files among them
//when files are dropped, only valid files will be added to our file array
e.preventDefault();//it will rest input
}
*/
//if files have been selected (not dropped), you can choose to reset input
//because browser keeps all selected files anyway and this cannot be changed
//we can only reset file field to become empty again
//on any case you still should check files with your server side script
//because any arbitrary file can be uploaded by user and it's not safe to rely on browser-side measures
});
/**
file_input
.off('file.preview.ace')
.on('file.preview.ace', function(e, info) {
console.log(info.file.width);
console.log(info.file.height);
e.preventDefault();//to prevent preview
});
*/
});
$('#spinner1').ace_spinner({value:${type ? '1' : '0'}, min:${type ? '1' : '0'}, max:10000, step:100, btn_up_class:'btn-info', btn_down_class:'btn-info'})
.closest('.ace-spinner')
.on('changed.fu.spinbox', function(){
//console.log($('#spinner1').val())
});
$('#spinner2').ace_spinner({value:0, min:0, max:10000, step:100, touch_spinner: true, icon_up:'ace-icon fa fa-caret-up bigger-110', icon_down:'ace-icon fa fa-caret-down bigger-110'});
$('#spinner3').ace_spinner({value:0, min:-100, max:100, step:10, on_sides: true, icon_up:'ace-icon fa fa-plus bigger-110', icon_down:'ace-icon fa fa-minus bigger-110', btn_up_class:'btn-success', btn_down_class:'btn-danger'});
$('#spinner4').ace_spinner({value:0, min:-100, max:100, step:10, on_sides: true, icon_up:'ace-icon fa fa-plus', icon_down:'ace-icon fa fa-minus', btn_up_class:'btn-purple', btn_down_class:'btn-purple'});
//$('#spinner1').ace_spinner('disable').ace_spinner('value', 11);
//or
//$('#spinner1').closest('.ace-spinner').spinner('disable').spinner('enable').spinner('value', 11);//disable, enable or change value
//$('#spinner1').closest('.ace-spinner').spinner('value', 0);//reset to 0
//datepicker plugin
//link
$('.date-picker').datepicker({
autoclose: true,
todayHighlight: true
})
//show datepicker when clicking on the icon
.next().on(ace.click_event, function(){
$(this).prev().focus();
});
//or change it into a date range picker
$('.input-daterange').datepicker({autoclose:true});
//to translate the daterange picker, please copy the "examples/daterange-fr.js" contents here before initialization
$('input[name=date-range-picker]').daterangepicker({
'applyClass' : 'btn-sm btn-success',
'cancelClass' : 'btn-sm btn-default',
locale: {
applyLabel: 'Apply',
cancelLabel: 'Cancel',
}
})
.prev().on(ace.click_event, function(){
$(this).next().focus();
});
$('#timepicker1').timepicker({
minuteStep: 1,
showSeconds: true,
showMeridian: false,
disableFocus: true,
icons: {
up: 'fa fa-chevron-up',
down: 'fa fa-chevron-down'
}
}).on('focus', function() {
$('#timepicker1').timepicker('showWidget');
}).next().on(ace.click_event, function(){
$(this).prev().focus();
});
if(!ace.vars['old_ie']) $('#date-timepicker1').datetimepicker({
//format: 'MM/DD/YYYY h:mm:ss A',//use this option to display seconds
icons: {
time: 'fa fa-clock-o',
date: 'fa fa-calendar',
up: 'fa fa-chevron-up',
down: 'fa fa-chevron-down',
previous: 'fa fa-chevron-left',
next: 'fa fa-chevron-right',
today: 'fa fa-arrows ',
clear: 'fa fa-trash',
close: 'fa fa-times'
}
}).next().on(ace.click_event, function(){
$(this).prev().focus();
});
$('#colorpicker1').colorpicker();
//$('.colorpicker').last().css('z-index', 2000);//if colorpicker is inside a modal, its z-index should be higher than modal'safe
$('#simple-colorpicker-1').ace_colorpicker();
//$('#simple-colorpicker-1').ace_colorpicker('pick', 2);//select 2nd color
//$('#simple-colorpicker-1').ace_colorpicker('pick', '#fbe983');//select #fbe983 color
//var picker = $('#simple-colorpicker-1').data('ace_colorpicker')
//picker.pick('red', true);//insert the color if it doesn't exist
$(".knob").knob();
var tag_input = $('#form-field-tags');
try{
tag_input.tag(
{
placeholder:tag_input.attr('placeholder'),
//enable typeahead by specifying the source array
source: ace.vars['US_STATES'],//defined in ace.js >> ace.enable_search_ahead
/**
//or fetch data from database, fetch those that match "query"
source: function(query, process) {
$.ajax({url: 'remote_source.php?q='+encodeURIComponent(query)})
.done(function(result_items){
process(result_items);
});
}
*/
}
)
//programmatically add/remove a tag
var $tag_obj = $('#form-field-tags').data('tag');
$tag_obj.add('Programmatically Added');
var index = $tag_obj.inValues('some tag');
$tag_obj.remove(index);
}
catch(e) {
//display a textarea for old IE, because it doesn't support this plugin or another one I tried!
tag_input.after('<textarea id="'+tag_input.attr('id')+'" name="'+tag_input.attr('name')+'" rows="3">'+tag_input.val()+'</textarea>').remove();
//autosize($('#form-field-tags'));
}
/////////
$('#modal-form input[type=file]').ace_file_input({
style:'well',
btn_choose:'Drop files here or click to choose',
btn_change:null,
no_icon:'ace-icon fa fa-cloud-upload',
droppable:true,
thumbnail:'large'
})
//chosen plugin inside a modal will have a zero width because the select element is originally hidden
//and its width cannot be determined.
//so we set the width after modal is show
$('#modal-form').on('shown.bs.modal', function () {
if(!ace.vars['touch']) {
$(this).find('.chosen-container').each(function(){
$(this).find('a:first-child').css('width', '210px');
$(this).find('.chosen-drop').css('width', '210px');
$(this).find('.chosen-search input').css('width', '200px');
});
}
})
/**
//or you can activate the chosen plugin after modal is shown
//this way select element becomes visible with dimensions and chosen works as expected
$('#modal-form').on('shown', function () {
$(this).find('.modal-chosen').chosen();
})
*/
$(document).one('ajaxloadstart.page', function(e) {
autosize.destroy('textarea[class*=autosize]')
$('.limiterBox,.autosizejs').remove();
$('.daterangepicker.dropdown-menu,.colorpicker.dropdown-menu,.bootstrap-datetimepicker-widget.dropdown-menu').remove();
});
});
</script>
</body>
</html>

View file

@ -0,0 +1,789 @@
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<meta charset="utf-8" />
<title>${type ? '新增' : '修改'}供应商信息 - 医院药品库存管理系统</title>
<meta name="description" content="${type ? '新增' : '修改'}供应商信息 - 医院药品库存管理系统" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0" />
<!-- bootstrap & fontawesome -->
<link rel="stylesheet" href="../assets/css/bootstrap.min.css" />
<link rel="stylesheet" href="../assets/font-awesome/4.5.0/css/font-awesome.min.css" />
<!-- page specific plugin styles -->
<link rel="stylesheet" href="../assets/css/jquery-ui.custom.min.css" />
<link rel="stylesheet" href="../assets/css/chosen.min.css" />
<link rel="stylesheet" href="../assets/css/bootstrap-datepicker3.min.css" />
<link rel="stylesheet" href="../assets/css/bootstrap-timepicker.min.css" />
<link rel="stylesheet" href="../assets/css/daterangepicker.min.css" />
<link rel="stylesheet" href="../assets/css/bootstrap-datetimepicker.min.css" />
<link rel="stylesheet" href="../assets/css/bootstrap-colorpicker.min.css" />
<!-- text fonts -->
<link rel="stylesheet" href="../assets/css/fonts.googleapis.com.css" />
<!-- ace styles -->
<link rel="stylesheet" href="../assets/css/ace.min.css" class="ace-main-stylesheet" id="main-ace-style" />
<!--[if lte IE 9]>
<link rel="stylesheet" href="../assets/css/ace-part2.min.css" class="ace-main-stylesheet" />
<![endif]-->
<link rel="stylesheet" href="../assets/css/ace-skins.min.css" />
<link rel="stylesheet" href="../assets/css/ace-rtl.min.css" />
<!--[if lte IE 9]>
<link rel="stylesheet" href="../assets/css/ace-ie.min.css" />
<![endif]-->
<!-- inline styles related to this page -->
<!-- ace settings handler -->
<script src="../assets/js/ace-extra.min.js"></script>
<!-- HTML5shiv and Respond.js for IE8 to support HTML5 elements and media queries -->
<!--[if lte IE 8]>
<script src="../assets/js/html5shiv.min.js"></script>
<script src="../assets/js/respond.min.js"></script>
<![endif]-->
</head>
<body class="no-skin">
<div id="navbar" class="navbar navbar-default ace-save-state">
<div class="navbar-container ace-save-state" id="navbar-container">
<button type="button" class="navbar-toggle menu-toggler pull-left" id="menu-toggler" data-target="#sidebar">
<span class="sr-only">Toggle sidebar</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<div class="navbar-header pull-left">
<a href="index.html" class="navbar-brand">
<small>
<i class="fa fa-leaf"></i>
医院药品库存管理系统 DIMS
</small>
</a>
</div>
<div class="navbar-buttons navbar-header pull-right" role="navigation">
<ul class="nav ace-nav">
<li class="grey dropdown-modal">
<a data-toggle="dropdown" class="dropdown-toggle" href="#">
<i class="ace-icon fa fa-tasks"></i>
<span class="badge badge-grey">3</span>
</a>
<ul class="dropdown-menu-right dropdown-navbar dropdown-menu dropdown-caret dropdown-close">
<li class="dropdown-header">
<i class="ace-icon fa fa-check"></i>
统计信息
</li>
<li class="dropdown-content">
<ul class="dropdown-menu dropdown-navbar">
<li>
<a href="../admin/query-specific-admin?Ano=${currentAdmin.ano}">
<div class="clearfix">
<span class="pull-left">由我入库的药品总批数占比</span>
<span class="pull-right">
<fmt:formatNumber value="${myPDbatchesNum / (inventoryPDbatchesNum + destroyedPDbatchesNum) * 100}" pattern="#.00"/>
%
</span>
</div>
<div class="progress progress-mini progress-striped active">
<div style="width:${myPDbatchesNum / (inventoryPDbatchesNum + destroyedPDbatchesNum) * 100}%" class="progress-bar"></div>
</div>
</a>
</li>
<li>
<a href="../admin/query-specific-admin?Ano=${currentAdmin.ano}">
<div class="clearfix">
<span class="pull-left">由我入库的库存药品批数占比</span>
<span class="pull-right">
<fmt:formatNumber value="${myInventoryPDbatchesNum / inventoryPDbatchesNum * 100}" pattern="#.00"/>
%
</span>
</div>
<div class="progress progress-mini progress-striped active">
<div style="width:${myInventoryPDbatchesNum / inventoryPDbatchesNum * 100}%" class="progress-bar progress-bar-warning"></div>
</div>
</a>
</li>
<li>
<a href="../admin/query-specific-admin?Ano=${currentAdmin.ano}">
<div class="clearfix">
<span class="pull-left">由我销毁的药品批数占比</span>
<span class="pull-right">
<fmt:formatNumber value="${myDestroyedPDbatchesNum / destroyedPDbatchesNum * 100}" pattern="#.00"/>
%
</span>
</div>
<div class="progress progress-mini progress-striped active">
<div style="width:${myDestroyedPDbatchesNum / destroyedPDbatchesNum * 100}%" class="progress-bar progress-bar-success"></div>
</div>
</a>
</li>
</ul>
</li>
</ul>
</li>
<li class="green dropdown-modal">
<a data-toggle="dropdown" class="dropdown-toggle" href="#">
<i class="ace-icon fa fa-bell icon-animated-bell"></i>
<span class="badge badge-success">${lowInventoryDrugsNum + close2ExpiryPDbatchesNum}</span>
</a>
<ul class="dropdown-menu-right dropdown-navbar dropdown-menu dropdown-caret dropdown-close">
<li class="dropdown-header">
<i class="ace-icon fa fa-exclamation-triangle"></i>
警报
</li>
<li class="dropdown-content">
<ul class="dropdown-menu dropdown-navbar navbar-pink">
<li>
<a href="../admin/query-low-inventory-drug-list">
<div class="clearfix">
<span class="pull-left">
<i class="btn btn-xs no-hover btn-pink fa fa-comment"></i>
库存药品数量到达下限警报
</span>
<span class="pull-right badge badge-info">${lowInventoryDrugsNum}</span>
</div>
</a>
</li>
<li>
<a href="../admin/query-close-2-expiry-pdbatch-list">
<div class="clearfix">
<span class="pull-left">
<i class="btn btn-xs no-hover btn-success fa fa-shopping-cart"></i>
库存药品批次临期警报
</span>
<span class="pull-right badge badge-success">${close2ExpiryPDbatchesNum}</span>
</div>
</a>
</li>
</ul>
</li>
</ul>
</li>
<li class="light-blue dropdown-modal">
<a data-toggle="dropdown" href="#" class="dropdown-toggle">
<img class="nav-user-photo" src="../assets/images/avatars/Admin.png" alt="头像" />
<span class="user-info">
<small>欢迎,</small>
${currentAdmin.aname}
</span>
<i class="ace-icon fa fa-caret-down"></i>
</a>
<ul class="user-menu dropdown-menu-right dropdown-menu dropdown-yellow dropdown-caret dropdown-close">
<li>
<a href="../admin/profile">
<i class="ace-icon fa fa-user"></i>
个人信息
</a>
</li>
<li class="divider"></li>
<li>
<a href="../logout">
<i class="ace-icon fa fa-power-off"></i>
登出
</a>
</li>
</ul>
</li>
</ul>
</div>
</div><!-- /.navbar-container -->
</div>
<div class="main-container ace-save-state" id="main-container">
<script type="text/javascript">
try{ace.settings.loadState('main-container')}catch(e){}
</script>
<div id="sidebar" class="sidebar responsive ace-save-state">
<script type="text/javascript">
try{ace.settings.loadState('sidebar')}catch(e){}
</script>
<div class="sidebar-shortcuts" id="sidebar-shortcuts">
<div class="sidebar-shortcuts-large" id="sidebar-shortcuts-large">
<button class="btn btn-success">
<i class="ace-icon fa fa-signal"></i>
</button>
<button class="btn btn-info">
<i class="ace-icon fa fa-pencil"></i>
</button>
<button class="btn btn-warning">
<i class="ace-icon fa fa-users"></i>
</button>
<button class="btn btn-danger">
<i class="ace-icon fa fa-cogs"></i>
</button>
</div>
<div class="sidebar-shortcuts-mini" id="sidebar-shortcuts-mini">
<span class="btn btn-success"></span>
<span class="btn btn-info"></span>
<span class="btn btn-warning"></span>
<span class="btn btn-danger"></span>
</div>
</div><!-- /.sidebar-shortcuts -->
<ul class="nav nav-list">
<li class="">
<a href="../admin/welcome">
<i class="menu-icon fa fa-tachometer"></i>
<span class="menu-text"> 欢迎页面 </span>
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="../admin/profile">
<i class="menu-icon fa fa-tag"></i>
<span class="menu-text"> 个人信息页面 </span>
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="../admin/query-supplier-list">
<i class="menu-icon fa fa-briefcase"></i>
<span class="menu-text"> 查看供应商信息列表 </span>
</a>
<b class="arrow"></b>
</li>
<li class="${type ? 'active' : ''}">
<a href="../admin/add-supplier-form">
<i class="menu-icon fa fa-desktop"></i>
<span class="menu-text"> 填写新增供应商表单 </span>
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="../admin/query-low-inventory-drug-list">
<i class="menu-icon fa fa-cogs"></i>
<span class="menu-text"> 查看库存紧张的药品 </span>
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="../admin/query-close-2-expiry-pdbatch-list">
<i class="menu-icon fa fa-exclamation-circle"></i>
<span class="menu-text"> 查看临期的药品批次 </span>
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="#" class="dropdown-toggle">
<i class="menu-icon fa fa-list"></i>
<span class="menu-text"> 查看药品库存信息 </span>
<b class="arrow fa fa-angle-down"></b>
</a>
<b class="arrow"></b>
<ul class="submenu">
<li class="">
<a href="../admin/query-drug-list">
<i class="menu-icon fa fa-caret-right"></i>
查看库存药品列表
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="../admin/query-pdbatch-list">
<i class="menu-icon fa fa-caret-right"></i>
查看库存药品批次明细
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="../admin/query-destroyed-pdbatch-list">
<i class="menu-icon fa fa-caret-right"></i>
查看已销毁药品批次列表
</a>
<b class="arrow"></b>
</li>
</ul>
</li>
<li class="">
<a href="../admin/add-storage-form">
<i class="menu-icon fa fa-pencil-square-o"></i>
<span class="menu-text"> 填写药品入库表单 </span>
</a>
<b class="arrow"></b>
</li>
</ul><!-- /.nav-list -->
<div class="sidebar-toggle sidebar-collapse" id="sidebar-collapse">
<i id="sidebar-toggle-icon" class="ace-icon fa fa-angle-double-left ace-save-state" data-icon1="ace-icon fa fa-angle-double-left" data-icon2="ace-icon fa fa-angle-double-right"></i>
</div>
</div>
<div class="main-content">
<div class="main-content-inner">
<div class="breadcrumbs ace-save-state" id="breadcrumbs">
<ul class="breadcrumb">
<li>
<i class="ace-icon fa fa-home home-icon"></i>
<a href="../admin/index">首页</a>
</li>
<li class="active">${type ? '添加' : '修改'}供应商信息</li>
</ul><!-- /.breadcrumb -->
</div>
<div class="page-content">
<div class="page-header">
<h1>
${type ? '添加' : '修改'}一条供应商信息记录
</h1>
</div><!-- /.page-header -->
<c:choose>
<c:when test="${echo != null}">
<div class="alert alert-info">
<button class="close" data-dismiss="alert">
<i class="ace-icon fa fa-times"></i>
</button>
<i class="ace-icon fa fa-hand-o-right"></i>
${echo}
</div>
</c:when>
</c:choose>
<div class="row">
<div class="col-xs-12">
<!-- PAGE CONTENT BEGINS -->
<form class="form-horizontal" role="form" method="post" action="../admin/submit-supplier-form">
<div class="form-group">
<label class="col-sm-3 control-label no-padding-right" for="form-field-1"> 供应商编号${type ? '' : ' (不可修改)'} </label>
<div class="col-sm-9">
<input type="text" required="required" id="form-field-1" name="Sno" value="${supplier.sno}" ${type ? '' : 'readonly="readonly"'} maxlength="20" placeholder="供应商编号" class="col-xs-10 col-sm-5" />
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label no-padding-right" for="form-field-2"> 供应商名称 </label>
<div class="col-sm-9">
<input type="text" required="required" id="form-field-2" name="Sname" value="${supplier.sname}" maxlength="20" placeholder="供应商名称" class="col-xs-10 col-sm-5" />
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label no-padding-right" for="form-field-3"> 供应商地址 </label>
<div class="col-sm-9">
<input type="text" required="required" id="form-field-3" name="Saddr" value="${supplier.saddr}" maxlength="60" placeholder="供应商地址" class="col-xs-10 col-sm-5" />
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label no-padding-right" for="form-field-4"> 供应商电话 </label>
<div class="col-sm-9">
<input type="text" required="required" id="form-field-4" name="Sphone" value="${supplier.sphone}" maxlength="20" placeholder="供应商电话" class="col-xs-10 col-sm-5" />
</div>
</div>
<div class="clearfix form-actions">
<div class="col-md-offset-3 col-md-9">
<button class="btn btn-info" type="submit">
<i class="ace-icon fa fa-check bigger-110"></i>
提交
</button>
&nbsp; &nbsp; &nbsp;
<button class="btn" type="reset">
<i class="ace-icon fa fa-undo bigger-110"></i>
重置
</button>
</div>
</div>
</form>
<!-- PAGE CONTENT ENDS -->
</div><!-- /.col -->
</div><!-- /.row -->
</div><!-- /.page-content -->
</div>
</div><!-- /.main-content -->
<div class="footer">
<div class="footer-inner">
<div class="footer-content">
<span class="bigger-120">
<span class="blue bolder">医院药品库存管理系统</span>
DIMS &copy; 2019-2020
</span>
</div>
</div>
</div>
<a href="#" id="btn-scroll-up" class="btn-scroll-up btn btn-sm btn-inverse">
<i class="ace-icon fa fa-angle-double-up icon-only bigger-110"></i>
</a>
</div><!-- /.main-container -->
<!-- basic scripts -->
<!--[if !IE]> -->
<script src="../assets/js/jquery-2.1.4.min.js"></script>
<!-- <![endif]-->
<!--[if IE]>
<script src="../assets/js/jquery-1.11.3.min.js"></script>
<![endif]-->
<script type="text/javascript">
if('ontouchstart' in document.documentElement) document.write("<script src='assets/js/jquery.mobile.custom.min.js'>"+"<"+"/script>");
</script>
<script src="../assets/js/bootstrap.min.js"></script>
<!-- page specific plugin scripts -->
<!--[if lte IE 8]>
<script src="../assets/js/excanvas.min.js"></script>
<![endif]-->
<script src="../assets/js/jquery-ui.custom.min.js"></script>
<script src="../assets/js/jquery.ui.touch-punch.min.js"></script>
<script src="../assets/js/chosen.jquery.min.js"></script>
<script src="../assets/js/spinbox.min.js"></script>
<script src="../assets/js/bootstrap-datepicker.min.js"></script>
<script src="../assets/js/bootstrap-timepicker.min.js"></script>
<script src="../assets/js/moment.min.js"></script>
<script src="../assets/js/daterangepicker.min.js"></script>
<script src="../assets/js/bootstrap-datetimepicker.min.js"></script>
<script src="../assets/js/bootstrap-colorpicker.min.js"></script>
<script src="../assets/js/jquery.knob.min.js"></script>
<script src="../assets/js/autosize.min.js"></script>
<script src="../assets/js/jquery.inputlimiter.min.js"></script>
<script src="../assets/js/jquery.maskedinput.min.js"></script>
<script src="../assets/js/bootstrap-tag.min.js"></script>
<!-- ace scripts -->
<script src="../assets/js/ace-elements.min.js"></script>
<script src="../assets/js/ace.min.js"></script>
<!-- inline scripts related to this page -->
<script type="text/javascript">
jQuery(function($) {
$('#id-disable-check').on('click', function() {
var inp = $('#form-input-readonly').get(0);
if(inp.hasAttribute('disabled')) {
inp.setAttribute('readonly', 'true');
inp.removeAttribute('disabled');
inp.value="This text field is readonly!";
}
else {
inp.setAttribute('disabled', 'disabled');
inp.removeAttribute('readonly');
inp.value="This text field is disabled!";
}
});
if(!ace.vars['touch']) {
$('.chosen-select').chosen({allow_single_deselect:true});
//resize the chosen on window resize
$(window)
.off('resize.chosen')
.on('resize.chosen', function() {
$('.chosen-select').each(function() {
var $this = $(this);
$this.next().css({'width': $this.parent().width()});
})
}).trigger('resize.chosen');
//resize chosen on sidebar collapse/expand
$(document).on('settings.ace.chosen', function(e, event_name, event_val) {
if(event_name != 'sidebar_collapsed') return;
$('.chosen-select').each(function() {
var $this = $(this);
$this.next().css({'width': $this.parent().width()});
})
});
$('#chosen-multiple-style .btn').on('click', function(e){
var target = $(this).find('input[type=radio]');
var which = parseInt(target.val());
if(which == 2) $('#form-field-select-4').addClass('tag-input-style');
else $('#form-field-select-4').removeClass('tag-input-style');
});
}
$('[data-rel=tooltip]').tooltip({container:'body'});
$('[data-rel=popover]').popover({container:'body'});
autosize($('textarea[class*=autosize]'));
$('textarea.limited').inputlimiter({
remText: '%n character%s remaining...',
limitText: 'max allowed : %n.'
});
$.mask.definitions['~']='[+-]';
$('.input-mask-date').mask('99/99/9999');
$('.input-mask-phone').mask('(999) 999-9999');
$('.input-mask-eyescript').mask('~9.99 ~9.99 999');
$(".input-mask-product").mask("a*-999-a999",{placeholder:" ",completed:function(){alert("You typed the following: "+this.val());}});
$( "#input-size-slider" ).css('width','200px').slider({
value:1,
range: "min",
min: 1,
max: 8,
step: 1,
slide: function( event, ui ) {
var sizing = ['', 'input-sm', 'input-lg', 'input-mini', 'input-small', 'input-medium', 'input-large', 'input-xlarge', 'input-xxlarge'];
var val = parseInt(ui.value);
$('#form-field-4').attr('class', sizing[val]).attr('placeholder', '.'+sizing[val]);
}
});
$( "#input-span-slider" ).slider({
value:1,
range: "min",
min: 1,
max: 12,
step: 1,
slide: function( event, ui ) {
var val = parseInt(ui.value);
$('#form-field-5').attr('class', 'col-xs-'+val).val('.col-xs-'+val);
}
});
//"jQuery UI Slider"
//range slider tooltip example
$( "#slider-range" ).css('height','200px').slider({
orientation: "vertical",
range: true,
min: 0,
max: 100,
values: [ 17, 67 ],
slide: function( event, ui ) {
var val = ui.values[$(ui.handle).index()-1] + "";
if( !ui.handle.firstChild ) {
$("<div class='tooltip right in' style='display:none;left:16px;top:-6px;'><div class='tooltip-arrow'></div><div class='tooltip-inner'></div></div>")
.prependTo(ui.handle);
}
$(ui.handle.firstChild).show().children().eq(1).text(val);
}
}).find('span.ui-slider-handle').on('blur', function(){
$(this.firstChild).hide();
});
$( "#slider-range-max" ).slider({
range: "max",
min: 1,
max: 10,
value: 2
});
$( "#slider-eq > span" ).css({width:'90%', 'float':'left', margin:'15px'}).each(function() {
// read initial values from markup and remove that
var value = parseInt( $( this ).text(), 10 );
$( this ).empty().slider({
value: value,
range: "min",
animate: true
});
});
$("#slider-eq > span.ui-slider-purple").slider('disable');//disable third item
$('#id-input-file-1, #id-input-file-2').ace_file_input({
no_file:'No File ...',
btn_choose:'Choose',
btn_change:'Change',
droppable:false,
onchange:null,
thumbnail:false //| true | large
//whitelist:'gif|png|jpg|jpeg'
//blacklist:'exe|php'
//onchange:''
//
});
//pre-show a file name, for example a previously selected file
//$('#id-input-file-1').ace_file_input('show_file_list', ['myfile.txt'])
$('#id-input-file-3').ace_file_input({
style: 'well',
btn_choose: 'Drop files here or click to choose',
btn_change: null,
no_icon: 'ace-icon fa fa-cloud-upload',
droppable: true,
thumbnail: 'small'//large | fit
//,icon_remove:null//set null, to hide remove/reset button
/**,before_change:function(files, dropped) {
//Check an example below
//or examples/file-upload.html
return true;
}*/
/**,before_remove : function() {
return true;
}*/
,
preview_error : function(filename, error_code) {
//name of the file that failed
//error_code values
//1 = 'FILE_LOAD_FAILED',
//2 = 'IMAGE_LOAD_FAILED',
//3 = 'THUMBNAIL_FAILED'
//alert(error_code);
}
}).on('change', function(){
//console.log($(this).data('ace_input_files'));
//console.log($(this).data('ace_input_method'));
});
//$('#id-input-file-3')
//.ace_file_input('show_file_list', [
//{type: 'image', name: 'name of image', path: 'http://path/to/image/for/preview'},
//{type: 'file', name: 'hello.txt'}
//]);
//dynamically change allowed formats by changing allowExt && allowMime function
$('#id-file-format').removeAttr('checked').on('change', function() {
var whitelist_ext, whitelist_mime;
var btn_choose
var no_icon
if(this.checked) {
btn_choose = "Drop images here or click to choose";
no_icon = "ace-icon fa fa-picture-o";
whitelist_ext = ["jpeg", "jpg", "png", "gif", "bmp"];
whitelist_mime = ["image/jpg", "image/jpeg", "image/png", "image/gif", "image/bmp"];
}
else {
btn_choose = "Drop files here or click to choose";
no_icon = "ace-icon fa fa-cloud-upload";
whitelist_ext = null;//all extensions are acceptable
whitelist_mime = null;//all mimes are acceptable
}
var file_input = $('#id-input-file-3');
file_input
.ace_file_input('update_settings',
{
'btn_choose': btn_choose,
'no_icon': no_icon,
'allowExt': whitelist_ext,
'allowMime': whitelist_mime
})
file_input.ace_file_input('reset_input');
file_input
.off('file.error.ace')
.on('file.error.ace', function(e, info) {
//console.log(info.file_count);//number of selected files
//console.log(info.invalid_count);//number of invalid files
//console.log(info.error_list);//a list of errors in the following format
//info.error_count['ext']
//info.error_count['mime']
//info.error_count['size']
//info.error_list['ext'] = [list of file names with invalid extension]
//info.error_list['mime'] = [list of file names with invalid mimetype]
//info.error_list['size'] = [list of file names with invalid size]
/**
if( !info.dropped ) {
//perhapse reset file field if files have been selected, and there are invalid files among them
//when files are dropped, only valid files will be added to our file array
e.preventDefault();//it will rest input
}
*/
//if files have been selected (not dropped), you can choose to reset input
//because browser keeps all selected files anyway and this cannot be changed
//we can only reset file field to become empty again
//on any case you still should check files with your server side script
//because any arbitrary file can be uploaded by user and it's not safe to rely on browser-side measures
});
/**
file_input
.off('file.preview.ace')
.on('file.preview.ace', function(e, info) {
console.log(info.file.width);
console.log(info.file.height);
e.preventDefault();//to prevent preview
});
*/
});
$('#spinner1').ace_spinner({value:0,min:0,max:200,step:10, btn_up_class:'btn-info', btn_down_class:'btn-info'})
.closest('.ace-spinner')
.on('changed.fu.spinbox', function(){
//console.log($('#spinner1').val())
});
$('#spinner2').ace_spinner({value:0,min:0,max:10000,step:100, touch_spinner: true, icon_up:'ace-icon fa fa-caret-up bigger-110', icon_down:'ace-icon fa fa-caret-down bigger-110'});
$('#spinner3').ace_spinner({value:0,min:-100,max:100,step:10, on_sides: true, icon_up:'ace-icon fa fa-plus bigger-110', icon_down:'ace-icon fa fa-minus bigger-110', btn_up_class:'btn-success', btn_down_class:'btn-danger'});
$('#spinner4').ace_spinner({value:0,min:-100,max:100,step:10, on_sides: true, icon_up:'ace-icon fa fa-plus', icon_down:'ace-icon fa fa-minus', btn_up_class:'btn-purple', btn_down_class:'btn-purple'});
//$('#spinner1').ace_spinner('disable').ace_spinner('value', 11);
//or
//$('#spinner1').closest('.ace-spinner').spinner('disable').spinner('enable').spinner('value', 11);//disable, enable or change value
//$('#spinner1').closest('.ace-spinner').spinner('value', 0);//reset to 0
//datepicker plugin
//link
$('.date-picker').datepicker({
autoclose: true,
todayHighlight: true
})
//show datepicker when clicking on the icon
.next().on(ace.click_event, function(){
$(this).prev().focus();
});
//or change it into a date range picker
$('.input-daterange').datepicker({autoclose:true});
//to translate the daterange picker, please copy the "examples/daterange-fr.js" contents here before initialization
$('input[name=date-range-picker]').daterangepicker({
'applyClass' : 'btn-sm btn-success',
'cancelClass' : 'btn-sm btn-default',
locale: {
applyLabel: 'Apply',
cancelLabel: 'Cancel',
}
})
.prev().on(ace.click_event, function(){
$(this).next().focus();
});
$('#timepicker1').timepicker({
minuteStep: 1,
showSeconds: true,
showMeridian: false,
disableFocus: true,
icons: {
up: 'fa fa-chevron-up',
down: 'fa fa-chevron-down'
}
}).on('focus', function() {
$('#timepicker1').timepicker('showWidget');
}).next().on(ace.click_event, function(){
$(this).prev().focus();
});
if(!ace.vars['old_ie']) $('#date-timepicker1').datetimepicker({
//format: 'MM/DD/YYYY h:mm:ss A',//use this option to display seconds
icons: {
time: 'fa fa-clock-o',
date: 'fa fa-calendar',
up: 'fa fa-chevron-up',
down: 'fa fa-chevron-down',
previous: 'fa fa-chevron-left',
next: 'fa fa-chevron-right',
today: 'fa fa-arrows ',
clear: 'fa fa-trash',
close: 'fa fa-times'
}
}).next().on(ace.click_event, function(){
$(this).prev().focus();
});
$('#colorpicker1').colorpicker();
//$('.colorpicker').last().css('z-index', 2000);//if colorpicker is inside a modal, its z-index should be higher than modal'safe
$('#simple-colorpicker-1').ace_colorpicker();
//$('#simple-colorpicker-1').ace_colorpicker('pick', 2);//select 2nd color
//$('#simple-colorpicker-1').ace_colorpicker('pick', '#fbe983');//select #fbe983 color
//var picker = $('#simple-colorpicker-1').data('ace_colorpicker')
//picker.pick('red', true);//insert the color if it doesn't exist
$(".knob").knob();
var tag_input = $('#form-field-tags');
try{
tag_input.tag(
{
placeholder:tag_input.attr('placeholder'),
//enable typeahead by specifying the source array
source: ace.vars['US_STATES'],//defined in ace.js >> ace.enable_search_ahead
/**
//or fetch data from database, fetch those that match "query"
source: function(query, process) {
$.ajax({url: 'remote_source.php?q='+encodeURIComponent(query)})
.done(function(result_items){
process(result_items);
});
}
*/
}
)
//programmatically add/remove a tag
var $tag_obj = $('#form-field-tags').data('tag');
$tag_obj.add('Programmatically Added');
var index = $tag_obj.inValues('some tag');
$tag_obj.remove(index);
}
catch(e) {
//display a textarea for old IE, because it doesn't support this plugin or another one I tried!
tag_input.after('<textarea id="'+tag_input.attr('id')+'" name="'+tag_input.attr('name')+'" rows="3">'+tag_input.val()+'</textarea>').remove();
//autosize($('#form-field-tags'));
}
/////////
$('#modal-form input[type=file]').ace_file_input({
style:'well',
btn_choose:'Drop files here or click to choose',
btn_change:null,
no_icon:'ace-icon fa fa-cloud-upload',
droppable:true,
thumbnail:'large'
})
//chosen plugin inside a modal will have a zero width because the select element is originally hidden
//and its width cannot be determined.
//so we set the width after modal is show
$('#modal-form').on('shown.bs.modal', function () {
if(!ace.vars['touch']) {
$(this).find('.chosen-container').each(function(){
$(this).find('a:first-child').css('width', '210px');
$(this).find('.chosen-drop').css('width', '210px');
$(this).find('.chosen-search input').css('width', '200px');
});
}
})
/**
//or you can activate the chosen plugin after modal is shown
//this way select element becomes visible with dimensions and chosen works as expected
$('#modal-form').on('shown', function () {
$(this).find('.modal-chosen').chosen();
})
*/
$(document).one('ajaxloadstart.page', function(e) {
autosize.destroy('textarea[class*=autosize]')
$('.limiterBox,.autosizejs').remove();
$('.daterangepicker.dropdown-menu,.colorpicker.dropdown-menu,.bootstrap-datetimepicker-widget.dropdown-menu').remove();
});
});
</script>
</body>
</html>

View file

@ -0,0 +1,711 @@
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<meta charset="utf-8" />
<title>欢迎 - 医院药品库存管理系统</title>
<meta name="description" content="欢迎 - 医院药品库存管理系统" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0" />
<!-- bootstrap & fontawesome -->
<link rel="stylesheet" href="../assets/css/bootstrap.min.css" />
<link rel="stylesheet" href="../assets/font-awesome/4.5.0/css/font-awesome.min.css" />
<!-- page specific plugin styles -->
<!-- text fonts -->
<link rel="stylesheet" href="../assets/css/fonts.googleapis.com.css" />
<!-- ace styles -->
<link rel="stylesheet" href="../assets/css/ace.min.css" class="ace-main-stylesheet" id="main-ace-style" />
<!--[if lte IE 9]>
<link rel="stylesheet" href="../assets/css/ace-part2.min.css" class="ace-main-stylesheet" />
<![endif]-->
<link rel="stylesheet" href="../assets/css/ace-skins.min.css" />
<link rel="stylesheet" href="../assets/css/ace-rtl.min.css" />
<!--[if lte IE 9]>
<link rel="stylesheet" href="../assets/css/ace-ie.min.css" />
<![endif]-->
<!-- inline styles related to this page -->
<!-- ace settings handler -->
<script src="../assets/js/ace-extra.min.js"></script>
<!-- HTML5shiv and Respond.js for IE8 to support HTML5 elements and media queries -->
<!--[if lte IE 8]>
<script src="../assets/js/html5shiv.min.js"></script>
<script src="../assets/js/respond.min.js"></script>
<![endif]-->
</head>
<body class="no-skin">
<div id="navbar" class="navbar navbar-default ace-save-state">
<div class="navbar-container ace-save-state" id="navbar-container">
<button type="button" class="navbar-toggle menu-toggler pull-left" id="menu-toggler" data-target="#sidebar">
<span class="sr-only">Toggle sidebar</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<div class="navbar-header pull-left">
<a href="../admin/index" class="navbar-brand">
<small>
<i class="fa fa-leaf"></i>
医院药品库存管理系统 DIMS
</small>
</a>
</div>
<div class="navbar-buttons navbar-header pull-right" role="navigation">
<ul class="nav ace-nav">
<li class="grey dropdown-modal">
<a data-toggle="dropdown" class="dropdown-toggle" href="#">
<i class="ace-icon fa fa-tasks"></i>
<span class="badge badge-grey">3</span>
</a>
<ul class="dropdown-menu-right dropdown-navbar dropdown-menu dropdown-caret dropdown-close">
<li class="dropdown-header">
<i class="ace-icon fa fa-check"></i>
统计信息
</li>
<li class="dropdown-content">
<ul class="dropdown-menu dropdown-navbar">
<li>
<a href="../admin/query-specific-admin?Ano=${currentAdmin.ano}">
<div class="clearfix">
<span class="pull-left">由我入库的药品总批数占比</span>
<span class="pull-right">
<fmt:formatNumber value="${myPDbatchesNum / (inventoryPDbatchesNum + destroyedPDbatchesNum) * 100}" pattern="#.00"/>
%
</span>
</div>
<div class="progress progress-mini progress-striped active">
<div style="width:${myPDbatchesNum / (inventoryPDbatchesNum + destroyedPDbatchesNum) * 100}%" class="progress-bar"></div>
</div>
</a>
</li>
<li>
<a href="../admin/query-specific-admin?Ano=${currentAdmin.ano}">
<div class="clearfix">
<span class="pull-left">由我入库的库存药品批数占比</span>
<span class="pull-right">
<fmt:formatNumber value="${myInventoryPDbatchesNum / inventoryPDbatchesNum * 100}" pattern="#.00"/>
%
</span>
</div>
<div class="progress progress-mini progress-striped active">
<div style="width:${myInventoryPDbatchesNum / inventoryPDbatchesNum * 100}%" class="progress-bar progress-bar-warning"></div>
</div>
</a>
</li>
<li>
<a href="../admin/query-specific-admin?Ano=${currentAdmin.ano}">
<div class="clearfix">
<span class="pull-left">由我销毁的药品批数占比</span>
<span class="pull-right">
<fmt:formatNumber value="${myDestroyedPDbatchesNum / destroyedPDbatchesNum * 100}" pattern="#.00"/>
%
</span>
</div>
<div class="progress progress-mini progress-striped active">
<div style="width:${myDestroyedPDbatchesNum / destroyedPDbatchesNum * 100}%" class="progress-bar progress-bar-success"></div>
</div>
</a>
</li>
</ul>
</li>
</ul>
</li>
<li class="green dropdown-modal">
<a data-toggle="dropdown" class="dropdown-toggle" href="#">
<i class="ace-icon fa fa-bell icon-animated-bell"></i>
<span class="badge badge-success">${lowInventoryDrugsNum + close2ExpiryPDbatchesNum}</span>
</a>
<ul class="dropdown-menu-right dropdown-navbar dropdown-menu dropdown-caret dropdown-close">
<li class="dropdown-header">
<i class="ace-icon fa fa-exclamation-triangle"></i>
警报
</li>
<li class="dropdown-content">
<ul class="dropdown-menu dropdown-navbar navbar-pink">
<li>
<a href="../admin/query-low-inventory-drug-list">
<div class="clearfix">
<span class="pull-left">
<i class="btn btn-xs no-hover btn-pink fa fa-comment"></i>
库存药品数量到达下限警报
</span>
<span class="pull-right badge badge-info">${lowInventoryDrugsNum}</span>
</div>
</a>
</li>
<li>
<a href="../admin/query-close-2-expiry-pdbatch-list">
<div class="clearfix">
<span class="pull-left">
<i class="btn btn-xs no-hover btn-success fa fa-shopping-cart"></i>
库存药品批次临期警报
</span>
<span class="pull-right badge badge-success">${close2ExpiryPDbatchesNum}</span>
</div>
</a>
</li>
</ul>
</li>
</ul>
</li>
<li class="light-blue dropdown-modal">
<a data-toggle="dropdown" href="#" class="dropdown-toggle">
<img class="nav-user-photo" src="../assets/images/avatars/Admin.png" alt="头像" />
<span class="user-info">
<small>欢迎,</small>
${currentAdmin.aname}
</span>
<i class="ace-icon fa fa-caret-down"></i>
</a>
<ul class="user-menu dropdown-menu-right dropdown-menu dropdown-yellow dropdown-caret dropdown-close">
<li>
<a href="../admin/profile">
<i class="ace-icon fa fa-user"></i>
个人信息
</a>
</li>
<li class="divider"></li>
<li>
<a href="../logout">
<i class="ace-icon fa fa-power-off"></i>
登出
</a>
</li>
</ul>
</li>
</ul>
</div>
</div><!-- /.navbar-container -->
</div>
<div class="main-container ace-save-state" id="main-container">
<script type="text/javascript">
try{ace.settings.loadState('main-container')}catch(e){}
</script>
<div id="sidebar" class="sidebar responsive ace-save-state">
<script type="text/javascript">
try{ace.settings.loadState('sidebar')}catch(e){}
</script>
<div class="sidebar-shortcuts" id="sidebar-shortcuts">
<div class="sidebar-shortcuts-large" id="sidebar-shortcuts-large">
<button class="btn btn-success">
<i class="ace-icon fa fa-signal"></i>
</button>
<button class="btn btn-info">
<i class="ace-icon fa fa-pencil"></i>
</button>
<button class="btn btn-warning">
<i class="ace-icon fa fa-users"></i>
</button>
<button class="btn btn-danger">
<i class="ace-icon fa fa-cogs"></i>
</button>
</div>
<div class="sidebar-shortcuts-mini" id="sidebar-shortcuts-mini">
<span class="btn btn-success"></span>
<span class="btn btn-info"></span>
<span class="btn btn-warning"></span>
<span class="btn btn-danger"></span>
</div>
</div><!-- /.sidebar-shortcuts -->
<ul class="nav nav-list">
<li class="active">
<a href="../admin/welcome">
<i class="menu-icon fa fa-tachometer"></i>
<span class="menu-text"> 欢迎页面 </span>
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="../admin/profile">
<i class="menu-icon fa fa-tag"></i>
<span class="menu-text"> 个人信息页面 </span>
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="../admin/query-supplier-list">
<i class="menu-icon fa fa-briefcase"></i>
<span class="menu-text"> 查看供应商信息列表 </span>
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="../admin/add-supplier-form">
<i class="menu-icon fa fa-desktop"></i>
<span class="menu-text"> 填写新增供应商表单 </span>
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="../admin/query-low-inventory-drug-list">
<i class="menu-icon fa fa-cogs"></i>
<span class="menu-text"> 查看库存紧张的药品 </span>
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="../admin/query-close-2-expiry-pdbatch-list">
<i class="menu-icon fa fa-exclamation-circle"></i>
<span class="menu-text"> 查看临期的药品批次 </span>
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="#" class="dropdown-toggle">
<i class="menu-icon fa fa-list"></i>
<span class="menu-text"> 查看药品库存信息 </span>
<b class="arrow fa fa-angle-down"></b>
</a>
<b class="arrow"></b>
<ul class="submenu">
<li class="">
<a href="../admin/query-drug-list">
<i class="menu-icon fa fa-caret-right"></i>
查看库存药品列表
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="../admin/query-pdbatch-list">
<i class="menu-icon fa fa-caret-right"></i>
查看库存药品批次明细
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="../admin/query-destroyed-pdbatch-list">
<i class="menu-icon fa fa-caret-right"></i>
查看已销毁药品批次列表
</a>
<b class="arrow"></b>
</li>
</ul>
</li>
<li class="">
<a href="../admin/add-storage-form">
<i class="menu-icon fa fa-pencil-square-o"></i>
<span class="menu-text"> 填写药品入库表单 </span>
</a>
<b class="arrow"></b>
</li>
</ul><!-- /.nav-list -->
<div class="sidebar-toggle sidebar-collapse" id="sidebar-collapse">
<i id="sidebar-toggle-icon" class="ace-icon fa fa-angle-double-left ace-save-state" data-icon1="ace-icon fa fa-angle-double-left" data-icon2="ace-icon fa fa-angle-double-right"></i>
</div>
</div>
<div class="main-content">
<div class="main-content-inner">
<div class="breadcrumbs ace-save-state" id="breadcrumbs">
<ul class="breadcrumb">
<li>
<i class="ace-icon fa fa-home home-icon"></i>
<a href="../admin/index">首页</a>
</li>
<li class="active">欢迎页面</li>
</ul><!-- /.breadcrumb -->
</div>
<div class="page-content">
<div class="page-header">
<h1>统计信息</h1>
</div><!-- /.page-header -->
<c:choose>
<c:when test="${echo != null}">
<div class="alert alert-info">
<button class="close" data-dismiss="alert">
<i class="ace-icon fa fa-times"></i>
</button>
<i class="ace-icon fa fa-hand-o-right"></i>
${echo}
</div>
</c:when>
</c:choose>
<div class="row">
<div class="col-xs-12">
<!-- PAGE CONTENT BEGINS -->
<div class="alert alert-info">
<i class="ace-icon fa fa-hand-o-right"></i>
欢迎使用
<strong class="blue">
医院药品库存管理系统 DIMS (v1.0)
</strong>
<button class="close" data-dismiss="alert">
<i class="ace-icon fa fa-times"></i>
</button>
</div>
<c:if test="${lowInventoryDrugsNum != 0}">
<div class="alert alert-warning">
<i class="ace-icon fa fa-bell-o"></i>
警告:共有 ${lowInventoryDrugsNum} 种药品库存紧张,请尽快进货入库!
<a href="../admin/query-low-inventory-drug-list">
<button class="btn btn-xs btn-warning">
<i class="ace-icon fa fa-fire bigger-110"></i>
查看详情
<i class="ace-icon fa fa-arrow-right icon-on-right"></i>
</button>
</a>
<button class="close" data-dismiss="alert">
<i class="ace-icon fa fa-times"></i>
</button>
</div>
</c:if>
<c:if test="${close2ExpiryPDbatchesNum != 0}">
<div class="alert alert-danger">
<i class="ace-icon fa fa-bullhorn"></i>
严重:共有 ${close2ExpiryPDbatchesNum} 个批次的库存药品临期,请立即处理!
<a href="../admin/query-close-2-expiry-pdbatch-list">
<button class="btn btn-xs btn-danger">
<i class="ace-icon fa fa-bolt bigger-110"></i>
查看详情
<i class="ace-icon fa fa-arrow-right icon-on-right"></i>
</button>
</a>
<button class="close" data-dismiss="alert">
<i class="ace-icon fa fa-times"></i>
</button>
</div>
</c:if>
<div class="row">
<div class="space-6"></div>
<div class="col-sm-7 infobox-container">
<div class="infobox infobox-red">
<div class="infobox-icon">
<i class="ace-icon fa fa-flask"></i>
</div>
<div class="infobox-data">
<span class="infobox-data-number">${inventoryDrugsNum}</span>
<div class="infobox-content">库存药品种数</div>
</div>
</div>
<div class="infobox infobox-pink">
<div class="infobox-icon">
<i class="ace-icon fa fa-flask"></i>
</div>
<div class="infobox-data">
<span class="infobox-data-number">${inventoryPDbatchesNum}</span>
<div class="infobox-content">库存药品批数</div>
</div>
</div>
<div class="infobox infobox-purple">
<div class="infobox-icon">
<i class="ace-icon fa fa-flask"></i>
</div>
<div class="infobox-data">
<span class="infobox-data-number">${destroyedPDbatchesNum}</span>
<div class="infobox-content">销毁药品批数</div>
</div>
</div>
<div class="space-6"></div>
<div class="infobox infobox-green">
<div class="infobox-icon">
<i class="ace-icon fa fa-flask"></i>
</div>
<div class="infobox-data">
<span class="infobox-data-number">${myPDbatchesNum}</span>
<div class="infobox-content">我入库的药品总批数</div>
</div>
</div>
<div class="infobox infobox-blue">
<div class="infobox-icon">
<i class="ace-icon fa fa-flask"></i>
</div>
<div class="infobox-data">
<span class="infobox-data-number">${myInventoryPDbatchesNum}</span>
<div class="infobox-content">我入库的库存药品批数</div>
</div>
</div>
<div class="infobox infobox-grey">
<div class="infobox-icon">
<i class="ace-icon fa fa-flask"></i>
</div>
<div class="infobox-data">
<span class="infobox-data-number">${myDestroyedPDbatchesNum}</span>
<div class="infobox-content">我销毁的药品批数</div>
</div>
</div>
<div class="space-6"></div>
<div class="infobox infobox-green2">
<div class="infobox-progress">
<div class="easy-pie-chart percentage" data-percent="${myPDbatchesNum / (inventoryPDbatchesNum + destroyedPDbatchesNum) * 100}" data-size="46">
<span class="percent">
<fmt:formatNumber value="${myPDbatchesNum / (inventoryPDbatchesNum + destroyedPDbatchesNum) * 100}" pattern="#"/>
</span>%
</div>
</div>
<div class="infobox-data">
<span class="infobox-text">我入库的总批数</span>
<div class="infobox-content">
<span class="bigger-110">~</span>
占总批数比例
</div>
</div>
</div>
<div class="infobox infobox-blue2">
<div class="infobox-progress">
<div class="easy-pie-chart percentage" data-percent="${myInventoryPDbatchesNum / inventoryPDbatchesNum * 100}" data-size="46">
<span class="percent">
<fmt:formatNumber value="${myInventoryPDbatchesNum / inventoryPDbatchesNum * 100}" pattern="#"/>
</span>%
</div>
</div>
<div class="infobox-data">
<span class="infobox-text">我入库的药品批数</span>
<div class="infobox-content">
<span class="bigger-110">~</span>
占总库存批数比例
</div>
</div>
</div>
<div class="infobox infobox-grey2">
<div class="infobox-progress">
<div class="easy-pie-chart percentage" data-percent="${myDestroyedPDbatchesNum / destroyedPDbatchesNum * 100}" data-size="46">
<span class="percent">
<fmt:formatNumber value="${myDestroyedPDbatchesNum / destroyedPDbatchesNum * 100}" pattern="#"/>
</span>%
</div>
</div>
<div class="infobox-data">
<span class="infobox-text">我销毁的药品批数</span>
<div class="infobox-content">
<span class="bigger-110">~</span>
占总销毁批数比例
</div>
</div>
</div>
</div>
</div><!-- /.row -->
<!-- PAGE CONTENT ENDS -->
</div><!-- /.col -->
</div><!-- /.row -->
</div><!-- /.page-content -->
</div>
</div><!-- /.main-content -->
<div class="footer">
<div class="footer-inner">
<div class="footer-content">
<span class="bigger-120">
<span class="blue bolder">医院药品库存管理系统</span>
DIMS &copy; 2019-2020
</span>
</div>
</div>
</div>
<a href="#" id="btn-scroll-up" class="btn-scroll-up btn btn-sm btn-inverse">
<i class="ace-icon fa fa-angle-double-up icon-only bigger-110"></i>
</a>
</div><!-- /.main-container -->
<!-- basic scripts -->
<!--[if !IE]> -->
<script src="../assets/js/jquery-2.1.4.min.js"></script>
<!-- <![endif]-->
<!--[if IE]>
<script src="../assets/js/jquery-1.11.3.min.js"></script>
<![endif]-->
<script type="text/javascript">
if('ontouchstart' in document.documentElement) document.write("<script src='../assets/js/jquery.mobile.custom.min.js'>"+"<"+"/script>");
</script>
<script src="../assets/js/bootstrap.min.js"></script>
<!-- page specific plugin scripts -->
<!--[if lte IE 8]>
<script src="../assets/js/excanvas.min.js"></script>
<![endif]-->
<script src="../assets/js/jquery-ui.custom.min.js"></script>
<script src="../assets/js/jquery.ui.touch-punch.min.js"></script>
<script src="../assets/js/jquery.easypiechart.min.js"></script>
<script src="../assets/js/jquery.sparkline.index.min.js"></script>
<script src="../assets/js/jquery.flot.min.js"></script>
<script src="../assets/js/jquery.flot.pie.min.js"></script>
<script src="../assets/js/jquery.flot.resize.min.js"></script>
<!-- ace scripts -->
<script src="../assets/js/ace-elements.min.js"></script>
<script src="../assets/js/ace.min.js"></script>
<!-- inline scripts related to this page -->
<script type="text/javascript">
jQuery(function($) {
$('.easy-pie-chart.percentage').each(function(){
var $box = $(this).closest('.infobox');
var barColor = $(this).data('color') || (!$box.hasClass('infobox-dark') ? $box.css('color') : 'rgba(255,255,255,0.95)');
var trackColor = barColor == 'rgba(255,255,255,0.95)' ? 'rgba(255,255,255,0.25)' : '#E2E2E2';
var size = parseInt($(this).data('size')) || 50;
$(this).easyPieChart({
barColor: barColor,
trackColor: trackColor,
scaleColor: false,
lineCap: 'butt',
lineWidth: parseInt(size/10),
animate: ace.vars['old_ie'] ? false : 1000,
size: size
});
})
$('.sparkline').each(function(){
var $box = $(this).closest('.infobox');
var barColor = !$box.hasClass('infobox-dark') ? $box.css('color') : '#FFF';
$(this).sparkline('html',
{
tagValuesAttribute:'data-values',
type: 'bar',
barColor: barColor,
chartRangeMin:$(this).data('min') || 0
});
});
//flot chart resize plugin, somehow manipulates default browser resize event to optimize it!
//but sometimes it brings up errors with normal resize event handlers
$.resize.throttleWindow = false;
var placeholder = $('#piechart-placeholder').css({'width':'90%', 'min-height':'150px'});
var data = [
{ label: "social networks", data: 38.7, color: "#68BC31"},
{ label: "search engines", data: 24.5, color: "#2091CF"},
{ label: "ad campaigns", data: 8.2, color: "#AF4E96"},
{ label: "direct traffic", data: 18.6, color: "#DA5430"},
{ label: "other", data: 10, color: "#FEE074"}
]
function drawPieChart(placeholder, data, position) {
$.plot(placeholder, data, {
series: {
pie: {
show: true,
tilt:0.8,
highlight: {
opacity: 0.25
},
stroke: {
color: '#fff',
width: 2
},
startAngle: 2
}
},
legend: {
show: true,
position: position || "ne",
labelBoxBorderColor: null,
margin:[-30,15]
}
,
grid: {
hoverable: true,
clickable: true
}
})
}
drawPieChart(placeholder, data);
/**
we saved the drawing function and the data to redraw with different position later when switching to RTL mode dynamically
so that's not needed actually.
*/
placeholder.data('chart', data);
placeholder.data('draw', drawPieChart);
//pie chart tooltip example
var $tooltip = $("<div class='tooltip top in'><div class='tooltip-inner'></div></div>").hide().appendTo('body');
var previousPoint = null;
placeholder.on('plothover', function (event, pos, item) {
if(item) {
if (previousPoint != item.seriesIndex) {
previousPoint = item.seriesIndex;
var tip = item.series['label'] + " : " + item.series['percent']+'%';
$tooltip.show().children(0).text(tip);
}
$tooltip.css({top:pos.pageY + 10, left:pos.pageX + 10});
} else {
$tooltip.hide();
previousPoint = null;
}
});
/////////////////////////////////////
$(document).one('ajaxloadstart.page', function(e) {
$tooltip.remove();
});
var d1 = [];
for (var i = 0; i < Math.PI * 2; i += 0.5) {
d1.push([i, Math.sin(i)]);
}
var d2 = [];
for (var i = 0; i < Math.PI * 2; i += 0.5) {
d2.push([i, Math.cos(i)]);
}
var d3 = [];
for (var i = 0; i < Math.PI * 2; i += 0.2) {
d3.push([i, Math.tan(i)]);
}
var sales_charts = $('#sales-charts').css({'width':'100%', 'height':'220px'});
$.plot("#sales-charts", [
{ label: "Domains", data: d1 },
{ label: "Hosting", data: d2 },
{ label: "Services", data: d3 }
], {
hoverable: true,
shadowSize: 0,
series: {
lines: { show: true },
points: { show: true }
},
xaxis: {
tickLength: 0
},
yaxis: {
ticks: 10,
min: -2,
max: 2,
tickDecimals: 3
},
grid: {
backgroundColor: { colors: [ "#fff", "#fff" ] },
borderWidth: 1,
borderColor:'#555'
}
});
$('#recent-box [data-rel="tooltip"]').tooltip({placement: tooltip_placement});
function tooltip_placement(context, source) {
var $source = $(source);
var $parent = $source.closest('.tab-content')
var off1 = $parent.offset();
var w1 = $parent.width();
var off2 = $source.offset();
//var w2 = $source.width();
if( parseInt(off2.left) < parseInt(off1.left) + parseInt(w1 / 2) ) return 'right';
return 'left';
}
$('.dialogs,.comments').ace_scroll({
size: 300
});
//Android's default browser somehow is confused when tapping on label which will lead to dragging the task
//so disable dragging when clicking on label
var agent = navigator.userAgent.toLowerCase();
if(ace.vars['touch'] && ace.vars['android']) {
$('#tasks').on('touchstart', function(e){
var li = $(e.target).closest('#tasks li');
if(li.length == 0) return;
var label = li.find('label.inline').get(0);
if(label == e.target || $.contains(label, e.target)) e.stopImmediatePropagation() ;
});
}
$('#tasks').sortable({
opacity:0.8,
revert:true,
forceHelperSize:true,
placeholder: 'draggable-placeholder',
forcePlaceholderSize:true,
tolerance:'pointer',
stop: function( event, ui ) {
//just for Chrome!!!! so that dropdowns on items don't appear below other items after being moved
$(ui.item).css('z-index', 'auto');
}
});
$('#tasks').disableSelection();
$('#tasks input:checkbox').removeAttr('checked').on('click', function(){
if(this.checked) $(this).closest('li').addClass('selected');
else $(this).closest('li').removeClass('selected');
});
//show the dropdowns on top or bottom depending on window height and menu position
$('#task-tab .dropdown-hover').on('mouseenter', function(e) {
var offset = $(this).offset();
var $w = $(window)
if (offset.top > $w.scrollTop() + $w.innerHeight() - 100)
$(this).addClass('dropup');
else $(this).removeClass('dropup');
});
})
</script>
</body>
</html>

View file

@ -0,0 +1,788 @@
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<meta charset="utf-8" />
<title>个人信息页面 - 医院药品库存管理系统</title>
<meta name="description" content="个人信息页面 - 医院药品库存管理系统" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0" />
<!-- bootstrap & fontawesome -->
<link rel="stylesheet" href="../assets/css/bootstrap.min.css" />
<link rel="stylesheet" href="../assets/font-awesome/4.5.0/css/font-awesome.min.css" />
<!-- page specific plugin styles -->
<link rel="stylesheet" href="../assets/css/jquery-ui.custom.min.css" />
<link rel="stylesheet" href="../assets/css/jquery.gritter.min.css" />
<link rel="stylesheet" href="../assets/css/select2.min.css" />
<link rel="stylesheet" href="../assets/css/bootstrap-datepicker3.min.css" />
<link rel="stylesheet" href="../assets/css/bootstrap-editable.min.css" />
<!-- text fonts -->
<link rel="stylesheet" href="../assets/css/fonts.googleapis.com.css" />
<!-- ace styles -->
<link rel="stylesheet" href="../assets/css/ace.min.css" class="ace-main-stylesheet" id="main-ace-style" />
<!--[if lte IE 9]>
<link rel="stylesheet" href="../assets/css/ace-part2.min.css" class="ace-main-stylesheet" />
<![endif]-->
<link rel="stylesheet" href="../assets/css/ace-skins.min.css" />
<link rel="stylesheet" href="../assets/css/ace-rtl.min.css" />
<!--[if lte IE 9]>
<link rel="stylesheet" href="../assets/css/ace-ie.min.css" />
<![endif]-->
<!-- inline styles related to this page -->
<!-- ace settings handler -->
<script src="../assets/js/ace-extra.min.js"></script>
<!-- HTML5shiv and Respond.js for IE8 to support HTML5 elements and media queries -->
<!--[if lte IE 8]>
<script src="../assets/js/html5shiv.min.js"></script>
<script src="../assets/js/respond.min.js"></script>
<![endif]-->
</head>
<body class="no-skin">
<div id="navbar" class="navbar navbar-default ace-save-state">
<div class="navbar-container ace-save-state" id="navbar-container">
<button type="button" class="navbar-toggle menu-toggler pull-left" id="menu-toggler" data-target="#sidebar">
<span class="sr-only">Toggle sidebar</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<div class="navbar-header pull-left">
<a href="../doctor/index" class="navbar-brand">
<small>
<i class="fa fa-leaf"></i>
医院药品库存管理系统 DIMS
</small>
</a>
</div>
<div class="navbar-buttons navbar-header pull-right" role="navigation">
<ul class="nav ace-nav">
<li class="grey dropdown-modal">
<a data-toggle="dropdown" class="dropdown-toggle" href="#">
<i class="ace-icon fa fa-tasks"></i>
<span class="badge badge-grey">3</span>
</a>
<ul class="dropdown-menu-right dropdown-navbar dropdown-menu dropdown-caret dropdown-close">
<li class="dropdown-header">
<i class="ace-icon fa fa-check"></i>
统计信息
</li>
<li class="dropdown-content">
<ul class="dropdown-menu dropdown-navbar">
<li>
<a href="../doctor/query-solved-rx-list">
<div class="clearfix">
<span class="pull-left">已处理处方数目占比</span>
<span class="pull-right">
<fmt:formatNumber value="${solvedRxsNum / (solvedRxsNum + unsolvedRxsNum) * 100}" pattern="#.00"/>
%
</span>
</div>
<div class="progress progress-mini progress-striped active">
<div style="width:${solvedRxsNum / (solvedRxsNum + unsolvedRxsNum) * 100}%" class="progress-bar"></div>
</div>
</a>
</li>
<li>
<a href="../doctor/query-unsolved-rx-list">
<div class="clearfix">
<span class="pull-left">未处理处方数目占比</span>
<span class="pull-right">
<fmt:formatNumber value="${unsolvedRxsNum / (solvedRxsNum + unsolvedRxsNum) * 100}" pattern="#.00"/>
%
</span>
</div>
<div class="progress progress-mini progress-striped active">
<div style="width:${unsolvedRxsNum / (solvedRxsNum + unsolvedRxsNum) * 100}%" class="progress-bar progress-bar-warning"></div>
</div>
</a>
</li>
<li>
<a href="#">
<div class="clearfix">
<span class="pull-left">由我开出的处方数目占比</span>
<span class="pull-right">
<fmt:formatNumber value="${myPrescribeRxsNum / (solvedRxsNum + unsolvedRxsNum) * 100}" pattern="#.00"/>
%
</span>
</div>
<div class="progress progress-mini progress-striped active">
<div style="width:${myPrescribeRxsNum / (solvedRxsNum + unsolvedRxsNum) * 100}%" class="progress-bar progress-bar-success"></div>
</div>
</a>
</li>
</ul>
</li>
</ul>
</li>
<li class="light-blue dropdown-modal">
<a data-toggle="dropdown" href="#" class="dropdown-toggle">
<img class="nav-user-photo" src="../assets/images/avatars/${currentDoctor.dsex ? 'Male' : 'Female'}Doctor.png" alt="头像" />
<span class="user-info">
<small>欢迎,</small>
${currentDoctor.dname}
</span>
<i class="ace-icon fa fa-caret-down"></i>
</a>
<ul class="user-menu dropdown-menu-right dropdown-menu dropdown-yellow dropdown-caret dropdown-close">
<li>
<a href="../doctor/profile">
<i class="ace-icon fa fa-user"></i>
个人信息
</a>
</li>
<li class="divider"></li>
<li>
<a href="../logout">
<i class="ace-icon fa fa-power-off"></i>
登出
</a>
</li>
</ul>
</li>
</ul>
</div>
</div><!-- /.navbar-container -->
</div>
<div class="main-container ace-save-state" id="main-container">
<script type="text/javascript">
try{ace.settings.loadState('main-container')}catch(e){}
</script>
<div id="sidebar" class="sidebar responsive ace-save-state">
<script type="text/javascript">
try{ace.settings.loadState('sidebar')}catch(e){}
</script>
<div class="sidebar-shortcuts" id="sidebar-shortcuts">
<div class="sidebar-shortcuts-large" id="sidebar-shortcuts-large">
<button class="btn btn-success">
<i class="ace-icon fa fa-signal"></i>
</button>
<button class="btn btn-info">
<i class="ace-icon fa fa-pencil"></i>
</button>
<button class="btn btn-warning">
<i class="ace-icon fa fa-users"></i>
</button>
<button class="btn btn-danger">
<i class="ace-icon fa fa-cogs"></i>
</button>
</div>
<div class="sidebar-shortcuts-mini" id="sidebar-shortcuts-mini">
<span class="btn btn-success"></span>
<span class="btn btn-info"></span>
<span class="btn btn-warning"></span>
<span class="btn btn-danger"></span>
</div>
</div><!-- /.sidebar-shortcuts -->
<ul class="nav nav-list">
<li class="">
<a href="../doctor/welcome">
<i class="menu-icon fa fa-tachometer"></i>
<span class="menu-text"> 欢迎页面 </span>
</a>
<b class="arrow"></b>
</li>
<li class="active">
<a href="../doctor/profile">
<i class="menu-icon fa fa-tag"></i>
<span class="menu-text"> 个人信息页面 </span>
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="../doctor/query-drug-list">
<i class="menu-icon fa fa-list"></i>
<span class="menu-text"> 查看库存药品列表 </span>
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="../doctor/add-rx-form">
<i class="menu-icon fa fa-pencil-square-o"></i>
<span class="menu-text"> 填写新建处方表单 </span>
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="#" class="dropdown-toggle">
<i class="menu-icon fa fa-list-alt"></i>
<span class="menu-text"> 查看处方列表 </span>
<b class="arrow fa fa-angle-down"></b>
</a>
<b class="arrow"></b>
<ul class="submenu">
<li class="">
<a href="../doctor/query-unsolved-rx-list">
<i class="menu-icon fa fa-caret-right"></i>
查看未处理处方列表
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="../doctor/query-solved-rx-list">
<i class="menu-icon fa fa-caret-right"></i>
查看已处理处方列表
</a>
<b class="arrow"></b>
</li>
</ul>
</li>
</ul><!-- /.nav-list -->
<div class="sidebar-toggle sidebar-collapse" id="sidebar-collapse">
<i id="sidebar-toggle-icon" class="ace-icon fa fa-angle-double-left ace-save-state" data-icon1="ace-icon fa fa-angle-double-left" data-icon2="ace-icon fa fa-angle-double-right"></i>
</div>
</div>
<div class="main-content">
<div class="main-content-inner">
<div class="breadcrumbs ace-save-state" id="breadcrumbs">
<ul class="breadcrumb">
<li>
<i class="ace-icon fa fa-home home-icon"></i>
<a href="../doctor/index">首页</a>
</li>
<li class="active">个人信息页面</li>
</ul><!-- /.breadcrumb -->
</div>
<div class="page-content">
<div class="page-header">
<h1>个人信息</h1>
</div><!-- /.page-header -->
<c:choose>
<c:when test="${echo != null}">
<div class="alert alert-info">
<button class="close" data-dismiss="alert">
<i class="ace-icon fa fa-times"></i>
</button>
<i class="ace-icon fa fa-hand-o-right"></i>
${echo}
</div>
</c:when>
</c:choose>
<div class="row">
<div class="col-xs-12">
<!-- PAGE CONTENT BEGINS -->
<div>
<div id="user-profile-3" class="user-profile row">
<div class="col-sm-offset-1 col-sm-10">
<div class="tabbable">
<ul class="nav nav-tabs padding-16">
<li class="active">
<a data-toggle="tab" href="#edit-basic">
<i class="green ace-icon fa fa-pencil-square-o bigger-125"></i>
基本信息
</a>
</li>
<li>
<a data-toggle="tab" href="#edit-password">
<i class="blue ace-icon fa fa-key bigger-125"></i>
更改密码
</a>
</li>
</ul>
<div class="tab-content profile-edit-tab-content">
<div id="edit-basic" class="tab-pane in active">
<div class="tabbable">
<div class="tab-content no-border padding-24">
<div id="home" class="tab-pane in active">
<div class="row">
<div class="col-xs-12 col-sm-3 center">
<span class="profile-picture">
<img class="editable img-responsive" id="avatar" src="../assets/images/avatars/${currentDoctor.dsex ? 'Male' : 'Female'}Doctor.png" alt="头像" />
</span>
</div><!-- /.col -->
<div class="col-xs-12 col-sm-9">
<h4 class="blue">
<span class="middle">&nbsp; ${currentDoctor.dname}</span>
<span class="label label-purple arrowed-in-right">
<i class="ace-icon fa fa-circle smaller-80 align-middle"></i>
医生
</span>
</h4>
<div class="profile-user-info">
<div class="profile-info-row">
<div class="profile-info-name"> 编号 </div>
<div class="profile-info-value">
<span>${currentDoctor.dno}</span>
</div>
</div>
<div class="profile-info-row">
<div class="profile-info-name"> 姓名 </div>
<div class="profile-info-value">
<span>${currentDoctor.dname}</span>
</div>
</div>
<div class="profile-info-row">
<div class="profile-info-name"> 性别 </div>
<div class="profile-info-value">
<span>${currentDoctor.dsex ? '男' : '女'}</span>
</div>
</div>
<div class="profile-info-row">
<div class="profile-info-name"> 年龄 </div>
<div class="profile-info-value">
<span>${currentDoctor.dage}</span>
</div>
</div>
</div>
</div><!-- /.col -->
</div><!-- /.row -->
</div><!-- /#home -->
</div>
</div>
</div>
<div id="edit-password" class="tab-pane">
<form action="../doctor/changeDpwd" method="post" class="form-horizontal">
<div class="space-20"></div>
<div class="form-group">
<label class="col-sm-3 control-label no-padding-right" for="form-field-pass1">新密码</label>
<div class="col-sm-9">
<input type="password" name="Dpwd1" required="required" id="form-field-pass1" />
</div>
</div>
<div class="space-4"></div>
<div class="form-group">
<label class="col-sm-3 control-label no-padding-right" for="form-field-pass2">确认密码</label>
<div class="col-sm-9">
<input type="password" name="Dpwd2" required="required" id="form-field-pass2" />
</div>
</div>
<div class="clearfix form-actions">
<div class="col-md-offset-3 col-md-9">
<button class="btn btn-info" type="submit">
<i class="ace-icon fa fa-check bigger-110"></i>
保存
</button>
&nbsp; &nbsp;
<button class="btn" type="reset">
<i class="ace-icon fa fa-undo bigger-110"></i>
重置
</button>
</div>
</div>
</form>
</div>
</div>
</div>
</div><!-- /.span -->
</div><!-- /.user-profile -->
</div>
<!-- PAGE CONTENT ENDS -->
</div><!-- /.col -->
</div><!-- /.row -->
</div><!-- /.page-content -->
</div>
</div><!-- /.main-content -->
<div class="footer">
<div class="footer-inner">
<div class="footer-content">
<span class="bigger-120">
<span class="blue bolder">医院药品库存管理系统</span>
DIMS &copy; 2019-2020
</span>
</div>
</div>
</div>
<a href="#" id="btn-scroll-up" class="btn-scroll-up btn btn-sm btn-inverse">
<i class="ace-icon fa fa-angle-double-up icon-only bigger-110"></i>
</a>
</div><!-- /.main-container -->
<!-- basic scripts -->
<!--[if !IE]> -->
<script src="../assets/js/jquery-2.1.4.min.js"></script>
<!-- <![endif]-->
<!--[if IE]>
<script src="../assets/js/jquery-1.11.3.min.js"></script>
<![endif]-->
<script type="text/javascript">
if('ontouchstart' in document.documentElement) document.write("<script src='../assets/js/jquery.mobile.custom.min.js'>"+"<"+"/script>");
</script>
<script src="../assets/js/bootstrap.min.js"></script>
<!-- page specific plugin scripts -->
<!--[if lte IE 8]>
<script src="../assets/js/excanvas.min.js"></script>
<![endif]-->
<script src="../assets/js/jquery-ui.custom.min.js"></script>
<script src="../assets/js/jquery.ui.touch-punch.min.js"></script>
<script src="../assets/js/jquery.gritter.min.js"></script>
<script src="../assets/js/bootbox.js"></script>
<script src="../assets/js/jquery.easypiechart.min.js"></script>
<script src="../assets/js/bootstrap-datepicker.min.js"></script>
<script src="../assets/js/jquery.hotkeys.index.min.js"></script>
<script src="../assets/js/bootstrap-wysiwyg.min.js"></script>
<script src="../assets/js/select2.min.js"></script>
<script src="../assets/js/spinbox.min.js"></script>
<script src="../assets/js/bootstrap-editable.min.js"></script>
<script src="../assets/js/ace-editable.min.js"></script>
<script src="../assets/js/jquery.maskedinput.min.js"></script>
<!-- ace scripts -->
<script src="../assets/js/ace-elements.min.js"></script>
<script src="../assets/js/ace.min.js"></script>
<!-- inline scripts related to this page -->
<script type="text/javascript">
jQuery(function($) {
//editables on first profile page
$.fn.editable.defaults.mode = 'inline';
$.fn.editableform.loading = "<div class='editableform-loading'><i class='ace-icon fa fa-spinner fa-spin fa-2x light-blue'></i></div>";
$.fn.editableform.buttons = '<button type="submit" class="btn btn-info editable-submit"><i class="ace-icon fa fa-check"></i></button>'+
'<button type="button" class="btn editable-cancel"><i class="ace-icon fa fa-times"></i></button>';
//editables
//text editable
$('#username')
.editable({
type: 'text',
name: 'username'
});
//select2 editable
var countries = [];
$.each({ "CA": "Canada", "IN": "India", "NL": "Netherlands", "TR": "Turkey", "US": "United States"}, function(k, v) {
countries.push({id: k, text: v});
});
var cities = [];
cities["CA"] = [];
$.each(["Toronto", "Ottawa", "Calgary", "Vancouver"], function(k, v){
cities["CA"].push({id: v, text: v});
});
cities["IN"] = [];
$.each(["Delhi", "Mumbai", "Bangalore"], function(k, v){
cities["IN"].push({id: v, text: v});
});
cities["NL"] = [];
$.each(["Amsterdam", "Rotterdam", "The Hague"], function(k, v){
cities["NL"].push({id: v, text: v});
});
cities["TR"] = [];
$.each(["Ankara", "Istanbul", "Izmir"], function(k, v){
cities["TR"].push({id: v, text: v});
});
cities["US"] = [];
$.each(["New York", "Miami", "Los Angeles", "Chicago", "Wysconsin"], function(k, v){
cities["US"].push({id: v, text: v});
});
var currentValue = "NL";
$('#country').editable({
type: 'select2',
value : 'NL',
//onblur:'ignore',
source: countries,
select2: {
'width': 140
},
success: function(response, newValue) {
if(currentValue == newValue) return;
currentValue = newValue;
var new_source = (!newValue || newValue == "") ? [] : cities[newValue];
//the destroy method is causing errors in x-editable v1.4.6+
//it worked fine in v1.4.5
/**
$('#city').editable('destroy').editable({
type: 'select2',
source: new_source
}).editable('setValue', null);
*/
//so we remove it altogether and create a new element
var city = $('#city').removeAttr('id').get(0);
$(city).clone().attr('id', 'city').text('Select City').editable({
type: 'select2',
value : null,
//onblur:'ignore',
source: new_source,
select2: {
'width': 140
}
}).insertAfter(city);//insert it after previous instance
$(city).remove();//remove previous instance
}
});
$('#city').editable({
type: 'select2',
value : 'Amsterdam',
//onblur:'ignore',
source: cities[currentValue],
select2: {
'width': 140
}
});
//custom date editable
$('#signup').editable({
type: 'adate',
date: {
//datepicker plugin options
format: 'yyyy/mm/dd',
viewformat: 'yyyy/mm/dd',
weekStart: 1
//,nativeUI: true//if true and browser support input[type=date], native browser control will be used
//,format: 'yyyy-mm-dd',
//viewformat: 'yyyy-mm-dd'
}
})
$('#age').editable({
type: 'spinner',
name : 'age',
spinner : {
min : 16,
max : 99,
step: 1,
on_sides: true
//,nativeUI: true//if true and browser support input[type=number], native browser control will be used
}
});
$('#login').editable({
type: 'slider',
name : 'login',
slider : {
min : 1,
max: 50,
width: 100
//,nativeUI: true//if true and browser support input[type=range], native browser control will be used
},
success: function(response, newValue) {
if(parseInt(newValue) == 1)
$(this).html(newValue + " hour ago");
else $(this).html(newValue + " hours ago");
}
});
$('#about').editable({
mode: 'inline',
type: 'wysiwyg',
name : 'about',
wysiwyg : {
//css : {'max-width':'300px'}
},
success: function(response, newValue) {
}
});
// *** editable avatar *** //
try {//ie8 throws some harmless exceptions, so let's catch'em
//first let's add a fake appendChild method for Image element for browsers that have a problem with this
//because editable plugin calls appendChild, and it causes errors on IE at unpredicted points
try {
document.createElement('IMG').appendChild(document.createElement('B'));
} catch(e) {
Image.prototype.appendChild = function(el){}
}
var last_gritter
$('#avatar').editable({
type: 'image',
name: 'avatar',
value: null,
//onblur: 'ignore', //don't reset or hide editable onblur?!
image: {
//specify ace file input plugin's options here
btn_choose: 'Change Avatar',
droppable: true,
maxSize: 110000,//~100Kb
//and a few extra ones here
name: 'avatar',//put the field name here as well, will be used inside the custom plugin
on_error : function(error_type) {//on_error function will be called when the selected file has a problem
if(last_gritter) $.gritter.remove(last_gritter);
if(error_type == 1) {//file format error
last_gritter = $.gritter.add({
title: 'File is not an image!',
text: 'Please choose a jpg|gif|png image!',
class_name: 'gritter-error gritter-center'
});
} else if(error_type == 2) {//file size rror
last_gritter = $.gritter.add({
title: 'File too big!',
text: 'Image size should not exceed 100Kb!',
class_name: 'gritter-error gritter-center'
});
}
else {//other error
}
},
on_success : function() {
$.gritter.removeAll();
}
},
url: function(params) {
// ***UPDATE AVATAR HERE*** //
//for a working upload example you can replace the contents of this function with
//examples/profile-avatar-update.js
var deferred = new $.Deferred
var value = $('#avatar').next().find('input[type=hidden]:eq(0)').val();
if(!value || value.length == 0) {
deferred.resolve();
return deferred.promise();
}
//dummy upload
setTimeout(function(){
if("FileReader" in window) {
//for browsers that have a thumbnail of selected image
var thumb = $('#avatar').next().find('img').data('thumb');
if(thumb) $('#avatar').get(0).src = thumb;
}
deferred.resolve({'status':'OK'});
if(last_gritter) $.gritter.remove(last_gritter);
last_gritter = $.gritter.add({
title: 'Avatar Updated!',
text: 'Uploading to server can be easily implemented. A working example is included with the template.',
class_name: 'gritter-info gritter-center'
});
}, parseInt(Math.random() * 800 + 800))
return deferred.promise();
// ***END OF UPDATE AVATAR HERE*** //
},
success: function(response, newValue) {
}
})
}catch(e) {}
/**
//let's display edit mode by default?
var blank_image = true;//somehow you determine if image is initially blank or not, or you just want to display file input at first
if(blank_image) {
$('#avatar').editable('show').on('hidden', function(e, reason) {
if(reason == 'onblur') {
$('#avatar').editable('show');
return;
}
$('#avatar').off('hidden');
})
}
*/
//another option is using modals
$('#avatar2').on('click', function(){
var modal =
'<div class="modal fade">\
<div class="modal-dialog">\
<div class="modal-content">\
<div class="modal-header">\
<button type="button" class="close" data-dismiss="modal">&times;</button>\
<h4 class="blue">Change Avatar</h4>\
</div>\
\
<form class="no-margin">\
<div class="modal-body">\
<div class="space-4"></div>\
<div style="width:75%;margin-left:12%;"><input type="file" name="file-input" /></div>\
</div>\
\
<div class="modal-footer center">\
<button type="submit" class="btn btn-sm btn-success"><i class="ace-icon fa fa-check"></i> Submit</button>\
<button type="button" class="btn btn-sm" data-dismiss="modal"><i class="ace-icon fa fa-times"></i> Cancel</button>\
</div>\
</form>\
</div>\
</div>\
</div>';
var modal = $(modal);
modal.modal("show").on("hidden", function(){
modal.remove();
});
var working = false;
var form = modal.find('form:eq(0)');
var file = form.find('input[type=file]').eq(0);
file.ace_file_input({
style:'well',
btn_choose:'Click to choose new avatar',
btn_change:null,
no_icon:'ace-icon fa fa-picture-o',
thumbnail:'small',
before_remove: function() {
//don't remove/reset files while being uploaded
return !working;
},
allowExt: ['jpg', 'jpeg', 'png', 'gif'],
allowMime: ['image/jpg', 'image/jpeg', 'image/png', 'image/gif']
});
form.on('submit', function(){
if(!file.data('ace_input_files')) return false;
file.ace_file_input('disable');
form.find('button').attr('disabled', 'disabled');
form.find('.modal-body').append("<div class='center'><i class='ace-icon fa fa-spinner fa-spin bigger-150 orange'></i></div>");
var deferred = new $.Deferred;
working = true;
deferred.done(function() {
form.find('button').removeAttr('disabled');
form.find('input[type=file]').ace_file_input('enable');
form.find('.modal-body > :last-child').remove();
modal.modal("hide");
var thumb = file.next().find('img').data('thumb');
if(thumb) $('#avatar2').get(0).src = thumb;
working = false;
});
setTimeout(function(){
deferred.resolve();
}, parseInt(Math.random() * 800 + 800));
return false;
});
});
//////////////////////////////
$('#profile-feed-1').ace_scroll({
height: '250px',
mouseWheelLock: true,
alwaysVisible : true
});
$('a[ data-original-title]').tooltip();
$('.easy-pie-chart.percentage').each(function(){
var barColor = $(this).data('color') || '#555';
var trackColor = '#E2E2E2';
var size = parseInt($(this).data('size')) || 72;
$(this).easyPieChart({
barColor: barColor,
trackColor: trackColor,
scaleColor: false,
lineCap: 'butt',
lineWidth: parseInt(size/10),
animate:false,
size: size
}).css('color', barColor);
});
///////////////////////////////////////////
//right & left position
//show the user info on right or left depending on its position
$('#user-profile-2 .memberdiv').on('mouseenter touchstart', function(){
var $this = $(this);
var $parent = $this.closest('.tab-pane');
var off1 = $parent.offset();
var w1 = $parent.width();
var off2 = $this.offset();
var w2 = $this.width();
var place = 'left';
if( parseInt(off2.left) < parseInt(off1.left) + parseInt(w1 / 2) ) place = 'right';
$this.find('.popover').removeClass('right left').addClass(place);
}).on('click', function(e) {
e.preventDefault();
});
///////////////////////////////////////////
$('#user-profile-3')
.find('input[type=file]').ace_file_input({
style:'well',
btn_choose:'Change avatar',
btn_change:null,
no_icon:'ace-icon fa fa-picture-o',
thumbnail:'large',
droppable:true,
allowExt: ['jpg', 'jpeg', 'png', 'gif'],
allowMime: ['image/jpg', 'image/jpeg', 'image/png', 'image/gif']
})
.end().find('button[type=reset]').on(ace.click_event, function(){
$('#user-profile-3 input[type=file]').ace_file_input('reset_input');
})
.end().find('.date-picker').datepicker().next().on(ace.click_event, function(){
$(this).prev().focus();
})
$('.input-mask-phone').mask('(999) 999-9999');
$('#user-profile-3').find('input[type=file]').ace_file_input('show_file_list', [{type: 'image', name: $('#avatar').attr('src')}]);
////////////////////
//change profile
$('[data-toggle="buttons"] .btn').on('click', function(e){
var target = $(this).find('input[type=radio]');
var which = parseInt(target.val());
$('.user-profile').parent().addClass('hide');
$('#user-profile-'+which).parent().removeClass('hide');
});
/////////////////////////////////////
$(document).one('ajaxloadstart.page', function(e) {
//in ajax mode, remove remaining elements before leaving page
try {
$('.editable').editable('destroy');
} catch(e) {}
$('[class*=select2]').remove();
});
});
</script>
</body>
</html>

View file

@ -0,0 +1,535 @@
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<meta charset="utf-8" />
<title>查看库存药品列表 - 医院药品库存管理系统</title>
<meta name="description" content="查看药品库存列表 - 医院药品库存管理系统" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0" />
<!-- bootstrap & fontawesome -->
<link rel="stylesheet" href="../assets/css/bootstrap.min.css" />
<link rel="stylesheet" href="../assets/font-awesome/4.5.0/css/font-awesome.min.css" />
<!-- page specific plugin styles -->
<!-- text fonts -->
<link rel="stylesheet" href="../assets/css/fonts.googleapis.com.css" />
<!-- ace styles -->
<link rel="stylesheet" href="../assets/css/ace.min.css" class="ace-main-stylesheet" id="main-ace-style" />
<!--[if lte IE 9]>
<link rel="stylesheet" href="../assets/css/ace-part2.min.css" class="ace-main-stylesheet" />
<![endif]-->
<link rel="stylesheet" href="../assets/css/ace-skins.min.css" />
<link rel="stylesheet" href="../assets/css/ace-rtl.min.css" />
<!--[if lte IE 9]>
<link rel="stylesheet" href="../assets/css/ace-ie.min.css" />
<![endif]-->
<!-- inline styles related to this page -->
<!-- ace settings handler -->
<script src="../assets/js/ace-extra.min.js"></script>
<!-- HTML5shiv and Respond.js for IE8 to support HTML5 elements and media queries -->
<!--[if lte IE 8]>
<script src="../assets/js/html5shiv.min.js"></script>
<script src="../assets/js/respond.min.js"></script>
<![endif]-->
</head>
<body class="no-skin">
<div id="navbar" class="navbar navbar-default ace-save-state">
<div class="navbar-container ace-save-state" id="navbar-container">
<button type="button" class="navbar-toggle menu-toggler pull-left" id="menu-toggler" data-target="#sidebar">
<span class="sr-only">Toggle sidebar</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<div class="navbar-header pull-left">
<a href="../doctor/index" class="navbar-brand">
<small>
<i class="fa fa-leaf"></i>
医院药品库存管理系统 DIMS
</small>
</a>
</div>
<div class="navbar-buttons navbar-header pull-right" role="navigation">
<ul class="nav ace-nav">
<li class="grey dropdown-modal">
<a data-toggle="dropdown" class="dropdown-toggle" href="#">
<i class="ace-icon fa fa-tasks"></i>
<span class="badge badge-grey">3</span>
</a>
<ul class="dropdown-menu-right dropdown-navbar dropdown-menu dropdown-caret dropdown-close">
<li class="dropdown-header">
<i class="ace-icon fa fa-check"></i>
统计信息
</li>
<li class="dropdown-content">
<ul class="dropdown-menu dropdown-navbar">
<li>
<a href="../doctor/query-solved-rx-list">
<div class="clearfix">
<span class="pull-left">已处理处方数目占比</span>
<span class="pull-right">
<fmt:formatNumber value="${solvedRxsNum / (solvedRxsNum + unsolvedRxsNum) * 100}" pattern="#.00"/>
%
</span>
</div>
<div class="progress progress-mini progress-striped active">
<div style="width:${solvedRxsNum / (solvedRxsNum + unsolvedRxsNum) * 100}%" class="progress-bar"></div>
</div>
</a>
</li>
<li>
<a href="../doctor/query-unsolved-rx-list">
<div class="clearfix">
<span class="pull-left">未处理处方数目占比</span>
<span class="pull-right">
<fmt:formatNumber value="${unsolvedRxsNum / (solvedRxsNum + unsolvedRxsNum) * 100}" pattern="#.00"/>
%
</span>
</div>
<div class="progress progress-mini progress-striped active">
<div style="width:${unsolvedRxsNum / (solvedRxsNum + unsolvedRxsNum) * 100}%" class="progress-bar progress-bar-warning"></div>
</div>
</a>
</li>
<li>
<a href="#">
<div class="clearfix">
<span class="pull-left">由我开出的处方数目占比</span>
<span class="pull-right">
<fmt:formatNumber value="${myPrescribeRxsNum / (solvedRxsNum + unsolvedRxsNum) * 100}" pattern="#.00"/>
%
</span>
</div>
<div class="progress progress-mini progress-striped active">
<div style="width:${myPrescribeRxsNum / (solvedRxsNum + unsolvedRxsNum) * 100}%" class="progress-bar progress-bar-success"></div>
</div>
</a>
</li>
</ul>
</li>
</ul>
</li>
<li class="light-blue dropdown-modal">
<a data-toggle="dropdown" href="#" class="dropdown-toggle">
<img class="nav-user-photo" src="../assets/images/avatars/${currentDoctor.dsex ? 'Male' : 'Female'}Doctor.png" alt="头像" />
<span class="user-info">
<small>欢迎,</small>
${currentDoctor.dname}
</span>
<i class="ace-icon fa fa-caret-down"></i>
</a>
<ul class="user-menu dropdown-menu-right dropdown-menu dropdown-yellow dropdown-caret dropdown-close">
<li>
<a href="../doctor/profile">
<i class="ace-icon fa fa-user"></i>
个人信息
</a>
</li>
<li class="divider"></li>
<li>
<a href="../logout">
<i class="ace-icon fa fa-power-off"></i>
登出
</a>
</li>
</ul>
</li>
</ul>
</div>
</div><!-- /.navbar-container -->
</div>
<div class="main-container ace-save-state" id="main-container">
<script type="text/javascript">
try{ace.settings.loadState('main-container')}catch(e){}
</script>
<div id="sidebar" class="sidebar responsive ace-save-state">
<script type="text/javascript">
try{ace.settings.loadState('sidebar')}catch(e){}
</script>
<div class="sidebar-shortcuts" id="sidebar-shortcuts">
<div class="sidebar-shortcuts-large" id="sidebar-shortcuts-large">
<button class="btn btn-success">
<i class="ace-icon fa fa-signal"></i>
</button>
<button class="btn btn-info">
<i class="ace-icon fa fa-pencil"></i>
</button>
<button class="btn btn-warning">
<i class="ace-icon fa fa-users"></i>
</button>
<button class="btn btn-danger">
<i class="ace-icon fa fa-cogs"></i>
</button>
</div>
<div class="sidebar-shortcuts-mini" id="sidebar-shortcuts-mini">
<span class="btn btn-success"></span>
<span class="btn btn-info"></span>
<span class="btn btn-warning"></span>
<span class="btn btn-danger"></span>
</div>
</div><!-- /.sidebar-shortcuts -->
<ul class="nav nav-list">
<li class="">
<a href="../doctor/welcome">
<i class="menu-icon fa fa-tachometer"></i>
<span class="menu-text"> 欢迎页面 </span>
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="../doctor/profile">
<i class="menu-icon fa fa-tag"></i>
<span class="menu-text"> 个人信息页面 </span>
</a>
<b class="arrow"></b>
</li>
<li class="active">
<a href="../doctor/query-drug-list">
<i class="menu-icon fa fa-list"></i>
<span class="menu-text"> 查看库存药品列表 </span>
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="../doctor/add-rx-form">
<i class="menu-icon fa fa-pencil-square-o"></i>
<span class="menu-text"> 填写新建处方表单 </span>
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="#" class="dropdown-toggle">
<i class="menu-icon fa fa-list-alt"></i>
<span class="menu-text"> 查看处方列表 </span>
<b class="arrow fa fa-angle-down"></b>
</a>
<b class="arrow"></b>
<ul class="submenu">
<li class="">
<a href="../doctor/query-unsolved-rx-list">
<i class="menu-icon fa fa-caret-right"></i>
查看未处理处方列表
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="../doctor/query-solved-rx-list">
<i class="menu-icon fa fa-caret-right"></i>
查看已处理处方列表
</a>
<b class="arrow"></b>
</li>
</ul>
</li>
</ul><!-- /.nav-list -->
<div class="sidebar-toggle sidebar-collapse" id="sidebar-collapse">
<i id="sidebar-toggle-icon" class="ace-icon fa fa-angle-double-left ace-save-state" data-icon1="ace-icon fa fa-angle-double-left" data-icon2="ace-icon fa fa-angle-double-right"></i>
</div>
</div>
<div class="main-content">
<div class="main-content-inner">
<div class="breadcrumbs ace-save-state" id="breadcrumbs">
<ul class="breadcrumb">
<li>
<i class="ace-icon fa fa-home home-icon"></i>
<a href="../doctor/index">首页</a>
</li>
<li class="active">查看库存药品列表</li>
</ul><!-- /.breadcrumb -->
</div>
<div class="page-content">
<div class="page-header">
<h1>
查看库存药品列表
<small>
<i class="ace-icon fa fa-angle-double-right"></i>
库存药品列表
</small>
</h1>
</div><!-- /.page-header -->
<c:choose>
<c:when test="${echo != null}">
<div class="alert alert-info">
<button class="close" data-dismiss="alert">
<i class="ace-icon fa fa-times"></i>
</button>
<i class="ace-icon fa fa-hand-o-right"></i>
${echo}
</div>
</c:when>
</c:choose>
<div class="row">
<div class="col-xs-12">
<!-- PAGE CONTENT BEGINS -->
<div class="row">
<div class="col-xs-12">
<div class="clearfix">
<div class="pull-right tableTools-container"></div>
</div>
<div class="table-header">
查询结果
</div>
<!-- div.table-responsive -->
<!-- div.dataTables_borderWrap -->
<div>
<table id="dynamic-table" class="table table-striped table-bordered table-hover">
<thead>
<tr>
<th>药品编号</th>
<th>药品名称</th>
<th>药品保质期 (天数)</th>
<th>药品数量</th>
</tr>
</thead>
<tbody>
<c:forEach items="${drugs}" var="drug">
<tr>
<td>${drug.PDno}</td>
<td>${drug.PDname}</td>
<td>${drug.PDlife}</td>
<td>${drug.PDnum}</td>
</tr>
</c:forEach>
</tbody>
</table>
</div>
</div>
</div>
<!-- PAGE CONTENT ENDS -->
</div><!-- /.col -->
</div><!-- /.row -->
</div><!-- /.page-content -->
</div>
</div><!-- /.main-content -->
<div class="footer">
<div class="footer-inner">
<div class="footer-content">
<span class="bigger-120">
<span class="blue bolder">医院药品库存管理系统</span>
DIMS &copy; 2019-2020
</span>
</div>
</div>
</div>
<a href="#" id="btn-scroll-up" class="btn-scroll-up btn btn-sm btn-inverse">
<i class="ace-icon fa fa-angle-double-up icon-only bigger-110"></i>
</a>
</div><!-- /.main-container -->
<!-- basic scripts -->
<!--[if !IE]> -->
<script src="../assets/js/jquery-2.1.4.min.js"></script>
<!-- <![endif]-->
<!--[if IE]>
<script src="../assets/js/jquery-1.11.3.min.js"></script>
<![endif]-->
<script type="text/javascript">
if('ontouchstart' in document.documentElement) document.write("<script src='../assets/js/jquery.mobile.custom.min.js'>"+"<"+"/script>");
</script>
<script src="../assets/js/bootstrap.min.js"></script>
<!-- page specific plugin scripts -->
<script src="../assets/js/jquery.dataTables.min.js"></script>
<script src="../assets/js/jquery.dataTables.bootstrap.min.js"></script>
<script src="../assets/js/dataTables.buttons.min.js"></script>
<script src="../assets/js/buttons.flash.min.js"></script>
<script src="../assets/js/buttons.html5.min.js"></script>
<script src="../assets/js/buttons.print.min.js"></script>
<script src="../assets/js/buttons.colVis.min.js"></script>
<script src="../assets/js/dataTables.select.min.js"></script>
<!-- ace scripts -->
<script src="../assets/js/ace-elements.min.js"></script>
<script src="../assets/js/ace.min.js"></script>
<!-- inline scripts related to this page -->
<script type="text/javascript">
jQuery(function($) {
//initiate dataTables plugin
var myTable =
$('#dynamic-table')
//.wrap("<div class='dataTables_borderWrap' />") //if you are applying horizontal scrolling (sScrollX)
.DataTable( {
bAutoWidth: false,
"aoColumns": [ null, null, null, null ],
"aaSorting": [],
"iDisplayLength": 5,
"aLengthMenu": [
[5, 10, 15, 20, 25, 30, 35, 40, 45, 50, -1],
["5 条", "10 条", "15 条", "20 条", "25 条", "30 条", "35 条", "40 条", "45 条", "50 条", "全部"]
],
"oLanguage": { // 自定义提示信息
"sLengthMenu": "每页显示 _MENU_ 记录",
"sZeroRecords": "抱歉,没有找到",
"sInfo": "从 _START_ 到 _END_ / 共 _TOTAL_ 条数据 ",
"sInfoEmpty": "没有数据",
"sInfoFiltered": "(从 _MAX_ 条数据中检索) ",
"sSearch": "检索",
"oPaginate": {
"sFirst": "首页",
"sPrevious": "前一页",
"sNext": "后一页",
"sLast": "尾页"
}
}
//"bProcessing": true,
//"bServerSide": true,
//"sAjaxSource": "http://127.0.0.1/table.php" ,
//,
//"sScrollY": "200px",
//"bPaginate": false,
//"sScrollX": "100%",
//"sScrollXInner": "120%",
//"bScrollCollapse": true,
//Note: if you are applying horizontal scrolling (sScrollX) on a ".table-bordered"
//you may want to wrap the table inside a "div.dataTables_borderWrap" element
//"iDisplayLength": 50
} );
$.fn.dataTable.Buttons.defaults.dom.container.className = 'dt-buttons btn-overlap btn-group btn-overlap';
new $.fn.dataTable.Buttons( myTable, {
buttons: [
{
"extend": "colvis",
"text": "<i class='fa fa-search bigger-110 blue'></i> <span class='hidden'>显示/隐藏列</span>",
"className": "btn btn-white btn-primary btn-bold",
columns: ':not(:first):not(:last)'
},
{
"extend": "copy",
"text": "<i class='fa fa-copy bigger-110 pink'></i> <span class='hidden'>复制到剪贴板</span>",
"className": "btn btn-white btn-primary btn-bold"
},
{
"extend": "csv",
"text": "<i class='fa fa-database bigger-110 orange'></i> <span class='hidden'>导出到 CSV 文件</span>",
"className": "btn btn-white btn-primary btn-bold"
},
/* {
"extend": "excel",
"text": "<i class='fa fa-file-excel-o bigger-110 green'></i> <span class='hidden'>导出到 Excel 文件</span>",
"className": "btn btn-white btn-primary btn-bold"
},
{
"extend": "pdf",
"text": "<i class='fa fa-file-pdf-o bigger-110 red'></i> <span class='hidden'>导出到 PDF 文件</span>",
"className": "btn btn-white btn-primary btn-bold"
}, */
{
"extend": "print",
"text": "<i class='fa fa-print bigger-110 grey'></i> <span class='hidden'>打印</span>",
"className": "btn btn-white btn-primary btn-bold",
autoPrint: false
}
]
} );
myTable.buttons().container().appendTo( $('.tableTools-container') );
//style the message box
var defaultCopyAction = myTable.button(1).action();
myTable.button(1).action(function (e, dt, button, config) {
defaultCopyAction(e, dt, button, config);
$('.dt-button-info').addClass('gritter-item-wrapper gritter-info gritter-center white');
});
var defaultColvisAction = myTable.button(0).action();
myTable.button(0).action(function (e, dt, button, config) {
defaultColvisAction(e, dt, button, config);
if($('.dt-button-collection > .dropdown-menu').length == 0) {
$('.dt-button-collection')
.wrapInner('<ul class="dropdown-menu dropdown-light dropdown-caret dropdown-caret" />')
.find('a').attr('href', '#').wrap("<li />")
}
$('.dt-button-collection').appendTo('.tableTools-container .dt-buttons')
});
////
setTimeout(function() {
$($('.tableTools-container')).find('a.dt-button').each(function() {
var div = $(this).find(' > div').first();
if(div.length == 1) div.tooltip({container: 'body', title: div.parent().text()});
else $(this).tooltip({container: 'body', title: $(this).text()});
});
}, 500);
myTable.on( 'select', function ( e, dt, type, index ) {
if ( type === 'row' ) {
$( myTable.row( index ).node() ).find('input:checkbox').prop('checked', true);
}
} );
myTable.on( 'deselect', function ( e, dt, type, index ) {
if ( type === 'row' ) {
$( myTable.row( index ).node() ).find('input:checkbox').prop('checked', false);
}
} );
/////////////////////////////////
//table checkboxes
$('th input[type=checkbox], td input[type=checkbox]').prop('checked', false);
//select/deselect all rows according to table header checkbox
$('#dynamic-table > thead > tr > th input[type=checkbox], #dynamic-table_wrapper input[type=checkbox]').eq(0).on('click', function(){
var th_checked = this.checked;//checkbox inside "TH" table header
$('#dynamic-table').find('tbody > tr').each(function(){
var row = this;
if(th_checked) myTable.row(row).select();
else myTable.row(row).deselect();
});
});
//select/deselect a row when the checkbox is checked/unchecked
$('#dynamic-table').on('click', 'td input[type=checkbox]', function(){
var row = $(this).closest('tr').get(0);
if(this.checked) myTable.row(row).deselect();
else myTable.row(row).select();
});
$(document).on('click', '#dynamic-table .dropdown-toggle', function(e) {
e.stopImmediatePropagation();
e.stopPropagation();
e.preventDefault();
});
//And for the first simple table, which doesn't have TableTools or dataTables
//select/deselect all rows according to table header checkbox
var active_class = 'active';
$('#simple-table > thead > tr > th input[type=checkbox]').eq(0).on('click', function(){
var th_checked = this.checked;//checkbox inside "TH" table header
$(this).closest('table').find('tbody > tr').each(function(){
var row = this;
if(th_checked) $(row).addClass(active_class).find('input[type=checkbox]').eq(0).prop('checked', true);
else $(row).removeClass(active_class).find('input[type=checkbox]').eq(0).prop('checked', false);
});
});
//select/deselect a row when the checkbox is checked/unchecked
$('#simple-table').on('click', 'td input[type=checkbox]', function(){
var $row = $(this).closest('tr');
if($row.is('.detail-row ')) return;
if(this.checked) $row.addClass(active_class);
else $row.removeClass(active_class);
});
/********************************/
//add tooltip for small view action buttons in dropdown menu
$('[data-rel="tooltip"]').tooltip({placement: tooltip_placement});
//tooltip placement on right or left
function tooltip_placement(context, source) {
var $source = $(source);
var $parent = $source.closest('table')
var off1 = $parent.offset();
var w1 = $parent.width();
var off2 = $source.offset();
//var w2 = $source.width();
if( parseInt(off2.left) < parseInt(off1.left) + parseInt(w1 / 2) ) return 'right';
return 'left';
}
/***************/
$('.show-details-btn').on('click', function(e) {
e.preventDefault();
$(this).closest('tr').next().toggleClass('open');
$(this).find(ace.vars['.icon']).toggleClass('fa-angle-double-down').toggleClass('fa-angle-double-up');
});
/***************/
/**
//add horizontal scrollbars to a simple table
$('#simple-table').css({'width':'2000px', 'max-width': 'none'}).wrap('<div style="width: 1000px;" />').parent().ace_scroll(
{
horizontal: true,
styleClass: 'scroll-top scroll-dark scroll-visible',//show the scrollbars on top(default is bottom)
size: 2000,
mouseWheelLock: true
}
).css('padding-top', '12px');
*/
})
</script>
</body>
</html>

View file

@ -0,0 +1,574 @@
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<meta charset="utf-8" />
<title>查看已处理处方列表 - 医院药品库存管理系统</title>
<meta name="description" content="查看已处理处方列表 - 医院药品库存管理系统" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0" />
<!-- bootstrap & fontawesome -->
<link rel="stylesheet" href="../assets/css/bootstrap.min.css" />
<link rel="stylesheet" href="../assets/font-awesome/4.5.0/css/font-awesome.min.css" />
<!-- page specific plugin styles -->
<!-- text fonts -->
<link rel="stylesheet" href="../assets/css/fonts.googleapis.com.css" />
<!-- ace styles -->
<link rel="stylesheet" href="../assets/css/ace.min.css" class="ace-main-stylesheet" id="main-ace-style" />
<!--[if lte IE 9]>
<link rel="stylesheet" href="../assets/css/ace-part2.min.css" class="ace-main-stylesheet" />
<![endif]-->
<link rel="stylesheet" href="../assets/css/ace-skins.min.css" />
<link rel="stylesheet" href="../assets/css/ace-rtl.min.css" />
<!--[if lte IE 9]>
<link rel="stylesheet" href="../assets/css/ace-ie.min.css" />
<![endif]-->
<!-- inline styles related to this page -->
<!-- ace settings handler -->
<script src="../assets/js/ace-extra.min.js"></script>
<!-- HTML5shiv and Respond.js for IE8 to support HTML5 elements and media queries -->
<!--[if lte IE 8]>
<script src="../assets/js/html5shiv.min.js"></script>
<script src="../assets/js/respond.min.js"></script>
<![endif]-->
</head>
<body class="no-skin">
<div id="navbar" class="navbar navbar-default ace-save-state">
<div class="navbar-container ace-save-state" id="navbar-container">
<button type="button" class="navbar-toggle menu-toggler pull-left" id="menu-toggler" data-target="#sidebar">
<span class="sr-only">Toggle sidebar</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<div class="navbar-header pull-left">
<a href="../doctor/index" class="navbar-brand">
<small>
<i class="fa fa-leaf"></i>
医院药品库存管理系统 DIMS
</small>
</a>
</div>
<div class="navbar-buttons navbar-header pull-right" role="navigation">
<ul class="nav ace-nav">
<li class="grey dropdown-modal">
<a data-toggle="dropdown" class="dropdown-toggle" href="#">
<i class="ace-icon fa fa-tasks"></i>
<span class="badge badge-grey">3</span>
</a>
<ul class="dropdown-menu-right dropdown-navbar dropdown-menu dropdown-caret dropdown-close">
<li class="dropdown-header">
<i class="ace-icon fa fa-check"></i>
统计信息
</li>
<li class="dropdown-content">
<ul class="dropdown-menu dropdown-navbar">
<li>
<a href="../doctor/query-solved-rx-list">
<div class="clearfix">
<span class="pull-left">已处理处方数目占比</span>
<span class="pull-right">
<fmt:formatNumber value="${solvedRxsNum / (solvedRxsNum + unsolvedRxsNum) * 100}" pattern="#.00"/>
%
</span>
</div>
<div class="progress progress-mini progress-striped active">
<div style="width:${solvedRxsNum / (solvedRxsNum + unsolvedRxsNum) * 100}%" class="progress-bar"></div>
</div>
</a>
</li>
<li>
<a href="../doctor/query-unsolved-rx-list">
<div class="clearfix">
<span class="pull-left">未处理处方数目占比</span>
<span class="pull-right">
<fmt:formatNumber value="${unsolvedRxsNum / (solvedRxsNum + unsolvedRxsNum) * 100}" pattern="#.00"/>
%
</span>
</div>
<div class="progress progress-mini progress-striped active">
<div style="width:${unsolvedRxsNum / (solvedRxsNum + unsolvedRxsNum) * 100}%" class="progress-bar progress-bar-warning"></div>
</div>
</a>
</li>
<li>
<a href="#">
<div class="clearfix">
<span class="pull-left">由我开出的处方数目占比</span>
<span class="pull-right">
<fmt:formatNumber value="${myPrescribeRxsNum / (solvedRxsNum + unsolvedRxsNum) * 100}" pattern="#.00"/>
%
</span>
</div>
<div class="progress progress-mini progress-striped active">
<div style="width:${myPrescribeRxsNum / (solvedRxsNum + unsolvedRxsNum) * 100}%" class="progress-bar progress-bar-success"></div>
</div>
</a>
</li>
</ul>
</li>
</ul>
</li>
<li class="light-blue dropdown-modal">
<a data-toggle="dropdown" href="#" class="dropdown-toggle">
<img class="nav-user-photo" src="../assets/images/avatars/${currentDoctor.dsex ? 'Male' : 'Female'}Doctor.png" alt="头像" />
<span class="user-info">
<small>欢迎,</small>
${currentDoctor.dname}
</span>
<i class="ace-icon fa fa-caret-down"></i>
</a>
<ul class="user-menu dropdown-menu-right dropdown-menu dropdown-yellow dropdown-caret dropdown-close">
<li>
<a href="../doctor/profile">
<i class="ace-icon fa fa-user"></i>
个人信息
</a>
</li>
<li class="divider"></li>
<li>
<a href="../logout">
<i class="ace-icon fa fa-power-off"></i>
登出
</a>
</li>
</ul>
</li>
</ul>
</div>
</div><!-- /.navbar-container -->
</div>
<div class="main-container ace-save-state" id="main-container">
<script type="text/javascript">
try{ace.settings.loadState('main-container')}catch(e){}
</script>
<div id="sidebar" class="sidebar responsive ace-save-state">
<script type="text/javascript">
try{ace.settings.loadState('sidebar')}catch(e){}
</script>
<div class="sidebar-shortcuts" id="sidebar-shortcuts">
<div class="sidebar-shortcuts-large" id="sidebar-shortcuts-large">
<button class="btn btn-success">
<i class="ace-icon fa fa-signal"></i>
</button>
<button class="btn btn-info">
<i class="ace-icon fa fa-pencil"></i>
</button>
<button class="btn btn-warning">
<i class="ace-icon fa fa-users"></i>
</button>
<button class="btn btn-danger">
<i class="ace-icon fa fa-cogs"></i>
</button>
</div>
<div class="sidebar-shortcuts-mini" id="sidebar-shortcuts-mini">
<span class="btn btn-success"></span>
<span class="btn btn-info"></span>
<span class="btn btn-warning"></span>
<span class="btn btn-danger"></span>
</div>
</div><!-- /.sidebar-shortcuts -->
<ul class="nav nav-list">
<li class="">
<a href="../doctor/welcome">
<i class="menu-icon fa fa-tachometer"></i>
<span class="menu-text"> 欢迎页面 </span>
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="../doctor/profile">
<i class="menu-icon fa fa-tag"></i>
<span class="menu-text"> 个人信息页面 </span>
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="../doctor/query-drug-list">
<i class="menu-icon fa fa-list"></i>
<span class="menu-text"> 查看库存药品列表 </span>
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="../doctor/add-rx-form">
<i class="menu-icon fa fa-pencil-square-o"></i>
<span class="menu-text"> 填写新建处方表单 </span>
</a>
<b class="arrow"></b>
</li>
<li class="active open">
<a href="#" class="dropdown-toggle">
<i class="menu-icon fa fa-list-alt"></i>
<span class="menu-text"> 查看处方列表 </span>
<b class="arrow fa fa-angle-down"></b>
</a>
<b class="arrow"></b>
<ul class="submenu">
<li class="">
<a href="../doctor/query-unsolved-rx-list">
<i class="menu-icon fa fa-caret-right"></i>
查看未处理处方列表
</a>
<b class="arrow"></b>
</li>
<li class="active">
<a href="../doctor/query-solved-rx-list">
<i class="menu-icon fa fa-caret-right"></i>
查看已处理处方列表
</a>
<b class="arrow"></b>
</li>
</ul>
</li>
</ul><!-- /.nav-list -->
<div class="sidebar-toggle sidebar-collapse" id="sidebar-collapse">
<i id="sidebar-toggle-icon" class="ace-icon fa fa-angle-double-left ace-save-state" data-icon1="ace-icon fa fa-angle-double-left" data-icon2="ace-icon fa fa-angle-double-right"></i>
</div>
</div>
<div class="main-content">
<div class="main-content-inner">
<div class="breadcrumbs ace-save-state" id="breadcrumbs">
<ul class="breadcrumb">
<li>
<i class="ace-icon fa fa-home home-icon"></i>
<a href="../doctor/index">首页</a>
</li>
<li>
<a href="../doctor/query-unsolved-rx-list">查看处方列表</a>
</li>
<li class="active">查看已处理处方列表</li>
</ul><!-- /.breadcrumb -->
</div>
<div class="page-content">
<div class="page-header">
<h1>
查看已处理处方列表
<small>
<i class="ace-icon fa fa-angle-double-right"></i>
已处理处方列表
</small>
</h1>
</div><!-- /.page-header -->
<c:choose>
<c:when test="${echo != null}">
<div class="alert alert-info">
<button class="close" data-dismiss="alert">
<i class="ace-icon fa fa-times"></i>
</button>
<i class="ace-icon fa fa-hand-o-right"></i>
${echo}
</div>
</c:when>
</c:choose>
<div class="row">
<div class="col-xs-12">
<!-- PAGE CONTENT BEGINS -->
<div class="row">
<div class="col-xs-12">
<div class="clearfix">
<div class="pull-right tableTools-container"></div>
</div>
<div class="table-header">
查询结果
</div>
<!-- div.table-responsive -->
<!-- div.dataTables_borderWrap -->
<div>
<table id="dynamic-table" class="table table-striped table-bordered table-hover">
<thead>
<tr>
<th>处方编号</th>
<th>病人身份证号</th>
<th>开出医生编号</th>
<th>开出时间</th>
<th>处理护士编号</th>
<th>处理时间</th>
<th>操作</th>
</tr>
</thead>
<tbody>
<c:forEach items="${rxs}" var="rx">
<tr>
<td>
<a href="../doctor/query-specific-rx?Pno=${rx.pno}" title="查看该处方的具体明细">${rx.pno}</a>
</td>
<td>${rx.pid}</td>
<td>
<a href="../doctor/query-specific-doctor?Dno=${rx.dno}" title="查看该医生的处方明细">${rx.dno}</a>
</td>
<td>
<fmt:formatDate value="${rx.ptime}" pattern="yyyy 年 MM 月 dd 日 HH:mm:ss"/>
</td>
<td>${rx.nno}</td>
<td>
<fmt:formatDate value="${rx.htime}" pattern="yyyy 年 MM 月 dd 日 HH:mm:ss"/>
</td>
<td>
<div class="hidden-sm hidden-xs action-buttons">
<a class="blue" href="../doctor/query-specific-rx?Pno=${rx.pno}" title="查看该处方的具体明细">
<i class="ace-icon fa fa-search-plus bigger-130"></i>
</a>
</div>
<div class="hidden-md hidden-lg">
<div class="inline pos-rel">
<button class="btn btn-minier btn-yellow dropdown-toggle" data-toggle="dropdown" data-position="auto">
<i class="ace-icon fa fa-caret-down icon-only bigger-120"></i>
</button>
<ul class="dropdown-menu dropdown-only-icon dropdown-yellow dropdown-menu-right dropdown-caret dropdown-close">
<li>
<a href="../doctor/query-specific-rx?Pno=${rx.pno}" class="tooltip-info" data-rel="tooltip" title="查看该处方的具体明细">
<span class="blue">
<i class="ace-icon fa fa-search-plus bigger-120"></i>
</span>
</a>
</li>
</ul>
</div>
</div>
</td>
</tr>
</c:forEach>
</tbody>
</table>
</div>
</div>
</div>
<!-- PAGE CONTENT ENDS -->
</div><!-- /.col -->
</div><!-- /.row -->
</div><!-- /.page-content -->
</div>
</div><!-- /.main-content -->
<div class="footer">
<div class="footer-inner">
<div class="footer-content">
<span class="bigger-120">
<span class="blue bolder">医院药品库存管理系统</span>
DIMS &copy; 2019-2020
</span>
</div>
</div>
</div>
<a href="#" id="btn-scroll-up" class="btn-scroll-up btn btn-sm btn-inverse">
<i class="ace-icon fa fa-angle-double-up icon-only bigger-110"></i>
</a>
</div><!-- /.main-container -->
<!-- basic scripts -->
<!--[if !IE]> -->
<script src="../assets/js/jquery-2.1.4.min.js"></script>
<!-- <![endif]-->
<!--[if IE]>
<script src="../assets/js/jquery-1.11.3.min.js"></script>
<![endif]-->
<script type="text/javascript">
if('ontouchstart' in document.documentElement) document.write("<script src='../assets/js/jquery.mobile.custom.min.js'>"+"<"+"/script>");
</script>
<script src="../assets/js/bootstrap.min.js"></script>
<!-- page specific plugin scripts -->
<script src="../assets/js/jquery.dataTables.min.js"></script>
<script src="../assets/js/jquery.dataTables.bootstrap.min.js"></script>
<script src="../assets/js/dataTables.buttons.min.js"></script>
<script src="../assets/js/buttons.flash.min.js"></script>
<script src="../assets/js/buttons.html5.min.js"></script>
<script src="../assets/js/buttons.print.min.js"></script>
<script src="../assets/js/buttons.colVis.min.js"></script>
<script src="../assets/js/dataTables.select.min.js"></script>
<!-- ace scripts -->
<script src="../assets/js/ace-elements.min.js"></script>
<script src="../assets/js/ace.min.js"></script>
<!-- inline scripts related to this page -->
<script type="text/javascript">
jQuery(function($) {
//initiate dataTables plugin
var myTable =
$('#dynamic-table')
//.wrap("<div class='dataTables_borderWrap' />") //if you are applying horizontal scrolling (sScrollX)
.DataTable( {
bAutoWidth: false,
"aoColumns": [ null, null, null, null, null, null, { "bSortable": false } ],
"aaSorting": [],
"iDisplayLength": 5,
"aLengthMenu": [
[5, 10, 15, 20, 25, 30, 35, 40, 45, 50, -1],
["5 条", "10 条", "15 条", "20 条", "25 条", "30 条", "35 条", "40 条", "45 条", "50 条", "全部"]
],
"oLanguage": { // 自定义提示信息
"sLengthMenu": "每页显示 _MENU_ 记录",
"sZeroRecords": "抱歉,没有找到",
"sInfo": "从 _START_ 到 _END_ / 共 _TOTAL_ 条数据 ",
"sInfoEmpty": "没有数据",
"sInfoFiltered": "(从 _MAX_ 条数据中检索) ",
"sSearch": "检索",
"oPaginate": {
"sFirst": "首页",
"sPrevious": "前一页",
"sNext": "后一页",
"sLast": "尾页"
}
}
//"bProcessing": true,
//"bServerSide": true,
//"sAjaxSource": "http://127.0.0.1/table.php" ,
//,
//"sScrollY": "200px",
//"bPaginate": false,
//"sScrollX": "100%",
//"sScrollXInner": "120%",
//"bScrollCollapse": true,
//Note: if you are applying horizontal scrolling (sScrollX) on a ".table-bordered"
//you may want to wrap the table inside a "div.dataTables_borderWrap" element
//"iDisplayLength": 50
} );
$.fn.dataTable.Buttons.defaults.dom.container.className = 'dt-buttons btn-overlap btn-group btn-overlap';
new $.fn.dataTable.Buttons( myTable, {
buttons: [
{
"extend": "colvis",
"text": "<i class='fa fa-search bigger-110 blue'></i> <span class='hidden'>显示/隐藏列</span>",
"className": "btn btn-white btn-primary btn-bold",
columns: ':not(:first):not(:last)'
},
{
"extend": "copy",
"text": "<i class='fa fa-copy bigger-110 pink'></i> <span class='hidden'>复制到剪贴板</span>",
"className": "btn btn-white btn-primary btn-bold"
},
{
"extend": "csv",
"text": "<i class='fa fa-database bigger-110 orange'></i> <span class='hidden'>导出到 CSV 文件</span>",
"className": "btn btn-white btn-primary btn-bold"
},
/* {
"extend": "excel",
"text": "<i class='fa fa-file-excel-o bigger-110 green'></i> <span class='hidden'>导出到 Excel 文件</span>",
"className": "btn btn-white btn-primary btn-bold"
},
{
"extend": "pdf",
"text": "<i class='fa fa-file-pdf-o bigger-110 red'></i> <span class='hidden'>导出到 PDF 文件</span>",
"className": "btn btn-white btn-primary btn-bold"
}, */
{
"extend": "print",
"text": "<i class='fa fa-print bigger-110 grey'></i> <span class='hidden'>Print</span>",
"className": "btn btn-white btn-primary btn-bold",
autoPrint: false
}
]
} );
myTable.buttons().container().appendTo( $('.tableTools-container') );
//style the message box
var defaultCopyAction = myTable.button(1).action();
myTable.button(1).action(function (e, dt, button, config) {
defaultCopyAction(e, dt, button, config);
$('.dt-button-info').addClass('gritter-item-wrapper gritter-info gritter-center white');
});
var defaultColvisAction = myTable.button(0).action();
myTable.button(0).action(function (e, dt, button, config) {
defaultColvisAction(e, dt, button, config);
if($('.dt-button-collection > .dropdown-menu').length == 0) {
$('.dt-button-collection')
.wrapInner('<ul class="dropdown-menu dropdown-light dropdown-caret dropdown-caret" />')
.find('a').attr('href', '#').wrap("<li />")
}
$('.dt-button-collection').appendTo('.tableTools-container .dt-buttons')
});
////
setTimeout(function() {
$($('.tableTools-container')).find('a.dt-button').each(function() {
var div = $(this).find(' > div').first();
if(div.length == 1) div.tooltip({container: 'body', title: div.parent().text()});
else $(this).tooltip({container: 'body', title: $(this).text()});
});
}, 500);
myTable.on( 'select', function ( e, dt, type, index ) {
if ( type === 'row' ) {
$( myTable.row( index ).node() ).find('input:checkbox').prop('checked', true);
}
} );
myTable.on( 'deselect', function ( e, dt, type, index ) {
if ( type === 'row' ) {
$( myTable.row( index ).node() ).find('input:checkbox').prop('checked', false);
}
} );
/////////////////////////////////
//table checkboxes
$('th input[type=checkbox], td input[type=checkbox]').prop('checked', false);
//select/deselect all rows according to table header checkbox
$('#dynamic-table > thead > tr > th input[type=checkbox], #dynamic-table_wrapper input[type=checkbox]').eq(0).on('click', function(){
var th_checked = this.checked;//checkbox inside "TH" table header
$('#dynamic-table').find('tbody > tr').each(function(){
var row = this;
if(th_checked) myTable.row(row).select();
else myTable.row(row).deselect();
});
});
//select/deselect a row when the checkbox is checked/unchecked
$('#dynamic-table').on('click', 'td input[type=checkbox]', function(){
var row = $(this).closest('tr').get(0);
if(this.checked) myTable.row(row).deselect();
else myTable.row(row).select();
});
$(document).on('click', '#dynamic-table .dropdown-toggle', function(e) {
e.stopImmediatePropagation();
e.stopPropagation();
e.preventDefault();
});
//And for the first simple table, which doesn't have TableTools or dataTables
//select/deselect all rows according to table header checkbox
var active_class = 'active';
$('#simple-table > thead > tr > th input[type=checkbox]').eq(0).on('click', function(){
var th_checked = this.checked;//checkbox inside "TH" table header
$(this).closest('table').find('tbody > tr').each(function(){
var row = this;
if(th_checked) $(row).addClass(active_class).find('input[type=checkbox]').eq(0).prop('checked', true);
else $(row).removeClass(active_class).find('input[type=checkbox]').eq(0).prop('checked', false);
});
});
//select/deselect a row when the checkbox is checked/unchecked
$('#simple-table').on('click', 'td input[type=checkbox]', function(){
var $row = $(this).closest('tr');
if($row.is('.detail-row ')) return;
if(this.checked) $row.addClass(active_class);
else $row.removeClass(active_class);
});
/********************************/
//add tooltip for small view action buttons in dropdown menu
$('[data-rel="tooltip"]').tooltip({placement: tooltip_placement});
//tooltip placement on right or left
function tooltip_placement(context, source) {
var $source = $(source);
var $parent = $source.closest('table')
var off1 = $parent.offset();
var w1 = $parent.width();
var off2 = $source.offset();
//var w2 = $source.width();
if( parseInt(off2.left) < parseInt(off1.left) + parseInt(w1 / 2) ) return 'right';
return 'left';
}
/***************/
$('.show-details-btn').on('click', function(e) {
e.preventDefault();
$(this).closest('tr').next().toggleClass('open');
$(this).find(ace.vars['.icon']).toggleClass('fa-angle-double-down').toggleClass('fa-angle-double-up');
});
/***************/
/**
//add horizontal scrollbars to a simple table
$('#simple-table').css({'width':'2000px', 'max-width': 'none'}).wrap('<div style="width: 1000px;" />').parent().ace_scroll(
{
horizontal: true,
styleClass: 'scroll-top scroll-dark scroll-visible',//show the scrollbars on top(default is bottom)
size: 2000,
mouseWheelLock: true
}
).css('padding-top', '12px');
*/
})
</script>
</body>
</html>

View file

@ -0,0 +1,643 @@
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<meta charset="utf-8" />
<title>查看${specificDoctor.dname}的处方明细 - 医院药品库存管理系统</title>
<meta name="description" content="查看${specificDoctor.dname}的处方明细 - 医院药品库存管理系统" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0" />
<!-- bootstrap & fontawesome -->
<link rel="stylesheet" href="../assets/css/bootstrap.min.css" />
<link rel="stylesheet" href="../assets/font-awesome/4.5.0/css/font-awesome.min.css" />
<!-- page specific plugin styles -->
<!-- text fonts -->
<link rel="stylesheet" href="../assets/css/fonts.googleapis.com.css" />
<!-- ace styles -->
<link rel="stylesheet" href="../assets/css/ace.min.css" class="ace-main-stylesheet" id="main-ace-style" />
<!--[if lte IE 9]>
<link rel="stylesheet" href="../assets/css/ace-part2.min.css" class="ace-main-stylesheet" />
<![endif]-->
<link rel="stylesheet" href="../assets/css/ace-skins.min.css" />
<link rel="stylesheet" href="../assets/css/ace-rtl.min.css" />
<!--[if lte IE 9]>
<link rel="stylesheet" href="../assets/css/ace-ie.min.css" />
<![endif]-->
<!-- inline styles related to this page -->
<!-- ace settings handler -->
<script src="../assets/js/ace-extra.min.js"></script>
<!-- HTML5shiv and Respond.js for IE8 to support HTML5 elements and media queries -->
<!--[if lte IE 8]>
<script src="../assets/js/html5shiv.min.js"></script>
<script src="../assets/js/respond.min.js"></script>
<![endif]-->
</head>
<body class="no-skin">
<div id="navbar" class="navbar navbar-default ace-save-state">
<div class="navbar-container ace-save-state" id="navbar-container">
<button type="button" class="navbar-toggle menu-toggler pull-left" id="menu-toggler" data-target="#sidebar">
<span class="sr-only">Toggle sidebar</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<div class="navbar-header pull-left">
<a href="../admin/index" class="navbar-brand">
<small>
<i class="fa fa-leaf"></i>
医院药品库存管理系统 DIMS
</small>
</a>
</div>
<div class="navbar-buttons navbar-header pull-right" role="navigation">
<ul class="nav ace-nav">
<li class="grey dropdown-modal">
<a data-toggle="dropdown" class="dropdown-toggle" href="#">
<i class="ace-icon fa fa-tasks"></i>
<span class="badge badge-grey">3</span>
</a>
<ul class="dropdown-menu-right dropdown-navbar dropdown-menu dropdown-caret dropdown-close">
<li class="dropdown-header">
<i class="ace-icon fa fa-check"></i>
统计信息
</li>
<li class="dropdown-content">
<ul class="dropdown-menu dropdown-navbar">
<li>
<a href="../doctor/query-solved-rx-list">
<div class="clearfix">
<span class="pull-left">已处理处方数目占比</span>
<span class="pull-right">
<fmt:formatNumber value="${solvedRxsNum / (solvedRxsNum + unsolvedRxsNum) * 100}" pattern="#.00"/>
%
</span>
</div>
<div class="progress progress-mini progress-striped active">
<div style="width:${solvedRxsNum / (solvedRxsNum + unsolvedRxsNum) * 100}%" class="progress-bar"></div>
</div>
</a>
</li>
<li>
<a href="../doctor/query-unsolved-rx-list">
<div class="clearfix">
<span class="pull-left">未处理处方数目占比</span>
<span class="pull-right">
<fmt:formatNumber value="${unsolvedRxsNum / (solvedRxsNum + unsolvedRxsNum) * 100}" pattern="#.00"/>
%
</span>
</div>
<div class="progress progress-mini progress-striped active">
<div style="width:${unsolvedRxsNum / (solvedRxsNum + unsolvedRxsNum) * 100}%" class="progress-bar progress-bar-warning"></div>
</div>
</a>
</li>
<li>
<a href="#">
<div class="clearfix">
<span class="pull-left">由我开出的处方数目占比</span>
<span class="pull-right">
<fmt:formatNumber value="${myPrescribeRxsNum / (solvedRxsNum + unsolvedRxsNum) * 100}" pattern="#.00"/>
%
</span>
</div>
<div class="progress progress-mini progress-striped active">
<div style="width:${myPrescribeRxsNum / (solvedRxsNum + unsolvedRxsNum) * 100}%" class="progress-bar progress-bar-success"></div>
</div>
</a>
</li>
</ul>
</li>
</ul>
</li>
<li class="light-blue dropdown-modal">
<a data-toggle="dropdown" href="#" class="dropdown-toggle">
<img class="nav-user-photo" src="../assets/images/avatars/${currentDoctor.dsex ? 'Male' : 'Female'}Doctor.png" alt="头像" />
<span class="user-info">
<small>欢迎,</small>
${currentDoctor.dname}
</span>
<i class="ace-icon fa fa-caret-down"></i>
</a>
<ul class="user-menu dropdown-menu-right dropdown-menu dropdown-yellow dropdown-caret dropdown-close">
<li>
<a href="../doctor/profile">
<i class="ace-icon fa fa-user"></i>
个人信息
</a>
</li>
<li class="divider"></li>
<li>
<a href="../logout">
<i class="ace-icon fa fa-power-off"></i>
登出
</a>
</li>
</ul>
</li>
</ul>
</div>
</div><!-- /.navbar-container -->
</div>
<div class="main-container ace-save-state" id="main-container">
<script type="text/javascript">
try{ace.settings.loadState('main-container')}catch(e){}
</script>
<div id="sidebar" class="sidebar responsive ace-save-state">
<script type="text/javascript">
try{ace.settings.loadState('sidebar')}catch(e){}
</script>
<div class="sidebar-shortcuts" id="sidebar-shortcuts">
<div class="sidebar-shortcuts-large" id="sidebar-shortcuts-large">
<button class="btn btn-success">
<i class="ace-icon fa fa-signal"></i>
</button>
<button class="btn btn-info">
<i class="ace-icon fa fa-pencil"></i>
</button>
<button class="btn btn-warning">
<i class="ace-icon fa fa-users"></i>
</button>
<button class="btn btn-danger">
<i class="ace-icon fa fa-cogs"></i>
</button>
</div>
<div class="sidebar-shortcuts-mini" id="sidebar-shortcuts-mini">
<span class="btn btn-success"></span>
<span class="btn btn-info"></span>
<span class="btn btn-warning"></span>
<span class="btn btn-danger"></span>
</div>
</div><!-- /.sidebar-shortcuts -->
<ul class="nav nav-list">
<li class="">
<a href="../doctor/welcome">
<i class="menu-icon fa fa-tachometer"></i>
<span class="menu-text"> 欢迎页面 </span>
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="../doctor/profile">
<i class="menu-icon fa fa-tag"></i>
<span class="menu-text"> 个人信息页面 </span>
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="../doctor/query-drug-list">
<i class="menu-icon fa fa-list"></i>
<span class="menu-text"> 查看库存药品列表 </span>
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="../doctor/add-rx-form">
<i class="menu-icon fa fa-pencil-square-o"></i>
<span class="menu-text"> 填写新建处方表单 </span>
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="#" class="dropdown-toggle">
<i class="menu-icon fa fa-list-alt"></i>
<span class="menu-text"> 查看处方列表 </span>
<b class="arrow fa fa-angle-down"></b>
</a>
<b class="arrow"></b>
<ul class="submenu">
<li class="">
<a href="../doctor/query-unsolved-rx-list">
<i class="menu-icon fa fa-caret-right"></i>
查看未处理处方列表
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="../doctor/query-solved-rx-list">
<i class="menu-icon fa fa-caret-right"></i>
查看已处理处方列表
</a>
<b class="arrow"></b>
</li>
</ul>
</li>
</ul><!-- /.nav-list -->
<div class="sidebar-toggle sidebar-collapse" id="sidebar-collapse">
<i id="sidebar-toggle-icon" class="ace-icon fa fa-angle-double-left ace-save-state" data-icon1="ace-icon fa fa-angle-double-left" data-icon2="ace-icon fa fa-angle-double-right"></i>
</div>
</div>
<div class="main-content">
<div class="main-content-inner">
<div class="breadcrumbs ace-save-state" id="breadcrumbs">
<ul class="breadcrumb">
<li>
<i class="ace-icon fa fa-home home-icon"></i>
<a href="../admin/index">首页</a>
</li>
<li class="active">查看${specificDoctor.dname}的处方明细</li>
</ul><!-- /.breadcrumb -->
</div>
<div class="page-content">
<div class="page-header">
<h1>
查看${specificDoctor.dname}的处方明细
<small>
<i class="ace-icon fa fa-angle-double-right"></i>
${specificDoctor.dname}的相关信息
</small>
</h1>
</div><!-- /.page-header -->
<c:choose>
<c:when test="${echo != null}">
<div class="alert alert-info">
<button class="close" data-dismiss="alert">
<i class="ace-icon fa fa-times"></i>
</button>
<i class="ace-icon fa fa-hand-o-right"></i>
${echo}
</div>
</c:when>
</c:choose>
<div class="row">
<div class="col-xs-12">
<!-- PAGE CONTENT BEGINS -->
<form class="form-horizontal" role="form" method="post" action="../admin/submit-storage-form">
<div class="form-group">
<label class="col-sm-4 control-label no-padding-right" for="form-field-1"> 医生编号 </label>
<div class="col-sm-4">
<input class="form-control" id="form-field-1" type="text" readonly="readonly" placeholder="医生编号" name="Dno" value="${specificDoctor.dno}">
</div>
</div>
<div class="form-group">
<label class="col-sm-4 control-label no-padding-right" for="form-field-2"> 医生姓名 </label>
<div class="col-sm-4">
<input class="form-control" id="form-field-2" type="text" readonly="readonly" placeholder="医生姓名" name="Dname" value="${specificDoctor.dname}">
</div>
</div>
<div class="form-group">
<label class="col-sm-4 control-label no-padding-right" for="form-field-3"> 医生性别 </label>
<div class="col-sm-4">
<input class="form-control" id="form-field-3" type="text" readonly="readonly" placeholder="医生性别" name="Dsex" value="${specificDoctor.dsex ? '男' : '女'}">
</div>
</div>
<div class="form-group">
<label class="col-sm-4 control-label no-padding-right" for="form-field-4"> 医生年龄 </label>
<div class="col-sm-4">
<input class="form-control" id="form-field-4" type="text" readonly="readonly" placeholder="医生年龄" name="Dage" value="${specificDoctor.dage}">
</div>
</div>
</form>
<h3 class="header smaller lighter blue">
查看由${specificDoctor.dname}开出的所有处方
<small>
<i class="ace-icon fa fa-angle-double-right"></i>
包括已处理处方和未处理处方
</small>
</h3>
<div class="row">
<div class="col-xs-12">
<div class="clearfix">
<div class="pull-right tableTools-container"></div>
</div>
<div class="table-header">
查询结果
</div>
<!-- div.table-responsive -->
<!-- div.dataTables_borderWrap -->
<div>
<table id="dynamic-table" class="table table-striped table-bordered table-hover">
<thead>
<tr>
<th>处方编号</th>
<th>病人身份证号</th>
<th>开出时间</th>
<th>处理护士编号</th>
<th>处理时间</th>
<th class="hidden-480">处方状态</th>
<th>操作</th>
</tr>
</thead>
<tbody>
<c:forEach items="${specificDoctor.allRxs}" var="rx">
<tr>
<td>
<a href="../doctor/query-specific-rx?Pno=${rx.pno}" title="查看该处方的具体明细">${rx.pno}</a>
</td>
<td>${rx.pid}</td>
<td>
<fmt:formatDate value="${rx.ptime}" pattern="yyyy 年 MM 月 dd 日 HH:mm:ss"/>
</td>
<td>${rx.nno}</td>
<td>
<fmt:formatDate value="${rx.htime}" pattern="yyyy 年 MM 月 dd 日 HH:mm:ss"/>
</td>
<td>
<c:choose>
<c:when test="${rx.nno == null}">
<span class="label label-sm label-warning arrowed-in-right arrowed">
<i class="ace-icon fa fa-exclamation-triangle bigger-110"></i>
未处理处方
</span>
</c:when>
<c:otherwise>
<span class="label label-sm label-success arrowed-in-right arrowed">
<i class="ace-icon fa fa-flag bigger-110"></i>
已处理处方
</span>
</c:otherwise>
</c:choose>
</td>
<td>
<div class="hidden-sm hidden-xs action-buttons">
<a class="blue" href="../doctor/query-specific-rx?Pno=${rx.pno}" title="查看该处方的具体明细">
<i class="ace-icon fa fa-search-plus bigger-130"></i>
</a>
<c:if test="${rx.nno == null}">
<a class="green" href="../doctor/edit-rx-form?Pno=${rx.pno}" title="编辑该处方">
<i class="ace-icon fa fa-pencil bigger-130"></i>
</a>
<a class="red" href="../doctor/delete-rx?Pno=${rx.pno}" title="删除该处方">
<i class="ace-icon fa fa-trash-o bigger-130"></i>
</a>
</c:if>
</div>
<div class="hidden-md hidden-lg">
<div class="inline pos-rel">
<button class="btn btn-minier btn-yellow dropdown-toggle" data-toggle="dropdown" data-position="auto">
<i class="ace-icon fa fa-caret-down icon-only bigger-120"></i>
</button>
<ul class="dropdown-menu dropdown-only-icon dropdown-yellow dropdown-menu-right dropdown-caret dropdown-close">
<li>
<a href="../doctor/query-specific-rx?Pno=${rx.pno}" class="tooltip-info" data-rel="tooltip" title="查看该处方的具体明细">
<span class="blue">
<i class="ace-icon fa fa-search-plus bigger-120"></i>
</span>
</a>
</li>
<c:if test="${rx.nno == null}">
<li>
<a href="../doctor/edit-rx-form?Pno=${rx.pno}" class="tooltip-success" data-rel="tooltip" title="编辑该处方">
<span class="green">
<i class="ace-icon fa fa-pencil-square-o bigger-120"></i>
</span>
</a>
</li>
<li>
<a href="../doctor/delete-rx?Pno=${rx.pno}" class="tooltip-error" data-rel="tooltip" title="删除该处方">
<span class="red">
<i class="ace-icon fa fa-trash-o bigger-120"></i>
</span>
</a>
</li>
</c:if>
</ul>
</div>
</div>
</td>
</tr>
</c:forEach>
</tbody>
</table>
</div>
</div>
</div>
<!-- PAGE CONTENT ENDS -->
</div><!-- /.col -->
</div><!-- /.row -->
</div><!-- /.page-content -->
</div>
</div><!-- /.main-content -->
<div class="footer">
<div class="footer-inner">
<div class="footer-content">
<span class="bigger-120">
<span class="blue bolder">医院药品库存管理系统</span>
DIMS &copy; 2019-2020
</span>
</div>
</div>
</div>
<a href="#" id="btn-scroll-up" class="btn-scroll-up btn btn-sm btn-inverse">
<i class="ace-icon fa fa-angle-double-up icon-only bigger-110"></i>
</a>
</div><!-- /.main-container -->
<!-- basic scripts -->
<!--[if !IE]> -->
<script src="../assets/js/jquery-2.1.4.min.js"></script>
<!-- <![endif]-->
<!--[if IE]>
<script src="../assets/js/jquery-1.11.3.min.js"></script>
<![endif]-->
<script type="text/javascript">
if('ontouchstart' in document.documentElement) document.write("<script src='../assets/js/jquery.mobile.custom.min.js'>"+"<"+"/script>");
</script>
<script src="../assets/js/bootstrap.min.js"></script>
<!-- page specific plugin scripts -->
<script src="../assets/js/jquery.dataTables.min.js"></script>
<script src="../assets/js/jquery.dataTables.bootstrap.min.js"></script>
<script src="../assets/js/dataTables.buttons.min.js"></script>
<script src="../assets/js/buttons.flash.min.js"></script>
<script src="../assets/js/buttons.html5.min.js"></script>
<script src="../assets/js/buttons.print.min.js"></script>
<script src="../assets/js/buttons.colVis.min.js"></script>
<script src="../assets/js/dataTables.select.min.js"></script>
<!-- ace scripts -->
<script src="../assets/js/ace-elements.min.js"></script>
<script src="../assets/js/ace.min.js"></script>
<!-- inline scripts related to this page -->
<script type="text/javascript">
jQuery(function($) {
//initiate dataTables plugin
var myTable =
$('#dynamic-table')
//.wrap("<div class='dataTables_borderWrap' />") //if you are applying horizontal scrolling (sScrollX)
.DataTable( {
bAutoWidth: false,
"aoColumns": [
null, null, null, null, null, null, { "bSortable": false }
],
"aaSorting": [],
"iDisplayLength": 5,
"aLengthMenu": [
[5, 10, 15, 20, 25, 30, 35, 40, 45, 50, -1],
["5 条", "10 条", "15 条", "20 条", "25 条", "30 条", "35 条", "40 条", "45 条", "50 条", "全部"]
],
"oLanguage": { // 自定义提示信息
"sLengthMenu": "每页显示 _MENU_ 记录",
"sZeroRecords": "抱歉,没有找到",
"sInfo": "从 _START_ 到 _END_ / 共 _TOTAL_ 条数据 ",
"sInfoEmpty": "没有数据",
"sInfoFiltered": "(从 _MAX_ 条数据中检索) ",
"sSearch": "检索",
"oPaginate": {
"sFirst": "首页",
"sPrevious": "前一页",
"sNext": "后一页",
"sLast": "尾页"
}
}
//"bProcessing": true,
//"bServerSide": true,
//"sAjaxSource": "http://127.0.0.1/table.php" ,
//,
//"sScrollY": "200px",
//"bPaginate": false,
//"sScrollX": "100%",
//"sScrollXInner": "120%",
//"bScrollCollapse": true,
//Note: if you are applying horizontal scrolling (sScrollX) on a ".table-bordered"
//you may want to wrap the table inside a "div.dataTables_borderWrap" element
//"iDisplayLength": 50
} );
$.fn.dataTable.Buttons.defaults.dom.container.className = 'dt-buttons btn-overlap btn-group btn-overlap';
new $.fn.dataTable.Buttons( myTable, {
buttons: [
{
"extend": "colvis",
"text": "<i class='fa fa-search bigger-110 blue'></i> <span class='hidden'>显示/隐藏列</span>",
"className": "btn btn-white btn-primary btn-bold",
columns: ':not(:first):not(:last)'
},
{
"extend": "copy",
"text": "<i class='fa fa-copy bigger-110 pink'></i> <span class='hidden'>复制到剪贴板</span>",
"className": "btn btn-white btn-primary btn-bold"
},
{
"extend": "csv",
"text": "<i class='fa fa-database bigger-110 orange'></i> <span class='hidden'>导出到 CSV 文件</span>",
"className": "btn btn-white btn-primary btn-bold"
},
/* {
"extend": "excel",
"text": "<i class='fa fa-file-excel-o bigger-110 green'></i> <span class='hidden'>导出到 Excel 文件</span>",
"className": "btn btn-white btn-primary btn-bold"
},
{
"extend": "pdf",
"text": "<i class='fa fa-file-pdf-o bigger-110 red'></i> <span class='hidden'>导出到 PDF 文件</span>",
"className": "btn btn-white btn-primary btn-bold"
}, */
{
"extend": "print",
"text": "<i class='fa fa-print bigger-110 grey'></i> <span class='hidden'>打印</span>",
"className": "btn btn-white btn-primary btn-bold",
autoPrint: false
}
]
} );
myTable.buttons().container().appendTo( $('.tableTools-container') );
//style the message box
var defaultCopyAction = myTable.button(1).action();
myTable.button(1).action(function (e, dt, button, config) {
defaultCopyAction(e, dt, button, config);
$('.dt-button-info').addClass('gritter-item-wrapper gritter-info gritter-center white');
});
var defaultColvisAction = myTable.button(0).action();
myTable.button(0).action(function (e, dt, button, config) {
defaultColvisAction(e, dt, button, config);
if($('.dt-button-collection > .dropdown-menu').length == 0) {
$('.dt-button-collection')
.wrapInner('<ul class="dropdown-menu dropdown-light dropdown-caret dropdown-caret" />')
.find('a').attr('href', '#').wrap("<li />")
}
$('.dt-button-collection').appendTo('.tableTools-container .dt-buttons')
});
////
setTimeout(function() {
$($('.tableTools-container')).find('a.dt-button').each(function() {
var div = $(this).find(' > div').first();
if(div.length == 1) div.tooltip({container: 'body', title: div.parent().text()});
else $(this).tooltip({container: 'body', title: $(this).text()});
});
}, 500);
myTable.on( 'select', function ( e, dt, type, index ) {
if ( type === 'row' ) {
$( myTable.row( index ).node() ).find('input:checkbox').prop('checked', true);
}
} );
myTable.on( 'deselect', function ( e, dt, type, index ) {
if ( type === 'row' ) {
$( myTable.row( index ).node() ).find('input:checkbox').prop('checked', false);
}
} );
/////////////////////////////////
//table checkboxes
$('th input[type=checkbox], td input[type=checkbox]').prop('checked', false);
//select/deselect all rows according to table header checkbox
$('#dynamic-table > thead > tr > th input[type=checkbox], #dynamic-table_wrapper input[type=checkbox]').eq(0).on('click', function(){
var th_checked = this.checked;//checkbox inside "TH" table header
$('#dynamic-table').find('tbody > tr').each(function(){
var row = this;
if(th_checked) myTable.row(row).select();
else myTable.row(row).deselect();
});
});
//select/deselect a row when the checkbox is checked/unchecked
$('#dynamic-table').on('click', 'td input[type=checkbox]', function(){
var row = $(this).closest('tr').get(0);
if(this.checked) myTable.row(row).deselect();
else myTable.row(row).select();
});
$(document).on('click', '#dynamic-table .dropdown-toggle', function(e) {
e.stopImmediatePropagation();
e.stopPropagation();
e.preventDefault();
});
//And for the first simple table, which doesn't have TableTools or dataTables
//select/deselect all rows according to table header checkbox
var active_class = 'active';
$('#simple-table > thead > tr > th input[type=checkbox]').eq(0).on('click', function(){
var th_checked = this.checked;//checkbox inside "TH" table header
$(this).closest('table').find('tbody > tr').each(function(){
var row = this;
if(th_checked) $(row).addClass(active_class).find('input[type=checkbox]').eq(0).prop('checked', true);
else $(row).removeClass(active_class).find('input[type=checkbox]').eq(0).prop('checked', false);
});
});
//select/deselect a row when the checkbox is checked/unchecked
$('#simple-table').on('click', 'td input[type=checkbox]', function(){
var $row = $(this).closest('tr');
if($row.is('.detail-row ')) return;
if(this.checked) $row.addClass(active_class);
else $row.removeClass(active_class);
});
/********************************/
//add tooltip for small view action buttons in dropdown menu
$('[data-rel="tooltip"]').tooltip({placement: tooltip_placement});
//tooltip placement on right or left
function tooltip_placement(context, source) {
var $source = $(source);
var $parent = $source.closest('table')
var off1 = $parent.offset();
var w1 = $parent.width();
var off2 = $source.offset();
//var w2 = $source.width();
if( parseInt(off2.left) < parseInt(off1.left) + parseInt(w1 / 2) ) return 'right';
return 'left';
}
/***************/
$('.show-details-btn').on('click', function(e) {
e.preventDefault();
$(this).closest('tr').next().toggleClass('open');
$(this).find(ace.vars['.icon']).toggleClass('fa-angle-double-down').toggleClass('fa-angle-double-up');
});
/***************/
/**
//add horizontal scrollbars to a simple table
$('#simple-table').css({'width':'2000px', 'max-width': 'none'}).wrap('<div style="width: 1000px;" />').parent().ace_scroll(
{
horizontal: true,
styleClass: 'scroll-top scroll-dark scroll-visible',//show the scrollbars on top(default is bottom)
size: 2000,
mouseWheelLock: true
}
).css('padding-top', '12px');
*/
})
</script>
</body>
</html>

View file

@ -0,0 +1,802 @@
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<meta charset="utf-8" />
<title>查看 ${rx.pno} 号处方的具体明细 - 医院药品库存管理系统</title>
<meta name="description" content="查看 ${rx.pno} 号处方的具体明细 - 医院药品库存管理系统" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0" />
<!-- bootstrap & fontawesome -->
<link rel="stylesheet" href="../assets/css/bootstrap.min.css" />
<link rel="stylesheet" href="../assets/font-awesome/4.5.0/css/font-awesome.min.css" />
<!-- page specific plugin styles -->
<link rel="stylesheet" href="../assets/css/jquery-ui.custom.min.css" />
<link rel="stylesheet" href="../assets/css/chosen.min.css" />
<link rel="stylesheet" href="../assets/css/bootstrap-datepicker3.min.css" />
<link rel="stylesheet" href="../assets/css/bootstrap-timepicker.min.css" />
<link rel="stylesheet" href="../assets/css/daterangepicker.min.css" />
<link rel="stylesheet" href="../assets/css/bootstrap-datetimepicker.min.css" />
<link rel="stylesheet" href="../assets/css/bootstrap-colorpicker.min.css" />
<!-- text fonts -->
<link rel="stylesheet" href="../assets/css/fonts.googleapis.com.css" />
<!-- ace styles -->
<link rel="stylesheet" href="../assets/css/ace.min.css" class="ace-main-stylesheet" id="main-ace-style" />
<!--[if lte IE 9]>
<link rel="stylesheet" href="../assets/css/ace-part2.min.css" class="ace-main-stylesheet" />
<![endif]-->
<link rel="stylesheet" href="../assets/css/ace-skins.min.css" />
<link rel="stylesheet" href="../assets/css/ace-rtl.min.css" />
<!--[if lte IE 9]>
<link rel="stylesheet" href="../assets/css/ace-ie.min.css" />
<![endif]-->
<!-- inline styles related to this page -->
<!-- ace settings handler -->
<script src="../assets/js/ace-extra.min.js"></script>
<!-- HTML5shiv and Respond.js for IE8 to support HTML5 elements and media queries -->
<!--[if lte IE 8]>
<script src="../assets/js/html5shiv.min.js"></script>
<script src="../assets/js/respond.min.js"></script>
<![endif]-->
</head>
<body class="no-skin">
<div id="navbar" class="navbar navbar-default ace-save-state">
<div class="navbar-container ace-save-state" id="navbar-container">
<button type="button" class="navbar-toggle menu-toggler pull-left" id="menu-toggler" data-target="#sidebar">
<span class="sr-only">Toggle sidebar</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<div class="navbar-header pull-left">
<a href="index.html" class="navbar-brand">
<small>
<i class="fa fa-leaf"></i>
医院药品库存管理系统 DIMS
</small>
</a>
</div>
<div class="navbar-buttons navbar-header pull-right" role="navigation">
<ul class="nav ace-nav">
<li class="grey dropdown-modal">
<a data-toggle="dropdown" class="dropdown-toggle" href="#">
<i class="ace-icon fa fa-tasks"></i>
<span class="badge badge-grey">3</span>
</a>
<ul class="dropdown-menu-right dropdown-navbar dropdown-menu dropdown-caret dropdown-close">
<li class="dropdown-header">
<i class="ace-icon fa fa-check"></i>
统计信息
</li>
<li class="dropdown-content">
<ul class="dropdown-menu dropdown-navbar">
<li>
<a href="../doctor/query-solved-rx-list">
<div class="clearfix">
<span class="pull-left">已处理处方数目占比</span>
<span class="pull-right">
<fmt:formatNumber value="${solvedRxsNum / (solvedRxsNum + unsolvedRxsNum) * 100}" pattern="#.00"/>
%
</span>
</div>
<div class="progress progress-mini progress-striped active">
<div style="width:${solvedRxsNum / (solvedRxsNum + unsolvedRxsNum) * 100}%" class="progress-bar"></div>
</div>
</a>
</li>
<li>
<a href="../doctor/query-unsolved-rx-list">
<div class="clearfix">
<span class="pull-left">未处理处方数目占比</span>
<span class="pull-right">
<fmt:formatNumber value="${unsolvedRxsNum / (solvedRxsNum + unsolvedRxsNum) * 100}" pattern="#.00"/>
%
</span>
</div>
<div class="progress progress-mini progress-striped active">
<div style="width:${unsolvedRxsNum / (solvedRxsNum + unsolvedRxsNum) * 100}%" class="progress-bar progress-bar-warning"></div>
</div>
</a>
</li>
<li>
<a href="#">
<div class="clearfix">
<span class="pull-left">由我开出的处方数目占比</span>
<span class="pull-right">
<fmt:formatNumber value="${myPrescribeRxsNum / (solvedRxsNum + unsolvedRxsNum) * 100}" pattern="#.00"/>
%
</span>
</div>
<div class="progress progress-mini progress-striped active">
<div style="width:${myPrescribeRxsNum / (solvedRxsNum + unsolvedRxsNum) * 100}%" class="progress-bar progress-bar-success"></div>
</div>
</a>
</li>
</ul>
</li>
</ul>
</li>
<li class="light-blue dropdown-modal">
<a data-toggle="dropdown" href="#" class="dropdown-toggle">
<img class="nav-user-photo" src="../assets/images/avatars/${currentDoctor.dsex ? 'Male' : 'Female'}Doctor.png" alt="头像" />
<span class="user-info">
<small>欢迎,</small>
${currentDoctor.dname}
</span>
<i class="ace-icon fa fa-caret-down"></i>
</a>
<ul class="user-menu dropdown-menu-right dropdown-menu dropdown-yellow dropdown-caret dropdown-close">
<li>
<a href="../doctor/profile">
<i class="ace-icon fa fa-user"></i>
个人信息
</a>
</li>
<li class="divider"></li>
<li>
<a href="../logout">
<i class="ace-icon fa fa-power-off"></i>
登出
</a>
</li>
</ul>
</li>
</ul>
</div>
</div><!-- /.navbar-container -->
</div>
<div class="main-container ace-save-state" id="main-container">
<script type="text/javascript">
try{ace.settings.loadState('main-container')}catch(e){}
</script>
<div id="sidebar" class="sidebar responsive ace-save-state">
<script type="text/javascript">
try{ace.settings.loadState('sidebar')}catch(e){}
</script>
<div class="sidebar-shortcuts" id="sidebar-shortcuts">
<div class="sidebar-shortcuts-large" id="sidebar-shortcuts-large">
<button class="btn btn-success">
<i class="ace-icon fa fa-signal"></i>
</button>
<button class="btn btn-info">
<i class="ace-icon fa fa-pencil"></i>
</button>
<button class="btn btn-warning">
<i class="ace-icon fa fa-users"></i>
</button>
<button class="btn btn-danger">
<i class="ace-icon fa fa-cogs"></i>
</button>
</div>
<div class="sidebar-shortcuts-mini" id="sidebar-shortcuts-mini">
<span class="btn btn-success"></span>
<span class="btn btn-info"></span>
<span class="btn btn-warning"></span>
<span class="btn btn-danger"></span>
</div>
</div><!-- /.sidebar-shortcuts -->
<ul class="nav nav-list">
<li class="">
<a href="../doctor/welcome">
<i class="menu-icon fa fa-tachometer"></i>
<span class="menu-text"> 欢迎页面 </span>
</a>
<b class="arrow"></b>
</li>
<li class="active">
<a href="../doctor/profile">
<i class="menu-icon fa fa-tag"></i>
<span class="menu-text"> 个人信息页面 </span>
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="../doctor/query-drug-list">
<i class="menu-icon fa fa-list"></i>
<span class="menu-text"> 查看库存药品列表 </span>
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="../doctor/add-rx-form">
<i class="menu-icon fa fa-pencil-square-o"></i>
<span class="menu-text"> 填写新建处方表单 </span>
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="#" class="dropdown-toggle">
<i class="menu-icon fa fa-list-alt"></i>
<span class="menu-text"> 查看处方列表 </span>
<b class="arrow fa fa-angle-down"></b>
</a>
<b class="arrow"></b>
<ul class="submenu">
<li class="">
<a href="../doctor/query-unsolved-rx-list">
<i class="menu-icon fa fa-caret-right"></i>
查看未处理处方列表
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="../doctor/query-solved-rx-list">
<i class="menu-icon fa fa-caret-right"></i>
查看已处理处方列表
</a>
<b class="arrow"></b>
</li>
</ul>
</li>
</ul><!-- /.nav-list -->
<div class="sidebar-toggle sidebar-collapse" id="sidebar-collapse">
<i id="sidebar-toggle-icon" class="ace-icon fa fa-angle-double-left ace-save-state" data-icon1="ace-icon fa fa-angle-double-left" data-icon2="ace-icon fa fa-angle-double-right"></i>
</div>
</div>
<div class="main-content">
<div class="main-content-inner">
<div class="breadcrumbs ace-save-state" id="breadcrumbs">
<ul class="breadcrumb">
<li>
<i class="ace-icon fa fa-home home-icon"></i>
<a href="../doctor/index">首页</a>
</li>
<li class="active">查看 ${rx.pno} 号处方的具体明细</li>
</ul><!-- /.breadcrumb -->
</div>
<div class="page-content">
<div class="page-header">
<h1>查看 ${rx.pno} 号处方的具体明细</h1>
</div><!-- /.page-header -->
<c:choose>
<c:when test="${echo != null}">
<div class="alert alert-info">
<button class="close" data-dismiss="alert">
<i class="ace-icon fa fa-times"></i>
</button>
<i class="ace-icon fa fa-hand-o-right"></i>
${echo}
</div>
</c:when>
</c:choose>
<div class="row">
<div class="col-xs-12">
<!-- PAGE CONTENT BEGINS -->
<form class="form-horizontal" role="form">
<div class="form-group">
<label class="col-sm-3 control-label no-padding-right" for="form-field-1"> 处方编号 </label>
<div class="col-sm-4">
<input class="form-control" id="form-field-1" type="text" readonly="readonly" placeholder="处方编号" name="Pno" value="${rx.pno}" required="required" />
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label no-padding-right" for="form-field-2"> 病人身份证号码 </label>
<div class="col-sm-4">
<input class="form-control" id="form-field-2" type="text" readonly="readonly" placeholder="病人身份证号码" name="Pid" value="${rx.pid}" required="required" />
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label no-padding-right" for="form-field-3"> 开出医生编号 </label>
<div class="col-sm-4">
<input class="form-control" id="form-field-3" type="text" readonly="readonly" placeholder="开出医生编号" name="Dno" value="${rx.dno}" required="required" />
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label no-padding-right" for="id-date-picker-1"> 处方开出日期 </label>
<div class="col-sm-4">
<div class="input-group">
<input class="form-control" id="id-date-picker-1" type="text" readonly="readonly" placeholder="处方开出日期" name="tempPdate" value="<fmt:formatDate value="${rx.ptime}" pattern="yyyy 年 MM 月 dd 日"/>" required="required" />
<span class="input-group-addon">
<i class="fa fa-calendar bigger-110"></i>
</span>
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label no-padding-right" for="form-field-5"> 处方开出时间 </label>
<div class="col-sm-4">
<div class="input-group">
<input class="form-control" id="form-field-5" type="text" readonly="readonly" placeholder="处方开出时间" name="tempPtime" value="<fmt:formatDate value="${rx.ptime}" pattern="HH:mm:ss"/>" required="required" />
<span class="input-group-addon">
<i class="fa fa-clock-o bigger-110"></i>
</span>
</div>
</div>
</div>
<c:choose>
<c:when test="${rx.pstate}">
<div class="form-group">
<label class="col-sm-3 control-label no-padding-right" for="form-field-6"> 处理护士编号 </label>
<div class="col-sm-4">
<input class="form-control" id="form-field-6" type="text" readonly="readonly" placeholder="处理护士编号" name="Nno" value="${rx.nno}" required="required" />
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label no-padding-right" for="id-date-picker-2"> 处方处理日期 </label>
<div class="col-sm-4">
<div class="input-group">
<input class="form-control" id="id-date-picker-2" type="text" readonly="readonly" placeholder="处方处理日期" name="tempHdate" value="<fmt:formatDate value="${rx.htime}" pattern="yyyy 年 MM 月 dd 日"/>" required="required" />
<span class="input-group-addon">
<i class="fa fa-calendar bigger-110"></i>
</span>
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label no-padding-right" for="form-field-8"> 处方处理时间 </label>
<div class="col-sm-4">
<div class="input-group">
<input class="form-control" id="form-field-8" type="text" readonly="readonly" placeholder="处方处理时间" name="tempHtime" value="<fmt:formatDate value="${rx.htime}" pattern="HH:mm:ss"/>" required="required" />
<span class="input-group-addon">
<i class="fa fa-clock-o bigger-110"></i>
</span>
</div>
</div>
</div>
</c:when>
</c:choose>
<div class="form-group">
<label class="col-sm-3 control-label no-padding-right" for="form-field-9"> 处方状态 </label>
<div class="col-sm-4">
<c:choose>
<c:when test="${rx.pstate}">
<span class="label label-sm label-success arrowed-in-right arrowed">
<i class="ace-icon fa fa-check-square-o bigger-110"></i>
已处理
</span>
</c:when>
<c:otherwise>
<span class="label label-sm label-warning arrowed-in-right arrowed">
<i class="ace-icon fa fa-square-o bigger-110"></i>
未处理
</span>
</c:otherwise>
</c:choose>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label no-padding-right" for="form-field-10"> 处方包含的药品列表 </label>
<div class="col-sm-4">
<table id="simple-table" class="table table-bordered table-hover">
<thead>
<tr>
<th>药品编号</th>
<th>药品名称</th>
<th>药品数量</th>
</tr>
</thead>
<tbody>
<c:forEach items="${rx.drugs}" var="drug">
<tr>
<td>${drug.PDno}</td>
<td>${drug.PDname}</td>
<td>${drug.PDnum}</td>
</tr>
</c:forEach>
</tbody>
</table>
</div>
</div>
</form>
<!-- PAGE CONTENT ENDS -->
</div><!-- /.col -->
</div><!-- /.row -->
</div><!-- /.page-content -->
</div>
</div><!-- /.main-content -->
<div class="footer">
<div class="footer-inner">
<div class="footer-content">
<span class="bigger-120">
<span class="blue bolder">医院药品库存管理系统</span>
DIMS &copy; 2019-2020
</span>
</div>
</div>
</div>
<a href="#" id="btn-scroll-up" class="btn-scroll-up btn btn-sm btn-inverse">
<i class="ace-icon fa fa-angle-double-up icon-only bigger-110"></i>
</a>
</div><!-- /.main-container -->
<!-- basic scripts -->
<!--[if !IE]> -->
<script src="../assets/js/jquery-2.1.4.min.js"></script>
<!-- <![endif]-->
<!--[if IE]>
<script src="../assets/js/jquery-1.11.3.min.js"></script>
<![endif]-->
<script type="text/javascript">
if('ontouchstart' in document.documentElement) document.write("<script src='../assets/js/jquery.mobile.custom.min.js'>"+"<"+"/script>");
</script>
<script src="../assets/js/bootstrap.min.js"></script>
<!-- page specific plugin scripts -->
<!--[if lte IE 8]>
<script src="../assets/js/excanvas.min.js"></script>
<![endif]-->
<script src="../assets/js/jquery-ui.custom.min.js"></script>
<script src="../assets/js/jquery.ui.touch-punch.min.js"></script>
<script src="../assets/js/chosen.jquery.min.js"></script>
<script src="../assets/js/spinbox.min.js"></script>
<script src="../assets/js/bootstrap-datepicker.min.js"></script>
<script src="../assets/js/bootstrap-timepicker.min.js"></script>
<script src="../assets/js/moment.min.js"></script>
<script src="../assets/js/daterangepicker.min.js"></script>
<script src="../assets/js/bootstrap-datetimepicker.min.js"></script>
<script src="../assets/js/bootstrap-colorpicker.min.js"></script>
<script src="../assets/js/jquery.knob.min.js"></script>
<script src="../assets/js/autosize.min.js"></script>
<script src="../assets/js/jquery.inputlimiter.min.js"></script>
<script src="../assets/js/jquery.maskedinput.min.js"></script>
<script src="../assets/js/bootstrap-tag.min.js"></script>
<!-- ace scripts -->
<script src="../assets/js/ace-elements.min.js"></script>
<script src="../assets/js/ace.min.js"></script>
<!-- inline scripts related to this page -->
<script type="text/javascript">
jQuery(function($) {
$('#id-disable-check').on('click', function() {
var inp = $('#form-input-readonly').get(0);
if(inp.hasAttribute('disabled')) {
inp.setAttribute('readonly', 'true');
inp.removeAttribute('disabled');
inp.value="This text field is readonly!";
}
else {
inp.setAttribute('disabled', 'disabled');
inp.removeAttribute('readonly');
inp.value="This text field is disabled!";
}
});
if(!ace.vars['touch']) {
$('.chosen-select').chosen({allow_single_deselect:true});
//resize the chosen on window resize
$(window)
.off('resize.chosen')
.on('resize.chosen', function() {
$('.chosen-select').each(function() {
var $this = $(this);
$this.next().css({'width': $this.parent().width()});
})
}).trigger('resize.chosen');
//resize chosen on sidebar collapse/expand
$(document).on('settings.ace.chosen', function(e, event_name, event_val) {
if(event_name != 'sidebar_collapsed') return;
$('.chosen-select').each(function() {
var $this = $(this);
$this.next().css({'width': $this.parent().width()});
})
});
$('#chosen-multiple-style .btn').on('click', function(e){
var target = $(this).find('input[type=radio]');
var which = parseInt(target.val());
if(which == 2) $('#form-field-select-4').addClass('tag-input-style');
else $('#form-field-select-4').removeClass('tag-input-style');
});
}
$('[data-rel=tooltip]').tooltip({container:'body'});
$('[data-rel=popover]').popover({container:'body'});
autosize($('textarea[class*=autosize]'));
$('textarea.limited').inputlimiter({
remText: '%n character%s remaining...',
limitText: 'max allowed : %n.'
});
$.mask.definitions['~']='[+-]';
$('.input-mask-date').mask('99/99/9999');
$('.input-mask-phone').mask('(999) 999-9999');
$('.input-mask-eyescript').mask('~9.99 ~9.99 999');
$(".input-mask-product").mask("a*-999-a999",{placeholder:" ",completed:function(){alert("You typed the following: "+this.val());}});
$( "#input-size-slider" ).css('width','200px').slider({
value:1,
range: "min",
min: 1,
max: 8,
step: 1,
slide: function( event, ui ) {
var sizing = ['', 'input-sm', 'input-lg', 'input-mini', 'input-small', 'input-medium', 'input-large', 'input-xlarge', 'input-xxlarge'];
var val = parseInt(ui.value);
$('#form-field-4').attr('class', sizing[val]).attr('placeholder', '.'+sizing[val]);
}
});
$( "#input-span-slider" ).slider({
value:1,
range: "min",
min: 1,
max: 12,
step: 1,
slide: function( event, ui ) {
var val = parseInt(ui.value);
$('#form-field-5').attr('class', 'col-xs-'+val).val('.col-xs-'+val);
}
});
//"jQuery UI Slider"
//range slider tooltip example
$( "#slider-range" ).css('height','200px').slider({
orientation: "vertical",
range: true,
min: 0,
max: 100,
values: [ 17, 67 ],
slide: function( event, ui ) {
var val = ui.values[$(ui.handle).index()-1] + "";
if( !ui.handle.firstChild ) {
$("<div class='tooltip right in' style='display:none;left:16px;top:-6px;'><div class='tooltip-arrow'></div><div class='tooltip-inner'></div></div>")
.prependTo(ui.handle);
}
$(ui.handle.firstChild).show().children().eq(1).text(val);
}
}).find('span.ui-slider-handle').on('blur', function(){
$(this.firstChild).hide();
});
$( "#slider-range-max" ).slider({
range: "max",
min: 1,
max: 10,
value: 2
});
$( "#slider-eq > span" ).css({width:'90%', 'float':'left', margin:'15px'}).each(function() {
// read initial values from markup and remove that
var value = parseInt( $( this ).text(), 10 );
$( this ).empty().slider({
value: value,
range: "min",
animate: true
});
});
$("#slider-eq > span.ui-slider-purple").slider('disable');//disable third item
$('#id-input-file-1, #id-input-file-2').ace_file_input({
no_file:'No File ...',
btn_choose:'Choose',
btn_change:'Change',
droppable:false,
onchange:null,
thumbnail:false //| true | large
//whitelist:'gif|png|jpg|jpeg'
//blacklist:'exe|php'
//onchange:''
//
});
//pre-show a file name, for example a previously selected file
//$('#id-input-file-1').ace_file_input('show_file_list', ['myfile.txt'])
$('#id-input-file-3').ace_file_input({
style: 'well',
btn_choose: 'Drop files here or click to choose',
btn_change: null,
no_icon: 'ace-icon fa fa-cloud-upload',
droppable: true,
thumbnail: 'small'//large | fit
//,icon_remove:null//set null, to hide remove/reset button
/**,before_change:function(files, dropped) {
//Check an example below
//or examples/file-upload.html
return true;
}*/
/**,before_remove : function() {
return true;
}*/
,
preview_error : function(filename, error_code) {
//name of the file that failed
//error_code values
//1 = 'FILE_LOAD_FAILED',
//2 = 'IMAGE_LOAD_FAILED',
//3 = 'THUMBNAIL_FAILED'
//alert(error_code);
}
}).on('change', function(){
//console.log($(this).data('ace_input_files'));
//console.log($(this).data('ace_input_method'));
});
//$('#id-input-file-3')
//.ace_file_input('show_file_list', [
//{type: 'image', name: 'name of image', path: 'http://path/to/image/for/preview'},
//{type: 'file', name: 'hello.txt'}
//]);
//dynamically change allowed formats by changing allowExt && allowMime function
$('#id-file-format').removeAttr('checked').on('change', function() {
var whitelist_ext, whitelist_mime;
var btn_choose
var no_icon
if(this.checked) {
btn_choose = "Drop images here or click to choose";
no_icon = "ace-icon fa fa-picture-o";
whitelist_ext = ["jpeg", "jpg", "png", "gif", "bmp"];
whitelist_mime = ["image/jpg", "image/jpeg", "image/png", "image/gif", "image/bmp"];
}
else {
btn_choose = "Drop files here or click to choose";
no_icon = "ace-icon fa fa-cloud-upload";
whitelist_ext = null;//all extensions are acceptable
whitelist_mime = null;//all mimes are acceptable
}
var file_input = $('#id-input-file-3');
file_input
.ace_file_input('update_settings',
{
'btn_choose': btn_choose,
'no_icon': no_icon,
'allowExt': whitelist_ext,
'allowMime': whitelist_mime
})
file_input.ace_file_input('reset_input');
file_input
.off('file.error.ace')
.on('file.error.ace', function(e, info) {
//console.log(info.file_count);//number of selected files
//console.log(info.invalid_count);//number of invalid files
//console.log(info.error_list);//a list of errors in the following format
//info.error_count['ext']
//info.error_count['mime']
//info.error_count['size']
//info.error_list['ext'] = [list of file names with invalid extension]
//info.error_list['mime'] = [list of file names with invalid mimetype]
//info.error_list['size'] = [list of file names with invalid size]
/**
if( !info.dropped ) {
//perhapse reset file field if files have been selected, and there are invalid files among them
//when files are dropped, only valid files will be added to our file array
e.preventDefault();//it will rest input
}
*/
//if files have been selected (not dropped), you can choose to reset input
//because browser keeps all selected files anyway and this cannot be changed
//we can only reset file field to become empty again
//on any case you still should check files with your server side script
//because any arbitrary file can be uploaded by user and it's not safe to rely on browser-side measures
});
/**
file_input
.off('file.preview.ace')
.on('file.preview.ace', function(e, info) {
console.log(info.file.width);
console.log(info.file.height);
e.preventDefault();//to prevent preview
});
*/
});
$('#spinner1').ace_spinner({value:0,min:0,max:200,step:10, btn_up_class:'btn-info', btn_down_class:'btn-info'})
.closest('.ace-spinner')
.on('changed.fu.spinbox', function(){
//console.log($('#spinner1').val())
});
$('#spinner2').ace_spinner({value:0,min:0,max:10000,step:100, touch_spinner: true, icon_up:'ace-icon fa fa-caret-up bigger-110', icon_down:'ace-icon fa fa-caret-down bigger-110'});
$('#spinner3').ace_spinner({value:0,min:-100,max:100,step:10, on_sides: true, icon_up:'ace-icon fa fa-plus bigger-110', icon_down:'ace-icon fa fa-minus bigger-110', btn_up_class:'btn-success', btn_down_class:'btn-danger'});
$('#spinner4').ace_spinner({value:0,min:-100,max:100,step:10, on_sides: true, icon_up:'ace-icon fa fa-plus', icon_down:'ace-icon fa fa-minus', btn_up_class:'btn-purple', btn_down_class:'btn-purple'});
//$('#spinner1').ace_spinner('disable').ace_spinner('value', 11);
//or
//$('#spinner1').closest('.ace-spinner').spinner('disable').spinner('enable').spinner('value', 11);//disable, enable or change value
//$('#spinner1').closest('.ace-spinner').spinner('value', 0);//reset to 0
//datepicker plugin
//link
$('.date-picker').datepicker({
autoclose: true,
todayHighlight: true
})
//show datepicker when clicking on the icon
.next().on(ace.click_event, function(){
$(this).prev().focus();
});
//or change it into a date range picker
$('.input-daterange').datepicker({autoclose:true});
//to translate the daterange picker, please copy the "examples/daterange-fr.js" contents here before initialization
$('input[name=date-range-picker]').daterangepicker({
'applyClass' : 'btn-sm btn-success',
'cancelClass' : 'btn-sm btn-default',
locale: {
applyLabel: 'Apply',
cancelLabel: 'Cancel',
}
})
.prev().on(ace.click_event, function(){
$(this).next().focus();
});
$('#timepicker1').timepicker({
minuteStep: 1,
showSeconds: true,
showMeridian: false,
disableFocus: true,
icons: {
up: 'fa fa-chevron-up',
down: 'fa fa-chevron-down'
}
}).on('focus', function() {
$('#timepicker1').timepicker('showWidget');
}).next().on(ace.click_event, function(){
$(this).prev().focus();
});
if(!ace.vars['old_ie']) $('#date-timepicker1').datetimepicker({
format: 'MM/DD/YYYY h:mm:ss A',//use this option to display seconds
icons: {
time: 'fa fa-clock-o',
date: 'fa fa-calendar',
up: 'fa fa-chevron-up',
down: 'fa fa-chevron-down',
previous: 'fa fa-chevron-left',
next: 'fa fa-chevron-right',
today: 'fa fa-arrows ',
clear: 'fa fa-trash',
close: 'fa fa-times'
}
}).next().on(ace.click_event, function(){
$(this).prev().focus();
});
$('#colorpicker1').colorpicker();
//$('.colorpicker').last().css('z-index', 2000);//if colorpicker is inside a modal, its z-index should be higher than modal'safe
$('#simple-colorpicker-1').ace_colorpicker();
//$('#simple-colorpicker-1').ace_colorpicker('pick', 2);//select 2nd color
//$('#simple-colorpicker-1').ace_colorpicker('pick', '#fbe983');//select #fbe983 color
//var picker = $('#simple-colorpicker-1').data('ace_colorpicker')
//picker.pick('red', true);//insert the color if it doesn't exist
$(".knob").knob();
var tag_input = $('#form-field-tags');
try{
tag_input.tag(
{
placeholder:tag_input.attr('placeholder'),
//enable typeahead by specifying the source array
source: ace.vars['US_STATES'],//defined in ace.js >> ace.enable_search_ahead
/**
//or fetch data from database, fetch those that match "query"
source: function(query, process) {
$.ajax({url: 'remote_source.php?q='+encodeURIComponent(query)})
.done(function(result_items){
process(result_items);
});
}
*/
}
)
//programmatically add/remove a tag
var $tag_obj = $('#form-field-tags').data('tag');
$tag_obj.add('Programmatically Added');
var index = $tag_obj.inValues('some tag');
$tag_obj.remove(index);
}
catch(e) {
//display a textarea for old IE, because it doesn't support this plugin or another one I tried!
tag_input.after('<textarea id="'+tag_input.attr('id')+'" name="'+tag_input.attr('name')+'" rows="3">'+tag_input.val()+'</textarea>').remove();
//autosize($('#form-field-tags'));
}
/////////
$('#modal-form input[type=file]').ace_file_input({
style:'well',
btn_choose:'Drop files here or click to choose',
btn_change:null,
no_icon:'ace-icon fa fa-cloud-upload',
droppable:true,
thumbnail:'large'
})
//chosen plugin inside a modal will have a zero width because the select element is originally hidden
//and its width cannot be determined.
//so we set the width after modal is show
$('#modal-form').on('shown.bs.modal', function () {
if(!ace.vars['touch']) {
$(this).find('.chosen-container').each(function(){
$(this).find('a:first-child').css('width', '210px');
$(this).find('.chosen-drop').css('width', '210px');
$(this).find('.chosen-search input').css('width', '200px');
});
}
})
/**
//or you can activate the chosen plugin after modal is shown
//this way select element becomes visible with dimensions and chosen works as expected
$('#modal-form').on('shown', function () {
$(this).find('.modal-chosen').chosen();
})
*/
$(document).one('ajaxloadstart.page', function(e) {
autosize.destroy('textarea[class*=autosize]')
$('.limiterBox,.autosizejs').remove();
$('.daterangepicker.dropdown-menu,.colorpicker.dropdown-menu,.bootstrap-datetimepicker-widget.dropdown-menu').remove();
});
});
</script>
</body>
</html>

View file

@ -0,0 +1,588 @@
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<meta charset="utf-8" />
<title>查看未处理处方列表 - 医院药品库存管理系统</title>
<meta name="description" content="查看未处理处方列表 - 医院药品库存管理系统" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0" />
<!-- bootstrap & fontawesome -->
<link rel="stylesheet" href="../assets/css/bootstrap.min.css" />
<link rel="stylesheet" href="../assets/font-awesome/4.5.0/css/font-awesome.min.css" />
<!-- page specific plugin styles -->
<!-- text fonts -->
<link rel="stylesheet" href="../assets/css/fonts.googleapis.com.css" />
<!-- ace styles -->
<link rel="stylesheet" href="../assets/css/ace.min.css" class="ace-main-stylesheet" id="main-ace-style" />
<!--[if lte IE 9]>
<link rel="stylesheet" href="../assets/css/ace-part2.min.css" class="ace-main-stylesheet" />
<![endif]-->
<link rel="stylesheet" href="../assets/css/ace-skins.min.css" />
<link rel="stylesheet" href="../assets/css/ace-rtl.min.css" />
<!--[if lte IE 9]>
<link rel="stylesheet" href="../assets/css/ace-ie.min.css" />
<![endif]-->
<!-- inline styles related to this page -->
<!-- ace settings handler -->
<script src="../assets/js/ace-extra.min.js"></script>
<!-- HTML5shiv and Respond.js for IE8 to support HTML5 elements and media queries -->
<!--[if lte IE 8]>
<script src="../assets/js/html5shiv.min.js"></script>
<script src="../assets/js/respond.min.js"></script>
<![endif]-->
</head>
<body class="no-skin">
<div id="navbar" class="navbar navbar-default ace-save-state">
<div class="navbar-container ace-save-state" id="navbar-container">
<button type="button" class="navbar-toggle menu-toggler pull-left" id="menu-toggler" data-target="#sidebar">
<span class="sr-only">Toggle sidebar</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<div class="navbar-header pull-left">
<a href="../doctor/index" class="navbar-brand">
<small>
<i class="fa fa-leaf"></i>
医院药品库存管理系统 DIMS
</small>
</a>
</div>
<div class="navbar-buttons navbar-header pull-right" role="navigation">
<ul class="nav ace-nav">
<li class="grey dropdown-modal">
<a data-toggle="dropdown" class="dropdown-toggle" href="#">
<i class="ace-icon fa fa-tasks"></i>
<span class="badge badge-grey">3</span>
</a>
<ul class="dropdown-menu-right dropdown-navbar dropdown-menu dropdown-caret dropdown-close">
<li class="dropdown-header">
<i class="ace-icon fa fa-check"></i>
统计信息
</li>
<li class="dropdown-content">
<ul class="dropdown-menu dropdown-navbar">
<li>
<a href="../doctor/query-solved-rx-list">
<div class="clearfix">
<span class="pull-left">已处理处方数目占比</span>
<span class="pull-right">
<fmt:formatNumber value="${solvedRxsNum / (solvedRxsNum + unsolvedRxsNum) * 100}" pattern="#.00"/>
%
</span>
</div>
<div class="progress progress-mini progress-striped active">
<div style="width:${solvedRxsNum / (solvedRxsNum + unsolvedRxsNum) * 100}%" class="progress-bar"></div>
</div>
</a>
</li>
<li>
<a href="../doctor/query-unsolved-rx-list">
<div class="clearfix">
<span class="pull-left">未处理处方数目占比</span>
<span class="pull-right">
<fmt:formatNumber value="${unsolvedRxsNum / (solvedRxsNum + unsolvedRxsNum) * 100}" pattern="#.00"/>
%
</span>
</div>
<div class="progress progress-mini progress-striped active">
<div style="width:${unsolvedRxsNum / (solvedRxsNum + unsolvedRxsNum) * 100}%" class="progress-bar progress-bar-warning"></div>
</div>
</a>
</li>
<li>
<a href="#">
<div class="clearfix">
<span class="pull-left">由我开出的处方数目占比</span>
<span class="pull-right">
<fmt:formatNumber value="${myPrescribeRxsNum / (solvedRxsNum + unsolvedRxsNum) * 100}" pattern="#.00"/>
%
</span>
</div>
<div class="progress progress-mini progress-striped active">
<div style="width:${myPrescribeRxsNum / (solvedRxsNum + unsolvedRxsNum) * 100}%" class="progress-bar progress-bar-success"></div>
</div>
</a>
</li>
</ul>
</li>
</ul>
</li>
<li class="light-blue dropdown-modal">
<a data-toggle="dropdown" href="#" class="dropdown-toggle">
<img class="nav-user-photo" src="../assets/images/avatars/${currentDoctor.dsex ? 'Male' : 'Female'}Doctor.png" alt="头像" />
<span class="user-info">
<small>欢迎,</small>
${currentDoctor.dname}
</span>
<i class="ace-icon fa fa-caret-down"></i>
</a>
<ul class="user-menu dropdown-menu-right dropdown-menu dropdown-yellow dropdown-caret dropdown-close">
<li>
<a href="../doctor/profile">
<i class="ace-icon fa fa-user"></i>
个人信息
</a>
</li>
<li class="divider"></li>
<li>
<a href="../logout">
<i class="ace-icon fa fa-power-off"></i>
登出
</a>
</li>
</ul>
</li>
</ul>
</div>
</div><!-- /.navbar-container -->
</div>
<div class="main-container ace-save-state" id="main-container">
<script type="text/javascript">
try{ace.settings.loadState('main-container')}catch(e){}
</script>
<div id="sidebar" class="sidebar responsive ace-save-state">
<script type="text/javascript">
try{ace.settings.loadState('sidebar')}catch(e){}
</script>
<div class="sidebar-shortcuts" id="sidebar-shortcuts">
<div class="sidebar-shortcuts-large" id="sidebar-shortcuts-large">
<button class="btn btn-success">
<i class="ace-icon fa fa-signal"></i>
</button>
<button class="btn btn-info">
<i class="ace-icon fa fa-pencil"></i>
</button>
<button class="btn btn-warning">
<i class="ace-icon fa fa-users"></i>
</button>
<button class="btn btn-danger">
<i class="ace-icon fa fa-cogs"></i>
</button>
</div>
<div class="sidebar-shortcuts-mini" id="sidebar-shortcuts-mini">
<span class="btn btn-success"></span>
<span class="btn btn-info"></span>
<span class="btn btn-warning"></span>
<span class="btn btn-danger"></span>
</div>
</div><!-- /.sidebar-shortcuts -->
<ul class="nav nav-list">
<li class="">
<a href="../doctor/welcome">
<i class="menu-icon fa fa-tachometer"></i>
<span class="menu-text"> 欢迎页面 </span>
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="../doctor/profile">
<i class="menu-icon fa fa-tag"></i>
<span class="menu-text"> 个人信息页面 </span>
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="../doctor/query-drug-list">
<i class="menu-icon fa fa-list"></i>
<span class="menu-text"> 查看库存药品列表 </span>
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="../doctor/add-rx-form">
<i class="menu-icon fa fa-pencil-square-o"></i>
<span class="menu-text"> 填写新建处方表单 </span>
</a>
<b class="arrow"></b>
</li>
<li class="active open">
<a href="#" class="dropdown-toggle">
<i class="menu-icon fa fa-list-alt"></i>
<span class="menu-text"> 查看处方列表 </span>
<b class="arrow fa fa-angle-down"></b>
</a>
<b class="arrow"></b>
<ul class="submenu">
<li class="active">
<a href="../doctor/query-unsolved-rx-list">
<i class="menu-icon fa fa-caret-right"></i>
查看未处理处方列表
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="../doctor/query-solved-rx-list">
<i class="menu-icon fa fa-caret-right"></i>
查看已处理处方列表
</a>
<b class="arrow"></b>
</li>
</ul>
</li>
</ul><!-- /.nav-list -->
<div class="sidebar-toggle sidebar-collapse" id="sidebar-collapse">
<i id="sidebar-toggle-icon" class="ace-icon fa fa-angle-double-left ace-save-state" data-icon1="ace-icon fa fa-angle-double-left" data-icon2="ace-icon fa fa-angle-double-right"></i>
</div>
</div>
<div class="main-content">
<div class="main-content-inner">
<div class="breadcrumbs ace-save-state" id="breadcrumbs">
<ul class="breadcrumb">
<li>
<i class="ace-icon fa fa-home home-icon"></i>
<a href="../doctor/index">首页</a>
</li>
<li>
<a href="../doctor/query-unsolved-rx-list">查看处方列表</a>
</li>
<li class="active">查看未处理处方列表</li>
</ul><!-- /.breadcrumb -->
</div>
<div class="page-content">
<div class="page-header">
<h1>
查看未处理处方列表
<small>
<i class="ace-icon fa fa-angle-double-right"></i>
未处理处方列表
</small>
</h1>
</div><!-- /.page-header -->
<c:choose>
<c:when test="${echo != null}">
<div class="alert alert-info">
<button class="close" data-dismiss="alert">
<i class="ace-icon fa fa-times"></i>
</button>
<i class="ace-icon fa fa-hand-o-right"></i>
${echo}
</div>
</c:when>
</c:choose>
<div class="row">
<div class="col-xs-12">
<!-- PAGE CONTENT BEGINS -->
<div class="row">
<div class="col-xs-12">
<div class="clearfix">
<div class="pull-right tableTools-container"></div>
</div>
<div class="table-header">
查询结果
</div>
<!-- div.table-responsive -->
<!-- div.dataTables_borderWrap -->
<div>
<table id="dynamic-table" class="table table-striped table-bordered table-hover">
<thead>
<tr>
<th>处方编号</th>
<th>病人身份证号</th>
<th>开出医生编号</th>
<th>开出时间</th>
<th>操作</th>
</tr>
</thead>
<tbody>
<c:forEach items="${rxs}" var="rx">
<tr>
<td>
<a href="../doctor/query-specific-rx?Pno=${rx.pno}" title="查看该处方的具体明细">${rx.pno}</a>
</td>
<td>${rx.pid}</td>
<td>
<a href="../doctor/query-specific-doctor?Dno=${rx.dno}" title="查看该医生的处方明细">${rx.dno}</a>
</td>
<td>
<fmt:formatDate value="${rx.ptime}" pattern="yyyy 年 MM 月 dd 日 HH:mm:ss"/>
</td>
<td>
<div class="hidden-sm hidden-xs action-buttons">
<a class="blue" href="../doctor/query-specific-rx?Pno=${rx.pno}" title="查看该处方的具体明细">
<i class="ace-icon fa fa-search-plus bigger-130"></i>
</a>
<a class="green" href="../doctor/edit-rx-form?Pno=${rx.pno}" title="编辑该处方">
<i class="ace-icon fa fa-pencil bigger-130"></i>
</a>
<a class="red" href="../doctor/delete-rx?Pno=${rx.pno}" title="删除该处方">
<i class="ace-icon fa fa-trash-o bigger-130"></i>
</a>
</div>
<div class="hidden-md hidden-lg">
<div class="inline pos-rel">
<button class="btn btn-minier btn-yellow dropdown-toggle" data-toggle="dropdown" data-position="auto">
<i class="ace-icon fa fa-caret-down icon-only bigger-120"></i>
</button>
<ul class="dropdown-menu dropdown-only-icon dropdown-yellow dropdown-menu-right dropdown-caret dropdown-close">
<li>
<a href="../doctor/query-specific-rx?Pno=${rx.pno}" class="tooltip-info" data-rel="tooltip" title="查看该处方的具体明细">
<span class="blue">
<i class="ace-icon fa fa-search-plus bigger-120"></i>
</span>
</a>
</li>
<li>
<a href="../doctor/edit-rx-form?Pno=${rx.pno}" class="tooltip-success" data-rel="tooltip" title="编辑该处方">
<span class="green">
<i class="ace-icon fa fa-pencil-square-o bigger-120"></i>
</span>
</a>
</li>
<li>
<a href="../doctor/delete-rx?Pno=${rx.pno}" class="tooltip-error" data-rel="tooltip" title="删除该处方">
<span class="red">
<i class="ace-icon fa fa-trash-o bigger-120"></i>
</span>
</a>
</li>
</ul>
</div>
</div>
</td>
</tr>
</c:forEach>
</tbody>
</table>
</div>
</div>
</div>
<!-- PAGE CONTENT ENDS -->
</div><!-- /.col -->
</div><!-- /.row -->
</div><!-- /.page-content -->
</div>
</div><!-- /.main-content -->
<div class="footer">
<div class="footer-inner">
<div class="footer-content">
<span class="bigger-120">
<span class="blue bolder">医院药品库存管理系统</span>
DIMS &copy; 2019-2020
</span>
</div>
</div>
</div>
<a href="#" id="btn-scroll-up" class="btn-scroll-up btn btn-sm btn-inverse">
<i class="ace-icon fa fa-angle-double-up icon-only bigger-110"></i>
</a>
</div><!-- /.main-container -->
<!-- basic scripts -->
<!--[if !IE]> -->
<script src="../assets/js/jquery-2.1.4.min.js"></script>
<!-- <![endif]-->
<!--[if IE]>
<script src="../assets/js/jquery-1.11.3.min.js"></script>
<![endif]-->
<script type="text/javascript">
if('ontouchstart' in document.documentElement) document.write("<script src='../assets/js/jquery.mobile.custom.min.js'>"+"<"+"/script>");
</script>
<script src="../assets/js/bootstrap.min.js"></script>
<!-- page specific plugin scripts -->
<script src="../assets/js/jquery.dataTables.min.js"></script>
<script src="../assets/js/jquery.dataTables.bootstrap.min.js"></script>
<script src="../assets/js/dataTables.buttons.min.js"></script>
<script src="../assets/js/buttons.flash.min.js"></script>
<script src="../assets/js/buttons.html5.min.js"></script>
<script src="../assets/js/buttons.print.min.js"></script>
<script src="../assets/js/buttons.colVis.min.js"></script>
<script src="../assets/js/dataTables.select.min.js"></script>
<!-- ace scripts -->
<script src="../assets/js/ace-elements.min.js"></script>
<script src="../assets/js/ace.min.js"></script>
<!-- inline scripts related to this page -->
<script type="text/javascript">
jQuery(function($) {
//initiate dataTables plugin
var myTable =
$('#dynamic-table')
//.wrap("<div class='dataTables_borderWrap' />") //if you are applying horizontal scrolling (sScrollX)
.DataTable( {
bAutoWidth: false,
"aoColumns": [ null, null, null, null, { "bSortable": false } ],
"aaSorting": [],
"iDisplayLength": 5,
"aLengthMenu": [
[5, 10, 15, 20, 25, 30, 35, 40, 45, 50, -1],
["5 条", "10 条", "15 条", "20 条", "25 条", "30 条", "35 条", "40 条", "45 条", "50 条", "全部"]
],
"oLanguage": { // 自定义提示信息
"sLengthMenu": "每页显示 _MENU_ 记录",
"sZeroRecords": "抱歉,没有找到",
"sInfo": "从 _START_ 到 _END_ / 共 _TOTAL_ 条数据 ",
"sInfoEmpty": "没有数据",
"sInfoFiltered": "(从 _MAX_ 条数据中检索) ",
"sSearch": "检索",
"oPaginate": {
"sFirst": "首页",
"sPrevious": "前一页",
"sNext": "后一页",
"sLast": "尾页"
}
}
//"bProcessing": true,
//"bServerSide": true,
//"sAjaxSource": "http://127.0.0.1/table.php" ,
//,
//"sScrollY": "200px",
//"bPaginate": false,
//"sScrollX": "100%",
//"sScrollXInner": "120%",
//"bScrollCollapse": true,
//Note: if you are applying horizontal scrolling (sScrollX) on a ".table-bordered"
//you may want to wrap the table inside a "div.dataTables_borderWrap" element
//"iDisplayLength": 50
} );
$.fn.dataTable.Buttons.defaults.dom.container.className = 'dt-buttons btn-overlap btn-group btn-overlap';
new $.fn.dataTable.Buttons( myTable, {
buttons: [
{
"extend": "colvis",
"text": "<i class='fa fa-search bigger-110 blue'></i> <span class='hidden'>显示/隐藏列</span>",
"className": "btn btn-white btn-primary btn-bold",
columns: ':not(:first):not(:last)'
},
{
"extend": "copy",
"text": "<i class='fa fa-copy bigger-110 pink'></i> <span class='hidden'>复制到剪贴板</span>",
"className": "btn btn-white btn-primary btn-bold"
},
{
"extend": "csv",
"text": "<i class='fa fa-database bigger-110 orange'></i> <span class='hidden'>导出到 CSV 文件</span>",
"className": "btn btn-white btn-primary btn-bold"
},
/* {
"extend": "excel",
"text": "<i class='fa fa-file-excel-o bigger-110 green'></i> <span class='hidden'>导出到 Excel 文件</span>",
"className": "btn btn-white btn-primary btn-bold"
},
{
"extend": "pdf",
"text": "<i class='fa fa-file-pdf-o bigger-110 red'></i> <span class='hidden'>导出到 PDF 文件</span>",
"className": "btn btn-white btn-primary btn-bold"
}, */
{
"extend": "print",
"text": "<i class='fa fa-print bigger-110 grey'></i> <span class='hidden'>Print</span>",
"className": "btn btn-white btn-primary btn-bold",
autoPrint: false
}
]
} );
myTable.buttons().container().appendTo( $('.tableTools-container') );
//style the message box
var defaultCopyAction = myTable.button(1).action();
myTable.button(1).action(function (e, dt, button, config) {
defaultCopyAction(e, dt, button, config);
$('.dt-button-info').addClass('gritter-item-wrapper gritter-info gritter-center white');
});
var defaultColvisAction = myTable.button(0).action();
myTable.button(0).action(function (e, dt, button, config) {
defaultColvisAction(e, dt, button, config);
if($('.dt-button-collection > .dropdown-menu').length == 0) {
$('.dt-button-collection')
.wrapInner('<ul class="dropdown-menu dropdown-light dropdown-caret dropdown-caret" />')
.find('a').attr('href', '#').wrap("<li />")
}
$('.dt-button-collection').appendTo('.tableTools-container .dt-buttons')
});
////
setTimeout(function() {
$($('.tableTools-container')).find('a.dt-button').each(function() {
var div = $(this).find(' > div').first();
if(div.length == 1) div.tooltip({container: 'body', title: div.parent().text()});
else $(this).tooltip({container: 'body', title: $(this).text()});
});
}, 500);
myTable.on( 'select', function ( e, dt, type, index ) {
if ( type === 'row' ) {
$( myTable.row( index ).node() ).find('input:checkbox').prop('checked', true);
}
} );
myTable.on( 'deselect', function ( e, dt, type, index ) {
if ( type === 'row' ) {
$( myTable.row( index ).node() ).find('input:checkbox').prop('checked', false);
}
} );
/////////////////////////////////
//table checkboxes
$('th input[type=checkbox], td input[type=checkbox]').prop('checked', false);
//select/deselect all rows according to table header checkbox
$('#dynamic-table > thead > tr > th input[type=checkbox], #dynamic-table_wrapper input[type=checkbox]').eq(0).on('click', function(){
var th_checked = this.checked;//checkbox inside "TH" table header
$('#dynamic-table').find('tbody > tr').each(function(){
var row = this;
if(th_checked) myTable.row(row).select();
else myTable.row(row).deselect();
});
});
//select/deselect a row when the checkbox is checked/unchecked
$('#dynamic-table').on('click', 'td input[type=checkbox]', function(){
var row = $(this).closest('tr').get(0);
if(this.checked) myTable.row(row).deselect();
else myTable.row(row).select();
});
$(document).on('click', '#dynamic-table .dropdown-toggle', function(e) {
e.stopImmediatePropagation();
e.stopPropagation();
e.preventDefault();
});
//And for the first simple table, which doesn't have TableTools or dataTables
//select/deselect all rows according to table header checkbox
var active_class = 'active';
$('#simple-table > thead > tr > th input[type=checkbox]').eq(0).on('click', function(){
var th_checked = this.checked;//checkbox inside "TH" table header
$(this).closest('table').find('tbody > tr').each(function(){
var row = this;
if(th_checked) $(row).addClass(active_class).find('input[type=checkbox]').eq(0).prop('checked', true);
else $(row).removeClass(active_class).find('input[type=checkbox]').eq(0).prop('checked', false);
});
});
//select/deselect a row when the checkbox is checked/unchecked
$('#simple-table').on('click', 'td input[type=checkbox]', function(){
var $row = $(this).closest('tr');
if($row.is('.detail-row ')) return;
if(this.checked) $row.addClass(active_class);
else $row.removeClass(active_class);
});
/********************************/
//add tooltip for small view action buttons in dropdown menu
$('[data-rel="tooltip"]').tooltip({placement: tooltip_placement});
//tooltip placement on right or left
function tooltip_placement(context, source) {
var $source = $(source);
var $parent = $source.closest('table')
var off1 = $parent.offset();
var w1 = $parent.width();
var off2 = $source.offset();
//var w2 = $source.width();
if( parseInt(off2.left) < parseInt(off1.left) + parseInt(w1 / 2) ) return 'right';
return 'left';
}
/***************/
$('.show-details-btn').on('click', function(e) {
e.preventDefault();
$(this).closest('tr').next().toggleClass('open');
$(this).find(ace.vars['.icon']).toggleClass('fa-angle-double-down').toggleClass('fa-angle-double-up');
});
/***************/
/**
//add horizontal scrollbars to a simple table
$('#simple-table').css({'width':'2000px', 'max-width': 'none'}).wrap('<div style="width: 1000px;" />').parent().ace_scroll(
{
horizontal: true,
styleClass: 'scroll-top scroll-dark scroll-visible',//show the scrollbars on top(default is bottom)
size: 2000,
mouseWheelLock: true
}
).css('padding-top', '12px');
*/
})
</script>
</body>
</html>

View file

@ -0,0 +1,862 @@
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<meta charset="utf-8" />
<title>${type ? '新增' : '修改'}处方表单 - 医院药品库存管理系统</title>
<meta name="description" content="${type ? '新增' : '修改'}处方表单 - 医院药品库存管理系统" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0" />
<!-- bootstrap & fontawesome -->
<link rel="stylesheet" href="../assets/css/bootstrap.min.css" />
<link rel="stylesheet" href="../assets/font-awesome/4.5.0/css/font-awesome.min.css" />
<!-- page specific plugin styles -->
<link rel="stylesheet" href="../assets/css/jquery-ui.custom.min.css" />
<link rel="stylesheet" href="../assets/css/chosen.min.css" />
<link rel="stylesheet" href="../assets/css/bootstrap-datepicker3.min.css" />
<link rel="stylesheet" href="../assets/css/bootstrap-timepicker.min.css" />
<link rel="stylesheet" href="../assets/css/daterangepicker.min.css" />
<link rel="stylesheet" href="../assets/css/bootstrap-datetimepicker.min.css" />
<link rel="stylesheet" href="../assets/css/bootstrap-colorpicker.min.css" />
<!-- text fonts -->
<link rel="stylesheet" href="../assets/css/fonts.googleapis.com.css" />
<!-- ace styles -->
<link rel="stylesheet" href="../assets/css/ace.min.css" class="ace-main-stylesheet" id="main-ace-style" />
<!--[if lte IE 9]>
<link rel="stylesheet" href="../assets/css/ace-part2.min.css" class="ace-main-stylesheet" />
<![endif]-->
<link rel="stylesheet" href="../assets/css/ace-skins.min.css" />
<link rel="stylesheet" href="../assets/css/ace-rtl.min.css" />
<!--[if lte IE 9]>
<link rel="stylesheet" href="../assets/css/ace-ie.min.css" />
<![endif]-->
<!-- inline styles related to this page -->
<!-- ace settings handler -->
<script src="../assets/js/ace-extra.min.js"></script>
<!-- HTML5shiv and Respond.js for IE8 to support HTML5 elements and media queries -->
<!--[if lte IE 8]>
<script src="../assets/js/html5shiv.min.js"></script>
<script src="../assets/js/respond.min.js"></script>
<![endif]-->
</head>
<body class="no-skin">
<div id="navbar" class="navbar navbar-default ace-save-state">
<div class="navbar-container ace-save-state" id="navbar-container">
<button type="button" class="navbar-toggle menu-toggler pull-left" id="menu-toggler" data-target="#sidebar">
<span class="sr-only">Toggle sidebar</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<div class="navbar-header pull-left">
<a href="index.html" class="navbar-brand">
<small>
<i class="fa fa-leaf"></i>
医院药品库存管理系统 DIMS
</small>
</a>
</div>
<div class="navbar-buttons navbar-header pull-right" role="navigation">
<ul class="nav ace-nav">
<li class="grey dropdown-modal">
<a data-toggle="dropdown" class="dropdown-toggle" href="#">
<i class="ace-icon fa fa-tasks"></i>
<span class="badge badge-grey">3</span>
</a>
<ul class="dropdown-menu-right dropdown-navbar dropdown-menu dropdown-caret dropdown-close">
<li class="dropdown-header">
<i class="ace-icon fa fa-check"></i>
统计信息
</li>
<li class="dropdown-content">
<ul class="dropdown-menu dropdown-navbar">
<li>
<a href="../doctor/query-solved-rx-list">
<div class="clearfix">
<span class="pull-left">已处理处方数目占比</span>
<span class="pull-right">
<fmt:formatNumber value="${solvedRxsNum / (solvedRxsNum + unsolvedRxsNum) * 100}" pattern="#.00"/>
%
</span>
</div>
<div class="progress progress-mini progress-striped active">
<div style="width:${solvedRxsNum / (solvedRxsNum + unsolvedRxsNum) * 100}%" class="progress-bar"></div>
</div>
</a>
</li>
<li>
<a href="../doctor/query-unsolved-rx-list">
<div class="clearfix">
<span class="pull-left">未处理处方数目占比</span>
<span class="pull-right">
<fmt:formatNumber value="${unsolvedRxsNum / (solvedRxsNum + unsolvedRxsNum) * 100}" pattern="#.00"/>
%
</span>
</div>
<div class="progress progress-mini progress-striped active">
<div style="width:${unsolvedRxsNum / (solvedRxsNum + unsolvedRxsNum) * 100}%" class="progress-bar progress-bar-warning"></div>
</div>
</a>
</li>
<li>
<a href="#">
<div class="clearfix">
<span class="pull-left">由我开出的处方数目占比</span>
<span class="pull-right">
<fmt:formatNumber value="${myPrescribeRxsNum / (solvedRxsNum + unsolvedRxsNum) * 100}" pattern="#.00"/>
%
</span>
</div>
<div class="progress progress-mini progress-striped active">
<div style="width:${myPrescribeRxsNum / (solvedRxsNum + unsolvedRxsNum) * 100}%" class="progress-bar progress-bar-success"></div>
</div>
</a>
</li>
</ul>
</li>
</ul>
</li>
<li class="light-blue dropdown-modal">
<a data-toggle="dropdown" href="#" class="dropdown-toggle">
<img class="nav-user-photo" src="../assets/images/avatars/${currentDoctor.dsex ? 'Male' : 'Female'}Doctor.png" alt="头像" />
<span class="user-info">
<small>欢迎,</small>
${currentDoctor.dname}
</span>
<i class="ace-icon fa fa-caret-down"></i>
</a>
<ul class="user-menu dropdown-menu-right dropdown-menu dropdown-yellow dropdown-caret dropdown-close">
<li>
<a href="../doctor/profile">
<i class="ace-icon fa fa-user"></i>
个人信息
</a>
</li>
<li class="divider"></li>
<li>
<a href="../logout">
<i class="ace-icon fa fa-power-off"></i>
登出
</a>
</li>
</ul>
</li>
</ul>
</div>
</div><!-- /.navbar-container -->
</div>
<div class="main-container ace-save-state" id="main-container">
<script type="text/javascript">
try{ace.settings.loadState('main-container')}catch(e){}
</script>
<div id="sidebar" class="sidebar responsive ace-save-state">
<script type="text/javascript">
try{ace.settings.loadState('sidebar')}catch(e){}
</script>
<div class="sidebar-shortcuts" id="sidebar-shortcuts">
<div class="sidebar-shortcuts-large" id="sidebar-shortcuts-large">
<button class="btn btn-success">
<i class="ace-icon fa fa-signal"></i>
</button>
<button class="btn btn-info">
<i class="ace-icon fa fa-pencil"></i>
</button>
<button class="btn btn-warning">
<i class="ace-icon fa fa-users"></i>
</button>
<button class="btn btn-danger">
<i class="ace-icon fa fa-cogs"></i>
</button>
</div>
<div class="sidebar-shortcuts-mini" id="sidebar-shortcuts-mini">
<span class="btn btn-success"></span>
<span class="btn btn-info"></span>
<span class="btn btn-warning"></span>
<span class="btn btn-danger"></span>
</div>
</div><!-- /.sidebar-shortcuts -->
<ul class="nav nav-list">
<li class="">
<a href="../doctor/welcome">
<i class="menu-icon fa fa-tachometer"></i>
<span class="menu-text"> 欢迎页面 </span>
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="../doctor/profile">
<i class="menu-icon fa fa-tag"></i>
<span class="menu-text"> 个人信息页面 </span>
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="../doctor/query-drug-list">
<i class="menu-icon fa fa-list"></i>
<span class="menu-text"> 查看库存药品列表 </span>
</a>
<b class="arrow"></b>
</li>
<li class="${type ? 'active' : ''}">
<a href="../doctor/add-rx-form">
<i class="menu-icon fa fa-pencil-square-o"></i>
<span class="menu-text"> 填写新建处方表单 </span>
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="#" class="dropdown-toggle">
<i class="menu-icon fa fa-list-alt"></i>
<span class="menu-text"> 查看处方列表 </span>
<b class="arrow fa fa-angle-down"></b>
</a>
<b class="arrow"></b>
<ul class="submenu">
<li class="">
<a href="../doctor/query-unsolved-rx-list">
<i class="menu-icon fa fa-caret-right"></i>
查看未处理处方列表
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="../doctor/query-solved-rx-list">
<i class="menu-icon fa fa-caret-right"></i>
查看已处理处方列表
</a>
<b class="arrow"></b>
</li>
</ul>
</li>
</ul><!-- /.nav-list -->
<div class="sidebar-toggle sidebar-collapse" id="sidebar-collapse">
<i id="sidebar-toggle-icon" class="ace-icon fa fa-angle-double-left ace-save-state" data-icon1="ace-icon fa fa-angle-double-left" data-icon2="ace-icon fa fa-angle-double-right"></i>
</div>
</div>
<div class="main-content">
<div class="main-content-inner">
<div class="breadcrumbs ace-save-state" id="breadcrumbs">
<ul class="breadcrumb">
<li>
<i class="ace-icon fa fa-home home-icon"></i>
<a href="../admin/index">首页</a>
</li>
<li class="active">
<c:choose>
<c:when test="${type}">新建</c:when>
<c:otherwise>修改 ${rx.pno} 号处方的</c:otherwise>
</c:choose>
处方表单
</li>
</ul><!-- /.breadcrumb -->
</div>
<div class="page-content">
<div class="page-header">
<h1>
<c:choose>
<c:when test="${type}">新建</c:when>
<c:otherwise>修改 ${rx.pno} 号处方的</c:otherwise>
</c:choose>
处方表单
<small>
<i class="ace-icon fa fa-angle-double-right"></i>
处方表单
</small>
</h1>
</div><!-- /.page-header -->
<c:choose>
<c:when test="${echo != null}">
<div class="alert alert-info">
<button class="close" data-dismiss="alert">
<i class="ace-icon fa fa-times"></i>
</button>
<i class="ace-icon fa fa-hand-o-right"></i>
${echo}
</div>
</c:when>
</c:choose>
<div class="row">
<div class="col-xs-12">
<!-- PAGE CONTENT BEGINS -->
<form class="form-horizontal" role="form" method="post" action="../doctor/submit-rx-form">
<div class="form-group">
<label class="col-sm-3 control-label no-padding-right" for="form-field-1"> 处方编号 (${type ? '由系统给定' : '不可修改'}) </label>
<div class="col-sm-4">
<input class="form-control" id="form-field-1" type="text" readonly="readonly" placeholder="处方编号 (${type ? '由系统给定' : '不可修改'})" ${type ? '' : 'name="Pno"'} value="${rx.pno}" required="required" />
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label no-padding-right" for="form-field-2"> 病人身份证号码 </label>
<div class="col-sm-4">
<input class="form-control" id="form-field-2" type="text" placeholder="病人身份证号码" name="Pid" value="${rx.pid}" required="required" maxlength=20 onKeyUp="value=value.replace(/[\W]/g,'')" />
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label no-padding-right" for="form-field-3"> 开出处方的医生 </label>
<div class="col-sm-4">
<select class="chosen-select form-control" id="form-field-3" name="Dno" data-placeholder="选择开出处方的医生..." required="required">
<option value=""></option>
<c:forEach items="${doctors}" var="doctor">
<option value="${doctor.dno}" ${doctor.dno == rx.dno ? 'selected="selected"' : ''}>${doctor.dname}</option>
</c:forEach>
</select>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label no-padding-right" for="id-date-picker-1"> 处方开出日期 </label>
<div class="col-sm-4">
<div class="input-group">
<input class="form-control date-picker" id="id-date-picker-1" name="tempPdate" value="<fmt:formatDate value="${rx.ptime}" pattern="yyyy 年 MM 月 dd 日"/>" type="text" placeholder="处方开出日期" data-date-format="yyyy 年 mm 月 dd 日" required="required" />
<span class="input-group-addon">
<i class="fa fa-calendar bigger-110"></i>
</span>
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label no-padding-right" for="timepicker1"> 处方开出时间 </label>
<div class="col-sm-4">
<div class="input-group">
<input class="form-control" id="timepicker1" type="text" placeholder="处方开出时间" name="tempPtime" value="<fmt:formatDate value="${rx.ptime}" pattern="HH:mm:ss"/>" required="required" />
<span class="input-group-addon">
<i class="fa fa-clock-o bigger-110"></i>
</span>
</div>
</div>
</div>
<c:if test="${type == false}">
<div class="form-group">
<label class="col-sm-3 control-label no-padding-right" for="form-field-6"> 处方包含的药品列表 </label>
<div class="col-sm-4">
<h5 class="pink">
<i class="ace-icon fa fa-hand-o-right green"></i>
<a href="#modal-form" role="button" class="green" data-toggle="modal"> 为该处方添加一种药品 </a>
</h5>
<h5 class="pink">
<i class="ace-icon fa fa-hand-o-right blue"></i>
<a href="#modal-form" role="button" class="blue" data-toggle="modal"> 修改某一种药品的数量 </a>
</h5>
<table id="simple-table" class="table table-bordered table-hover">
<thead>
<tr>
<th>药品编号</th>
<th>药品名称</th>
<th>药品数量</th>
<th>操作</th>
</tr>
</thead>
<tbody>
<c:forEach items="${rx.drugs}" var="drug">
<tr>
<td>${drug.PDno}</td>
<td>${drug.PDname}</td>
<td>${drug.PDnum}</td>
<td>
<div class="hidden-sm hidden-xs action-buttons">
<a class="red" href="../doctor/delete-rx-drug?Pno=${rx.pno}&PDno=${drug.PDno}" title="删除该药品">
<i class="ace-icon fa fa-trash-o bigger-130"></i>
</a>
</div>
<div class="hidden-md hidden-lg">
<div class="inline pos-rel">
<button class="btn btn-minier btn-primary dropdown-toggle" data-toggle="dropdown" data-position="auto">
<i class="ace-icon fa fa-cog icon-only bigger-110"></i>
</button>
<ul class="dropdown-menu dropdown-only-icon dropdown-yellow dropdown-menu-right dropdown-caret dropdown-close">
<li>
<a href="../doctor/delete-rx-drug?Pno=${rx.pno}&PDno=${drug.PDno}" class="tooltip-error" data-rel="tooltip" title="删除该药品">
<span class="red">
<i class="ace-icon fa fa-trash-o bigger-120"></i>
</span>
</a>
</li>
</ul>
</div>
</div>
</td>
</tr>
</c:forEach>
</tbody>
</table>
</div>
</div>
</c:if>
<div class="clearfix form-actions">
<div class="col-md-offset-3 col-md-9">
<button class="btn btn-info" type="submit">
<i class="ace-icon fa fa-check bigger-110"></i>
提交
</button>
&nbsp; &nbsp; &nbsp;
<button class="btn" type="reset">
<i class="ace-icon fa fa-undo bigger-110"></i>
重置
</button>
</div>
</div>
</form>
<!-- PAGE CONTENT ENDS -->
<div id="modal-form" class="modal" tabindex="-1">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">&times;</button>
<h4 class="blue bigger">为该处方添加一种药品 / 修改某一种药品的数量</h4>
</div>
<form class="form-horizontal" role="form" method="post" action="../doctor/submit-rx-drug-form">
<input type="hidden" name="Pno" value="${rx.pno}">
<div class="modal-body">
<div class="form-group">
<label class="col-sm-4 control-label no-padding-right" for="form-field-7"> 药品名称 </label>
<div class="col-sm-4">
<select class="chosen-select form-control" id="form-field-7" name="PDno" data-placeholder="选择一种药品..." required="required">
<option value=""></option>
<c:forEach items="${drugs}" var="drug">
<option value="${drug.PDno}">${drug.PDname}</option>
</c:forEach>
</select>
</div>
</div>
<div class="form-group">
<label class="col-sm-4 control-label no-padding-right" for="spinner1"> 药品数量 </label>
<div class="col-sm-4">
<input class="form-control" id="spinner1" type="text" placeholder="药品数量" name="PDnum" value="${pdbatch.PDnum}" required="required" />
</div>
</div>
</div>
<div class="modal-footer">
<button class="btn btn-sm btn-primary" type="submit">
<i class="ace-icon fa fa-check bigger-110"></i>
提交
</button>
<button class="btn btn-sm btn-warning" type="reset">
<i class="ace-icon fa fa-undo bigger-110"></i>
重置
</button>
<button class="btn btn-sm" data-dismiss="modal">
<i class="ace-icon fa fa-times bigger-110"></i>
取消
</button>
</div>
</form>
</div>
</div>
</div>
<!-- PAGE CONTENT ENDS -->
</div><!-- /.col -->
</div><!-- /.row -->
</div><!-- /.page-content -->
</div>
</div><!-- /.main-content -->
<div class="footer">
<div class="footer-inner">
<div class="footer-content">
<span class="bigger-120">
<span class="blue bolder">医院药品库存管理系统</span>
DIMS &copy; 2019-2020
</span>
</div>
</div>
</div>
<a href="#" id="btn-scroll-up" class="btn-scroll-up btn btn-sm btn-inverse">
<i class="ace-icon fa fa-angle-double-up icon-only bigger-110"></i>
</a>
</div><!-- /.main-container -->
<!-- basic scripts -->
<!--[if !IE]> -->
<script src="../assets/js/jquery-2.1.4.min.js"></script>
<!-- <![endif]-->
<!--[if IE]>
<script src="../assets/js/jquery-1.11.3.min.js"></script>
<![endif]-->
<script type="text/javascript">
if('ontouchstart' in document.documentElement) document.write("<script src='assets/js/jquery.mobile.custom.min.js'>"+"<"+"/script>");
</script>
<script src="../assets/js/bootstrap.min.js"></script>
<!-- page specific plugin scripts -->
<!--[if lte IE 8]>
<script src="../assets/js/excanvas.min.js"></script>
<![endif]-->
<script src="../assets/js/jquery-ui.custom.min.js"></script>
<script src="../assets/js/jquery.ui.touch-punch.min.js"></script>
<script src="../assets/js/chosen.jquery.min.js"></script>
<script src="../assets/js/spinbox.min.js"></script>
<script src="../assets/js/bootstrap-datepicker.min.js"></script>
<script src="../assets/js/bootstrap-timepicker.min.js"></script>
<script src="../assets/js/moment.min.js"></script>
<script src="../assets/js/daterangepicker.min.js"></script>
<script src="../assets/js/bootstrap-datetimepicker.min.js"></script>
<script src="../assets/js/bootstrap-colorpicker.min.js"></script>
<script src="../assets/js/jquery.knob.min.js"></script>
<script src="../assets/js/autosize.min.js"></script>
<script src="../assets/js/jquery.inputlimiter.min.js"></script>
<script src="../assets/js/jquery.maskedinput.min.js"></script>
<script src="../assets/js/bootstrap-tag.min.js"></script>
<!-- ace scripts -->
<script src="../assets/js/ace-elements.min.js"></script>
<script src="../assets/js/ace.min.js"></script>
<!-- inline scripts related to this page -->
<script type="text/javascript">
jQuery(function($) {
$('#id-disable-check').on('click', function() {
var inp = $('#form-input-readonly').get(0);
if(inp.hasAttribute('disabled')) {
inp.setAttribute('readonly', 'true');
inp.removeAttribute('disabled');
inp.value="This text field is readonly!";
}
else {
inp.setAttribute('disabled', 'disabled');
inp.removeAttribute('readonly');
inp.value="This text field is disabled!";
}
});
if(!ace.vars['touch']) {
$('.chosen-select').chosen({allow_single_deselect:true});
//resize the chosen on window resize
$(window)
.off('resize.chosen')
.on('resize.chosen', function() {
$('.chosen-select').each(function() {
var $this = $(this);
$this.next().css({'width': $this.parent().width()});
})
}).trigger('resize.chosen');
//resize chosen on sidebar collapse/expand
$(document).on('settings.ace.chosen', function(e, event_name, event_val) {
if(event_name != 'sidebar_collapsed') return;
$('.chosen-select').each(function() {
var $this = $(this);
$this.next().css({'width': $this.parent().width()});
})
});
$('#chosen-multiple-style .btn').on('click', function(e){
var target = $(this).find('input[type=radio]');
var which = parseInt(target.val());
if(which == 2) $('#form-field-select-4').addClass('tag-input-style');
else $('#form-field-select-4').removeClass('tag-input-style');
});
}
$('[data-rel=tooltip]').tooltip({container:'body'});
$('[data-rel=popover]').popover({container:'body'});
autosize($('textarea[class*=autosize]'));
$('textarea.limited').inputlimiter({
remText: '%n character%s remaining...',
limitText: 'max allowed : %n.'
});
$.mask.definitions['~']='[+-]';
$('.input-mask-date').mask('99/99/9999');
$('.input-mask-phone').mask('(999) 999-9999');
$('.input-mask-eyescript').mask('~9.99 ~9.99 999');
$(".input-mask-product").mask("a*-999-a999",{placeholder:" ",completed:function(){alert("You typed the following: "+this.val());}});
$( "#input-size-slider" ).css('width','200px').slider({
value:1,
range: "min",
min: 1,
max: 8,
step: 1,
slide: function( event, ui ) {
var sizing = ['', 'input-sm', 'input-lg', 'input-mini', 'input-small', 'input-medium', 'input-large', 'input-xlarge', 'input-xxlarge'];
var val = parseInt(ui.value);
$('#form-field-4').attr('class', sizing[val]).attr('placeholder', '.'+sizing[val]);
}
});
$( "#input-span-slider" ).slider({
value:1,
range: "min",
min: 1,
max: 12,
step: 1,
slide: function( event, ui ) {
var val = parseInt(ui.value);
$('#form-field-5').attr('class', 'col-xs-'+val).val('.col-xs-'+val);
}
});
//"jQuery UI Slider"
//range slider tooltip example
$( "#slider-range" ).css('height','200px').slider({
orientation: "vertical",
range: true,
min: 0,
max: 100,
values: [ 17, 67 ],
slide: function( event, ui ) {
var val = ui.values[$(ui.handle).index()-1] + "";
if( !ui.handle.firstChild ) {
$("<div class='tooltip right in' style='display:none;left:16px;top:-6px;'><div class='tooltip-arrow'></div><div class='tooltip-inner'></div></div>")
.prependTo(ui.handle);
}
$(ui.handle.firstChild).show().children().eq(1).text(val);
}
}).find('span.ui-slider-handle').on('blur', function(){
$(this.firstChild).hide();
});
$( "#slider-range-max" ).slider({
range: "max",
min: 1,
max: 10,
value: 2
});
$( "#slider-eq > span" ).css({width:'90%', 'float':'left', margin:'15px'}).each(function() {
// read initial values from markup and remove that
var value = parseInt( $( this ).text(), 10 );
$( this ).empty().slider({
value: value,
range: "min",
animate: true
});
});
$("#slider-eq > span.ui-slider-purple").slider('disable');//disable third item
$('#id-input-file-1, #id-input-file-2').ace_file_input({
no_file:'No File ...',
btn_choose:'Choose',
btn_change:'Change',
droppable:false,
onchange:null,
thumbnail:false //| true | large
//whitelist:'gif|png|jpg|jpeg'
//blacklist:'exe|php'
//onchange:''
//
});
//pre-show a file name, for example a previously selected file
//$('#id-input-file-1').ace_file_input('show_file_list', ['myfile.txt'])
$('#id-input-file-3').ace_file_input({
style: 'well',
btn_choose: 'Drop files here or click to choose',
btn_change: null,
no_icon: 'ace-icon fa fa-cloud-upload',
droppable: true,
thumbnail: 'small'//large | fit
//,icon_remove:null//set null, to hide remove/reset button
/**,before_change:function(files, dropped) {
//Check an example below
//or examples/file-upload.html
return true;
}*/
/**,before_remove : function() {
return true;
}*/
,
preview_error : function(filename, error_code) {
//name of the file that failed
//error_code values
//1 = 'FILE_LOAD_FAILED',
//2 = 'IMAGE_LOAD_FAILED',
//3 = 'THUMBNAIL_FAILED'
//alert(error_code);
}
}).on('change', function(){
//console.log($(this).data('ace_input_files'));
//console.log($(this).data('ace_input_method'));
});
//$('#id-input-file-3')
//.ace_file_input('show_file_list', [
//{type: 'image', name: 'name of image', path: 'http://path/to/image/for/preview'},
//{type: 'file', name: 'hello.txt'}
//]);
//dynamically change allowed formats by changing allowExt && allowMime function
$('#id-file-format').removeAttr('checked').on('change', function() {
var whitelist_ext, whitelist_mime;
var btn_choose
var no_icon
if(this.checked) {
btn_choose = "Drop images here or click to choose";
no_icon = "ace-icon fa fa-picture-o";
whitelist_ext = ["jpeg", "jpg", "png", "gif", "bmp"];
whitelist_mime = ["image/jpg", "image/jpeg", "image/png", "image/gif", "image/bmp"];
}
else {
btn_choose = "Drop files here or click to choose";
no_icon = "ace-icon fa fa-cloud-upload";
whitelist_ext = null;//all extensions are acceptable
whitelist_mime = null;//all mimes are acceptable
}
var file_input = $('#id-input-file-3');
file_input
.ace_file_input('update_settings',
{
'btn_choose': btn_choose,
'no_icon': no_icon,
'allowExt': whitelist_ext,
'allowMime': whitelist_mime
})
file_input.ace_file_input('reset_input');
file_input
.off('file.error.ace')
.on('file.error.ace', function(e, info) {
//console.log(info.file_count);//number of selected files
//console.log(info.invalid_count);//number of invalid files
//console.log(info.error_list);//a list of errors in the following format
//info.error_count['ext']
//info.error_count['mime']
//info.error_count['size']
//info.error_list['ext'] = [list of file names with invalid extension]
//info.error_list['mime'] = [list of file names with invalid mimetype]
//info.error_list['size'] = [list of file names with invalid size]
/**
if( !info.dropped ) {
//perhapse reset file field if files have been selected, and there are invalid files among them
//when files are dropped, only valid files will be added to our file array
e.preventDefault();//it will rest input
}
*/
//if files have been selected (not dropped), you can choose to reset input
//because browser keeps all selected files anyway and this cannot be changed
//we can only reset file field to become empty again
//on any case you still should check files with your server side script
//because any arbitrary file can be uploaded by user and it's not safe to rely on browser-side measures
});
/**
file_input
.off('file.preview.ace')
.on('file.preview.ace', function(e, info) {
console.log(info.file.width);
console.log(info.file.height);
e.preventDefault();//to prevent preview
});
*/
});
$('#spinner1').ace_spinner({value:1, min:1, max:10000, step:1, btn_up_class:'btn-info', btn_down_class:'btn-info'})
.closest('.ace-spinner')
.on('changed.fu.spinbox', function(){
//console.log($('#spinner1').val())
});
$('#spinner2').ace_spinner({value:0, min:0, max:10000, step:100, touch_spinner: true, icon_up:'ace-icon fa fa-caret-up bigger-110', icon_down:'ace-icon fa fa-caret-down bigger-110'});
$('#spinner3').ace_spinner({value:0, min:-100, max:100, step:10, on_sides: true, icon_up:'ace-icon fa fa-plus bigger-110', icon_down:'ace-icon fa fa-minus bigger-110', btn_up_class:'btn-success', btn_down_class:'btn-danger'});
$('#spinner4').ace_spinner({value:0, min:-100, max:100, step:10, on_sides: true, icon_up:'ace-icon fa fa-plus', icon_down:'ace-icon fa fa-minus', btn_up_class:'btn-purple', btn_down_class:'btn-purple'});
//$('#spinner1').ace_spinner('disable').ace_spinner('value', 11);
//or
//$('#spinner1').closest('.ace-spinner').spinner('disable').spinner('enable').spinner('value', 11);//disable, enable or change value
//$('#spinner1').closest('.ace-spinner').spinner('value', 0);//reset to 0
//datepicker plugin
//link
$('.date-picker').datepicker({
autoclose: true,
todayHighlight: true
})
//show datepicker when clicking on the icon
.next().on(ace.click_event, function(){
$(this).prev().focus();
});
//or change it into a date range picker
$('.input-daterange').datepicker({autoclose:true});
//to translate the daterange picker, please copy the "examples/daterange-fr.js" contents here before initialization
$('input[name=date-range-picker]').daterangepicker({
'applyClass' : 'btn-sm btn-success',
'cancelClass' : 'btn-sm btn-default',
locale: {
applyLabel: 'Apply',
cancelLabel: 'Cancel',
}
})
.prev().on(ace.click_event, function(){
$(this).next().focus();
});
$('#timepicker1').timepicker({
minuteStep: 1,
showSeconds: true,
showMeridian: false,
disableFocus: true,
icons: {
up: 'fa fa-chevron-up',
down: 'fa fa-chevron-down'
}
}).on('focus', function() {
$('#timepicker1').timepicker('showWidget');
}).next().on(ace.click_event, function(){
$(this).prev().focus();
});
if(!ace.vars['old_ie']) $('#date-timepicker1').datetimepicker({
//format: 'MM/DD/YYYY h:mm:ss A',//use this option to display seconds
icons: {
time: 'fa fa-clock-o',
date: 'fa fa-calendar',
up: 'fa fa-chevron-up',
down: 'fa fa-chevron-down',
previous: 'fa fa-chevron-left',
next: 'fa fa-chevron-right',
today: 'fa fa-arrows ',
clear: 'fa fa-trash',
close: 'fa fa-times'
}
}).next().on(ace.click_event, function(){
$(this).prev().focus();
});
$('#colorpicker1').colorpicker();
//$('.colorpicker').last().css('z-index', 2000);//if colorpicker is inside a modal, its z-index should be higher than modal'safe
$('#simple-colorpicker-1').ace_colorpicker();
//$('#simple-colorpicker-1').ace_colorpicker('pick', 2);//select 2nd color
//$('#simple-colorpicker-1').ace_colorpicker('pick', '#fbe983');//select #fbe983 color
//var picker = $('#simple-colorpicker-1').data('ace_colorpicker')
//picker.pick('red', true);//insert the color if it doesn't exist
$(".knob").knob();
var tag_input = $('#form-field-tags');
try{
tag_input.tag(
{
placeholder:tag_input.attr('placeholder'),
//enable typeahead by specifying the source array
source: ace.vars['US_STATES'],//defined in ace.js >> ace.enable_search_ahead
/**
//or fetch data from database, fetch those that match "query"
source: function(query, process) {
$.ajax({url: 'remote_source.php?q='+encodeURIComponent(query)})
.done(function(result_items){
process(result_items);
});
}
*/
}
)
//programmatically add/remove a tag
var $tag_obj = $('#form-field-tags').data('tag');
$tag_obj.add('Programmatically Added');
var index = $tag_obj.inValues('some tag');
$tag_obj.remove(index);
}
catch(e) {
//display a textarea for old IE, because it doesn't support this plugin or another one I tried!
tag_input.after('<textarea id="'+tag_input.attr('id')+'" name="'+tag_input.attr('name')+'" rows="3">'+tag_input.val()+'</textarea>').remove();
//autosize($('#form-field-tags'));
}
/////////
$('#modal-form input[type=file]').ace_file_input({
style:'well',
btn_choose:'Drop files here or click to choose',
btn_change:null,
no_icon:'ace-icon fa fa-cloud-upload',
droppable:true,
thumbnail:'large'
})
//chosen plugin inside a modal will have a zero width because the select element is originally hidden
//and its width cannot be determined.
//so we set the width after modal is show
$('#modal-form').on('shown.bs.modal', function () {
if(!ace.vars['touch']) {
$(this).find('.chosen-container').each(function(){
$(this).find('a:first-child').css('width', '210px');
$(this).find('.chosen-drop').css('width', '210px');
$(this).find('.chosen-search input').css('width', '200px');
});
}
})
/**
//or you can activate the chosen plugin after modal is shown
//this way select element becomes visible with dimensions and chosen works as expected
$('#modal-form').on('shown', function () {
$(this).find('.modal-chosen').chosen();
})
*/
$(document).one('ajaxloadstart.page', function(e) {
autosize.destroy('textarea[class*=autosize]')
$('.limiterBox,.autosizejs').remove();
$('.daterangepicker.dropdown-menu,.colorpicker.dropdown-menu,.bootstrap-datetimepicker-widget.dropdown-menu').remove();
});
});
</script>
</body>
</html>

View file

@ -0,0 +1,585 @@
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<meta charset="utf-8" />
<title>欢迎 - 医院药品库存管理系统</title>
<meta name="description" content="欢迎 - 医院药品库存管理系统" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0" />
<!-- bootstrap & fontawesome -->
<link rel="stylesheet" href="../assets/css/bootstrap.min.css" />
<link rel="stylesheet" href="../assets/font-awesome/4.5.0/css/font-awesome.min.css" />
<!-- page specific plugin styles -->
<!-- text fonts -->
<link rel="stylesheet" href="../assets/css/fonts.googleapis.com.css" />
<!-- ace styles -->
<link rel="stylesheet" href="../assets/css/ace.min.css" class="ace-main-stylesheet" id="main-ace-style" />
<!--[if lte IE 9]>
<link rel="stylesheet" href="../assets/css/ace-part2.min.css" class="ace-main-stylesheet" />
<![endif]-->
<link rel="stylesheet" href="../assets/css/ace-skins.min.css" />
<link rel="stylesheet" href="../assets/css/ace-rtl.min.css" />
<!--[if lte IE 9]>
<link rel="stylesheet" href="../assets/css/ace-ie.min.css" />
<![endif]-->
<!-- inline styles related to this page -->
<!-- ace settings handler -->
<script src="../assets/js/ace-extra.min.js"></script>
<!-- HTML5shiv and Respond.js for IE8 to support HTML5 elements and media queries -->
<!--[if lte IE 8]>
<script src="../assets/js/html5shiv.min.js"></script>
<script src="../assets/js/respond.min.js"></script>
<![endif]-->
</head>
<body class="no-skin">
<div id="navbar" class="navbar navbar-default ace-save-state">
<div class="navbar-container ace-save-state" id="navbar-container">
<button type="button" class="navbar-toggle menu-toggler pull-left" id="menu-toggler" data-target="#sidebar">
<span class="sr-only">Toggle sidebar</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<div class="navbar-header pull-left">
<a href="../doctor/index" class="navbar-brand">
<small>
<i class="fa fa-leaf"></i>
医院药品库存管理系统 DIMS
</small>
</a>
</div>
<div class="navbar-buttons navbar-header pull-right" role="navigation">
<ul class="nav ace-nav">
<li class="grey dropdown-modal">
<a data-toggle="dropdown" class="dropdown-toggle" href="#">
<i class="ace-icon fa fa-tasks"></i>
<span class="badge badge-grey">3</span>
</a>
<ul class="dropdown-menu-right dropdown-navbar dropdown-menu dropdown-caret dropdown-close">
<li class="dropdown-header">
<i class="ace-icon fa fa-check"></i>
统计信息
</li>
<li class="dropdown-content">
<ul class="dropdown-menu dropdown-navbar">
<li>
<a href="../doctor/query-solved-rx-list">
<div class="clearfix">
<span class="pull-left">已处理处方数目占比</span>
<span class="pull-right">
<fmt:formatNumber value="${solvedRxsNum / (solvedRxsNum + unsolvedRxsNum) * 100}" pattern="#.00"/>
%
</span>
</div>
<div class="progress progress-mini progress-striped active">
<div style="width:${solvedRxsNum / (solvedRxsNum + unsolvedRxsNum) * 100}%" class="progress-bar"></div>
</div>
</a>
</li>
<li>
<a href="../doctor/query-unsolved-rx-list">
<div class="clearfix">
<span class="pull-left">未处理处方数目占比</span>
<span class="pull-right">
<fmt:formatNumber value="${unsolvedRxsNum / (solvedRxsNum + unsolvedRxsNum) * 100}" pattern="#.00"/>
%
</span>
</div>
<div class="progress progress-mini progress-striped active">
<div style="width:${unsolvedRxsNum / (solvedRxsNum + unsolvedRxsNum) * 100}%" class="progress-bar progress-bar-warning"></div>
</div>
</a>
</li>
<li>
<a href="#">
<div class="clearfix">
<span class="pull-left">由我开出的处方数目占比</span>
<span class="pull-right">
<fmt:formatNumber value="${myPrescribeRxsNum / (solvedRxsNum + unsolvedRxsNum) * 100}" pattern="#.00"/>
%
</span>
</div>
<div class="progress progress-mini progress-striped active">
<div style="width:${myPrescribeRxsNum / (solvedRxsNum + unsolvedRxsNum) * 100}%" class="progress-bar progress-bar-success"></div>
</div>
</a>
</li>
</ul>
</li>
</ul>
</li>
<li class="light-blue dropdown-modal">
<a data-toggle="dropdown" href="#" class="dropdown-toggle">
<img class="nav-user-photo" src="../assets/images/avatars/${currentDoctor.dsex ? 'Male' : 'Female'}Doctor.png" alt="头像" />
<span class="user-info">
<small>欢迎,</small>
${currentDoctor.dname}
</span>
<i class="ace-icon fa fa-caret-down"></i>
</a>
<ul class="user-menu dropdown-menu-right dropdown-menu dropdown-yellow dropdown-caret dropdown-close">
<li>
<a href="../doctor/profile">
<i class="ace-icon fa fa-user"></i>
个人信息
</a>
</li>
<li class="divider"></li>
<li>
<a href="../logout">
<i class="ace-icon fa fa-power-off"></i>
登出
</a>
</li>
</ul>
</li>
</ul>
</div>
</div><!-- /.navbar-container -->
</div>
<div class="main-container ace-save-state" id="main-container">
<script type="text/javascript">
try{ace.settings.loadState('main-container')}catch(e){}
</script>
<div id="sidebar" class="sidebar responsive ace-save-state">
<script type="text/javascript">
try{ace.settings.loadState('sidebar')}catch(e){}
</script>
<div class="sidebar-shortcuts" id="sidebar-shortcuts">
<div class="sidebar-shortcuts-large" id="sidebar-shortcuts-large">
<button class="btn btn-success">
<i class="ace-icon fa fa-signal"></i>
</button>
<button class="btn btn-info">
<i class="ace-icon fa fa-pencil"></i>
</button>
<button class="btn btn-warning">
<i class="ace-icon fa fa-users"></i>
</button>
<button class="btn btn-danger">
<i class="ace-icon fa fa-cogs"></i>
</button>
</div>
<div class="sidebar-shortcuts-mini" id="sidebar-shortcuts-mini">
<span class="btn btn-success"></span>
<span class="btn btn-info"></span>
<span class="btn btn-warning"></span>
<span class="btn btn-danger"></span>
</div>
</div><!-- /.sidebar-shortcuts -->
<ul class="nav nav-list">
<li class="active">
<a href="../doctor/welcome">
<i class="menu-icon fa fa-tachometer"></i>
<span class="menu-text"> 欢迎页面 </span>
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="../doctor/profile">
<i class="menu-icon fa fa-tag"></i>
<span class="menu-text"> 个人信息页面 </span>
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="../doctor/query-drug-list">
<i class="menu-icon fa fa-list"></i>
<span class="menu-text"> 查看库存药品列表 </span>
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="../doctor/add-rx-form">
<i class="menu-icon fa fa-pencil-square-o"></i>
<span class="menu-text"> 填写新建处方表单 </span>
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="#" class="dropdown-toggle">
<i class="menu-icon fa fa-list-alt"></i>
<span class="menu-text"> 查看处方列表 </span>
<b class="arrow fa fa-angle-down"></b>
</a>
<b class="arrow"></b>
<ul class="submenu">
<li class="">
<a href="../doctor/query-unsolved-rx-list">
<i class="menu-icon fa fa-caret-right"></i>
查看未处理处方列表
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="../doctor/query-solved-rx-list">
<i class="menu-icon fa fa-caret-right"></i>
查看已处理处方列表
</a>
<b class="arrow"></b>
</li>
</ul>
</li>
</ul><!-- /.nav-list -->
<div class="sidebar-toggle sidebar-collapse" id="sidebar-collapse">
<i id="sidebar-toggle-icon" class="ace-icon fa fa-angle-double-left ace-save-state" data-icon1="ace-icon fa fa-angle-double-left" data-icon2="ace-icon fa fa-angle-double-right"></i>
</div>
</div>
<div class="main-content">
<div class="main-content-inner">
<div class="breadcrumbs ace-save-state" id="breadcrumbs">
<ul class="breadcrumb">
<li>
<i class="ace-icon fa fa-home home-icon"></i>
<a href="../doctor/index">首页</a>
</li>
<li class="active">欢迎页面</li>
</ul><!-- /.breadcrumb -->
</div>
<div class="page-content">
<div class="page-header">
<h1>统计信息</h1>
</div><!-- /.page-header -->
<c:choose>
<c:when test="${echo != null}">
<div class="alert alert-info">
<button class="close" data-dismiss="alert">
<i class="ace-icon fa fa-times"></i>
</button>
<i class="ace-icon fa fa-hand-o-right"></i>
${echo}
</div>
</c:when>
</c:choose>
<div class="row">
<div class="col-xs-12">
<!-- PAGE CONTENT BEGINS -->
<div class="alert alert-block alert-success">
<button type="button" class="close" data-dismiss="alert">
<i class="ace-icon fa fa-times"></i>
</button>
<i class="ace-icon fa fa-check green"></i>
欢迎使用
<strong class="green">
医院药品库存管理系统 DIMS (v1.0)
</strong>
</div>
<div class="row">
<div class="space-6"></div>
<div class="col-sm-7 infobox-container">
<div class="infobox infobox-green">
<div class="infobox-icon">
<i class="ace-icon fa fa-flask"></i>
</div>
<div class="infobox-data">
<span class="infobox-data-number">${solvedRxsNum}</span>
<div class="infobox-content">已处理处方数目</div>
</div>
</div>
<div class="infobox infobox-red">
<div class="infobox-icon">
<i class="ace-icon fa fa-flask"></i>
</div>
<div class="infobox-data">
<span class="infobox-data-number">${unsolvedRxsNum}</span>
<div class="infobox-content">未处理处方数目</div>
</div>
</div>
<div class="infobox infobox-blue">
<div class="infobox-icon">
<i class="ace-icon fa fa-flask"></i>
</div>
<div class="infobox-data">
<span class="infobox-data-number">${myPrescribeRxsNum}</span>
<div class="infobox-content">由我开出的处方数目</div>
</div>
</div>
<div class="space-6"></div>
<div class="infobox infobox-green2">
<div class="infobox-progress">
<div class="easy-pie-chart percentage" data-percent="${solvedRxsNum / (solvedRxsNum + unsolvedRxsNum) * 100}" data-size="46">
<span class="percent">
<fmt:formatNumber value="${solvedRxsNum / (solvedRxsNum + unsolvedRxsNum) * 100}" pattern="#"/>
</span>%
</div>
</div>
<div class="infobox-data">
<span class="infobox-text">已处理处方数目</span>
<div class="infobox-content">
<span class="bigger-110">~</span>
占总处方数目比例
</div>
</div>
</div>
<div class="infobox infobox-red2">
<div class="infobox-progress">
<div class="easy-pie-chart percentage" data-percent="${unsolvedRxsNum / (solvedRxsNum + unsolvedRxsNum) * 100}" data-size="46">
<span class="percent">
<fmt:formatNumber value="${unsolvedRxsNum / (solvedRxsNum + unsolvedRxsNum) * 100}" pattern="#"/>
</span>%
</div>
</div>
<div class="infobox-data">
<span class="infobox-text">未处理处方数目</span>
<div class="infobox-content">
<span class="bigger-110">~</span>
占总处方数目比例
</div>
</div>
</div>
<div class="infobox infobox-blue2">
<div class="infobox-progress">
<div class="easy-pie-chart percentage" data-percent="${myPrescribeRxsNum / (solvedRxsNum + unsolvedRxsNum) * 100}" data-size="46">
<span class="percent">
<fmt:formatNumber value="${myPrescribeRxsNum / (solvedRxsNum + unsolvedRxsNum) * 100}" pattern="#"/>
</span>%
</div>
</div>
<div class="infobox-data">
<span class="infobox-text">由我开出的处方数目</span>
<div class="infobox-content">
<span class="bigger-110">~</span>
占总处方数目比例
</div>
</div>
</div>
</div>
</div><!-- /.row -->
<!-- PAGE CONTENT ENDS -->
</div><!-- /.col -->
</div><!-- /.row -->
</div><!-- /.page-content -->
</div>
</div><!-- /.main-content -->
<div class="footer">
<div class="footer-inner">
<div class="footer-content">
<span class="bigger-120">
<span class="blue bolder">医院药品库存管理系统</span>
DIMS &copy; 2019-2020
</span>
</div>
</div>
</div>
<a href="#" id="btn-scroll-up" class="btn-scroll-up btn btn-sm btn-inverse">
<i class="ace-icon fa fa-angle-double-up icon-only bigger-110"></i>
</a>
</div><!-- /.main-container -->
<!-- basic scripts -->
<!--[if !IE]> -->
<script src="../assets/js/jquery-2.1.4.min.js"></script>
<!-- <![endif]-->
<!--[if IE]>
<script src="../assets/js/jquery-1.11.3.min.js"></script>
<![endif]-->
<script type="text/javascript">
if('ontouchstart' in document.documentElement) document.write("<script src='../assets/js/jquery.mobile.custom.min.js'>"+"<"+"/script>");
</script>
<script src="../assets/js/bootstrap.min.js"></script>
<!-- page specific plugin scripts -->
<!--[if lte IE 8]>
<script src="../assets/js/excanvas.min.js"></script>
<![endif]-->
<script src="../assets/js/jquery-ui.custom.min.js"></script>
<script src="../assets/js/jquery.ui.touch-punch.min.js"></script>
<script src="../assets/js/jquery.easypiechart.min.js"></script>
<script src="../assets/js/jquery.sparkline.index.min.js"></script>
<script src="../assets/js/jquery.flot.min.js"></script>
<script src="../assets/js/jquery.flot.pie.min.js"></script>
<script src="../assets/js/jquery.flot.resize.min.js"></script>
<!-- ace scripts -->
<script src="../assets/js/ace-elements.min.js"></script>
<script src="../assets/js/ace.min.js"></script>
<!-- inline scripts related to this page -->
<script type="text/javascript">
jQuery(function($) {
$('.easy-pie-chart.percentage').each(function(){
var $box = $(this).closest('.infobox');
var barColor = $(this).data('color') || (!$box.hasClass('infobox-dark') ? $box.css('color') : 'rgba(255,255,255,0.95)');
var trackColor = barColor == 'rgba(255,255,255,0.95)' ? 'rgba(255,255,255,0.25)' : '#E2E2E2';
var size = parseInt($(this).data('size')) || 50;
$(this).easyPieChart({
barColor: barColor,
trackColor: trackColor,
scaleColor: false,
lineCap: 'butt',
lineWidth: parseInt(size/10),
animate: ace.vars['old_ie'] ? false : 1000,
size: size
});
})
$('.sparkline').each(function(){
var $box = $(this).closest('.infobox');
var barColor = !$box.hasClass('infobox-dark') ? $box.css('color') : '#FFF';
$(this).sparkline('html',
{
tagValuesAttribute:'data-values',
type: 'bar',
barColor: barColor,
chartRangeMin:$(this).data('min') || 0
});
});
//flot chart resize plugin, somehow manipulates default browser resize event to optimize it!
//but sometimes it brings up errors with normal resize event handlers
$.resize.throttleWindow = false;
var placeholder = $('#piechart-placeholder').css({'width':'90%', 'min-height':'150px'});
var data = [
{ label: "social networks", data: 38.7, color: "#68BC31"},
{ label: "search engines", data: 24.5, color: "#2091CF"},
{ label: "ad campaigns", data: 8.2, color: "#AF4E96"},
{ label: "direct traffic", data: 18.6, color: "#DA5430"},
{ label: "other", data: 10, color: "#FEE074"}
]
function drawPieChart(placeholder, data, position) {
$.plot(placeholder, data, {
series: {
pie: {
show: true,
tilt:0.8,
highlight: {
opacity: 0.25
},
stroke: {
color: '#fff',
width: 2
},
startAngle: 2
}
},
legend: {
show: true,
position: position || "ne",
labelBoxBorderColor: null,
margin:[-30,15]
}
,
grid: {
hoverable: true,
clickable: true
}
})
}
drawPieChart(placeholder, data);
/**
we saved the drawing function and the data to redraw with different position later when switching to RTL mode dynamically
so that's not needed actually.
*/
placeholder.data('chart', data);
placeholder.data('draw', drawPieChart);
//pie chart tooltip example
var $tooltip = $("<div class='tooltip top in'><div class='tooltip-inner'></div></div>").hide().appendTo('body');
var previousPoint = null;
placeholder.on('plothover', function (event, pos, item) {
if(item) {
if (previousPoint != item.seriesIndex) {
previousPoint = item.seriesIndex;
var tip = item.series['label'] + " : " + item.series['percent']+'%';
$tooltip.show().children(0).text(tip);
}
$tooltip.css({top:pos.pageY + 10, left:pos.pageX + 10});
} else {
$tooltip.hide();
previousPoint = null;
}
});
/////////////////////////////////////
$(document).one('ajaxloadstart.page', function(e) {
$tooltip.remove();
});
var d1 = [];
for (var i = 0; i < Math.PI * 2; i += 0.5) {
d1.push([i, Math.sin(i)]);
}
var d2 = [];
for (var i = 0; i < Math.PI * 2; i += 0.5) {
d2.push([i, Math.cos(i)]);
}
var d3 = [];
for (var i = 0; i < Math.PI * 2; i += 0.2) {
d3.push([i, Math.tan(i)]);
}
var sales_charts = $('#sales-charts').css({'width':'100%', 'height':'220px'});
$.plot("#sales-charts", [
{ label: "Domains", data: d1 },
{ label: "Hosting", data: d2 },
{ label: "Services", data: d3 }
], {
hoverable: true,
shadowSize: 0,
series: {
lines: { show: true },
points: { show: true }
},
xaxis: {
tickLength: 0
},
yaxis: {
ticks: 10,
min: -2,
max: 2,
tickDecimals: 3
},
grid: {
backgroundColor: { colors: [ "#fff", "#fff" ] },
borderWidth: 1,
borderColor:'#555'
}
});
$('#recent-box [data-rel="tooltip"]').tooltip({placement: tooltip_placement});
function tooltip_placement(context, source) {
var $source = $(source);
var $parent = $source.closest('.tab-content')
var off1 = $parent.offset();
var w1 = $parent.width();
var off2 = $source.offset();
//var w2 = $source.width();
if( parseInt(off2.left) < parseInt(off1.left) + parseInt(w1 / 2) ) return 'right';
return 'left';
}
$('.dialogs,.comments').ace_scroll({
size: 300
});
//Android's default browser somehow is confused when tapping on label which will lead to dragging the task
//so disable dragging when clicking on label
var agent = navigator.userAgent.toLowerCase();
if(ace.vars['touch'] && ace.vars['android']) {
$('#tasks').on('touchstart', function(e){
var li = $(e.target).closest('#tasks li');
if(li.length == 0) return;
var label = li.find('label.inline').get(0);
if(label == e.target || $.contains(label, e.target)) e.stopImmediatePropagation() ;
});
}
$('#tasks').sortable({
opacity:0.8,
revert:true,
forceHelperSize:true,
placeholder: 'draggable-placeholder',
forcePlaceholderSize:true,
tolerance:'pointer',
stop: function( event, ui ) {
//just for Chrome!!!! so that dropdowns on items don't appear below other items after being moved
$(ui.item).css('z-index', 'auto');
}
});
$('#tasks').disableSelection();
$('#tasks input:checkbox').removeAttr('checked').on('click', function(){
if(this.checked) $(this).closest('li').addClass('selected');
else $(this).closest('li').removeClass('selected');
});
//show the dropdowns on top or bottom depending on window height and menu position
$('#task-tab .dropdown-hover').on('mouseenter', function(e) {
var offset = $(this).offset();
var $w = $(window)
if (offset.top > $w.scrollTop() + $w.innerHeight() - 100)
$(this).addClass('dropup');
else $(this).removeClass('dropup');
});
})
</script>
</body>
</html>

View file

@ -0,0 +1,172 @@
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<meta charset="utf-8" />
<title>登陆页面 - 医院药品库存管理系统</title>
<meta name="description" content="登陆页面 - 医院药品库存管理系统" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0" />
<!-- bootstrap & fontawesome -->
<link rel="stylesheet" href="assets/css/bootstrap.min.css" />
<link rel="stylesheet" href="assets/font-awesome/4.5.0/css/font-awesome.min.css" />
<!-- text fonts -->
<link rel="stylesheet" href="assets/css/fonts.googleapis.com.css" />
<!-- ace styles -->
<link rel="stylesheet" href="assets/css/ace.min.css" />
<!--[if lte IE 9]>
<link rel="stylesheet" href="assets/css/ace-part2.min.css" />
<![endif]-->
<link rel="stylesheet" href="assets/css/ace-rtl.min.css" />
<!--[if lte IE 9]>
<link rel="stylesheet" href="assets/css/ace-ie.min.css" />
<![endif]-->
<!-- HTML5shiv and Respond.js for IE8 to support HTML5 elements and media queries -->
<!--[if lte IE 8]>
<script src="assets/js/html5shiv.min.js"></script>
<script src="assets/js/respond.min.js"></script>
<![endif]-->
</head>
<body class="login-layout light-login">
<div class="main-container">
<div class="main-content">
<div class="row">
<div class="col-sm-10 col-sm-offset-1">
<div class="login-container">
<div class="center">
<h1>
<i class="ace-icon fa fa-leaf green"></i>
<span class="red">医院药品库存管理系统</span>
<span class="grey" id="id-text2">DIMS</span>
</h1>
<h4 class="blue" id="id-company-text">&copy; 2019-2020</h4>
</div>
<div class="space-6"></div>
<c:choose>
<c:when test="${echo != null}">
<div class="alert alert-info">
<button class="close" data-dismiss="alert">
<i class="ace-icon fa fa-times"></i>
</button>
<i class="ace-icon fa fa-hand-o-right"></i>
${echo}
</div>
</c:when>
</c:choose>
<div class="position-relative">
<div id="login-box" class="login-box visible widget-box no-border">
<div class="widget-body">
<div class="widget-main">
<h4 class="header blue lighter bigger">
<i class="ace-icon fa fa-coffee green"></i>
请输入您的信息
</h4>
<div class="space-6"></div>
<form action="submitLogin" method="post">
<fieldset>
<label class="block clearfix">
<span class="block input-icon input-icon-right">
<select class="form-control" required="required" name="role">
<option value="" disabled="disabled" selected="selected" style="display: none;">请选择一个登录角色</option>
<option value="ADMIN">库存管理员</option>
<option value="DOCTOR">医生</option>
<option value="NURSE">发药处护士</option>
</select>
</span>
</label>
<label class="block clearfix">
<span class="block input-icon input-icon-right">
<input type="text" required="required" name="no" class="form-control" placeholder="编号" />
<i class="ace-icon fa fa-user"></i>
</span>
</label>
<label class="block clearfix">
<span class="block input-icon input-icon-right">
<input type="password" required="required" name="pwd" class="form-control" placeholder="登陆密码" />
<i class="ace-icon fa fa-lock"></i>
</span>
</label>
<div class="space"></div>
<div class="clearfix">
<label class="inline">
<input type="checkbox" class="ace" />
<span class="lbl"> 记住我</span>
</label>
<button type="submit" class="width-35 pull-right btn btn-sm btn-primary">
<i class="ace-icon fa fa-key"></i>
<span class="bigger-110">登入</span>
</button>
</div>
<div class="space-4"></div>
</fieldset>
</form>
</div><!-- /.widget-main -->
</div><!-- /.widget-body -->
</div><!-- /.login-box -->
</div><!-- /.position-relative -->
<div class="navbar-fixed-top align-right">
<br />
<span>切换主题</span>
&nbsp;
<a id="btn-login-dark" href="#">暗黑</a>
&nbsp;
<span class="blue">/</span>
&nbsp;
<a id="btn-login-blur" href="#">模糊</a>
&nbsp;
<span class="blue">/</span>
&nbsp;
<a id="btn-login-light" href="#">浅色</a>
&nbsp; &nbsp; &nbsp;
</div>
</div>
</div><!-- /.col -->
</div><!-- /.row -->
</div><!-- /.main-content -->
</div><!-- /.main-container -->
<!-- basic scripts -->
<!--[if !IE]> -->
<script src="assets/js/jquery-2.1.4.min.js"></script>
<!-- <![endif]-->
<!--[if IE]>
<script src="assets/js/jquery-1.11.3.min.js"></script>
<![endif]-->
<script type="text/javascript">
if('ontouchstart' in document.documentElement) document.write("<script src='assets/js/jquery.mobile.custom.min.js'>"+"<"+"/script>");
</script>
<!-- inline scripts related to this page -->
<script type="text/javascript">
jQuery(function($) {
$(document).on('click', '.toolbar a[data-target]', function(e) {
e.preventDefault();
var target = $(this).data('target');
$('.widget-box.visible').removeClass('visible');//hide others
$(target).addClass('visible');//show target
});
});
//you don't need this, just used for changing background
jQuery(function($) {
$('#btn-login-dark').on('click', function(e) {
$('body').attr('class', 'login-layout');
$('#id-text2').attr('class', 'white');
$('#id-company-text').attr('class', 'blue');
e.preventDefault();
});
$('#btn-login-light').on('click', function(e) {
$('body').attr('class', 'login-layout light-login');
$('#id-text2').attr('class', 'grey');
$('#id-company-text').attr('class', 'blue');
e.preventDefault();
});
$('#btn-login-blur').on('click', function(e) {
$('body').attr('class', 'login-layout blur-login');
$('#id-text2').attr('class', 'white');
$('#id-company-text').attr('class', 'light-blue');
e.preventDefault();
});
});
</script>
</body>
</html>

View file

@ -0,0 +1,811 @@
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<meta charset="utf-8" />
<title>处理 ${rx.pno} 号处方 - 医院药品库存管理系统</title>
<meta name="description" content="处理 ${rx.pno} 号处方 - 医院药品库存管理系统" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0" />
<!-- bootstrap & fontawesome -->
<link rel="stylesheet" href="../assets/css/bootstrap.min.css" />
<link rel="stylesheet" href="../assets/font-awesome/4.5.0/css/font-awesome.min.css" />
<!-- page specific plugin styles -->
<link rel="stylesheet" href="../assets/css/jquery-ui.custom.min.css" />
<link rel="stylesheet" href="../assets/css/chosen.min.css" />
<link rel="stylesheet" href="../assets/css/bootstrap-datepicker3.min.css" />
<link rel="stylesheet" href="../assets/css/bootstrap-timepicker.min.css" />
<link rel="stylesheet" href="../assets/css/daterangepicker.min.css" />
<link rel="stylesheet" href="../assets/css/bootstrap-datetimepicker.min.css" />
<link rel="stylesheet" href="../assets/css/bootstrap-colorpicker.min.css" />
<!-- text fonts -->
<link rel="stylesheet" href="../assets/css/fonts.googleapis.com.css" />
<!-- ace styles -->
<link rel="stylesheet" href="../assets/css/ace.min.css" class="ace-main-stylesheet" id="main-ace-style" />
<!--[if lte IE 9]>
<link rel="stylesheet" href="../assets/css/ace-part2.min.css" class="ace-main-stylesheet" />
<![endif]-->
<link rel="stylesheet" href="../assets/css/ace-skins.min.css" />
<link rel="stylesheet" href="../assets/css/ace-rtl.min.css" />
<!--[if lte IE 9]>
<link rel="stylesheet" href="../assets/css/ace-ie.min.css" />
<![endif]-->
<!-- inline styles related to this page -->
<!-- ace settings handler -->
<script src="../assets/js/ace-extra.min.js"></script>
<!-- HTML5shiv and Respond.js for IE8 to support HTML5 elements and media queries -->
<!--[if lte IE 8]>
<script src="../assets/js/html5shiv.min.js"></script>
<script src="../assets/js/respond.min.js"></script>
<![endif]-->
</head>
<body class="no-skin">
<div id="navbar" class="navbar navbar-default ace-save-state">
<div class="navbar-container ace-save-state" id="navbar-container">
<button type="button" class="navbar-toggle menu-toggler pull-left" id="menu-toggler" data-target="#sidebar">
<span class="sr-only">Toggle sidebar</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<div class="navbar-header pull-left">
<a href="index.html" class="navbar-brand">
<small>
<i class="fa fa-leaf"></i>
医院药品库存管理系统 DIMS
</small>
</a>
</div>
<div class="navbar-buttons navbar-header pull-right" role="navigation">
<ul class="nav ace-nav">
<li class="grey dropdown-modal">
<a data-toggle="dropdown" class="dropdown-toggle" href="#">
<i class="ace-icon fa fa-tasks"></i>
<span class="badge badge-grey">3</span>
</a>
<ul class="dropdown-menu-right dropdown-navbar dropdown-menu dropdown-caret dropdown-close">
<li class="dropdown-header">
<i class="ace-icon fa fa-check"></i>
统计信息
</li>
<li class="dropdown-content">
<ul class="dropdown-menu dropdown-navbar">
<li>
<a href="../nurse/query-solved-rx-list">
<div class="clearfix">
<span class="pull-left">已处理处方数目占比</span>
<span class="pull-right">
<fmt:formatNumber value="${solvedRxsNum / (solvedRxsNum + unsolvedRxsNum) * 100}" pattern="#.00"/>
%
</span>
</div>
<div class="progress progress-mini progress-striped active">
<div style="width:${solvedRxsNum / (solvedRxsNum + unsolvedRxsNum) * 100}%" class="progress-bar"></div>
</div>
</a>
</li>
<li>
<a href="../nurse/query-unsolved-rx-list">
<div class="clearfix">
<span class="pull-left">未处理处方数目占比</span>
<span class="pull-right">
<fmt:formatNumber value="${unsolvedRxsNum / (solvedRxsNum + unsolvedRxsNum) * 100}" pattern="#.00"/>
%
</span>
</div>
<div class="progress progress-mini progress-striped active">
<div style="width:${unsolvedRxsNum / (solvedRxsNum + unsolvedRxsNum) * 100}%" class="progress-bar progress-bar-warning"></div>
</div>
</a>
</li>
<li>
<a href="#">
<div class="clearfix">
<span class="pull-left">由我处理的处方数目占比</span>
<span class="pull-right">
<fmt:formatNumber value="${mySolvedRxsNum / solvedRxsNum * 100}" pattern="#.00"/>
%
</span>
</div>
<div class="progress progress-mini progress-striped active">
<div style="width:${mySolvedRxsNum / solvedRxsNum * 100}%" class="progress-bar progress-bar-success"></div>
</div>
</a>
</li>
</ul>
</li>
</ul>
</li>
<li class="light-blue dropdown-modal">
<a data-toggle="dropdown" href="#" class="dropdown-toggle">
<img class="nav-user-photo" src="../assets/images/avatars/${currentNurse.nsex ? 'Male' : 'Female'}Nurse.png" alt="头像" />
<span class="user-info">
<small>欢迎,</small>
${currentNurse.nname}
</span>
<i class="ace-icon fa fa-caret-down"></i>
</a>
<ul class="user-menu dropdown-menu-right dropdown-menu dropdown-yellow dropdown-caret dropdown-close">
<li>
<a href="../nurse/profile">
<i class="ace-icon fa fa-user"></i>
个人信息
</a>
</li>
<li class="divider"></li>
<li>
<a href="../logout">
<i class="ace-icon fa fa-power-off"></i>
登出
</a>
</li>
</ul>
</li>
</ul>
</div>
</div><!-- /.navbar-container -->
</div>
<div class="main-container ace-save-state" id="main-container">
<script type="text/javascript">
try{ace.settings.loadState('main-container')}catch(e){}
</script>
<div id="sidebar" class="sidebar responsive ace-save-state">
<script type="text/javascript">
try{ace.settings.loadState('sidebar')}catch(e){}
</script>
<div class="sidebar-shortcuts" id="sidebar-shortcuts">
<div class="sidebar-shortcuts-large" id="sidebar-shortcuts-large">
<button class="btn btn-success">
<i class="ace-icon fa fa-signal"></i>
</button>
<button class="btn btn-info">
<i class="ace-icon fa fa-pencil"></i>
</button>
<button class="btn btn-warning">
<i class="ace-icon fa fa-users"></i>
</button>
<button class="btn btn-danger">
<i class="ace-icon fa fa-cogs"></i>
</button>
</div>
<div class="sidebar-shortcuts-mini" id="sidebar-shortcuts-mini">
<span class="btn btn-success"></span>
<span class="btn btn-info"></span>
<span class="btn btn-warning"></span>
<span class="btn btn-danger"></span>
</div>
</div><!-- /.sidebar-shortcuts -->
<ul class="nav nav-list">
<li class="">
<a href="../nurse/welcome">
<i class="menu-icon fa fa-tachometer"></i>
<span class="menu-text"> 欢迎页面 </span>
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="../nurse/profile">
<i class="menu-icon fa fa-tag"></i>
<span class="menu-text"> 个人信息页面 </span>
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="../nurse/query-drug-list">
<i class="menu-icon fa fa-list"></i>
<span class="menu-text"> 查看库存药品列表 </span>
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="#" class="dropdown-toggle">
<i class="menu-icon fa fa-list-alt"></i>
<span class="menu-text"> 查看处方列表 </span>
<b class="arrow fa fa-angle-down"></b>
</a>
<b class="arrow"></b>
<ul class="submenu">
<li class="">
<a href="../nurse/query-unsolved-rx-list">
<i class="menu-icon fa fa-caret-right"></i>
查看未处理处方列表
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="../nurse/query-solved-rx-list">
<i class="menu-icon fa fa-caret-right"></i>
查看已处理处方列表
</a>
<b class="arrow"></b>
</li>
</ul>
</li>
</ul><!-- /.nav-list -->
<div class="sidebar-toggle sidebar-collapse" id="sidebar-collapse">
<i id="sidebar-toggle-icon" class="ace-icon fa fa-angle-double-left ace-save-state" data-icon1="ace-icon fa fa-angle-double-left" data-icon2="ace-icon fa fa-angle-double-right"></i>
</div>
</div>
<div class="main-content">
<div class="main-content-inner">
<div class="breadcrumbs ace-save-state" id="breadcrumbs">
<ul class="breadcrumb">
<li>
<i class="ace-icon fa fa-home home-icon"></i>
<a href="../nurse/index">首页</a>
</li>
<li class="active">处理 ${rx.pno} 号处方</li>
</ul><!-- /.breadcrumb -->
</div>
<div class="page-content">
<div class="page-header">
<h1>
处理 ${rx.pno} 号处方
<small>
<i class="ace-icon fa fa-angle-double-right"></i>
选择负责处理的发药处护士、填写处理日期
</small>
</h1>
</div><!-- /.page-header -->
<c:choose>
<c:when test="${echo != null}">
<div class="alert alert-info">
<button class="close" data-dismiss="alert">
<i class="ace-icon fa fa-times"></i>
</button>
<i class="ace-icon fa fa-hand-o-right"></i>
${echo}
</div>
</c:when>
</c:choose>
<div class="row">
<div class="col-xs-12">
<!-- PAGE CONTENT BEGINS -->
<form class="form-horizontal" role="form" method="post" action="../nurse/submit-handle-rx-form">
<div class="form-group">
<label class="col-sm-3 control-label no-padding-right" for="form-field-1"> 处方编号 </label>
<div class="col-sm-4">
<input class="form-control" id="form-field-1" type="text" readonly="readonly" placeholder="处方编号" name="Pno" value="${rx.pno}" required="required" />
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label no-padding-right" for="form-field-2"> 病人身份证号码 </label>
<div class="col-sm-4">
<input class="form-control" id="form-field-2" type="text" readonly="readonly" placeholder="病人身份证号码" name="Pid" value="${rx.pid}" required="required" />
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label no-padding-right" for="form-field-3"> 开出医生编号 </label>
<div class="col-sm-4">
<input class="form-control" id="form-field-3" type="text" readonly="readonly" placeholder="开出医生编号" name="Dno" value="${rx.dno}" required="required" />
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label no-padding-right" for="id-date-picker-1"> 处方开出日期 </label>
<div class="col-sm-4">
<div class="input-group">
<input class="form-control" id="id-date-picker-1" type="text" readonly="readonly" placeholder="处方开出日期" name="tempPdate" value="<fmt:formatDate value="${rx.ptime}" pattern="yyyy 年 MM 月 dd 日"/>" required="required" />
<span class="input-group-addon">
<i class="fa fa-calendar bigger-110"></i>
</span>
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label no-padding-right" for="form-field-5"> 处方开出时间 </label>
<div class="col-sm-4">
<div class="input-group">
<input class="form-control" id="form-field-5" type="text" readonly="readonly" placeholder="处方开出时间" name="tempPtime" value="<fmt:formatDate value="${rx.ptime}" pattern="HH:mm:ss"/>" required="required" />
<span class="input-group-addon">
<i class="fa fa-clock-o bigger-110"></i>
</span>
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label no-padding-right" for="form-field-6"> 处方状态 </label>
<div class="col-sm-4">
<c:choose>
<c:when test="${rx.pstate}">
<span class="label label-sm label-success arrowed-in-right arrowed">
<i class="ace-icon fa fa-check-square-o bigger-110"></i>
已处理
</span>
</c:when>
<c:otherwise>
<span class="label label-sm label-warning arrowed-in-right arrowed">
<i class="ace-icon fa fa-square-o bigger-110"></i>
未处理
</span>
</c:otherwise>
</c:choose>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label no-padding-right" for="form-field-7"> 处方包含的药品列表 </label>
<div class="col-sm-4">
<table id="simple-table" class="table table-bordered table-hover">
<thead>
<tr>
<th>药品编号</th>
<th>药品名称</th>
<th>药品数量</th>
</tr>
</thead>
<tbody>
<c:forEach items="${rx.drugs}" var="drug">
<tr>
<td>${drug.PDno}</td>
<td>${drug.PDname}</td>
<td>${drug.PDnum}</td>
</tr>
</c:forEach>
</tbody>
</table>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label no-padding-right" for="form-field-8"> 负责处理的发药处护士 </label>
<div class="col-sm-4">
<select class="chosen-select form-control" id="form-field-8" data-placeholder="选择负责处理的发药处护士..." name="Nno" required="required">
<option value=""></option>
<c:forEach items="${nurses}" var="nurse">
<option value="${nurse.nno}">${nurse.nname}</option>
</c:forEach>
</select>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label no-padding-right" for="id-date-picker-2"> 处方处理日期 </label>
<div class="col-sm-4">
<div class="input-group">
<input class="form-control date-picker" id="id-date-picker-2" type="text" placeholder="处方处理日期" name="tempHdate" data-date-format="yyyy 年 mm 月 dd 日" required="required" />
<span class="input-group-addon">
<i class="fa fa-calendar bigger-110"></i>
</span>
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label no-padding-right" for="timepicker1"> 处方处理时间 </label>
<div class="col-sm-4">
<div class="input-group">
<input class="form-control" id="timepicker1" type="text" placeholder="处方处理时间" name="tempHtime" required="required" />
<span class="input-group-addon">
<i class="fa fa-clock-o bigger-110"></i>
</span>
</div>
</div>
</div>
<div class="clearfix form-actions">
<div class="col-md-offset-3 col-md-9">
<button class="btn btn-info" type="submit">
<i class="ace-icon fa fa-check bigger-110"></i>
提交
</button>
&nbsp; &nbsp; &nbsp;
<button class="btn" type="reset">
<i class="ace-icon fa fa-undo bigger-110"></i>
重置
</button>
</div>
</div>
</form>
<!-- PAGE CONTENT ENDS -->
</div><!-- /.col -->
</div><!-- /.row -->
</div><!-- /.page-content -->
</div>
</div><!-- /.main-content -->
<div class="footer">
<div class="footer-inner">
<div class="footer-content">
<span class="bigger-120">
<span class="blue bolder">医院药品库存管理系统</span>
DIMS &copy; 2019-2020
</span>
</div>
</div>
</div>
<a href="#" id="btn-scroll-up" class="btn-scroll-up btn btn-sm btn-inverse">
<i class="ace-icon fa fa-angle-double-up icon-only bigger-110"></i>
</a>
</div><!-- /.main-container -->
<!-- basic scripts -->
<!--[if !IE]> -->
<script src="../assets/js/jquery-2.1.4.min.js"></script>
<!-- <![endif]-->
<!--[if IE]>
<script src="../assets/js/jquery-1.11.3.min.js"></script>
<![endif]-->
<script type="text/javascript">
if('ontouchstart' in document.documentElement) document.write("<script src='../assets/js/jquery.mobile.custom.min.js'>"+"<"+"/script>");
</script>
<script src="../assets/js/bootstrap.min.js"></script>
<!-- page specific plugin scripts -->
<!--[if lte IE 8]>
<script src="../assets/js/excanvas.min.js"></script>
<![endif]-->
<script src="../assets/js/jquery-ui.custom.min.js"></script>
<script src="../assets/js/jquery.ui.touch-punch.min.js"></script>
<script src="../assets/js/chosen.jquery.min.js"></script>
<script src="../assets/js/spinbox.min.js"></script>
<script src="../assets/js/bootstrap-datepicker.min.js"></script>
<script src="../assets/js/bootstrap-timepicker.min.js"></script>
<script src="../assets/js/moment.min.js"></script>
<script src="../assets/js/daterangepicker.min.js"></script>
<script src="../assets/js/bootstrap-datetimepicker.min.js"></script>
<script src="../assets/js/bootstrap-colorpicker.min.js"></script>
<script src="../assets/js/jquery.knob.min.js"></script>
<script src="../assets/js/autosize.min.js"></script>
<script src="../assets/js/jquery.inputlimiter.min.js"></script>
<script src="../assets/js/jquery.maskedinput.min.js"></script>
<script src="../assets/js/bootstrap-tag.min.js"></script>
<!-- ace scripts -->
<script src="../assets/js/ace-elements.min.js"></script>
<script src="../assets/js/ace.min.js"></script>
<!-- inline scripts related to this page -->
<script type="text/javascript">
jQuery(function($) {
$('#id-disable-check').on('click', function() {
var inp = $('#form-input-readonly').get(0);
if(inp.hasAttribute('disabled')) {
inp.setAttribute('readonly', 'true');
inp.removeAttribute('disabled');
inp.value="This text field is readonly!";
}
else {
inp.setAttribute('disabled', 'disabled');
inp.removeAttribute('readonly');
inp.value="This text field is disabled!";
}
});
if(!ace.vars['touch']) {
$('.chosen-select').chosen({allow_single_deselect:true});
//resize the chosen on window resize
$(window)
.off('resize.chosen')
.on('resize.chosen', function() {
$('.chosen-select').each(function() {
var $this = $(this);
$this.next().css({'width': $this.parent().width()});
})
}).trigger('resize.chosen');
//resize chosen on sidebar collapse/expand
$(document).on('settings.ace.chosen', function(e, event_name, event_val) {
if(event_name != 'sidebar_collapsed') return;
$('.chosen-select').each(function() {
var $this = $(this);
$this.next().css({'width': $this.parent().width()});
})
});
$('#chosen-multiple-style .btn').on('click', function(e){
var target = $(this).find('input[type=radio]');
var which = parseInt(target.val());
if(which == 2) $('#form-field-select-4').addClass('tag-input-style');
else $('#form-field-select-4').removeClass('tag-input-style');
});
}
$('[data-rel=tooltip]').tooltip({container:'body'});
$('[data-rel=popover]').popover({container:'body'});
autosize($('textarea[class*=autosize]'));
$('textarea.limited').inputlimiter({
remText: '%n character%s remaining...',
limitText: 'max allowed : %n.'
});
$.mask.definitions['~']='[+-]';
$('.input-mask-date').mask('99/99/9999');
$('.input-mask-phone').mask('(999) 999-9999');
$('.input-mask-eyescript').mask('~9.99 ~9.99 999');
$(".input-mask-product").mask("a*-999-a999",{placeholder:" ",completed:function(){alert("You typed the following: "+this.val());}});
$( "#input-size-slider" ).css('width','200px').slider({
value:1,
range: "min",
min: 1,
max: 8,
step: 1,
slide: function( event, ui ) {
var sizing = ['', 'input-sm', 'input-lg', 'input-mini', 'input-small', 'input-medium', 'input-large', 'input-xlarge', 'input-xxlarge'];
var val = parseInt(ui.value);
$('#form-field-4').attr('class', sizing[val]).attr('placeholder', '.'+sizing[val]);
}
});
$( "#input-span-slider" ).slider({
value:1,
range: "min",
min: 1,
max: 12,
step: 1,
slide: function( event, ui ) {
var val = parseInt(ui.value);
$('#form-field-5').attr('class', 'col-xs-'+val).val('.col-xs-'+val);
}
});
//"jQuery UI Slider"
//range slider tooltip example
$( "#slider-range" ).css('height','200px').slider({
orientation: "vertical",
range: true,
min: 0,
max: 100,
values: [ 17, 67 ],
slide: function( event, ui ) {
var val = ui.values[$(ui.handle).index()-1] + "";
if( !ui.handle.firstChild ) {
$("<div class='tooltip right in' style='display:none;left:16px;top:-6px;'><div class='tooltip-arrow'></div><div class='tooltip-inner'></div></div>")
.prependTo(ui.handle);
}
$(ui.handle.firstChild).show().children().eq(1).text(val);
}
}).find('span.ui-slider-handle').on('blur', function(){
$(this.firstChild).hide();
});
$( "#slider-range-max" ).slider({
range: "max",
min: 1,
max: 10,
value: 2
});
$( "#slider-eq > span" ).css({width:'90%', 'float':'left', margin:'15px'}).each(function() {
// read initial values from markup and remove that
var value = parseInt( $( this ).text(), 10 );
$( this ).empty().slider({
value: value,
range: "min",
animate: true
});
});
$("#slider-eq > span.ui-slider-purple").slider('disable');//disable third item
$('#id-input-file-1, #id-input-file-2').ace_file_input({
no_file:'No File ...',
btn_choose:'Choose',
btn_change:'Change',
droppable:false,
onchange:null,
thumbnail:false //| true | large
//whitelist:'gif|png|jpg|jpeg'
//blacklist:'exe|php'
//onchange:''
//
});
//pre-show a file name, for example a previously selected file
//$('#id-input-file-1').ace_file_input('show_file_list', ['myfile.txt'])
$('#id-input-file-3').ace_file_input({
style: 'well',
btn_choose: 'Drop files here or click to choose',
btn_change: null,
no_icon: 'ace-icon fa fa-cloud-upload',
droppable: true,
thumbnail: 'small'//large | fit
//,icon_remove:null//set null, to hide remove/reset button
/**,before_change:function(files, dropped) {
//Check an example below
//or examples/file-upload.html
return true;
}*/
/**,before_remove : function() {
return true;
}*/
,
preview_error : function(filename, error_code) {
//name of the file that failed
//error_code values
//1 = 'FILE_LOAD_FAILED',
//2 = 'IMAGE_LOAD_FAILED',
//3 = 'THUMBNAIL_FAILED'
//alert(error_code);
}
}).on('change', function(){
//console.log($(this).data('ace_input_files'));
//console.log($(this).data('ace_input_method'));
});
//$('#id-input-file-3')
//.ace_file_input('show_file_list', [
//{type: 'image', name: 'name of image', path: 'http://path/to/image/for/preview'},
//{type: 'file', name: 'hello.txt'}
//]);
//dynamically change allowed formats by changing allowExt && allowMime function
$('#id-file-format').removeAttr('checked').on('change', function() {
var whitelist_ext, whitelist_mime;
var btn_choose
var no_icon
if(this.checked) {
btn_choose = "Drop images here or click to choose";
no_icon = "ace-icon fa fa-picture-o";
whitelist_ext = ["jpeg", "jpg", "png", "gif", "bmp"];
whitelist_mime = ["image/jpg", "image/jpeg", "image/png", "image/gif", "image/bmp"];
}
else {
btn_choose = "Drop files here or click to choose";
no_icon = "ace-icon fa fa-cloud-upload";
whitelist_ext = null;//all extensions are acceptable
whitelist_mime = null;//all mimes are acceptable
}
var file_input = $('#id-input-file-3');
file_input
.ace_file_input('update_settings',
{
'btn_choose': btn_choose,
'no_icon': no_icon,
'allowExt': whitelist_ext,
'allowMime': whitelist_mime
})
file_input.ace_file_input('reset_input');
file_input
.off('file.error.ace')
.on('file.error.ace', function(e, info) {
//console.log(info.file_count);//number of selected files
//console.log(info.invalid_count);//number of invalid files
//console.log(info.error_list);//a list of errors in the following format
//info.error_count['ext']
//info.error_count['mime']
//info.error_count['size']
//info.error_list['ext'] = [list of file names with invalid extension]
//info.error_list['mime'] = [list of file names with invalid mimetype]
//info.error_list['size'] = [list of file names with invalid size]
/**
if( !info.dropped ) {
//perhapse reset file field if files have been selected, and there are invalid files among them
//when files are dropped, only valid files will be added to our file array
e.preventDefault();//it will rest input
}
*/
//if files have been selected (not dropped), you can choose to reset input
//because browser keeps all selected files anyway and this cannot be changed
//we can only reset file field to become empty again
//on any case you still should check files with your server side script
//because any arbitrary file can be uploaded by user and it's not safe to rely on browser-side measures
});
/**
file_input
.off('file.preview.ace')
.on('file.preview.ace', function(e, info) {
console.log(info.file.width);
console.log(info.file.height);
e.preventDefault();//to prevent preview
});
*/
});
$('#spinner1').ace_spinner({value:0,min:0,max:200,step:10, btn_up_class:'btn-info', btn_down_class:'btn-info'})
.closest('.ace-spinner')
.on('changed.fu.spinbox', function(){
//console.log($('#spinner1').val())
});
$('#spinner2').ace_spinner({value:0,min:0,max:10000,step:100, touch_spinner: true, icon_up:'ace-icon fa fa-caret-up bigger-110', icon_down:'ace-icon fa fa-caret-down bigger-110'});
$('#spinner3').ace_spinner({value:0,min:-100,max:100,step:10, on_sides: true, icon_up:'ace-icon fa fa-plus bigger-110', icon_down:'ace-icon fa fa-minus bigger-110', btn_up_class:'btn-success', btn_down_class:'btn-danger'});
$('#spinner4').ace_spinner({value:0,min:-100,max:100,step:10, on_sides: true, icon_up:'ace-icon fa fa-plus', icon_down:'ace-icon fa fa-minus', btn_up_class:'btn-purple', btn_down_class:'btn-purple'});
//$('#spinner1').ace_spinner('disable').ace_spinner('value', 11);
//or
//$('#spinner1').closest('.ace-spinner').spinner('disable').spinner('enable').spinner('value', 11);//disable, enable or change value
//$('#spinner1').closest('.ace-spinner').spinner('value', 0);//reset to 0
//datepicker plugin
//link
$('.date-picker').datepicker({
autoclose: true,
todayHighlight: true
})
//show datepicker when clicking on the icon
.next().on(ace.click_event, function(){
$(this).prev().focus();
});
//or change it into a date range picker
$('.input-daterange').datepicker({autoclose:true});
//to translate the daterange picker, please copy the "examples/daterange-fr.js" contents here before initialization
$('input[name=date-range-picker]').daterangepicker({
'applyClass' : 'btn-sm btn-success',
'cancelClass' : 'btn-sm btn-default',
locale: {
applyLabel: 'Apply',
cancelLabel: 'Cancel',
}
})
.prev().on(ace.click_event, function(){
$(this).next().focus();
});
$('#timepicker1').timepicker({
minuteStep: 1,
showSeconds: true,
showMeridian: false,
disableFocus: true,
icons: {
up: 'fa fa-chevron-up',
down: 'fa fa-chevron-down'
}
}).on('focus', function() {
$('#timepicker1').timepicker('showWidget');
}).next().on(ace.click_event, function(){
$(this).prev().focus();
});
if(!ace.vars['old_ie']) $('#date-timepicker1').datetimepicker({
format: 'MM/DD/YYYY h:mm:ss A',//use this option to display seconds
icons: {
time: 'fa fa-clock-o',
date: 'fa fa-calendar',
up: 'fa fa-chevron-up',
down: 'fa fa-chevron-down',
previous: 'fa fa-chevron-left',
next: 'fa fa-chevron-right',
today: 'fa fa-arrows ',
clear: 'fa fa-trash',
close: 'fa fa-times'
}
}).next().on(ace.click_event, function(){
$(this).prev().focus();
});
$('#colorpicker1').colorpicker();
//$('.colorpicker').last().css('z-index', 2000);//if colorpicker is inside a modal, its z-index should be higher than modal'safe
$('#simple-colorpicker-1').ace_colorpicker();
//$('#simple-colorpicker-1').ace_colorpicker('pick', 2);//select 2nd color
//$('#simple-colorpicker-1').ace_colorpicker('pick', '#fbe983');//select #fbe983 color
//var picker = $('#simple-colorpicker-1').data('ace_colorpicker')
//picker.pick('red', true);//insert the color if it doesn't exist
$(".knob").knob();
var tag_input = $('#form-field-tags');
try{
tag_input.tag(
{
placeholder:tag_input.attr('placeholder'),
//enable typeahead by specifying the source array
source: ace.vars['US_STATES'],//defined in ace.js >> ace.enable_search_ahead
/**
//or fetch data from database, fetch those that match "query"
source: function(query, process) {
$.ajax({url: 'remote_source.php?q='+encodeURIComponent(query)})
.done(function(result_items){
process(result_items);
});
}
*/
}
)
//programmatically add/remove a tag
var $tag_obj = $('#form-field-tags').data('tag');
$tag_obj.add('Programmatically Added');
var index = $tag_obj.inValues('some tag');
$tag_obj.remove(index);
}
catch(e) {
//display a textarea for old IE, because it doesn't support this plugin or another one I tried!
tag_input.after('<textarea id="'+tag_input.attr('id')+'" name="'+tag_input.attr('name')+'" rows="3">'+tag_input.val()+'</textarea>').remove();
//autosize($('#form-field-tags'));
}
/////////
$('#modal-form input[type=file]').ace_file_input({
style:'well',
btn_choose:'Drop files here or click to choose',
btn_change:null,
no_icon:'ace-icon fa fa-cloud-upload',
droppable:true,
thumbnail:'large'
})
//chosen plugin inside a modal will have a zero width because the select element is originally hidden
//and its width cannot be determined.
//so we set the width after modal is show
$('#modal-form').on('shown.bs.modal', function () {
if(!ace.vars['touch']) {
$(this).find('.chosen-container').each(function(){
$(this).find('a:first-child').css('width', '210px');
$(this).find('.chosen-drop').css('width', '210px');
$(this).find('.chosen-search input').css('width', '200px');
});
}
})
/**
//or you can activate the chosen plugin after modal is shown
//this way select element becomes visible with dimensions and chosen works as expected
$('#modal-form').on('shown', function () {
$(this).find('.modal-chosen').chosen();
})
*/
$(document).one('ajaxloadstart.page', function(e) {
autosize.destroy('textarea[class*=autosize]')
$('.limiterBox,.autosizejs').remove();
$('.daterangepicker.dropdown-menu,.colorpicker.dropdown-menu,.bootstrap-datetimepicker-widget.dropdown-menu').remove();
});
});
</script>
</body>
</html>

View file

@ -0,0 +1,781 @@
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<meta charset="utf-8" />
<title>个人信息页面 - 医院药品库存管理系统</title>
<meta name="description" content="个人信息页面 - 医院药品库存管理系统" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0" />
<!-- bootstrap & fontawesome -->
<link rel="stylesheet" href="../assets/css/bootstrap.min.css" />
<link rel="stylesheet" href="../assets/font-awesome/4.5.0/css/font-awesome.min.css" />
<!-- page specific plugin styles -->
<link rel="stylesheet" href="../assets/css/jquery-ui.custom.min.css" />
<link rel="stylesheet" href="../assets/css/jquery.gritter.min.css" />
<link rel="stylesheet" href="../assets/css/select2.min.css" />
<link rel="stylesheet" href="../assets/css/bootstrap-datepicker3.min.css" />
<link rel="stylesheet" href="../assets/css/bootstrap-editable.min.css" />
<!-- text fonts -->
<link rel="stylesheet" href="../assets/css/fonts.googleapis.com.css" />
<!-- ace styles -->
<link rel="stylesheet" href="../assets/css/ace.min.css" class="ace-main-stylesheet" id="main-ace-style" />
<!--[if lte IE 9]>
<link rel="stylesheet" href="../assets/css/ace-part2.min.css" class="ace-main-stylesheet" />
<![endif]-->
<link rel="stylesheet" href="../assets/css/ace-skins.min.css" />
<link rel="stylesheet" href="../assets/css/ace-rtl.min.css" />
<!--[if lte IE 9]>
<link rel="stylesheet" href="../assets/css/ace-ie.min.css" />
<![endif]-->
<!-- inline styles related to this page -->
<!-- ace settings handler -->
<script src="../assets/js/ace-extra.min.js"></script>
<!-- HTML5shiv and Respond.js for IE8 to support HTML5 elements and media queries -->
<!--[if lte IE 8]>
<script src="../assets/js/html5shiv.min.js"></script>
<script src="../assets/js/respond.min.js"></script>
<![endif]-->
</head>
<body class="no-skin">
<div id="navbar" class="navbar navbar-default ace-save-state">
<div class="navbar-container ace-save-state" id="navbar-container">
<button type="button" class="navbar-toggle menu-toggler pull-left" id="menu-toggler" data-target="#sidebar">
<span class="sr-only">Toggle sidebar</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<div class="navbar-header pull-left">
<a href="../nurse/index" class="navbar-brand">
<small>
<i class="fa fa-leaf"></i>
医院药品库存管理系统 DIMS
</small>
</a>
</div>
<div class="navbar-buttons navbar-header pull-right" role="navigation">
<ul class="nav ace-nav">
<li class="grey dropdown-modal">
<a data-toggle="dropdown" class="dropdown-toggle" href="#">
<i class="ace-icon fa fa-tasks"></i>
<span class="badge badge-grey">3</span>
</a>
<ul class="dropdown-menu-right dropdown-navbar dropdown-menu dropdown-caret dropdown-close">
<li class="dropdown-header">
<i class="ace-icon fa fa-check"></i>
统计信息
</li>
<li class="dropdown-content">
<ul class="dropdown-menu dropdown-navbar">
<li>
<a href="../nurse/query-solved-rx-list">
<div class="clearfix">
<span class="pull-left">已处理处方数目占比</span>
<span class="pull-right">
<fmt:formatNumber value="${solvedRxsNum / (solvedRxsNum + unsolvedRxsNum) * 100}" pattern="#.00"/>
%
</span>
</div>
<div class="progress progress-mini progress-striped active">
<div style="width:${solvedRxsNum / (solvedRxsNum + unsolvedRxsNum) * 100}%" class="progress-bar"></div>
</div>
</a>
</li>
<li>
<a href="../nurse/query-unsolved-rx-list">
<div class="clearfix">
<span class="pull-left">未处理处方数目占比</span>
<span class="pull-right">
<fmt:formatNumber value="${unsolvedRxsNum / (solvedRxsNum + unsolvedRxsNum) * 100}" pattern="#.00"/>
%
</span>
</div>
<div class="progress progress-mini progress-striped active">
<div style="width:${unsolvedRxsNum / (solvedRxsNum + unsolvedRxsNum) * 100}%" class="progress-bar progress-bar-warning"></div>
</div>
</a>
</li>
<li>
<a href="#">
<div class="clearfix">
<span class="pull-left">由我处理的处方数目占比</span>
<span class="pull-right">
<fmt:formatNumber value="${mySolvedRxsNum / solvedRxsNum * 100}" pattern="#.00"/>
%
</span>
</div>
<div class="progress progress-mini progress-striped active">
<div style="width:${mySolvedRxsNum / solvedRxsNum * 100}%" class="progress-bar progress-bar-success"></div>
</div>
</a>
</li>
</ul>
</li>
</ul>
</li>
<li class="light-blue dropdown-modal">
<a data-toggle="dropdown" href="#" class="dropdown-toggle">
<img class="nav-user-photo" src="../assets/images/avatars/${currentNurse.nsex ? 'Male' : 'Female'}Nurse.png" alt="头像" />
<span class="user-info">
<small>欢迎,</small>
${currentNurse.nname}
</span>
<i class="ace-icon fa fa-caret-down"></i>
</a>
<ul class="user-menu dropdown-menu-right dropdown-menu dropdown-yellow dropdown-caret dropdown-close">
<li>
<a href="../nurse/profile">
<i class="ace-icon fa fa-user"></i>
个人信息
</a>
</li>
<li class="divider"></li>
<li>
<a href="../logout">
<i class="ace-icon fa fa-power-off"></i>
登出
</a>
</li>
</ul>
</li>
</ul>
</div>
</div><!-- /.navbar-container -->
</div>
<div class="main-container ace-save-state" id="main-container">
<script type="text/javascript">
try{ace.settings.loadState('main-container')}catch(e){}
</script>
<div id="sidebar" class="sidebar responsive ace-save-state">
<script type="text/javascript">
try{ace.settings.loadState('sidebar')}catch(e){}
</script>
<div class="sidebar-shortcuts" id="sidebar-shortcuts">
<div class="sidebar-shortcuts-large" id="sidebar-shortcuts-large">
<button class="btn btn-success">
<i class="ace-icon fa fa-signal"></i>
</button>
<button class="btn btn-info">
<i class="ace-icon fa fa-pencil"></i>
</button>
<button class="btn btn-warning">
<i class="ace-icon fa fa-users"></i>
</button>
<button class="btn btn-danger">
<i class="ace-icon fa fa-cogs"></i>
</button>
</div>
<div class="sidebar-shortcuts-mini" id="sidebar-shortcuts-mini">
<span class="btn btn-success"></span>
<span class="btn btn-info"></span>
<span class="btn btn-warning"></span>
<span class="btn btn-danger"></span>
</div>
</div><!-- /.sidebar-shortcuts -->
<ul class="nav nav-list">
<li class="">
<a href="../nurse/welcome">
<i class="menu-icon fa fa-tachometer"></i>
<span class="menu-text"> 欢迎页面 </span>
</a>
<b class="arrow"></b>
</li>
<li class="active">
<a href="../nurse/profile">
<i class="menu-icon fa fa-tag"></i>
<span class="menu-text"> 个人信息页面 </span>
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="../nurse/query-drug-list">
<i class="menu-icon fa fa-list"></i>
<span class="menu-text"> 查看库存药品列表 </span>
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="#" class="dropdown-toggle">
<i class="menu-icon fa fa-list-alt"></i>
<span class="menu-text"> 查看处方列表 </span>
<b class="arrow fa fa-angle-down"></b>
</a>
<b class="arrow"></b>
<ul class="submenu">
<li class="">
<a href="../nurse/query-unsolved-rx-list">
<i class="menu-icon fa fa-caret-right"></i>
查看未处理处方列表
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="../nurse/query-solved-rx-list">
<i class="menu-icon fa fa-caret-right"></i>
查看已处理处方列表
</a>
<b class="arrow"></b>
</li>
</ul>
</li>
</ul><!-- /.nav-list -->
<div class="sidebar-toggle sidebar-collapse" id="sidebar-collapse">
<i id="sidebar-toggle-icon" class="ace-icon fa fa-angle-double-left ace-save-state" data-icon1="ace-icon fa fa-angle-double-left" data-icon2="ace-icon fa fa-angle-double-right"></i>
</div>
</div>
<div class="main-content">
<div class="main-content-inner">
<div class="breadcrumbs ace-save-state" id="breadcrumbs">
<ul class="breadcrumb">
<li>
<i class="ace-icon fa fa-home home-icon"></i>
<a href="../nurse/index">首页</a>
</li>
<li class="active">个人信息页面</li>
</ul><!-- /.breadcrumb -->
</div>
<div class="page-content">
<div class="page-header">
<h1>个人信息</h1>
</div><!-- /.page-header -->
<c:choose>
<c:when test="${echo != null}">
<div class="alert alert-info">
<button class="close" data-dismiss="alert">
<i class="ace-icon fa fa-times"></i>
</button>
<i class="ace-icon fa fa-hand-o-right"></i>
${echo}
</div>
</c:when>
</c:choose>
<div class="row">
<div class="col-xs-12">
<!-- PAGE CONTENT BEGINS -->
<div>
<div id="user-profile-3" class="user-profile row">
<div class="col-sm-offset-1 col-sm-10">
<div class="tabbable">
<ul class="nav nav-tabs padding-16">
<li class="active">
<a data-toggle="tab" href="#edit-basic">
<i class="green ace-icon fa fa-pencil-square-o bigger-125"></i>
基本信息
</a>
</li>
<li>
<a data-toggle="tab" href="#edit-password">
<i class="blue ace-icon fa fa-key bigger-125"></i>
更改密码
</a>
</li>
</ul>
<div class="tab-content profile-edit-tab-content">
<div id="edit-basic" class="tab-pane in active">
<div class="tabbable">
<div class="tab-content no-border padding-24">
<div id="home" class="tab-pane in active">
<div class="row">
<div class="col-xs-12 col-sm-3 center">
<span class="profile-picture">
<img class="editable img-responsive" id="avatar" src="../assets/images/avatars/${currentNurse.nsex ? 'Male' : 'Female'}Nurse.png" alt="头像" />
</span>
</div><!-- /.col -->
<div class="col-xs-12 col-sm-9">
<h4 class="blue">
<span class="middle">&nbsp; ${currentNurse.nname}</span>
<span class="label label-purple arrowed-in-right">
<i class="ace-icon fa fa-circle smaller-80 align-middle"></i>
发药处护士
</span>
</h4>
<div class="profile-user-info">
<div class="profile-info-row">
<div class="profile-info-name"> 编号 </div>
<div class="profile-info-value">
<span>${currentNurse.nno}</span>
</div>
</div>
<div class="profile-info-row">
<div class="profile-info-name"> 姓名 </div>
<div class="profile-info-value">
<span>${currentNurse.nname}</span>
</div>
</div>
<div class="profile-info-row">
<div class="profile-info-name"> 性别 </div>
<div class="profile-info-value">
<span>${currentNurse.nsex ? '男' : '女'}</span>
</div>
</div>
<div class="profile-info-row">
<div class="profile-info-name"> 年龄 </div>
<div class="profile-info-value">
<span>${currentNurse.nage}</span>
</div>
</div>
</div>
</div><!-- /.col -->
</div><!-- /.row -->
</div><!-- /#home -->
</div>
</div>
</div>
<div id="edit-password" class="tab-pane">
<form action="../nurse/changeNpwd" method="post" class="form-horizontal">
<div class="space-20"></div>
<div class="form-group">
<label class="col-sm-3 control-label no-padding-right" for="form-field-pass1">新密码</label>
<div class="col-sm-9">
<input type="password" name="Npwd1" required="required" id="form-field-pass1" />
</div>
</div>
<div class="space-4"></div>
<div class="form-group">
<label class="col-sm-3 control-label no-padding-right" for="form-field-pass2">确认密码</label>
<div class="col-sm-9">
<input type="password" name="Npwd2" required="required" id="form-field-pass2" />
</div>
</div>
<div class="clearfix form-actions">
<div class="col-md-offset-3 col-md-9">
<button class="btn btn-info" type="submit">
<i class="ace-icon fa fa-check bigger-110"></i>
保存
</button>
&nbsp; &nbsp;
<button class="btn" type="reset">
<i class="ace-icon fa fa-undo bigger-110"></i>
重置
</button>
</div>
</div>
</form>
</div>
</div>
</div>
</div><!-- /.span -->
</div><!-- /.user-profile -->
</div>
<!-- PAGE CONTENT ENDS -->
</div><!-- /.col -->
</div><!-- /.row -->
</div><!-- /.page-content -->
</div>
</div><!-- /.main-content -->
<div class="footer">
<div class="footer-inner">
<div class="footer-content">
<span class="bigger-120">
<span class="blue bolder">医院药品库存管理系统</span>
DIMS &copy; 2019-2020
</span>
</div>
</div>
</div>
<a href="#" id="btn-scroll-up" class="btn-scroll-up btn btn-sm btn-inverse">
<i class="ace-icon fa fa-angle-double-up icon-only bigger-110"></i>
</a>
</div><!-- /.main-container -->
<!-- basic scripts -->
<!--[if !IE]> -->
<script src="../assets/js/jquery-2.1.4.min.js"></script>
<!-- <![endif]-->
<!--[if IE]>
<script src="../assets/js/jquery-1.11.3.min.js"></script>
<![endif]-->
<script type="text/javascript">
if('ontouchstart' in document.documentElement) document.write("<script src='../assets/js/jquery.mobile.custom.min.js'>"+"<"+"/script>");
</script>
<script src="../assets/js/bootstrap.min.js"></script>
<!-- page specific plugin scripts -->
<!--[if lte IE 8]>
<script src="../assets/js/excanvas.min.js"></script>
<![endif]-->
<script src="../assets/js/jquery-ui.custom.min.js"></script>
<script src="../assets/js/jquery.ui.touch-punch.min.js"></script>
<script src="../assets/js/jquery.gritter.min.js"></script>
<script src="../assets/js/bootbox.js"></script>
<script src="../assets/js/jquery.easypiechart.min.js"></script>
<script src="../assets/js/bootstrap-datepicker.min.js"></script>
<script src="../assets/js/jquery.hotkeys.index.min.js"></script>
<script src="../assets/js/bootstrap-wysiwyg.min.js"></script>
<script src="../assets/js/select2.min.js"></script>
<script src="../assets/js/spinbox.min.js"></script>
<script src="../assets/js/bootstrap-editable.min.js"></script>
<script src="../assets/js/ace-editable.min.js"></script>
<script src="../assets/js/jquery.maskedinput.min.js"></script>
<!-- ace scripts -->
<script src="../assets/js/ace-elements.min.js"></script>
<script src="../assets/js/ace.min.js"></script>
<!-- inline scripts related to this page -->
<script type="text/javascript">
jQuery(function($) {
//editables on first profile page
$.fn.editable.defaults.mode = 'inline';
$.fn.editableform.loading = "<div class='editableform-loading'><i class='ace-icon fa fa-spinner fa-spin fa-2x light-blue'></i></div>";
$.fn.editableform.buttons = '<button type="submit" class="btn btn-info editable-submit"><i class="ace-icon fa fa-check"></i></button>'+
'<button type="button" class="btn editable-cancel"><i class="ace-icon fa fa-times"></i></button>';
//editables
//text editable
$('#username')
.editable({
type: 'text',
name: 'username'
});
//select2 editable
var countries = [];
$.each({ "CA": "Canada", "IN": "India", "NL": "Netherlands", "TR": "Turkey", "US": "United States"}, function(k, v) {
countries.push({id: k, text: v});
});
var cities = [];
cities["CA"] = [];
$.each(["Toronto", "Ottawa", "Calgary", "Vancouver"], function(k, v){
cities["CA"].push({id: v, text: v});
});
cities["IN"] = [];
$.each(["Delhi", "Mumbai", "Bangalore"], function(k, v){
cities["IN"].push({id: v, text: v});
});
cities["NL"] = [];
$.each(["Amsterdam", "Rotterdam", "The Hague"], function(k, v){
cities["NL"].push({id: v, text: v});
});
cities["TR"] = [];
$.each(["Ankara", "Istanbul", "Izmir"], function(k, v){
cities["TR"].push({id: v, text: v});
});
cities["US"] = [];
$.each(["New York", "Miami", "Los Angeles", "Chicago", "Wysconsin"], function(k, v){
cities["US"].push({id: v, text: v});
});
var currentValue = "NL";
$('#country').editable({
type: 'select2',
value : 'NL',
//onblur:'ignore',
source: countries,
select2: {
'width': 140
},
success: function(response, newValue) {
if(currentValue == newValue) return;
currentValue = newValue;
var new_source = (!newValue || newValue == "") ? [] : cities[newValue];
//the destroy method is causing errors in x-editable v1.4.6+
//it worked fine in v1.4.5
/**
$('#city').editable('destroy').editable({
type: 'select2',
source: new_source
}).editable('setValue', null);
*/
//so we remove it altogether and create a new element
var city = $('#city').removeAttr('id').get(0);
$(city).clone().attr('id', 'city').text('Select City').editable({
type: 'select2',
value : null,
//onblur:'ignore',
source: new_source,
select2: {
'width': 140
}
}).insertAfter(city);//insert it after previous instance
$(city).remove();//remove previous instance
}
});
$('#city').editable({
type: 'select2',
value : 'Amsterdam',
//onblur:'ignore',
source: cities[currentValue],
select2: {
'width': 140
}
});
//custom date editable
$('#signup').editable({
type: 'adate',
date: {
//datepicker plugin options
format: 'yyyy/mm/dd',
viewformat: 'yyyy/mm/dd',
weekStart: 1
//,nativeUI: true//if true and browser support input[type=date], native browser control will be used
//,format: 'yyyy-mm-dd',
//viewformat: 'yyyy-mm-dd'
}
})
$('#age').editable({
type: 'spinner',
name : 'age',
spinner : {
min : 16,
max : 99,
step: 1,
on_sides: true
//,nativeUI: true//if true and browser support input[type=number], native browser control will be used
}
});
$('#login').editable({
type: 'slider',
name : 'login',
slider : {
min : 1,
max: 50,
width: 100
//,nativeUI: true//if true and browser support input[type=range], native browser control will be used
},
success: function(response, newValue) {
if(parseInt(newValue) == 1)
$(this).html(newValue + " hour ago");
else $(this).html(newValue + " hours ago");
}
});
$('#about').editable({
mode: 'inline',
type: 'wysiwyg',
name : 'about',
wysiwyg : {
//css : {'max-width':'300px'}
},
success: function(response, newValue) {
}
});
// *** editable avatar *** //
try {//ie8 throws some harmless exceptions, so let's catch'em
//first let's add a fake appendChild method for Image element for browsers that have a problem with this
//because editable plugin calls appendChild, and it causes errors on IE at unpredicted points
try {
document.createElement('IMG').appendChild(document.createElement('B'));
} catch(e) {
Image.prototype.appendChild = function(el){}
}
var last_gritter
$('#avatar').editable({
type: 'image',
name: 'avatar',
value: null,
//onblur: 'ignore', //don't reset or hide editable onblur?!
image: {
//specify ace file input plugin's options here
btn_choose: 'Change Avatar',
droppable: true,
maxSize: 110000,//~100Kb
//and a few extra ones here
name: 'avatar',//put the field name here as well, will be used inside the custom plugin
on_error : function(error_type) {//on_error function will be called when the selected file has a problem
if(last_gritter) $.gritter.remove(last_gritter);
if(error_type == 1) {//file format error
last_gritter = $.gritter.add({
title: 'File is not an image!',
text: 'Please choose a jpg|gif|png image!',
class_name: 'gritter-error gritter-center'
});
} else if(error_type == 2) {//file size rror
last_gritter = $.gritter.add({
title: 'File too big!',
text: 'Image size should not exceed 100Kb!',
class_name: 'gritter-error gritter-center'
});
}
else {//other error
}
},
on_success : function() {
$.gritter.removeAll();
}
},
url: function(params) {
// ***UPDATE AVATAR HERE*** //
//for a working upload example you can replace the contents of this function with
//examples/profile-avatar-update.js
var deferred = new $.Deferred
var value = $('#avatar').next().find('input[type=hidden]:eq(0)').val();
if(!value || value.length == 0) {
deferred.resolve();
return deferred.promise();
}
//dummy upload
setTimeout(function(){
if("FileReader" in window) {
//for browsers that have a thumbnail of selected image
var thumb = $('#avatar').next().find('img').data('thumb');
if(thumb) $('#avatar').get(0).src = thumb;
}
deferred.resolve({'status':'OK'});
if(last_gritter) $.gritter.remove(last_gritter);
last_gritter = $.gritter.add({
title: 'Avatar Updated!',
text: 'Uploading to server can be easily implemented. A working example is included with the template.',
class_name: 'gritter-info gritter-center'
});
}, parseInt(Math.random() * 800 + 800))
return deferred.promise();
// ***END OF UPDATE AVATAR HERE*** //
},
success: function(response, newValue) {
}
})
}catch(e) {}
/**
//let's display edit mode by default?
var blank_image = true;//somehow you determine if image is initially blank or not, or you just want to display file input at first
if(blank_image) {
$('#avatar').editable('show').on('hidden', function(e, reason) {
if(reason == 'onblur') {
$('#avatar').editable('show');
return;
}
$('#avatar').off('hidden');
})
}
*/
//another option is using modals
$('#avatar2').on('click', function(){
var modal =
'<div class="modal fade">\
<div class="modal-dialog">\
<div class="modal-content">\
<div class="modal-header">\
<button type="button" class="close" data-dismiss="modal">&times;</button>\
<h4 class="blue">Change Avatar</h4>\
</div>\
\
<form class="no-margin">\
<div class="modal-body">\
<div class="space-4"></div>\
<div style="width:75%;margin-left:12%;"><input type="file" name="file-input" /></div>\
</div>\
\
<div class="modal-footer center">\
<button type="submit" class="btn btn-sm btn-success"><i class="ace-icon fa fa-check"></i> Submit</button>\
<button type="button" class="btn btn-sm" data-dismiss="modal"><i class="ace-icon fa fa-times"></i> Cancel</button>\
</div>\
</form>\
</div>\
</div>\
</div>';
var modal = $(modal);
modal.modal("show").on("hidden", function(){
modal.remove();
});
var working = false;
var form = modal.find('form:eq(0)');
var file = form.find('input[type=file]').eq(0);
file.ace_file_input({
style:'well',
btn_choose:'Click to choose new avatar',
btn_change:null,
no_icon:'ace-icon fa fa-picture-o',
thumbnail:'small',
before_remove: function() {
//don't remove/reset files while being uploaded
return !working;
},
allowExt: ['jpg', 'jpeg', 'png', 'gif'],
allowMime: ['image/jpg', 'image/jpeg', 'image/png', 'image/gif']
});
form.on('submit', function(){
if(!file.data('ace_input_files')) return false;
file.ace_file_input('disable');
form.find('button').attr('disabled', 'disabled');
form.find('.modal-body').append("<div class='center'><i class='ace-icon fa fa-spinner fa-spin bigger-150 orange'></i></div>");
var deferred = new $.Deferred;
working = true;
deferred.done(function() {
form.find('button').removeAttr('disabled');
form.find('input[type=file]').ace_file_input('enable');
form.find('.modal-body > :last-child').remove();
modal.modal("hide");
var thumb = file.next().find('img').data('thumb');
if(thumb) $('#avatar2').get(0).src = thumb;
working = false;
});
setTimeout(function(){
deferred.resolve();
}, parseInt(Math.random() * 800 + 800));
return false;
});
});
//////////////////////////////
$('#profile-feed-1').ace_scroll({
height: '250px',
mouseWheelLock: true,
alwaysVisible : true
});
$('a[ data-original-title]').tooltip();
$('.easy-pie-chart.percentage').each(function(){
var barColor = $(this).data('color') || '#555';
var trackColor = '#E2E2E2';
var size = parseInt($(this).data('size')) || 72;
$(this).easyPieChart({
barColor: barColor,
trackColor: trackColor,
scaleColor: false,
lineCap: 'butt',
lineWidth: parseInt(size/10),
animate:false,
size: size
}).css('color', barColor);
});
///////////////////////////////////////////
//right & left position
//show the user info on right or left depending on its position
$('#user-profile-2 .memberdiv').on('mouseenter touchstart', function(){
var $this = $(this);
var $parent = $this.closest('.tab-pane');
var off1 = $parent.offset();
var w1 = $parent.width();
var off2 = $this.offset();
var w2 = $this.width();
var place = 'left';
if( parseInt(off2.left) < parseInt(off1.left) + parseInt(w1 / 2) ) place = 'right';
$this.find('.popover').removeClass('right left').addClass(place);
}).on('click', function(e) {
e.preventDefault();
});
///////////////////////////////////////////
$('#user-profile-3')
.find('input[type=file]').ace_file_input({
style:'well',
btn_choose:'Change avatar',
btn_change:null,
no_icon:'ace-icon fa fa-picture-o',
thumbnail:'large',
droppable:true,
allowExt: ['jpg', 'jpeg', 'png', 'gif'],
allowMime: ['image/jpg', 'image/jpeg', 'image/png', 'image/gif']
})
.end().find('button[type=reset]').on(ace.click_event, function(){
$('#user-profile-3 input[type=file]').ace_file_input('reset_input');
})
.end().find('.date-picker').datepicker().next().on(ace.click_event, function(){
$(this).prev().focus();
})
$('.input-mask-phone').mask('(999) 999-9999');
$('#user-profile-3').find('input[type=file]').ace_file_input('show_file_list', [{type: 'image', name: $('#avatar').attr('src')}]);
////////////////////
//change profile
$('[data-toggle="buttons"] .btn').on('click', function(e){
var target = $(this).find('input[type=radio]');
var which = parseInt(target.val());
$('.user-profile').parent().addClass('hide');
$('#user-profile-'+which).parent().removeClass('hide');
});
/////////////////////////////////////
$(document).one('ajaxloadstart.page', function(e) {
//in ajax mode, remove remaining elements before leaving page
try {
$('.editable').editable('destroy');
} catch(e) {}
$('[class*=select2]').remove();
});
});
</script>
</body>
</html>

View file

@ -0,0 +1,528 @@
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<meta charset="utf-8" />
<title>查看药品库存列表 - 医院药品库存管理系统</title>
<meta name="description" content="查看药品库存列表 - 医院药品库存管理系统" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0" />
<!-- bootstrap & fontawesome -->
<link rel="stylesheet" href="../assets/css/bootstrap.min.css" />
<link rel="stylesheet" href="../assets/font-awesome/4.5.0/css/font-awesome.min.css" />
<!-- page specific plugin styles -->
<!-- text fonts -->
<link rel="stylesheet" href="../assets/css/fonts.googleapis.com.css" />
<!-- ace styles -->
<link rel="stylesheet" href="../assets/css/ace.min.css" class="ace-main-stylesheet" id="main-ace-style" />
<!--[if lte IE 9]>
<link rel="stylesheet" href="../assets/css/ace-part2.min.css" class="ace-main-stylesheet" />
<![endif]-->
<link rel="stylesheet" href="../assets/css/ace-skins.min.css" />
<link rel="stylesheet" href="../assets/css/ace-rtl.min.css" />
<!--[if lte IE 9]>
<link rel="stylesheet" href="../assets/css/ace-ie.min.css" />
<![endif]-->
<!-- inline styles related to this page -->
<!-- ace settings handler -->
<script src="../assets/js/ace-extra.min.js"></script>
<!-- HTML5shiv and Respond.js for IE8 to support HTML5 elements and media queries -->
<!--[if lte IE 8]>
<script src="../assets/js/html5shiv.min.js"></script>
<script src="../assets/js/respond.min.js"></script>
<![endif]-->
</head>
<body class="no-skin">
<div id="navbar" class="navbar navbar-default ace-save-state">
<div class="navbar-container ace-save-state" id="navbar-container">
<button type="button" class="navbar-toggle menu-toggler pull-left" id="menu-toggler" data-target="#sidebar">
<span class="sr-only">Toggle sidebar</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<div class="navbar-header pull-left">
<a href="../nurse/index" class="navbar-brand">
<small>
<i class="fa fa-leaf"></i>
医院药品库存管理系统 DIMS
</small>
</a>
</div>
<div class="navbar-buttons navbar-header pull-right" role="navigation">
<ul class="nav ace-nav">
<li class="grey dropdown-modal">
<a data-toggle="dropdown" class="dropdown-toggle" href="#">
<i class="ace-icon fa fa-tasks"></i>
<span class="badge badge-grey">3</span>
</a>
<ul class="dropdown-menu-right dropdown-navbar dropdown-menu dropdown-caret dropdown-close">
<li class="dropdown-header">
<i class="ace-icon fa fa-check"></i>
统计信息
</li>
<li class="dropdown-content">
<ul class="dropdown-menu dropdown-navbar">
<li>
<a href="../nurse/query-solved-rx-list">
<div class="clearfix">
<span class="pull-left">已处理处方数目占比</span>
<span class="pull-right">
<fmt:formatNumber value="${solvedRxsNum / (solvedRxsNum + unsolvedRxsNum) * 100}" pattern="#.00"/>
%
</span>
</div>
<div class="progress progress-mini progress-striped active">
<div style="width:${solvedRxsNum / (solvedRxsNum + unsolvedRxsNum) * 100}%" class="progress-bar"></div>
</div>
</a>
</li>
<li>
<a href="../nurse/query-unsolved-rx-list">
<div class="clearfix">
<span class="pull-left">未处理处方数目占比</span>
<span class="pull-right">
<fmt:formatNumber value="${unsolvedRxsNum / (solvedRxsNum + unsolvedRxsNum) * 100}" pattern="#.00"/>
%
</span>
</div>
<div class="progress progress-mini progress-striped active">
<div style="width:${unsolvedRxsNum / (solvedRxsNum + unsolvedRxsNum) * 100}%" class="progress-bar progress-bar-warning"></div>
</div>
</a>
</li>
<li>
<a href="#">
<div class="clearfix">
<span class="pull-left">由我处理的处方数目占比</span>
<span class="pull-right">
<fmt:formatNumber value="${mySolvedRxsNum / solvedRxsNum * 100}" pattern="#.00"/>
%
</span>
</div>
<div class="progress progress-mini progress-striped active">
<div style="width:${mySolvedRxsNum / solvedRxsNum * 100}%" class="progress-bar progress-bar-success"></div>
</div>
</a>
</li>
</ul>
</li>
</ul>
</li>
<li class="light-blue dropdown-modal">
<a data-toggle="dropdown" href="#" class="dropdown-toggle">
<img class="nav-user-photo" src="../assets/images/avatars/${currentNurse.nsex ? 'Male' : 'Female'}Nurse.png" alt="头像" />
<span class="user-info">
<small>欢迎,</small>
${currentNurse.nname}
</span>
<i class="ace-icon fa fa-caret-down"></i>
</a>
<ul class="user-menu dropdown-menu-right dropdown-menu dropdown-yellow dropdown-caret dropdown-close">
<li>
<a href="../nurse/profile">
<i class="ace-icon fa fa-user"></i>
个人信息
</a>
</li>
<li class="divider"></li>
<li>
<a href="../logout">
<i class="ace-icon fa fa-power-off"></i>
登出
</a>
</li>
</ul>
</li>
</ul>
</div>
</div><!-- /.navbar-container -->
</div>
<div class="main-container ace-save-state" id="main-container">
<script type="text/javascript">
try{ace.settings.loadState('main-container')}catch(e){}
</script>
<div id="sidebar" class="sidebar responsive ace-save-state">
<script type="text/javascript">
try{ace.settings.loadState('sidebar')}catch(e){}
</script>
<div class="sidebar-shortcuts" id="sidebar-shortcuts">
<div class="sidebar-shortcuts-large" id="sidebar-shortcuts-large">
<button class="btn btn-success">
<i class="ace-icon fa fa-signal"></i>
</button>
<button class="btn btn-info">
<i class="ace-icon fa fa-pencil"></i>
</button>
<button class="btn btn-warning">
<i class="ace-icon fa fa-users"></i>
</button>
<button class="btn btn-danger">
<i class="ace-icon fa fa-cogs"></i>
</button>
</div>
<div class="sidebar-shortcuts-mini" id="sidebar-shortcuts-mini">
<span class="btn btn-success"></span>
<span class="btn btn-info"></span>
<span class="btn btn-warning"></span>
<span class="btn btn-danger"></span>
</div>
</div><!-- /.sidebar-shortcuts -->
<ul class="nav nav-list">
<li class="">
<a href="../nurse/welcome">
<i class="menu-icon fa fa-tachometer"></i>
<span class="menu-text"> 欢迎页面 </span>
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="../nurse/profile">
<i class="menu-icon fa fa-tag"></i>
<span class="menu-text"> 个人信息页面 </span>
</a>
<b class="arrow"></b>
</li>
<li class="active">
<a href="../nurse/query-drug-list">
<i class="menu-icon fa fa-list"></i>
<span class="menu-text"> 查看库存药品列表 </span>
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="#" class="dropdown-toggle">
<i class="menu-icon fa fa-list-alt"></i>
<span class="menu-text"> 查看处方列表 </span>
<b class="arrow fa fa-angle-down"></b>
</a>
<b class="arrow"></b>
<ul class="submenu">
<li class="">
<a href="../nurse/query-unsolved-rx-list">
<i class="menu-icon fa fa-caret-right"></i>
查看未处理处方列表
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="../nurse/query-solved-rx-list">
<i class="menu-icon fa fa-caret-right"></i>
查看已处理处方列表
</a>
<b class="arrow"></b>
</li>
</ul>
</li>
</ul><!-- /.nav-list -->
<div class="sidebar-toggle sidebar-collapse" id="sidebar-collapse">
<i id="sidebar-toggle-icon" class="ace-icon fa fa-angle-double-left ace-save-state" data-icon1="ace-icon fa fa-angle-double-left" data-icon2="ace-icon fa fa-angle-double-right"></i>
</div>
</div>
<div class="main-content">
<div class="main-content-inner">
<div class="breadcrumbs ace-save-state" id="breadcrumbs">
<ul class="breadcrumb">
<li>
<i class="ace-icon fa fa-home home-icon"></i>
<a href="../nurse/index">首页</a>
</li>
<li class="active">查看库存药品列表</li>
</ul><!-- /.breadcrumb -->
</div>
<div class="page-content">
<div class="page-header">
<h1>
查看库存药品列表
<small>
<i class="ace-icon fa fa-angle-double-right"></i>
库存药品列表
</small>
</h1>
</div><!-- /.page-header -->
<c:choose>
<c:when test="${echo != null}">
<div class="alert alert-info">
<button class="close" data-dismiss="alert">
<i class="ace-icon fa fa-times"></i>
</button>
<i class="ace-icon fa fa-hand-o-right"></i>
${echo}
</div>
</c:when>
</c:choose>
<div class="row">
<div class="col-xs-12">
<!-- PAGE CONTENT BEGINS -->
<div class="row">
<div class="col-xs-12">
<div class="clearfix">
<div class="pull-right tableTools-container"></div>
</div>
<div class="table-header">
查询结果
</div>
<!-- div.table-responsive -->
<!-- div.dataTables_borderWrap -->
<div>
<table id="dynamic-table" class="table table-striped table-bordered table-hover">
<thead>
<tr>
<th>药品编号</th>
<th>药品名称</th>
<th>药品保质期 (天数)</th>
<th>药品数量</th>
</tr>
</thead>
<tbody>
<c:forEach items="${drugs}" var="drug">
<tr>
<td>${drug.PDno}</td>
<td>${drug.PDname}</td>
<td>${drug.PDlife}</td>
<td>${drug.PDnum}</td>
</tr>
</c:forEach>
</tbody>
</table>
</div>
</div>
</div>
<!-- PAGE CONTENT ENDS -->
</div><!-- /.col -->
</div><!-- /.row -->
</div><!-- /.page-content -->
</div>
</div><!-- /.main-content -->
<div class="footer">
<div class="footer-inner">
<div class="footer-content">
<span class="bigger-120">
<span class="blue bolder">医院药品库存管理系统</span>
DIMS &copy; 2019-2020
</span>
</div>
</div>
</div>
<a href="#" id="btn-scroll-up" class="btn-scroll-up btn btn-sm btn-inverse">
<i class="ace-icon fa fa-angle-double-up icon-only bigger-110"></i>
</a>
</div><!-- /.main-container -->
<!-- basic scripts -->
<!--[if !IE]> -->
<script src="../assets/js/jquery-2.1.4.min.js"></script>
<!-- <![endif]-->
<!--[if IE]>
<script src="../assets/js/jquery-1.11.3.min.js"></script>
<![endif]-->
<script type="text/javascript">
if('ontouchstart' in document.documentElement) document.write("<script src='../assets/js/jquery.mobile.custom.min.js'>"+"<"+"/script>");
</script>
<script src="../assets/js/bootstrap.min.js"></script>
<!-- page specific plugin scripts -->
<script src="../assets/js/jquery.dataTables.min.js"></script>
<script src="../assets/js/jquery.dataTables.bootstrap.min.js"></script>
<script src="../assets/js/dataTables.buttons.min.js"></script>
<script src="../assets/js/buttons.flash.min.js"></script>
<script src="../assets/js/buttons.html5.min.js"></script>
<script src="../assets/js/buttons.print.min.js"></script>
<script src="../assets/js/buttons.colVis.min.js"></script>
<script src="../assets/js/dataTables.select.min.js"></script>
<!-- ace scripts -->
<script src="../assets/js/ace-elements.min.js"></script>
<script src="../assets/js/ace.min.js"></script>
<!-- inline scripts related to this page -->
<script type="text/javascript">
jQuery(function($) {
//initiate dataTables plugin
var myTable =
$('#dynamic-table')
//.wrap("<div class='dataTables_borderWrap' />") //if you are applying horizontal scrolling (sScrollX)
.DataTable( {
bAutoWidth: false,
"aoColumns": [ null, null, null, null ],
"aaSorting": [],
"iDisplayLength": 5,
"aLengthMenu": [
[5, 10, 15, 20, 25, 30, 35, 40, 45, 50, -1],
["5 条", "10 条", "15 条", "20 条", "25 条", "30 条", "35 条", "40 条", "45 条", "50 条", "全部"]
],
"oLanguage": { // 自定义提示信息
"sLengthMenu": "每页显示 _MENU_ 记录",
"sZeroRecords": "抱歉,没有找到",
"sInfo": "从 _START_ 到 _END_ / 共 _TOTAL_ 条数据 ",
"sInfoEmpty": "没有数据",
"sInfoFiltered": "(从 _MAX_ 条数据中检索) ",
"sSearch": "检索",
"oPaginate": {
"sFirst": "首页",
"sPrevious": "前一页",
"sNext": "后一页",
"sLast": "尾页"
}
}
//"bProcessing": true,
//"bServerSide": true,
//"sAjaxSource": "http://127.0.0.1/table.php" ,
//,
//"sScrollY": "200px",
//"bPaginate": false,
//"sScrollX": "100%",
//"sScrollXInner": "120%",
//"bScrollCollapse": true,
//Note: if you are applying horizontal scrolling (sScrollX) on a ".table-bordered"
//you may want to wrap the table inside a "div.dataTables_borderWrap" element
//"iDisplayLength": 50
} );
$.fn.dataTable.Buttons.defaults.dom.container.className = 'dt-buttons btn-overlap btn-group btn-overlap';
new $.fn.dataTable.Buttons( myTable, {
buttons: [
{
"extend": "colvis",
"text": "<i class='fa fa-search bigger-110 blue'></i> <span class='hidden'>显示/隐藏列</span>",
"className": "btn btn-white btn-primary btn-bold",
columns: ':not(:first):not(:last)'
},
{
"extend": "copy",
"text": "<i class='fa fa-copy bigger-110 pink'></i> <span class='hidden'>复制到剪贴板</span>",
"className": "btn btn-white btn-primary btn-bold"
},
{
"extend": "csv",
"text": "<i class='fa fa-database bigger-110 orange'></i> <span class='hidden'>导出到 CSV 文件</span>",
"className": "btn btn-white btn-primary btn-bold"
},
/* {
"extend": "excel",
"text": "<i class='fa fa-file-excel-o bigger-110 green'></i> <span class='hidden'>导出到 Excel 文件</span>",
"className": "btn btn-white btn-primary btn-bold"
},
{
"extend": "pdf",
"text": "<i class='fa fa-file-pdf-o bigger-110 red'></i> <span class='hidden'>导出到 PDF 文件</span>",
"className": "btn btn-white btn-primary btn-bold"
}, */
{
"extend": "print",
"text": "<i class='fa fa-print bigger-110 grey'></i> <span class='hidden'>打印</span>",
"className": "btn btn-white btn-primary btn-bold",
autoPrint: false
}
]
} );
myTable.buttons().container().appendTo( $('.tableTools-container') );
//style the message box
var defaultCopyAction = myTable.button(1).action();
myTable.button(1).action(function (e, dt, button, config) {
defaultCopyAction(e, dt, button, config);
$('.dt-button-info').addClass('gritter-item-wrapper gritter-info gritter-center white');
});
var defaultColvisAction = myTable.button(0).action();
myTable.button(0).action(function (e, dt, button, config) {
defaultColvisAction(e, dt, button, config);
if($('.dt-button-collection > .dropdown-menu').length == 0) {
$('.dt-button-collection')
.wrapInner('<ul class="dropdown-menu dropdown-light dropdown-caret dropdown-caret" />')
.find('a').attr('href', '#').wrap("<li />")
}
$('.dt-button-collection').appendTo('.tableTools-container .dt-buttons')
});
////
setTimeout(function() {
$($('.tableTools-container')).find('a.dt-button').each(function() {
var div = $(this).find(' > div').first();
if(div.length == 1) div.tooltip({container: 'body', title: div.parent().text()});
else $(this).tooltip({container: 'body', title: $(this).text()});
});
}, 500);
myTable.on( 'select', function ( e, dt, type, index ) {
if ( type === 'row' ) {
$( myTable.row( index ).node() ).find('input:checkbox').prop('checked', true);
}
} );
myTable.on( 'deselect', function ( e, dt, type, index ) {
if ( type === 'row' ) {
$( myTable.row( index ).node() ).find('input:checkbox').prop('checked', false);
}
} );
/////////////////////////////////
//table checkboxes
$('th input[type=checkbox], td input[type=checkbox]').prop('checked', false);
//select/deselect all rows according to table header checkbox
$('#dynamic-table > thead > tr > th input[type=checkbox], #dynamic-table_wrapper input[type=checkbox]').eq(0).on('click', function(){
var th_checked = this.checked;//checkbox inside "TH" table header
$('#dynamic-table').find('tbody > tr').each(function(){
var row = this;
if(th_checked) myTable.row(row).select();
else myTable.row(row).deselect();
});
});
//select/deselect a row when the checkbox is checked/unchecked
$('#dynamic-table').on('click', 'td input[type=checkbox]', function(){
var row = $(this).closest('tr').get(0);
if(this.checked) myTable.row(row).deselect();
else myTable.row(row).select();
});
$(document).on('click', '#dynamic-table .dropdown-toggle', function(e) {
e.stopImmediatePropagation();
e.stopPropagation();
e.preventDefault();
});
//And for the first simple table, which doesn't have TableTools or dataTables
//select/deselect all rows according to table header checkbox
var active_class = 'active';
$('#simple-table > thead > tr > th input[type=checkbox]').eq(0).on('click', function(){
var th_checked = this.checked;//checkbox inside "TH" table header
$(this).closest('table').find('tbody > tr').each(function(){
var row = this;
if(th_checked) $(row).addClass(active_class).find('input[type=checkbox]').eq(0).prop('checked', true);
else $(row).removeClass(active_class).find('input[type=checkbox]').eq(0).prop('checked', false);
});
});
//select/deselect a row when the checkbox is checked/unchecked
$('#simple-table').on('click', 'td input[type=checkbox]', function(){
var $row = $(this).closest('tr');
if($row.is('.detail-row ')) return;
if(this.checked) $row.addClass(active_class);
else $row.removeClass(active_class);
});
/********************************/
//add tooltip for small view action buttons in dropdown menu
$('[data-rel="tooltip"]').tooltip({placement: tooltip_placement});
//tooltip placement on right or left
function tooltip_placement(context, source) {
var $source = $(source);
var $parent = $source.closest('table')
var off1 = $parent.offset();
var w1 = $parent.width();
var off2 = $source.offset();
//var w2 = $source.width();
if( parseInt(off2.left) < parseInt(off1.left) + parseInt(w1 / 2) ) return 'right';
return 'left';
}
/***************/
$('.show-details-btn').on('click', function(e) {
e.preventDefault();
$(this).closest('tr').next().toggleClass('open');
$(this).find(ace.vars['.icon']).toggleClass('fa-angle-double-down').toggleClass('fa-angle-double-up');
});
/***************/
/**
//add horizontal scrollbars to a simple table
$('#simple-table').css({'width':'2000px', 'max-width': 'none'}).wrap('<div style="width: 1000px;" />').parent().ace_scroll(
{
horizontal: true,
styleClass: 'scroll-top scroll-dark scroll-visible',//show the scrollbars on top(default is bottom)
size: 2000,
mouseWheelLock: true
}
).css('padding-top', '12px');
*/
})
</script>
</body>
</html>

View file

@ -0,0 +1,569 @@
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<meta charset="utf-8" />
<title>查看已处理处方列表 - 医院药品库存管理系统</title>
<meta name="description" content="查看已处理处方列表 - 医院药品库存管理系统" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0" />
<!-- bootstrap & fontawesome -->
<link rel="stylesheet" href="../assets/css/bootstrap.min.css" />
<link rel="stylesheet" href="../assets/font-awesome/4.5.0/css/font-awesome.min.css" />
<!-- page specific plugin styles -->
<!-- text fonts -->
<link rel="stylesheet" href="../assets/css/fonts.googleapis.com.css" />
<!-- ace styles -->
<link rel="stylesheet" href="../assets/css/ace.min.css" class="ace-main-stylesheet" id="main-ace-style" />
<!--[if lte IE 9]>
<link rel="stylesheet" href="../assets/css/ace-part2.min.css" class="ace-main-stylesheet" />
<![endif]-->
<link rel="stylesheet" href="../assets/css/ace-skins.min.css" />
<link rel="stylesheet" href="../assets/css/ace-rtl.min.css" />
<!--[if lte IE 9]>
<link rel="stylesheet" href="../assets/css/ace-ie.min.css" />
<![endif]-->
<!-- inline styles related to this page -->
<!-- ace settings handler -->
<script src="../assets/js/ace-extra.min.js"></script>
<!-- HTML5shiv and Respond.js for IE8 to support HTML5 elements and media queries -->
<!--[if lte IE 8]>
<script src="../assets/js/html5shiv.min.js"></script>
<script src="../assets/js/respond.min.js"></script>
<![endif]-->
</head>
<body class="no-skin">
<div id="navbar" class="navbar navbar-default ace-save-state">
<div class="navbar-container ace-save-state" id="navbar-container">
<button type="button" class="navbar-toggle menu-toggler pull-left" id="menu-toggler" data-target="#sidebar">
<span class="sr-only">Toggle sidebar</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<div class="navbar-header pull-left">
<a href="../nurse/index" class="navbar-brand">
<small>
<i class="fa fa-leaf"></i>
医院药品库存管理系统 DIMS
</small>
</a>
</div>
<div class="navbar-buttons navbar-header pull-right" role="navigation">
<ul class="nav ace-nav">
<li class="grey dropdown-modal">
<a data-toggle="dropdown" class="dropdown-toggle" href="#">
<i class="ace-icon fa fa-tasks"></i>
<span class="badge badge-grey">3</span>
</a>
<ul class="dropdown-menu-right dropdown-navbar dropdown-menu dropdown-caret dropdown-close">
<li class="dropdown-header">
<i class="ace-icon fa fa-check"></i>
统计信息
</li>
<li class="dropdown-content">
<ul class="dropdown-menu dropdown-navbar">
<li>
<a href="../nurse/query-solved-rx-list">
<div class="clearfix">
<span class="pull-left">已处理处方数目占比</span>
<span class="pull-right">
<fmt:formatNumber value="${solvedRxsNum / (solvedRxsNum + unsolvedRxsNum) * 100}" pattern="#.00"/>
%
</span>
</div>
<div class="progress progress-mini progress-striped active">
<div style="width:${solvedRxsNum / (solvedRxsNum + unsolvedRxsNum) * 100}%" class="progress-bar"></div>
</div>
</a>
</li>
<li>
<a href="../nurse/query-unsolved-rx-list">
<div class="clearfix">
<span class="pull-left">未处理处方数目占比</span>
<span class="pull-right progress-striped active">
<fmt:formatNumber value="${unsolvedRxsNum / (solvedRxsNum + unsolvedRxsNum) * 100}" pattern="#.00"/>
%
</span>
</div>
<div class="progress progress-mini">
<div style="width:${unsolvedRxsNum / (solvedRxsNum + unsolvedRxsNum) * 100}%" class="progress-bar progress-bar-warning"></div>
</div>
</a>
</li>
<li>
<a href="#">
<div class="clearfix">
<span class="pull-left">由我处理的处方数目占比</span>
<span class="pull-right">
<fmt:formatNumber value="${mySolvedRxsNum / solvedRxsNum * 100}" pattern="#.00"/>
%
</span>
</div>
<div class="progress progress-mini progress-striped active">
<div style="width:${mySolvedRxsNum / solvedRxsNum * 100}%" class="progress-bar progress-bar-success"></div>
</div>
</a>
</li>
</ul>
</li>
</ul>
</li>
<li class="light-blue dropdown-modal">
<a data-toggle="dropdown" href="#" class="dropdown-toggle">
<img class="nav-user-photo" src="../assets/images/avatars/${currentNurse.nsex ? 'Male' : 'Female'}Nurse.png" alt="头像" />
<span class="user-info">
<small>欢迎,</small>
${currentNurse.nname}
</span>
<i class="ace-icon fa fa-caret-down"></i>
</a>
<ul class="user-menu dropdown-menu-right dropdown-menu dropdown-yellow dropdown-caret dropdown-close">
<li>
<a href="../nurse/profile">
<i class="ace-icon fa fa-user"></i>
个人信息
</a>
</li>
<li class="divider"></li>
<li>
<a href="../logout">
<i class="ace-icon fa fa-power-off"></i>
登出
</a>
</li>
</ul>
</li>
</ul>
</div>
</div><!-- /.navbar-container -->
</div>
<div class="main-container ace-save-state" id="main-container">
<script type="text/javascript">
try{ace.settings.loadState('main-container')}catch(e){}
</script>
<div id="sidebar" class="sidebar responsive ace-save-state">
<script type="text/javascript">
try{ace.settings.loadState('sidebar')}catch(e){}
</script>
<div class="sidebar-shortcuts" id="sidebar-shortcuts">
<div class="sidebar-shortcuts-large" id="sidebar-shortcuts-large">
<button class="btn btn-success">
<i class="ace-icon fa fa-signal"></i>
</button>
<button class="btn btn-info">
<i class="ace-icon fa fa-pencil"></i>
</button>
<button class="btn btn-warning">
<i class="ace-icon fa fa-users"></i>
</button>
<button class="btn btn-danger">
<i class="ace-icon fa fa-cogs"></i>
</button>
</div>
<div class="sidebar-shortcuts-mini" id="sidebar-shortcuts-mini">
<span class="btn btn-success"></span>
<span class="btn btn-info"></span>
<span class="btn btn-warning"></span>
<span class="btn btn-danger"></span>
</div>
</div><!-- /.sidebar-shortcuts -->
<ul class="nav nav-list">
<li class="">
<a href="../nurse/welcome">
<i class="menu-icon fa fa-tachometer"></i>
<span class="menu-text"> 欢迎页面 </span>
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="../nurse/profile">
<i class="menu-icon fa fa-tag"></i>
<span class="menu-text"> 个人信息页面 </span>
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="../nurse/query-drug-list">
<i class="menu-icon fa fa-list"></i>
<span class="menu-text"> 查看库存药品列表 </span>
</a>
<b class="arrow"></b>
</li>
<li class="active open">
<a href="#" class="dropdown-toggle">
<i class="menu-icon fa fa-list-alt"></i>
<span class="menu-text"> 查看处方列表 </span>
<b class="arrow fa fa-angle-down"></b>
</a>
<b class="arrow"></b>
<ul class="submenu">
<li class="">
<a href="../nurse/query-unsolved-rx-list">
<i class="menu-icon fa fa-caret-right"></i>
查看未处理处方列表
</a>
<b class="arrow"></b>
</li>
<li class="active">
<a href="../nurse/query-solved-rx-list">
<i class="menu-icon fa fa-caret-right"></i>
查看已处理处方列表
</a>
<b class="arrow"></b>
</li>
</ul>
</li>
</ul><!-- /.nav-list -->
<div class="sidebar-toggle sidebar-collapse" id="sidebar-collapse">
<i id="sidebar-toggle-icon" class="ace-icon fa fa-angle-double-left ace-save-state" data-icon1="ace-icon fa fa-angle-double-left" data-icon2="ace-icon fa fa-angle-double-right"></i>
</div>
</div>
<div class="main-content">
<div class="main-content-inner">
<div class="breadcrumbs ace-save-state" id="breadcrumbs">
<ul class="breadcrumb">
<li>
<i class="ace-icon fa fa-home home-icon"></i>
<a href="../nurse/index">首页</a>
</li>
<li>
<a href="../nurse/query-unsolved-rx-list">查看处方列表</a>
</li>
<li class="active">查看已处理处方列表</li>
</ul><!-- /.breadcrumb -->
</div>
<div class="page-content">
<div class="page-header">
<h1>
查看已处理处方列表
<small>
<i class="ace-icon fa fa-angle-double-right"></i>
已处理处方列表
</small>
</h1>
</div><!-- /.page-header -->
<c:choose>
<c:when test="${echo != null}">
<div class="alert alert-info">
<button class="close" data-dismiss="alert">
<i class="ace-icon fa fa-times"></i>
</button>
<i class="ace-icon fa fa-hand-o-right"></i>
${echo}
</div>
</c:when>
</c:choose>
<div class="row">
<div class="col-xs-12">
<!-- PAGE CONTENT BEGINS -->
<div class="row">
<div class="col-xs-12">
<div class="clearfix">
<div class="pull-right tableTools-container"></div>
</div>
<div class="table-header">
查询结果
</div>
<!-- div.table-responsive -->
<!-- div.dataTables_borderWrap -->
<div>
<table id="dynamic-table" class="table table-striped table-bordered table-hover">
<thead>
<tr>
<th>处方编号</th>
<th>病人身份证号</th>
<th>开出医生编号</th>
<th>开出时间</th>
<th>处理护士编号</th>
<th>处理时间</th>
<th>操作</th>
</tr>
</thead>
<tbody>
<c:forEach items="${rxs}" var="rx">
<tr>
<td>
<a href="../nurse/query-specific-rx?Pno=${rx.pno}" title="查看该处方的具体明细">${rx.pno}</a>
</td>
<td>${rx.pid}</td>
<td>${rx.dno}</td>
<td>
<fmt:formatDate value="${rx.ptime}" pattern="yyyy 年 MM 月 dd 日 HH:mm:ss"/>
</td>
<td>
<a href="../nurse/query-specific-nurse?Nno=${rx.nno}" title="查看该护士的处理明细">${rx.nno}</a>
</td>
<td>
<fmt:formatDate value="${rx.htime}" pattern="yyyy 年 MM 月 dd 日 HH:mm:ss"/>
</td>
<td>
<div class="hidden-sm hidden-xs action-buttons">
<a class="blue" href="../nurse/query-specific-rx?Pno=${rx.pno}" title="查看该处方的具体明细">
<i class="ace-icon fa fa-search-plus bigger-130"></i>
</a>
</div>
<div class="hidden-md hidden-lg">
<div class="inline pos-rel">
<button class="btn btn-minier btn-yellow dropdown-toggle" data-toggle="dropdown" data-position="auto">
<i class="ace-icon fa fa-caret-down icon-only bigger-120"></i>
</button>
<ul class="dropdown-menu dropdown-only-icon dropdown-yellow dropdown-menu-right dropdown-caret dropdown-close">
<li>
<a href="../nurse/query-specific-rx?Pno=${rx.pno}" class="tooltip-info" data-rel="tooltip" title="查看该处方的具体明细">
<span class="blue">
<i class="ace-icon fa fa-search-plus bigger-120"></i>
</span>
</a>
</li>
</ul>
</div>
</div>
</td>
</tr>
</c:forEach>
</tbody>
</table>
</div>
</div>
</div>
<!-- PAGE CONTENT ENDS -->
</div><!-- /.col -->
</div><!-- /.row -->
</div><!-- /.page-content -->
</div>
</div><!-- /.main-content -->
<div class="footer">
<div class="footer-inner">
<div class="footer-content">
<span class="bigger-120">
<span class="blue bolder">医院药品库存管理系统</span>
DIMS &copy; 2019-2020
</span>
</div>
</div>
</div>
<a href="#" id="btn-scroll-up" class="btn-scroll-up btn btn-sm btn-inverse">
<i class="ace-icon fa fa-angle-double-up icon-only bigger-110"></i>
</a>
</div><!-- /.main-container -->
<!-- basic scripts -->
<!--[if !IE]> -->
<script src="../assets/js/jquery-2.1.4.min.js"></script>
<!-- <![endif]-->
<!--[if IE]>
<script src="../assets/js/jquery-1.11.3.min.js"></script>
<![endif]-->
<script type="text/javascript">
if('ontouchstart' in document.documentElement) document.write("<script src='../assets/js/jquery.mobile.custom.min.js'>"+"<"+"/script>");
</script>
<script src="../assets/js/bootstrap.min.js"></script>
<!-- page specific plugin scripts -->
<script src="../assets/js/jquery.dataTables.min.js"></script>
<script src="../assets/js/jquery.dataTables.bootstrap.min.js"></script>
<script src="../assets/js/dataTables.buttons.min.js"></script>
<script src="../assets/js/buttons.flash.min.js"></script>
<script src="../assets/js/buttons.html5.min.js"></script>
<script src="../assets/js/buttons.print.min.js"></script>
<script src="../assets/js/buttons.colVis.min.js"></script>
<script src="../assets/js/dataTables.select.min.js"></script>
<!-- ace scripts -->
<script src="../assets/js/ace-elements.min.js"></script>
<script src="../assets/js/ace.min.js"></script>
<!-- inline scripts related to this page -->
<script type="text/javascript">
jQuery(function($) {
//initiate dataTables plugin
var myTable =
$('#dynamic-table')
//.wrap("<div class='dataTables_borderWrap' />") //if you are applying horizontal scrolling (sScrollX)
.DataTable( {
bAutoWidth: false,
"aoColumns": [
null, null, null, null, null, null, { "bSortable": false }
],
"aaSorting": [],
"iDisplayLength": 5,
"aLengthMenu": [
[5, 10, 15, 20, 25, 30, 35, 40, 45, 50, -1],
["5 条", "10 条", "15 条", "20 条", "25 条", "30 条", "35 条", "40 条", "45 条", "50 条", "全部"]
],
"oLanguage": { // 自定义提示信息
"sLengthMenu": "每页显示 _MENU_ 记录",
"sZeroRecords": "抱歉,没有找到",
"sInfo": "从 _START_ 到 _END_ / 共 _TOTAL_ 条数据 ",
"sInfoEmpty": "没有数据",
"sInfoFiltered": "(从 _MAX_ 条数据中检索) ",
"sSearch": "检索",
"oPaginate": {
"sFirst": "首页",
"sPrevious": "前一页",
"sNext": "后一页",
"sLast": "尾页"
}
}
//"bProcessing": true,
//"bServerSide": true,
//"sAjaxSource": "http://127.0.0.1/table.php" ,
//,
//"sScrollY": "200px",
//"bPaginate": false,
//"sScrollX": "100%",
//"sScrollXInner": "120%",
//"bScrollCollapse": true,
//Note: if you are applying horizontal scrolling (sScrollX) on a ".table-bordered"
//you may want to wrap the table inside a "div.dataTables_borderWrap" element
//"iDisplayLength": 50
} );
$.fn.dataTable.Buttons.defaults.dom.container.className = 'dt-buttons btn-overlap btn-group btn-overlap';
new $.fn.dataTable.Buttons( myTable, {
buttons: [
{
"extend": "colvis",
"text": "<i class='fa fa-search bigger-110 blue'></i> <span class='hidden'>显示/隐藏列</span>",
"className": "btn btn-white btn-primary btn-bold",
columns: ':not(:first):not(:last)'
},
{
"extend": "copy",
"text": "<i class='fa fa-copy bigger-110 pink'></i> <span class='hidden'>复制到剪贴板</span>",
"className": "btn btn-white btn-primary btn-bold"
},
{
"extend": "csv",
"text": "<i class='fa fa-database bigger-110 orange'></i> <span class='hidden'>导出到 CSV 文件</span>",
"className": "btn btn-white btn-primary btn-bold"
},
/* {
"extend": "excel",
"text": "<i class='fa fa-file-excel-o bigger-110 green'></i> <span class='hidden'>导出到 Excel 文件</span>",
"className": "btn btn-white btn-primary btn-bold"
},
{
"extend": "pdf",
"text": "<i class='fa fa-file-pdf-o bigger-110 red'></i> <span class='hidden'>导出到 PDF 文件</span>",
"className": "btn btn-white btn-primary btn-bold"
}, */
{
"extend": "print",
"text": "<i class='fa fa-print bigger-110 grey'></i> <span class='hidden'>打印</span>",
"className": "btn btn-white btn-primary btn-bold",
autoPrint: false
}
]
} );
myTable.buttons().container().appendTo( $('.tableTools-container') );
//style the message box
var defaultCopyAction = myTable.button(1).action();
myTable.button(1).action(function (e, dt, button, config) {
defaultCopyAction(e, dt, button, config);
$('.dt-button-info').addClass('gritter-item-wrapper gritter-info gritter-center white');
});
var defaultColvisAction = myTable.button(0).action();
myTable.button(0).action(function (e, dt, button, config) {
defaultColvisAction(e, dt, button, config);
if($('.dt-button-collection > .dropdown-menu').length == 0) {
$('.dt-button-collection')
.wrapInner('<ul class="dropdown-menu dropdown-light dropdown-caret dropdown-caret" />')
.find('a').attr('href', '#').wrap("<li />")
}
$('.dt-button-collection').appendTo('.tableTools-container .dt-buttons')
});
////
setTimeout(function() {
$($('.tableTools-container')).find('a.dt-button').each(function() {
var div = $(this).find(' > div').first();
if(div.length == 1) div.tooltip({container: 'body', title: div.parent().text()});
else $(this).tooltip({container: 'body', title: $(this).text()});
});
}, 500);
myTable.on( 'select', function ( e, dt, type, index ) {
if ( type === 'row' ) {
$( myTable.row( index ).node() ).find('input:checkbox').prop('checked', true);
}
} );
myTable.on( 'deselect', function ( e, dt, type, index ) {
if ( type === 'row' ) {
$( myTable.row( index ).node() ).find('input:checkbox').prop('checked', false);
}
} );
/////////////////////////////////
//table checkboxes
$('th input[type=checkbox], td input[type=checkbox]').prop('checked', false);
//select/deselect all rows according to table header checkbox
$('#dynamic-table > thead > tr > th input[type=checkbox], #dynamic-table_wrapper input[type=checkbox]').eq(0).on('click', function(){
var th_checked = this.checked;//checkbox inside "TH" table header
$('#dynamic-table').find('tbody > tr').each(function(){
var row = this;
if(th_checked) myTable.row(row).select();
else myTable.row(row).deselect();
});
});
//select/deselect a row when the checkbox is checked/unchecked
$('#dynamic-table').on('click', 'td input[type=checkbox]', function(){
var row = $(this).closest('tr').get(0);
if(this.checked) myTable.row(row).deselect();
else myTable.row(row).select();
});
$(document).on('click', '#dynamic-table .dropdown-toggle', function(e) {
e.stopImmediatePropagation();
e.stopPropagation();
e.preventDefault();
});
//And for the first simple table, which doesn't have TableTools or dataTables
//select/deselect all rows according to table header checkbox
var active_class = 'active';
$('#simple-table > thead > tr > th input[type=checkbox]').eq(0).on('click', function(){
var th_checked = this.checked;//checkbox inside "TH" table header
$(this).closest('table').find('tbody > tr').each(function(){
var row = this;
if(th_checked) $(row).addClass(active_class).find('input[type=checkbox]').eq(0).prop('checked', true);
else $(row).removeClass(active_class).find('input[type=checkbox]').eq(0).prop('checked', false);
});
});
//select/deselect a row when the checkbox is checked/unchecked
$('#simple-table').on('click', 'td input[type=checkbox]', function(){
var $row = $(this).closest('tr');
if($row.is('.detail-row ')) return;
if(this.checked) $row.addClass(active_class);
else $row.removeClass(active_class);
});
/********************************/
//add tooltip for small view action buttons in dropdown menu
$('[data-rel="tooltip"]').tooltip({placement: tooltip_placement});
//tooltip placement on right or left
function tooltip_placement(context, source) {
var $source = $(source);
var $parent = $source.closest('table')
var off1 = $parent.offset();
var w1 = $parent.width();
var off2 = $source.offset();
//var w2 = $source.width();
if( parseInt(off2.left) < parseInt(off1.left) + parseInt(w1 / 2) ) return 'right';
return 'left';
}
/***************/
$('.show-details-btn').on('click', function(e) {
e.preventDefault();
$(this).closest('tr').next().toggleClass('open');
$(this).find(ace.vars['.icon']).toggleClass('fa-angle-double-down').toggleClass('fa-angle-double-up');
});
/***************/
/**
//add horizontal scrollbars to a simple table
$('#simple-table').css({'width':'2000px', 'max-width': 'none'}).wrap('<div style="width: 1000px;" />').parent().ace_scroll(
{
horizontal: true,
styleClass: 'scroll-top scroll-dark scroll-visible',//show the scrollbars on top(default is bottom)
size: 2000,
mouseWheelLock: true
}
).css('padding-top', '12px');
*/
})
</script>
</body>
</html>

View file

@ -0,0 +1,591 @@
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<meta charset="utf-8" />
<title>查看${specificNurse.nname}的处理明细 - 医院药品库存管理系统</title>
<meta name="description" content="查看${specificNurse.nname}的处理明细 - 医院药品库存管理系统" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0" />
<!-- bootstrap & fontawesome -->
<link rel="stylesheet" href="../assets/css/bootstrap.min.css" />
<link rel="stylesheet" href="../assets/font-awesome/4.5.0/css/font-awesome.min.css" />
<!-- page specific plugin styles -->
<!-- text fonts -->
<link rel="stylesheet" href="../assets/css/fonts.googleapis.com.css" />
<!-- ace styles -->
<link rel="stylesheet" href="../assets/css/ace.min.css" class="ace-main-stylesheet" id="main-ace-style" />
<!--[if lte IE 9]>
<link rel="stylesheet" href="../assets/css/ace-part2.min.css" class="ace-main-stylesheet" />
<![endif]-->
<link rel="stylesheet" href="../assets/css/ace-skins.min.css" />
<link rel="stylesheet" href="../assets/css/ace-rtl.min.css" />
<!--[if lte IE 9]>
<link rel="stylesheet" href="../assets/css/ace-ie.min.css" />
<![endif]-->
<!-- inline styles related to this page -->
<!-- ace settings handler -->
<script src="../assets/js/ace-extra.min.js"></script>
<!-- HTML5shiv and Respond.js for IE8 to support HTML5 elements and media queries -->
<!--[if lte IE 8]>
<script src="../assets/js/html5shiv.min.js"></script>
<script src="../assets/js/respond.min.js"></script>
<![endif]-->
</head>
<body class="no-skin">
<div id="navbar" class="navbar navbar-default ace-save-state">
<div class="navbar-container ace-save-state" id="navbar-container">
<button type="button" class="navbar-toggle menu-toggler pull-left" id="menu-toggler" data-target="#sidebar">
<span class="sr-only">Toggle sidebar</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<div class="navbar-header pull-left">
<a href="../admin/index" class="navbar-brand">
<small>
<i class="fa fa-leaf"></i>
医院药品库存管理系统 DIMS
</small>
</a>
</div>
<div class="navbar-buttons navbar-header pull-right" role="navigation">
<ul class="nav ace-nav">
<li class="grey dropdown-modal">
<a data-toggle="dropdown" class="dropdown-toggle" href="#">
<i class="ace-icon fa fa-tasks"></i>
<span class="badge badge-grey">3</span>
</a>
<ul class="dropdown-menu-right dropdown-navbar dropdown-menu dropdown-caret dropdown-close">
<li class="dropdown-header">
<i class="ace-icon fa fa-check"></i>
统计信息
</li>
<li class="dropdown-content">
<ul class="dropdown-menu dropdown-navbar">
<li>
<a href="../nurse/query-solved-rx-list">
<div class="clearfix">
<span class="pull-left">已处理处方数目占比</span>
<span class="pull-right">
<fmt:formatNumber value="${solvedRxsNum / (solvedRxsNum + unsolvedRxsNum) * 100}" pattern="#.00"/>
%
</span>
</div>
<div class="progress progress-mini progress-striped active">
<div style="width:${solvedRxsNum / (solvedRxsNum + unsolvedRxsNum) * 100}%" class="progress-bar"></div>
</div>
</a>
</li>
<li>
<a href="../nurse/query-unsolved-rx-list">
<div class="clearfix">
<span class="pull-left">未处理处方数目占比</span>
<span class="pull-right">
<fmt:formatNumber value="${unsolvedRxsNum / (solvedRxsNum + unsolvedRxsNum) * 100}" pattern="#.00"/>
%
</span>
</div>
<div class="progress progress-mini progress-striped active">
<div style="width:${unsolvedRxsNum / (solvedRxsNum + unsolvedRxsNum) * 100}%" class="progress-bar progress-bar-warning"></div>
</div>
</a>
</li>
<li>
<a href="#">
<div class="clearfix">
<span class="pull-left">由我处理的处方数目占比</span>
<span class="pull-right">
<fmt:formatNumber value="${mySolvedRxsNum / solvedRxsNum * 100}" pattern="#.00"/>
%
</span>
</div>
<div class="progress progress-mini progress-striped active">
<div style="width:${mySolvedRxsNum / solvedRxsNum * 100}%" class="progress-bar progress-bar-success"></div>
</div>
</a>
</li>
</ul>
</li>
</ul>
</li>
<li class="light-blue dropdown-modal">
<a data-toggle="dropdown" href="#" class="dropdown-toggle">
<img class="nav-user-photo" src="../assets/images/avatars/${currentNurse.nsex ? 'Male' : 'Female'}Nurse.png" alt="头像" />
<span class="user-info">
<small>欢迎,</small>
${currentNurse.nname}
</span>
<i class="ace-icon fa fa-caret-down"></i>
</a>
<ul class="user-menu dropdown-menu-right dropdown-menu dropdown-yellow dropdown-caret dropdown-close">
<li>
<a href="../nurse/profile">
<i class="ace-icon fa fa-user"></i>
个人信息
</a>
</li>
<li class="divider"></li>
<li>
<a href="../logout">
<i class="ace-icon fa fa-power-off"></i>
登出
</a>
</li>
</ul>
</li>
</ul>
</div>
</div><!-- /.navbar-container -->
</div>
<div class="main-container ace-save-state" id="main-container">
<script type="text/javascript">
try{ace.settings.loadState('main-container')}catch(e){}
</script>
<div id="sidebar" class="sidebar responsive ace-save-state">
<script type="text/javascript">
try{ace.settings.loadState('sidebar')}catch(e){}
</script>
<div class="sidebar-shortcuts" id="sidebar-shortcuts">
<div class="sidebar-shortcuts-large" id="sidebar-shortcuts-large">
<button class="btn btn-success">
<i class="ace-icon fa fa-signal"></i>
</button>
<button class="btn btn-info">
<i class="ace-icon fa fa-pencil"></i>
</button>
<button class="btn btn-warning">
<i class="ace-icon fa fa-users"></i>
</button>
<button class="btn btn-danger">
<i class="ace-icon fa fa-cogs"></i>
</button>
</div>
<div class="sidebar-shortcuts-mini" id="sidebar-shortcuts-mini">
<span class="btn btn-success"></span>
<span class="btn btn-info"></span>
<span class="btn btn-warning"></span>
<span class="btn btn-danger"></span>
</div>
</div><!-- /.sidebar-shortcuts -->
<ul class="nav nav-list">
<li class="">
<a href="../nurse/welcome">
<i class="menu-icon fa fa-tachometer"></i>
<span class="menu-text"> 欢迎页面 </span>
</a>
<b class="arrow"></b>
</li>
<li class="active">
<a href="../nurse/profile">
<i class="menu-icon fa fa-tag"></i>
<span class="menu-text"> 个人信息页面 </span>
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="../nurse/query-drug-list">
<i class="menu-icon fa fa-list"></i>
<span class="menu-text"> 查看库存药品列表 </span>
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="#" class="dropdown-toggle">
<i class="menu-icon fa fa-list-alt"></i>
<span class="menu-text"> 查看处方列表 </span>
<b class="arrow fa fa-angle-down"></b>
</a>
<b class="arrow"></b>
<ul class="submenu">
<li class="">
<a href="../nurse/query-unsolved-rx-list">
<i class="menu-icon fa fa-caret-right"></i>
查看未处理处方列表
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="../nurse/query-solved-rx-list">
<i class="menu-icon fa fa-caret-right"></i>
查看已处理处方列表
</a>
<b class="arrow"></b>
</li>
</ul>
</li>
</ul><!-- /.nav-list -->
<div class="sidebar-toggle sidebar-collapse" id="sidebar-collapse">
<i id="sidebar-toggle-icon" class="ace-icon fa fa-angle-double-left ace-save-state" data-icon1="ace-icon fa fa-angle-double-left" data-icon2="ace-icon fa fa-angle-double-right"></i>
</div>
</div>
<div class="main-content">
<div class="main-content-inner">
<div class="breadcrumbs ace-save-state" id="breadcrumbs">
<ul class="breadcrumb">
<li>
<i class="ace-icon fa fa-home home-icon"></i>
<a href="../admin/index">首页</a>
</li>
<li class="active">查看${specificNurse.nname}的处理明细</li>
</ul><!-- /.breadcrumb -->
</div>
<div class="page-content">
<div class="page-header">
<h1>
查看${specificNurse.nname}的处理明细
<small>
<i class="ace-icon fa fa-angle-double-right"></i>
${specificNurse.nname}的相关信息
</small>
</h1>
</div><!-- /.page-header -->
<c:choose>
<c:when test="${echo != null}">
<div class="alert alert-info">
<button class="close" data-dismiss="alert">
<i class="ace-icon fa fa-times"></i>
</button>
<i class="ace-icon fa fa-hand-o-right"></i>
${echo}
</div>
</c:when>
</c:choose>
<div class="row">
<div class="col-xs-12">
<!-- PAGE CONTENT BEGINS -->
<form class="form-horizontal" role="form" method="post" action="../admin/submit-storage-form">
<div class="form-group">
<label class="col-sm-4 control-label no-padding-right" for="form-field-1"> 护士编号 </label>
<div class="col-sm-4">
<input class="form-control" id="form-field-1" type="text" readonly="readonly" placeholder="护士编号" name="Nno" value="${specificNurse.nno}">
</div>
</div>
<div class="form-group">
<label class="col-sm-4 control-label no-padding-right" for="form-field-2"> 护士姓名 </label>
<div class="col-sm-4">
<input class="form-control" id="form-field-2" type="text" readonly="readonly" placeholder="护士姓名" name="Nname" value="${specificNurse.nname}">
</div>
</div>
<div class="form-group">
<label class="col-sm-4 control-label no-padding-right" for="form-field-3"> 护士性别 </label>
<div class="col-sm-4">
<input class="form-control" id="form-field-3" type="text" readonly="readonly" placeholder="护士性别" name="Nsex" value="${specificNurse.nsex ? '男' : '女'}">
</div>
</div>
<div class="form-group">
<label class="col-sm-4 control-label no-padding-right" for="form-field-4"> 护士年龄 </label>
<div class="col-sm-4">
<input class="form-control" id="form-field-4" type="text" readonly="readonly" placeholder="护士年龄" name="Nage" value="${specificNurse.nage}">
</div>
</div>
</form>
<h3 class="header smaller lighter blue">
查看由${specificNurse.nname}处理的所有处方
</h3>
<div class="row">
<div class="col-xs-12">
<div class="clearfix">
<div class="pull-right tableTools-container"></div>
</div>
<div class="table-header">
查询结果
</div>
<!-- div.table-responsive -->
<!-- div.dataTables_borderWrap -->
<div>
<table id="dynamic-table" class="table table-striped table-bordered table-hover">
<thead>
<tr>
<th>处方编号</th>
<th>病人身份证号</th>
<th>开出医生编号</th>
<th>开出时间</th>
<th>处理时间</th>
<th>操作</th>
</tr>
</thead>
<tbody>
<c:forEach items="${specificNurse.allRxs}" var="rx">
<tr>
<td>
<a href="../nurse/query-specific-rx?Pno=${rx.pno}" title="查看该处方的具体明细">${rx.pno}</a>
</td>
<td>${rx.pid}</td>
<td>${rx.dno}</td>
<td>
<fmt:formatDate value="${rx.ptime}" pattern="yyyy 年 MM 月 dd 日 HH:mm:ss"/>
</td>
<td>
<fmt:formatDate value="${rx.htime}" pattern="yyyy 年 MM 月 dd 日 HH:mm:ss"/>
</td>
<td>
<div class="hidden-sm hidden-xs action-buttons">
<a class="blue" href="../nurse/query-specific-rx?Pno=${rx.pno}" title="查看该处方的具体明细">
<i class="ace-icon fa fa-search-plus bigger-130"></i>
</a>
</div>
<div class="hidden-md hidden-lg">
<div class="inline pos-rel">
<button class="btn btn-minier btn-yellow dropdown-toggle" data-toggle="dropdown" data-position="auto">
<i class="ace-icon fa fa-caret-down icon-only bigger-120"></i>
</button>
<ul class="dropdown-menu dropdown-only-icon dropdown-yellow dropdown-menu-right dropdown-caret dropdown-close">
<li>
<a href="../nurse/query-specific-rx?Pno=${rx.pno}" class="tooltip-info" data-rel="tooltip" title="查看该处方的具体明细">
<span class="blue">
<i class="ace-icon fa fa-search-plus bigger-120"></i>
</span>
</a>
</li>
</ul>
</div>
</div>
</td>
</tr>
</c:forEach>
</tbody>
</table>
</div>
</div>
</div>
<!-- PAGE CONTENT ENDS -->
</div><!-- /.col -->
</div><!-- /.row -->
</div><!-- /.page-content -->
</div>
</div><!-- /.main-content -->
<div class="footer">
<div class="footer-inner">
<div class="footer-content">
<span class="bigger-120">
<span class="blue bolder">医院药品库存管理系统</span>
DIMS &copy; 2019-2020
</span>
</div>
</div>
</div>
<a href="#" id="btn-scroll-up" class="btn-scroll-up btn btn-sm btn-inverse">
<i class="ace-icon fa fa-angle-double-up icon-only bigger-110"></i>
</a>
</div><!-- /.main-container -->
<!-- basic scripts -->
<!--[if !IE]> -->
<script src="../assets/js/jquery-2.1.4.min.js"></script>
<!-- <![endif]-->
<!--[if IE]>
<script src="../assets/js/jquery-1.11.3.min.js"></script>
<![endif]-->
<script type="text/javascript">
if('ontouchstart' in document.documentElement) document.write("<script src='../assets/js/jquery.mobile.custom.min.js'>"+"<"+"/script>");
</script>
<script src="../assets/js/bootstrap.min.js"></script>
<!-- page specific plugin scripts -->
<script src="../assets/js/jquery.dataTables.min.js"></script>
<script src="../assets/js/jquery.dataTables.bootstrap.min.js"></script>
<script src="../assets/js/dataTables.buttons.min.js"></script>
<script src="../assets/js/buttons.flash.min.js"></script>
<script src="../assets/js/buttons.html5.min.js"></script>
<script src="../assets/js/buttons.print.min.js"></script>
<script src="../assets/js/buttons.colVis.min.js"></script>
<script src="../assets/js/dataTables.select.min.js"></script>
<!-- ace scripts -->
<script src="../assets/js/ace-elements.min.js"></script>
<script src="../assets/js/ace.min.js"></script>
<!-- inline scripts related to this page -->
<script type="text/javascript">
jQuery(function($) {
//initiate dataTables plugin
var myTable =
$('#dynamic-table')
//.wrap("<div class='dataTables_borderWrap' />") //if you are applying horizontal scrolling (sScrollX)
.DataTable( {
bAutoWidth: false,
"aoColumns": [
null, null, null, null, null, { "bSortable": false }
],
"aaSorting": [],
"iDisplayLength": 5,
"aLengthMenu": [
[5, 10, 15, 20, 25, 30, 35, 40, 45, 50, -1],
["5 条", "10 条", "15 条", "20 条", "25 条", "30 条", "35 条", "40 条", "45 条", "50 条", "全部"]
],
"oLanguage": { // 自定义提示信息
"sLengthMenu": "每页显示 _MENU_ 记录",
"sZeroRecords": "抱歉,没有找到",
"sInfo": "从 _START_ 到 _END_ / 共 _TOTAL_ 条数据 ",
"sInfoEmpty": "没有数据",
"sInfoFiltered": "(从 _MAX_ 条数据中检索) ",
"sSearch": "检索",
"oPaginate": {
"sFirst": "首页",
"sPrevious": "前一页",
"sNext": "后一页",
"sLast": "尾页"
}
}
//"bProcessing": true,
//"bServerSide": true,
//"sAjaxSource": "http://127.0.0.1/table.php" ,
//,
//"sScrollY": "200px",
//"bPaginate": false,
//"sScrollX": "100%",
//"sScrollXInner": "120%",
//"bScrollCollapse": true,
//Note: if you are applying horizontal scrolling (sScrollX) on a ".table-bordered"
//you may want to wrap the table inside a "div.dataTables_borderWrap" element
//"iDisplayLength": 50
} );
$.fn.dataTable.Buttons.defaults.dom.container.className = 'dt-buttons btn-overlap btn-group btn-overlap';
new $.fn.dataTable.Buttons( myTable, {
buttons: [
{
"extend": "colvis",
"text": "<i class='fa fa-search bigger-110 blue'></i> <span class='hidden'>显示/隐藏列</span>",
"className": "btn btn-white btn-primary btn-bold",
columns: ':not(:first):not(:last)'
},
{
"extend": "copy",
"text": "<i class='fa fa-copy bigger-110 pink'></i> <span class='hidden'>复制到剪贴板</span>",
"className": "btn btn-white btn-primary btn-bold"
},
{
"extend": "csv",
"text": "<i class='fa fa-database bigger-110 orange'></i> <span class='hidden'>导出到 CSV 文件</span>",
"className": "btn btn-white btn-primary btn-bold"
},
/* {
"extend": "excel",
"text": "<i class='fa fa-file-excel-o bigger-110 green'></i> <span class='hidden'>导出到 Excel 文件</span>",
"className": "btn btn-white btn-primary btn-bold"
},
{
"extend": "pdf",
"text": "<i class='fa fa-file-pdf-o bigger-110 red'></i> <span class='hidden'>导出到 PDF 文件</span>",
"className": "btn btn-white btn-primary btn-bold"
}, */
{
"extend": "print",
"text": "<i class='fa fa-print bigger-110 grey'></i> <span class='hidden'>打印</span>",
"className": "btn btn-white btn-primary btn-bold",
autoPrint: false
}
]
} );
myTable.buttons().container().appendTo( $('.tableTools-container') );
//style the message box
var defaultCopyAction = myTable.button(1).action();
myTable.button(1).action(function (e, dt, button, config) {
defaultCopyAction(e, dt, button, config);
$('.dt-button-info').addClass('gritter-item-wrapper gritter-info gritter-center white');
});
var defaultColvisAction = myTable.button(0).action();
myTable.button(0).action(function (e, dt, button, config) {
defaultColvisAction(e, dt, button, config);
if($('.dt-button-collection > .dropdown-menu').length == 0) {
$('.dt-button-collection')
.wrapInner('<ul class="dropdown-menu dropdown-light dropdown-caret dropdown-caret" />')
.find('a').attr('href', '#').wrap("<li />")
}
$('.dt-button-collection').appendTo('.tableTools-container .dt-buttons')
});
////
setTimeout(function() {
$($('.tableTools-container')).find('a.dt-button').each(function() {
var div = $(this).find(' > div').first();
if(div.length == 1) div.tooltip({container: 'body', title: div.parent().text()});
else $(this).tooltip({container: 'body', title: $(this).text()});
});
}, 500);
myTable.on( 'select', function ( e, dt, type, index ) {
if ( type === 'row' ) {
$( myTable.row( index ).node() ).find('input:checkbox').prop('checked', true);
}
} );
myTable.on( 'deselect', function ( e, dt, type, index ) {
if ( type === 'row' ) {
$( myTable.row( index ).node() ).find('input:checkbox').prop('checked', false);
}
} );
/////////////////////////////////
//table checkboxes
$('th input[type=checkbox], td input[type=checkbox]').prop('checked', false);
//select/deselect all rows according to table header checkbox
$('#dynamic-table > thead > tr > th input[type=checkbox], #dynamic-table_wrapper input[type=checkbox]').eq(0).on('click', function(){
var th_checked = this.checked;//checkbox inside "TH" table header
$('#dynamic-table').find('tbody > tr').each(function(){
var row = this;
if(th_checked) myTable.row(row).select();
else myTable.row(row).deselect();
});
});
//select/deselect a row when the checkbox is checked/unchecked
$('#dynamic-table').on('click', 'td input[type=checkbox]', function(){
var row = $(this).closest('tr').get(0);
if(this.checked) myTable.row(row).deselect();
else myTable.row(row).select();
});
$(document).on('click', '#dynamic-table .dropdown-toggle', function(e) {
e.stopImmediatePropagation();
e.stopPropagation();
e.preventDefault();
});
//And for the first simple table, which doesn't have TableTools or dataTables
//select/deselect all rows according to table header checkbox
var active_class = 'active';
$('#simple-table > thead > tr > th input[type=checkbox]').eq(0).on('click', function(){
var th_checked = this.checked;//checkbox inside "TH" table header
$(this).closest('table').find('tbody > tr').each(function(){
var row = this;
if(th_checked) $(row).addClass(active_class).find('input[type=checkbox]').eq(0).prop('checked', true);
else $(row).removeClass(active_class).find('input[type=checkbox]').eq(0).prop('checked', false);
});
});
//select/deselect a row when the checkbox is checked/unchecked
$('#simple-table').on('click', 'td input[type=checkbox]', function(){
var $row = $(this).closest('tr');
if($row.is('.detail-row ')) return;
if(this.checked) $row.addClass(active_class);
else $row.removeClass(active_class);
});
/********************************/
//add tooltip for small view action buttons in dropdown menu
$('[data-rel="tooltip"]').tooltip({placement: tooltip_placement});
//tooltip placement on right or left
function tooltip_placement(context, source) {
var $source = $(source);
var $parent = $source.closest('table')
var off1 = $parent.offset();
var w1 = $parent.width();
var off2 = $source.offset();
//var w2 = $source.width();
if( parseInt(off2.left) < parseInt(off1.left) + parseInt(w1 / 2) ) return 'right';
return 'left';
}
/***************/
$('.show-details-btn').on('click', function(e) {
e.preventDefault();
$(this).closest('tr').next().toggleClass('open');
$(this).find(ace.vars['.icon']).toggleClass('fa-angle-double-down').toggleClass('fa-angle-double-up');
});
/***************/
/**
//add horizontal scrollbars to a simple table
$('#simple-table').css({'width':'2000px', 'max-width': 'none'}).wrap('<div style="width: 1000px;" />').parent().ace_scroll(
{
horizontal: true,
styleClass: 'scroll-top scroll-dark scroll-visible',//show the scrollbars on top(default is bottom)
size: 2000,
mouseWheelLock: true
}
).css('padding-top', '12px');
*/
})
</script>
</body>
</html>

View file

@ -0,0 +1,801 @@
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<meta charset="utf-8" />
<title>查看 ${rx.pno} 号处方的具体明细 - 医院药品库存管理系统</title>
<meta name="description" content="查看 ${rx.pno} 号处方的具体明细 - 医院药品库存管理系统" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0" />
<!-- bootstrap & fontawesome -->
<link rel="stylesheet" href="../assets/css/bootstrap.min.css" />
<link rel="stylesheet" href="../assets/font-awesome/4.5.0/css/font-awesome.min.css" />
<!-- page specific plugin styles -->
<link rel="stylesheet" href="../assets/css/jquery-ui.custom.min.css" />
<link rel="stylesheet" href="../assets/css/chosen.min.css" />
<link rel="stylesheet" href="../assets/css/bootstrap-datepicker3.min.css" />
<link rel="stylesheet" href="../assets/css/bootstrap-timepicker.min.css" />
<link rel="stylesheet" href="../assets/css/daterangepicker.min.css" />
<link rel="stylesheet" href="../assets/css/bootstrap-datetimepicker.min.css" />
<link rel="stylesheet" href="../assets/css/bootstrap-colorpicker.min.css" />
<!-- text fonts -->
<link rel="stylesheet" href="../assets/css/fonts.googleapis.com.css" />
<!-- ace styles -->
<link rel="stylesheet" href="../assets/css/ace.min.css" class="ace-main-stylesheet" id="main-ace-style" />
<!--[if lte IE 9]>
<link rel="stylesheet" href="../assets/css/ace-part2.min.css" class="ace-main-stylesheet" />
<![endif]-->
<link rel="stylesheet" href="../assets/css/ace-skins.min.css" />
<link rel="stylesheet" href="../assets/css/ace-rtl.min.css" />
<!--[if lte IE 9]>
<link rel="stylesheet" href="../assets/css/ace-ie.min.css" />
<![endif]-->
<!-- inline styles related to this page -->
<!-- ace settings handler -->
<script src="../assets/js/ace-extra.min.js"></script>
<!-- HTML5shiv and Respond.js for IE8 to support HTML5 elements and media queries -->
<!--[if lte IE 8]>
<script src="../assets/js/html5shiv.min.js"></script>
<script src="../assets/js/respond.min.js"></script>
<![endif]-->
</head>
<body class="no-skin">
<div id="navbar" class="navbar navbar-default ace-save-state">
<div class="navbar-container ace-save-state" id="navbar-container">
<button type="button" class="navbar-toggle menu-toggler pull-left" id="menu-toggler" data-target="#sidebar">
<span class="sr-only">Toggle sidebar</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<div class="navbar-header pull-left">
<a href="index.html" class="navbar-brand">
<small>
<i class="fa fa-leaf"></i>
医院药品库存管理系统 DIMS
</small>
</a>
</div>
<div class="navbar-buttons navbar-header pull-right" role="navigation">
<ul class="nav ace-nav">
<li class="grey dropdown-modal">
<a data-toggle="dropdown" class="dropdown-toggle" href="#">
<i class="ace-icon fa fa-tasks"></i>
<span class="badge badge-grey">3</span>
</a>
<ul class="dropdown-menu-right dropdown-navbar dropdown-menu dropdown-caret dropdown-close">
<li class="dropdown-header">
<i class="ace-icon fa fa-check"></i>
统计信息
</li>
<li class="dropdown-content">
<ul class="dropdown-menu dropdown-navbar">
<li>
<a href="../nurse/query-solved-rx-list">
<div class="clearfix">
<span class="pull-left">已处理处方数目占比</span>
<span class="pull-right">
<fmt:formatNumber value="${solvedRxsNum / (solvedRxsNum + unsolvedRxsNum) * 100}" pattern="#.00"/>
%
</span>
</div>
<div class="progress progress-mini progress-striped active">
<div style="width:${solvedRxsNum / (solvedRxsNum + unsolvedRxsNum) * 100}%" class="progress-bar"></div>
</div>
</a>
</li>
<li>
<a href="../nurse/query-unsolved-rx-list">
<div class="clearfix">
<span class="pull-left">未处理处方数目占比</span>
<span class="pull-right">
<fmt:formatNumber value="${unsolvedRxsNum / (solvedRxsNum + unsolvedRxsNum) * 100}" pattern="#.00"/>
%
</span>
</div>
<div class="progress progress-mini progress-striped active">
<div style="width:${unsolvedRxsNum / (solvedRxsNum + unsolvedRxsNum) * 100}%" class="progress-bar progress-bar-warning"></div>
</div>
</a>
</li>
<li>
<a href="#">
<div class="clearfix">
<span class="pull-left">由我处理的处方数目占比</span>
<span class="pull-right">
<fmt:formatNumber value="${mySolvedRxsNum / solvedRxsNum * 100}" pattern="#.00"/>
%
</span>
</div>
<div class="progress progress-mini progress-striped active">
<div style="width:${mySolvedRxsNum / solvedRxsNum * 100}%" class="progress-bar progress-bar-success"></div>
</div>
</a>
</li>
</ul>
</li>
</ul>
</li>
<li class="light-blue dropdown-modal">
<a data-toggle="dropdown" href="#" class="dropdown-toggle">
<img class="nav-user-photo" src="../assets/images/avatars/${currentNurse.nsex ? 'Male' : 'Female'}Nurse.png" alt="头像" />
<span class="user-info">
<small>欢迎,</small>
${currentNurse.nname}
</span>
<i class="ace-icon fa fa-caret-down"></i>
</a>
<ul class="user-menu dropdown-menu-right dropdown-menu dropdown-yellow dropdown-caret dropdown-close">
<li>
<a href="../nurse/profile">
<i class="ace-icon fa fa-user"></i>
个人信息
</a>
</li>
<li class="divider"></li>
<li>
<a href="../logout">
<i class="ace-icon fa fa-power-off"></i>
登出
</a>
</li>
</ul>
</li>
</ul>
</div>
</div><!-- /.navbar-container -->
</div>
<div class="main-container ace-save-state" id="main-container">
<script type="text/javascript">
try{ace.settings.loadState('main-container')}catch(e){}
</script>
<div id="sidebar" class="sidebar responsive ace-save-state">
<script type="text/javascript">
try{ace.settings.loadState('sidebar')}catch(e){}
</script>
<div class="sidebar-shortcuts" id="sidebar-shortcuts">
<div class="sidebar-shortcuts-large" id="sidebar-shortcuts-large">
<button class="btn btn-success">
<i class="ace-icon fa fa-signal"></i>
</button>
<button class="btn btn-info">
<i class="ace-icon fa fa-pencil"></i>
</button>
<button class="btn btn-warning">
<i class="ace-icon fa fa-users"></i>
</button>
<button class="btn btn-danger">
<i class="ace-icon fa fa-cogs"></i>
</button>
</div>
<div class="sidebar-shortcuts-mini" id="sidebar-shortcuts-mini">
<span class="btn btn-success"></span>
<span class="btn btn-info"></span>
<span class="btn btn-warning"></span>
<span class="btn btn-danger"></span>
</div>
</div><!-- /.sidebar-shortcuts -->
<ul class="nav nav-list">
<li class="">
<a href="../nurse/welcome">
<i class="menu-icon fa fa-tachometer"></i>
<span class="menu-text"> 欢迎页面 </span>
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="../nurse/profile">
<i class="menu-icon fa fa-tag"></i>
<span class="menu-text"> 个人信息页面 </span>
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="../nurse/query-drug-list">
<i class="menu-icon fa fa-list"></i>
<span class="menu-text"> 查看库存药品列表 </span>
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="#" class="dropdown-toggle">
<i class="menu-icon fa fa-list-alt"></i>
<span class="menu-text"> 查看处方列表 </span>
<b class="arrow fa fa-angle-down"></b>
</a>
<b class="arrow"></b>
<ul class="submenu">
<li class="">
<a href="../nurse/query-unsolved-rx-list">
<i class="menu-icon fa fa-caret-right"></i>
查看未处理处方列表
</a>
<b class="arrow"></b>
</li>
<li class="">
<a href="../nurse/query-solved-rx-list">
<i class="menu-icon fa fa-caret-right"></i>
查看已处理处方列表
</a>
<b class="arrow"></b>
</li>
</ul>
</li>
</ul><!-- /.nav-list -->
<div class="sidebar-toggle sidebar-collapse" id="sidebar-collapse">
<i id="sidebar-toggle-icon" class="ace-icon fa fa-angle-double-left ace-save-state" data-icon1="ace-icon fa fa-angle-double-left" data-icon2="ace-icon fa fa-angle-double-right"></i>
</div>
</div>
<div class="main-content">
<div class="main-content-inner">
<div class="breadcrumbs ace-save-state" id="breadcrumbs">
<ul class="breadcrumb">
<li>
<i class="ace-icon fa fa-home home-icon"></i>
<a href="../nurse/index">首页</a>
</li>
<li class="active">查看 ${rx.pno} 号处方的具体明细</li>
</ul><!-- /.breadcrumb -->
</div>
<div class="page-content">
<div class="page-header">
<h1>查看 ${rx.pno} 号处方的具体明细</h1>
</div><!-- /.page-header -->
<c:choose>
<c:when test="${echo != null}">
<div class="alert alert-info">
<button class="close" data-dismiss="alert">
<i class="ace-icon fa fa-times"></i>
</button>
<i class="ace-icon fa fa-hand-o-right"></i>
${echo}
</div>
</c:when>
</c:choose>
<div class="row">
<div class="col-xs-12">
<!-- PAGE CONTENT BEGINS -->
<form class="form-horizontal" role="form">
<div class="form-group">
<label class="col-sm-3 control-label no-padding-right" for="form-field-1"> 处方编号 </label>
<div class="col-sm-4">
<input class="form-control" id="form-field-1" type="text" readonly="readonly" placeholder="处方编号" name="Pno" value="${rx.pno}" required="required" />
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label no-padding-right" for="form-field-2"> 病人身份证号码 </label>
<div class="col-sm-4">
<input class="form-control" id="form-field-2" type="text" readonly="readonly" placeholder="病人身份证号码" name="Pid" value="${rx.pid}" required="required" />
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label no-padding-right" for="form-field-3"> 开出医生编号 </label>
<div class="col-sm-4">
<input class="form-control" id="form-field-3" type="text" readonly="readonly" placeholder="开出医生编号" name="Dno" value="${rx.dno}" required="required" />
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label no-padding-right" for="id-date-picker-1"> 处方开出日期 </label>
<div class="col-sm-4">
<div class="input-group">
<input class="form-control" id="id-date-picker-1" type="text" readonly="readonly" placeholder="处方开出日期" name="tempPdate" value="<fmt:formatDate value="${rx.ptime}" pattern="yyyy 年 MM 月 dd 日"/>" required="required" />
<span class="input-group-addon">
<i class="fa fa-calendar bigger-110"></i>
</span>
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label no-padding-right" for="form-field-5"> 处方开出时间 </label>
<div class="col-sm-4">
<div class="input-group">
<input class="form-control" id="form-field-5" type="text" readonly="readonly" placeholder="处方开出时间" name="tempPtime" value="<fmt:formatDate value="${rx.ptime}" pattern="HH:mm:ss"/>" required="required" />
<span class="input-group-addon">
<i class="fa fa-clock-o bigger-110"></i>
</span>
</div>
</div>
</div>
<c:choose>
<c:when test="${rx.pstate}">
<div class="form-group">
<label class="col-sm-3 control-label no-padding-right" for="form-field-6"> 处理护士编号 </label>
<div class="col-sm-4">
<input class="form-control" id="form-field-6" type="text" readonly="readonly" placeholder="处理护士编号" name="Nno" value="${rx.nno}" required="required" />
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label no-padding-right" for="id-date-picker-2"> 处方处理日期 </label>
<div class="col-sm-4">
<div class="input-group">
<input class="form-control" id="id-date-picker-2" type="text" readonly="readonly" placeholder="处方处理日期" name="tempHdate" value="<fmt:formatDate value="${rx.htime}" pattern="yyyy 年 MM 月 dd 日"/>" required="required" />
<span class="input-group-addon">
<i class="fa fa-calendar bigger-110"></i>
</span>
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label no-padding-right" for="form-field-8"> 处方处理时间 </label>
<div class="col-sm-4">
<div class="input-group">
<input class="form-control" id="form-field-8" type="text" readonly="readonly" placeholder="处方处理时间" name="tempHtime" value="<fmt:formatDate value="${rx.htime}" pattern="HH:mm:ss"/>" required="required" />
<span class="input-group-addon">
<i class="fa fa-clock-o bigger-110"></i>
</span>
</div>
</div>
</div>
</c:when>
</c:choose>
<div class="form-group">
<label class="col-sm-3 control-label no-padding-right" for="form-field-9"> 处方状态 </label>
<div class="col-sm-4">
<c:choose>
<c:when test="${rx.pstate}">
<span class="label label-sm label-success arrowed-in-right arrowed">
<i class="ace-icon fa fa-check-square-o bigger-110"></i>
已处理
</span>
</c:when>
<c:otherwise>
<span class="label label-sm label-warning arrowed-in-right arrowed">
<i class="ace-icon fa fa-square-o bigger-110"></i>
未处理
</span>
</c:otherwise>
</c:choose>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label no-padding-right" for="form-field-10"> 处方包含的药品列表 </label>
<div class="col-sm-4">
<c:if test="${rx.pstate == false}">
<h5 class="pink">
<i class="ace-icon fa fa-hand-o-right green"></i>
<a href="../nurse/handle-rx-form?Pno=${rx.pno}" role="button" class="green" data-toggle="modal"> 处理该处方 </a>
</h5>
</c:if>
<table id="simple-table" class="table table-bordered table-hover">
<thead>
<tr>
<th>药品编号</th>
<th>药品名称</th>
<th>药品数量</th>
</tr>
</thead>
<tbody>
<c:forEach items="${rx.drugs}" var="drug">
<tr>
<td>${drug.PDno}</td>
<td>${drug.PDname}</td>
<td>${drug.PDnum}</td>
</tr>
</c:forEach>
</tbody>
</table>
</div>
</div>
</form>
<!-- PAGE CONTENT ENDS -->
</div><!-- /.col -->
</div><!-- /.row -->
</div><!-- /.page-content -->
</div>
</div><!-- /.main-content -->
<div class="footer">
<div class="footer-inner">
<div class="footer-content">
<span class="bigger-120">
<span class="blue bolder">医院药品库存管理系统</span>
DIMS &copy; 2019-2020
</span>
</div>
</div>
</div>
<a href="#" id="btn-scroll-up" class="btn-scroll-up btn btn-sm btn-inverse">
<i class="ace-icon fa fa-angle-double-up icon-only bigger-110"></i>
</a>
</div><!-- /.main-container -->
<!-- basic scripts -->
<!--[if !IE]> -->
<script src="../assets/js/jquery-2.1.4.min.js"></script>
<!-- <![endif]-->
<!--[if IE]>
<script src="../assets/js/jquery-1.11.3.min.js"></script>
<![endif]-->
<script type="text/javascript">
if('ontouchstart' in document.documentElement) document.write("<script src='../assets/js/jquery.mobile.custom.min.js'>"+"<"+"/script>");
</script>
<script src="../assets/js/bootstrap.min.js"></script>
<!-- page specific plugin scripts -->
<!--[if lte IE 8]>
<script src="../assets/js/excanvas.min.js"></script>
<![endif]-->
<script src="../assets/js/jquery-ui.custom.min.js"></script>
<script src="../assets/js/jquery.ui.touch-punch.min.js"></script>
<script src="../assets/js/chosen.jquery.min.js"></script>
<script src="../assets/js/spinbox.min.js"></script>
<script src="../assets/js/bootstrap-datepicker.min.js"></script>
<script src="../assets/js/bootstrap-timepicker.min.js"></script>
<script src="../assets/js/moment.min.js"></script>
<script src="../assets/js/daterangepicker.min.js"></script>
<script src="../assets/js/bootstrap-datetimepicker.min.js"></script>
<script src="../assets/js/bootstrap-colorpicker.min.js"></script>
<script src="../assets/js/jquery.knob.min.js"></script>
<script src="../assets/js/autosize.min.js"></script>
<script src="../assets/js/jquery.inputlimiter.min.js"></script>
<script src="../assets/js/jquery.maskedinput.min.js"></script>
<script src="../assets/js/bootstrap-tag.min.js"></script>
<!-- ace scripts -->
<script src="../assets/js/ace-elements.min.js"></script>
<script src="../assets/js/ace.min.js"></script>
<!-- inline scripts related to this page -->
<script type="text/javascript">
jQuery(function($) {
$('#id-disable-check').on('click', function() {
var inp = $('#form-input-readonly').get(0);
if(inp.hasAttribute('disabled')) {
inp.setAttribute('readonly', 'true');
inp.removeAttribute('disabled');
inp.value="This text field is readonly!";
}
else {
inp.setAttribute('disabled', 'disabled');
inp.removeAttribute('readonly');
inp.value="This text field is disabled!";
}
});
if(!ace.vars['touch']) {
$('.chosen-select').chosen({allow_single_deselect:true});
//resize the chosen on window resize
$(window)
.off('resize.chosen')
.on('resize.chosen', function() {
$('.chosen-select').each(function() {
var $this = $(this);
$this.next().css({'width': $this.parent().width()});
})
}).trigger('resize.chosen');
//resize chosen on sidebar collapse/expand
$(document).on('settings.ace.chosen', function(e, event_name, event_val) {
if(event_name != 'sidebar_collapsed') return;
$('.chosen-select').each(function() {
var $this = $(this);
$this.next().css({'width': $this.parent().width()});
})
});
$('#chosen-multiple-style .btn').on('click', function(e){
var target = $(this).find('input[type=radio]');
var which = parseInt(target.val());
if(which == 2) $('#form-field-select-4').addClass('tag-input-style');
else $('#form-field-select-4').removeClass('tag-input-style');
});
}
$('[data-rel=tooltip]').tooltip({container:'body'});
$('[data-rel=popover]').popover({container:'body'});
autosize($('textarea[class*=autosize]'));
$('textarea.limited').inputlimiter({
remText: '%n character%s remaining...',
limitText: 'max allowed : %n.'
});
$.mask.definitions['~']='[+-]';
$('.input-mask-date').mask('99/99/9999');
$('.input-mask-phone').mask('(999) 999-9999');
$('.input-mask-eyescript').mask('~9.99 ~9.99 999');
$(".input-mask-product").mask("a*-999-a999",{placeholder:" ",completed:function(){alert("You typed the following: "+this.val());}});
$( "#input-size-slider" ).css('width','200px').slider({
value:1,
range: "min",
min: 1,
max: 8,
step: 1,
slide: function( event, ui ) {
var sizing = ['', 'input-sm', 'input-lg', 'input-mini', 'input-small', 'input-medium', 'input-large', 'input-xlarge', 'input-xxlarge'];
var val = parseInt(ui.value);
$('#form-field-4').attr('class', sizing[val]).attr('placeholder', '.'+sizing[val]);
}
});
$( "#input-span-slider" ).slider({
value:1,
range: "min",
min: 1,
max: 12,
step: 1,
slide: function( event, ui ) {
var val = parseInt(ui.value);
$('#form-field-5').attr('class', 'col-xs-'+val).val('.col-xs-'+val);
}
});
//"jQuery UI Slider"
//range slider tooltip example
$( "#slider-range" ).css('height','200px').slider({
orientation: "vertical",
range: true,
min: 0,
max: 100,
values: [ 17, 67 ],
slide: function( event, ui ) {
var val = ui.values[$(ui.handle).index()-1] + "";
if( !ui.handle.firstChild ) {
$("<div class='tooltip right in' style='display:none;left:16px;top:-6px;'><div class='tooltip-arrow'></div><div class='tooltip-inner'></div></div>")
.prependTo(ui.handle);
}
$(ui.handle.firstChild).show().children().eq(1).text(val);
}
}).find('span.ui-slider-handle').on('blur', function(){
$(this.firstChild).hide();
});
$( "#slider-range-max" ).slider({
range: "max",
min: 1,
max: 10,
value: 2
});
$( "#slider-eq > span" ).css({width:'90%', 'float':'left', margin:'15px'}).each(function() {
// read initial values from markup and remove that
var value = parseInt( $( this ).text(), 10 );
$( this ).empty().slider({
value: value,
range: "min",
animate: true
});
});
$("#slider-eq > span.ui-slider-purple").slider('disable');//disable third item
$('#id-input-file-1, #id-input-file-2').ace_file_input({
no_file:'No File ...',
btn_choose:'Choose',
btn_change:'Change',
droppable:false,
onchange:null,
thumbnail:false //| true | large
//whitelist:'gif|png|jpg|jpeg'
//blacklist:'exe|php'
//onchange:''
//
});
//pre-show a file name, for example a previously selected file
//$('#id-input-file-1').ace_file_input('show_file_list', ['myfile.txt'])
$('#id-input-file-3').ace_file_input({
style: 'well',
btn_choose: 'Drop files here or click to choose',
btn_change: null,
no_icon: 'ace-icon fa fa-cloud-upload',
droppable: true,
thumbnail: 'small'//large | fit
//,icon_remove:null//set null, to hide remove/reset button
/**,before_change:function(files, dropped) {
//Check an example below
//or examples/file-upload.html
return true;
}*/
/**,before_remove : function() {
return true;
}*/
,
preview_error : function(filename, error_code) {
//name of the file that failed
//error_code values
//1 = 'FILE_LOAD_FAILED',
//2 = 'IMAGE_LOAD_FAILED',
//3 = 'THUMBNAIL_FAILED'
//alert(error_code);
}
}).on('change', function(){
//console.log($(this).data('ace_input_files'));
//console.log($(this).data('ace_input_method'));
});
//$('#id-input-file-3')
//.ace_file_input('show_file_list', [
//{type: 'image', name: 'name of image', path: 'http://path/to/image/for/preview'},
//{type: 'file', name: 'hello.txt'}
//]);
//dynamically change allowed formats by changing allowExt && allowMime function
$('#id-file-format').removeAttr('checked').on('change', function() {
var whitelist_ext, whitelist_mime;
var btn_choose
var no_icon
if(this.checked) {
btn_choose = "Drop images here or click to choose";
no_icon = "ace-icon fa fa-picture-o";
whitelist_ext = ["jpeg", "jpg", "png", "gif", "bmp"];
whitelist_mime = ["image/jpg", "image/jpeg", "image/png", "image/gif", "image/bmp"];
}
else {
btn_choose = "Drop files here or click to choose";
no_icon = "ace-icon fa fa-cloud-upload";
whitelist_ext = null;//all extensions are acceptable
whitelist_mime = null;//all mimes are acceptable
}
var file_input = $('#id-input-file-3');
file_input
.ace_file_input('update_settings',
{
'btn_choose': btn_choose,
'no_icon': no_icon,
'allowExt': whitelist_ext,
'allowMime': whitelist_mime
})
file_input.ace_file_input('reset_input');
file_input
.off('file.error.ace')
.on('file.error.ace', function(e, info) {
//console.log(info.file_count);//number of selected files
//console.log(info.invalid_count);//number of invalid files
//console.log(info.error_list);//a list of errors in the following format
//info.error_count['ext']
//info.error_count['mime']
//info.error_count['size']
//info.error_list['ext'] = [list of file names with invalid extension]
//info.error_list['mime'] = [list of file names with invalid mimetype]
//info.error_list['size'] = [list of file names with invalid size]
/**
if( !info.dropped ) {
//perhapse reset file field if files have been selected, and there are invalid files among them
//when files are dropped, only valid files will be added to our file array
e.preventDefault();//it will rest input
}
*/
//if files have been selected (not dropped), you can choose to reset input
//because browser keeps all selected files anyway and this cannot be changed
//we can only reset file field to become empty again
//on any case you still should check files with your server side script
//because any arbitrary file can be uploaded by user and it's not safe to rely on browser-side measures
});
/**
file_input
.off('file.preview.ace')
.on('file.preview.ace', function(e, info) {
console.log(info.file.width);
console.log(info.file.height);
e.preventDefault();//to prevent preview
});
*/
});
$('#spinner1').ace_spinner({value:0,min:0,max:200,step:10, btn_up_class:'btn-info', btn_down_class:'btn-info'})
.closest('.ace-spinner')
.on('changed.fu.spinbox', function(){
//console.log($('#spinner1').val())
});
$('#spinner2').ace_spinner({value:0,min:0,max:10000,step:100, touch_spinner: true, icon_up:'ace-icon fa fa-caret-up bigger-110', icon_down:'ace-icon fa fa-caret-down bigger-110'});
$('#spinner3').ace_spinner({value:0,min:-100,max:100,step:10, on_sides: true, icon_up:'ace-icon fa fa-plus bigger-110', icon_down:'ace-icon fa fa-minus bigger-110', btn_up_class:'btn-success', btn_down_class:'btn-danger'});
$('#spinner4').ace_spinner({value:0,min:-100,max:100,step:10, on_sides: true, icon_up:'ace-icon fa fa-plus', icon_down:'ace-icon fa fa-minus', btn_up_class:'btn-purple', btn_down_class:'btn-purple'});
//$('#spinner1').ace_spinner('disable').ace_spinner('value', 11);
//or
//$('#spinner1').closest('.ace-spinner').spinner('disable').spinner('enable').spinner('value', 11);//disable, enable or change value
//$('#spinner1').closest('.ace-spinner').spinner('value', 0);//reset to 0
//datepicker plugin
//link
$('.date-picker').datepicker({
autoclose: true,
todayHighlight: true
})
//show datepicker when clicking on the icon
.next().on(ace.click_event, function(){
$(this).prev().focus();
});
//or change it into a date range picker
$('.input-daterange').datepicker({autoclose:true});
//to translate the daterange picker, please copy the "examples/daterange-fr.js" contents here before initialization
$('input[name=date-range-picker]').daterangepicker({
'applyClass' : 'btn-sm btn-success',
'cancelClass' : 'btn-sm btn-default',
locale: {
applyLabel: 'Apply',
cancelLabel: 'Cancel',
}
})
.prev().on(ace.click_event, function(){
$(this).next().focus();
});
$('#timepicker1').timepicker({
minuteStep: 1,
showSeconds: true,
showMeridian: false,
disableFocus: true,
icons: {
up: 'fa fa-chevron-up',
down: 'fa fa-chevron-down'
}
}).on('focus', function() {
$('#timepicker1').timepicker('showWidget');
}).next().on(ace.click_event, function(){
$(this).prev().focus();
});
if(!ace.vars['old_ie']) $('#date-timepicker1').datetimepicker({
format: 'MM/DD/YYYY h:mm:ss A',//use this option to display seconds
icons: {
time: 'fa fa-clock-o',
date: 'fa fa-calendar',
up: 'fa fa-chevron-up',
down: 'fa fa-chevron-down',
previous: 'fa fa-chevron-left',
next: 'fa fa-chevron-right',
today: 'fa fa-arrows ',
clear: 'fa fa-trash',
close: 'fa fa-times'
}
}).next().on(ace.click_event, function(){
$(this).prev().focus();
});
$('#colorpicker1').colorpicker();
//$('.colorpicker').last().css('z-index', 2000);//if colorpicker is inside a modal, its z-index should be higher than modal'safe
$('#simple-colorpicker-1').ace_colorpicker();
//$('#simple-colorpicker-1').ace_colorpicker('pick', 2);//select 2nd color
//$('#simple-colorpicker-1').ace_colorpicker('pick', '#fbe983');//select #fbe983 color
//var picker = $('#simple-colorpicker-1').data('ace_colorpicker')
//picker.pick('red', true);//insert the color if it doesn't exist
$(".knob").knob();
var tag_input = $('#form-field-tags');
try{
tag_input.tag(
{
placeholder:tag_input.attr('placeholder'),
//enable typeahead by specifying the source array
source: ace.vars['US_STATES'],//defined in ace.js >> ace.enable_search_ahead
/**
//or fetch data from database, fetch those that match "query"
source: function(query, process) {
$.ajax({url: 'remote_source.php?q='+encodeURIComponent(query)})
.done(function(result_items){
process(result_items);
});
}
*/
}
)
//programmatically add/remove a tag
var $tag_obj = $('#form-field-tags').data('tag');
$tag_obj.add('Programmatically Added');
var index = $tag_obj.inValues('some tag');
$tag_obj.remove(index);
}
catch(e) {
//display a textarea for old IE, because it doesn't support this plugin or another one I tried!
tag_input.after('<textarea id="'+tag_input.attr('id')+'" name="'+tag_input.attr('name')+'" rows="3">'+tag_input.val()+'</textarea>').remove();
//autosize($('#form-field-tags'));
}
/////////
$('#modal-form input[type=file]').ace_file_input({
style:'well',
btn_choose:'Drop files here or click to choose',
btn_change:null,
no_icon:'ace-icon fa fa-cloud-upload',
droppable:true,
thumbnail:'large'
})
//chosen plugin inside a modal will have a zero width because the select element is originally hidden
//and its width cannot be determined.
//so we set the width after modal is show
$('#modal-form').on('shown.bs.modal', function () {
if(!ace.vars['touch']) {
$(this).find('.chosen-container').each(function(){
$(this).find('a:first-child').css('width', '210px');
$(this).find('.chosen-drop').css('width', '210px');
$(this).find('.chosen-search input').css('width', '200px');
});
}
})
/**
//or you can activate the chosen plugin after modal is shown
//this way select element becomes visible with dimensions and chosen works as expected
$('#modal-form').on('shown', function () {
$(this).find('.modal-chosen').chosen();
})
*/
$(document).one('ajaxloadstart.page', function(e) {
autosize.destroy('textarea[class*=autosize]')
$('.limiterBox,.autosizejs').remove();
$('.daterangepicker.dropdown-menu,.colorpicker.dropdown-menu,.bootstrap-datetimepicker-widget.dropdown-menu').remove();
});
});
</script>
</body>
</html>

Some files were not shown because too many files have changed in this diff Show more