dispatch_add3.html 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488
  1. {extend name="common/common2" /}
  2. {block name="main"}
  3. <style>
  4. .rr{
  5. padding-right: 10px;
  6. }
  7. </style>
  8. <div class="row" id="formApp">
  9. <div class="col-sm-12">
  10. <div class="ibox float-e-margins">
  11. <div class="ibox-content">
  12. <form method="post" action="{:url('dispatchAdd',[],'')}/mode/{$mode}?id={$id}" class="form-horizontal">
  13. <div class="col-sm-12">
  14. <div class="form-group">
  15. <label class="control-label">部门</label></br>
  16. <input type="hidden" name="dep_id" id="dep" value="{$dep_id|default=0}">
  17. <el-select v-model="dep_id" size="small" clearable style="width: 100%" filterable placeholder="请选择">
  18. <el-option
  19. v-for="item in dep"
  20. :key="item.id"
  21. :label="item.title"
  22. :value="item.id.toString()">
  23. </el-option>
  24. </el-select>
  25. </div>
  26. </div>
  27. {if $dispatch_type==0 && $two_dispatch_off==1}
  28. <div class="col-sm-12">
  29. <div class="form-group">
  30. <label class="control-label">执行人类型<span class="text-danger">*</span></label></br>
  31. <select name="userType" onchange="setType(this.value)" class="form-control">
  32. <option value="0">员工</option>
  33. <option value="1">二级调度</option>
  34. </select>
  35. </div>
  36. </div>
  37. {/if}
  38. <div id="type1" style="display:none">
  39. <div class="col-sm-12">
  40. <div class="form-group">
  41. <label class="control-label">二级调度<span class="text-danger">*</span></label></br>
  42. <input type="hidden" id="to_roles_id" name="to_roles_id">
  43. <el-select
  44. v-model="roles_id"
  45. multiple
  46. collapse-tags
  47. filterable
  48. size="small"
  49. style="width:100%"
  50. placeholder="请选择"
  51. >
  52. <el-option
  53. v-for="item in to_roles"
  54. :key="item.id"
  55. :label="item.title"
  56. :value="item.id.toString()">
  57. </el-option>
  58. </el-select>
  59. </div>
  60. </div>
  61. </div>
  62. <div class="col-sm-12">
  63. <div class="form-group" id="type2">
  64. <label class="control-label">执行人<span class="text-danger">*</span></label></br>
  65. {if $send_user_num==0} <!--多选-->
  66. <input type="hidden" name="to_user_id" id="user_id">
  67. <el-select v-model="user_id" filterable clearable multiple placeholder="请选择" size="small"
  68. style="width:100%">
  69. <el-option-group
  70. v-for="group in user"
  71. :key="group.id"
  72. :label="group.name">
  73. <el-option
  74. v-for="item in group.user"
  75. :key="item.id"
  76. :label="item.real_name"
  77. :value="item.id.toString()">
  78. </el-option>
  79. </el-option-group>
  80. </el-select>
  81. {else}<!--单选-->
  82. <input type="hidden" name="to_user_id" id="user_id">
  83. <el-select v-model="user_id" filterable clearable placeholder="请选择" size="small"
  84. style="width:100%">
  85. <el-option-group
  86. v-for="group in user"
  87. :key="group.id"
  88. :label="group.name">
  89. <el-option
  90. v-for="item in group.user"
  91. :key="item.id"
  92. :label="item.real_name"
  93. :value="item.id.toString()">
  94. </el-option>
  95. </el-option-group>
  96. </el-select>
  97. {/if}
  98. </div>
  99. </div>
  100. <div class="col-sm-12">
  101. <div class="form-group">
  102. <label class="control-label">运送类型<span class="text-danger">*</span></label></br>
  103. <div class="rr">
  104. <input type="hidden" name="type" id="type">
  105. <div>
  106. <el-select v-model="type" size="small" clearable style="width: 100%" filterable placeholder="请选择">
  107. <el-option
  108. v-for="item in types"
  109. :key="item.id"
  110. :label="item.title"
  111. :value="item.id">
  112. </el-option>
  113. </el-select>
  114. </div>
  115. </div>
  116. </div>
  117. </div>
  118. <div class="col-sm-12">
  119. <div class="form-group">
  120. <label class="control-label">优 &nbsp;先 &nbsp;级</label></br>
  121. <input type="hidden" name="priority" id="priority">
  122. <div style="padding-right: 10px">
  123. <el-radio v-model="priority" label="2">常规</el-radio>
  124. <el-radio v-model="priority" label="3">紧急</el-radio>
  125. </div>
  126. </div>
  127. </div>
  128. <div id="patient">
  129. <div class="col-sm-6">
  130. <div class="form-group">
  131. <label class="control-label">床号</label></br>
  132. <div class="rr">
  133. <input type="text" class="form-control" name="bed_number">
  134. </div>
  135. </div>
  136. </div>
  137. <div class="col-sm-6">
  138. <div class="form-group">
  139. <label class="control-label">姓名</label></br>
  140. <div class="rr">
  141. <input type="text" class="form-control" name="p_name">
  142. </div>
  143. </div>
  144. </div>
  145. <!-- <div class="col-sm-4">-->
  146. <!-- <div class="form-group">-->
  147. <!-- <label class="control-label">病案号</label></br>-->
  148. <!-- <div class="rr">-->
  149. <!-- <input type="text" class="form-control" name="ba_number">-->
  150. <!-- </div>-->
  151. <!-- </div>-->
  152. <!-- </div>-->
  153. <!-- <div class="col-sm-6">-->
  154. <!-- <div class="form-group">-->
  155. <!-- <label class="control-label">性别</label></br>-->
  156. <!-- <div class="rr">-->
  157. <!-- <select name="gender" class="form-control">-->
  158. <!-- <option value="0">未知</option>-->
  159. <!-- <option value="1">男</option>-->
  160. <!-- <option value="2">女</option>-->
  161. <!-- </select>-->
  162. <!-- </div>-->
  163. <!-- </div>-->
  164. <!-- </div>-->
  165. <!-- <div class="col-sm-6">-->
  166. <!-- <div class="form-group">-->
  167. <!-- <label class="control-label">是否往返</label></br>-->
  168. <!-- <select name="back" class="form-control">-->
  169. <!-- <option value="0">否</option>-->
  170. <!-- <option value="1">是</option>-->
  171. <!-- </select>-->
  172. <!-- </div>-->
  173. <!-- </div>-->
  174. </div>
  175. <div class="col-sm-6">
  176. <div class="form-group" >
  177. <label class="control-label">开始地点<span class="text-danger">*</span></label></br>
  178. <input type="hidden" value="{$user.addr_id==0?'':$user.addr_id}" name="start" id="start">
  179. <div class="rr">
  180. <el-select v-model="start" size="small" clearable style="width: 100%" filterable placeholder="请选择">
  181. <el-option
  182. v-for="item in starts"
  183. :key="item.id"
  184. :label="item.title"
  185. :value="item.id">
  186. </el-option>
  187. </el-select>
  188. </div>
  189. </div>
  190. </div>
  191. <div class="col-sm-6">
  192. <div class="form-group">
  193. <label class="control-label">结束地点<span class="text-danger">*</span></label></br>
  194. <input type="hidden" name="end" id="end">
  195. <el-select v-model="end" size="small" clearable style="width: 100%" filterable placeholder="请选择">
  196. <el-option
  197. v-for="item in ends"
  198. :key="item.id"
  199. :label="item.title"
  200. :value="item.id">
  201. </el-option>
  202. </el-select>
  203. </div>
  204. </div>
  205. <div class="col-sm-12">
  206. <div class="form-group">
  207. <label class="control-label">途径地点</label></br>
  208. <div style="padding-right: 10px">
  209. <input type="hidden" name="way_addr" id="way_addr">
  210. <el-select v-model="way_addr" size="small" collapse-tags style="width: 100%" multiple placeholder="请选择">
  211. <el-option
  212. v-for="item in way_addrs"
  213. :key="item.id"
  214. :label="item.title"
  215. :value="item.id">
  216. </el-option>
  217. </el-select>
  218. </div>
  219. </div>
  220. </div>
  221. <!-- <div class="col-sm-12">-->
  222. <!-- <div class="form-group">-->
  223. <!-- <label class="control-label">运送设备</label></br>-->
  224. <!-- <input type="hidden" name="device_id" id="device">-->
  225. <!-- <el-select v-model="device" size="small" style="width: 100%" clearable filterable placeholder="请选择">-->
  226. <!-- <el-option-->
  227. <!-- v-for="item in devices"-->
  228. <!-- :key="item.id"-->
  229. <!-- :label="item.title"-->
  230. <!-- :value="item.id">-->
  231. <!-- </el-option>-->
  232. <!-- </el-select>-->
  233. <!-- </div>-->
  234. <!-- </div>-->
  235. <div id="yy" style="display:none;">
  236. <div class="col-sm-6">
  237. <div class="form-group">
  238. <label class="control-label">需求时间<span class="text-danger">*</span></label></br>
  239. <input type="hidden" name="xq_time" id="xqtime">
  240. <div class="rr">
  241. <el-date-picker
  242. style="width: 100%"
  243. size="small"
  244. v-model="xq_time"
  245. type="datetime"
  246. :editable="false"
  247. value-format="yyyy-MM-dd HH:mm"
  248. :clearable="true"
  249. @change="xqDateChange"
  250. placeholder="选择日期时间">
  251. </el-date-picker>
  252. </div>
  253. </div>
  254. </div>
  255. <div class="col-sm-6">
  256. <div class="form-group">
  257. <label class="control-label">应完成时间<span class="text-danger">*</span></label></br>
  258. <input type="hidden" name="ywc_time" id="ywctime">
  259. <el-date-picker
  260. style="width: 100%"
  261. size="small"
  262. v-model="ywc_time"
  263. type="datetime"
  264. :editable="false"
  265. value-format="yyyy-MM-dd HH:mm"
  266. :clearable="true"
  267. placeholder="选择日期时间">
  268. </el-date-picker>
  269. </div>
  270. </div>
  271. <!-- <div class="col-sm-6">-->
  272. <!-- <div class="form-group">-->
  273. <!-- <label class="control-label">联系人</label></br>-->
  274. <!-- <div class="rr">-->
  275. <!-- <input type="text" class="form-control" name="name">-->
  276. <!-- </div>-->
  277. <!-- </div>-->
  278. <!-- </div>-->
  279. <!-- <div class="col-sm-6">-->
  280. <!-- <div class="form-group">-->
  281. <!-- <label class="control-label">联系电话</label></br>-->
  282. <!-- <input type="text" class="form-control" name="phone">-->
  283. <!-- </div>-->
  284. <!-- </div>-->
  285. </div>
  286. <div class="col-sm-12">
  287. <div class="form-group">
  288. <label class="control-label">派单备注</label></br>
  289. <textarea name="todo_content" class="form-control" cols="30" rows="3" ></textarea>
  290. </div>
  291. </div>
  292. <div class="col-sm-12">
  293. <div class="form-group">
  294. <label class="control-label">任务备注</label></br>
  295. <input type="text" placeholder="{$tsDh}" class="form-control" name="content">
  296. </div>
  297. </div>
  298. <div class="col-sm-12">
  299. <div class="hr-line-dashed">
  300. </div>
  301. </div>
  302. <div class="form-group">
  303. <div class="col-sm-6 col-sm-offset-2">
  304. <button class="btn btn-primary ajax-post" data-layer="1" target-form="form-horizontal" type="submit">确 定</button>
  305. <button class="btn cancel-btn btn-default" type="button">取 消</button>
  306. </div>
  307. </div>
  308. </form>
  309. </div>
  310. </div>
  311. </div>
  312. </div>
  313. {/block}
  314. {block name="script"}
  315. <script>
  316. function setType(val) {
  317. if(val==1){
  318. $("#type1").css('display','block')
  319. $("#type2").css('display','none')
  320. }else {
  321. $("#type2").css('display','block')
  322. $("#type1").css('display','none')
  323. }
  324. }
  325. $(document).ready(function(){
  326. formSetValue("back", {$info.back|default=0});
  327. });
  328. $('#patient').hide();
  329. var vdevices = {:json_encode($order_device)};
  330. new Vue({
  331. el: '#formApp',
  332. data: function() {
  333. return {
  334. starts: [],
  335. start: "",
  336. ends: [],
  337. end: '',
  338. way_addrs: {:json_encode($address)},
  339. way_addr:'',
  340. types: {:json_encode($order_convey_type)},
  341. type: '',
  342. prioritys:{:json_encode($priority)},
  343. priority: "",
  344. devices: {:json_encode($order_device)},
  345. device: '',
  346. xq_time: '',
  347. ywc_time:'',
  348. dep: {:json_encode($dep_list)},
  349. dep_id: '{$dep_id}',
  350. user: {:json_encode($user_list)},
  351. user_id: '',
  352. to_roles: {:json_encode($dispatch_roles)},
  353. to_roles_id: '',
  354. roles_id:''
  355. }
  356. },
  357. watch: {
  358. type: function (newtype, oldtype) {
  359. var that = this;
  360. $.post('{:url("getAddr")}',{id:newtype},function (res){
  361. that.starts = res.data.s;
  362. that.ends = res.data.e;
  363. },'json')
  364. $('#type').val(newtype);
  365. this.types.forEach((item) => {
  366. if(item.id == newtype){
  367. console.log(item);
  368. // this.end = item.ends > 0?parseInt(item.ends):'';
  369. if(item.starts >0){
  370. this.start = parseInt(item.starts);
  371. }else {
  372. if(item.startList.length ==0){
  373. this.start= parseInt('{$user.addr_id}') >0?parseInt('{$user.addr_id}'):"";
  374. }
  375. }
  376. if(item.ends >0){
  377. this.end = parseInt(item.ends);
  378. }else {
  379. if(item.endList.length ==0){
  380. this.end= parseInt('{$user.addr_id}') >0?parseInt('{$user.addr_id}'):"";
  381. }
  382. }
  383. this.xq_time = item.xq_time?item.xq_time:'';
  384. this.ywc_time = item.ywc_time?item.ywc_time:'';
  385. this.priority = item.priority > 0?item.priority.toString():'';
  386. if(item.cate == 1){
  387. let devices = [];
  388. vdevices.forEach((item) => {
  389. if(item.patient == 1){
  390. devices.push(item);
  391. }
  392. });
  393. this.devices = devices;
  394. $('#patient').show();
  395. }else{
  396. this.devices = vdevices;
  397. $('#patient').hide();
  398. }
  399. if(item.cate==4){
  400. $("#yy").css('display','block')
  401. }else {
  402. $("#yy").css('display','none')
  403. }
  404. }
  405. });
  406. },
  407. start: function (newtype, oldtype) {
  408. $('#start').val(newtype);
  409. },
  410. end: function (newtype, oldtype) {
  411. $('#end').val(newtype);
  412. },
  413. way_addr: function (newtype, oldtype) {
  414. $('#way_addr').val(newtype);
  415. },
  416. priority: function (newtype, oldtype) {
  417. $('#priority').val(newtype);
  418. },
  419. device: function (newtype, oldtype) {
  420. $('#device').val(newtype);
  421. },
  422. xq_time: function (newtype, oldtype) {
  423. // var that = this;
  424. // $.post("{:url('getTime')}",{type:this.type,'start':newtype},function (res){
  425. // if(res.code == 1){
  426. // that.xq_time = res.data.xq_time;
  427. // that.ywc_time = res.data.ywc_time;
  428. // }
  429. //
  430. // })
  431. $('#xqtime').val(newtype);
  432. },
  433. ywc_time: function (newtype, oldtype) {
  434. $('#ywctime').val(newtype);
  435. },
  436. dep_id: function (newtype, oldtype) {
  437. $('#dep').val(newtype);
  438. },
  439. user_id: function (newtype, oldtype) {
  440. if("{$send_user_num}"==="0"){
  441. $('#user_id').val(newtype.join(','));
  442. }else {
  443. $('#user_id').val(newtype);
  444. }
  445. },
  446. roles_id: function (newtype, oldtype) {
  447. $('#to_roles_id').val(newtype);
  448. },
  449. },
  450. methods: {
  451. xqDateChange(e){
  452. var that = this;
  453. $.post("{:url('getTime')}",{type:this.type,'start':e},function (res){
  454. if(res.code == 1){
  455. that.xq_time = res.data.xq_time;
  456. that.ywc_time = res.data.ywc_time;
  457. }
  458. })
  459. $('#xqtime').val(e);
  460. }
  461. }
  462. })
  463. $('.cancel-btn').click(function () {
  464. parent.layer.closeAll();
  465. })
  466. </script>
  467. {/block}