institution_apply.html 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320
  1. <div class="layui-fluid">
  2. <div class="layui-card">
  3. <div class="layui-form layui-form-pane layui-card-header layuiadmin-card-header-auto">
  4. <div class="layui-form-item">
  5. <div class="layui-inline">
  6. <label class="layui-form-label">机构名称</label>
  7. <div class="layui-input-block">
  8. <input type="text" name="name" placeholder="请输入" autocomplete="off" class="layui-input">
  9. </div>
  10. </div>
  11. <div class="layui-inline">
  12. <label class="layui-form-label">状态</label>
  13. <div class="layui-input-block">
  14. <select name="status">
  15. <option value="">全部状态</option>
  16. {volist name="status_list" id="v"}
  17. <option value="{$key}">{$v}</option>
  18. {/volist}
  19. </select>
  20. </div>
  21. </div>
  22. <div class="layui-inline">
  23. <label class="layui-form-label">签到</label>
  24. <div class="layui-input-block">
  25. <select name="is_arrive">
  26. <option value="">全部状态</option>
  27. {volist name="is_arrive_list" id="v"}
  28. <option value="{$key}">{$v}</option>
  29. {/volist}
  30. </select>
  31. </div>
  32. </div>
  33. <div class="layui-inline">
  34. <button class="layui-btn" lay-submit lay-filter="{$lay_btn}">
  35. <i class="layui-icon layui-icon-search layuiadmin-button-btn"></i>
  36. </button>
  37. </div>
  38. </div>
  39. </div>
  40. <div class="layui-form layui-card-header layuiadmin-card-header-auto">
  41. <button class="layui-btn layuiadmin-btn layui-btn-normal" data-type="qrcode">签到码</button>
  42. <button class="layui-btn layuiadmin-btn layui-btn-normal" data-type="pass">审核通过</button>
  43. <button class="layui-btn layuiadmin-btn" data-type="export">导出</button>
  44. <button class="layui-btn layuiadmin-btn layui-btn-danger" data-type="del">删除</button>
  45. </div>
  46. <div class="layui-card-body">
  47. <table id="{$lay_table}" lay-filter="{$lay_table}"></table>
  48. <script type="text/html" id="setTpl">
  49. <a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="detail">
  50. <i class="layui-icon layui-icon-edit"></i>详情
  51. </a>
  52. <a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="pass">
  53. <i class="layui-icon layui-icon-edit"></i>审核通过
  54. </a>
  55. <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="disabled">
  56. <i class="layui-icon layui-icon-delete"></i>审核不通过
  57. </a>
  58. <a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="enterprise">
  59. <i class="layui-icon layui-icon-edit"></i>转企业
  60. </a>
  61. <a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="sync">
  62. <i class="layui-icon layui-icon-edit"></i>同步到参会列表
  63. </a>
  64. </script>
  65. </div>
  66. </div>
  67. </div>
  68. <script>
  69. layui.use(['index', 'admin', 'form', 'table'], function () {
  70. const $ = layui.$;
  71. const admin = layui.admin;
  72. const form = layui.form;
  73. const table = layui.table;
  74. let search_param = {};
  75. form.render();
  76. table.render({
  77. elem: '#{$lay_table}',
  78. url: "{:url('human/listInstitutionApply')}",
  79. cols: [
  80. [
  81. {type: 'checkbox', fixed: 'left'},
  82. {field: 'name', title: '机构名称', width: 240},
  83. {field: 'join', title: '参会人', width: 100},
  84. {field: 'join_mobile', title: '参会手机号', width: 160},
  85. {field: 'wechat', title: '微信号', width: 160},
  86. {field: 'suggestion', title: '对本次活动想说的话'},
  87. {field: 'status_text', title: '状态', width: 100, align: 'center'},
  88. {field: 'comment', title: '审核备注', width: 200},
  89. {field: 'is_arrive_text', title: '签到', width: 100, align: 'center'},
  90. {field: 'create_time', title: '申请时间', width: 160, align: 'center'},
  91. {title: '操作', width: 500, align: 'center', fixed: 'right', toolbar: '#setTpl'}
  92. ]
  93. ],
  94. page: true,
  95. limit: 50,
  96. cellMinWidth: 150,
  97. text: '对不起,加载出现异常!'
  98. });
  99. form.on('submit({$lay_btn})', function (data) {
  100. search_param = data.field;
  101. table.reload('{$lay_table}', {
  102. where: data.field,
  103. page: {
  104. curr: 1
  105. }
  106. });
  107. });
  108. //事件
  109. const active = {
  110. qrcode: function () {
  111. layer.photos({
  112. photos: {
  113. "title": "", //相册标题
  114. "id": 123, //相册id
  115. "start": 0, //初始显示的图片序号,默认0
  116. "data": [ //相册包含的图片,数组格式
  117. {
  118. "alt": "图片名",
  119. "pid": 666, //图片id
  120. "src": "{$file_url}", //原图地址
  121. "thumb": "" //缩略图地址
  122. }
  123. ]
  124. }
  125. ,anim: 5 //0-6的选择,指定弹出图片动画类型,默认随机(请注意,3.0之前的版本用shift参数)
  126. });
  127. },
  128. pass: function () {
  129. const check_data = table.checkStatus('{$lay_table}').data; //得到选中的数据
  130. if (check_data.length === 0) {
  131. return layer.msg('请选择数据');
  132. }
  133. const id_arr = [];
  134. for (let i = 0; i < check_data.length; i++) {
  135. id_arr.push(check_data[i].id);
  136. }
  137. layer.confirm('确定此操作吗?', function (index) {
  138. admin.req({
  139. url: "{:url('human/statusInstitutionApply')}",
  140. data: {
  141. id_arr: id_arr,
  142. status: 2,
  143. },
  144. done: function (res) {
  145. table.reload('{$lay_table}');
  146. }
  147. });
  148. layer.close(index);
  149. });
  150. },
  151. disabled: function () {
  152. const check_data = table.checkStatus('{$lay_table}').data; //得到选中的数据
  153. if (check_data.length === 0) {
  154. return layer.msg('请选择数据');
  155. }
  156. const id_arr = [];
  157. for (let i = 0; i < check_data.length; i++) {
  158. id_arr.push(check_data[i].id);
  159. }
  160. layer.confirm('确定此操作吗?', function (index) {
  161. admin.req({
  162. url: "{:url('human/statusInstitutionApply')}",
  163. data: {
  164. id_arr: id_arr,
  165. status: 3,
  166. },
  167. done: function (res) {
  168. table.reload('{$lay_table}');
  169. }
  170. });
  171. layer.close(index);
  172. });
  173. },
  174. export: function() {
  175. const check_data = table.checkStatus('{$lay_table}').data;
  176. const url = "{:url('human/exportInstitutionApply')}";
  177. if (check_data.length === 0) {
  178. let param = '';
  179. for (let item in search_param) {
  180. param += '&' + item + '=' + search_param[item];
  181. }
  182. if (param === '') {
  183. window.open(url);
  184. } else {
  185. window.open(url + '?' + param.slice(1));
  186. }
  187. } else {
  188. let id_arr = [];
  189. for (let i = 0; i < check_data.length; i++) {
  190. id_arr.push(check_data[i].id);
  191. }
  192. window.open(url + '?id=' + id_arr.join());
  193. }
  194. },
  195. del: function () {
  196. const check_data = table.checkStatus('{$lay_table}').data; //得到选中的数据
  197. if (check_data.length === 0) {
  198. return layer.msg('请选择数据');
  199. }
  200. const id_arr = [];
  201. for (let i = 0; i < check_data.length; i++) {
  202. id_arr.push(check_data[i].id);
  203. }
  204. layer.confirm('确定删除吗?', function (index) {
  205. admin.req({
  206. url: "{:url('human/delInstitutionApply')}",
  207. data: {
  208. id_arr: id_arr
  209. },
  210. done: function (res) {
  211. table.reload('{$lay_table}');
  212. }
  213. });
  214. layer.close(index);
  215. });
  216. },
  217. };
  218. //监听工具条
  219. table.on('tool({$lay_table})', function (obj) {
  220. const data = obj.data;
  221. if (obj.event === 'pass') {
  222. layer.confirm('确定此操作吗?', function (index) {
  223. admin.req({
  224. url: "{:url('human/statusInstitutionApply')}",
  225. data: {
  226. id_arr: [data.id],
  227. status: 2,
  228. },
  229. done: function (res) {
  230. table.reload('{$lay_table}');
  231. }
  232. });
  233. layer.close(index);
  234. });
  235. } else if (obj.event === 'disabled') {
  236. layer.prompt({
  237. formType: 2,
  238. value: '',
  239. title: '请输入审核备注',
  240. area: ['400px', '150px'] // 弹窗大小
  241. }, function(value, index, elem){
  242. // 获取到值,可以在这里进行相关操作
  243. admin.req({
  244. url: "{:url('human/statusInstitutionApply')}",
  245. data: {
  246. id_arr: [data.id],
  247. status: 3,
  248. comment: value,
  249. },
  250. done: function (res) {
  251. table.reload('{$lay_table}');
  252. }
  253. });
  254. // 关闭弹层
  255. layer.close(index);
  256. });
  257. /*layer.confirm('确定此操作吗?', function (index) {
  258. admin.req({
  259. url: "{:url('human/statusInstitutionApply')}",
  260. data: {
  261. id_arr: [data.id],
  262. status: 3,
  263. },
  264. done: function (res) {
  265. table.reload('{$lay_table}');
  266. }
  267. });
  268. layer.close(index);
  269. });*/
  270. } else if (obj.event === 'detail') {
  271. const index = layer.open({
  272. type: 2,
  273. title: '机构详情',
  274. content: "{:url('human/institutionDetail')}?id=" + data.id,
  275. maxmin: true,
  276. area: ['550px', '550px']
  277. });
  278. layer.full(index);
  279. } else if (obj.event === 'enterprise') {
  280. layer.confirm('确定此操作吗?', function (index) {
  281. admin.req({
  282. url: "{:url('human/institutionToEnterprise')}",
  283. data: {
  284. id: data.id
  285. },
  286. done: function (res) {
  287. table.reload('{$lay_table}');
  288. }
  289. });
  290. layer.close(index);
  291. });
  292. } else if (obj.event === 'sync') {
  293. layer.confirm('确定此操作吗?', function (index) {
  294. admin.req({
  295. url: "{:url('human/syncInstitution')}",
  296. data: {
  297. id: data.id,
  298. },
  299. done: function (res) {
  300. table.reload('{$lay_table}');
  301. }
  302. });
  303. layer.close(index);
  304. });
  305. }
  306. });
  307. $('.layui-btn.layuiadmin-btn').on('click', function () {
  308. const type = $(this).data('type');
  309. active[type] ? active[type].call(this) : '';
  310. });
  311. });
  312. </script>