1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135 |
- /*!
- * 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()
- }
- )
- }
- }
- })
- })()
|