瀏覽代碼

delete 删除冲突文件和目录

bzd_lxf 8 月之前
父節點
當前提交
2e498fda7e
共有 25 個文件被更改,包括 4081 次插入0 次删除
  1. 246 0
      health-admin/src/main/resources/templates/dtp/archives/archivesEdit.html
  2. 293 0
      health-admin/src/main/resources/templates/dtp/archives/archivesList.html
  3. 259 0
      health-admin/src/main/resources/templates/dtp/cold/add.html
  4. 0 0
      health-admin/src/main/resources/templates/dtp/cold/cold.html
  5. 0 0
      health-admin/src/main/resources/templates/dtp/cold/edit.html
  6. 156 0
      health-admin/src/main/resources/templates/dtp/configInfo/AssociatedPrescription.html
  7. 259 0
      health-admin/src/main/resources/templates/dtp/configInfo/addDrug.html
  8. 0 0
      health-admin/src/main/resources/templates/dtp/configInfo/drugList.html
  9. 156 0
      health-admin/src/main/resources/templates/dtp/configInfo/dtpHospital.html
  10. 250 0
      health-admin/src/main/resources/templates/dtp/configInfo/editDrug.html
  11. 177 0
      health-admin/src/main/resources/templates/dtp/configInfo/storeTag.html
  12. 200 0
      health-admin/src/main/resources/templates/dtp/followUp/followUpEdit.html
  13. 290 0
      health-admin/src/main/resources/templates/dtp/followUp/followUpList.html
  14. 173 0
      health-admin/src/main/resources/templates/dtp/followUpAssign/followUpAssignEdit.html
  15. 280 0
      health-admin/src/main/resources/templates/dtp/followUpAssign/followUpAssignList.html
  16. 92 0
      health-admin/src/main/resources/templates/dtp/followUpEvaluation/followUpEvaluationEdit.html
  17. 205 0
      health-admin/src/main/resources/templates/dtp/followUpEvaluation/followUpEvaluationList.html
  18. 131 0
      health-admin/src/main/resources/templates/dtp/patientCounseling/patientCounselingEdit.html
  19. 211 0
      health-admin/src/main/resources/templates/dtp/patientCounseling/patientCounselingList.html
  20. 62 0
      health-admin/src/main/resources/templates/dtp/print/detail.html
  21. 189 0
      health-admin/src/main/resources/templates/dtp/print/print.html
  22. 0 0
      health-admin/src/main/resources/templates/dtp/recipe/add.html
  23. 0 0
      health-admin/src/main/resources/templates/dtp/recipe/edit.html
  24. 0 0
      health-admin/src/main/resources/templates/dtp/recipe/recipe.html
  25. 452 0
      health-admin/src/main/resources/templates/dtp/recipe/view.html

+ 246 - 0
health-admin/src/main/resources/templates/dtp/archives/archivesEdit.html

@@ -0,0 +1,246 @@
+<!DOCTYPE html>
+<html lang="zh" xmlns:th="http://www.thymeleaf.org" >
+<head>
+    <th:block th:include="include :: header('档案明细')" />
+</head>
+<style>
+
+</style>
+<script>
+
+</script>
+<body>
+    <div class="ui-layout-center">
+        <form class="form-horizontal" id="form-server-edit" th:object="${user}">
+            <h4 class="form-header h4">基本信息</h4>
+            <input type="hidden" id="id" name="id" th:value="${id}">
+            <div class="row">
+                <div class="col-sm-12">
+                    <div class="form-group">
+                        <!--is-required 增加星号 显示为必填-->
+                        <label class="col-sm-1 control-label">姓名:</label>
+                        <div class="col-sm-2" >
+                            <div class="input-group">
+                                <input name="name" placeholder="请输入姓名" class="styled-input" type="text" maxlength="30" th:value="${name}" required>
+                            </div>
+                        </div>
+                        <label class="col-sm-1 control-label">性别:</label>
+                        <div class="col-sm-2" >
+                            <div class="input-group">
+                                <select name="sex" class="styled-input" th:with="type=${@dict.getType('sys_user_sex')}" >
+                                    <!--<option>所有</option>-->
+                                    <option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}"
+                                            th:selected="${dict.dictLabel} == ${gender}" ></option>
+                                </select>
+                                <!--<input name="gender" placeholder="请输入性别" class="styled-input" type="text" maxlength="30" th:value="${gender}" required>-->
+                            </div>
+                        </div>
+                        <label class="col-sm-1 control-label">年龄:</label>
+                        <div class="col-sm-2" >
+                            <div class="input-group">
+                                <input name="age" placeholder="请输入年龄" class="styled-input" type="text" maxlength="30" th:value="${age}" required>
+                            </div>
+                        </div>
+                        <label class="col-sm-1 control-label">手机号:</label>
+                        <div class="col-sm-2" >
+                            <div class="input-group">
+                                <input name="phoneNumber" placeholder="请输入手机号" class="styled-input" type="text" maxlength="30" th:value="${phoneNumber}" required>
+                            </div>
+                        </div>
+                    </div>
+                </div>
+                <div class="col-sm-12">
+                    <div class="form-group">
+                        <!--is-required 增加星号 显示为必填-->
+                        <label class="col-sm-1 control-label">证件类型:</label>
+                        <div class="col-sm-2" >
+                            <div class="input-group">
+                                <input name="documentType" placeholder="请输入证件类型" class="styled-input" type="text" maxlength="30" th:value="${documentType}" required>
+                            </div>
+                        </div>
+                        <label class="col-sm-1 control-label">证件号码:</label>
+                        <div class="col-sm-2" >
+                            <div class="input-group">
+                                <input name="documentNumber" placeholder="请输入证件号码" class="styled-input" type="text" maxlength="30" th:value="${documentNumber}" required>
+                            </div>
+                        </div>
+                        <label class="col-sm-1 control-label">实名状态:</label>
+                        <div class="col-sm-2" >
+                            <div class="input-group">
+                                <select name="realNameStatus" class="styled-input" th:with="type=${@dict.getType('sys_real_yes_no')}">
+                                    <option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}"
+                                            th:selected="${dict.dictLabel}==${realNameStatus}"></option>
+                                </select>
+                                <!--<input name="realNameStatus" placeholder="实名状态" class="styled-input" type="text" maxlength="30" th:value="${realNameStatus}" required>-->
+                            </div>
+                        </div>
+                        <label class="col-sm-1 control-label">上翻状态:</label>
+                        <div class="col-sm-2" >
+                            <div class="input-group">
+                                <select name="flipStatus" class="styled-input" th:with="type=${@dict.getType('sys_up_yes_no')}" >
+                                    <!--<option>所有</option>-->
+                                    <option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}"
+                                            th:selected="${dict.dictLabel} == ${flipStatus}" ></option>
+                                </select>
+                            </div>
+                        </div>
+                    </div>
+                </div>
+                <div class="col-sm-12">
+                    <div class="form-group">
+                        <!--is-required 增加星号 显示为必填-->
+                        <label class="col-sm-1 control-label">疾病:</label>
+                        <div class="col-sm-2" >
+                            <div class="input-group">
+                                <input name="disease" placeholder="请输入疾病" class="styled-input" type="text" maxlength="30" th:value="${disease}" required>
+                            </div>
+                        </div>
+                        <label class="col-sm-1 control-label">药品通用名:</label>
+                        <div class="col-sm-2" >
+                            <div class="input-group">
+                                <input name="genericName" placeholder="请输入药品通用名" class="styled-input" type="text" maxlength="30" th:value="${genericName}" required>
+                            </div>
+                        </div>
+                        <label class="col-sm-1 control-label">商品名:</label>
+                        <div class="col-sm-2" >
+                            <div class="input-group">
+                                <input name="productName" placeholder="请输入商品名" class="styled-input" type="text" maxlength="30" th:value="${productName}" required>
+                            </div>
+                        </div>
+                        <label class="col-sm-1 control-label">MDM编码:</label>
+                        <div class="col-sm-2" >
+                            <div class="input-group">
+                                <input name="mdmCode" placeholder="MDM编码" class="styled-input" type="text" maxlength="30" th:value="${mdmCode}" required>
+                            </div>
+                        </div>
+                    </div>
+                </div>
+
+                <div class="col-sm-12">
+                    <div class="form-group">
+                        <!--is-required 增加星号 显示为必填-->
+                        <label class="col-sm-1 control-label">厂家:</label>
+                        <div class="col-sm-2" >
+                            <div class="input-group">
+                                <input name="manufacturer" placeholder="请输入厂家" class="styled-input" type="text" maxlength="30" th:value="${manufacturer}" required>
+                            </div>
+                        </div>
+                        <label class="col-sm-1 control-label">门店:</label>
+                        <div class="col-sm-2" >
+                            <div class="input-group">
+                                <input name="storeName" placeholder="请输入门店" class="styled-input" type="text" maxlength="30" th:value="${storeName}" required>
+                            </div>
+                        </div>
+                        <label class="col-sm-1 control-label">档案创建人:</label>
+                        <div class="col-sm-2" >
+                            <div class="input-group">
+                                <input name="archiveCreator" placeholder="档案创建人" class="styled-input" type="text" maxlength="30" th:value="${archiveCreator}" required>
+                            </div>
+                        </div>
+                        <label class="col-sm-1 control-label">档案完善人:</label>
+                        <div class="col-sm-2" >
+                            <div class="input-group">
+                                <input name="archiveCompleter" placeholder="档案完善人" class="styled-input" type="text" maxlength="30" th:value="${archiveCompleter}" required>
+                            </div>
+                        </div>
+                    </div>
+                </div>
+                <div class="col-sm-12">
+                    <div class="form-group">
+                        <!--is-required 增加星号 显示为必填-->
+                        <label class="col-sm-1 control-label">是否接受随访:</label>
+                        <div class="col-sm-2" >
+                            <div class="input-group">
+                                <select name="acceptFollowUp" class="styled-input" th:with="type=${@dict.getType('sys_select_yes_no')}">
+                                    <option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}"
+                                            th:selected="${dict.dictLabel}==${acceptFollowUp}"></option>
+                                </select>
+                                <!--<input name="acceptFollowUp" placeholder="是否接受随访" class="styled-input" type="text" maxlength="30" th:value="${acceptFollowUp}" required>-->
+                            </div>
+                        </div>
+                        <label class="col-sm-1 control-label">随访跟进人:</label>
+                        <div class="col-sm-2" >
+                            <div class="input-group">
+                                <input name="followUpPerson" placeholder="随访跟进人" class="styled-input" type="text" maxlength="30" th:value="${followUpPerson}" required>
+                            </div>
+                        </div>
+                        <label class="col-sm-1 control-label">档案是否完善:</label>
+                        <div class="col-sm-2" >
+                            <div class="input-group">
+                                <select name="archiveCompleteStatus" class="styled-input" th:with="type=${@dict.getType('sys_doc_yes_no')}">
+                                    <option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}"
+                                            th:selected="${dict.dictLabel}==${archiveCompleteStatus}"></option>
+                                </select>
+                                <!--<input name="archiveCompleteStatus" placeholder="档案是否完善" class="styled-input" type="text" maxlength="30" th:value="${archiveCompleteStatus}" required>-->
+                            </div>
+                        </div>
+                        <label class="col-sm-1 control-label">有无慈善援助:</label>
+                        <div class="col-sm-2" >
+                            <div class="input-group">
+                                <select name="charityAssistance" class="styled-input" th:with="type=${@dict.getType('sys_salvation_yes_no')}">
+                                    <option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}"
+                                            th:selected="${dict.dictLabel}==${charityAssistance}"></option>
+                                </select>
+                            </div>
+                        </div>
+                    </div>
+                </div>
+                <div class="col-sm-12">
+                    <div class="form-group">
+                        <!--is-required 增加星号 显示为必填-->
+                        <label class="col-sm-1 control-label">是否参加共建项目:</label>
+                        <div class="col-sm-2" >
+                            <div class="input-group">
+                                <select name="joinProject" class="styled-input" th:with="type=${@dict.getType('sys_select_yes_no')}">
+                                    <option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}"
+                                            th:selected="${dict.dictLabel}==${joinProject}"></option>
+                                </select>
+                                <!--<input name="joinProject" placeholder="是否参加共建项目" class="styled-input" type="text" maxlength="30" th:value="${joinProject}" required>-->
+                            </div>
+                        </div>
+                        <label class="col-sm-1 control-label">随访状态:</label>
+                        <div class="col-sm-2" >
+                            <div class="input-group">
+                                <select name="followUpStatus" class="styled-input" th:with="type=${@dict.getType('sys_follow_up_visit')}">
+                                    <option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}"
+                                            th:selected="${dict.dictLabel}==${joinProject}"></option>
+                                </select>
+                            </div>
+                        </div>
+                        <label class="col-sm-1 control-label">更新时间:</label>
+                        <div class="col-sm-2" >
+                            <div class="input-group">
+                                <input type="text" class="styled-input time-input-new" id="updateTime" placeholder="更新时间" name="updateTime" th:value="${updateTime2}" required/>
+                            </div>
+                        </div>
+
+                    </div>
+                </div>
+            </div>
+        </form>
+    </div>
+    <div class="main-content">
+        <div class="col-sm-offset-5 col-sm-10">
+            <button type="button" class="btn btn-sm btn-primary" onclick="submitHandler()"><i class="fa fa-check"></i>保 存</button>&nbsp;
+            <button type="button" class="btn btn-sm btn-danger" onclick="closeItem()"><i class="fa fa-reply-all"></i>关 闭 </button>
+        </div>
+    </div>
+	<th:block th:include="include :: footer" />
+</body>
+</html>
+
+<script>
+    function submitHandler() {
+        var prefix = ctx + "dtp/pmService";
+        if ($.validate.form()) {
+            var data = $("#form-server-edit").serializeArray();
+            /*var status = $("input[id='status']").is(':checked') == true ? 0 : 1;
+            var roleIds = $.form.selectCheckeds("role");
+            var postIds = $.form.selectSelects("post");
+            data.push({"name": "status", "value": status});
+            data.push({"name": "roleIds", "value": roleIds});
+            data.push({"name": "postIds", "value": postIds});*/
+            $.operate.saveTab(prefix + "/archivesEdit", data);
+        }
+    }
+</script>

+ 293 - 0
health-admin/src/main/resources/templates/dtp/archives/archivesList.html

@@ -0,0 +1,293 @@
+<!DOCTYPE html>
+<html lang="zh" xmlns:th="http://www.thymeleaf.org" xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
+<head>
+	<th:block th:include="include :: header('档案管理')" />
+	<th:block th:include="include :: layout-latest-css" />
+	<th:block th:include="include :: ztree-css" />
+</head>
+<style>
+	/* 设置 ul 的基本样式 */
+	ul {
+		list-style-type: none; /* 去掉项目符号 */
+		padding: 0; /* 去掉默认的内边距 */
+		display: grid; /* 使用网格布局 */
+		grid-template-columns: repeat(5, 1fr); /* 设置三列 */
+	}
+	ul-list ul{
+		list-style-type: none; /* 去掉项目符号 */
+		padding: 0; /* 去掉默认的内边距 */
+		display: grid; /* 使用网格布局 */
+		grid-template-columns: repeat(4, 1fr); /* 设置三列 */
+	}
+	ul-list ul li{
+		/*padding: 10px;*/ /* 内边距 */
+		text-align: left; /* 文本居中 */
+	}
+
+	/* 设置 li 的基本样式 */
+	li {
+		/*background-color: lightblue; *//* 背景颜色 */
+		/*padding: 1px; !* 内边距 *!*/
+		text-align: right; /* 文本居中 */
+	}
+</style>
+
+<body class="gray-bg">
+
+	<div class="ui-layout-center">
+		<div class="container-div">
+			<div class="row">
+				<div class="col-sm-12 search-collapse" >
+					<form id="archives-form">
+						<input type="hidden" id="deptId" name="deptId">
+		                <input type="hidden" id="parentId" name="parentId">
+
+						<div class="select-list" >
+							<ul>
+								<li>
+									患者信息:<input type="text" class="styled-input" name="name"/>
+								</li>
+								<li>
+									药品:<input type="text"  class="styled-input" name="genericName"/>
+								</li>
+								<li>
+									是否接受随访:
+									<select name="acceptFollowUp" id="acceptFollowUpSelect"  class="styled-input" th:with="type=${@dict.getType('sys_select_yes_no')}">
+										<option value="">所有</option>
+										<option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictLabel}"></option>
+									</select>
+								</li>
+								<li>
+									档案是否完善:
+									<select name="archiveCompleteStatus" class="styled-input" th:with="type=${@dict.getType('sys_doc_yes_no')}">
+										<option value="">所有</option>
+										<option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictLabel}" ></option>
+									</select>
+								</li>
+								<li style="text-align: center">
+									<a class="btn btn-primary btn-rounded btn-sm" onclick="$.table.search()"><i class="fa fa-search"></i>&nbsp;搜索</a>
+								    <a class="btn btn-warning btn-rounded btn-sm" onclick="resetPre()"><i class="fa fa-refresh"></i>&nbsp;重置</a>
+								</li>
+							</ul>
+						</div>
+
+						<div class="ul-list select-list">
+							<ul>
+								<li>
+									随访跟进人:<input type="text"  class="styled-input" name="followUpPerson"/>
+								</li>
+								<li>
+									门店:<input type="text"  class="styled-input" name="storeName"/>
+								</li>
+								<li>
+									疾病:<input type="text"  class="styled-input" name="disease"/>
+								</li>
+								<li>
+									上翻状态:
+									<select name="flipStatus" class="styled-input" th:with="type=${@dict.getType('sys_up_yes_no')}" >
+										<option value="">所有</option>
+										<option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictLabel}"></option>
+									</select>
+								</li>
+
+							</ul>
+							<ul>
+								<li>
+									随访状态:
+									<select name="followUpStatus" class="styled-input" th:with="type=${@dict.getType('sys_follow_up_visit')}">
+										<option value="">所有</option>
+										<option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictLabel}"></option>
+									</select>
+								</li>
+								<li>
+									实名状态:
+									<select name="realNameStatus" class="styled-input" th:with="type=${@dict.getType('sys_real_yes_no')}">
+										<option value="">所有</option>
+										<option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictLabel}"></option>
+									</select>
+								</li>
+								<li>
+									创建时间:<input type="text" class="styled-input time-input" id="updateTime" placeholder="更新时间" name="updateTime" th:value="${updateTime}" required/>
+								</li>
+								<li>
+									创建时间:<input type="text" class="styled-input time-input-new" id="updateTime1" placeholder="更新时间" name="updateTime" th:value="${updateTime}" required/>
+								</li>
+							</ul>
+							<ul>
+								<li>
+									性别:
+									<select name="gender" class="styled-input" th:with="type=${@dict.getType('sys_user_sex')}">
+										<option value="">所有</option>
+										<option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictLabel}" ></option>
+									</select>
+								</li>
+								<li>
+									是否参加共建项目:
+									<select name="joinProject" class="styled-input" th:with="type=${@dict.getType('sys_select_yes_no')}">
+										<option value="">所有</option>
+										<option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictLabel}"></option>
+									</select>
+								</li>
+								<li>
+									有无慈善援助:
+									<select name="charityAssistance" class="styled-input" th:with="type=${@dict.getType('sys_salvation_yes_no')}">
+										<option value="">所有</option>
+										<option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictLabel}"></option>
+									</select>
+								</li>
+							</ul>
+						</div>
+					</form>
+				</div>
+
+		        <div class="btn-group-sm" id="toolbar" role="group">
+		        	<!--<a class="btn btn-success" onclick="$.operate.addTab()" shiro:hasPermission="system:user:add">
+		                <i class="fa fa-plus"></i> 新增
+		            </a>
+		             <a class="btn btn-primary single disabled" onclick="$.operate.editTab()" shiro:hasPermission="system:user:edit">
+			            <i class="fa fa-edit"></i> 修改
+			        </a>
+		            <a class="btn btn-danger multiple disabled" onclick="$.operate.removeAll()" shiro:hasPermission="system:user:remove">
+		                <i class="fa fa-remove"></i> 删除
+		            </a>
+		            <a class="btn btn-info" onclick="$.table.importExcel()" shiro:hasPermission="system:user:import">
+			            <i class="fa fa-upload"></i> 导入
+			        </a>
+		            <a class="btn btn-warning" onclick="$.table.exportExcel()" shiro:hasPermission="system:user:export">
+			            <i class="fa fa-download"></i> 导出
+			        </a>-->
+		        </div>
+
+		        <div class="col-sm-12 select-table table-striped">
+				    <table id="bootstrap-table"></table>
+				</div>
+			</div>
+		</div>
+	</div>
+
+	<th:block th:include="include :: footer" />
+	<th:block th:include="include :: layout-latest-js" />
+	<th:block th:include="include :: ztree-js" />
+	<script th:inline="javascript">
+		var editFlag = [[${@permission.hasPermi('dtp:RecipeRegister:edit')}]];
+		var removeFlag = [[${@permission.hasPermi('dtp:RecipeRegister:remove')}]];
+		var prefix = ctx + "dtp/pmService";
+		$(function() {
+		    var panehHidden = false;
+		    if ($(this).width() < 1590) {
+		        panehHidden = true;
+		    }
+		    $('body').layout({ initClosed: panehHidden, west__size: 185, resizeWithWindow: false });
+	     	// 回到顶部绑定
+	    	if ($.fn.toTop !== undefined) {
+	    		var opt = {
+	    			win:$('.ui-layout-center'),
+	    			doc:$('.ui-layout-center')
+	    		};
+	    		$('#scroll-up').toTop(opt);
+	    	}
+			queryArchivesList();
+		});
+
+		function queryArchivesList() {
+		    var options = {
+		        url: prefix + "/archivesList",
+		        viewUrl: prefix + "/archivesView/{id}",
+		        createUrl: prefix + "/archivesAdd",
+		        updateUrl: prefix + "/archivesEdit/{id}",
+		        removeUrl: prefix + "/archivesRemove",
+		        /*exportUrl: prefix + "/export",
+		        importUrl: prefix + "/importData",
+		        importTemplateUrl: prefix + "/importTemplate",*/
+		        sortName: "id",
+		        sortOrder: "asc",
+		        modalName: "档案",
+				fitColumns: true,
+				striped: true,
+				autoRowHeight: true,
+				rowNumbers: true,
+				showFooter:true,  //是否显示表格底部区域。
+				clickToSelect: true, //是否启用点击行时选中整行的功能。
+                singleSelect: true, //是否仅允许选择一行
+		        columns: [{
+		            checkbox: true
+		        },
+				{field: 'name', title: '姓名', align: 'center'},
+				{field: 'gender', title: '性别', align: 'center'},
+				{field: 'age', title: '年龄', align: 'center'},
+				{field: 'phoneNumber', title: '手机号', align: 'center'},
+				{field: 'documentType', title: '证件类型', align: 'center'},
+				{field: 'documentNumber', title: '证件号码', align: 'center'},
+				{field: 'realNameStatus', title: '实名状态', align: 'center'},
+				{field: 'flipStatus', title: '上翻状态', align: 'center'},
+				{field: 'disease', title: '疾病', align: 'center'},
+				{field: 'genericName', title: '药品通用名', align: 'center'},
+				{field: 'productName', title: '商品名', align: 'center'},
+				{field: 'mdmCode', title: 'MDM编码', align: 'center'},
+				{field: 'manufacturer', title: '厂家', align: 'center'},
+				{field: 'storeName', title: '门店', align: 'center'},
+				{field: 'archiveCreator', title: '档案创建人', align: 'center'},
+				{field: 'archiveCompleter', title: '档案完善人', align: 'center'},
+				{field: 'acceptFollowUp', title: '是否接受随访', align: 'center'},
+				{field: 'followUpPerson', title: '随访跟进人', align: 'center'},
+				{field: 'archiveCompleteStatus', title: '档案是否完善', align: 'center'},
+				{field: 'charityAssistance', title: '有无慈善援助', align: 'center'},
+				{field: 'joinProject', title: '是否参加共建项目', align: 'center'},
+				{field: 'followUpStatus', title: '随访状态', align: 'center'},
+				{field: 'updateTime2', title: '更新时间', align: 'center'},
+				/*{
+		        	formatter: function (value, row, index) {
+						console.log(value+"-------v");
+						console.log(row+"-------r");
+		        		return statusTools(row);
+		        	}
+		        },*/
+
+		        {
+		            title: '操作',
+		            align: 'center',
+		            formatter: function(value, row, index) {
+		                if (row.serviceId != 1) {
+		                	var actions = [];
+			                actions.push('<a class="btn btn-success btn-xs ' + editFlag + '" href="javascript:void(0)" onclick="$.operate.editTab(\'' + row.id + '\')"><i class="fa fa-edit"></i>编辑</a> ');
+			                actions.push('<a class="btn btn-danger btn-xs ' + removeFlag + '" href="javascript:void(0)" onclick="$.operate.remove(\'' + row.id + '\')"><i class="fa fa-remove"></i>删除</a> ');
+			                var more = [];
+			                /*more.push("<a class='btn btn-default btn-xs " + resetPwdFlag + "' href='javascript:void(0)' onclick='resetPwd(" + row.userId + ")'><i class='fa fa-key'></i>重置密码</a> ");
+			                more.push("<a class='btn btn-default btn-xs " + editFlag + "' href='javascript:void(0)' onclick='authRole(" + row.userId + ")'><i class='fa fa-check-square-o'></i>分配角色</a>");
+			                actions.push('<a tabindex="0" class="btn btn-info btn-xs" role="button" data-container="body" data-placement="left" data-toggle="popover" data-html="true" data-trigger="hover" data-content="' + more.join('') + '"><i class="fa fa-chevron-circle-right"></i>更多操作</a>');*/
+			                return actions.join('');
+		            	} else {
+		                    return "";
+		                }
+		            }
+		        }]
+		    };
+		    $.table.init(options);
+		}
+
+		/* 自定义重置-表单重置/隐藏框/树节点选择色/搜索 */
+		function resetPre() {
+			resetDate();
+			$("#archives-form")[0].reset();
+			$("#deptId").val("");
+			$("#parentId").val("");
+			$(".curSelectedNode").removeClass("curSelectedNode");
+			$.table.search();
+			var resetButton = document.getElementById('archives-form');
+			resetButton.addEventListener('click', function() {
+				_refresh();
+			});
+		}
+
+		/* 用户状态显示 */
+		function statusTools(row) {
+		    if (row.status == 1) {
+    			return '<i class=\"fa fa-toggle-off text-info fa-2x\" onclick="enable(\'' + row.userId + '\')"></i> ';
+    		} else {
+    			return '<i class=\"fa fa-toggle-on text-info fa-2x\" onclick="disable(\'' + row.userId + '\')"></i> ';
+    		}
+		}
+	</script>
+</body>
+
+</html>

