浏览代码

Merge branch 'master' of http://code.nyzhwlw.com:10202/yf_lj/bigDataApp

liu.haichuan 1 天之前
父节点
当前提交
28eb6e5607
共有 100 个文件被更改,包括 886 次插入9 次删除
  1. 288 0
      components/Alert/Alert.vue
  2. 47 0
      components/Descriptions/DescriptionItem.vue
  3. 11 0
      components/Descriptions/Descriptions.vue
  4. 2 0
      components/Descriptions/index.js
  5. 92 0
      libs/HeartBeat.js
  6. 14 0
      libs/canvas/imgRender.js
  7. 13 0
      libs/canvas/index.js
  8. 10 0
      libs/canvas/lineRender.js
  9. 38 0
      libs/canvas/shapeRender.js
  10. 16 0
      libs/canvas/textRender.js
  11. 5 0
      manifest.json
  12. 31 9
      pages.json
  13. 二进制
      pages/assets/active.png
  14. 4 0
      pages/assets/active.svg
  15. 二进制
      pages/assets/add-icon.png
  16. 二进制
      pages/assets/address.png
  17. 二进制
      pages/assets/agricultural.png
  18. 二进制
      pages/assets/arrow.png
  19. 二进制
      pages/assets/ats.png
  20. 4 0
      pages/assets/back.svg
  21. 二进制
      pages/assets/base.png
  22. 20 0
      pages/assets/baseCard.svg
  23. 二进制
      pages/assets/basil_add-outline.png
  24. 40 0
      pages/assets/bgImage.svg
  25. 二进制
      pages/assets/bgImages.png
  26. 二进制
      pages/assets/blockIcon.png
  27. 二进制
      pages/assets/blockList.png
  28. 6 0
      pages/assets/calendar.svg
  29. 二进制
      pages/assets/camera.png
  30. 9 0
      pages/assets/camera.svg
  31. 二进制
      pages/assets/card-sick.png
  32. 二进制
      pages/assets/card1.png
  33. 19 0
      pages/assets/card1.svg
  34. 二进制
      pages/assets/card2.png
  35. 19 0
      pages/assets/card2.svg
  36. 二进制
      pages/assets/card3.png
  37. 19 0
      pages/assets/card3.svg
  38. 二进制
      pages/assets/card4.png
  39. 19 0
      pages/assets/card4.svg
  40. 二进制
      pages/assets/card_icon.png
  41. 二进制
      pages/assets/cbd.png
  42. 二进制
      pages/assets/cbd2.png
  43. 二进制
      pages/assets/checkedDisabled.png
  44. 二进制
      pages/assets/checkedSelect.png
  45. 二进制
      pages/assets/clear.png
  46. 二进制
      pages/assets/cornLeafBlight.png
  47. 二进制
      pages/assets/disease.png
  48. 二进制
      pages/assets/edit-filter.png
  49. 二进制
      pages/assets/edit.png
  50. 二进制
      pages/assets/empty2.png
  51. 二进制
      pages/assets/empty3.png
  52. 二进制
      pages/assets/empty4.png
  53. 二进制
      pages/assets/expend.png
  54. 二进制
      pages/assets/expert.png
  55. 二进制
      pages/assets/eye.png
  56. 二进制
      pages/assets/facilitystatenew.png
  57. 二进制
      pages/assets/fertilizer.png
  58. 二进制
      pages/assets/field.png
  59. 二进制
      pages/assets/filter.png
  60. 二进制
      pages/assets/fms.png
  61. 二进制
      pages/assets/fxsscd.png
  62. 二进制
      pages/assets/fxsscd2.png
  63. 二进制
      pages/assets/general.png
  64. 9 0
      pages/assets/grass.svg
  65. 二进制
      pages/assets/greenHouse.png
  66. 二进制
      pages/assets/gssq.png
  67. 二进制
      pages/assets/gssq2.png
  68. 二进制
      pages/assets/harvestingoperation.png
  69. 二进制
      pages/assets/highInsectLamp.png
  70. 二进制
      pages/assets/home-weather-bg.jpg
  71. 二进制
      pages/assets/icon1.png
  72. 44 0
      pages/assets/icon1.svg
  73. 二进制
      pages/assets/icon2.png
  74. 26 0
      pages/assets/icon2.svg
  75. 二进制
      pages/assets/icon3.png
  76. 32 0
      pages/assets/icon3.svg
  77. 二进制
      pages/assets/icon4.png
  78. 37 0
      pages/assets/icon4.svg
  79. 9 0
      pages/assets/icon_left.svg
  80. 二进制
      pages/assets/inducer.png
  81. 二进制
      pages/assets/inducer2.png
  82. 二进制
      pages/assets/inducer3.png
  83. 二进制
      pages/assets/insectLamp.png
  84. 二进制
      pages/assets/insectLampvi-fat.png
  85. 二进制
      pages/assets/insectLampvi.png
  86. 二进制
      pages/assets/insecticidalLamp.png
  87. 二进制
      pages/assets/inspectionManage.png
  88. 二进制
      pages/assets/itemIcon.png
  89. 二进制
      pages/assets/landIcon.png
  90. 二进制
      pages/assets/lockClosed.png
  91. 3 0
      pages/assets/lockClosed.svg
  92. 二进制
      pages/assets/machinery.png
  93. 二进制
      pages/assets/map-01.png
  94. 二进制
      pages/assets/map-02.png
  95. 二进制
      pages/assets/map.png
  96. 二进制
      pages/assets/message-edit.png
  97. 二进制
      pages/assets/message.png
  98. 二进制
      pages/assets/moisture.png
  99. 二进制
      pages/assets/moisturegssq.png
  100. 0 0
      pages/assets/moisturegssq1.png

