ProblemDistribution.cshtml 9.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232
  1. 
  2. @{
  3. ViewBag.Title = "ProblemDistribution";
  4. Layout = "~/Views/MobileProblem/_APPMain.cshtml";
  5. }
  6. <link href="~/Content/Scripts/plugins/mui/css/webuploader.css" rel="stylesheet" />
  7. <script src="~/Content/Scripts/plugins/mui/js/webuploader.js"></script>
  8. <script src="https://cdn.staticfile.org/vue-resource/1.5.1/vue-resource.min.js"></script>
  9. <style>
  10. .SelectDiv {
  11. float: right;
  12. font-size: 14px;
  13. color: #8f8f94;
  14. }
  15. [v-cloak] {
  16. display: none !important;
  17. }
  18. .mui-btn-success{
  19. color: #fff;
  20. border: 1px solid #00aaff;
  21. background-color: #00aaff;
  22. }
  23. </style>
  24. <div id="vue" v-cloak>
  25. <header class="mui-bar mui-bar-nav">
  26. <a class="mui-action-back mui-icon mui-icon-left-nav mui-pull-left" style="color:#ffffff"></a>
  27. <h1 class="mui-title" style="color:white">问题分配</h1>
  28. </header>
  29. <nav class="mui-bar mui-bar-tab">
  30. <button v-on:click="SubmitDistribition" type="button" class="mui-btn mui-btn-primary" style="width:90%;background-color: #2ab8ff;border:none;margin-left:5%">提交</button>
  31. </nav>
  32. <div class="mui-content">
  33. <h5 style="font-size:15px;padding:10px 17px">选择分配人</h5>
  34. <ul class="mui-table-view mui-table-view-chevron">
  35. <li class="mui-table-view-cell">
  36. <a href="#modal" class="mui-navigate-right" style="font-size:14px">
  37. 分配人
  38. <div class="SelectDiv">{{Person.姓名}}</div>
  39. </a>
  40. </li>
  41. </ul>
  42. <h5 style="font-size:15px;padding:10px 17px">分配描述</h5>
  43. <div class="mui-input-row" style="font-size:14px">
  44. <textarea v-model="Detail" rows="6" placeholder="请填写相关说明描述" style="font-size:15px"></textarea>
  45. </div>
  46. <ul id="fileList" class="mui-table-view mui-grid-view mui-grid-9" style="border-color:transparent;"></ul>
  47. <button style="margin:10px" id="pick" type="button" class="mui-btn mui-btn-success mui-icon mui-icon-plus">添加附件</button>
  48. <div style="display:none" id="picker">选择文件</div>
  49. <button style="margin-top: 30px;display:none;" id="ctlBtn" class="btn btn-default">开始上传</button>
  50. </div>
  51. <div id="modal" class="mui-modal">
  52. <header class="mui-bar mui-bar-nav">
  53. <a class="mui-icon mui-icon-close mui-pull-right" href="#modal" style="color:white"></a>
  54. <h1 class="mui-title" style="color:white">分配人员选择</h1>
  55. </header>
  56. <div class="mui-input-row mui-search" style="z-index:4">
  57. <input v-model="Search" type="search" class="mui-input-clear mui-indexed-list-search-input" placeholder="搜索人员">
  58. </div>
  59. <div class="mui-scroll-wrapper" style="margin-top:78px">
  60. <div class="mui-scroll">
  61. <ul class="mui-table-view">
  62. <li v-on:click="ChoosePerson(ps)" v-for="ps in PersonSelect" class="mui-table-view-cell">{{ps.姓名}}({{ps.职务}})
  63. <div style="float:right">{{ps.公司名称}}</div>
  64. </li>
  65. </ul>
  66. </div>
  67. </div>
  68. </div>
  69. </div>
  70. <script>
  71. var ProblemId = '@ViewBag.ID';
  72. var PersonProperty = @ViewBag.PersonProperty;
  73. var CompanyID = '@ViewBag.CompanyID';
  74. var DefaultProjectID = '@ViewBag.DefaultProjectID';
  75. var ProcessId;
  76. var t;
  77. var Count = 0;
  78. var vm = new Vue({
  79. el: '#vue',
  80. data: {
  81. msg: 'Hello World!',
  82. ProblemId: ProblemId,
  83. Search: '',//搜索条件
  84. PersonSelect: [],//人员选择项
  85. Person: {},//选中人员
  86. Detail:''
  87. }, created: function () {
  88. },
  89. watch: {
  90. Search: function (val, oldVal) {
  91. mui('.mui-scroll-wrapper').scroll().scrollTo(0,0,100);
  92. this.GetPerson();
  93. },
  94. },
  95. methods: {
  96. //获取人员
  97. GetPerson: function () {
  98. var that = this;
  99. mui.post('/MobileProblem/GetDistribuPerson', { search: that.Search, problemId: ProblemId }, function (data) {
  100. that.PersonSelect = data;
  101. }, 'json');
  102. },
  103. //选择人员
  104. ChoosePerson: function (Person) {
  105. this.Person = Person;
  106. $("#modal").removeClass("mui-active");
  107. },
  108. //提交分配请求
  109. SubmitDistribition:function(){
  110. var that=this;
  111. if(!this.Person){
  112. mui.toast('请选择分配的人员');
  113. return;
  114. }
  115. if(!this.Detail){
  116. mui.toast('请填写说明描述');
  117. return;
  118. }
  119. var t = mui.showLoading("分配中..", "div");
  120. //提交
  121. mui.post('/MobileProblem/ProblemDistributeSubmit/' + ProblemId, {PersonID:that.Person.ID,Deatil:that.Detail,PersonName:that.Person.姓名}, function (data) {
  122. if (data.code== 200) {
  123. ProcessId = data.msg;
  124. $("#ctlBtn").click();
  125. }else{
  126. mui.hideLoading(t);
  127. mui.toast(data.msg);
  128. }
  129. }, 'json');
  130. },
  131. //初始化上传接口
  132. InitUploader: function () {
  133. var $list = $("#fileList");
  134. var $btn = $("#ctlBtn");
  135. var uploader = WebUploader.create({
  136. auto: false,
  137. // swf文件路径
  138. swf: '/Content/Scripts/plugins/mui/js/Uploader.swf',
  139. // 文件接收服务端。
  140. server: '/MobileProblem/FlieUploadAndSave',
  141. // 选择文件的按钮。可选。
  142. // 内部根据当前运行是创建,可能是input元素,也可能是flash.
  143. pick: '#picker',
  144. // 不压缩image, 默认如果是jpeg,文件上传前会压缩一把再上传!
  145. resize: false
  146. });
  147. uploader.on('fileQueued', function (file) {
  148. $list.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"></span>' +
  149. '<div class="mui-media-body">' + file.name + '</div> </li>');
  150. });
  151. uploader.on('uploadSuccess', function (file,response) {
  152. var $li = $('#' + file.id),
  153. $error = $li.find('div.error');
  154. // 避免重复创建
  155. if (!$error.length) {
  156. $error = $('<div class="error" style="color:#4cd964;font-size:13px"></div>').appendTo($li);
  157. }
  158. $error.text('上传成功');
  159. if (response.code ==200) {
  160. Count += 1;
  161. }
  162. });
  163. uploader.on('uploadError', function (file) {
  164. var $li = $('#' + file.id),
  165. $error = $li.find('div.error');
  166. // 避免重复创建
  167. if (!$error.length) {
  168. $error = $('<div class="error" style="color:red;font-size:13px"></div>').appendTo($li);
  169. }
  170. $error.text('上传失败');
  171. });
  172. uploader.on('uploadComplete', function (file) {
  173. });
  174. uploader.on('uploadFinished', function () {
  175. mui.hideLoading(t);
  176. mui.toast("处理成功!成功上传" + Count + "个附件");
  177. setTimeout(function () {
  178. //mui.openWindow({
  179. // url: '/MobileProblem/ProblemDetail/' + ProblemId
  180. //});
  181. window.location.href = '/MobileProblem/ProblemDetail/' + ProblemId
  182. }, 500);
  183. })
  184. $btn.on('click', function () {
  185. uploader.options.formData.ProcessId = ProcessId;
  186. uploader.upload();
  187. });
  188. document.getElementById('pick').addEventListener('tap', function () {
  189. $(".webuploader-element-invisible").click();
  190. });
  191. },
  192. },
  193. mounted: function () {
  194. mui.init();
  195. mui('.mui-scroll-wrapper').scroll();
  196. this.GetPerson();
  197. this.InitUploader();
  198. }
  199. })
  200. </script>