+ 259 - 0
health-admin/src/main/resources/templates/dtp/cold/add.html

@@ -0,0 +1,259 @@
+<!DOCTYPE html>
+<html lang="zh" xmlns:th="http://www.thymeleaf.org" >
+<head>
+    <th:block th:include="include :: header('新增处方')" />
+    <th:block th:include="include :: select2-css" />
+</head>
+<body>
+<div class="main-content">
+    <form id="form-user-add" class="form-horizontal">
+        <input name="deptId" type="hidden" id="treeId"/>
+        <h4 class="form-header h4">配送单信息</h4>
+        <div class="row">
+            <div class="col-sm-3">
+                <div class="form-group">
+                    <label>预计配送时间</label>
+                    <input type="text" class="styled-input time-input" id="expectedDeliveryTime"  name="expectedDeliveryTime" placeholder="预计配送时间" />
+                </div>
+            </div>
+            <div class="col-sm-3">
+                <div class="form-group">
+                    <div class="form-group">
+                        <label>实际配送时间</label>
+                        <input type="text" class="styled-input time-input" id="actualDeliveryTime" placeholder="实际配送时间" name="actualDeliveryTime"/>
+                    </div>
+                </div>
+            </div>
+
+            <div class="col-sm-3">
+                <div class="form-group">
+                    <label class="col-sm-4 control-label is-required">所属连锁:</label>
+                    <div class="col-sm-8">
+                        <div class="input-group">
+                        <input name="chainName" onclick="selectDeptTree()" id="treeName" type="text" placeholder="请选择门店" class="form-control">
+                        <span class="input-group-addon">
+                        <i class="fa fa-search"></i>
+                    </span>
+                        </div>
+                    </div>
+                </div>
+            </div>
+            <div class="col-sm-3">
+                <div class="form-group">
+                    <label class="col-sm-4 control-label is-required">所属门店:</label>
+                    <div class="col-sm-8">
+                        <select name="storeName" class="form-control" th:with="type=${@dict.getType('sys_select_store')}">
+                            <option value="">请选择</option>
+                            <option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}"
+                            ></option>
+                        </select>
+                    </div>
+                </div>
+            </div>
+        </div>
+        <div class="row">
+            <div class="col-sm-3">
+                <div class="form-group">
+                    <label class="col-sm-6 control-label">是否线上签收:</label>
+                    <div class="col-sm-4">
+                        <select name="prescriptionType" class="form-control" th:with="type=${@dict.getType('sys_yes_no')}">
+                            <option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}"
+                            ></option>
+                        </select>
+                    </div>
+                </div>
+            </div>
+
+            <div class="col-sm-3">
+                <div class="form-group">
+                    <label class="col-sm-4 control-label">配送状态:</label>
+                    <div class="col-sm-4">
+                        <select name="deliveryStatus"  class="form-control"  th:with="type=${@dict.getType('sys_select_pszt')}">
+                            <option value="">全部</option>
+                            <option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictLabel}"></option>
+                        </select>
+                    </div>
+                </div>
+            </div>
+            <div class="col-sm-3">
+                <div class="form-group">
+                    <label class="col-sm-4 control-label">冷链类型:</label>
+                    <div class="col-sm-4">
+                        <select name="coldChainType"  class="form-control"  th:with="type=${@dict.getType('sys_select_cold_type')}">
+                            <option value="">全部</option>
+                            <option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictLabel}"
+                            ></option>
+                        </select>
+                    </div>
+                </div>
+            </div>
+            <div class="col-sm-3">
+                <div class="form-group">
+                    <label class="col-sm-4 control-label">订单来源:</label>
+                    <div class="col-sm-4">
+                        <select name="orderSource"  class="form-control"  th:with="type=${@dict.getType('sys_select_order_sources')}">
+                            <option value="">全部</option>
+                            <option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictLabel}"
+                            ></option>
+                        </select>
+                    </div>
+                </div>
+            </div>
+
+        </div>
+        <div class="row">
+            <div class="col-sm-4">
+                <div class="form-group">
+                    <label class="col-sm-4 control-label">收货人:</label>
+                    <div class="col-sm-8">
+                        <input id="recipientName" name="recipientName"  type="text" maxlength="100"  class="form-control" placeholder="请输入收货人">
+                    </div>
+                </div>
+            </div>
+            <div class="col-sm-4">
+                <div class="form-group">
+                    <label class="col-sm-4 control-label">收货电话:</label>
+                    <div class="col-sm-8">
+                        <input id="recipientPhone" name="recipientPhone"  type="number" maxlength="11"  class="form-control" placeholder="请输入收货电话">
+                    </div>
+                </div>
+            </div>
+
+            <div class="col-sm-4">
+                <div class="form-group">
+                    <label class="col-sm-4 control-label">冰排编号:</label>
+
+                    <div class="col-sm-8">
+                        <input id="icePackNumber" name="icePackNumber" placeholder="请输入冰排编号" class="form-control" type="text" maxlength="50" >
+                    </div>
+                </div>
+            </div>
+
+
+        </div>
+        <div class="row">
+            <div class="col-sm-4">
+                <div class="form-group">
+                    <label class="col-sm-4 control-label">收货地址:</label>
+                    <div class="col-sm-8">
+                        <input id="recipientAddress" name="recipientAddress"  type="text" maxlength="1000"  class="form-control" placeholder="请输入收货地址">
+                    </div>
+                </div>
+            </div>
+            <div class="col-sm-4">
+                <div class="form-group">
+                    <label class="col-sm-4 control-label">出发温度:</label>
+                    <div class="col-sm-8">
+                        <input id="departureTemperature" name="departureTemperature"  type="text" maxlength="10"  class="form-control" placeholder="请输入出发温度">
+                    </div>
+                </div>
+            </div>
+            <div class="col-sm-4">
+                <div class="form-group">
+                    <label class="col-sm-4 control-label">送达温度:</label>
+                    <div class="col-sm-8">
+                        <input id="arrivalTemperature" name="arrivalTemperature"  type="text" maxlength="10"  class="form-control" placeholder="请输入送达温度">
+                    </div>
+                </div>
+            </div>
+        </div>
+        <div class="row">
+        <div class="col-sm-4">
+            <div class="form-group">
+                <label class="col-sm-4 control-label">签收照片:</label>
+                <div class="col-sm-8">
+                    <input id="signaturePhoto" name="signaturePhoto"  type="text" maxlength="1000"  class="form-control" placeholder="签收照片">
+                </div>
+            </div>
+        </div>
+            <div class="col-sm-4">
+                <div class="form-group">
+                    <label class="col-sm-4 control-label">配送员:</label>
+                    <div class="col-sm-8">
+                        <input id="deliveryPerson" name="deliveryPerson" placeholder="请输入配送员" class="form-control" type="text" maxlength="50" >
+                    </div>
+                </div>
+            </div>
+
+
+        <div class="col-sm-4">
+            <div class="form-group">
+                <label class="col-sm-4 control-label">配送箱编号:</label>
+                <div class="col-sm-8">
+                    <input id="deliveryBoxNumber" name="deliveryBoxNumber"  type="text" maxlength="25"  class="form-control" placeholder="配送箱编号">
+                </div>
+            </div>
+        </div>
+        </div>
+        <h4 class="form-header h4">其他信息</h4>
+        <div class="row">
+                <div class="col-sm-6">
+                    <div class="form-group">
+                        <label class="col-sm-4 control-label">付款顺序:</label>
+                        <div class="col-sm-8">
+                            <select name="paymentSequence" class="form-control" th:with="type=${@dict.getType('sys_select_payment_sequence')}">
+                                <option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}"
+                                ></option>
+                            </select>
+                        </div>
+                    </div>
+                </div>
+        </div>
+
+    </form>
+</div>
+
+<div class="row">
+    <div class="col-sm-offset-5 col-sm-10">
+        <button type="button" class="btn btn-sm btn-primary" onclick="submitHandler()"><i class="fa fa-check"></i>保 存</button>&nbsp;
+        <button type="button" class="btn btn-sm btn-danger" onclick="closeItem()"><i class="fa fa-reply-all"></i>关 闭 </button>
+    </div>
+</div>
+<th:block th:include="include :: footer" />
+<th:block th:include="include :: select2-js" />
+<script>
+    var prefix = ctx + "dtp/cold";
+    var prescriptionTypes = [
+        { label: '电子处方', value: 'electronic' },
+        { label: '纸质处方', value: 'paper' }
+    ];
+
+
+    function submitHandler() {
+        if ($.validate.form()) {
+            var data = $("#form-user-add").serializeArray();
+
+            $.operate.saveTab(prefix + "/add", data);
+        }
+    }
+
+    /* 用户管理-新增-选择部门树 */
+    function selectDeptTree() {
+        var treeId = $("#treeId").val();
+        var deptId = $.common.isEmpty(treeId) ? "100" : $("#treeId").val();
+        var url = ctx + "system/user/selectDeptTree/" + deptId;
+        var options = {
+            title: '选择部门',
+            width: "380",
+            url: url,
+            callBack: doSubmit
+        };
+        $.modal.openOptions(options);
+    }
+
+    function doSubmit(index, layero){
+        var body = $.modal.getChildFrame(index);
+        $("#treeId").val(body.find('#treeId').val());
+        $("#treeName").val(body.find('#treeName').val());
+        $.modal.close(index);
+    }
+
+    $(function() {
+        $('#post').select2({
+            placeholder: "请选择岗位",
+            allowClear: true
+        });
+    })
+</script>
+</body>
+</html>

+ 0 - 0
health-admin/src/main/resources/templates/DTP/cold/cold.html → health-admin/src/main/resources/templates/dtp/cold/cold.html


+ 0 - 0
health-admin/src/main/resources/templates/DTP/cold/edit.html → health-admin/src/main/resources/templates/dtp/cold/edit.html


+ 156 - 0
health-admin/src/main/resources/templates/dtp/configInfo/AssociatedPrescription.html

@@ -0,0 +1,156 @@
+<!DOCTYPE html>
+<html lang="zh" xmlns:th="http://www.thymeleaf.org" xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
+<head>
+	<th:block th:include="include :: header('DTP医院')" />
+	<th:block th:include="include :: layout-latest-css" />
+	<th:block th:include="include :: ztree-css" />
+</head>
+<body class="gray-bg">
+
+<div class="ui-layout-center">
+	<div class="container-div">
+		<div class="row">
+			<div class="col-sm-12 search-collapse">
+				<form id="tag-form">
+					<input type="hidden" id="deptId" name="deptId">
+					<input type="hidden" id="parentId" name="parentId">
+					<div class="select-list">
+						<ul>
+							<li>
+								医院名称:<input type="text"  class="styled-input" placeholder="请输入医院名称" name="standardName"/>
+							</li>
+							<li>
+								<a class="btn btn-primary btn-rounded btn-sm" onclick="$.table.search()"><i class="fa fa-search"></i>&nbsp;搜索</a>
+								<a class="btn btn-warning btn-rounded btn-sm" onclick="resetPre()"><i class="fa fa-refresh"></i>&nbsp;重置</a>
+							</li>
+						</ul>
+					</div>
+				</form>
+			</div>
+			<div class="col-sm-12 select-table table-striped">
+				<table id="bootstrap-table"></table>
+			</div>
+		</div>
+	</div>
+</div>
+
+<th:block th:include="include :: footer" />
+<th:block th:include="include :: layout-latest-js" />
+<th:block th:include="include :: ztree-js" />
+<script th:inline="javascript">
+	var GLCF = [[${@permission.hasPermi('dtp:configInfo:view')}]];
+	var prefix = ctx + "dtp/configInfo";
+
+	$(function() {
+		var panehHidden = false;
+		if ($(this).width() < 1590) {
+			panehHidden = true;
+		}
+		$('body').layout({ initClosed: panehHidden, west__size: 185, resizeWithWindow: false });
+		// 回到顶部绑定
+		if ($.fn.toTop !== undefined) {
+			var opt = {
+				win:$('.ui-layout-center'),
+				doc:$('.ui-layout-center')
+			};
+			$('#scroll-up').toTop(opt);
+		}
+		queryUserList();
+	});
+
+	function queryUserList() {
+		var options = {
+			url: prefix + "/dtpHospitalList",
+			viewUrl: prefix + "/AssociatedPrescription/{id}",
+			sortName: "createTime",
+			sortOrder: "desc",
+			modalName: "医院名单",
+			columns: [
+				{
+					field: "id",
+					title: "医院主键",
+					align: 'center',
+					visible: true,
+				},{
+					field: "standardName",
+					title: "医院标准名称",
+					align: 'center',
+				},
+				{
+					"field": "address",
+					"title": "医院地址",
+					align: 'center',
+				},{
+					"field": "phone",
+					"title": "医院电话",
+					align: 'center',
+				} ,{
+					title: '操作',
+					align: 'center',
+					formatter: function(value, row, index) {
+						if (row.id) {
+							var actions = [];
+							actions.push('<a class="btn btn-success btn-xs' + GLCF + '" href="javascript:void(0)" onclick="viewPrescription(\'' + row.id + '\')"><i class="fa fa-search"></i>\t查看关联处方</a>');
+							return actions.join('');
+						} else {
+							return "";
+						}
+					}
+				}]
+		};
+		$.table.init(options);
+	}
+
+	$('#btnExpand').click(function() {
+		$._tree.expandAll(true);
+		$(this).hide();
+		$('#btnCollapse').show();
+	});
+
+	$('#btnCollapse').click(function() {
+		$._tree.expandAll(false);
+		$(this).hide();
+		$('#btnExpand').show();
+	});
+
+	$('#btnRefresh').click(function() {
+	});
+
+	/* 用户管理-新增-选择部门树 */
+	function selectDeptTree() {
+		var treeId = $("#treeId").val();
+		var deptId = $.common.isEmpty(treeId) ? "100" : $("#treeId").val();
+		var url = ctx + "system/user/selectDeptTree/" + deptId;
+		var options = {
+			title: '选择部门',
+			width: "380",
+			url: url,
+			callBack: doSubmit
+		};
+		$.modal.openOptions(options);
+	}
+
+	function doSubmit(index, layero){
+		var body = $.modal.getChildFrame(index);
+		$("#treeId").val(body.find('#treeId').val());
+		$("#treeName").val(body.find('#treeName').val());
+		$.modal.close(index);
+	}
+
+	/* 自定义重置-表单重置/隐藏框/树节点选择色/搜索 */
+	function resetPre() {
+		resetDate();
+		$("#tag-form")[0].reset();
+		$("#deptId").val("");
+		$("#parentId").val("");
+		$(".curSelectedNode").removeClass("curSelectedNode");
+		$.table.search();
+	}
+	function viewPrescription(id){
+		var url = prefix + "/AssociatedPrescription/" + id;
+		$.modal.openTab("关联处方", url);
+	}
+</script>
+</body>
+
+</html>