+ 288 - 0
components/Alert/Alert.vue

@@ -0,0 +1,288 @@
+<template>
+  <u-transition mode="fade-down" :show="show">
+    <view
+      class="u-custom-alert"
+      :class="[`u-custom-alert--${type}--${effect}`]"
+      @tap.stop="clickHandler"
+    >
+      <view class="u-custom-alert__icon" v-if="showIcon">
+        <u-icon :name="iconName" size="18" :color="iconColor"></u-icon>
+      </view>
+      <view
+        class="u-custom-alert__content"
+        :style="[
+          {
+            paddingRight: closable ? '20px' : 0
+          }
+        ]"
+      >
+        <text
+          class="u-custom-alert__content__title"
+          v-if="title"
+          :style="[
+            {
+              fontSize: $u.addUnit(fontSize),
+              textAlign: center ? 'center' : 'left'
+            }
+          ]"
+          :class="[
+            effect === 'dark'
+              ? 'u-custom-alert__text--dark'
+              : `u-custom-alert__text--${type}--light`
+          ]"
+          >{{ title }}</text
+        >
+        <view class="u-custom-alert__content__row-space-end">
+          <text
+            class="u-custom-alert__content__desc"
+            v-if="description"
+            :style="[
+              {
+                fontSize: $u.addUnit(fontSize),
+                textAlign: center ? 'center' : 'left'
+              }
+            ]"
+            :class="[
+              effect === 'dark'
+                ? 'u-custom-alert__text--dark'
+                : `u-custom-alert__text--${type}--light`
+            ]"
+            >{{ description }}</text
+          >
+          <text class="u-custom-alert__content__more"> 更多》</text>
+        </view>
+      </view>
+      <view
+        class="u-custom-alert__close"
+        v-if="closable"
+        @tap.stop="closeHandler"
+      >
+        <u-icon name="close" :color="iconColor" size="15"></u-icon>
+      </view>
+    </view>
+  </u-transition>
+</template>
+
+<script>
+/**
+ * Alert  警告提示
+ * @description 警告提示,展现需要关注的信息。
+ * @tutorial https://www.uviewui.com/components/alertTips.html
+ *
+ * @property {String}			title       显示的文字
+ * @property {String}			type        使用预设的颜色  (默认 'warning' )
+ * @property {String}			description 辅助性文字,颜色比title浅一点,字号也小一点,可选
+ * @property {Boolean}			closable    关闭按钮(默认为叉号icon图标)  (默认 false )
+ * @property {Boolean}			showIcon    是否显示左边的辅助图标   ( 默认 false )
+ * @property {String}			effect      多图时,图片缩放裁剪的模式  (默认 'light' )
+ * @property {Boolean}			center		文字是否居中  (默认 false )
+ * @property {String | Number}	fontSize    字体大小  (默认 14 )
+ * @property {Object}			customStyle	定义需要用到的外部样式
+ * @event    {Function}        click       点击组件时触发
+ * @example  <u-alert :title="title"  type = "warning" :closable="closable" :description = "description"></u-alert>
+ */
+export default {
+  name: 'u-custom-alert',
+  props: {
+    // 显示文字
+    title: {
+      type: String,
+      default: uni.$u.props.alert.title
+    },
+    // 主题,success/warning/info/error
+    type: {
+      type: String,
+      default: uni.$u.props.alert.type
+    },
+    // 辅助性文字
+    description: {
+      type: String,
+      default: uni.$u.props.alert.description
+    },
+    // 是否可关闭
+    closable: {
+      type: Boolean,
+      default: uni.$u.props.alert.closable
+    },
+    // 是否显示图标
+    showIcon: {
+      type: Boolean,
+      default: uni.$u.props.alert.showIcon
+    },
+    // 浅或深色调,light-浅色,dark-深色
+    effect: {
+      type: String,
+      default: uni.$u.props.alert.effect
+    },
+    // 文字是否居中
+    center: {
+      type: Boolean,
+      default: uni.$u.props.alert.center
+    },
+    // 字体大小
+    fontSize: {
+      type: [String, Number],
+      default: uni.$u.props.alert.fontSize
+    }
+  },
+  data() {
+    return {
+      show: true
+    };
+  },
+  computed: {
+    iconColor() {
+      // return this.effect === 'light' ? this.type : '#fff';
+      return '#fff';
+    },
+    // 不同主题对应不同的图标
+    iconName() {
+      switch (this.type) {
+        case 'success':
+          return 'checkmark-circle-fill';
+          break;
+        case 'error':
+          return 'close-circle-fill';
+          break;
+        case 'warning':
+          return 'warning-fill';
+          break;
+        case 'info':
+          return 'info-circle-fill';
+          break;
+        case 'primary':
+          return 'more-circle-fill';
+          break;
+        default:
+          return 'error-circle-fill';
+      }
+    }
+  },
+  methods: {
+    // 点击内容
+    clickHandler() {
+      this.$emit('click');
+    },
+    // 点击关闭按钮
+    closeHandler() {
+      console.log('closeHandler', '------------------------- ');
+      this.show = false;
+      this.$emit('close');
+    }
+  }
+};
+</script>
+
+<style lang="scss" scoped>
+.u-custom-alert {
+  position: relative;
+  padding: 8px 10px;
+  align-items: center;
+  border-top-left-radius: 16rpx;
+  border-top-right-radius: 16rpx;
+  border-bottom-left-radius: 16rpx;
+  border-bottom-right-radius: 16rpx;
+  pointer-events: auto;
+
+  &--primary--dark {
+  }
+
+  &--primary--light {
+    background-color: #ecf5ff;
+  }
+
+  &--error--dark {
+  }
+
+  &--error--light {
+    background-color: #fef0f0;
+  }
+
+  &--success--dark {
+  }
+
+  &--success--light {
+    background-color: #f5fff0;
+  }
+
+  &--warning--dark {
+  }
+
+  &--warning--light {
+    background-color: rgba(238, 172, 25, 0.8);
+  }
+
+  &--info--dark {
+  }
+
+  &--info--light {
+    background-color: #f4f4f5;
+  }
+
+  &__icon {
+    margin-right: 5px;
+  }
+
+  &__content {
+    flex: 1;
+
+    &__title {
+      font-size: 14px;
+      font-weight: bold;
+      color: #fff;
+      margin-bottom: 2px;
+    }
+
+    &__desc {
+      font-size: 14px;
+      flex-wrap: wrap;
+      color: #fff;
+    }
+
+    &__more {
+      color: #fff;
+      font-size: 14px;
+    }
+
+    &__row-space-end {
+      display: flex;
+      justify-content: space-between;
+      align-items: center;
+      padding-right: 20px;
+    }
+  }
+
+  &__title--dark,
+  &__desc--dark {
+    color: #ffffff;
+  }
+
+  &__text--primary--light,
+  &__text--primary--light {
+  }
+
+  &__text--success--light,
+  &__text--success--light {
+  }
+
+  &__text--warning--light,
+  &__text--warning--light {
+    color: #fff;
+  }
+
+  &__text--error--light,
+  &__text--error--light {
+  }
+
+  &__text--info--light,
+  &__text--info--light {
+  }
+
+  &__close {
+    position: absolute;
+    top: 11px;
+    right: 10px;
+    z-index: 12;
+  }
+}
+</style>

