包钢衬板等备件
内蒙古自治区
数据来源:包钢电子采购交易平台 公示时间:2021-01-12
项目编号ZP21010050项目名称包钢衬板等备件发布日期2021/01/12报名截止日期2021/01/13投标开始日期时间2021/01/09 -- 08:00开标日期时间2021/01/15-- 08:30项目类别备件 招标部门S7120000 地址内蒙古包头市昆区河西工业区(钢铁大街与一号路交叉路口北侧200米) 标书文件请登陆网上招标平台后,下载标书与相关文件 变更公告内容 一、项目名称: 包钢衬板等备件 二、项目编号: ZP21010050 三、变更情况: 应委托人要求,技术协议需要调整,原有技术协议作废,新技术协议以补充说明的方式上传至电子采购交易平台。由此给各位供应商带来的不便,敬请谅解,特此公告。 四、发布媒介 本次变更公告同时在包头市必得招标有限公司门户网站(www.baotoubide.com)、包钢电子采购交易平台(ep.btsteel.com)等媒介发布。 五、联系方式 采 购 人:采购中心 地 址:内蒙古包头市包钢工业园区 联 系 人:曹殿璐 联系电话:18686183228 招标机构:包钢(集团)公司招标中心地 址:内蒙古包头市昆区河西工业区(钢铁大街与一号路交叉路口北侧200米)供应商注册:李雪晨 0472-2668995(若电话无人应答,请发送邮件至bgzbzx01@188.com)项目负责人:张毅强 0472-2669627 电子邮件:bgzbzxzyq@163.com客服专线(EP网站咨询):15560842139热线电话:0472-2663777 包钢(集团)公司招标中心 2021/01/12 var dataView; var options = {enableCellNavigation: true, editable: true }; var sortcol = "title";var sortdir = 1;var percentCompleteThreshold = 0;var prevPercentCompleteThreshold = 0;var columns = [{id:"projitemno", name: "项次", field: "projItemNo", width: 60, sortable: true},{id:"bidno", name: "标段", field: "bidNo", width: 60, sortable: true},{id:"cnmdesc", name: "货物名称", field: "CNmDesc", width: 160, sortable: true},{id:"nmspec", name: "规格,型号", field: "nmSpec", width: 140, sortable: true},{id:"quality", name: "材质", field: "quality", width: 85, sortable: true},{id:"picno", name: "图号", field: "picNo", width: 140, sortable: true},{id:"prodbrand", name: "产地、品牌", field: "prodBrand", width: 100, sortable: true},{id:"unitinv", name: "单位", field: "unitInv", width: 65, sortable: true},{id:"sendqty", name: "招标数量", field: "sendQty", width: 100, sortable: true,formatter:colnumFormatter},{id:"sendprice", name: "单价最高限价", field: "sendPrice", width: 100, sortable: true,formatter:colnumFormatter},{id:"unitwgtkg", name: "单重(KG)", field: "unitWgtkg", width: 100, sortable: true,formatter:colnumFormatter},{id:"remark", name: "备注", field: "remark", width: 300, sortable: true}];function avgTotalsFormatter(totals, columnDef) { var val = totals.avg && totals.avg[columnDef.field]; if (val != null) { return "avg: " + Math.round(val) + "%"; } return "";}function sumTotalsFormatter(totals, columnDef) { var val = totals.sum && totals.sum[columnDef.field]; if (val != null) { return "total: " + ((Math.round(parseFloat(val)*100)/100)); } return "";}function colnumFormatter(row, cell, value, columnDef, dataContext) { if(value<0) { return '' + numberFormatter(value) + ''; }else if(value>0){ return ''+numberFormatter(value)+''; }else { return ''+value+''; }} function numberFormatter(num) { var source = String(num).split(".");//按小数点分成2部分 source[0] = source[0].replace(new RegExp('(\\d)(?=(\\d{3})+$)','ig'),"$1,"); return source.join(".");//再将小数部分合并进来}function comparer(a, b) { var x = a[sortcol], y = b[sortcol]; return (x == y ? 0 : (x > y ? 1 : -1));}var data = []; function loadData() { data = []; dataView.setItems(data);}var grid; var pageSize = 100; $(function () {var groupItemMetadataProvider = new Slick.Data.GroupItemMetadataProvider();dataView = new Slick.Data.DataView({groupItemMetadataProvider: groupItemMetadataProvider});grid = new Slick.Grid("#myGrid", dataView, columns, options);grid.registerPlugin(groupItemMetadataProvider);grid.setSelectionModel(new Slick.CellSelectionModel());var pager = new Slick.Controls.Pager(dataView, grid, $("#pager"));var columnpicker = new Slick.Controls.ColumnPicker(columns, grid, options);var copyManager = new Slick.CellCopyManager();grid.registerPlugin(copyManager);copyManager.onCopyCells.subscribe(function(e, args){if(args.ranges.length!==1) {throw "This implementation only supports single range copy and paste operations";}var range = args.ranges[0];var clipText = "";for(var i=range.fromRow; i<range.toRow+1; i++) {for(var j=range.fromCell; j<range.toCell+1; j++) {var r = document.body.createTextRange();r.moveToElementText(grid.getCellNode(i, j));r.select();r.execCommand("copy");}}});var pageInfo = {};pageInfo.pageSize = pageSize;dataView.setPagingOptions(pageInfo);grid.onSort.subscribe(function (e, args) {sortdir = args.sortAsc ? 1 : -1;sortcol = args.sortCol.field;if ($.browser.msie && $.browser.version <= 8) {var percentCompleteValueFn = function () {var val = this["percentComplete"];if (val < 10) {return "00" + val;} else if (val < 100) {return "0" + val;} else {return val;}};dataView.fastSort((sortcol == "percentComplete") ? percentCompleteValueFn : sortcol, args.sortAsc);}else{dataView.sort(comparer, args.sortAsc);}});dataView.onRowCountChanged.subscribe(function (e, args) {grid.updateRowCount();grid.render();});dataView.onRowsChanged.subscribe(function (e, args) {grid.invalidateRows(args.rows);grid.render();});dataView.beginUpdate();dataView.setFilterArgs({percentComplete: percentCompleteThreshold});loadData();dataView.endUpdate();});