booksBorrow.html 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661
  1. <!doctype html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
  6. <meta name="apple-mobile-web-app-capable" content="yes">
  7. <meta name="apple-mobile-web-app-status-bar-style" content="black">
  8. <title>图书借阅</title>
  9. <link rel="stylesheet" href="../../css/mui.min.css">
  10. <link rel="stylesheet" href="../../css/mui.picker.min.css">
  11. <link href="../../css/mui.poppicker.css" rel="stylesheet" />
  12. <link href="../../css/OA-style.css" rel="stylesheet" />
  13. <link rel="stylesheet" type="text/css" href="../../css/app.css" />
  14. <style>
  15. html,
  16. body {
  17. background-color: #efeff4;
  18. }
  19. .mui-views,
  20. .mui-view,
  21. .mui-pages,
  22. .mui-page,
  23. .mui-page-content {
  24. position: absolute;
  25. left: 0;
  26. right: 0;
  27. top: 0;
  28. bottom: 0;
  29. width: 100%;
  30. height: 100%;
  31. background-color: #efeff4;
  32. }
  33. .mui-pages {
  34. top: 43px;
  35. height: auto;
  36. }
  37. .mui-scroll-wrapper,
  38. .mui-scroll {
  39. background-color: #efeff4;
  40. }
  41. .mui-page.mui-transitioning {
  42. -webkit-transition: -webkit-transform 300ms ease;
  43. transition: transform 300ms ease;
  44. }
  45. .mui-page-left {
  46. -webkit-transform: translate3d(0, 0, 0);
  47. transform: translate3d(0, 0, 0);
  48. }
  49. .mui-ios .mui-page-left {
  50. -webkit-transform: translate3d(-20%, 0, 0);
  51. transform: translate3d(-20%, 0, 0);
  52. }
  53. .mui-navbar {
  54. position: fixed;
  55. right: 0;
  56. left: 0;
  57. z-index: 10;
  58. height: 44px;
  59. background-color: #468CF0;
  60. }
  61. .mui-navbar .mui-bar {
  62. position: absolute;
  63. background: transparent;
  64. text-align: center;
  65. }
  66. .mui-android .mui-navbar-inner.mui-navbar-left {
  67. opacity: 0;
  68. }
  69. .mui-ios .mui-navbar-left .mui-left,
  70. .mui-ios .mui-navbar-left .mui-center,
  71. .mui-ios .mui-navbar-left .mui-right {
  72. opacity: 0;
  73. }
  74. .mui-navbar .mui-btn-nav {
  75. -webkit-transition: none;
  76. transition: none;
  77. -webkit-transition-duration: .0s;
  78. transition-duration: .0s;
  79. }
  80. .mui-navbar .mui-bar .mui-title {
  81. display: inline-block;
  82. width: auto;
  83. }
  84. .mui-page-shadow {
  85. position: absolute;
  86. right: 100%;
  87. top: 0;
  88. width: 16px;
  89. height: 100%;
  90. z-index: -1;
  91. content: '';
  92. }
  93. .mui-page-shadow {
  94. background: -webkit-linear-gradient(left, rgba(0, 0, 0, 0) 0, rgba(0, 0, 0, 0) 10%, rgba(0, 0, 0, .01) 50%, rgba(0, 0, 0, .2) 100%);
  95. background: linear-gradient(to right, rgba(0, 0, 0, 0) 0, rgba(0, 0, 0, 0) 10%, rgba(0, 0, 0, .01) 50%, rgba(0, 0, 0, .2) 100%);
  96. }
  97. .mui-navbar-inner.mui-transitioning,
  98. .mui-navbar-inner .mui-transitioning {
  99. -webkit-transition: opacity 300ms ease, -webkit-transform 300ms ease;
  100. transition: opacity 300ms ease, transform 300ms ease;
  101. }
  102. .mui-page {
  103. display: none;
  104. }
  105. .mui-pages .mui-page {
  106. display: block;
  107. }
  108. .mui-page .mui-table-view:first-child {
  109. margin-top: 15px;
  110. }
  111. .mui-page .mui-table-view:last-child {
  112. margin-bottom: 30px;
  113. }
  114. .mui-table-view {
  115. margin-top: 0px;
  116. }
  117. .mui-table-view span.mui-pull-right {
  118. color: #999;
  119. }
  120. .mui-table-view-divider {
  121. background-color: #efeff4;
  122. font-size: 14px;
  123. }
  124. .mui-content>.mui-table-view:first-child {
  125. margin-top: -1px;
  126. }
  127. .mui-bar {
  128. box-shadow: none;
  129. }
  130. .mui-table-view-cell:after {
  131. left: 0px;
  132. }
  133. .mui-input-row label {
  134. padding: 0;
  135. line-height: 21px;
  136. }
  137. input[type=color],
  138. input[type=date],
  139. input[type=datetime-local],
  140. input[type=datetime],
  141. input[type=email],
  142. input[type=month],
  143. input[type=number],
  144. input[type=password],
  145. input[type=search],
  146. input[type=tel],
  147. input[type=text],
  148. input[type=time],
  149. input[type=url],
  150. input[type=week],
  151. select,
  152. textarea {
  153. padding: 0;
  154. height: auto;
  155. }
  156. .mui-table-view-divider:before,
  157. .mui-table-view-divider:after {
  158. height: 0;
  159. }
  160. .head {
  161. height: 40px;
  162. }
  163. #head {
  164. line-height: 40px;
  165. }
  166. .head-img {
  167. width: 40px;
  168. height: 40px;
  169. }
  170. #head-img1 {
  171. position: absolute;
  172. bottom: 10px;
  173. right: 40px;
  174. width: 40px;
  175. height: 40px;
  176. }
  177. .update {
  178. font-style: normal;
  179. color: #999999;
  180. margin-right: -25px;
  181. font-size: 15px
  182. }
  183. .mui-fullscreen {
  184. position: fixed;
  185. z-index: 20;
  186. background-color: #000;
  187. }
  188. .mui-ios .mui-navbar .mui-bar .mui-title {
  189. position: static;
  190. }
  191. /*问题反馈在setting页面单独的css*/
  192. #feedback .mui-popover {
  193. position: fixed;
  194. }
  195. #feedback .mui-table-view:last-child {
  196. margin-bottom: 0px;
  197. }
  198. #feedback .mui-table-view:first-child {
  199. margin-top: 0px;
  200. }
  201. .mui-plus.mui-plus-stream .mui-stream-hidden {
  202. display: none !important;
  203. }
  204. /*问题反馈在setting页面单独的css==end*/
  205. .mui-input-row .mui-numbox {
  206. float: right;
  207. margin: -11px 8px;
  208. }
  209. </style>
  210. </head>
  211. <body class="mui-fullscreen">
  212. <!--页面主结构开始-->
  213. <div id="app" class="mui-views">
  214. <div class="mui-view">
  215. <div class="mui-navbar">
  216. </div>
  217. <div class="mui-pages">
  218. </div>
  219. </div>
  220. </div>
  221. <div id="setting" class="mui-page">
  222. <div class="mui-navbar-inner mui-bar mui-bar-nav">
  223. <a class="mui-action-back back mui-pull-left"><img src="../../images/back.png"></a>
  224. <h1 class="mui-center mui-title">图书借阅</h1>
  225. <div class="mui-button-row">
  226. <button type="button" id="barcode" class="mui-btn mui-btn-danger mui-btn-block" on onclick="clicked('barcode.html',true,true)" style="
  227. width:28px;
  228. float: right;margin-top: -3px;background-color: #468CF0;border: 0px;background-size:100% 80%;background-image: url(../../images/resizeApi2.png);background-repeat: no-repeat;">&nbsp;&nbsp;&nbsp;&nbsp;</button>
  229. </div>
  230. </div>
  231. <div class="mui-page-content">
  232. <div class="mui-scroll-wrapper" id="pullrefresh">
  233. <div class="mui-scroll">
  234. <div class="mui-content-padded" style="margin: 5px;">
  235. <!--<div class="mui-button-row">
  236. <button type="button" id="barcode" class="mui-btn mui-btn-danger mui-btn-block" on onclick="clicked('barcode.html',true,true)" style="width:100%;background-color: #468CF0;border: 0px;">点击扫条码</button>
  237. </div>-->
  238. <form class="mui-input-group" id="form_element">
  239. <div class="mui-content">
  240. <ul class="mui-table-view ">
  241. <li class="mui-table-view-cell mui-input-row">
  242. <label>图书编码:</label>
  243. <input type="text" id="appliance_number" placeholder="" readonly="readonly">
  244. <input type="hidden" id="appliance_id" placeholder="">
  245. </li>
  246. <li class="mui-table-view-cell mui-input-row">
  247. <label>图书类别:</label>
  248. <input type="text" id="sort_name" placeholder="" readonly="readonly">
  249. </li>
  250. <li class="mui-table-view-cell mui-input-row">
  251. <label>图书条码:</label>
  252. <input type="text" id="book_barcode" placeholder="请输入图书条码" readonly="readonly" <!--onclick="showInput();" -->>
  253. </li>
  254. <li class="mui-table-view-cell mui-input-row">
  255. <label>书名:</label>
  256. <input type="text" id="book_name" placeholder="" readonly="readonly">
  257. </li>
  258. <li class="mui-table-view-cell mui-input-row">
  259. <label>作者:</label>
  260. <input type="text" id="writer" placeholder="" readonly="readonly">
  261. </li>
  262. <li class="mui-table-view-cell mui-input-row">
  263. <label>出版社:</label>
  264. <input type="text" id="factory" placeholder="" readonly="readonly">
  265. </li>
  266. <li class="mui-table-view-cell mui-input-row">
  267. <label>借阅日期:</label>
  268. <input type="text" id="borrow_date" data-options='{"type":"date"}' class="dateinput" placeholder="" readonly="readonly">
  269. </li>
  270. <li class="mui-table-view-cell mui-input-row">
  271. <label>借阅期限(天):</label>
  272. <div class="mui-numbox" style="margin-right: 30%;" data-numbox-min='1'>
  273. <button class="mui-btn mui-btn-numbox-minus" type="button">-</button>
  274. <input class="mui-input-numbox" type="perdaymoney" id="borrow_day" value="90" />
  275. <button class="mui-btn mui-btn-numbox-plus" type="button">+</button>
  276. </div>
  277. </li>
  278. <li class="mui-table-view-cell mui-input-row">
  279. <label>备注:</label>
  280. <input type="text" id="remark" placeholder="">
  281. </li>
  282. </ul>
  283. </div>
  284. </form>
  285. <form class="mui-input-group">
  286. <section id="startFlow">
  287. <template>
  288. <div class="mui-input-row">
  289. <label style="padding: 10px 0px 0px 15px;">借阅人:</label>
  290. <input type="hidden" id="borrow_user" placeholder="">
  291. <input type="text" id="borrow_user_name" rows="4" placeholder="请选择人员" readonly="readonly" @click="choosePerson()" style="padding-top: 10px;;">
  292. </div>
  293. </template>
  294. </section>
  295. </form>
  296. <div class="mui-button-row">
  297. <button type="button" class="mui-btn mui-btn-primary" id="save">确认</button>&nbsp;&nbsp;
  298. <button type="button" class="mui-btn mui-btn-danger mui-action-back" onclick="return false;">取消</button>
  299. </div>
  300. </div>
  301. </div>
  302. </div>
  303. </div>
  304. </div>
  305. <div id="personComponent" class="mui-page">
  306. <div class="mui-navbar-inner mui-bar mui-bar-nav">
  307. <a class="mui-action-back back mui-pull-left"><img src="../../images/back.png"></a>
  308. <h1 class="mui-center mui-title">人员选择</h1>
  309. </div>
  310. <div class="mui-page-content">
  311. <div class="mui-scroll-wrapper" id="person-scroll">
  312. <div class="mui-scroll">
  313. <div class="mui-card" id="personData">
  314. <!-- 当前选择人员在环节 -->
  315. <input type="hidden" id="selTmodelId" value="" />
  316. <ul class="mui-table-view">
  317. <li class="mui-table-view-cell" v-for="groupUser in groupUsers" v-if="groupUser.type == 'dept'">
  318. <a class="mui-navigate-right" href="#" @click="getGroupUser(groupUser.id)">{{groupUser.text}}</a>
  319. </li>
  320. </ul>
  321. <div class="mui-input-row mui-radio" style="padding:5px;" v-for="groupUser in groupUsers" v-if="groupUser.type == 'user'">
  322. <label style="width: auto;">{{groupUser.text}}</label>
  323. <input name="radio1" type="radio" v-value="groupUser.id" @click="selectUser(groupUser)">
  324. </div>
  325. </div>
  326. </div>
  327. </div>
  328. </div>
  329. </div>
  330. <script src="../../js/mui.min.js"></script>
  331. <script src="../../js/mui.view.js"></script>
  332. <script src="../../js/mui.picker.min.js"></script>
  333. <script src="../../js/vue.min.js"></script>
  334. <script src="../../js/config.js"></script>
  335. <script src="../../js/app.js"></script>
  336. <script src="../../js/jquery-1.11.2.min.js"></script>
  337. <script type="text/javascript" src="../../js/immersed.js"></script>
  338. <script type="text/javascript" src="../../js/common2.js"></script>
  339. <script type="text/javascript">
  340. var url = API.API_URL();
  341. mui.init();
  342. var viewApi = mui('#app').view({
  343. defaultPage: '#setting'
  344. });
  345. //初始化单页的区域滚动
  346. mui('.mui-scroll-wrapper').scroll({
  347. bounce: false, //滚动条是否有弹力默认是true
  348. indicators: false //是否显示滚动条
  349. });
  350. var year = new Date().getFullYear();
  351. var month2 = new Date().getMonth() + 1;
  352. if(month2 <10){
  353. month2 = "0"+month2;
  354. }
  355. var day2 = new Date().getDate();
  356. if(day2 < 10){
  357. day2 = "0"+day2;
  358. }
  359. var nowTime = year + "-" + month2 + "-" + day2;
  360. $("input#borrow_date").val(nowTime);
  361. (function($, doc) {
  362. getGroupUser(347517153919893);
  363. var dateinputs = $('.dateinput');
  364. dateinputs.each(function(i, dinput) {
  365. dinput.addEventListener('click', function() {
  366. var _self = this;
  367. if(_self.picker) {
  368. _self.picker.show(function(rs) {
  369. dinput.setAttribute('data-options', '{"type":"date","value":"' + rs.text + '"}');
  370. dinput.value = rs.text;
  371. _self.picker.dispose();
  372. _self.picker = null;
  373. });
  374. } else {
  375. var optionsJson = this.getAttribute('data-options') || '{}';
  376. var options = JSON.parse(optionsJson);
  377. var id = this.getAttribute('id');
  378. /*
  379. * 首次显示时实例化组件
  380. * 示例为了简洁,将 options 放在了按钮的 dom 上
  381. * 也可以直接通过代码声明 optinos 用于实例化 DtPicker
  382. */
  383. _self.picker = new mui.DtPicker(options);
  384. _self.picker.show(function(rs) {
  385. /*
  386. * rs.value 拼合后的 value
  387. * rs.text 拼合后的 text
  388. * rs.y 年,可以通过 rs.y.vaue 和 rs.y.text 获取值和文本
  389. * rs.m 月,用法同年
  390. * rs.d 日,用法同年
  391. * rs.h 时,用法同年
  392. * rs.i 分(minutes 的第二个字母),用法同年
  393. */
  394. dinput.setAttribute('data-options', '{"type":"date","value":"' + rs.text + '"}');
  395. dinput.value = rs.text;
  396. /*
  397. * 返回 false 可以阻止选择框的关闭
  398. * return false;
  399. */
  400. /*
  401. * 释放组件资源,释放后将将不能再操作组件
  402. * 通常情况下,不需要示放组件,new DtPicker(options) 后,可以一直使用。
  403. * 当前示例,因为内容较多,如不进行资原释放,在某些设备上会较慢。
  404. * 所以每次用完便立即调用 dispose 进行释放,下次用时再创建新实例。
  405. */
  406. _self.picker.dispose();
  407. _self.picker = null;
  408. });
  409. }
  410. }, false);
  411. });
  412. //处理view的后退与webview后退
  413. var oldBack = $.back;
  414. $.back = function() {
  415. if(viewApi.canBack()) { //如果view可以后退,则执行view的后退
  416. viewApi.back();
  417. } else { //执行webview后退
  418. oldBack();
  419. }
  420. };
  421. })(mui);
  422. var vm = new Vue({
  423. el: '#startFlow', //bodydiv
  424. data: {
  425. flow: {},
  426. nextTmodels: [],
  427. nextHandTmodels: []
  428. }
  429. });
  430. var vm2 = new Vue({
  431. el: '#personData',
  432. data: {
  433. groupUsers: []
  434. }
  435. });
  436. //获取人员选择列表信息
  437. function getGroupUser(groupId) {
  438. mui('#person-scroll').scroll().scrollTo(0, 0);
  439. console.log(groupId);
  440. var state = app.getState(); //获取登陆信息
  441. var staffId = state.user.useId;
  442. mui.ajax(url, {
  443. dataType: 'json', //服务器返回json格式数据
  444. type: 'post', //HTTP请求类型
  445. data: {
  446. 'serviceId': 'eu_20180308loadUserByGroup',
  447. 'params': '{staffId:"' + staffId + '",groupId:"' + groupId + '"}'
  448. },
  449. timeout: 10000, //超时时间设置为10秒;
  450. headers: {
  451. 'Accept': 'application/json'
  452. },
  453. success: function(data) {
  454. //服务器返回响应
  455. console.log("人员信息:" + JSON.stringify(data));
  456. if(data.returnCode == "1") {
  457. vm2.groupUsers = data.returnParams;
  458. } else {
  459. mui.toast("获取流程信息错误");
  460. }
  461. },
  462. error: function(xhr, type, errorThrown) {
  463. //异常处理;
  464. console.log(xhr + "========" + type + "===========" + errorThrown);
  465. }
  466. });
  467. }
  468. mui.plusReady(function() {
  469. //表单提交按钮
  470. var save = document.getElementById("save");
  471. save.addEventListener("click", function() {
  472. var state = app.getState(); //获取登陆信息
  473. var staffId = state.user.useId;
  474. var appliance_id = $("#appliance_id").val();
  475. var borrow_date = $("#borrow_date").val();
  476. var borrow_user = $("#borrow_user").val();
  477. var borrow_day = $("#borrow_day").val();
  478. var remark = $("#remark").val();
  479. if(borrow_date == "") {
  480. mui.toast("请选择借阅日期");
  481. return;
  482. }
  483. if(borrow_user == "") {
  484. mui.toast("请选择借阅人");
  485. return;
  486. }
  487. if(borrow_day == "") {
  488. mui.toast("请填写借阅期限");
  489. return;
  490. }
  491. var serviceId = "oa_PHONE_booksBorrow";
  492. var obj = {
  493. appliance_id: appliance_id,
  494. borrow_user: borrow_user,
  495. borrow_date: borrow_date,
  496. remark: remark,
  497. borrow_day: borrow_day,
  498. create_user: staffId
  499. };
  500. app.ajax(serviceId, obj, function(data) {
  501. //服务器返回响应
  502. console.log(JSON.stringify(data))
  503. if(data == '0') {
  504. mui.toast("借阅成功");
  505. } else if(data == '1') {
  506. mui.toast("用户超过借阅上限,请先还书");
  507. }
  508. location.reload();
  509. });
  510. });
  511. })
  512. mui.plusReady(function() {
  513. //图书条码提交按钮
  514. var save = document.getElementById("book_barcode");
  515. save.addEventListener("tap", function(e) {
  516. e.detail.gesture.preventDefault(); //修复iOS 8.x平台存在的bug,使用plus.nativeUI.prompt会造成输入法闪一下又没了
  517. var btnArray = ['确定', '取消'];
  518. mui.prompt('请输入图书条码:', ' ', '图书条码', btnArray, function(e) {
  519. var i = e.index;
  520. if(e.index == 0) {
  521. var bookBarcode = e.value;
  522. var serviceId = "oa_PHONE_booksInfo";
  523. var obj = {
  524. barcode: bookBarcode
  525. };
  526. app.ajax(serviceId, obj, function(data) {
  527. console.log(JSON.stringify(data))
  528. if(data.count > 0) {
  529. var books = data.books;
  530. if(books.appliance_type != 1) {
  531. $("#appliance_number").val(books.appliance_number);
  532. $("#sort_name").val(books.appliance_sort_name);
  533. $("#book_name").val(books.appliance_bookName);
  534. $("#book_barcode").val(books.barcode);
  535. $("#writer").val(books.writer);
  536. $("#factory").val(books.appliance_factory);
  537. $("#appliance_id").val(books.appliance_id);
  538. } else {
  539. mui.toast("该图书已被借出");
  540. }
  541. } else {
  542. mui.toast("系统中暂无此图书");
  543. }
  544. });
  545. }
  546. })
  547. });
  548. })
  549. function choosePerson() {
  550. getGroupUser(347517153919893);
  551. viewApi.go('#personComponent');
  552. };
  553. function selectUser(user) {
  554. $("#borrow_user_name").val(user.text);
  555. $("#borrow_user").val(user.id);
  556. viewApi.back();
  557. }
  558. function scaned(t, r, f) {
  559. var serviceId = "oa_PHONE_booksInfo";
  560. var obj = {
  561. barcode: r
  562. };
  563. app.ajax(serviceId, obj, function(data) {
  564. console.log(JSON.stringify(data))
  565. if(data.count > 0) {
  566. var books = data.books;
  567. if(books.appliance_type != 1) {
  568. $("#appliance_number").val(books.appliance_number);
  569. $("#sort_name").val(books.appliance_sort_name);
  570. $("#book_name").val(books.appliance_bookName);
  571. $("#book_barcode").val(books.barcode);
  572. $("#writer").val(books.writer);
  573. $("#factory").val(books.appliance_factory);
  574. $("#appliance_id").val(books.appliance_id);
  575. } else {
  576. mui.toast("该图书已被借出");
  577. }
  578. } else {
  579. mui.toast("系统中暂无此图书");
  580. }
  581. });
  582. }
  583. //页面
  584. </script>
  585. </body>
  586. </html>