+ 47 - 0
components/Descriptions/DescriptionItem.vue

@@ -0,0 +1,47 @@
+<template>
+  <view class="description-item">
+    <view class="description-item__title" :style="{ width: labelWidth }">
+      <slot name="title"></slot>
+    </view>
+    <view class="description-item__content">
+      <slot name="content"></slot>
+    </view>
+  </view>
+</template>
+
+<script>
+export default {
+  name: 'DescriptionItem',
+  props: {
+    labelWidth: {
+      type: String,
+      default: ''
+    }
+  }
+};
+</script>
+
+<style lang="scss" scoped>
+.description-item {
+  width: 100%;
+  display: flex;
+  align-items: center;
+  line-height: 40rpx;
+  margin-bottom: 24rpx;
+
+  &__title {
+    width: 112rpx;
+    text-align: right;
+    font-size: 28rpx;
+    color: #9ba6a3;
+    font-weight: 500;
+    margin-right: 16rpx;
+  }
+
+  &__content {
+    font-size: 28rpx;
+    color: #042118;
+    flex: 1;
+  }
+}
+</style>

+ 11 - 0
components/Descriptions/Descriptions.vue

@@ -0,0 +1,11 @@
+<template>
+  <view class="descriptions"></view>
+</template>
+
+<script></script>
+
+<style lang="scss" scoped>
+.descriptions {
+  background-color: #fff;
+}
+</style>

