recipe.html 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479
  1. <!DOCTYPE html>
  2. <html lang="zh" xmlns:th="http://www.thymeleaf.org" xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
  3. <head>
  4. <th:block th:include="include :: header('处方登记列表')" />
  5. <th:block th:include="include :: layout-latest-css" />
  6. <th:block th:include="include :: ztree-css" />
  7. </head>
  8. <body class="gray-bg">
  9. <div class="ui-layout-center">
  10. <div class="container-div">
  11. <div class="row">
  12. <div class="col-sm-12 search-collapse">
  13. <div class="query-condition-container">
  14. <h4 class="query-condition-title">查询条件</h4>
  15. <div class="query-buttons">
  16. <a class="btn btn-primary btn-rounded btn-sm" onclick="$.table.search()"><i class="fa fa-search"></i>&nbsp;搜索</a>
  17. <a class="btn btn-warning btn-rounded btn-sm" onclick="resetPre()"><i class="fa fa-refresh"></i>&nbsp;重置</a>
  18. </div>
  19. </div>
  20. <form id="user-form" class="customize-search-form">
  21. <div class="customize-form-group-container">
  22. <div class="customize-form-group">
  23. <label>患者信息:</label>
  24. <input type="text" class="styled-input" placeholder="请输入患者姓名或手机号" name="query"/>
  25. </div>
  26. <div class="customize-form-group">
  27. <label>药品:</label>
  28. <input type="text" class="styled-input" name="genericName"/>
  29. </div>
  30. <div class="customize-form-group">
  31. <label>订单编号:</label>
  32. <input type="text" class="styled-input" name="orderId"/>
  33. </div>
  34. <div class="customize-form-group">
  35. <label>销售单号:</label>
  36. <input type="text" class="styled-input" name="saleOrderNumber"/>
  37. </div>
  38. <div class="customize-form-group">
  39. <label>处方单号:</label>
  40. <input type="text" class="styled-input" name="prescriptionNumber"/>
  41. </div>
  42. <div class="customize-form-group">
  43. <label>处方类型</label>
  44. <select name="prescriptionType" th:with="type=${@dict.getType('sys_select_prescription_ype')}" class="styled-input">
  45. <option value="">全部</option>
  46. <option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}"
  47. ></option>
  48. </select>
  49. </div>
  50. <div class="customize-form-group">
  51. <label>配送方式</label>
  52. <select name="deliveryMethod" th:with="type=${@dict.getType('sys_select_delivery_method')}" class="styled-input">
  53. <option value="">全部</option>
  54. <option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}"
  55. ></option>
  56. </select>
  57. </div>
  58. <div class="customize-form-group select-time">
  59. <label>订单日期:</label>
  60. <input type="text" class="time-input" id="startTime" placeholder="开始时间" name="beginTime"/>
  61. <span>-</span>
  62. <input type="text" class="time-input" id="endTime" placeholder="结束时间" name="endTime"/>
  63. </div>
  64. <div class="customize-form-group">
  65. <label>订单状态</label>
  66. <select name="status" th:with="type=${@dict.getType('sys_select_order_status')}" class="styled-input">
  67. <option value="">全部</option>
  68. <option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}"
  69. ></option>
  70. </select>
  71. </div>
  72. </div>
  73. </form>
  74. </div>
  75. <div class="btn-group-sm" id="toolbar" role="group">
  76. <a class="btn btn-success" onclick="$.operate.add()" shiro:hasPermission="dtp:recipe:add">
  77. <i class="fa fa-plus"></i> 处方登记APP
  78. </a>
  79. <a class="btn btn-danger multiple disabled" onclick="$.operate.removeAll()" shiro:hasPermission="sdtp:recipe:remove">
  80. <i class="fa fa-remove"></i> 删除
  81. </a>
  82. <!-- <a class="btn btn-success" onclick="budan()">-->
  83. <!-- <i class="fa btn-primary"></i> 补单-->
  84. <!-- </a>-->
  85. <button type="button" onclick="budan()" class="btn-primary">补单</button>
  86. </div>
  87. <div class="col-sm-12 select-table table-striped" style="width: 100%; overflow-x: auto;">
  88. <table id="bootstrap-table" class="fixed-layout-table"></table>
  89. </div>
  90. </div>
  91. </div>
  92. </div>
  93. <div class="modal inmodal" id="myModal" tabindex="-1" role="dialog" aria-hidden="true">
  94. <div class="modal-dialog">
  95. <form class="form-horizontal" id="form-budan-add">
  96. <div class="modal-content animated bounceInRight">
  97. <div class="modal-header">
  98. <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">&times;</span><span class="sr-only">关闭</span>
  99. </button>
  100. <h4 class="modal-title">请输入补录销售单号</h4>
  101. </div>
  102. <div class="modal-body">
  103. <div class="customize-search-form">
  104. <div class="rows">
  105. <div class="input-group">
  106. 一次仅补录一个处方单,多个销售单号请分别依次补录
  107. </div>
  108. </div>
  109. <div class="rows">
  110. <div class="input-group">
  111. <input type="text" placeholder="请输入订单号编号" class="styled-input" style="width: 400px; height: 40px;" id="saleOrderNumber" name="saleOrderNumber">
  112. </div>
  113. </div>
  114. <div class="modalbudan" id="budanshibai">
  115. <div class="rows" style="text-align: center">
  116. 补单失败,功能未启用,请及时查看数据是否已全部同步!
  117. </div>
  118. <div class="rows">
  119. 系统未找到该订单,已通知研发同学排查,感谢操作
  120. </div>
  121. </div>
  122. </div>
  123. </div>
  124. <div class="modal-footer">
  125. <button type="button" class="btn btn-white" data-dismiss="modal">关闭</button>
  126. <button type="button" class="btn btn-primary" onclick="saveBudDan()">补单</button>
  127. </div>
  128. </div>
  129. </form>
  130. </div>
  131. </div>
  132. <th:block th:include="include :: footer" />
  133. <th:block th:include="include :: layout-latest-js" />
  134. <th:block th:include="include :: bootstrap-table-fixed-columns-js" />
  135. <th:block th:include="include :: ztree-js" />
  136. <script th:inline="javascript">
  137. var editFlag = [[${@permission.hasPermi('system:user:edit')}]];
  138. var removeFlag = [[${@permission.hasPermi('system:user:remove')}]];
  139. var prefix = ctx + "dtp/recipe";
  140. $(function() {
  141. var panehHidden = false;
  142. if ($(this).width() < 1590) {
  143. panehHidden = true;
  144. }
  145. $('body').layout({ initClosed: panehHidden, west__size: 185, resizeWithWindow: false });
  146. // 回到顶部绑定
  147. if ($.fn.toTop !== undefined) {
  148. var opt = {
  149. win:$('.ui-layout-center'),
  150. doc:$('.ui-layout-center')
  151. };
  152. $('#scroll-up').toTop(opt);
  153. }
  154. queryUserList();
  155. });
  156. function queryUserList() {
  157. var options = {
  158. url: prefix + "/list",
  159. viewUrl: prefix + "/view/{id}",
  160. createUrl: prefix + "/add",
  161. updateUrl: prefix + "/edit/{id}",
  162. removeUrl: prefix + "/remove",
  163. exportUrl: prefix + "/export",
  164. //importUrl: prefix + "/importData",
  165. importTemplateUrl: prefix + "/importTemplate",
  166. sortName: "id",
  167. sortOrder: "desc",
  168. modalName: "处方登记信息",
  169. fitColumns: true,
  170. striped: true,
  171. autoRowHeight: true,
  172. rowNumbers: true,
  173. showFooter:true, //是否显示表格底部区域。
  174. clickToSelect: true, //是否启用点击行时选中整行的功能。
  175. singleSelect: false, //是否仅允许选择一行
  176. fixedColumns: true,
  177. //fixedNumber: 3,
  178. fixedRightNumber: 1,
  179. columns: [{
  180. checkbox: true
  181. },
  182. {
  183. field: "id",
  184. title: "id",
  185. //hidden:false
  186. visible: false,
  187. },
  188. {
  189. field: "orderId",
  190. title: "订单编号"
  191. },
  192. {
  193. field: "saleOrderNumber",
  194. title: "销售单号"
  195. },
  196. {
  197. field: "genericName",
  198. title: "药品通用名"
  199. },
  200. {
  201. field: "productName",
  202. title: "商品名",
  203. },
  204. {
  205. field: "specification",
  206. title: "规格"
  207. },
  208. {
  209. field: "quantity",
  210. title: "数量"
  211. },
  212. {
  213. field: "manufacturer",
  214. title: "厂家"
  215. },
  216. {
  217. field: "mdmCode",
  218. title: "MDM编码"
  219. },
  220. {
  221. field: "posMemberName",
  222. title: "POS会员姓名"
  223. },
  224. {
  225. field: "posMemberPhone",
  226. title: "POS会员手机号"
  227. },
  228. {
  229. field: "prescriptionType",
  230. title: "处方类型",
  231. formatter: function(value, row, index) {
  232. switch (value) {
  233. case 1:
  234. return "电子处方";
  235. break;
  236. case 2:
  237. return "纸质处方";
  238. break;
  239. default:
  240. return "";
  241. }
  242. }
  243. },
  244. {
  245. field: "orderTime",
  246. title: "订单时间"
  247. },
  248. {
  249. field: "prescriptionNumber",
  250. title: "处方单号"
  251. },
  252. {
  253. field: "hospital",
  254. title: "医院"
  255. },
  256. {
  257. field: "department",
  258. title: "科室"
  259. },
  260. {
  261. field: "doctor",
  262. title: "医生"
  263. },
  264. {
  265. field: "patientName",
  266. title: "患者姓名"
  267. },
  268. {
  269. field: "patientPhone",
  270. title: "手机号"
  271. },
  272. {
  273. field: "storeName",
  274. title: "门店"
  275. },
  276. {
  277. field: "registrar",
  278. title: "登记人"
  279. },
  280. {
  281. field: "completionTime",
  282. title: "完成时间"
  283. },
  284. {
  285. field: "lastUpdated",
  286. title: "最后更新时间"
  287. },
  288. {
  289. field: "deliveryMethod",
  290. title: "配送方式",
  291. formatter: function(value, row, index) {
  292. switch (value) {
  293. case "1":
  294. return "门店自取";
  295. break;
  296. case "2":
  297. return "配送";
  298. break;
  299. default:
  300. return "";
  301. }
  302. }
  303. },
  304. // {
  305. // field: "paymentCode",
  306. // title: "付款代码"
  307. // },
  308. // {
  309. // field: "paymentMethod",
  310. // title: "付款方式"
  311. // },
  312. {
  313. field: "status",
  314. title: "状态",
  315. formatter: function(value, row, index) {
  316. switch (value) {
  317. case 1:
  318. return "订单已完成";
  319. break;
  320. case 2:
  321. return "待上传处方";
  322. break;
  323. case 3:
  324. return "待确认信息";
  325. break;
  326. case 4:
  327. return "待处方登记";
  328. break;
  329. case 5:
  330. return "待订单销售";
  331. break;
  332. case 6:
  333. return "待绑定患者";
  334. break;
  335. case 7:
  336. return "处方已完成";
  337. break;
  338. case 8:
  339. return "订单已退款";
  340. break;
  341. default:
  342. return "待确认信息";
  343. }
  344. }
  345. },
  346. {
  347. field: "createTime",
  348. title: "创建时间"
  349. },
  350. {
  351. title: '操作',
  352. align: 'center',
  353. formatter: function(value, row, index) {
  354. if (row.id) {
  355. var actions = [];
  356. 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> ');
  357. 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> ');
  358. return actions.join('');
  359. } else {
  360. return "";
  361. }
  362. }
  363. }]
  364. };
  365. $.table.init(options);
  366. }
  367. function queryDeptTree()
  368. {
  369. var url = ctx + "dtp/recipe/deptTreeData";
  370. var options = {
  371. url: url,
  372. expandLevel: 2,
  373. onClick : zOnClick
  374. };
  375. $.tree.init(options);
  376. function zOnClick(event, treeId, treeNode) {
  377. $("#deptId").val(treeNode.id);
  378. $("#parentId").val(treeNode.pId);
  379. $.table.search();
  380. }
  381. }
  382. /* 自定义重置-表单重置/隐藏框/树节点选择色/搜索 */
  383. function resetPre() {
  384. resetDate();
  385. $("#user-form")[0].reset();
  386. $("#deptId").val("");
  387. $("#parentId").val("");
  388. $(".curSelectedNode").removeClass("curSelectedNode");
  389. $.table.search();
  390. }
  391. function budan(){
  392. $('#myModal').modal('show');
  393. }
  394. function saveBudDan(){
  395. if ($.validate.form("form-budan-add")) {
  396. var data = $("#form-budan-add").serializeArray();
  397. var saleOrderNumber= $("#saleOrderNumber").val();
  398. console.log("saleOrderNumber="+saleOrderNumber);
  399. console.log("data="+data);
  400. // $.ajax({
  401. // cache: true,
  402. // type: "POST",
  403. // url: prefix + "/budanSelect",
  404. // data: data,
  405. // async: false,
  406. // error: function (data) {
  407. // $.modal.alertError(data.msg);
  408. // },
  409. // success: function (data) {
  410. // if(data.code==0){
  411. // $('#budanshibai').hide();
  412. // }else{
  413. // $('#budanshibai').show();
  414. // }
  415. // }
  416. // });
  417. }
  418. $('#budanshibai').show();
  419. }
  420. </script>
  421. </body>
  422. <style>
  423. .modal {
  424. display: none;
  425. position: fixed;
  426. z-index: 1;
  427. left: 0;
  428. top: 0;
  429. width: 100%;
  430. height: 100%;
  431. overflow: auto;
  432. background-color: rgba(0,0,0,0.4);
  433. }
  434. .modalbudan{
  435. display: none;
  436. }
  437. .modal-content {
  438. background-color: #fefefe;
  439. margin: 15% auto;
  440. padding: 20px;
  441. border: 1px solid #888;
  442. width: 90%;
  443. }
  444. .close {
  445. color: #aaa;
  446. float: right;
  447. font-size: 28px;
  448. font-weight: bold;
  449. }
  450. .close:hover,
  451. .close:focus {
  452. color: black;
  453. text-decoration: none;
  454. cursor: pointer;
  455. }
  456. .error-message {
  457. color: red;
  458. display: none;
  459. }
  460. </style>
  461. </html>