index3.html 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321
  1. {extend name="common/common2" /}
  2. {block name="main"}
  3. <style>
  4. .ui-jqgrid tr.jqgrow td {
  5. white-space: normal !important;
  6. height:auto;
  7. vertical-align:text-top;
  8. padding-top:10px;
  9. word-wrap: break-word!important;
  10. }
  11. </style>
  12. <div class="ibox">
  13. <div class="ibox-content">
  14. <div class="row">
  15. <div class="col-xs-1">
  16. {if $mode!=15 && in_array($mode,$auths)}
  17. <a href="javascript:;" url="{:url('dispatchAdd',[],'')}/mode/{$mode}" data-title="创建{$m_name}订单" onclick="layer_open(this,1)" class="btn btn-sm btn-primary">创建{$m_name}订单</a>
  18. {/if}
  19. &nbsp;
  20. </div>
  21. <div class="col-xs-11" style="text-align: right;" id="app">
  22. <form class="form-inline" id="form-search" action="{:url('index')}?mode={$mode}">
  23. <div class="input-group">
  24. <input type="text" class="form-control" name="sn" placeholder="订单编号">
  25. </div>
  26. <div class="input-group">
  27. <input type="text" class="form-control" name="content" placeholder="内容">
  28. </div>
  29. <div class="input-group">
  30. <input type="text" class="form-control" name="toUserName" placeholder="执行人">
  31. </div>
  32. <div class="input-group">
  33. <input class="form-control" style="width: 155px !important;" id="start" readonly placeholder="申请开始时间" name="start" >
  34. </div>
  35. <div class="input-group">
  36. <input class="form-control" style="width: 155px !important;" id="end" readonly placeholder="申请结束时间" name="end" >
  37. </div>
  38. <div class="input-group">
  39. <input type="hidden" name="dep_id" id="dep_id">
  40. <el-select clearable filterable v-model="dep_id" placeholder="所在科室/部门" size="small" >
  41. <el-option
  42. v-for="item in deps"
  43. :key="item.id"
  44. :label="item.title"
  45. :value="item.id.toString()">
  46. </el-option>
  47. </el-select>
  48. </div>
  49. <div class="input-group">
  50. <select name="order_mode" class="form-control">
  51. <option value="">选择状态</option>
  52. {foreach $order_mode_list as $k=>$v}
  53. <option value="{$v['id']}">{$v['in_content']}</option>
  54. {/foreach}
  55. </select>
  56. </div>
  57. <br/>
  58. <br/>
  59. <div class="input-group">
  60. <select name="from" class="form-control">
  61. <option value="">来源</option>
  62. <option value="1">一键呼叫</option>
  63. <option value="4">报修</option>
  64. <option value="5">保洁</option>
  65. <option value="6">运送</option>
  66. <option value="7">应急</option>
  67. <option value="2">隐患</option>
  68. <option value="3">投诉</option>
  69. </select>
  70. </div>
  71. <div class="input-group">
  72. <input type="hidden" name="saddr" id="saddr">
  73. <el-select clearable filterable v-model="saddr" placeholder="开始地点" size="small" style="width: 100%">
  74. <el-option
  75. v-for="item in addrs"
  76. :key="item.id"
  77. :label="item.title"
  78. :value="item.id.toString()">
  79. </el-option>
  80. </el-select>
  81. </div>
  82. <div class="input-group">
  83. <input type="hidden" name="eaddr" id="eaddr">
  84. <el-select clearable filterable v-model="eaddr" placeholder="结束地点" size="small" style="width: 100%">
  85. <el-option
  86. v-for="item in addrs"
  87. :key="item.id"
  88. :label="item.title"
  89. :value="item.id.toString()">
  90. </el-option>
  91. </el-select>
  92. </div>
  93. <div class="input-group">
  94. <!-- <input type="text" class="form-control" name="typeName" placeholder="运送类型">-->
  95. <select name="conveyCateId" class="form-control">
  96. <option value="">运送类型</option>
  97. {foreach $convey_cate as $k=>$v}
  98. <option value="{$v['id']}">{$v['title']}</option>
  99. {/foreach}
  100. </select>
  101. </div>
  102. <div class="input-group">
  103. <select name="priority" class="form-control">
  104. <option value="">选择优先级</option>
  105. {foreach $priority as $k=>$v}
  106. <option value="{$k}">{$v}</option>
  107. {/foreach}
  108. </select>
  109. </div>
  110. <div class="input-group">
  111. <input type="hidden" name="device_id" id="device_id">
  112. <el-select clearable filterable v-model="device_id" placeholder="运送设备" size="small" style="width: 100%">
  113. <el-option
  114. v-for="item in devices"
  115. :key="item.id"
  116. :label="item.title"
  117. :value="item.id.toString()">
  118. </el-option>
  119. </el-select>
  120. </div>
  121. <!-- <div class="input-group">-->
  122. <!-- <select name="dep_cate" class="form-control">-->
  123. <!-- <option value="">部门分类</option>-->
  124. <!-- {foreach $dep_cate as $k=>$v}-->
  125. <!-- <option value="{$v['id']}">{$v['title']}</option>-->
  126. <!-- {/foreach}-->
  127. <!-- </select>-->
  128. <!-- </div>-->
  129. <div class="input-group">
  130. <span class="input-group-btn">
  131. <button class="btn-sm btn-primary" type="button" @click="search" ><i class="fa fa-search"></i></button>
  132. </span> &nbsp;
  133. <span class="input-group-btn">
  134. <button class="btn-sm btn-warning" type="button" @click="clearBtn"><i class="fa fa-undo"></i></button>
  135. </span>
  136. &nbsp;
  137. <span class="input-group-btn">
  138. <button data-url="{:url('export',[],'')}/mode/{$mode}" title="导出" class="btn-sm btn-primary" onclick="excel_download(this)" type="button" ><i class="fa fa-cloud-download"></i></button>
  139. </span>
  140. </div>
  141. </form>
  142. </div>
  143. </div>
  144. </div>
  145. <div class="ibox-content">
  146. <div class="jqGrid_wrapper">
  147. <table id="table" style="border-collapse: collapse"></table>
  148. <div id="pager"></div>
  149. </div>
  150. </div>
  151. </div>
  152. {/block}
  153. {block name="script"}
  154. <script src="/static/layDate-v5.0.9/laydate.js"></script>
  155. <script>
  156. new Vue({
  157. el: '#app',
  158. data: function() {
  159. return {
  160. addrs: {:json_encode($addrList)},
  161. saddr:"",
  162. eaddr:"",
  163. deps:{:json_encode($dep_list)},
  164. dep_id:"",
  165. devices:{:json_encode($order_device)},
  166. device_id:"",
  167. }
  168. },
  169. watch: {
  170. saddr: function (newVal, oldVal) {
  171. console.log('开始地点变了:'+ $('#saddr').val());
  172. $('#saddr').val(newVal);
  173. },
  174. eaddr: function (newVal, oldVal) {
  175. $('#eaddr').val(newVal);
  176. },
  177. dep_id: function (newVal, oldVal) {
  178. $('#dep_id').val(newVal);
  179. },
  180. device_id: function (newVal, oldVal) {
  181. $('#device_id').val(newVal);
  182. }
  183. },
  184. methods: {
  185. search(){
  186. var self = $("#form-search");
  187. var url = self.attr('action');
  188. if(url){
  189. var pdata = self.serializeObject();
  190. $("#table").jqGrid('setGridParam', {
  191. url: url,
  192. postData:pdata,
  193. page: 1
  194. }).trigger("reloadGrid");
  195. }
  196. },
  197. clearBtn(){
  198. this.saddr = "";
  199. this.eaddr = "";
  200. this.dep_id = "";
  201. this.device_id = "";
  202. $("#form-search")[0].reset();
  203. this.$nextTick(() => {
  204. var url = $("#form-search").attr('action');
  205. var pdata = $("#form-search").serializeObject();
  206. // 可选:防止 jqGrid 缓存
  207. $("#table").jqGrid('setGridParam', { postData: {} });
  208. $("#table").jqGrid('setGridParam', {
  209. url: url,
  210. postData: pdata,
  211. page: 1
  212. }).trigger("reloadGrid");
  213. });
  214. },
  215. }
  216. })
  217. //导出
  218. function excel_download(_self){
  219. var url = $(_self).attr('data-url');
  220. var param = $('#form-search').serialize();
  221. window.location.href = url+'?'+param;
  222. }
  223. $(function () {
  224. laydate.render({
  225. elem: '#start',
  226. trigger: 'click' ,
  227. theme: '#148d8f',
  228. type:'datetime',
  229. });
  230. laydate.render({
  231. elem: '#end',
  232. trigger: 'click' ,
  233. theme: '#148d8f',
  234. type:'datetime',
  235. });
  236. $(window).bind("resize",function(){
  237. var width=$(".jqGrid_wrapper").width();
  238. $("#table").setGridWidth(width);
  239. });
  240. $.jgrid.defaults.styleUI="Bootstrap";
  241. $("#table").jqGrid({
  242. url:"{:url('index')}?mode={$mode}",
  243. datatype: "json",
  244. colModel:[
  245. {label:'编号',name:'sn',index:'sn', width:80,sortable: false},
  246. {label:'申请时间',name:'create_time',index:'create_time',width:50,sortable: true},
  247. {label:'优先级',name:'priority',index:'priority',width:50,sortable: true},
  248. {label:'开始地点',name:'start_name',index:'start_name',width:40,sortable: true},
  249. {label:'结束地点',name:'end_name',index:'end_name',width:40,sortable: true},
  250. {label:'运送类型',name:'type_name',index:'type_name',width:40,sortable: true},
  251. {label:'任务备注',name:'content',index:'content',width:60,sortable: true},
  252. {label:'所在科室/部门',name:'dep',index:'dep',width:60,sortable: true},
  253. {label:'执行人',name:'to_user_names',index:'to_user_names',width:60,sortable: true},
  254. // {label:'部门分类',name:'dep_cate_name',index:'dep_cate_name',width:60,sortable: true},
  255. {label:'来源',name:'source_type_text',index:'source_type_text',width:60,sortable: true},
  256. {label:'联系方式',name:'mobile',index:'mobile',width:60,sortable: true},
  257. {label:'状态',name:'order_mode_text',index:'order_mode_text',width:60,sortable: true,formatter:function (a, b, c) {
  258. if(c.bh_nums >0){
  259. return '<span style="color: '+c.order_mode_color+'">'+a+"(存在驳回)"+'</span>'
  260. }else{
  261. return '<span style="color: '+c.order_mode_color+'">'+a+'</span>'
  262. }
  263. }},
  264. {label:'操作',width:50,sortable: false,formatter: function (a, b, c) {
  265. var detail_url = "{:url('detail2',[],'')}/id/"+c.id;
  266. var del_url = "{:url('del',[],'')}/id/"+c.id;
  267. var reject_url = "{:url('rejectTodoList',[],'')}/orderId/"+c.id;
  268. // var btn = '<a href="'+detail_url+'" ><span class="label label-primary" title="详情">详情</span></a>&nbsp;';
  269. var btn = '<a url="'+detail_url+'" href="javascript:;" data-title="详情" onclick="layer_open(this,1)"><span class="label label-primary" title="详情">详情</span></a>&nbsp;';
  270. if(c.order_mode == 4 && c.bh_nums >0){
  271. btn += '<a url="'+reject_url+'" href="javascript:;" onclick="layer_open(this,1)" ><span class="label label-success" data-title="驳回工单">驳回工单</span></a>&nbsp;';
  272. }
  273. // if(c.order_mode == 5 ||c.order_mode == 6){
  274. // btn += '<a {if !btnAuth(session("user_auth.id"),"Orders/del?mode=$mode")} style="display:none" {/if} href="'+del_url+'" class="confirm ajax-get" data-confirm="确定要删除吗?" data-table="1"><span class="label label-danger" title="删除">删除</span></a>';
  275. // }
  276. if(c.order_mode == 2 || c.order_mode == 3){
  277. var edit_url = "{:url('editOrder',[],'')}/id/"+c.id;
  278. btn += '<a url="'+edit_url+'" href="javascript:;" onclick="layer_open(this,1)" ><span class="label label-success" data-title="修改">修改</span></a>&nbsp;';
  279. }
  280. btn += '<a {if !btnAuth(session("user_auth.id"),"Orders/del?mode=$mode")} style="display:none" {/if} href="'+del_url+'" class="confirm ajax-get" data-confirm="确定要删除吗?" data-table="1"><span class="label label-danger" title="删除">删除</span></a>';
  281. return btn;
  282. }},
  283. ],
  284. rowNum:10,
  285. rowList:[10,20,30,50,100],
  286. pager: '#pager',
  287. sortname: 'id',
  288. viewrecords: true,
  289. autowidth:true,
  290. mtype: 'post',
  291. height: 'auto',
  292. emptyrecords: "暂无数据",
  293. sortorder: "desc",
  294. caption:"{$m_name}订单列表",
  295. loadComplete: function (xhr) {
  296. if(xhr.code==0){
  297. layer.msg(xhr.msg);
  298. return false;
  299. }
  300. },
  301. });
  302. });
  303. </script>
  304. {/block}