NewProblemForCustom.cshtml 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385
  1. 
  2. @{
  3. ViewBag.Title = "NewProblemForCustom";
  4. Layout = "~/Views/MobileProblem/_APPMain.cshtml";
  5. }
  6. <link href="~/Content/Style/MobileProductRegist/iconfont.css" rel="stylesheet" />
  7. <link href="~/Content/Scripts/plugins/mui/css/webuploader.css" rel="stylesheet" />
  8. <link href="~/Content/Style/MobileProductRegist/NewProblem.css" rel="stylesheet" />
  9. <script src="~/Content/Scripts/plugins/mui/js/webuploader.js?v=1.2"></script>
  10. <script src="~/Content/Scripts/plugins/mui/js/PlusUploader.js?v=1.612">
  11. </script>
  12. @*<script type="text/babel" src="~/ViewModels/JY.AppInterface.js?v=1.18">
  13. </script>*@
  14. <script src="https://cdn.staticfile.org/vue-resource/1.5.1/vue-resource.min.js"></script>
  15. <script src="~/Content/Scripts/babel.min.js"></script>
  16. <script src="~/Content/Scripts/polyfill.min.js"></script>
  17. <style>
  18. .mui-active {
  19. color: #2ab8ff !important;
  20. }
  21. .mui-icon.iconfont.icon-wentifankui {
  22. font-size: 35px;
  23. }
  24. .icon-soushuo {
  25. color: white;
  26. }
  27. .mui-btn-positive, .mui-btn-success, .mui-btn-green {
  28. border: 1px solid #2ab8ff;
  29. background-color: #2ab8ff;
  30. }
  31. .UplodImg {
  32. display: flex;
  33. justify-content: space-between;
  34. flex-direction: row;
  35. align-content: center;
  36. padding: 7px 27px;
  37. }
  38. .filep {
  39. -webkit-line-clamp: 1;
  40. overflow: hidden;
  41. word-break: break-all;
  42. display: -webkit-box;
  43. -webkit-box-orient: vertical;
  44. text-overflow: ellipsis;
  45. position: absolute;
  46. bottom: 12px;
  47. background-color: rgba(0, 0, 0, 0.6);
  48. font-size: 13px;
  49. color: white;
  50. width: 100px;
  51. }
  52. .destory {
  53. position: absolute;
  54. top: 0;
  55. right: -6px;
  56. width: 10px;
  57. height: 10px;
  58. font-size: 20px;
  59. color: #cc9a9a;
  60. margin-bottom: 11px;
  61. transition: color 0.2s ease-out;
  62. background-color: transparent;
  63. border: transparent;
  64. }
  65. .destory:after {
  66. content: '×';
  67. position: absolute;
  68. top: -10px;
  69. right: 5px;
  70. }
  71. </style>
  72. <header class="mui-bar mui-bar-nav">
  73. <a class="mui-action-back mui-icon mui-icon-left-nav mui-pull-left" style="color:#ffffff"></a>
  74. <h1 class="mui-title" style="color:white">中联产品问题登记</h1>
  75. </header>
  76. @*<nav class="mui-bar mui-bar-tab">
  77. <button v-on:click="Submit()" type="button" class="mui-btn mui-btn-primary" style="width:48%;background-color: #2ab8ff;border:none;margin-right:10px">直接提交</button>
  78. <button v-on:click="StatusSelect()" type="button" class="mui-btn mui-btn-danger" style="width:48%;border:none;background-color: #fb7e00">下一步(填写处理状态)</button>
  79. </nav>*@
  80. <div class="mui-content mui-scroll-wrapper" id="scr1">
  81. <div class="mui-scroll">
  82. <div id="VUE">
  83. <div class="mui-input-row" style="margin-top: 7px">
  84. <input id="ProblemTitile" type="text" class="mui-input-speech mui-input-clear" placeholder="填写问题标题" style="font-size:15px">
  85. </div>
  86. <div class="mui-input-row " style="font-size:14px">
  87. <textarea id="detail" rows="8" placeholder="请填写具体的问题描述,以便我们更详细的了解您需要解决的问题。" style="font-size:15px;margin-bottom:-10px"></textarea>
  88. <span id="deatilSpeech" class="mui-icon mui-icon-speech" style="position:absolute;bottom:4px;right:0;color: #999;"></span>
  89. </div>
  90. <div style="background-color:white;margin-top:10px">
  91. <div class="UplodImg" id="pickImg">
  92. <h4 style="font-weight:400">图片</h4>
  93. <div>
  94. @*<span class="mui-icon mui-icon-camera" id="pickCamera" style="color:#1296db;margin-right:20px;font-size:28px"></span>
  95. <span class="mui-icon mui-icon-image" id="pickPhoto" style="color:#1296db"></span>*@
  96. <span class="mui-icon mui-icon-camera" id="pickCamera" style="color:#1296db;"></span>
  97. </div>
  98. </div>
  99. <ul id="ImgList" class="mui-table-view mui-grid-view mui-grid-9" style="background-color:white;border-color:transparent;margin:0"></ul>
  100. </div>
  101. <div style="background-color:white;border-top: solid 1px #efeff4;">
  102. <div class="UplodImg" id="pickFlie">
  103. <h4 style="font-weight:400">附件</h4>
  104. <span class="mui-icon mui-icon-paperclip" style="color:#1296db"></span>
  105. </div>
  106. <ul id="FileList" class="mui-table-view mui-grid-view mui-grid-9" style="background-color:white;border-color:transparent;"></ul>
  107. </div>
  108. <div style="display:none" id="picker">选择文件</div>
  109. <div style="display:none" id="picker2">选择文件</div>
  110. <button style="margin-top: 30px;display:none;" id="ctlBtn" class="btn btn-default">图片上传</button>
  111. <div style="margin-bottom:50px"></div>
  112. </div>
  113. <div style="display:none" id="picker">选择文件</div>
  114. <button style="margin-top: 30px;display:none;" id="ctlBtn" class="btn btn-default">开始上传</button>
  115. <button type="button" style="margin-top: 10px;border-radius: 10px;font-size:15px;margin:auto" class="mui-btn mui-btn-success mui-btn-block btn_2" onclick="Submit()">提交</button>
  116. </div>
  117. </div>
  118. <script >
  119. mui.plusReady(function () {
  120. document.getElementById('deatilSpeech').addEventListener('tap', function () {
  121. plus.speech.startRecognize({
  122. engine: 'baidu',
  123. lang: 'zh-cn'
  124. }, function (s) {
  125. $("#detail").val(s);
  126. }, function (e) {
  127. console.log('语音识别失败:' + JSON.stringify(e));
  128. });
  129. });
  130. });
  131. mui.init({
  132. swipeBack: true //启用右滑关闭功能
  133. });
  134. //是否在Plus环境下
  135. var IsPlus = mui.os.plus ? true : false;
  136. var FivePlusUploder;
  137. //家医APP环境
  138. //var JyApp = typeof (myInterfaceName) == "undefined" ? false : myInterfaceName;
  139. //var jyAppInterface;
  140. var JyApp = false;
  141. var jyAppInterface;
  142. mui('.mui-scroll-wrapper').scroll();
  143. LoadUploder();
  144. ///提交产品问题
  145. function Submit() {
  146. var param = {
  147. detail: $("#detail").val(),
  148. ProblemTitile: $("#ProblemTitile").val(),
  149. ProductCode: "@ViewBag.ProductCode",
  150. };
  151. if ($("#ProblemTitile").val().trim() == '') {
  152. mui.toast('请输入问题标题', { duration: 'long', type: 'div' });
  153. $('#ProblemTitile').focus();
  154. return;
  155. }
  156. if ($("#detail").val().trim() == '') {
  157. mui.toast('请填写问题详细描述', { duration: 'long', type: 'div' });
  158. $('#detail').focus();
  159. return;
  160. }
  161. lod = mui.showLoading("正在提交,请稍后...", "div");
  162. $.post("/MobileProblem/SubmitProblem", param, function (data) {
  163. if (data.code == 200) {
  164. ProblemProcessIDtoImg = data.msg;
  165. $("#ctlBtn").click();
  166. } else {
  167. mui.toast(data.msg, { duration: 'long', type: 'div' });
  168. }
  169. })
  170. }
  171. function LoadUploder() {
  172. $("#ProblemTitile").mouseleave(function () {
  173. if (!$("#detail").val()) {
  174. var va = $("#ProblemTitile").val();
  175. $("#detail").val(va);
  176. }
  177. })
  178. Load();
  179. if (IsPlus) {
  180. FivePlusUploder = new FivePlus();
  181. } else {
  182. $('#ProblemTitile').removeClass('mui-input-speech');
  183. $('#deatilSpeech').remove();
  184. }
  185. if (JyApp) {
  186. jyAppInterface = new jyAppInterface({ myInterfaceName: JyApp });
  187. }
  188. }
  189. var Count = 0;
  190. var ProblemProcessIDtoImg;
  191. var lod;
  192. function Load() {
  193. var $list = $("#ImgList");
  194. var $list2 = $("#FileList");
  195. var $btn = $("#ctlBtn");
  196. var thumbnailWidth = 100;
  197. var thumbnailHeight = 100;
  198. var uploader = WebUploader.create({
  199. // 选完文件后,是否自动上传。
  200. auto: false,
  201. // swf文件路径
  202. swf: '/Content/Scripts/plugins/mui/js/Uploader.swf',
  203. // 文件接收服务端。
  204. server: '/MobileProblem/FlieUploadAndSave',
  205. // 选择文件的按钮。可选。
  206. // 内部根据当前运行是创建,可能是input元素,也可能是flash.
  207. pick: '#picker2',
  208. // 只允许选择图片文件。
  209. compress: {
  210. width: 1600,
  211. height: 1600,
  212. // 图片质量,只有type为`image/jpeg`的时候才有效。
  213. quality: 90,
  214. // 是否允许放大,如果想要生成小图的时候不失真,此选项应该设置为false.
  215. allowMagnify: false,
  216. // 是否允许裁剪。
  217. crop: false,
  218. // 是否保留头部meta信息。
  219. preserveHeaders: true,
  220. // 如果发现压缩后文件大小比原来还大,则使用原来图片
  221. // 此属性可能会影响图片自动纠正功能
  222. noCompressIfLarger: false,
  223. // 单位字节,如果图片大小小于此值,不会采用压缩。
  224. compressSize: 0
  225. }
  226. });
  227. uploader.on('fileQueued', function (file) {
  228. var $li = $('<li id="' + file.id + '" class="mui-table-view-cell mui-media mui-col-xs-4 mui-col-sm-3"><img> <button class="destory"></button><p class="filep">' + file.name + '</p> </li>'),
  229. $img = $li.find('img');
  230. // $list为容器jQuery实例
  231. if (file.type.substring(0, 5) == "image") {
  232. $list.append($li);
  233. } else {
  234. $list2.append('<li id="' + file.id + '" class="mui-table-view-cell mui-media mui-col-xs-4 mui-col-sm-3"><span class="mui-icon mui-icon-upload" style="padding-bottom:10px"></span><button class="destory"></button>' +
  235. '<p class="filep">' + file.name + '</p></li>');
  236. }
  237. $("#" + file.id).children(".destory").click( function(){
  238. uploader.removeFile(file);
  239. $("#" + file.id).remove();
  240. })
  241. // 创建缩略图
  242. // 如果为非图片文件,可以不用调用此方法。
  243. // thumbnailWidth x thumbnailHeight 为 100 x 100
  244. uploader.makeThumb(file, function (error, src) {
  245. if (error) {
  246. $img.replaceWith('<span>不能预览</span>');
  247. return;
  248. }
  249. $img.attr('src', src);
  250. }, thumbnailWidth, thumbnailHeight);
  251. });
  252. // 文件上传成功,给item添加成功class, 用样式标记上传成功。
  253. uploader.on('uploadSuccess', function (file, response) {
  254. $('#' + file.id).addClass('upload-state-done');
  255. if (response.msg = "1") {
  256. Count += 1;
  257. }
  258. });
  259. // 文件上传失败,显示上传出错。
  260. uploader.on('uploadError', function (file) {
  261. var $li = $('#' + file.id),
  262. $error = $li.find('div.error');
  263. // 避免重复创建
  264. if (!$error.length) {
  265. $error = $('<div class="error"></div>').appendTo($li);
  266. }
  267. $error.text('上传失败');
  268. });
  269. // 完成上传完了,成功或者失败,先删除进度条。
  270. uploader.on('uploadComplete', function (file) {
  271. $('#' + file.id).find('.progress').remove();
  272. });
  273. uploader.on('uploadFinished', function () {
  274. mui.hideLoading(lod);
  275. if (IsPlus) {
  276. FivePlusUploder.uplod(ProblemProcessIDtoImg, lod);
  277. } else if (JyApp) {
  278. var sod = mui.showLoading("正在提交,请稍后...", "div");
  279. jyAppInterface.Upload(ProblemProcessIDtoImg,(count2) => {
  280. mui.hideLoading(sod);
  281. mui.alert("问题已经反馈成功,请耐心等待!", "提交成功", "确定", function () {
  282. window.location.href = "/MobileProblem/Home";
  283. }, 'div');
  284. });
  285. }
  286. else {
  287. mui.alert("问题反馈成功,请耐心等待,成功上传" + Count + "个附件!", "提交成功", "确定", function () {
  288. window.location.href = "/MobileProblem/Home";
  289. }, 'div');
  290. }
  291. })
  292. $btn.on('click', function () {
  293. uploader.options.formData.ProcessId = ProblemProcessIDtoImg;
  294. uploader.upload();
  295. });
  296. if (!IsPlus && !JyApp) {
  297. document.getElementById('pickImg').addEventListener('tap', function () {
  298. $("#picker").find('.webuploader-element-invisible').click();
  299. });
  300. }
  301. document.getElementById('pickFlie').addEventListener('tap', function () {
  302. $("#picker2").find('.webuploader-element-invisible').click();
  303. });
  304. uploader.addButton({
  305. id: '#picker',
  306. innerHTML: '选择文件',
  307. accept: {
  308. title: 'Images',
  309. extensions: 'gif,jpg,jpeg,bmp,png',
  310. mimeTypes: 'image/*'
  311. },
  312. capture: 'camera'//设置默认打开方式
  313. });
  314. }
  315. function SaveUserImg(imgbase64) {
  316. jyAppInterface.SaveUserImg(imgbase64);
  317. }
  318. </script>