+ 2 - 0
components/Descriptions/index.js

@@ -0,0 +1,2 @@
+export { default as Descriptions } from './Descriptions.vue';
+export { default as DescriptionItem } from './DescriptionItem.vue';

+ 92 - 0
libs/HeartBeat.js

@@ -0,0 +1,92 @@
+import { map, remove, filter } from 'lodash-es';
+
+class HeartBeatClass {
+  static _instance = null;
+  handlers = [];
+  time = 1000;
+  maxHandlerTimes = 1;
+  _initTimes = 0;
+  timer = 0;
+  instance = null;
+
+  constructor(time = 2000, maxHandlerTimes = 30000) {
+    this.time = time;
+    this.maxHandlerTimes = maxHandlerTimes;
+  }
+
+  static getInstance() {
+    if (!HeartBeatClass._instance) {
+      HeartBeatClass._instance = new HeartBeatClass();
+    }
+    return HeartBeatClass._instance;
+  }
+
+  hasType(type) {
+    return this.handlers.findIndex((item) => item.type === type) > -1;
+  }
+
+  remove(type) {
+    if (this.hasType(type)) {
+      remove(this.handlers, (item) => {
+        return item.type === type;
+      });
+    }
+  }
+
+  handle({ type, handler, intervalTimes }) {
+    clearInterval(this.timer);
+    const hasType = this.hasType(type);
+
+    if (hasType) {
+      this.remove(type);
+    }
+
+    this.handlers.push({ type, handler, intervalTimes });
+
+    if (!this.handlers.length) {
+      return;
+    }
+
+    this.timer = setInterval(() => {
+      const execHandlers = filter(this.handlers, (handlerItem) => {
+        return (
+          !handlerItem.intervalTimes ||
+          (handlerItem.intervalTimes &&
+            this._initTimes % handlerItem.intervalTimes === 0)
+        );
+      });
+
+      if (this._initTimes < this.maxHandlerTimes) {
+        this._initTimes++;
+
+        Promise.all(
+          map(execHandlers, (handleItem) => {
+            return handleItem.handler();
+          })
+        ).then((res) => {
+          remove(this.handlers, (item, index) => {
+            return res[index];
+          });
+
+          if (!this.handlers.length) {
+            clearInterval(this.timer);
+          }
+        });
+      } else {
+        this.destory();
+      }
+    }, this.time);
+  }
+
+  destory() {
+    this._instance = null;
+    this.handlers = [];
+    clearInterval(this.timer);
+  }
+}
+
+const HeartBeat = {
+  getInstance: HeartBeatClass.getInstance
+};
+
+export default HeartBeat;

