diff --git a/client/src/components/AgencySelector.vue b/client/src/components/AgencySelector.vue new file mode 100644 index 0000000..75549e7 --- /dev/null +++ b/client/src/components/AgencySelector.vue @@ -0,0 +1,243 @@ + + + + + diff --git a/client/src/components/BaseSelector.vue b/client/src/components/BaseSelector.vue new file mode 100644 index 0000000..9ca03d1 --- /dev/null +++ b/client/src/components/BaseSelector.vue @@ -0,0 +1,152 @@ + + + + + diff --git a/client/src/components/Browser.vue b/client/src/components/Browser.vue new file mode 100644 index 0000000..69459f0 --- /dev/null +++ b/client/src/components/Browser.vue @@ -0,0 +1,466 @@ + + + + + diff --git a/client/src/components/BusinessEditDialog.vue b/client/src/components/BusinessEditDialog.vue new file mode 100644 index 0000000..ff9ef0c --- /dev/null +++ b/client/src/components/BusinessEditDialog.vue @@ -0,0 +1,147 @@ + + + diff --git a/client/src/components/BusinessTable.vue b/client/src/components/BusinessTable.vue new file mode 100644 index 0000000..b81f37e --- /dev/null +++ b/client/src/components/BusinessTable.vue @@ -0,0 +1,457 @@ + + + + diff --git a/client/src/components/DictCascader.vue b/client/src/components/DictCascader.vue new file mode 100644 index 0000000..7bb74b4 --- /dev/null +++ b/client/src/components/DictCascader.vue @@ -0,0 +1,147 @@ + + + + + diff --git a/client/src/components/DictSelector.vue b/client/src/components/DictSelector.vue new file mode 100644 index 0000000..bdf3d00 --- /dev/null +++ b/client/src/components/DictSelector.vue @@ -0,0 +1,302 @@ + + + diff --git a/client/src/components/ElDialog/index.vue b/client/src/components/ElDialog/index.vue new file mode 100644 index 0000000..3704b09 --- /dev/null +++ b/client/src/components/ElDialog/index.vue @@ -0,0 +1,208 @@ + + + + + diff --git a/client/src/components/ElMenu/index.vue b/client/src/components/ElMenu/index.vue new file mode 100644 index 0000000..ab5f7ca --- /dev/null +++ b/client/src/components/ElMenu/index.vue @@ -0,0 +1,108 @@ + + + + + diff --git a/client/src/components/ElTable.vue b/client/src/components/ElTable.vue new file mode 100644 index 0000000..448a19c --- /dev/null +++ b/client/src/components/ElTable.vue @@ -0,0 +1,33 @@ + + + + + \ No newline at end of file diff --git a/client/src/components/ElTabs/index.vue b/client/src/components/ElTabs/index.vue new file mode 100644 index 0000000..0ce4df9 --- /dev/null +++ b/client/src/components/ElTabs/index.vue @@ -0,0 +1,169 @@ + + + + + diff --git a/client/src/components/IndexTitle/index.vue b/client/src/components/IndexTitle/index.vue new file mode 100644 index 0000000..b535c65 --- /dev/null +++ b/client/src/components/IndexTitle/index.vue @@ -0,0 +1,27 @@ + + + + diff --git a/client/src/components/IndustryPublic/index.vue b/client/src/components/IndustryPublic/index.vue new file mode 100644 index 0000000..5ced007 --- /dev/null +++ b/client/src/components/IndustryPublic/index.vue @@ -0,0 +1,27 @@ + + + + + diff --git a/client/src/components/IndustryTradeComponents/Comprehensive.vue b/client/src/components/IndustryTradeComponents/Comprehensive.vue new file mode 100644 index 0000000..04ca4cc --- /dev/null +++ b/client/src/components/IndustryTradeComponents/Comprehensive.vue @@ -0,0 +1,110 @@ + + + + diff --git a/client/src/components/IndustryTradeComponents/IndustryMap.vue b/client/src/components/IndustryTradeComponents/IndustryMap.vue new file mode 100644 index 0000000..b999d97 --- /dev/null +++ b/client/src/components/IndustryTradeComponents/IndustryMap.vue @@ -0,0 +1,44 @@ + + + + diff --git a/client/src/components/IndustryTradeComponents/IndustryTitle.vue b/client/src/components/IndustryTradeComponents/IndustryTitle.vue new file mode 100644 index 0000000..c7ab7f2 --- /dev/null +++ b/client/src/components/IndustryTradeComponents/IndustryTitle.vue @@ -0,0 +1,33 @@ + + + + diff --git a/client/src/components/IndustryTradeComponents/InherentRisk.vue b/client/src/components/IndustryTradeComponents/InherentRisk.vue new file mode 100644 index 0000000..9db5fa8 --- /dev/null +++ b/client/src/components/IndustryTradeComponents/InherentRisk.vue @@ -0,0 +1,164 @@ + + + + diff --git a/client/src/components/IndustryTradeComponents/Monitor.vue b/client/src/components/IndustryTradeComponents/Monitor.vue new file mode 100644 index 0000000..ea9a4da --- /dev/null +++ b/client/src/components/IndustryTradeComponents/Monitor.vue @@ -0,0 +1,73 @@ + + + + diff --git a/client/src/components/IndustryTradeComponents/SpecialType.vue b/client/src/components/IndustryTradeComponents/SpecialType.vue new file mode 100644 index 0000000..00611da --- /dev/null +++ b/client/src/components/IndustryTradeComponents/SpecialType.vue @@ -0,0 +1,42 @@ + + + + diff --git a/client/src/components/IndustryTradeComponents/json/Comprehensive.json b/client/src/components/IndustryTradeComponents/json/Comprehensive.json new file mode 100644 index 0000000..cacaff4 --- /dev/null +++ b/client/src/components/IndustryTradeComponents/json/Comprehensive.json @@ -0,0 +1,70 @@ +{ + "grid": { + "left": "0%", + "right": "8%", + "bottom": "10%", + "top": "15%", + "containLabel": true + }, + "tooltip": { + "trigger": "axis", + "borderWidth": 1, + "backgroundColor": "#FFFFFF", + "borderColor": "rgba(0,0,0,0.15)", + "textStyle": { + "color": "#3F4040" + }, + "axisPointer": { + "animation": false, + "lineStyle": { + "color": "rgba(94, 161, 255, 0.15)" + } + } + }, + "xAxis": { + "type": "category", + "data": ["冶金", "有色", "建材", "机械", "轻工", "纺织", "烟草", "商贸"], + "axisTick": { + "show": false + }, + "axisLine": { + "lineStyle": { + "type": "solid", + "color": "#ECECEC" + }, + "symbol": ["none"], + "symbolSize": [13, 20], + "symbolOffset": [0, 40] + }, + "axisLabel": { + "margin": 16, + "interval": 0, + "fontSize": 16, + "fontFamily": "Avenir-Medium", + "color": "#3F4040" + }, + "splitLine": { + "show": false + } + }, + "yAxis": { + "show": false + }, + "series": { + "name": "行业企业数", + "type": "bar", + "smooth": true, + "showSymbol": false, + "barWidth": 18, + "data": [12, 36, 20, 72, 30, 30, 30, 30], + "itemStyle": { + "color": "#4CBB14" + }, + "label": { + "show": true, + "position": "top", + "fontSize": 14, + "fontFamily": "Avenir-Medium" + } + } +} diff --git a/client/src/components/IndustryTradeComponents/json/fxdx.json b/client/src/components/IndustryTradeComponents/json/fxdx.json new file mode 100644 index 0000000..d0fb6ac --- /dev/null +++ b/client/src/components/IndustryTradeComponents/json/fxdx.json @@ -0,0 +1,48 @@ +{ + "title": { + "text": "177", + "subtext": "风险对象", + "left": "center", + "top": "32%", + "textStyle": { + "fontFamily": "ff-AvenirMedium", + "fontSize": 18, + "color": "#3F4040", + "align": "center" + }, + "subtextStyle": { + "fontSize": 14, + "color": "#3F4040" + } + }, + "tooltip": { + "trigger": "item" + }, + "grid": { + "left": "2%", + "right": "4%", + "bottom": "0%", + "top": "0%", + "containLabel": true + }, + "series": { + "name": "风险对象统计", + "type": "pie", + "radius": ["50%", "70%"], + "avoidLabelOverlap": false, + "padAngle": 2, + "label": { + "show": false, + "position": "center" + }, + "emphasis": { + "label": { + "show": false + } + }, + "labelLine": { + "show": false + }, + "data": [] + } +} diff --git a/client/src/components/IndustryTradeComponents/json/tzzy1.json b/client/src/components/IndustryTradeComponents/json/tzzy1.json new file mode 100644 index 0000000..c87a1e9 --- /dev/null +++ b/client/src/components/IndustryTradeComponents/json/tzzy1.json @@ -0,0 +1,82 @@ +{ + "grid": { + "left": "8%", + "right": "8%", + "bottom": "5%", + "top": "15%", + "containLabel": true + }, + "tooltip": { + "trigger": "axis", + "borderWidth": 1, + "backgroundColor": "#FFFFFF", + "borderColor": "rgba(0,0,0,0.15)", + "textStyle": { + "color": "#3F4040" + }, + "axisPointer": { + "animation": false, + "lineStyle": { + "color": "rgba(94, 161, 255, 0.15)" + } + } + }, + "xAxis": { + "type": "category", + "data": ["电工证\n (高压)", "电工证\n (低压)", "焊工证", "高空证", "制冷证\n (冷库)", "制冷证 \n(空调)"], + "axisTick": { + "show": false + }, + "axisLine": { + "lineStyle": { + "type": "solid", + "color": "#ECECEC" + }, + "symbol": ["none"], + "symbolSize": [13, 20], + "symbolOffset": [0, 40] + }, + "axisLabel": { + "margin": 16, + "interval": 0, + "fontSize": 16, + "fontFamily": "Avenir-Medium", + "color": "#3F4040" + }, + "splitLine": { + "show": false + } + }, + "yAxis": { + "type": "value", + "axisTick": { + "show": false + }, + "axisLine": { + "show": false + }, + "axisLabel": { + "fontSize": 16, + "fontFamily": "Avenir-Medium", + "color": "#3F4040" + }, + "splitLine": { + "lineStyle": { + "type": "dashed", + "color": "#ECECEC" + }, + "symbol": ["none"], + "symbolSize": [13, 20], + "symbolOffset": [0, 40] + } + }, + "series": { + "type": "line", + "smooth": true, + "showSymbol": false, + "data": [100, 200, 200, 250, 300, 350, 360, 380, 300, 330, 350, 380], + "itemStyle": { + "color": "#4CBB14" + } + } +} diff --git a/client/src/components/IndustryTradeComponents/json/tzzy2.json b/client/src/components/IndustryTradeComponents/json/tzzy2.json new file mode 100644 index 0000000..d80ca39 --- /dev/null +++ b/client/src/components/IndustryTradeComponents/json/tzzy2.json @@ -0,0 +1,120 @@ +{ + "grid": { + "left": "8%", + "right": "8%", + "bottom": "8%", + "top": "15%", + "containLabel": true + }, + "tooltip": { + "trigger": "axis", + "borderWidth": 1, + "backgroundColor": "#FFFFFF", + "borderColor": "rgba(0,0,0,0.15)", + "textStyle": { + "color": "#3F4040" + }, + "axisPointer": { + "animation": false, + "lineStyle": { + "color": "rgba(94, 161, 255, 0.15)" + } + } + }, + "legend": { + "data": ["今日", "本月"], + "icon": "circle", + "height": 5, + "itemHeight": 8, + "itemGap": 10, + "textStyle": { + "color": "#3F4040", + "lineHeight": 5, + "fontSize": 16, + "padding": [0, 10, 0, -8] + }, + "lineStyle": { + "color": "transparent" + } + }, + "xAxis": { + "type": "category", + "data": ["动火", "受限\n空间", "盲板\n抽堵", "高处", "吊装", "临时\n用电", "动土", "断路"], + "axisTick": { + "show": false + }, + "axisLine": { + "lineStyle": { + "type": "solid", + "color": "#ECECEC" + }, + "symbol": ["none"], + "symbolSize": [13, 20], + "symbolOffset": [0, 40] + }, + "axisLabel": { + "margin": 16, + "interval": 0, + "fontSize": 16, + "fontFamily": "Avenir-Medium", + "color": "#3F4040" + }, + "splitLine": { + "show": false + } + }, + "yAxis": { + "name": "单位", + "type": "value", + "nameTextStyle": { + "fontSize": 16, + "fontFamily": "Avenir-Medium", + "padding": [0, 50, 15, 0], + "color": "rgba(255, 255, 255, 0.90)" + }, + "axisTick": { + "show": false + }, + "axisLine": { + "show": false + }, + "axisLabel": { + "fontSize": 16, + "fontFamily": "Avenir-Medium", + "color": "#3F4040" + }, + "splitLine": { + "lineStyle": { + "type": "dashed", + "color": "#ECECEC" + }, + "symbol": ["none"], + "symbolSize": [13, 20], + "symbolOffset": [0, 40] + } + }, + "series": [ + { + "name": "今日", + "type": "bar", + "smooth": true, + "showSymbol": false, + "barWidth": 18, + "data": [100, 80, 80, 150, 100, 150, 160, 180, 100, 110, 150, 180], + "itemStyle": { + "color": "#4CBB14" + } + }, + { + "name": "本月", + "type": "line", + "smooth": true, + "showSymbol": false, + "color": "#FFB317", + "data": [200, 300, 200, 190, 200, 300, 200, 300, 400, 300, 300, 400], + "itemStyle": { + "color": "#FFD93E" + } + } + ] +} diff --git a/client/src/components/IndustryTradeComponents/json/wxgy.json b/client/src/components/IndustryTradeComponents/json/wxgy.json new file mode 100644 index 0000000..cab7637 --- /dev/null +++ b/client/src/components/IndustryTradeComponents/json/wxgy.json @@ -0,0 +1,48 @@ +{ + "title": { + "text": "177", + "subtext": "危险工艺", + "left": "center", + "top": "32%", + "textStyle": { + "fontFamily": "ff-AvenirMedium", + "fontSize": 18, + "color": "#3F4040", + "align": "center" + }, + "subtextStyle": { + "fontSize": 14, + "color": "#3F4040" + } + }, + "tooltip": { + "trigger": "item" + }, + "grid": { + "left": "2%", + "right": "4%", + "bottom": "0%", + "top": "0%", + "containLabel": true + }, + "series": { + "name": "危险工艺", + "type": "pie", + "radius": ["50%", "70%"], + "avoidLabelOverlap": false, + "padAngle": 2, + "label": { + "show": false, + "position": "center" + }, + "emphasis": { + "label": { + "show": false + } + }, + "labelLine": { + "show": false + }, + "data": [] + } +} diff --git a/client/src/components/IndustryTradeComponents/json/yhzl.json b/client/src/components/IndustryTradeComponents/json/yhzl.json new file mode 100644 index 0000000..f58217c --- /dev/null +++ b/client/src/components/IndustryTradeComponents/json/yhzl.json @@ -0,0 +1,49 @@ +{ + "title": { + "text": "2400", + "subtext": "处", + "left": "center", + "top": "40%", + "textStyle": { + "fontFamily": "ff-AvenirMedium", + "fontSize": 22, + "color": "#3F4040", + "align": "center" + }, + "subtextStyle": { + "fontSize": 16, + "color": "#3F4040" + } + }, + "tooltip": { + "trigger": "item" + }, + "grid": { + "left": "2%", + "right": "4%", + "bottom": "0%", + "top": "0%", + "containLabel": true + }, + "series": { + "name": "危险工艺", + "type": "pie", + "radius": ["50%", "70%"], + "center": ["50%", "50%"], + "avoidLabelOverlap": false, + "padAngle": 2, + "label": { + "show": false, + "position": "center" + }, + "emphasis": { + "label": { + "show": false + } + }, + "labelLine": { + "show": false + }, + "data": [] + } +} diff --git a/client/src/components/IndustryTradeComponents/lurkingPeril.vue b/client/src/components/IndustryTradeComponents/lurkingPeril.vue new file mode 100644 index 0000000..af8b6e5 --- /dev/null +++ b/client/src/components/IndustryTradeComponents/lurkingPeril.vue @@ -0,0 +1,109 @@ + + + + diff --git a/client/src/components/OfficerSelector.vue b/client/src/components/OfficerSelector.vue new file mode 100644 index 0000000..86895d5 --- /dev/null +++ b/client/src/components/OfficerSelector.vue @@ -0,0 +1,555 @@ + + + + + +// diff --git a/client/src/components/ProgressBar.vue b/client/src/components/ProgressBar.vue new file mode 100644 index 0000000..d2b64b0 --- /dev/null +++ b/client/src/components/ProgressBar.vue @@ -0,0 +1,142 @@ + + + + + diff --git a/client/src/components/PublicChart/a.js b/client/src/components/PublicChart/a.js new file mode 100644 index 0000000..087e427 --- /dev/null +++ b/client/src/components/PublicChart/a.js @@ -0,0 +1,438 @@ +!(function (e, t) { + 'object' == typeof exports && 'object' == typeof module + ? (module.exports = t(require('echarts'))) + : 'function' == typeof define && define.amd + ? define(['echarts'], t) + : 'object' == typeof exports + ? (exports['echarts-liquidfill'] = t(require('echarts'))) + : (e['echarts-liquidfill'] = t(e.echarts)) +})(self, function (e) { + return (() => { + 'use strict' + var t = { + 245: (e, t, a) => { + a.r(t) + var i = a(83) + i.extendSeriesModel({ + type: 'series.liquidFill', + optionUpdated: function () { + var e = this.option + e.gridSize = Math.max(Math.floor(e.gridSize), 4) + }, + getInitialData: function (e, t) { + var a = i.helper.createDimensions(e.data, { coordDimensions: ['value'] }), + r = new i.List(a, this) + return r.initData(e.data), r + }, + defaultOption: { + color: ['#294D99', '#156ACF', '#1598ED', '#45BDFF'], + center: ['50%', '50%'], + radius: '50%', + amplitude: '8%', + waveLength: '80%', + phase: 'auto', + period: 'auto', + direction: 'right', + shape: 'circle', + waveAnimation: !0, + animationEasing: 'linear', + animationEasingUpdate: 'linear', + animationDuration: 2e3, + animationDurationUpdate: 1e3, + outline: { + show: !0, + borderDistance: 8, + itemStyle: { + color: 'none', + borderColor: '#294D99', + borderWidth: 8, + shadowBlur: 20, + shadowColor: 'rgba(0, 0, 0, 0.25)', + }, + }, + backgroundStyle: { color: '#E3F7FF' }, + itemStyle: { opacity: 0.95, shadowBlur: 50, shadowColor: 'rgba(0, 0, 0, 0.4)' }, + label: { + show: !0, + color: '#294D99', + insideColor: '#fff', + fontSize: 50, + fontWeight: 'bold', + align: 'center', + baseline: 'middle', + position: 'inside', + }, + emphasis: { itemStyle: { opacity: 0.8 } }, + }, + }) + const r = i.graphic.extendShape({ + type: 'ec-liquid-fill', + shape: { + waveLength: 0, + radius: 0, + radiusY: 0, + cx: 0, + cy: 0, + waterLevel: 0, + amplitude: 0, + phase: 0, + inverse: !1, + }, + buildPath: function (e, t) { + null == t.radiusY && (t.radiusY = t.radius) + for (var a = Math.max(2 * Math.ceil(((2 * t.radius) / t.waveLength) * 4), 8); t.phase < 2 * -Math.PI; ) + t.phase += 2 * Math.PI + for (; t.phase > 0; ) t.phase -= 2 * Math.PI + var i = (t.phase / Math.PI / 2) * t.waveLength, + r = t.cx - t.radius + i - 2 * t.radius + e.moveTo(r, t.waterLevel) + for (var l = 0, o = 0; o < a; ++o) { + var s = o % 4, + h = n((o * t.waveLength) / 4, s, t.waveLength, t.amplitude) + e.bezierCurveTo( + h[0][0] + r, + -h[0][1] + t.waterLevel, + h[1][0] + r, + -h[1][1] + t.waterLevel, + h[2][0] + r, + -h[2][1] + t.waterLevel + ), + o === a - 1 && (l = h[2][0]) + } + t.inverse + ? (e.lineTo(l + r, t.cy - t.radiusY), e.lineTo(r, t.cy - t.radiusY), e.lineTo(r, t.waterLevel)) + : (e.lineTo(l + r, t.cy + t.radiusY), e.lineTo(r, t.cy + t.radiusY), e.lineTo(r, t.waterLevel)), + e.closePath() + }, + }) + function n(e, t, a, i) { + return 0 === t + ? [ + [e + (0.5 * a) / Math.PI / 2, i / 2], + [e + (0.5 * a) / Math.PI, i], + [e + a / 4, i], + ] + : 1 === t + ? [ + [e + ((0.5 * a) / Math.PI / 2) * (Math.PI - 2), i], + [e + ((0.5 * a) / Math.PI / 2) * (Math.PI - 1), i / 2], + [e + a / 4, 0], + ] + : 2 === t + ? [ + [e + (0.5 * a) / Math.PI / 2, -i / 2], + [e + (0.5 * a) / Math.PI, -i], + [e + a / 4, -i], + ] + : [ + [e + ((0.5 * a) / Math.PI / 2) * (Math.PI - 2), -i], + [e + ((0.5 * a) / Math.PI / 2) * (Math.PI - 1), -i / 2], + [e + a / 4, 0], + ] + } + var l = function (e, t) { + switch (e) { + case 'center': + case 'middle': + e = '50%' + break + case 'left': + case 'top': + e = '0%' + break + case 'right': + case 'bottom': + e = '100%' + } + return 'string' == typeof e + ? ((a = e), a.replace(/^\s+|\s+$/g, '')).match(/%$/) + ? (parseFloat(e) / 100) * t + : parseFloat(e) + : null == e + ? NaN + : +e + var a + } + function o(e) { + return e && 0 === e.indexOf('path://') + } + i.extendChartView({ + type: 'liquidFill', + render: function (e, t, a) { + var n = this, + s = this.group + s.removeAll() + var h = e.getData(), + d = h.getItemModel(0), + p = d.get('center'), + u = d.get('radius'), + c = a.getWidth(), + g = a.getHeight(), + v = Math.min(c, g), + f = 0, + y = 0, + m = e.get('outline.show') + m && ((f = e.get('outline.borderDistance')), (y = l(e.get('outline.itemStyle.borderWidth'), v))) + var w, + b, + x, + M = l(p[0], c), + P = l(p[1], g), + I = !1, + S = e.get('shape') + 'container' === S + ? ((I = !0), + (b = [(w = [c / 2, g / 2])[0] - y / 2, w[1] - y / 2]), + (x = [l(f, c), l(f, g)]), + (u = [Math.max(b[0] - x[0], 0), Math.max(b[1] - x[1], 0)])) + : ((b = (w = l(u, v) / 2) - y / 2), (x = l(f, v)), (u = Math.max(b - x, 0))), + m && ((Y().style.lineWidth = y), s.add(Y())) + var L = I ? 0 : M - u, + C = I ? 0 : P - u, + T = null + s.add( + (function () { + var t = E(u) + t.setStyle(e.getModel('backgroundStyle').getItemStyle()), (t.style.fill = null), (t.z2 = 5) + var a = E(u) + a.setStyle(e.getModel('backgroundStyle').getItemStyle()), (a.style.stroke = null) + var r = new i.graphic.Group() + return r.add(t), r.add(a), r + })() + ) + var D = this._data, + F = [] + function E(e, t) { + if (S) { + if (o(S)) { + var a = i.graphic.makePath(S.slice(7), {}), + r = a.getBoundingRect(), + n = r.width, + l = r.height + n > l ? ((l *= (2 * e) / n), (n = 2 * e)) : ((n *= (2 * e) / l), (l = 2 * e)) + var s = t ? 0 : M - n / 2, + h = t ? 0 : P - l / 2 + return ( + (a = i.graphic.makePath(S.slice(7), {}, new i.graphic.BoundingRect(s, h, n, l))), + t && ((a.x = -n / 2), (a.y = -l / 2)), + a + ) + } + if (I) { + var d = t ? -e[0] : M - e[0], + p = t ? -e[1] : P - e[1] + return i.helper.createSymbol('rect', d, p, 2 * e[0], 2 * e[1]) + } + return ( + (d = t ? -e : M - e), + (p = t ? -e : P - e), + 'pin' === S ? (p += e) : 'arrow' === S && (p -= e), + i.helper.createSymbol(S, d, p, 2 * e, 2 * e) + ) + } + return new i.graphic.Circle({ shape: { cx: t ? 0 : M, cy: t ? 0 : P, r: e } }) + } + function Y() { + var t = E(w) + return (t.style.fill = null), t.setStyle(e.getModel('outline.itemStyle').getItemStyle()), t + } + function k(t, a, n) { + var o = I ? u[0] : u, + s = I ? g / 2 : u, + d = h.getItemModel(t), + p = d.getModel('itemStyle'), + c = d.get('phase'), + v = l(d.get('amplitude'), 2 * s), + f = l(d.get('waveLength'), 2 * o), + y = s - h.get('value', t) * s * 2 + c = n ? n.shape.phase : 'auto' === c ? (t * Math.PI) / 4 : c + var m = p.getItemStyle() + if (!m.fill) { + var w = e.get('color'), + b = t % w.length + m.fill = w[b] + } + var x = new r({ + shape: { + waveLength: f, + radius: o, + radiusY: s, + cx: 2 * o, + cy: 0, + waterLevel: y, + amplitude: v, + phase: c, + inverse: a, + }, + style: m, + x: M, + y: P, + }) + x.shape._waterLevel = y + var S = d.getModel('emphasis.itemStyle').getItemStyle() + ;(S.lineWidth = 0), (x.ensureState('emphasis').style = S), i.helper.enableHoverEmphasis(x) + var L = E(u, !0) + return L.setStyle({ fill: 'white' }), x.setClipPath(L), x + } + function q(e, t, a) { + var i = h.getItemModel(e), + r = i.get('period'), + n = i.get('direction'), + l = h.get('value', e), + o = i.get('phase') + o = a ? a.shape.phase : 'auto' === o ? (e * Math.PI) / 4 : o + var s, d + s = + 'auto' === r + ? 0 === (d = h.count()) + ? 5e3 + : 5e3 * (0.2 + ((d - e) / d) * 0.8) + : 'function' == typeof r + ? r(l, e) + : r + var p = 0 + 'right' === n || null == n + ? (p = Math.PI) + : 'left' === n + ? (p = -Math.PI) + : 'none' === n + ? (p = 0) + : console.error('Illegal direction value for liquid fill.'), + 'none' !== n && + i.get('waveAnimation') && + t + .animate('shape', !0) + .when(0, { phase: o }) + .when(s / 2, { phase: p + o }) + .when(s, { phase: 2 * p + o }) + .during(function () { + T && T.dirty(!0) + }) + .start() + } + h + .diff(D) + .add(function (t) { + var a = k(t, !1), + r = a.shape.waterLevel + ;(a.shape.waterLevel = I ? g / 2 : u), + i.graphic.initProps(a, { shape: { waterLevel: r } }, e), + (a.z2 = 2), + q(t, a, null), + s.add(a), + h.setItemGraphicEl(t, a), + F.push(a) + }) + .update(function (t, a) { + for ( + var r = D.getItemGraphicEl(a), + l = k(t, !1, r), + d = {}, + p = ['amplitude', 'cx', 'cy', 'phase', 'radius', 'radiusY', 'waterLevel', 'waveLength'], + u = 0; + u < p.length; + ++u + ) { + var c = p[u] + l.shape.hasOwnProperty(c) && (d[c] = l.shape[c]) + } + var v = {}, + f = ['fill', 'opacity', 'shadowBlur', 'shadowColor'] + for (u = 0; u < f.length; ++u) (c = f[u]), l.style.hasOwnProperty(c) && (v[c] = l.style[c]) + I && (d.radiusY = g / 2), + i.graphic.updateProps(r, { shape: d, x: l.x, y: l.y }, e), + e.isUniversalTransitionEnabled && e.isUniversalTransitionEnabled() + ? i.graphic.updateProps(r, { style: v }, e) + : r.useStyle(v) + var y = r.getClipPath(), + m = l.getClipPath() + r.setClipPath(l.getClipPath()), + (r.shape.inverse = l.inverse), + y && + m && + n._shape === S && + !o(S) && + i.graphic.updateProps(m, { shape: y.shape }, e, { isFrom: !0 }), + q(t, r, r), + s.add(r), + h.setItemGraphicEl(t, r), + F.push(r) + }) + .remove(function (e) { + var t = D.getItemGraphicEl(e) + s.remove(t) + }) + .execute(), + d.get('label.show') && + s.add( + (function (t) { + var a = d.getModel('label') + var r, + n, + l, + o = { + z2: 10, + shape: { x: L, y: C, width: 2 * (I ? u[0] : u), height: 2 * (I ? u[1] : u) }, + style: { fill: 'transparent' }, + textConfig: { position: a.get('position') || 'inside' }, + silent: !0, + }, + s = { + style: { + text: + ((r = e.getFormattedLabel(0, 'normal')), + (n = 100 * h.get('value', 0)), + (l = h.getName(0) || e.name), + isNaN(n) || (l = n.toFixed(0) + '%'), + null == r ? l : r), + textAlign: a.get('align'), + textVerticalAlign: a.get('baseline'), + }, + } + Object.assign(s.style, i.helper.createTextStyle(a)) + var p = new i.graphic.Rect(o), + c = new i.graphic.Rect(o) + ;(c.disableLabelAnimation = !0), (p.disableLabelAnimation = !0) + var g = new i.graphic.Text(s), + v = new i.graphic.Text(s) + p.setTextContent(g), c.setTextContent(v) + var f = a.get('insideColor') + v.style.fill = f + var y = new i.graphic.Group() + y.add(p), y.add(c) + var m = E(u, !0) + return ( + (T = new i.graphic.CompoundPath({ shape: { paths: t }, x: M, y: P })).setClipPath(m), + c.setClipPath(T), + y + ) + })(F) + ), + (this._shape = S), + (this._data = h) + }, + dispose: function () {}, + }) + }, + 83: (t) => { + t.exports = e + }, + }, + a = {} + function i(e) { + if (a[e]) return a[e].exports + var r = (a[e] = { exports: {} }) + return t[e](r, r.exports, i), r.exports + } + return ( + (i.r = (e) => { + 'undefined' != typeof Symbol && + Symbol.toStringTag && + Object.defineProperty(e, Symbol.toStringTag, { value: 'Module' }), + Object.defineProperty(e, '__esModule', { value: !0 }) + }), + i(245) + ) + })() +}) +//# sourceMappingURL=echarts-liquidfill.min.js.map diff --git a/client/src/components/PublicChart/index-20240627.vue b/client/src/components/PublicChart/index-20240627.vue new file mode 100644 index 0000000..b503b70 --- /dev/null +++ b/client/src/components/PublicChart/index-20240627.vue @@ -0,0 +1,277 @@ + + + + diff --git a/client/src/components/PublicChart/index.vue b/client/src/components/PublicChart/index.vue new file mode 100644 index 0000000..ed4dffc --- /dev/null +++ b/client/src/components/PublicChart/index.vue @@ -0,0 +1,271 @@ + + + + diff --git a/client/src/components/PublicChart/theme/vab-echarts-theme.json b/client/src/components/PublicChart/theme/vab-echarts-theme.json new file mode 100644 index 0000000..199c109 --- /dev/null +++ b/client/src/components/PublicChart/theme/vab-echarts-theme.json @@ -0,0 +1,317 @@ +{ + "color": ["#1890FF", "#36CBCB", "#4ECB73", "#FBD437", "#F2637B", "#975FE5"], + "backgroundColor": "rgba(252,252,252,0)", + "textStyle": {}, + "title": { + "textStyle": { + "color": "#666666" + }, + "subtextStyle": { + "color": "#999999" + } + }, + "line": { + "itemStyle": { + "borderWidth": "2" + }, + "lineStyle": { + "normal": { + "width": "3" + } + }, + "symbolSize": "8", + "symbol": "emptyCircle", + "smooth": false + }, + "radar": { + "itemStyle": { + "borderWidth": "2" + }, + "lineStyle": { + "normal": { + "width": "3" + } + }, + "symbolSize": "8", + "symbol": "emptyCircle", + "smooth": false + }, + "bar": { + "itemStyle": { + "barBorderWidth": 0, + "barBorderColor": "#ccc" + } + }, + "pie": { + "itemStyle": { + "borderWidth": 0, + "borderColor": "#ccc" + } + }, + "scatter": { + "itemStyle": { + "borderWidth": 0, + "borderColor": "#ccc" + } + }, + "boxplot": { + "itemStyle": { + "borderWidth": 0, + "borderColor": "#ccc" + } + }, + "parallel": { + "itemStyle": { + "borderWidth": 0, + "borderColor": "#ccc" + } + }, + "sankey": { + "itemStyle": { + "borderWidth": 0, + "borderColor": "#ccc" + } + }, + "funnel": { + "itemStyle": { + "borderWidth": 0, + "borderColor": "#ccc" + } + }, + "gauge": { + "itemStyle": { + "borderWidth": 0, + "borderColor": "#ccc" + } + }, + "candlestick": { + "itemStyle": { + "color": "#e6a0d2", + "color0": "transparent", + "borderColor": "#e6a0d2", + "borderColor0": "#1890FF", + "borderWidth": "2" + } + }, + "graph": { + "itemStyle": { + "borderWidth": 0, + "borderColor": "#ccc" + }, + "lineStyle": { + "normal": { + "width": "1", + "color": "#cccccc" + } + }, + "symbolSize": "8", + "symbol": "emptyCircle", + "smooth": false, + "color": ["#1890FF", "#36CBCB", "#4ECB73", "#FBD437", "#F2637B", "#975FE5"], + "label": { + "color": "#ffffff" + } + }, + "map": { + "itemStyle": { + "areaColor": "#eeeeee", + "borderColor": "#aaaaaa", + "borderWidth": 0.5 + }, + "label": { + "color": "#ffffff" + } + }, + "geo": { + "itemStyle": { + "areaColor": "#eeeeee", + "borderColor": "#aaaaaa", + "borderWidth": 0.5 + }, + "label": { + "color": "#ffffff" + } + }, + "categoryAxis": { + "axisLine": { + "show": true, + "lineStyle": { + "color": "#cccccc" + } + }, + "axisTick": { + "show": false, + "lineStyle": { + "color": "#333" + } + }, + "axisLabel": { + "show": true, + "color": "#999999" + }, + "splitLine": { + "show": true, + "lineStyle": { + "color": ["#eeeeee"] + } + }, + "splitArea": { + "show": false, + "areaStyle": { + "color": ["rgba(250,250,250,0.05)", "rgba(200,200,200,0.02)"] + } + } + }, + "valueAxis": { + "axisLine": { + "show": true, + "lineStyle": { + "color": "#cccccc" + } + }, + "axisTick": { + "show": true, + "lineStyle": { + "color": "#cccccc" + } + }, + "axisLabel": { + "show": true, + "color": "#999999" + }, + "splitLine": { + "show": true, + "lineStyle": { + "color": ["#eeeeee"] + } + }, + "splitArea": { + "show": false, + "areaStyle": { + "color": ["rgba(250,250,250,0.05)", "rgba(200,200,200,0.02)"] + } + } + }, + "logAxis": { + "axisLine": { + "show": true, + "lineStyle": { + "color": "#cccccc" + } + }, + "axisTick": { + "show": false, + "lineStyle": { + "color": "#333" + } + }, + "axisLabel": { + "show": true, + "color": "#999999" + }, + "splitLine": { + "show": true, + "lineStyle": { + "color": ["#eeeeee"] + } + }, + "splitArea": { + "show": false, + "areaStyle": { + "color": ["rgba(250,250,250,0.05)", "rgba(200,200,200,0.02)"] + } + } + }, + "timeAxis": { + "axisLine": { + "show": true, + "lineStyle": { + "color": "#cccccc" + } + }, + "axisTick": { + "show": false, + "lineStyle": { + "color": "#333" + } + }, + "axisLabel": { + "show": true, + "color": "#999999" + }, + "splitLine": { + "show": true, + "lineStyle": { + "color": ["#eeeeee"] + } + }, + "splitArea": { + "show": false, + "areaStyle": { + "color": ["rgba(250,250,250,0.05)", "rgba(200,200,200,0.02)"] + } + } + }, + "toolbox": { + "iconStyle": { + "borderColor": "#999999" + } + }, + "legend": { + "textStyle": { + "color": "#999999" + } + }, + "tooltip": { + "axisPointer": { + "lineStyle": { + "color": "#ffffff", + "width": 1 + }, + "crossStyle": { + "color": "#ffffff", + "width": 1 + } + } + }, + "timeline": { + "lineStyle": { + "color": "#4ECB73", + "width": 1 + }, + "itemStyle": { + "color": "#4ECB73", + "borderWidth": 1 + }, + "controlStyle": { + "color": "#4ECB73", + "borderColor": "#4ECB73", + "borderWidth": 0.5 + }, + "checkpointStyle": { + "color": "#1890FF", + "borderColor": "rgba(63,177,227,0.15)" + }, + "label": { + "color": "#4ECB73" + } + }, + "visualMap": { + "color": ["#1890FF", "#afe8ff"] + }, + "dataZoom": { + "backgroundColor": "rgba(255,255,255,0)", + "dataBackgroundColor": "rgba(222,222,222,1)", + "fillerColor": "rgba(114,230,212,0.25)", + "handleColor": "#cccccc", + "handleSize": "100%", + "textStyle": { + "color": "#999999" + } + }, + "markPoint": { + "label": { + "color": "#ffffff" + } + } +} diff --git a/client/src/components/PublicFullScreen/index.vue b/client/src/components/PublicFullScreen/index.vue new file mode 100644 index 0000000..c180cc1 --- /dev/null +++ b/client/src/components/PublicFullScreen/index.vue @@ -0,0 +1,48 @@ + + + diff --git a/client/src/components/SimpleCheckItemSelector.vue b/client/src/components/SimpleCheckItemSelector.vue new file mode 100644 index 0000000..7693012 --- /dev/null +++ b/client/src/components/SimpleCheckItemSelector.vue @@ -0,0 +1,110 @@ + + + + + diff --git a/client/src/components/SimpleEnterpriseSelector.vue b/client/src/components/SimpleEnterpriseSelector.vue new file mode 100644 index 0000000..b467f6c --- /dev/null +++ b/client/src/components/SimpleEnterpriseSelector.vue @@ -0,0 +1,200 @@ + + + + + diff --git a/client/src/components/SimpleEntitySelector.vue b/client/src/components/SimpleEntitySelector.vue new file mode 100644 index 0000000..5a7cf1f --- /dev/null +++ b/client/src/components/SimpleEntitySelector.vue @@ -0,0 +1,207 @@ + + + + + diff --git a/client/src/components/SimpleOfficerSelector.vue b/client/src/components/SimpleOfficerSelector.vue new file mode 100644 index 0000000..ffe3592 --- /dev/null +++ b/client/src/components/SimpleOfficerSelector.vue @@ -0,0 +1,237 @@ + + + + + diff --git a/client/src/components/Toolbar.vue b/client/src/components/Toolbar.vue new file mode 100644 index 0000000..4797a42 --- /dev/null +++ b/client/src/components/Toolbar.vue @@ -0,0 +1,155 @@ + + + + + diff --git a/client/src/components/TreeSelector.vue b/client/src/components/TreeSelector.vue new file mode 100644 index 0000000..d729bc3 --- /dev/null +++ b/client/src/components/TreeSelector.vue @@ -0,0 +1,354 @@ + + + +