tempnotice.blade.php 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328
  1. <style>
  2. .form-horizontal .form-group{margin-right: -50px;}
  3. .col-sm-9{padding-right: 0;}
  4. .tm .btn { margin-bottom:5px;}
  5. .panel-heading{
  6. border-top-left-radius: 0px;
  7. border-top-right-radius: 0px;
  8. }
  9. .panel-default{
  10. color: #8c8c8c;
  11. border-color: #efefef;
  12. }
  13. .panel-default .panel-heading{
  14. background: #fdfdfd;
  15. border-color:#efefef;
  16. }
  17. .panel-primary{
  18. border-color: #efefef;
  19. }
  20. .panel-primary .panel-heading{
  21. background: #44abf7;
  22. border-color:#efefef;
  23. background-color: rgba(22, 161, 199, 0.82);
  24. }
  25. .panel-success .panel-heading{
  26. color:#fff;
  27. background: #54c952;
  28. border-color:#efefef;
  29. }
  30. .panel-info .panel-heading {
  31. color:#fff;
  32. background:#8987d7;
  33. border-color:#efefef;
  34. }
  35. .panel-body ~ .panel-heading {
  36. border-top: 1px solid #efefef;
  37. }
  38. .panel-danger .panel-heading {
  39. color:#fff;
  40. background: #eb6060;
  41. border-color:#efefef;
  42. }
  43. .panel-warning .panel-heading {
  44. color:#fff;
  45. background: #ffc000;
  46. border-color:#efefef;
  47. }
  48. </style>
  49. <div class="row">
  50. <div class="col-sm-8" style="padding-right: 50px;">
  51. <input type="hidden" name="id" value="{{$temp['id']}}" />
  52. <div class="form-group">
  53. <label class="col-xs-12 col-sm-3 col-md-2 control-label" >模板名称</label>
  54. <div class="col-sm-9 col-xs-12">
  55. <input type="text" id="title" name="temp[title]" class="form-control" value="{{$temp['title']}}" placeholder="模版名称,例:订单完成模板(自定义)" data-rule-required='true' />
  56. </div>
  57. </div>
  58. <div class="form-group">
  59. <label class="col-xs-12 col-sm-3 col-md-2 control-label" >模板消息ID</label>
  60. <div class="col-sm-9 ">
  61. <input type="text" readonly="readonly" id="template_id" name="temp[template_id]" class="form-control" value="{{$temp['template_id']}}" placeholder="模版消息ID,例:P8MxRKmW7wdejmZl14-swiGmsJVrFJiWYM7zKSPXq4I" data-rule-required='true' />
  62. </div>
  63. </div>
  64. <div class="form-group">
  65. <label class="col-xs-12 col-sm-3 col-md-2 control-label" >头部标题</label>
  66. <div class="col-sm-8 title" style='padding-right:0' >
  67. <textarea name="temp[first]" class="form-control" value="" data-rule-required='true' placeholder="@{{first.DATA}}" rows="5">{{$temp['first']}}</textarea>
  68. <span class='help-block'>对填充模板 @{{first.DATA}} 的值 </span>
  69. </div>
  70. <div class="col-sm-1" style='padding-left:0;' >
  71. <input type="color" name="temp[first_color]" value="{{$temp['first_color']}}" style="width:32px;height:32px;" />
  72. </div>
  73. </div>
  74. @foreach($temp->data as $temp2)
  75. @include('setting.diytemp.tpl.common')
  76. @endforeach
  77. <div id="type-items"></div>
  78. <div class="form-group">
  79. <label class="col-xs-12 col-sm-3 col-md-2 control-label" ></label>
  80. <div class="col-sm-9 col-xs-12">
  81. <a class="btn btn-default btn-add-type" href="javascript:;" onclick="addType();"><i class="fa fa-plus" title=""></i> 增加一条键</a>
  82. <span class='help-block'>
  83. </span>
  84. </div>
  85. </div>
  86. <div class="form-group">
  87. <label class="col-xs-12 col-sm-3 col-md-2 control-label" >尾部描述</label>
  88. <div class="col-sm-8 title" style='padding-right:0' >
  89. <textarea name="temp[remark]" class="form-control" placeholder="@{{remark.DATA}}" rows="5" >{{$temp['remark']}}</textarea>
  90. <span class='help-block'>填充模板 @{{remark.DATA}} 的值</span>
  91. </div>
  92. <div class="col-sm-1" style='padding-left:0' >
  93. <input type="color" name="temp[remark_color]" value="{{$temp['remark_color']}}" style="width:32px;height:32px;" />
  94. </div>
  95. </div>
  96. <div class="form-group">
  97. <label class="col-xs-12 col-sm-3 col-md-2 control-label" >跳转链接地址</label>
  98. <div class="col-sm-9 col-xs-12">
  99. <div class="input-group ">
  100. <input class="form-control" type="text" data-id="PAL-00010" placeholder="请填写指向的链接 (请以http://开头, 不填则不跳转)" value="{{ $temp['news_link'] }}" name="temp[news_link]">
  101. <span class="input-group-btn">
  102. <button class="btn btn-default nav-link" type="button" data-id="PAL-00010">选择链接</button>
  103. </span>
  104. </div>
  105. {{--<input type="text" id="title" name="temp[link]" class="form-control" value="{{$temp['link']}}" placeholder="模版名称,例:订单完成模板(自定义)" data-rule-required='true' />--}}
  106. </div>
  107. </div>
  108. </div>
  109. <div class="col-sm-4" style="max-width:350px;">
  110. <div class="" >
  111. <div class="panel panel-primary">
  112. <div class="panel-heading">
  113. <span style="font-size: 15px">步骤一:</span>添加我的模板
  114. </div>
  115. <div class="panel-body">
  116. <input type="text" id="tempcode" class="form-control" placeholder="模板编号,例:TM00015" style="margin-bottom: 5px;" value="" />
  117. <a class="btn btn-default" href="javascript:;" onclick="addtempoption();"> 添加快速模板</a>
  118. </div>
  119. </div>
  120. </div>
  121. <div class="" >
  122. <div class="panel panel-primary">
  123. <div class="panel-heading">
  124. <span style="font-size: 15px">步骤二:</span>选择模板
  125. </div>
  126. <div class="panel-body">
  127. <select id="selecttemplate" class=" form-control" style="margin-bottom: 5px;">
  128. </select>
  129. <a class="btn btn-default" href="javascript:;" onclick="selecttemp();"> 选择模板</a>
  130. </div>
  131. </div>
  132. </div>
  133. <div class="example-div" >
  134. <div class="panel panel-default">
  135. <div class="panel-heading">
  136. 模板展示:
  137. </div>
  138. <div class="panel-body">
  139. <div id="example" class="text">
  140. </div>
  141. </div>
  142. </div>
  143. </div>
  144. <div class="">
  145. <div class="panel panel-default">
  146. <div class="panel-heading">
  147. <select class="form-control diy-notice" onchange="$('.tm').hide();$('.tm-'+$(this).val()).show()">
  148. <option value="" >选择模板变量类型</option>
  149. @foreach(\app\common\modules\template\Template::current()->getItems() as $item)
  150. <option value="{{$item['value']}}">{{$item['title']}}</option>
  151. @endforeach
  152. </select>
  153. </div>
  154. @foreach(\app\common\modules\template\Template::current()->getItems() as $item)
  155. <div class="panel-heading tm tm-{{$item['value']}}" style="display:none">
  156. {{$item['subtitle']}}
  157. </div>
  158. <div class="panel-body tm tm-{{$item['value']}}" style="display:none">
  159. @foreach($item['param'] as $row)
  160. <a href='JavaScript:' class="btn btn-default btn-sm">{{$row}}</a>
  161. @endforeach
  162. </div>
  163. @endforeach
  164. <div class="panel-body">
  165. 点击变量后会自动插入选择的文本框的焦点位置,在发送给粉丝时系统会自动替换对应变量值
  166. <div class="text text-danger">
  167. 注意:请选择对应模板变量, 否则消息通知内容有误 .
  168. </div>
  169. </div>
  170. </div>
  171. </div>
  172. </div>
  173. </div>
  174. @include('public.admin.mylink')
  175. <script language='javascript'>
  176. $("#selecttemplate").select2();
  177. var kw = 1;
  178. var temps;
  179. var contents;
  180. restempoption();
  181. function selecttemp()
  182. {
  183. var tid = $("#selecttemplate").val();
  184. var temp;
  185. for(var i=0;i<temps.length;i++){
  186. if(temps[i].template_id == tid)
  187. {
  188. temp =temps[i];
  189. break;
  190. }
  191. }
  192. $(document).on("click",".nav-link",function(){
  193. var id = $(this).data("id");
  194. if(id){
  195. $("#modal-mylink").attr({"data-id":id});
  196. $("#modal-mylink").modal();
  197. }
  198. });
  199. if(temp == null) {
  200. return;
  201. } else {
  202. contents = temp.contents;
  203. if(contents[0] != 'first' || contents[contents.length-1] != 'remark') {
  204. alert("此模板不可用!");
  205. return;
  206. }
  207. $("#example").html(temp.content);
  208. $(".example-div").show();
  209. $("#title").val(temp.title);
  210. $("#template_id").val(temp.template_id);
  211. $('.key_item').remove();
  212. setcontents(0);
  213. }
  214. }
  215. function setcontents(i){
  216. if(contents.length == i) {
  217. return;
  218. }
  219. if(contents[i]!='first'&&contents[i]!='remark') {
  220. var url = "{!! yzWebUrl('setting.diy-temp.tpl') !!}";
  221. $.ajax({
  222. "url": url,
  223. "data":{tpkw:contents[i]},
  224. success: function (html) {
  225. $(".btn-add-type").button("reset");
  226. $("#type-items").append(html);
  227. i++
  228. setcontents(i);
  229. }
  230. });
  231. } else {
  232. i++
  233. setcontents(i);
  234. }
  235. }
  236. function addtempoption() {
  237. var tempcode = $("#tempcode").val();
  238. var data = {
  239. templateidshort: tempcode
  240. };
  241. var url = "{!! yzWebUrl('setting.wechat-notice.addTmp') !!}";
  242. $.ajax({
  243. "url": url,
  244. "data": data,
  245. success: function (ret) {
  246. if (ret.result == 1) {
  247. alert("加入成功");
  248. location.reload();
  249. } else {
  250. alert("加入失败,请检查模板数量是否达到上限(25个)以及模板编码是否输入正确!");
  251. }
  252. }
  253. });
  254. }
  255. function restempoption() {
  256. var url = "{!! yzWebUrl('setting.wechat-notice.returnJson') !!}";
  257. $.ajax({
  258. "url": url,
  259. success: function (ret) {
  260. if (typeof ret === "string") {
  261. var ret = $.parseJSON(ret);
  262. }
  263. if (ret.result == 1) {
  264. $("#selecttemplate option").remove();
  265. temps = ret.data.tmp_list;
  266. for(var i=0;i<temps.length;i++){
  267. $("#selecttemplate").append("<option value='"+temps[i].template_id+"'>"+temps[i].title+"</option>");
  268. }
  269. }
  270. }
  271. });
  272. }
  273. function addType() {
  274. $(".btn-add-type").button("loading");
  275. var url = "{!! yzWebUrl('setting.diy-temp.tpl') !!}";
  276. $.ajax({
  277. "url": url,
  278. "data":{kw:kw},
  279. success: function (html) {
  280. $(".btn-add-type").button("reset");
  281. $("#type-items").append(html);
  282. }
  283. });
  284. kw++;
  285. }
  286. $('.diy-notice').select2();
  287. </script>