whx 7 miesięcy temu
rodzic
commit
4d674f06a2
100 zmienionych plików z 14588 dodań i 468 usunięć
  1. 326 13
      virgo.wzfrontend/yui_wx/components/device/aircondition.vue
  2. 64 0
      virgo.wzfrontend/yui_wx/components/device/lighting.vue
  3. 180 0
      virgo.wzfrontend/yui_wx/components/device/meter.vue
  4. 68 0
      virgo.wzfrontend/yui_wx/components/device/uEchart.vue
  5. 179 0
      virgo.wzfrontend/yui_wx/components/device/water.vue
  6. 16 3
      virgo.wzfrontend/yui_wx/pages/deviceDetail/deviceDetail.vue
  7. 3 1
      virgo.wzfrontend/yui_wx/pages/deviceList/deviceList.vue
  8. 241 188
      virgo.wzfrontend/yui_wx/static/font/iconfont.css
  9. BIN
      virgo.wzfrontend/yui_wx/static/font/iconfont.ttf
  10. 320 0
      virgo.wzfrontend/yui_wx/uni_modules/qiun-data-charts/changelog.md
  11. 1618 0
      virgo.wzfrontend/yui_wx/uni_modules/qiun-data-charts/components/qiun-data-charts/qiun-data-charts.vue
  12. 46 0
      virgo.wzfrontend/yui_wx/uni_modules/qiun-data-charts/components/qiun-error/qiun-error.vue
  13. 162 0
      virgo.wzfrontend/yui_wx/uni_modules/qiun-data-charts/components/qiun-loading/loading1.vue
  14. 170 0
      virgo.wzfrontend/yui_wx/uni_modules/qiun-data-charts/components/qiun-loading/loading2.vue
  15. 173 0
      virgo.wzfrontend/yui_wx/uni_modules/qiun-data-charts/components/qiun-loading/loading3.vue
  16. 222 0
      virgo.wzfrontend/yui_wx/uni_modules/qiun-data-charts/components/qiun-loading/loading4.vue
  17. 229 0
      virgo.wzfrontend/yui_wx/uni_modules/qiun-data-charts/components/qiun-loading/loading5.vue
  18. 36 0
      virgo.wzfrontend/yui_wx/uni_modules/qiun-data-charts/components/qiun-loading/qiun-loading.vue
  19. 422 0
      virgo.wzfrontend/yui_wx/uni_modules/qiun-data-charts/js_sdk/u-charts/config-echarts.js
  20. 606 0
      virgo.wzfrontend/yui_wx/uni_modules/qiun-data-charts/js_sdk/u-charts/config-ucharts.js
  21. 5 0
      virgo.wzfrontend/yui_wx/uni_modules/qiun-data-charts/js_sdk/u-charts/readme.md
  22. 7706 0
      virgo.wzfrontend/yui_wx/uni_modules/qiun-data-charts/js_sdk/u-charts/u-charts.js
  23. 18 0
      virgo.wzfrontend/yui_wx/uni_modules/qiun-data-charts/js_sdk/u-charts/u-charts.min.js
  24. 201 0
      virgo.wzfrontend/yui_wx/uni_modules/qiun-data-charts/license.md
  25. 80 0
      virgo.wzfrontend/yui_wx/uni_modules/qiun-data-charts/package.json
  26. 84 0
      virgo.wzfrontend/yui_wx/uni_modules/qiun-data-charts/readme.md
  27. 23 0
      virgo.wzfrontend/yui_wx/uni_modules/qiun-data-charts/static/app-plus/echarts.min.js
  28. 23 0
      virgo.wzfrontend/yui_wx/uni_modules/qiun-data-charts/static/h5/echarts.min.js
  29. 14 0
      virgo.wzfrontend/yui_wx/uni_modules/uv-switch/changelog.md
  30. 58 0
      virgo.wzfrontend/yui_wx/uni_modules/uv-switch/components/uv-switch/props.js
  31. 192 0
      virgo.wzfrontend/yui_wx/uni_modules/uv-switch/components/uv-switch/uv-switch.vue
  32. 88 0
      virgo.wzfrontend/yui_wx/uni_modules/uv-switch/package.json
  33. 19 0
      virgo.wzfrontend/yui_wx/uni_modules/uv-switch/readme.md
  34. 1 1
      virgo.wzfrontend/yui_wx/unpackage/dist/dev/.sourcemap/mp-weixin/common/runtime.js.map
  35. 1 1
      virgo.wzfrontend/yui_wx/unpackage/dist/dev/.sourcemap/mp-weixin/common/vendor.js.map
  36. 1 1
      virgo.wzfrontend/yui_wx/unpackage/dist/dev/.sourcemap/mp-weixin/components/device/aircondition.js.map
  37. 1 0
      virgo.wzfrontend/yui_wx/unpackage/dist/dev/.sourcemap/mp-weixin/components/device/lighting.js.map
  38. 1 0
      virgo.wzfrontend/yui_wx/unpackage/dist/dev/.sourcemap/mp-weixin/components/device/meter.js.map
  39. 1 0
      virgo.wzfrontend/yui_wx/unpackage/dist/dev/.sourcemap/mp-weixin/components/device/uEchart.js.map
  40. 1 0
      virgo.wzfrontend/yui_wx/unpackage/dist/dev/.sourcemap/mp-weixin/components/device/water.js.map
  41. 1 1
      virgo.wzfrontend/yui_wx/unpackage/dist/dev/.sourcemap/mp-weixin/pages/deviceDetail/deviceDetail.js.map
  42. 1 1
      virgo.wzfrontend/yui_wx/unpackage/dist/dev/.sourcemap/mp-weixin/pages/deviceList/deviceList.js.map
  43. 1 0
      virgo.wzfrontend/yui_wx/unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/qiun-data-charts/components/qiun-data-charts/qiun-data-charts.js.map
  44. 1 0
      virgo.wzfrontend/yui_wx/unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/qiun-data-charts/components/qiun-error/qiun-error.js.map
  45. 1 0
      virgo.wzfrontend/yui_wx/unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/qiun-data-charts/components/qiun-loading/loading1.js.map
  46. 1 0
      virgo.wzfrontend/yui_wx/unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/qiun-data-charts/components/qiun-loading/loading2.js.map
  47. 1 0
      virgo.wzfrontend/yui_wx/unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/qiun-data-charts/components/qiun-loading/loading3.js.map
  48. 1 0
      virgo.wzfrontend/yui_wx/unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/qiun-data-charts/components/qiun-loading/loading4.js.map
  49. 1 0
      virgo.wzfrontend/yui_wx/unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/qiun-data-charts/components/qiun-loading/loading5.js.map
  50. 1 0
      virgo.wzfrontend/yui_wx/unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/qiun-data-charts/components/qiun-loading/qiun-loading.js.map
  51. 1 0
      virgo.wzfrontend/yui_wx/unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uni-popup/components/uni-popup/uni-popup.js.map
  52. 1 0
      virgo.wzfrontend/yui_wx/unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uni-transition/components/uni-transition/uni-transition.js.map
  53. 1 0
      virgo.wzfrontend/yui_wx/unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uv-switch/components/uv-switch/uv-switch.js.map
  54. 87 48
      virgo.wzfrontend/yui_wx/unpackage/dist/dev/mp-weixin/common/main.wxss
  55. 1 1
      virgo.wzfrontend/yui_wx/unpackage/dist/dev/mp-weixin/common/runtime.js
  56. 7 5
      virgo.wzfrontend/yui_wx/unpackage/dist/dev/mp-weixin/common/vendor.js
  57. 1 1
      virgo.wzfrontend/yui_wx/unpackage/dist/dev/mp-weixin/components/common/projectDropDown.js
  58. 1 1
      virgo.wzfrontend/yui_wx/unpackage/dist/dev/mp-weixin/components/common/upload.js
  59. 1 1
      virgo.wzfrontend/yui_wx/unpackage/dist/dev/mp-weixin/components/device/aircondition.js
  60. 4 1
      virgo.wzfrontend/yui_wx/unpackage/dist/dev/mp-weixin/components/device/aircondition.json
  61. 1 1
      virgo.wzfrontend/yui_wx/unpackage/dist/dev/mp-weixin/components/device/aircondition.wxml
  62. 173 2
      virgo.wzfrontend/yui_wx/unpackage/dist/dev/mp-weixin/components/device/aircondition.wxss
  63. 11 0
      virgo.wzfrontend/yui_wx/unpackage/dist/dev/mp-weixin/components/device/lighting.js
  64. 6 0
      virgo.wzfrontend/yui_wx/unpackage/dist/dev/mp-weixin/components/device/lighting.json
  65. 1 0
      virgo.wzfrontend/yui_wx/unpackage/dist/dev/mp-weixin/components/device/lighting.wxml
  66. 39 0
      virgo.wzfrontend/yui_wx/unpackage/dist/dev/mp-weixin/components/device/lighting.wxss
  67. 11 0
      virgo.wzfrontend/yui_wx/unpackage/dist/dev/mp-weixin/components/device/meter.js
  68. 7 0
      virgo.wzfrontend/yui_wx/unpackage/dist/dev/mp-weixin/components/device/meter.json
  69. 1 0
      virgo.wzfrontend/yui_wx/unpackage/dist/dev/mp-weixin/components/device/meter.wxml
  70. 91 0
      virgo.wzfrontend/yui_wx/unpackage/dist/dev/mp-weixin/components/device/meter.wxss
  71. 11 0
      virgo.wzfrontend/yui_wx/unpackage/dist/dev/mp-weixin/components/device/uEchart.js
  72. 6 0
      virgo.wzfrontend/yui_wx/unpackage/dist/dev/mp-weixin/components/device/uEchart.json
  73. 1 0
      virgo.wzfrontend/yui_wx/unpackage/dist/dev/mp-weixin/components/device/uEchart.wxml
  74. 68 0
      virgo.wzfrontend/yui_wx/unpackage/dist/dev/mp-weixin/components/device/uEchart.wxss
  75. 11 0
      virgo.wzfrontend/yui_wx/unpackage/dist/dev/mp-weixin/components/device/water.js
  76. 7 0
      virgo.wzfrontend/yui_wx/unpackage/dist/dev/mp-weixin/components/device/water.json
  77. 1 0
      virgo.wzfrontend/yui_wx/unpackage/dist/dev/mp-weixin/components/device/water.wxml
  78. 91 0
      virgo.wzfrontend/yui_wx/unpackage/dist/dev/mp-weixin/components/device/water.wxss
  79. 2 2
      virgo.wzfrontend/yui_wx/unpackage/dist/dev/mp-weixin/components/uni-mall-head/uni-mall-head.js
  80. 1 1
      virgo.wzfrontend/yui_wx/unpackage/dist/dev/mp-weixin/components/uni-mall-list/uni-mall-list.js
  81. 1 1
      virgo.wzfrontend/yui_wx/unpackage/dist/dev/mp-weixin/pages/deviceDetail/deviceDetail.js
  82. 4 1
      virgo.wzfrontend/yui_wx/unpackage/dist/dev/mp-weixin/pages/deviceDetail/deviceDetail.json
  83. 1 1
      virgo.wzfrontend/yui_wx/unpackage/dist/dev/mp-weixin/pages/deviceDetail/deviceDetail.wxml
  84. 1 0
      virgo.wzfrontend/yui_wx/unpackage/dist/dev/mp-weixin/pages/deviceDetail/deviceDetail.wxss
  85. 1 1
      virgo.wzfrontend/yui_wx/unpackage/dist/dev/mp-weixin/pages/deviceList/deviceList.js
  86. 1 0
      virgo.wzfrontend/yui_wx/unpackage/dist/dev/mp-weixin/pages/monitorList/monitorList.wxss
  87. 241 188
      virgo.wzfrontend/yui_wx/unpackage/dist/dev/mp-weixin/static/font/iconfont.css
  88. BIN
      virgo.wzfrontend/yui_wx/unpackage/dist/dev/mp-weixin/static/font/iconfont.ttf
  89. 2 2
      virgo.wzfrontend/yui_wx/unpackage/dist/dev/mp-weixin/uni_modules/lime-slider/components/l-slider/l-slider.js
  90. 11 0
      virgo.wzfrontend/yui_wx/unpackage/dist/dev/mp-weixin/uni_modules/qiun-data-charts/components/qiun-data-charts/qiun-data-charts.js
  91. 7 0
      virgo.wzfrontend/yui_wx/unpackage/dist/dev/mp-weixin/uni_modules/qiun-data-charts/components/qiun-data-charts/qiun-data-charts.json
  92. 1 0
      virgo.wzfrontend/yui_wx/unpackage/dist/dev/mp-weixin/uni_modules/qiun-data-charts/components/qiun-data-charts/qiun-data-charts.wxml
  93. 10 0
      virgo.wzfrontend/yui_wx/unpackage/dist/dev/mp-weixin/uni_modules/qiun-data-charts/components/qiun-data-charts/qiun-data-charts.wxss
  94. 11 0
      virgo.wzfrontend/yui_wx/unpackage/dist/dev/mp-weixin/uni_modules/qiun-data-charts/components/qiun-error/qiun-error.js
  95. 4 0
      virgo.wzfrontend/yui_wx/unpackage/dist/dev/mp-weixin/uni_modules/qiun-data-charts/components/qiun-error/qiun-error.json
  96. 1 0
      virgo.wzfrontend/yui_wx/unpackage/dist/dev/mp-weixin/uni_modules/qiun-data-charts/components/qiun-error/qiun-error.wxml
  97. 22 0
      virgo.wzfrontend/yui_wx/unpackage/dist/dev/mp-weixin/uni_modules/qiun-data-charts/components/qiun-error/qiun-error.wxss
  98. 11 0
      virgo.wzfrontend/yui_wx/unpackage/dist/dev/mp-weixin/uni_modules/qiun-data-charts/components/qiun-loading/loading1.js
  99. 4 0
      virgo.wzfrontend/yui_wx/unpackage/dist/dev/mp-weixin/uni_modules/qiun-data-charts/components/qiun-loading/loading1.json
  100. 0 0
      virgo.wzfrontend/yui_wx/unpackage/dist/dev/mp-weixin/uni_modules/qiun-data-charts/components/qiun-loading/loading1.wxml

+ 326 - 13
virgo.wzfrontend/yui_wx/components/device/aircondition.vue

@@ -1,31 +1,136 @@
 <template>
 	<view class="aircondition-box">
-		<view class="aircondition-off">
-			<view class="">
-				<view class="aircondition-reduce">
-
+		<view class="aircondition-control">
+			<view class="aircondition-toogle">
+				<view class="toogle-icon-text">
+					<view class="toogle-icon">
+						<uni-icons type="icon-fentikongtiaokongtiaojieneng" custom-prefix="iconfont" color="#fff"
+							size="26">
+						</uni-icons>
+					</view>
+					<text class="text">{{title}}</text>
 				</view>
-				<view class="">{{temp}}</view>
-				<view class="aircondition-add">
-
+				<uni-icons type="icon-caozuo-kaiguan" custom-prefix="iconfont" size="40"
+					:color="!isOpen?'#c3c3c3':'#08979c'" @click="isOpen = !isOpen">
+				</uni-icons>
+			</view>
+			<view class="aircondition-show">
+				<view class="aircondition-reduce aircondition-icon">
+					<uni-icons type="icon-jian" custom-prefix="iconfont" color="#8c8c8c"></uni-icons>
+				</view>
+				<view class="aircondition-label">
+					<view class="value">{{temp}}</view>
+					<view class="unit">°C</view>
+				</view>
+				<view class="aircondition-add aircondition-icon">
+					<uni-icons type="plusempty" color="#8c8c8c"></uni-icons>
 				</view>
 			</view>
-			<l-slider v-model="temp" @change="sliding" :min="16" :max="30" :step="0.5"></l-slider>
+			<l-slider v-model="temp" :min="16" :max="30" :step="0.5"></l-slider>
 		</view>
