form.html 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176
  1. {% extends "base.html" %}
  2. {% block title %}
  3. {% endblock %}
  4. {% block head %}
  5. <script type="text/javascript">
  6. var uploader;//上传对象
  7. var submitNow = function($dialog, $grid, $pjq) {
  8. var url;
  9. if ($(':input[name="data.id"]').val().length > 0) {
  10. url = sy.contextPath + '/base/syuser!update.action';
  11. } else {
  12. url = sy.contextPath + '/base/syuser!save.action';
  13. }
  14. $.post(url, sy.serializeObject($('form')), function(result) {
  15. parent.sy.progressBar('close');//关闭上传进度条
  16. if (result.success) {
  17. $pjq.messager.alert('提示', result.msg, 'info');
  18. $grid.datagrid('load');
  19. $dialog.dialog('destroy');
  20. } else {
  21. $pjq.messager.alert('提示', result.msg, 'error');
  22. }
  23. }, 'json');
  24. };
  25. var submitForm = function($dialog, $grid, $pjq) {
  26. if ($('form').form('validate')) {
  27. if (uploader.files.length > 0) {
  28. uploader.start();
  29. uploader.bind('StateChanged', function(uploader) {// 在所有的文件上传完毕时,提交表单
  30. if (uploader.files.length === (uploader.total.uploaded + uploader.total.failed)) {
  31. submitNow($dialog, $grid, $pjq);
  32. }
  33. });
  34. } else {
  35. submitNow($dialog, $grid, $pjq);
  36. }
  37. }
  38. };
  39. $(function() {
  40. if ($(':input[name="data.id"]').val().length > 0) {
  41. parent.$.messager.progress({
  42. text : '数据加载中....'
  43. });
  44. $.post(sy.contextPath + '/base/syuser!getById.action', {
  45. id : $(':input[name="data.id"]').val()
  46. }, function(result) {
  47. if (result.id != undefined) {
  48. $('form').form('load', {
  49. 'data.id' : result.id,
  50. 'data.name' : result.name,
  51. 'data.loginname' : result.loginname,
  52. 'data.sex' : result.sex,
  53. 'data.age' : result.age,
  54. 'data.photo' : result.photo
  55. });
  56. if (result.photo) {
  57. $('#photo').attr('src', sy.contextPath + result.photo);
  58. }
  59. }
  60. parent.$.messager.progress('close');
  61. }, 'json');
  62. }
  63. uploader = new plupload.Uploader({//上传插件定义
  64. browse_button : 'pickfiles',//选择文件的按钮
  65. container : 'container',//文件上传容器
  66. runtimes : 'html5,flash',//设置运行环境,会按设置的顺序,可以选择的值有html5,gears,flash,silverlight,browserplus,html4
  67. //flash_swf_url : sy.contextPath + '/jslib/plupload_1_5_7/plupload/js/plupload.flash.swf',// Flash环境路径设置
  68. url : sy.contextPath + '/plupload?fileFolder=/userPhoto',//上传文件路径
  69. max_file_size : '5mb',//100b, 10kb, 10mb, 1gb
  70. chunk_size : '10mb',//分块大小,小于这个大小的不分块
  71. unique_names : true,//生成唯一文件名
  72. // 如果可能的话,压缩图片大小
  73. /*resize : {
  74. width : 320,
  75. height : 240,
  76. quality : 90
  77. },*/
  78. // 指定要浏览的文件类型
  79. filters : [ {
  80. title : '图片文件',
  81. extensions : 'jpg,gif,png'
  82. } ]
  83. });
  84. uploader.bind('Init', function(up, params) {//初始化时
  85. //$('#filelist').html("<div>当前运行环境: " + params.runtime + "</div>");
  86. $('#filelist').html("");
  87. });
  88. uploader.bind('BeforeUpload', function(uploader, file) {//上传之前
  89. if (uploader.files.length > 1) {
  90. parent.$.messager.alert('提示', '只允许选择一张照片!', 'error');
  91. uploader.stop();
  92. return;
  93. }
  94. $('.ext-icon-cross').hide();
  95. });
  96. uploader.bind('FilesAdded', function(up, files) {//选择文件后
  97. $.each(files, function(i, file) {
  98. $('#filelist').append('<div id="' + file.id + '">' + file.name + '(' + plupload.formatSize(file.size) + ')<strong></strong>' + '<span onclick="uploader.removeFile(uploader.getFile($(this).parent().attr(\'id\')));$(this).parent().remove();" style="cursor:pointer;" class="ext-icon-cross" title="删除">&nbsp;&nbsp;&nbsp;&nbsp;</span></div>');
  99. });
  100. up.refresh();
  101. });
  102. uploader.bind('UploadProgress', function(up, file) {//上传进度改变
  103. var msg;
  104. if (file.percent == 100) {
  105. msg = '99';//因为某些大文件上传到服务器需要合并的过程,所以强制客户看到99%,等后台合并完成...
  106. } else {
  107. msg = file.percent;
  108. }
  109. $('#' + file.id + '>strong').html(msg + '%');
  110. parent.sy.progressBar({//显示文件上传滚动条
  111. title : '文件上传中...',
  112. value : msg
  113. });
  114. });
  115. uploader.bind('Error', function(up, err) {//出现错误
  116. $('#filelist').append("<div>错误代码: " + err.code + ", 描述信息: " + err.message + (err.file ? ", 文件名称: " + err.file.name : "") + "</div>");
  117. up.refresh();
  118. });
  119. uploader.bind('FileUploaded', function(up, file, info) {//上传完毕
  120. var response = $.parseJSON(info.response);
  121. if (response.status) {
  122. $('#' + file.id + '>strong').html("100%");
  123. //console.info(response.fileUrl);
  124. //console.info(file.name);
  125. //$('#f1').append('<input type="hidden" name="fileUrl" value="'+response.fileUrl+'"/>');
  126. //$('#f1').append('<input type="hidden" name="fileName" value="'+file.name+'"/><br/>');
  127. $(':input[name="data.photo"]').val(response.fileUrl);
  128. }
  129. });
  130. uploader.init();
  131. });
  132. </script>
  133. {% endblock %}
  134. {% block body %}
  135. <form method="post" class="form">
  136. <fieldset>
  137. <legend>用户基本信息</legend>
  138. <table class="table" style="width: 100%;">
  139. <tr>
  140. <th>编号</th>
  141. <td><input name="data.id" value="{{id}}" readonly="readonly" /></td>
  142. <th>登陆名称</th>
  143. <td><input name="data.loginname" class="easyui-validatebox" data-options="required:true" /></td>
  144. </tr>
  145. <tr>
  146. <th>姓名</th>
  147. <td><input name="data.name" /></td>
  148. <th>性别</th>
  149. <td><select class="easyui-combobox" name="data.sex" data-options="panelHeight:'auto',editable:false" style="width: 155px;">
  150. <option value="1">男</option>
  151. <option value="0">女</option>
  152. </select></td>
  153. </tr>
  154. <tr>
  155. <th>照片上传</th>
  156. <td><div id="container">
  157. <a id="pickfiles" href="javascript:void(0);" class="easyui-linkbutton" data-options="iconCls:'ext-icon-zoom'">选择文件</a>
  158. <div id="filelist">您的浏览器没有安装Flash插件,或不支持HTML5!</div>
  159. </div></td>
  160. <th></th>
  161. <td><input name="data.photo" readonly="readonly" style="display: none;" /> <img id="photo" src="" style="width: 200px; height: 200px;"></td>
  162. </tr>
  163. </table>
  164. </fieldset>
  165. </form>
  166. </body>
  167. {% endblock %}