12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136 |
- /*!
- * UEditor
- * version: ueditor
- * build: Wed Dec 26 2018 17:24:52 GMT+0800 (CST)
- */
- ;(function () {
- ;(function () {
- UE = window.UE || {}
- var isIE = !!window.ActiveXObject
- //定义utils工具
- var utils = {
- removeLastbs: function (url) {
- return url.replace(/\/$/, '')
- },
- extend: function (t, s) {
- var a = arguments,
- notCover = this.isBoolean(a[a.length - 1]) ? a[a.length - 1] : false,
- len = this.isBoolean(a[a.length - 1]) ? a.length - 1 : a.length
- for (var i = 1; i < len; i++) {
- var x = a[i]
- for (var k in x) {
- if (!notCover || !t.hasOwnProperty(k)) {
- t[k] = x[k]
- }
- }
- }
- return t
- },
- isIE: isIE,
- cssRule: isIE
- ? function (key, style, doc) {
- var indexList, index
- doc = doc || document
- if (doc.indexList) {
- indexList = doc.indexList
- } else {
- indexList = doc.indexList = {}
- }
- var sheetStyle
- if (!indexList[key]) {
- if (style === undefined) {
- return ''
- }
- sheetStyle = doc.createStyleSheet('', (index = doc.styleSheets.length))
- indexList[key] = index
- } else {
- sheetStyle = doc.styleSheets[indexList[key]]
- }
- if (style === undefined) {
- return sheetStyle.cssText
- }
- sheetStyle.cssText = sheetStyle.cssText + '\n' + (style || '')
- }
- : function (key, style, doc) {
- doc = doc || document
- var head = doc.getElementsByTagName('head')[0],
- node
- if (!(node = doc.getElementById(key))) {
- if (style === undefined) {
- return ''
- }
- node = doc.createElement('style')
- node.id = key
- head.appendChild(node)
- }
- if (style === undefined) {
- return node.innerHTML
- }
- if (style !== '') {
- node.innerHTML = node.innerHTML + '\n' + style
- } else {
- head.removeChild(node)
- }
- },
- domReady: function (onready) {
- var doc = window.document
- if (doc.readyState === 'complete') {
- onready()
- } else {
- if (isIE) {
- ;(function () {
- if (doc.isReady) return
- try {
- doc.documentElement.doScroll('left')
- } catch (error) {
- setTimeout(arguments.callee, 0)
- return
- }
- onready()
- })()
- window.attachEvent('onload', function () {
- onready()
- })
- } else {
- doc.addEventListener(
- 'DOMContentLoaded',
- function () {
- doc.removeEventListener('DOMContentLoaded', arguments.callee, false)
- onready()
- },
- false
- )
- window.addEventListener(
- 'load',
- function () {
- onready()
- },
- false
- )
- }
- }
- },
- each: function (obj, iterator, context) {
- if (obj == null) return
- if (obj.length === +obj.length) {
- for (var i = 0, l = obj.length; i < l; i++) {
- if (iterator.call(context, obj[i], i, obj) === false) return false
- }
- } else {
- for (var key in obj) {
- if (obj.hasOwnProperty(key)) {
- if (iterator.call(context, obj[key], key, obj) === false) return false
- }
- }
- }
- },
- inArray: function (arr, item) {
- var index = -1
- this.each(arr, function (v, i) {
- if (v === item) {
- index = i
- return false
- }
- })
- return index
- },
- pushItem: function (arr, item) {
- if (this.inArray(arr, item) == -1) {
- arr.push(item)
- }
- },
- trim: function (str) {
- return str.replace(/(^[ \t\n\r]+)|([ \t\n\r]+$)/g, '')
- },
- indexOf: function (array, item, start) {
- var index = -1
- start = this.isNumber(start) ? start : 0
- this.each(array, function (v, i) {
- if (i >= start && v === item) {
- index = i
- return false
- }
- })
- return index
- },
- hasClass: function (element, className) {
- className = className
- .replace(/(^[ ]+)|([ ]+$)/g, '')
- .replace(/[ ]{2,}/g, ' ')
- .split(' ')
- for (var i = 0, ci, cls = element.className; (ci = className[i++]); ) {
- if (!new RegExp('\\b' + ci + '\\b', 'i').test(cls)) {
- return false
- }
- }
- return i - 1 == className.length
- },
- addClass: function (elm, classNames) {
- if (!elm) return
- classNames = this.trim(classNames)
- .replace(/[ ]{2,}/g, ' ')
- .split(' ')
- for (var i = 0, ci, cls = elm.className; (ci = classNames[i++]); ) {
- if (!new RegExp('\\b' + ci + '\\b').test(cls)) {
- cls += ' ' + ci
- }
- }
- elm.className = utils.trim(cls)
- },
- removeClass: function (elm, classNames) {
- classNames = this.isArray(classNames)
- ? classNames
- : this.trim(classNames)
- .replace(/[ ]{2,}/g, ' ')
- .split(' ')
- for (var i = 0, ci, cls = elm.className; (ci = classNames[i++]); ) {
- cls = cls.replace(new RegExp('\\b' + ci + '\\b'), '')
- }
- cls = this.trim(cls).replace(/[ ]{2,}/g, ' ')
- elm.className = cls
- !cls && elm.removeAttribute('className')
- },
- on: function (element, type, handler) {
- var types = this.isArray(type) ? type : type.split(/\s+/),
- k = types.length
- if (k)
- while (k--) {
- type = types[k]
- if (element.addEventListener) {
- element.addEventListener(type, handler, false)
- } else {
- if (!handler._d) {
- handler._d = {
- els: []
- }
- }
- var key = type + handler.toString(),
- index = utils.indexOf(handler._d.els, element)
- if (!handler._d[key] || index == -1) {
- if (index == -1) {
- handler._d.els.push(element)
- }
- if (!handler._d[key]) {
- handler._d[key] = function (evt) {
- return handler.call(evt.srcElement, evt || window.event)
- }
- }
- element.attachEvent('on' + type, handler._d[key])
- }
- }
- }
- element = null
- },
- off: function (element, type, handler) {
- var types = this.isArray(type) ? type : type.split(/\s+/),
- k = types.length
- if (k)
- while (k--) {
- type = types[k]
- if (element && element.removeEventListener) {
- element.removeEventListener(type, handler, false)
- } else {
- var key = type + handler.toString()
- try {
- element.detachEvent('on' + type, handler._d ? handler._d[key] : handler)
- } catch (e) {}
- if (handler._d && handler._d[key]) {
- var index = utils.indexOf(handler._d.els, element)
- if (index != -1) {
- handler._d.els.splice(index, 1)
- }
- handler._d.els.length == 0 && delete handler._d[key]
- }
- }
- }
- },
- loadFile: (function () {
- var tmpList = []
- function getItem(doc, obj) {
- try {
- for (var i = 0, ci; (ci = tmpList[i++]); ) {
- if (ci.doc === doc && ci.url == (obj.src || obj.href)) {
- return ci
- }
- }
- } catch (e) {
- return null
- }
- }
- return function (doc, obj, fn) {
- var item = getItem(doc, obj)
- if (item) {
- if (item.ready) {
- fn && fn()
- } else {
- item.funs.push(fn)
- }
- return
- }
- tmpList.push({
- doc: doc,
- url: obj.src || obj.href,
- funs: [fn]
- })
- if (!doc.body) {
- var html = []
- for (var p in obj) {
- if (p == 'tag') continue
- html.push(p + '="' + obj[p] + '"')
- }
- doc.write('<' + obj.tag + ' ' + html.join(' ') + ' ></' + obj.tag + '>')
- return
- }
- if (obj.id && doc.getElementById(obj.id)) {
- return
- }
- var element = doc.createElement(obj.tag)
- delete obj.tag
- for (var p in obj) {
- element.setAttribute(p, obj[p])
- }
- element.onload = element.onreadystatechange = function () {
- if (!this.readyState || /loaded|complete/.test(this.readyState)) {
- item = getItem(doc, obj)
- if (item.funs.length > 0) {
- item.ready = 1
- for (var fi; (fi = item.funs.pop()); ) {
- fi()
- }
- }
- element.onload = element.onreadystatechange = null
- }
- }
- element.onerror = function () {
- throw Error('The load ' + (obj.href || obj.src) + ' fails,check the url')
- }
- doc.getElementsByTagName('head')[0].appendChild(element)
- }
- })()
- }
- utils.each(
- ['String', 'Function', 'Array', 'Number', 'RegExp', 'Object', 'Boolean'],
- function (v) {
- utils['is' + v] = function (obj) {
- return Object.prototype.toString.apply(obj) == '[object ' + v + ']'
- }
- }
- )
- var parselist = {}
- UE.parse = {
- register: function (parseName, fn) {
- parselist[parseName] = fn
- },
- load: function (opt) {
- utils.each(parselist, function (v) {
- v.call(opt, utils)
- })
- }
- }
- uParse = function (selector, opt) {
- utils.domReady(function () {
- var contents
- if (document.querySelectorAll) {
- contents = document.querySelectorAll(selector)
- } else {
- if (/^#/.test(selector)) {
- contents = [document.getElementById(selector.replace(/^#/, ''))]
- } else if (/^\./.test(selector)) {
- var contents = []
- utils.each(document.getElementsByTagName('*'), function (node) {
- if (
- node.className &&
- new RegExp('\\b' + selector.replace(/^\./, '') + '\\b', 'i').test(node.className)
- ) {
- contents.push(node)
- }
- })
- } else {
- contents = document.getElementsByTagName(selector)
- }
- }
- utils.each(contents, function (v) {
- UE.parse.load(utils.extend({ root: v, selector: selector }, opt))
- })
- })
- }
- })()
- UE.parse.register('insertcode', function (utils) {
- var pres = this.root.getElementsByTagName('pre')
- if (pres.length) {
- if (typeof XRegExp == 'undefined') {
- var jsurl, cssurl
- if (this.rootPath !== undefined) {
- jsurl = utils.removeLastbs(this.rootPath) + '/third-party/SyntaxHighlighter/shCore.js'
- cssurl =
- utils.removeLastbs(this.rootPath) + '/third-party/SyntaxHighlighter/shCoreDefault.css'
- } else {
- jsurl = this.highlightJsUrl
- cssurl = this.highlightCssUrl
- }
- utils.loadFile(document, {
- id: 'syntaxhighlighter_css',
- tag: 'link',
- rel: 'stylesheet',
- type: 'text/css',
- href: cssurl
- })
- utils.loadFile(
- document,
- {
- id: 'syntaxhighlighter_js',
- src: jsurl,
- tag: 'script',
- type: 'text/javascript',
- defer: 'defer'
- },
- function () {
- utils.each(pres, function (pi) {
- if (pi && /brush/i.test(pi.className)) {
- SyntaxHighlighter.highlight(pi)
- }
- })
- }
- )
- } else {
- utils.each(pres, function (pi) {
- if (pi && /brush/i.test(pi.className)) {
- SyntaxHighlighter.highlight(pi)
- }
- })
- }
- }
- })
- UE.parse.register('table', function (utils) {
- var me = this,
- root = this.root,
- tables = root.getElementsByTagName('table')
- if (tables.length) {
- var selector = this.selector
- //追加默认的表格样式
- utils.cssRule(
- 'table',
- selector +
- ' table.noBorderTable td,' +
- selector +
- ' table.noBorderTable th,' +
- selector +
- ' table.noBorderTable caption{border:1px dashed #ddd !important}' +
- selector +
- ' table.sortEnabled tr.firstRow th,' +
- selector +
- ' table.sortEnabled tr.firstRow td{padding-right:20px; background-repeat: no-repeat;' +
- 'background-position: center right; background-image:url(' +
- this.rootPath +
- 'themes/default/images/sortable.png);}' +
- selector +
- ' table.sortEnabled tr.firstRow th:hover,' +
- selector +
- ' table.sortEnabled tr.firstRow td:hover{background-color: #EEE;}' +
- selector +
- ' table{margin-bottom:10px;border-collapse:collapse;display:table;}' +
- selector +
- ' td,' +
- selector +
- ' th{ background:white; padding: 5px 10px;border: 1px solid #DDD;}' +
- selector +
- ' caption{border:1px dashed #DDD;border-bottom:0;padding:3px;text-align:center;}' +
- selector +
- ' th{border-top:1px solid #BBB;background:#F7F7F7;}' +
- selector +
- ' table tr.firstRow th{border-top:2px solid #BBB;background:#F7F7F7;}' +
- selector +
- ' tr.ue-table-interlace-color-single td{ background: #fcfcfc; }' +
- selector +
- ' tr.ue-table-interlace-color-double td{ background: #f7faff; }' +
- selector +
- ' td p{margin:0;padding:0;}',
- document
- )
- //填充空的单元格
- utils.each('td th caption'.split(' '), function (tag) {
- var cells = root.getElementsByTagName(tag)
- cells.length &&
- utils.each(cells, function (node) {
- if (!node.firstChild) {
- node.innerHTML = ' '
- }
- })
- })
- //表格可排序
- var tables = root.getElementsByTagName('table')
- utils.each(tables, function (table) {
- if (/\bsortEnabled\b/.test(table.className)) {
- utils.on(table, 'click', function (e) {
- var target = e.target || e.srcElement,
- cell = findParentByTagName(target, ['td', 'th'])
- var table = findParentByTagName(target, 'table'),
- colIndex = utils.indexOf(table.rows[0].cells, cell),
- sortType = table.getAttribute('data-sort-type')
- if (colIndex != -1) {
- sortTable(table, colIndex, me.tableSortCompareFn || sortType)
- updateTable(table)
- }
- })
- }
- })
- //按照标签名查找父节点
- function findParentByTagName(target, tagNames) {
- var i,
- current = target
- tagNames = utils.isArray(tagNames) ? tagNames : [tagNames]
- while (current) {
- for (i = 0; i < tagNames.length; i++) {
- if (current.tagName == tagNames[i].toUpperCase()) return current
- }
- current = current.parentNode
- }
- return null
- }
- //表格排序
- function sortTable(table, sortByCellIndex, compareFn) {
- var rows = table.rows,
- trArray = [],
- flag = rows[0].cells[0].tagName === 'TH',
- lastRowIndex = 0
- for (var i = 0, len = rows.length; i < len; i++) {
- trArray[i] = rows[i]
- }
- var Fn = {
- reversecurrent: function (td1, td2) {
- return 1
- },
- orderbyasc: function (td1, td2) {
- var value1 = td1.innerText || td1.textContent,
- value2 = td2.innerText || td2.textContent
- return value1.localeCompare(value2)
- },
- reversebyasc: function (td1, td2) {
- var value1 = td1.innerHTML,
- value2 = td2.innerHTML
- return value2.localeCompare(value1)
- },
- orderbynum: function (td1, td2) {
- var value1 = td1[utils.isIE ? 'innerText' : 'textContent'].match(/\d+/),
- value2 = td2[utils.isIE ? 'innerText' : 'textContent'].match(/\d+/)
- if (value1) value1 = +value1[0]
- if (value2) value2 = +value2[0]
- return (value1 || 0) - (value2 || 0)
- },
- reversebynum: function (td1, td2) {
- var value1 = td1[utils.isIE ? 'innerText' : 'textContent'].match(/\d+/),
- value2 = td2[utils.isIE ? 'innerText' : 'textContent'].match(/\d+/)
- if (value1) value1 = +value1[0]
- if (value2) value2 = +value2[0]
- return (value2 || 0) - (value1 || 0)
- }
- }
- //对表格设置排序的标记data-sort-type
- table.setAttribute(
- 'data-sort-type',
- compareFn && typeof compareFn === 'string' && Fn[compareFn] ? compareFn : ''
- )
- //th不参与排序
- flag && trArray.splice(0, 1)
- trArray = sort(trArray, function (tr1, tr2) {
- var result
- if (compareFn && typeof compareFn === 'function') {
- result = compareFn.call(this, tr1.cells[sortByCellIndex], tr2.cells[sortByCellIndex])
- } else if (compareFn && typeof compareFn === 'number') {
- result = 1
- } else if (compareFn && typeof compareFn === 'string' && Fn[compareFn]) {
- result = Fn[compareFn].call(
- this,
- tr1.cells[sortByCellIndex],
- tr2.cells[sortByCellIndex]
- )
- } else {
- result = Fn['orderbyasc'].call(
- this,
- tr1.cells[sortByCellIndex],
- tr2.cells[sortByCellIndex]
- )
- }
- return result
- })
- var fragment = table.ownerDocument.createDocumentFragment()
- for (var j = 0, len = trArray.length; j < len; j++) {
- fragment.appendChild(trArray[j])
- }
- var tbody = table.getElementsByTagName('tbody')[0]
- if (!lastRowIndex) {
- tbody.appendChild(fragment)
- } else {
- tbody.insertBefore(
- fragment,
- rows[lastRowIndex - range.endRowIndex + range.beginRowIndex - 1]
- )
- }
- }
- //冒泡排序
- function sort(array, compareFn) {
- compareFn =
- compareFn ||
- function (item1, item2) {
- return item1.localeCompare(item2)
- }
- for (var i = 0, len = array.length; i < len; i++) {
- for (var j = i, length = array.length; j < length; j++) {
- if (compareFn(array[i], array[j]) > 0) {
- var t = array[i]
- array[i] = array[j]
- array[j] = t
- }
- }
- }
- return array
- }
- //更新表格
- function updateTable(table) {
- //给第一行设置firstRow的样式名称,在排序图标的样式上使用到
- if (!utils.hasClass(table.rows[0], 'firstRow')) {
- for (var i = 1; i < table.rows.length; i++) {
- utils.removeClass(table.rows[i], 'firstRow')
- }
- utils.addClass(table.rows[0], 'firstRow')
- }
- }
- }
- })
- UE.parse.register('charts', function (utils) {
- utils.cssRule(
- 'chartsContainerHeight',
- '.edui-chart-container { height:' + (this.chartContainerHeight || 300) + 'px}'
- )
- var resourceRoot = this.rootPath,
- containers = this.root,
- sources = null
- //不存在指定的根路径, 则直接退出
- if (!resourceRoot) {
- return
- }
- if ((sources = parseSources())) {
- loadResources()
- }
- function parseSources() {
- if (!containers) {
- return null
- }
- return extractChartData(containers)
- }
- /**
- * 提取数据
- */
- function extractChartData(rootNode) {
- var data = [],
- tables = rootNode.getElementsByTagName('table')
- for (var i = 0, tableNode; (tableNode = tables[i]); i++) {
- if (tableNode.getAttribute('data-chart') !== null) {
- data.push(formatData(tableNode))
- }
- }
- return data.length ? data : null
- }
- function formatData(tableNode) {
- var meta = tableNode.getAttribute('data-chart'),
- metaConfig = {},
- data = []
- //提取table数据
- for (var i = 0, row; (row = tableNode.rows[i]); i++) {
- var rowData = []
- for (var j = 0, cell; (cell = row.cells[j]); j++) {
- var value = cell.innerText || cell.textContent || ''
- rowData.push(cell.tagName == 'TH' ? value : value | 0)
- }
- data.push(rowData)
- }
- //解析元信息
- meta = meta.split(';')
- for (var i = 0, metaData; (metaData = meta[i]); i++) {
- metaData = metaData.split(':')
- metaConfig[metaData[0]] = metaData[1]
- }
- return {
- table: tableNode,
- meta: metaConfig,
- data: data
- }
- }
- //加载资源
- function loadResources() {
- loadJQuery()
- }
- function loadJQuery() {
- //不存在jquery, 则加载jquery
- if (!window.jQuery) {
- utils.loadFile(
- document,
- {
- src: resourceRoot + '/third-party/jquery-1.10.2.min.js',
- tag: 'script',
- type: 'text/javascript',
- defer: 'defer'
- },
- function () {
- loadHighcharts()
- }
- )
- } else {
- loadHighcharts()
- }
- }
- function loadHighcharts() {
- //不存在Highcharts, 则加载Highcharts
- if (!window.Highcharts) {
- utils.loadFile(
- document,
- {
- src: resourceRoot + '/third-party/highcharts/highcharts.js',
- tag: 'script',
- type: 'text/javascript',
- defer: 'defer'
- },
- function () {
- loadTypeConfig()
- }
- )
- } else {
- loadTypeConfig()
- }
- }
- //加载图表差异化配置文件
- function loadTypeConfig() {
- utils.loadFile(
- document,
- {
- src: resourceRoot + '/dialogs/charts/chart.config.js',
- tag: 'script',
- type: 'text/javascript',
- defer: 'defer'
- },
- function () {
- render()
- }
- )
- }
- //渲染图表
- function render() {
- var config = null,
- chartConfig = null,
- container = null
- for (var i = 0, len = sources.length; i < len; i++) {
- config = sources[i]
- chartConfig = analysisConfig(config)
- container = createContainer(config.table)
- renderChart(container, typeConfig[config.meta.chartType], chartConfig)
- }
- }
- /**
- * 渲染图表
- * @param container 图表容器节点对象
- * @param typeConfig 图表类型配置
- * @param config 图表通用配置
- * */
- function renderChart(container, typeConfig, config) {
- $(container).highcharts(
- $.extend({}, typeConfig, {
- credits: {
- enabled: false
- },
- exporting: {
- enabled: false
- },
- title: {
- text: config.title,
- x: -20 //center
- },
- subtitle: {
- text: config.subTitle,
- x: -20
- },
- xAxis: {
- title: {
- text: config.xTitle
- },
- categories: config.categories
- },
- yAxis: {
- title: {
- text: config.yTitle
- },
- plotLines: [
- {
- value: 0,
- width: 1,
- color: '#808080'
- }
- ]
- },
- tooltip: {
- enabled: true,
- valueSuffix: config.suffix
- },
- legend: {
- layout: 'vertical',
- align: 'right',
- verticalAlign: 'middle',
- borderWidth: 1
- },
- series: config.series
- })
- )
- }
- /**
- * 创建图表的容器
- * 新创建的容器会替换掉对应的table对象
- * */
- function createContainer(tableNode) {
- var container = document.createElement('div')
- container.className = 'edui-chart-container'
- tableNode.parentNode.replaceChild(container, tableNode)
- return container
- }
- //根据config解析出正确的类别和图表数据信息
- function analysisConfig(config) {
- var series = [],
- //数据类别
- categories = [],
- result = [],
- data = config.data,
- meta = config.meta
- //数据对齐方式为相反的方式, 需要反转数据
- if (meta.dataFormat != '1') {
- for (var i = 0, len = data.length; i < len; i++) {
- for (var j = 0, jlen = data[i].length; j < jlen; j++) {
- if (!result[j]) {
- result[j] = []
- }
- result[j][i] = data[i][j]
- }
- }
- data = result
- }
- result = {}
- //普通图表
- if (meta.chartType != typeConfig.length - 1) {
- categories = data[0].slice(1)
- for (var i = 1, curData; (curData = data[i]); i++) {
- series.push({
- name: curData[0],
- data: curData.slice(1)
- })
- }
- result.series = series
- result.categories = categories
- result.title = meta.title
- result.subTitle = meta.subTitle
- result.xTitle = meta.xTitle
- result.yTitle = meta.yTitle
- result.suffix = meta.suffix
- } else {
- var curData = []
- for (var i = 1, len = data[0].length; i < len; i++) {
- curData.push([data[0][i], data[1][i] | 0])
- }
- //饼图
- series[0] = {
- type: 'pie',
- name: meta.tip,
- data: curData
- }
- result.series = series
- result.title = meta.title
- result.suffix = meta.suffix
- }
- return result
- }
- })
- UE.parse.register('background', function (utils) {
- var me = this,
- root = me.root,
- p = root.getElementsByTagName('p'),
- styles
- for (var i = 0, ci; (ci = p[i++]); ) {
- styles = ci.getAttribute('data-background')
- if (styles) {
- ci.parentNode.removeChild(ci)
- }
- }
- //追加默认的表格样式
- styles && utils.cssRule('ueditor_background', me.selector + '{' + styles + '}', document)
- })
- UE.parse.register('list', function (utils) {
- var customCss = [],
- customStyle = {
- cn: 'cn-1-',
- cn1: 'cn-2-',
- cn2: 'cn-3-',
- num: 'num-1-',
- num1: 'num-2-',
- num2: 'num-3-',
- dash: 'dash',
- dot: 'dot'
- }
- utils.extend(this, {
- liiconpath: 'http://bs.baidu.com/listicon/',
- listDefaultPaddingLeft: '20'
- })
- var root = this.root,
- ols = root.getElementsByTagName('ol'),
- uls = root.getElementsByTagName('ul'),
- selector = this.selector
- if (ols.length) {
- applyStyle.call(this, ols)
- }
- if (uls.length) {
- applyStyle.call(this, uls)
- }
- if (ols.length || uls.length) {
- customCss.push(selector + ' .list-paddingleft-1{padding-left:0}')
- customCss.push(
- selector + ' .list-paddingleft-2{padding-left:' + this.listDefaultPaddingLeft + 'px}'
- )
- customCss.push(
- selector + ' .list-paddingleft-3{padding-left:' + this.listDefaultPaddingLeft * 2 + 'px}'
- )
- utils.cssRule(
- 'list',
- selector +
- ' ol,' +
- selector +
- ' ul{margin:0;padding:0;}li{clear:both;}' +
- customCss.join('\n'),
- document
- )
- }
- function applyStyle(nodes) {
- var T = this
- utils.each(nodes, function (list) {
- if (list.className && /custom_/i.test(list.className)) {
- var listStyle = list.className.match(/custom_(\w+)/)[1]
- if (listStyle == 'dash' || listStyle == 'dot') {
- utils.pushItem(
- customCss,
- selector +
- ' li.list-' +
- customStyle[listStyle] +
- '{background-image:url(' +
- T.liiconpath +
- customStyle[listStyle] +
- '.gif)}'
- )
- utils.pushItem(
- customCss,
- selector +
- ' ul.custom_' +
- listStyle +
- '{list-style:none;} ' +
- selector +
- ' ul.custom_' +
- listStyle +
- ' li{background-position:0 3px;background-repeat:no-repeat}'
- )
- } else {
- var index = 1
- utils.each(list.childNodes, function (li) {
- if (li.tagName == 'LI') {
- utils.pushItem(
- customCss,
- selector +
- ' li.list-' +
- customStyle[listStyle] +
- index +
- '{background-image:url(' +
- T.liiconpath +
- 'list-' +
- customStyle[listStyle] +
- index +
- '.gif)}'
- )
- index++
- }
- })
- utils.pushItem(
- customCss,
- selector +
- ' ol.custom_' +
- listStyle +
- '{list-style:none;}' +
- selector +
- ' ol.custom_' +
- listStyle +
- ' li{background-position:0 3px;background-repeat:no-repeat}'
- )
- }
- switch (listStyle) {
- case 'cn':
- utils.pushItem(
- customCss,
- selector + ' li.list-' + listStyle + '-paddingleft-1{padding-left:25px}'
- )
- utils.pushItem(
- customCss,
- selector + ' li.list-' + listStyle + '-paddingleft-2{padding-left:40px}'
- )
- utils.pushItem(
- customCss,
- selector + ' li.list-' + listStyle + '-paddingleft-3{padding-left:55px}'
- )
- break
- case 'cn1':
- utils.pushItem(
- customCss,
- selector + ' li.list-' + listStyle + '-paddingleft-1{padding-left:30px}'
- )
- utils.pushItem(
- customCss,
- selector + ' li.list-' + listStyle + '-paddingleft-2{padding-left:40px}'
- )
- utils.pushItem(
- customCss,
- selector + ' li.list-' + listStyle + '-paddingleft-3{padding-left:55px}'
- )
- break
- case 'cn2':
- utils.pushItem(
- customCss,
- selector + ' li.list-' + listStyle + '-paddingleft-1{padding-left:40px}'
- )
- utils.pushItem(
- customCss,
- selector + ' li.list-' + listStyle + '-paddingleft-2{padding-left:55px}'
- )
- utils.pushItem(
- customCss,
- selector + ' li.list-' + listStyle + '-paddingleft-3{padding-left:68px}'
- )
- break
- case 'num':
- case 'num1':
- utils.pushItem(
- customCss,
- selector + ' li.list-' + listStyle + '-paddingleft-1{padding-left:25px}'
- )
- break
- case 'num2':
- utils.pushItem(
- customCss,
- selector + ' li.list-' + listStyle + '-paddingleft-1{padding-left:35px}'
- )
- utils.pushItem(
- customCss,
- selector + ' li.list-' + listStyle + '-paddingleft-2{padding-left:40px}'
- )
- break
- case 'dash':
- utils.pushItem(
- customCss,
- selector + ' li.list-' + listStyle + '-paddingleft{padding-left:35px}'
- )
- break
- case 'dot':
- utils.pushItem(
- customCss,
- selector + ' li.list-' + listStyle + '-paddingleft{padding-left:20px}'
- )
- }
- }
- })
- }
- })
- UE.parse.register('vedio', function (utils) {
- var video = this.root.getElementsByTagName('video'),
- audio = this.root.getElementsByTagName('audio')
- document.createElement('video')
- document.createElement('audio')
- if (video.length || audio.length) {
- var sourcePath = utils.removeLastbs(this.rootPath),
- jsurl = sourcePath + '/third-party/video-js/video.js',
- cssurl = sourcePath + '/third-party/video-js/video-js.min.css',
- swfUrl = sourcePath + '/third-party/video-js/video-js.swf'
- if (window.videojs) {
- videojs.autoSetup()
- } else {
- utils.loadFile(document, {
- id: 'video_css',
- tag: 'link',
- rel: 'stylesheet',
- type: 'text/css',
- href: cssurl
- })
- utils.loadFile(
- document,
- {
- id: 'video_js',
- src: jsurl,
- tag: 'script',
- type: 'text/javascript'
- },
- function () {
- videojs.options.flash.swf = swfUrl
- videojs.autoSetup()
- }
- )
- }
- }
- })
- })()
|