group.html 33 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119
  1. {extend name="public/layout" /} {block name="title"}集团列表{/block} {block name="body"}
  2. <link rel="stylesheet" href="__LAYUI__/common.css" media="all">
  3. <style type="text/css">
  4. html,
  5. body {
  6. display: block;
  7. min-width: 1100px;
  8. }
  9. .layui-table thead tr,
  10. .layui-table-header {
  11. background-color: #D8E6F1 !important;
  12. }
  13. .layui-fluid {
  14. display: block;
  15. box-shadow: 0 0 4px 0 #B6CADE;
  16. border-radius: 5px;
  17. margin: 15px;
  18. background-color: #ffffff;
  19. }
  20. .layui-tab {
  21. padding: 15px;
  22. height: 100%;
  23. }
  24. .layui-form-item {
  25. width: 100%;
  26. }
  27. .layui-form-item .layui-inline {
  28. display: block;
  29. float: left;
  30. width: 145px;
  31. height: 38px;
  32. line-height: 38px;
  33. background: #FFFFFF;
  34. margin-right: 16px;
  35. }
  36. .layui-form-item .layui-input-inline {
  37. width: 145px;
  38. line-height: 38px;
  39. margin-bottom: 0;
  40. }
  41. .layui-form-item .layui-input-inline .layui-input {
  42. border: 1px solid #9DB6CF;
  43. border-radius: 5px;
  44. }
  45. .layui-form-select dl dd.layui-this {
  46. background-color: #249EFB;
  47. }
  48. .layui-form-item div.searchBox {
  49. width: 320px;
  50. background: #FFFFFF;
  51. border: 1px solid #B6CADE;
  52. border-radius: 24px;
  53. height: 38px;
  54. overflow: hidden;
  55. padding-left: 18px;
  56. position: relative;
  57. margin-bottom: 0px;
  58. float: right;
  59. }
  60. .searchBox .inputBox {
  61. width: 240px;
  62. float: left;
  63. height: 36px;
  64. line-height: 36px;
  65. border-width: 0;
  66. }
  67. .searchBtn {
  68. position: absolute;
  69. top: 0;
  70. right: 0;
  71. width: 51px;
  72. height: 38px;
  73. background-color: #fff;
  74. }
  75. .searchBtn img {
  76. position: absolute;
  77. width: 26px;
  78. top: 6px;
  79. left: 0;
  80. }
  81. .editBox,
  82. .deltBox {
  83. width: auto;
  84. height: auto;
  85. padding: 0;
  86. line-height: 0;
  87. border-width: 0;
  88. background-color: transparent;
  89. }
  90. .editBox {
  91. margin-right: 20px;
  92. }
  93. .deltBox {
  94. margin-left: 20px !important;
  95. }
  96. .editBox img,
  97. .deltBox img {
  98. display: block;
  99. width: 14px;
  100. }
  101. #edit-company-group {
  102. margin-top: 20px;
  103. }
  104. #edit-company-group .layui-form-label {
  105. width: 100px;
  106. }
  107. #edit-company-group .layui-form-item .layui-input-inline {
  108. width: 205px;
  109. }
  110. #company-brand {
  111. margin: 20px 10px;
  112. }
  113. .layui-table-view .layui-table {
  114. width: -webkit-fill-available;
  115. }
  116. #edit-company-brand {
  117. margin: 20px 10px;
  118. }
  119. #edit-company-brand .layui-form-label {
  120. width: 90px;
  121. }
  122. #add-company-shop .layui-form-label {
  123. width: 100px;
  124. }
  125. #add-company-shop .layui-input-inline {
  126. width: 230px;
  127. }
  128. #add-company-shop .layui-form-select dl {
  129. max-height: 120px;
  130. }
  131. #edit-company-shop .layui-form-label {
  132. width: 100px;
  133. }
  134. #edit-company-shop .layui-input-inline {
  135. width: 230px;
  136. }
  137. #edit-company-shop .layui-form-select dl {
  138. max-height: 120px;
  139. }
  140. </style>
  141. <body>
  142. <div class="layui-fluid">
  143. <div class="layui-card">
  144. <div class="layui-form layui-card-header layuiadmin-card-header-auto">
  145. <div class="layui-form-item clearfix relative">
  146. <div style="padding-bottom: 10px; float:left">
  147. <button class="layui-btn layuiadmin-btn-course" data-type="add">新建集团</button></button>
  148. </div>
  149. <div class="layui-inline pull-left clearfix searchBox">
  150. <input type="text" name="keyword" placeholder="请输入搜索名称" autocomplete="off"
  151. class="layui-input inputBox">
  152. <button class="layui-btn layuiadmin-btn-course searchBtn" lay-submit
  153. lay-filter="LAY-user-front-search">
  154. <img src="__LAYUI__/image/sous.png" alt="">
  155. </button>
  156. </div>
  157. </div>
  158. </div>
  159. <div class="layui-card-body">
  160. <table id="company-table" lay-filter="company-table"></table>
  161. <script type="text/html" id="table-bind">
  162. <a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="brand">品牌</a>
  163. <a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="shop">店面</a>
  164. </script>
  165. </div>
  166. </div>
  167. </div>
  168. <form class="layui-form" name="edit-company-group" lay-filter="edit-company-group" id="edit-company-group"
  169. style="display: none;">
  170. <div class="layui-form-item">
  171. <label class="layui-form-label">集团名</label>
  172. <div class="layui-input-inline">
  173. <input type="text" name="company_name" placeholder="请输入集团名" autocomplete="off" class="layui-input"
  174. style="max-width: 500px;">
  175. </div>
  176. </div>
  177. <div class="layui-form-item">
  178. <label class="layui-form-label">初始账号</label>
  179. <div class="layui-input-inline">
  180. <input type="text" name="phone" placeholder="请输入集团初始账号(手机号)" autocomplete="off" class="layui-input"
  181. style="max-width: 500px;">
  182. </div>
  183. </div>
  184. <div class="layui-form-item">
  185. <label class="layui-form-label">集团电话</label>
  186. <div class="layui-input-inline">
  187. <input type="text" name="tel" placeholder="请输入集团电话" autocomplete="off" class="layui-input"
  188. style="max-width: 500px;">
  189. </div>
  190. </div>
  191. <div class="layui-form-item">
  192. <label class="layui-form-label">到期时间</label>
  193. <div class="layui-input-inline">
  194. <input type="text" name="end_date" id="end_date" placeholder="集团到期时间" autocomplete="off"
  195. class="layui-input">
  196. </div>
  197. </div>
  198. <div class="layui-form-item">
  199. <label class="layui-form-label">小程序</label>
  200. <div class="layui-input-inline">
  201. <select name="mini">
  202. {volist name="miniprogram" id="mini"}
  203. <option value="{$mini.id}">{$mini.type}</option>
  204. {/volist}
  205. </select>
  206. </div>
  207. </div>
  208. <div class="layui-form-item">
  209. <label class="layui-form-label">店面数量</label>
  210. <div class="layui-input-inline">
  211. <input type="text" name="shop_number" placeholder="可开通店面数量" autocomplete="off" class="layui-input"
  212. style="max-width: 500px;">
  213. </div>
  214. </div>
  215. <div class="layui-form-item layui-hide">
  216. <input type="button" lay-submit lay-filter="edit-company-group-submit" id="submit" value="确认添加">
  217. </div>
  218. </form>
  219. <div id="company-brand" style="display: none;">
  220. <table id="company-brand-table" lay-filter="company-brand-list">
  221. <thead>
  222. <tr>
  223. <th lay-data="{field:'username'}">品牌名</th>
  224. <th lay-data="{field:'logo'}">品牌logo</th>
  225. <th lay-data="{field:'op', toolbar:'#company-brand-table-op'}">操作</th>
  226. </tr>
  227. </thead>
  228. <tbody>
  229. </tbody>
  230. </table>
  231. <script type="text/html" id="company-brand-table-op">
  232. <a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="editBrand">编辑</a>
  233. </script>
  234. </div>
  235. <div id="edit-company-brand" style="display: none;">
  236. <form class="layui-form" name="edit-company-brand" lay-filter="edit-company-brand"
  237. enctype="multipart/form-data">
  238. <div class="layui-form-item">
  239. <label class="layui-form-label">品牌名</label>
  240. <div class="layui-input-inline">
  241. <input type="text" name="brand_name" placeholder="请输入品牌名" autocomplete="off" class="layui-input"
  242. style="max-width: 500px;">
  243. </div>
  244. </div>
  245. <div class="layui-form-item">
  246. <label class="layui-form-label">LOGO</label>
  247. <div class="layui-input-inline" id="upload-drag">
  248. <div class="layui-upload-drag">
  249. <i class="layui-icon">&#xe681;</i>
  250. <p>上传LOGO</p>
  251. </div>
  252. </div>
  253. </div>
  254. <div class="layui-form-item layui-hide">
  255. <input type="button" lay-submit lay-filter="edit-company-brand-submit" id="submit" value="确认添加">
  256. </div>
  257. </form>
  258. </div>
  259. <div id="add-company-shop" style="display: none;">
  260. <form class="layui-form" id="add-company-shop-form" enctype="multipart/form-data" style="margin: 20px 10px;">
  261. <div class="layui-form-item">
  262. <label class="layui-form-label">店面名称</label>
  263. <div class="layui-input-inline">
  264. <input type="text" name="company_name" placeholder="请输入店面名称" autocomplete="off" class="layui-input"
  265. style="max-width: 500px;">
  266. </div>
  267. </div>
  268. <div class="layui-form-item">
  269. <label class="layui-form-label">店面电话</label>
  270. <div class="layui-input-inline">
  271. <input type="text" name="tel" placeholder="请输入店面电话" autocomplete="off" class="layui-input"
  272. style="max-width: 500px;">
  273. </div>
  274. </div>
  275. <div class="layui-form-item">
  276. <label class="layui-form-label">负责人姓名</label>
  277. <div class="layui-input-inline">
  278. <input type="text" name="leader_name" placeholder="请输入负责人姓名" autocomplete="off" class="layui-input"
  279. style="max-width: 500px;">
  280. </div>
  281. </div>
  282. <div class="layui-form-item">
  283. <label class="layui-form-label">初始账号</label>
  284. <div class="layui-input-inline">
  285. <input type="text" name="phone" id="phone" placeholder="请输入初始账号(手机号)" autocomplete="off"
  286. class="layui-input" style="max-width: 500px;">
  287. </div>
  288. </div>
  289. <div class="layui-form-item">
  290. <label class="layui-form-label">所属地域</label>
  291. <div class="layui-input-inline">
  292. <select name="province" id="add-province" lay-filter="province">
  293. <option value="">请选择省份</option>
  294. </select>
  295. <select name="city">
  296. <option value="">请选择城市</option>
  297. </select>
  298. </div>
  299. </div>
  300. <div class="layui-form-item">
  301. <label class="layui-form-label">店面品牌</label>
  302. <div class="layui-input-inline">
  303. <select name="company_brand" id="add-shop-branch">
  304. <option value="">请选择品牌</option>
  305. </select>
  306. </div>
  307. </div>
  308. <div class="layui-form-item">
  309. <label class="layui-form-label">到期时间</label>
  310. <div class="layui-input-inline">
  311. <input type="text" id="shop_end_dates" name="end_date" placeholder="店面到期时间" autocomplete="off" class="layui-input"
  312. style="max-width: 500px;">
  313. </div>
  314. </div>
  315. <div class="layui-form-item">
  316. <label class="layui-form-label">小程序</label>
  317. <div class="layui-input-inline">
  318. <select name="mini">
  319. {volist name="miniprogram" id="mini"}
  320. <option value="{$mini.id}">{$mini.type}</option>
  321. {/volist}
  322. </select>
  323. </div>
  324. </div>
  325. <div class="layui-form-item layui-hide">
  326. <input type="hidden" name="company_group" value="" />
  327. <input type="button" lay-submit lay-filter="add-shop-submit" id="submit" value="保存">
  328. </div>
  329. </form>
  330. </div>
  331. <div id="edit-company-shop" style="display: none;">
  332. <form class="layui-form" id="edit-company-shop-form" enctype="multipart/form-data" style="margin: 20px 10px;">
  333. <div class="layui-form-item">
  334. <label class="layui-form-label">店面名称</label>
  335. <div class="layui-input-inline">
  336. <input type="text" name="company_name" placeholder="请输入店面名称" autocomplete="off" class="layui-input"
  337. style="max-width: 500px;">
  338. </div>
  339. </div>
  340. <div class="layui-form-item">
  341. <label class="layui-form-label">店面电话</label>
  342. <div class="layui-input-inline">
  343. <input type="text" name="tel" placeholder="请输入店面电话" autocomplete="off" class="layui-input"
  344. style="max-width: 500px;">
  345. </div>
  346. </div>
  347. <div class="layui-form-item">
  348. <label class="layui-form-label">负责人姓名</label>
  349. <div class="layui-input-inline">
  350. <input type="text" name="leader_name" placeholder="请输入负责人姓名" autocomplete="off" class="layui-input"
  351. style="max-width: 500px;">
  352. </div>
  353. </div>
  354. <div class="layui-form-item">
  355. <label class="layui-form-label">所属地域</label>
  356. <div class="layui-input-inline">
  357. <select name="province" id="edit-province" lay-filter="province">
  358. <option value="">请选择省份</option>
  359. </select>
  360. <select name="city" id="city">
  361. <option value="">请选择城市</option>
  362. </select>
  363. </div>
  364. </div>
  365. <div class="layui-form-item">
  366. <label class="layui-form-label">店面品牌</label>
  367. <div class="layui-input-inline">
  368. <select name="company_brand" id="edit-shop-branch">
  369. <option value="">请选择品牌</option>
  370. </select>
  371. </div>
  372. </div>
  373. <div class="layui-form-item">
  374. <label class="layui-form-label">到期时间</label>
  375. <div class="layui-input-inline">
  376. <input type="text" id="shop_end_date" name="end_date" placeholder="店面到期时间" autocomplete="off" class="layui-input"
  377. style="max-width: 500px;">
  378. </div>
  379. </div>
  380. <div class="layui-form-item">
  381. <label class="layui-form-label">小程序</label>
  382. <div class="layui-input-inline">
  383. <select name="mini">
  384. {volist name="miniprogram" id="mini"}
  385. <option value="{$mini.id}">{$mini.type}</option>
  386. {/volist}
  387. </select>
  388. </div>
  389. </div>
  390. <div class="layui-form-item layui-hide">
  391. <input type="hidden" name="id" value="" />
  392. <input type="button" lay-submit lay-filter="edit-shop-submit" id="submit" value="保存">
  393. </div>
  394. </form>
  395. </div>
  396. </body>
  397. {/block} {block name="js"}
  398. <!-- 开关禁用需要关闭该集团下的所有账号 -->
  399. <!-- <script type="text/html" id="switchTpl">
  400. <input type="checkbox" name="status" value="{{d.id}}" lay-skin="switch" lay-text="开|关" lay-filter="switchStatus" {{ d.status== 1 ? 'checked' : '' }}>
  401. </script> -->
  402. <script src="/static/js/full-citys.js"></script>
  403. <script type="text/html" id="miniBind">
  404. {{# if(d.bind_mini==1){ }}
  405. <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="mini"><i class="layui-icon" title="已绑定小程序" style="color: #1e9fff;">&#xe672;</i></a>
  406. {{# }else{ }}
  407. <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="mini" title="未绑定小程序"><i class="layui-icon">&#xe672;</i></a>
  408. {{# } }}
  409. </script>
  410. <script type="text/html" id="editEndDate">
  411. <div class="layui-input-date">{{d.end_date}}</div>
  412. </script>
  413. <script type="text/html" id="loginTpl">
  414. <a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="login">查看</a>
  415. </script>
  416. <script>
  417. var provs = DC.getProvs();
  418. provs.forEach(element => {
  419. let option = document.createElement("option");
  420. option.setAttribute('value', element.id);
  421. option.innerHTML = element.name;
  422. document.getElementById('add-province').appendChild(option.cloneNode(true));
  423. document.getElementById('edit-province').appendChild(option);
  424. });
  425. var brand;
  426. layui.config({
  427. base: '__LAYUI__/',
  428. urlbase: '/adminall'
  429. }).extend({
  430. index: 'lib/index' //主入口模块
  431. }).use(['index', 'form', 'laydate', 'table', 'upload'], function () {
  432. var $ = layui.$,
  433. form = layui.form,
  434. laydate = layui.laydate,
  435. upload = layui.upload,
  436. table = layui.table,
  437. // 事件
  438. active = {
  439. // 添加集团
  440. add: function () {
  441. editCompanyGroup({
  442. title: '新建集团'
  443. });
  444. },
  445. // 品牌管理
  446. brandList(id) {
  447. let tbody = $('#company-brand').find('#company-brand-table').find('tbody');
  448. tbody.html('');
  449. $.get('{:url("company/brand")}?id=' + id, function (res) {
  450. if (res.code > 0) layer.msg(res.msg, {
  451. anim: 0
  452. , time: 2000
  453. });
  454. brand = res.data;
  455. res.data.forEach(element => {
  456. tbody.append("<tr><td>" + element.brand_name + "</td><td><img style='width:28px' src='" + element.logo + "'></td><td></td></tr>");
  457. });
  458. table.init('company-brand-list');
  459. });
  460. },
  461. brand(data) {
  462. this.brandList(data.id);
  463. let that = this;
  464. layer.open({
  465. type: 1,
  466. title: '品牌列表',
  467. content: $('#company-brand'),
  468. area: ['400px', '300px'],
  469. btn: ['添加品牌'],
  470. yes: function () {
  471. that.addBranch({
  472. title: '添加品牌',
  473. data: {
  474. company_group: data.id
  475. }
  476. });
  477. },
  478. id: 'layer-company-brand'
  479. })
  480. },
  481. addBranch(option) {
  482. let editCompanyBrandForm = $('#edit-company-brand').find('form');
  483. editCompanyBrandForm.append('<input type="hidden" name="company_group" id="company_group" value="' + option.data.company_group + '"/>');
  484. let data = option.data;
  485. layer.open({
  486. type: 1,
  487. title: option.title,
  488. content: $('#edit-company-brand'),
  489. area: ['400px', '350px'],
  490. btn: ['保存'],
  491. yes(index) {
  492. editCompanyBrandForm.find('#submit').click();
  493. },
  494. end() {
  495. editCompanyBrandForm[0].reset();
  496. $('#edit-company-brand').find('#company_group').remove();
  497. $('#edit-company-brand').find('#upload-drag').html('<div class="layui-upload-drag"><i class="layui-icon"></i><p>上传LOGO</p></div>');
  498. },
  499. id: 'layer-add-company-brand'
  500. })
  501. },
  502. editBrand(option) {
  503. let editCompanyBrandForm = $('#edit-company-brand').find('form');
  504. let data = option.data;
  505. editCompanyBrandForm.append('<input type="hidden" name="id" id="brand_id" value="' + data.id + '"/>');
  506. editCompanyBrandForm.append('<input type="hidden" name="company_group" id="company_group" value="' + data.company_group + '"/>');
  507. editCompanyBrandForm.find('input[name="brand_name"]').val(data.brand_name);
  508. editCompanyBrandForm.find('#upload-drag').html('<img src="'+data.logo+'" style="height: 100%;width:100%;">');
  509. layer.open({
  510. type: 1,
  511. title: option.title,
  512. content: $('#edit-company-brand'),
  513. area: ['400px', '350px'],
  514. btn: ['保存'],
  515. yes(index) {
  516. editCompanyBrandForm.find('#submit').click();
  517. },
  518. end() {
  519. editCompanyBrandForm[0].reset();
  520. $('#edit-company-brand').find('#brand_id').remove();
  521. $('#edit-company-brand').find('#company_group').remove();
  522. $('#edit-company-brand').find('#upload-drag').html('<div class="layui-upload-drag"><i class="layui-icon"></i><p>上传LOGO</p></div>');
  523. },
  524. id: 'layer-add-company-brand'
  525. })
  526. },
  527. // 店面管理
  528. companyBrandList(id, domid, def = 0) {
  529. $.get('{:url("company/brand")}?id=' + id, function (res) {
  530. if (res.code > 0) layer.msg(res.msg, {
  531. anim: 0
  532. , time: 2000
  533. });
  534. else {
  535. let selectDom = $(domid);
  536. selectDom.html('<option value="">请选择品牌</option>');
  537. res.data.forEach(element => {
  538. if (element.id == def)
  539. selectDom.append("<option value='" + element.id + "' selected>" + element.brand_name + "</option>");
  540. else
  541. selectDom.append("<option value='" + element.id + "'>" + element.brand_name + "</option>");
  542. });
  543. form.render('select');
  544. }
  545. });
  546. },
  547. shop(data) {
  548. let that = this;
  549. layer.open({
  550. type: 2,
  551. title: '店面列表',
  552. content: '{:url("company/shop")}?id=' + data.id,
  553. area: ['1200px', '500px'],
  554. btn: ['添加店铺'],
  555. yes: function () {
  556. // that.companyBrandList(data.id, '#add-shop-branch');
  557. that.addShop({
  558. title: '添加店铺',
  559. data: {
  560. company_group: data.id
  561. }
  562. });
  563. },
  564. id: 'layer-company-shop'
  565. });
  566. },
  567. login(data) {
  568. let that = this;
  569. layer.open({
  570. type: 2,
  571. title: '登录记录',
  572. content: '{:url("company/loginlog")}?id=' + data.id,
  573. area: ['1200px', '700px'],
  574. // btn: ['添加店铺'],
  575. yes: function () {
  576. // that.companyBrandList(data.id, '#add-shop-branch');
  577. // that.addShop({
  578. // title: '添加店铺',
  579. // data: {
  580. // company_group: data.id
  581. // }
  582. // });
  583. },
  584. id: 'layer-company-shop'
  585. });
  586. },
  587. addShop(option) {
  588. // let editCompanyShopForm = $('#add-company-shop').find('form');
  589. let data = option.data;
  590. // editCompanyShopForm.find('input[name="company_group"]').val(data.company_group);
  591. layer.open({
  592. id: 'add-company-shop-layer',
  593. type: 2,
  594. title: option.title,
  595. content: layui.setter.urlbase + "/company/new_add_shop?company_id=" + data.company_group,
  596. area: ['400px', '580px'],
  597. // btn: ['保存'],
  598. yes(index, layero) {
  599. // var submit = layero.find('iframe').contents().find(
  600. // "#add-shop-submit");
  601. // submit.click();
  602. },
  603. end() {
  604. // editCompanyShopForm[0].reset();
  605. // editCompanyShopForm.find('#company_group').remove();
  606. let shopListIndex = $('#layer-company-shop').closest('.layui-layer').attr('times');
  607. let iframeSrc = $('#layer-company-shop').find('iframe').attr('src');
  608. layer.iframeSrc(shopListIndex, iframeSrc);
  609. },
  610. id: 'layer-company-add-shop'
  611. })
  612. },
  613. editShop(option) {
  614. let data = option.data;
  615. // this.companyBrandList(data.company_group, '#edit-shop-branch', data.company_brand);
  616. // let editCompanyShopForm = $('#edit-company-shop').find('form');
  617. // editCompanyShopForm.find('input[name="id"]').val(data.id);
  618. // editCompanyShopForm.find('input[name="company_name"]').val(data.company_name);
  619. // editCompanyShopForm.find('input[name="leader_name"]').val(data.leader_name);
  620. // editCompanyShopForm.find('input[name="tel"]').val(data.tel);
  621. // editCompanyShopForm.find('input[name="end_date"]').val(data.end_date);
  622. // let provinceObj = DC.find(data.city);
  623. // editCompanyShopForm.find('select[name="province"]').val(provinceObj.pid);
  624. // var citys = DC.getCitys(provinceObj.pid);
  625. // let city = editCompanyShopForm.find('select[name="city"]');
  626. // city.html('');
  627. // city.append('<option value="">请选择城市</option>');
  628. // citys.forEach(elem => {
  629. // if (elem.name == data.city)
  630. // city.append('<option id="' + elem.name + '" selected>' + elem.name + '</option>');
  631. // else
  632. // city.append('<option id="' + elem.name + '">' + elem.name + '</option>');
  633. // });
  634. layer.open({
  635. id: 'edit-company-shop-layer',
  636. type: 2,
  637. title: option.title,
  638. content: layui.setter.urlbase + "/company/new_edit_shop?company_id=" + data.company_group + '&id=' + data.id,
  639. area: ['400px', '580px'],
  640. // btn: ['保存'],
  641. yes(index, layero) {
  642. // editCompanyShopForm.find('#submit').click();
  643. // var submit = layero.find('iframe').contents().find(
  644. // "#edit-shop-submit");
  645. // submit.click();
  646. },
  647. end() {
  648. // editCompanyShopForm[0].reset();
  649. let shopListIndex = $('#layer-company-shop').closest('.layui-layer').attr('times');
  650. let iframeSrc = $('#layer-company-shop').find('iframe').attr('src');
  651. layer.iframeSrc(shopListIndex, iframeSrc);
  652. },
  653. id: 'layer-company-edit-shop'
  654. })
  655. },
  656. };
  657. // 图片上传初始化
  658. upload.render({
  659. elem: '#upload-drag',
  660. accept: 'image',
  661. exts: 'png|jpg|jpeg',
  662. auto: false,
  663. field: 'logo',
  664. size: 1 * 1024,
  665. choose: function (obj) {
  666. obj.preview(function (index, file, result) {
  667. $('#upload-drag').html('<img src="' + result + '" style="height: 100%;width:100%;">');
  668. });
  669. }
  670. });
  671. table.init('company-brand-list');
  672. form.on('select(province)', function (data) {
  673. let = prov_id = data.value;
  674. var citys = DC.getCitys(prov_id);
  675. let city = $(data.elem).siblings('select');
  676. city.html('');
  677. city.append('<option value="">请选择城市</option>');
  678. citys.forEach(elem => {
  679. city.append('<option id="' + elem.name + '">' + elem.name + '</option>');
  680. });
  681. form.render('select');
  682. });
  683. // 页面按钮
  684. $('.layui-btn.layuiadmin-btn-course').on('click', function () {
  685. var type = $(this).data('type');
  686. active[type] ? active[type].call(this) : '';
  687. });
  688. /* 集团列表 */
  689. table.render({
  690. elem: '#company-table',
  691. autoSort: false,
  692. url: layui.setter.urlbase + '/company/group.html',
  693. cols: [
  694. [{
  695. type: 'numbers',
  696. field: 'id',
  697. title: '序号',
  698. align: 'center',
  699. }, {
  700. field: 'company_name',
  701. title: '集团名称',
  702. // width: '25%',
  703. edit: 'text',
  704. style: 'color: skyblue;cursor: pointer;',
  705. align: 'center',
  706. }, {
  707. field: 'tel',
  708. title: '集团电话',
  709. align: 'center',
  710. },{
  711. field: 'type',
  712. title: '小程序',
  713. align: 'center',
  714. }, {
  715. field: 'start_date',
  716. title: '开通时间',
  717. // minWidth: 100,
  718. align: 'center',
  719. }, {
  720. field: 'end_date',
  721. title: '到期时间',
  722. // minWidth: 100,
  723. // templet: '#editEndDate',
  724. // style: 'color: skyblue;cursor: pointer;',
  725. align: 'center',
  726. // }, {
  727. // field: 'status',
  728. // title: '禁用',
  729. // width: 100,
  730. // templet: '#switchTpl'
  731. // }, {
  732. // 小程序的设置,修改影响面较大
  733. // title: '设置集团配置',
  734. // width: 150,
  735. // align: 'center',
  736. // templet: '#miniBind'
  737. }, {
  738. field: 'shop_number',
  739. title: '开通店面数量',
  740. width: 150,
  741. align: 'center',
  742. edit: 'text',
  743. style: 'color: skyblue;cursor: pointer;',
  744. }, {
  745. field: 'root_id',
  746. title: '登录记录',
  747. width: 100,
  748. templet: '#loginTpl',
  749. align: 'center',
  750. }, {
  751. title: '操作',
  752. // width: 150,
  753. align: 'center',
  754. toolbar: '#table-bind'
  755. }]
  756. ],
  757. id: 'company-table',
  758. done: function (res, curr, count) {
  759. //日期控件
  760. $(".layui-input-date").each(function (i) {
  761. layui.laydate.render({
  762. elem: this,
  763. done: function (value, date) {
  764. extendedExpiration(res.data[i]['id'], value);
  765. }
  766. });
  767. });
  768. },
  769. page: true,
  770. limit: 30,
  771. height: 'full-220',
  772. text: '对不起,加载出现异常!'
  773. });
  774. // 检索
  775. form.on('submit(LAY-user-front-search)', function (data) {
  776. var field = data.field;
  777. //执行重载
  778. table.reload('company-table', {
  779. where: field
  780. , page: {
  781. curr: 1
  782. }
  783. });
  784. });
  785. table.on('tool(company-table)', function (obj) {
  786. var data = obj.data;
  787. type = obj.event;
  788. active[type] ? active[type](data) : '';
  789. });
  790. form.on('switch(switchStatus)', function (obj) {
  791. var id = obj.value;
  792. $.ajax({
  793. type: "post",
  794. url: '{:url("adminall/company/auth")}',
  795. data: { id: id },
  796. success: function (res) {
  797. layer.msg(res.msg);
  798. }
  799. });
  800. });
  801. // 延长集团账号的到期时间
  802. function extendedExpiration(id, value) {
  803. $.post('{:url("adminall/company/endDate")}', { id: id, value: value }, function (res) {
  804. if (res.code === 0) {
  805. layer.msg(res.msg, { anim: 0 });
  806. } else {
  807. layer.msg(res.msg, { anim: 6 });
  808. }
  809. });
  810. }
  811. table.on('edit(company-table)', function (obj) {
  812. var field = obj.field;
  813. var id = obj.data.id;
  814. var value = obj.value;
  815. if (field == 'shop_number') {
  816. var len = /^[0-9]\d*$/;
  817. if(!len.test(value)){
  818. layer.msg('请输入纯数字', { anim: 6 });
  819. return false;
  820. }
  821. }
  822. $.post("{:url('company/setInfo')}", { id: id, set_value: value, field: field}, function (res) {
  823. if (res.code === 0) {
  824. layer.msg(res.msg, { anim: 0 });
  825. } else {
  826. layer.msg(res.msg, { anim: 6 });
  827. }
  828. })
  829. });
  830. // 表单页面
  831. function editCompanyGroup(option) {
  832. let oldHtml = $('#edit-company-group').html();
  833. if (option.hasOwnProperty('data')) {
  834. let data = option.data;
  835. // 设置默认值
  836. $('#edit-company-group').find("input[name='company_name']").val(data.company_name)
  837. $('#edit-company-group').find("input[name='phone']").val(data.phone)
  838. laydate.render({
  839. elem: '#end_date'
  840. , value: data.end_date
  841. });
  842. $('#edit-company-group').append('<input type="hidden" name="id" id="id" value="' + option.data.id + '"/>');
  843. } else {
  844. laydate.render({
  845. elem: '#end_date'
  846. });
  847. }
  848. layer.open({
  849. title: option.title,
  850. type: 1,
  851. content: $('#edit-company-group'),
  852. area: ['340px', '480px'],
  853. btn: ['确定'],
  854. yes: function () {
  855. //点击确认触发 iframe 内容中的按钮提交
  856. $('#edit-company-group').find('#submit').click();
  857. },
  858. end() {
  859. $('#edit-company-group')[0].reset();
  860. $('#edit-company-group').find('#id').remove();
  861. },
  862. id: 'layer-company-edit-group'
  863. });
  864. }
  865. // 表单提交
  866. form.on('submit(edit-company-group-submit)', function (obj) {
  867. let data = obj.field;
  868. let url = '{:url("company/addSave")}';
  869. if (data.id) url = '{:url("company/editSave")}';
  870. let load = layer.load(0, { shade: 0.3 });
  871. let index = $('#layer-company-edit-group').closest('.layui-layer').attr('times');
  872. $.post(url, data, function (res) {
  873. if (res.code === 0) {
  874. layer.msg(res.msg, {
  875. anim: 0
  876. , time: 2000
  877. }, function () {
  878. table.reload('company-table')
  879. layer.close(index);
  880. layer.close(load);
  881. });
  882. } else {
  883. layer.msg(res.msg, {
  884. anim: 6
  885. , time: 2000
  886. });
  887. layer.close(load);
  888. }
  889. });
  890. });
  891. // 添加品牌表单提交
  892. form.on('submit(edit-company-brand-submit)', function (obj) {
  893. let formData = new FormData(obj.form);
  894. let url = '{:url("company/addBrand")}';
  895. if (obj.field.id) url = '{:url("company/editBrand")}';
  896. let load = layer.load(0, { shade: 0.3 });
  897. let index = $('#layer-add-company-brand').closest('.layui-layer').attr('times');
  898. $.ajax({
  899. url: url,
  900. type: 'post',
  901. data: formData,
  902. dataType: 'json',
  903. processData: false,
  904. contentType: false,
  905. success: function (res) {
  906. if (res.code === 0) {
  907. layer.msg(res.msg, {
  908. anim: 0
  909. , time: 2000
  910. }, function () {
  911. active.brandList(obj.field.company_group);
  912. layer.close(index);
  913. layer.close(load);
  914. });
  915. } else {
  916. layer.msg(res.msg, {
  917. anim: 6
  918. , time: 2000
  919. });
  920. layer.close(load);
  921. }
  922. }
  923. });
  924. });
  925. // 添加店铺 add-shop-submit
  926. // form.on('submit(add-shop-submit)', function (obj) {
  927. // let index = $('#layer-company-add-shop').closest('.layui-layer').attr('times');
  928. // let shopListIndex = $('#layer-company-shop').closest('.layui-layer').attr('times');
  929. // let iframeSrc = $('#layer-company-shop').find('iframe').attr('src');
  930. // let load = layer.load(0, { shade: 0.3 });
  931. // let url = '{:url("company/addShop")}';
  932. // $.post(url, obj.field, function (res) {
  933. // if (res.code === 0) {
  934. // layer.msg(res.msg, {
  935. // anim: 0
  936. // , time: 2000
  937. // }, function () {
  938. // layer.close(index);
  939. // layer.close(load);
  940. // layer.iframeSrc(shopListIndex, iframeSrc);
  941. // });
  942. // } else {
  943. // layer.msg(res.msg, {
  944. // anim: 6
  945. // , time: 2000
  946. // });
  947. // layer.close(load);
  948. // }
  949. // });
  950. // return false;
  951. // });
  952. // form.on('submit(edit-shop-submit)', function (obj) {
  953. // let index = $('#layer-company-edit-shop').closest('.layui-layer').attr('times');
  954. // let shopListIndex = $('#layer-company-shop').closest('.layui-layer').attr('times');
  955. // let iframeSrc = $('#layer-company-shop').find('iframe').attr('src');
  956. // let load = layer.load(0, { shade: 0.3 });
  957. // let url = '{:url("company/editShop")}';
  958. // $.post(url, obj.field, function (res) {
  959. // if (res.code === 0) {
  960. // layer.msg(res.msg, {
  961. // anim: 0
  962. // , time: 2000
  963. // }, function () {
  964. // layer.close(index);
  965. // layer.close(load);
  966. // layer.iframeSrc(shopListIndex, iframeSrc);
  967. // });
  968. // } else {
  969. // layer.msg(res.msg, {
  970. // anim: 6
  971. // , time: 2000
  972. // });
  973. // layer.close(load);
  974. // }
  975. // });
  976. // return false;
  977. // });
  978. window.editCompanyShop = function (data) {
  979. active.editShop({
  980. title: data.company_name + '店面编辑',
  981. data: data
  982. });
  983. }
  984. window.wechatSetting = function (option) {
  985. layer.open({
  986. type: 2,
  987. title: '企微设置',
  988. content: "{:url('company/wework')}?company_id=" + option.id,
  989. resize: false,
  990. area: ['80%', '80%'],
  991. // btn: ['确定', '取消'],
  992. yes: function (index, layero) {
  993. //点击确认触发 iframe 内容中的按钮提交
  994. // var submit = layero.find('iframe').contents().find("#talkskill-submit");
  995. // submit.click();
  996. }
  997. });
  998. }
  999. window.wechatEditSetting = function (option) {
  1000. layer.open({
  1001. type: 2,
  1002. title: '编辑企微设置',
  1003. content: "{:url('company/wework')}?company_id=" + option.company_id + '&id=' + option.id,
  1004. resize: false,
  1005. resize: false,
  1006. area: ['80%', '80%'],
  1007. // btn: ['确定', '取消'],
  1008. yes: function (index, layero) {
  1009. //点击确认触发 iframe 内容中的按钮提交
  1010. // var submit = layero.find('iframe').contents().find("#talkskill-submit");
  1011. // submit.click();
  1012. // #layui-layer2
  1013. },
  1014. end: function () {
  1015. window.reloadFunc();
  1016. }
  1017. });
  1018. }
  1019. window.wechatlist = function (option) {
  1020. layer.open({
  1021. type: 2,
  1022. title: '企微列表',
  1023. content: "{:url('company/wework_index')}?company_id=" + option.id,
  1024. resize: false,
  1025. area: ['80%', '80%'],
  1026. // btn: ['添加设置', '复制设置'],
  1027. success: function (index, layero) {
  1028. //点击确认触发 iframe 内容中的按钮提交
  1029. // var submit = layero.find('iframe').contents().find("#talkskill-submit");
  1030. // submit.click();
  1031. },
  1032. });
  1033. }
  1034. table.on('tool(company-brand-list)', function (obj) {
  1035. console.log(obj);
  1036. let index = $(obj.tr).data('index');
  1037. let event = obj.event;
  1038. if (event == 'editBrand' && brand[index] && active[event]) {
  1039. active[event]({
  1040. title: '编辑品牌',
  1041. data: brand[index]
  1042. })
  1043. }
  1044. });
  1045. laydate.render({
  1046. elem: '#shop_end_date'
  1047. , type: 'date'
  1048. // , range: true
  1049. // , format: 'H:mm'
  1050. });
  1051. laydate.render({
  1052. elem: '#shop_end_dates'
  1053. , type: 'date'
  1054. // , range: true
  1055. // , format: 'H:mm'
  1056. });
  1057. });
  1058. </script>
  1059. {/block}