Index.cshtml 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260
  1. @{;
  2. ViewBag.Title = "列表页面";
  3. Layout = "~/Views/Shared/_Index.cshtml";
  4. }
  5. <script>;
  6. $(function () {
  7. InitialPage();
  8. GetGrid();
  9. });
  10. //初始化页面
  11. function InitialPage() {
  12. //resize重设布局;
  13. $(window).resize(function (e) {
  14. window.setTimeout(function () {
  15. $('#gridTable').setGridWidth(($('.gridPanel').width()));
  16. $('#gridTable').setGridHeight($(window).height() - 136.5);
  17. }, 200);
  18. e.stopPropagation();
  19. });
  20. }
  21. //加载表格
  22. function GetGrid() {
  23. var selectedRowIndex = 0;
  24. var $gridTable = $('#gridTable');
  25. $gridTable.jqGrid({
  26. autowidth: true,
  27. height: $(window).height() - 136.5,
  28. url: "../../CustomerManage/Chance/GetPageListJson",
  29. datatype: "json",
  30. colModel: [
  31. { label: '商机主键', name: 'ChanceId', index: 'ChanceId', width: 100, align: 'left', sortable: true, hidden: true },
  32. { label: '商机编号', name: 'EnCode', index: 'EnCode', width: 100, align: 'left', sortable: true },
  33. { label: '商机名称', name: 'FullName', index: 'FullName', width: 250, align: 'left', sortable: true },
  34. { label: '预计金额', name: 'Amount', index: 'Amount', width: 80, align: 'left', sortable: true, formatter: 'number', formatoptions: { thousandsSeparator: "", decimalPlaces: 2 } },
  35. { label: '预计成交', name: 'DealDate', index: 'DealDate', width: 80, align: 'left', sortable: true, formatter: "date", formatoptions: { newformat: 'Y-m-d' } },
  36. { label: '商机来源', name: 'SourceId', index: 'SourceId', width: 80, align: 'center', sortable: true },
  37. { label: '商机阶段', name: 'StageId', index: 'StageId', width: 80, align: 'center', sortable: true },
  38. {
  39. label: '成功率%', name: 'SuccessRate', index: 'SuccessRate', width: 80, align: 'left', sortable: true,
  40. formatter: function (cellvalue, options, rowObject) {
  41. if (cellvalue > 50) {
  42. return "<span style='color:red'>" + cellvalue + "%</span>";
  43. } else {
  44. return (cellvalue == null ? "0" : cellvalue) + "%";
  45. }
  46. }
  47. },
  48. { label: '联系人', name: 'Contacts', index: 'Contacts', width: 80, align: 'left', sortable: true },
  49. { label: '跟进人员', name: 'TraceUserName', index: 'TraceUserName', width: 80, align: 'left', sortable: true },
  50. { label: '最后更新', name: 'ModifyDate', index: 'ModifyDate', width: 130, align: 'left', sortable: true, formatter: "date", formatoptions: { srcformat: 'Y-m-d H:i', newformat: 'Y-m-d H:i' } },
  51. {
  52. label: "商机状态", name: "ChanceState", index: 'ChanceState', width: 80, align: "center",
  53. formatter: function (cellvalue, options, rowObject) {
  54. if (rowObject.IsToCustom == 1) {
  55. return "<span class=\"label label-warning\">已转客户</span>";
  56. }
  57. if (cellvalue == 0) {
  58. return "<span class=\"label label-danger\">作废</span>";
  59. } else {
  60. return "<span class=\"label label-success\">正常</span>";
  61. }
  62. }
  63. },
  64. { label: '备注', name: 'Description', index: 'Description', width: 200, align: 'left', sortable: true }
  65. ],
  66. viewrecords: true,
  67. rowNum: 30,
  68. rowList: [30, 50, 100],
  69. pager: "#gridPager",
  70. sortname: 'ModifyDate',
  71. sortorder: 'desc',
  72. rownumbers: true,
  73. shrinkToFit: false,
  74. gridview: true,
  75. onSelectRow: function () {
  76. selectedRowIndex = $('#' + this.id).getGridParam('selrow');
  77. },
  78. gridComplete: function () {
  79. $('#' + this.id).setSelection(selectedRowIndex, false);
  80. }
  81. });
  82. $gridTable.authorizeColModel();
  83. //查询条件
  84. $("#queryCondition .dropdown-menu li").click(function () {
  85. var text = $(this).find('a').html();
  86. var value = $(this).find('a').attr('data-value');
  87. $("#queryCondition .dropdown-text").html(text).attr('data-value', value)
  88. });
  89. //查询事件
  90. $("#btn_Search").click(function () {
  91. var queryJson = {
  92. condition: $("#queryCondition").find('.dropdown-text').attr('data-value'),
  93. keyword: $("#txt_Keyword").val()
  94. }
  95. $gridTable.jqGrid('setGridParam', {
  96. postData: { queryJson: JSON.stringify(queryJson) },
  97. page: 1
  98. }).trigger('reloadGrid');
  99. });
  100. //查询回车
  101. $('#txt_Keyword').bind('keypress', function (event) {
  102. if (event.keyCode == "13") {
  103. $('#btn_Search').trigger("click");
  104. }
  105. });
  106. }
  107. //新增
  108. function btn_add() {
  109. dialogOpen({
  110. id: 'Form',
  111. title: '添加商机',
  112. url: '/CustomerManage/Chance/Form',
  113. width: "750px",
  114. height: "600px",
  115. callBack: function (iframeId) {
  116. top.frames[iframeId].AcceptClick();
  117. }
  118. });
  119. }
  120. //编辑
  121. function btn_edit() {
  122. var keyValue = $("#gridTable").jqGridRowValue('ChanceId');
  123. if (checkedRow(keyValue)) {
  124. dialogOpen({
  125. id: 'Form',
  126. title: '编辑商机',
  127. url: '/CustomerManage/Chance/Form?keyValue=' + keyValue,
  128. width: "750px",
  129. height: "600px",
  130. callBack: function (iframeId) {
  131. top.frames[iframeId].AcceptClick();
  132. }
  133. })
  134. }
  135. }
  136. //删除
  137. function btn_delete() {
  138. var keyValue = $("#gridTable").jqGridRowValue('ChanceId');
  139. if (keyValue) {
  140. $.RemoveForm({
  141. url: '../../CustomerManage/Chance/RemoveForm',
  142. param: { keyValue: keyValue },
  143. success: function (data) {
  144. $('#gridTable').trigger('reloadGrid');
  145. }
  146. })
  147. } else {
  148. dialogMsg('请选择需要删除的商机信息!', 0);
  149. }
  150. }
  151. //详细
  152. function btn_detail() {
  153. var keyValue = $("#gridTable").jqGridRowValue("ChanceId");
  154. if (checkedRow(keyValue)) {
  155. dialogOpen({
  156. id: "Detail",
  157. title: '商机信息',
  158. url: '/CustomerManage/Chance/Detail?keyValue=' + keyValue,
  159. width: '750px',
  160. height: '550px',
  161. btn: null
  162. });
  163. }
  164. }
  165. //作废
  166. function btn_invalid() {
  167. var keyValue = $("#gridTable").jqGridRowValue('ChanceId');
  168. var fullName = $("#gridTable").jqGridRowValue('FullName');
  169. if (checkedRow(keyValue)) {
  170. $.ConfirmAjax({
  171. msg: "注:您确定要把商机【" + fullName + "】作废掉吗?",
  172. url: "../../CustomerManage/Chance/Invalid",
  173. param: { keyValue: keyValue },
  174. success: function (data) {
  175. $('#gridTable').trigger('reloadGrid');
  176. }
  177. });
  178. }
  179. }
  180. //跟进记录
  181. function btn_chancetrail() {
  182. var keyValue = $("#gridTable").jqGridRowValue('ChanceId');
  183. var fullName = $("#gridTable").jqGridRowValue('FullName');
  184. if (checkedRow(keyValue)) {
  185. dialogOpen({
  186. id: 'ChanceTrailIndex',
  187. title: fullName + ' - 跟进记录',
  188. url: '/CustomerManage/TrailRecord/Index?objectId=' + keyValue + '&objectSort=1',
  189. width: '750px',
  190. height: '550px',
  191. btn: null
  192. });
  193. }
  194. }
  195. //转换客户
  196. function btn_tocustomer() {
  197. var keyValue = $("#gridTable").jqGridRowValue('ChanceId');
  198. var fullName = $("#gridTable").jqGridRowValue('FullName');
  199. if (checkedRow(keyValue)) {
  200. $.ConfirmAjax({
  201. msg: "注:您确定要把商机【" + fullName + "】转换客户吗?",
  202. url: "../../CustomerManage/Chance/ToCustomer",
  203. param: { keyValue: keyValue },
  204. success: function (data) {
  205. $('#gridTable').trigger('reloadGrid');
  206. }
  207. });
  208. }
  209. }
  210. </script>
  211. <div class="titlePanel">
  212. <div class="title-search">
  213. <table>
  214. <tr>
  215. <td>
  216. <div id="queryCondition" class="btn-group">
  217. <a class="btn btn-default dropdown-text" data-toggle="dropdown">选择条件</a>
  218. <a class="btn btn-default dropdown-toggle" data-toggle="dropdown"><span class="caret"></span></a>
  219. <ul class="dropdown-menu">
  220. <li><a data-value="EnCode">商机编号</a></li>
  221. <li><a data-value="FullName">商机名称</a></li>
  222. <li><a data-value="Contacts">联系人</a></li>
  223. <li><a data-value="Mobile">手机</a></li>
  224. <li><a data-value="Tel">电话</a></li>
  225. <li><a data-value="QQ">QQ</a></li>
  226. <li><a data-value="Wechat">微信</a></li>
  227. </ul>
  228. </div>
  229. </td>
  230. <td style="padding-left: 2px;">
  231. <input id="txt_Keyword" type="text" class="form-control" placeholder="请输入要查询关键字" style="width: 200px;" />
  232. </td>
  233. <td style="padding-left: 5px;">
  234. <a id="btn_Search" class="btn btn-primary"><i class="fa fa-search"></i>&nbsp;查询</a>
  235. </td>
  236. </tr>
  237. </table>
  238. </div>
  239. <div class="toolbar">
  240. <div class="btn-group">
  241. <a id="lr-replace" class="btn btn-default" onclick="reload()"><i class="fa fa-refresh"></i>&nbsp;刷新</a>
  242. <a id="lr-add" class="btn btn-default" onclick="btn_add()"><i class="fa fa-plus"></i>&nbsp;新增</a>
  243. <a id="lr-edit" class="btn btn-default" onclick="btn_edit()"><i class="fa fa-pencil-square-o"></i>&nbsp;编辑</a>
  244. <a id="lr-delete" class="btn btn-default" onclick="btn_delete()"><i class="fa fa-trash-o"></i>&nbsp;删除</a>
  245. <a id="lr-detail" class="btn btn-default" onclick="btn_detail()"><i class="fa fa-list-alt"></i>&nbsp;详细</a>
  246. <a id="lr-invalid" class="btn btn-default" onclick="btn_invalid()"><i class="fa fa-cut"></i>&nbsp;作废</a>
  247. </div>
  248. <div class="btn-group">
  249. <a id="lr-chancetrail" class="btn btn-default" onclick="btn_chancetrail()"><i class="fa fa-clock-o"></i>&nbsp;跟进记录</a>
  250. <a id="lr-tocustomer" class="btn btn-default" onclick="btn_tocustomer()"><i class="fa fa-random"></i>&nbsp;转换客户</a>
  251. </div>
  252. <script>$('.toolbar').authorizeButton()</script>
  253. </div>
  254. </div>
  255. <div class="gridPanel">
  256. <table id="gridTable"></table>
  257. <div id="gridPager"></div>
  258. </div>