Ingen beskrivning
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

edit.htm 45KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984
  1. {include file="public/layout" /}
  2. <body class="ad_postion bodystyle" style="overflow-y: scroll;">
  3. <div id="toolTipLayer" style="position: absolute; z-index: 9999; display: none; visibility: visible; left: 95px; top: 573px;"></div>
  4. <div id="append_parent"></div>
  5. <div id="ajaxwaitid"></div>
  6. <div class="page min-hg-c-10">
  7. <form class="form-horizontal" id="post_form" action="{:url('ZcsonPosition/edit')}" method="post">
  8. <div class="ncap-form-default">
  9. <dl class="row">
  10. <dt class="tit"> <label for="title"><em>*</em>专业名称</label> </dt>
  11. <dd class="opt">
  12. <input type="text" name="title" value="{$field.title}" id="title" onkeyup="DetectionTitleRepeat(this);" class="input-txt" autocomplete="off">
  13. <span class="err"></span>
  14. <p class="notic2 red" id="title_tips"></p>
  15. </dd>
  16. </dl>
  17. <dl class="row" style="display:block;">
  18. <dt class="tit">
  19. <label for="type">选择分类</label>
  20. </dt>
  21. <dd class="opt">
  22. <select name="catid" class="select" id="selectTest99999" style="margin:0px 5px;height:30px;">
  23. <option value="0">默认</option>
  24. {eyou:foreach name='$zc_list' item='field1'}
  25. <option value="{$field1.id}" {eq name="$catid" value="$field1.id"}selected{/eq}>{$field1.title}</option>
  26. {/eyou:foreach}
  27. </select>
  28. <span class="err"></span>
  29. <p class="notic"></p>
  30. </dd>
  31. </dl>
  32. <dl class="row" style="display: block;">
  33. <dt class="tit"> <label for="type">选择分类</label> </dt>
  34. <dd class="opt">
  35. <?php
  36. /*
  37. *
  38. * <select name="type" class="select" style="margin:0px 5px;height:30px;">
  39. <option value="">--选择地区--</option>
  40. {eyou:foreach name='$pro_list' item='field1'}
  41. <option value="{$field1.id}" {eq name="$curr_id" value="$field1.id"}selected{/eq}>{$field1.name}</option>
  42. {/eyou:foreach}
  43. </select>
  44. <select name="type" class="select" id="selectTest" style="margin:0px 5px;height:30px;">
  45. <option value="0" {eq name="0" value="$field.type"}selected{/eq}>通类</option>
  46. <option value="1" {eq name="1" value="$field.type"}selected{/eq}>计算机科学</option>
  47. <option value="2" {eq name="2" value="$field.type"}selected{/eq}>理学</option>
  48. <option value="3" {eq name="3" value="$field.type"}selected{/eq}>哲学类</option>
  49. <option value="4" {eq name="4" value="$field.type"}selected{/eq}>教育学类</option>
  50. <option value="5" {eq name="5" value="$field.type"}selected{/eq}>医学类</option>
  51. <option value="6" {eq name="6" value="$field.type"}selected{/eq}>中国语言文学类</option>
  52. <option value="7" {eq name="7" value="$field.type"}selected{/eq}>历史学类</option>
  53. <option value="8" {eq name="8" value="$field.type"}selected{/eq}>经济学类</option>
  54. <option value="9" {eq name="9" value="$field.type"}selected{/eq}>法学</option>
  55. <option value="10" {eq name="10" value="$field.type"}selected{/eq}>体育学类</option>
  56. <option value="11" {eq name="11" value="$field.type"}selected{/eq}>工商管理类</option>
  57. <option value="12" {eq name="12" value="$field.type"}selected{/eq}>军事学</option>
  58. <option value="13" {eq name="13" value="$field.type"}selected{/eq}>新闻传播学类</option>
  59. <option value="14" {eq name="14" value="$field.type"}selected{/eq}>公共管理类</option>
  60. <option value="15" {eq name="15" value="$field.type"}selected{/eq}>中医学类</option>
  61. <option value="16" {eq name="16" value="$field.type"}selected{/eq}>药学类</option>
  62. <option value="17" {eq name="17" value="$field.type"}selected{/eq}>政治学类</option>
  63. <option value="18" {eq name="18" value="$field.type"}selected{/eq}>社会学类</option>
  64. <option value="19" {eq name="19" value="$field.type"}selected{/eq}>艺术类</option>
  65. <option value="20" {eq name="20" value="$field.type"}selected{/eq}>生物科学类</option>
  66. <option value="21" {eq name="21" value="$field.type"}selected{/eq}>农学</option>
  67. <option value="22" {eq name="22" value="$field.type"}selected{/eq}>其他</option>
  68. </select>
  69. */
  70. ?>
  71. <select name="type2" class="select" id="selectTest" style="margin:0px 5px;height:30px;">
  72. {eyou:foreach name='$pos_list' item='field1'}
  73. <option value="{$field1.id}" {eq name="$pid" value="$field1.id"}selected{/eq}>{$field1.name}</option>
  74. {/eyou:foreach}
  75. </select>
  76. {eyou:notempty name='$pos_list2' /}
  77. <select name="type" class="select" id="selectTest2" style="margin:0px 5px;height:30px;">
  78. {eyou:foreach name='$pos_list2' item='field1'}
  79. <option value="{$field1.id}" {eq name="$field.type" value="$field1.id"}selected{/eq}>{$field1.name}</option>
  80. {/eyou:foreach}
  81. </select>
  82. {eyou:else /}
  83. <span>请先添加二级分类</span>
  84. <input type="hidden" name="type" value="">
  85. {/eyou:notempty}
  86. <script>
  87. $(function(){
  88. $("#selectTest").change(function(e){
  89. console.log($(this).val());
  90. var v = $(this).val();
  91. if(v == 1){
  92. //$('#citychoose').show();
  93. }else{
  94. //$('#citychoose').hide();
  95. }
  96. //ajax
  97. $.ajax({
  98. type:'POST',
  99. url:"{:url('ZcsonPosition/getType', ['_ajax'=>1])}",
  100. data:{
  101. id: $(this).val()
  102. ,_ajax:1
  103. },
  104. success:function(res){
  105. $('#selectTest2').html(res.data);
  106. }
  107. });
  108. });
  109. });
  110. </script>
  111. </dd>
  112. </dl>
  113. <dl class="row" id="citychoose" style="display: none;" >
  114. <dt class="tit"> <label for="title"><em>*</em>地区选择</label> </dt>
  115. <dd class="opt">
  116. <!---checked $map_list-->
  117. {eyou:foreach name='$pro_list' item='field1'}
  118. <input type="checkbox" name="map[]" value="{$field1.id}" id="category{$field1.id}"
  119. {$field1.is_check}
  120. />{$field1.name}
  121. {/eyou:foreach}
  122. <span class="err"></span>
  123. <p class="notic2 red" id="title_tips"></p>
  124. </dd>
  125. </dl>
  126. <!--暂时找不到控制显示隐藏的地方-->
  127. <dl class="row 1615775137_dl" style="display: none;" id="1615775137_1" style="z-index: 2">
  128. <dt class="tit"> <label>主题背景</label> </dt>
  129. <dd class="opt">
  130. <div class="tab-pane" id="tab_imgupload">
  131. <table class="table table-bordered">
  132. <tbody>
  133. <tr>
  134. <td>
  135. <div class="sort-list">
  136. {volist name="ad_data" id="vo" key="k"}
  137. {eq name="$vo.media_type" value="1"}
  138. <div class="images_upload">
  139. <div class="ic">
  140. <div class='upimg' title="拖动修改排序" onmouseover="upimgMouseover(this);" onmouseout="upimgMouseout(this);">
  141. <div class='icaction' style="display: none" >
  142. <span class="load_images" onclick="Images('{$vo['litpic']}', 900, 600);">
  143. <a href="javascript:void(0);" style="color:white">
  144. <i class='fa fa-search-plus'></i>大图
  145. </a>
  146. </span>
  147. <span class="load_images" onclick="LoadImagesId('{$vo['id']}');">
  148. <i class='fa fa-photo'></i>更换
  149. </span>
  150. <span class="load_images" onclick="ShowInput('{$vo['id']}');">
  151. <i class='fa fa-file-text-o'></i>信息
  152. </span>
  153. </div>
  154. <div class='cover-bg' style="display: none" ></div>
  155. <img id="{$vo['id']}_Id" src="{$vo['litpic']}"/>
  156. {if condition="$main_lang == $admin_lang || !empty($global['language_split'])"}
  157. <a class="delect" href="javascript:void(0);" onclick="ClearPicArr(this,'{$vo['litpic']}','{$vo['id']}');" title="删除">
  158. </a>
  159. {/if}
  160. </div>
  161. <div class="load_input" id="{$vo['id']}_ShowInput" data-showOrHide="hide">
  162. <input type="hidden" name="img_id[]" value="{$vo['id']}"/>
  163. <span class="span_input">
  164. <input type="hidden" id="{$vo['id']}_Litpic" name="img_litpic[]" value="{$vo['litpic']}"/>
  165. </span>
  166. <textarea name="img_title[]" placeholder="请输入标题..." style="height: 28px;">{$vo.title}</textarea>
  167. <textarea name="img_links[]" placeholder="请输入链接网址..." style="height: 28px;">{$vo.links}</textarea>
  168. <textarea name="img_intro[]" placeholder="广告注释:支持HTML代码" style="height: 64px;">{$vo.intro}</textarea>
  169. <div class="operation">
  170. <a href="javascript:void(0);">
  171. <label>
  172. <input type="checkbox" {eq name="$vo['target']" value="1"} checked="checked" {/eq} title="在新窗口打开" onclick="CheckedTarget(this)"/>新窗口
  173. <input type="hidden" name="img_target[]" value="{$vo['target']}">
  174. </label>
  175. </a>
  176. <a href="javascript:void(0);" onclick="copyToClipBoard({$vo['id']});">
  177. <i class="fa fa-file-code-o"></i>标签调用
  178. </a>
  179. <a onclick="HideInput('{$vo['id']}');" style="width: 32%;" href="javascript:void(0);" title="收回"><i style="font-size:16px;" class="fa fa-angle-double-up"></i></a>
  180. </div>
  181. </div>
  182. </div>
  183. </div>
  184. {/eq}
  185. {/volist}
  186. <div class="images_upload"></div>
  187. </div>
  188. {if condition="$main_lang == $admin_lang || !empty($global['language_split'])"}
  189. <a href="javascript:void(0);" onClick="GetUploadify(30,'','allimg','imgupload_call_back');" class="img-upload b-img-upload mb15" title="点击上传">
  190. <div class="y-line"></div>
  191. <div class="x-line"></div>
  192. </a>
  193. {/if}
  194. <input type="hidden" id="ImagesId">
  195. </td>
  196. </tr>
  197. </tbody>
  198. </table>
  199. </div>
  200. <!-- 上传图片显示的样板 start -->
  201. <div class="images_upload_tpl none">
  202. <div class="images_upload ic">
  203. <div class="ic">
  204. <div class='upimg' title="拖动修改排序" onmouseover="upimgMouseover(this);" onmouseout="upimgMouseout(this);">
  205. <div class='icaction' style="display: none">
  206. <span class="load_images" onclick="">
  207. <a href="javascript:void(0);" style="color: white">
  208. <i class='fa fa-search-plus'></i>大图
  209. </a>
  210. </span>
  211. <span class="load_images" onclick="">
  212. <i class='fa fa-file-text-o'></i>信息
  213. </span>
  214. </div>
  215. <div class='cover-bg' style="display: none"></div>
  216. <img src="__STATIC__/admin/images/add-button.jpg"/>
  217. <a class="delect" href="javascript:void(0);" title="删除"></a>
  218. </div>
  219. <div class="load_input" data-showOrHide="hide">
  220. <input type="hidden"/>
  221. <span class="span_input"> <input type="hidden"/> </span>
  222. <textarea placeholder="请输入标题..." style="height: 28px;"></textarea>
  223. <textarea placeholder="请输入链接网址..." style="height: 28px;"></textarea>
  224. <textarea placeholder="广告注释:支持HTML代码" style="height: 64px;"></textarea>
  225. <div class="operation">
  226. <a href="javascript:void(0);">&nbsp;&nbsp;</a>
  227. <a href="javascript:void(0);">&nbsp;&nbsp;</a>
  228. <a style="width: 32%;" href="javascript:void(0);">&nbsp;&nbsp;</a>
  229. </div>
  230. </div>
  231. </div>
  232. </div>
  233. </div>
  234. <!-- 上传图片显示的样板 end -->
  235. </dd>
  236. </dl>
  237. <dl class="row 1615775137_dl" style="display: none;" id="1615775137_2" style="z-index: 2">
  238. <dt class="tit"> <label for="type">广告内容</label> </dt>
  239. <dd class="opt">
  240. <input type="hidden" name="video_id" {eq name="$ad_data.0.media_type" value="2"} value="{$ad_data.0.id}" {/eq} class="input-txt">
  241. <input type="text" name="video_litpic" id="video_litpic" {eq name="$ad_data.0.media_type" value="2"} value="{$ad_data.0.litpic}" {/eq} class="input-txt">
  242. <input type="file" id="courseware_file" data-type='local' onchange="upload_video_litpic_1615775137(this)" style="display: none;">
  243. {eq name="$WeappOpen.qny_open" value="1"}
  244. &nbsp;<a href="javascript:void(0);" class="ncap-btn ncap-btn-green" id="upload_video_litpic_qiniu" onclick="$('#courseware_file').attr('data-type', 'qiniu').trigger('click');">七牛云上传</a>
  245. {/eq}
  246. {eq name="$WeappOpen.oss_open" value="1"}
  247. &nbsp;<a href="javascript:void(0);" class="ncap-btn ncap-btn-green" id="upload_video_litpic_oss" onclick="$('#courseware_file').attr('data-type', 'oss').trigger('click');">oss上传</a>
  248. {/eq}
  249. {eq name="$WeappOpen.cos_open" value="1"}
  250. &nbsp;<a href="javascript:void(0);" class="ncap-btn ncap-btn-green" id="upload_video_litpic_cos" onclick="$('#courseware_file').attr('data-type', 'cos').trigger('click');">cos上传</a>
  251. {/eq}
  252. &nbsp;<a href="javascript:void(0);" class="ncap-btn ncap-btn-green " id="upload_video_litpic_local" onclick="$('#courseware_file').attr('data-type', 'local').trigger('click');">本地上传</a>
  253. <input type="hidden" id="OpenPreviewVideoUrl" value="{:url('ZcsonPosition/open_preview_video')}">
  254. &nbsp;<a href="javascript:void(0);" class="ncap-btn ncap-btn-green" id="PreviewVideo" onclick="OpenPreviewVideo();">预览</a>
  255. </dd>
  256. </dl>
  257. <dl class="row 1615775137_dl" style="display: none;" id="1615775137_3" style="z-index: 2">
  258. <dt class="tit"> <label for="type">广告内容</label> </dt>
  259. <dd class="opt">
  260. <input type="hidden" name="html_id" {eq name="$ad_data.0.media_type" value="3"} value="{$ad_data.0.id}" {/eq} class="input-txt">
  261. <textarea rows="5" cols="60" id="html_intro" name="html_intro" style="height: 200px;">{eq name="$ad_data.0.media_type" value="3"}{$ad_data.0.intro}{/eq}</textarea>
  262. <span class="err"></span>
  263. <p class="notic"></p>
  264. </dd>
  265. </dl>
  266. <dl class="row">
  267. <dt class="tit">
  268. <label>备注信息</label>
  269. </dt>
  270. <dd class="opt">
  271. <textarea rows="5" cols="60" id="intro" name="intro" style="height:60px;">{$field.intro}</textarea>
  272. <span class="err"></span>
  273. <p class="notic"></p>
  274. </dd>
  275. </dl>
  276. <div class="bot">
  277. <input type="hidden" name="id" id="1615775137_id" value="{$field.id}">
  278. <a href="JavaScript:void(0);" onclick="checkForm();" class="ncap-btn-big ncap-btn-green" id="submitBtn">确认提交</a>
  279. </div>
  280. </div>
  281. </form>
  282. </div>
  283. <script type="text/javascript">
  284. var SelectedType = '{$field.type}';
  285. $(function() {
  286. // 新增时,广告类型默认选中图片类型
  287. // $('#type'+SelectedType).prop('checked', 'checked');
  288. // 新增时,默认显示图片上传
  289. //$('#1615775137_'+SelectedType).show();
  290. // 多媒体类型 && 广告内容不为空 则执行显示 否则 执行隐藏
  291. VideoLitpicValue('#video_litpic');
  292. });
  293. // 切换广告类型
  294. function TypeSwitch(typeValue) {
  295. // 隐藏全部类型内容
  296. $('.1615775137_dl').hide();
  297. // 显示指定类型内容
  298. $('#1615775137_'+typeValue).show();
  299. // 切换类型后设置为当前切换的类型
  300. SelectedType = typeValue;
  301. // var ad_type = '{$field.type}';
  302. // if (typeValue != ad_type) {
  303. // // 切换至不同类型则显示
  304. // $('.notic2').show();
  305. // } else {
  306. // // 切换至相同类型则隐藏
  307. // $('.notic2').hide();
  308. // }
  309. }
  310. // 多媒体类型 && 广告内容不为空 则执行显示 否则 执行隐藏
  311. function VideoLitpicValue(obj) {
  312. // 获取广告内容(多媒体为播放链接)
  313. // var video_litpic = $(obj).val();
  314. // 判断隐藏显示预览按钮if (2 == SelectedType && video_litpic)
  315. if (2 == SelectedType) {
  316. $('#PreviewVideo').show();
  317. } else {
  318. $('#PreviewVideo').hide();
  319. }
  320. }
  321. // 打开预览视频
  322. function OpenPreviewVideo() {
  323. // 获取视频链接
  324. var video_litpic = $('#video_litpic').val();
  325. if (video_litpic == '') {
  326. $('#video_litpic').focus();
  327. showErrorMsg('请先上传视频');
  328. return false;
  329. }
  330. /* 视频链接后缀验证处理 */
  331. var fileExt = video_litpic.substr(video_litpic.lastIndexOf('.')).toLowerCase();
  332. var fileExt = judgeExt(fileExt);
  333. if (fileExt == -1) {
  334. $('#video_litpic').focus();
  335. showErrorMsg('不支持的视频格式,可在附件设置中修改');
  336. return false;
  337. }
  338. /* END */
  339. /* 视频链接是否存在斜杠处理 */
  340. var fileInfo = video_litpic.lastIndexOf('/');
  341. if (fileInfo == -1) {
  342. $('#video_litpic').focus();
  343. showErrorMsg('视频链接不完整,无法正常预览');
  344. return false;
  345. }
  346. /* END */
  347. // 打开视频播放
  348. $.ajax({
  349. type : 'post',
  350. url : $('#OpenPreviewVideoUrl').val(),
  351. data : {video_litpic: video_litpic},
  352. dataType : 'json',
  353. success : function(res) {
  354. if (1 == res.code) {
  355. var PreviewVideo = "<video style='width:100%; height:100%;' src='"+res.url+"' controls preload='auto' oncontextmenu='return fase' autoplay></video>";
  356. layer.open({
  357. type: 1,
  358. title: false,
  359. fixed: true, //不固定
  360. shadeClose: false,
  361. shade: layer_shade,
  362. area: ['80%', '80%'],
  363. content: PreviewVideo
  364. });
  365. } else {
  366. showErrorMsg(res.msg);
  367. }
  368. },
  369. error: function(e) {
  370. showErrorAlert(e.responseText);
  371. }
  372. });
  373. }
  374. // 上传媒体文件
  375. function upload_video_litpic_1615775137(e) {
  376. var data_type = $(e).attr('data-type');
  377. if ('qiniu' == data_type) {
  378. // 七牛云上传
  379. upload_video_litpic_qiniu(e);
  380. } else if ('oss' == data_type) {
  381. // OSS上传
  382. upload_video_litpic_oss(e);
  383. } else if ('cos' == data_type) {
  384. // COS上传
  385. upload_video_litpic_cos(e);
  386. } else {
  387. // 本地上传
  388. upload_video_litpic_local(e);
  389. }
  390. }
  391. // 七牛云上传
  392. function upload_video_litpic_qiniu(e) {
  393. // 获取文件路径名
  394. var file = $(e)[0].files[0];
  395. // 验证上传格式
  396. var fileName = file.name;
  397. var fileExt = fileName.substr(fileName.lastIndexOf('.')).toLowerCase();
  398. var ext = judgeExt(fileExt);
  399. if (ext == -1) {
  400. showErrorMsg('不支持选中的视频格式,可在附件设置中修改');
  401. return false;
  402. }
  403. // 验证上传大小
  404. var size = "{$upload_max_filesize}";
  405. if (file.size > size) {
  406. showErrorMsg('视频大小超过限制,可在附件设置中修改');
  407. return false;
  408. }
  409. // 执行上传
  410. layer_loading('上传七牛云');
  411. $.ajax({
  412. type: 'POST',
  413. url: '__ROOT_DIR__/index.php?m=plugins&c=Qiniuyun&a=qiniu_upload',
  414. data: {_ajax: 1},
  415. dataType: "JSON",
  416. success: function(res1) {
  417. if (1 == res1.code) {
  418. var token = res1.data.token;
  419. var formData = new FormData();
  420. formData.append('file', file);
  421. formData.append('token', token);
  422. fileName = res1.data.filePath + fileExt;
  423. formData.append('key', fileName);
  424. $.ajax({
  425. url: res1.data.uphost,
  426. type: 'POST',
  427. dataType: 'JSON',
  428. data: formData,
  429. timeout: 1200000,
  430. cache: false,
  431. processData: false,
  432. contentType: false,
  433. xhr: function () {
  434. myXhr = $.ajaxSettings.xhr();
  435. if (myXhr.upload) {
  436. myXhr.upload.addEventListener('progress', function(e){
  437. var curr = e.loaded;
  438. var total = e.total;
  439. process = parseInt(curr / total * 100);
  440. $("#upload_video_litpic_qiniu").text('上传中...'+process+"%");
  441. });
  442. }
  443. return myXhr;
  444. },
  445. success: function(res2) {
  446. layer.closeAll();
  447. $("#upload_video_litpic_qiniu").text('上传成功');
  448. setTimeout(function() {
  449. $('#upload_video_litpic_qiniu').text('七牛云上传');
  450. }, 2000);
  451. var video_url = res1.data.domain + "/" + res2.key;
  452. $("#video_litpic").empty().val(video_url);
  453. },
  454. error: function(e) {
  455. layer.closeAll();
  456. showErrorMsg(e.responseText);
  457. return false;
  458. }
  459. });
  460. } else {
  461. layer.closeAll();
  462. showErrorMsg(res1.msg);
  463. }
  464. },
  465. error: function(e) {
  466. layer.closeAll();
  467. showErrorMsg(e.responseText);
  468. }
  469. });
  470. }
  471. // 阿里云OSS上传
  472. function upload_video_litpic_oss(e) {
  473. // 获取文件路径名
  474. var file = $(e)[0].files[0];
  475. // 验证上传格式
  476. var fileName = file.name;
  477. var fileExt = fileName.substr(fileName.lastIndexOf('.')).toLowerCase();
  478. var ext = judgeExt(fileExt);
  479. if (ext == -1) {
  480. showErrorMsg('不支持选中的视频格式,可在附件设置中修改');
  481. return false;
  482. }
  483. // 验证上传大小
  484. var size = "{$upload_max_filesize}";
  485. if (file.size > size) {
  486. showErrorMsg('视频大小超过限制,可在附件设置中修改');
  487. return false;
  488. }
  489. // 执行上传
  490. layer_loading('上传阿里云OSS');
  491. $.ajax({
  492. type: 'POST',
  493. url: '__ROOT_DIR__/index.php?m=plugins&c=AliyunOss&a=oss_upload',
  494. data: {_ajax: 1},
  495. dataType: "JSON",
  496. success: function(res1){
  497. if (1 == res1.code){
  498. fileName = res1.data.filePath + fileExt;
  499. //组装发送数据
  500. var request = new FormData();
  501. request.append("OSSAccessKeyId",res1.data.accessid);
  502. request.append("policy",res1.data.policy);
  503. request.append("Signature",res1.data.signature);
  504. request.append("key",fileName);
  505. request.append("success_action_status",201);
  506. request.append('file', file);
  507. $.ajax({
  508. url : res1.data.host,
  509. data : request,
  510. processData: false,
  511. cache: false,
  512. contentType: false,
  513. dataType: 'xml',
  514. type : 'post',
  515. xhr: function () {
  516. myXhr = $.ajaxSettings.xhr();
  517. if (myXhr.upload) {
  518. myXhr.upload.addEventListener('progress', function(e){
  519. var curr = e.loaded;
  520. var total = e.total;
  521. var process = parseInt(curr / total * 100);
  522. $("#upload_video_litpic_oss").text('上传中...'+process+"%");
  523. });
  524. }
  525. return myXhr;
  526. },
  527. success : function(data) {
  528. layer.closeAll();
  529. var res = $(data).find('PostResponse');
  530. if (res) {
  531. var key = res.find('Key').text();
  532. $("#upload_video_litpic_oss").text('上传成功');
  533. setTimeout(function() {
  534. $('#upload_video_litpic_oss').text('oss上传');
  535. }, 2000);
  536. var video_url = res1.data.domain + "/" + key;
  537. $("#video_litpic").val(video_url);
  538. } else {
  539. $("#upload_video_litpic_oss").text('上传失败');
  540. setTimeout(function() {
  541. $('#upload_video_litpic_oss').text('oss上传');
  542. }, 2000);
  543. }
  544. },
  545. error : function(e) {
  546. layer.closeAll();
  547. console.log(e.responseText);
  548. }
  549. });
  550. } else {
  551. layer.closeAll();
  552. showErrorMsg(res1.msg);
  553. }
  554. },
  555. error: function(e) {
  556. layer.closeAll();
  557. showErrorMsg(e.responseText);
  558. }
  559. });
  560. }
  561. // 腾讯云COS上传
  562. function upload_video_litpic_cos(e) {
  563. // 获取文件路径名
  564. var file = $(e)[0].files[0];
  565. // 验证上传格式
  566. var fileName = file.name;
  567. var fileExt = fileName.substr(fileName.lastIndexOf('.')).toLowerCase();
  568. var ext = judgeExt(fileExt);
  569. if (ext == -1) {
  570. showErrorMsg('不支持选中的视频格式,可在附件设置中修改');
  571. return false;
  572. }
  573. // 验证上传大小
  574. var size = "{$upload_max_filesize}";
  575. if (file.size > size) {
  576. showErrorMsg('视频大小超过限制,可在附件设置中修改');
  577. return false;
  578. }
  579. // 上传参数
  580. var formData = new FormData();
  581. formData.append('file', file);
  582. formData.append('file_ext', fileExt);
  583. // 执行上传
  584. $.ajax({
  585. type: 'post',
  586. url: '__ROOT_DIR__/index.php?m=plugins&c=Cos&a=cos_upload&_ajax=1',
  587. data: formData,
  588. contentType: false,
  589. processData: false,
  590. dataType: 'json',
  591. xhr: function () {
  592. myXhr = $.ajaxSettings.xhr();
  593. if (myXhr.upload) {
  594. myXhr.upload.addEventListener('progress', function(e){
  595. var curr = e.loaded;
  596. var total = e.total;
  597. process = parseInt(curr / total * 100);
  598. if (100 == process) {
  599. process = 99;
  600. layer_loading('上传腾讯云COS');
  601. }
  602. $("#upload_video_litpic_cos").text('上传中...'+process+"%");
  603. });
  604. }
  605. return myXhr;
  606. },
  607. success: function(res) {
  608. layer.closeAll();
  609. if (1 == res.code) {
  610. $("#video_litpic").val(res.data.url);
  611. $("#upload_video_litpic_cos").text('上传成功');
  612. } else {
  613. $("#upload_video_litpic_cos").text('上传失败');
  614. }
  615. setTimeout(function() {
  616. $('#upload_video_litpic_cos').text('cos上传');
  617. }, 2000);
  618. },
  619. error: function(e) {
  620. layer.closeAll();
  621. showErrorMsg(e.responseText);
  622. }
  623. });
  624. }
  625. // 本地上传
  626. function upload_video_litpic_local(e) {
  627. // 获取文件路径名
  628. var file = $(e)[0].files[0];
  629. // 验证上传格式
  630. var fileName = file.name;
  631. var fileExt = fileName.substr(fileName.lastIndexOf('.')).toLowerCase();
  632. var ext = judgeExt(fileExt);
  633. if (ext == -1) {
  634. showErrorMsg('不支持选中的视频格式,可在附件设置中修改');
  635. return false;
  636. }
  637. // 验证上传大小
  638. var size = "{$upload_max_filesize}";
  639. if (file.size > size) {
  640. showErrorMsg('视频大小超过限制,可在附件设置中修改');
  641. return false;
  642. }
  643. // 定义上传数据
  644. var formData = new FormData();
  645. formData.append('file', file);
  646. // 执行上传
  647. layer_loading('上传本地');
  648. $.ajax({
  649. type: 'post',
  650. url : "{:url('Ueditor/upVideo', ['savepath'=>'media'])}",
  651. data: formData,
  652. contentType: false,
  653. processData: false,
  654. dataType: 'json',
  655. xhr: function () {
  656. myXhr = $.ajaxSettings.xhr();
  657. if (myXhr.upload) {
  658. myXhr.upload.addEventListener('progress', function(e){
  659. var curr = e.loaded;
  660. var total = e.total;
  661. process = parseInt(curr / total * 100);
  662. $("#upload_video_litpic_local").html('上传中...'+process+"%");
  663. });
  664. }
  665. return myXhr;
  666. },
  667. success: function (res) {
  668. layer.closeAll();
  669. $("#upload_video_litpic_local").html('上传成功');
  670. setTimeout(function() {
  671. $('#upload_video_litpic_local').html('本地上传');
  672. }, 2000);
  673. if ("SUCCESS" == res.state) {
  674. $("#video_litpic").val(res.url);
  675. } else {
  676. showErrorMsg(res.msg);
  677. }
  678. }
  679. });
  680. }
  681. // 验证格式
  682. function judgeExt(ext) {
  683. var type = "{$media_type}";
  684. var extArr = [];
  685. extArr = type.split("|");
  686. var ext = ext.replace(".","");
  687. return extArr.indexOf(ext);
  688. }
  689. </script>
  690. <script type="text/javascript">
  691. // 勾选新窗口打开链接
  692. function CheckedTarget(t){
  693. if ($(t).is(':checked')) {
  694. $(t).parent().find('input[name="img_target[]"]').val(1);
  695. }else{
  696. $(t).parent().find('input[name="img_target[]"]').val(0);
  697. }
  698. }
  699. // 鼠标事件,加载查看大图和更新图片
  700. function upimgMouseover(obj)
  701. {
  702. $(obj).find('div.icaction').show();
  703. $(obj).find('div.cover-bg').show();
  704. }
  705. function upimgMouseout(obj)
  706. {
  707. $(obj).find('div.icaction').hide();
  708. $(obj).find('div.cover-bg').hide();
  709. }
  710. // 检测广告名称是否存在重复
  711. function DetectionTitleRepeat(obj) {
  712. // 当前广告ID
  713. var id = $('#1615775137_id').val();
  714. // 传入的广告名称
  715. var title = $(obj).val();
  716. // 执行检测
  717. $.ajax({
  718. type: 'post',
  719. url : "{:url('ZcsonPosition/detection_title_repeat', ['_ajax'=>1])}",
  720. data: {id: id, title: title},
  721. dataType: 'json',
  722. success: function(res) {
  723. if (0 == res.code) {
  724. $('#title_tips').show().html(res.msg);
  725. } else {
  726. $('#title_tips').hide().html('');
  727. }
  728. },
  729. error: function(e){
  730. layer.closeAll();
  731. showErrorAlert(e.responseText);
  732. }
  733. });
  734. }
  735. // 判断输入框是否为空
  736. function checkForm(){
  737. if($('input[name=title]').val() == ''){
  738. layer.msg('广告位名称不能为空!', {icon: 2,time: 1000});
  739. return false;
  740. }
  741. if($('input[name=type]').val() == ''){
  742. layer.msg('分类不能为空,请添加二级分类!', {icon: 2,time: 1000});
  743. return false;
  744. }
  745. /*if($('#selectTest').val() == '1'){
  746. var checkedValues = [];
  747. $('#post_form input[type=checkbox]:checked').each(function() {
  748. checkedValues.push($(this).val());
  749. });
  750. console.log(checkedValues); // 打印选中的checkbox值
  751. if(checkedValues.length > 0){
  752. }else{
  753. layer.msg('请选择地区!', {icon: 2,time: 1000});
  754. return false;
  755. }
  756. }*/
  757. //打印
  758. /*console.log($('#post_form').serialize());
  759. return false;*/
  760. layer_loading('正在处理');
  761. $.ajax({
  762. type : 'post',
  763. url : "{:url('ZcsonPosition/edit', ['_ajax'=>1])}",
  764. data : $('#post_form').serialize(),
  765. dataType : 'json',
  766. success : function(res){
  767. layer.closeAll();
  768. if (res.code == 1) {
  769. layer.msg(res.msg, {icon: 1, shade: layer_shade, time: 1000}, function(){
  770. window.location.reload();
  771. });
  772. } else {
  773. showErrorMsg(res.msg);
  774. }
  775. },
  776. error: function(e){
  777. layer.closeAll();
  778. showErrorAlert(e.responseText);
  779. }
  780. });
  781. }
  782. // 获取点击更新图片的ID并加载隐藏域
  783. function LoadImagesId(id){
  784. // 加载ID到隐藏域
  785. $('#ImagesId').val(id);
  786. // 调用图片上传JS
  787. GetUploadify(1,'','allimg','UpdataImages');
  788. }
  789. // 更新图片
  790. function UpdataImages(path){
  791. // 获取点击的ID
  792. var id = $('#ImagesId').val();
  793. // 加载图片到显示层
  794. $("#"+id+"_Id").attr('src', path);
  795. // 加载图片到提交的隐藏域
  796. $("#"+id+"_Litpic").val(path);
  797. }
  798. // 显示信息输入框
  799. function ShowInput(id) {
  800. var obj = $("#"+id+"_ShowInput");
  801. var showOrHide = obj.attr('data-showOrHide');
  802. if ('hide' == showOrHide) {
  803. obj.show().attr('data-showOrHide', 'show');
  804. } else {
  805. obj.hide().attr('data-showOrHide', 'hide');
  806. }
  807. }
  808. // 隐藏信息输入
  809. function HideInput(id) {
  810. $("#"+id+"_ShowInput").hide().attr('data-showOrHide', 'hide');
  811. }
  812. // 上传图集相册回调函数
  813. function imgupload_call_back(paths){
  814. var last_div = $(".images_upload_tpl").html();
  815. var inputs = $('.span_input input');
  816. var timestamp = 0;
  817. // 图片数据处理
  818. for (var i=0; i<paths.length; i++) {
  819. // 生成新的时间戳
  820. timestamp = (new Date()).getTime();
  821. // 插入一个 新图片
  822. $(".images_upload:eq(0)").before(last_div);
  823. // 处理他的链接地址
  824. $(".images_upload:eq(0)").find('span:eq(0)').attr('onclick', "Images('"+paths[i]+"', 900, 600);");
  825. // 处理信息显示隐藏按钮
  826. $(".images_upload:eq(0)").find('span:eq(1)').attr('onclick', "ShowInput('"+timestamp+"');");
  827. // 处理他的图片路径
  828. $(".images_upload:eq(0)").find('img').attr('src', paths[i]);
  829. // 处理删除按钮
  830. $(".images_upload:eq(0)").find('a:eq(1)').attr('onclick', "ClearPicArr(this, '"+paths[i]+"', 0);");
  831. // 处理图片信息框ID
  832. $(".images_upload:eq(0)").find('.load_input:eq(0)').attr('id', timestamp+'_ShowInput');
  833. // 处理图片路径及隐藏域
  834. if (inputs.length > 0) {
  835. // 修改隐藏域
  836. $(".images_upload:eq(0)").find('input:eq(0)').attr('name', 'img_id[]').attr('value', '');
  837. $(".span_input:eq(0)").find('input:eq(0)').attr('name', 'img_litpic[]').attr('value', paths[i]);
  838. // 处理标题
  839. $(".images_upload:eq(0)").find('textarea:eq(0)').attr('name', 'img_title[]');
  840. // 处理跳转链接
  841. $(".images_upload:eq(0)").find('textarea:eq(1)').attr('name', 'img_links[]');
  842. // 处理内容描述
  843. $(".images_upload:eq(0)").find('textarea:eq(2)').attr('name', 'img_intro[]');
  844. // 处理新窗口选项
  845. $(".images_upload:eq(0)").find('div.operation a:eq(0)').html("<label><input type='checkbox' title='在新窗口打开' onclick='CheckedTarget(this);'/>新窗口<input type='hidden' name='img_target[]' value='0'></label>");
  846. // 处理收回按钮
  847. $(".images_upload:eq(0)").find('div.operation a:eq(2)').attr('onclick', "HideInput('"+timestamp+"');").attr('title', "收回").html('<i style="font-size:16px;" class="fa fa-angle-double-up"></i>');
  848. }
  849. }
  850. }
  851. // 上传之后删除组图input
  852. function ClearPicArr(obj, path, id) {
  853. // 删除数据库记录
  854. $.ajax({
  855. type:'POST',
  856. url:"{:url('ZcsonPosition/del_imgupload')}",
  857. data:{del_id:id,_ajax:1},
  858. success:function(){
  859. $(obj).parent().parent().parent().remove(); // 删除完服务器的, 再删除 html上的图片
  860. $.ajax({
  861. type:'POST',
  862. url:"{:url('Uploadimgnew/delupload')}",
  863. data:{action:"del", filename:path,_ajax:1},
  864. success:function(){}
  865. });
  866. }
  867. });
  868. }
  869. // 代码调用js
  870. function copyToClipBoard(id) {
  871. var adstr = "{eyou:ad aid='" + id + "'}\r\n <a href='{$"+"field.links}' {$"+"field.target}><img src='{$"+"field.litpic}' alt='{$"+"field.title}' /></a>\r\n 广告注释:{$"+"field.intro}\r\n{/eyou:ad";
  872. var contentdiv = '<div class="dialog_content" style="margin: 0px; padding: 0px;"><dl style="padding:10px 30px;line-height:30px"><dd>标签 ad 调用:</dd>';
  873. contentdiv += '<textarea rows="4" cols="60" style="width:400px;height:100px;">' + adstr + '}</textarea>';
  874. contentdiv += '<dd style="border-top: dotted 1px #E7E7E7; color: #F60;">请将对应标签代码复制并粘贴到对应模板文件中!</dd></dl></div>';
  875. layer.open({
  876. title: '代码调用',
  877. type: 1,
  878. shade: layer_shade,
  879. skin: 'layui-layer-demo',
  880. area: ['480px', '260px'], //宽高
  881. content: contentdiv
  882. });
  883. }
  884. // 图集相册的拖动排序相关 js
  885. $( ".sort-list" ).sortable({
  886. start: function( event, ui) {
  887. }
  888. ,stop: function( event, ui ) {
  889. }
  890. });
  891. //因为他们要拖动,所以尽量设置他们的文字不能选择。
  892. // $( ".sort-list" ).disableSelection();
  893. </script>
  894. {include file="public/footer" /}