当前位置: 光伏网 » 光伏企业 » 正文

解锁光伏“四可”方案!晶科科技加速分布式光伏综合运营布局

日期:2024-07-30    来源:晶科科技

国际太阳能光伏网

2024
07/30
08:23
文章二维码

手机扫码看资讯

var __INLINE_SCRIPT__ = (function () { "use strict"; function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; } function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); } function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); } function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance. In order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); } function textOverflow(el, binding) { var _a, _b; var text = el.innerHTML; if (!text || !text.length) return; var retainTail = []; if ((_a = binding.value) === null || _a === void 0 ? void 0 : _a.tailNum) { retainTail = _toConsumableArray(el.childNodes).slice(-binding.value.tailNum); } var count = 0; function needTextOverflow() { var _a; if ((_a = binding.value) === null || _a === void 0 ? void 0 : _a.lineClamp) { return binding.value.lineClamp < computeLineNum(el); } return el.offsetHeight < el.scrollHeight; } if (needTextOverflow()) { try { var getLeaf = function getLeaf(node) { var result = []; if (!node.childNodes || node.childNodes.length === 0) { return [node]; } node.childNodes.forEach(function (child) { result = [].concat(_toConsumableArray(result), _toConsumableArray(getLeaf(child))); }); return result; }; var getFragmentHTML = function getFragmentHTML(frag) { var _a, _b; var div = document.createDocumentFragment(); div.appendChild(frag); var span = document.createElement("span"); span.innerHTML = ((_a = binding.value) === null || _a === void 0 ? void 0 : _a.html) || "..."; if (div.lastElementChild) { div.lastElementChild.style.display = "inline"; } div.appendChild(span); el.extraElement = span; if ((_b = binding.value) === null || _b === void 0 ? void 0 : _b.tailNum) { retainTail.forEach(function (tail) { div.appendChild(tail); }); } return div; }; var findLastNode = function findLastNode(start, end) { if (end - start <= 1) { range.setEndAfter(leaves[start]); setNewFrag(el, getFragmentHTML(range.cloneContents())); return needTextOverflow() ? start : end; } var mid = start + end >> 1; count++; range.setEndAfter(leaves[mid]); setNewFrag(el, getFragmentHTML(range.cloneContents())); return needTextOverflow() ? findLastNode(start, mid) : findLastNode(mid, end); }; var findLastCharIndex = function findLastCharIndex(start, end) { if (end - start <= 1) { if (start === 0) { range.setEndAfter(leaves[Math.max(lastNodeIndex - 1, 0)]); } else { range.setEnd(lastNode, start); } setNewFrag(el, getFragmentHTML(range.cloneContents())); return start; } var mid = start + end >> 1; count++; range.setEnd(lastNode, mid); setNewFrag(el, getFragmentHTML(range.cloneContents())); return needTextOverflow() ? findLastCharIndex(start, mid) : findLastCharIndex(mid, end); }; var dom = document.createElement("div"); dom.innerHTML = text; var leaves = getLeaf(dom); var range = document.createRange(); range.setStartBefore(leaves[0]); var lastNodeIndex = findLastNode(0, leaves.length - 1); var lastNode = leaves[lastNodeIndex]; findLastCharIndex(0, lastNode.textContent.length); ((_b = binding.value) === null || _b === void 0 ? void 0 : _b.processExtraElement) && binding.value.processExtraElement(el.extraElement, el); console.log(count); } catch (error) { console.error(error); } } } function computeLineNum(el) { var computyStyle = getComputedStyle(el); return Math.round(el.offsetHeight / parseFloat(computyStyle.lineHeight)); } function removeAllChild(el) { var childNodes = Array.from(el.childNodes); childNodes.forEach(function (child) { el.removeChild(child); }); } function setNewFrag(el, frag) { removeAllChild(el); el.appendChild(frag); } var __setDesc = function __setDesc(desc, isNoEncode, itemShowType) { var extData = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {}; function getAttr(s, a) { var m = s.match(new RegExp(a + "s*=s*[""]?([^""s>]+)[""]?")); return m && m[1]; } function filterContentWithLinkNWeapp(str) { str = str.split(/(]*>)((?:.| )*?)()/); var valid; for (var i = 0; i < str.length; i++) { if (i % 4 === 1) { valid = false; var href = getAttr(str[i], "href"); if (/^https?://mp.weixin.qq.com/.test(href)) { valid = true; } var r = "ngitude = getAttr(str[i], "data-longitude"); var poiLatitude = getAttr(str[i], "data-latitude"); var bizFakeId = getAttr(str[i], "data-biz"); if (poiLongitude && poiLatitude) { r += " class="js_poi_entry wx_poi_link"" + " data-poiid="" + (getAttr(str[i], "data-poiid") || "") + """ + " data-districtid="" + (getAttr(str[i], "data-districtid") || "") + """ + " data-name="" + (getAttr(str[i], "data-name") || "") + """ + " data-address="" + (getAttr(str[i], "data-address") || "") + """ + " data-longitude="" + poiLongitude + """ + " data-latitude="" + poiLatitude + """; valid = true; } else if (weappId) { r += " class="weapp_text_link"" + " data-miniprogram-type="text"" + " data-miniprogram-appid="" + weappId + """ + " data-miniprogram-path="" + (getAttr(str[i], "data-miniprogram-path") || "") + """ + " data-miniprogram-nickname="" + (getAttr(str[i], "data-miniprogram-nickname") || "") + """ + " data-miniprogram-servicetype="" + (getAttr(str[i], "data-miniprogram-servicetype") || "0") + """; valid = true; } else if (bizFakeId) { r += " class="js_mention_entry wx_at_link" data-username="".concat(getAttr(str[i], "data-username"), "" data-biz="").concat(bizFakeId, "" "); valid = true; } else if (valid) { r += " class="js_common_share_desc_link""; var _itemShowType = getAttr(str[i], "data-itemshowtype"); _itemShowType && (r += " data-itemshowtype="" + _itemShowType + """); } str[i] = valid ? r + ">" : ""; } else if (i % 4 === 3) { !valid && (str[i] = ""); } else { str[i] = str[i].replace(/<.*?>/g, ""); } } return str.join(""); } if (isNoEncode) { if (itemShowType * 1 === 8) desc = desc.html(false); desc = window.__emojiFormat(filterContentWithLinkNWeapp(desc).replace(/ /g, "").replace(/ /g, "
")); } else { desc = desc.replace(/ /g, "").replace(/ /g, "
").replace(/s/g, " "); } if (itemShowType * 1 === 8) { var descDom = document.getElementById("js_image_desc"); descDom && (descDom.innerHTML = desc); if (location.href.indexOf("immerse_style=1") > -1 && descDom) { var r = window.innerHeight - descDom.getBoundingClientRect().y - document.getElementById("wx_expand_bottom").offsetHeight; var l = window.getComputedStyle(descDom).lineHeight; window.__immersiveFullDesc = desc; window.__immersiveOmited = 1; textOverflow(descDom, { value: { lineClamp: Math.floor(r / parseFloat(l)), html: "... 展开" } }); } } else if (itemShowType * 1 === 10) { var dom = document.querySelector(".js_share_notice_dom"); var _descDom = document.getElementById("js_text_desc"); _descDom && (_descDom.innerHTML = desc); if (extData.superVoteId) dom && dom.classList.add("no_min_height"); var titleDom = document.getElementById("js_text_title"); var titleRect = titleDom ? titleDom.getBoundingClientRect() : undefined; var descRect = _descDom ? _descDom.getBoundingClientRect() : undefined; if (titleRect && titleRect.height > 17 * 1.4 + 2 || descRect && descRect.height > 17 * 1.6 + 2 || extData.superVoteId) { dom && dom.classList.add("text_align_left"); } } else { var _descDom2 = document.getElementById("js_common_share_desc"); var descDomWrap = document.getElementById("js_common_share_desc_wrap"); if (!_descDom2 || !descDomWrap) { return; } _descDom2.innerHTML = desc; if (itemShowType * 1 !== 5) { setTimeout(function () { var folderSwitcher = document.getElementById("js_folder_text_switch"); if (_descDom2.offsetHeight - descDomWrap.offsetHeight > 1) { descDomWrap.className += " weui-ellipsis_multi"; folderSwitcher.style.display = "block"; } else { folderSwitcher.style.display = "none"; } }, 300); } } }; if (!window.__second_open__) { var videoContentNoEncode = window.a_value_which_never_exists || "暂缓并网,存量改造!多省明确:分布式光伏应具备“四可”功能。什么是“四可”?如何实现?1分钟看懂晶科方案。点赞评论,点亮小红心,说说你知道哪些实现“四可”方案的手段?抽选3名粉丝送“橙意满满”马克杯(获奖名单8.6公布)#晶科科技 #分布式光伏"; var TextContentNoEncode = window.a_value_which_never_exists || ""; var ContentNoEncode = window.a_value_which_never_exists || "暂缓并网,存量改造!多省明确:分布式光伏应具备“四可”功能。什么是“四可”?如何实现?1分钟看懂晶科方案。点赞评论,点亮小红心,说说你知道哪些实现“四可”方案的手段?抽选3名粉丝送“橙意满满”马克杯(获奖名单8.6公布)#晶科科技 #分布式光伏"; var itemShowType = window.a_value_which_never_exists || "5"; var content = window.a_value_which_never_exists || ""; var desc = window.a_value_which_never_exists || "暂缓并网,存量改造!多省明确:分布式光伏应具备“四可”功能。什么是“四可”?如何实现?1分钟看懂晶科方案。点赞评论,点亮小红心,说说你知道哪些实现“四可”方案的手段?抽选3名粉丝送“橙意满满”马克杯(获奖名单8.6公布)#晶科科技 #分布式光伏"; var superVoteId = window.a_value_which_never_exists || ""; var extData = { superVoteId: superVoteId }; if (videoContentNoEncode) { __setDesc(videoContentNoEncode, true, itemShowType, extData); } else if (itemShowType * 1 === 10 && (ContentNoEncode || superVoteId)) { __setDesc(ContentNoEncode, true, itemShowType, extData); } else if (TextContentNoEncode) { __setDesc(TextContentNoEncode, true, itemShowType, extData); } else if (itemShowType * 1 === 8) { __setDesc(content || desc, true, itemShowType, extData); } else { __setDesc(desc, false, itemShowType, extData); } window.__setDesc = __setDesc; } return __setDesc; })();

光伏资讯一手掌握,关注国际能源网 " 光伏头条 " 微信公众号

看资讯 / 读政策 / 找项目 / 推品牌 / 卖产品 / 招投标 / 招代理 / 发文章

扫码关注

0条 [查看全部]   相关评论

国际能源网站群

国际能源网 国际新能源网 国际太阳能光伏网 国际电力网 国际风电网 国际储能网 国际氢能网 国际充换电网 国际节能环保网 国际煤炭网 国际石油网 国际燃气网

购买阅读券

×

20张阅读券

20条信息永久阅读权限

19.9

  • ¥40.0
  • 60张阅读券

    60条信息永久阅读权限

    49.9

  • ¥120.0
  • 150张阅读券

    150条信息永久阅读权限

    99.9

  • ¥300.0
  • 350张阅读券

    350条信息永久阅读权限

    199.9

  • ¥700.0
  • 请输入手机号:
  • 注:请仔细核对手机号以便购买成功!

    应付金额:¥19.9

  • 使用微信扫码支付
  • 同意并接受 个人订阅服务协议

    退款类型:

      01.支付成功截图 *

    • 上传截图,有助于商家更好的处理售后问题(请上传jpg格式截图)

      02.付款后文章内容截图 *

    • 上传截图,有助于商家更好的处理售后问题(请上传jpg格式截图)

      03.商户单号 *

      04.问题描述