NewProblemt.module.js 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372
  1. 
  2. $("#NewProblem").addClass('mui-active');
  3. $('#title-right').replaceWith(function () {
  4. return $("<button onclick='Submit()' class='mui-btn mui-btn-blue mui-btn-link mui-pull-right' style='color:#ffffff'>提交</button>").append($(this).contents());
  5. });
  6. //初始化
  7. var ProblemIDtoImg;
  8. var Count = 0;
  9. var lod;
  10. //var UserType;
  11. //var CurrentProject;
  12. //function GetUserType(val) {
  13. // UserType = val;
  14. //}
  15. //function GeCurrentProject(val) {
  16. // CurrentProject = val;
  17. //}
  18. function AddStatus(ProjectID, name) {
  19. vm.Product = ProjectID;
  20. $("#Project").html(name);
  21. mui('#middlePopover').popover('hide');
  22. }
  23. function AddInstitution(InstitutiontID, name) {
  24. vm.Institution = InstitutiontID;
  25. $("#Institution").html(name);
  26. $("#InstitutionID").val("");
  27. mui('#middlePopover2').popover('hide');
  28. }
  29. ///提交产品问题
  30. function Submit() {
  31. var param = {
  32. detail: $("#detail").val(),
  33. ProjectID: $("#ProjectID").val(),
  34. ProductID: $("#ProductID").val(),
  35. ProductVersion: $("#ProductVersion").val(),
  36. Departments: $("#Departments").val(),
  37. ErginID: $("#ErginID").val(),
  38. RequireTime: $("#RequireTime").val(),
  39. urgentDetail: $("#urgentDetail").val(),
  40. DealStatus: $('input:radio:checked').attr("id"),
  41. DealDetail: $("#DealDetail").val(),
  42. ProblemTitile: $("#ProblemTitile").val(),
  43. InstitutionID: $("#InstitutionID").val()
  44. };
  45. if ($("#ProblemTitile").val().trim() == '') {
  46. mui.toast('请输入问题标题', { duration: 'long', type: 'div' });
  47. $('#ProblemTitile').focus();
  48. return;
  49. }
  50. if ($("#detail").val().trim() == '') {
  51. mui.toast('请填写问题详细描述', { duration: 'long', type: 'div' });
  52. $('#detail').focus();
  53. return;
  54. }
  55. if ($("#ProductID").val().trim() == '') {
  56. mui.toast('请选择存在问题的产品', { duration: 'long', type: 'div' });
  57. $('#product').click();
  58. return;
  59. }
  60. lod = mui.showLoading("正在提交,请稍后...", "div");
  61. $.post("/MobileProblem/SubmitProblem", param, function (data) {
  62. if (data.code == 200) {
  63. ProblemIDtoImg = data.msg;
  64. $("#ctlBtn").click();
  65. } else {
  66. mui.toast(data.msg, { duration: 'long', type: 'div' });
  67. }
  68. })
  69. }
  70. var ProjectObj;
  71. ///获取产品信息
  72. var vm = new Vue({
  73. el: '#VUE',
  74. data: {
  75. msg: 'Hello World!',
  76. Product: '',
  77. userPicker: null,
  78. Institution:''
  79. },
  80. watch: {
  81. Product: function (newProduct, oldProduct) {
  82. userResult.innerText = "请选择产品";
  83. $("#ProductID").val("");
  84. $("#ProductVersion").val("");
  85. this.GetProduct();
  86. Institution.innerText = "请选择机构";
  87. $("#InstitutionID").val("");
  88. this.GetInstitution();
  89. }
  90. },
  91. methods: {
  92. GetInstitution: function () {
  93. $("#InstitutionSelet").empty();
  94. this.$http.get('/MobileProblem/GetInstitution/' + this.Product).then(function (res) {
  95. for (var i = 0; i < res.data.length; i++) {
  96. $("#InstitutionSelet").append(" <li class='mui-table-view-cell '> <a onclick='AddInstitution(\"" + res.data[i].ID + "\",\"" + res.data[i].名称 + "\")' class='mui-navigate-right'>" + res.data[i].名称 + "</a> </li>");
  97. }
  98. }, function () {
  99. console.log('机构选项请求失败');
  100. });
  101. },
  102. GetProduct: function () {
  103. //发送get请求
  104. this.$http.get('/MobileProblem/GetProduct/' + this.Product).then(function (res) {
  105. var d = [];
  106. for (var i = 0; i < res.data.length; i++) {
  107. var c = {};
  108. c.value = res.data[i].产品ID;
  109. c.text = res.data[i].名称 + '-' + res.data[i].版本;
  110. d.push(c);
  111. }
  112. this.userPicker.setData(d);
  113. var showUserPickerButton = document.getElementById('product');
  114. var userResult = document.getElementById('userResult');
  115. var $this = this;
  116. showUserPickerButton.addEventListener('tap', function (event) {
  117. $this.userPicker.show(function (items) {
  118. $("#ProductID").val(items[0].value);
  119. if (items[0].text != null && items[0].text != "") {
  120. var x = items[0].text.indexOf("-");
  121. userResult.innerText = items[0].text.substring(0, x);
  122. $("#ProductVersion").val(items[0].text.substring(x + 1));
  123. }
  124. //返回 false 可以阻止选择框的关闭
  125. //return false;
  126. });
  127. }, false);
  128. }, function () {
  129. console.log('产品项请求失败');
  130. });
  131. },
  132. GetEmergency: function () {
  133. //发送get请求
  134. this.$http.get('/MobileProblem/GetCodeCombobox?ClassificationID=A10D6027-DEDD-4B6D-9549-33830DE52AEA').then(function (res) {
  135. var d = [];
  136. for (var i = 0; i < res.data.length; i++) {
  137. var c = {};
  138. c.value = res.data[i].代码;
  139. c.text = res.data[i].显示名;
  140. d.push(c);
  141. }
  142. //初始化紧急程度
  143. var userPicker2 = new mui.PopPicker();
  144. userPicker2.setData(d);
  145. var showUserPickerButton2 = document.getElementById('Ergin');
  146. var userResult2 = document.getElementById('ErginID');
  147. showUserPickerButton2.addEventListener('tap', function (event) {
  148. userPicker2.show(function (items) {
  149. ErginValue.innerText = items[0].text;
  150. $("#ErginID").val(items[0].value);
  151. //返回 false 可以阻止选择框的关闭
  152. //return false;
  153. });
  154. }, false);
  155. }, function () {
  156. console.log('紧急程度请求失败');
  157. });
  158. },
  159. GetProject: function () {
  160. this.$http.get('/MobileProblem/GetProductCombobox').then(function (res) {
  161. ProjectObj = res.data;
  162. for (var i = 0; i < res.data.length; i++) {
  163. $("#ProjectSelect").append(" <li class='mui-table-view-cell '> <a onclick='AddStatus(\"" + res.data[i].ID + "\",\"" + res.data[i].名称 + "\")' class='mui-navigate-right'>" + res.data[i].名称 + "</a> </li>");
  164. }
  165. this.CheckProject();
  166. }, function () {
  167. console.log('项目选项请求失败');
  168. });
  169. },
  170. CheckProject: function () {
  171. for (var i = 0; i < ProjectObj.length; i++) {
  172. if (ProjectObj[i].ID == CurrentProject) {
  173. this.Product = ProjectObj[i].ID;
  174. $("#Project").html(ProjectObj[i].名称);
  175. return;
  176. }
  177. }
  178. }
  179. , loadTime: function () {
  180. ///实例化日期组件
  181. var btns = $('.time-btn');
  182. btns.each(function (i, btn) {
  183. btn.addEventListener('tap', function () {
  184. var _self = this;
  185. if (_self.picker) {
  186. _self.picker.show(function (rs) {
  187. btn.innerHTML = rs.text;
  188. _self.picker.dispose();
  189. _self.picker = null;
  190. });
  191. } else {
  192. var optionsJson = this.getAttribute('data-options') || '{}';
  193. var options = JSON.parse(optionsJson);
  194. var id = this.getAttribute('id');
  195. _self.picker = new mui.DtPicker(options);
  196. _self.picker.show(function (rs) {
  197. /*
  198. * rs.value 拼合后的 value
  199. * rs.text 拼合后的 text
  200. * rs.y 年,可以通过 rs.y.vaue 和 rs.y.text 获取值和文本
  201. * rs.m 月,用法同年
  202. * rs.d 日,用法同年
  203. * rs.h 时,用法同年
  204. * rs.i 分(minutes 的第二个字母),用法同年
  205. */
  206. btn.innerHTML = rs.text;
  207. $("#RequireTime").val(rs.text);
  208. _self.picker.dispose();
  209. _self.picker = null;
  210. });
  211. }
  212. }, false);
  213. })
  214. },
  215. Load: function () {
  216. var $list = $("#fileList");
  217. var $btn = $("#ctlBtn");
  218. var thumbnailWidth = 100;
  219. var thumbnailHeight = 100;
  220. var uploader = WebUploader.create({
  221. // 选完文件后,是否自动上传。
  222. auto: false,
  223. // swf文件路径
  224. swf: '/Content/Scripts/plugins/mui/js/Uploader.swf',
  225. // 文件接收服务端。
  226. server: '/MobileProblem/ImageUploadFTP',
  227. // 选择文件的按钮。可选。
  228. // 内部根据当前运行是创建,可能是input元素,也可能是flash.
  229. pick: '#picker',
  230. // 只允许选择图片文件。
  231. accept: {
  232. title: 'Images',
  233. extensions: 'gif,jpg,jpeg,bmp,png',
  234. mimeTypes: 'image/*'
  235. },
  236. compress: {
  237. width: 1600,
  238. height: 1600,
  239. // 图片质量,只有type为`image/jpeg`的时候才有效。
  240. quality: 90,
  241. // 是否允许放大,如果想要生成小图的时候不失真,此选项应该设置为false.
  242. allowMagnify: false,
  243. // 是否允许裁剪。
  244. crop: false,
  245. // 是否保留头部meta信息。
  246. preserveHeaders: true,
  247. // 如果发现压缩后文件大小比原来还大,则使用原来图片
  248. // 此属性可能会影响图片自动纠正功能
  249. noCompressIfLarger: false,
  250. // 单位字节,如果图片大小小于此值,不会采用压缩。
  251. compressSize: 0
  252. }
  253. });
  254. uploader.on('fileQueued', function (file) {
  255. var $li = $(
  256. '<li id="' + file.id + '" class="mui-table-view-cell mui-media mui-col-xs-4 mui-col-sm-3"><img><p>' + file.name + '</p> </li>'
  257. ),
  258. $img = $li.find('img');
  259. // $list为容器jQuery实例
  260. $list.append($li);
  261. // 创建缩略图
  262. // 如果为非图片文件,可以不用调用此方法。
  263. // thumbnailWidth x thumbnailHeight 为 100 x 100
  264. uploader.makeThumb(file, function (error, src) {
  265. if (error) {
  266. $img.replaceWith('<span>不能预览</span>');
  267. return;
  268. }
  269. $img.attr('src', src);
  270. }, thumbnailWidth, thumbnailHeight);
  271. });
  272. // 文件上传成功,给item添加成功class, 用样式标记上传成功。
  273. uploader.on('uploadSuccess', function (file, response) {
  274. $('#' + file.id).addClass('upload-state-done');
  275. if (response.msg = "1") {
  276. Count += 1;
  277. }
  278. });
  279. // 文件上传失败,显示上传出错。
  280. uploader.on('uploadError', function (file) {
  281. var $li = $('#' + file.id),
  282. $error = $li.find('div.error');
  283. // 避免重复创建
  284. if (!$error.length) {
  285. $error = $('<div class="error"></div>').appendTo($li);
  286. }
  287. $error.text('上传失败');
  288. });
  289. // 完成上传完了,成功或者失败,先删除进度条。
  290. uploader.on('uploadComplete', function (file) {
  291. $('#' + file.id).find('.progress').remove();
  292. });
  293. uploader.on('uploadFinished', function () {
  294. mui.hideLoading(lod);
  295. mui.alert("问题提交成功,成功上传" + Count + "张图片", "提交成功", "确定", function () {
  296. window.location.href = "/MobileProblem/NewProblem";
  297. }, 'div');
  298. })
  299. $btn.on('click', function () {
  300. uploader.options.formData.ProblemID = ProblemIDtoImg;
  301. uploader.upload();
  302. });
  303. document.getElementById('pick').addEventListener('tap', function () {
  304. $(".webuploader-element-invisible").click();
  305. });
  306. $("#ProblemTitile").mouseleave(function () {
  307. var va = $("#ProblemTitile").val();
  308. $("#detail").val(va);
  309. })
  310. }
  311. }, mounted: function () {
  312. //初始化产品项
  313. this.Load();
  314. this.userPicker = new mui.PopPicker();
  315. this.GetProject();
  316. if (UserType == "true") {
  317. this.GetEmergency();
  318. this.loadTime();
  319. } else {
  320. $("#ProjectSelet").hide();
  321. $("#institut").hide();
  322. }
  323. }
  324. });