+ 14 - 0
libs/canvas/imgRender.js

@@ -0,0 +1,14 @@
+// 图片渲染
+export const imgRender = ({ img, width, height, X, Y, ctx }) => {
+  if (!img) return Promise.resolve(null);
+
+  return new Promise((resolve, reject) => {
+    ctx.save();
+
+    ctx.drawImage(img, X, Y, width, height);
+
+    ctx.restore();
+
+    resolve();
+  });
+};

+ 13 - 0
libs/canvas/index.js

@@ -0,0 +1,13 @@
+export { imgRender } from './imgRender';
+export { lineRender } from './lineRender';
+export { shapeRender } from './shapeRender';
+export { textRender } from './textRender';
+
+export function clearCanvas(ctx, canvas) {
+  ctx.clearRect(
+    0,
+    0,
+    canvas.width || canvas.scrollWidth,
+    canvas.height || canvas.scrollHeight
+  );
+}

+ 10 - 0
libs/canvas/lineRender.js

@@ -0,0 +1,10 @@
+import { nth } from 'lodash-es';
+
+export const lineRender = ({ start, end, color, ctx }) => {
+  ctx.strokeStyle = color;
+  ctx.beginPath();
+  ctx.setLineDash([3, 2]);
+  ctx.moveTo(nth(start, 0), nth(start, 1));
+  ctx.lineTo(nth(end, 0), nth(end, 1));
+  ctx.stroke();
+};

+ 38 - 0
libs/canvas/shapeRender.js

@@ -0,0 +1,38 @@
+// 矩形渲染
+export const rectangleRender = ({
+  ctx,
+  width,
+  height,
+  X,
+  Y,
+  color,
+  lineWidth
+}) => {
+  ctx.beginPath();
+  //   //设置线条颜色,必须放在绘制之前
+  ctx.strokeStyle = color;
+  ctx.lineWidth = lineWidth || 2;
+  ctx.strokeRect(X, Y, width, height);
+
+  return ctx;
+};
+
+// 图形渲染
+export const shapeRender = ({
+  ctx,
+  width,
+  height,
+  shapeType,
+  X,
+  Y,
+  color,
+  roundY,
+  roundX,
+  roundR,
+  lineWidth
+}) => {
+  const typeFn = [
+    () => rectangleRender({ ctx, width, height, X, Y, color, lineWidth })
+  ];
+  typeFn[shapeType]();
+};

+ 16 - 0
libs/canvas/textRender.js

@@ -0,0 +1,16 @@
+/* eslint-disable radix */
+export const textRender = ({
+  text,
+  X,
+  Y,
+  fontSize,
+  color,
+  maxWidth,
+  maxRowNum = 1,
+  ctx
+}) => {
+  ctx.font = '14px serif';
+  ctx.fillStyle = color;
+
+  ctx.fillText(text, X, Y);
+};