+ 259 - 0
health-admin/src/main/resources/templates/dtp/configInfo/addDrug.html

@@ -0,0 +1,259 @@
+<!DOCTYPE html>
+<html lang="zh" xmlns:th="http://www.thymeleaf.org" >
+<head>
+    <th:block th:include="include :: header('新增处方')" />
+    <th:block th:include="include :: select2-css" />
+</head>
+<body>
+<div class="main-content">
+    <form id="form-user-add" class="form-horizontal">
+        <input name="deptId" type="hidden" id="treeId"/>
+        <h4 class="form-header h4">配送单信息</h4>
+        <div class="row">
+            <div class="col-sm-3">
+                <div class="form-group">
+                    <label>预计配送时间</label>
+                    <input type="text" class="time-input" id="expectedDeliveryTime"  name="expectedDeliveryTime" placeholder="预计配送时间" />
+                </div>
+            </div>
+            <div class="col-sm-3">
+                <div class="form-group">
+                    <div class="form-group">
+                        <label>实际配送时间</label>
+                        <input type="text" class="time-input" id="actualDeliveryTime" placeholder="实际配送时间" name="actualDeliveryTime"/>
+                    </div>
+                </div>
+            </div>
+
+            <div class="col-sm-3">
+                <div class="form-group">
+                    <label class="col-sm-4 control-label is-required">所属连锁:</label>
+                    <div class="col-sm-8">
+                        <div class="input-group">
+                        <input name="chainName" onclick="selectDeptTree()" id="treeName" type="text" placeholder="请选择门店" class="form-control">
+                        <span class="input-group-addon">
+                        <i class="fa fa-search"></i>
+                    </span>
+                        </div>
+                    </div>
+                </div>
+            </div>
+            <div class="col-sm-3">
+                <div class="form-group">
+                    <label class="col-sm-4 control-label is-required">所属门店:</label>
+                    <div class="col-sm-8">
+                        <select name="storeName" class="form-control" th:with="type=${@dict.getType('sys_select_store')}">
+                            <option value="">请选择</option>
+                            <option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}"
+                            ></option>
+                        </select>
+                    </div>
+                </div>
+            </div>
+        </div>
+        <div class="row">
+            <div class="col-sm-3">
+                <div class="form-group">
+                    <label class="col-sm-6 control-label">是否线上签收:</label>
+                    <div class="col-sm-4">
+                        <select name="prescriptionType" class="form-control" th:with="type=${@dict.getType('sys_yes_no')}">
+                            <option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}"
+                            ></option>
+                        </select>
+                    </div>
+                </div>
+            </div>
+
+            <div class="col-sm-3">
+                <div class="form-group">
+                    <label class="col-sm-4 control-label">配送状态:</label>
+                    <div class="col-sm-4">
+                        <select name="deliveryStatus"  class="form-control"  th:with="type=${@dict.getType('sys_select_pszt')}">
+                            <option value="">全部</option>
+                            <option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictLabel}"></option>
+                        </select>
+                    </div>
+                </div>
+            </div>
+            <div class="col-sm-3">
+                <div class="form-group">
+                    <label class="col-sm-4 control-label">冷链类型:</label>
+                    <div class="col-sm-4">
+                        <select name="coldChainType"  class="form-control"  th:with="type=${@dict.getType('sys_select_cold_type')}">
+                            <option value="">全部</option>
+                            <option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictLabel}"
+                            ></option>
+                        </select>
+                    </div>
+                </div>
+            </div>
+            <div class="col-sm-3">
+                <div class="form-group">
+                    <label class="col-sm-4 control-label">订单来源:</label>
+                    <div class="col-sm-4">
+                        <select name="orderSource"  class="form-control"  th:with="type=${@dict.getType('sys_select_order_sources')}">
+                            <option value="">全部</option>
+                            <option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictLabel}"
+                            ></option>
+                        </select>
+                    </div>
+                </div>
+            </div>
+
+        </div>
+        <div class="row">
+            <div class="col-sm-4">
+                <div class="form-group">
+                    <label class="col-sm-4 control-label">收货人:</label>
+                    <div class="col-sm-8">
+                        <input id="recipientName" name="recipientName"  type="text" maxlength="100"  class="form-control" placeholder="请输入收货人">
+                    </div>
+                </div>
+            </div>
+            <div class="col-sm-4">
+                <div class="form-group">
+                    <label class="col-sm-4 control-label">收货电话:</label>
+                    <div class="col-sm-8">
+                        <input id="recipientPhone" name="recipientPhone"  type="number" maxlength="11"  class="form-control" placeholder="请输入收货电话">
+                    </div>
+                </div>
+            </div>
+
+            <div class="col-sm-4">
+                <div class="form-group">
+                    <label class="col-sm-4 control-label">冰排编号:</label>
+
+                    <div class="col-sm-8">
+                        <input id="icePackNumber" name="icePackNumber" placeholder="请输入冰排编号" class="form-control" type="text" maxlength="50" >
+                    </div>
+                </div>
+            </div>
+
+
+        </div>
+        <div class="row">
+            <div class="col-sm-4">
+                <div class="form-group">
+                    <label class="col-sm-4 control-label">收货地址:</label>
+                    <div class="col-sm-8">
+                        <input id="recipientAddress" name="recipientAddress"  type="text" maxlength="1000"  class="form-control" placeholder="请输入收货地址">
+                    </div>
+                </div>
+            </div>
+            <div class="col-sm-4">
+                <div class="form-group">
+                    <label class="col-sm-4 control-label">出发温度:</label>
+                    <div class="col-sm-8">
+                        <input id="departureTemperature" name="departureTemperature"  type="text" maxlength="10"  class="form-control" placeholder="请输入出发温度">
+                    </div>
+                </div>
+            </div>
+            <div class="col-sm-4">
+                <div class="form-group">
+                    <label class="col-sm-4 control-label">送达温度:</label>
+                    <div class="col-sm-8">
+                        <input id="arrivalTemperature" name="arrivalTemperature"  type="text" maxlength="10"  class="form-control" placeholder="请输入送达温度">
+                    </div>
+                </div>
+            </div>
+        </div>
+        <div class="row">
+        <div class="col-sm-4">
+            <div class="form-group">
+                <label class="col-sm-4 control-label">签收照片:</label>
+                <div class="col-sm-8">
+                    <input id="signaturePhoto" name="signaturePhoto"  type="text" maxlength="1000"  class="form-control" placeholder="签收照片">
+                </div>
+            </div>
+        </div>
+            <div class="col-sm-4">
+                <div class="form-group">
+                    <label class="col-sm-4 control-label">配送员:</label>
+                    <div class="col-sm-8">
+                        <input id="deliveryPerson" name="deliveryPerson" placeholder="请输入配送员" class="form-control" type="text" maxlength="50" >
+                    </div>
+                </div>
+            </div>
+
+
+        <div class="col-sm-4">
+            <div class="form-group">
+                <label class="col-sm-4 control-label">配送箱编号:</label>
+                <div class="col-sm-8">
+                    <input id="deliveryBoxNumber" name="deliveryBoxNumber"  type="text" maxlength="25"  class="form-control" placeholder="配送箱编号">
+                </div>
+            </div>
+        </div>
+        </div>
+        <h4 class="form-header h4">其他信息</h4>
+        <div class="row">
+                <div class="col-sm-6">
+                    <div class="form-group">
+                        <label class="col-sm-4 control-label">付款顺序:</label>
+                        <div class="col-sm-8">
+                            <select name="paymentSequence" class="form-control" th:with="type=${@dict.getType('sys_select_payment_sequence')}">
+                                <option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}"
+                                ></option>
+                            </select>
+                        </div>
+                    </div>
+                </div>
+        </div>
+
+    </form>
+</div>
+
+<div class="row">
+    <div class="col-sm-offset-5 col-sm-10">
+        <button type="button" class="btn btn-sm btn-primary" onclick="submitHandler()"><i class="fa fa-check"></i>保 存</button>&nbsp;
+        <button type="button" class="btn btn-sm btn-danger" onclick="closeItem()"><i class="fa fa-reply-all"></i>关 闭 </button>
+    </div>
+</div>
+<th:block th:include="include :: footer" />
+<th:block th:include="include :: select2-js" />
+<script>
+    var prefix = ctx + "dtp/cold";
+    var prescriptionTypes = [
+        { label: '电子处方', value: 'electronic' },
+        { label: '纸质处方', value: 'paper' }
+    ];
+
+
+    function submitHandler() {
+        if ($.validate.form()) {
+            var data = $("#form-user-add").serializeArray();
+
+            $.operate.saveTab(prefix + "/add", data);
+        }
+    }
+
+    /* 用户管理-新增-选择部门树 */
+    function selectDeptTree() {
+        var treeId = $("#treeId").val();
+        var deptId = $.common.isEmpty(treeId) ? "100" : $("#treeId").val();
+        var url = ctx + "system/user/selectDeptTree/" + deptId;
+        var options = {
+            title: '选择部门',
+            width: "380",
+            url: url,
+            callBack: doSubmit
+        };
+        $.modal.openOptions(options);
+    }
+
+    function doSubmit(index, layero){
+        var body = $.modal.getChildFrame(index);
+        $("#treeId").val(body.find('#treeId').val());
+        $("#treeName").val(body.find('#treeName').val());
+        $.modal.close(index);
+    }
+
+    $(function() {
+        $('#post').select2({
+            placeholder: "请选择岗位",
+            allowClear: true
+        });
+    })
+</script>
+</body>
+</html>

+ 0 - 0
health-admin/src/main/resources/templates/DTP/print/print.html → health-admin/src/main/resources/templates/dtp/configInfo/drugList.html


+ 156 - 0
health-admin/src/main/resources/templates/dtp/configInfo/dtpHospital.html

@@ -0,0 +1,156 @@
+<!DOCTYPE html>
+<html lang="zh" xmlns:th="http://www.thymeleaf.org" xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
+<head>
+	<th:block th:include="include :: header('DTP医院')" />
+	<th:block th:include="include :: layout-latest-css" />
+	<th:block th:include="include :: ztree-css" />
+</head>
+<body class="gray-bg">
+
+<div class="ui-layout-center">
+	<div class="container-div">
+		<div class="row">
+			<div class="col-sm-12 search-collapse">
+				<form id="tag-form">
+					<input type="hidden" id="deptId" name="deptId">
+					<input type="hidden" id="parentId" name="parentId">
+					<div class="select-list">
+						<ul>
+							<li>
+								医院名称:<input type="text"  class="styled-input" placeholder="请输入医院名称" name="standardName"/>
+							</li>
+							<li>
+								<a class="btn btn-primary btn-rounded btn-sm" onclick="$.table.search()"><i class="fa fa-search"></i>&nbsp;搜索</a>
+								<a class="btn btn-warning btn-rounded btn-sm" onclick="resetPre()"><i class="fa fa-refresh"></i>&nbsp;重置</a>
+							</li>
+						</ul>
+					</div>
+				</form>
+			</div>
+			<div class="col-sm-12 select-table table-striped">
+				<table id="bootstrap-table"></table>
+			</div>
+		</div>
+	</div>
+</div>
+
+<th:block th:include="include :: footer" />
+<th:block th:include="include :: layout-latest-js" />
+<th:block th:include="include :: ztree-js" />
+<script th:inline="javascript">
+	var GLCF = [[${@permission.hasPermi('dtp:configInfo:view')}]];
+	var prefix = ctx + "dtp/configInfo";
+
+	$(function() {
+		var panehHidden = false;
+		if ($(this).width() < 1590) {
+			panehHidden = true;
+		}
+		$('body').layout({ initClosed: panehHidden, west__size: 185, resizeWithWindow: false });
+		// 回到顶部绑定
+		if ($.fn.toTop !== undefined) {
+			var opt = {
+				win:$('.ui-layout-center'),
+				doc:$('.ui-layout-center')
+			};
+			$('#scroll-up').toTop(opt);
+		}
+		queryUserList();
+	});
+
+	function queryUserList() {
+		var options = {
+			url: prefix + "/dtpHospitalList",
+			viewUrl: prefix + "/AssociatedPrescription/{id}",
+			sortName: "createTime",
+			sortOrder: "desc",
+			modalName: "医院名单",
+			columns: [
+				{
+					field: "id",
+					title: "医院主键",
+					align: 'center',
+					visible: true,
+				},{
+					field: "standardName",
+					title: "医院标准名称",
+					align: 'center',
+				},
+				{
+					"field": "address",
+					"title": "医院地址",
+					align: 'center',
+				},{
+					"field": "phone",
+					"title": "医院电话",
+					align: 'center',
+				} ,{
+					title: '操作',
+					align: 'center',
+					formatter: function(value, row, index) {
+						if (row.id) {
+							var actions = [];
+							actions.push('<a class="btn btn-success btn-xs' + GLCF + '" href="javascript:void(0)" onclick="viewPrescription(\'' + row.id + '\')"><i class="fa fa-search"></i>\t查看关联处方</a>');
+							return actions.join('');
+						} else {
+							return "";
+						}
+					}
+				}]
+		};
+		$.table.init(options);
+	}
+
+	$('#btnExpand').click(function() {
+		$._tree.expandAll(true);
+		$(this).hide();
+		$('#btnCollapse').show();
+	});
+
+	$('#btnCollapse').click(function() {
+		$._tree.expandAll(false);
+		$(this).hide();
+		$('#btnExpand').show();
+	});
+
+	$('#btnRefresh').click(function() {
+	});
+
+	/* 用户管理-新增-选择部门树 */
+	function selectDeptTree() {
+		var treeId = $("#treeId").val();
+		var deptId = $.common.isEmpty(treeId) ? "100" : $("#treeId").val();
+		var url = ctx + "system/user/selectDeptTree/" + deptId;
+		var options = {
+			title: '选择部门',
+			width: "380",
+			url: url,
+			callBack: doSubmit
+		};
+		$.modal.openOptions(options);
+	}
+
+	function doSubmit(index, layero){
+		var body = $.modal.getChildFrame(index);
+		$("#treeId").val(body.find('#treeId').val());
+		$("#treeName").val(body.find('#treeName').val());
+		$.modal.close(index);
+	}
+
+	/* 自定义重置-表单重置/隐藏框/树节点选择色/搜索 */
+	function resetPre() {
+		resetDate();
+		$("#tag-form")[0].reset();
+		$("#deptId").val("");
+		$("#parentId").val("");
+		$(".curSelectedNode").removeClass("curSelectedNode");
+		$.table.search();
+	}
+	function viewPrescription(id){
+		var url = prefix + "/AssociatedPrescription/" + id;
+		$.modal.openTab("关联处方", url);
+	}
+</script>
+</body>
+
+</html>

+ 250 - 0
health-admin/src/main/resources/templates/dtp/configInfo/editDrug.html

@@ -0,0 +1,250 @@
+<!DOCTYPE html>
+<html lang="zh" xmlns:th="http://www.thymeleaf.org" >
+<head>
+    <th:block th:include="include :: header('修改配送单')" />
+</head>
+<body>
+<div class="main-content">
+    <form class="form-horizontal" id="form-server-edit" th:object="${cold}">
+        <h4 class="form-header h4">处方信息</h4>
+        <input type="hidden" id="id" name="id" th:value="${id}">
+        <div class="row">
+            <div class="col-sm-3">
+                <label class="col-sm-4 control-label">预计配送时间</label>
+                <div class="form-group">
+                    <input type="text" class="styled-input time-input-new" id="expectedDeliveryTime"  name="expectedDeliveryTime" placeholder="预计配送时间" th:value="${expectedDeliveryTime}"/>
+                </div>
+            </div>
+            <div class="col-sm-3">
+                <div class="form-group">
+                    <div class="form-group">
+                        <label class="col-sm-4 control-label">实际配送时间</label>
+                        <input type="text" class="styled-input time-input-new" id="actualDeliveryTime" placeholder="实际配送时间" name="actualDeliveryTime" th:value="${expectedDeliveryTime}"/>
+                    </div>
+                </div>
+            </div>
+
+            <div class="col-sm-3">
+                <div class="form-group">
+                    <label class="col-sm-4 control-label is-required">所属连锁:</label>
+                    <div class="col-sm-8">
+                        <div class="input-group">
+                            <input name="chainName" onclick="selectDeptTree()" id="treeName" type="text" placeholder="请选择门店" class="form-control" th:value="${chainName}">
+                            <span class="input-group-addon">
+                        <i class="fa fa-search"></i>
+                    </span>
+                        </div>
+                    </div>
+                </div>
+            </div>
+            <div class="col-sm-3">
+                <div class="form-group">
+                    <label class="col-sm-4 control-label is-required">所属门店:</label>
+                    <div class="col-sm-8">
+                        <select name="storeName" class="form-control" th:with="type=${@dict.getType('sys_select_store')}">
+                            <option value="">请选择</option>
+                            <option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}" th:selected="${dict.dictValue}==${storeName}"
+                            ></option>
+                        </select>
+                    </div>
+                </div>
+            </div>
+        </div>
+        <div class="row">
+            <div class="col-sm-3">
+                <div class="form-group">
+                    <label class="col-sm-6 control-label">是否线上签收:</label>
+                    <div class="col-sm-4">
+                        <select name="prescriptionType" class="form-control" th:with="type=${@dict.getType('sys_yes_no')}">
+                            <option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}" th:selected="${dict.dictLabel}==${prescriptionType}"
+                            ></option>
+                        </select>
+                    </div>
+                </div>
+            </div>
+
+            <div class="col-sm-3">
+                <div class="form-group">
+                    <label class="col-sm-4 control-label">配送状态:</label>
+                    <div class="col-sm-4">
+                        <select name="deliveryStatus"  class="form-control"  th:with="type=${@dict.getType('sys_select_pszt')}">
+                            <option value="">全部</option>
+                            <option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictLabel}" th:selected="${dict.dictLabel}==${deliveryStatus}"></option>
+                        </select>
+                    </div>
+                </div>
+            </div>
+            <div class="col-sm-3">
+                <div class="form-group">
+                    <label class="col-sm-4 control-label">冷链类型:</label>
+                    <div class="col-sm-4">
+                        <select name="coldChainType"  class="form-control"  th:with="type=${@dict.getType('sys_select_cold_type')}">
+                            <option value="">全部</option>
+                            <option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictLabel}" th:selected="${dict.dictLabel}==${coldChainType}"
+                            ></option>
+                        </select>
+                    </div>
+                </div>
+            </div>
+            <div class="col-sm-3">
+                <div class="form-group">
+                    <label class="col-sm-4 control-label">订单来源:</label>
+                    <div class="col-sm-4">
+                        <select name="orderSource"  class="form-control"  th:with="type=${@dict.getType('sys_select_order_sources')}">
+                            <option value="">全部</option>
+                            <option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictLabel}" th:selected="${dict.dictLabel}==${orderSource}"
+                            ></option>
+                        </select>
+                    </div>
+                </div>
+            </div>
+
+        </div>
+        <div class="row">
+            <div class="col-sm-4">
+                <div class="form-group">
+                    <label class="col-sm-4 control-label">收货人:</label>
+                    <div class="col-sm-8">
+                        <input id="recipientName" name="recipientName"  type="text" maxlength="100"  class="form-control" placeholder="请输入收货人" th:value="${recipientName}">
+                    </div>
+                </div>
+            </div>
+            <div class="col-sm-4">
+                <div class="form-group">
+                    <label class="col-sm-4 control-label">收货电话:</label>
+                    <div class="col-sm-8">
+                        <input id="recipientPhone" name="recipientPhone"  type="number" maxlength="11"  class="form-control" placeholder="请输入收货电话" th:value="${recipientPhone}">
+                    </div>
+                </div>
+            </div>
+
+            <div class="col-sm-4">
+                <div class="form-group">
+                    <label class="col-sm-4 control-label">冰排编号:</label>
+
+                    <div class="col-sm-8">
+                        <input id="icePackNumber" name="icePackNumber" placeholder="请输入冰排编号" class="form-control" type="text" maxlength="50" th:value="${icePackNumber}">
+                    </div>
+                </div>
+            </div>
+
+
+        </div>
+        <div class="row">
+            <div class="col-sm-4">
+                <div class="form-group">
+                    <label class="col-sm-4 control-label">收货地址:</label>
+                    <div class="col-sm-8">
+                        <input id="recipientAddress" name="recipientAddress"  type="text" maxlength="1000"  class="form-control" placeholder="请输入收货地址" th:value="${recipientAddress}">
+                    </div>
+                </div>
+            </div>
+            <div class="col-sm-4">
+                <div class="form-group">
+                    <label class="col-sm-4 control-label">出发温度:</label>
+                    <div class="col-sm-8">
+                        <input id="departureTemperature" name="departureTemperature"  type="text" maxlength="10"  class="form-control" placeholder="请输入出发温度" th:value="${departureTemperature}">
+                    </div>
+                </div>
+            </div>
+            <div class="col-sm-4">
+                <div class="form-group">
+                    <label class="col-sm-4 control-label">送达温度:</label>
+                    <div class="col-sm-8">
+                        <input id="arrivalTemperature" name="arrivalTemperature"  type="text" maxlength="10"  class="form-control" placeholder="请输入送达温度" th:value="${arrivalTemperature}">
+                    </div>
+                </div>
+            </div>
+        </div>
+        <div class="row">
+            <div class="col-sm-4">
+                <div class="form-group">
+                    <label class="col-sm-4 control-label">签收照片:</label>
+                    <div class="col-sm-8">
+                        <input id="signaturePhoto" name="signaturePhoto"  type="text" maxlength="1000"  class="form-control" placeholder="签收照片" th:value="${signaturePhoto}">
+                    </div>
+                </div>
+            </div>
+            <div class="col-sm-4">
+                <div class="form-group">
+                    <label class="col-sm-4 control-label">配送员:</label>
+                    <div class="col-sm-8">
+                        <input id="deliveryPerson" name="deliveryPerson" placeholder="请输入配送员" class="form-control" type="text" maxlength="50"  th:value="${deliveryPerson}">
+                    </div>
+                </div>
+            </div>
+
+
+            <div class="col-sm-4">
+                <div class="form-group">
+                    <label class="col-sm-4 control-label">配送箱编号:</label>
+                    <div class="col-sm-8">
+                        <input id="deliveryBoxNumber" name="deliveryBoxNumber"  type="text" maxlength="25"  class="form-control" placeholder="配送箱编号" th:value="${deliveryBoxNumber}">
+                    </div>
+                </div>
+            </div>
+        </div>
+        <h4 class="form-header h4">其他信息</h4>
+        <div class="row">
+            <div class="col-sm-6">
+                <div class="form-group">
+                    <label class="col-sm-4 control-label">付款顺序:</label>
+                    <div class="col-sm-8">
+                        <select name="paymentSequence" class="form-control" th:with="type=${@dict.getType('sys_select_payment_sequence')}">
+                            <option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}" th:selected="${dict.dictValue}==${paymentSequence}"
+                            ></option>
+                        </select>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </form>
+</div>
+<div class="main-content">
+    <div class="col-sm-offset-5 col-sm-10">
+        <button type="button" class="btn btn-sm btn-primary" onclick="submitHandler()"><i class="fa fa-check"></i>保 存</button>&nbsp;
+        <button type="button" class="btn btn-sm btn-danger" onclick="closeItem()"><i class="fa fa-reply-all"></i>关 闭 </button>
+    </div>
+</div>
+<th:block th:include="include :: footer" />
+</body>
+</html>
+
+<script>
+
+    /* 用户管理-新增-选择部门树 */
+    function selectDeptTree() {
+        var treeId = $("#treeId").val();
+        var deptId = $.common.isEmpty(treeId) ? "100" : $("#treeId").val();
+        var url = ctx + "system/user/selectDeptTree/" + deptId;
+        var options = {
+            title: '选择部门',
+            width: "380",
+            url: url,
+            callBack: doSubmit
+        };
+        $.modal.openOptions(options);
+    }
+
+    function doSubmit(index, layero){
+        var body = $.modal.getChildFrame(index);
+        $("#treeId").val(body.find('#treeId').val());
+        $("#treeName").val(body.find('#treeName').val());
+        $.modal.close(index);
+    }
+
+
+    function submitHandler() {
+        var prefix = ctx + "dtp/cold";
+        if ($.validate.form()) {
+            var data = $("#form-server-edit").serializeArray();
+            /*var status = $("input[id='status']").is(':checked') == true ? 0 : 1;
+            var roleIds = $.form.selectCheckeds("role");
+            var postIds = $.form.selectSelects("post");
+            data.push({"name": "status", "value": status});
+            data.push({"name": "roleIds", "value": roleIds});
+            data.push({"name": "postIds", "value": postIds});*/
+            $.operate.saveTab(prefix + "/edit", data);
+        }
+    }
+</script>

