edit.html 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392
  1. {extend name="public/layout" /} {block name="title"}活动编辑{/block} {block name="body"}
  2. <style type="text/css">
  3. html {
  4. background: #fff;
  5. }
  6. body {
  7. min-width: 320px;
  8. }
  9. @media screen and (max-width: 450px) {
  10. .layui-form-item {
  11. width: 100%;
  12. }
  13. }
  14. #layuiadmin-app-form-list {
  15. padding: 1% 2%;
  16. }
  17. .layui-form-label {
  18. width: 15%;
  19. }
  20. .layui-input {
  21. border: none;
  22. outline: none;
  23. }
  24. .layui-input-inline-bottom {
  25. border-bottom: 1px solid #D4E4ED;
  26. }
  27. .flex-center {
  28. display: flex;
  29. align-items: center;
  30. }
  31. .border {
  32. border: 1px solid #D4E4ED;
  33. padding-right: 10px;
  34. border-radius: 5px;
  35. }
  36. .layui-form-radio>i:hover,
  37. .layui-form-radioed>i {
  38. color: #249EFB;
  39. }
  40. .layui-form-radioed {
  41. color: #249EFB;
  42. }
  43. .layui-tab-card>.layui-tab-title {
  44. background-color: #fff;
  45. }
  46. .layui-tab-card {
  47. border-radius: 10px;
  48. box-shadow: none;
  49. border: none;
  50. }
  51. .layui-form-label {
  52. color: #8A9AAA;
  53. }
  54. .layui-input::placeholder {
  55. color: #9DB6CF;
  56. }
  57. .layui-tab-card>.layui-tab-title .layui-this {
  58. background-color: #249EFB;
  59. color: #fff;
  60. }
  61. .cancel,
  62. .cancel:hover {
  63. background-color: #fff;
  64. color: #249EFB;
  65. border: 1px solid #249EFB;
  66. padding: 0px 20px;
  67. }
  68. .layui-tab-card>.layui-tab-title .layui-this:after {
  69. border-bottom: none;
  70. border: none;
  71. }
  72. .layui-tab-card>.layui-tab-title li {
  73. background-color: #F2F2F2;
  74. margin: 0px 5px;
  75. }
  76. .layui-anim.layui-icon {
  77. font-size: 18px;
  78. }
  79. </style>
  80. <body>
  81. <form class="layui-form" id="admin" enctype="multipart/form-data">
  82. <div class="layui-form" lay-filter="layuiadmin-app-form-list" id="layuiadmin-app-form-list">
  83. <div class="layui-form-item">
  84. <div class=" layui-tab layui-tab-card">
  85. <input type="hidden" name="id" value="{$data.id}">
  86. <div class="layui-tab-content">
  87. <div class="layui-tab-item layui-show">
  88. <div class="layui-form-item">
  89. <label class="layui-form-label"><i style="color:red;">*&nbsp;</i>活动名称</label>
  90. <div class="layui-input-inline layui-input-inline-bottom" style="width: 380px;">
  91. <input type="text" name="title" lay-verify="required" placeholder="请输入活动名称"
  92. autocomplete="off" class="layui-input" value="{$data.title}"
  93. style="max-width: 500px;">
  94. </div>
  95. </div>
  96. <div class="layui-form-item">
  97. <label class="layui-form-label"><i style="color:red;">*&nbsp;</i>活动时间</label>
  98. <div class="layui-input-inline flex-center border">
  99. <input type="text" name="start_date" id="start_date" placeholder="选择活动开始日期"
  100. autocomplete="off" class="layui-input" value="{$data.start_date}">
  101. <img src="__STATIC__/img/bg-calendar.png" alt="日历" width="14px" height="14px">
  102. </div>
  103. <div class="layui-form-mid">-</div>
  104. <div class="layui-input-inline flex-center border">
  105. <input type="text" name="end_date" id="end_date" placeholder="选择活动结束日期"
  106. autocomplete="off" class="layui-input" value="{$data.end_date}">
  107. <img src="__STATIC__/img/bg-calendar.png" alt="日历" width="14px" height="14px">
  108. </div>
  109. </div>
  110. <div class="layui-form-item">
  111. <label class="layui-form-label">活动介绍</label>
  112. <div class="layui-input-inline" style="width: 420px;">
  113. <textarea name="introduce" style="width: 100%; height: 100px;padding: 5px;border-color: #D4E4ED;">{$data.introduce}</textarea>
  114. </div>
  115. </div>
  116. <div class="layui-form-item">
  117. <label class="layui-form-label">活动地点</label>
  118. <div class="layui-input-inline layui-input-inline-bottom" style="width: 380px;">
  119. <input type="text" name="address" placeholder="请输入活动地点" autocomplete="off"
  120. class="layui-input" style="max-width: 500px;" value="{$data.address}">
  121. </div>
  122. </div>
  123. <div class="layui-form-item">
  124. <label class="layui-form-label"><span style="color: red;">*</span>上传活动封面</label>
  125. <div class="layui-input-inline" id="upload-drag0">
  126. {if condition="$data.cover"}
  127. <img src="{$data.cover}" width="383px" height="114px">
  128. {else /}
  129. <div class="layui-upload-drag">
  130. <i class="layui-icon">&#xe681;</i>
  131. <p>&nbsp;&nbsp;选择封面图片&nbsp;&nbsp;</p>
  132. </div>
  133. {/if}
  134. </div>
  135. </div>
  136. <div class="layui-form-item">
  137. <label class="layui-form-label"><span style="color: red;">*</span>活动二维码</label>
  138. <div class="layui-input-inline" id="upload-drag1" style="margin-bottom:15px;">
  139. {if condition="$data.qrcode"}
  140. <img src="{$data.qrcode}" width="383px" height="114px">
  141. {else /}
  142. <div class="layui-upload-drag">
  143. <i class="layui-icon">&#xe681;</i>
  144. <p>选择二维码图片&nbsp;</p>
  145. </div>
  146. {/if}
  147. </div>
  148. </div>
  149. <div class="layui-form-item">
  150. <label class="layui-form-label"></label>
  151. <div class="layui-input-inline" style="width: 60%;">
  152. <i style="color: #FF5722;">*</i>图片格式:jpg|png|bmp|jpeg|JPG|PNG|BMP|JPEG,请上传比例为1:1 的图片
  153. </div>
  154. </div>
  155. <div class="layui-form-item">
  156. <label class="layui-form-label"><i style="color:red;">*&nbsp;</i>描述</label>
  157. <div class="layui-col-md6 layui-col-xs6 layui-col-sm6" style="width:75%;">
  158. <textarea name="content" id="content" cols="6" rows="10" autocomplete="off"
  159. style="width: 100%;height: 400px;">{$data.content}</textarea>
  160. </div>
  161. </div>
  162. <!-- <button type="button" class="layui-btn layui-btn-normal" id="next_step" style="width:165px;height:38px;margin-left:25%;">下一步</button> -->
  163. <input type="button" style="margin-left:17.5%;padding:0px 20px;height:38px;" lay-submit
  164. class="layui-btn layui-btn-normal" lay-filter="activity-submit" id="activity-submit"
  165. value="确认保存">
  166. <button type="button" class="layui-btn plr20 cancel">取消</button>
  167. </div>
  168. </div>
  169. </div>
  170. </div>
  171. </div>
  172. </form>
  173. </body>
  174. {/block} {block name="js"}
  175. <script src="__STATIC__/layui/layui/lay/modules/xm-select.js" type="text/javascript" charset="utf-8"></script>
  176. <!-- 配置文件 -->
  177. <script type="text/javascript" src="__STATIC__/ueditor/dist/utf8-php/adminall.ueditor.config.js"></script>
  178. <!-- 编辑器源码文件 -->
  179. <script type="text/javascript" src="__STATIC__/ueditor/dist/utf8-php/ueditor.all.js"></script>
  180. <!-- 实例化编辑器 -->
  181. <script type="text/javascript">
  182. var ue = UE.getEditor('content');
  183. </script>
  184. <script>
  185. layui.config({
  186. base: '__LAYUI__/',
  187. urlbase: '/sys'
  188. }).extend({
  189. index: 'lib/index' //主入口模块
  190. }).use(['index', 'form', 'upload', 'layedit', 'laydate'], function () {
  191. var form = layui.form,
  192. upload = layui.upload,
  193. layedit = layui.layedit,
  194. laydate = layui.laydate,
  195. $ = layui.jquery,
  196. files = null,
  197. coverFiles = null,
  198. loadingIndex = null;
  199. form.render();
  200. /* 监听提交 */
  201. form.on('submit(activity-submit)', function (obj) {
  202. var index = parent.layer.getFrameIndex(window.name);
  203. var formData = new FormData(obj.form);
  204. field = obj.field;
  205. ue.ready(function () {
  206. formData.set('content', ue.getContent());
  207. });
  208. let qrcodelink = "{$data.qrcode}";
  209. let coverlink = "{$data.cover}";
  210. if (!files && !qrcodelink) {
  211. layer.msg('请上传活动二维码');
  212. return false;
  213. }
  214. if (!coverlink && !coverFiles) {
  215. layer.msg('请上传活动封面');
  216. return false;
  217. }
  218. if (obj.field.end_date && obj.field.start_date) {
  219. if (new Date(obj.field.end_date).getTime() < new Date(obj.field.start_date).getTime()) {
  220. layer.msg('结束时间不能小于开始时间');
  221. return false;
  222. }
  223. }
  224. if (files) {
  225. formData.set('qrcode', files);
  226. } else {
  227. formData.set('qrcode', qrcodelink);
  228. }
  229. if (coverFiles) {
  230. formData.set('cover', coverFiles);
  231. } else {
  232. formData.set('cover', coverlink);
  233. }
  234. loadingIndex = layer.load('Loading...', {
  235. shade: [0.6,'#000'] //0.1透明度的白色背景
  236. });
  237. formData.delete('poster');
  238. // 单击之后提交按钮不可选,防止重复提交
  239. var DISABLED = 'layui-btn-disabled';
  240. var target = '#activity-submit';
  241. $(target).addClass(DISABLED);
  242. $(target).attr('disabled', 'disabled');
  243. $.ajax({
  244. url: '{:url("activity/editActivity")}',
  245. type: 'post',
  246. data: formData,
  247. dataType: 'json',
  248. processData: false,
  249. contentType: false,
  250. success: function (res) {
  251. if (res.code === 0) {
  252. layer.close(loadingIndex);
  253. layer.msg(res.msg, {
  254. anim: 0
  255. , time: 2000
  256. }, function () {
  257. parent.layui.table.reload('company-activity'); //重载表格
  258. parent.layer.close(index); //再执行关闭
  259. });
  260. } else {
  261. layer.close(loadingIndex);
  262. layer.msg(res.msg, {
  263. anim: 6
  264. , time: 2000
  265. });
  266. }
  267. }
  268. });
  269. return false;
  270. });
  271. $('.cancel').click(function () {
  272. var index = parent.layer.getFrameIndex(window.name);
  273. parent.layer.close(index);
  274. })
  275. //选择扫码人员
  276. var xmSelectElement = xmSelect.render({
  277. el: "#qrcode-user",
  278. name: 'qrcode_employee_id',
  279. autoRow: true,
  280. filterable: true,
  281. tips: '选择扫码人员',
  282. toolbar: {
  283. //工具条,全选,清空,反选,自定义
  284. show: true,
  285. list: [
  286. 'ALL',
  287. 'CLEAR'
  288. ]
  289. },
  290. height: "200px",
  291. data: [],
  292. //文本显示模式
  293. });
  294. $.ajax({
  295. url: "{:url('activity/get_qrcode_employee')}",
  296. data: {
  297. id: "{$data.id}"
  298. },
  299. type: 'post',
  300. dataType: 'json',
  301. success: function (res) {
  302. if (res.code == 0) {
  303. let data = res.data.map(v => {
  304. return { name: v.name, value: v.id, selected: v.isshow == 1 ? true : false }
  305. })
  306. xmSelectElement.update({ data: data })
  307. } else {
  308. layer.msg(res.msg)
  309. }
  310. }
  311. });
  312. //拖拽上传
  313. upload.render({
  314. elem: '#upload-drag1',
  315. accept: 'image',
  316. exts: 'jpg|png|bmp|jpeg|JPG|PNG|BMP|JPEG',
  317. auto: false,
  318. field: 'poster',
  319. size: 1 * 1024,
  320. choose: function (obj) {
  321. obj.preview(function (index, file, result) {
  322. files = file;
  323. $('#upload-drag1').html('<img src="' + result + '" style="height: 163px;width:163px;">');
  324. });
  325. }
  326. });
  327. //日期范围
  328. laydate.render({
  329. elem: '#start_date',
  330. trigger: 'click'//呼出事件改成click
  331. });
  332. laydate.render({
  333. elem: '#end_date',
  334. trigger: 'click'//呼出事件改成click
  335. });
  336. form.on('radio(type)', function (data) {
  337. if (data.value == 1) {
  338. $('#money').addClass('layui-hide');
  339. } else {
  340. $('#money').removeClass('layui-hide');
  341. }
  342. });
  343. //点击下一步
  344. $('#next_step').click(function () {
  345. $('#details').trigger("click");
  346. });
  347. //拖拽上传
  348. upload.render({
  349. elem: '#upload-drag0',
  350. accept: 'image',
  351. exts: 'jpg|png|bmp|jpeg|JPG|PNG|BMP|JPEG',
  352. auto: false,
  353. field: 'cover',
  354. size: 1 * 1024,
  355. choose: function (obj) {
  356. obj.preview(function (index, file, result) {
  357. coverFiles = file;
  358. $('#upload-drag0').html('<img src="' + result + '" style="height: 114px;width:383px;">');
  359. });
  360. }
  361. });
  362. });
  363. </script>
  364. {/block}