+		<view class="aircondition-model">
+			<view class="box" @click="openPopup('model')">
+				<view class="content">
+					<view class="title">模式</view>
+					<view class="sub-title">制热</view>
+				</view>
+				<uni-icons type="icon-zhongtumoshi" custom-prefix="iconfont" color="#bcbcbc" size="26">
+				</uni-icons>
+			</view>
+			<view class="bg"></view>
+			<view class="box" @click="openPopup('windSpeed')">
+				<view class="content">
+					<view class="title">风速</view>
+					<view class="sub-title">自动</view>
+				</view>
+				<uni-icons type="icon-fengsu" custom-prefix="iconfont" color="#bcbcbc" size="26">
+				</uni-icons>
+			</view>
+		</view>
+		<uni-popup ref="popup">
+			<view class="popup-content">
+				<view class="popup-operation">
+					<view class="model-popup" v-if="type == 'model'">
+						<view class="model-popup-item active">
+							<uni-icons type="icon-zidong" custom-prefix="iconfont" color="#08979c" size="26">
+							</uni-icons>
+							<view class="model-popup-label">自动</view>
+						</view>
+						<view class="model-popup-item">
+							<uni-icons type="icon-zhileng" custom-prefix="iconfont" color="#8c8c8c" size="26">
+							</uni-icons>
+							<view class="model-popup-label">制冷</view>
+						</view>
+						<view class="model-popup-item">
+							<uni-icons type="icon-zhire" custom-prefix="iconfont" color="#8c8c8c" size="26">
+							</uni-icons>
+							<view class="model-popup-label">制热</view>
+						</view>
+						<view class="model-popup-item">
+							<uni-icons type="icon-chushi" custom-prefix="iconfont" color="#8c8c8c" size="26">
+							</uni-icons>
+							<view class="model-popup-label">抽湿</view>
+						</view>
+						<view class="model-popup-item">
+							<uni-icons type="icon-songfeng" custom-prefix="iconfont" color="#8c8c8c" size="26">
+							</uni-icons>
+							<view class="model-popup-label">送风</view>
+						</view>
+					</view>
+					<view class="wind-popup" v-if="type == 'windSpeed'">
+						<view class="wind-title">
+							<view class="big-title">风速</view>
+							<view class="line"></view>
+							<view class="label">
+								<text v-if="autoWind">自动风</text>
+								<text v-else>{{windSpeed}}%</text>
+							</view>
+						</view>
+						<view class="wind-auto">
+							<uni-icons type="icon-zidong" custom-prefix="iconfont" color="#1f1f1f" size="26">
+							</uni-icons>
+							<view class="big-title">自动风</view>
+							<uv-switch v-model="autoWind" size="40rpx"></uv-switch>
+						</view>
+						<view class="wind-hand">
+							<l-slider v-model="windSpeed" :min="1" :max="100" :step="1"></l-slider>
+						</view>
+						<view class="hand-text">
+							<text class="number1">1%</text>
+							<text class="number20">20%</text>
+							<text class="number40">40%</text>
+							<text class="number60">60%</text>
+							<text class="number80">80%</text>
+							<text class="number100">100%</text>
+						</view>
+					</view>
+				</view>
+				<view class="popup-close" @click="closePopup">关闭</view>
+			</view>
+		</uni-popup>
 	</view>
 </template>
 
 <script>
 	export default {
+		props: ['title'],
 		data() {
 			return {
-				temp: 26
+				isOpen: true,
+				temp: 26,
+				type: '',
+				autoWind: true,
+				windSpeed: 20
 			}
 		},
 		mounted() {},
 		methods: {
-			sliding(item) {
-				console.log(item);
+			openPopup(type) {
+				this.type = type;
+				this.$refs.popup.open('bottom');
+			},
+			closePopup() {
+				this.$refs.popup.close();
 			}
 		}
 	}
@@ -35,11 +140,219 @@
 	.aircondition-box {
 		padding: 30rpx;
 
-		.aircondition-off {
-			padding: 20rpx;
+		.popup-content {
+			border-radius: 16rpx 16rpx 0 0;
+			background: #fff;
+
+			.popup-operation {
+				padding: 30rpx 0;
+			}
+
+			.model-popup {
+				display: flex;
+
+				.model-popup-item {
+					flex: 1;
+					text-align: center;
+
+					&.active {
+						color: $uni-primary;
+					}
+				}
+
+				.model-popup-label {
+					font-size: 24rpx;
+					margin-top: 10rpx;
+					font-weight: 300;
+				}
+			}
+
+			.wind-popup {
+				padding: 0 30rpx;
+				box-sizing: border-box;
+
+				.wind-title {
+					display: flex;
+					align-items: center;
+				}
+
+				.big-title {
+					font-size: 32rpx
+				}
+
+				.line {
+					width: 2rpx;
+					height: 26rpx;
+					background: $uni-background-color;
+					margin: 0 16rpx;
+				}
+
+				.wind-auto {
+					padding: 20rpx 30rpx;
+					border-radius: 26rpx;
+					box-shadow: 0px 1px 12px rgba(3, 3, 3, 0.08);
+					display: flex;
+					align-items: center;
+					margin: 30rpx 0;
+
+					.big-title {
+						flex: 1;
+						margin-left: 20rpx;
+					}
+				}
+
+				.wind-hand {
+					padding-top: 20rpx;
+				}
+
+				.hand-text {
+					position: relative;
+					color: $uni-secondary-color;
+					font-size: 24rpx;
+					height: 34rpx;
+					margin-top: 20rpx;
+
+					.number20 {
+						position: absolute;
+						left: 20%;
+						margin-left: -26rpx;
+					}
+
+					.number40 {
+						position: absolute;
+						left: 40%;
+						margin-left: -26rpx;
+					}
+
+					.number60 {
+						position: absolute;
+						left: 60%;
+						margin-left: -26rpx;
+					}
+
+					.number80 {
+						position: absolute;
+						left: 80%;
+						margin-left: -26rpx;
+					}
+
+					.number100 {
+						position: absolute;
+						left: 100%;
+						margin-left: -52rpx;
+					}
+				}
+			}
+
+			.popup-close {
+				border-top: 20rpx solid $uni-background-color;
+				padding: 24rpx 0;
+				text-align: center;
+				color: $uni-secondary-color;
+			}
+		}
+
+		.aircondition-control {
+			padding: 30rpx;
 			background: #fff;
 			border-radius: 16rpx;
 			box-shadow: 0px 1px 12px rgba(3, 3, 3, 0.08);
 		}
+
+		.aircondition-toogle {
+			display: flex;
+			justify-content: space-between;
+			margin-bottom: 40rpx;
+		}
+
+		.toogle-icon-text {
+			display: flex;
+			align-items: center;
+
+			.text {
+				font-size: 36rpx;
+				margin-left: 20rpx;
+			}
+		}
+
+		.toogle-icon {
+			width: 80rpx;
+			height: 80rpx;
+			background: $uni-primary;
+			text-align: center;
+			line-height: 80rpx;
+			border-radius: 8px;
+		}
+
+		.aircondition-show {
+			display: flex;
+			align-items: center;
+			justify-content: center;
+			padding: 0 40rpx 30rpx 40rpx;
+		}
+
+		.aircondition-icon {
+			width: 60rpx;
+			height: 60rpx;
+			background-color: $uni-background-color;
+			text-align: center;
+			line-height: 60rpx;
+			border-radius: 50%;
+		}
+
+		.aircondition-label {
+			flex: 1;
+			width: 0;
+			display: flex;
+			align-items: flex-end;
+			justify-content: center;
+			color: $uni-base-color;
+
+			.value {
+				font-size: 80rpx;
+				height: 100rpx;
+			}
+
+			.unit {
+				font-size: 40rpx;
+			}
+		}
+
+		.aircondition-model {
+			display: flex;
+			margin-top: 30rpx;
+
+			.box {
+				flex: 1;
+				background: #fff;
+				border-radius: 16rpx;
+				box-shadow: 0px 1px 12px rgba(3, 3, 3, 0.08);
+				height: 160rpx;
+				display: flex;
+				align-items: center;
+				justify-content: space-between;
+				padding: 0 60rpx 0 30rpx;
+				box-sizing: border-box;
+
+				.content {
+					.title {
+						font-size: 32rpx;
+						font-weight: 300;
+					}
+
+					.sub-title {
+						font-size: 24rpx;
+						color: $uni-secondary-color;
+						font-weight: 200;
+						margin-top: 10rpx;
+					}
+				}
+			}
+
+			.bg {
+				width: 30rpx;
+			}
+		}
+
 	}
 </style>

+ 64 - 0
virgo.wzfrontend/yui_wx/components/device/lighting.vue

@@ -0,0 +1,64 @@
+<template>
+	<view class="lighting-index">
+		<view class="lighting-box" @click="isOpen = !isOpen">
+			<view class="lighting-icon">
+				<uni-icons type="icon-diandeng" custom-prefix="iconfont" size="60" color="#a1a1a1"></uni-icons>
+			</view>
+			<view class="lighting-content">
+				<uni-icons type="icon-caozuo-kaiguan" custom-prefix="iconfont" size="40"
+					:color="isOpen ? '#08979c' : '#cccccc'"></uni-icons>
+				<view class="lighting-title">{{title}}</view>
+				<view class="lighting-space">{{space}}</view>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		props: ['title', 'space'],
+		data() {
+			return {
+				isOpen: false
+			}
+		},
+	}
+</script>
+
+<style lang="scss">
+	.lighting-index {
+		padding: 60rpx;
+
+		.lighting-box {
+			background: #fff;
+			width: 560rpx;
+			height: 560rpx;
+			margin: 0 auto;
+			background: linear-gradient(to bottom, #dcdee1, #f2f2f2);
+			box-shadow: 0px 5px 10px rgba(3, 3, 3, 0.08);
+			display: flex;
+			flex-direction: column;
+
+			.lighting-icon {
+				flex: 1;
+				text-align: center;
+				padding-top: 40rpx;
+			}
+
+			.lighting-content {
+				text-align: center;
+				padding-bottom: 30rpx;
+				color: $uni-secondary-color;
+				font-weight: 300;
+			}
+
+			.lighting-title {
+				margin: 30rpx 0 15rpx 0;
+			}
+
+			.lighting-space {
+				font-size: 12px;
+			}
+		}
+	}
+</style>

+ 180 - 0
virgo.wzfrontend/yui_wx/components/device/meter.vue

@@ -0,0 +1,180 @@
+<template>
+	<view class="meter-index">
+		<view class="meter-box">
+			<view class="title">{{title}}</view>
+			<view class="sub-title">{{space}}</view>
+			<view class="meter-box-content">
+				<view class="meter-box-list">
+					<view class="content-item">
+						<view class="content-item-title">
+							<view class="content-item-icon">
+								<uni-icons type="icon-jinriyongdianliang" custom-prefix="iconfont" size="26"
+									color="#577ff5">
+								</uni-icons>
+							</view>
+							<view class="label">今日用电量</view>
+						</view>
+						<view class="content-item-article">
+							<text class="number">6.86</text>
+							<text class="unit">kwh</text>
+						</view>
+					</view>
+					<view class="content-item">
+						<view class="content-item-title">
+							<view class="content-item-icon">
+								<uni-icons type="icon-zongyongdianliang" custom-prefix="iconfont" size="26"
+									color="#577ff5">
+								</uni-icons>
+							</view>
+							<view class="label">当月用电量</view>
+						</view>
+						<view class="content-item-article">
+							<text class="number">122.23</text>
+							<text class="unit">kwh</text>
+						</view>
+					</view>
+					<view class="content-item">
+						<view class="content-item-title">
+							<view class="content-item-icon">
+								<uni-icons type="icon-dianchidianliang" custom-prefix="iconfont" size="18"
+									color="#577ff5">
+								</uni-icons>
+							</view>
+							<view class="label">电池电量</view>
+						</view>
+						<view class="content-item-article">
+							<text class="number">98</text>
+							<text class="unit">%</text>
+						</view>
+					</view>
+				</view>
+				<image class="meter-image"
+					src="https://file-node.oss-cn-shanghai.aliyuncs.com/youji/9819ac743e2e44f58dbd58787bee2848">
+				</image>
+			</view>
+		</view>
+		<view class="meter-charts">
+			<view class="meter-chart-title">历史用电量</view>
+			<view class="meter-chart-box">
+				<u-echart tips="用电量"></u-echart>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	import uEchart from './uEchart.vue'
+	export default {
+		props: ['title', 'space'],
+		data() {
+			return {
+
+			}
+		},
+		components: {
+			uEchart
+		},
+	}
+</script>
+
+<style lang="scss">
+	.meter-index {
+		padding: 30rpx;
+
+		.meter-box {
+			background: #fff;
+			padding: 30rpx;
+			border-radius: 16rpx;
+			box-shadow: 0px 1px 12px rgba(3, 3, 3, 0.08);
+
+			.title {
+				font-size: 40rpx;
+				font-weight: 500;
+			}
+
+			.sub-title {
+				font-size: 24rpx;
+				color: $uni-secondary-color;
+				font-weight: 200;
+			}
+
+			.meter-box-content {
+				display: flex;
+				align-items: center;
+				padding: 80rpx 0 40rpx 0;
+			}
+
+			.meter-box-list {
+				flex: 1;
+				width: 0;
+				overflow: hidden;
+			}
+
+			.content-item {
+				margin-bottom: 20rpx;
+			}
+
+			.content-item-title {
+				display: flex;
+				align-items: center;
+
+				.content-item-icon {
+					width: 60rpx;
+					height: 60rpx;
+					text-align: center;
+					line-height: 60rpx;
+				}
+
+				.label {
+					font-size: 24rpx;
+					font-weight: 300;
+					margin-left: 10rpx;
+				}
+			}
+
+			.content-item-article {
+				display: flex;
+				align-items: flex-end;
+				padding-left: 70rpx;
+				padding-top: 10rpx;
+
+				.number {
+					font-size: 40rpx;
+					line-height: 40rpx;
+				}
+
+				.unit {
+					color: $uni-secondary-color;
+					margin-left: 8rpx;
+					font-size: 24rpx;
+				}
+
+			}
+
+			.meter-image {
+				width: 200rpx;
+				height: 200rpx;
+				margin-right: 40rpx;
+			}
+		}
+
+		.meter-charts {
+			margin-top: 30rpx;
+			background: #fff;
+			padding: 30rpx;
+			border-radius: 16rpx;
+			box-shadow: 0px 1px 12px rgba(3, 3, 3, 0.08);
+
+			.meter-chart-title {
+				padding-bottom: 30rpx;
+				font-size: 32rpx;
+				font-weight: 500;
+			}
+
+			.meter-chart-box {
+				width: 100%;
+				height: 300rpx;
+			}
+		}
+	}
+</style>

+ 68 - 0
virgo.wzfrontend/yui_wx/components/device/uEchart.vue

@@ -0,0 +1,68 @@
+<template>
+	<view class="charts-box">
+		<qiun-data-charts type="line" :opts="opts" :chartData="chartData" :canvas2d="true"
+			canvasId="pPSnGQMxUSQgItJRPiXgRJePqmRONHhG"></qiun-data-charts>
+	</view>
+</template>
+
+<script>
+	export default {
+		props: ['tips'],
+		data() {
+			return {
+				chartData: {},
+				opts: {
+					color: ["#1890FF", "#91CB74", "#FAC858", "#EE6666", "#73C0DE", "#3CA272", "#FC8452", "#9A60B4",
+						"#ea7ccc"
+					],
+					padding: [10, 0, 0, 0],
+					enableScroll: false,
+					legend: {
+						show: false
+					},
+					xAxis: {
+						disableGrid: true
+					},
+					yAxis: {
+						gridType: "dash",
+						dashLength: 2
+					},
+					extra: {
+						line: {
+							type: "straight",
+							width: 2,
+							activeType: "hollow"
+						}
+					}
+				}
+			};
+		},
+		onReady() {
+			this.getServerData();
+		},
+		methods: {
+			getServerData() {
+				//模拟从服务器获取数据时的延时
+				setTimeout(() => {
+					//模拟服务器返回数据,如果数据格式和标准格式不同,需自行按下面的格式拼接
+					let res = {
+						categories: ["1月", "2月", "3月", "4月", "5月", "6月"],
+						series: [{
+							name: this.tips,
+							data: [35, 8, 25, 37, 4, 20]
+						}]
+					};
+					this.chartData = JSON.parse(JSON.stringify(res));
+				}, 500);
+			},
+		}
+	};
+</script>
+
+<style scoped>
+	/* 请根据实际需求修改父元素尺寸,组件自动识别宽高 */
+	.charts-box {
+		width: 100%;
+		height: 100%;
+	}
+</style>

+ 179 - 0
virgo.wzfrontend/yui_wx/components/device/water.vue

@@ -0,0 +1,179 @@
+<template>
+	<view class="meter-index">
+		<view class="meter-box">
+			<view class="title">{{title}}</view>
+			<view class="sub-title">{{space}}</view>
+			<view class="meter-box-content">
+				<view class="meter-box-list">
+					<view class="content-item">
+						<view class="content-item-title">
+							<view class="content-item-icon">
+								<uni-icons type="icon-yongshuiliang1" custom-prefix="iconfont" size="20"
+									color="#577ff5">
+								</uni-icons>
+							</view>
+							<view class="label">今日用水量</view>
+						</view>
+						<view class="content-item-article">
+							<text class="number">6.86</text>
+							<text class="unit">t</text>
+						</view>
+					</view>
+					<view class="content-item">
+						<view class="content-item-title">
+							<view class="content-item-icon">
+								<uni-icons type="icon-yongshuiliang" custom-prefix="iconfont" size="22" color="#577ff5">
+								</uni-icons>
+							</view>
+							<view class="label">当月用水量</view>
+						</view>
+						<view class="content-item-article">
+							<text class="number">122.23</text>
+							<text class="unit">t</text>
+						</view>
+					</view>
+					<view class="content-item">
+						<view class="content-item-title">
+							<view class="content-item-icon">
+								<uni-icons type="icon-dianchidianliang" custom-prefix="iconfont" size="18"
+									color="#577ff5">
+								</uni-icons>
+							</view>
+							<view class="label">电池电量</view>
+						</view>
+						<view class="content-item-article">
+							<text class="number">10</text>
+							<text class="unit">%</text>
+						</view>
+					</view>
+				</view>
+				<image class="meter-image"
+					src="https://file-node.oss-cn-shanghai.aliyuncs.com/youji/f64e4608c64049dbae07d9eec7d835ac">
+				</image>
+			</view>
+		</view>
+		<view class="meter-charts">
+			<view class="meter-chart-title">历史用电量</view>
+			<view class="meter-chart-box">
+				<u-echart tips="用水量"></u-echart>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	import uEchart from './uEchart.vue'
+	export default {
+		props: ['title', 'space'],
+		data() {
+			return {
+
+			}
+		},
+		components: {
+			uEchart
+		},
+	}
+</script>
+
+<style lang="scss">
+	.meter-index {
+		padding: 30rpx;
+
+		.meter-box {
+			background: #fff;
+			padding: 30rpx;
+			border-radius: 16rpx;
+			box-shadow: 0px 1px 12px rgba(3, 3, 3, 0.08);
+
+			.title {
+				font-size: 40rpx;
+				font-weight: 500;
+			}
+
+			.sub-title {
+				font-size: 24rpx;
+				color: $uni-secondary-color;
+				font-weight: 200;
+			}
+
+			.meter-box-content {
+				display: flex;
+				align-items: center;
+				padding: 80rpx 0 40rpx 0;
+			}
+
+			.meter-box-list {
+				flex: 1;
+				width: 0;
+				overflow: hidden;
+			}
+
+			.content-item {
+				margin-bottom: 20rpx;
+			}
+
+			.content-item-title {
+				display: flex;
+				align-items: center;
+
+				.content-item-icon {
+					width: 60rpx;
+					height: 60rpx;
+					text-align: center;
+					line-height: 60rpx;
+				}
+
+				.label {
+					font-size: 24rpx;
+					font-weight: 300;
+					margin-left: 10rpx;
+				}
+			}
+
+			.content-item-article {
+				display: flex;
+				align-items: flex-end;
+				padding-left: 70rpx;
+				padding-top: 10rpx;
+
+				.number {
+					font-size: 40rpx;
+					line-height: 40rpx;
+				}
+
+				.unit {
+					color: $uni-secondary-color;
+					margin-left: 8rpx;
+					font-size: 24rpx;
+				}
+
+			}
+
+			.meter-image {
+				width: 200rpx;
+				height: 200rpx;
+				margin-right: 40rpx;
+			}
+		}
+
+		.meter-charts {
+			margin-top: 30rpx;
+			background: #fff;
+			padding: 30rpx;
+			border-radius: 16rpx;
+			box-shadow: 0px 1px 12px rgba(3, 3, 3, 0.08);
+
+			.meter-chart-title {
+				padding-bottom: 30rpx;
+				font-size: 32rpx;
+				font-weight: 500;
+			}
+
+			.meter-chart-box {
+				width: 100%;
+				height: 300rpx;
+			}
+		}
+	}
+</style>

+ 16 - 3
virgo.wzfrontend/yui_wx/pages/deviceDetail/deviceDetail.vue

@@ -1,18 +1,28 @@
 <template>
 	<view class="device-detail-box">
-		<aircondition v-if="type === 'aircondition'"></aircondition>
+		<aircondition v-if="type === 'aircondition'" :title="title"></aircondition>
+		<lighting v-else-if="type === 'lighting'" :title="title" :space="space"></lighting>
+		<meter-show v-else-if="type === 'meter'" :title="title" :space="space"></meter-show>
+		<water v-else-if="type === 'water'" :title="title" :space="space"></water>
 	</view>
 </template>
 
 <script>
 	import aircondition from '@/components/device/aircondition';
+	import lighting from '@/components/device/lighting';
+	import meterShow from '@/components/device/meter';
+	import water from '@/components/device/water';
 	export default {
 		data() {
 			return {
-				type: ''
+				type: '',
+				title: '',
+				space: ''
 			}
 		},
 		onLoad(body) {
+			this.title = body.name;
+			this.space = body.space || '';
 			uni.setNavigationBarTitle({
 				title: body.name
 			});
@@ -22,7 +32,10 @@
 
 		},
 		components: {
-			aircondition
+			aircondition,
+			lighting,
+			meterShow,
+			water
 		},
 	}
 </script>

+ 3 - 1
virgo.wzfrontend/yui_wx/pages/deviceList/deviceList.vue

@@ -51,7 +51,9 @@
 				console.log(e);
 			},
 			clickDevice(item) {
-				this.$navigateTo(`/pages/deviceDetail/deviceDetail?id=${item.id}&name=${item.name}&type=${item.type}`);
+				this.$navigateTo(
+					`/pages/deviceDetail/deviceDetail?id=${item.id}&name=${item.name}&type=${item.type}&space=${item.positionName}`
+				);
 			}
 		},
 		components: {

+ 241 - 188
virgo.wzfrontend/yui_wx/static/font/iconfont.css

@@ -11,191 +11,244 @@
 	-webkit-font-smoothing: antialiased;
 	-moz-osx-font-smoothing: grayscale;
 }
-
-.icon-bayonet-camera:before {
-	content: "\e964";
-}
-
-.icon-huanjingjiance:before {
-	content: "\e623";
-}
-
-.icon-menjinjilu:before {
-	content: "\e60a";
-}
-
-.icon-caozuo-kaiguan:before {
-	content: "\e609";
-}
-
-.icon-kongtiao:before {
-	content: "\e651";
-}
-
-.icon-shuibiao:before {
-	content: "\e620";
-}
-
-.icon-dianbiao:before {
-	content: "\e625";
-}
-
-.icon-diandeng:before {
-	content: "\e6f8";
-}
-
-.icon-wenjian:before {
-	content: "\e600";
-}
-
-.icon-bianjiwenjian:before {
-	content: "\e601";
-}
-
-.icon-dengdaiwenjian:before {
-	content: "\e602";
-}
-
-.icon-shanchuwenjian:before {
-	content: "\e603";
-}
-
-.icon-jianqiewenjian:before {
-	content: "\e604";
-}
-
-.icon-fuzhiwenjian:before {
-	content: "\e605";
-}
-
-.icon-sousuowenjian:before {
-	content: "\e606";
-}
-
-.icon-dingdan:before {
-	content: "\e607";
-}
-
-.icon-jian:before {
-	content: "\e643";
-}
-
-.icon-dui:before {
-	content: "\e63f";
-}
-
-.icon-jigoukehudaishenheshuliang:before {
-	content: "\e65f";
-}
-
-.icon-zulinguihuan_fu:before {
-	content: "\e63d";
-}
-
-.icon-baozhengjin:before {
-	content: "\e622";
-}
-
-.icon-hetongwendang:before {
-	content: "\e635";
-}
-
-.icon-zidingyi:before {
-	content: "\e69f";
-}
-
-.icon-zhinajin:before {
-	content: "\e70b";
-}
-
-.icon-a-fujian1:before {
-	content: "\e60d";
-}
-
-.icon-integralrecord:before {
-	content: "\e732";
-}
-
-.icon-anli:before {
-	content: "\e67b";
-}
-
-.icon-weixiugongdan:before {
-	content: "\e657";
-}
-
-.icon-hetongguanli:before {
-	content: "\e682";
-}
-
-.icon-yuemingxi:before {
-	content: "\e632";
-}
-
-.icon-jinribaojie:before {
-	content: "\e813";
-}
-
-.icon-yunwei-jiancebaogao:before {
-	content: "\e61a";
-}
-
-.icon-app-hetongguanli-hetongfapiao:before {
-	content: "\e69a";
-}
-
-.icon-jiesuanguanli:before {
-	content: "\e6dc";
-}
-
-.icon-gerenhetongchaxun:before {
-	content: "\e681";
-}
-
-.icon-wodeshoucangshixin:before {
-	content: "\e62c";
-}
-
-.icon-wodekehu:before {
-	content: "\e608";
-}
-
-.icon-wodexiazaizhongxin:before {
-	content: "\e67d";
-}
-
-.icon-kefuzhongxin:before {
-	content: "\e621";
-}
-
-.icon-wodegongsi-gaoliang:before {
-	content: "\e676";
-}
-
-.icon-gouwu:before {
-	content: "\e7ed";
-}
-
-.icon-zhishiku:before {
-	content: "\e684";
-}
-
-.icon-tubiao_-:before {
-	content: "\e6ff";
-}
-
-.icon-wifi:before {
-	content: "\ec81";
-}
-
-.icon-yunzhineng:before {
-	content: "\e696";
-}
-
-.icon-jiaotong:before {
-	content: "\e634";
-}
-
-.icon-gongyuan:before {
-	content: "\e617";
-}
+
+.icon-yongshuiliang:before {
+  content: "\e627";
+}
+
+.icon-yongshuiliang1:before {
+  content: "\e624";
+}
+
+.icon-zongyongdianliang:before {
+  content: "\e62d";
+}
+
+.icon-jinriyongdianliang:before {
+  content: "\e62e";
+}
+
+.icon-dianchidianliang:before {
+  content: "\e60c";
+}
+
+.icon-songfeng:before {
+  content: "\e639";
+}
+
+.icon-zhileng:before {
+  content: "\e63b";
+}
+
+.icon-zhire:before {
+  content: "\e63c";
+}
+
+.icon-chushi:before {
+  content: "\e63e";
+}
+
+.icon-zidong:before {
+  content: "\e640";
+}
+
+.icon-zhongtumoshi:before {
+  content: "\e60b";
+}
+
+.icon-fengsu:before {
+  content: "\e64d";
+}
+
+.icon-fentikongtiaokongtiaojieneng:before {
+  content: "\e644";
+}
+
+.icon-bayonet-camera:before {
+  content: "\e964";
+}
+
+.icon-huanjingjiance:before {
+  content: "\e623";
+}
+
+.icon-menjinjilu:before {
+  content: "\e60a";
+}
+
+.icon-caozuo-kaiguan:before {
+  content: "\e609";
+}
+
+.icon-kongtiao:before {
+  content: "\e651";
+}
+
+.icon-shuibiao:before {
+  content: "\e620";
+}
+
+.icon-dianbiao:before {
+  content: "\e625";
+}
+
+.icon-diandeng:before {
+  content: "\e6f8";
+}
+
+.icon-wenjian:before {
+  content: "\e600";
+}
+
+.icon-bianjiwenjian:before {
+  content: "\e601";
+}
+
+.icon-dengdaiwenjian:before {
+  content: "\e602";
+}
+
+.icon-shanchuwenjian:before {
+  content: "\e603";
+}
+
+.icon-jianqiewenjian:before {
+  content: "\e604";
+}
+
+.icon-fuzhiwenjian:before {
+  content: "\e605";
+}
+
+.icon-sousuowenjian:before {
+  content: "\e606";
+}
+
+.icon-dingdan:before {
+  content: "\e607";
+}
+
+.icon-jian:before {
+  content: "\e643";
+}
+
+.icon-dui:before {
+  content: "\e63f";
+}
+
+.icon-jigoukehudaishenheshuliang:before {
+  content: "\e65f";
+}
+
+.icon-zulinguihuan_fu:before {
+  content: "\e63d";
+}
+
+.icon-baozhengjin:before {
+  content: "\e622";
+}
+
+.icon-hetongwendang:before {
+  content: "\e635";
+}
+
+.icon-zidingyi:before {
+  content: "\e69f";
+}
+
+.icon-zhinajin:before {
+  content: "\e70b";
+}
+
+.icon-a-fujian1:before {
+  content: "\e60d";
+}
+
+.icon-integralrecord:before {
+  content: "\e732";
+}
+
+.icon-anli:before {
+  content: "\e67b";
+}
+
+.icon-weixiugongdan:before {
+  content: "\e657";
+}
+
+.icon-hetongguanli:before {
+  content: "\e682";
+}
+
+.icon-yuemingxi:before {
+  content: "\e632";
+}
+
+.icon-jinribaojie:before {
+  content: "\e813";
+}
+
+.icon-yunwei-jiancebaogao:before {
+  content: "\e61a";
+}
+
+.icon-app-hetongguanli-hetongfapiao:before {
+  content: "\e69a";
+}
+
+.icon-jiesuanguanli:before {
+  content: "\e6dc";
+}
+
+.icon-gerenhetongchaxun:before {
+  content: "\e681";
+}
+
+.icon-wodeshoucangshixin:before {
+  content: "\e62c";
+}
+
+.icon-wodekehu:before {
+  content: "\e608";
+}
+
+.icon-wodexiazaizhongxin:before {
+  content: "\e67d";
+}
+
+.icon-kefuzhongxin:before {
+  content: "\e621";
+}
+
+.icon-wodegongsi-gaoliang:before {
+  content: "\e676";
+}
+
+.icon-gouwu:before {
+  content: "\e7ed";
+}
+
+.icon-zhishiku:before {
+  content: "\e684";
+}
+
+.icon-tubiao_-:before {
+  content: "\e6ff";
+}
+
+.icon-wifi:before {
+  content: "\ec81";
+}
+
+.icon-yunzhineng:before {
+  content: "\e696";
+}
+
+.icon-jiaotong:before {
+  content: "\e634";
+}
+
+.icon-gongyuan:before {
+  content: "\e617";
+}
+