+ 5 - 0
manifest.json

@@ -189,6 +189,11 @@
             "maps" : {
                 "qqmap" : {
                     "key" : "XGQBZ-MSGW6-KNDSO-MVOIJ-OM6LO-JXBKB"
+                },
+                "amap" : {
+                    "key" : "bd1582190896ab05afb30aa8161d14c2",
+                    "securityJsCode" : "",
+                    "serviceHost" : ""
                 }
             }
         },

+ 31 - 9
pages.json

@@ -216,7 +216,8 @@
       "style": {
         "navigationBarTitleText": "设备分布",
         "enablePullDownRefresh": false,
-        "navigationBarBackgroundColor": "#00B075"
+        "navigationBarBackgroundColor": "#00B075",
+        "navigationStyle": "custom"
       }
     },
     {
@@ -448,6 +449,12 @@
     },
 
     {
+      "path": "pages/webviewdgp",
+      "style": {
+        "navigationBarTitleText": "监控列表"
+      }
+    },
+    {
       "path": "pages/fourBase/basefacility",
       "style": {
         "navigationBarTitleText": "",
@@ -781,6 +788,13 @@
       }
     },
     {
+      "path": "pages/monitor/dgpImagelist",
+      "style": {
+        "navigationBarTitleText": "光谱图片列表",
+        "enablePullDownRefresh": false
+      }
+    },
+    {
       "path": "pages/cb/sy/detail",
       "style": {
         "navigationBarTitleText": "设备详情",
@@ -816,14 +830,14 @@
         "enablePullDownRefresh": false
       }
     },