+ 177 - 0
health-admin/src/main/resources/templates/dtp/configInfo/storeTag.html

@@ -0,0 +1,177 @@
+<!DOCTYPE html>
+<html lang="zh" xmlns:th="http://www.thymeleaf.org" xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
+<head>
+	<th:block th:include="include :: header('一店一目标签')" />
+	<th:block th:include="include :: layout-latest-css" />
+	<th:block th:include="include :: ztree-css" />
+</head>
+<body class="gray-bg">
+
+	<div class="ui-layout-center">
+		<div class="container-div">
+			<div class="row">
+				<div class="col-sm-12 search-collapse">
+					<form id="tag-form">
+						<input type="hidden" id="deptId" name="deptId">
+						<input type="hidden" id="parentId" name="parentId">
+						<div class="select-list">
+							<ul>
+								<li>
+									MDM编码:<input type="text"  class="styled-input" placeholder="请输入MDM编码" name="mdmCode"/>
+								</li>
+								<li>
+									<label>门店:</label>
+									<input name="storeName" class="styled-input" onclick="selectDeptTree()" id="treeName" type="text" placeholder="请选择门店">
+								</li>
+
+								<li>
+									<a class="btn btn-primary btn-rounded btn-sm" onclick="$.table.search()"><i class="fa fa-search"></i>&nbsp;搜索</a>
+								    <a class="btn btn-warning btn-rounded btn-sm" onclick="resetPre()"><i class="fa fa-refresh"></i>&nbsp;重置</a>
+								</li>
+							</ul>
+						</div>
+					</form>
+				</div>
+		        <div class="col-sm-12 select-table table-striped">
+				    <table id="bootstrap-table"></table>
+				</div>
+			</div>
+		</div>
+	</div>
+
+	<th:block th:include="include :: footer" />
+	<th:block th:include="include :: layout-latest-js" />
+	<th:block th:include="include :: ztree-js" />
+	<script th:inline="javascript">
+		var viewFlag = [[${@permission.hasPermi('dtp:configInfo:list')}]];
+		var prefix = ctx + "dtp/configInfo";
+
+		$(function() {
+		    var panehHidden = false;
+		    if ($(this).width() < 1590) {
+		        panehHidden = true;
+		    }
+		    $('body').layout({ initClosed: panehHidden, west__size: 185, resizeWithWindow: false });
+	     	// 回到顶部绑定
+	    	if ($.fn.toTop !== undefined) {
+	    		var opt = {
+	    			win:$('.ui-layout-center'),
+	    			doc:$('.ui-layout-center')
+	    		};
+	    		$('#scroll-up').toTop(opt);
+	    	}
+		    queryUserList();
+		});
+
+		function queryUserList() {
+		    var options = {
+		        url: prefix + "/storeTagList",
+		        viewUrl: prefix + "/view/{id}",
+		        exportUrl: prefix + "/export",
+		        sortName: "createTime",
+		        sortOrder: "desc",
+		        modalName: "一店一目查询",
+		        columns: [
+					{
+						field: "id",
+						title: "id",
+						//hidden:false
+						visible: false,
+					},
+					{
+						field: "storeId",
+						title: "门店id"
+					},{
+						field: "storeCode",
+						title: "门店编码"
+					},
+					{
+						"field": "storeName",
+						"title": "门店名称"
+					},{
+						"field": "mdmCode",
+						"title": "MDM编码"
+					},{
+						"field": "productName",
+						"title": "药品商品名"
+					},{
+						"field": "genericName",
+						"title": "药品通用名"
+					},{
+						"field": "manufacturer",
+						"title": "厂家"
+					},{
+						"field": "specification",
+						"title": "规格"
+					},{
+						"field": "isPrescriptionItem",
+						"title": "是否为处方登记品"
+					},{
+						"field": "isFlipItem",
+						"title": "是否为上翻品"
+					},{
+						"field": "isFollowUpItem",
+						"title": "是否为随访品"
+					},
+					{
+						"field": "isMandatoryRegistration",
+						"title": "是否强制登记"
+					},
+					{
+						"field": "isColdChainItem",
+						"title": "是否为冷链品"
+					}]
+		    };
+		    $.table.init(options);
+		}
+
+		$('#btnExpand').click(function() {
+			$._tree.expandAll(true);
+		    $(this).hide();
+		    $('#btnCollapse').show();
+		});
+
+		$('#btnCollapse').click(function() {
+			$._tree.expandAll(false);
+		    $(this).hide();
+		    $('#btnExpand').show();
+		});
+
+		$('#btnRefresh').click(function() {
+		});
+
+		/* 用户管理-新增-选择部门树 */
+		function selectDeptTree() {
+			var treeId = $("#treeId").val();
+			var deptId = $.common.isEmpty(treeId) ? "100" : $("#treeId").val();
+			var url = ctx + "system/user/selectDeptTree/" + deptId;
+			var options = {
+				title: '选择部门',
+				width: "380",
+				url: url,
+				callBack: doSubmit
+			};
+			$.modal.openOptions(options);
+		}
+
+		function doSubmit(index, layero){
+			var body = $.modal.getChildFrame(index);
+			$("#treeId").val(body.find('#treeId').val());
+			$("#treeName").val(body.find('#treeName').val());
+			$.modal.close(index);
+		}
+
+		/* 自定义重置-表单重置/隐藏框/树节点选择色/搜索 */
+		function resetPre() {
+			resetDate();
+			$("#tag-form")[0].reset();
+			$("#deptId").val("");
+			$("#parentId").val("");
+			$(".curSelectedNode").removeClass("curSelectedNode");
+			$.table.search();
+		}
+
+	</script>
+</body>
+
+</html>

+ 200 - 0
health-admin/src/main/resources/templates/dtp/followUp/followUpEdit.html

@@ -0,0 +1,200 @@
+ <!DOCTYPE html>
+<html lang="zh" xmlns:th="http://www.thymeleaf.org" >
+<head>
+    <th:block th:include="include :: header('随访任务')" />
+</head>
+<style>
+
+</style>
+<script>
+
+</script>
+<body>
+    <div class="ui-layout-center">
+        <form class="form-horizontal" id="form-followUp-edit" th:object="${user}">
+            <h4 class="form-header h4">基本信息</h4>
+            <input type="hidden" id="id" name="id" th:value="${id}">
+            <div class="row">
+
+                <div class="col-sm-12">
+                    <div class="form-group">
+                        <!--is-required 增加星号 显示为必填-->
+                        <label class="col-sm-1 control-label">预约日期:</label>
+                        <div class="col-sm-2" >
+                            <div class="input-group">
+                                <input type="text" class="styled-input time-input-new" id="appointmentDate" placeholder="预约日期" name="appointmentDate" th:value="${appointmentDate}" required/>
+                            </div>
+                        </div>
+                        <label class="col-sm-1 control-label">业务归属:</label>
+                        <div class="col-sm-2" >
+                            <div class="input-group">
+                                <select name="sex" class="styled-input" th:with="type=${@dict.getType('sys_user_sex')}" >
+                                    <!--<option>所有</option>-->
+                                    <option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}"
+                                            th:selected="${dict.dictLabel} == ${gender}" ></option>
+                                </select>
+                                <!--<input name="gender" placeholder="请输入性别" class="styled-input" type="text" maxlength="30" th:value="${gender}" required>-->
+                            </div>
+                        </div>
+                        <label class="col-sm-1 control-label">任务名称:</label>
+                        <div class="col-sm-2" >
+                            <div class="input-group">
+                                <input name="taskName" placeholder="请输入任务名称" class="styled-input" type="text" maxlength="30" th:value="${taskName}" required>
+                            </div>
+                        </div>
+                        <label class="col-sm-1 control-label">任务主题:</label>
+                        <div class="col-sm-2" >
+                            <div class="input-group">
+                                <input name="taskTheme" placeholder="请输入任务主题" class="styled-input" type="text" maxlength="30" th:value="${taskTheme}" required>
+                            </div>
+                        </div>
+                    </div>
+                </div>
+
+                <div class="col-sm-12">
+                    <div class="form-group">
+                        <!--is-required 增加星号 显示为必填-->
+                        <label class="col-sm-1 control-label">患者姓名:</label>
+                        <div class="col-sm-2" >
+                            <div class="input-group">
+                                <input name="patientName" placeholder="请输入姓名" class="styled-input" type="text" maxlength="30" th:value="${patientName}" required>
+                            </div>
+                        </div>
+                        <label class="col-sm-1 control-label">性别:</label>
+                        <div class="col-sm-2" >
+                            <div class="input-group">
+                                <select name="gender" class="styled-input" th:with="type=${@dict.getType('sys_user_sex')}" >
+                                    <!--<option>所有</option>-->
+                                    <option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictLabel}"
+                                            th:selected="${dict.dictLabel} == ${gender}" ></option>
+                                </select>
+                                <!--<input name="gender" placeholder="请输入性别" class="styled-input" type="text" maxlength="30" th:value="${gender}" required>-->
+                            </div>
+                        </div>
+                        <label class="col-sm-1 control-label">年龄:</label>
+                        <div class="col-sm-2" >
+                            <div class="input-group">
+                                <input name="age" placeholder="请输入年龄" class="styled-input" type="text" maxlength="30" th:value="${age}" required>
+                            </div>
+                        </div>
+                        <label class="col-sm-1 control-label">随访小结:</label>
+                        <div class="col-sm-2" >
+                            <div class="input-group">
+                                <input name="followUpSummary" placeholder="随访小结" class="styled-input" type="text" maxlength="30" th:value="${followUpSummary}" required>
+                            </div>
+                        </div>
+                    </div>
+                </div>
+                <div class="col-sm-12">
+                    <div class="form-group">
+                        <!--is-required 增加星号 显示为必填-->
+                        <label class="col-sm-1 control-label">疾病:</label>
+                        <div class="col-sm-2" >
+                            <div class="input-group">
+                                <input name="disease" placeholder="请输入证件类型" class="styled-input" type="text" maxlength="30" th:value="${disease}" required>
+                            </div>
+                        </div>
+                        <label class="col-sm-1 control-label">门店:</label>
+                        <div class="col-sm-2" >
+                            <div class="input-group">
+                                <input name="storeName" placeholder="请输入证件号码" class="styled-input" type="text" maxlength="30" th:value="${storeName}" required>
+                            </div>
+                        </div>
+                        <label class="col-sm-1 control-label">药品通用名:</label>
+                        <div class="col-sm-2" >
+                            <div class="input-group">
+                                <input name="genericName" placeholder="请输入证件号码" class="styled-input" type="text" maxlength="30" th:value="${genericName}" required>
+                            </div>
+                        </div>
+                        <label class="col-sm-1 control-label">商品名:</label>
+                        <div class="col-sm-2" >
+                            <div class="input-group">
+                                <input name="productName" placeholder="请输入证件号码" class="styled-input" type="text" maxlength="30" th:value="${productName}" required>
+                            </div>
+                        </div>
+                    </div>
+                </div>
+                <div class="col-sm-12">
+                    <div class="form-group">
+                        <!--is-required 增加星号 显示为必填-->
+                        <label class="col-sm-1 control-label">任务跟进人:</label>
+                        <div class="col-sm-2" >
+                            <div class="input-group">
+                                <input name="taskFollower" placeholder="请输入疾病" class="styled-input" type="text" maxlength="30" th:value="${taskFollower}" required>
+                            </div>
+                        </div>
+                        <label class="col-sm-1 control-label">实际随访时间:</label>
+                        <div class="col-sm-2" >
+                            <div class="input-group">
+                                <input type="text" class="styled-input time-input-new" id="actualFollowUpTime" placeholder="实际随访时间" name="actualFollowUpTime" th:value="${actualFollowUpTime}" required/>
+                            </div>
+                        </div>
+                        <label class="col-sm-1 control-label">接通次数:</label>
+                        <div class="col-sm-2" >
+                            <div class="input-group">
+                                <input name="callConnectedCount" placeholder="接通次数" class="styled-input" type="text" maxlength="30" th:value="${callConnectedCount}" required>
+                            </div>
+                        </div>
+                        <label class="col-sm-1 control-label">外呼次数:</label>
+                        <div class="col-sm-2" >
+                            <div class="input-group">
+                                <input name="outboundCallCount" placeholder="外呼次数" class="styled-input" type="text" maxlength="30" th:value="${outboundCallCount}" required>
+                            </div>
+                        </div>
+                    </div>
+                </div>
+
+                <div class="col-sm-12">
+                    <div class="form-group">
+                        <!--is-required 增加星号 显示为必填-->
+                        <label class="col-sm-1 control-label">下次外呼次数:</label>
+                        <div class="col-sm-2" >
+                            <div class="input-group">
+                                <input name="nextOutboundCallCount" placeholder="下次外呼次数" class="styled-input" type="text" maxlength="30" th:value="${nextOutboundCallCount}" required>
+                            </div>
+                        </div>
+                        <label class="col-sm-1 control-label">任务状态:</label>
+                        <div class="col-sm-2" >
+                            <div class="input-group">
+                                <input name="taskStatus" placeholder="任务状态" class="styled-input" type="text" maxlength="30" th:value="${taskStatus}" required>
+                            </div>
+                        </div>
+                        <label class="col-sm-1 control-label">最后外呼状态:</label>
+                        <div class="col-sm-2" >
+                            <div class="input-group">
+                                <input name="lastOutboundStatus" placeholder="最后外呼状态"
+                                       class="styled-input" type="text" maxlength="30" th:value="${lastOutboundStatus}" required>
+                            </div>
+                        </div>
+                        <label class="col-sm-1 control-label">更新时间:</label>
+                        <div class="col-sm-2" >
+                            <div class="input-group">
+                                <input type="text" class="styled-input time-input-new" id="updatedAt" placeholder="更新时间" name="updatedAt" th:value="${updateTime2}" required/>
+                            </div>
+                        </div>
+                    </div>
+                </div>
+
+
+            </div>
+        </form>
+    </div>
+    <div class="main-content">
+        <div class="col-sm-offset-5 col-sm-10">
+            <button type="button" class="btn btn-sm btn-primary" onclick="submitHandler()"><i class="fa fa-check"></i>保 存</button>&nbsp;
+            <button type="button" class="btn btn-sm btn-danger" onclick="closeItem()"><i class="fa fa-reply-all"></i>关 闭 </button>
+        </div>
+    </div>
+	<th:block th:include="include :: footer" />
+</body>
+</html>
+
+<script>
+    function submitHandler() {
+        var prefix = ctx + "dtp/pmService";
+        if ($.validate.form()) {
+            var data = $("#form-followUp-edit").serializeArray();
+            $.operate.saveTab(prefix + "/followUpEdit", data);
+        }
+    }
+</script>

+ 290 - 0
health-admin/src/main/resources/templates/dtp/followUp/followUpList.html