BIN
virgo.wzfrontend/yui_wx/static/font/iconfont.ttf


+ 320 - 0
virgo.wzfrontend/yui_wx/uni_modules/qiun-data-charts/changelog.md

@@ -0,0 +1,320 @@
+## 2.5.0-20230101(2023-01-01)
+- 秋云图表组件 修改条件编译顺序,确保uniapp的cli方式的项目依赖不完整时可以正常显示
+- 秋云图表组件 恢复props属性directory的使用,以修复vue3项目中,开启echarts后,echarts目录识别错误的bug
+- uCharts.js 修复区域图、混合图只有一个数据时图表显示不正确的bug
+- uCharts.js 修复折线图、区域图中时间轴类别图表tooltip指示点显示不正确的bug
+- uCharts.js 修复x轴使用labelCount时,并且boundaryGap = 'justify' 并且关闭Y轴显示的时候,最后一个坐标值不显示的bug
+- uCharts.js 修复折线图只有一组数据时 ios16 渲染颜色不正确的bug
+- uCharts.js 修复玫瑰图半径显示不正确的bug
+- uCharts.js 柱状图、山峰图增加正负图功能,y轴网格如果需要显示0轴则由 min max 及 splitNumber 确定,后续版本优化自动显示0轴
+- uCharts.js 柱状图column增加 opts.extra.column.labelPosition,数据标签位置,有效值为 outside外部, insideTop内顶部, center内中间, bottom内底部
+- uCharts.js 雷达图radar增加 opts.extra.radar.labelShow,否显示各项标识文案是,默认true
+- uCharts.js 提示窗tooltip增加 opts.extra.tooltip.boxPadding,提示窗边框填充距离,默认3px
+- uCharts.js 提示窗tooltip增加 opts.extra.tooltip.fontSize,提示窗字体大小配置,默认13px
+- uCharts.js 提示窗tooltip增加 opts.extra.tooltip.lineHeight,提示窗文字行高,默认20px
+- uCharts.js 提示窗tooltip增加 opts.extra.tooltip.legendShow,是否显示左侧图例,默认true
+- uCharts.js 提示窗tooltip增加 opts.extra.tooltip.legendShape,图例形状,图例标识样式,有效值为 auto自动跟随图例, diamond◆, circle●, triangle▲, square■, rect▬, line-
+- uCharts.js 标记线markLine增加 opts.extra.markLine.labelFontSize,字体大小配置,默认13px
+- uCharts.js 标记线markLine增加 opts.extra.markLine.labelPadding,标签边框内填充距离,默认6px
+- uCharts.js 折线图line增加 opts.extra.line.linearType,渐变色类型,可选值 none关闭渐变色,custom 自定义渐变色。使用自定义渐变色时请赋值serie.linearColor作为颜色值
+- uCharts.js 折线图line增加 serie.linearColor,渐变色数组,格式为2维数组[起始位置,颜色值],例如[[0,'#0EE2F8'],[0.3,'#2BDCA8'],[0.6,'#1890FF'],[1,'#9A60B4']]
+- uCharts.js 折线图line增加 opts.extra.line.onShadow,是否开启折线阴影,开启后请赋值serie.setShadow阴影设置
+- uCharts.js 折线图line增加 serie.setShadow,阴影配置,格式为4位数组:[offsetX,offsetY,blur,color]
+- uCharts.js 折线图line增加 opts.extra.line.animation,动画效果方向,可选值为vertical 垂直动画效果,horizontal 水平动画效果
+- uCharts.js X轴xAxis增加 opts.xAxis.lineHeight,X轴字体行高,默认20px
+- uCharts.js X轴xAxis增加 opts.xAxis.marginTop,X轴文字距离轴线的距离,默认0px
+- uCharts.js X轴xAxis增加 opts.xAxis.title,当前X轴标题
+- uCharts.js X轴xAxis增加 opts.xAxis.titleFontSize,标题字体大小,默认13px
+- uCharts.js X轴xAxis增加 opts.xAxis.titleOffsetY,标题纵向偏移距离,负数为向上偏移,正数向下偏移
+- uCharts.js X轴xAxis增加 opts.xAxis.titleOffsetX,标题横向偏移距离,负数为向左偏移,正数向右偏移
+- uCharts.js X轴xAxis增加 opts.xAxis.titleFontColor,标题字体颜色,默认#666666
+
+## 报错TypeError: Cannot read properties of undefined (reading 'length')
+- 如果是uni-modules版本组件,请先登录HBuilderX账号;
+- 在HBuilderX中的manifest.json,点击重新获取uniapp的appid,或者删除appid重新粘贴,重新运行;
+- 如果是cli项目请使用码云上的非uniCloud版本组件;
+- 或者添加uniCloud的依赖;
+- 或者使用原生uCharts;
+## 2.4.5-20221130(2022-11-30)
+- uCharts.js 优化tooltip当文字很多变为左侧显示时,如果画布仍显显示不下,提示框错位置变为以左侧0位置起画
+- uCharts.js 折线图修复特殊情况下只有单点数据,并改变线宽后点变为圆形的bug
+- uCharts.js 修复Y轴disabled启用后无效并报错的bug
+- uCharts.js 修复仪表盘起始结束角度特殊情况下显示不正确的bug
+- uCharts.js 雷达图新增参数 opts.extra.radar.radius , 自定义雷达图半径
+- uCharts.js 折线图、区域图增加tooltip指示点,opts.extra.line.activeType/opts.extra.area.activeType,可选值"none"不启用激活指示点,"hollow"空心点模式,"solid"实心点模式
+## 2.4.4-20221102(2022-11-02)
+- 秋云图表组件 修复使用echarts时reload、reshow无法调用重新渲染的bug,[详见码云PR](https://gitee.com/uCharts/uCharts/pulls/40)
+- 秋云图表组件 修复使用echarts时,初始化时宽高不正确的bug,[详见码云PR](https://gitee.com/uCharts/uCharts/pulls/42)
+- 秋云图表组件 修复uniapp的h5使用history模式时,无法加载echarts的bug
+- 秋云图表组件 小程序端@complete、@scrollLeft、@scrollRight、@getTouchStart、@getTouchMove、@getTouchEnd事件增加opts参数传出,方便一些特殊需求的交互获取数据。
+
+- uCharts.js 修复calTooltipYAxisData方法内formatter格式化方法未与y轴方法同步的问题,[详见码云PR](https://gitee.com/uCharts/uCharts/pulls/43)
+- uCharts.js 地图新增参数opts.series[i].fillOpacity,以透明度方式来设置颜色过度效果,[详见码云PR](https://gitee.com/uCharts/uCharts/pulls/38)
+- uCharts.js 地图新增参数opts.extra.map.active,是否启用点击激活变色
+- uCharts.js 地图新增参数opts.extra.map.activeTextColor,是否启用点击激活变色
+- uCharts.js 地图新增渲染完成事件renderComplete
+- uCharts.js 漏斗图修复当部分数据相同时tooltip提示窗点击错误的bug
+- uCharts.js 漏斗图新增参数series.data[i].centerText 居中标签文案
+- uCharts.js 漏斗图新增参数series.data[i].centerTextSize 居中标签文案字体大小,默认opts.fontSize
+- uCharts.js 漏斗图新增参数series.data[i].centerTextColor 居中标签文案字体颜色,默认#FFFFFF
+- uCharts.js 漏斗图新增参数opts.extra.funnel.minSize 最小值的最小宽度,默认0
+- uCharts.js 进度条新增参数opts.extra.arcbar.direction,动画方向,可选值为cw顺时针、ccw逆时针
+- uCharts.js 混合图新增参数opts.extra.mix.line.width,折线的宽度,默认2
+- uCharts.js 修复tooltip开启horizentalLine水平横线标注时,图表显示错位的bug
+- uCharts.js 优化tooltip当文字很多变为左侧显示时,如果画布仍显显示不下,提示框错位置变为以左侧0位置起画
+- uCharts.js 修复开启滚动条后X轴文字超出绘图区域后的隐藏逻辑
+- uCharts.js 柱状图、条状图修复堆叠模式不能通过{value,color}赋值单个柱子颜色的问题
+- uCharts.js 气泡图修复不识别series.textSize和series.textColor的bug
+
+## 报错TypeError: Cannot read properties of undefined (reading 'length')
+1. 如果是uni-modules版本组件,请先登录HBuilderX账号;
+2. 在HBuilderX中的manifest.json,点击重新获取uniapp的appid,或者删除appid重新粘贴,重新运行;
+3. 如果是cli项目请使用码云上的非uniCloud版本组件;
+4. 或者添加uniCloud的依赖;
+5. 或者使用原生uCharts;
+## 2.4.3-20220505(2022-05-05)
+- 秋云图表组件 修复开启canvas2d后将series赋值为空数组显示加载图标时,再次赋值后画布闪动的bug
+- 秋云图表组件 修复升级hbx最新版后ECharts的highlight方法报错的bug
+- uCharts.js 雷达图新增参数opts.extra.radar.gridEval,数据点位网格抽希,默认1
+- uCharts.js 雷达图新增参数opts.extra.radar.axisLabel,	是否显示刻度点值,默认false
+- uCharts.js 雷达图新增参数opts.extra.radar.axisLabelTofix,刻度点值小数位数,默认0
+- uCharts.js 雷达图新增参数opts.extra.radar.labelPointShow,是否显示末端刻度圆点,默认false
+- uCharts.js 雷达图新增参数opts.extra.radar.labelPointRadius,刻度圆点的半径,默认3
+- uCharts.js 雷达图新增参数opts.extra.radar.labelPointColor,刻度圆点的颜色,默认#cccccc
+- uCharts.js 雷达图新增参数opts.extra.radar.linearType,渐变色类型,可选值"none"关闭渐变,"custom"开启渐变
+- uCharts.js 雷达图新增参数opts.extra.radar.customColor,自定义渐变颜色,数组类型对应series的数组长度以匹配不同series颜色的不同配色方案,例如["#FA7D8D", "#EB88E2"]
+- uCharts.js 雷达图优化支持series.textColor、series.textSize属性
+- uCharts.js 柱状图中温度计式图标,优化支持全圆角类型,修复边框有缝隙的bug,详见官网【演示】中的温度计图表
+- uCharts.js 柱状图新增参数opts.extra.column.activeWidth,当前点击柱状图的背景宽度,默认一个单元格单位
+- uCharts.js 混合图增加opts.extra.mix.area.gradient 区域图是否开启渐变色
+- uCharts.js 混合图增加opts.extra.mix.area.opacity 区域图透明度,默认0.2
+- uCharts.js 饼图、圆环图、玫瑰图、漏斗图,增加opts.series[0].data[i].labelText,自定义标签文字,避免formatter格式化的繁琐,详见官网【演示】中的饼图
+- uCharts.js 饼图、圆环图、玫瑰图、漏斗图,增加opts.series[0].data[i].labelShow,自定义是否显示某一个指示标签,避免因饼图类别太多导致标签重复或者居多导致图形变形的问题,详见官网【演示】中的饼图
+- uCharts.js 增加opts.series[i].legendText/opts.series[0].data[i].legendText(与series.name同级)自定义图例显示文字的方法
+- uCharts.js 优化X轴、Y轴formatter格式化方法增加形参,统一为fromatter:function(value,index,opts){}
+- uCharts.js 修复横屏模式下无法使用双指缩放方法的bug
+- uCharts.js 修复当只有一条数据或者多条数据值相等的时候Y轴自动计算的最大值错误的bug
+- 【官网模板】增加外部自定义图例与图表交互的例子,[点击跳转](https://www.ucharts.cn/v2/#/layout/info?id=2)
+
+## 注意:非unimodules 版本如因更新 hbx 至 3.4.7 导致报错如下,请到码云更新非 unimodules 版本组件,[点击跳转](https://gitee.com/uCharts/uCharts/tree/master/uni-app/uCharts-%E7%BB%84%E4%BB%B6)
+> Error in callback for immediate watcher "uchartsOpts": "SyntaxError: Unexpected token u in JSON at position 0"
+## 2.4.2-20220421(2022-04-21)
+- 秋云图表组件 修复HBX升级3.4.6.20220420版本后echarts报错的问题
+## 2.4.2-20220420(2022-04-20)
+## 重要!此版本uCharts新增了很多功能,修复了诸多已知问题
+- 秋云图表组件 新增onzoom开启双指缩放功能(仅uCharts),前提需要直角坐标系类图表类型,并且ontouch为true、opts.enableScroll为true,详见实例项目K线图
+- 秋云图表组件 新增optsWatch是否监听opts变化,关闭optsWatch后,动态修改opts不会触发图表重绘
+- 秋云图表组件 修复开启canvas2d功能后,动态更新数据后画布闪动的bug
+- 秋云图表组件 去除directory属性,改为自动获取echarts.min.js路径(升级不受影响)
+- 秋云图表组件 增加getImage()方法及@getImage事件,通过ref调用getImage()方法获,触发@getImage事件获取当前画布的base64图片文件流。
+- 秋云图表组件 支付宝、字节跳动、飞书、快手小程序支持开启canvas2d同层渲染设置。
+- 秋云图表组件 新增加【非uniCloud】版本组件,避免有些不需要uniCloud的使用组件发布至小程序需要提交隐私声明问题,请到码云[【非uniCloud版本】](https://gitee.com/uCharts/uCharts/tree/master/uni-app/uCharts-%E7%BB%84%E4%BB%B6),或npm[【非uniCloud版本】](https://www.npmjs.com/package/@qiun/uni-ucharts)下载使用。
+- uCharts.js 新增dobuleZoom双指缩放功能
+- uCharts.js 新增山峰图type="mount",数据格式为饼图类格式,不需要传入categories,具体详见新版官网在线演示
+- uCharts.js 修复折线图当数据中存在null时tooltip报错的bug
+- uCharts.js 修复饼图类当画布比较小时自动计算的半径是负数报错的bug
+- uCharts.js 统一各图表类型的series.formatter格式化方法的形参为(val, index, series, opts),方便格式化时有更多参数可用
+- uCharts.js 标记线功能增加labelText自定义显示文字,增加labelAlign标签显示位置(左侧或右侧),增加标签显示位置微调labelOffsetX、labelOffsetY
+- uCharts.js 修复条状图当数值很小时开启圆角后样式错误的bug
+- uCharts.js 修复X轴开启disabled后,X轴仍占用空间的bug
+- uCharts.js 修复X轴开启滚动条并且开启rotateLabel后,X轴文字与滚动条重叠的bug
+- uCharts.js 增加X轴rotateAngle文字旋转自定义角度,取值范围(-90至90)
+- uCharts.js 修复地图文字标签层级显示不正确的bug
+- uCharts.js 修复饼图、圆环图、玫瑰图当数据全部为0的时候不显示数据标签的bug
+- uCharts.js 修复当opts.padding上边距为0时,Y轴顶部刻度标签位置不正确的bug
+
+## 另外我们还开发了各大原生小程序组件,已发布至码云和npm
+[https://gitee.com/uCharts/uCharts](https://gitee.com/uCharts/uCharts)
+[https://www.npmjs.com/~qiun](https://www.npmjs.com/~qiun)
+
+## 对于原生uCharts文档我们已上线新版官方网站,详情点击下面链接进入官网
+[https://www.uCharts.cn/v2/](https://www.ucharts.cn/v2/)
+## 2.3.7-20220122(2022-01-22)
+## 重要!使用vue3编译,请使用cli模式并升级至最新依赖,HbuilderX编译需要使用3.3.8以上版本
+- uCharts.js 修复uni-app平台组件模式使用vue3编译到小程序报错的bug。
+## 2.3.7-20220118(2022-01-18)
+## 注意,使用vue3的前提是需要3.3.8.20220114-alpha版本的HBuilder!
+## 2.3.67-20220118(2022-01-18)
+- 秋云图表组件 组件初步支持vue3,全端编译会有些问题,具体详见下面修改:
+1. 小程序端运行时,在uni_modules文件夹的qiun-data-charts.js中搜索 new uni_modules_qiunDataCharts_js_sdk_uCharts_uCharts.uCharts,将.uCharts去掉。
+2. 小程序端发行时,在uni_modules文件夹的qiun-data-charts.js中搜索 new e.uCharts,将.uCharts去掉,变为 new e。
+3. 如果觉得上述步骤比较麻烦,如果您的项目只编译到小程序端,可以修改u-charts.js最后一行导出方式,将 export default uCharts;变更为 export default { uCharts: uCharts }; 这样变更后,H5和App端的renderjs会有问题,请开发者自行选择。(此问题非组件问题,请等待DC官方修复Vue3的小程序端)
+## 2.3.6-20220111(2022-01-11)
+- 秋云图表组件 修改组件 props 属性中的 background 默认值为 rgba(0,0,0,0)
+## 2.3.6-20211201(2021-12-01)
+- uCharts.js 修复bar条状图开启圆角模式时,值很小时圆角渲染错误的bug
+## 2.3.5-20211014(2021-10-15)
+- uCharts.js 增加vue3的编译支持(仅原生uCharts,qiun-data-charts组件后续会支持,请关注更新)
+## 2.3.4-20211012(2021-10-12)
+- 秋云图表组件 修复 mac os x 系统 mouseover 事件丢失的 bug
+## 2.3.3-20210706(2021-07-06)
+- uCharts.js 增加雷达图开启数据点值(opts.dataLabel)的显示
+## 2.3.2-20210627(2021-06-27)
+- 秋云图表组件 修复tooltipCustom个别情况下传值不正确报错TypeError: Cannot read property 'name' of undefined的bug
+## 2.3.1-20210616(2021-06-16)
+- uCharts.js 修复圆角柱状图使用4角圆角时,当数值过大时不正确的bug
+## 2.3.0-20210612(2021-06-12)
+- uCharts.js 【重要】uCharts增加nvue兼容,可在nvue项目中使用gcanvas组件渲染uCharts,[详见码云uCharts-demo-nvue](https://gitee.com/uCharts/uCharts)
+- 秋云图表组件 增加tapLegend属性,是否开启图例点击交互事件
+- 秋云图表组件 getIndex事件中增加返回uCharts实例中的opts参数,以便在页面中调用参数
+- 示例项目 pages/other/other.vue增加app端自定义tooltip的方法,详见showOptsTooltip方法
+## 2.2.1-20210603(2021-06-03)
+- uCharts.js 修复饼图、圆环图、玫瑰图,当起始角度不为0时,tooltip位置不准确的bug
+- uCharts.js 增加温度计式柱状图开启顶部半圆形的配置
+## 2.2.0-20210529(2021-05-29)
+- uCharts.js 增加条状图type="bar"
+- 示例项目 pages/ucharts/ucharts.vue增加条状图的demo
+## 2.1.7-20210524(2021-05-24)
+- uCharts.js 修复大数据量模式下曲线图不平滑的bug
+## 2.1.6-20210523(2021-05-23)
+- 秋云图表组件 修复小程序端开启滚动条更新数据后滚动条位置不符合预期的bug
+## 2.1.5-2021051702(2021-05-17)
+- uCharts.js 修复自定义Y轴min和max值为0时不能正确显示的bug
+## 2.1.5-20210517(2021-05-17)
+- uCharts.js 修复Y轴自定义min和max时,未按指定的最大值最小值显示坐标轴刻度的bug
+## 2.1.4-20210516(2021-05-16)
+- 秋云图表组件 优化onWindowResize防抖方法
+- 秋云图表组件 修复APP端uCharts更新数据时,清空series显示loading图标后再显示图表,图表抖动的bug
+- uCharts.js 修复开启canvas2d后,x轴、y轴、series自定义字体大小未按比例缩放的bug
+- 示例项目 修复format-e.vue拼写错误导致app端使用uCharts渲染图表
+## 2.1.3-20210513(2021-05-13)
+- 秋云图表组件 修改uCharts变更chartData数据为updateData方法,支持带滚动条的数据动态打点
+- 秋云图表组件 增加onWindowResize防抖方法 fix by ど誓言,如尘般染指流年づ 
+- 秋云图表组件 H5或者APP变更chartData数据显示loading图表时,原数据闪现的bug
+- 秋云图表组件 props增加errorReload禁用错误点击重新加载的方法
+- uCharts.js 增加tooltip显示category(x轴对应点位)标题的功能,opts.extra.tooltip.showCategory,默认为false
+- uCharts.js 修复mix混合图只有柱状图时,tooltip的分割线显示位置不正确的bug
+- uCharts.js 修复开启滚动条,图表在拖动中动态打点,滚动条位置不正确的bug
+- uCharts.js 修复饼图类数据格式为echarts数据格式,series为空数组报错的bug
+- 示例项目 修改uCharts.js更新到v2.1.2版本后,@getIndex方法获取索引值变更为e.currentIndex.index
+- 示例项目 pages/updata/updata.vue增加滚动条拖动更新(数据动态打点)的demo
+- 示例项目 pages/other/other.vue增加errorReload禁用错误点击重新加载的demo
+## 2.1.2-20210509(2021-05-09)
+秋云图表组件 修复APP端初始化时就传入chartData或lacaldata不显示图表的bug
+## 2.1.1-20210509(2021-05-09)
+- 秋云图表组件 变更ECharts的eopts配置在renderjs内执行,支持在config-echarts.js配置文件内写function配置。
+- 秋云图表组件 修复APP端报错Prop being mutated: "onmouse"错误的bug。
+- 秋云图表组件 修复APP端报错Error: Not Found:Page[6][-1,27] at view.umd.min.js:1的bug。
+## 2.1.0-20210507(2021-05-07)
+- 秋云图表组件 修复初始化时就有数据或者数据更新的时候loading加载动画闪动的bug
+- uCharts.js 修复x轴format方法categories为字符串类型时返回NaN的bug
+- uCharts.js 修复series.textColor、legend.fontColor未执行全局默认颜色的bug
+## 2.1.0-20210506(2021-05-06)
+- 秋云图表组件 修复极个别情况下报错item.properties undefined的bug
+- 秋云图表组件 修复极个别情况下关闭加载动画reshow不起作用,无法显示图表的bug
+- 示例项目 pages/ucharts/ucharts.vue 增加时间轴折线图(type="tline")、时间轴区域图(type="tarea")、散点图(type="scatter")、气泡图demo(type="bubble")、倒三角形漏斗图(opts.extra.funnel.type="triangle")、金字塔形漏斗图(opts.extra.funnel.type="pyramid")
+- 示例项目 pages/format-u/format-u.vue 增加X轴format格式化示例
+- uCharts.js 升级至v2.1.0版本
+- uCharts.js 修复 玫瑰图面积模式点击tooltip位置不正确的bug
+- uCharts.js 修复 玫瑰图点击图例,只剩一个类别显示空白的bug
+- uCharts.js 修复 饼图类图点击图例,其他图表tooltip位置某些情况下不准的bug
+- uCharts.js 修复 x轴为矢量轴(时间轴)情况下,点击tooltip位置不正确的bug
+- uCharts.js 修复 词云图获取点击索引偶尔不准的bug
+- uCharts.js 增加 直角坐标系图表X轴format格式化方法(原生uCharts.js用法请使用formatter)
+- uCharts.js 增加 漏斗图扩展配置,倒三角形(opts.extra.funnel.type="triangle"),金字塔形(opts.extra.funnel.type="pyramid")
+- uCharts.js 增加 散点图(opts.type="scatter")、气泡图(opts.type="bubble")
+- 后期计划 完善散点图、气泡图,增加markPoints标记点,增加横向条状图。
+## 2.0.0-20210502(2021-05-02)
+- uCharts.js 修复词云图获取点击索引不正确的bug
+## 2.0.0-20210501(2021-05-01)
+- 秋云图表组件 修复QQ小程序、百度小程序在关闭动画效果情况下,v-for循环使用图表,显示不正确的bug
+## 2.0.0-20210426(2021-04-26)
+- 秋云图表组件 修复QQ小程序不支持canvas2d的bug
+- 秋云图表组件 修复钉钉小程序某些情况点击坐标计算错误的bug
+- uCharts.js 增加 extra.column.categoryGap 参数,柱状图类每个category点位(X轴点)柱子组之间的间距
+- uCharts.js 增加 yAxis.data[i].titleOffsetY 参数,标题纵向偏移距离,负数为向上偏移,正数向下偏移
+- uCharts.js 增加 yAxis.data[i].titleOffsetX 参数,标题横向偏移距离,负数为向左偏移,正数向右偏移
+- uCharts.js 增加 extra.gauge.labelOffset 参数,仪表盘标签文字径向便宜距离,默认13px
+## 2.0.0-20210422-2(2021-04-22)
+秋云图表组件 修复 formatterAssign 未判断 args[key] == null 的情况导致栈溢出的 bug
+## 2.0.0-20210422(2021-04-22)
+- 秋云图表组件 修复H5、APP、支付宝小程序、微信小程序canvas2d模式下横屏模式的bug
+## 2.0.0-20210421(2021-04-21)
+- uCharts.js 修复多行图例的情况下,图例在上方或者下方时,图例float为左侧或者右侧时,第二行及以后的图例对齐方式不正确的bug
+## 2.0.0-20210420(2021-04-20)
+- 秋云图表组件 修复微信小程序开启canvas2d模式后,windows版微信小程序不支持canvas2d模式的bug
+- 秋云图表组件 修改非uni_modules版本为v2.0版本qiun-data-charts组件
+## 2.0.0-20210419(2021-04-19)
+## v1.0版本已停更,建议转uni_modules版本组件方式调用,点击右侧绿色【使用HBuilderX导入插件】即可使用,示例项目请点击右侧蓝色按钮【使用HBuilderX导入示例项目】。
+## 初次使用如果提示未注册&lt;qiun-data-charts&gt;组件,请重启HBuilderX,如仍不好用,请重启电脑;
+## 如果是cli项目,请尝试清理node_modules,重新install,还不行就删除项目,再重新install。
+## 此问题已于DCloud官方确认,HBuilderX下个版本会修复。
+## 其他图表不显示问题详见[常见问题选项卡](https://demo.ucharts.cn)
+## <font color=#FF0000> 新手请先完整阅读帮助文档及常见问题3遍,右侧蓝色按钮示例项目请看2遍! </font> 
+## [DEMO演示及在线生成工具(v2.0文档)https://demo.ucharts.cn](https://demo.ucharts.cn)
+## [图表组件在项目中的应用参见 UReport数据报表](https://ext.dcloud.net.cn/plugin?id=4651) 
+- uCharts.js 修复混合图中柱状图单独设置颜色不生效的bug
+- uCharts.js 修复多Y轴单独设置fontSize时,开启canvas2d后,未对应放大字体的bug
+## 2.0.0-20210418(2021-04-18)
+- 秋云图表组件 增加directory配置,修复H5端history模式下如果发布到二级目录无法正确加载echarts.min.js的bug
+## 2.0.0-20210416(2021-04-16)
+## v1.0版本已停更,建议转uni_modules版本组件方式调用,点击右侧绿色【使用HBuilderX导入插件】即可使用,示例项目请点击右侧蓝色按钮【使用HBuilderX导入示例项目】。
+## 初次使用如果提示未注册&lt;qiun-data-charts&gt;组件,请重启HBuilderX,如仍不好用,请重启电脑;
+## 如果是cli项目,请尝试清理node_modules,重新install,还不行就删除项目,再重新install。
+## 此问题已于DCloud官方确认,HBuilderX下个版本会修复。
+## 其他图表不显示问题详见[常见问题选项卡](https://demo.ucharts.cn)
+## <font color=#FF0000> 新手请先完整阅读帮助文档及常见问题3遍,右侧蓝色按钮示例项目请看2遍! </font> 
+## [DEMO演示及在线生成工具(v2.0文档)https://demo.ucharts.cn](https://demo.ucharts.cn)
+## [图表组件在项目中的应用参见 UReport数据报表](https://ext.dcloud.net.cn/plugin?id=4651) 
+- 秋云图表组件 修复APP端某些情况下报错`Not Found Page`的bug,fix by 高级bug开发技术员
+- 示例项目 修复APP端v-for循环某些情况下报错`Not Found Page`的bug,fix by 高级bug开发技术员
+- uCharts.js 修复非直角坐标系tooltip提示窗右侧超出未变换方向显示的bug
+## 2.0.0-20210415(2021-04-15)
+- 秋云图表组件 修复H5端发布到二级目录下echarts无法加载的bug
+- 秋云图表组件 修复某些情况下echarts.off('finished')移除监听事件报错的bug
+## 2.0.0-20210414(2021-04-14)
+## v1.0版本已停更,建议转uni_modules版本组件方式调用,点击右侧绿色【使用HBuilderX导入插件】即可使用,示例项目请点击右侧蓝色按钮【使用HBuilderX导入示例项目】。
+## 初次使用如果提示未注册&lt;qiun-data-charts&gt;组件,请重启HBuilderX,如仍不好用,请重启电脑;
+## 如果是cli项目,请尝试清理node_modules,重新install,还不行就删除项目,再重新install。
+## 此问题已于DCloud官方确认,HBuilderX下个版本会修复。
+## 其他图表不显示问题详见[常见问题选项卡](https://demo.ucharts.cn)
+## <font color=#FF0000> 新手请先完整阅读帮助文档及常见问题3遍,右侧蓝色按钮示例项目请看2遍! </font> 
+## [DEMO演示及在线生成工具(v2.0文档)https://demo.ucharts.cn](https://demo.ucharts.cn)
+## [图表组件在项目中的应用参见 UReport数据报表](https://ext.dcloud.net.cn/plugin?id=4651) 
+- 秋云图表组件 修复H5端在cli项目下ECharts引用地址错误的bug
+- 示例项目 增加ECharts的formatter用法的示例(详见示例项目format-e.vue)
+- uCharts.js 增加圆环图中心背景色的配置extra.ring.centerColor
+- uCharts.js 修复微信小程序安卓端柱状图开启透明色后显示不正确的bug
+## 2.0.0-20210413(2021-04-13)
+- 秋云图表组件 修复百度小程序多个图表真机未能正确获取根元素dom尺寸的bug
+- 秋云图表组件 修复百度小程序横屏模式方向不正确的bug
+- 秋云图表组件 修改ontouch时,@getTouchStart@getTouchMove@getTouchEnd的触发条件
+- uCharts.js 修复饼图类数据格式series属性不生效的bug
+- uCharts.js 增加时序区域图 详见示例项目中ucharts.vue
+## 2.0.0-20210412-2(2021-04-12)
+## v1.0版本已停更,建议转uni_modules版本组件方式调用,点击右侧绿色【使用HBuilderX导入插件】即可使用,示例项目请点击右侧蓝色按钮【使用HBuilderX导入示例项目】。
+## 初次使用如果提示未注册&lt;qiun-data-charts&gt;组件,请重启HBuilderX。如仍不好用,请重启电脑,此问题已于DCloud官方确认,HBuilderX下个版本会修复。
+## [DEMO演示及在线生成工具(v2.0文档)https://demo.ucharts.cn](https://demo.ucharts.cn)
+## [图表组件在uniCloudAdmin中的应用 UReport数据报表](https://ext.dcloud.net.cn/plugin?id=4651) 
+- 秋云图表组件 修复uCharts在APP端横屏模式下不能正确渲染的bug
+- 示例项目 增加ECharts柱状图渐变色、圆角柱状图、横向柱状图(条状图)的示例
+## 2.0.0-20210412(2021-04-12)
+- 秋云图表组件 修复created中判断echarts导致APP端无法识别,改回mounted中判断echarts初始化
+- uCharts.js 修复2d模式下series.textOffset未乘像素比的bug
+## 2.0.0-20210411(2021-04-11)
+## v1.0版本已停更,建议转uni_modules版本组件方式调用,点击右侧绿色【使用HBuilderX导入插件】即可使用,示例项目请点击右侧蓝色按钮【使用HBuilderX导入示例项目】。
+## 初次使用如果提示未注册<qiun-data-charts>组件,请重启HBuilderX,并清空小程序开发者工具缓存。
+## [DEMO演示及在线生成工具(v2.0文档)https://demo.ucharts.cn](https://demo.ucharts.cn)
+## [图表组件在uniCloudAdmin中的应用 UReport数据报表](https://ext.dcloud.net.cn/plugin?id=4651) 
+- uCharts.js 折线图区域图增加connectNulls断点续连的功能,详见示例项目中ucharts.vue
+- 秋云图表组件 变更初始化方法为created,变更type2d默认值为true,优化2d模式下组件初始化后dom获取不到的bug
+- 秋云图表组件 修复左右布局时,右侧图表点击坐标错误的bug,修复tooltip柱状图自定义颜色显示object的bug
+## 2.0.0-20210410(2021-04-10)
+- 修复左右布局时,右侧图表点击坐标错误的bug,修复柱状图自定义颜色tooltip显示object的bug
+- 增加标记线及柱状图自定义颜色的demo
+## 2.0.0-20210409(2021-04-08)
+## v1.0版本已停更,建议转uni_modules版本组件方式调用,点击右侧【使用HBuilderX导入插件】即可体验,DEMO演示及在线生成工具(v2.0文档)[https://demo.ucharts.cn](https://demo.ucharts.cn)
+## 图表组件在uniCloudAdmin中的应用 [UReport数据报表](https://ext.dcloud.net.cn/plugin?id=4651) 
+- uCharts.js 修复钉钉小程序百度小程序measureText不准确的bug,修复2d模式下饼图类activeRadius为按比例放大的bug
+- 修复组件在支付宝小程序端点击位置不准确的bug
+## 2.0.0-20210408(2021-04-07)
+- 修复组件在支付宝小程序端不能显示的bug(目前支付宝小程不能点击交互,后续修复)
+- uCharts.js 修复高分屏下柱状图类,圆弧进度条 自定义宽度不能按比例放大的bug
+## 2.0.0-20210407(2021-04-06)
+## v1.0版本已停更,建议转uni_modules版本组件方式调用,点击右侧【使用HBuilderX导入插件】即可体验,DEMO演示及在线生成工具(v2.0文档)[https://demo.ucharts.cn](https://demo.ucharts.cn)
+## 增加 通过tofix和unit快速格式化y轴的demo add by `howcode`
+## 增加 图表组件在uniCloudAdmin中的应用 [UReport数据报表](https://ext.dcloud.net.cn/plugin?id=4651) 
+## 2.0.0-20210406(2021-04-05)
+# 秋云图表组件+uCharts v2.0版本同步上线,使用方法详见https://demo.ucharts.cn帮助页
+## 2.0.0(2021-04-05)
+# 秋云图表组件+uCharts v2.0版本同步上线,使用方法详见https://demo.ucharts.cn帮助页

Plik diff jest za duży
+ 1618 - 0
virgo.wzfrontend/yui_wx/uni_modules/qiun-data-charts/components/qiun-data-charts/qiun-data-charts.vue


Plik diff jest za duży
+ 46 - 0
virgo.wzfrontend/yui_wx/uni_modules/qiun-data-charts/components/qiun-error/qiun-error.vue


+ 162 - 0
virgo.wzfrontend/yui_wx/uni_modules/qiun-data-charts/components/qiun-loading/loading1.vue

@@ -0,0 +1,162 @@
+<template>
+	 <view class="container loading1">
+		<view class="shape shape1"></view>
+		<view class="shape shape2"></view>
+		<view class="shape shape3"></view>
+		<view class="shape shape4"></view>
+	</view>
+</template>
+
+<script>
+	export default {
+		name: 'loading1',
+		data() {
+			return {
+				
+			};
+		}
+	}
+</script>
+
+<style scoped="true">
+.container {
+  width: 30px;
+  height: 30px;
+  position: relative;
+}
+.container.loading1 {
+  -webkit-transform: rotate(45deg);
+          transform: rotate(45deg);
+}
+
+.container .shape {
+  position: absolute;
+  width: 10px;
+  height: 10px;
+  border-radius: 1px;
+}
+.container .shape.shape1 {
+  left: 0;
+  background-color: #1890FF;
+}
+.container .shape.shape2 {
+  right: 0;
+  background-color: #91CB74;
+}
+.container .shape.shape3 {
+  bottom: 0;
+  background-color: #FAC858;
+}
+.container .shape.shape4 {
+  bottom: 0;
+  right: 0;
+  background-color: #EE6666;
+}
+
+.loading1 .shape1 {
+  -webkit-animation: animation1shape1 0.5s ease 0s infinite alternate;
+          animation: animation1shape1 0.5s ease 0s infinite alternate;
+}
+
+@-webkit-keyframes animation1shape1 {
+  from {
+    -webkit-transform: translate(0, 0);
+            transform: translate(0, 0);
+  }
+  to {
+    -webkit-transform: translate(16px, 16px);
+            transform: translate(16px, 16px);
+  }
+}
+
+@keyframes animation1shape1 {
+  from {
+    -webkit-transform: translate(0, 0);
+            transform: translate(0, 0);
+  }
+  to {
+    -webkit-transform: translate(16px, 16px);
+            transform: translate(16px, 16px);
+  }
+}
+.loading1 .shape2 {
+  -webkit-animation: animation1shape2 0.5s ease 0s infinite alternate;
+          animation: animation1shape2 0.5s ease 0s infinite alternate;
+}
+
+@-webkit-keyframes animation1shape2 {
+  from {
+    -webkit-transform: translate(0, 0);
+            transform: translate(0, 0);
+  }
+  to {
+    -webkit-transform: translate(-16px, 16px);
+            transform: translate(-16px, 16px);
+  }
+}
+
+@keyframes animation1shape2 {
+  from {
+    -webkit-transform: translate(0, 0);
+            transform: translate(0, 0);
+  }
+  to {
+    -webkit-transform: translate(-16px, 16px);
+            transform: translate(-16px, 16px);
+  }
+}
+.loading1 .shape3 {
+  -webkit-animation: animation1shape3 0.5s ease 0s infinite alternate;
+          animation: animation1shape3 0.5s ease 0s infinite alternate;
+}
+
+@-webkit-keyframes animation1shape3 {
+  from {
+    -webkit-transform: translate(0, 0);
+            transform: translate(0, 0);
+  }
+  to {
+    -webkit-transform: translate(16px, -16px);
+            transform: translate(16px, -16px);
+  }
+}
+
+@keyframes animation1shape3 {
+  from {
+    -webkit-transform: translate(0, 0);
+            transform: translate(0, 0);
+  }
+  to {
+    -webkit-transform: translate(16px, -16px);
+            transform: translate(16px, -16px);
+  }
+}
+.loading1 .shape4 {
+  -webkit-animation: animation1shape4 0.5s ease 0s infinite alternate;
+          animation: animation1shape4 0.5s ease 0s infinite alternate;
+}
+
+@-webkit-keyframes animation1shape4 {
+  from {
+    -webkit-transform: translate(0, 0);
+            transform: translate(0, 0);
+  }
+  to {
+    -webkit-transform: translate(-16px, -16px);
+            transform: translate(-16px, -16px);
+  }
+}
+
+@keyframes animation1shape4 {
+  from {
+    -webkit-transform: translate(0, 0);
+            transform: translate(0, 0);
+  }
+  to {
+    -webkit-transform: translate(-16px, -16px);
+            transform: translate(-16px, -16px);
+  }
+}
+
+
+</style>

+ 170 - 0
virgo.wzfrontend/yui_wx/uni_modules/qiun-data-charts/components/qiun-loading/loading2.vue

@@ -0,0 +1,170 @@
+<template>
+	 <view class="container loading2">
+		<view class="shape shape1"></view>
+		<view class="shape shape2"></view>
+		<view class="shape shape3"></view>
+		<view class="shape shape4"></view>
+	</view>
+</template>
+
+<script>
+	export default {
+		name: 'loading2',
+		data() {
+			return {
+				
+			};
+		}
+	}
+</script>
+
+<style scoped="true">
+.container {
+  width: 30px;
+  height: 30px;
+  position: relative;
+}
+
+.container.loading2 {
+  -webkit-transform: rotate(10deg);
+          transform: rotate(10deg);
+}
+.container.loading2 .shape {
+  border-radius: 5px;
+}
+.container.loading2{
+  -webkit-animation: rotation 1s infinite;
+          animation: rotation 1s infinite;
+}
+
+.container .shape {
+  position: absolute;
+  width: 10px;
+  height: 10px;
+  border-radius: 1px;
+}
+.container .shape.shape1 {
+  left: 0;
+  background-color: #1890FF;
+}
+.container .shape.shape2 {
+  right: 0;
+  background-color: #91CB74;
+}
+.container .shape.shape3 {
+  bottom: 0;
+  background-color: #FAC858;
+}
+.container .shape.shape4 {
+  bottom: 0;
+  right: 0;
+  background-color: #EE6666;
+}
+
+
+.loading2 .shape1 {
+  -webkit-animation: animation2shape1 0.5s ease 0s infinite alternate;
+          animation: animation2shape1 0.5s ease 0s infinite alternate;
+}
+
+@-webkit-keyframes animation2shape1 {
+  from {
+    -webkit-transform: translate(0, 0);
+            transform: translate(0, 0);
+  }
+  to {
+    -webkit-transform: translate(20px, 20px);
+            transform: translate(20px, 20px);
+  }
+}
+
+@keyframes animation2shape1 {
+  from {
+    -webkit-transform: translate(0, 0);
+            transform: translate(0, 0);
+  }
+  to {
+    -webkit-transform: translate(20px, 20px);
+            transform: translate(20px, 20px);
+  }
+}
+.loading2 .shape2 {
+  -webkit-animation: animation2shape2 0.5s ease 0s infinite alternate;
+          animation: animation2shape2 0.5s ease 0s infinite alternate;
+}
+
+@-webkit-keyframes animation2shape2 {
+  from {
+    -webkit-transform: translate(0, 0);
+            transform: translate(0, 0);
+  }
+  to {
+    -webkit-transform: translate(-20px, 20px);
+            transform: translate(-20px, 20px);
+  }
+}
+
+@keyframes animation2shape2 {
+  from {
+    -webkit-transform: translate(0, 0);
+            transform: translate(0, 0);
+  }
+  to {
+    -webkit-transform: translate(-20px, 20px);
+            transform: translate(-20px, 20px);
+  }
+}
+.loading2 .shape3 {
+  -webkit-animation: animation2shape3 0.5s ease 0s infinite alternate;
+          animation: animation2shape3 0.5s ease 0s infinite alternate;
+}
+
+@-webkit-keyframes animation2shape3 {
+  from {
+    -webkit-transform: translate(0, 0);
+            transform: translate(0, 0);
+  }
+  to {
+    -webkit-transform: translate(20px, -20px);
+            transform: translate(20px, -20px);
+  }
+}
+
+@keyframes animation2shape3 {
+  from {
+    -webkit-transform: translate(0, 0);
+            transform: translate(0, 0);
+  }
+  to {
+    -webkit-transform: translate(20px, -20px);
+            transform: translate(20px, -20px);
+  }
+}
+.loading2 .shape4 {
+  -webkit-animation: animation2shape4 0.5s ease 0s infinite alternate;
+          animation: animation2shape4 0.5s ease 0s infinite alternate;
+}
+
+@-webkit-keyframes animation2shape4 {
+  from {
+    -webkit-transform: translate(0, 0);
+            transform: translate(0, 0);
+  }
+  to {
+    -webkit-transform: translate(-20px, -20px);
+            transform: translate(-20px, -20px);
+  }
+}
+
+@keyframes animation2shape4 {
+  from {
+    -webkit-transform: translate(0, 0);
+            transform: translate(0, 0);
+  }
+  to {
+    -webkit-transform: translate(-20px, -20px);
+            transform: translate(-20px, -20px);
+  }
+}
+
+</style>

+ 173 - 0
virgo.wzfrontend/yui_wx/uni_modules/qiun-data-charts/components/qiun-loading/loading3.vue

@@ -0,0 +1,173 @@
+<template>
+	 <view class="container loading3">
+		<view class="shape shape1"></view>
+		<view class="shape shape2"></view>
+		<view class="shape shape3"></view>
+		<view class="shape shape4"></view>
+	</view>
+</template>
+
+<script>
+	export default {
+		name: 'loading3',
+		data() {
+			return {
+				
+			};
+		}
+	}
+</script>
+
+<style scoped="true">
+.container {
+  width: 30px;
+  height: 30px;
+  position: relative;
+}
+
+ .container.loading3 {
+  -webkit-animation: rotation 1s infinite;
+          animation: rotation 1s infinite;
+}
+.container.loading3 .shape1 {
+  border-top-left-radius: 10px;
+}
+.container.loading3 .shape2 {
+  border-top-right-radius: 10px;
+}
+.container.loading3 .shape3 {
+  border-bottom-left-radius: 10px;
+}
+.container.loading3 .shape4 {
+  border-bottom-right-radius: 10px;
+}
+
+.container .shape {
+  position: absolute;
+  width: 10px;
+  height: 10px;
+  border-radius: 1px;
+}
+.container .shape.shape1 {
+  left: 0;
+  background-color: #1890FF;
+}
+.container .shape.shape2 {
+  right: 0;
+  background-color: #91CB74;
+}
+.container .shape.shape3 {
+  bottom: 0;
+  background-color: #FAC858;
+}
+.container .shape.shape4 {
+  bottom: 0;
+  right: 0;
+  background-color: #EE6666;
+}
+
+.loading3 .shape1 {
+  -webkit-animation: animation3shape1 0.5s ease 0s infinite alternate;
+          animation: animation3shape1 0.5s ease 0s infinite alternate;
+}
+
+@-webkit-keyframes animation3shape1 {
+  from {
+    -webkit-transform: translate(0, 0);
+            transform: translate(0, 0);
+  }
+  to {
+    -webkit-transform: translate(5px, 5px);
+            transform: translate(5px, 5px);
+  }
+}
+
+@keyframes animation3shape1 {
+  from {
+    -webkit-transform: translate(0, 0);
+            transform: translate(0, 0);
+  }
+  to {
+    -webkit-transform: translate(5px, 5px);
+            transform: translate(5px, 5px);
+  }
+}
+.loading3 .shape2 {
+  -webkit-animation: animation3shape2 0.5s ease 0s infinite alternate;
+          animation: animation3shape2 0.5s ease 0s infinite alternate;
+}
+
+@-webkit-keyframes animation3shape2 {
+  from {
+    -webkit-transform: translate(0, 0);
+            transform: translate(0, 0);
+  }
+  to {
+    -webkit-transform: translate(-5px, 5px);
+            transform: translate(-5px, 5px);
+  }
+}
+
+@keyframes animation3shape2 {
+  from {
+    -webkit-transform: translate(0, 0);
+            transform: translate(0, 0);
+  }
+  to {
+    -webkit-transform: translate(-5px, 5px);
+            transform: translate(-5px, 5px);
+  }
+}
+.loading3 .shape3 {
+  -webkit-animation: animation3shape3 0.5s ease 0s infinite alternate;
+          animation: animation3shape3 0.5s ease 0s infinite alternate;
+}
+
+@-webkit-keyframes animation3shape3 {
+  from {
+    -webkit-transform: translate(0, 0);
+            transform: translate(0, 0);
+  }
+  to {
+    -webkit-transform: translate(5px, -5px);
+            transform: translate(5px, -5px);
+  }
+}
+
+@keyframes animation3shape3 {
+  from {
+    -webkit-transform: translate(0, 0);
+            transform: translate(0, 0);
+  }
+  to {
+    -webkit-transform: translate(5px, -5px);
+            transform: translate(5px, -5px);
+  }
+}
+.loading3 .shape4 {
+  -webkit-animation: animation3shape4 0.5s ease 0s infinite alternate;
+          animation: animation3shape4 0.5s ease 0s infinite alternate;
+}
+
+@-webkit-keyframes animation3shape4 {
+  from {
+    -webkit-transform: translate(0, 0);
+            transform: translate(0, 0);
+  }
+  to {
+    -webkit-transform: translate(-5px, -5px);
+            transform: translate(-5px, -5px);
+  }
+}
+
+@keyframes animation3shape4 {
+  from {
+    -webkit-transform: translate(0, 0);
+            transform: translate(0, 0);
+  }
+  to {
+    -webkit-transform: translate(-5px, -5px);
+            transform: translate(-5px, -5px);
+  }
+}
+</style>

+ 222 - 0
virgo.wzfrontend/yui_wx/uni_modules/qiun-data-charts/components/qiun-loading/loading4.vue

@@ -0,0 +1,222 @@
+<template>
+	 <view class="container loading5">
+		<view class="shape shape1"></view>
+		<view class="shape shape2"></view>
+		<view class="shape shape3"></view>
+		<view class="shape shape4"></view>
+	</view>
+</template>
+
+<script>
+	export default {
+		name: 'loading5',
+		data() {
+			return {
+				
+			};
+		}
+	}
+</script>
+
+<style scoped="true">
+.container {
+  width: 30px;
+  height: 30px;
+  position: relative;
+}
+
+.container.loading5 .shape {
+  width: 15px;
+  height: 15px;
+}
+
+.container .shape {
+  position: absolute;
+  width: 10px;
+  height: 10px;
+  border-radius: 1px;
+}
+.container .shape.shape1 {
+  left: 0;
+  background-color: #1890FF;
+}
+.container .shape.shape2 {
+  right: 0;
+  background-color: #91CB74;
+}
+.container .shape.shape3 {
+  bottom: 0;
+  background-color: #FAC858;
+}
+.container .shape.shape4 {
+  bottom: 0;
+  right: 0;
+  background-color: #EE6666;
+}
+
+.loading5 .shape1 {
+  animation: animation5shape1 2s ease 0s infinite reverse;
+}
+
+@-webkit-keyframes animation5shape1 {
+  0% {
+    -webkit-transform: translate(0, 0);
+            transform: translate(0, 0);
+  }
+  25% {
+    -webkit-transform: translate(0, 15px);
+            transform: translate(0, 15px);
+  }
+  50% {
+    -webkit-transform: translate(15px, 15px);
+            transform: translate(15px, 15px);
+  }
+  75% {
+    -webkit-transform: translate(15px, 0);
+            transform: translate(15px, 0);
+  }
+}
+
+@keyframes animation5shape1 {
+  0% {
+    -webkit-transform: translate(0, 0);
+            transform: translate(0, 0);
+  }
+  25% {
+    -webkit-transform: translate(0, 15px);
+            transform: translate(0, 15px);
+  }
+  50% {
+    -webkit-transform: translate(15px, 15px);
+            transform: translate(15px, 15px);
+  }
+  75% {
+    -webkit-transform: translate(15px, 0);
+            transform: translate(15px, 0);
+  }
+}
+.loading5 .shape2 {
+  animation: animation5shape2 2s ease 0s infinite reverse;
+}
+
+@-webkit-keyframes animation5shape2 {
+  0% {
+    -webkit-transform: translate(0, 0);
+            transform: translate(0, 0);
+  }
+  25% {
+    -webkit-transform: translate(-15px, 0);
+            transform: translate(-15px, 0);
+  }
+  50% {
+    -webkit-transform: translate(-15px, 15px);
+            transform: translate(-15px, 15px);
+  }
+  75% {
+    -webkit-transform: translate(0, 15px);
+            transform: translate(0, 15px);
+  }
+}
+
+@keyframes animation5shape2 {
+  0% {
+    -webkit-transform: translate(0, 0);
+            transform: translate(0, 0);
+  }
+  25% {
+    -webkit-transform: translate(-15px, 0);
+            transform: translate(-15px, 0);
+  }
+  50% {
+    -webkit-transform: translate(-15px, 15px);
+            transform: translate(-15px, 15px);
+  }
+  75% {
+    -webkit-transform: translate(0, 15px);
+            transform: translate(0, 15px);
+  }
+}
+.loading5 .shape3 {
+  animation: animation5shape3 2s ease 0s infinite reverse;
+}
+
+@-webkit-keyframes animation5shape3 {
+  0% {
+    -webkit-transform: translate(0, 0);
+            transform: translate(0, 0);
+  }
+  25% {
+    -webkit-transform: translate(15px, 0);
+            transform: translate(15px, 0);
+  }
+  50% {
+    -webkit-transform: translate(15px, -15px);
+            transform: translate(15px, -15px);
+  }
+  75% {
+    -webkit-transform: translate(0, -15px);
+            transform: translate(0, -15px);
+  }
+}
+
+@keyframes animation5shape3 {
+  0% {
+    -webkit-transform: translate(0, 0);
+            transform: translate(0, 0);
+  }
+  25% {
+    -webkit-transform: translate(15px, 0);
+            transform: translate(15px, 0);
+  }
+  50% {
+    -webkit-transform: translate(15px, -15px);
+            transform: translate(15px, -15px);
+  }
+  75% {
+    -webkit-transform: translate(0, -15px);
+            transform: translate(0, -15px);
+  }
+}
+.loading5 .shape4 {
+  animation: animation5shape4 2s ease 0s infinite reverse;
+}
+
+@-webkit-keyframes animation5shape4 {
+  0% {
+    -webkit-transform: translate(0, 0);
+            transform: translate(0, 0);
+  }
+  25% {
+    -webkit-transform: translate(0, -15px);
+            transform: translate(0, -15px);
+  }
+  50% {
+    -webkit-transform: translate(-15px, -15px);
+            transform: translate(-15px, -15px);
+  }
+  75% {
+    -webkit-transform: translate(-15px, 0);
+            transform: translate(-15px, 0);
+  }
+}
+
+@keyframes animation5shape4 {
+  0% {
+    -webkit-transform: translate(0, 0);
+            transform: translate(0, 0);
+  }
+  25% {
+    -webkit-transform: translate(0, -15px);
+            transform: translate(0, -15px);
+  }
+  50% {
+    -webkit-transform: translate(-15px, -15px);
+            transform: translate(-15px, -15px);
+  }
+  75% {
+    -webkit-transform: translate(-15px, 0);
+            transform: translate(-15px, 0);
+  }
+}
+
+</style>

+ 229 - 0
virgo.wzfrontend/yui_wx/uni_modules/qiun-data-charts/components/qiun-loading/loading5.vue

@@ -0,0 +1,229 @@
+<template>
+	 <view class="container loading6">
+		<view class="shape shape1"></view>
+		<view class="shape shape2"></view>
+		<view class="shape shape3"></view>
+		<view class="shape shape4"></view>
+	</view>
+</template>
+
+<script>
+	export default {
+		name: 'loading6',
+		data() {
+			return {
+				
+			};
+		}
+	}
+</script>
+<style scoped="true">
+.container {
+  width: 30px;
+  height: 30px;
+  position: relative;
+}
+
+.container.loading6 {
+  -webkit-animation: rotation 1s infinite;
+          animation: rotation 1s infinite;
+}
+.container.loading6 .shape {
+  width: 12px;
+  height: 12px;
+  border-radius: 2px;
+}
+.container .shape {
+  position: absolute;
+  width: 10px;
+  height: 10px;
+  border-radius: 1px;
+}
+.container .shape.shape1 {
+  left: 0;
+  background-color: #1890FF;
+}
+.container .shape.shape2 {
+  right: 0;
+  background-color: #91CB74;
+}
+.container .shape.shape3 {
+  bottom: 0;
+  background-color: #FAC858;
+}
+.container .shape.shape4 {
+  bottom: 0;
+  right: 0;
+  background-color: #EE6666;
+}
+
+
+.loading6 .shape1 {
+  -webkit-animation: animation6shape1 2s linear 0s infinite normal;
+          animation: animation6shape1 2s linear 0s infinite normal;
+}
+
+@-webkit-keyframes animation6shape1 {
+  0% {
+    -webkit-transform: translate(0, 0);
+            transform: translate(0, 0);
+  }
+  25% {
+    -webkit-transform: translate(0, 18px);
+            transform: translate(0, 18px);
+  }
+  50% {
+    -webkit-transform: translate(18px, 18px);
+            transform: translate(18px, 18px);
+  }
+  75% {
+    -webkit-transform: translate(18px, 0);
+            transform: translate(18px, 0);
+  }
+}
+
+@keyframes animation6shape1 {
+  0% {
+    -webkit-transform: translate(0, 0);
+            transform: translate(0, 0);
+  }
+  25% {
+    -webkit-transform: translate(0, 18px);
+            transform: translate(0, 18px);
+  }
+  50% {
+    -webkit-transform: translate(18px, 18px);
+            transform: translate(18px, 18px);
+  }
+  75% {
+    -webkit-transform: translate(18px, 0);
+            transform: translate(18px, 0);
+  }
+}
+.loading6 .shape2 {
+  -webkit-animation: animation6shape2 2s linear 0s infinite normal;
+          animation: animation6shape2 2s linear 0s infinite normal;
+}
+
+@-webkit-keyframes animation6shape2 {
+  0% {
+    -webkit-transform: translate(0, 0);
+            transform: translate(0, 0);
+  }
+  25% {
+    -webkit-transform: translate(-18px, 0);
+            transform: translate(-18px, 0);
+  }
+  50% {
+    -webkit-transform: translate(-18px, 18px);
+            transform: translate(-18px, 18px);
+  }
+  75% {
+    -webkit-transform: translate(0, 18px);
+            transform: translate(0, 18px);
+  }
+}
+
+@keyframes animation6shape2 {
+  0% {
+    -webkit-transform: translate(0, 0);
+            transform: translate(0, 0);
+  }
+  25% {
+    -webkit-transform: translate(-18px, 0);
+            transform: translate(-18px, 0);
+  }
+  50% {
+    -webkit-transform: translate(-18px, 18px);
+            transform: translate(-18px, 18px);
+  }
+  75% {
+    -webkit-transform: translate(0, 18px);
+            transform: translate(0, 18px);
+  }
+}
+.loading6 .shape3 {
+  -webkit-animation: animation6shape3 2s linear 0s infinite normal;
+          animation: animation6shape3 2s linear 0s infinite normal;
+}
+
+@-webkit-keyframes animation6shape3 {
+  0% {
+    -webkit-transform: translate(0, 0);
+            transform: translate(0, 0);
+  }
+  25% {
+    -webkit-transform: translate(18px, 0);
+            transform: translate(18px, 0);
+  }
+  50% {
+    -webkit-transform: translate(18px, -18px);
+            transform: translate(18px, -18px);
+  }
+  75% {
+    -webkit-transform: translate(0, -18px);
+            transform: translate(0, -18px);
+  }
+}
+
+@keyframes animation6shape3 {
+  0% {
+    -webkit-transform: translate(0, 0);
+            transform: translate(0, 0);
+  }
+  25% {
+    -webkit-transform: translate(18px, 0);
+            transform: translate(18px, 0);
+  }
+  50% {
+    -webkit-transform: translate(18px, -18px);
+            transform: translate(18px, -18px);
+  }
+  75% {
+    -webkit-transform: translate(0, -18px);
+            transform: translate(0, -18px);
+  }
+}
+.loading6 .shape4 {
+  -webkit-animation: animation6shape4 2s linear 0s infinite normal;
+          animation: animation6shape4 2s linear 0s infinite normal;
+}
+
+@-webkit-keyframes animation6shape4 {
+  0% {
+    -webkit-transform: translate(0, 0);
+            transform: translate(0, 0);
+  }
+  25% {
+    -webkit-transform: translate(0, -18px);
+            transform: translate(0, -18px);
+  }
+  50% {
+    -webkit-transform: translate(-18px, -18px);
+            transform: translate(-18px, -18px);
+  }
+  75% {
+    -webkit-transform: translate(-18px, 0);
+            transform: translate(-18px, 0);
+  }
+}
+
+@keyframes animation6shape4 {
+  0% {
+    -webkit-transform: translate(0, 0);
+            transform: translate(0, 0);
+  }
+  25% {
+    -webkit-transform: translate(0, -18px);
+            transform: translate(0, -18px);
+  }
+  50% {
+    -webkit-transform: translate(-18px, -18px);
+            transform: translate(-18px, -18px);
+  }
+  75% {
+    -webkit-transform: translate(-18px, 0);
+            transform: translate(-18px, 0);
+  }
+}
+</style>

+ 36 - 0
virgo.wzfrontend/yui_wx/uni_modules/qiun-data-charts/components/qiun-loading/qiun-loading.vue

@@ -0,0 +1,36 @@
+<template>
+	<view>
+	 <Loading1 v-if="loadingType==1"/>
+	 <Loading2 v-if="loadingType==2"/>
+	 <Loading3 v-if="loadingType==3"/>
+	 <Loading4 v-if="loadingType==4"/>
+	 <Loading5 v-if="loadingType==5"/>
+	</view>
+</template>
+
+<script>
+	import Loading1 from "./loading1.vue";
+	import Loading2 from "./loading2.vue";
+	import Loading3 from "./loading3.vue";
+	import Loading4 from "./loading4.vue";
+	import Loading5 from "./loading5.vue";
+	export default {
+		components:{Loading1,Loading2,Loading3,Loading4,Loading5},
+		name: 'qiun-loading',
+		props: {
+			loadingType: {
+				type: Number,
+				default: 2
+			},
+		},
+		data() {
+			return {
+				
+			};
+		},
+	}
+</script>
+
+<style>
+
+</style>

+ 422 - 0
virgo.wzfrontend/yui_wx/uni_modules/qiun-data-charts/js_sdk/u-charts/config-echarts.js

@@ -0,0 +1,422 @@
+/*
+ * uCharts®
+ * 高性能跨平台图表库,支持H5、APP、小程序(微信/支付宝/百度/头条/QQ/360)、Vue、Taro等支持canvas的框架平台
+ * Copyright (c) 2021 QIUN®秋云 https://www.ucharts.cn All rights reserved.
+ * Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
+ * 复制使用请保留本段注释,感谢支持开源!
+ * 
+ * uCharts®官方网站
+ * https://www.uCharts.cn
+ * 
+ * 开源地址:
+ * https://gitee.com/uCharts/uCharts
+ * 
+ * uni-app插件市场地址:
+ * http://ext.dcloud.net.cn/plugin?id=271
+ * 
+ */
+
+// 通用配置项
+
+// 主题颜色配置:如每个图表类型需要不同主题,请在对应图表类型上更改color属性
+const color = ['#1890FF', '#91CB74', '#FAC858', '#EE6666', '#73C0DE', '#3CA272', '#FC8452', '#9A60B4', '#ea7ccc'];
+
+const cfe = {
+  //demotype为自定义图表类型
+	"type": ["pie", "ring", "rose", "funnel", "line", "column", "area", "radar", "gauge","candle","demotype"],
+  //增加自定义图表类型,如果需要categories,请在这里加入您的图表类型例如最后的"demotype"
+	"categories": ["line", "column", "area", "radar", "gauge", "candle","demotype"],
+  //instance为实例变量承载属性,option为eopts承载属性,不要删除
+	"instance": {},
+	"option": {},
+  //下面是自定义format配置,因除H5端外的其他端无法通过props传递函数,只能通过此属性对应下标的方式来替换
+  "formatter":{
+    "tooltipDemo1":function(res){
+      let result = ''
+      for (let i in res) {
+      	if (i == 0) {
+      		result += res[i].axisValueLabel + '年销售额'
+      	}
+      	let value = '--'
+      	if (res[i].data !== null) {
+      		value = res[i].data
+      	}
+      	// #ifdef H5
+      	result += '\n' + res[i].seriesName + ':' + value + ' 万元'
+      	// #endif
+      	
+      	// #ifdef APP-PLUS
+      	result += '<br/>' + res[i].marker + res[i].seriesName + ':' + value + ' 万元'
+      	// #endif
+      }
+      return result;
+    },
+    legendFormat:function(name){
+      return "自定义图例+"+name;
+    },
+    yAxisFormatDemo:function (value, index) {
+      return value + '元';
+    },
+    seriesFormatDemo:function(res){
+      return res.name + '年' + res.value + '元';
+    }
+  },
+  //这里演示了自定义您的图表类型的option,可以随意命名,之后在组件上 type="demotype" 后,组件会调用这个花括号里的option,如果组件上还存在eopts参数,会将demotype与eopts中option合并后渲染图表。
+  "demotype":{
+    "color": color,
+    //在这里填写echarts的option即可
+    
+  },
+  //下面是自定义配置,请添加项目所需的通用配置
+	"column": {
+		"color": color,
+		"title": {
+			"text": ''
+		},
+		"tooltip": {
+			"trigger": 'axis'
+		},
+		"grid": {
+			"top": 30,
+			"bottom": 50,
+			"right": 15,
+			"left": 40
+		},
+		"legend": {
+			"bottom": 'left',
+		},
+		"toolbox": {
+			"show": false,
+		},
+		"xAxis": {
+			"type": 'category',
+			"axisLabel": {
+				"color": '#666666'
+			},
+			"axisLine": {
+				"lineStyle": {
+					"color": '#CCCCCC'
+				}
+			},
+			"boundaryGap": true,
+			"data": []
+		},
+		"yAxis": {
+			"type": 'value',
+			"axisTick": {
+				"show": false,
+			},
+			"axisLabel": {
+				"color": '#666666'
+			},
+			"axisLine": {
+				"lineStyle": {
+					"color": '#CCCCCC'
+				}
+			},
+		},
+		"seriesTemplate": {
+			"name": '',
+			"type": 'bar',
+			"data": [],
+			"barwidth": 20,
+			"label": {
+				"show": true,
+        "color": "#666666",
+				"position": 'top',
+			},
+		},
+	},
+	"line": {
+		"color": color,
+		"title": {
+			"text": ''
+		},
+		"tooltip": {
+			"trigger": 'axis'
+		},
+		"grid": {
+			"top": 30,
+			"bottom": 50,
+			"right": 15,
+			"left": 40
+		},
+		"legend": {
+			"bottom": 'left',
+		},
+		"toolbox": {
+			"show": false,
+		},
+		"xAxis": {
+			"type": 'category',
+			"axisLabel": {
+				"color": '#666666'
+			},
+			"axisLine": {
+				"lineStyle": {
+					"color": '#CCCCCC'
+				}
+			},
+			"boundaryGap": true,
+			"data": []
+		},
+		"yAxis": {
+			"type": 'value',
+			"axisTick": {
+				"show": false,
+			},
+			"axisLabel": {
+				"color": '#666666'
+			},
+			"axisLine": {
+				"lineStyle": {
+					"color": '#CCCCCC'
+				}
+			},
+		},
+		"seriesTemplate": {
+			"name": '',
+			"type": 'line',
+			"data": [],
+			"barwidth": 20,
+			"label": {
+				"show": true,
+        "color": "#666666",
+				"position": 'top',
+			},
+		},
+	},
+	"area": {
+		"color": color,
+		"title": {
+			"text": ''
+		},
+		"tooltip": {
+			"trigger": 'axis'
+		},
+		"grid": {
+			"top": 30,
+			"bottom": 50,
+			"right": 15,
+			"left": 40
+		},
+		"legend": {
+			"bottom": 'left',
+		},
+		"toolbox": {
+			"show": false,
+		},
+		"xAxis": {
+			"type": 'category',
+			"axisLabel": {
+				"color": '#666666'
+			},
+			"axisLine": {
+				"lineStyle": {
+					"color": '#CCCCCC'
+				}
+			},
+			"boundaryGap": true,
+			"data": []
+		},
+		"yAxis": {
+			"type": 'value',
+			"axisTick": {
+				"show": false,
+			},
+			"axisLabel": {
+				"color": '#666666'
+			},
+			"axisLine": {
+				"lineStyle": {
+					"color": '#CCCCCC'
+				}
+			},
+		},
+		"seriesTemplate": {
+			"name": '',
+			"type": 'line',
+			"data": [],
+			"areaStyle": {},
+			"label": {
+				"show": true,
+        "color": "#666666",
+				"position": 'top',
+			},
+		},
+	},
+	"pie": {
+		"color": color,
+		"title": {
+			"text": ''
+		},
+		"tooltip": {
+			"trigger": 'item'
+		},
+		"grid": {
+			"top": 40,
+			"bottom": 30,
+			"right": 15,
+			"left": 15
+		},
+		"legend": {
+			"bottom": 'left',
+		},
+		"seriesTemplate": {
+			"name": '',
+			"type": 'pie',
+			"data": [],
+			"radius": '50%',
+			"label": {
+				"show": true,
+        "color": "#666666",
+				"position": 'top',
+			},
+		},
+	},
+	"ring": {
+		"color": color,
+		"title": {
+			"text": ''
+		},
+		"tooltip": {
+			"trigger": 'item'
+		},
+		"grid": {
+			"top": 40,
+			"bottom": 30,
+			"right": 15,
+			"left": 15
+		},
+		"legend": {
+			"bottom": 'left',
+		},
+		"seriesTemplate": {
+			"name": '',
+			"type": 'pie',
+			"data": [],
+			"radius": ['40%', '70%'],
+			"avoidLabelOverlap": false,
+			"label": {
+				"show": true,
+        "color": "#666666",
+				"position": 'top',
+			},
+			"labelLine": {
+				"show": true
+			},
+		},
+	},
+	"rose": {
+		"color": color,
+		"title": {
+			"text": ''
+		},
+		"tooltip": {
+			"trigger": 'item'
+		},
+		"legend": {
+			"top": 'bottom'
+		},
+		"seriesTemplate": {
+			"name": '',
+			"type": 'pie',
+			"data": [],
+			"radius": "55%",
+			"center": ['50%', '50%'],
+			"roseType": 'area',
+		},
+	},
+	"funnel": {
+		"color": color,
+		"title": {
+			"text": ''
+		},
+		"tooltip": {
+			"trigger": 'item',
+			"formatter": "{b} : {c}%"
+		},
+		"legend": {
+			"top": 'bottom'
+		},
+		"seriesTemplate": {
+			"name": '',
+			"type": 'funnel',
+			"left": '10%',
+			"top": 60,
+			"bottom": 60,
+			"width": '80%',
+			"min": 0,
+			"max": 100,
+			"minSize": '0%',
+			"maxSize": '100%',
+			"sort": 'descending',
+			"gap": 2,
+			"label": {
+				"show": true,
+				"position": 'inside'
+			},
+			"labelLine": {
+				"length": 10,
+				"lineStyle": {
+					"width": 1,
+					"type": 'solid'
+				}
+			},
+			"itemStyle": {
+				"bordercolor": '#fff',
+				"borderwidth": 1
+			},
+			"emphasis": {
+				"label": {
+					"fontSize": 20
+				}
+			},
+			"data": [],
+		},
+	},
+	"gauge": {
+		"color": color,
+		"tooltip": {
+        "formatter": '{a} <br/>{b} : {c}%'
+    },
+		"seriesTemplate": {
+			"name": '业务指标',
+      "type": 'gauge',
+      "detail": {"formatter": '{value}%'},
+      "data": [{"value": 50, "name": '完成率'}]
+		},
+	},
+	"candle": {
+		"xAxis": {
+			"data": []
+		},
+		"yAxis": {},
+		"color": color,
+		"title": {
+			"text": ''
+		},
+		"dataZoom": [{
+				"type": 'inside',
+				"xAxisIndex": [0, 1],
+				"start": 10,
+				"end": 100
+			},
+			{
+				"show": true,
+				"xAxisIndex": [0, 1],
+				"type": 'slider',
+				"bottom": 10,
+				"start": 10,
+				"end": 100
+			}
+		],
+		"seriesTemplate": {
+			"name": '',
+			"type": 'k',
+			"data": [],
+		},
+	}
+}
+
+export default cfe;

+ 606 - 0
virgo.wzfrontend/yui_wx/uni_modules/qiun-data-charts/js_sdk/u-charts/config-ucharts.js

@@ -0,0 +1,606 @@
+/*
+ * uCharts®
+ * 高性能跨平台图表库,支持H5、APP、小程序(微信/支付宝/百度/头条/QQ/360)、Vue、Taro等支持canvas的框架平台
+ * Copyright (c) 2021 QIUN®秋云 https://www.ucharts.cn All rights reserved.
+ * Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
+ * 复制使用请保留本段注释,感谢支持开源!
+ * 
+ * uCharts®官方网站
+ * https://www.uCharts.cn
+ * 
+ * 开源地址:
+ * https://gitee.com/uCharts/uCharts
+ * 
+ * uni-app插件市场地址:
+ * http://ext.dcloud.net.cn/plugin?id=271
+ * 
+ */
+
+// 主题颜色配置:如每个图表类型需要不同主题,请在对应图表类型上更改color属性
+const color = ['#1890FF', '#91CB74', '#FAC858', '#EE6666', '#73C0DE', '#3CA272', '#FC8452', '#9A60B4', '#ea7ccc'];
+
+//事件转换函数,主要用作格式化x轴为时间轴,根据需求自行修改
+const formatDateTime = (timeStamp, returnType)=>{
+  var date = new Date();
+  date.setTime(timeStamp * 1000);
+  var y = date.getFullYear();
+  var m = date.getMonth() + 1;
+  m = m < 10 ? ('0' + m) : m;
+  var d = date.getDate();
+  d = d < 10 ? ('0' + d) : d;
+  var h = date.getHours();
+  h = h < 10 ? ('0' + h) : h;
+  var minute = date.getMinutes();
+  var second = date.getSeconds();
+  minute = minute < 10 ? ('0' + minute) : minute;
+  second = second < 10 ? ('0' + second) : second;
+  if(returnType == 'full'){return y + '-' + m + '-' + d + ' '+ h +':' + minute + ':' + second;}
+  if(returnType == 'y-m-d'){return y + '-' + m + '-' + d;}
+  if(returnType == 'h:m'){return  h +':' + minute;}
+  if(returnType == 'h:m:s'){return  h +':' + minute +':' + second;}
+  return [y, m, d, h, minute, second];
+}
+
+const cfu = {
+  //demotype为自定义图表类型,一般不需要自定义图表类型,只需要改根节点上对应的类型即可
+	"type":["pie","ring","rose","word","funnel","map","arcbar","line","column","mount","bar","area","radar","gauge","candle","mix","tline","tarea","scatter","bubble","demotype"],
+	"range":["饼状图","圆环图","玫瑰图","词云图","漏斗图","地图","圆弧进度条","折线图","柱状图","山峰图","条状图","区域图","雷达图","仪表盘","K线图","混合图","时间轴折线","时间轴区域","散点图","气泡图","自定义类型"],
+  //增加自定义图表类型,如果需要categories,请在这里加入您的图表类型,例如最后的"demotype"
+  //自定义类型时需要注意"tline","tarea","scatter","bubble"等时间轴(矢量x轴)类图表,没有categories,不需要加入categories
+	"categories":["line","column","mount","bar","area","radar","gauge","candle","mix","demotype"],
+  //instance为实例变量承载属性,不要删除
+  "instance":{},
+  //option为opts及eopts承载属性,不要删除
+  "option":{},
+  //下面是自定义format配置,因除H5端外的其他端无法通过props传递函数,只能通过此属性对应下标的方式来替换
+  "formatter":{
+    "yAxisDemo1":function(val, index, opts){return val+'元'},
+    "yAxisDemo2":function(val, index, opts){return val.toFixed(2)},
+    "xAxisDemo1":function(val, index, opts){return val+'年';},
+    "xAxisDemo2":function(val, index, opts){return formatDateTime(val,'h:m')},
+    "seriesDemo1":function(val, index, series, opts){return val+'元'},
+    "tooltipDemo1":function(item, category, index, opts){
+      if(index==0){
+      	return '随便用'+item.data+'年'
+      }else{
+      	return '其他我没改'+item.data+'天'
+      }
+    },
+    "pieDemo":function(val, index, series, opts){
+      if(index !== undefined){
+        return series[index].name+':'+series[index].data+'元'
+      }
+    },
+  },
+  //这里演示了自定义您的图表类型的option,可以随意命名,之后在组件上 type="demotype" 后,组件会调用这个花括号里的option,如果组件上还存在opts参数,会将demotype与opts中option合并后渲染图表。
+  "demotype":{
+    //我这里把曲线图当做了自定义图表类型,您可以根据需要随意指定类型或配置
+    "type": "line",
+    "color": color,
+    "padding": [15,10,0,15],
+    "xAxis": {
+      "disableGrid": true,
+    },
+    "yAxis": {
+      "gridType": "dash",
+      "dashLength": 2,
+    },
+    "legend": {
+    },
+    "extra": {
+    	"line": {
+    		"type": "curve",
+    		"width": 2
+    	},
+    }
+  },
+  //下面是自定义配置,请添加项目所需的通用配置
+	"pie":{
+		"type": "pie",
+    "color": color,
+		"padding": [5,5,5,5],
+		"extra": {
+			"pie": {
+				"activeOpacity": 0.5,
+				"activeRadius": 10,
+				"offsetAngle": 0,
+				"labelWidth": 15,
+				"border": true,
+				"borderWidth": 3,
+				"borderColor": "#FFFFFF"
+			},
+		}
+	},
+	"ring":{
+		"type": "ring",
+    "color": color,
+		"padding": [5,5,5,5],
+		"rotate": false,
+		"dataLabel": true,
+		"legend": {
+			"show": true,
+			"position": "right",
+      "lineHeight": 25,
+		},
+		"title": {
+			"name": "收益率",
+			"fontSize": 15,
+			"color": "#666666"
+		},
+		"subtitle": {
+			"name": "70%",
+			"fontSize": 25,
+			"color": "#7cb5ec"
+		},
+		"extra": {
+			"ring": {
+				"ringWidth":30,
+				"activeOpacity": 0.5,
+				"activeRadius": 10,
+				"offsetAngle": 0,
+				"labelWidth": 15,
+				"border": true,
+				"borderWidth": 3,
+				"borderColor": "#FFFFFF"
+			},
+		},
+	},
+	"rose":{
+		"type": "rose",
+    "color": color,
+		"padding": [5,5,5,5],
+		"legend": {
+			"show": true,
+			"position": "left",
+      "lineHeight": 25,
+		},
+		"extra": {
+			"rose": {
+				"type": "area",
+				"minRadius": 50,
+				"activeOpacity": 0.5,
+				"activeRadius": 10,
+				"offsetAngle": 0,
+				"labelWidth": 15,
+				"border": false,
+				"borderWidth": 2,
+				"borderColor": "#FFFFFF"
+			},
+		}
+	},
+	"word":{
+		"type": "word",
+    "color": color,
+		"extra": {
+			"word": {
+				"type": "normal",
+				"autoColors": false
+			}
+		}
+	},
+	"funnel":{
+		"type": "funnel",
+    "color": color,
+		"padding": [15,15,0,15],
+		"extra": {
+			"funnel": {
+				"activeOpacity": 0.3,
+				"activeWidth": 10,
+				"border": true,
+				"borderWidth": 2,
+				"borderColor": "#FFFFFF",
+				"fillOpacity": 1,
+				"labelAlign": "right"
+			},
+		}
+	},
+	"map":{
+		"type": "map",
+    "color": color,
+		"padding": [0,0,0,0],
+    "dataLabel": true,
+		"extra": {
+			"map": {
+				"border": true,
+				"borderWidth": 1,
+				"borderColor": "#666666",
+				"fillOpacity": 0.6,
+				"activeBorderColor": "#F04864",
+				"activeFillColor": "#FACC14",
+				"activeFillOpacity": 1
+			},
+		}
+	},
+	"arcbar":{
+		"type": "arcbar",
+    "color": color,
+		"title": {
+			"name": "百分比",
+			"fontSize": 25,
+			"color": "#00FF00"
+		},
+		"subtitle": {
+			"name": "默认标题",
+			"fontSize": 15,
+			"color": "#666666"
+		},
+		"extra": {
+			"arcbar": {
+				"type": "default",
+				"width": 12,
+				"backgroundColor": "#E9E9E9",
+				"startAngle": 0.75,
+				"endAngle": 0.25,
+				"gap": 2
+			}
+		}
+	},
+	"line":{
+		"type": "line",
+    "color": color,
+		"padding": [15,10,0,15],
+		"xAxis": {
+      "disableGrid": true,
+		},
+		"yAxis": {
+      "gridType": "dash",
+      "dashLength": 2,
+		},
+		"legend": {
+		},
+		"extra": {
+			"line": {
+				"type": "straight",
+				"width": 2,
+        "activeType": "hollow"
+			},
+		}
+	},
+  "tline":{
+  	"type": "line",
+    "color": color,
+  	"padding": [15,10,0,15],
+  	"xAxis": {
+      "disableGrid": false,
+      "boundaryGap":"justify",
+  	},
+  	"yAxis": {
+      "gridType": "dash",
+      "dashLength": 2,
+      "data":[
+        {
+          "min":0,
+          "max":80
+        }
+      ]
+  	},
+  	"legend": {
+  	},
+  	"extra": {
+  		"line": {
+  			"type": "curve",
+  			"width": 2,
+        "activeType": "hollow"
+  		},
+  	}
+  },
+  "tarea":{
+  	"type": "area",
+    "color": color,
+  	"padding": [15,10,0,15],
+  	"xAxis": {
+      "disableGrid": true,
+      "boundaryGap":"justify",
+  	},
+  	"yAxis": {
+      "gridType": "dash",
+      "dashLength": 2,
+      "data":[
+        {
+          "min":0,
+          "max":80
+        }
+      ]
+  	},
+  	"legend": {
+  	},
+  	"extra": {
+  		"area": {
+  			"type": "curve",
+  			"opacity": 0.2,
+  			"addLine": true,
+  			"width": 2,
+  			"gradient": true,
+        "activeType": "hollow"
+  		},
+  	}
+  },
+	"column":{
+		"type": "column",
+    "color": color,
+		"padding": [15,15,0,5],
+		"xAxis": {
+      "disableGrid": true,
+		},
+		"yAxis": {
+      "data":[{"min":0}]
+		},
+		"legend": {
+		},
+		"extra": {
+			"column": {
+				"type": "group",
+				"width": 30,
+				"activeBgColor": "#000000",
+				"activeBgOpacity": 0.08
+			},
+		}
+	},
+  "mount":{
+  	"type": "mount",
+    "color": color,
+  	"padding": [15,15,0,5],
+  	"xAxis": {
+      "disableGrid": true,
+  	},
+  	"yAxis": {
+      "data":[{"min":0}]
+  	},
+  	"legend": {
+  	},
+  	"extra": {
+  		"mount": {
+  			"type": "mount",
+  			"widthRatio": 1.5,
+  		},
+  	}
+  },
+  "bar":{
+  	"type": "bar",
+    "color": color,
+  	"padding": [15,30,0,5],
+  	"xAxis": {
+      "boundaryGap":"justify",
+      "disableGrid":false,
+      "min":0,
+      "axisLine":false
+  	},
+  	"yAxis": {
+  	},
+  	"legend": {
+  	},
+  	"extra": {
+  		"bar": {
+  			"type": "group",
+  			"width": 30,
+  			"meterBorde": 1,
+  			"meterFillColor": "#FFFFFF",
+  			"activeBgColor": "#000000",
+  			"activeBgOpacity": 0.08
+  		},
+  	}
+  },
+	"area":{
+		"type": "area",
+		"color": color,
+		"padding": [15,15,0,15],
+		"xAxis": {
+      "disableGrid": true,
+		},
+		"yAxis": {
+      "gridType": "dash",
+      "dashLength": 2,
+		},
+		"legend": {
+		},
+		"extra": {
+			"area": {
+				"type": "straight",
+				"opacity": 0.2,
+				"addLine": true,
+				"width": 2,
+				"gradient": false,
+        "activeType": "hollow"
+			},
+		}
+	},
+	"radar":{
+		"type": "radar",
+		"color": color,
+		"padding": [5,5,5,5],
+    "dataLabel": false,
+		"legend": {
+			"show": true,
+			"position": "right",
+      "lineHeight": 25,
+		},
+		"extra": {
+			"radar": {
+				"gridType": "radar",
+				"gridColor": "#CCCCCC",
+				"gridCount": 3,
+				"opacity": 0.2,
+				"max": 200,
+				"labelShow": true
+			},
+		}
+	},
+	"gauge":{
+		"type": "gauge",
+		"color": color,
+		"title": {
+			"name": "66Km/H",
+			"fontSize": 25,
+			"color": "#2fc25b",
+			"offsetY": 50
+		},
+		"subtitle": {
+			"name": "实时速度",
+			"fontSize": 15,
+			"color": "#1890ff",
+			"offsetY": -50
+		},
+		"extra": {
+			"gauge": {
+				"type": "default",
+				"width": 30,
+				"labelColor": "#666666",
+				"startAngle": 0.75,
+				"endAngle": 0.25,
+				"startNumber": 0,
+				"endNumber": 100,
+				"labelFormat": "",
+				"splitLine": {
+					"fixRadius": 0,
+					"splitNumber": 10,
+					"width": 30,
+					"color": "#FFFFFF",
+					"childNumber": 5,
+					"childWidth": 12
+				},
+				"pointer": {
+					"width": 24,
+					"color": "auto"
+				}
+			}
+		}
+	},
+	"candle":{
+		"type": "candle",
+		"color": color,
+		"padding": [15,15,0,15],
+		"enableScroll": true,
+		"enableMarkLine": true,
+		"dataLabel": false,
+		"xAxis": {
+			"labelCount": 4,
+			"itemCount": 40,
+			"disableGrid": true,
+			"gridColor": "#CCCCCC",
+			"gridType": "solid",
+			"dashLength": 4,
+			"scrollShow": true,
+			"scrollAlign": "left",
+			"scrollColor": "#A6A6A6",
+			"scrollBackgroundColor": "#EFEBEF"
+		},
+		"yAxis": {
+		},
+		"legend": {
+		},
+		"extra": {
+			"candle": {
+				"color": {
+					"upLine": "#f04864",
+					"upFill": "#f04864",
+					"downLine": "#2fc25b",
+					"downFill": "#2fc25b"
+				},
+				"average": {
+					"show": true,
+					"name": ["MA5","MA10","MA30"],
+					"day": [5,10,20],
+					"color": ["#1890ff","#2fc25b","#facc14"]
+				}
+			},
+			"markLine": {
+				"type": "dash",
+				"dashLength": 5,
+				"data": [
+					{
+						"value": 2150,
+						"lineColor": "#f04864",
+						"showLabel": true
+					},
+					{
+						"value": 2350,
+						"lineColor": "#f04864",
+						"showLabel": true
+					}
+				]
+			}
+		}
+	},
+	"mix":{
+		"type": "mix",
+		"color": color,
+		"padding": [15,15,0,15],
+		"xAxis": {
+      "disableGrid": true,
+		},
+		"yAxis": {
+			"disabled": false,
+			"disableGrid": false,
+			"splitNumber": 5,
+			"gridType": "dash",
+			"dashLength": 4,
+			"gridColor": "#CCCCCC",
+			"padding": 10,
+			"showTitle": true,
+			"data": []
+		},
+		"legend": {
+		},
+		"extra": {
+			"mix": {
+				"column": {
+					"width": 20
+				}
+			},
+		}
+	},
+	"scatter":{
+		"type": "scatter",
+		"color":color,
+		"padding":[15,15,0,15],
+    "dataLabel":false,
+    "xAxis": {
+      "disableGrid": false,
+      "gridType":"dash",
+      "splitNumber":5,
+      "boundaryGap":"justify",
+      "min":0
+    },
+    "yAxis": {
+      "disableGrid": false,
+      "gridType":"dash",
+    },
+    "legend": {
+    },
+    "extra": {
+    	"scatter": {
+    	},
+    }
+	},
+	"bubble":{
+		"type": "bubble",
+		"color":color,
+		"padding":[15,15,0,15],
+    "xAxis": {
+      "disableGrid": false,
+      "gridType":"dash",
+      "splitNumber":5,
+      "boundaryGap":"justify",
+      "min":0,
+      "max":250
+    },
+    "yAxis": {
+      "disableGrid": false,
+      "gridType":"dash",
+      "data":[{
+        "min":0,
+        "max":150
+      }]
+    },
+    "legend": {
+    },
+    "extra": {
+    	"bubble": {
+        "border":2,
+        "opacity": 0.5,
+    	},
+    }
+	}
+}
+
+export default cfu;

+ 5 - 0
virgo.wzfrontend/yui_wx/uni_modules/qiun-data-charts/js_sdk/u-charts/readme.md

@@ -0,0 +1,5 @@
+# uCharts JSSDK说明
+1、如不使用uCharts组件,可直接引用u-charts.js,打包编译后会`自动压缩`,压缩后体积约为`120kb`。
+2、如果120kb的体积仍需压缩,请手到uCharts官网通过在线定制选择您需要的图表。
+3、config-ucharts.js为uCharts组件的用户配置文件,升级前请`自行备份config-ucharts.js`文件,以免被强制覆盖。
+4、config-echarts.js为ECharts组件的用户配置文件,升级前请`自行备份config-echarts.js`文件,以免被强制覆盖。

Plik diff jest za duży
+ 7706 - 0
virgo.wzfrontend/yui_wx/uni_modules/qiun-data-charts/js_sdk/u-charts/u-charts.js


Plik diff jest za duży
+ 18 - 0
virgo.wzfrontend/yui_wx/uni_modules/qiun-data-charts/js_sdk/u-charts/u-charts.min.js


+ 201 - 0
virgo.wzfrontend/yui_wx/uni_modules/qiun-data-charts/license.md

@@ -0,0 +1,201 @@
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.

+ 80 - 0
virgo.wzfrontend/yui_wx/uni_modules/qiun-data-charts/package.json

@@ -0,0 +1,80 @@
+{
+  "id": "qiun-data-charts",
+  "displayName": "秋云 ucharts echarts 高性能跨全端图表组件",
+  "version": "2.5.0-20230101",
+  "description": "uCharts 新增正负柱状图!支持H5及APP用 ucharts echarts 渲染图表,uniapp可视化首选组件",
+  "keywords": [
+    "ucharts",
+    "echarts",
+    "f2",
+    "图表",
+    "可视化"
+],
+  "repository": "https://gitee.com/uCharts/uCharts",
+"engines": {
+  },
+"dcloudext": {
+    "sale": {
+      "regular": {
+        "price": "0.00"
+      },
+      "sourcecode": {
+        "price": "0.00"
+      }
+    },
+    "contact": {
+      "qq": "474119"
+    },
+    "declaration": {
+      "ads": "无",
+      "data": "插件不采集任何数据",
+      "permissions": "无"
+    },
+    "npmurl": "https://www.npmjs.com/~qiun",
+    "type": "component-vue"
+  },
+  "uni_modules": {
+    "dependencies": [],
+    "encrypt": [],
+    "platforms": {
+      "cloud": {
+        "tcb": "y",
+        "aliyun": "y"
+      },
+      "client": {
+        "App": {
+          "app-vue": "y",
+          "app-nvue": "y"
+        },
+        "H5-mobile": {
+          "Safari": "y",
+          "Android Browser": "y",
+          "微信浏览器(Android)": "y",
+          "QQ浏览器(Android)": "y"
+        },
+        "H5-pc": {
+          "Chrome": "y",
+          "IE": "y",
+          "Edge": "y",
+          "Firefox": "y",
+          "Safari": "y"
+        },
+        "小程序": {
+          "微信": "y",
+          "阿里": "y",
+          "百度": "y",
+          "字节跳动": "y",
+          "QQ": "y"
+        },
+        "快应用": {
+          "华为": "y",
+          "联盟": "y"
+        },
+        "Vue": {
+            "vue2": "y",
+            "vue3": "y"
+        }
+      }
+    }
+  }
+}

Plik diff jest za duży
+ 84 - 0
virgo.wzfrontend/yui_wx/uni_modules/qiun-data-charts/readme.md


Plik diff jest za duży
+ 23 - 0
virgo.wzfrontend/yui_wx/uni_modules/qiun-data-charts/static/app-plus/echarts.min.js


Plik diff jest za duży
+ 23 - 0
virgo.wzfrontend/yui_wx/uni_modules/qiun-data-charts/static/h5/echarts.min.js


+ 14 - 0
virgo.wzfrontend/yui_wx/uni_modules/uv-switch/changelog.md

@@ -0,0 +1,14 @@
+## 1.0.5(2023-09-21)
+1. 优化细节
+## 1.0.4(2023-08-23)
+1. 取消value传值,只能使用v-model传值,避免异步操作不生效的BUG
+## 1.0.3(2023-07-13)
+1. 修复  uv-switch设置value属性不生效的BUG
+## 1.0.2(2023-06-19)
+1. size属性兼容和单位一起使用
+
+## 1.0.1(2023-05-16)
+1. 优化组件依赖,修改后无需全局引入,组件导入即可使用
+2. 优化部分功能
+## 1.0.0(2023-05-10)
+uv-switch 开关选择器

+ 58 - 0
virgo.wzfrontend/yui_wx/uni_modules/uv-switch/components/uv-switch/props.js

@@ -0,0 +1,58 @@
+export default {
+	props: {
+		value: {
+			type: [Boolean, String, Number],
+			default: false
+		},
+		modelValue: {
+			type: [Boolean, String, Number],
+			default: false
+		},
+		// 是否为加载中状态
+		loading: {
+			type: Boolean,
+			default: false
+		},
+		// 是否为禁用装填
+		disabled: {
+			type: Boolean,
+			default: false
+		},
+		// 开关尺寸,单位px
+		size: {
+			type: [String, Number],
+			default: 25
+		},
+		// 打开时的背景颜色
+		activeColor: {
+			type: String,
+			default: '#2979ff'
+		},
+		// 关闭时的背景颜色
+		inactiveColor: {
+			type: String,
+			default: '#fff'
+		},
+		// switch打开时的值
+		activeValue: {
+			type: [String, Number, Boolean],
+			default: true
+		},
+		// switch关闭时的值
+		inactiveValue: {
+			type: [String, Number, Boolean],
+			default: false
+		},
+		// 是否开启异步变更,开启后需要手动控制输入值
+		asyncChange: {
+			type: Boolean,
+			default: false
+		},
+		// 圆点与外边框的距离
+		space: {
+			type: [String, Number],
+			default: 0
+		},
+		...uni.$uv?.props?.switch
+	}
+}

+ 192 - 0
virgo.wzfrontend/yui_wx/uni_modules/uv-switch/components/uv-switch/uv-switch.vue

@@ -0,0 +1,192 @@
+<template>
+	<view
+	  class="uv-switch"
+	  :class="[disabled && 'uv-switch--disabled']"
+	  :style="[switchStyle, $uv.addStyle(customStyle)]"
+	  @tap="clickHandler"
+	>
+		<view
+		  class="uv-switch__bg"
+		  :style="[bgStyle]"
+		>
+		</view>
+		<view
+		  class="uv-switch__node"
+		  :class="[innerValue && 'uv-switch__node--on']"
+		  :style="[nodeStyle]"
+		  ref="uv-switch__node"
+		>
+			<uv-loading-icon
+			  :show="loading"
+			  mode="circle"
+			  timingFunction='linear'
+			  :color="innerValue ? activeColor : '#AAABAD'"
+			  :size="size * 0.6"
+			/>
+		</view>
+	</view>
+</template>
+<script>
+	import mpMixin from '@/uni_modules/uv-ui-tools/libs/mixin/mpMixin.js'
+	import mixin from '@/uni_modules/uv-ui-tools/libs/mixin/mixin.js'
+	import props from './props.js';
+	/**
+	 * switch 开关选择器
+	 * @description 选择开关一般用于只有两个选择,且只能选其一的场景。
+	 * @tutorial https://www.uvui.cn/components/switch.html
+	 * @property {Boolean}						loading			是否处于加载中(默认 false )
+	 * @property {Boolean}						disabled		是否禁用(默认 false )
+	 * @property {String | Number}				size			开关尺寸,单位px (默认 25 )
+	 * @property {String}						activeColor		打开时的背景色 (默认 '#2979ff' )
+	 * @property {String} 						inactiveColor	关闭时的背景色 (默认 '#ffffff' )
+	 * @property {Boolean | String | Number}	value			通过v-model双向绑定的值 (默认 false )
+	 * @property {Boolean | String | Number}	activeValue		打开选择器时通过change事件发出的值 (默认 true )
+	 * @property {Boolean | String | Number}	inactiveValue	关闭选择器时通过change事件发出的值 (默认 false )
+	 * @property {Boolean}						asyncChange		是否开启异步变更,开启后需要手动控制输入值 (默认 false )
+	 * @property {String | Number}				space			圆点与外边框的距离 (默认 0 )
+	 * @property {Object}						customStyle		定义需要用到的外部样式
+	 *
+	 * @event {Function} change 在switch打开或关闭时触发
+	 * @example <uv-switch v-model="checked" active-color="red" inactive-color="#eee"></uv-switch>
+	 */
+	export default {
+		name: "uv-switch",
+		mixins: [mpMixin, mixin, props],
+		data() {
+			return {
+				bgColor: '#ffffff',
+				innerValue: false
+			}
+		},
+		watch: {
+			// #ifdef VUE2
+			value: {
+				immediate: true,
+				handler(newVal) {
+					if (newVal !== this.inactiveValue && newVal !== this.activeValue) {
+						return this.$uv.error('v-model绑定的值必须为inactiveValue、activeValue二者之一')
+					}
+					this.innerValue = newVal;
+				}
+			},
+			// #endif
+			// #ifndef VUE2
+			modelValue: {
+				immediate: true,
+				handler(newVal) {
+					if (newVal !== this.inactiveValue && newVal !== this.activeValue) {
+						return this.$uv.error('v-model绑定的值必须为inactiveValue、activeValue二者之一')
+					}
+					this.innerValue = newVal;
+				}
+			}
+			// #endif
+		},
+		created() {
+			this.innerValue = this.value || this.modelValue;
+		},
+		computed: {
+			isActive() {
+				return this.innerValue === this.activeValue;
+			},
+			switchStyle() {
+				let style = {}
+				// 这里需要加2,是为了腾出边框的距离,否则圆点node会和外边框紧贴在一起
+				style.width = this.$uv.addUnit(this.$uv.getPx(this.size) * 2 + 2)
+				style.height = this.$uv.addUnit(this.$uv.getPx(this.size) + 2)
+				// 如果自定义了“非激活”演示,name边框颜色设置为透明(跟非激活颜色一致)
+				// 这里不能简单的设置为非激活的颜色,否则打开状态时,会有边框,所以需要透明
+				if (this.customInactiveColor) {
+					style.borderColor = 'rgba(0, 0, 0, 0)'
+				}
+				style.backgroundColor = this.isActive ? this.activeColor : this.inactiveColor
+				return style;
+			},
+			nodeStyle() {
+				let style = {}
+				// 如果自定义非激活颜色,将node圆点的尺寸减少两个像素,让其与外边框距离更大一点
+				style.width = this.$uv.addUnit(this.$uv.getPx(this.size) - this.space)
+				style.height = this.$uv.addUnit(this.$uv.getPx(this.size) - this.space)
+				const translateX = this.isActive ? this.$uv.addUnit(this.space) : this.$uv.addUnit(this.$uv.getPx(this.size));
+				style.transform = `translateX(-${translateX})`
+				return style
+			},
+			bgStyle() {
+				let style = {}
+				// 这里配置一个多余的元素在HTML中,是为了让switch切换时,有更良好的背景色扩充体验(见实际效果)
+				style.width = this.$uv.addUnit(this.$uv.getPx(this.size) * 2 - this.$uv.getPx(this.size) / 2)
+				style.height = this.$uv.addUnit(this.$uv.getPx(this.size))
+				style.backgroundColor = this.inactiveColor
+				// 打开时,让此元素收缩,否则反之
+				style.transform = `scale(${this.isActive ? 0 : 1})`
+				return style
+			},
+			customInactiveColor() {
+				// 之所以需要判断是否自定义了“非激活”颜色,是为了让node圆点离外边框更宽一点的距离
+				return this.inactiveColor !== '#fff' && this.inactiveColor !== '#ffffff'
+			}
+		},
+		methods: {
+			clickHandler() {
+				if (!this.disabled && !this.loading) {
+					const oldValue = this.isActive ? this.inactiveValue : this.activeValue
+					if (!this.asyncChange) {
+						this.$emit('input', oldValue)
+						this.$emit('update:modelValue', oldValue)
+					}
+					// 放到下一个生命周期,因为双向绑定的value修改父组件状态需要时间,且是异步的
+					this.$nextTick(() => {
+						this.$emit('change', oldValue)
+					})
+				}
+			}
+		}
+	};
+</script>
+
+<style lang="scss" scoped>
+	@import '@/uni_modules/uv-ui-tools/libs/css/components.scss';
+	.uv-switch {
+		@include flex(row);
+		/* #ifndef APP-NVUE */
+		box-sizing: border-box;
+		/* #endif */
+		position: relative;
+		background-color: #fff;
+		border-width: 1px;
+		border-radius: 100px;
+		transition: background-color 0.4s;
+		border-color: rgba(0, 0, 0, 0.12);
+		border-style: solid;
+		justify-content: flex-end;
+		align-items: center;
+		// 由于weex为阿里逗着玩的KPI项目,导致bug奇多,这必须要写这一行,
+		// 否则在iOS上,点击页面任意地方,都会触发switch的点击事件
+		overflow: hidden;
+		&__node {
+			@include flex(row);
+			align-items: center;
+			justify-content: center;
+			border-radius: 100px;
+			background-color: #fff;
+			border-radius: 100px;
+			box-shadow: 1px 1px 1px 0 rgba(0, 0, 0, 0.25);
+			transition-property: transform;
+			transition-duration: 0.4s;
+			transition-timing-function: cubic-bezier(0.3, 1.05, 0.4, 1.05);
+		}
+		&__bg {
+			position: absolute;
+			border-radius: 100px;
+			background-color: #FFFFFF;
+			transition-property: transform;
+			transition-duration: 0.4s;
+			border-top-left-radius: 0;
+			border-bottom-left-radius: 0;
+			transition-timing-function: ease;
+		}
+		&--disabled {
+			opacity: 0.6;
+		}
+	}
+</style>

+ 88 - 0
virgo.wzfrontend/yui_wx/uni_modules/uv-switch/package.json

@@ -0,0 +1,88 @@
+{
+  "id": "uv-switch",
+  "displayName": "uv-switch 开关选择器 全面兼容vue3+2、app、h5、小程序等多端",
+  "version": "1.0.5",
+  "description": "选择开关用于在打开和关闭状态之间进行切换,支持异步操作。",
+  "keywords": [
+    "uv-switch",
+    "uvui",
+    "uv-ui",
+    "switch",
+    "开关选择器"
+],
+  "repository": "",
+  "engines": {
+    "HBuilderX": "^3.1.0"
+  },
+  "dcloudext": {
+    "type": "component-vue",
+    "sale": {
+      "regular": {
+        "price": "0.00"
+      },
+      "sourcecode": {
+        "price": "0.00"
+      }
+    },
+    "contact": {
+      "qq": ""
+    },
+    "declaration": {
+    	"ads": "无",
+    	"data": "插件不采集任何数据",
+    	"permissions": "无"
+    },
+    "npmurl": ""
+  },
+  "uni_modules": {
+    "dependencies": [
+			"uv-ui-tools",
+			"uv-loading-icon"
+		],
+    "encrypt": [],
+    "platforms": {
+			"cloud": {
+				"tcb": "y",
+				"aliyun": "y"
+			},
+			"client": {
+				"Vue": {
+					"vue2": "y",
+					"vue3": "y"
+				},
+				"App": {
+					"app-vue": "y",
+					"app-nvue": "y"
+				},
+				"H5-mobile": {
+					"Safari": "y",
+					"Android Browser": "y",
+					"微信浏览器(Android)": "y",
+					"QQ浏览器(Android)": "y"
+				},
+				"H5-pc": {
+					"Chrome": "y",
+					"IE": "y",
+					"Edge": "y",
+					"Firefox": "y",
+					"Safari": "y"
+				},
+				"小程序": {
+					"微信": "y",
+					"阿里": "y",
+					"百度": "y",
+					"字节跳动": "y",
+					"QQ": "y",
+					"钉钉": "u",
+					"快手": "u",
+					"飞书": "u",
+					"京东": "u"
+				},
+				"快应用": {
+					"华为": "u",
+					"联盟": "u"
+				}
+			}
+		}
+  }
+}

+ 19 - 0
virgo.wzfrontend/yui_wx/uni_modules/uv-switch/readme.md

@@ -0,0 +1,19 @@
+## Switch 开关选择器
+
+> **组件名:uv-switch**
+
+选择开关用于在打开和关闭状态之间进行切换,支持异步操作。
+
+# <a href="https://www.uvui.cn/components/switch.html" target="_blank">查看文档</a>
+
+## [下载完整示例项目](https://ext.dcloud.net.cn/plugin?name=uv-ui) <small>(请不要 下载插件ZIP)</small>
+
+### [更多插件,请关注uv-ui组件库](https://ext.dcloud.net.cn/plugin?name=uv-ui)
+
+<a href="https://ext.dcloud.net.cn/plugin?name=uv-ui" target="_blank">
+
+![image](https://mp-a667b617-c5f1-4a2d-9a54-683a67cff588.cdn.bspapp.com/uv-ui/banner.png)
+
+</a>
+
+#### 如使用过程中有任何问题反馈,或者您对uv-ui有一些好的建议,欢迎加入uv-ui官方交流群:<a href="https://www.uvui.cn/components/addQQGroup.html" target="_blank">官方QQ群</a>

Plik diff jest za duży
+ 1 - 1
virgo.wzfrontend/yui_wx/unpackage/dist/dev/.sourcemap/mp-weixin/common/runtime.js.map


Plik diff jest za duży
+ 1 - 1
virgo.wzfrontend/yui_wx/unpackage/dist/dev/.sourcemap/mp-weixin/common/vendor.js.map


Plik diff jest za duży
+ 1 - 1
virgo.wzfrontend/yui_wx/unpackage/dist/dev/.sourcemap/mp-weixin/components/device/aircondition.js.map


Plik diff jest za duży
+ 1 - 0
virgo.wzfrontend/yui_wx/unpackage/dist/dev/.sourcemap/mp-weixin/components/device/lighting.js.map


Plik diff jest za duży
+ 1 - 0
virgo.wzfrontend/yui_wx/unpackage/dist/dev/.sourcemap/mp-weixin/components/device/meter.js.map


Plik diff jest za duży
+ 1 - 0
virgo.wzfrontend/yui_wx/unpackage/dist/dev/.sourcemap/mp-weixin/components/device/uEchart.js.map


Plik diff jest za duży
+ 1 - 0
virgo.wzfrontend/yui_wx/unpackage/dist/dev/.sourcemap/mp-weixin/components/device/water.js.map


Plik diff jest za duży
+ 1 - 1
virgo.wzfrontend/yui_wx/unpackage/dist/dev/.sourcemap/mp-weixin/pages/deviceDetail/deviceDetail.js.map


Plik diff jest za duży
+ 1 - 1
virgo.wzfrontend/yui_wx/unpackage/dist/dev/.sourcemap/mp-weixin/pages/deviceList/deviceList.js.map


Plik diff jest za duży
+ 1 - 0
virgo.wzfrontend/yui_wx/unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/qiun-data-charts/components/qiun-data-charts/qiun-data-charts.js.map


Plik diff jest za duży
+ 1 - 0
virgo.wzfrontend/yui_wx/unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/qiun-data-charts/components/qiun-error/qiun-error.js.map


Plik diff jest za duży
+ 1 - 0
virgo.wzfrontend/yui_wx/unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/qiun-data-charts/components/qiun-loading/loading1.js.map


Plik diff jest za duży
+ 1 - 0
virgo.wzfrontend/yui_wx/unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/qiun-data-charts/components/qiun-loading/loading2.js.map


Plik diff jest za duży
+ 1 - 0
virgo.wzfrontend/yui_wx/unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/qiun-data-charts/components/qiun-loading/loading3.js.map


Plik diff jest za duży
+ 1 - 0
virgo.wzfrontend/yui_wx/unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/qiun-data-charts/components/qiun-loading/loading4.js.map


Plik diff jest za duży
+ 1 - 0
virgo.wzfrontend/yui_wx/unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/qiun-data-charts/components/qiun-loading/loading5.js.map


Plik diff jest za duży
+ 1 - 0
virgo.wzfrontend/yui_wx/unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/qiun-data-charts/components/qiun-loading/qiun-loading.js.map


Plik diff jest za duży
+ 1 - 0
virgo.wzfrontend/yui_wx/unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uni-popup/components/uni-popup/uni-popup.js.map


Plik diff jest za duży
+ 1 - 0
virgo.wzfrontend/yui_wx/unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uni-transition/components/uni-transition/uni-transition.js.map


Plik diff jest za duży
+ 1 - 0
virgo.wzfrontend/yui_wx/unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uv-switch/components/uv-switch/uv-switch.js.map


Plik diff jest za duży
+ 87 - 48
virgo.wzfrontend/yui_wx/unpackage/dist/dev/mp-weixin/common/main.wxss


Plik diff jest za duży
+ 1 - 1
virgo.wzfrontend/yui_wx/unpackage/dist/dev/mp-weixin/common/runtime.js


Plik diff jest za duży
+ 7 - 5
virgo.wzfrontend/yui_wx/unpackage/dist/dev/mp-weixin/common/vendor.js


Plik diff jest za duży
+ 1 - 1
virgo.wzfrontend/yui_wx/unpackage/dist/dev/mp-weixin/components/common/projectDropDown.js


Plik diff jest za duży
+ 1 - 1
virgo.wzfrontend/yui_wx/unpackage/dist/dev/mp-weixin/components/common/upload.js


Plik diff jest za duży
+ 1 - 1
virgo.wzfrontend/yui_wx/unpackage/dist/dev/mp-weixin/components/device/aircondition.js


+ 4 - 1
virgo.wzfrontend/yui_wx/unpackage/dist/dev/mp-weixin/components/device/aircondition.json

@@ -1,6 +1,9 @@
 {
   "usingComponents": {
-    "l-slider": "/uni_modules/lime-slider/components/l-slider/l-slider"
+    "uni-icons": "/uni_modules/uni-icons/components/uni-icons/uni-icons",
+    "l-slider": "/uni_modules/lime-slider/components/l-slider/l-slider",
+    "uni-popup": "/uni_modules/uni-popup/components/uni-popup/uni-popup",
+    "uv-switch": "/uni_modules/uv-switch/components/uv-switch/uv-switch"
   },
   "component": true
 }

Plik diff jest za duży
+ 1 - 1
virgo.wzfrontend/yui_wx/unpackage/dist/dev/mp-weixin/components/device/aircondition.wxml


+ 173 - 2
virgo.wzfrontend/yui_wx/unpackage/dist/dev/mp-weixin/components/device/aircondition.wxss

@@ -9,10 +9,181 @@
 .aircondition-box {
   padding: 30rpx;
 }
-.aircondition-box .aircondition-off {
-  padding: 20rpx;
+.aircondition-box .popup-content {
+  border-radius: 16rpx 16rpx 0 0;
+  background: #fff;
+}
+.aircondition-box .popup-content .popup-operation {
+  padding: 30rpx 0;
+}
+.aircondition-box .popup-content .model-popup {
+  display: flex;
+}
+.aircondition-box .popup-content .model-popup .model-popup-item {
+  flex: 1;
+  text-align: center;
+}
+.aircondition-box .popup-content .model-popup .model-popup-item.active {
+  color: #08979c;
+}
+.aircondition-box .popup-content .model-popup .model-popup-label {
+  font-size: 24rpx;
+  margin-top: 10rpx;
+  font-weight: 300;
+}
+.aircondition-box .popup-content .wind-popup {
+  padding: 0 30rpx;
+  box-sizing: border-box;
+}
+.aircondition-box .popup-content .wind-popup .wind-title {
+  display: flex;
+  align-items: center;
+}
+.aircondition-box .popup-content .wind-popup .big-title {
+  font-size: 32rpx;
+}
+.aircondition-box .popup-content .wind-popup .line {
+  width: 2rpx;
+  height: 26rpx;
+  background: #f2f2f2;
+  margin: 0 16rpx;
+}
+.aircondition-box .popup-content .wind-popup .wind-auto {
+  padding: 20rpx 30rpx;
+  border-radius: 26rpx;
+  box-shadow: 0px 1px 12px rgba(3, 3, 3, 0.08);
+  display: flex;
+  align-items: center;
+  margin: 30rpx 0;
+}
+.aircondition-box .popup-content .wind-popup .wind-auto .big-title {
+  flex: 1;
+  margin-left: 20rpx;
+}
+.aircondition-box .popup-content .wind-popup .wind-hand {
+  padding-top: 20rpx;
+}
+.aircondition-box .popup-content .wind-popup .hand-text {
+  position: relative;
+  color: #8c8c8c;
+  font-size: 24rpx;
+  height: 34rpx;
+  margin-top: 20rpx;
+}
+.aircondition-box .popup-content .wind-popup .hand-text .number20 {
+  position: absolute;
+  left: 20%;
+  margin-left: -26rpx;
+}
+.aircondition-box .popup-content .wind-popup .hand-text .number40 {
+  position: absolute;
+  left: 40%;
+  margin-left: -26rpx;
+}
+.aircondition-box .popup-content .wind-popup .hand-text .number60 {
+  position: absolute;
+  left: 60%;
+  margin-left: -26rpx;
+}
+.aircondition-box .popup-content .wind-popup .hand-text .number80 {
+  position: absolute;
+  left: 80%;
+  margin-left: -26rpx;
+}
+.aircondition-box .popup-content .wind-popup .hand-text .number100 {
+  position: absolute;
+  left: 100%;
+  margin-left: -52rpx;
+}
+.aircondition-box .popup-content .popup-close {
+  border-top: 20rpx solid #f2f2f2;
+  padding: 24rpx 0;
+  text-align: center;
+  color: #8c8c8c;
+}
+.aircondition-box .aircondition-control {
+  padding: 30rpx;
+  background: #fff;
+  border-radius: 16rpx;
+  box-shadow: 0px 1px 12px rgba(3, 3, 3, 0.08);
+}
+.aircondition-box .aircondition-toogle {
+  display: flex;
+  justify-content: space-between;
+  margin-bottom: 40rpx;
+}
+.aircondition-box .toogle-icon-text {
+  display: flex;
+  align-items: center;
+}
+.aircondition-box .toogle-icon-text .text {
+  font-size: 36rpx;
+  margin-left: 20rpx;
+}
+.aircondition-box .toogle-icon {
+  width: 80rpx;
+  height: 80rpx;
+  background: #08979c;
+  text-align: center;
+  line-height: 80rpx;
+  border-radius: 8px;
+}
+.aircondition-box .aircondition-show {
+  display: flex;
+  align-items: center;
+  justify-content: center;
+  padding: 0 40rpx 30rpx 40rpx;
+}
+.aircondition-box .aircondition-icon {
+  width: 60rpx;
+  height: 60rpx;
+  background-color: #f2f2f2;
+  text-align: center;
+  line-height: 60rpx;
+  border-radius: 50%;
+}
+.aircondition-box .aircondition-label {
+  flex: 1;
+  width: 0;
+  display: flex;
+  align-items: flex-end;
+  justify-content: center;
+  color: #434343;
+}
+.aircondition-box .aircondition-label .value {
+  font-size: 80rpx;
+  height: 100rpx;
+}
+.aircondition-box .aircondition-label .unit {
+  font-size: 40rpx;
+}
+.aircondition-box .aircondition-model {
+  display: flex;
+  margin-top: 30rpx;
+}
+.aircondition-box .aircondition-model .box {
+  flex: 1;
   background: #fff;
   border-radius: 16rpx;
   box-shadow: 0px 1px 12px rgba(3, 3, 3, 0.08);
+  height: 160rpx;
+  display: flex;
+  align-items: center;
+  justify-content: space-between;
+  padding: 0 60rpx 0 30rpx;
+  box-sizing: border-box;
+}
+.aircondition-box .aircondition-model .box .content .title {
+  font-size: 32rpx;
+  font-weight: 300;
+}
+.aircondition-box .aircondition-model .box .content .sub-title {
+  font-size: 24rpx;
+  color: #8c8c8c;
+  font-weight: 200;
+  margin-top: 10rpx;
+}
+.aircondition-box .aircondition-model .bg {
+  width: 30rpx;
 }
 

Plik diff jest za duży
+ 11 - 0
virgo.wzfrontend/yui_wx/unpackage/dist/dev/mp-weixin/components/device/lighting.js


+ 6 - 0
virgo.wzfrontend/yui_wx/unpackage/dist/dev/mp-weixin/components/device/lighting.json

@@ -0,0 +1,6 @@
+{
+  "usingComponents": {
+    "uni-icons": "/uni_modules/uni-icons/components/uni-icons/uni-icons"
+  },
+  "component": true
+}

Plik diff jest za duży
+ 1 - 0
virgo.wzfrontend/yui_wx/unpackage/dist/dev/mp-weixin/components/device/lighting.wxml


+ 39 - 0
virgo.wzfrontend/yui_wx/unpackage/dist/dev/mp-weixin/components/device/lighting.wxss

@@ -0,0 +1,39 @@
+@charset "UTF-8";
+/* 需要放到文件最上面 */
+/* 水平间距 */
+/* 水平间距 */
+/*
+ 以下变量是默认值,如不需要修改可以不用给下面的变量重新赋值
+ */
+/* 水平间距 */
+.lighting-index {
+  padding: 60rpx;
+}
+.lighting-index .lighting-box {
+  background: #fff;
+  width: 560rpx;
+  height: 560rpx;
+  margin: 0 auto;
+  background: linear-gradient(to bottom, #dcdee1, #f2f2f2);
+  box-shadow: 0px 5px 10px rgba(3, 3, 3, 0.08);
+  display: flex;
+  flex-direction: column;
+}
+.lighting-index .lighting-box .lighting-icon {
+  flex: 1;
+  text-align: center;
+  padding-top: 40rpx;
+}
+.lighting-index .lighting-box .lighting-content {
+  text-align: center;
+  padding-bottom: 30rpx;
+  color: #8c8c8c;
+  font-weight: 300;
+}
+.lighting-index .lighting-box .lighting-title {
+  margin: 30rpx 0 15rpx 0;
+}
+.lighting-index .lighting-box .lighting-space {
+  font-size: 12px;
+}
+

Plik diff jest za duży
+ 11 - 0
virgo.wzfrontend/yui_wx/unpackage/dist/dev/mp-weixin/components/device/meter.js


+ 7 - 0
virgo.wzfrontend/yui_wx/unpackage/dist/dev/mp-weixin/components/device/meter.json

@@ -0,0 +1,7 @@
+{
+  "usingComponents": {
+    "uni-icons": "/uni_modules/uni-icons/components/uni-icons/uni-icons",
+    "u-echart": "/components/device/uEchart"
+  },
+  "component": true
+}

Plik diff jest za duży
+ 1 - 0
virgo.wzfrontend/yui_wx/unpackage/dist/dev/mp-weixin/components/device/meter.wxml


+ 91 - 0
virgo.wzfrontend/yui_wx/unpackage/dist/dev/mp-weixin/components/device/meter.wxss

@@ -0,0 +1,91 @@
+@charset "UTF-8";
+/* 需要放到文件最上面 */
+/* 水平间距 */
+/* 水平间距 */
+/*
+ 以下变量是默认值,如不需要修改可以不用给下面的变量重新赋值
+ */
+/* 水平间距 */
+.meter-index {
+  padding: 30rpx;
+}
+.meter-index .meter-box {
+  background: #fff;
+  padding: 30rpx;
+  border-radius: 16rpx;
+  box-shadow: 0px 1px 12px rgba(3, 3, 3, 0.08);
+}
+.meter-index .meter-box .title {
+  font-size: 40rpx;
+  font-weight: 500;
+}
+.meter-index .meter-box .sub-title {
+  font-size: 24rpx;
+  color: #8c8c8c;
+  font-weight: 200;
+}
+.meter-index .meter-box .meter-box-content {
+  display: flex;
+  align-items: center;
+  padding: 80rpx 0 40rpx 0;
+}
+.meter-index .meter-box .meter-box-list {
+  flex: 1;
+  width: 0;
+  overflow: hidden;
+}
+.meter-index .meter-box .content-item {
+  margin-bottom: 20rpx;
+}
+.meter-index .meter-box .content-item-title {
+  display: flex;
+  align-items: center;
+}
+.meter-index .meter-box .content-item-title .content-item-icon {
+  width: 60rpx;
+  height: 60rpx;
+  text-align: center;
+  line-height: 60rpx;
+}
+.meter-index .meter-box .content-item-title .label {
+  font-size: 24rpx;
+  font-weight: 300;
+  margin-left: 10rpx;
+}
+.meter-index .meter-box .content-item-article {
+  display: flex;
+  align-items: flex-end;
+  padding-left: 70rpx;
+  padding-top: 10rpx;
+}
+.meter-index .meter-box .content-item-article .number {
+  font-size: 40rpx;
+  line-height: 40rpx;
+}
+.meter-index .meter-box .content-item-article .unit {
+  color: #8c8c8c;
+  margin-left: 8rpx;
+  font-size: 24rpx;
+}
+.meter-index .meter-box .meter-image {
+  width: 200rpx;
+  height: 200rpx;
+  margin-right: 40rpx;
+}
+.meter-index .meter-charts {
+  margin-top: 30rpx;
+  background: #fff;
+  padding: 30rpx;
+  border-radius: 16rpx;
+  box-shadow: 0px 1px 12px rgba(3, 3, 3, 0.08);
+}
+.meter-index .meter-charts .meter-chart-title {
+  padding-bottom: 30rpx;
+  font-size: 32rpx;
+  font-weight: 500;
+}
+.meter-index .meter-charts .meter-chart-box {
+  width: 100%;
+  height: 300rpx;
+}
+

Plik diff jest za duży
+ 11 - 0
virgo.wzfrontend/yui_wx/unpackage/dist/dev/mp-weixin/components/device/uEchart.js


+ 6 - 0
virgo.wzfrontend/yui_wx/unpackage/dist/dev/mp-weixin/components/device/uEchart.json

@@ -0,0 +1,6 @@
+{
+  "usingComponents": {
+    "qiun-data-charts": "/uni_modules/qiun-data-charts/components/qiun-data-charts/qiun-data-charts"
+  },
+  "component": true
+}

+ 1 - 0
virgo.wzfrontend/yui_wx/unpackage/dist/dev/mp-weixin/components/device/uEchart.wxml

@@ -0,0 +1 @@
+<view class="charts-box data-v-31158030"><qiun-data-charts vue-id="1cc9f254-1" type="line" opts="{{opts}}" chartData="{{chartData}}" canvas2d="{{true}}" canvasId="pPSnGQMxUSQgItJRPiXgRJePqmRONHhG" class="data-v-31158030" bind:__l="__l"></qiun-data-charts></view>

+ 68 - 0
virgo.wzfrontend/yui_wx/unpackage/dist/dev/mp-weixin/components/device/uEchart.wxss

@@ -0,0 +1,68 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+/* 请根据实际需求修改父元素尺寸,组件自动识别宽高 */
+.charts-box.data-v-31158030 {
+	width: 100%;
+	height: 100%;
+}
+

Plik diff jest za duży
+ 11 - 0
virgo.wzfrontend/yui_wx/unpackage/dist/dev/mp-weixin/components/device/water.js


+ 7 - 0
virgo.wzfrontend/yui_wx/unpackage/dist/dev/mp-weixin/components/device/water.json

@@ -0,0 +1,7 @@
+{
+  "usingComponents": {
+    "uni-icons": "/uni_modules/uni-icons/components/uni-icons/uni-icons",
+    "u-echart": "/components/device/uEchart"
+  },
+  "component": true
+}

Plik diff jest za duży
+ 1 - 0
virgo.wzfrontend/yui_wx/unpackage/dist/dev/mp-weixin/components/device/water.wxml


+ 91 - 0
virgo.wzfrontend/yui_wx/unpackage/dist/dev/mp-weixin/components/device/water.wxss

@@ -0,0 +1,91 @@
+@charset "UTF-8";
+/* 需要放到文件最上面 */
+/* 水平间距 */
+/* 水平间距 */
+/*
+ 以下变量是默认值,如不需要修改可以不用给下面的变量重新赋值
+ */
+/* 水平间距 */
+.meter-index {
+  padding: 30rpx;
+}
+.meter-index .meter-box {
+  background: #fff;
+  padding: 30rpx;
+  border-radius: 16rpx;
+  box-shadow: 0px 1px 12px rgba(3, 3, 3, 0.08);
+}
+.meter-index .meter-box .title {
+  font-size: 40rpx;
+  font-weight: 500;
+}
+.meter-index .meter-box .sub-title {
+  font-size: 24rpx;
+  color: #8c8c8c;
+  font-weight: 200;
+}
+.meter-index .meter-box .meter-box-content {
+  display: flex;
+  align-items: center;
+  padding: 80rpx 0 40rpx 0;
+}
+.meter-index .meter-box .meter-box-list {
+  flex: 1;
+  width: 0;
+  overflow: hidden;
+}
+.meter-index .meter-box .content-item {
+  margin-bottom: 20rpx;
+}
+.meter-index .meter-box .content-item-title {
+  display: flex;
+  align-items: center;
+}
+.meter-index .meter-box .content-item-title .content-item-icon {
+  width: 60rpx;
+  height: 60rpx;
+  text-align: center;
+  line-height: 60rpx;
+}
+.meter-index .meter-box .content-item-title .label {
+  font-size: 24rpx;
+  font-weight: 300;
+  margin-left: 10rpx;
+}
+.meter-index .meter-box .content-item-article {
+  display: flex;
+  align-items: flex-end;
+  padding-left: 70rpx;
+  padding-top: 10rpx;
+}
+.meter-index .meter-box .content-item-article .number {
+  font-size: 40rpx;
+  line-height: 40rpx;
+}
+.meter-index .meter-box .content-item-article .unit {
+  color: #8c8c8c;
+  margin-left: 8rpx;
+  font-size: 24rpx;
+}
+.meter-index .meter-box .meter-image {
+  width: 200rpx;
+  height: 200rpx;
+  margin-right: 40rpx;
+}
+.meter-index .meter-charts {
+  margin-top: 30rpx;
+  background: #fff;
+  padding: 30rpx;
+  border-radius: 16rpx;
+  box-shadow: 0px 1px 12px rgba(3, 3, 3, 0.08);
+}
+.meter-index .meter-charts .meter-chart-title {
+  padding-bottom: 30rpx;
+  font-size: 32rpx;
+  font-weight: 500;
+}
+.meter-index .meter-charts .meter-chart-box {
+  width: 100%;
+  height: 300rpx;
+}
+

Plik diff jest za duży
+ 2 - 2
virgo.wzfrontend/yui_wx/unpackage/dist/dev/mp-weixin/components/uni-mall-head/uni-mall-head.js


Plik diff jest za duży
+ 1 - 1
virgo.wzfrontend/yui_wx/unpackage/dist/dev/mp-weixin/components/uni-mall-list/uni-mall-list.js


Plik diff jest za duży
+ 1 - 1
virgo.wzfrontend/yui_wx/unpackage/dist/dev/mp-weixin/pages/deviceDetail/deviceDetail.js


+ 4 - 1
virgo.wzfrontend/yui_wx/unpackage/dist/dev/mp-weixin/pages/deviceDetail/deviceDetail.json

@@ -1,6 +1,9 @@
 {
   "navigationBarTitleText": "",
   "usingComponents": {
-    "aircondition": "/components/device/aircondition"
+    "aircondition": "/components/device/aircondition",
+    "lighting": "/components/device/lighting",
+    "meter-show": "/components/device/meter",
+    "water": "/components/device/water"
   }
 }

Plik diff jest za duży
+ 1 - 1
virgo.wzfrontend/yui_wx/unpackage/dist/dev/mp-weixin/pages/deviceDetail/deviceDetail.wxml


+ 1 - 0
virgo.wzfrontend/yui_wx/unpackage/dist/dev/mp-weixin/pages/deviceDetail/deviceDetail.wxss

@@ -0,0 +1 @@
+/* pages/deviceDetail/deviceDetail.wxss */

Plik diff jest za duży
+ 1 - 1
virgo.wzfrontend/yui_wx/unpackage/dist/dev/mp-weixin/pages/deviceList/deviceList.js


+ 1 - 0
virgo.wzfrontend/yui_wx/unpackage/dist/dev/mp-weixin/pages/monitorList/monitorList.wxss

@@ -0,0 +1 @@
+/* pages/monitorList/monitorList.wxss */

+ 241 - 188
virgo.wzfrontend/yui_wx/unpackage/dist/dev/mp-weixin/static/font/iconfont.css

@@ -11,191 +11,244 @@
 	-webkit-font-smoothing: antialiased;
 	-moz-osx-font-smoothing: grayscale;
 }
-
-.icon-bayonet-camera:before {
-	content: "\e964";
-}
-
-.icon-huanjingjiance:before {
-	content: "\e623";
-}
-
-.icon-menjinjilu:before {
-	content: "\e60a";
-}
-
-.icon-caozuo-kaiguan:before {
-	content: "\e609";
-}
-
-.icon-kongtiao:before {
-	content: "\e651";
-}
-
-.icon-shuibiao:before {
-	content: "\e620";
-}
-
-.icon-dianbiao:before {
-	content: "\e625";
-}
-
-.icon-diandeng:before {
-	content: "\e6f8";
-}
-
-.icon-wenjian:before {
-	content: "\e600";
-}
-
-.icon-bianjiwenjian:before {
-	content: "\e601";
-}
-
-.icon-dengdaiwenjian:before {
-	content: "\e602";
-}
-
-.icon-shanchuwenjian:before {
-	content: "\e603";
-}
-
-.icon-jianqiewenjian:before {
-	content: "\e604";
-}
-
-.icon-fuzhiwenjian:before {
-	content: "\e605";
-}
-
-.icon-sousuowenjian:before {
-	content: "\e606";
-}
-
-.icon-dingdan:before {
-	content: "\e607";
-}
-
-.icon-jian:before {
-	content: "\e643";
-}
-
-.icon-dui:before {
-	content: "\e63f";
-}
-
-.icon-jigoukehudaishenheshuliang:before {
-	content: "\e65f";
-}
-
-.icon-zulinguihuan_fu:before {
-	content: "\e63d";
-}
-
-.icon-baozhengjin:before {
-	content: "\e622";
-}
-
-.icon-hetongwendang:before {
-	content: "\e635";
-}
-
-.icon-zidingyi:before {
-	content: "\e69f";
-}
-
-.icon-zhinajin:before {
-	content: "\e70b";
-}
-
-.icon-a-fujian1:before {
-	content: "\e60d";
-}
-
-.icon-integralrecord:before {
-	content: "\e732";
-}
-
-.icon-anli:before {
-	content: "\e67b";
-}
-
-.icon-weixiugongdan:before {
-	content: "\e657";
-}
-
-.icon-hetongguanli:before {
-	content: "\e682";
-}
-
-.icon-yuemingxi:before {
-	content: "\e632";
-}
-
-.icon-jinribaojie:before {
-	content: "\e813";
-}
-
-.icon-yunwei-jiancebaogao:before {
-	content: "\e61a";
-}
-
-.icon-app-hetongguanli-hetongfapiao:before {
-	content: "\e69a";
-}
-
-.icon-jiesuanguanli:before {
-	content: "\e6dc";
-}
-
-.icon-gerenhetongchaxun:before {
-	content: "\e681";
-}
-
-.icon-wodeshoucangshixin:before {
-	content: "\e62c";
-}
-
-.icon-wodekehu:before {
-	content: "\e608";
-}
-
-.icon-wodexiazaizhongxin:before {
-	content: "\e67d";
-}
-
-.icon-kefuzhongxin:before {
-	content: "\e621";
-}
-
-.icon-wodegongsi-gaoliang:before {
-	content: "\e676";
-}
-
-.icon-gouwu:before {
-	content: "\e7ed";
-}
-
-.icon-zhishiku:before {
-	content: "\e684";
-}
-
-.icon-tubiao_-:before {
-	content: "\e6ff";
-}
-
-.icon-wifi:before {
-	content: "\ec81";
-}
-
-.icon-yunzhineng:before {
-	content: "\e696";
-}
-
-.icon-jiaotong:before {
-	content: "\e634";
-}
-
-.icon-gongyuan:before {
-	content: "\e617";
-}
+
+.icon-yongshuiliang:before {
+  content: "\e627";
+}
+
+.icon-yongshuiliang1:before {
+  content: "\e624";
+}
+
+.icon-zongyongdianliang:before {
+  content: "\e62d";
+}
+
+.icon-jinriyongdianliang:before {
+  content: "\e62e";
+}
+
+.icon-dianchidianliang:before {
+  content: "\e60c";
+}
+
+.icon-songfeng:before {
+  content: "\e639";
+}
+
+.icon-zhileng:before {
+  content: "\e63b";
+}
+
+.icon-zhire:before {
+  content: "\e63c";
+}
+
+.icon-chushi:before {
+  content: "\e63e";
+}
+
+.icon-zidong:before {
+  content: "\e640";
+}
+
+.icon-zhongtumoshi:before {
+  content: "\e60b";
+}
+
+.icon-fengsu:before {
+  content: "\e64d";
+}
+
+.icon-fentikongtiaokongtiaojieneng:before {
+  content: "\e644";
+}
+
+.icon-bayonet-camera:before {
+  content: "\e964";
+}
+
+.icon-huanjingjiance:before {
+  content: "\e623";
+}
+
+.icon-menjinjilu:before {
+  content: "\e60a";
+}
+
+.icon-caozuo-kaiguan:before {
+  content: "\e609";
+}
+
+.icon-kongtiao:before {
+  content: "\e651";
+}
+
+.icon-shuibiao:before {
+  content: "\e620";
+}
+
+.icon-dianbiao:before {
+  content: "\e625";
+}
+
+.icon-diandeng:before {
+  content: "\e6f8";
+}
+
+.icon-wenjian:before {
+  content: "\e600";
+}
+
+.icon-bianjiwenjian:before {
+  content: "\e601";
+}
+
+.icon-dengdaiwenjian:before {
+  content: "\e602";
+}
+
+.icon-shanchuwenjian:before {
+  content: "\e603";
+}
+
+.icon-jianqiewenjian:before {
+  content: "\e604";
+}
+
+.icon-fuzhiwenjian:before {
+  content: "\e605";
+}
+
+.icon-sousuowenjian:before {
+  content: "\e606";
+}
+
+.icon-dingdan:before {
+  content: "\e607";
+}
+
+.icon-jian:before {
+  content: "\e643";
+}
+
+.icon-dui:before {
+  content: "\e63f";
+}
+
+.icon-jigoukehudaishenheshuliang:before {
+  content: "\e65f";
+}
+
+.icon-zulinguihuan_fu:before {
+  content: "\e63d";
+}
+
+.icon-baozhengjin:before {
+  content: "\e622";
+}
+
+.icon-hetongwendang:before {
+  content: "\e635";
+}
+
+.icon-zidingyi:before {
+  content: "\e69f";
+}
+
+.icon-zhinajin:before {
+  content: "\e70b";
+}
+
+.icon-a-fujian1:before {
+  content: "\e60d";
+}
+
+.icon-integralrecord:before {
+  content: "\e732";
+}
+
+.icon-anli:before {
+  content: "\e67b";
+}
+
+.icon-weixiugongdan:before {
+  content: "\e657";
+}
+
+.icon-hetongguanli:before {
+  content: "\e682";
+}
+
+.icon-yuemingxi:before {
+  content: "\e632";
+}
+
+.icon-jinribaojie:before {
+  content: "\e813";
+}
+
+.icon-yunwei-jiancebaogao:before {
+  content: "\e61a";
+}
+
+.icon-app-hetongguanli-hetongfapiao:before {
+  content: "\e69a";
+}
+
+.icon-jiesuanguanli:before {
+  content: "\e6dc";
+}
+
+.icon-gerenhetongchaxun:before {
+  content: "\e681";
+}
+
+.icon-wodeshoucangshixin:before {
+  content: "\e62c";
+}
+
+.icon-wodekehu:before {
+  content: "\e608";
+}
+
+.icon-wodexiazaizhongxin:before {
+  content: "\e67d";
+}
+
+.icon-kefuzhongxin:before {
+  content: "\e621";
+}
+
+.icon-wodegongsi-gaoliang:before {
+  content: "\e676";
+}
+
+.icon-gouwu:before {
+  content: "\e7ed";
+}
+
+.icon-zhishiku:before {
+  content: "\e684";
+}
+
+.icon-tubiao_-:before {
+  content: "\e6ff";
+}
+
+.icon-wifi:before {
+  content: "\ec81";
+}
+
+.icon-yunzhineng:before {
+  content: "\e696";
+}
+
+.icon-jiaotong:before {
+  content: "\e634";
+}
+
+.icon-gongyuan:before {
+  content: "\e617";
+}
+

BIN
virgo.wzfrontend/yui_wx/unpackage/dist/dev/mp-weixin/static/font/iconfont.ttf


Plik diff jest za duży
+ 2 - 2
virgo.wzfrontend/yui_wx/unpackage/dist/dev/mp-weixin/uni_modules/lime-slider/components/l-slider/l-slider.js


Plik diff jest za duży
+ 11 - 0
virgo.wzfrontend/yui_wx/unpackage/dist/dev/mp-weixin/uni_modules/qiun-data-charts/components/qiun-data-charts/qiun-data-charts.js


+ 7 - 0
virgo.wzfrontend/yui_wx/unpackage/dist/dev/mp-weixin/uni_modules/qiun-data-charts/components/qiun-data-charts/qiun-data-charts.json

@@ -0,0 +1,7 @@
+{
+  "usingComponents": {
+    "qiun-loading": "/uni_modules/qiun-data-charts/components/qiun-loading/qiun-loading",
+    "qiun-error": "/uni_modules/qiun-data-charts/components/qiun-error/qiun-error"
+  },
+  "component": true
+}

Plik diff jest za duży
+ 1 - 0
virgo.wzfrontend/yui_wx/unpackage/dist/dev/mp-weixin/uni_modules/qiun-data-charts/components/qiun-data-charts/qiun-data-charts.wxml


+ 10 - 0
virgo.wzfrontend/yui_wx/unpackage/dist/dev/mp-weixin/uni_modules/qiun-data-charts/components/qiun-data-charts/qiun-data-charts.wxss

@@ -0,0 +1,10 @@
+
+.chartsview.data-v-fe947b98 {
+  width: 100%;
+  height: 100%;
+  display: flex;
+  flex: 1;
+  justify-content: center;
+  align-items: center;
+}
+

Plik diff jest za duży
+ 11 - 0
virgo.wzfrontend/yui_wx/unpackage/dist/dev/mp-weixin/uni_modules/qiun-data-charts/components/qiun-error/qiun-error.js


+ 4 - 0
virgo.wzfrontend/yui_wx/unpackage/dist/dev/mp-weixin/uni_modules/qiun-data-charts/components/qiun-error/qiun-error.json

@@ -0,0 +1,4 @@
+{
+  "usingComponents": {},
+  "component": true
+}

+ 1 - 0
virgo.wzfrontend/yui_wx/unpackage/dist/dev/mp-weixin/uni_modules/qiun-data-charts/components/qiun-error/qiun-error.wxml

@@ -0,0 +1 @@
+<view class="chartsview"><view class="charts-error"></view><view class="charts-font">{{errorMessage==null?'请点击重试':errorMessage}}</view></view>

Plik diff jest za duży
+ 22 - 0
virgo.wzfrontend/yui_wx/unpackage/dist/dev/mp-weixin/uni_modules/qiun-data-charts/components/qiun-error/qiun-error.wxss


Plik diff jest za duży
+ 11 - 0
virgo.wzfrontend/yui_wx/unpackage/dist/dev/mp-weixin/uni_modules/qiun-data-charts/components/qiun-loading/loading1.js


+ 4 - 0
virgo.wzfrontend/yui_wx/unpackage/dist/dev/mp-weixin/uni_modules/qiun-data-charts/components/qiun-loading/loading1.json

@@ -0,0 +1,4 @@
+{
+  "usingComponents": {},
+  "component": true
+}

+ 0 - 0
virgo.wzfrontend/yui_wx/unpackage/dist/dev/mp-weixin/uni_modules/qiun-data-charts/components/qiun-loading/loading1.wxml


Niektóre pliki nie zostały wyświetlone z powodu dużej ilości zmienionych plików