index.php 28 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621
  1. {extend name="public/container"}
  2. {block name="head_top"}
  3. <script src="{__PLUG_PATH}city.js"></script>
  4. <style>
  5. .layui-btn-xs {
  6. margin-left: 0px !important;
  7. }
  8. legend {
  9. width: auto;
  10. border: none;
  11. font-weight: 700 !important;
  12. }
  13. .site-demo-button {
  14. padding-bottom: 20px;
  15. padding-left: 10px;
  16. }
  17. .layui-form-label {
  18. width: auto;
  19. }
  20. .layui-input-block input {
  21. width: 50%;
  22. height: 34px;
  23. }
  24. .layui-form-item {
  25. margin-bottom: 0;
  26. }
  27. .layui-input-block .time-w {
  28. width: 200px;
  29. }
  30. .layui-table-body {
  31. overflow-x: hidden;
  32. }
  33. .layui-btn-group button i {
  34. line-height: 30px;
  35. margin-right: 3px;
  36. vertical-align: bottom;
  37. }
  38. .back-f8 {
  39. background-color: #F8F8F8;
  40. }
  41. .layui-input-block button {
  42. border: 1px solid #e5e5e5;
  43. }
  44. .avatar {
  45. width: 50px;
  46. height: 50px;
  47. }
  48. .layui-table-body {
  49. overflow-x: unset;
  50. }
  51. </style>
  52. {/block}
  53. {block name="content"}
  54. <div class="row">
  55. <div class="col-sm-12">
  56. <div class="ibox float-e-margins">
  57. <div class="ibox-title">
  58. <h5>会员搜索</h5>
  59. <div class="ibox-tools">
  60. <a class="collapse-link">
  61. <i class="fa fa-chevron-up"></i>
  62. </a>
  63. </div>
  64. </div>
  65. <div class="ibox-content" style="display: block;">
  66. <!-- <div class="alert alert-success alert-dismissable">-->
  67. <!-- <button aria-hidden="true" data-dismiss="alert" class="close" type="button">×</button>-->
  68. <!-- 目前拥有{$count_user}个会员-->
  69. <!-- </div>-->
  70. <form class="layui-form">
  71. <div class="layui-form-item">
  72. <div class="layui-inline">
  73. <label class="layui-form-label">姓名编号:</label>
  74. <div class="layui-input-inline">
  75. <input type="text" name="nickname" lay-verify="nickname" style="width: 100%"
  76. autocomplete="off" placeholder="请输入姓名、编号、手机号" class="layui-input">
  77. </div>
  78. </div>
  79. <div class="layui-inline">
  80. <label class="layui-form-label">用户类型:</label>
  81. <div class="layui-input-inline">
  82. <select name="user_type" lay-verify="user_type">
  83. <option value="">全部</option>
  84. <option value="wechat">微信公众号</option>
  85. <option value="routine">微信小程序</option>
  86. <option value="h5">H5</option>
  87. </select>
  88. </div>
  89. </div>
  90. <div class="layui-inline">
  91. <label class="layui-form-label">状  态:</label>
  92. <div class="layui-input-inline">
  93. <select name="status" lay-verify="status">
  94. <option value="">全部</option>
  95. <option value="1">正常</option>
  96. <option value="0">锁定</option>
  97. </select>
  98. </div>
  99. </div>
  100. <div class="layui-inline">
  101. <label class="layui-form-label">性  别:</label>
  102. <div class="layui-input-inline">
  103. <select name="sex" lay-verify="sex">
  104. <option value="">全部</option>
  105. <option value="1">男</option>
  106. <option value="2">女</option>
  107. <option value="0">保密</option>
  108. </select>
  109. </div>
  110. </div>
  111. <div class="layui-inline">
  112. <label class="layui-form-label">身  份:</label>
  113. <div class="layui-input-inline">
  114. <select name="is_promoter" lay-verify="is_promoter">
  115. <option value="">全部</option>
  116. <option value="1">推广员</option>
  117. <option value="0">普通用户</option>
  118. </select>
  119. </div>
  120. </div>
  121. <div class="layui-inline">
  122. <label class="layui-form-label">会员等级:</label>
  123. <div class="layui-input-inline">
  124. <select name="level" lay-verify="level" lay-filter='level' id="level">
  125. <option value="" id="level-top">全部</option>
  126. </select>
  127. </div>
  128. </div>
  129. <div class="layui-inline">
  130. <label class="layui-form-label">会员分组:</label>
  131. <div class="layui-input-inline">
  132. <select name="group_id" lay-verify="group" lay-filter='group' id="group">
  133. <option value="" id="group-top">全部</option>
  134. </select>
  135. </div>
  136. </div>
  137. <div class="layui-inline">
  138. <label class="layui-form-label">国  家:</label>
  139. <div class="layui-input-inline">
  140. <select name="country" lay-verify="country" lay-filter='country'>
  141. <option value="" selected="selected">请选择国家</option>
  142. <option value="domestic">中国</option>
  143. <option value="abroad">外国</option>
  144. </select>
  145. </div>
  146. </div>
  147. <div class="layui-inline" id="province-div">
  148. <label class="layui-form-label">省  份:</label>
  149. <div class="layui-input-inline">
  150. <select name="province" lay-verify="province" lay-filter='province' id="province">
  151. <option value="" id="province-top">请选择省</option>
  152. </select>
  153. </div>
  154. </div>
  155. <div class="layui-inline" id="city-div">
  156. <label class="layui-form-label">市  区:</label>
  157. <div class="layui-input-inline">
  158. <select name="city" lay-verify="city" lay-filter='city' id="city">
  159. <option value="" id="city-top">请选择市</option>
  160. </select>
  161. </div>
  162. </div>
  163. </div>
  164. <div class="layui-form-item">
  165. <div class="layui-inline">
  166. <label class="layui-form-label">消费情况:</label>
  167. <div class="layui-input-inline">
  168. <select name="pay_count" lay-verify="pay_count">
  169. <option value="">全部</option>
  170. <option value="-1">0</option>
  171. <option value="0">1+</option>
  172. <option value="1">2+</option>
  173. <option value="2">3+</option>
  174. <option value="3">4+</option>
  175. <option value="4">5+</option>
  176. </select>
  177. </div>
  178. </div>
  179. <div class="layui-inline">
  180. <label class="layui-form-label">访问情况:</label>
  181. <div class="layui-input-inline">
  182. <select name="user_time_type" lay-verify="user_time_type">
  183. <option value="">全部</option>
  184. <option value="visitno">时间段未访问</option>
  185. <option value="visit">时间段访问过</option>
  186. <option value="add_time">首次访问</option>
  187. </select>
  188. </div>
  189. </div>
  190. <div class="layui-inline">
  191. <label class="layui-form-label">选择时间:</label>
  192. <div class="layui-input-inline">
  193. <input type="text" class="layui-input time-w" name="user_time" lay-verify="user_time"
  194. id="user_time" placeholder=" - ">
  195. </div>
  196. </div>
  197. </div>
  198. <div class="layui-form-item">
  199. <label class="layui-form-label">
  200. <button class="layui-btn layui-btn-sm layui-btn-normal" lay-submit="" lay-filter="search">
  201. <i class="layui-icon layui-icon-search layuiadmin-button-btn"></i>搜索
  202. </button>
  203. </label>
  204. </div>
  205. </form>
  206. </div>
  207. </div>
  208. </div>
  209. </div>
  210. <div class="row">
  211. <div class="col-sm-12">
  212. <div class="ibox">
  213. <div class="ibox-content">
  214. <div class="table-responsive">
  215. <div class="layui-btn-group conrelTable">
  216. <!-- <button class="layui-btn layui-btn-sm layui-btn-danger" type="button" data-type="set_status_f"><i class="fa fa-ban"></i>封禁</button>-->
  217. <!-- <button class="layui-btn layui-btn-sm layui-btn-normal" type="button" data-type="set_status_j"><i class="fa fa-check-circle-o"></i>解封</button>-->
  218. <button class="layui-btn layui-btn-sm layui-btn-normal" type="button" data-type="set_grant"><i
  219. class="fa fa-check-circle-o"></i>发送优惠券
  220. </button>
  221. <button class="layui-btn layui-btn-sm layui-btn-normal" type="button" data-type="set_custom"><i
  222. class="fa fa-check-circle-o"></i>发送客服图文消息
  223. </button>
  224. <button class="layui-btn layui-btn-sm layui-btn-normal" type="button" data-type="set_group"><i
  225. class="fa fa-check-circle-o"></i>批量设置分组
  226. </button>
  227. <!-- <button class="layui-btn layui-btn-sm layui-btn-normal" type="button" data-type="set_template"><i class="fa fa-check-circle-o"></i>发送模板消息</button>-->
  228. <!-- <button class="layui-btn layui-btn-sm layui-btn-normal" type="button" data-type="set_info"><i class="fa fa-check-circle-o"></i>发送站内消息</button>-->
  229. <button class="layui-btn layui-btn-sm layui-btn-normal" type="button" data-type="refresh"><i
  230. class="layui-icon layui-icon-refresh"></i>刷新
  231. </button>
  232. </div>
  233. <table class="layui-hide" id="userList" lay-filter="userList"></table>
  234. <script type="text/html" id="nickname">
  235. {{d.nickname}}
  236. {{# if(d.vip_name){ }}
  237. <p style="color:#dab176">{{d.vip_name}}</p>
  238. {{# } }}
  239. </script>
  240. <script type="text/html" id="data_time">
  241. <p>首次:{{d.add_time}}</p>
  242. <p>最近:{{d.last_time}}</p>
  243. </script>
  244. <script type="text/html" id="checkboxstatus">
  245. <input type='checkbox' name='status' lay-skin='switch' value="{{d.uid}}" lay-filter='status'
  246. lay-text='正常|禁止' {{ d.status== 1 ? 'checked' : '' }}>
  247. </script>
  248. <script type="text/html" id="barDemo">
  249. <button type="button" class="layui-btn layui-btn-xs" lay-event="edit"><i
  250. class="layui-icon layui-icon-edit"></i>编辑
  251. </button>
  252. <button type="button" class="layui-btn layui-btn-xs" onclick="dropdown(this)">操作 <span
  253. class="caret"></span></button>
  254. <ul class="layui-nav-child layui-anim layui-anim-upbit">
  255. <li>
  256. <a href="javascript:void(0);" lay-event="money">
  257. <i class="layui-icon layui-icon-edit"></i> 余额积分</a>
  258. </li>
  259. <li>
  260. <a href="javascript:void(0);" lay-event="see">
  261. <i class="layui-icon layui-icon-edit"></i> 会员详情</a>
  262. </li>
  263. <li>
  264. <a href="javascript:void(0);" lay-event="give_level">
  265. <i class="layui-icon layui-icon-star-fill" aria-hidden="true"></i> 修改会员等级</a>
  266. </li>
  267. <li>
  268. <a href="javascript:void(0);" lay-event="set_group">
  269. <i class="layui-icon layui-icon-star-fill" aria-hidden="true"></i> 设置分组</a>
  270. </li>
  271. {{# if(d.vip_name){ }}
  272. <li>
  273. <a href="javascript:void(0);" lay-event="del_level">
  274. <i class="layui-icon layui-icon-close-fill" aria-hidden="true"></i> 清除等级</a>
  275. </li>
  276. {{# } }}
  277. </ul>
  278. </script>
  279. </div>
  280. </div>
  281. </div>
  282. </div>
  283. </div>
  284. <script src="{__ADMIN_PATH}js/layuiList.js"></script>
  285. <script src="{__FRAME_PATH}js/content.min.js?v=1.0.0"></script>
  286. {/block}
  287. {block name="script"}
  288. <script>
  289. var level = <?=$level?>;
  290. var group = <?=$group?>;
  291. $('#province-div').hide();
  292. $('#city-div').hide();
  293. layList.select('country', function (odj, value, name) {
  294. var html = '';
  295. $.each(city, function (index, item) {
  296. html += '<option value="' + item.label + '">' + item.label + '</option>';
  297. })
  298. if (odj.value == 'domestic') {
  299. $('#province-div').show();
  300. $('#city-div').show();
  301. $('#province-top').siblings().remove();
  302. $('#province-top').after(html);
  303. $('#province').val('');
  304. layList.form.render('select');
  305. } else {
  306. $('#province-div').hide();
  307. $('#city-div').hide();
  308. }
  309. $('#province').val('');
  310. $('#city').val('');
  311. });
  312. layList.select('province', function (odj, value, name) {
  313. var html = '';
  314. $.each(city, function (index, item) {
  315. if (item.label == odj.value) {
  316. $.each(item.children, function (indexe, iteme) {
  317. html += '<option value="' + iteme.label + '">' + iteme.label + '</option>';
  318. })
  319. $('#city').val('');
  320. $('#city-top').siblings().remove();
  321. $('#city-top').after(html);
  322. layList.form.render('select');
  323. }
  324. })
  325. });
  326. layList.form.render();
  327. layList.tableList('userList', "{:Url('get_user_list')}", function () {
  328. return [
  329. {type: 'checkbox'},
  330. {field: 'uid', title: '编号', event: 'uid', width: '4%', align: 'center'},
  331. {
  332. field: 'avatar',
  333. title: '头像',
  334. event: 'open_image',
  335. width: '6%',
  336. align: 'center',
  337. templet: '<p lay-event="open_image"><img class="avatar" style="cursor: pointer" class="open_image" data-image="{{d.avatar}}" src="{{d.avatar}}" alt="{{d.nickname}}"></p>'
  338. },
  339. {field: 'nickname', title: '姓名', templet: '#nickname', align: 'center'},
  340. {field: 'phone', title: '手机号', align: 'center', width: '8%'},
  341. {field: 'now_money', title: '余额', width: '6%', sort: true, event: 'now_money', align: 'center'},
  342. {field: 'cash', title: '现金', width: '6%', sort: true, event: 'cash', align: 'center'},
  343. {field: 'pay_count', title: '购买次数', align: 'center', width: '6%'},
  344. {field: 'extract_count_price', title: '累计提现', align: 'center', width: '6%'},
  345. {field: 'integral', title: '积分', width: '6%', sort: true, event: 'integral', align: 'center'},
  346. {field: 'brokerage_price', title: '佣金', width: '6%', sort: true, event: 'brokerage_price', align: 'center'},
  347. {field: 'spread_uid_nickname', title: '推荐人', align: 'center'},
  348. {field: 'sex', title: '性别', width: '4%', align: 'center'},
  349. {field: 'data_time', title: '访问日期', align: 'center', width: '12%', templet: '#data_time'},
  350. // {field: 'status', title: '状态',templet:"#checkboxstatus",width:'6%',align:'center'},
  351. {field: 'user_type', title: '用户类型', width: '6%', align: 'center'},
  352. {field: 'operate', title: '操作', width: '10%', align: 'center', toolbar: '#barDemo'}
  353. ];
  354. });
  355. //页面刷新时加载
  356. layui.use('layer', function () {
  357. var layer = layui.layer;
  358. layer.ready(function () {
  359. var html = '';
  360. $.each(level, function (index, item) {
  361. html += '<option value="' + item.id + '">' + item.name + '</option>';
  362. })
  363. $('#level-top').val('');
  364. $('#level-top').siblings().remove();
  365. $('#level-top').after(html);
  366. layList.form.render('select');
  367. var htmls = '';
  368. $.each(group, function (index, item) {
  369. htmls += '<option value="' + item.id + '">' + item.group_name + '</option>';
  370. })
  371. $('#group-top').val('');
  372. $('#group-top').siblings().remove();
  373. $('#group-top').after(htmls);
  374. layList.form.render('select');
  375. });
  376. });
  377. layList.date('last_time');
  378. layList.date('add_time');
  379. layList.date('user_time');
  380. layList.date('time');
  381. //监听并执行 uid 的排序
  382. layList.sort(function (obj) {
  383. var layEvent = obj.field;
  384. var type = obj.type;
  385. switch (layEvent) {
  386. case 'uid':
  387. layList.reload({order: layList.order(type, 'u.uid')}, true, null, obj);
  388. break;
  389. case 'now_money':
  390. layList.reload({order: layList.order(type, 'u.now_money')}, true, null, obj);
  391. break;
  392. case 'integral':
  393. layList.reload({order: layList.order(type, 'u.integral')}, true, null, obj);
  394. break;
  395. case 'brokerage_price':
  396. layList.reload({order: layList.order(type, 'u.brokerage_price')}, true, null, obj);
  397. break;
  398. case 'cash':
  399. layList.reload({order: layList.order(type, 'u.cash')}, true, null, obj);
  400. break;
  401. }
  402. });
  403. //监听并执行 uid 的排序
  404. layList.tool(function (event, data, obj) {
  405. var layEvent = event;
  406. switch (layEvent) {
  407. case 'edit':
  408. $eb.createModalFrame('编辑', layList.Url({a: 'edit', p: {uid: data.uid}}));
  409. break;
  410. case 'see':
  411. $eb.createModalFrame(data.nickname + '-会员详情', layList.Url({a: 'see', p: {uid: data.uid}}));
  412. break;
  413. case 'del_level':
  414. $eb.$swal('delete', function () {
  415. $eb.axios.get(layList.U({a: 'del_level', q: {uid: data.uid}})).then(function (res) {
  416. if (res.status == 200 && res.data.code == 200) {
  417. $eb.$swal('success', res.data.msg);
  418. obj.update({vip_name: false});
  419. layList.reload();
  420. } else
  421. return Promise.reject(res.data.msg || '删除失败')
  422. }).catch(function (err) {
  423. $eb.$swal('error', err);
  424. });
  425. }, {
  426. title: '您确定要清除【' + data.nickname + '】的会员等级吗?',
  427. text: '清除后无法恢复请谨慎操作',
  428. confirm: '是的我要清除'
  429. })
  430. break;
  431. case 'give_level':
  432. $eb.createModalFrame(data.nickname + '-赠送会员', layList.Url({
  433. a: 'give_level',
  434. p: {uid: data.uid}
  435. }), {w: 500, h: 300});
  436. break;
  437. case 'set_group':
  438. $eb.createModalFrame(data.nickname + '-设置分组', layList.Url({
  439. a: 'set_group',
  440. p: {uid: data.uid}
  441. }), {w: 500, h: 300});
  442. break;
  443. case 'money':
  444. $eb.createModalFrame(data.nickname + '-积分余额修改', layList.Url({a: 'edit_other', p: {uid: data.uid}}));
  445. break;
  446. case 'open_image':
  447. $eb.openImage(data.avatar);
  448. break;
  449. }
  450. });
  451. //layList.sort('uid');
  452. //监听并执行 now_money 的排序
  453. // layList.sort('now_money');
  454. //监听 checkbox 的状态
  455. layList.switch('status', function (odj, value, name) {
  456. if (odj.elem.checked == true) {
  457. layList.baseGet(layList.Url({a: 'set_status', p: {status: 1, uid: value}}), function (res) {
  458. layList.msg(res.msg);
  459. });
  460. } else {
  461. layList.baseGet(layList.Url({a: 'set_status', p: {status: 0, uid: value}}), function (res) {
  462. layList.msg(res.msg);
  463. });
  464. }
  465. });
  466. layList.search('search', function (where) {
  467. if (where['user_time_type'] != '' && where['user_time'] == '') return layList.msg('请选择选择时间');
  468. if (where['user_time_type'] == '' && where['user_time'] != '') return layList.msg('请选择访问情况');
  469. layList.reload(where, true);
  470. });
  471. var action = {
  472. set_status_f: function () {
  473. var ids = layList.getCheckData().getIds('uid');
  474. if (ids.length) {
  475. layList.basePost(layList.Url({
  476. a: 'set_status',
  477. p: {is_echo: 1, status: 0}
  478. }), {uids: ids}, function (res) {
  479. layList.msg(res.msg);
  480. layList.reload();
  481. });
  482. } else {
  483. layList.msg('请选择要封禁的会员');
  484. }
  485. },
  486. set_status_j: function () {
  487. var ids = layList.getCheckData().getIds('uid');
  488. if (ids.length) {
  489. layList.basePost(layList.Url({
  490. a: 'set_status',
  491. p: {is_echo: 1, status: 1}
  492. }), {uids: ids}, function (res) {
  493. layList.msg(res.msg);
  494. layList.reload();
  495. });
  496. } else {
  497. layList.msg('请选择要解封的会员');
  498. }
  499. },
  500. set_grant: function () {
  501. var ids = layList.getCheckData().getIds('uid');
  502. if (ids.length) {
  503. var str = ids.join(',');
  504. $eb.createModalFrame('发送优惠券', layList.Url({
  505. c: 'ump.store_coupon',
  506. a: 'grant',
  507. p: {id: str}
  508. }), {'w': 800});
  509. } else {
  510. layList.msg('请选择要发送优惠券的会员');
  511. }
  512. },
  513. set_template: function () {
  514. var ids = layList.getCheckData().getIds('uid');
  515. if (ids.length) {
  516. var str = ids.join(',');
  517. } else {
  518. layList.msg('请选择要发送模板消息的会员');
  519. }
  520. },
  521. set_info: function () {
  522. var ids = layList.getCheckData().getIds('uid');
  523. if (ids.length) {
  524. var str = ids.join(',');
  525. $eb.createModalFrame('发送站内信息', layList.Url({
  526. c: 'user.user_notice',
  527. a: 'notice',
  528. p: {id: str}
  529. }), {'w': 1200});
  530. } else {
  531. layList.msg('请选择要发送站内信息的会员');
  532. }
  533. },
  534. set_custom: function () {
  535. var ids = layList.getCheckData().getIds('uid');
  536. if (ids.length) {
  537. var str = ids.join(',');
  538. $eb.createModalFrame('发送客服图文消息', layList.Url({
  539. c: 'wechat.wechat_news_category',
  540. a: 'send_news',
  541. p: {id: str, type: 1}
  542. }), {'w': 1200});
  543. } else {
  544. layList.msg('请选择要发送客服图文消息的会员');
  545. }
  546. },
  547. set_group: function () {
  548. var ids = layList.getCheckData().getIds('uid');
  549. if (ids.length) {
  550. var str = ids.join(',');
  551. $eb.createModalFrame('批量设置分组', layList.Url({a: 'set_group', p: {uid: str}}), {w: 500, h: 300});
  552. } else {
  553. layList.msg('请选择要批量设置分组的会员');
  554. }
  555. },
  556. refresh: function () {
  557. layList.reload();
  558. }
  559. };
  560. $('.conrelTable').find('button').each(function () {
  561. var type = $(this).data('type');
  562. $(this).on('click', function () {
  563. action[type] && action[type]();
  564. })
  565. })
  566. $(document).on('click', ".open_image", function (e) {
  567. var image = $(this).data('image');
  568. $eb.openImage(image);
  569. })
  570. //下拉框
  571. $(document).click(function (e) {
  572. $('.layui-nav-child').hide();
  573. })
  574. function dropdown(that) {
  575. var oEvent = arguments.callee.caller.arguments[0] || event;
  576. oEvent.stopPropagation();
  577. var offset = $(that).offset();
  578. var top = offset.top - $(window).scrollTop();
  579. var index = $(that).parents('tr').data('index');
  580. $('.layui-nav-child').each(function (key) {
  581. if (key != index) {
  582. $(this).hide();
  583. }
  584. })
  585. if ($(document).height() < top + $(that).next('ul').height()) {
  586. $(that).next('ul').css({
  587. 'padding': 10,
  588. 'top': -($(that).parent('td').height() / 2 + $(that).height() + $(that).next('ul').height() / 2),
  589. 'left': offset.left - $(that).parents('td').offset().left - 20,
  590. 'min-width': 'inherit',
  591. 'position': 'absolute'
  592. }).toggle();
  593. } else {
  594. $(that).next('ul').css({
  595. 'padding': 10,
  596. 'top': $(that).parent('td').height() / 2 + $(that).height(),
  597. 'left': offset.left - $(that).parents('td').offset().left - 20,
  598. 'min-width': 'inherit',
  599. 'position': 'absolute'
  600. }).toggle();
  601. }
  602. }
  603. </script>
  604. {/block}