@@ -0,0 +1,290 @@
+<!DOCTYPE html>
+<html lang="zh" xmlns:th="http://www.thymeleaf.org" xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
+<head>
+	<th:block th:include="include :: header('随访任务')" />
+	<th:block th:include="include :: layout-latest-css" />
+	<th:block th:include="include :: ztree-css" />
+</head>
+<style>
+	/* 设置 ul 的基本样式 */
+	ul {
+		list-style-type: none; /* 去掉项目符号 */
+		padding: 0; /* 去掉默认的内边距 */
+		display: grid; /* 使用网格布局 */
+		grid-template-columns: repeat(5, 1fr); /* 设置三列 */
+	}
+	ul-list ul{
+		list-style-type: none; /* 去掉项目符号 */
+		padding: 0; /* 去掉默认的内边距 */
+		display: grid; /* 使用网格布局 */
+		grid-template-columns: repeat(4, 1fr); /* 设置三列 */
+	}
+	ul-list ul li{
+		/*padding: 10px;*/ /* 内边距 */
+		text-align: left; /* 文本居中 */
+	}
+
+	/* 设置 li 的基本样式 */
+	li {
+		/*background-color: lightblue; *//* 背景颜色 */
+		/*padding: 1px; !* 内边距 *!*/
+		text-align: right; /* 文本居中 */
+	}
+</style>
+
+<body class="gray-bg">
+	<div class="ui-layout-center">
+		<div class="container-div">
+			<div class="row">
+				<div class="col-sm-12 search-collapse" >
+					<form id="followUp-form">
+						<input type="hidden" id="deptId" name="deptId">
+		                <input type="hidden" id="parentId" name="parentId">
+
+						<div class="select-list" >
+							<ul>
+								<li>
+									患者信息:<input type="text" class="styled-input" name="patientName"/>
+								</li>
+								<li>
+									药品:<input type="text"  class="styled-input" name="genericName"/>
+								</li>
+								<li>
+									预约日期:
+									<input type="text" disabled="" class="styled-input time-input" id="t" placeholder="预约日期" name="appointmentDate"  required/>
+								</li>
+								<li>
+									任务跟进人:<input type="text"  class="styled-input" name="taskFollower"/>
+								</li>
+								<li style="text-align: center">
+									<a class="btn btn-primary btn-rounded btn-sm" onclick="$.table.search()"><i class="fa fa-search"></i>&nbsp;搜索</a>
+								    <a class="btn btn-warning btn-rounded btn-sm" id="refresh_id" onclick="resetPre()"><i class="fa fa-refresh"></i>&nbsp;重置</a>
+								</li>
+							</ul>
+						</div>
+
+						<div class="ul-list select-list">
+							<ul>
+								<li>
+									门店:<input type="text"  class="styled-input" name="storeName"/>
+								</li>
+								<li>
+									任务状态:
+									<select name="flipStatus"  disabled="" class="styled-input" th:with="type=${@dict.getType('sys_up_yes_no')}" >
+										<option value="">所有</option>
+										<option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictLabel}"></option>
+									</select>
+								</li>
+								<li>
+									最后外呼状态:
+									<select name="followUpStatus" class="styled-input" th:with="type=${@dict.getType('sys_follow_up_visit')}">
+										<option value="">所有</option>
+										<option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictLabel}"></option>
+									</select>
+								</li>
+								<li>
+									最后外呼标记:
+									<select name="realNameStatus" class="styled-input" th:with="type=${@dict.getType('sys_real_yes_no')}">
+										<option value="">所有</option>
+										<option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictLabel}"></option>
+									</select>
+								</li>
+							</ul>
+							<ul>
+								<li>
+									下次外呼时间:<input type="text" class="styled-input time-input" id="updateTime" placeholder="更新时间" name="updateTime" th:value="${updateTime}" required/>
+								</li>
+								<li>
+									疾病:<input type="text"  class="styled-input" name="disease"/>
+								</li>
+								<li>
+									随访小结:
+									<select name="gender" class="styled-input" th:with="type=${@dict.getType('sys_user_sex')}">
+										<option value="">所有</option>
+										<option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictLabel}" ></option>
+									</select>
+								</li>
+								<li>
+									完成日期:<input type="text"  disabled="" class="styled-input time-input" id="a" placeholder="更新时间" name="updateTime" th:value="${updateTime}" required/>
+								</li>
+							</ul>
+							<ul>
+								<li>
+									任务主题:
+									<select name="gender" class="styled-input" th:with="type=${@dict.getType('sys_user_sex')}">
+										<option value="">所有</option>
+										<option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictLabel}" ></option>
+									</select>
+								</li>
+								<li>
+									任务名称:<input type="text"  class="styled-input" name="taskName"/>
+								</li>
+								<li>
+									业务归属:
+									<select name="gender" class="styled-input" disabled="" th:with="type=${@dict.getType('sys_user_sex')}">
+										<option value="">所有</option>
+										<option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictLabel}" ></option>
+									</select>
+								</li>
+							</ul>
+						</div>
+					</form>
+				</div>
+
+		        <div class="btn-group-sm" id="toolbar" role="group">
+		        	<!--<a class="btn btn-success" onclick="$.operate.addTab()" shiro:hasPermission="system:user:add">
+		                <i class="fa fa-plus"></i> 新增
+		            </a>
+		             <a class="btn btn-primary single disabled" onclick="$.operate.editTab()" shiro:hasPermission="system:user:edit">
+			            <i class="fa fa-edit"></i> 修改
+			        </a>
+		            <a class="btn btn-danger multiple disabled" onclick="$.operate.removeAll()" shiro:hasPermission="system:user:remove">
+		                <i class="fa fa-remove"></i> 删除
+		            </a>
+		            <a class="btn btn-info" onclick="$.table.importExcel()" shiro:hasPermission="system:user:import">
+			            <i class="fa fa-upload"></i> 导入
+			        </a>
+		            <a class="btn btn-warning" onclick="$.table.exportExcel()" shiro:hasPermission="system:user:export">
+			            <i class="fa fa-download"></i> 导出
+			        </a>-->
+		        </div>
+
+		        <div class="col-sm-12 select-table table-striped">
+				    <table id="bootstrap-table"></table>
+				</div>
+			</div>
+		</div>
+	</div>
+
+	<th:block th:include="include :: footer" />
+	<th:block th:include="include :: layout-latest-js" />
+	<th:block th:include="include :: ztree-js" />
+	<script th:inline="javascript">
+		var editFlag = [[${@permission.hasPermi('dtp:pmService:edit')}]];
+		var removeFlag = [[${@permission.hasPermi('dtp:pmService:remove')}]];
+		var prefix = ctx + "dtp/pmService";
+		$(function() {
+		    var panehHidden = false;
+		    if ($(this).width() < 1590) {
+		        panehHidden = true;
+		    }
+		    $('body').layout({ initClosed: panehHidden, west__size: 185, resizeWithWindow: false });
+	     	// 回到顶部绑定
+	    	if ($.fn.toTop !== undefined) {
+	    		var opt = {
+	    			win:$('.ui-layout-center'),
+	    			doc:$('.ui-layout-center')
+	    		};
+	    		$('#scroll-up').toTop(opt);
+	    	}
+			queryArchivesList();
+		});
+
+		function queryArchivesList() {
+		    var options = {
+		        url: prefix + "/followUpList",
+		        viewUrl: prefix + "/followUpView/{id}",
+		        createUrl: prefix + "/followUpAdd",
+		        updateUrl: prefix + "/followUpEdit/{id}",
+		        removeUrl: prefix + "/followUpRemove",
+		        /*exportUrl: prefix + "/export",
+		        importUrl: prefix + "/importData",
+		        importTemplateUrl: prefix + "/importTemplate",*/
+		        sortName: "id",
+		        sortOrder: "asc",
+		        modalName: "档案",
+				fitColumns: true,
+				striped: true,
+				autoRowHeight: true,
+				rowNumbers: true,
+				showFooter:true,  //是否显示表格底部区域。
+				clickToSelect: true, //是否启用点击行时选中整行的功能。
+				singleSelect: true, //是否仅允许选择一行
+		        columns: [{
+		            checkbox: true
+		        },
+				{ field: 'appointmentDate', title: '预约日期', align: 'center' },
+				{ field: 'businessBelonging', title: '业务归属', align: 'center' },
+				{ field: 'taskName', title: '任务名称', align: 'center' },
+				{ field: 'taskTheme', title: '任务主题', align: 'center' },
+				{ field: 'patientName', title: '患者姓名', align: 'center' },
+				{ field: 'gender', title: '性别', align: 'center' },
+				{ field: 'age', title: '年龄', align: 'center' },
+				{ field: 'followUpSummary', title: '随访小结', align: 'center' },
+				{ field: 'disease', title: '疾病', align: 'center' },
+				{ field: 'storeName', title: '门店', align: 'center' },
+				{ field: 'genericName', title: '药品通用名', align: 'center' },
+				{ field: 'productName', title: '商品名', align: 'center' },
+				{ field: 'taskFollower', title: '任务跟进人', align: 'center' },
+				{ field: 'actualFollowUpTime', title: '实际随访时间', align: 'center' },
+				{ field: 'callConnectedCount', title: '接通次数', align: 'center' },
+				{ field: 'outboundCallCount', title: '外呼次数', align: 'center' },
+				{ field: 'nextOutboundCallCount', title: '下次外呼次数', align: 'center' },
+				{ field: 'taskStatus', title: '任务状态', align: 'center' },
+				{ field: 'lastOutboundStatus', title: '最后外呼状态', align: 'center' },
+				{ field: 'updateTime2', title: '更新时间', align: 'center' },
+
+		        {
+		            title: '操作',
+		            align: 'center',
+		            formatter: function(value, row, index) {
+		                if (row.serviceId != 1) {
+		                	var actions = [];
+			                actions.push('<a class="btn btn-success btn-xs ' + editFlag + '" href="javascript:void(0)" onclick="$.operate.editTab(\'' + row.id + '\')"><i class="fa fa-edit"></i>编辑</a> ');
+			                actions.push('<a class="btn btn-danger btn-xs ' + removeFlag + '" href="javascript:void(0)" onclick="$.operate.remove(\'' + row.id + '\')"><i class="fa fa-remove"></i>删除</a> ');
+			                var more = [];
+			                /*more.push("<a class='btn btn-default btn-xs " + resetPwdFlag + "' href='javascript:void(0)' onclick='resetPwd(" + row.userId + ")'><i class='fa fa-key'></i>重置密码</a> ");
+			                more.push("<a class='btn btn-default btn-xs " + editFlag + "' href='javascript:void(0)' onclick='authRole(" + row.userId + ")'><i class='fa fa-check-square-o'></i>分配角色</a>");
+			                actions.push('<a tabindex="0" class="btn btn-info btn-xs" role="button" data-container="body" data-placement="left" data-toggle="popover" data-html="true" data-trigger="hover" data-content="' + more.join('') + '"><i class="fa fa-chevron-circle-right"></i>更多操作</a>');*/
+			                return actions.join('');
+		            	} else {
+		                    return "";
+		                }
+		            }
+		        }]
+		    };
+		    $.table.init(options);
+		}
+
+		/* 自定义重置-表单重置/隐藏框/树节点选择色/搜索 */
+		function resetPre() {
+			resetDate();
+			$("#followUp-form")[0].reset();
+			$("#deptId").val("");
+			$("#parentId").val("");
+			$(".curSelectedNode").removeClass("curSelectedNode");
+			$.table.search();
+			var resetButton = document.getElementById('followUp-form');
+			resetButton.addEventListener('click', function() {
+				_refresh();
+			});
+		}
+
+		/*const inputs = document.querySelectorAll('.styled-input');
+
+		// 遍历所有输入框并添加事件监听器
+		inputs.forEach(function(input) {
+			// 当鼠标进入输入框时改变背景色
+			input.addEventListener('mouseover', function() {
+				this.style.backgroundColor = '#f0f0f0'; // 浅灰色背景
+			});
+
+			// 当鼠标离开输入框时调用公共函数
+			input.addEventListener('mouseout', function() {
+				this.style.backgroundColor = ''; // 清空背景色属性,使用默认值
+			});
+		});*/
+
+		/* 用户状态显示 */
+		function statusTools(row) {
+		    if (row.status == 1) {
+    			return '<i class=\"fa fa-toggle-off text-info fa-2x\" onclick="enable(\'' + row.userId + '\')"></i> ';
+    		} else {
+    			return '<i class=\"fa fa-toggle-on text-info fa-2x\" onclick="disable(\'' + row.userId + '\')"></i> ';
+    		}
+		}
+
+	</script>
+</body>
+
+</html>

+ 173 - 0
health-admin/src/main/resources/templates/dtp/followUpAssign/followUpAssignEdit.html

@@ -0,0 +1,173 @@
+ <!DOCTYPE html>
+<html lang="zh" xmlns:th="http://www.thymeleaf.org" >
+<head>
+    <th:block th:include="include :: header('随访跟进人分配')" />
+</head>
+<style>
+
+</style>
+<script>
+
+</script>
+<body>
+    <div class="ui-layout-center">
+        <form class="form-horizontal" id="form-followUp-edit" th:object="${user}">
+            <h4 class="form-header h4">基本信息</h4>
+            <input type="hidden" id="id" name="id" th:value="${id}">
+            <div class="row">
+
+                <div class="col-sm-12">
+                    <div class="form-group">
+                        <!--is-required 增加星号 显示为必填-->
+                        <label class="col-sm-1 control-label">患者姓名:</label>
+                        <div class="col-sm-2" >
+                            <div class="input-group">
+                                <input name="patientName" placeholder="请输入姓名" class="styled-input" type="text" maxlength="30" th:value="${patientName}" required>
+                            </div>
+                        </div>
+                        <label class="col-sm-1 control-label">患者手机号:</label>
+                        <div class="col-sm-2" >
+                            <div class="input-group">
+                                <input name="patientPhone" placeholder="随访小结" class="styled-input" type="text" maxlength="30" th:value="${patientPhone}" required>
+                            </div>
+                        </div>
+                        <label class="col-sm-1 control-label">性别:</label>
+                        <div class="col-sm-2" >
+                            <div class="input-group">
+                                <select name="gender" class="styled-input" th:with="type=${@dict.getType('sys_user_sex')}" >
+                                    <!--<option>所有</option>-->
+                                    <option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictLabel}"
+                                            th:selected="${dict.dictLabel} == ${gender}" ></option>
+                                </select>
+                                <!--<input name="gender" placeholder="请输入性别" class="styled-input" type="text" maxlength="30" th:value="${gender}" required>-->
+                            </div>
+                        </div>
+                        <label class="col-sm-1 control-label">年龄:</label>
+                        <div class="col-sm-2" >
+                            <div class="input-group">
+                                <input name="age" placeholder="请输入年龄" class="styled-input" type="text" maxlength="30" th:value="${age}" required>
+                            </div>
+                        </div>
+
+                    </div>
+                </div>
+                <div class="col-sm-12">
+                    <div class="form-group">
+                        <!--is-required 增加星号 显示为必填-->
+                        <label class="col-sm-1 control-label">疾病:</label>
+                        <div class="col-sm-2" >
+                            <div class="input-group">
+                                <input name="disease" placeholder="请输入证件类型" class="styled-input" type="text" maxlength="30" th:value="${disease}" required>
+                            </div>
+                        </div>
+                        <label class="col-sm-1 control-label">临床诊断:</label>
+                        <div class="col-sm-2" >
+                            <div class="input-group">
+                                <input name="clinicalDiagnosis" placeholder="临床诊断" class="styled-input" type="text" maxlength="30" th:value="${clinicalDiagnosis}" required>
+                            </div>
+                        </div>
+                        <label class="col-sm-1 control-label">药品名称:</label>
+                        <div class="col-sm-2" >
+                            <div class="input-group">
+                                <input name="medicineName" placeholder="药品名称" class="styled-input" type="text" maxlength="30" th:value="${medicineName}" required>
+                            </div>
+                        </div>
+                        <label class="col-sm-1 control-label">最后一次购药:</label>
+                        <div class="col-sm-2" >
+                            <div class="input-group">
+                                <input type="text" class="styled-input time-input-new" id="lastPurchaseDate" placeholder="最后一次购药" name="lastPurchaseDate" th:value="${lastPurchaseDate}" required/>
+                            </div>
+                        </div>
+                    </div>
+                </div>
+                <div class="col-sm-12">
+                    <div class="form-group">
+                        <!--is-required 增加星号 显示为必填-->
+                        <label class="col-sm-1 control-label">随访跟进人姓名:</label>
+                        <div class="col-sm-2" >
+                            <div class="input-group">
+                                <input name="followUpPersonName" placeholder="请输入疾病" class="styled-input" type="text" maxlength="30" th:value="${followUpPersonName}" required>
+                            </div>
+                        </div>
+                        <label class="col-sm-1 control-label">跟进人手机号:</label>
+                        <div class="col-sm-2" >
+                            <div class="input-group">
+                                <input name="followUpPersonPhone" placeholder="跟进人手机号" class="styled-input" type="text" maxlength="30" th:value="${followUpPersonPhone}" required>
+                            </div>
+                        </div>
+                        <label class="col-sm-1 control-label">跟进人角色:</label>
+                        <div class="col-sm-2" >
+                            <div class="input-group">
+                                <input name="followUpPersonRole" placeholder="接通次数" class="styled-input" type="text" maxlength="30" th:value="${followUpPersonRole}" required>
+                            </div>
+                        </div>
+                        <label class="col-sm-1 control-label">患者分配状态:</label>
+                        <div class="col-sm-2" >
+                            <div class="input-group">
+                                <input name="patientAssignmentStatus" placeholder="外呼次数" class="styled-input" type="text" maxlength="30" th:value="${patientAssignmentStatus}" required>
+                            </div>
+                        </div>
+                    </div>
+                </div>
+
+                <div class="col-sm-12">
+                    <div class="form-group">
+                        <!--is-required 增加星号 显示为必填-->
+                        <label class="col-sm-1 control-label">门店:</label>
+                        <div class="col-sm-2" >
+                            <div class="input-group">
+                                <input name="storeName" placeholder="下次外呼次数" class="styled-input" type="text" maxlength="30" th:value="${storeName}" required>
+                            </div>
+                        </div>
+                        <label class="col-sm-1 control-label">离职员工:</label>
+                        <div class="col-sm-2" >
+                            <div class="input-group">
+                                <input name="terminatedEmployeeName" placeholder="任务状态" class="styled-input" type="text" maxlength="30" th:value="${terminatedEmployeeName}" required>
+                            </div>
+                        </div>
+                        <label class="col-sm-1 control-label">离职员工手机号:</label>
+                        <div class="col-sm-2" >
+                            <div class="input-group">
+                                <input name="terminatedEmployeePhone" placeholder="最后外呼状态"
+                                       class="styled-input" type="text" maxlength="30" th:value="${terminatedEmployeePhone}" required>
+                            </div>
+                        </div>
+                        <label class="col-sm-1 control-label">离职员工门店:</label>
+                        <div class="col-sm-2" >
+                            <div class="input-group">
+                                <input type="text" class="styled-input" id="terminatedEmployeeStore"
+                                       placeholder="更新时间" name="terminatedEmployeeStore" th:value="${terminatedEmployeeStore}" required/>
+                            </div>
+                        </div>
+                    </div>
+                </div>
+
+
+            </div>
+        </form>
+    </div>
+    <div class="main-content">
+        <div class="col-sm-offset-5 col-sm-10">
+            <button type="button" class="btn btn-sm btn-primary" onclick="submitHandler()"><i class="fa fa-check"></i>保 存</button>&nbsp;
+            <button type="button" class="btn btn-sm btn-danger" onclick="closeItem()"><i class="fa fa-reply-all"></i>关 闭 </button>
+        </div>
+    </div>
+	<th:block th:include="include :: footer" />
+</body>
+</html>
+
+<script>
+    function submitHandler() {
+        var prefix = ctx + "dtp/pmService";
+        if ($.validate.form()) {
+            var data = $("#form-followUp-edit").serializeArray();
+            /*var status = $("input[id='status']").is(':checked') == true ? 0 : 1;
+            var roleIds = $.form.selectCheckeds("role");
+            var postIds = $.form.selectSelects("post");
+            data.push({"name": "status", "value": status});
+            data.push({"name": "roleIds", "value": roleIds});
+            data.push({"name": "postIds", "value": postIds});*/
+            $.operate.saveTab(prefix + "/followUpAssignEdit", data);
+        }
+    }
+</script>

+ 280 - 0
health-admin/src/main/resources/templates/dtp/followUpAssign/followUpAssignList.html

