index.php 67 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609
  1. <style>
  2. .f_label {width: 90px;}
  3. .accordion-body {padding: 0;}
  4. #view_select_position {
  5. display:inline-block;
  6. padding:1px 4px 1px 4px;
  7. border:1px solid #999999;
  8. text-decoration:none;
  9. color:#333333;
  10. }
  11. </style>
  12. <div id="main">
  13. <div region="west" border="false" id="west_panel">
  14. <table id="dg_content"></table>
  15. <div id="tb_content">
  16. <div class="tb_line">
  17. <input id="ss" />
  18. <span class="tb_label">服务</span>
  19. <input id="filter_type" style="width:100px"/>
  20. </div>
  21. <div class="tb_line">
  22. <span class="tb_label">状态: </span>
  23. <input id="filter_status" />
  24. <span class="tb_label">来源: </span>
  25. <input id="filter_channel" />
  26. </div>
  27. <div class="tb_line">
  28. <span class="tb_label">下单</span>
  29. <span class="tb_label">开始</span>
  30. <input type="text" id="date_start_order" style="width:100px;" />
  31. <span class="tb_label">结束</span>
  32. <input type="text" id="date_end_order" style="width:100px;" />
  33. </div>
  34. <div class="right">
  35. <a href="#" class='easyui-linkbutton' iconCls="icon-search" plain="true" onclick="search_content();return false;">查询</a>
  36. </div>
  37. <div class="tb_line">
  38. <span class="tb_label">预约</span>
  39. <span class="tb_label">开始</span>
  40. <input type="text" id="date_start_book" style="width:100px;"/>
  41. <span class="tb_label">结束</span>
  42. <input type="text" id="date_end_book" style="width:100px;"/>
  43. </div>
  44. <div style="margin: 3px 2px;padding:5px;border: 1px solid #95B8E7;">
  45. <a href="#" class='easyui-linkbutton' plain="true" iconCls="icon-add" onclick="add_content();return false;">新增订单</a>
  46. </div>
  47. </div>
  48. </div>
  49. <div id="acc_container" class="accordion" region="center">
  50. <div region="center" title="订单信息" data-options="iconCls:'icon-save',selected:true">
  51. <div class="easyui-layout detail_layout">
  52. <div data-options="region:'center'" class="detail_center">
  53. <div class="detail_main">
  54. <form id="content_form" method="post">
  55. <ul>
  56. <li class="f_item">
  57. <div class="box">
  58. <div class="f_label">
  59. <span>ID: </span>
  60. </div>
  61. <div class="box_flex f_content">
  62. <input type="hidden" name="id" id="order_id" value='' />
  63. <span id="id_str"></span>
  64. </div>
  65. </div>
  66. </li>
  67. <li class="f_item">
  68. <div class="box">
  69. <div class="f_label">
  70. <span>订购的服务: </span>
  71. </div>
  72. <div class="box_flex f_content">
  73. <span id="product_info" style="width: 250px;"></span>
  74. </div>
  75. </div>
  76. </li>
  77. <li class="f_item">
  78. <div class="box">
  79. <div class="f_label">
  80. <span>数量: </span>
  81. </div>
  82. <div class="box_flex f_content">
  83. <span id="counts" name="counts" style="width: 250px;"></span>
  84. </div>
  85. </div>
  86. </li>
  87. <li class="f_item">
  88. <div class="box">
  89. <div class="f_label">
  90. <span>使用的代金券: </span>
  91. </div>
  92. <div class="box_flex f_content">
  93. <span id="coupon_info" style="width: 250px;"></span>
  94. </div>
  95. </div>
  96. </li>
  97. <li class="f_item">
  98. <div class="box">
  99. <div class="f_label">
  100. <span>地址/联系方式: </span>
  101. </div>
  102. <div class="box_flex f_content">
  103. <span id="address_contact" style="width: 250px;"></span>
  104. </div>
  105. </div>
  106. </li>
  107. <li class="f_item">
  108. <div class="box">
  109. <div class="f_label">
  110. <span>支付方式: </span>
  111. </div>
  112. <div class="box_flex f_content">
  113. <span id="pay_channel" name="pay_channel" style="width: 250px;"></span>
  114. </div>
  115. </div>
  116. </li>
  117. <li class="f_item">
  118. <div class="box">
  119. <div class="f_label">
  120. <span>charge_id: </span>
  121. </div>
  122. <div class="box_flex f_content">
  123. <span id="charge_id" name="charge_id" style="width: 250px;"></span>
  124. </div>
  125. </div>
  126. </li>
  127. <li class="f_item">
  128. <div class="box">
  129. <div class="f_label">
  130. <span>预约时间: </span>
  131. </div>
  132. <div class="box_flex f_content">
  133. <input id="booking_time" type="text" >
  134. <input type="hidden" name="booking_time" id="booking_time_str" />
  135. </div>
  136. </div>
  137. </li>
  138. <li class="f_item">
  139. <div class="box">
  140. <div class="f_label">
  141. <span>订单处理时间: </span>
  142. </div>
  143. <div class="box_flex f_content">
  144. <input id="deal_time" type="text" >
  145. <input type="hidden" name="deal_time" id="deal_time_str" />
  146. </div>
  147. </div>
  148. </li>
  149. <li class="f_item" style="display: none;">
  150. <div class="box">
  151. <div class="f_label">
  152. <span>接单时间: </span>
  153. </div>
  154. <div class="box_flex f_content">
  155. <input name="take_time_str" style="width: 250px;" readonly="readonly" />
  156. </div>
  157. </div>
  158. </li>
  159. <li class="f_item" style="display: none;">
  160. <div class="box">
  161. <div class="f_label">
  162. <span>出发时间: </span>
  163. </div>
  164. <div class="box_flex f_content">
  165. <input name="set_out_time_str" style="width: 250px;" readonly="readonly" />
  166. </div>
  167. </div>
  168. </li>
  169. <li class="f_item" style="display: none;">
  170. <div class="box">
  171. <div class="f_label">
  172. <span>到达时间: </span>
  173. </div>
  174. <div class="box_flex f_content">
  175. <input name="arrive_time_str" style="width: 250px;" readonly="readonly" />
  176. </div>
  177. </div>
  178. </li>
  179. <li class="f_item" style="display: none;">
  180. <div class="box">
  181. <div class="f_label">
  182. <span>完成时间: </span>
  183. </div>
  184. <div class="box_flex f_content">
  185. <input name="finish_time_str" style="width: 250px;" readonly="readonly" />
  186. </div>
  187. </div>
  188. </li>
  189. <li class="f_item" style="display: none;">
  190. <div class="box">
  191. <div class="f_label">
  192. <span>订单取消时间: </span>
  193. </div>
  194. <div class="box_flex f_content">
  195. <input name="cancel_time_str" style="width: 250px;" readonly="readonly" />
  196. </div>
  197. </div>
  198. </li>
  199. <li class="f_item" style="display: none;">
  200. <div class="box">
  201. <div class="f_label">
  202. <span>订单申请退款时间: </span>
  203. </div>
  204. <div class="box_flex f_content">
  205. <input name="apply_refund_time_str" style="width: 250px;" readonly="readonly" />
  206. </div>
  207. </div>
  208. </li>
  209. <li class="f_item" style="display: none;">
  210. <div class="box">
  211. <div class="f_label">
  212. <span>订单退款时间: </span>
  213. </div>
  214. <div class="box_flex f_content">
  215. <input name="refund_time_str" style="width: 250px;" readonly="readonly" />
  216. </div>
  217. </div>
  218. </li>
  219. <li class="f_item">
  220. <div class="box">
  221. <div class="f_label">
  222. <span>保洁师选择: </span>
  223. </div>
  224. <div class="box_flex f_content" id="tech">
  225. <div id="extra_add_info">
  226. </div>
  227. <input name="technician_name" style="width: 250px;" id="setTechnician_content"/>
  228. <input name="technician" type="hidden" id="technician_id" value="0" />
  229. <input name="tech_nums" id="tech_nums" type="hidden" value="0"/>
  230. <a class='easyui-linkbutton' plain="true" iconCls="icon-add" onclick="add_extra();return false;">添加保洁师</a><br/>
  231. </div>
  232. </div>
  233. </li>
  234. <li class="f_item">
  235. <div class="box">
  236. <div class="f_label">
  237. <span>备注: </span>
  238. </div>
  239. <div class="box_flex f_content">
  240. <span id="memo" name="memo" style="width: 250px;"></span>
  241. </div>
  242. </div>
  243. </li>
  244. <li class="f_item">
  245. <div class="box">
  246. <div class="f_label">
  247. <span>后台备注: </span>
  248. </div>
  249. <div class="box_flex f_content">
  250. <textarea name="remark" style="width: 250px;min-height: 200px"></textarea>
  251. </div>
  252. </div>
  253. </li>
  254. <li class="f_item">
  255. <div class="box">
  256. <div class="f_label">
  257. <span>状态:</span>
  258. </div>
  259. <div class="box_flex f_content">
  260. <input id="setStatus" name="status" />
  261. </div>
  262. </div>
  263. </li>
  264. <li class="f_item">
  265. <div class="box">
  266. <div class="f_label">
  267. </div>
  268. <div class="box_flex f_content">
  269. <span id="action_info" style="color:green;"></span>
  270. </div>
  271. </div>
  272. </li>
  273. </ul>
  274. </form>
  275. </div>
  276. <div data-options="region:'south'" class="detail_south">
  277. <div class="detail_toolbar">
  278. <a href="#" class="easyui-linkbutton set_button" iconCls="icon-save" onclick="save_content();return false;">保存</a>
  279. </div>
  280. </div>
  281. </div>
  282. </div>
  283. </div>
  284. <div region="center" title="重新指派" data-options="iconCls:'icon-save'" style="overflow:auto;padding:10px;">
  285. <div class="easyui-layout detail_layout">
  286. <div data-options="region:'center'" class="detail_center">
  287. <div class="detail_main">
  288. <span id="resetTechTip">该订单不支持重新分配保洁师</span>
  289. <div id="resetTechDiv" style="display:none;">
  290. <form id="resetTec_form" method="post">
  291. <ul>
  292. <li class="f_item">
  293. <div class="box">
  294. <div class="f_label">
  295. <span>选择保洁师: </span>
  296. </div>
  297. <div class="box_flex f_content" id="reset_tech">
  298. <div id="reset_extra_add_info">
  299. </div>
  300. <input name="id" type="hidden" />
  301. <input id="resetTec" name="reset_technician" type="hidden" value="0"/>
  302. <input id="resetTecName" name="reset_technician_name" style="width:150px;"/>
  303. <input id="reset_tech_nums" name="nums" value="0" type="hidden" />
  304. <a class='easyui-linkbutton' plain="true" iconCls="icon-add" onclick="reset_add_extra();return false;">添加保洁师</a><br/>
  305. <a href="#" class="easyui-linkbutton set_button" iconCls="icon-save" onclick="reset_technician();return false;">保存</a>
  306. </div>
  307. </div>
  308. </li>
  309. </ul>
  310. </form>
  311. </div>
  312. </div>
  313. </div>
  314. </div>
  315. <!-- <div data-options="region:'south'" class="detail_south">
  316. <div class="detail_toolbar">
  317. <a href="#" class="easyui-linkbutton set_button" iconCls="icon-save" onclick="reset_technician();return false;">保存</a>
  318. </div>
  319. </div> -->
  320. </div>
  321. </div>
  322. </div>
  323. <div style="display: none;">
  324. <div id="add_dialog" style="padding: 15px 0;">
  325. <form id="add_form" method="post">
  326. <ul>
  327. <li class="f_item">
  328. <div class="box">
  329. <div class="f_label">
  330. <span>手机号: </span>
  331. </div>
  332. <div class="box_flex f_content">
  333. <input id="mobile_add" name="mobile" style="width: 250px;" />
  334. </div>
  335. </div>
  336. </li>
  337. <li class="f_item">
  338. <div class="box">
  339. <div class="f_label">
  340. <span>姓名: </span>
  341. </div>
  342. <div class="box_flex f_content">
  343. <input id="name_add" name="name" style="width: 250px;" />
  344. </div>
  345. </div>
  346. </li>
  347. <li class="f_item">
  348. <div class="box">
  349. <div class="f_label">
  350. <span>坐标: </span>
  351. </div>
  352. <div class="box_flex f_content">
  353. <input type="text" id="view_latitude" name="latitude" style="width: 80px;" readonly/>
  354. <input type="text" id="view_longitude" name="longitude" style="width: 80px;" readonly/>
  355. <a href="javascript:void();" id="view_select_position">选择地址</a>
  356. </div>
  357. </div>
  358. </li>
  359. <li class="f_item">
  360. <div class="box">
  361. <div class="f_label">
  362. <span>地址: </span>
  363. </div>
  364. <div class="box_flex f_content">
  365. <input id="add_province" name="province" type="hidden" />
  366. <input id="add_city" name="city" type="hidden"/>
  367. <input id="add_area" name="area" type="hidden" />
  368. <input id="poi_name" name="poi_name" type="hidden" />
  369. <input id="poi_uid" name="poi_uid" type="hidden" />
  370. <span id="re_address"></span>
  371. </div>
  372. </div>
  373. </li>
  374. <li class="f_item">
  375. <div class="box">
  376. <div class="f_label">
  377. <span>补充地址: </span>
  378. </div>
  379. <div class="box_flex f_content">
  380. <input id="detail_add" name="detail" placeholder="例如:1号楼406室" style="width: 250px;" />
  381. </div>
  382. </div>
  383. </li>
  384. <li class="f_item">
  385. <div class="box">
  386. <div class="f_label">
  387. <span>订购的服务: </span>
  388. </div>
  389. <div class="box_flex f_content">
  390. <input id="main_products" name="main_products" />
  391. <br>
  392. <div id="extra_items"></div>
  393. </div>
  394. </div>
  395. </li>
  396. <li class="f_item">
  397. <div class="box">
  398. <div class="f_label">
  399. <span>订单类型: </span>
  400. </div>
  401. <div class="box_flex f_content">
  402. <input id="set_type" name="type" />
  403. </div>
  404. </div>
  405. </li>
  406. <li class="f_item">
  407. <div class="box">
  408. <div class="f_label">
  409. <span>购买数量: </span>
  410. </div>
  411. <div class="box_flex f_content">
  412. <input id="set_count" name="counts" placeholder="1" />
  413. </div>
  414. </div>
  415. </li>
  416. <li class="f_item">
  417. <div class="box">
  418. <div class="f_label">
  419. <span>订单来源: </span>
  420. </div>
  421. <div class="box_flex f_content">
  422. <input id="setChannels_add" name="channel" />
  423. </div>
  424. </div>
  425. </li>
  426. <li class="f_item">
  427. <div class="box">
  428. <div class="f_label">
  429. <span>下单时间: </span>
  430. </div>
  431. <div class="box_flex f_content">
  432. <input id="order_time_add" name="order_time_add" type="text" >
  433. </div>
  434. </div>
  435. </li>
  436. <li class="f_item">
  437. <div class="box">
  438. <div class="f_label">
  439. <span>预约时间: </span>
  440. </div>
  441. <div class="box_flex f_content">
  442. <input id="booking_time_add" name="booking_time_add" type="text" >
  443. </div>
  444. </div>
  445. </li>
  446. <li class="f_item">
  447. <div class="box">
  448. <div class="f_label">
  449. <span>订单金额: </span>
  450. </div>
  451. <div class="box_flex f_content">
  452. <input id="price_add" name="price" style="width: 250px;" />
  453. </div>
  454. </div>
  455. </li>
  456. <li class="f_item">
  457. <div class="box">
  458. <div class="f_label">
  459. <span>折扣后金额: </span>
  460. </div>
  461. <div class="box_flex f_content">
  462. <input id="final_price_add" name="final_price" style="width: 250px;" />
  463. </div>
  464. </div>
  465. </li>
  466. <li class="f_item">
  467. <div class="box">
  468. <div class="f_label">
  469. <span>状态: </span>
  470. </div>
  471. <div class="box_flex f_content">
  472. <input id="setStatus_add" name="status" />
  473. </div>
  474. </div>
  475. </li>
  476. <li class="f_item">
  477. <div class="box">
  478. <div class="f_label">
  479. <span>用户备注: </span>
  480. </div>
  481. <div class="box_flex f_content">
  482. <textarea name="memo" style="width: 250px;min-height: 100px"></textarea>
  483. </div>
  484. </div>
  485. </li>
  486. <li class="f_item">
  487. <div class="box">
  488. <div class="f_label">
  489. <span>后台备注: </span>
  490. </div>
  491. <div class="box_flex f_content">
  492. <textarea name="remark" style="width: 250px;min-height: 100px"></textarea>
  493. </div>
  494. </div>
  495. </li>
  496. </ul>
  497. </form>
  498. </div>
  499. </div>
  500. <div style="display:none;">
  501. <div id="refund_tip_dialog" style="padding: 30px 0;">
  502. <div style="text-align:center;"><span id="refund_tip"></span></div>
  503. </div>
  504. </div>
  505. <script language="javascript" type="text/javascript" src="<?php echo Yii::app()->request->baseUrl; ?>/js/coolautosuggest/jquery.coolautosuggest.js"></script>
  506. <link rel="stylesheet" type="text/css" href="<?php echo Yii::app()->request->baseUrl; ?>/js/coolautosuggest/jquery.coolautosuggest.css" />
  507. <script type="text/javascript">
  508. var jq_dg_content = $('#dg_content');
  509. var jq_content_form = $('#content_form');
  510. var jq_filter_status = $('#filter_status');
  511. var jq_setStatus_add = $('#setStatus_add');
  512. var jq_setChannels_add = $('#setChannels_add');
  513. var jq_filter_channel = $('#filter_channel');
  514. var jq_filter_station = $('#filter_station');
  515. var module_router = site_root + '/index.php?r=ROrder';
  516. var status_data = <?php echo json_encode($status); ?>;
  517. var channel_data = <?php echo json_encode($channels); ?>;
  518. var main_products = <?php echo json_encode($main_products); ?>;
  519. var type = <?php echo json_encode($type); ?>;
  520. var station_data = <?php echo json_encode($station); ?>;
  521. var jq_action_info = $('#action_info');
  522. var jq_setStatus = $('#setStatus');
  523. var w_width = $(window).width();
  524. var w_height = $(window).height();
  525. var jq_ss = $('#ss');
  526. var jq_filter_type = $('#filter_type');
  527. var jq_add_dialog = $('#add_dialog');
  528. var jq_add_form = $('#add_form');
  529. var jq_date_start_order = $('#date_start_order');
  530. var jq_date_end_order = $('#date_end_order');
  531. var jq_date_start_book = $('#date_start_book');
  532. var jq_date_end_book = $('#date_end_book');
  533. var jq_set_precedence = $('#set_precedence');
  534. var jq_set_station = $('#set_station');
  535. var jq_set_type = $('#set_type');
  536. var jq_acc = $('#acc_container');
  537. var jq_resetTec_form = $('#resetTec_form');
  538. // 申请退款订单提示
  539. var jq_refund_tip_dialog = $('#refund_tip_dialog');
  540. var jq_edit_extra_dialog = $('#edit_extra_dialog');
  541. $(function(){
  542. jq_acc.accordion({
  543. height: w_height - 18,
  544. onSelect: function(title) {
  545. }
  546. });
  547. jq_date_start_order.datebox({});
  548. jq_date_end_order.datebox({});
  549. jq_date_start_book.datebox({});
  550. jq_date_end_book.datebox({});
  551. jq_filter_type.combobox({
  552. editable : false,
  553. data : type,
  554. onSelect : function () {
  555. search_content();
  556. }
  557. })
  558. $('#mobile_add').coolautosuggest({
  559. url:"index.php?r=rOrder/GetUserInfo&mobile=",
  560. showThumbnail:false,
  561. showDescription:true,
  562. onSelected:function(result){
  563. if(result!=null){
  564. var data = $.extend({}, result.content);
  565. jq_add_form.form('load', data);
  566. $('#re_address').html(result.poi_name);
  567. var poi_name = result.poi_name;
  568. if (!poi_name) {
  569. // 反向地址查询
  570. console.log('开始查询' + data.longitude + ' ' + data.latitude);
  571. var geoForPoi = new BMap.Geocoder();
  572. geoForPoi.getLocation(new BMap.Point(data.longitude, data.latitude),
  573. function (result) {
  574. if (result) {
  575. console.log(result);
  576. var addressComponents = result.addressComponents;
  577. var street = addressComponents.street;
  578. var streetNumber = addressComponents.streetNumber;
  579. $('#poi_name').val(street + streetNumber);
  580. $('#re_address').html(street + streetNumber);
  581. }
  582. }
  583. );
  584. }
  585. } else{
  586. return false;
  587. }
  588. }
  589. });
  590. $('#view_select_position').click(function(){
  591. $.fn.position_selector('init',{
  592. width:$(window).width()-300,//弹框显示宽度
  593. height:$(window).height()-100,//弹框显示高度
  594. zoom:18, //缩放级别
  595. locat:'上海',//默认城市
  596. can_edit:true,
  597. lat:$('#view_latitude').val(),
  598. lng:$('#view_longitude').val(),
  599. //选择成功之后的回调函数
  600. func_callback:function(e){
  601. // console.log($('#suggestId').val());
  602. // console.log(e);
  603. var longitude = e[0];
  604. var latitude = e[1];
  605. var addressComponents;6
  606. // var re_address = $('#suggestId').val(); // 参考地址
  607. // 反向地理编码获取省市及区划信息
  608. var geo = new BMap.Geocoder();
  609. geo.getLocation(new BMap.Point(longitude, latitude),
  610. function (result) {
  611. if (result) {
  612. console.log(result);
  613. var addressComponents = result.addressComponents;
  614. var province = addressComponents.province;
  615. var city = addressComponents.city;
  616. var area = addressComponents.district;
  617. var street = addressComponents.street;
  618. var streetNumber = addressComponents.streetNumber;
  619. $('#add_province').val(province);
  620. $('#add_city').val(city);
  621. $('#add_area').val(area);
  622. $('#poi_name').val(street + streetNumber);
  623. $('#re_address').html(street + streetNumber);
  624. }
  625. }
  626. );
  627. $('#view_latitude').val(latitude);
  628. $('#view_longitude').val(longitude);
  629. $('#re_address').val(re_address);
  630. return false;
  631. },
  632. element_id:'map_container'//弹窗ID
  633. });return false;
  634. });
  635. var buttons = $.extend([], $.fn.datebox.defaults.buttons);
  636. buttons[0].text = '确定';
  637. buttons[0].handler=function(){
  638. var vals = $('#booking_time').datetimebox('spinner').spinner('getValue').split(':');
  639. $('#booking_time_str').val( parseInt($('#booking_time_str').val())-(parseInt($('#booking_time_str').val())+8*3600)%86400 +vals[0]*3600+vals[1]*60);
  640. var d=new Date(parseInt($('#booking_time_str').val())*1000);
  641. $('#booking_time').datetimebox('setText',formatDate(d));
  642. $('#booking_time').datetimebox('hidePanel');
  643. };
  644. $('#booking_time').datetimebox({
  645. required: false,
  646. showSeconds:false,
  647. buttons:buttons,
  648. onSelect: function(date){
  649. var currentDate = new Date();
  650. //console.log(date)
  651. // if(currentDate>=date){
  652. // $.messager.show({
  653. // title: '提示',
  654. // msg: '必须选择现在之后的日期',
  655. // timeout: 3500,
  656. // showType: 'slide'
  657. // });
  658. // }else{
  659. $('#booking_time_str').val(date.getTime()/1000);
  660. // }
  661. }
  662. });
  663. $('#booking_time_add').datetimebox({
  664. required: false,
  665. showSeconds:false,
  666. //buttons:buttons_add,
  667. onSelect: function(date){
  668. var currentDate = new Date();
  669. $('#booking_time_str_add').val(date.getTime()/1000);
  670. }
  671. });
  672. $('#order_time_add').datetimebox({
  673. required: false,
  674. showSeconds:false,
  675. //buttons:buttons_add,
  676. // onSelect: function(date){
  677. // var currentDate = new Date();
  678. // $('#order_time_str_add').val(date.getTime()/1000);
  679. // }
  680. });
  681. $('#deal_time').datetimebox({
  682. required: false,
  683. showSeconds:false,
  684. //buttons:buttons_deal,
  685. // onSelect: function(date){
  686. // console.log(date);
  687. // $('#deal_time_str').val(date.getTime()/1000);
  688. // }
  689. });
  690. $('#main_products').combobox({
  691. editable: false,
  692. data: (function () {
  693. var main_products_temp = new Array();
  694. $.extend(main_products_temp, main_products)
  695. main_products_temp.shift();
  696. return main_products_temp;
  697. })(),
  698. onSelect: function(rec){
  699. $.ajax({
  700. type: "GET",
  701. url: "index.php?r=product/get",
  702. data: {id:rec.value},
  703. dataType: "json",
  704. success: function(data){
  705. //console.log(data)
  706. var _html = "";
  707. for (i in data.extra){
  708. console.log(JSON.stringify(data.extra[i]));
  709. _html += '<input type="radio" name="extra" value=\''+JSON.stringify(data.extra[i])+'\' />'+data.extra[i]['type']+'--'+data.extra[i]['price']+'元<br />';
  710. }
  711. $('#extra_items').html(_html);
  712. }
  713. });
  714. console.log(rec.value);
  715. }
  716. });
  717. jq_setStatus.combobox({
  718. editable: false,
  719. data: status_data
  720. });
  721. jq_setStatus_add.combobox({
  722. editable: false,
  723. data: (function () {
  724. var status_data_temp = new Array();
  725. $.extend(status_data_temp, status_data);
  726. status_data_temp.shift();
  727. return status_data_temp;
  728. })()
  729. });
  730. jq_setChannels_add.combobox({
  731. editable: false,
  732. data: (function () {
  733. var channel_data_temp = new Array();
  734. $.extend(channel_data_temp, channel_data);
  735. channel_data_temp.shift();
  736. return channel_data_temp;
  737. })()
  738. });
  739. jq_set_station.combobox({
  740. editable : false,
  741. data : (function () {
  742. var station_data_temp = new Array();
  743. $.extend(station_data_temp, station_data);
  744. station_data_temp.shift();
  745. return station_data_temp;
  746. })()
  747. });
  748. jq_set_type.combobox({
  749. editable : false,
  750. data : (function () {
  751. var type_temp = new Array();
  752. $.extend(type_temp, type);
  753. type_temp.shift();
  754. return type_temp;
  755. })()
  756. });
  757. var p_width = parseInt(w_width / 2);
  758. if (p_width < 520){
  759. p_width = 520;
  760. }
  761. var d_width = p_width - 10;
  762. $('#west_panel').css({width : p_width});
  763. $('#main').css({width: w_width - 25, height: w_height - 18}).layout();
  764. jq_ss.searchbox({
  765. width: 130,
  766. searcher:function(value){
  767. search_content();
  768. },
  769. prompt: '请输入关键字'
  770. });
  771. jq_setStatus.combobox({
  772. editable: false,
  773. data: status_data
  774. });
  775. jq_add_dialog.dialog({
  776. title: '新建订单',
  777. width: 500,
  778. height: 500,
  779. closed: true,
  780. modal: true,
  781. buttons:[{
  782. text: '确认',
  783. iconCls: 'icon-ok',
  784. handler: function(){
  785. // ------ 数据完整性检查 ------
  786. var check = checkAddForm();
  787. if (!check) {
  788. return false;
  789. } else {
  790. $.messager.progress();
  791. jq_add_form.submit();
  792. }
  793. }
  794. },{
  795. text: '取消',
  796. iconCls: 'icon-cancel',
  797. handler: function(){
  798. jq_add_dialog.dialog('close');
  799. }
  800. }],
  801. onOpen:function(){
  802. jq_add_form.form('clear');
  803. jq_add_form.form('load', {});
  804. jq_set_precedence.combobox('setValue', 0);
  805. $('#extra_items').html('');
  806. $('#re_address').html('');
  807. }
  808. });
  809. jq_dg_content.datagrid({
  810. url: module_router + '/list',
  811. title: '订单列表',
  812. width: d_width,
  813. height: w_height - 18,
  814. fitColumns: true,
  815. autoRowHeight: true,
  816. striped: true,
  817. toolbar: '#tb_content',
  818. singleSelect: true,
  819. selectOnCheck: false,
  820. checkOnSelect: false,
  821. rowStyler: function(index,row){
  822. if (row.precedence && row.status==1){
  823. return 'color:red;';
  824. }else if(row.status==-3){
  825. return 'color:green;';
  826. }
  827. },
  828. pagination: true,
  829. pageList: [20, 30, 50],
  830. pageSize: 20,
  831. nowrap: false,
  832. idField: 'id',
  833. sortName: 'order_time',
  834. sortOrder: 'desc',
  835. queryParams: get_param_obj(),
  836. frozenColumns:[[
  837. {field:'ck',checkbox:true}
  838. ]],
  839. columns:[[
  840. {field:'id', title:'id', hidden:true},
  841. {field:'type', title:'服务', width:50,
  842. formatter: function(value, row){
  843. if (value <= 6) {
  844. return type[value].text;
  845. } else {
  846. return type[value-1].text;
  847. }
  848. }
  849. },
  850. {field:'user', title:'用户', width:50,
  851. formatter: function(value, row){
  852. var username = value.user_name;
  853. if(value.otherPlatform=='1'){
  854. return username;
  855. }else{
  856. return '<a href="javascript:;" onclick="parent.load_url(\'<?php echo Yii::app()->request->baseUrl; ?>/index.php?r=rUser&id='+value.id+'\');">'+ username +'</a>';
  857. }
  858. }
  859. },
  860. {field:'order_time', title:'下单时间', width:70,sortable:true,formatter: function(value, row){
  861. var now=new Date(value*1000);
  862. var month=now.getMonth()+1;
  863. var date=now.getDate();
  864. var hour = now.getHours();
  865. return month+"月"+date+"日"+hour+":00";
  866. }
  867. },
  868. {field:'order_count', title:'总单', width:30,sortable:false,
  869. formatter: function(value, row){
  870. if(value){
  871. return '<a href="javascript:;" onclick="parent.load_url(\'<?php echo Yii::app()->request->baseUrl; ?>/index.php?r=rOrder&have_pay=1&search='+row.address.mobile+'\');">'+ value +'</a>';
  872. }else{
  873. return value;
  874. }
  875. }
  876. },
  877. {field:'booking_time', title:'预约时间', width:60,sortable:true,formatter: function(value, row){
  878. var now=new Date(value*1000);
  879. var month=now.getMonth()+1;
  880. var date=now.getDate();
  881. var hour = now.getHours();
  882. return month+"-"+date+" "+hour+":00";
  883. }},
  884. {field:'technicians', title:'保洁师', width:60,sortable:true,
  885. formatter: function(value, row){
  886. if (value == '') {
  887. return "暂未选择保洁师";
  888. } else {
  889. var output = '';
  890. for(var i in value){
  891. output += value[i]['technician_name']+'&nbsp';
  892. }
  893. return output;
  894. }
  895. /*var output = '';
  896. for(var i in row){
  897. output += value[i]['technician']+'&nbsp';
  898. }
  899. return output;*/
  900. }
  901. },
  902. {field:'af_sum_price', title:'总额', width:25,sortable:false},
  903. {field:'sum_price', title:'折后', width:25,sortable:false},
  904. {field:'status', title:'状态', width:40, sortable: true,
  905. formatter: function(value, row){
  906. return get_filed_text(value, status_data);
  907. }
  908. },
  909. {field:'counts', title:'数量', width:20,sortable:false},
  910. {field:'score', title:'评价',width:20,
  911. formatter:function(value, row) {
  912. if (value == 100) {
  913. return '无';
  914. } else {
  915. return '<a href="javascript:;" onclick="parent.load_url(\'<?php echo Yii::app()->request->baseUrl; ?>/index.php?r=comment&id='+row.commentId+'\');">'+ value +'</a>';
  916. }
  917. }
  918. }
  919. ]],
  920. onSelect: function(index, row){
  921. $('#technician_id').val(0);
  922. $('#setTechnician_content').removeAttr('readonly');
  923. var data = $.extend({}, row);
  924. jq_content_form.form('load', data);
  925. jq_resetTec_form.form('clear');
  926. jq_resetTec_form.form('load', data);
  927. //如果technician_name存在则选择框为readonly
  928. tec_name = $('#setTechnician_content').val();
  929. if (tec_name.length > 0) {
  930. $('#setTechnician_content').attr('readonly', 'true');
  931. }
  932. // 如果technician_name存在且订单状态为1-4则显示重新分配
  933. console.log(data.technician_name);
  934. if (data.technician_name != '' && data.status >= 1 && data.status <= 3) {
  935. $('#resetTechTip').hide();
  936. $('#resetTechDiv').show();
  937. } else {
  938. $('#resetTechTip').show();
  939. $('#resetTechDiv').hide();
  940. }
  941. $('#admins_edit_info').html('');
  942. var technicians = data['technicians'];
  943. var tmp = '';
  944. var nums = 0;
  945. for (var j in technicians) {
  946. nums += 1;
  947. tmp +='<div id="extra_add_info_'+technicians[j]['technician_id']+'" style="height:4px">'+technicians[j]['technician_name'];
  948. /*tmp += '<a href="" onclick="delete_extra('+technicians[j]['technician_id']+');return false;">删除</a></div><br/>';*/
  949. tmp += '<input type="hidden" id="extra_add_info_hidden_'+nums+'" name="extra_add_info_'+nums+'" value='+technicians[j]['technician_name']+'/>';
  950. tmp += '<input type="hidden" id="extra_add_info_id_hidden_'+nums+'" name="extra_add_info_id_'+nums+'" value='+technicians[j]['technician_id']+'/></div><br/>';
  951. }
  952. $('#tech_nums').val(nums);
  953. var address_contact = '省:'+data['address']['province']+'<br />'+'市:'+data['address']['city']+'<br />'+'区:'+data['address']['area']+'<br />'+'地址:'+data['address']['poi']['name']+' '+data['address']['detail']+'<br />'+'姓名:'+data['address']['name']+'<br />'+'手机号:'+data['address']['mobile']+'<br />'+'<a href="javascript:void();" lat='+data['address']['position'][1]+' lng='+data['address']['position'][0]+' id="view_position">查看坐标</a>';
  954. $('#address_contact').html(address_contact);
  955. $('#extra_add_info').html(tmp);
  956. var products = data['products'];
  957. var product_info = '';
  958. for(var j in products){
  959. if(j == products.length-1){
  960. if(products[j].count>1){
  961. product_info += products[j]['product'].name+"x"+products[j]['product'].count;
  962. }else{
  963. product_info += products[j]['product'].name;
  964. }
  965. if(!$.isEmptyObject(products[j]['extra'])){
  966. product_info += '('+products[j]['extra'].type+'--'+products[j]['extra'].price+')';
  967. }
  968. }else{
  969. if(products[j].count>1) {
  970. product_info += products[j]['product'].name + "x" + products[j]['product'].count + " + ";
  971. }else{
  972. product_info += products[j]['product'].name + " + ";
  973. }
  974. if(!$.isEmptyObject(products[j].extra)){
  975. product_info += '('+products[j]['extra'].type+'--'+products[j]['extra'].price+')';
  976. }
  977. }
  978. }
  979. var coupons = data['coupons'];
  980. var coupon_info = '';
  981. $('#booking_time').datetimebox('setValue', parse_time(data,'booking_time'));
  982. $('#deal_time').datetimebox('setValue', parse_time(data,'deal_time'));
  983. $('#product_info').html(product_info);
  984. $('#coupon_info').html(coupon_info);
  985. $('#view_position').on('click',function(){
  986. console.log($(this).attr('lat'));
  987. $.fn.position_selector('init',{
  988. width:$(window).width()-300,//弹框显示宽度
  989. height:$(window).height()-100,//弹框显示高度
  990. zoom:18, //缩放级别
  991. locat:'上海',//默认城市
  992. can_edit:true,
  993. lat:$(this).attr('lat'),
  994. lng:$(this).attr('lng'),
  995. func_callback:function(){return false;},//选择成功之后的回调函数
  996. element_id:'map_container'//弹窗ID
  997. });return false;
  998. });
  999. for(var j in coupons){
  1000. console.log(coupons[j]['coupon']);
  1001. var value = coupons[j]['coupon']['name']+'(满'+coupons[j]['coupon']['min_price']+'免'+coupons[j]['coupon']['value']+')'+'('+coupons[j]['coupon']['alias_name']+')';
  1002. if(j == coupons.length-1){
  1003. coupon_info += value;
  1004. }else{
  1005. coupon_info += value+'+';
  1006. }
  1007. }
  1008. $('#booking_time').datetimebox('setValue', parse_time(data,'booking_time'));
  1009. $('#deal_time').datetimebox('setValue', parse_time(data,'deal_time'));
  1010. $('#product_info').html(product_info);
  1011. $('#coupon_info').html(coupon_info);
  1012. $('#view_position').on('click',function(){
  1013. console.log($(this).attr('lat'));
  1014. $.fn.position_selector('init',{
  1015. width:$(window).width()-300,//弹框显示宽度
  1016. height:$(window).height()-100,//弹框显示高度
  1017. zoom:18, //缩放级别
  1018. locat:'上海',//默认城市
  1019. can_edit:true,
  1020. lat:$(this).attr('lat'),
  1021. lng:$(this).attr('lng'),
  1022. func:function(){return false;},//选择成功之后的回调函数
  1023. element_id:'map_container'//弹窗ID
  1024. });return false;
  1025. });
  1026. if (data['action_user'] != ''){
  1027. jq_action_info.html('信息已被编辑: ' + data['action_user'] + ' ' + data['action_time']);
  1028. } else {
  1029. jq_action_info.html('');
  1030. }
  1031. $("#on_loading").show();
  1032. $('#pay_channel').html(data.pay_channel);
  1033. $('#counts').html(data.counts);
  1034. $('#charge_id').html(data.charge_id);
  1035. $('#memo').html(data.memo);
  1036. $('#id_str').html(data.id);
  1037. },
  1038. onLoadSuccess: function(){
  1039. $('#resetTechTip').hide();
  1040. $('#resetTechDiv').hide();
  1041. $('#setTechnician_content').removeAttr('readonly');
  1042. $(this).datagrid('clearChecked');
  1043. $('#address_contact').html('');
  1044. $('#product_info').html('');
  1045. $('#coupon_info').html('');
  1046. jq_content_form.form('clear');
  1047. jq_resetTec_form.form('clear');
  1048. $('#id_str').html('');
  1049. $('#counts').html('');
  1050. $('#booking_time_str').val('');
  1051. $('#deal_time_str').val('');
  1052. jq_action_info.html('');
  1053. jq_dg_content.datagrid('clearSelections');
  1054. jq_setStatus.combobox('setValue', 100);
  1055. }
  1056. });
  1057. jq_ss.searchbox({
  1058. width: 140,
  1059. searcher:function(value){
  1060. search_content();
  1061. },
  1062. prompt: '请输入关键字'
  1063. });
  1064. jq_filter_status.combobox({
  1065. width: 100,
  1066. data: status_data,
  1067. editable: false,
  1068. onSelect: function(){
  1069. search_content();
  1070. }
  1071. });
  1072. jq_filter_channel.combobox({
  1073. width: 100,
  1074. data: channel_data,
  1075. editable: false,
  1076. onSelect: function(){
  1077. search_content();
  1078. }
  1079. });
  1080. jq_filter_station.combobox({
  1081. width: 100,
  1082. data: station_data,
  1083. editable: false,
  1084. onSelect: function () {
  1085. search_content();
  1086. }
  1087. });
  1088. // ------ content form ------
  1089. $('#setStation_content').combobox({
  1090. width: 250,
  1091. data: (function(){
  1092. var station_data_temp = new Array();
  1093. $.extend(station_data_temp, station_data);
  1094. station_data_temp.shift();
  1095. return station_data_temp;
  1096. })(),
  1097. editable: false
  1098. });
  1099. jq_content_form.form({
  1100. url: module_router + '/edit',
  1101. onSubmit: function(param){
  1102. if ($('#order_id').val() == ""){
  1103. return false;
  1104. }
  1105. var isValid = $(this).form('validate');
  1106. if (!isValid){
  1107. $.messager.progress('close');
  1108. }
  1109. return isValid;
  1110. },
  1111. success: function(res){
  1112. $.messager.progress('close');
  1113. var res = JSON.parse(res);
  1114. if (res.success){
  1115. jq_dg_content.datagrid('reload');
  1116. }
  1117. if(res.success){
  1118. $.messager.show({
  1119. title: '提示',
  1120. msg: '保存成功',
  1121. timeout: 3500,
  1122. showType: 'slide'
  1123. });
  1124. $('#technician_id').val(0);
  1125. }else{
  1126. $.messager.show({
  1127. title: '提示',
  1128. msg: res.message,
  1129. timeout: 3500,
  1130. showType: 'slide'
  1131. });
  1132. }
  1133. }
  1134. });
  1135. jq_add_form.form({
  1136. url : module_router + '/add',
  1137. onSubmit : function (param) {
  1138. var isValid = $(this).form('validate');
  1139. if (!isValid){
  1140. $.messager.progress('close');
  1141. }
  1142. return isValid;
  1143. },
  1144. success : function (res) {
  1145. $.messager.progress('close');
  1146. var res = JSON.parse(res);
  1147. if (res.success) {
  1148. $.messager.show({
  1149. title : '提示',
  1150. msg : '保存成功',
  1151. timeout : 3500,
  1152. showType : 'slide'
  1153. });
  1154. jq_add_dialog.dialog('close');
  1155. jq_dg_content.datagrid('reload');
  1156. } else {
  1157. $.messager.show({
  1158. title : '提示',
  1159. msg : res.message,
  1160. timeout : 3500,
  1161. showType : 'slide'
  1162. });
  1163. }
  1164. }
  1165. });
  1166. jq_resetTec_form.form({
  1167. url: module_router + '/resetTech',
  1168. onSubmit: function(param) {
  1169. var isValid = $(this).form('validate');
  1170. if (!isValid){
  1171. $.messager.progress('close');
  1172. }
  1173. return isValid;
  1174. },
  1175. success: function(res) {
  1176. $.messager.progress('close');
  1177. var res = JSON.parse(res);
  1178. if (res.success) {
  1179. $.messager.show({
  1180. title : '提示',
  1181. msg : '保存成功',
  1182. timeout : 3500,
  1183. showType : 'slide'
  1184. });
  1185. jq_dg_content.datagrid('reload');
  1186. } else {
  1187. $.messager.show({
  1188. title : '提示',
  1189. msg : res.message,
  1190. timeout : 3500,
  1191. showType : 'slide'
  1192. });
  1193. }
  1194. }
  1195. });
  1196. // 自动填充
  1197. var setTechnician_content = $('#setTechnician_content');
  1198. setTechnician_content.coolautosuggest({
  1199. url: 'index.php?r=o2o/tech/selectTech&tech=',
  1200. showDescription: true,
  1201. onSelected:function(result){
  1202. $('#technician_id').val(result.tech_id);
  1203. // console.log(result);
  1204. }
  1205. });
  1206. var reset_tech_selector = $('#resetTecName');
  1207. reset_tech_selector.coolautosuggest({
  1208. url: '/index.php?r=o2o/tech/selectTech&tech=',
  1209. showDescription: true,
  1210. onSelected:function(result){
  1211. $('#resetTec').val(result.tech_id);
  1212. }
  1213. });
  1214. /* 每5分钟请求一次接口获取申请退款订单 */
  1215. jq_refund_tip_dialog.dialog({
  1216. title: '提示',
  1217. width: 300,
  1218. height: 150,
  1219. closed: true,
  1220. modal: true,
  1221. buttons:[{
  1222. text: '处理退款订单',
  1223. iconCls: 'icon-ok',
  1224. handler: function(){
  1225. url = '<?php echo Yii::app()->request->baseUrl; ?>/index.php?r=rOrder&status=-3';
  1226. parent.load_url(url);
  1227. jq_refund_tip_dialog.dialog('close');
  1228. }
  1229. },{
  1230. text: '取消',
  1231. iconCls: 'icon-cancel',
  1232. handler: function(){
  1233. jq_refund_tip_dialog.dialog('close');
  1234. }
  1235. }],
  1236. onOpen:function(){
  1237. }
  1238. });
  1239. function checkRefundOrder() {
  1240. $.post(
  1241. module_router + '/checkRefundOrder',
  1242. {},
  1243. function(res) {
  1244. res = $.parseJSON(res);
  1245. if(res.code == 2){
  1246. // $content = '<a href="javascript:;" onclick="process_append_order(\''+res.procession_append_order_id+'\');">待处理追加订单</a>';
  1247. console.log(res);
  1248. $.messager.defaults.ok = '去处理';
  1249. $.messager.defaults.cancel = '取消';
  1250. $.messager.confirm('提示','有追加订单待处理',function(r){
  1251. if (r){
  1252. process_append_order(res.procession_append_order_id);
  1253. }else{
  1254. cancel_process_append_order(res.procession_append_order_id);
  1255. }
  1256. });
  1257. }else if (res.code == 1) {
  1258. $content = '共有<span style="color:red">'+res.count+'</span>个<span style="color: green;">申请退款</span>的订单未处理';
  1259. $('#refund_tip').html($content);
  1260. jq_refund_tip_dialog.dialog('open');
  1261. }else {
  1262. return false;
  1263. }
  1264. }
  1265. );
  1266. }
  1267. checkRefundOrder();
  1268. setInterval(checkRefundOrder, 600000);
  1269. });
  1270. function search_content(){
  1271. var filter_status = jq_filter_status.combobox('getValue');
  1272. var filter_channel = jq_filter_channel.combobox('getValue');
  1273. var date_start_order = jq_date_start_order.datebox('getValue');
  1274. var date_end_order = jq_date_end_order.datebox('getValue');
  1275. var date_start_book = jq_date_start_book.datebox('getValue');
  1276. var date_end_book = jq_date_end_book.datebox('getValue');
  1277. // var station = jq_filter_station.combobox('getValue');
  1278. var type = jq_filter_type.combobox('getValue');
  1279. var search = jq_ss.searchbox('getValue');
  1280. jq_dg_content.datagrid({
  1281. pageNum: 1,
  1282. queryParams: {
  1283. search : search,
  1284. status : filter_status,
  1285. channel : filter_channel,
  1286. date_start_order : date_start_order,
  1287. date_end_order : date_end_order,
  1288. date_start_book : date_start_book,
  1289. date_end_book : date_end_book,
  1290. // station : station,
  1291. type : type
  1292. }
  1293. });
  1294. };
  1295. function save_content(){
  1296. if ($('#order_id').val() == ""){
  1297. return false;
  1298. }
  1299. if (jq_setStatus.combobox('getValue') <0 ){
  1300. $.messager.confirm('注意', '确认 取消/退款 该订单吗?', function(r){
  1301. $.messager.progress();
  1302. jq_content_form.submit();
  1303. });
  1304. return true;
  1305. }
  1306. if (jq_setStatus.combobox('getValue') == 6) {
  1307. tec_name = $('#setTechnician_content').val();
  1308. tec_id = $('#technician_id').val();
  1309. if (tec_name.length == 0 && tec_id.length == 0) {
  1310. $.messager.alert('提示', '完成订单前请指定保洁师');
  1311. return false;
  1312. }
  1313. }
  1314. $.messager.progress();
  1315. jq_content_form.submit();
  1316. }
  1317. function parse_time(data,attr){
  1318. if(data[attr]){
  1319. var d=new Date(data[attr]*1000);
  1320. return formatDate(d);
  1321. }else{
  1322. return '';
  1323. }
  1324. }
  1325. function formatDate(now){
  1326. var year=now.getFullYear();
  1327. var month=now.getMonth()+1;
  1328. var date=now.getDate();
  1329. var hour = now.getHours();
  1330. var minute = now.getMinutes();
  1331. return year+"-"+month+"-"+date+" "+hour+":"+minute;
  1332. }
  1333. function add_content(){
  1334. jq_add_dialog.dialog('open');
  1335. }
  1336. function reset_technician() {
  1337. var id = jq_resetTec_form.find('input[name="id"]').val();
  1338. if (id.length == 0) {
  1339. $.messager.alert('提示', '请先选择一个订单');
  1340. return false;
  1341. }
  1342. var name = jq_resetTec_form.find("input[id='reset_add']").val();
  1343. var add = jq_resetTec_form.find('input[name="reset_technician_name"]').val();
  1344. if (name == undefined) {
  1345. $.messager.alert('提示', '请先选择一名保洁师');
  1346. return false;
  1347. }
  1348. if (add.length != 0) {
  1349. $.messager.alert('提示', '请点击添加保洁师');
  1350. return false;
  1351. }
  1352. $.messager.progress();
  1353. jq_resetTec_form.form('submit');
  1354. $('#reset_extra_add_info').empty();
  1355. }
  1356. function checkAddForm () {
  1357. // 正则检查
  1358. // 手机号检查
  1359. var mobile_regex = new RegExp(/^\d{8,11}$/);
  1360. var mobile_text = $('#mobile_add').val();
  1361. if (!mobile_regex.test(mobile_text)) {
  1362. $.messager.alert('提示', '手机号输入非法(如存在空格等)噢', 'warning');
  1363. return false;
  1364. }
  1365. // 空数据检查
  1366. if ($('#mobile_add').val() == '') {
  1367. $.messager.alert('提示', '请填写手机号', 'warning');
  1368. return false;
  1369. }
  1370. if ($('#name_add').val() == '') {
  1371. $.messager.alert('提示', '请填写姓名', 'warning');
  1372. return false;
  1373. }
  1374. if ($('#view_latitude').val() == '' || $('#view_longitude').val() == '') {
  1375. $.messager.alert('提示', '请选择坐标', 'warning');
  1376. return false;
  1377. }
  1378. if ($('#detail_add').val() == '') {
  1379. $.messager.alert('提示', '请填写详细地址', 'warning');
  1380. return false;
  1381. }
  1382. if ($('#set_type').combobox('getValue') == '') {
  1383. $.messager.alert('提示', '请选择订单类型', 'warning');
  1384. return false;
  1385. }
  1386. if ($('#setChannels_add').combobox('getValue') == '') {
  1387. $.messager.alert('提示', '请选择订单来源', 'warning');
  1388. return false;
  1389. }
  1390. if ($('#order_time_add').datebox('getValue') == '') {
  1391. $.messager.alert('提示', '请选择订单时间', 'warning');
  1392. return false;
  1393. }
  1394. if ($('#booking_time_add').datebox('getValue') == '') {
  1395. $.messager.alert('提示', '请选择预约时间', 'warning');
  1396. return false;
  1397. }
  1398. if ($('#price_add').val() == '') {
  1399. $.messager.alert('提示', '请填写订单金额', 'warning');
  1400. return false;
  1401. }
  1402. if ($('#final_price_add').val() == '') {
  1403. $.messager.alert('提示', '请填写折扣后金额', 'warning');
  1404. return false;
  1405. }
  1406. if ($('#setStatus_add').combobox('getValue') == '') {
  1407. $.messager.alert('提示', '请选择订单状态', 'warning');
  1408. return false;
  1409. }
  1410. if($('#extra_items').html().length && !$("input[name='extra']:checked").val()){
  1411. $.messager.alert('提示', '服务详情没有选择', 'warning');
  1412. return false;
  1413. }
  1414. return true;
  1415. }
  1416. function delete_extra(msg){
  1417. $('#extra_add_info_'+msg).remove();
  1418. $('#extra_add_info_hidden_'+msg).remove();
  1419. $('#extra_add_info_id_hidden_'+msg).remove();
  1420. var nums = Number($('#tech_nums').val());
  1421. nums -= 1;
  1422. $('#tech_nums').val(nums);
  1423. }
  1424. function add_extra(){
  1425. var nums = Number($('#tech_nums').val());
  1426. if ($('#setTechnician_content').val()){
  1427. nums += 1;
  1428. setTechnician_content = $('#setTechnician_content').val();
  1429. setTechnician_id = $('#technician_id').val();
  1430. $output = "<div id='extra_add_info_"+nums+"' style='height: 4px'>"+setTechnician_content;
  1431. $output +="<a href ='' onclick='delete_extra("+nums+");return false;'>删除</a></div><br/>";
  1432. $output +="<input type='hidden' id='extra_add_info_hidden_"+nums+"' name='extra_add_info_"+nums+"' value='"+setTechnician_content+"' />";
  1433. $output +="<input type='hidden' id='extra_add_info_id_hidden_"+nums+"' name='extra_add_info_id_"+nums+"' value='"+setTechnician_id+"' /></div>";
  1434. $('#setTechnician_content').val('');
  1435. $('#tech_nums').val(nums);
  1436. $("#extra_add_info").append($output);
  1437. }
  1438. }
  1439. function reset_delete_extra(msg){
  1440. $('#reset_extra_add_info_'+msg).remove();
  1441. $('#reset_extra_add_info_hidden_'+msg).remove();
  1442. $('#reset_extra_add_info_id_hidden_'+msg).remove();
  1443. $('#reset_add').remove();
  1444. var nums = Number($('#reset_tech_nums').val());
  1445. nums -= 1;
  1446. $('#reset_tech_nums').val(nums);
  1447. }
  1448. function reset_add_extra(){
  1449. var nums = Number($('#reset_tech_nums').val());
  1450. if ($('#resetTec').val()) {
  1451. nums += 1;
  1452. resetTec = $('#resetTec').val();
  1453. resetTecName = $('#resetTecName').val();
  1454. $output = "<div id='reset_extra_add_info_"+nums+"' style='height: 4px'>"+resetTecName;
  1455. $output +="<a href ='' onclick='reset_delete_extra("+nums+");return false;'>删除</a></div><br/>";
  1456. $output +="<input type='hidden' id='reset_extra_add_info_hidden_"+nums+"' name='reset_extra_add_info_"+nums+"' value='"+resetTecName+"' />";
  1457. $output += "<input type='hidden' id='reset_add' name='reset_add' value='1' />";
  1458. $output +="<input type='hidden' id='reset_extra_add_info_id_hidden_"+nums+"' name='reset_extra_add_info_id_"+nums+"' value='"+resetTec+"' /></div>";
  1459. $('#reset_tech_nums').val(nums);
  1460. $("#reset_extra_add_info").append($output);
  1461. $('#resetTecName').val('');
  1462. }
  1463. }
  1464. </script>