暫無描述
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.

users_release_field_m.htm 39KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909
  1. {volist name="$addonFieldExtList" id="vo"}
  2. {if !isset($vo.ifeditable) || $vo.ifeditable}
  3. {switch name="vo.dtype"}
  4. {case value="hidden"}
  5. <!-- 隐藏域 start -->
  6. <div class="item-from-row" style="display: none;">
  7. <div class="from-row-l">
  8. <label>{if condition="isset($vo['ifrequire']) AND !empty($vo['ifrequire'])"}<span class="red">*</span>{/if}{$vo.title|default=''}:</label>
  9. </div>
  10. <div class="from-row-r">
  11. <input type="hidden" class="el-input__inner wb84" id="{$vo.fieldArr}_{$vo.name|default=''}" name="{$vo.fieldArr}[{$vo.name|default=''}]" value="{$vo.dfvalue|default=''}">
  12. <span class="err"></span>
  13. <p class="notic">{$vo.remark|default=''}</p>
  14. </div>
  15. </div>
  16. <!-- 隐藏域 start -->
  17. {/case}
  18. {case value="region"}
  19. <!-- 区域选项 start -->
  20. <div class="ey-con ey-row mt10">
  21. <div class="item-from-flex">
  22. <div class="item-flex-l">
  23. <div class="item-tit">
  24. {if condition="isset($vo['ifrequire']) AND !empty($vo['ifrequire'])"}<span class="red">*</span>{/if}{$vo.title|default=''}
  25. </div>
  26. <div class="item-con">
  27. {volist name="$vo.dfvalue" id="v2"}
  28. <label class="radio-label">
  29. <input type="radio" class="radio" id="{$vo.fieldArr}_{$vo.name|default=''}" name="{$vo.fieldArr}[{$vo.name|default=''}]" value="{$v2['id']}" {if condition="isset($vo['trueValue']) AND in_array($v2['id'], $vo['trueValue'])"}checked="checked"{/if}>
  30. <span class="check-mark"></span>
  31. <span class="text">{$v2['name']}</span>
  32. </label>
  33. {/volist}
  34. <span class="err"></span>
  35. <p class="notic">{$vo.remark|default=''}</p>
  36. </div>
  37. </div>
  38. </div>
  39. </div>
  40. <!-- 区域选项 end -->
  41. {/case}
  42. {case value="text"}
  43. <!-- 单行文本框 start -->
  44. <div class="ey-con ey-row mt10">
  45. <div class="item-from-flex">
  46. <div class="item-flex-l">
  47. <div class="item-tit">
  48. {if condition="isset($vo['ifrequire']) AND !empty($vo['ifrequire'])"}<span class="red">*</span>{/if}{$vo.title|default=''}
  49. </div>
  50. <div class="item-con">
  51. <input type="text" class="input-text fs16" id="{$vo.fieldArr}_{$vo.name|default=''}" name="{$vo.fieldArr}[{$vo.name|default=''}]" value="{$vo.dfvalue|default=''}" placeholder="请输入">
  52. <span class="err"></span>
  53. <p class="notic">{$vo.remark|default=''}</p>
  54. <span class="unit">{$vo.dfvalue_unit|default=''}</span>
  55. </div>
  56. </div>
  57. </div>
  58. </div>
  59. <!-- 单行文本框 end -->
  60. {/case}
  61. {case value="multitext"}
  62. <!-- 多行文本框 start -->
  63. <div class="ey-con ey-row mt10">
  64. <div class="item-from-flex">
  65. <div class="item-flex-l">
  66. <div class="item-tit">
  67. {if condition="isset($vo['ifrequire']) AND !empty($vo['ifrequire'])"}<span class="red">*</span>{/if}{$vo.title|default=''}
  68. </div>
  69. <div class="item-con">
  70. <textarea rows="5" cols="60" id="{$vo.fieldArr}_{$vo.name|default=''}" name="{$vo.fieldArr}[{$vo.name|default=''}]" class="fs16" style="height:60px;width:100%;font-size: 16px;">{$vo.dfvalue|default=''}</textarea>
  71. <span class="err"></span>
  72. <p class="notic">{$vo.remark|default=''}</p>
  73. </div>
  74. </div>
  75. </div>
  76. </div>
  77. <!-- 多行文本框 end -->
  78. {/case}
  79. {case value="checkbox"}
  80. <!-- 复选框 start -->
  81. <div class="ey-con ey-row mt10">
  82. <div class="item-from-flex">
  83. <div class="item-flex-l">
  84. <div class="item-tit">
  85. {if condition="isset($vo['ifrequire']) AND !empty($vo['ifrequire'])"}<span class="red">*</span>{/if}{$vo.title|default=''}
  86. </div>
  87. <div class="item-con">
  88. {volist name="$vo.dfvalue" id="v2"}
  89. <label class="checkbox-label">
  90. <input type="checkbox" class="checkbox" name="{$vo.fieldArr}[{$vo.name|default=''}][]" value="{$v2}" {if condition="isset($vo['trueValue']) AND in_array($v2, $vo['trueValue'])"}checked="checked"{/if}>
  91. <span class="check-mark"></span>
  92. <span class="text">{$v2}</span>
  93. </label>
  94. {/volist}
  95. <span class="err"></span>
  96. <p class="notic">{$vo.remark|default=''}</p>
  97. </div>
  98. </div>
  99. </div>
  100. </div>
  101. <!-- 复选框 end -->
  102. {/case}
  103. {case value="radio"}
  104. <!-- 单选项 start -->
  105. <div class="ey-con ey-row mt10">
  106. <div class="item-from-flex">
  107. <div class="item-flex-l">
  108. <div class="item-tit">
  109. {if condition="isset($vo['ifrequire']) AND !empty($vo['ifrequire'])"}<span class="red">*</span>{/if}{$vo.title|default=''}
  110. </div>
  111. <div class="item-con">
  112. {volist name="$vo.dfvalue" id="v2"}
  113. <label class="radio-label">
  114. <input type="radio" class="radio" id="{$vo.fieldArr}_{$vo.name|default=''}" name="{$vo.fieldArr}[{$vo.name|default=''}]" value="{$v2}" {if condition="isset($vo['trueValue']) AND in_array($v2, $vo['trueValue'])"}checked="checked"{/if}> <span class="check-mark"></span>
  115. <span class="text">{$v2}</span>
  116. </label>
  117. {/volist}
  118. <span class="err"></span>
  119. <p class="notic">{$vo.remark|default=''}</p>
  120. </div>
  121. </div>
  122. </div>
  123. </div>
  124. <!-- 单选项 end -->
  125. {/case}
  126. {case value="switch"}
  127. <!-- 开关 start -->
  128. <div class="ey-con ey-row mt10">
  129. <div class="item-from-flex">
  130. <div class="item-flex wb25">
  131. <div class="item-tit">
  132. {if condition="isset($vo['ifrequire']) AND !empty($vo['ifrequire'])"}<span class="red">*</span>{/if}{$vo.title|default=''}
  133. </div>
  134. </div>
  135. <div class="item-flex-r flex wb75">
  136. <div class="on-off">
  137. <label for="{$vo.fieldArr}_{$vo.name|default=''}1" class="cb-enable {if condition="0 != $vo['dfvalue']"}selected{/if}">是</label>
  138. <label for="{$vo.fieldArr}_{$vo.name|default=''}0" class="cb-disable {if condition="0 == $vo['dfvalue']"}selected{/if}">否</label>
  139. <input id="{$vo.fieldArr}_{$vo.name|default=''}1" name="{$vo.fieldArr}[{$vo.name|default=''}]" value="1" type="radio" {if condition="0 != $vo['dfvalue']"}checked="checked"{/if}>
  140. <input id="{$vo.fieldArr}_{$vo.name|default=''}0" name="{$vo.fieldArr}[{$vo.name|default=''}]" value="0" type="radio" {if condition="0 == $vo['dfvalue']"}checked="checked"{/if}>
  141. </div>
  142. <span class="err"></span>
  143. <p class="notic">{$vo.remark|default=''}</p>
  144. </div>
  145. <div class="item-flex-r">
  146. <i class="el-icon-arrow-right"></i>
  147. </div>
  148. </div>
  149. </div>
  150. <script type="text/javascript">
  151. $(function(){
  152. //自定义radio样式
  153. $(".cb-enable").on('click', function(){
  154. var parent = $(this).parents('.on-off');
  155. $('.cb-disable',parent).removeClass('selected');
  156. $(this).addClass('selected');
  157. $('.checkbox',parent).attr('checked', true);
  158. });
  159. $(".cb-disable").on('click', function(){
  160. var parent = $(this).parents('.on-off');
  161. $('.cb-enable',parent).removeClass('selected');
  162. $(this).addClass('selected');
  163. $('.checkbox',parent).attr('checked', false);
  164. });
  165. });
  166. </script>
  167. <!-- 开关 end -->
  168. {/case}
  169. {case value="select"}
  170. <!-- 下拉框 start -->
  171. <div class="ey-con ey-row mt10">
  172. <div class="item-from-flex">
  173. <div class="item-flex wb25">
  174. <div class="item-tit">
  175. {if condition="isset($vo['ifrequire']) AND !empty($vo['ifrequire'])"}<span class="red">*</span>{/if}{$vo.title|default=''}
  176. </div>
  177. </div>
  178. <div class="item-flex-r wb75">
  179. <div class="select">
  180. <select name="{$vo.fieldArr}[{$vo.name|default=''}]" id="{$vo.fieldArr}_{$vo.name|default=''}">
  181. {volist name="$vo.dfvalue" id="v2"}
  182. <option value="{$v2}" {if condition="isset($vo['trueValue']) AND in_array($v2, $vo['trueValue'])"}selected{/if}>{$v2}</option>
  183. {/volist}
  184. </select>
  185. </div>
  186. <span class="err"></span>
  187. <p class="notic">{$vo.remark|default=''}</p>
  188. </div>
  189. </div>
  190. </div>
  191. <!-- 下拉框 end -->
  192. {/case}
  193. {case value="img"}
  194. <div class="ey-con ey-row mt10">
  195. <div class="item-from-flex">
  196. <div class="item-flex wb25">
  197. <div class="item-tit">
  198. {$vo.title}:
  199. </div>
  200. </div>
  201. <div class="item-flex-r wb75">
  202. <div class="item-flex-img">
  203. <img id="img_{$vo.fieldArr}_{$vo.name|default=''}" class="img-fluid" src="{$vo['dfvalue']|default='__PUBLIC__/static/common/images/not_upload_pic.png'}" onclick="$('#file_{$vo.fieldArr}_{$vo.name|default=''}').trigger('click');" style="cursor: pointer;"/>
  204. <input type="file" id="file_{$vo.fieldArr}_{$vo.name|default=''}" onchange="upload_{$vo.fieldArr}_{$vo.name|default=''}(this)" style="display: none;">
  205. <input type="hidden" name="{$vo.fieldArr}[{$vo.name|default=''}]" id="{$vo.fieldArr}_{$vo.name|default=''}" value="{$vo.dfvalue|default=''}">
  206. <span id="txt_{$vo.fieldArr}_{$vo.name|default=''}" style="cursor: pointer; display: none;" onclick="$('#file_{$vo.fieldArr}_{$vo.name|default=''}').trigger('click');">点击修改</span>
  207. </div>
  208. </div>
  209. <div class="item-flex-r">
  210. <i class="el-icon-arrow-right"></i>
  211. </div>
  212. </div>
  213. </div>
  214. <script type="text/javascript">
  215. // 单图上传 2021.01.05
  216. function upload_{$vo.fieldArr}_{$vo.name|default=''}(e){
  217. var file = $(e)[0].files[0];
  218. if (!file) {
  219. return false;
  220. }
  221. var formData = new FormData();
  222. formData.append('file',file);
  223. formData.append('_ajax',1);
  224. layer_loading('正在处理');
  225. $.ajax({
  226. type: 'post',
  227. url: eyou_basefile + "?m=user&c=Uploadify&a=imageUp",
  228. data: formData,
  229. contentType: false,
  230. processData: false,
  231. dataType: 'json',
  232. success: function (res) {
  233. if (res.state == 'SUCCESS') {
  234. $("#{$vo.fieldArr}_{$vo.name|default=''}").val(res.url)
  235. $("#img_{$vo.fieldArr}_{$vo.name|default=''}").attr('src',res.url);
  236. $('#txt_{$vo.fieldArr}_{$vo.name|default=''}').show();
  237. layer.closeAll();
  238. } else {
  239. layer.closeAll();
  240. showErrorAlert(res.state);
  241. }
  242. },
  243. error : function(e) {
  244. layer.closeAll();
  245. showErrorAlert(e.responseText);
  246. }
  247. })
  248. }
  249. </script>
  250. <!-- 单张图 end -->
  251. {/case}
  252. {case value="file"}
  253. {eyou:static file="/public/plugins/layui/css/layui.css" /}
  254. <!-- {eyou:static file="/public/plugins/layui/layui.js" /} -->
  255. <!-- 单个文件 start -->
  256. <div class="ey-con ey-row mt10">
  257. <div class="item-from-flex">
  258. <div class="item-flex wb25">
  259. <div class="item-tit">
  260. {$vo.title}
  261. </div>
  262. </div>
  263. <div class="item-flex-r wb75">
  264. <a id="download_file_{$vo.fieldArr}_{$vo.name|default=''}" style="margin-right: 30px;text-decoration: underline;{eyou:notempty name='$vo.dfvalue' /}display: '';{eyou:else /}display: none;{/eyou:notempty}"
  265. {eyou:notempty name='$vo.dfvalue' /} href="{$vo.dfvalue|default=''}" download="{$vo.dfvalue|get_filename=###}" {/eyou:notempty}>
  266. <img src="__STATIC__/common/images/file.png" alt="" style="width: 16px;height: 16px;">下载附件</a>
  267. <input type="text" id="{$vo.fieldArr}_{$vo.name|default=''}" name="{$vo.fieldArr}[{$vo.name|default=''}]" value="{$vo.dfvalue|default=''}" style="display: none;">
  268. <button type="button" class="el-button el-button--primary is-plain el-button--small" id="upload_{$vo.fieldArr}_{$vo.name|default=''}" ><i class="el-icon-paperclip"></i>上传文件</button>
  269. </div>
  270. <div class="item-flex-r">
  271. <i class="el-icon-arrow-right"></i>
  272. </div>
  273. </div>
  274. </div>
  275. <script type="text/javascript">
  276. $(function(){
  277. layui.use('upload', function(){
  278. var upload = layui.upload,
  279. layer = layui.layer;
  280. //执行实例
  281. var uploadInst = upload.render({
  282. elem: "#upload_{$vo.fieldArr}_{$vo.name|default=''}" //绑定元素
  283. ,url: "{:url('user/Uploadify/DownloadUploadFileAjax')}"
  284. ,accept: 'file' //普通文件
  285. ,exts: '{$vo.ext}'
  286. ,size: {$vo.filesize} //限制文件大小,单位 KB
  287. ,done: function(res){
  288. //上传完毕回调
  289. if (res.state=="SUCCESS"){
  290. layer.msg('上传成功!')
  291. $("#{$vo.fieldArr}_{$vo.name|default=''}").val(res.url);
  292. $("#download_file_{$vo.fieldArr}_{$vo.name|default=''}").css('display','');
  293. $("#download_file_{$vo.fieldArr}_{$vo.name|default=''}").attr('href',res.url);
  294. var arr = res.url.split("/");
  295. var download = arr[arr.length-1];
  296. $("#download_file_{$vo.fieldArr}_{$vo.name|default=''}").attr('download',download);
  297. $("#download_file_{$vo.fieldArr}_{$vo.name|default=''}").css('color','#000');
  298. $("#download_file_{$vo.fieldArr}_{$vo.name|default=''}").html(' <img src="__STATIC__/common/images/file.png" alt="" style="width: 16px;height: 16px;">下载附件');
  299. }else {
  300. $("#download_file_{$vo.fieldArr}_{$vo.name|default=''}").css('display','');
  301. $("#download_file_{$vo.fieldArr}_{$vo.name|default=''}").css('color','red');
  302. $("#download_file_{$vo.fieldArr}_{$vo.name|default=''}").text(res.state);
  303. }
  304. }
  305. ,error: function(){
  306. //请求异常回调
  307. }
  308. });
  309. });
  310. })
  311. </script>
  312. <!-- 单个文件 end -->
  313. {/case}
  314. {case value="media"}
  315. {eyou:static file="/public/plugins/layui/css/layui.css" /}
  316. <!-- 多媒体上传 -->
  317. <div class="ey-con ey-row mt10">
  318. <div class="item-from-flex">
  319. <div class="item-flex wb25">
  320. <div class="item-tit">
  321. {$vo.title}
  322. </div>
  323. </div>
  324. <div class="item-flex-r wb75">
  325. <a id="media_a_{$vo.fieldArr}_{$vo.name|default=''}" style="margin-right: 30px;text-decoration: underline;{eyou:notempty name='$vo.dfvalue' /}display: '';{eyou:else /}display: none;{/eyou:notempty}" target="_blank"
  326. {eyou:notempty name='$vo.dfvalue' /} href="{$vo.dfvalue|default=''}" {/eyou:notempty}>
  327. <img src="__STATIC__/common/images/file.png" alt="" style="width: 16px;height: 16px;">点击查看</a>
  328. <input type="text" id="{$vo.fieldArr}_{$vo.name|default=''}" name="{$vo.fieldArr}[{$vo.name|default=''}]" value="{$vo.dfvalue|default=''}" style="display: none;">
  329. <input type="file" id="{$vo.fieldArr}_{$vo.name|default=''}_upload_media" onchange="{$vo.fieldArr}_{$vo.name|default=''}_upload_media_20210506(this)" style="display: none;">
  330. <button type="button" class="el-button el-button--primary is-plain el-button--small" id="{$vo.fieldArr}_{$vo.name|default=''}_title_upload_media" onclick="$('#{$vo.fieldArr}_{$vo.name|default=\'\'}_upload_media').attr('data-type', '{$vo.upload_flag}').trigger('click');">上传文件</button>
  331. </div>
  332. <div class="item-flex-r">
  333. <i class="el-icon-arrow-right"></i>
  334. </div>
  335. </div>
  336. </div>
  337. <script>
  338. function {$vo.fieldArr}_{$vo.name|default=''}_upload_media_20210506(e){
  339. var data_type = $(e).attr('data-type');
  340. if ('qny' == data_type) {
  341. {$vo.fieldArr}_{$vo.name|default=''}_qny_upload_media(e);
  342. } else if ('oss' == data_type) {
  343. {$vo.fieldArr}_{$vo.name|default=''}_oss_upload_media(e);
  344. } else if ('cos' == data_type) {
  345. {$vo.fieldArr}_{$vo.name|default=''}_cos_upload_media(e);
  346. } else {
  347. {$vo.fieldArr}_{$vo.name|default=''}_local_upload_media(e);
  348. }
  349. }
  350. function beforeUploadMedia(ext,file){
  351. var type = '{$vo.ext}';
  352. var extArr = [];
  353. extArr = type.split("|");
  354. var exts = ext.replace(".","");
  355. if (extArr.indexOf(exts) == -1) {
  356. showErrorMsg('仅支持{$vo.ext}格式');
  357. return false;
  358. }
  359. size = parseInt("{$vo.filesize}");
  360. if (file.size > size) {
  361. if (size >= 1048576) {
  362. limit = size/1024/1024;
  363. limit = limit + 'MB';
  364. }else {
  365. limit = size/1024 ;
  366. limit = limit + 'KB';
  367. }
  368. showErrorMsg('仅支持'+limit+'以内的文件');
  369. return false;
  370. }
  371. return true;
  372. }
  373. function {$vo.fieldArr}_{$vo.name|default=''}_qny_upload_media(e) {
  374. var file = $(e)[0].files[0];
  375. var fileName = file.name;
  376. var fileExt = fileName.substr(fileName.lastIndexOf('.')).toLowerCase();
  377. ret = beforeUploadMedia(fileExt,file);
  378. if (ret){
  379. $.ajax({
  380. type: 'POST',
  381. url: '__ROOT_DIR__/index.php?m=plugins&c=Qiniuyun&a=qiniu_upload',
  382. data: {_ajax: 1},
  383. dataType: "JSON",
  384. success: function(res1) {
  385. if (1 == res1.code) {
  386. var token = res1.data.token;
  387. var formData = new FormData();
  388. formData.append('file', file);
  389. formData.append('token', token);
  390. fileName = res1.data.filePath + fileExt;
  391. formData.append('key', fileName);
  392. $.ajax({
  393. url: res1.data.uphost,
  394. type: 'POST',
  395. dataType: 'JSON',
  396. data: formData,
  397. timeout: 1200000,
  398. cache: false,
  399. processData: false,
  400. contentType: false,
  401. xhr: function () {
  402. myXhr = $.ajaxSettings.xhr();
  403. if (myXhr.upload) {
  404. myXhr.upload.addEventListener('progress', function(e){
  405. var curr = e.loaded;
  406. var total = e.total;
  407. process = parseInt(curr / total * 100);
  408. $("#{$vo.fieldArr}_{$vo.name|default=''}_title_upload_media").text('上传中...'+process+"%");
  409. });
  410. }
  411. return myXhr;
  412. },
  413. success: function(res2) {
  414. $("#{$vo.fieldArr}_{$vo.name|default=''}_title_upload_media").text('上传成功');
  415. setTimeout(function() {
  416. $('#{$vo.fieldArr}_{$vo.name|default=\'\'}_title_upload_media').text('上传文件');
  417. }, 2000);
  418. var video_url = res1.data.domain + "/" + res2.key;
  419. video_url = video_url.replace("http://", "//");
  420. video_url = video_url.replace("https://", "//");
  421. $("#{$vo.fieldArr}_{$vo.name|default=''}").val(video_url);
  422. $("#media_a_{$vo.fieldArr}_{$vo.name|default=''}").show();
  423. $("#media_a_{$vo.fieldArr}_{$vo.name|default=''}").attr('href',video_url);
  424. },
  425. error: function(e) {
  426. layer.closeAll();
  427. showErrorMsg(e.responseText);
  428. return false;
  429. }
  430. });
  431. } else {
  432. layer.closeAll();
  433. showErrorMsg(res1.msg);
  434. }
  435. },
  436. error: function(e) {
  437. layer.closeAll();
  438. showErrorMsg(e.responseText);
  439. }
  440. });
  441. }
  442. }
  443. function {$vo.fieldArr}_{$vo.name|default=''}_oss_upload_media(e) {
  444. var file = $(e)[0].files[0];
  445. var fileName = file.name;
  446. var fileExt = fileName.substr(fileName.lastIndexOf('.')).toLowerCase();
  447. ret = beforeUploadMedia(fileExt,file);
  448. if (ret) {
  449. $.ajax({
  450. type: 'POST',
  451. url: '__ROOT_DIR__/index.php?m=plugins&c=AliyunOss&a=oss_upload',
  452. data: {_ajax: 1},
  453. dataType: "JSON",
  454. success: function (res1) {
  455. if (1 == res1.code) {
  456. fileName = res1.data.filePath + fileExt;
  457. //组装发送数据
  458. var request = new FormData();
  459. request.append("OSSAccessKeyId", res1.data.accessid);
  460. request.append("policy", res1.data.policy);
  461. request.append("Signature", res1.data.signature);
  462. request.append("key", fileName);
  463. request.append("success_action_status", 201);
  464. request.append('file', file);
  465. $.ajax({
  466. url: res1.data.host,
  467. data: request,
  468. processData: false,
  469. cache: false,
  470. contentType: false,
  471. dataType: 'xml',
  472. type: 'post',
  473. xhr: function () {
  474. myXhr = $.ajaxSettings.xhr();
  475. if (myXhr.upload) {
  476. myXhr.upload.addEventListener('progress', function (e) {
  477. var curr = e.loaded;
  478. var total = e.total;
  479. var process = parseInt(curr / total * 100);
  480. $("#{$vo.fieldArr}_{$vo.name|default=''}_title_upload_media").text('上传中...' + process + "%");
  481. });
  482. }
  483. return myXhr;
  484. },
  485. success: function (data) {
  486. var res = $(data).find('PostResponse');
  487. if (res) {
  488. var key = res.find('Key').text();
  489. $("#{$vo.fieldArr}_{$vo.name|default=''}_title_upload_media").text('上传成功');
  490. setTimeout(function () {
  491. $('#{$vo.fieldArr}_{$vo.name|default=\'\'}_title_upload_media').text('上传文件');
  492. }, 2000);
  493. var video_url = res1.data.domain + "/" + key;
  494. $("#{$vo.fieldArr}_{$vo.name|default=''}").val(video_url);
  495. $("#media_a_{$vo.fieldArr}_{$vo.name|default=''}").show();
  496. $("#media_a_{$vo.fieldArr}_{$vo.name|default=''}").attr('href', video_url);
  497. } else {
  498. $("#{$vo.fieldArr}_{$vo.name|default=''}_title_upload_media").text('上传失败');
  499. setTimeout(function () {
  500. $('#{$vo.fieldArr}_{$vo.name|default=\'\'}_title_upload_media').text('上传文件');
  501. }, 2000);
  502. }
  503. },
  504. error: function (e) {
  505. layer.closeAll();
  506. console.log(e.responseText);
  507. }
  508. });
  509. } else {
  510. layer.closeAll();
  511. showErrorMsg(res1.msg);
  512. }
  513. },
  514. error: function (e) {
  515. layer.closeAll();
  516. showErrorMsg(e.responseText);
  517. }
  518. });
  519. }
  520. }
  521. function {$vo.fieldArr}_{$vo.name|default=''}_cos_upload_media(e) {
  522. var file = $(e)[0].files[0];
  523. var fileName = file.name;
  524. var fileExt = fileName.substr(fileName.lastIndexOf('.')).toLowerCase();
  525. ret = beforeUploadMedia(fileExt,file);
  526. if (ret) {
  527. var formData = new FormData();
  528. formData.append('file', file);
  529. formData.append('file_ext', fileExt);
  530. $.ajax({
  531. type: 'post',
  532. url: '__ROOT_DIR__/index.php?m=plugins&c=Cos&a=cos_upload&_ajax=1',
  533. data: formData,
  534. contentType: false,
  535. processData: false,
  536. dataType: 'json',
  537. xhr: function () {
  538. myXhr = $.ajaxSettings.xhr();
  539. if (myXhr.upload) {
  540. myXhr.upload.addEventListener('progress', function (e) {
  541. var curr = e.loaded;
  542. var total = e.total;
  543. process = parseInt(curr / total * 100);
  544. if (100 == process) {
  545. process = 99;
  546. }
  547. $("#{$vo.fieldArr}_{$vo.name|default=''}_title_upload_media").text('上传中...' + process + "%");
  548. });
  549. }
  550. return myXhr;
  551. },
  552. success: function (res) {
  553. if (1 == res.code) {
  554. $("#{$vo.fieldArr}_{$vo.name|default=''}_title_upload_media").text('上传成功');
  555. $("#{$vo.fieldArr}_{$vo.name|default=''}").val(res.data.url);
  556. $("#media_a_{$vo.fieldArr}_{$vo.name|default=''}").show();
  557. $("#media_a_{$vo.fieldArr}_{$vo.name|default=''}").attr('href', res.data.url);
  558. } else {
  559. $("#{$vo.fieldArr}_{$vo.name|default=''}_title_upload_media").text('上传失败');
  560. }
  561. setTimeout(function () {
  562. $('#{$vo.fieldArr}_{$vo.name|default=\'\'}_title_upload_media').text('上传文件');
  563. }, 2000);
  564. },
  565. error: function (e) {
  566. layer.closeAll();
  567. showErrorMsg(e.responseText);
  568. }
  569. });
  570. }
  571. }
  572. function {$vo.fieldArr}_{$vo.name|default=''}_local_upload_media(e){
  573. var file = $(e)[0].files[0];
  574. var fileName = file.name;
  575. var fileExt = fileName.substr(fileName.lastIndexOf('.')).toLowerCase();
  576. ret = beforeUploadMedia(fileExt,file);
  577. if (ret) {
  578. var formData = new FormData();
  579. formData.append('file', file);
  580. $.ajax({
  581. type: 'post',
  582. url: "{:url('user/Uploadify/AjaxUploadMedia', ['savepath'=>'media'])}",
  583. data: formData,
  584. contentType: false,
  585. processData: false,
  586. dataType: 'json',
  587. xhr: function () {
  588. myXhr = $.ajaxSettings.xhr();
  589. if (myXhr.upload) {
  590. myXhr.upload.addEventListener('progress', function (e) {
  591. var curr = e.loaded;
  592. var total = e.total;
  593. process = parseInt(curr / total * 100);
  594. $("#upload_video_litpic_local").html('上传中...' + process + "%");
  595. });
  596. }
  597. return myXhr;
  598. },
  599. success: function (res) {
  600. if ("SUCCESS" == res.state) {
  601. $("#{$vo.fieldArr}_{$vo.name|default=''}_title_upload_media").html('上传成功');
  602. setTimeout(function () {
  603. $('#{$vo.fieldArr}_{$vo.name|default=\'\'}_title_upload_media').html('上传文件');
  604. }, 2000);
  605. $("#{$vo.fieldArr}_{$vo.name|default=''}").val(res.url);
  606. $("#media_a_{$vo.fieldArr}_{$vo.name|default=''}").show();
  607. $("#media_a_{$vo.fieldArr}_{$vo.name|default=''}").attr('href', res.url);
  608. } else {
  609. showErrorMsg(res.msg);
  610. }
  611. }
  612. });
  613. }
  614. }
  615. </script>
  616. {/case}
  617. {case value="imgs"}
  618. <script type="text/javascript" src="__STATIC__/admin/js/jquery-ui/jquery-ui.min.js"></script>
  619. <!-- 多张图 start -->
  620. <div class="ey-con ey-row mt10">
  621. <div class="item-from-flex">
  622. <div class="item-flex wb25">
  623. <div class="item-tit">
  624. {if condition="isset($vo['ifrequire']) AND !empty($vo['ifrequire'])"}<span class="red">*</span>{/if}{$vo.title|default=''}
  625. </div>
  626. </div>
  627. <div class="item-flex-r wb75 ">
  628. <div class="images_upload_main" id="tab_{$vo.fieldArr}_{$vo.name|default=''}">
  629. <a href="javascript:void(0);" onClick="GetUploadify(100,'','allimg','{$vo.fieldArr}_{$vo.name|default=''}_call_back', '', '{$vo.title}',1);" class="el-button el-button--primary is-plain el-button--small">
  630. <i class="el-icon-picture"></i>上传图片
  631. </a>
  632. </div>
  633. <!-- 上传图片显示的样板 start -->
  634. <!-- 上传图片显示的样板 end -->
  635. </div>
  636. <div class="item-flex-r">
  637. <i class="el-icon-arrow-right"></i>
  638. </div>
  639. </div>
  640. <div class="item-from-flex" id="dl_{$vo.fieldArr}_{$vo.name|default=''}">
  641. <div class="item-flex wb25">
  642. </div>
  643. <div class="item-flex-r wb75 " style="margin-left: 1px;">
  644. <div class="images_upload_main" id="tab_{$vo.fieldArr}_{$vo.name|default=''}">
  645. <div class="sort-list-{$vo.fieldArr}_{$vo.name|default=''}">
  646. {volist name="$vo[$vo['name'].'_eyou_imgupload_list']" id="v2" key="k2"}
  647. <div class="fieldext_upload fieldext_upload_html" >
  648. <div class="images_upload_item">
  649. <input type="hidden" name="{$vo.fieldArr}[{$vo.name|default=''}][]" value="{$v2.image_url|default=''}">
  650. <a href="{$v2.image_url|default=''}" onclick="" target="_blank">
  651. <img src="{$v2.image_url|default=''}" width="70" height="70">
  652. </a>
  653. <a class="delete" href="javascript:void(0)" onclick="{$vo.fieldArr}_{$vo.name|default=''}_ClearPicArr2(this,'{$v2.image_url|default=''}')">删除</a>
  654. </div>
  655. </div>
  656. {/volist}
  657. <div class="fieldext_upload" style="display:none;"></div>
  658. </div>
  659. </div>
  660. <!-- 上传图片显示的样板 start -->
  661. <div class="{$vo.fieldArr}_{$vo.name|default=''}_upload_tpl" style="display: none;">
  662. <div class="fieldext_upload fieldext_upload_html">
  663. <div class="images_upload_item">
  664. <input type="hidden" name="{$vo.fieldArr}[{$vo.name|default=''}][]" value="" />
  665. <a href="javascript:void(0);" onClick="" >
  666. <img src="__STATIC__/admin/images/add-button.jpg" width="70" height="70" />
  667. </a>
  668. <a class="delete" href="javascript:void(0)">&nbsp;&nbsp;</a>
  669. </div>
  670. </div>
  671. </div>
  672. <!-- 上传图片显示的样板 end -->
  673. </div>
  674. </div>
  675. </div>
  676. <script type="text/javascript">
  677. // 上传多图回调函数
  678. function {$vo.fieldArr}_{$vo.name|default=''}_call_back(paths){
  679. var last_div = $(".{$vo.fieldArr}_{$vo.name|default=''}_upload_tpl").html();
  680. for (var i=0;i<paths.length ;i++ )
  681. {
  682. if ($(".sort-list-{$vo.fieldArr}_{$vo.name|default=''} .fieldext_upload_html").length > 0) {
  683. $(".sort-list-{$vo.fieldArr}_{$vo.name|default=''} .fieldext_upload_html:last").after(last_div); // 插入一个 新图片
  684. } else {
  685. $(".sort-list-{$vo.fieldArr}_{$vo.name|default=''} .fieldext_upload:last").before(last_div); // 插入一个 新图片
  686. }
  687. $(".sort-list-{$vo.fieldArr}_{$vo.name|default=''} .fieldext_upload_html:last").find('a:eq(0)').attr('href',paths[i]).attr('onclick','').attr('target', "_blank");// 修改他的链接地址
  688. $(".sort-list-{$vo.fieldArr}_{$vo.name|default=''} .fieldext_upload_html:last").find('img').attr('src',paths[i]);// 修改他的图片路径
  689. $(".sort-list-{$vo.fieldArr}_{$vo.name|default=''} .fieldext_upload_html:last").find('a:eq(1)').attr('onclick',"{$vo.fieldArr}_{$vo.name|default=''}_ClearPicArr2(this,'"+paths[i]+"')").text('删除');
  690. $(".sort-list-{$vo.fieldArr}_{$vo.name|default=''} .fieldext_upload_html:last").find('input').val(paths[i]); // 设置隐藏域 要提交的值
  691. }
  692. }
  693. /*
  694. * 上传之后删除组图input
  695. * @access public
  696. * @val string 删除的图片input
  697. */
  698. function {$vo.fieldArr}_{$vo.name|default=''}_ClearPicArr2(obj,path)
  699. {
  700. // 删除数据库记录
  701. $.ajax({
  702. type:'POST',
  703. url:"{:url('user/UsersRelease/del_channelimgs', ['_ajax'=>1])}",
  704. data:{filename:path,channel:"{$channel_id|default='0'}",fieldid:"{$vo.id}",aid:"{$aid|default='0'}"},
  705. success:function(){
  706. $(obj).parent().remove(); // 删除完服务器的, 再删除 html上的图片
  707. $.ajax({
  708. type:'POST',
  709. url:"{:url('user/Uploadify/delupload', ['_ajax'=>1])}",
  710. data:{action:"del", filename:path},
  711. success:function(){}
  712. });
  713. }
  714. });
  715. }
  716. /** 以下 产品相册的拖动排序相关 js*/
  717. $( ".sort-list-{$vo.fieldArr}_{$vo.name|default=''}" ).sortable({
  718. start: function( event, ui) {
  719. }
  720. ,stop: function( event, ui ) {
  721. }
  722. });
  723. $( ".sort-list-{$vo.fieldArr}_{$vo.name|default=''}" ).disableSelection();
  724. </script>
  725. <!-- 多张图 end -->
  726. {/case}
  727. {case value="int"}
  728. <!-- 整数类型 start -->
  729. <div class="ey-con ey-row mt10">
  730. <div class="item-from-flex">
  731. <div class="item-flex wb25">
  732. <div class="item-tit">
  733. {if condition="isset($vo['ifrequire']) AND !empty($vo['ifrequire'])"}<span class="red">*</span>{/if}{$vo.title|default=''}
  734. </div>
  735. </div>
  736. <div class="item-flex-r flex wb75">
  737. <div class="item-con">
  738. <input type="text" value="{$vo.dfvalue|default=''}" name="{$vo.fieldArr}[{$vo.name|default=''}]" id="{$vo.fieldArr}_{$vo.name|default=''}" placeholder="只允许纯数字" class="input-text" onkeyup="this.value=this.value.replace(/[^0-9]/g,'');" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^0-9]/g,''));">
  739. </div>
  740. </div>
  741. <div class="item-flex-r tar_z w80">
  742. <p class="notic">{$vo.remark|default=''}</p>
  743. <span class="unit">{$vo.dfvalue_unit|default=''}</span>
  744. </div>
  745. </div>
  746. </div>
  747. </div>
  748. <!-- 整数类型 end -->
  749. {/case}
  750. {case value="float"}
  751. <!-- 小数类型 start -->
  752. <div class="ey-con ey-row mt10">
  753. <div class="item-from-flex">
  754. <div class="item-flex-l">
  755. <div class="item-tit">
  756. {if condition="isset($vo['ifrequire']) AND !empty($vo['ifrequire'])"}<span class="red">*</span>{/if}{$vo.title|default=''}
  757. </div>
  758. <div class="item-con">
  759. <input type="text" value="{$vo.dfvalue|default=''}" name="{$vo.fieldArr}[{$vo.name|default=''}]" id="{$vo.fieldArr}_{$vo.name|default=''}" placeholder="允许带有小数点的数值" class="input-text" onkeyup="this.value=this.value.replace(/[^0-9\.]/g,'');" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^0-9\.]/g,''));">
  760. <p class="notic">{$vo.remark|default=''}</p>
  761. <span class="unit">{$vo.dfvalue_unit|default=''}</span>
  762. </div>
  763. </div>
  764. </div>
  765. </div>
  766. <!-- 小数类型 end -->
  767. {/case}
  768. {case value="decimal"}
  769. <!-- 金额类型 start -->
  770. <div class="ey-con ey-row mt10">
  771. <div class="item-from-flex">
  772. <div class="item-flex wb25">
  773. <div class="item-tit">
  774. {if condition="isset($vo['ifrequire']) AND !empty($vo['ifrequire'])"}<span class="red">*</span>{/if}{$vo.title|default=''}
  775. </div>
  776. </div>
  777. <div class="item-flex-r flex wb75">
  778. <div class="item-con">
  779. <input type="text" value="{$vo.dfvalue|default=''}" name="{$vo.fieldArr}[{$vo.name|default=''}]" id="{$vo.fieldArr}_{$vo.name|default=''}" placeholder="允许带有小数点的金额" class="input-text" onkeyup="this.value=this.value.replace(/[^0-9\.]/g,'');" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^0-9\.]/g,''));">
  780. </div>
  781. </div>
  782. <div class="item-flex-r tar_z w80">
  783. <p class="notic">{$vo.remark|default=''}</p>
  784. <span class="unit">{$vo.dfvalue_unit|default=''}</span>
  785. </div>
  786. </div>
  787. </div>
  788. </div>
  789. <!-- 金额类型 end -->
  790. {/case}
  791. {case value="datetime"}
  792. <!-- 日期和时间 start -->
  793. <div class="ey-con ey-row mt10">
  794. <div class="item-from-flex">
  795. <div class="item-flex wb25">
  796. <div class="item-tit">
  797. {if condition="isset($vo['ifrequire']) AND !empty($vo['ifrequire'])"}<span class="red">*</span>{/if}{$vo.title|default=''}
  798. </div>
  799. </div>
  800. <div class="item-flex-r flex wb75">
  801. <div class="item-con">
  802. <input type="text" class="input-text" name="{$vo.fieldArr}[{$vo.name|default=''}]" id="{$vo.fieldArr}_{$vo.name|default=''}" value="{$vo['dfvalue']}">
  803. <p class="notic">{$vo.remark|default=''}</p>
  804. </div>
  805. </div>
  806. <div class="item-flex-r">
  807. <i class="el-icon-arrow-right"></i>
  808. </div>
  809. </div>
  810. </div>
  811. </div>
  812. <script type="text/javascript">
  813. $(function () {
  814. $('#{$vo.fieldArr}_{$vo.name|default=''}').layDate();
  815. });
  816. </script>
  817. <!-- 日期和时间 end -->
  818. {/case}
  819. {case value="htmltext"}
  820. <!-- HTML文本 start -->
  821. <div class="ey-con ey-row mt10">
  822. <div class="item-from-flex">
  823. <div class="item-flex-l">
  824. <div class="item-tit">
  825. {if condition="isset($vo['ifrequire']) AND !empty($vo['ifrequire'])"}<span class="red">*</span>{/if}{$vo.title|default=''}
  826. </div>
  827. <div class="item-con">
  828. <textarea class="wb100" id="{$vo.fieldArr}_{$vo.name|default=''}" data-func="{$vo.fieldArr}_{$vo.name|default=''}" name="{$vo.fieldArr}[{$vo.name|default=''}]" title="">{$vo.dfvalue|default=''}</textarea>
  829. <span class="err"></span>
  830. <p class="notic">{$vo.remark|default=''}</p>
  831. </div>
  832. </div>
  833. </div>
  834. </div>
  835. <script type="text/javascript">
  836. var ue_{$vo.fieldArr}_{$vo.name|default=''} = UE.getEditor('{$vo.fieldArr}_{$vo.name|default=''}',{
  837. serverUrl :"{:url('Uploadify/index',array('savepath'=>'allimg'))}",
  838. zIndex: 999,
  839. initialFrameWidth: "100%", //初化宽度
  840. initialFrameHeight: 350, //初化高度
  841. focus: false, //初始化时,是否让编辑器获得焦点true或false
  842. maximumWords: 99999,
  843. removeFormatAttributes: 'class,style,lang,width,height,align,hspace,valign',//允许的最大字符数 'fullscreen',
  844. pasteplain:false, //是否默认为纯文本粘贴。false为不使用纯文本粘贴,true为使用纯文本粘贴
  845. autoHeightEnabled: false,
  846. toolbars: [['forecolor', 'simpleupload', 'unlink', 'fontsize']],
  847. // xss 过滤是否开启,inserthtml等操作
  848. xssFilterRules: true,
  849. //input xss过滤
  850. inputXssFilter: true,
  851. //output xss过滤
  852. outputXssFilter: true
  853. });
  854. //必须在提交前渲染编辑器;
  855. function {$vo.fieldArr}_{$vo.name|default=''}() {
  856. //判断编辑模式状态:0表示【源代码】HTML视图;1是【设计】视图,即可见即所得;-1表示不可用
  857. if(UE.getEditor("{$vo.fieldArr}_{$vo.name|default=''}").queryCommandState('source') != 0) {
  858. UE.getEditor("{$vo.fieldArr}_{$vo.name|default=''}").execCommand('source'); //切换到【设计】视图
  859. }
  860. }
  861. </script>
  862. <!-- HTML文本 end -->
  863. {/case}
  864. {/switch}
  865. {/if}
  866. {/volist}