@@ -0,0 +1,280 @@
+<!DOCTYPE html>
+<html lang="zh" xmlns:th="http://www.thymeleaf.org" xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
+<head>
+	<meta charset="UTF-8">
+	<meta name="format-detection" content="telephone=no">
+	<th:block th:include="include :: header('随访跟进人分配')" />
+	<th:block th:include="include :: layout-latest-css" />
+	<th:block th:include="include :: ztree-css" />
+</head>
+<style>
+	/* 设置 ul 的基本样式 */
+	ul {
+		list-style-type: none; /* 去掉项目符号 */
+		padding: 0; /* 去掉默认的内边距 */
+		display: grid; /* 使用网格布局 */
+		grid-template-columns: repeat(5, 1fr); /* 设置三列 */
+	}
+	ul-list ul{
+		list-style-type: none; /* 去掉项目符号 */
+		padding: 0; /* 去掉默认的内边距 */
+		display: grid; /* 使用网格布局 */
+		grid-template-columns: repeat(4, 1fr); /* 设置三列 */
+	}
+	ul-list ul li{
+		/*padding: 10px;*/ /* 内边距 */
+		text-align: left; /* 文本居中 */
+	}
+
+	/* 设置 li 的基本样式 */
+	li {
+		/*background-color: lightblue; *//* 背景颜色 */
+		/*padding: 1px; !* 内边距 *!*/
+		text-align: right; /* 文本居中 */
+	}
+</style>
+
+<body class="gray-bg">
+	<div class="ui-layout-center">
+		<div class="container-div">
+			<div class="row">
+				<div class="col-sm-12 search-collapse" >
+					<form id="followUpAssign-form">
+						<input type="hidden" id="deptId" name="deptId">
+		                <input type="hidden" id="parentId" name="parentId">
+
+						<div class="select-list" >
+							<ul>
+								<li>
+									患者信息:<input type="text" class="styled-input" name="patientName" autocomplete="off"/>
+								</li>
+								<li>
+									门店:<input type="text" class="styled-input" name="storeName"/>
+								</li>
+								<li>
+									药品:<input type="text"  class="styled-input" name="medicineName"/>
+								</li>
+								<li>
+									随访跟进人:<input type="text"  class="styled-input" name="followUpPersonName"/>
+								</li>
+								<li style="text-align: center">
+									<a class="btn btn-primary btn-rounded btn-sm" onclick="$.table.search()"><i class="fa fa-search"></i>&nbsp;搜索</a>
+								    <a class="btn btn-warning btn-rounded btn-sm" onclick="resetPre()"><i class="fa fa-refresh"></i>&nbsp;重置</a>
+								</li>
+							</ul>
+						</div>
+
+						<!--<div class="ul-list select-list">
+							<ul>
+								<li>
+									门店:<input type="text"  class="styled-input" name="storeName"/>
+								</li>
+								<li>
+									任务状态:
+									<select name="flipStatus"  disabled="" class="styled-input" th:with="type=${@dict.getType('sys_up_yes_no')}" >
+										<option value="">所有</option>
+										<option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictLabel}"></option>
+									</select>
+								</li>
+								<li>
+									最后外呼状态:
+									<select name="followUpStatus" class="styled-input" th:with="type=${@dict.getType('sys_follow_up_visit')}">
+										<option value="">所有</option>
+										<option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictLabel}"></option>
+									</select>
+								</li>
+								<li>
+									最后外呼标记:
+									<select name="realNameStatus" class="styled-input" th:with="type=${@dict.getType('sys_real_yes_no')}">
+										<option value="">所有</option>
+										<option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictLabel}"></option>
+									</select>
+								</li>
+							</ul>
+							<ul>
+								<li>
+									下次外呼时间:<input type="text" class="styled-input time-input" id="updateTime" placeholder="更新时间" name="updateTime" th:value="${updateTime}" required/>
+								</li>
+								<li>
+									疾病:<input type="text"  class="styled-input" name="disease"/>
+								</li>
+								<li>
+									随访小结:
+									<select name="gender" class="styled-input" th:with="type=${@dict.getType('sys_user_sex')}">
+										<option value="">所有</option>
+										<option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictLabel}" ></option>
+									</select>
+								</li>
+								<li>
+									完成日期:<input type="text"  disabled="" class="styled-input time-input" id="a" placeholder="更新时间" name="updateTime" th:value="${updateTime}" required/>
+								</li>
+							</ul>
+							<ul>
+								<li>
+									任务主题:
+									<select name="gender" class="styled-input" th:with="type=${@dict.getType('sys_user_sex')}">
+										<option value="">所有</option>
+										<option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictLabel}" ></option>
+									</select>
+								</li>
+								<li>
+									任务名称:<input type="text"  class="styled-input" name="taskName"/>
+								</li>
+								<li>
+									业务归属:
+									<select name="gender" class="styled-input" disabled="" th:with="type=${@dict.getType('sys_user_sex')}">
+										<option value="">所有</option>
+										<option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictLabel}" ></option>
+									</select>
+								</li>
+							</ul>
+						</div>-->
+					</form>
+				</div>
+
+		        <div class="btn-group-sm" id="toolbar" role="group">
+		        	<!--<a class="btn btn-success" onclick="$.operate.addTab()" shiro:hasPermission="system:user:add">
+		                <i class="fa fa-plus"></i> 新增
+		            </a>
+		             <a class="btn btn-primary single disabled" onclick="$.operate.editTab()" shiro:hasPermission="system:user:edit">
+			            <i class="fa fa-edit"></i> 修改
+			        </a>
+		            <a class="btn btn-danger multiple disabled" onclick="$.operate.removeAll()" shiro:hasPermission="system:user:remove">
+		                <i class="fa fa-remove"></i> 删除
+		            </a>
+		            <a class="btn btn-info" onclick="$.table.importExcel()" shiro:hasPermission="system:user:import">
+			            <i class="fa fa-upload"></i> 导入
+			        </a>
+		            <a class="btn btn-warning" onclick="$.table.exportExcel()" shiro:hasPermission="system:user:export">
+			            <i class="fa fa-download"></i> 导出
+			        </a>-->
+		        </div>
+
+		        <div class="col-sm-12 select-table table-striped">
+				    <table id="bootstrap-table"></table>
+				</div>
+			</div>
+		</div>
+	</div>
+
+	<th:block th:include="include :: footer" />
+	<th:block th:include="include :: layout-latest-js" />
+	<th:block th:include="include :: ztree-js" />
+	<script th:inline="javascript">
+		var editFlag = [[${@permission.hasPermi('dtp:pmService:edit')}]];
+		var removeFlag = [[${@permission.hasPermi('dtp:pmService:remove')}]];
+		var prefix = ctx + "dtp/pmService";
+		$(function() {
+		    var panehHidden = false;
+		    if ($(this).width() < 1590) {
+		        panehHidden = true;
+		    }
+		    $('body').layout({ initClosed: panehHidden, west__size: 185, resizeWithWindow: false });
+	     	// 回到顶部绑定
+	    	if ($.fn.toTop !== undefined) {
+	    		var opt = {
+	    			win:$('.ui-layout-center'),
+	    			doc:$('.ui-layout-center')
+	    		};
+	    		$('#scroll-up').toTop(opt);
+	    	}
+			queryArchivesList();
+		});
+
+		function queryArchivesList() {
+		    var options = {
+		        url: prefix + "/followUpAssignList",
+		        viewUrl: prefix + "/followUpAssignView/{id}",
+		        createUrl: prefix + "/followUpAssignAdd",
+		        updateUrl: prefix + "/followUpAssignEdit/{id}",
+		        removeUrl: prefix + "/followUpAssignRemove",
+		        /*exportUrl: prefix + "/export",
+		        importUrl: prefix + "/importData",
+		        importTemplateUrl: prefix + "/importTemplate",*/
+		        sortName: "id",
+		        sortOrder: "asc",
+		        modalName: "档案",
+				fitColumns: true,
+				striped: true,
+				autoRowHeight: true,
+				rowNumbers: true,
+				showFooter:true,  //是否显示表格底部区域。
+				clickToSelect: true, //是否启用点击行时选中整行的功能。
+				singleSelect: true, //是否仅允许选择一行
+		        columns: [{
+		            checkbox: true
+		        },
+				{ field: 'patientName', title: '患者姓名', align: 'center' },
+				{ field: 'patientPhone', title: '患者手机号', align: 'center' },
+				{ field: 'gender', title: '性别', align: 'center' },
+				{ field: 'age', title: '年龄', align: 'center' },
+				{ field: 'disease', title: '疾病', align: 'center' },
+				{ field: 'clinicalDiagnosis', title: '临床诊断', align: 'center' },
+				{ field: 'medicineName', title: '药品名称', align: 'center' },
+				{ field: 'lastPurchaseDate', title: '最后一次购药', align: 'center' },
+				{ field: 'followUpPersonName', title: '随访跟进人姓名', align: 'center' },
+				{ field: 'followUpPersonPhone', title: '跟进人手机号', align: 'center' },
+				{ field: 'followUpPersonRole', title: '跟进人角色', align: 'center' },
+				{ field: 'storeName', title: '门店', align: 'center' },
+				{ field: 'patientAssignmentStatus', title: '患者分配状态', align: 'center' },
+				{ field: 'terminatedEmployeeName', title: '离职员工', align: 'center' },
+				{ field: 'terminatedEmployeePhone', title: '离职员工手机号', align: 'center' },
+				{ field: 'terminatedEmployeeStore', title: '离职员工门店', align: 'center' },
+				{ field: 'createdAt', title: '创建时间', align: 'center' },
+				{ field: 'updatedAt', title: '更新时间', align: 'center' },
+				/*{
+		        	formatter: function (value, row, index) {
+						console.log(value+"-------v");
+						console.log(row+"-------r");
+		        		return statusTools(row);
+		        	}
+		        },*/
+
+		        {
+		            title: '操作',
+		            align: 'center',
+		            formatter: function(value, row, index) {
+		                if (row.serviceId != 1) {
+		                	var actions = [];
+			                actions.push('<a class="btn btn-success btn-xs ' + editFlag + '" href="javascript:void(0)" onclick="$.operate.editTab(\'' + row.id + '\')"><i class="fa fa-edit"></i>编辑</a> ');
+			                actions.push('<a class="btn btn-danger btn-xs ' + removeFlag + '" href="javascript:void(0)" onclick="$.operate.remove(\'' + row.id + '\')"><i class="fa fa-remove"></i>删除</a> ');
+			                var more = [];
+			                /*more.push("<a class='btn btn-default btn-xs " + resetPwdFlag + "' href='javascript:void(0)' onclick='resetPwd(" + row.userId + ")'><i class='fa fa-key'></i>重置密码</a> ");
+			                more.push("<a class='btn btn-default btn-xs " + editFlag + "' href='javascript:void(0)' onclick='authRole(" + row.userId + ")'><i class='fa fa-check-square-o'></i>分配角色</a>");
+			                actions.push('<a tabindex="0" class="btn btn-info btn-xs" role="button" data-container="body" data-placement="left" data-toggle="popover" data-html="true" data-trigger="hover" data-content="' + more.join('') + '"><i class="fa fa-chevron-circle-right"></i>更多操作</a>');*/
+			                return actions.join('');
+		            	} else {
+		                    return "";
+		                }
+		            }
+		        }]
+		    };
+		    $.table.init(options);
+		}
+
+		/* 自定义重置-表单重置/隐藏框/树节点选择色/搜索 */
+		function resetPre() {
+			resetDate();
+			$("#followUpAssign-form")[0].reset();
+			$("#deptId").val("");
+			$("#parentId").val("");
+			$(".curSelectedNode").removeClass("curSelectedNode");
+			$.table.search();
+			var resetButton = document.getElementById('followUpAssign-form');
+			resetButton.addEventListener('click', function() {
+				_refresh();
+			});
+		}
+
+		/* 用户状态显示 */
+		function statusTools(row) {
+		    if (row.status == 1) {
+    			return '<i class=\"fa fa-toggle-off text-info fa-2x\" onclick="enable(\'' + row.userId + '\')"></i> ';
+    		} else {
+    			return '<i class=\"fa fa-toggle-on text-info fa-2x\" onclick="disable(\'' + row.userId + '\')"></i> ';
+    		}
+		}
+	</script>
+</body>
+
+</html>

+ 92 - 0
health-admin/src/main/resources/templates/dtp/followUpEvaluation/followUpEvaluationEdit.html

@@ -0,0 +1,92 @@
+ <!DOCTYPE html>
+<html lang="zh" xmlns:th="http://www.thymeleaf.org" >
+<head>
+    <th:block th:include="include :: header('随访满意度评价')" />
+</head>
+<style>
+
+</style>
+<script>
+
+</script>
+<body>
+    <div class="ui-layout-center">
+        <form class="form-horizontal" id="form-followUpEvaluation-edit" th:object="${user}">
+            <h4 class="form-header h4">基本信息</h4>
+            <input type="hidden" id="id" name="id" th:value="${id}">
+            <div class="row">
+
+                <div class="col-sm-12">
+                    <div class="form-group">
+                        <!--is-required 增加星号 显示为必填-->
+                            <label class="col-sm-1 control-label">患者姓名:</label>
+                            <div class="col-sm-2">
+                                <div class="input-group">
+                                    <input name="patientName" placeholder="患者姓名" th:value="${patientName}" class="styled-input" type="text" maxlength="255" required>
+                                </div>
+                            </div>
+                            <label class="col-sm-1 control-label">随访任务:</label>
+                            <div class="col-sm-2">
+                                <div class="input-group">
+                                    <input name="followUpTask" placeholder="随访任务" th:value="${followUpTask}" class="styled-input" type="text" maxlength="20" required>
+                                </div>
+                            </div>
+                        <label class="col-sm-1 control-label">任务跟进人:</label>
+                        <div class="col-sm-2" >
+                            <div class="input-group">
+                                <input name="taskFollower" placeholder="任务跟进人" th:value="${taskFollower}" class="styled-input" type="text" maxlength="20" required>
+                            </div>
+                        </div>
+                        <label class="col-sm-1 control-label">评价日期:</label>
+                        <div class="col-sm-2">
+                            <div class="input-group">
+                                <input name="evaluationDate" placeholder="评价日期" th:value="${evaluationDate}"
+                                       class="styled-input time-input" type="text" required>
+                            </div>
+                        </div>
+                    </div>
+                </div>
+                <div class="col-sm-12">
+                    <div class="form-group">
+                        <label class="col-sm-1 control-label">连锁:</label>
+                        <div class="col-sm-2">
+                            <div class="input-group">
+                                <input name="chainStoreName" placeholder="连锁" class="styled-input" th:value="${chainStoreName}" type="text" maxlength="255" required>
+                            </div>
+                        </div>
+                        <label class="col-sm-1 control-label">门店:</label>
+                        <div class="col-sm-2">
+                            <div class="input-group">
+                                <input name="storeName" placeholder="门店" th:value="${storeName}" class="styled-input" required>
+                            </div>
+                        </div>
+                    </div>
+                </div>
+            </div>
+        </form>
+    </div>
+    <div class="main-content">
+        <div class="col-sm-offset-5 col-sm-10">
+            <button type="button" class="btn btn-sm btn-primary" onclick="submitHandler()"><i class="fa fa-check"></i>保 存</button>&nbsp;
+            <button type="button" class="btn btn-sm btn-danger" onclick="closeItem()"><i class="fa fa-reply-all"></i>关 闭 </button>
+        </div>
+    </div>
+	<th:block th:include="include :: footer" />
+</body>
+</html>
+
+<script>
+    function submitHandler() {
+        var prefix = ctx + "dtp/pmService";
+        if ($.validate.form()) {
+                var data = $("#form-followUpEvaluation-edit").serializeArray();
+            /*var status = $("input[id='status']").is(':checked') == true ? 0 : 1;
+            var roleIds = $.form.selectCheckeds("role");
+            var postIds = $.form.selectSelects("post");
+            data.push({"name": "status", "value": status});
+            data.push({"name": "roleIds", "value": roleIds});
+            data.push({"name": "postIds", "value": postIds});*/
+            $.operate.saveTab(prefix + "/followUpEvaluationEdit", data);
+        }
+    }
+</script>

+ 205 - 0
health-admin/src/main/resources/templates/dtp/followUpEvaluation/followUpEvaluationList.html

@@ -0,0 +1,205 @@
+<!DOCTYPE html>
+<html lang="zh" xmlns:th="http://www.thymeleaf.org" xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
+<head>
+	<meta charset="UTF-8">
+	<meta name="format-detection" content="telephone=no">
+	<th:block th:include="include :: header('随访满意度评价')" />
+	<th:block th:include="include :: layout-latest-css" />
+	<th:block th:include="include :: ztree-css" />
+</head>
+<style>
+	/* 设置 ul 的基本样式 */
+	ul {
+		list-style-type: none; /* 去掉项目符号 */
+		padding: 0; /* 去掉默认的内边距 */
+		display: grid; /* 使用网格布局 */
+		grid-template-columns: repeat(5, 1fr); /* 设置三列 */
+	}
+	ul-list ul{
+		list-style-type: none; /* 去掉项目符号 */
+		padding: 0; /* 去掉默认的内边距 */
+		display: grid; /* 使用网格布局 */
+		grid-template-columns: repeat(4, 1fr); /* 设置三列 */
+	}
+	ul-list ul li{
+		/*padding: 10px;*/ /* 内边距 */
+		text-align: left; /* 文本居中 */
+	}
+
+	/* 设置 li 的基本样式 */
+	li {
+		/*background-color: lightblue; *//* 背景颜色 */
+		/*padding: 1px; !* 内边距 *!*/
+		text-align: left; /* 文本居中 */
+	}
+
+</style>
+
+<body class="gray-bg">
+	<div class="ui-layout-center">
+		<div class="container-div">
+			<div class="row">
+				<div class="col-sm-12 search-collapse" >
+					<form id="followUpEvaluation-form">
+						<input type="hidden" id="deptId" name="deptId">
+		                <input type="hidden" id="parentId" name="parentId">
+
+						<div class="select-list" >
+							<ul>
+								<li>
+									连锁店:<input type="text" class="styled-input" name="chainStoreName" autocomplete="off"/>
+								</li>
+								<li>
+									门店:<input type="text" class="styled-input" name="storeName"/>
+								</li>
+								<li>
+									评价日期:
+									<input type="text" disabled="" class="styled-input time-input"
+										   placeholder="评价日期" name="evaluationDate"  required/>
+								</li>
+								<li>
+									任务跟进人:<input type="text"  class="styled-input" name="taskFollower"/>
+								</li>
+
+								<li style="text-align: center">
+									<a class="btn btn-primary btn-rounded btn-sm" onclick="$.table.search()"><i class="fa fa-search"></i>&nbsp;搜索</a>
+								    <a class="btn btn-warning btn-rounded btn-sm" onclick="resetPre()"><i class="fa fa-refresh"></i>&nbsp;重置</a>
+								</li>
+							</ul>
+						</div>
+					</form>
+				</div>
+
+		        <div class="btn-group-sm" id="toolbar" role="group">
+		        	<!--<a class="btn btn-success" onclick="$.operate.addTab()" shiro:hasPermission="system:user:add">
+		                <i class="fa fa-plus"></i> 新增
+		            </a>
+		             <a class="btn btn-primary single disabled" onclick="$.operate.editTab()" shiro:hasPermission="system:user:edit">
+			            <i class="fa fa-edit"></i> 修改
+			        </a>
+		            <a class="btn btn-danger multiple disabled" onclick="$.operate.removeAll()" shiro:hasPermission="system:user:remove">
+		                <i class="fa fa-remove"></i> 删除
+		            </a>
+		            <a class="btn btn-info" onclick="$.table.importExcel()" shiro:hasPermission="system:user:import">
+			            <i class="fa fa-upload"></i> 导入
+			        </a>
+		            <a class="btn btn-warning" onclick="$.table.exportExcel()" shiro:hasPermission="system:user:export">
+			            <i class="fa fa-download"></i> 导出
+			        </a>-->
+		        </div>
+
+		        <div class="col-sm-12 select-table table-striped">
+				    <table id="bootstrap-table"></table>
+				</div>
+			</div>
+		</div>
+	</div>
+
+	<th:block th:include="include :: footer" />
+	<th:block th:include="include :: layout-latest-js" />
+	<th:block th:include="include :: ztree-js" />
+	<script th:inline="javascript">
+		var editFlag = [[${@permission.hasPermi('dtp:pmService:edit')}]];
+		var removeFlag = [[${@permission.hasPermi('dtp:pmService:remove')}]];
+		var prefix = ctx + "dtp/pmService";
+		$(function() {
+		    var panehHidden = false;
+		    if ($(this).width() < 1590) {
+		        panehHidden = true;
+		    }
+		    $('body').layout({ initClosed: panehHidden, west__size: 185, resizeWithWindow: false });
+	     	// 回到顶部绑定
+	    	if ($.fn.toTop !== undefined) {
+	    		var opt = {
+	    			win:$('.ui-layout-center'),
+	    			doc:$('.ui-layout-center')
+	    		};
+	    		$('#scroll-up').toTop(opt);
+	    	}
+			queryArchivesList();
+		});
+
+		function queryArchivesList() {
+		    var options = {
+		        url: prefix + "/followUpEvaluationList",
+		        viewUrl: prefix + "/followUpEvaluationView/{id}",
+		        createUrl: prefix + "/followUpEvaluationAdd",
+		        updateUrl: prefix + "/followUpEvaluationEdit/{id}",
+		        removeUrl: prefix + "/followUpEvaluationRemove",
+		        /*exportUrl: prefix + "/export",
+		        importUrl: prefix + "/importData",
+		        importTemplateUrl: prefix + "/importTemplate",*/
+		        sortName: "id",
+		        sortOrder: "asc",
+		        modalName: "档案",
+				fitColumns: true,
+				striped: true,
+				autoRowHeight: true,
+				rowNumbers: true,
+				showFooter:true,  //是否显示表格底部区域。
+				clickToSelect: true, //是否启用点击行时选中整行的功能。
+				singleSelect: true, //是否仅允许选择一行
+		        columns: [{
+		            checkbox: true
+		        },
+
+				/*{ field: 'businessId', title: '业务ID', align: 'center' },
+				{ field: 'businessName', title: '业务名称', align: 'center' },
+				{ field: 'createdBy', title: '创建人', align: 'center' },
+				{ field: 'createdDate', title: '创建日期', align: 'center' },*/
+				{ field: 'patientName', title: '患者姓名', align: 'center' },
+				{ field: 'followUpTask', title: '随访任务', align: 'center' },
+				{ field: 'taskFollower', title: '任务跟进人', align: 'center' },
+				{ field: 'evaluationDate', title: '评价日期', align: 'center' },
+				{ field: 'chainStoreName', title: '连锁店', align: 'center' },
+				{ field: 'storeName', title: '门店', align: 'center' },
+				/*{ field: 'taskId', title: '任务ID', align: 'center' },*/
+
+		        {
+		            title: '操作',
+		            align: 'center',
+		            formatter: function(value, row, index) {
+		                if (row.serviceId != 1) {
+		                	var actions = [];
+			                actions.push('<a class="btn btn-success btn-xs ' + editFlag + '" href="javascript:void(0)" onclick="$.operate.editTab(\'' + row.id + '\')"><i class="fa fa-edit"></i>编辑</a> ');
+			                actions.push('<a class="btn btn-danger btn-xs ' + removeFlag + '" href="javascript:void(0)" onclick="$.operate.remove(\'' + row.id + '\')"><i class="fa fa-remove"></i>删除</a> ');
+			                var more = [];
+			                /*more.push("<a class='btn btn-default btn-xs " + resetPwdFlag + "' href='javascript:void(0)' onclick='resetPwd(" + row.userId + ")'><i class='fa fa-key'></i>重置密码</a> ");
+			                more.push("<a class='btn btn-default btn-xs " + editFlag + "' href='javascript:void(0)' onclick='authRole(" + row.userId + ")'><i class='fa fa-check-square-o'></i>分配角色</a>");
+			                actions.push('<a tabindex="0" class="btn btn-info btn-xs" role="button" data-container="body" data-placement="left" data-toggle="popover" data-html="true" data-trigger="hover" data-content="' + more.join('') + '"><i class="fa fa-chevron-circle-right"></i>更多操作</a>');*/
+			                return actions.join('');
+		            	} else {
+		                    return "";
+		                }
+		            }
+		        }]
+		    };
+		    $.table.init(options);
+		}
+
+		/* 自定义重置-表单重置/隐藏框/树节点选择色/搜索 */
+		function resetPre() {
+			resetDate();
+			$("#followUpEvaluation-form")[0].reset();
+			$("#deptId").val("");
+			$("#parentId").val("");
+			$(".curSelectedNode").removeClass("curSelectedNode");
+			$.table.search();
+			var resetButton = document.getElementById('followUpEvaluation-form');
+			resetButton.addEventListener('click', function() {
+				_refresh();
+			});
+		}
+
+		/* 用户状态显示 */
+		function statusTools(row) {
+		    if (row.status == 1) {
+    			return '<i class=\"fa fa-toggle-off text-info fa-2x\" onclick="enable(\'' + row.userId + '\')"></i> ';
+    		} else {
+    			return '<i class=\"fa fa-toggle-on text-info fa-2x\" onclick="disable(\'' + row.userId + '\')"></i> ';
+    		}
+		}
+	</script>
+</body>
+
+</html>

