update_process.html 8.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <title>更新进度</title>
  6. <meta name="renderer" content="webkit">
  7. <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
  8. <meta name="viewport"
  9. content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
  10. <link rel="stylesheet" href="../../layuiadmin/layui/css/layui.css" media="all">
  11. <link rel="stylesheet" href="../../layuiadmin/style/admin.css" media="all">
  12. <style>
  13. .input {
  14. border-radius: 2px;
  15. height: 38px;
  16. border-width: 1px;
  17. border-color: lightgray;
  18. border-style: solid;
  19. background-color: white;
  20. padding-left: 3px;
  21. }
  22. .processText {
  23. margin-top: 6px;
  24. }
  25. .layui-upload-drag {
  26. padding: 10px;
  27. margin-right: 15px;
  28. }
  29. .imgsContent {
  30. display: flex;
  31. justify-content: flex-start;
  32. flex-direction: row;
  33. flex-wrap: wrap;
  34. }
  35. .image {
  36. width: 150px;
  37. height: auto;
  38. }
  39. .imgItem {
  40. margin: 3px 10px;
  41. }
  42. .option {
  43. display: flex;
  44. justify-content: space-between;
  45. flex-direction: row;
  46. }
  47. .optionItem {
  48. padding: 0 13px;
  49. margin: 10px;
  50. border: 1px solid rgba(0, 0, 0, 0.1);
  51. background: #009688;
  52. color: #ffffff;
  53. }
  54. </style>
  55. </head>
  56. <body>
  57. <div class="layui-fluid">
  58. <div class="layui-row layui-col-space15">
  59. <div class="layui-card">
  60. <div class="layui-card-body" pad15>
  61. <form class="layui-form" action="" lay-filter="component-form-element">
  62. <div class="layui-row layui-col-space10 layui-form-item">
  63. <div>
  64. <label class="layui-form-label">当前进度:</label>
  65. <div class="layui-input-block processText" id="current_process"></div>
  66. </div>
  67. <div>
  68. <label class="layui-form-label">下一进度:</label>
  69. <div class="layui-input-block processText" id="next_process"></div>
  70. </div>
  71. <div>
  72. <label class="layui-form-label">备注:</label>
  73. <div class="layui-input-block">
  74. <textarea type="text" name="notes" class="layui-textarea"
  75. placeholder="请输入备注"/></textarea>
  76. </div>
  77. </div>
  78. <div>
  79. <label class="layui-form-label"><font color='red' size="4">*</font>上传图片:</label>
  80. <div class="imgsContent">
  81. <div class="layui-upload-drag" id="upload_img">
  82. <div>
  83. <p style="padding-bottom: 10px">多选,最多选6张</p>
  84. <i class="layui-icon"></i>
  85. <p>点击上传,或将图片拖到此处</p>
  86. </div>
  87. </div>
  88. <div id="imgsList" class="imgsContent"></div>
  89. </div>
  90. </div>
  91. <button id="id_save" class="layui-btn" lay-submit lay-filter="component-form-element"
  92. style="display: none">保存
  93. </button>
  94. </div>
  95. </form>
  96. </div>
  97. </div>
  98. </div>
  99. </div>
  100. <script src="../../layuiadmin/layui/layui.js"></script>
  101. <script>
  102. //即将上传的文件数组
  103. var filesList = [];
  104. //渲染的图片列表
  105. var imgsList = [];
  106. //渲染待上传的图片列表
  107. var renderImgsList = function (list) {
  108. var html = "";
  109. list.forEach((item, index) => {
  110. html += "<div class='imgItem'>\n";
  111. html += "<img src='" + item + "' class='image'>\n";
  112. html += '<div class="option">\n';
  113. html += '<div onclick="showImg(' + index + ')" class="optionItem">查看</div>\n';
  114. html += '<div onclick="deleteImg(' + index + ')" class="optionItem">删除</div>\n';
  115. html += '</div>\n';
  116. html += '</div>\n';
  117. })
  118. layui.$('#imgsList').html(html);
  119. }
  120. var showImg = function (index) {
  121. var newPage = window.open();
  122. newPage.document.write("<img src=" + imgsList[index] + " />")
  123. };
  124. var deleteImg = function (index) {
  125. filesList.splice(index, 1);
  126. imgsList.splice(index, 1);
  127. renderImgsList(imgsList);
  128. };
  129. layui.link('../../../layuiadmin/style/autocomplete.css');
  130. layui.config({
  131. base: '../../../layuiadmin/' //静态资源所在路径
  132. , autocomplete: 'autocomplete'
  133. }).extend({
  134. index: 'lib/index',
  135. }).use(['index', 'form', 'autocomplete', 'upload'], function () {
  136. var $ = layui.$
  137. , admin = layui.admin
  138. , upload = layui.upload
  139. , form = layui.form;
  140. var customer_id = layui.view.getParameterByName('customer_id');
  141. //form.render(null, 'component-form-element');
  142. var next_process_id = '';
  143. admin.req({
  144. url: '/order/get_process/?customer_id=' + customer_id
  145. , type: 'get'
  146. , done: function (res) {
  147. if (res.data.error) {
  148. layer.open({
  149. type: 1
  150. , offset: 'auto' //具体配置参考:http://www.layui.com/doc/modules/layer.html#offset
  151. , id: 'layerDemo' + customer_id //防止重复弹出
  152. , content: '<div style="padding: 20px 100px;">' + res.data.error_message + '</div>'
  153. , btn: '关闭'
  154. , btnAlign: 'c' //按钮居中
  155. , shade: 0 //不显示遮罩
  156. , yes: function () {
  157. parent.layer.closeAll();
  158. }
  159. });
  160. }
  161. //当前进度
  162. $('#current_process').append(res.data.now_process_text)
  163. //下一进度
  164. $('#next_process').append(res.data.next_process_text);
  165. next_process_id = res.data.next_process_id
  166. }
  167. });
  168. //拖拽上传
  169. upload.render({
  170. elem: '#upload_img'
  171. , accept: 'file'
  172. , exts: 'jpg|png|jpeg|bmp'
  173. , acceptMime: '.jpg,.png,.jpeg,.bmp'
  174. , data: {}
  175. , multiple: true
  176. , number: 6
  177. , auto: false
  178. , choose: function (obj) {
  179. if (imgsList.length >= 6) {
  180. layer.msg("图片最多只允许上传6张", {icon: 2});
  181. return
  182. }
  183. //预读本地文件,如果是多文件,则会遍历。(不支持ie8/9)
  184. obj.preview(function (index, file, result) {
  185. filesList.push(file);
  186. imgsList.push(result);
  187. // 有图片列表的话渲染图片
  188. if (imgsList.length > 0) {
  189. renderImgsList(imgsList)
  190. }
  191. });
  192. }
  193. });
  194. form.on('submit(component-form-element)', function (data) {
  195. if (filesList.length === 0) {
  196. layer.msg("请先选择图片!", {icon: 2});
  197. return false
  198. }
  199. if (!next_process_id) {
  200. layer.msg("下个进度阶段有误,请刷新重试!", {icon: 2});
  201. return false
  202. }
  203. var formData = new FormData();
  204. formData.append("stage_progress", next_process_id);
  205. formData.append("notes", data.field.notes);
  206. filesList.forEach((item, index) => {
  207. formData.append(`file${index}`, item)
  208. });
  209. var url = '/customer/new_customer/' + customer_id + '/add_order/';
  210. admin.req({
  211. url: url
  212. , data: formData
  213. , contentType: false
  214. , processData: false
  215. , type: 'post'
  216. , done: function (res) {
  217. parent.layui.onSubmitChild(res);
  218. }
  219. });
  220. return false;
  221. });
  222. parent.layui.submitChild = function () {
  223. $("#id_save").click();
  224. };
  225. });
  226. </script>
  227. </body>
  228. </html>