-	{
-	  "path": "pages/fmSys/details",
-	  "style": {
-	    "navigationBarTitleText": "阀门",
-	    "enablePullDownRefresh": false,
-	    "navigationStyle": "custom"
-	  }
-	},
+    {
+      "path": "pages/fmSys/details",
+      "style": {
+        "navigationBarTitleText": "阀门",
+        "enablePullDownRefresh": false,
+        "navigationStyle": "custom"
+      }
+    },
     {
       "path": "pages/cb/wenshizs/detail",
       "style": {
@@ -841,6 +855,14 @@
       }
     },
     {
+      "path": "pages/cb/shuifeizsFirst/detail",
+      "style": {
+        "navigationBarTitleText": "水肥一体机",
+        "enablePullDownRefresh": false,
+        "navigationStyle": "custom"
+      }
+    },
+    {
       "path": "pages/cb/shuifeizs/control",
       "style": {
         "navigationBarTitleText": "",

二进制
pages/assets/active.png


+ 4 - 0
pages/assets/active.svg

@@ -0,0 +1,4 @@
+<svg fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 33 33" class="design-iconfont">
+  <path d="M32.9768 32.1V0.100006L0.976807 32.1H32.9768Z" fill="#14A478"/>
+  <path fill-rule="evenodd" clip-rule="evenodd" d="M21.3268 24.3831L28.3979 17.312L29.3407 18.2548L21.3268 26.2687L16.6128 21.5547L17.5556 20.6119L21.3268 24.3831Z" fill="#fff"/>
+</svg>

二进制
pages/assets/add-icon.png


二进制
pages/assets/address.png


二进制
pages/assets/agricultural.png


二进制
pages/assets/arrow.png


二进制
pages/assets/ats.png


+ 4 - 0
pages/assets/back.svg

@@ -0,0 +1,4 @@
+<svg fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" class="design-iconfont">
+  <path d="M0 12C0 5.37258 5.37258 0 12 0V0C18.6274 0 24 5.37258 24 12V12C24 18.6274 18.6274 24 12 24V24C5.37258 24 0 18.6274 0 12V12Z" fill="#fff" fill-opacity=".2"/>
+  <path d="M7.91425 12.5151L11.5606 16.2715L10.8535 17L6.20283 12.209C6.08985 12.0926 6.08985 11.9074 6.20283 11.791L10.8535 7L11.5606 7.72846L7.91421 11.4849L18 11.4851L18 12.5153L7.91425 12.5151Z" fill="#fff"/>
+</svg>

二进制
pages/assets/base.png


文件差异内容过多而无法显示
+ 20 - 0
pages/assets/baseCard.svg


二进制
pages/assets/basil_add-outline.png


+ 40 - 0
pages/assets/bgImage.svg

@@ -0,0 +1,40 @@
+<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 375 252" class="design-iconfont">
+  <g clip-path="url(#wyeiotvaw__clip0_302_5296)">
+    <path fill="#1371FF" d="M0 0H375V252H0z"/>
+    <path fill="url(#wyeiotvaw__paint0_linear_302_5296)" d="M340 126A88 88 0 1 0 340 302A88 88 0 1 0 340 126Z"/>
+    <path fill="url(#wyeiotvaw__paint1_linear_302_5296)" d="M15 -36A88 88 0 1 0 15 140A88 88 0 1 0 15 -36Z"/>
+    <path fill="url(#wyeiotvaw__paint2_linear_302_5296)" d="M274 22A30 30 0 1 0 274 82A30 30 0 1 0 274 22Z"/>
+    <path fill="url(#wyeiotvaw__paint3_linear_302_5296)" d="M315 8A11 11 0 1 0 315 30A11 11 0 1 0 315 8Z"/>
+    <rect x="95" y="172.995" width="140" height="23" rx="11.5" transform="rotate(-45 95 172.995)" fill="url(#wyeiotvaw__paint4_linear_302_5296)"/>
+    <rect x="60" y="178.885" width="86.1044" height="14.1457" rx="7.07286" transform="rotate(-45 60 178.885)" fill="url(#wyeiotvaw__paint5_linear_302_5296)"/>
+  </g>
+  <defs>
+    <linearGradient id="wyeiotvaw__paint0_linear_302_5296" x1="264.48" y1="112.88" x2="340" y2="302" gradientUnits="userSpaceOnUse">
+      <stop stop-color="#fff" stop-opacity=".35"/>
+      <stop offset="1" stop-color="#fff" stop-opacity="0"/>
+    </linearGradient>
+    <linearGradient id="wyeiotvaw__paint1_linear_302_5296" x1="-60.52" y1="-49.12" x2="15" y2="140" gradientUnits="userSpaceOnUse">
+      <stop stop-color="#fff" stop-opacity=".35"/>
+      <stop offset="1" stop-color="#fff" stop-opacity="0"/>
+    </linearGradient>
+    <linearGradient id="wyeiotvaw__paint2_linear_302_5296" x1="248.255" y1="17.5273" x2="274" y2="82" gradientUnits="userSpaceOnUse">
+      <stop stop-color="#fff" stop-opacity=".15"/>
+      <stop offset="1" stop-color="#fff" stop-opacity="0"/>
+    </linearGradient>
+    <linearGradient id="wyeiotvaw__paint3_linear_302_5296" x1="305.56" y1="6.36" x2="315" y2="30" gradientUnits="userSpaceOnUse">
+      <stop stop-color="#fff" stop-opacity=".15"/>
+      <stop offset="1" stop-color="#fff" stop-opacity="0"/>
+    </linearGradient>
+    <linearGradient id="wyeiotvaw__paint4_linear_302_5296" x1="96.4106" y1="185.909" x2="175.253" y2="184.141" gradientUnits="userSpaceOnUse">
+      <stop stop-color="#fff" stop-opacity=".19"/>
+      <stop offset="1" stop-color="#fff" stop-opacity="0"/>
+    </linearGradient>
+    <linearGradient id="wyeiotvaw__paint5_linear_302_5296" x1="60.8676" y1="186.828" x2="109.358" y2="185.74" gradientUnits="userSpaceOnUse">
+      <stop stop-color="#fff" stop-opacity=".19"/>
+      <stop offset="1" stop-color="#fff" stop-opacity="0"/>
+    </linearGradient>
+    <clipPath id="wyeiotvaw__clip0_302_5296">
+      <path fill="#fff" d="M0 0H375V252H0z"/>
+    </clipPath>
+  </defs>
+</svg>

二进制
pages/assets/bgImages.png


二进制
pages/assets/blockIcon.png


二进制
pages/assets/blockList.png


文件差异内容过多而无法显示
+ 6 - 0
pages/assets/calendar.svg


二进制
pages/assets/camera.png


文件差异内容过多而无法显示
+ 9 - 0
pages/assets/camera.svg


二进制
pages/assets/card-sick.png


二进制
pages/assets/card1.png


文件差异内容过多而无法显示
+ 19 - 0
pages/assets/card1.svg


二进制
pages/assets/card2.png


文件差异内容过多而无法显示
+ 19 - 0
pages/assets/card2.svg


二进制
pages/assets/card3.png


文件差异内容过多而无法显示
+ 19 - 0
pages/assets/card3.svg


二进制
pages/assets/card4.png


文件差异内容过多而无法显示
+ 19 - 0
pages/assets/card4.svg


二进制
pages/assets/card_icon.png


二进制
pages/assets/cbd.png


二进制
pages/assets/cbd2.png


二进制
pages/assets/checkedDisabled.png


二进制
pages/assets/checkedSelect.png


二进制
pages/assets/clear.png


二进制
pages/assets/cornLeafBlight.png


二进制
pages/assets/disease.png


二进制
pages/assets/edit-filter.png


二进制
pages/assets/edit.png


二进制
pages/assets/empty2.png


二进制
pages/assets/empty3.png


二进制
pages/assets/empty4.png


二进制
pages/assets/expend.png


二进制
pages/assets/expert.png


二进制
pages/assets/eye.png


二进制
pages/assets/facilitystatenew.png


二进制
pages/assets/fertilizer.png


二进制
pages/assets/field.png


二进制
pages/assets/filter.png


二进制
pages/assets/fms.png


二进制
pages/assets/fxsscd.png


二进制
pages/assets/fxsscd2.png


二进制
pages/assets/general.png


文件差异内容过多而无法显示
+ 9 - 0
pages/assets/grass.svg


二进制
pages/assets/greenHouse.png


二进制
pages/assets/gssq.png


二进制
pages/assets/gssq2.png


二进制
pages/assets/harvestingoperation.png


二进制
pages/assets/highInsectLamp.png


二进制
pages/assets/home-weather-bg.jpg


二进制
pages/assets/icon1.png


文件差异内容过多而无法显示
+ 44 - 0
pages/assets/icon1.svg


二进制
pages/assets/icon2.png


文件差异内容过多而无法显示
+ 26 - 0
pages/assets/icon2.svg


二进制
pages/assets/icon3.png


文件差异内容过多而无法显示
+ 32 - 0
pages/assets/icon3.svg


二进制
pages/assets/icon4.png


文件差异内容过多而无法显示
+ 37 - 0
pages/assets/icon4.svg


文件差异内容过多而无法显示
+ 9 - 0
pages/assets/icon_left.svg


二进制
pages/assets/inducer.png


二进制
pages/assets/inducer2.png


二进制
pages/assets/inducer3.png


二进制
pages/assets/insectLamp.png


二进制
pages/assets/insectLampvi-fat.png


二进制
pages/assets/insectLampvi.png


二进制
pages/assets/insecticidalLamp.png


二进制
pages/assets/inspectionManage.png


二进制
pages/assets/itemIcon.png


二进制
pages/assets/landIcon.png


二进制
pages/assets/lockClosed.png


文件差异内容过多而无法显示
+ 3 - 0
pages/assets/lockClosed.svg


二进制
pages/assets/machinery.png


二进制
pages/assets/map-01.png


二进制
pages/assets/map-02.png


二进制
pages/assets/map.png


二进制
pages/assets/message-edit.png


二进制
pages/assets/message.png


二进制
pages/assets/moisture.png


二进制
pages/assets/moisturegssq.png


+ 0 - 0
pages/assets/moisturegssq1.png


部分文件因为文件数量过多而无法显示