+ 131 - 0
health-admin/src/main/resources/templates/dtp/patientCounseling/patientCounselingEdit.html

@@ -0,0 +1,131 @@
+ <!DOCTYPE html>
+<html lang="zh" xmlns:th="http://www.thymeleaf.org" >
+<head>
+    <th:block th:include="include :: header('随访跟进人分配')" />
+</head>
+<style>
+
+</style>
+<script>
+
+</script>
+<body>
+    <div class="ui-layout-center">
+        <form class="form-horizontal" id="form-patientCounseling-edit" th:object="${user}">
+            <h4 class="form-header h4">基本信息</h4>
+            <input type="hidden" id="id" name="id" th:value="${id}">
+            <div class="row">
+
+                <div class="col-sm-12">
+                    <div class="form-group">
+                        <!--is-required 增加星号 显示为必填-->
+                            <label class="col-sm-1 control-label">患者姓名:</label>
+                            <div class="col-sm-2">
+                                <div class="input-group">
+                                    <input name="patientName" placeholder="患者姓名" th:value="${patientName}" class="styled-input" type="text" maxlength="255" required>
+                                </div>
+                            </div>
+                            <label class="col-sm-1 control-label">患者手机号:</label>
+                            <div class="col-sm-2">
+                                <div class="input-group">
+                                    <input name="patientPhone" placeholder="患者手机号" th:value="${patientPhone}" class="styled-input" type="text" maxlength="20" required>
+                                </div>
+                            </div>
+                        <label class="col-sm-1 control-label">性别:</label>
+                        <div class="col-sm-2" >
+                            <div class="input-group">
+                                <select name="gender" class="styled-input" th:with="type=${@dict.getType('sys_user_sex')}" >
+                                    <!--<option>所有</option>-->
+                                    <option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictLabel}"
+                                            th:selected="${dict.dictLabel} == ${gender}" ></option>
+                                </select>
+                            </div>
+                        </div>
+                        <label class="col-sm-1 control-label">年龄:</label>
+                        <div class="col-sm-2">
+                            <div class="input-group">
+                                <input name="age" placeholder="年龄" th:value="${age}" class="styled-input" type="number" required>
+                            </div>
+                        </div>
+                    </div>
+                </div>
+                <div class="col-sm-12">
+                    <div class="form-group">
+                        <label class="col-sm-1 control-label">问题类型:</label>
+                        <div class="col-sm-2">
+                            <div class="input-group">
+                                <input name="questionType" placeholder="问题类型" class="styled-input" th:value="${questionType}" type="text" maxlength="255" required>
+                            </div>
+                        </div>
+                        <label class="col-sm-1 control-label">咨询问题:</label>
+                        <div class="col-sm-2">
+                            <div class="input-group">
+                                <input name="consultationQuestion" placeholder="咨询问题" th:value="${consultationQuestion}" class="styled-input" required>
+                            </div>
+                        </div>
+                        <label class="col-sm-1 control-label">药师解答:</label>
+                        <div class="col-sm-2">
+                            <div class="input-group">
+                                <input name="pharmacistAnswer" placeholder="药师解答" th:value="${pharmacistAnswer}" class="styled-input" ></input>
+                            </div>
+                        </div>
+                        <label class="col-sm-1 control-label">咨询时间:</label>
+                        <div class="col-sm-2">
+                            <div class="input-group">
+                                <input name="consultationTime" placeholder="咨询时间" th:value="${updateTime2}" class="styled-input time-input-new" type="text" required>
+                            </div>
+                        </div>
+                    </div>
+                </div>
+
+                <div class="col-sm-12">
+                    <div class="form-group">
+                        <label class="col-sm-1 control-label">疾病:</label>
+                        <div class="col-sm-2">
+                            <div class="input-group">
+                                <input name="disease" placeholder="疾病" th:value="${disease}" class="styled-input" type="text" maxlength="255" required>
+                            </div>
+                        </div>
+                        <label class="col-sm-1 control-label">药品通用名:</label>
+                        <div class="col-sm-2">
+                            <div class="input-group">
+                                <input name="genericName" placeholder="药品通用名" th:value="${genericName}" class="styled-input" type="text" maxlength="255" required>
+                            </div>
+                        </div>
+                        <label class="col-sm-1 control-label">商品名:</label>
+                        <div class="col-sm-2">
+                            <div class="input-group">
+                                <input name="productName" placeholder="商品名" th:value="${productName}" class="styled-input" type="text" maxlength="255" required>
+                            </div>
+                        </div>
+                    </div>
+                </div>
+
+            </div>
+        </form>
+    </div>
+    <div class="main-content">
+        <div class="col-sm-offset-5 col-sm-10">
+            <button type="button" class="btn btn-sm btn-primary" onclick="submitHandler()"><i class="fa fa-check"></i>保 存</button>&nbsp;
+            <button type="button" class="btn btn-sm btn-danger" onclick="closeItem()"><i class="fa fa-reply-all"></i>关 闭 </button>
+        </div>
+    </div>
+	<th:block th:include="include :: footer" />
+</body>
+</html>
+
+<script>
+    function submitHandler() {
+        var prefix = ctx + "dtp/pmService";
+        if ($.validate.form()) {
+            var data = $("#form-patientCounseling-edit").serializeArray();
+            /*var status = $("input[id='status']").is(':checked') == true ? 0 : 1;
+            var roleIds = $.form.selectCheckeds("role");
+            var postIds = $.form.selectSelects("post");
+            data.push({"name": "status", "value": status});
+            data.push({"name": "roleIds", "value": roleIds});
+            data.push({"name": "postIds", "value": postIds});*/
+            $.operate.saveTab(prefix + "/patientCounselingEdit", data);
+        }
+    }
+</script>

+ 211 - 0
health-admin/src/main/resources/templates/dtp/patientCounseling/patientCounselingList.html

@@ -0,0 +1,211 @@
+<!DOCTYPE html>
+<html lang="zh" xmlns:th="http://www.thymeleaf.org" xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
+<head>
+	<meta charset="UTF-8">
+	<meta name="format-detection" content="telephone=no">
+	<th:block th:include="include :: header('患者咨询')" />
+	<th:block th:include="include :: layout-latest-css" />
+	<th:block th:include="include :: ztree-css" />
+</head>
+<style>
+	/* 设置 ul 的基本样式 */
+	ul {
+		list-style-type: none; /* 去掉项目符号 */
+		padding: 0; /* 去掉默认的内边距 */
+		display: grid; /* 使用网格布局 */
+		grid-template-columns: repeat(5, 1fr); /* 设置三列 */
+	}
+	ul-list ul{
+		list-style-type: none; /* 去掉项目符号 */
+		padding: 0; /* 去掉默认的内边距 */
+		display: grid; /* 使用网格布局 */
+		grid-template-columns: repeat(4, 1fr); /* 设置三列 */
+	}
+	ul-list ul li{
+		/*padding: 10px;*/ /* 内边距 */
+		text-align: left; /* 文本居中 */
+	}
+
+	/* 设置 li 的基本样式 */
+	li {
+		/*background-color: lightblue; *//* 背景颜色 */
+		/*padding: 1px; !* 内边距 *!*/
+		text-align: right; /* 文本居中 */
+	}
+</style>
+
+<body class="gray-bg">
+	<div class="ui-layout-center">
+		<div class="container-div">
+			<div class="row">
+				<div class="col-sm-12 search-collapse" >
+					<form id="patientCounseling-form">
+						<input type="hidden" id="deptId" name="deptId">
+		                <input type="hidden" id="parentId" name="parentId">
+
+						<div class="select-list" >
+							<ul>
+								<li>
+									患者信息:<input type="text" class="styled-input" name="patientName" autocomplete="off"/>
+								</li>
+								<li>
+									疾病:<input type="text" class="styled-input" name="disease"/>
+								</li>
+								<li>
+									咨询问题:<input type="text"  class="styled-input" name="consultationQuestion"/>
+								</li>
+								<li>
+									问题类型:<input type="text"  class="styled-input" name="questionType"/>
+								</li>
+
+								<li style="text-align: center">
+									<a class="btn btn-primary btn-rounded btn-sm" onclick="$.table.search()"><i class="fa fa-search"></i>&nbsp;搜索</a>
+								    <a class="btn btn-warning btn-rounded btn-sm" onclick="resetPre()"><i class="fa fa-refresh"></i>&nbsp;重置</a>
+								</li>
+							</ul>
+						</div>
+						<div class="select-list" >
+							<ul>
+								<li>
+									药品:<input type="text"  class="styled-input" name="followUpPersonName"/>
+								</li>
+							</ul>
+						</div>
+
+					</form>
+				</div>
+
+		        <div class="btn-group-sm" id="toolbar" role="group">
+		        	<!--<a class="btn btn-success" onclick="$.operate.addTab()" shiro:hasPermission="system:user:add">
+		                <i class="fa fa-plus"></i> 新增
+		            </a>
+		             <a class="btn btn-primary single disabled" onclick="$.operate.editTab()" shiro:hasPermission="system:user:edit">
+			            <i class="fa fa-edit"></i> 修改
+			        </a>
+		            <a class="btn btn-danger multiple disabled" onclick="$.operate.removeAll()" shiro:hasPermission="system:user:remove">
+		                <i class="fa fa-remove"></i> 删除
+		            </a>
+		            <a class="btn btn-info" onclick="$.table.importExcel()" shiro:hasPermission="system:user:import">
+			            <i class="fa fa-upload"></i> 导入
+			        </a>
+		            <a class="btn btn-warning" onclick="$.table.exportExcel()" shiro:hasPermission="system:user:export">
+			            <i class="fa fa-download"></i> 导出
+			        </a>-->
+		        </div>
+
+		        <div class="col-sm-12 select-table table-striped">
+				    <table id="bootstrap-table"></table>
+				</div>
+			</div>
+		</div>
+	</div>
+
+	<th:block th:include="include :: footer" />
+	<th:block th:include="include :: layout-latest-js" />
+	<th:block th:include="include :: ztree-js" />
+	<script th:inline="javascript">
+		var editFlag = [[${@permission.hasPermi('dtp:pmService:edit')}]];
+		var removeFlag = [[${@permission.hasPermi('dtp:pmService:remove')}]];
+		var prefix = ctx + "dtp/pmService";
+		$(function() {
+		    var panehHidden = false;
+		    if ($(this).width() < 1590) {
+		        panehHidden = true;
+		    }
+		    $('body').layout({ initClosed: panehHidden, west__size: 185, resizeWithWindow: false });
+	     	// 回到顶部绑定
+	    	if ($.fn.toTop !== undefined) {
+	    		var opt = {
+	    			win:$('.ui-layout-center'),
+	    			doc:$('.ui-layout-center')
+	    		};
+	    		$('#scroll-up').toTop(opt);
+	    	}
+			queryArchivesList();
+		});
+
+		function queryArchivesList() {
+		    var options = {
+		        url: prefix + "/patientCounselingList",
+		        viewUrl: prefix + "/patientCounselingView/{id}",
+		        createUrl: prefix + "/patientCounselingAdd",
+		        updateUrl: prefix + "/patientCounselingEdit/{id}",
+		        removeUrl: prefix + "/patientCounselingRemove",
+		        /*exportUrl: prefix + "/export",
+		        importUrl: prefix + "/importData",
+		        importTemplateUrl: prefix + "/importTemplate",*/
+		        sortName: "id",
+		        sortOrder: "asc",
+		        modalName: "档案",
+				fitColumns: true,
+				striped: true,
+				autoRowHeight: true,
+				rowNumbers: true,
+				showFooter:true,  //是否显示表格底部区域。
+				clickToSelect: true, //是否启用点击行时选中整行的功能。
+				singleSelect: true, //是否仅允许选择一行
+		        columns: [{
+		            checkbox: true
+		        },
+				/*{ field: 'createdBy', title: '创建人', align: 'center' },
+				{ field: 'createdDate', title: '创建日期', align: 'center' },*/
+				{ field: 'patientName', title: '患者姓名', align: 'center' },
+				{ field: 'patientPhone', title: '患者手机号', align: 'center' },
+				{ field: 'gender', title: '性别', align: 'center' },
+				{ field: 'age', title: '年龄', align: 'center' },
+				{ field: 'questionType', title: '问题类型', align: 'center' },
+				{ field: 'consultationQuestion', title: '咨询问题', align: 'center' },
+				{ field: 'pharmacistAnswer', title: '药师解答', align: 'center' },
+				{ field: 'consultationTime', title: '咨询时间', align: 'center' },
+				{ field: 'disease', title: '疾病', align: 'center' },
+				{ field: 'genericName', title: '药品通用名', align: 'center' },
+				{ field: 'productName', title: '商品名', align: 'center' },
+
+		        {
+		            title: '操作',
+		            align: 'center',
+		            formatter: function(value, row, index) {
+		                if (row.serviceId != 1) {
+		                	var actions = [];
+			                actions.push('<a class="btn btn-success btn-xs ' + editFlag + '" href="javascript:void(0)" onclick="$.operate.editTab(\'' + row.id + '\')"><i class="fa fa-edit"></i>编辑</a> ');
+			                actions.push('<a class="btn btn-danger btn-xs ' + removeFlag + '" href="javascript:void(0)" onclick="$.operate.remove(\'' + row.id + '\')"><i class="fa fa-remove"></i>删除</a> ');
+			                var more = [];
+			                /*more.push("<a class='btn btn-default btn-xs " + resetPwdFlag + "' href='javascript:void(0)' onclick='resetPwd(" + row.userId + ")'><i class='fa fa-key'></i>重置密码</a> ");
+			                more.push("<a class='btn btn-default btn-xs " + editFlag + "' href='javascript:void(0)' onclick='authRole(" + row.userId + ")'><i class='fa fa-check-square-o'></i>分配角色</a>");
+			                actions.push('<a tabindex="0" class="btn btn-info btn-xs" role="button" data-container="body" data-placement="left" data-toggle="popover" data-html="true" data-trigger="hover" data-content="' + more.join('') + '"><i class="fa fa-chevron-circle-right"></i>更多操作</a>');*/
+			                return actions.join('');
+		            	} else {
+		                    return "";
+		                }
+		            }
+		        }]
+		    };
+		    $.table.init(options);
+		}
+
+		/* 自定义重置-表单重置/隐藏框/树节点选择色/搜索 */
+		function resetPre() {
+			resetDate();
+			$("#patientCounseling-form")[0].reset();
+			$("#deptId").val("");
+			$("#parentId").val("");
+			$(".curSelectedNode").removeClass("curSelectedNode");
+			$.table.search();
+			var resetButton = document.getElementById('patientCounseling-form');
+			resetButton.addEventListener('click', function() {
+				_refresh();
+			});
+		}
+
+		/* 用户状态显示 */
+		function statusTools(row) {
+		    if (row.status == 1) {
+    			return '<i class=\"fa fa-toggle-off text-info fa-2x\" onclick="enable(\'' + row.userId + '\')"></i> ';
+    		} else {
+    			return '<i class=\"fa fa-toggle-on text-info fa-2x\" onclick="disable(\'' + row.userId + '\')"></i> ';
+    		}
+		}
+	</script>
+</body>
+
+</html>

+ 62 - 0
health-admin/src/main/resources/templates/dtp/print/detail.html

@@ -0,0 +1,62 @@
+<!DOCTYPE html>
+<html lang="zh" xmlns:th="http://www.thymeleaf.org" >
+<head>
+	<th:block th:include="include :: header('配送单据打印详细')" />
+	<th:block th:include="include :: jsonview-css" />
+</head>
+<body class="white-bg">
+	<div class="wrapper wrapper-content animated fadeInRight ibox-content">
+	<form class="form-horizontal m-t" id="signupForm" th:object="${detail}">
+		<div class="form-group">
+			<label class="col-sm-2 control-label">订单编号:</label>
+			<div class="form-control-static" th:text="${orderId}">
+			</div>
+		</div>
+		<div class="form-group">
+			<label class="col-sm-2 control-label">配送时间:</label>
+			<div class="form-control-static" th:text="${deliveryTime}">
+			</div>
+		</div>
+		<div class="form-group">
+			<label class="col-sm-2 control-label">配送人:</label>
+			<div class="form-control-static" th:text="${deliverer}">
+			</div>
+		</div>
+		<div class="form-group">
+			<label class="col-sm-2 control-label">打印申请时间:</label>
+			<div class="form-control-static" th:text="${printRequestTime}">
+			</div>
+		</div>
+		<div class="form-group">
+			<label class="col-sm-2 control-label">打印状态:</label>
+			<div class="form-control-static" th:text="${status}">
+			</div>
+		</div>
+
+		<div class="form-group" th:style="'display:' + ${status == 0 ? 'none' : 'block'}">
+			<label class="col-sm-2 control-label">订单数据:</label>
+			<div class="form-control-static" th:text="${orderData}" id="operParams">
+			</div>
+		</div>
+		<div class="form-group">
+			<label class="col-sm-2 control-label">订单数据:</label>
+			<div class="form-control-static"><pre id="operParam"></pre></div>
+		</div>
+	</form>
+    </div>
+    <th:block th:include="include :: footer" />
+    <th:block th:include="include :: jsonview-js" />
+    <script th:inline="javascript">
+		$(function() {
+			debugger
+			var operParam = [[${oorderData}]];
+			if ($.common.isNotEmpty(operParam) && operParam.length < 2000) {
+				$("#operParam").JSONView(operParam);
+			} else {
+				$("#operParam").text(operParam);
+			}
+
+		});
+    </script>
+</body>
+</html>

+ 189 - 0
health-admin/src/main/resources/templates/dtp/print/print.html

