yjhj_dispatch_add.html 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559
  1. {extend name="common/common2" /}
  2. {block name="main"}
  3. <style>
  4. .rr{
  5. padding-right: 10px;
  6. }
  7. </style>
  8. <div class="row">
  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. <input type="hidden" name="source_type" value="4">
  14. <div class="col-sm-12">
  15. <div class="form-group">
  16. <label class="control-label">任务内容<span class="text-danger">*</span></label></br>
  17. <textarea name="content" class="form-control" cols="30" rows="3" ></textarea>
  18. </div>
  19. </div>
  20. <div class="col-sm-12">
  21. <div class="form-group">
  22. <label class="control-label">所在科室/部门</label></br>
  23. {:widget('common/select',['name'=>'dep_id','lists'=>$dep_list,'value'=>$dep_id])}
  24. </div>
  25. </div>
  26. <div class="col-sm-12">
  27. <div class="form-group">
  28. <label class="control-label">图片</label></br>
  29. {:widget('common/upimg',['name'=>'images','multi'=>1,'val'=>''])}
  30. </div>
  31. </div>
  32. <div class="col-sm-12">
  33. <div class="form-group">
  34. <label class="control-label">转单类型<span class="text-danger">*</span></label></br>
  35. <select name="work_type_mode" onchange="setWorkType(this.value)" class="form-control">
  36. <option value="-1">选择转单类型</option>
  37. {foreach $workType as $k=>$v}
  38. <option value="{$v.id}">{$v.name}</option>
  39. {/foreach}
  40. </select>
  41. </div>
  42. </div>
  43. <div id="type3" style="display:none;">
  44. {if $dispatch_type==0 && $two_dispatch_off==1}
  45. <div class="col-sm-12">
  46. <div class="form-group" >
  47. <label class="control-label">执行人类型<span class="text-danger">*</span></label></br>
  48. <select name="userType" id="us" onchange="setType(this.value)" class="form-control">
  49. <option value="0">员工</option>
  50. <option value="1">二级调度</option>
  51. </select>
  52. </div>
  53. </div>
  54. {/if}
  55. </div>
  56. <div id="type1" style="display:none">
  57. {foreach $workType as $k=>$v}
  58. <div id="d{$v.id}" style="display:none;">
  59. <div class="col-sm-12">
  60. <div class="form-group">
  61. <label class="control-label">二级调度<span class="text-danger">*</span></label></br>
  62. {if $v.id==0}
  63. {:widget('common/multiselect',['name'=>'to_roles_id0','lists'=>$dispatch_roles0,'val'=>[]])}
  64. {/if}
  65. {if $v.id==1}
  66. {:widget('common/multiselect',['name'=>'to_roles_id1','lists'=>$dispatch_roles1,'val'=>[]])}
  67. {/if}
  68. {if $v.id==2}
  69. {:widget('common/multiselect',['name'=>'to_roles_id2','lists'=>$dispatch_roles2,'val'=>[]])}
  70. {/if}
  71. {if $v.id==3}
  72. {:widget('common/multiselect',['name'=>'to_roles_id3','lists'=>$dispatch_roles3,'val'=>[]])}
  73. {/if}
  74. {if $v.id==4}
  75. {:widget('common/multiselect',['name'=>'to_roles_id4','lists'=>$dispatch_roles4,'val'=>[]])}
  76. {/if}
  77. </div>
  78. </div>
  79. </div>
  80. {/foreach}
  81. </div>
  82. <div id="type2">
  83. {foreach $workType as $k=>$v}
  84. <div id="user{$v.id}" style="display:none;" >
  85. <div class="col-sm-12">
  86. <div class="form-group">
  87. <label class="control-label">执行人<span class="text-danger">*</span></label></br>
  88. {if $v.id==0}
  89. {:widget('common/user-group-select',['name'=>'to_user_id0','lists'=>$user_list0,'multi'=>$send_user_num0,'val'=>'','msg'=>''])}
  90. {/if}
  91. {if $v.id==1}
  92. {:widget('common/user-group-select',['name'=>'to_user_id1','lists'=>$user_list1,'multi'=>$send_user_num1,'val'=>'','msg'=>''])}
  93. {/if}
  94. {if $v.id==2}
  95. {:widget('common/user-group-select',['name'=>'to_user_id2','lists'=>$user_list2,'multi'=>$send_user_num2,'val'=>'','msg'=>''])}
  96. {/if}
  97. {if $v.id==3}
  98. {:widget('common/user-group-select',['name'=>'to_user_id3','lists'=>$user_list3,'multi'=>$send_user_num3,'val'=>'','msg'=>''])}
  99. {/if}
  100. {if $v.id==4}
  101. {:widget('common/user-group-select',['name'=>'to_user_id4','lists'=>$user_list4,'multi'=>$send_user_num4,'val'=>'','msg'=>''])}
  102. {/if}
  103. </div>
  104. </div>
  105. </div>
  106. {/foreach}
  107. </div>
  108. <div id="bx" style="display: none" >
  109. <div class="col-sm-6">
  110. <div class="form-group">
  111. <label class="control-label">报修事项<span class="text-danger">*</span></label></br>
  112. <div class="rr">
  113. {:widget('common/select',['name'=>'type_id','lists'=>$order_type_list,'value'=>isset($order_repair) && !empty($order_repair)?$order_repair['type_id']:''])}
  114. </div>
  115. </div>
  116. </div>
  117. <div class="col-sm-6">
  118. <div class="form-group">
  119. <label class="control-label">报修地址</label></br>
  120. {:widget('common/select',['name'=>'address_id','lists'=>$address_list,'value'=>isset($order_repair) && !empty($order_repair)?$order_repair['address_id']:''])}
  121. </div>
  122. </div>
  123. <div class="col-sm-6">
  124. <div class="form-group">
  125. <label class="control-label">报修紧急程度</label></br>
  126. <select name="repair_priority" class="form-control" >
  127. <option value="2">普通</option>
  128. <option value="1">可延缓</option>
  129. <option value="3">紧急</option>
  130. </select>
  131. </div>
  132. </div>
  133. </div>
  134. <div id="ys" style="display: none" >
  135. <div class="col-sm-12">
  136. <div class="form-group">
  137. <label class="control-label">运送类型<span class="text-danger">*</span></label></br>
  138. <div class="rr">
  139. <input type="hidden" name="type" id="type" >
  140. <el-select v-model="type" size="small" clearable style="width: 100%" filterable placeholder="请选择">
  141. <el-option
  142. v-for="item in types"
  143. :key="item.id"
  144. :label="item.title"
  145. :value="item.id.toString()">
  146. </el-option>
  147. </el-select>
  148. </div>
  149. </div>
  150. </div>
  151. <div class="col-sm-12">
  152. <div class="form-group">
  153. <label class="control-label">优 &nbsp;先 &nbsp;级</label></br>
  154. <input type="hidden" name="priority" id="priority">
  155. <div style="padding-right: 10px">
  156. <el-radio v-model="priority" label="2">常规</el-radio>
  157. <el-radio v-model="priority" label="3">紧急</el-radio>
  158. </div>
  159. </div>
  160. </div>
  161. <div class="col-sm-6">
  162. <div class="form-group">
  163. <label class="control-label">开始地点<span class="text-danger">*</span></label></br>
  164. <input type="hidden" name="start" id="start" >
  165. <el-select v-model="start" size="small" clearable style="width: 100%" filterable placeholder="请选择">
  166. <el-option
  167. v-for="item in starts"
  168. :key="item.id"
  169. :label="item.title"
  170. :value="item.id">
  171. </el-option>
  172. </el-select>
  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" name="end" id="end" >
  179. <el-select v-model="end" size="small" clearable style="width: 100%" filterable placeholder="请选择">
  180. <el-option
  181. v-for="item in ends"
  182. :key="item.id"
  183. :label="item.title"
  184. :value="item.id">
  185. </el-option>
  186. </el-select>
  187. </div>
  188. </div>
  189. <!-- <div class="col-sm-12">-->
  190. <!-- <div class="form-group">-->
  191. <!-- <label class="control-label">运送工具</label></br>-->
  192. <!-- <input type="hidden" name="device_id" id="device">-->
  193. <!-- <el-select v-model="device" size="small" style="width: 100%" clearable filterable placeholder="请选择">-->
  194. <!-- <el-option-->
  195. <!-- v-for="item in devices"-->
  196. <!-- :key="item.id"-->
  197. <!-- :label="item.title"-->
  198. <!-- :value="item.id.toString()">-->
  199. <!-- </el-option>-->
  200. <!-- </el-select>-->
  201. <!-- </div>-->
  202. <!-- </div>-->
  203. <div id="yy" style="display: none">
  204. <div class="col-sm-6">
  205. <div class="form-group">
  206. <label class="control-label">需求时间<span class="text-danger">*</span></label></br>
  207. <div class="rr">
  208. <input type="hidden" name="xq_time" id="xqtime" >
  209. <el-date-picker
  210. style="width: 100%"
  211. size="small"
  212. v-model="xq_time"
  213. type="datetime"
  214. :editable="false"
  215. value-format="yyyy-MM-dd HH:mm"
  216. :clearable="true"
  217. placeholder="选择日期时间">
  218. </el-date-picker>
  219. </div>
  220. </div>
  221. </div>
  222. <div class="col-sm-6">
  223. <div class="form-group">
  224. <label class="control-label">应完成时间<span class="text-danger">*</span></label></br>
  225. <input type="hidden" name="ywc_time" id="ywctime" >
  226. <el-date-picker
  227. style="width: 100%"
  228. size="small"
  229. v-model="ywc_time"
  230. type="datetime"
  231. :editable="false"
  232. value-format="yyyy-MM-dd HH:mm"
  233. :clearable="true"
  234. placeholder="选择日期时间">
  235. </el-date-picker>
  236. </div>
  237. </div>
  238. </div>
  239. <!-- <div class="col-sm-6">-->
  240. <!-- <div class="form-group">-->
  241. <!-- <label class="control-label">联系人</label></br>-->
  242. <!-- <div class="rr">-->
  243. <!-- <input type="text" class="form-control" name="name">-->
  244. <!-- </div>-->
  245. <!-- </div>-->
  246. <!-- </div>-->
  247. <!-- <div class="col-sm-6">-->
  248. <!-- <div class="form-group">-->
  249. <!-- <label class="control-label">联系电话</label></br>-->
  250. <!-- <input type="text" class="form-control" name="phone">-->
  251. <!-- </div>-->
  252. <!-- </div>-->
  253. <div id="patient">
  254. <div class="col-sm-6">
  255. <div class="form-group">
  256. <label class="control-label">床号</label></br>
  257. <div class="rr">
  258. <input type="text" class="form-control" {if $opt && $opt.bed_number} value="{$opt.bed_number}" {/if} name="bed_number">
  259. </div>
  260. </div>
  261. </div>
  262. <div class="col-sm-6">
  263. <div class="form-group">
  264. <label class="control-label">姓名</label></br>
  265. <div class="rr">
  266. <input type="text" class="form-control" {if $opt && $opt.name} value="{$opt.name}" {/if} name="p_name">
  267. </div>
  268. </div>
  269. </div>
  270. <!-- <div class="col-sm-4">-->
  271. <!-- <div class="form-group">-->
  272. <!-- <label class="control-label">病案号</label></br>-->
  273. <!-- <input type="text" class="form-control" {if $opt && $opt.ba_number} value="{$opt.ba_number}" {/if} name="ba_number">-->
  274. <!-- </div>-->
  275. <!-- </div>-->
  276. <!-- <div class="col-sm-6">-->
  277. <!-- <div class="form-group">-->
  278. <!-- <label class="control-label">性别</label></br>-->
  279. <!-- <div class="rr">-->
  280. <!-- <select name="gender" class="form-control">-->
  281. <!-- <option {if $opt && $opt.gender==0} selected {/if} value="0">未知</option>-->
  282. <!-- <option {if $opt && $opt.gender==1} selected {/if} value="1">男</option>-->
  283. <!-- <option {if $opt && $opt.gender==2} selected {/if} value="2">女</option>-->
  284. <!-- </select>-->
  285. <!-- </div>-->
  286. <!-- </div>-->
  287. <!-- </div>-->
  288. <!-- <div class="col-sm-6">-->
  289. <!-- <div class="form-group">-->
  290. <!-- <label class="control-label">是否往返</label></br>-->
  291. <!-- <select name="back" class="form-control">-->
  292. <!-- <option value="0">否</option>-->
  293. <!-- <option value="1">是</option>-->
  294. <!-- </select>-->
  295. <!-- </div>-->
  296. <!-- </div>-->
  297. </div>
  298. </div>
  299. <div class="col-sm-12">
  300. <div class="form-group">
  301. <label class="control-label">派单备注</label></br>
  302. <textarea name="todo_content" class="form-control" cols="30" rows="3" ></textarea>
  303. </div>
  304. </div>
  305. <div class="col-sm-12">
  306. <div class="hr-line-dashed">
  307. </div>
  308. </div>
  309. <div class="form-group">
  310. <div class="col-sm-6 col-sm-offset-2">
  311. <button class="btn btn-primary ajax-post" data-layer="1" data-reload="1" target-form="form-horizontal" type="submit">确 定</button>
  312. <button class="btn cancel-btn btn-default" type="button">取 消</button>
  313. </div>
  314. </div>
  315. </form>
  316. </div>
  317. </div>
  318. </div>
  319. </div>
  320. {/block}
  321. {block name="script"}
  322. <script>
  323. function setType(val) {
  324. if(val==1){
  325. $("#type1").css('display','block')
  326. $("#type2").css('display','none')
  327. }else {
  328. $("#type2").css('display','block')
  329. $("#type1").css('display','none')
  330. }
  331. }
  332. function setWorkType(val) {
  333. if(val <0){
  334. $("#user0").css('display','none')
  335. $("#user1").css('display','none')
  336. $("#user2").css('display','none')
  337. $("#user3").css('display','none')
  338. $("#user4").css('display','none')
  339. $("#bx").css('display','none')
  340. $("#ys").css('display','none')
  341. $("#type1").css('display','none')
  342. $("#type2").css('display','none')
  343. $("#type3").css('display','none')
  344. }else {
  345. $("#type3").css('display','block')
  346. if($('#us option:selected').val()==1){
  347. $("#type1").css('display','block')
  348. $("#type2").css('display','none')
  349. }else {
  350. $("#type2").css('display','block')
  351. $("#type1").css('display','none')
  352. }
  353. if(val==0){
  354. $("#user0").css('display','block')
  355. $("#d0").css('display','block')
  356. $("#user1").css('display','none')
  357. $("#d1").css('display','none')
  358. $("#user2").css('display','none')
  359. $("#d2").css('display','none')
  360. $("#user3").css('display','none')
  361. $("#d3").css('display','none')
  362. $("#user4").css('display','none')
  363. $("#d4").css('display','none')
  364. $("#bx").css('display','none')
  365. $("#ys").css('display','none')
  366. }
  367. if(val==1){
  368. $("#user0").css('display','none')
  369. $("#d0").css('display','none')
  370. $("#user1").css('display','block')
  371. $("#d1").css('display','block')
  372. $("#user2").css('display','none')
  373. $("#d2").css('display','none')
  374. $("#user3").css('display','none')
  375. $("#d3").css('display','none')
  376. $("#user4").css('display','none')
  377. $("#d4").css('display','none')
  378. $("#bx").css('display','block')
  379. $("#ys").css('display','none')
  380. }
  381. if(val==2){
  382. $("#user0").css('display','none')
  383. $("#d0").css('display','none')
  384. $("#user1").css('display','none')
  385. $("#d1").css('display','none')
  386. $("#user2").css('display','block')
  387. $("#d2").css('display','block')
  388. $("#user3").css('display','none')
  389. $("#d3").css('display','none')
  390. $("#user4").css('display','none')
  391. $("#d4").css('display','none')
  392. $("#bx").css('display','none')
  393. $("#ys").css('display','none')
  394. }
  395. if(val==3){
  396. $("#user0").css('display','none')
  397. $("#d0").css('display','none')
  398. $("#user1").css('display','none')
  399. $("#d1").css('display','none')
  400. $("#user2").css('display','none')
  401. $("#d2").css('display','none')
  402. $("#user3").css('display','block')
  403. $("#d3").css('display','block')
  404. $("#user4").css('display','none')
  405. $("#d4").css('display','none')
  406. $("#bx").css('display','none')
  407. $("#ys").css('display','block')
  408. }
  409. if(val==4){
  410. $("#user0").css('display','none')
  411. $("#d0").css('display','none')
  412. $("#user1").css('display','none')
  413. $("#d1").css('display','none')
  414. $("#user2").css('display','none')
  415. $("#d2").css('display','none')
  416. $("#user3").css('display','none')
  417. $("#d3").css('display','none')
  418. $("#user4").css('display','block')
  419. $("#d4").css('display','block')
  420. $("#bx").css('display','none')
  421. $("#ys").css('display','none')
  422. }
  423. }
  424. }
  425. if('{$ps}'=='1'){
  426. $('#patient').hide();
  427. }
  428. var vdevices = {:json_encode($order_device)};
  429. new Vue({
  430. el: '#ys',
  431. data: function() {
  432. return {
  433. starts: [],
  434. start: '',
  435. ends: [],
  436. end: '',
  437. types: {:json_encode($order_convey_type)},
  438. type:'',
  439. prioritys:{:json_encode($priority)},
  440. priority: "",
  441. devices: {:json_encode($order_device)},
  442. device: '',
  443. xq_time: '',
  444. ywc_time:'',
  445. }
  446. },
  447. watch: {
  448. type: function (newtype, oldtype) {
  449. var that = this;
  450. $.post('{:url("getAddr")}',{id:newtype},function (res){
  451. that.starts = res.data.s;
  452. that.ends = res.data.e;
  453. },'json')
  454. $('#type').val(newtype);
  455. this.types.forEach((item) => {
  456. if(item.id == newtype){
  457. console.log(item);
  458. // this.end = item.ends > 0?parseInt(item.ends):'';
  459. if(item.starts >0){
  460. this.start = parseInt(item.starts);
  461. }else {
  462. if(item.startList.length ==0){
  463. this.start= parseInt('{$user.addr_id}') >0?parseInt('{$user.addr_id}'):"";
  464. }
  465. }
  466. if(item.ends >0){
  467. this.end = parseInt(item.ends);
  468. }else {
  469. if(item.endList.length ==0){
  470. this.end= parseInt('{$user.addr_id}') >0?parseInt('{$user.addr_id}'):"";
  471. }
  472. }
  473. this.xq_time = item.xq_time?item.xq_time:'';
  474. this.ywc_time = item.ywc_time?item.ywc_time:'';
  475. this.priority = item.priority > 0?item.priority.toString():'';
  476. if(item.cate == 1){
  477. let devices = [];
  478. vdevices.forEach((item) => {
  479. if(item.patient == 1){
  480. devices.push(item);
  481. }
  482. });
  483. this.devices = devices;
  484. $('#patient').show();
  485. }else{
  486. this.devices = vdevices;
  487. $('#patient').hide();
  488. }
  489. if(item.cate==4){
  490. $("#yy").css('display','block')
  491. }else {
  492. $("#yy").css('display','none')
  493. }
  494. }
  495. });
  496. },
  497. start: function (newtype, oldtype) {
  498. $('#start').val(newtype);
  499. },
  500. end: function (newtype, oldtype) {
  501. $('#end').val(newtype);
  502. },
  503. priority: function (newtype, oldtype) {
  504. $('#priority').val(newtype);
  505. },
  506. device: function (newtype, oldtype) {
  507. $('#device').val(newtype);
  508. },
  509. xq_time: function (newtype, oldtype) {
  510. var that = this;
  511. $.post("{:url('getTime')}",{type:this.type,'start':newtype},function (res){
  512. console.log(res);
  513. that.xq_time = res.data.xq_time;
  514. that.ywc_time = res.data.ywc_time;
  515. })
  516. $('#xqtime').val(newtype);
  517. },
  518. ywc_time: function (newtype, oldtype) {
  519. $('#ywctime').val(newtype);
  520. },
  521. }
  522. })
  523. </script>
  524. {/block}