1
0

set.html 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500
  1. {extend name="public/layout"/} {block name="title"}拼团设置{/block} {block name="body"}
  2. <link rel="stylesheet" href="__STATIC__/css/csspc.css">
  3. <link rel="stylesheet" href="__STATIC__/css/font.css">
  4. <style>
  5. *{box-sizing: initial;}
  6. .font16{font-size: 16px !important;}
  7. html{min-width:1100px;margin:0 auto;width:100%;height: 100%;}
  8. body{background: #EEEEEE;height: 100%;width:100%;color:#333;}
  9. .layui-fluid {
  10. display: block;
  11. box-shadow: 0 0 4px 0 #B6CADE;
  12. border-radius: 5px;
  13. margin: 15px;
  14. background-color: #ffffff;
  15. }
  16. .layui-card{background: #fff;}
  17. .rst_box_top{background: #fff;padding:0px 0px 1px;border-radius: 8px;}
  18. .mdt20{margin-top:20px;}
  19. .layui-tab-brief>.layui-tab-more li.layui-this:after, .layui-tab-brief>.layui-tab-title .layui-this:after{border-bottom:4px solid #28A1FF !important;}
  20. .layui-card .layui-tab-brief .layui-tab-title li.layui-this {color: #28A1FF;}
  21. .Impact{font-family: Impact, Haettenschweiler, 'Arial Narrow Bold', sans-serif;}
  22. .huise333{color:#333;}
  23. .layui-card .layui-tab-brief .layui-tab-content{padding: 0;}
  24. .rst_box_b_left{background: #fff;border-radius: 8px;overflow: hidden;}
  25. .rst_box_b_left_X{width:4px;height:18px;background: #28A1FF;border-radius: 2px;overflow: hidden;}
  26. .layui-form-item{margin-bottom:0;clear:initial;}
  27. input{font-size: 14px !important;}
  28. .mdl01_5{margin-left:1.5%;}
  29. .layui-form-label{width:auto;padding:5px 2px;}
  30. .huise999{color:#999 !important;}
  31. .lanse{color:#28A1FF;}
  32. .huise999{color:#999;}
  33. .rst_box_b_right_top{background: #fff;padding: 25px;overflow: hidden;border-radius: 8px;}
  34. @media only screen and (max-width: 1750px) {
  35. .rst_box_b_left_input{width:23.5%;}
  36. }
  37. .baise{color: #fff;}
  38. .height28{height: 28px;}
  39. /*.after_x:after{content: '';width: 90%;border-top:1px dashed #87B9E0;position: absolute;top:14px;right:0;letter-spacing: 2px;opacity: .5;}*/
  40. .width210{width:210px;}
  41. .width90{width:90px;height: 40px;}
  42. .layui-form-label{padding: 0;}
  43. .sjsselect{width:100%;height:40px;}
  44. .label_input{text-align: right; font-size: 16px;width:210px;line-height: 46px;float:left;}
  45. .layui-input:focus,.layui-textarea:focus{border:1px solid #CCCCCC !important;}
  46. .layui-input-block input,.layui-upload-drag,.sjsselect,.layui-input:hover, .layui-textarea:hover{border:1px solid #CCCCCC !important;}
  47. .addImages {display: inline-block;width: 136px !important;height:136px !important;-webkit-box-sizing: border-box;-moz-box-sizing: border-box;box-sizing: border-box;border: 1px dashed darkgray;background: #f8f8f8;position: relative;overflow: hidden;}
  48. .addImages .upload_ico{font-size: 50px;color:#28A1FF;margin-top: 25px;display: inline-block;}
  49. .imageDiv div {width: 100%;height: 100%;position: absolute;top: 0px;background-color: #e6e6e600;}
  50. .imageDiv div:hover {background-color: #e6e6e680;}
  51. .imageDiv div:hover i {display: block;cursor: pointer;}
  52. .text-detail{text-align: center;}
  53. .imageDiv div i{display: none; font-size: 31px;line-height: 136px;text-align: center;}
  54. .radio_input{width:22px;height: 22px;vertical-align: -28%;}
  55. .radio_inputs{width:22px;height: 22px;vertical-align: -28%;}
  56. .layui-input, .layui-select{height: 40px;}
  57. .rst_box_b{background: #fff;border-radius: 8px;padding: 25px 0;}
  58. .rst_k{width:17px;height: 17px;vertical-align: -5%;}
  59. .rst_k01{background: #28A1FF;}
  60. .rst_k02{background: #ECECEC;}
  61. .rst_box_b_left_input{width:290px;height:38px;border:1px solid #ECECEC;}
  62. .rst_box_b_left_input select{display: block;height:46px;width: 100%;box-sizing: border-box;}
  63. .keywords{width:100%;height: 100%;}
  64. .searchIco{right:5%;font-size:24px;color:#28A1FF;top:8%; text-align: center;line-height: 38px;cursor: pointer;}
  65. .layui-progress-big, .layui-progress-big .layui-progress-bar{height: 12px;line-height: 12px;}
  66. .jctext{bottom:-15px;right:0;color:#28A1FF;}
  67. .layui-table-cell{height: 36px;line-height: 36px;}
  68. .zjctext{top:0;right:-20px;color:#999;}
  69. .h40{height: 40px;}
  70. .jl_input{display: none;}
  71. .layui-tab-title .layui-this:after{width: 60%;left:20%;}
  72. </style>
  73. <body>
  74. <div class="layui-fluid">
  75. <div class="layui-card">
  76. <div class="layui-tab layui-tab-brief">
  77. <ul class="layui-tab-title rst_box_top">
  78. <li class="layui-this font14">进行中的团</li>
  79. {auth:check name="spellgroup/addSave"}
  80. <li class="font14 layui-tjbtn">拼团设置</li>
  81. {/auth:check}
  82. </ul>
  83. <div class="layui-tab-content mdt20">
  84. <div class="layui-tab-item layui-show">
  85. <div class="rst_box_b mdt20">
  86. <div class="width96_ wauto">
  87. <div class="layui-form">
  88. <div class="width100_">
  89. <div class="wleft lh46">
  90. <p class="rst_k01 rst_k ids"></p>
  91. <p class="font16 ids mdl03 huise999" >拼团人数</p>
  92. <p class="rst_k02 mdl20 rst_k ids"></p>
  93. <p class="font16 ids mdl03 huise999">成团人数</p>
  94. </div>
  95. <div class="wright width70_">
  96. <div class="layui-form-item wright mdl01_5 wpsr rst_box_b_left_input">
  97. <div class="layui-input-block mdl0 pdl12 height100_">
  98. <input style="border:0 !important;padding-left: 0;" type="text" name="keyword" required placeholder="请输入关键字" autocomplete="off" class="layui-input keywords" id="keyword">
  99. </div>
  100. <i class="fa fa-search searchIco wpsa ds" aria-hidden="true" lay-submit lay-filter="LAY-user-front-search"></i>
  101. </div>
  102. <div class="layui-form-item" style="width: 200px;float: right;">
  103. <div class="layui-input-block mdl0">
  104. <select name="team_num" class="pdl12" id='designer_id'>
  105. <option value="">请选择团队类型</option>
  106. <option value="2">2人团</option>
  107. <option value="3">3人团</option>
  108. <option value="4">4人团</option>
  109. <option value="5">5人团</option>
  110. </select>
  111. </div>
  112. </div>
  113. </div>
  114. </div>
  115. <div class="clear"></div>
  116. </div>
  117. <!--2-->
  118. <div class="mdt20">
  119. <table id="spellgroup" lay-filter="spellgroup"></table>
  120. </div>
  121. <!--2-->
  122. </div>
  123. </div>
  124. </div>
  125. <div class="layui-tab-item" style="height:90vh;">
  126. <div class="rst_box_b_left width100_ pdtb25">
  127. <div class="width96_ wauto">
  128. <div class="woverflow lh28 wpsr after_x">
  129. <p class="rst_box_b_left_X mdt06 wleft"></p>
  130. <p class="wleft font18 lanse textb mdl10">基础设置:</p>
  131. </div>
  132. <div class="mdt30">
  133. <form action="">
  134. <div class="layui-form-item woverflow">
  135. <label class="layui-form-label label_input"><i style="color:red;">*</i> 客户拼团拉人时长:</label>
  136. <div class="layui-input-block wleft mdl20">
  137. <input type="number" name="hour" required lay-verify="required" value="{$data.hour}" autocomplete="off" min="1" max="9999" class="layui-input wleft width90">
  138. <p class="wleft mdl10 lh46 font20 huise333">小时</p>
  139. </div>
  140. </div>
  141. <div class="layui-form-item mdt30 woverflow">
  142. <label class="layui-form-label label_input"><i style="color:red;">*</i> 拼团上限:</label>
  143. <div class="layui-input-block wleft mdl20" style="width:290px;">
  144. <select name="number" class="sjsselect">
  145. <option value="2" {eq name="$data.number" value="2"}selected{/eq}>2人</option>
  146. <option value="3" {eq name="$data.number" value="3"}selected{/eq}>3人</option>
  147. <option value="4" {eq name="$data.number" value="4"}selected{/eq}>4人</option>
  148. <option value="5" {eq name="$data.number" value="5"}selected{/eq}>5人</option>
  149. </select>
  150. </div>
  151. </div>
  152. <div class="layui-form-item woverflow mdt30">
  153. <label for="title" class="layui-form-label label_input"><i style="color:red;">*</i> 小程序卡片图设置:</label>
  154. <div class="layui-input-block mdl20 wleft">
  155. <div class="layui-input-inline addImages" id="anlicoverimg">
  156. {if condition="$data.cover neq ''"}
  157. <img src="{:$data['cover']}?x-oss-process=image/resize,l_125" class="layui-upload-img" width="100%" height="100%">
  158. {else /}
  159. <div class="text-detail" style="width: 100%;">
  160. <i class="layui-icon upload_ico">&#xe681;</i>
  161. {if condition="$data.cover eq ''"}
  162. <p>上传封面</p>
  163. {else /}
  164. <p>修改封面</p>
  165. {/if}
  166. </div>
  167. {/if}
  168. </div>
  169. </div>
  170. <p class="wleft wpsr width15_" style="color:red;height: 136px;">
  171. <span class="wpsa font14 bottom0 left0">注:不支持拖拽文件</span>
  172. </p>
  173. </div>
  174. <div class="layui-form-item">
  175. <label for="title" class="layui-form-label label_input"></label>
  176. <div style="margin-left: 220px;margin-top: 10px;"><i style="color: red;margin-right: 5px;">*</i>建议上传封面图宽高比例5:3,图片大小不超过1M</div>
  177. </div>
  178. <div class="layui-form-item woverflow mdt30">
  179. <label class="layui-form-label label_input"><i style="color:red;">*</i> 小程序分享图:</label>
  180. <div class="layui-input-block mdl20 width70_ wleft">
  181. <textarea name="content" id="content" rows="10" autocomplete="off" class="width100_ pdtb15" style="width:100%;height: 500px;">{$data.content}</textarea>
  182. </div>
  183. </div>
  184. <!--2-->
  185. <div class="woverflow lh28 wpsr mdt50">
  186. <p class="rst_box_b_left_X mdt06 wleft"></p>
  187. <p class="wleft font18 lanse textb mdl10">奖励设置:</p>
  188. </div>
  189. <div class="layui-form-item woverflow mdt20">
  190. <label class="layui-form-label label_input"><i style="color:red;">*</i> 成团后团长获得:</label>
  191. <div class="layui-input-block lh45 width50_ wleft mdl20">
  192. <label for="1">
  193. <input type="radio" id="1" class="radio_input" checked name="heads_reward_type" value="1" title="减少工程尾款" {eq name="$data.heads_reward_type" value="1"}checked=""{/eq}> 减少工程尾款
  194. </label>
  195. <label for="2" class="mdl20">
  196. <input type="radio" id="2" class="radio_input" name="heads_reward_type" value="2" title="自定义奖励" {eq name="$data.heads_reward_type" value="2"}checked=""{/eq}> 自定义奖励
  197. </label>
  198. <input type="text" class="ids width40_ jl_input mdl20 h40" name="heads_reward_cont2" value="{$data.heads_reward_cont}" placeholder="请输入奖励内容" />
  199. <div class="mdt15 jl_input2">
  200. <p class="ids font16 huise999">每位成员均可为团长砍掉</p>
  201. <input type="number" name="heads_reward_cont1" id="" value="{$data.heads_reward_cont|default='1500'}" class="layui-input width90 ids"/>
  202. <p class="ids font16 huise999">元工程款</p>
  203. </div>
  204. </div>
  205. </div>
  206. <div class="layui-form-item woverflow mdt30">
  207. <label class="layui-form-label label_input"><i style="color:red;">*</i> 成团后队员获得:</label>
  208. <div class="layui-input-block width30_ wleft mdl20">
  209. <input type="text" name="team_member_cont" required lay-verify="required" value="{$data.team_member_cont}" autocomplete="off" class="layui-input wleft">
  210. </div>
  211. </div>
  212. <div class="layui-form-item woverflow mdt30">
  213. <label class="layui-form-label label_input"><i style="color:red;">*</i> 拼团成团规则:</label>
  214. <div class="layui-input-block lh45 wleft mdl20">
  215. <label for="gz1">
  216. <input type="radio" id="gz1" class="radio_inputs" name="team_ok_type" value="队员入队后" title="队员入队后" {eq name="$data.team_ok_type" value="队员入队后"}checked="true"{/eq}> 队员入队后
  217. </label>
  218. <label for="gz2" class="mdl20">
  219. <input type="radio" id="gz2" class="radio_inputs" name="team_ok_type" value="队员进店后" title="队员进店后" {eq name="$data.team_ok_type" value="队员进店后"}checked="true"{/eq}> 队员进店后
  220. </label>
  221. <label for="gz3" class="mdl20">
  222. <input type="radio" id="gz3" class="radio_inputs" name="team_ok_type" value="队员交定后" title="队员交定后" {eq name="$data.team_ok_type" value="队员交定后"}checked="true"{/eq}> 队员交定后
  223. </label>
  224. <label for="gz4" class="mdl20">
  225. <input type="radio" id="gz4" class="radio_inputs" name="team_ok_type" value="队员签单后" title="队员签合同后" {eq name="$data.team_ok_type" value="队员签单后"}checked="true"{/eq}> 队员签合同后
  226. </label>
  227. </div>
  228. </div>
  229. <div class="mdt80 mdl80">
  230. <button type="button" class="layui-btn layui-btn-normal layuiSubmit" lay-submit lay-filter="spellgroup-submit" id="spellgroup-submit">保存</button>
  231. <button type="button" class="layui-btn">取消</button>
  232. </div>
  233. </form>
  234. </div>
  235. </div>
  236. </div>
  237. </div>
  238. </div>
  239. </div>
  240. </div>
  241. </div>
  242. </body>
  243. {/block} {block name="js"}
  244. <script type="text/html" id="table-user-bind">
  245. <a class="layui-btn layui-btn-normal layui-btn-xs pdlr20" lay-event="toview"><i class="layui-icon layui-icon-toview"></i>查看</a>
  246. {auth:check name="spellgroup/toview"}
  247. <a class="layui-btn layui-btn-normal layui-btn-xs pdlr20" lay-event="toview"><i class="layui-icon layui-icon-toview"></i>查看</a>
  248. {/auth:check}
  249. </script>
  250. <script type="text/html" id="teamname">
  251. {{# if(d.user){ }}
  252. <span>{{d.user.nickname}}的团队</span>
  253. {{# }else{ }}
  254. <span style="color: #cccccc;">无</span>
  255. {{# } }}
  256. </script>
  257. <script type="text/html" id="empname">
  258. {{# if(d.employee){ }}
  259. <span>{{d.employee.name}}</span>
  260. {{# }else{ }}
  261. <span style="color: #cccccc;">无</span>
  262. {{# } }}
  263. </script>
  264. <script type="text/html" id="teamtype">
  265. {{# if(d.number){ }}
  266. <span>{{d.number}}人团</span>
  267. {{# }else{ }}
  268. <span style="color: #cccccc;">无</span>
  269. {{# } }}
  270. </script>
  271. <!-- 配置文件 -->
  272. <script type="text/javascript" src="__STATIC__/ueditor/dist/utf8-php/ueditor.config.js"></script>
  273. <!-- 编辑器源码文件 -->
  274. <script type="text/javascript" src="__STATIC__/ueditor/dist/utf8-php/ueditor.all.js"></script>
  275. <!-- 实例化编辑器 -->
  276. <script type="text/javascript">
  277. var ue = UE.getEditor('content');
  278. </script>
  279. <script>
  280. layui.config({
  281. base: '__LAYUI__/',
  282. urlbase: '/sys'
  283. }).extend({
  284. index: 'lib/index' //主入口模块
  285. }).use(['index', 'form','layedit','element','upload','table'], function() {
  286. var form = layui.form,
  287. upload = layui.upload,
  288. element = layui.element,
  289. layedit = layui.layedit;
  290. table = layui.table;
  291. $ = layui.jquery;
  292. upload.render({
  293. elem: '#anlicoverimg',
  294. accept: 'images',
  295. url: '/upload/',
  296. exts: 'jpg|png|bmp|jpeg|JPG|PNG|BMP|JPEG',
  297. field: 'cover',
  298. size: 1 * 1024,
  299. auto: false,
  300. choose: function(obj) {
  301. files = obj.pushFile();
  302. length = $('.imageDiv').length;
  303. obj.preview(function(index, file, result) {
  304. length++;
  305. if(length > 1) {
  306. layer.msg('限制1张图片以下',{time: 1000});
  307. delete files[index];
  308. } else {
  309. $("#anlicoverimg").html(`<img src="${result}" style="width: 134px;height: 134px;"/>`)
  310. }
  311. });
  312. }
  313. });
  314. $('.radio_input').click(function(){
  315. if($(this).attr('id')==1){
  316. $('.jl_input').hide();
  317. $('.jl_input2').show();
  318. }else{
  319. $('.jl_input2').hide();
  320. $('.jl_input').show();
  321. }
  322. });
  323. var heads_reward_type = '{$data.heads_reward_type}';
  324. if(heads_reward_type == 2){
  325. $('.radio_input').click();
  326. }
  327. // layedit.set({
  328. // //暴露layupload参数设置接口 --详细查看layupload参数说明
  329. // uploadImage: {
  330. // url: '{:url("train/fileupload")}',
  331. // accept: 'image',
  332. // acceptMime: 'image/*',
  333. // exts: 'jpg|png|gif|bmp|jpeg',
  334. // size: '10240'
  335. // },
  336. // calldel: {
  337. // url: '{:url("train/filedelete")}'
  338. // },
  339. // devmode: true,
  340. // codeConfig: {
  341. // hide: true, //是否显示编码语言选择框
  342. // default: 'javascript' //hide为true时的默认语言格式
  343. // },
  344. // tool: [
  345. // 'html', 'code', 'strong', 'italic', 'underline', 'del', 'addhr', '|', 'fontFomatt', 'colorpicker', 'face'
  346. // , '|', 'left', 'center', 'right', '|', 'link', 'unlink', 'image_alt', 'video', 'anchors','image'
  347. // , '|', 'fullScreen'
  348. // ],
  349. // height: '80%'
  350. // });
  351. // var ieditor = layedit.build('content');
  352. form.on('submit(LAY-user-front-search)', function(data) {
  353. var field = {};
  354. var team_num = $("[name=team_num]").val();
  355. var keyword = $('#keyword').val();
  356. field['keyword'] = keyword;
  357. field['team_num'] = team_num;
  358. //console.log(data);
  359. //return false;
  360. //执行重载
  361. table.reload('spellgroup', {
  362. where: field
  363. ,page: {curr:1}
  364. });
  365. });
  366. //活动列表
  367. table.render({
  368. elem: '#spellgroup',
  369. autoSort: false,
  370. url: "{:url('spellgroup/team_list')}",
  371. cols: [
  372. [{
  373. align: 'center',
  374. templet: '#teamname',
  375. width: 200,
  376. title: '发起的拼团',
  377. }, {
  378. align: 'center',
  379. field: 'title',
  380. title: '隶属销售',
  381. minWidth: 100,
  382. templet: '#empname'
  383. }, {
  384. align: 'center',
  385. title: '团队类型',
  386. templet: '#teamtype'
  387. }, {
  388. field: 'start_date',
  389. title: '拼团进程',
  390. minWidth: 400,
  391. align:'center',
  392. templet:function(e){
  393. //console.log(e)
  394. var str='';
  395. str+='<div class="width93_ wleft"><div class="layui-progress layui-progress-big mdt08 wpsr" lay-filter="demo'+e.id+'">';
  396. str+=`<div class="layui-progress-bar layui-bg-green" lay-percent="${e.join_num}">${(e.join_num != e.number) ?`<p class="wpsa jctext">${e.join_num}</p>`:''}</div><p class="wpsa zjctext">${e.number}</p></div></div>`;
  397. var n = 0, timer = setInterval(function(){
  398. n++;
  399. if(n>e.join_num){
  400. n = e.join_num;
  401. clearInterval(timer);
  402. }
  403. element.progress('demo'+e.id, n*(100/e.number)+'%');
  404. },100);
  405. return str;
  406. }
  407. }, {
  408. field: 'end_time',
  409. minWidht:100,
  410. title: '截止时间',
  411. align:'center'
  412. },
  413. {
  414. title: '团队状态',
  415. width: '15%',
  416. toolbar: '#table-user-bind',
  417. align:'center'
  418. }]
  419. ],
  420. page: true,
  421. limit: 30,
  422. height: 'full-220',
  423. text: '对不起,加载出现异常!'
  424. });
  425. //监听审核
  426. table.on('tool(spellgroup)', function(obj) {
  427. var data = obj.data;
  428. if(obj.event === 'toview') {
  429. layer.open({
  430. type: 2,
  431. title: '查看',
  432. content: "{:url('spellgroup/sel_team_detail')}?id="+data.id,
  433. maxmin: false,
  434. area: ['30%','80%']
  435. });
  436. }
  437. });
  438. // var textarea = layedit.build('content', {
  439. // 'height': 500
  440. // });
  441. form.render();
  442. /* 监听提交 */
  443. form.on('submit(spellgroup-submit)', function(obj) {
  444. //var index = parent.layer.getFrameIndex(window.name);
  445. //alert('www');
  446. var formData = new FormData(obj.form);
  447. ue.ready(function () {
  448. formData.append('content', ue.getContent());
  449. });
  450. //formData.set('content', layedit.getContent(textarea));
  451. //close.log(formData);
  452. console.log(formData);
  453. //return false;
  454. $.ajax({
  455. url: '{:url("spellgroup/addSave")}',
  456. type: 'post',
  457. data: formData,
  458. dataType: 'json',
  459. processData: false,
  460. contentType: false,
  461. success: function(res) {
  462. if(res.code === 0) {
  463. layer.msg(res.msg, {
  464. anim: 0
  465. }, function() {
  466. //parent.layui.table.reload('spellgroup'); //重载表格
  467. //parent.layer.close(index); //再执行关闭
  468. //parent.location.reload();
  469. window.location.reload();
  470. });
  471. } else {
  472. layer.msg(res.msg, {
  473. anim: 6
  474. });
  475. }
  476. }
  477. });
  478. return false;
  479. });
  480. })
  481. </script>
  482. {/block}