@@ -0,0 +1,189 @@
+<!DOCTYPE html>
+<html lang="zh" xmlns:th="http://www.thymeleaf.org" xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
+<head>
+	<th:block th:include="include :: header('配送单据打印列表')" />
+	<th:block th:include="include :: layout-latest-css" />
+	<th:block th:include="include :: ztree-css" />
+</head>
+<body class="gray-bg">
+
+	<div class="ui-layout-center">
+		<div class="container-div">
+			<div class="row">
+				<div class="col-sm-12 search-collapse">
+					<form id="user-form">
+						<div class="select-list">
+							<ul>
+
+								<li>
+									<label>配送时间 </label>
+									<input type="text" class="time-input" id="startTime" placeholder="开始时间" name="deliveryTimeStart"/>
+									<span>-</span>
+									<input type="text" class="time-input" id="endTime" placeholder="结束时间" name="deliveryTimeEnd"/>
+								</li>
+								<li>
+									<label style="width: 90px; float: left;">打印申请时间 </label>
+									<input type="text" class="time-input" id="startTimes" placeholder="开始时间" name="printRequestTimeStart"/>
+									<span>-</span>
+									<input type="text" class="time-input" id="endTimes" placeholder="结束时间" name="printRequestTimeEnd"/>
+								</li>
+								<li>
+									<label>配送人: </label>
+									<input type="text"  placeholder="请输入配送人姓名" name="deliverer"/>
+								</li>
+								<li>
+									<label>打印状态:</label>
+									<select name="status"  th:with="type=${@dict.getType('sys_select_print_status')}">
+										<option value="">全部</option>
+										<option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictLabel}"
+												></option>
+									</select>
+								</li>
+
+								<li>
+									<a class="btn btn-primary btn-rounded btn-sm" onclick="$.table.search()"><i class="fa fa-search"></i>&nbsp;搜索</a>
+								    <a class="btn btn-warning btn-rounded btn-sm" onclick="resetPre()"><i class="fa fa-refresh"></i>&nbsp;重置</a>
+								</li>
+							</ul>
+						</div>
+					</form>
+				</div>
+
+		        <div class="btn-group-sm" id="toolbar" role="group">
+
+		            <a class="btn btn-danger multiple disabled" onclick="$.operate.removeAll()" shiro:hasPermission="sdtp:print:remove">
+		                <i class="fa fa-remove"></i> 删除
+		            </a>
+
+
+		            <a class="btn btn-warning" onclick="$.table.exportExcel()" shiro:hasPermission="dtp:print:export">
+			            <i class="fa fa-download"></i> 打印
+			        </a>
+		        </div>
+
+		        <div class="col-sm-12 select-table table-striped">
+				    <table id="bootstrap-table"></table>
+				</div>
+			</div>
+		</div>
+	</div>
+
+	<th:block th:include="include :: footer" />
+	<th:block th:include="include :: layout-latest-js" />
+	<th:block th:include="include :: ztree-js" />
+	<script th:inline="javascript">
+		var editFlag = [[${@permission.hasPermi('system:user:edit')}]];
+		var removeFlag = [[${@permission.hasPermi('system:user:remove')}]];
+		var detailFlag = [[${@permission.hasPermi('dtp:print:view')}]];
+		var prefix = ctx + "dtp/print";
+
+		$(function() {
+		    var panehHidden = false;
+		    if ($(this).width() < 1590) {
+		        panehHidden = true;
+		    }
+		    $('body').layout({ initClosed: panehHidden, west__size: 185, resizeWithWindow: false });
+	     	// 回到顶部绑定
+	    	if ($.fn.toTop !== undefined) {
+	    		var opt = {
+	    			win:$('.ui-layout-center'),
+	    			doc:$('.ui-layout-center')
+	    		};
+	    		$('#scroll-up').toTop(opt);
+	    	}
+		    queryUserList();
+		});
+
+		function queryUserList() {
+		    var options = {
+		        url: prefix + "/list",
+		        viewUrl: prefix + "/view/{id}",
+		        createUrl: prefix + "/add",
+		        updateUrl: prefix + "/edit/{id}",
+				detailUrl: prefix + "/detail/{id}",
+		        removeUrl: prefix + "/remove",
+		        exportUrl: prefix + "/export",
+		        sortName: "createTime",
+		        sortOrder: "desc",
+		        modalName: "配送单据打印信息",
+		        columns: [{
+		            checkbox: true
+		        },
+					{
+						field: "id",
+						title: "id",
+						//hidden:false
+						visible: false,
+					},
+					{
+						field: "orderId",
+						title: "订单编号"
+					},
+					{
+						field: "deliverer",
+						title: "配送人"
+					},
+					{
+						field: "deliveryTime",
+						title: "配送时间"
+					},
+					{
+						field: "printRequestTime",
+						title: "打印申请时间"
+					},
+					{
+						field: "status",
+						title: "打印状态"
+					},
+					{
+						field: "createTime",
+						title: "创建时间"
+					},
+		        {
+		            title: '操作',
+		            align: 'center',
+		            formatter: function(value, row, index) {
+		                if (row.orderId) {
+		                	var actions = [];
+							actions.push('<a class="btn btn-warning btn-xs ' + detailFlag + '" href="javascript:void(0)" onclick="$.operate.detail(\'' + row.id + '\')"><i class="fa fa-search"></i>详细</a>');
+			                actions.push('<a class="btn btn-danger btn-xs ' + removeFlag + '" href="javascript:void(0)" onclick="$.operate.remove(\'' + row.id + '\')"><i class="fa fa-remove"></i>删除</a> ');
+			                return actions.join('');
+		            	} else {
+		                    return "";
+		                }
+		            }
+		        }]
+		    };
+		    $.table.init(options);
+		}
+
+
+
+		$('#btnExpand').click(function() {
+			$._tree.expandAll(true);
+		    $(this).hide();
+		    $('#btnCollapse').show();
+		});
+
+		$('#btnCollapse').click(function() {
+			$._tree.expandAll(false);
+		    $(this).hide();
+		    $('#btnExpand').show();
+		});
+
+		$('#btnRefresh').click(function() {
+		});
+		/* 自定义重置-表单重置/隐藏框/树节点选择色/搜索 */
+		function resetPre() {
+			resetDate();
+			$("#user-form")[0].reset();
+			$("#deptId").val("");
+			$("#parentId").val("");
+			$(".curSelectedNode").removeClass("curSelectedNode");
+			$.table.search();
+		}
+
+	</script>
+</body>
+
+</html>

+ 0 - 0
health-admin/src/main/resources/templates/DTP/recipe/add.html → health-admin/src/main/resources/templates/dtp/recipe/add.html


+ 0 - 0
health-admin/src/main/resources/templates/DTP/recipe/edit.html → health-admin/src/main/resources/templates/dtp/recipe/edit.html


+ 0 - 0
health-admin/src/main/resources/templates/DTP/recipe/recipe.html → health-admin/src/main/resources/templates/dtp/recipe/recipe.html


+ 452 - 0
health-admin/src/main/resources/templates/dtp/recipe/view.html

@@ -0,0 +1,452 @@
+<!DOCTYPE html>
+<html lang="zh" xmlns:th="http://www.thymeleaf.org" xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
+<head>
+    <th:block th:include="include :: header('DTP处方登记概览')" />
+    <th:block th:include="include :: layout-latest-css" />
+    <th:block th:include="include :: ztree-css" />
+    <script th:src="@{/health/js/echarts.min.js}"></script>
+    <style>
+        #chart-container {
+            width: 100%;
+            height: 500px;
+        }
+    </style>
+</head>
+<body class="gray-bg">
+
+    <div class="ui-layout-center">
+        <div class="ant-card-head">
+            <div class="ant-card-head-wrapper">
+                <div class="ant-card-head-title">
+                    <div class="index_title-2CoZR">
+                        <h1>DTP处方登记概览</h1>
+                        <button onclick="" class="ant-btn-primary">导出订单</button>
+                    </div>
+                </div>
+            </div>
+
+        </div>
+        <div class="container-div">
+        <form id="report-form">
+            <input type="text" class="" hidden="true" value="" name="id">
+        <div class="ChartAndTable_chart-and-table-3ib6R">
+            <div class="ant-radio-group ant-radio-group-outline">
+                <label class="ant-radio-button-wrapper ant-radio-button-wrapper-checked">
+                    <span class="ant-radio-button ant-radio-button-checked">
+                        <input type="radio" class="ant-radio-button-input" value="1" checked="">
+                        <span class="ant-radio-button-inner">
+
+                        </span>
+                    </span>
+                    <span>订单量模式</span>
+                </label>
+                <label class="ant-radio-button-wrapper">
+                    <span class="ant-radio-button">
+                        <input type="radio" class="ant-radio-button-input" value="2">
+                        <span class="ant-radio-button-inner">
+
+                        </span>
+                    </span>
+                    <span>百分比模式</span>
+                </label>
+            </div>
+                <div class="ant-radio-group ant-radio-group-outline">
+                <label class="ant-radio-button-wrapper2">
+                        <span class="ant-radio-button ant-radio-button-checked">
+                            <input type="radio" class="ant-radio-button-input" value="7" checked="">
+                            <span class="ant-radio-button-inner"></span>
+                        </span><span>本周</span></label>
+                <label class="ant-radio-button-wrapper2">
+                        <span class="ant-radio-button">
+                            <input type="radio" class="ant-radio-button-input" value="30">
+                            <span class="ant-radio-button-inner">
+
+                            </span></span><span>本月</span></label>
+                <label class="ant-radio-button-wrapper2">
+                        <span class="ant-radio-button">
+                            <input type="radio" class="ant-radio-button-input" value="60">
+                            <span class="ant-radio-button-inner">
+
+                            </span></span><span>上月</span></label>
+                <label class="ant-radio-button-wrapper2">
+                        <span class="ant-radio-button">
+                            <input type="radio" class="ant-radio-button-input" value="365">
+                            <span class="ant-radio-button-inner">
+
+                            </span></span>
+                    <span>本年</span>
+                </label>
+
+                  <label>订单日期 </label>
+									<input type="text" class="styled-input time-input" id="startTime" placeholder="开始时间" name="beginTime"/>
+									<span>-</span>
+									<input type="text" class="styled-input time-input" id="endTime" placeholder="结束时间" name="endTime"/>
+                    <a class="btn btn-primary btn-rounded btn-sm" onclick="$.table.search()"><i class="fa fa-search"></i>&nbsp;搜索</a>
+                    <a class="btn btn-warning btn-rounded btn-sm" onclick="resetPre()"><i class="fa fa-refresh"></i>&nbsp;重置</a>
+            </div>
+
+        </div>
+        </form>
+
+        <div id="chart-container"></div>
+        <div class="col-sm-12 select-table table-striped">
+            <table id="bootstrap-table"></table>
+        </div>
+     </div>
+    </div>
+
+<th:block th:include="include :: footer" />
+<th:block th:include="include :: layout-latest-js" />
+<th:block th:include="include :: ztree-js" />
+<script th:inline="javascript">
+    var prefix = ctx + "dtp/report";
+    var names=[];
+    var Xnames=[];
+    var submitted=[];
+    var unsubmitted=[];
+    var retData=[];
+
+        // 初始化 ECharts 图表
+        var myChart = echarts.init(document.getElementById('chart-container'));
+        // 指定图表的配置项和数据
+                var option = {
+                title: {
+                text: 'DTP 处方登记概览',
+                left: 'center'
+                },
+                tooltip: {
+                trigger: 'axis',
+                axisPointer: {
+                type: 'shadow'
+               },
+                formatter: function(params) {
+                var submitted = retData[params[0].dataIndex].completedCount;
+                var unsubmitted = retData[params[0].dataIndex].pendingCount;
+                return '<p>' + params[0].name + '</p><p>已提交:' + submitted + ' 单 | 未提交:' + unsubmitted + ' 单</p>';
+               }
+               },
+                legend: {
+                data: ['已提交', '未提交']
+               },
+                xAxis: {
+                 type: 'category',
+                 data: names,
+
+                    name: '店铺名称', // X 轴的显示说明
+                    nameLocation: 'end', // 名称的位置,可选值有 'start', 'middle', 'end'
+                    nameGap: 30, // 名称与轴线之间的距离
+                    nameTextStyle: {
+                        fontSize: 14,
+                        color: 'black'
+                    },
+                axisLabel: {
+                    formatter: function (value, index) {
+                        // 获取对应的数据点
+                        var data = option.series[0].data[index];
+                        // 判断 y 轴数值是否超过 250
+                        if (data > 100) {
+                            return `{red|${value}}`;
+                        } else {
+                            return value;
+                        }
+                    },
+                    rich: {
+                        red: {
+                            color: 'red'
+                        }
+                    }
+                }
+            },
+                yAxis: {
+                   type: 'value',
+                    name: '订单量', // Y 轴的显示说明
+                    nameLocation: 'end', // 名称的位置,可选值有 'start', 'middle', 'end'
+                    nameGap: 30, // 名称与轴线之间的距离
+                    nameTextStyle: {
+                        fontSize: 14,
+                        color: 'black'
+                    },
+                },
+                series:  [
+                    {
+                        data:Xnames,
+                        type: 'bar',
+                        showBackground: true,
+                        backgroundStyle: {
+                            color: 'rgba(180, 180, 180, 0.2)'
+                        },
+                        itemStyle: {
+                            color: function(params) {
+                                // 根据 y 轴数值设置颜色
+                                if (params.value > 100) {
+                                    return 'red';
+                                } else {
+                                    return 'blue'; // 默认颜色
+                                }
+                            }
+                        }
+                    }
+                ]
+            };
+
+        // 使用刚指定的配置项和数据显示图表。
+        myChart.setOption(option);
+
+    $(function() {
+        var panehHidden = false;
+        if ($(this).width() < 1590) {
+            panehHidden = true;
+        }
+        $('body').layout({ initClosed: panehHidden, west__size: 185, resizeWithWindow: false });
+        // 回到顶部绑定
+        if ($.fn.toTop !== undefined) {
+            var opt = {
+                win:$('.ui-layout-center'),
+                doc:$('.ui-layout-center')
+            };
+            $('#scroll-up').toTop(opt);
+        }
+        queryUserList();
+    });
+
+    function queryUserList() {
+        var options = {
+            url: prefix + "/list",
+            viewUrl: prefix + "/view/{id}",
+            exportUrl: prefix + "/export",
+            importUrl: prefix + "/importData",
+            importTemplateUrl: prefix + "/importTemplate",
+            sortName: "createTime",
+            sortOrder: "desc",
+            modalName: "DTP处方登记概览",
+            columns: [
+                {
+                    field: "id",
+                    title: "id",
+                    //hidden:false
+                    visible: false,
+                },
+                {
+                    field: "chain",
+                    title: "连锁店",
+                    align: "center",
+                    sortable: true,
+                    formatter: function(value, row, index) {
+                        if (row.id) {
+                            // 假设 row.id 是你要传递的 ID 参数
+                            return '<a href="javascript:void(0)"   onclick="detail(\'' + row.id + '\')">' + value + '</a>';
+                        }
+                    }
+
+                },
+                {
+                    field: "orderCount",
+                    title: "订单量",
+                    align: "center"
+                },
+                {
+                    field: "pendingCount",
+                    title: "待完成订单数量",
+                    align: "center"
+                },
+                {
+                    field: "completedCount",
+                    title: "已完成订单数量",
+                    align: "center"
+                },
+                {
+                    field: "completionRate",
+                    title: "订单完成率(%)",
+                    align: "center"
+                }]
+        };
+        $.table.init(options);
+    }
+
+        /*门店列表-详细*/
+        function detail(id) {
+            debugger
+            $.ajax({
+                type : "GET",
+                async : true,            //异步请求(同步请求将会锁住浏览器,用户其他操作必须等待请求完成才可以执行)
+                url : prefix + "/viewDetail/"+id,    //请求发送到TestServlet处
+                data : {},
+                dataType : "json",        //返回数据形式为json
+                success : function(result) {
+                    debugger
+
+                    //请求成功时执行该函数内容,result即为服务器返回的json对象
+                    names=[];
+                    Xnames=[];
+                    unsubmitted=[];
+                    submitted=[];
+                    retData=[];
+                    myChart = echarts.init(document.getElementById('chart-container'))
+                    if (result.data.length>0) {
+                        retData=result.data;
+                        for(var i=0;i<retData.length;i++){
+                            names.push(retData[i].chain);    //挨个取出类别并填入类别数组
+                            Xnames.push(retData[i].orderCount);
+                            unsubmitted.push(retData[i].pendingCount);
+                            submitted.push(retData[i].completedCount);
+                        }
+                    }
+                    var updatedOption = {
+                        xAxis: {
+                            data: names
+                        },
+                        series: [{
+                            data: Xnames
+                        }]
+                    };
+
+                    // 使用新的数据更新图表
+                    myChart.setOption(updatedOption);
+                    $("#id").val(id);
+                    queryUserList();
+                },
+                error : function(errorMsg) {
+                    //请求失败时执行该函数
+                    alert("图表请求数据失败!");
+                    myChart.hideLoading();
+                }
+            })
+        }
+
+    /* 自定义重置-表单重置/隐藏框/树节点选择色/搜索 */
+    function resetPre() {
+        resetDate();
+        $("#report-form")[0].reset();
+        $("#deptId").val("");
+        $("#parentId").val("");
+        $(".curSelectedNode").removeClass("curSelectedNode");
+        $.table.search();
+    }
+        $.ajax({
+            type : "POST",
+            async : true,            //异步请求(同步请求将会锁住浏览器,用户其他操作必须等待请求完成才可以执行)
+            url : prefix + "/listReport",    //请求发送到TestServlet处
+            data : {},
+            dataType : "json",        //返回数据形式为json
+            success : function(result) {
+                debugger
+                //请求成功时执行该函数内容,result即为服务器返回的json对象
+
+                if (result.data.length>0) {
+                    retData=result.data;
+                    for(var i=0;i<retData.length;i++){
+                        names.push(retData[i].chain);    //挨个取出类别并填入类别数组
+                        Xnames.push(retData[i].orderCount);
+                        unsubmitted.push(retData[i].pendingCount);
+                        submitted.push(retData[i].completedCount);
+                    }
+                    myChart.setOption(option);
+                }
+
+            },
+            error : function(errorMsg) {
+                //请求失败时执行该函数
+                alert("图表请求数据失败!");
+                myChart.hideLoading();
+            }
+        })
+</script>
+<style>
+    .ant-btn-primary {
+        color: #fff;
+        background-color: #1890ff;
+        border-color: #1890ff;
+        text-shadow: 0 -1px 0 rgb(0 0 0 / 12%);
+        box-shadow: 0 2px 0 rgb(0 0 0 / 5%);
+    }
+
+    .ant-radio-button-wrapper {
+        position: relative;
+        display: inline-block;
+        height: 32px;
+        margin: 0;
+        padding: 0 15px;
+        color: rgba(0,0,0,.65);
+        line-height: 30px;
+        background: #fff;
+        border: 1px solid #d9d9d9;
+        border-top-width: 1.02px;
+        border-left: 0;
+        cursor: pointer;
+        transition: color .3s,background .3s,border-color .3s;
+    }
+    .ant-radio-button-wrapper2 {
+        text-align: right;
+        position: relative;
+        display: inline-block;
+        height: 32px;
+        margin: 0;
+        padding: 0 15px;
+        color: rgba(0,0,0,.65);
+        line-height: 30px;
+        background: #fff;
+        border: 1px solid #d9d9d9;
+        border-top-width: 1.02px;
+        border-left: 0;
+        cursor: pointer;
+        transition: color .3s,background .3s,border-color .3s;
+    }
+    .ant-card-head {
+        min-height: 48px;
+        margin-bottom: -1px;
+        padding: 0 24px;
+        color: rgba(0,0,0,.85);
+        font-weight: 500;
+        font-size: 16px;
+        background: transparent;
+        border-bottom: 1px solid #e8e8e8;
+        border-radius: 2px 2px 0 0;
+        zoom: 1;
+    }
+    .ant-card-head-wrapper {
+        display: flex;
+        align-items: center;
+    }
+    .ant-card-head-title {
+        display: inline-block;
+        flex: 1;
+        padding: 16px 0;
+        overflow: hidden;
+        white-space: nowrap;
+        text-overflow: ellipsis;
+    }
+    .index_title-2CoZR {
+        width: 100%;
+        justify-content: space-between;
+        padding-left: 14px;
+        border-left: 4px solid #e8514b;
+    }
+    .ChartAndTable_chart-and-table-3ib6R{
+        display: flex;
+        align-items: center;
+        justify-content: space-between;
+    }
+    .ant-radio-group {
+        box-sizing: border-box;
+        margin: 0;
+        padding: 0;
+        color: rgba(0,0,0,.65);
+        font-size: 14px;
+        font-variant: tabular-nums;
+        line-height: 1.5;
+        list-style: none;
+        font-feature-settings: "tnum";
+        display: inline-block;
+    }
+    .ant-radio-button-wrapper>.ant-radio-button {
+        width: 0;
+        height: 0;
+        margin-left: 0;
+    }
+
+
+
+</style>
+</body>
+
+</html>