纽威
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

486 lines
22 KiB

3 years ago
  1. @{
  2. ViewBag.Title = "Form";
  3. Layout = "~/Views/Shared/_Form.cshtml";
  4. }
  5. <link href="~/Content/css/CommonReport/CommonReport.css" rel="stylesheet" />
  6. <script src="~/Content/js/CommonReport/CommonReport.js"></script>
  7. <link href="~/Content/css/bootstrap/bootstrap-select.css" rel="stylesheet" />
  8. <script src="~/Content/js/bootstrap/bootstrap-select.min.js"></script>
  9. <style>
  10. * {
  11. box-sizing: border-box;
  12. }
  13. .form-control {
  14. width:95%
  15. }
  16. </style>
  17. <script>
  18. var SourceID = $.request("SourceID");
  19. var MenuID = $.request("MenuID");
  20. var DataTypeString = new Array();
  21. var NewLine = 0;
  22. var MaxPaiXu = 0;
  23. var FirstShow = 0;
  24. $(function () {
  25. DataTypeString = GetDataTypeString();
  26. gridList();
  27. $(window).resize(function () {
  28. $("#gridList").setGridWidth($(window).width() * 0.99);
  29. $("#gridList").setGridWidth(document.body.clientWidth * 0.99);
  30. $("#gridList").setGridHeight($(window).height() - 96);
  31. $("#gridList").setGridHeight(document.body.clientHeight - 96);
  32. });
  33. });
  34. function gridList() {
  35. document.getElementsByClassName("gridPanel")[0].innerHTML = ' <table id="gridList"></table>';
  36. var $gridList = $("#gridList");
  37. $gridList.dataGrid({
  38. url: "/SystemManage/CommonReport/GetCols?" + Math.random(),
  39. postData: { SourceID: SourceID },
  40. height: $(window).height() - 96,
  41. width:"100%",
  42. colModel: [//IDStr 显示名称 字段名称 数据类型 小数点位数 字段宽度
  43. //合并相同项 合并相同项Key 汇总 从属表头 显示 显示顺序 允许排序 自定义项 自定义公式
  44. //ColCaption ColFiledName DataType DefineFlag FunctionString DeciamlNum
  45. //ColWidth ColMerFlag ColMerKeyFlag ColSumFlag HeaderId COrder VisbleFlag SortFlag
  46. {
  47. label: 'IDStr', name: 'IDStr', width: 80, align: 'left', sortable: false,
  48. },
  49. { label: 'ColCaption', name: 'ColCaption', hidden: true, },
  50. { label: 'ColFiledName', name: 'ColFiledName', hidden: true, },
  51. { label: 'DataType', name: 'DataType', hidden: true, },
  52. { label: 'DefineFlag', name: 'DefineFlag', hidden: true, },
  53. { label: 'FunctionString', name: 'FunctionString', hidden: true, },
  54. { label: 'DeciamlNum', name: 'DeciamlNum', hidden: true, },
  55. { label: 'ColWidth', name: 'ColWidth', hidden: true, },
  56. { label: 'ColMerFlag', name: 'ColMerFlag', hidden: true, },
  57. { label: 'ColMerKeyFlag', name: 'ColMerKeyFlag', hidden: true, },
  58. { label: 'ColSumFlag', name: 'ColSumFlag', hidden: true, },
  59. { label: 'HeaderId', name: 'HeaderId', hidden: true, },
  60. { label: 'COrder', name: 'COrder', hidden: true, },
  61. { label: 'VisbleFlag', name: 'VisbleFlag', hidden: true, },
  62. { label: 'SortFlag', name: 'SortFlag', hidden: true, },
  63. {
  64. label: '显示名称', name: '显示名称', width: 130, align: 'left', sortable: false,
  65. formatter: function (cellvalue, options, rowObject) {
  66. var str_retrun = '<input type="text" class="form-control" id="ColCaption_' + rowObject.IDStr + '" value="' + cellvalue + '" />';
  67. return cellvalue = str_retrun;
  68. },
  69. },
  70. {
  71. label: '字段名称', name: '字段名称', width: 130, align: 'left', sortable: false,
  72. formatter: function (cellvalue, options, rowObject) {
  73. var str_retrun = '<input type="text" class="form-control" id="ColFiledName_' + rowObject.IDStr + '" value="' + cellvalue + '" />';
  74. return cellvalue = str_retrun;
  75. },
  76. },
  77. {
  78. label: '数据类型', name: '数据类型', width: 120, align: 'left', sortable: false,
  79. formatter: function (cellvalue, options, rowObject) {
  80. var str_retrun = '<select class="selectpicker" id="selDataType_' + rowObject.IDStr + '" Title="" data-width="90px" > ';
  81. str_retrun += "<option value=''></option>";
  82. for (var i = 0; i < DataTypeString.length; i++) {
  83. str_retrun += "<option value=\"" + DataTypeString[i].value + "\">" + DataTypeString[i].Str + "</option>";
  84. }
  85. str_retrun += '</select>';
  86. return cellvalue = str_retrun;
  87. }
  88. },
  89. {
  90. label: '小数点位数', name: '小数点位数', width: 80, align: 'left', sortable: false,
  91. formatter: function (cellvalue, options, rowObject) {
  92. var str_retrun = '<input type="text" class="form-control" id="DeciamlNum_' + rowObject.IDStr + '" value="' + cellvalue + '" />';
  93. return cellvalue = str_retrun;
  94. },
  95. },
  96. {
  97. label: '字段宽度', name: '字段宽度', width: 80, align: 'left', sortable: false,
  98. formatter: function (cellvalue, options, rowObject) {
  99. var str_retrun = '<input type="text" class="form-control" id="ColWidth_' + rowObject.IDStr + '" value="' + cellvalue + '" />';
  100. return cellvalue = str_retrun;
  101. },
  102. },
  103. {
  104. label: '合并相同项', name: '合并相同项', width: 80, align: 'left', sortable: false,
  105. formatter: function (cellvalue, options, rowObject) {
  106. var str_retrun = '<input type="checkbox" name="ColMerFlag_' + rowObject.IDStr + '" ';
  107. str_retrun += ' id="ColMerFlag_' + rowObject.IDStr + '" value="' + cellvalue + '" ';
  108. return cellvalue = str_retrun;
  109. }
  110. }, {
  111. label: '合并相同项Key', name: '合并相同项Key', width: 80, align: 'left', sortable: false,
  112. formatter: function (cellvalue, options, rowObject) {
  113. var str_retrun = '<input type="checkbox" name="ColMerKeyFlag_' + rowObject.IDStr + '" ';
  114. str_retrun += ' id="ColMerKeyFlag_' + rowObject.IDStr + '" value="' + cellvalue + '" ';
  115. return cellvalue = str_retrun;
  116. }
  117. },{
  118. label: '汇总', name: '汇总', width: 80, align: 'left', sortable: false,
  119. formatter: function (cellvalue, options, rowObject) {
  120. var str_retrun = '<input type="checkbox" name="ColSumFlag_' + rowObject.IDStr + '" ';
  121. str_retrun += ' id="ColSumFlag_' + rowObject.IDStr + '" value="' + cellvalue + '" ';
  122. return cellvalue = str_retrun;
  123. }
  124. },
  125. {
  126. label: '从属表头', name: '从属表头', width: 90, align: 'left', sortable: false,
  127. formatter: function (cellvalue, options, rowObject) {
  128. var str_retrun = '<input type="text" class="form-control" id="HeaderId_' + rowObject.IDStr + '" value="' + cellvalue + '" />';
  129. return cellvalue = str_retrun;
  130. },
  131. }, {
  132. label: '显示', name: '显示', width: 80, align: 'left', sortable: false,
  133. formatter: function (cellvalue, options, rowObject) {
  134. var str_retrun = '<input type="checkbox" name="VisbleFlag_' + rowObject.IDStr + '" ';
  135. str_retrun += ' id="VisbleFlag_' + rowObject.IDStr + '" value="' + cellvalue + '" ';
  136. return cellvalue = str_retrun;
  137. }
  138. },
  139. {
  140. label: '显示顺序', name: '显示顺序', width: 80, align: 'left', sortable: false,
  141. formatter: function (cellvalue, options, rowObject) {
  142. var str_retrun = '<input type="text" class="form-control" id="COrder_' + rowObject.IDStr + '" value="' + cellvalue + '" />';
  143. return cellvalue = str_retrun;
  144. },
  145. }, {
  146. label: '允许排序', name: '允许排序', width: 80, align: 'left', sortable: false,
  147. formatter: function (cellvalue, options, rowObject) {
  148. var str_retrun = '<input type="checkbox" name="SortFlag_' + rowObject.IDStr + '" ';
  149. str_retrun += ' id="SortFlag_' + rowObject.IDStr + '" value="' + cellvalue + '" ';
  150. return cellvalue = str_retrun;
  151. }
  152. }, {
  153. label: '自定义项', name: '自定义项', width: 60, align: 'left', sortable: false,
  154. formatter: function (cellvalue, options, rowObject) {
  155. var str_retrun = '<input type="checkbox" name="DefineFlag_' + rowObject.IDStr + '" ';
  156. str_retrun+=' id="DefineFlag_' + rowObject.IDStr + '" value="' + cellvalue + '" ';
  157. return cellvalue = str_retrun;
  158. }
  159. }, {
  160. label: '自定义公式', name: '自定义公式', width: 200, align: 'left', sortable: false,
  161. formatter: function (cellvalue, options, rowObject) {
  162. var str_retrun = '<input type="text" class="form-control" id="FunctionString_' + rowObject.IDStr + '" value="' + cellvalue + '" />';
  163. return cellvalue = str_retrun;
  164. },
  165. },
  166. ],
  167. // pager: "#gridPager",
  168. //sortname: '显示顺序',
  169. //// rowNum: -1,
  170. //sortorder: 'asc',
  171. viewrecords: true,
  172. rownumbers: true,
  173. multiselect: true,
  174. rowNum: 500,
  175. // cellEdit: false,
  176. // multiboxonly: true,
  177. // multikey:'shiftKey',
  178. gridComplete: function () {
  179. $("#gridList").setGridParam().hideCol("IDStr");//隐藏ID列
  180. $("#gridList").setGridParam().hideCol("自定义项");//隐藏ID列
  181. $("#gridList").setGridParam().hideCol("自定义公式");//隐藏ID列
  182. var strIds = $("#gridList").jqGrid("getDataIDs");
  183. if (FirstShow == 0) {
  184. for (var i = 0; i < strIds.length; i++) {
  185. var IDStr = $("#gridList").jqGrid("getCell", strIds[i], "IDStr");
  186. //DataType
  187. var selDataType = $("#gridList").jqGrid("getCell", strIds[i], "DataType");
  188. $("#selDataType_" + IDStr).selectpicker('refresh');
  189. $("#selDataType_" + IDStr).selectpicker('val', selDataType);
  190. //DefineFlag
  191. var DefineFlag = $("#gridList").jqGrid("getCell", strIds[i], "DefineFlag");
  192. if (DefineFlag == "false") {
  193. document.getElementById("DefineFlag_" + IDStr).checked = false;
  194. }
  195. else {
  196. document.getElementById("DefineFlag_" + IDStr).checked = true;
  197. }
  198. //ColMerFlag
  199. var ColMerFlag = $("#gridList").jqGrid("getCell", strIds[i], "ColMerFlag");
  200. if (ColMerFlag == "false") {
  201. document.getElementById("ColMerFlag_" + IDStr).checked = false;
  202. }
  203. else
  204. {
  205. document.getElementById("ColMerFlag_" + IDStr).checked = true;
  206. }
  207. //ColMerKeyFlag
  208. var ColMerKeyFlag = $("#gridList").jqGrid("getCell", strIds[i], "ColMerKeyFlag");
  209. if (ColMerKeyFlag == "false") {
  210. document.getElementById("ColMerKeyFlag_" + IDStr).checked = false;
  211. }
  212. else {
  213. document.getElementById("ColMerKeyFlag_" + IDStr).checked = true;
  214. }
  215. //ColSumFlag
  216. var ColSumFlag = $("#gridList").jqGrid("getCell", strIds[i], "ColSumFlag");
  217. if (ColSumFlag == "false") {
  218. document.getElementById("ColSumFlag_" + IDStr).checked = false;
  219. }
  220. else {
  221. document.getElementById("ColSumFlag_" + IDStr).checked = true;
  222. }
  223. //VisbleFlag
  224. var VisbleFlag = $("#gridList").jqGrid("getCell", strIds[i], "VisbleFlag");
  225. if (VisbleFlag == "false") {
  226. document.getElementById("VisbleFlag_" + IDStr).checked = false;
  227. }
  228. else {
  229. document.getElementById("VisbleFlag_" + IDStr).checked = true;
  230. }
  231. //SortFlag
  232. var SortFlag = $("#gridList").jqGrid("getCell", strIds[i], "SortFlag");
  233. if (SortFlag == "false") {
  234. document.getElementById("SortFlag_" + IDStr).checked = false;
  235. }
  236. else {
  237. document.getElementById("SortFlag_" + IDStr).checked = true;
  238. }
  239. }
  240. FirstShow = 1;
  241. }
  242. NewLine = strIds.length;
  243. $("#gridList").jqGrid('hideCol', 'cb');//隐藏勾选框 //勾选框选中的时候 与行选中有异常,所以隐藏
  244. },
  245. });
  246. }
  247. function SHowcols(colname) {
  248. $("#gridList").setGridParam().showCol(colname);
  249. }
  250. function Hiddencols(colname) {
  251. $("#gridList").setGridParam().hideCol(colname);
  252. }
  253. //添加新增列
  254. function btn_ReSet()
  255. {
  256. $.ajax({
  257. url: "/SystemManage/CommonReport/ReSetCols" + "?" + Math.random(),
  258. type: "post",
  259. data: { MenuID: MenuID },
  260. async: false,
  261. success: function (data) {
  262. alert(data);
  263. NewLine = 0;
  264. MaxPaiXu = 0;
  265. FirstShow = 0;
  266. gridList();
  267. },
  268. error: function (aa) {
  269. alert("异常:" + aa.responseText);
  270. }
  271. });
  272. }
  273. //新增一行
  274. function btn_ADD() {
  275. NewLine = NewLine + 1;
  276. MaxPaiXu = MaxPaiXu + 1;
  277. var ids = jQuery("#gridList").jqGrid('getDataIDs');
  278. if (ids.length == 0) {
  279. ids = [0];
  280. }
  281. //获得当前最大行号(数据编号)
  282. var rowid = Math.max.apply(Math, ids);
  283. //获得新添加行的行号(数据编号)
  284. var newrowid = rowid + 1;
  285. $("#gridList").addRowData(newrowid,
  286. {//IDStr 显示名称 字段名称 数据类型 小数点位数 字段宽度
  287. //合并相同项 合并相同项Key 汇总 从属表头 显示 显示顺序 允许排序 自定义项 自定义公式
  288. //ColCaption ColFiledName DataType DefineFlag FunctionString DeciamlNum
  289. //ColWidth ColMerFlag ColMerKeyFlag ColSumFlag HeaderId COrder VisbleFlag SortFlag
  290. "IDStr": NewLine.toString(),
  291. "ColCaption": "",
  292. "ColFiledName": "",
  293. "DataType": "",
  294. "DeciamlNum": "",
  295. "ColWidth": "",
  296. "ColMerFlag": "",
  297. "ColMerKeyFlag": "",
  298. "ColSumFlag": "",
  299. "HeaderId": "",
  300. "VisbleFlag": "",
  301. "COrder": MaxPaiXu,
  302. "SortFlag": "",
  303. "DefineFlag": "",
  304. "FunctionString": "",
  305. "显示名称": "",
  306. "字段名称": "",
  307. "数据类型": "",
  308. "小数点位数": "",
  309. "字段宽度": "",
  310. "合并相同项": "",
  311. "合并相同项Key": "",
  312. "汇总": "",
  313. "从属表头": "",
  314. "显示": "",
  315. "显示顺序": "",
  316. "允许排序": "",
  317. "自定义项": "",
  318. "自定义公式": "",
  319. },
  320. "last");
  321. var unwritten = document.getElementsByClassName("unwritten")[0];
  322. if (unwritten != null && unwritten != 'undefined') {
  323. unwritten.style.display = "none";
  324. }
  325. // $(".unwritten").attr("display", "none");
  326. //刷新下拉框 select
  327. var strIds = $("#gridList").jqGrid("getDataIDs");
  328. var rr = strIds.length - 1;
  329. var IDStr = $("#gridList").jqGrid("getCell", strIds[rr], "IDStr");
  330. //DataType
  331. var selDataType = $("#gridList").jqGrid("getCell", strIds[rr], "DataType");
  332. $("#selDataType_" + IDStr).selectpicker('refresh');
  333. $("#selDataType_" + IDStr).selectpicker('val', selDataType);
  334. }
  335. //删除选中行
  336. function btn_Del() {
  337. var selectedRowIds = $("#gridList").jqGrid("getGridParam", "selarrrow");
  338. var len = selectedRowIds.length;
  339. for (var i = 0; i < len ; i++) {
  340. $("#gridList").jqGrid("delRowData", selectedRowIds[i]);
  341. }
  342. var selectedRowIds = $("#gridList").jqGrid("getGridParam", "selarrrow");
  343. var len = selectedRowIds.length;
  344. for (var i = 0; i < len ; i++) {
  345. $("#gridList").jqGrid("delRowData", selectedRowIds[i]);
  346. }
  347. }
  348. function submitForm() {
  349. var SubmitLine = new Array();
  350. var strIds = $("#gridList").jqGrid("getDataIDs");
  351. for (var i = 0; i < strIds.length; i++) {
  352. //IDStr 显示名称 字段名称 数据类型 小数点位数 字段宽度
  353. //合并相同项 合并相同项Key 汇总 从属表头 显示 显示顺序 允许排序 自定义项 自定义公式
  354. //ColCaption ColFiledName DataType DefineFlag FunctionString DeciamlNum
  355. //ColWidth ColMerFlag ColMerKeyFlag ColSumFlag HeaderId COrder VisbleFlag SortFlag
  356. var IDStr = $("#gridList").jqGrid("getCell", strIds[i], "IDStr");
  357. var ColCaption = $("#ColCaption_" + IDStr).val();
  358. var ColFiledName = $("#ColFiledName_" + IDStr).val();
  359. var ColCaption = $("#ColCaption_" + IDStr).val();
  360. var DataType = $("#selDataType_" + IDStr).val();
  361. var DefineFlag = checkboxToNumStr(document.getElementById("DefineFlag_" + IDStr));
  362. var FunctionString = $("#FunctionString_" + IDStr).val();
  363. var DeciamlNum = $("#DeciamlNum_" + IDStr).val();
  364. var ColWidth = $("#ColWidth_" + IDStr).val();
  365. var ColMerFlag = checkboxToNumStr(document.getElementById("ColMerFlag_" + IDStr));
  366. var ColMerKeyFlag = checkboxToNumStr(document.getElementById("ColMerKeyFlag_" + IDStr));
  367. var ColSumFlag = checkboxToNumStr(document.getElementById("ColSumFlag_" + IDStr));
  368. var HeaderId = $("#HeaderId_" + IDStr).val();
  369. var COrder = $("#COrder_" + IDStr).val();
  370. var VisbleFlag = checkboxToNumStr(document.getElementById("VisbleFlag_" + IDStr));
  371. var SortFlag = checkboxToNumStr(document.getElementById("SortFlag_" + IDStr));
  372. var obj = {
  373. Id:IDStr,
  374. ColCaption: ColCaption,
  375. ColFiledName: ColFiledName,
  376. DataType: DataType,
  377. DefineFlag: DefineFlag,
  378. FunctionString: FunctionString,
  379. DeciamlNum: DeciamlNum,
  380. ColWidth: ColWidth,
  381. ColMerFlag: ColMerFlag,
  382. ColMerKeyFlag: ColMerKeyFlag,
  383. ColSumFlag: ColSumFlag,
  384. HeaderId: HeaderId,
  385. COrder: COrder,
  386. VisbleFlag: VisbleFlag,
  387. SortFlag: SortFlag,
  388. }
  389. SubmitLine.push(obj);
  390. }
  391. $.ajax({
  392. url: "/SystemManage/CommonReport/SetCols" + "?" + Math.random(),
  393. type: "post",
  394. data: { SourceID: SourceID, List_Cols: JSON.stringify(SubmitLine), },
  395. async: false,
  396. success: function (data) {
  397. alert(data);
  398. $.modalClose();
  399. },
  400. error: function (aa) {
  401. alert("异常:" + aa.responseText);
  402. }
  403. });
  404. }
  405. </script>
  406. <form id="form1">
  407. <div style="margin-top: 10px; margin-left: 10px; margin-right: 10px;">
  408. <div class="form-group" style="height:40px;margin-bottom:5px">
  409. <div class="btn-group">
  410. <a id="Btn_ReSet" authorize="yes" class="btn btn-primary dropdown-text" onclick="btn_ReSet()"><i class="fa fa-plus"></i>添加新增列</a>
  411. @*<a id="Btn_ADD" authorize="yes" class="btn btn-primary dropdown-text" onclick="btn_ADD()"><i class="fa fa-plus"></i>新增</a>*@
  412. <a id="Btn_Del" authorize="yes" class="btn btn-primary dropdown-text" onclick="btn_Del()"><i class="fa fa-minus"></i>删除</a>
  413. </div>
  414. </div>
  415. <div class="gridPanel">
  416. <table id="gridList"></table>
  417. @*<div id="gridPager"></div>*@
  418. </div>
  419. </div>
  420. </form>