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.

398 lines
19 KiB

1 month ago
  1. @{
  2. ViewBag.Title = "Index";
  3. Layout = "~/Views/Shared/_Index.cshtml";
  4. }
  5. @*<meta http-equiv="refresh" content="60">*@
  6. <link href="~/Content/js/select2/select2.min.css" rel="stylesheet" />
  7. <script src="~/Content/js/select2/select2.min.js"></script>
  8. @*<script type="text/javascript">
  9. var Time = '@System.Web.Configuration.WebConfigurationManager.ConnectionStrings["RefreshTime"].ConnectionString';
  10. //debugger;
  11. $(document).ready(function () {
  12. setInterval("gridList()", Time);
  13. });
  14. </script>*@
  15. <script>
  16. var myDate = new Date();
  17. var DateNow = formatDate("YYYY-mm-dd HH:MM:SS", myDate)
  18. function formatDate(fomatType, date) {
  19. let ret;
  20. let valueDate = date;
  21. if (!date) valueDate = new Date()
  22. let opt = {
  23. "Y+": valueDate.getFullYear().toString(), // 年
  24. "m+": (valueDate.getMonth() + 1).toString(), // 月
  25. "d+": valueDate.getDate().toString(), // 日
  26. "H+": valueDate.getHours().toString(), // 时
  27. "M+": valueDate.getMinutes().toString(), // 分
  28. "S+": valueDate.getSeconds().toString() // 秒
  29. };
  30. for (let k in opt) {
  31. ret = new RegExp("(" + k + ")").exec(fomatType);
  32. if (ret) {
  33. fomatType = fomatType.replace(ret[1], (ret[1].length == 1) ? (opt[k]) : (opt[k].padStart(ret[1].length, "0")))
  34. };
  35. };
  36. return fomatType;
  37. }
  38. $(function () {
  39. var BidStatus = $("#BidStatus");
  40. BidStatus.select2({
  41. allowClear: true,
  42. escapeMarkup: function (m) {
  43. return m;
  44. }
  45. });
  46. BidStatus.append("<option value=' ' selected>&nbsp;&nbsp;&nbsp;</option>");
  47. BidStatus.append("<option value='1'>已投标</option>");
  48. BidStatus.append("<option value='0'>未投标</option>");
  49. gridList();
  50. })
  51. function gridList() {
  52. document.getElementById("gridPanel").innerHTML = ' <table id="gridList"></table> ';//重置grid
  53. var $gridList = $("#gridList");
  54. var queryJson = {
  55. BidCode: $("#txt_BidCode").val(),
  56. BidStatus: $("#BidStatus option:checked").val(),
  57. //BidStatus: $("#txt_BidStatus").val(),
  58. TimeFrom: $("#txt_StarTime").val(),
  59. TimeTo: $("#txt_EndTime").val()
  60. }
  61. $gridList.dataGrid({
  62. cellEdit: true,
  63. url: "/PNSRM/BicDoc_Seller/GetGridJson" + "?" + Math.random(),
  64. postData: { queryJson: JSON.stringify(queryJson) },
  65. height: $(window).height() - 150,
  66. width: $(window).width() - 300,
  67. colModel: [
  68. {
  69. label: '操作', width: 50, align: 'center',
  70. formatter: btnModify
  71. },
  72. { label: "主键", name: "ID", hidden: true, key: true },
  73. { label: '招标编号', name: 'BidCode', width: 150, align: 'left' },
  74. { label: '标案名称', name: 'BidName', width: 100, align: 'left' },
  75. { label: '招标负责人', name: 'F_RealName', width: 60, align: 'left' },
  76. { label: '投标开始时间', name: 'StarTime', width: 120, align: 'left' },
  77. { label: '投标截止时间', name: 'EndTime', width: 120, align: 'left' },
  78. { label: 'Status', name: 'Status', width: 50, align: 'left',hidden:true },
  79. {
  80. label: "投标状态", name: "Statuss", width: 80, align: "left",
  81. formatter: function (cellvalue, options, rowObject) {
  82. var html = "";
  83. if (rowObject.Statuss == "已投标") {
  84. html += '<span class=\'label label-success\'>已投标</span>';
  85. } else if (rowObject.Statuss == "未投标") {
  86. html += '<span class=\'label label-warning\'>未投标</span>';
  87. }
  88. return cellvalue = html;
  89. }
  90. },
  91. //{ label: '剩余次数', name: 'TBCount', width: 60, align: 'left' },
  92. //{ label: '总投次数', name: 'ZTBCount', width: 60, align: 'left' },
  93. { label: '招标备注', name: 'Remark', width: 120, align: 'left' },
  94. { label: '投标人', name: 'cVenName', width: 150, align: 'left' },//PoArrive
  95. { label: '投标时间', name: 'BidTime', width: 100, align: 'left' },
  96. { label: 'IID', name: 'IID', width: 100, align: 'left' ,hidden:true},//IID
  97. {
  98. label: '招标状态', name: 'BidStatus', width: 50, align: 'left',
  99. formatter: function (cellvalue, options, rowObject) {
  100. var html = "";
  101. if (rowObject.BidStatus == "已保存") {
  102. html += '<span class=\'label label-default\'>已保存</span>';
  103. } else if (rowObject.BidStatus == "招标中") {
  104. html += '<span class=\'label label-info\'>招标中</span>';
  105. } else if (rowObject.BidStatus == "已关闭") {
  106. html += '<span class=\'label label-danger\'>已关闭</span>';
  107. } else if (rowObject.BidStatus == "已决标") {
  108. html += '<span class=\'label label-success\'>已决标</span>';
  109. } else if (rowObject.BidStatus == "已结束") {
  110. html += '<span class=\'label label-warning\'>已结束</span>';
  111. }
  112. return cellvalue = html;
  113. }
  114. },
  115. { label: '站点', name: 'WorkPoint', width: 30, align: 'left' },
  116. { label: 'IsLocks', name: 'IsLocks', hidden: true },
  117. { label: 'BidType', name: 'BidType', hidden: true }
  118. ],
  119. gridComplete: function () {
  120. },
  121. shrinkToFit: true,//宽度自适应
  122. cellsubmit: "clientArray",
  123. gridComplete: function () {
  124. },
  125. pager: "#gridPager",
  126. sortorder: "desc",
  127. sortname: 'StarTime ',
  128. viewrecords: true,
  129. //multiselect: true,
  130. rowNum: 200,
  131. //subGrid: true, // (1)开启子表格支持
  132. subGridRowExpanded: function (subgrid_id, rowid) { // (2)子表格容器的id和需要展开子表格的行id,将传入此事件函数
  133. $("#gridList").jqGrid("setSelection", rowid, false);
  134. bindSubGrid(subgrid_id, rowid)
  135. },
  136. gridComplete: function () {
  137. var strIds = $("#gridList").jqGrid("getDataIDs");
  138. for (var i = 0; i < strIds.length; i++) {
  139. var strValue = $("#gridList").jqGrid("getCell", strIds[i], "STATUS");//得到单元格数据
  140. if (strValue == "3")
  141. $("#" + strIds[i]).find("td").css("background-color", "pink");
  142. if (strValue == "已审核")
  143. $("#" + strIds[i]).find("td[aria-describedby=gridList_STATUS]").css("background-color", "pink");
  144. }
  145. },
  146. });
  147. $("#warehouse a.btn-default").click(function () {
  148. $("#warehouse a.btn-default").removeClass("active");
  149. $(this).addClass("active");
  150. $('#btn_search').trigger("click");
  151. });
  152. $("#btn_search").click(function () {
  153. var warehouse = $("#warehouse a.active").attr('data-value');
  154. var queryJson = {
  155. BidCode: $("#txt_BidCode").val(),
  156. BidStatus: $("#BidStatus option:checked").val(),
  157. TimeFrom: $("#txt_StarTime").val(),
  158. TimeTo: $("#txt_EndTime").val()
  159. }
  160. $gridList.jqGrid('setGridParam', {
  161. postData: { queryJson: JSON.stringify(queryJson) },
  162. page: 1
  163. }).trigger('reloadGrid');
  164. });
  165. }
  166. function btnModify(cellvalue, options, rowObject) {
  167. //return cellvalue = "<a class=\"btn btn-info dropdown-text\" onclick=\"btnEdit('" + rowObject.BidCode + "','" + rowObject.EndTime + "','" + rowObject.WorkPoint + "','" + rowObject.Status + "')\">应标</a><a class=\"btn btn-info dropdown-text\" onclick=\"btnSubmit('" + rowObject.BidCode + "','" + rowObject.IsLocks + "','" + rowObject.TBCount + "','" + rowObject.ZTBCount + "','" + rowObject.Status + "','" + rowObject.EndTime + "','" + rowObject.IID + "','" + rowObject.WorkPoint + "')\">投标</a><a class=\"btn btn-danger dropdown-text\" onclick=\"btnCancelSubmit('" + rowObject.BidCode + "','" + rowObject.IsLocks + "','" + rowObject.Status + "','" + rowObject.ID + "','" + rowObject.IID + "','" + rowObject.EndTime + "','" + rowObject.TBCount + "')\">撤回修改</a>";
  168. return cellvalue = "<a class=\"btn btn-info dropdown-text\" onclick=\"btnEdit('" + rowObject.BidCode + "','" + rowObject.EndTime + "','" + rowObject.WorkPoint + "','" + rowObject.Status + "','" + rowObject.BidType + "')\">应标</a>";
  169. //return cellvalue = "<a href='../../File/ASNFile/01_BB6C28F6CECD4637A56CB0E5EAEA73BB_P.pdf' download class=\"btn btn-primary dropdown-text\">图纸下载</a>";
  170. }
  171. function bindSubGrid(subgrid_id, rowid) {
  172. $("#gridList").jqGrid("setSelection", rowid, false);
  173. var subgrid_table_id;
  174. subgrid_table_id = subgrid_id + "_t"; // (3)根据subgrid_id定义对应的子表格的table的id
  175. var subgrid_pager_id;
  176. subgrid_pager_id = subgrid_id + "_pgr" // (4)根据subgrid_id定义对应的子表格的pager的id
  177. // (5)动态添加子报表的table和pager
  178. $("#" + subgrid_id).html("<table id='" + subgrid_table_id + "' class='scroll'></table><div id='" + subgrid_pager_id + "' class='scroll'></div>");
  179. var STNO = $("#gridList").jqGrid('getRowData', rowid).BidCode;
  180. var WorkPoint = $("#gridList").jqGrid('getRowData', rowid).WorkPoint;
  181. // (6)创建jqGrid对象
  182. $("#" + subgrid_table_id).dataGrid({
  183. cellEdit: true,
  184. url: "/SRM/BicDoc_Seller/GetSubGridJson?STNO=" + STNO + "&" + Math.random() + "&WorkPoint=" + WorkPoint, // (7)子表格数据对应的url,注意传入的contact.id参数
  185. colModel: [
  186. { label: "主键", name: "IID", hidden: true, key: true },
  187. { label: '行号', name: 'RowNo', width: 150, align: 'left' },
  188. { label: '存货编码', name: 'InvCode', width: 150, align: 'left' },
  189. { label: "存货名称", name: "InvName", width: 150, align: 'left' },
  190. { label: "规格型号", name: "InvStd", width: 100, align: 'left' },
  191. { label: '计划采购数量', name: 'Quantity', width: 150, align: 'left' },
  192. { label: '单位', name: 'Unit', width: 150, align: 'left' },
  193. { label: '交期', name: 'DeliveryTime', width: 100, align: 'left' },
  194. { label: '来源', name: 'Source', width: 150, align: 'left' },
  195. ],
  196. //multiselect: true,
  197. pager: subgrid_pager_id,
  198. //shrinkToFit: true,//宽度自适应
  199. prmNames: { search: "search" },
  200. //viewrecords: true,
  201. height: "100%",
  202. rowNum: 200
  203. });
  204. }
  205. //招标
  206. function btnEdit(BidCode, EndTime, WorkPoint, Status, BidType) {
  207. //提交
  208. $.modalOpenCommit({
  209. id: "ICSBiddingAdd_Seller",
  210. title: "招投标管理/投标维护",
  211. url: "/PNSRM/BicDoc_Seller/ICSBiddingAdd_Seller?BidCode=" + encodeURI(encodeURI(BidCode)) + "&" + Math.random() + "&WorkPoint=" + WorkPoint + "&status=" + encodeURI(encodeURI(Status)) + "&WorkPoint=" + WorkPoint + "&BidType=" + encodeURI(encodeURI(BidType)),
  212. width: "95%",
  213. height: "95%",
  214. callBack: function (iframeId) {
  215. top.frames[iframeId].submitForm();
  216. }
  217. });
  218. //}
  219. }
  220. function formatDate(fomatType, date) {
  221. let ret;
  222. let valueDate = date;
  223. if (!date) valueDate = new Date()
  224. let opt = {
  225. "Y+": valueDate.getFullYear().toString(), // 年
  226. "m+": (valueDate.getMonth() + 1).toString(), // 月
  227. "d+": valueDate.getDate().toString(), // 日
  228. "H+": valueDate.getHours().toString(), // 时
  229. "M+": valueDate.getMinutes().toString(), // 分
  230. "S+": valueDate.getSeconds().toString() // 秒
  231. };
  232. for (let k in opt) {
  233. ret = new RegExp("(" + k + ")").exec(fomatType);
  234. if (ret) {
  235. fomatType = fomatType.replace(ret[1], (ret[1].length == 1) ? (opt[k]) : (opt[k].padStart(ret[1].length, "0")))
  236. };
  237. };
  238. return fomatType;
  239. }
  240. //投标
  241. function btnSubmit(BidCode,IsLocks,TBCount,ZTBCount,Status,EndTime,IID,WorkPoint) {
  242. var myDate = new Date;
  243. var DateFormt = formatDate("YYYY-mm-dd HH:MM:SS", myDate)
  244. if (IsLocks == "是") {
  245. $.modalAlert("该投标书已被锁定,不可操作!");
  246. return;
  247. }
  248. if (Status == "已投标") {
  249. $.modalAlert("投标信息已提交,请勿重复提交!");
  250. return;
  251. }
  252. if (DateFormt > EndTime) {
  253. $.modalAlert("决标时间已过不可提交!");
  254. return;
  255. }
  256. if (TBCount == "0") {
  257. $.modalAlert("投标次数已用完无法进行投标!");
  258. return;
  259. }
  260. if (DateFormt < StarTime) {
  261. $.modalAlert("投标时间未到无法进行投标!");
  262. return;
  263. }
  264. $.modalConfirm("总投次数" + ZTBCount + ",剩余投标次数" + TBCount + ",确定提交选择的招标书吗?", function (r) {
  265. if (r) {
  266. $.submitForm({
  267. url: "/SRM/BicDoc_Seller/SaveFormTiJiao" + "?" + Math.random(),
  268. param: { keyValue: IID, BidCode: BidCode, TBCount: TBCount, WorkPoint: WorkPoint },
  269. success: function () {
  270. $.currentWindow().$("#gridList").trigger("reloadGrid");
  271. $.modalAlert("投标信息已提交,请勿重复提交!");
  272. }
  273. })
  274. }
  275. });
  276. }
  277. //取消提交
  278. function btnCancelSubmit(BidCode, IsLocks, Status, ID, IID, EndTime, TBCount) {
  279. var myDate = new Date;
  280. var DateFormt = formatDate("YYYY-mm-dd HH:MM:SS", myDate)
  281. if (IsLocks == "是") {
  282. $.modalAlert("该投标书已被锁定,不可操作!");
  283. return;
  284. }
  285. if (Status == "未投标") {
  286. $.modalAlert("投标信息未提交,不能取消提交!");
  287. return;
  288. }
  289. if (DateFormt > EndTime) {
  290. $.modalAlert("决标时间已过不可提交!");
  291. return;
  292. }
  293. if (TBCount == "0") {
  294. $.modalConfirm("当前投标次数 剩余为0,撤销后无法进行再次投标,是否确认撤销?", function (r) {
  295. if (r) {
  296. $.submitForm({
  297. url: "/SRM/BicDoc_Seller/SaveFormQTiJiao" + "?" + Math.random(),
  298. param: { keyValue: IID, BidCode: BidCode },
  299. success: function () {
  300. $.currentWindow().$("#gridList").trigger("reloadGrid");
  301. }
  302. })
  303. }
  304. });
  305. } else {
  306. $.modalConfirm("确定取消提交选择的招标书吗?", function (r) {
  307. if (r) {
  308. $.submitForm({
  309. url: "/SRM/BicDoc_Seller/SaveFormQTiJiao" + "?" + Math.random(),
  310. param: { keyValue: IID, BidCode: BidCode },
  311. success: function () {
  312. $.currentWindow().$("#gridList").trigger("reloadGrid");
  313. }
  314. })
  315. }
  316. });
  317. }
  318. //刷新
  319. function reloadData() {
  320. STNO = $("#STNO").text();
  321. var queryJson = {
  322. STNO: STNO,
  323. }
  324. $("#gridList").jqGrid('setGridParam', {
  325. postData: { queryJson: JSON.stringify(queryJson) },
  326. page: 1
  327. }).trigger('reloadGrid');
  328. }
  329. }
  330. </script>
  331. <div class="topPanel" style="height:60px">
  332. <div class="toolbar" id="toolbar">
  333. </div>
  334. <div class="search">
  335. <table>
  336. <tr>
  337. <td>
  338. <label>招标编号:</label>
  339. </td>
  340. <td>
  341. <div class="input-group">
  342. <input id="txt_BidCode" type="text" class="form-control" placeholder="招标编号" style="width: 120px;">
  343. </div>
  344. </td>
  345. <td>
  346. <label>&nbsp;&nbsp;&nbsp;招标日期(从):</label>
  347. </td>
  348. <td>
  349. <div class="input-group">
  350. <input type="text" name="txt_StarTime" id="txt_StarTime" class="form-control" style="width: 100px;" maxlength="10" onclick="WdatePicker({ dateFmt: 'yyyy-MM-dd' })" placeholder="招标日期(从)" />
  351. </div>
  352. </td>
  353. <td>
  354. <label>&nbsp;&nbsp;&nbsp;招标日期(到):</label>
  355. </td>
  356. <td>
  357. <div class="input-group">
  358. <input type="text" name="txt_EndTime" id="txt_EndTime" class="form-control" style="width: 100px;" maxlength="10" onclick="WdatePicker({ dateFmt: 'yyyy-MM-dd', minDate: txt_StarTime.value })" placeholder="招标日期(到)" />
  359. </div>
  360. </td>
  361. <td>
  362. <label>投标状态:</label>
  363. </td>
  364. <td style="width:120px">
  365. <select id="BidStatus" name="BidStatus" class="form-control select2" placeholder="请选择招标状态" ></select>
  366. @*<input id="txt_BidStatus" type="text" class="form-control" placeholder="供应商编码" style="width: 120px;">*@
  367. </td>
  368. <td>&nbsp;&nbsp;&nbsp;</td>
  369. <td>
  370. <span class="input-group-btn">
  371. <button id="btn_search" type="button" class="btn btn-info"><i class="fa fa-search"></i></button>
  372. </span>
  373. </td>
  374. </tr>
  375. </table>
  376. </div>
  377. </div>
  378. <div class="gridPanel" id="gridPanel">
  379. <table id="gridList"></table>
  380. <div id="gridPager"></div>
  381. </div>