Kaynağa Gözat

feature:删除echart相关依赖和首页相关页面

liuzl 2 yıl önce
ebeveyn
işleme
abc62b414e

+ 0 - 1
package.json

@@ -6,7 +6,6 @@
     "dependencies": {
         "await-to-js": "^3.0.0",
         "axios": "^0.27.2",
-        "echarts": "^5.4.1",
         "uview-ui": "^2.0.31",
         "vue-inset-loader": "^1.2.6",
         "vuex": "^4.1.0"

+ 3 - 216
pages/home/index.vue

@@ -2,7 +2,7 @@
  * @Author: liuzhenlin 461480418@qq.ocm
  * @Date: 2023-01-12 11:57:48
  * @LastEditors: liuzhenlin
- * @LastEditTime: 2023-03-10 16:59:38
+ * @LastEditTime: 2023-05-11 10:05:31
  * @Description: file content
  * @FilePath: \oms\pages\home\index.vue
 -->
@@ -145,100 +145,9 @@
             </view>
           </view>
         </view>
-
-        <view class="data-container">
-          <h4>个人报表</h4>
-          <view class="echarts" v-for="item in echarts" :key="item.id">
-            <view class="flex">
-              <h4>{{ item.report_name }}</h4>
-              <view class="center" style="padding-left: 30rpx" v-if="item.id == 20006">
-                <u-button
-                  :text="saleVal"
-                  type="primary"
-                  size="mini"
-                  @click="
-                    showSaleType = true
-                    hideKeyboard()
-                  "></u-button>
-              </view>
-              <view class="center" style="padding-left: 30rpx" v-if="item.id == 20007">
-                <u-button
-                  :text="collectionVal"
-                  type="primary"
-                  size="mini"
-                  @click="
-                    showCollectionType = true
-                    hideKeyboard()
-                  "></u-button>
-              </view>
-            </view>
-            <view class="chart">
-              <l-echart :ref="item.id + ''" @finished="init(item.id)"></l-echart>
-            </view>
-          </view>
-        </view>
       </view>
-
-      <!-- <view class="rank-wrap">
-        <view class="rank-tit flex_l">
-          <image class="rank-tit-img" src="../../static/images/rank-img.png" mode="scaleToFill" />
-          <text>回款排名</text>
-        </view>
-        <view class="rank-list-wrap">
-          <view class="rank-th">
-            <u-row justify="space-between">
-              <u-col span="2">
-                <view class="th1 text-center">排名</view>
-              </u-col>
-              <u-col span="4">
-                <view class="th2 text-center">姓名</view>
-              </u-col>
-              <u-col span="6">
-                <view class="th3 text-center">回款额</view>
-              </u-col>
-            </u-row>
-          </view>
-          <view class="rank-list">
-            <view class="rank-item" v-for="(v, i) in rankList" :key="i">
-              <u-row justify="space-between">
-                <u-col span="2">
-                  <view class="rank-box center">
-                    <image
-                      class="rank-img"
-                      v-if="i < 3"
-                      :src="require(`../../static/images/rank${i + 1}.png`)"
-                      mode=""></image>
-                    <view v-else class="th1 text-center rank">{{ i + 1 }}</view>
-                  </view>
-                </u-col>
-                <u-col span="4">
-                  <view class="th2 text-center">{{ v.name }}</view>
-                </u-col>
-                <u-col span="6">
-                  <view class="th3 text-center">
-                    <u-text mode="price" :text="v.money"></u-text>
-                  </view>
-                </u-col>
-              </u-row>
-            </view>
-          </view>
-          <view class="view-all">查看全部排名 ></view>
-        </view>
-      </view> -->
     </view>
     <view class="check" @click="toCheckIn">卡</view>
-    <u-action-sheet
-      :show="showSaleType"
-      :actions="quarter"
-      title="请选择季度"
-      @close="showSaleType = false"
-      @select="selectSaleVal"></u-action-sheet>
-    <u-action-sheet
-      :show="showCollectionType"
-      :actions="quarter"
-      title="请选择季度"
-      @close="showCollectionType = false"
-      @select="selectCollectionVal"></u-action-sheet>
   </view>
 </template>
 
@@ -246,8 +155,6 @@
   import indexApi from '@/api/system/index.js'
   import homeApi from '@/api/home'
   import to from 'await-to-js'
-  import LEchart from '@/uni_modules/lime-echart/components/l-echart/l-echart.vue'
-  import * as echarts from '@/uni_modules/lime-echart/static/echarts.min'
   export default {
     name: 'omsIndex',
     data() {
@@ -292,29 +199,6 @@
         newCustomer: 0,
         newBusiness: 0,
         newTask: 0,
-        rankList: [
-          // {
-          //   name: '邱国辉',
-          //   money: '100000',
-          // },
-          // {
-          //   name: '邱国辉',
-          //   money: '100000000',
-          // },
-          // {
-          //   name: '邱国辉',
-          //   money: '100000000',
-          // },
-          // {
-          //   name: '邱国辉',
-          //   money: '100000000',
-          // },
-          // {
-          //   name: '邱国辉',
-          //   money: '100000000',
-          // },
-        ],
-        echarts: [],
       }
     },
     created() {
@@ -328,20 +212,9 @@
     onShow() {
       this.getReport('week')
     },
-    components: {
-      LEchart,
-    },
+
     methods: {
-      selectSaleVal(e) {
-        this.saleVal = e.name
-        this.saleType = e.type
-        this.init(20006)
-      },
-      selectCollectionVal(e) {
-        this.collectionVal = e.name
-        this.collectionType = e.type
-        this.init(20007)
-      },
+      // 获取首页新增数据
       async getReport(type) {
         this.tabDate = type
         let params = { viewInterval: this.tabDate }
@@ -383,7 +256,6 @@
         if (res && res.data) {
           const obj = JSON.parse(res.data.configInfo)
           this.privateBoard = obj.num_report_config || []
-          this.echarts = obj.data_report_config || []
           this.getHomeNumReportData()
         }
       },
@@ -406,91 +278,6 @@
         })
         this.privateBoard = privateBoardData.splice(0, 6)
       },
-      async init(id) {
-        let params = {}
-        if (id == 20006) {
-          params = {
-            Params: { year: new Date().getFullYear(), quarter: this.saleType },
-            id,
-          }
-        } else if (id == 20007) {
-          params = {
-            Params: { year: new Date().getFullYear(), quarter: this.collectionType },
-            id,
-          }
-        } else {
-          params = {
-            Params: {},
-            id,
-          }
-        }
-        const [err, res] = await to(indexApi.getHomeDataReportData(params))
-        if (err) return
-        let yAxis =
-          id == 20006 || id == 20007
-            ? [
-                {
-                  type: 'value',
-                  name: '金额(元)',
-                  alignTicks: true,
-                },
-              ]
-            : [
-                {
-                  type: 'value',
-                  name: '金额(元)',
-                  alignTicks: true,
-                },
-                {
-                  type: 'value',
-                  name: res.data.id == 20000 || 20002 ? '签约完成率(%)' : '回款率(%)',
-                  min: 0,
-                  max: 100,
-                  alignTicks: true,
-                  interval: 20,
-                  axisLabel: {
-                    formatter: '{value} %',
-                  },
-                },
-              ]
-        const option = {
-          grid: {
-            bottom: 30,
-            top: 40,
-            right: 10,
-            left: 10,
-            containLabel: true,
-          },
-          tooltip: {
-            trigger: 'axis',
-          },
-          xAxis: [
-            {
-              type: 'category',
-              data: res.data.data ? res.data.data.xData : [],
-              axisTick: {
-                alignWithLabel: true,
-              },
-            },
-          ],
-          yAxis,
-          series: [
-            {
-              name: '销售指标',
-              type: 'bar',
-              data: res.data.data ? res.data.data.yDataTarget : [],
-            },
-            {
-              name: '销售额度',
-              type: 'bar',
-              data: res.data.data ? res.data.data.yDataReal : [],
-            },
-          ],
-        }
-        this.$refs[id][0].init(echarts, (chart) => {
-          chart.setOption(option)
-        })
-      },
       toCheckIn() {
         uni.navigateTo({
           //保留当前页面,跳转到应用内的某个页面

+ 0 - 7
uni_modules/HM-filterDropdown/changelog.md

@@ -1,7 +0,0 @@
-## 1.0.1(2022-08-19)
-修复一些bug
-## 1.0.0(2021-07-21)
-* 发布uni_modules版本,请下载uni_modules版本,非uni_modules版本停止更新
-* 修复 子组件修改父组件数据问题,注意,数据非双向绑定  
-* 优化 点击遮罩层等未选择菜单关闭菜单情况不触发confirm回调  
-* 新增 三列形式的菜单 详细请下载示例查看data.js

+ 0 - 894
uni_modules/HM-filterDropdown/components/HM-filterDropdown/HM-filterDropdown.vue

@@ -1,894 +0,0 @@
-<template>
-	<view class="HMfilterDropdown" :class="{'setDropdownBottom':maskVisibility}" :style="{'top':menuTop+'rpx'}" @touchmove.stop.prevent="discard" @tap.stop="discard">
-		<!-- 顶部菜单 -->
-		<view class="nav">
-			<block v-for="(item,index) in menu" :key="index">
-				<view class="first-menu" :class="{'on':showPage==index}" @tap="togglePage(index)">
-					<text class="name">{{item.name}}</text>
-					<text class="iconfont triangle" :style="'transform:rotate('+triangleDeg[index]+'deg);'"></text>
-				</view>
-			</block>
-		</view>
-		<!-- 遮罩层 -->
-		<view class="mask" :class="{'show':isShowMask,'hide':maskVisibility!=true}" @tap="hideMenu(false)"></view>
-		<block v-for="(page,page_index) in subData" :key="page_index">
-			<view class="sub-menu-class" :class="{'show':showPage==page_index,'hide':pageState[page_index]!=true}">
-				<!-- 多级菜单 -->
-				<block v-if="(page.type=='hierarchy'||page.type=='hierarchy-column')&& page.submenu.length>0">
-					<!-- 第一级菜单 -->
-					<scroll-view class="sub-menu-list" :class="{'first':activeMenuArr[page_index].length>1,'alone':activeMenuArr[page_index].length<=1}"
-					 :scroll-y="true" :scroll-into-view="'first_id'+firstScrollInto">
-						<block v-for="(sub,index) in page.submenu" :key="sub.value">
-							<view class="sub-menu" :id="'first_id'+index" :class="{'on':activeMenuArr[page_index][0]==index}" @tap="selectHierarchyMenu(page_index,index,null,null)">
-								<view class="menu-name">
-									<text>{{sub.name}}</text>
-									<text class="iconfont selected"></text>
-								</view>
-							</view>
-						</block>
-					</scroll-view>
-					<block v-if="page.type=='hierarchy'">
-						<block v-for="(sub,index) in page.submenu" :key="sub.value">
-							<!-- 第二级菜单 -->
-							<scroll-view class="sub-menu-list not-first" :scroll-y="true" v-if="activeMenuArr[page_index][0]==index&&sub.submenu.length>0"
-							 :scroll-into-view="'second_id'+secondScrollInto">
-								<block v-for="(sub_second,second_index) in sub.submenu" :key="sub_second.value">
-									<view class="sub-menu" :id="'second_id'+second_index" :class="{'on':activeMenuArr[page_index][1]==second_index}">
-										<view class="menu-name" @tap="selectHierarchyMenu(page_index,activeMenuArr[page_index][0],second_index,null)">
-											<text>{{sub_second.name}}</text>
-											<text class="iconfont selected"></text>
-										</view>
-										<!-- 第三级菜单 -->
-										<view class="more-sub-menu" v-if="sub_second.submenu&&sub.submenu.length>0&&sub_second.submenu.length>0">
-											<block v-for="(sub2,sub2_index) in sub_second.submenu" :key="sub2.value">
-												<text v-if="sub_second.showAllSub || (sub2_index<8)" :class="{'on':activeMenuArr[page_index][1]==second_index&&activeMenuArr[page_index][2]==sub2_index}"
-												 @tap.stop="selectHierarchyMenu(page_index,activeMenuArr[page_index][0],second_index,sub2_index)">{{sub2.name}}</text>
-												<text v-if="sub_second.showAllSub!=true && sub2_index==8 && sub_second.submenu.length>9" @tap.stop="showMoreSub(second_index)">更多<text
-													 class="iconfont triangle"></text></text>
-											</block>
-										</view>
-									</view>
-								</block>
-							</scroll-view>
-						</block>
-					</block>
-					
-					<!-- 二三级菜单都是行形态 -->
-					<block v-else-if="page.type=='hierarchy-column'">
-						<!-- 第二级菜单 -->
-						<block v-for="(sub,index) in page.submenu" :key="index">
-							<scroll-view class="sub-menu-list not-first" :scroll-y="true" v-if="activeMenuArr[page_index][0]==index&&sub.submenu.length>0"
-							 :scroll-into-view="'second_id'+secondScrollInto">
-								<block v-for="(sub_second,second_index) in sub.submenu" :key="second_index">
-									<view class="sub-menu" :id="'second_id'+second_index" :class="{'on':activeMenuArr[page_index][1]==second_index}">
-										<view class="menu-name" @tap="selectHierarchyMenu(page_index,activeMenuArr[page_index][0],second_index,null)">
-											<text>{{sub_second.name}}</text>
-										</view>
-									</view>
-								</block>
-							</scroll-view>
-						</block>
-						<!-- 第三级菜单 -->
-						<block v-for="(sub,index) in page.submenu">
-							<block v-for="(sub_second,second_index) in sub.submenu">
-								<scroll-view class="sub-menu-list not-first third" :scroll-y="true" v-if="activeMenuArr[page_index][0]==index&&activeMenuArr[page_index][1]==second_index&&sub_second.submenu.length>0"
-								:scroll-into-view="'third_id'+thirdScrollInto"
-								>
-									<block v-for="(sub2,sub2_index) in sub_second.submenu" :key="sub2_index">
-									<view class="sub-menu" :id="'third_id'+sub2_index" :class="{'on':activeMenuArr[page_index][2]==sub2_index}">
-										<view class="menu-name" @tap="selectHierarchyMenu(page_index,activeMenuArr[page_index][0],second_index,sub2_index)">
-											<text>{{sub2.name}}</text>
-										</view>
-									</view>
-									</block>
-								</scroll-view>
-							</block>
-						</block>
-					</block>
-					
-					
-				</block>
-				
-				
-				<!-- 多选筛选 -->
-				<block v-if="page.type=='filter'">
-					<view class="filter">
-						<scroll-view class="menu-box" :scroll-y="true">
-							<view class="box" v-for="(box,box_index) in page.submenu" :key="box_index">
-								<view class="title">{{box.name}}</view>
-								<view class="labels">
-									<view v-for="(label,label_index) in box.submenu" :key="label_index" @tap="selectFilterLabel(page_index,box_index,label_index)"
-									 :class="{'on':label.selected}">{{label.name}}</view>
-								</view>
-							</view>
-						</scroll-view>
-						<view class="btn-box">
-							<view class="reset" @tap="resetFilterData(page_index)">重置</view>
-							<view class="submit" @tap="setFilterData(page_index)">确定</view>
-						</view>
-					</view>
-				</block>
-				
-				<!-- 单选筛选 -->
-				<block v-if="page.type=='radio'">
-					<view class="filter">
-						<scroll-view class="menu-box" :scroll-y="true">
-							<view class="box" v-for="(box,box_index) in page.submenu" :key="box_index">
-								<view class="title">{{box.name}}</view>
-								<view class="labels">
-									<view v-for="(label,label_index) in box.submenu" :key="label_index" @tap="selectRadioLabel(page_index,box_index,label_index)"
-									 :class="{'on':label.selected}">{{label.name}}</view>
-								</view>
-							</view>
-						</scroll-view>
-						<view class="btn-box">
-							<view class="reset" @tap="resetFilterData(page_index)">重置</view>
-							<view class="submit" @tap="setFilterData(page_index)">确定</view>
-						</view>
-					</view>
-				</block>
-			</view>
-		</block>
-	</view>
-</template>
-<script>
-	export default {
-		name: 'HM-filterDropdown',
-		data() {
-			return {
-				menuData:[],
-				subData: [], //菜单数据
-				menu: [], //顶部菜单数据
-				showPage: -1, //菜单页面显示/隐藏动画控制
-				pageState: [], //页面的状态
-				activeMenuArr: [], //UI状态
-				shadowActiveMenuArr: [], //记录选中
-				defaultActive:[],
-				triangleDeg: [], //小三角形的翻转动画控制
-				isShowMask: false, //遮罩层显示/隐藏动画控制
-				maskVisibility: false, //遮罩层显示/隐藏状态
-				
-				//滚动区域定位
-				firstScrollInto: 0,
-				secondScrollInto: 0,
-				thirdScrollInto:0,
-				componentTop:0	,//组件top
-				isReadNewSelect:false
-			}
-		},
-		props: {
-			menuTop:{
-				value: Number,
-				default: false
-			},
-			filterData: {
-				value: Array,
-				default: []
-			},
-			defaultSelected:{
-				value: Array,
-				default: []
-			},
-			updateMenuName:{
-				value: Boolean,
-				default: true
-			},
-			dataFormat:{
-				value: String,
-				default: 'Array'
-			}
-		},
-		watch: {
-			filterData: {
-				handler(newVal) {
-					this.menuData = JSON.parse(JSON.stringify(newVal));
-					this.initMenu(); //filterData重新赋值初始化菜单
-				},
-				immediate: true,
-				deep: true
-			},
-			defaultSelected(newVal) {
-
-				if(newVal.length==0){
-					return;
-				}
-				this.defaultActive = JSON.parse(JSON.stringify(newVal));
-				this.activeMenuArr = JSON.parse(JSON.stringify(newVal));
-				this.shadowActiveMenuArr = JSON.parse(JSON.stringify(newVal));
-				if(this.updateMenuName){
-					this.setMenuName();
-				}
-			}
-		},
-		methods: {
-			initMenu() {
-
-				let tmpMenuActiveArr=[];
-				let tmpMenu=[];
-				for (let i = 0; i < this.menuData.length; i++) {
-					let tmpitem = this.menuData[i];
-					tmpMenu.push({
-						//如果没有设置name,则取第一个菜单作为menu.name,filter类型则将"筛选"作为menu.name
-						name: tmpitem.name || (tmpitem.type == "filter" ? "筛选" : tmpitem.submenu[0].name),
-						type: tmpitem.type
-					});
-					//初始化选中项数组-ui状态
-					tmpMenuActiveArr.push(this.processActive(tmpitem));
-					//初始化角度数组
-					this.triangleDeg.push(0);
-					//初始化控制显示状态数组
-					this.pageState.push(false);
-					//递归处理子菜单数据
-					tmpitem = this.processSubMenu(tmpitem);
-					this.menuData[i] = tmpitem;
-				}
-				this.menu = tmpMenu;
-				//初始化选中项数组
-				tmpMenuActiveArr = this.defaultActive.length>0?this.defaultActive:this.activeMenuArr.length>0?this.activeMenuArr:tmpMenuActiveArr;
-				this.defaultActive = [];
-				this.activeMenuArr.splice(0,this.activeMenuArr.length,...JSON.parse(JSON.stringify(tmpMenuActiveArr)));
-				// this.activeMenuArr = JSON.parse(JSON.stringify(tmpMenuActiveArr));
-				this.shadowActiveMenuArr = JSON.parse(JSON.stringify(tmpMenuActiveArr));
-				//加载菜单数据
-				this.subData = this.menuData;
-				//设定顶部菜单名字
-				if(this.updateMenuName){
-					this.setMenuName();
-				}
-			},
-			setMenuName(){
-				for(var i=0;i<this.activeMenuArr.length;i++){
-					let row = this.activeMenuArr[i];
-					if(this.subData[i].type=='hierarchy' || this.subData[i].type=='hierarchy-column'){
-						if (typeof(row[0]) == 'number'){
-							let tmpsub = this.subData[i].submenu[row[0]];
-							if(row.length>1){
-								tmpsub = tmpsub.submenu[row[1]]||tmpsub;
-								if(row.length>2){
-									tmpsub = tmpsub.submenu[row[2]]||tmpsub;
-								}
-							}
-							this.menu[i].name = tmpsub.name;
-						}else{
-							this.menu[i].name = this.subData[i].name;
-						}
-					}
-				}
-			},
-			//展开更多
-			showMoreSub(index) {
-				this.subData[this.showPage].submenu[this.activeMenuArr[this.showPage][0]].submenu[index].showAllSub = true;
-				this.$forceUpdate();
-			},
-			//选中
-			selectHierarchyMenu(page_index, level1_index, level2_index, level3_index) {
-				//读取记录
-				if (level2_index == null && level3_index == null && this.shadowActiveMenuArr[page_index].length>0 && this.shadowActiveMenuArr[page_index][0] == level1_index) {
-					this.activeMenuArr.splice(page_index, 1, JSON.parse(JSON.stringify(this.shadowActiveMenuArr[page_index])));
-				}
-				/////////
-				let tmpArr = new Array(this.activeMenuArr[page_index].length).fill(null);
-				this.activeMenuArr[page_index].splice(0, this.activeMenuArr[page_index].length, ...tmpArr);
-				////////
-				this.activeMenuArr[page_index].splice(0, 1, level1_index);
-				let tmpMemu = this.subData[page_index].submenu[level1_index];
-				if(tmpMemu.submenu.length==0){
-					this.selectedMemu(page_index, level1_index, level2_index, level3_index);
-				}else if(level2_index!=null){
-					this.activeMenuArr[page_index].splice(1, 1, level2_index);
-					tmpMemu = tmpMemu.submenu[level2_index];
-					if(tmpMemu.submenu.length==0 || (this.menu[page_index].type == 'hierarchy' && level3_index==null)){
-						this.selectedMemu(page_index, level1_index, level2_index, level3_index);
-					}else if(level3_index!=null){
-						this.activeMenuArr[page_index].splice(2, 1, level3_index);
-						tmpMemu = tmpMemu.submenu[level3_index];
-						this.selectedMemu(page_index, level1_index, level2_index, level3_index);
-					}
-				}
-			},
-			selectedMemu(page_index, level1_index, level2_index, level3_index){
-				let sub = this.subData[page_index].submenu[level1_index].submenu[level2_index];
-				if(this.updateMenuName){
-					this.menu[page_index].name = (level3_index != null && sub.submenu[level3_index].name) || (level2_index != null && sub.name) || this.subData[page_index].submenu[level1_index].name;
-				}
-				this.shadowActiveMenuArr[page_index] = JSON.parse(JSON.stringify(this.activeMenuArr[page_index]));
-				this.hideMenu(true);
-			},
-			//写入结果,筛选
-			setFilterData(page_index) {
-				this.shadowActiveMenuArr[page_index] = JSON.parse(JSON.stringify(this.activeMenuArr[page_index]));
-				this.hideMenu(true);
-			},
-			//重置结果和ui,筛选
-			resetFilterData(page_index) {
-				let tmpArr = [];
-				let level = this.shadowActiveMenuArr[page_index].length;
-				while (level > 0) {
-					tmpArr.push([]);
-					let box = this.subData[page_index].submenu[level - 1].submenu;
-					for (let i = 0; i < box.length; i++) {
-						this.subData[page_index].submenu[level - 1].submenu[i].selected = false;
-					}
-					level--;
-				}
-				this.activeMenuArr[page_index] = JSON.parse(JSON.stringify(tmpArr));
-				this.$forceUpdate();
-			},
-			//选中筛选类label-UI状态
-			selectFilterLabel(page_index, box_index, label_index) {
-				let find_index = this.activeMenuArr[page_index][box_index].indexOf(label_index);
-				if (find_index > -1) {
-					this.activeMenuArr[page_index][box_index].splice(find_index, 1);
-					this.subData[page_index].submenu[box_index].submenu[label_index].selected = false;
-				} else {
-					this.activeMenuArr[page_index][box_index].push(label_index);
-					this.subData[page_index].submenu[box_index].submenu[label_index].selected = true;
-				}
-				this.$forceUpdate();
-			},
-			//选中单选类label-UI状态
-			selectRadioLabel(page_index, box_index, label_index) {
-				
-				let activeIndex = this.activeMenuArr[page_index][box_index][0];
-				if(activeIndex == label_index){
-					this.subData[page_index].submenu[box_index].submenu[activeIndex].selected = false;
-					this.activeMenuArr[page_index][box_index][0] = null;
-				}else{
-					if(activeIndex!=null && activeIndex<this.subData[page_index].submenu[box_index].submenu.length){
-						this.subData[page_index].submenu[box_index].submenu[activeIndex].selected = false;
-					}
-					
-					this.subData[page_index].submenu[box_index].submenu[label_index].selected = true;
-					this.activeMenuArr[page_index][box_index][0] = label_index;
-				}
-				this.$forceUpdate();
-			},
-			//菜单开关
-			togglePage(index) {
-				if(this.isToggleing){return;}
-				this.isToggleing = true;
-				if (index == this.showPage) {
-					this.hideMenu();
-				} else {
-					this.showMenu(index)
-				}
-				setTimeout(()=>{
-					this.isToggleing = false;
-				},150)
-			},
-			//hide菜单
-			hideMenu(isTriggerConfirm){
-				this.hideMenuLayer(true);
-				this.hideMaskLayer();
-				this.showPage = -1;
-				if(isTriggerConfirm){
-					this.confirm()
-				}
-			},
-			showMenu(index){
-				if(this.showPage>-1){
-					this.hideMenuLayer(false);
-				}
-				this.showMenuLayer(index);
-				this.showMaskLayer();
-				
-			},
-			//hide遮罩层
-			hideMaskLayer() {
-				this.isShowMask = false;
-				setTimeout(() => {
-					this.maskVisibility = false;
-				}, 200);
-			},
-			//show遮罩层
-			showMaskLayer() {
-				this.maskVisibility = true;
-				this.$nextTick(() => {
-					setTimeout(()=>{
-						this.isShowMask = true;
-					},0)
-				})
-			},
-			//hide菜单页
-			hideMenuLayer(isAnimation) {
-				this.triangleDeg[this.showPage] = 0;
-				let tmpIndex = this.showPage;
-				if (isAnimation) {
-					setTimeout(() => {
-						this.pageState.splice(tmpIndex, 1, false);
-					}, 200);
-				} else {
-					this.pageState.splice(tmpIndex, 1, false)
-				}
-				this.firstScrollInto = null;
-				this.secondScrollInto = null;
-			},
-			//show菜单页
-			showMenuLayer(index) {
-				this.processPage(index);
-				this.pageState.splice(index, 1, true);
-				this.$nextTick(() => {
-					setTimeout(()=>{
-						this.showPage = index;
-					},0)
-				})
-				this.triangleDeg[index] = 180;
-			},
-			confirm() {
-				let index = JSON.parse(JSON.stringify(this.shadowActiveMenuArr));
-				let value = JSON.parse(JSON.stringify(this.shadowActiveMenuArr));
-				
-				//对结果做一下处理
-				index.forEach((item, i) => {
-					if (typeof(item[0]) == 'object') {
-						//针对筛选结果过一个排序
-						item.forEach((s, j) => {
-							if(s!=null){
-								s.sort((val1, val2) => {
-									return val1 - val2;
-								});
-								item[j] = s;
-								s.forEach((v, k) => {
-									value[i][j][k] = (v==null||v>=this.subData[i].submenu[j].submenu.length)?null:this.subData[i].submenu[j].submenu[v].value;
-									if(this.subData[i].type == 'radio' && value[i][j][k] == null){
-										value[i][j] = [];
-										index[i][j] = [];
-									}
-								});
-							}
-						});
-					}else{
-						let submenu = this.subData[i].submenu[item[0]];
-						value[i][0] = submenu.value;
-						if(value[i].length>=2  && item[1]!=null){
-							if(submenu.submenu.length>0){
-								submenu = submenu.submenu[item[1]];
-								value[i][1] = submenu.hasOwnProperty('value')?submenu.value:null;
-							}else{
-								value[i][1] = null
-							}
-							if(value[i].length>=3 && item[2]!=null){
-								if(submenu.submenu.length>0){
-									submenu = submenu.submenu[item[2]];
-									value[i][2] = submenu.hasOwnProperty('value')?submenu.value:null;
-								}else{
-									value[i][2] = null;
-								}
-							}
-						}
-					}
-					index[i] = item;
-					
-				});
-				// 输出
-				this.$emit('confirm', {
-					index: index,
-					value: value
-				});
-			},
-			
-			reloadActiveMenuArr(){
-				for (let i = 0; i < this.menuData.length; i++) {
-					let tmpitem = this.menuData[i];
-					let tmpArr = this.processActive(tmpitem);
-					tmpitem = this.processSubMenu(tmpitem);
-					if(this.activeMenuArr[i].length!=tmpArr.length){
-						this.menuData[i] = tmpitem;
-						this.activeMenuArr.splice(i, 1, JSON.parse(JSON.stringify(tmpArr)));
-						this.shadowActiveMenuArr.splice(i, 1, JSON.parse(JSON.stringify(tmpArr)));
-					}
-				} 
-				this.subData = this.menuData;
-				this.$forceUpdate();
-			},
-			processPage(index) {
-				//check UI控制数组,结果数组,防止传入数据层级和UI控制数组不同步
-				this.reloadActiveMenuArr();
-				//重置UI控制数组
-				this.activeMenuArr.splice(index, 1, JSON.parse(JSON.stringify(this.shadowActiveMenuArr[index])));
-				if (this.menu[index].type == 'filter') {
-					//重载筛选页选中状态
-					let level = this.shadowActiveMenuArr[index].length;
-					for (let i = 0; i < level; i++) {
-						let box = this.subData[index].submenu[i].submenu;
-						for (let j = 0; j < box.length; j++) {
-							if (this.shadowActiveMenuArr[index][i].indexOf(j) > -1) {
-								this.subData[index].submenu[i].submenu[j].selected = true;
-							} else {
-								this.subData[index].submenu[i].submenu[j].selected = false;
-							}
-						}
-					}
-				} else if (this.menu[index].type == 'hierarchy') {
-					this.$nextTick(() => {
-						setTimeout(() => {
-							//滚动到选中项
-							this.firstScrollInto = parseInt(this.activeMenuArr[index][0]);
-							this.secondScrollInto = parseInt(this.activeMenuArr[index][1]);
-						}, 0);
-					})
-				}else if (this.menu[index].type == 'hierarchy-column') {
-					this.$nextTick(() => {
-						setTimeout(() => {
-							//滚动到选中项
-							this.firstScrollInto = parseInt(this.activeMenuArr[index][0]);
-							this.secondScrollInto = parseInt(this.activeMenuArr[index][1]);
-							this.thirdScrollInto = parseInt(this.activeMenuArr[index][2]);
-						}, 0);
-					})
-				} else if (this.menu[index].type == 'radio') {
-					//重载筛选页选中状态
-					let level = this.shadowActiveMenuArr[index].length;
-					for (let i = 0; i < level; i++) {
-						let box = this.subData[index].submenu[i].submenu;
-						for (let j = 0; j < box.length; j++) {
-							if (this.shadowActiveMenuArr[index][i].indexOf(j) > -1) {
-								this.subData[index].submenu[i].submenu[j].selected = true;
-							} else {
-								this.subData[index].submenu[i].submenu[j].selected = false;
-							}
-						}
-					}
-				} 
-			},
-			processActive(tmpitem) {
-				let tmpArr = []
-				if ((tmpitem.type == 'hierarchy'||tmpitem.type == 'hierarchy-column')&&tmpitem.hasOwnProperty('submenu')&&tmpitem.submenu.length>0) {
-					let level = this.getMaxFloor(tmpitem.submenu);
-					while (level > 0) {
-						tmpArr.push(null);
-						level--;
-					}
-				} else if (tmpitem.type == 'filter') {
-					let level = tmpitem.submenu.length;
-					while (level > 0) {
-						tmpArr.push([]);
-						level--;
-					}
-				} else if (tmpitem.type == 'radio') {
-					let level = tmpitem.submenu.length;
-					while (level > 0) {
-						tmpArr.push([]);
-						level--;
-					}
-				}
-				return tmpArr;
-			},
-			processSubMenu(menu) {
-				if (menu.hasOwnProperty('submenu') && menu.submenu.length > 0) {
-					for (let i = 0; i < menu.submenu.length; i++) {
-						menu.submenu[i] = this.processSubMenu(menu.submenu[i]);
-					}
-				} else {
-					menu.submenu = [];
-				}
-				return menu;
-			},
-			//计算菜单层级
-			getMaxFloor(treeData) {
-				let floor = 0
-				let max = 0
-				function each(data, floor) {
-					data.forEach(e => {
-						max = floor > max ? floor : max;
-						if (e.hasOwnProperty('submenu') && e.submenu.length > 0) {
-							each(e.submenu, floor + 1)
-						}
-					})
-				}
-				each(treeData, 1)
-				return max;
-			},
-			discard() {
-
-			}
-		}
-	}
-</script>
-<style lang="scss">
-	.HMfilterDropdown {
-		flex-shrink: 0;
-		width: 100%;
-		position: fixed;
-		// position: sticky;
-		z-index: 997;
-		flex-wrap: nowrap;
-		display: flex;
-		flex-direction: row;
-		top: var(--window-top);
-		left:0;
-		// top:100px;
-		overflow-y: hidden;
-		&.setDropdownBottom{
-			// height: 345px;
-			bottom: 0;
-		}
-		view {
-			display: flex;
-			flex-wrap: nowrap;
-		}
-	}
-	.region {
-		flex: 1;
-		height: 44px;
-	}
-	.nav {
-		width: 100%;
-		height: 44px;
-		border-bottom: solid 1rpx #eee;
-		z-index: 12;
-		background-color: #ffffff;
-		flex-direction: row;
-		.first-menu {
-			width: 100%;
-			font-size: 13px;
-			color: #757575;
-			flex-direction: row;
-			align-items: center;
-			justify-content: center;
-			transition: color .2s linear;
-
-			&.on {
-				color: #ec652b;
-
-				.iconfont {
-					color: #ec652b;
-				}
-			}
-			.name {
-				height: 20px;
-				text-align: center;
-				text-overflow: clip;
-				overflow: hidden;
-			}
-			.iconfont {
-				width: 13px;
-				height: 13px;
-				align-items: center;
-				justify-content: center;
-				transition: transform .2s linear, color .2s linear;
-			}
-		}
-	}
-	.sub-menu-class {
-		width: 100%;
-		position: absolute;
-		left: 0;
-		transform: translate3d(0, - 100%, 0);
-		max-height: 345px;
-		background-color: #ffffff;
-		z-index: 11;
-		box-shadow: 0 5px 5px rgba(0, 0, 0, .1);
-		overflow: hidden;
-		flex-direction: row;
-		transition: transform .15s linear;
-		&.hide {
-			display: none;
-		}
-
-		&.show {
-			transform: translate3d(0, calc(44px + 1rpx), 0);
-		}
-	}
-	.sub-menu-list {
-		width: 100%;
-		height: 345px;
-		flex-direction: column;
-		.sub-menu {
-			min-height: 44px;
-			font-size: 13px;
-			flex-direction: column;
-			padding-right: 15px;
-			>.menu-name {
-				height: 44px;
-				flex-direction: row;
-				align-items: center;
-				justify-content: space-between;
-				>.iconfont {
-					display: none;
-					font-size: 18px;
-					color: #ec652b;
-				}
-			}
-		}
-		&.first {
-			flex-shrink: 0;
-			width: 236rpx;
-			background-color: #f0f0f0;
-			.sub-menu {
-				padding-left: 15px;
-
-				&.on {
-					background-color: #fff;
-				}
-			}
-			box-shadow: 5rpx 0 5rpx rgba($color: #000000, $alpha: 0.1);
-		}
-		&.alone {
-			max-height: 345px;
-			min-height: 170px;
-			height: auto;
-			.sub-menu {
-				min-height: calc(44px - 1rpx);
-				margin-left: 15px;
-				border-bottom: solid 1rpx #e5e5e5;
-
-				&.on {
-					color: #ec652b;
-
-					>.menu-name {
-						>.iconfont {
-							display: block;
-						}
-					}
-				}
-			}
-		}
-		&.third{
-			// box-shadow: 5rpx 0 20rpx rgba($color: #000000, $alpha: 0.2) inset;
-		}
-		&.not-first {
-			box-shadow: 5rpx 0 5rpx rgba($color: #000000, $alpha: 0.1);
-			.sub-menu {
-				min-height: calc(44px - 1rpx);
-				margin-left: 15px;
-				border-bottom: solid 1rpx #e5e5e5;
-				>.menu-name {
-					height: calc(44px - 1rpx);
-					>.iconfont {
-						display: none;
-						font-size: 18px;
-						color: #ec652b;
-					}
-				}
-				&.on {
-					color: #ec652b;
-					>.menu-name {
-						>.iconfont {
-							display: block;
-						}
-					}
-				}
-				.more-sub-menu {
-					flex-direction: row;
-					flex-wrap: wrap;
-					padding-bottom: 9px;
-					>text {
-						height: 30px;
-						border-radius: 3px;
-						background-color: #f5f5f5;
-						color: #9b9b9b;
-						margin-bottom: 6px;
-						margin-right: 6px;
-						text-align: center;
-						line-height: 30px;
-						border: solid #f5f5f5 1rpx;
-						flex: 0 0 calc(33.33% - 6px);
-						overflow: hidden;
-						font-size: 12px;
-						&:nth-child(3n) {
-							margin-right: 0;
-						}
-						&.on {
-							border-color: #f6c8ac;
-							color: #ec652b;
-						}
-						.iconfont {
-							color: #9b9b9b;
-						}
-					}
-				}
-			}
-		}
-	}
-	.filter {
-		width: 100%;
-		height: 345px;
-		display: flex;
-		flex-direction: column;
-		justify-content: space-between;
-		align-items: center;
-		.menu-box {
-			width: 698rpx;
-			height: calc(345px - 75px);
-			flex-shrink: 1;
-			.box {
-				width: 100%;
-				padding-top: 16px;
-				flex-direction: column;
-				
-				.title {
-					width: 100%;
-					font-size: 13px;
-					color: #888;
-				}
-				.labels {
-					flex-direction: row;
-					flex-wrap: wrap;
-					
-					.on {
-						border-color: #ec652b;
-						background-color: #ec652b;
-						color: #fff;
-					}
-					>view {
-						box-sizing: border-box;
-						width: calc((698rpx - 30rpx * 3) / 4);
-						height: 30px;
-						border: solid 1rpx #adadad;
-						border-radius: 2px;
-						margin-right: 30rpx;
-						margin-top: 8px;
-						font-size: 12px;
-						flex-direction: row;
-						justify-content: center;
-						align-items: center;
-						&:nth-child(4n) {
-							margin-right: 0;
-						}
-					}
-				}
-			}
-		}
-		.btn-box {
-			flex-shrink: 0;
-			width: 698rpx;
-			height: 75px;
-			flex-direction: row !important;
-			align-items: center;
-			justify-content: space-between;
-			>view {
-				width: 320rpx;
-				height: 40px;
-				border-radius: 40px;
-				border: solid 1rpx #ec652b;
-				align-items: center;
-				justify-content: center;
-			}
-			.reset {
-				color: #ec652b;
-			}
-			.submit {
-				color: #fff;
-				background-color: #ec652b;
-			}
-		}
-	}
-	.mask {
-		z-index: 10;
-		position: fixed;
-		top: 0;
-		left: 0;
-		right: 0;
-		bottom: 0;
-		background-color: rgba(0, 0, 0, 0);
-		transition: background-color .15s linear;
-		&.show {
-			background-color: rgba(0, 0, 0, 0.5);
-		}
-		&.hide {
-			display: none;
-		}
-	}
-	/* 字体图标 */
-	@font-face {
-		font-family: "HM-FD-font";
-		src: url('data:application/x-font-woff2;charset=utf-8;base64,d09GMgABAAAAAALAAAsAAAAABpQAAAJzAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHEIGVgCDBgp4gQIBNgIkAwwLCAAEIAWEbQc5G8sFERWMIbIfCbbzqA4hp7InSBibVsYGb4J42o82b3e/nJlHMw/NHbGOlwKJRCRpwzPtpAECCOZubdqxjYpQLMlVg+70/08edrgQOtx2ukpVyApZn+dyehPoQObHo3O85rYx9vOjXoBxQIHugW2yIkqIW2QXcScu4jwE8CSWbKSmrqUHFwOaJoCsLM5P4haSGIxRcRHshrUGucLCVcfqI3AZfV/+USguKCwNmtsxVztDxU/n55C+3W0Z4QQpEOTNFqCBbMCAjDUWB9CIwWk87aa70cYgqLkyd3dEmm+18R8eKATEBrV7A5CulBT8dKiWOYZk412XNcDdKSEKSGODnyKIDl+dmVt9/Dx4pu/xyeutkMlHISGPTsPCnoTNP9nOT6wTtDdlO6dPr47efvj942lkYuQzrhMKEjq9N6y98P3340gmlJ/RStUD6F31CAEEPtUW94/7rf+7XgaAz57X0ZHXAGsFFwVgw38yALuMb0IBbVyNamFYEw4oKMDTj3AHRQP5Pt4dci9VwSVkRNQh5r7CLskZadhsWHhRDBsXczk8ZYk3ewnCxmQeQKa3BOHvA8XXO2j+vqRhf7CE+sPmn4anvoL29JLa4qqaUQkmoK+QG2osCckq7txi2leK86aIPyJ3eQZ8xytXYmyQ51jQndJAxIJlqiGSLsOqImiZCjTiZCJt6Lq26U2OoXqwUo0hRaAE0K5AziANy/uLVeXzWyjVqyjcoeupjxDr5MMDn8MDkLG9Aenu5ZrOSSoghAUsRmogkkahSoWAtnlUARnCkY3It0Iu7mWhdmd9Z/19BwBP6GidEi0G56opckXTGZVSPxgAAAA=');
-	}
-	.iconfont {
-		font-family: "HM-FD-font" !important;
-		font-size: 13px;
-		font-style: normal;
-		color: #757575;
-		&.triangle {
-			&:before {
-				content: "\e65a";
-			}
-		}
-		&.selected {
-			&:before {
-				content: "\e607";
-			}
-		}
-	}
-</style>

+ 0 - 82
uni_modules/HM-filterDropdown/package.json

@@ -1,82 +0,0 @@
-{
-  "id": "HM-filterDropdown",
-  "displayName": "下拉式筛选菜单",
-  "version": "1.0.1",
-  "description": "商城,团购常用的下拉式筛选菜单,最多支持3级子菜单,支持多选/单选筛选",
-  "keywords": [
-    "",
-    "筛选",
-    "下拉菜单",
-    "filter",
-    "多选",
-    "单选"
-],
-  "repository": "",
-  "engines": {
-    "HBuilderX": "^3.5.0"
-  },
-"dcloudext": {
-    "sale": {
-      "regular": {
-        "price": "0.00"
-      },
-      "sourcecode": {
-        "price": "0.00"
-      }
-    },
-    "contact": {
-      "qq": ""
-    },
-    "declaration": {
-      "ads": "无",
-      "data": "无",
-      "permissions": "无"
-    },
-    "npmurl": "",
-    "type": "component-vue"
-  },
-  "uni_modules": {
-    "dependencies": [],
-    "encrypt": [],
-    "platforms": {
-      "cloud": {
-        "tcb": "y",
-        "aliyun": "y"
-      },
-      "client": {
-        "App": {
-          "app-vue": "u",
-          "app-nvue": "n"
-        },
-        "H5-mobile": {
-          "Safari": "y",
-          "Android Browser": "y",
-          "微信浏览器(Android)": "y",
-          "QQ浏览器(Android)": "y"
-        },
-        "H5-pc": {
-          "Chrome": "n",
-          "IE": "n",
-          "Edge": "n",
-          "Firefox": "n",
-          "Safari": "n"
-        },
-        "小程序": {
-          "微信": "y",
-          "阿里": "u",
-          "百度": "u",
-          "字节跳动": "u",
-          "QQ": "u"
-        },
-        "快应用": {
-          "华为": "u",
-          "联盟": "u"
-        },
-        "Vue": {
-            "vue2": "y",
-            "vue3": "u"
-        }
-      }
-    }
-  }
-}

+ 0 - 36
uni_modules/HM-filterDropdown/readme.md

@@ -1,36 +0,0 @@
-> 组件兼容APP-VUE、H5、MP-WEIXIN,其他端未做兼容测试,不支持。  
-> 遇到问题或有建议可以[加入QQ群(147157269)](https://shang.qq.com/wpa/qunwpa?idkey=0d4297636dde21703e0e6eb69b9fdde90725625ea7fca51ba0d440837eac9d92)反馈  
-> 如果觉得组件不错,<font color=#f00>给五星鼓励鼓励</font>咯!
-
-<img src="http://hmsmscode.hmwh.me/menu.png" width="214" height="221" />  
-  
-安卓扫码下载体验 
-
-##使用说明  
-在页面中使用组件  
-``` 
-<HM-filterDropdown :filterData="filterData" :defaultSelected ="filterDropdownValue" @confirm="confirm"></HM-filterDropdown>
-```
-###传入数据格式等更多的说明请下载示例查看,有数据对照注释更容易明白。
-
-
-##属性说明  
-
-|属性名	|类型	|说明				|
-|--	|--	|--	|
-|filterData|Object	|必选,菜单数据,数据格式请下载示例查看		|
-|defaultSelected|Array	|可选,默认选中子菜单数据,需要传入跟``@confirm``输出的index相同的结构数据,如不确定可以先传入数据看下输出的结果	|
-|updateMenuName|Boolean	|可选,选择子菜单是否自动修改对应的顶部菜单文字,可取值:``true``/``false``,默认值:``true``	|
-|menuTop|Number	|可选,菜单到顶部距离,单位rpx,一般用于页面有自己写的标题栏或搜索栏时,默认值:0	|
-|@confirm|EventHandle	|用户选择完毕/收起菜单,触发confirm事件,event= {value,index}	|
-
-###传入数据格式等更多的说明请下载示例查看,有数据对照注释更容易明白。
-
- 
-####偷偷的打广告
-定制模板,开发uniapp、H5+APP、wap2app、PHP,付费咨询指导,有需要加QQ。  
-
-<table><tr><td bgcolor=#8f9396 >
-<center><font color=#8f9396>QQ:565766672</font> <font color=#fff>(刮刮卡)</font></center>
-</td></tr></table>
-

+ 0 - 132
uni_modules/lime-echart/changelog.md

@@ -1,132 +0,0 @@
-## 0.6.5(2022-11-03)
-- fix: 某些手机touches为对象,导致无法交互。
-## 0.6.4(2022-10-28)
-- fix: 优化点击事件的触发条件
-## 0.6.3(2022-10-26)
-- fix: 修复 dataZoom 拖动问题
-## 0.6.2(2022-10-23)
-- fix: 修复 飞书小程序 尺寸问题
-## 0.6.1(2022-10-19)
-- fix: 修复 PC mousewheel 事件 鼠标位置不准确的BUG,不兼容火狐!
-- feat: showLoading 增加传参
-## 0.6.0(2022-09-16)
-- feat: 增加PC的mousewheel事件
-## 0.5.4(2022-09-16)
-- fix: 修复 nvue 动态数据不显示问题
-## 0.5.3(2022-09-16)
-- feat: 增加enableHover属性, 在PC端时当鼠标进入显示tooltip,不必按下。
-- chore: 更新文档
-## 0.5.2(2022-09-16)
-- feat: 增加enableHover属性, 在PC端时当鼠标进入显示tooltip,不必按下。
-## 0.5.1(2022-09-16)
-- fix: 修复nvue报错
-## 0.5.0(2022-09-15)
-- feat: init(echarts, theme?:string, opts?:{}, callback: function(chart))
-## 0.4.8(2022-09-11)
-- feat: 增加 @finished
-## 0.4.7(2022-08-24)
-- chore: 去掉 stylus
-## 0.4.6(2022-08-24)
-- feat: 增加 beforeDelay
-## 0.4.5(2022-08-12)
-- chore: 更新文档
-## 0.4.4(2022-08-12)
-- fix: 修复 resize 无参数时报错
-## 0.4.3(2022-08-07)
-# 评论有说本插件对新手不友好,让我做不好就不要发出来。 还有的说跟官网一样,发出来做什么,给我整无语了。
-# 所以在此提醒一下准备要下载的你,如果你从未使用过 echarts 请不要下载 或 谨慎下载。
-# 如果你确认要下载,麻烦看完文档。还有请注意插件是让echarts在uniapp能运行,API 配置请自行去官网查阅!
-# 如果你不会echarts 但又需要图表,市场上有个很优秀的图表插件 uchart 你可以去使用这款插件,uchart的作者人很好,也热情。
-# 每个人都有自己的本职工作,如果你能力强可以自行兼容,如果使用了他人的插件也麻烦尊重他人的成果和劳动时间。谢谢。
-# 为了心情愉悦,本人已经使用插件屏蔽差评。
-- chore: 更新文档
-## 0.4.2(2022-07-20)
-- feat: 增加 resize
-## 0.4.1(2022-06-07)
-- fix: 修复 canvasToTempFilePath 不生效问题
-## 0.4.0(2022-06-04)
-- chore 为了词云 增加一个canvas 标签
-- 词云下载地址[echart-wordcloud](https://ext.dcloud.net.cn/plugin?id=8430)
-## 0.3.9(2022-06-02)
-- chore: 更新文档
-- tips: lines 不支持 `trailLength`
-## 0.3.8(2022-05-31)
-- fix: 修复 因mouse事件冲突tooltip跳动问题
-## 0.3.7(2022-05-26)
-- chore: 更新文档
-- chore: 设置默认宽高300px
-- fix: 修复 vue3 微信小程序 拖影BUG
-- chore: 支持PC
-## 0.3.5(2022-04-28)
-- chore: 更新使用方式
-- 🔔 必须使用hbuilderx 3.4.8-alpha以上
-## 0.3.4(2021-08-03)
-- chore: 增加 setOption的参数值
-## 0.3.3(2021-07-22)
-- fix: 修复 径向渐变报错的问题
-## 0.3.2(2021-07-09)
-- chore: 统一命名规范,无须主动引入组件
-## [代码示例站点1](https://limeui.qcoon.cn/#/echart-example)
-## [代码示例站点2](http://liangei.gitee.io/limeui/#/echart-example)
-## 0.3.1(2021-06-21)
-- fix: 修复 app-nvue ios is-enable 无效的问题
-## [代码示例站点1](https://limeui.qcoon.cn/#/echart-example)
-## [代码示例站点2](http://liangei.gitee.io/limeui/#/echart-example)
-## 0.3.0(2021-06-14)
-- fix: 修复 头条系小程序 2d 报 JSON.stringify 的问题
-- 目前 头条系小程序 2d 无法在开发工具上预览,划动图表页面无法滚动,axisLabel 字体颜色无法更改,建议使用非2d。
-## 0.2.9(2021-06-06)
-- fix: 修复 头条系小程序 2d 放大的BUG 
-- 头条系小程序 2d 无法在开发工具上预览,也存在划动图表页面无法滚动的问题。
-## [代码示例:http://liangei.gitee.io/limeui/#/echart-example](http://liangei.gitee.io/limeui/#/echart-example)
-## 0.2.8(2021-05-19)
-- fix: 修复 微信小程序 PC 显示过大的问题
-## 0.2.7(2021-05-19)
-- fix: 修复 微信小程序 PC 不显示问题
-## [代码示例:http://liangei.gitee.io/limeui/#/echart-example](http://liangei.gitee.io/limeui/#/echart-example)
-## 0.2.6(2021-05-14)
-- feat: 支持 `image`
-- feat: props 增加 `ec.clear`,更新时是否先删除图表样式 
-- feat: props 增加 `isDisableScroll` ,触摸图表时是否禁止页面滚动
-- feat: props 增加 `webviewStyles` ,webview 的样式, 仅nvue有效
-## 0.2.5(2021-05-13)
-- docs: 插件用到了css 预编译器 [stylus](https://ext.dcloud.net.cn/plugin?name=compile-stylus) 请安装它
-## 0.2.4(2021-05-12)
-- fix: 修复 百度平台 多个图表ctx 和 渐变色 bug
-- ## [代码示例:http://liangei.gitee.io/limeui/#/echart-example](http://liangei.gitee.io/limeui/#/echart-example)
-## 0.2.3(2021-05-10)
-- feat: 增加 `canvasToTempFilePath` 方法,用于生成图片
-```js
-this.$refs.chart.canvasToTempFilePath({success: (res) => {
-	console.log('tempFilePath:', res.tempFilePath)
-}})
-```
-## 0.2.2(2021-05-10)
-- feat: 增加 `dispose` 方法,用于销毁实例
-- feat: 增加 `isClickable` 是否派发点击
-- feat: 实验性的支持 `nvue` 使用要慎重考虑
-- ## [代码示例:http://liangei.gitee.io/limeui/#/echart-example](http://liangei.gitee.io/limeui/#/echart-example)
-## 0.2.1(2021-05-06)
-- fix:修复 微信小程序 json 报错
-- chore: `reset` 更改为 `setChart`
-- feat: 增加 `isEnable` 开启初始化 启用这个后 无须再使用`init`方法
-```html
-<l-echart ref="chart" is-enable />
-```
-```js
-// 显示加载
-this.$refs.chart.showLoading()
-// 使用实例回调
-this.$refs.chart.setChart(chart => ...code)
-// 直接设置图表配置
-this.$refs.chart.setOption(data)
-```
-## 0.2.0(2021-05-05)
-- fix:修复 头条 百度 偏移的问题
-- docs: 更新文档
-## [代码示例:http://liangei.gitee.io/limeui/#/echart-example](http://liangei.gitee.io/limeui/#/echart-example)
-## 0.1.0(2021-05-02)
-- chore:  第一次上传,基本全端兼容,使用方法与官网一致。
-- 已知BUG:非2d 无法使用背景色,已反馈官方
-- 已知BUG:头条 百度 有许些偏移
-- 后期计划:兼容nvue

+ 0 - 372
uni_modules/lime-echart/components/l-echart/canvas.js

@@ -1,372 +0,0 @@
-const cacheChart = {}
-const fontSizeReg = /([\d\.]+)px/;
-class EventEmit {
-	constructor() {
-		this.__events = {};
-	}
-	on(type, listener) {
-		if (!type || !listener) {
-			return;
-		}
-		const events = this.__events[type] || [];
-		events.push(listener);
-		this.__events[type] = events;
-	}
-	emit(type, e) {
-		if (type.constructor === Object) {
-			e = type;
-			type = e && e.type;
-		}
-		if (!type) {
-			return;
-		}
-		const events = this.__events[type];
-		if (!events || !events.length) {
-			return;
-		}
-		events.forEach((listener) => {
-			listener.call(this, e);
-		});
-	}
-	off(type, listener) {
-		const __events = this.__events;
-		const events = __events[type];
-		if (!events || !events.length) {
-			return;
-		}
-		if (!listener) {
-			delete __events[type];
-			return;
-		}
-		for (let i = 0, len = events.length; i < len; i++) {
-			if (events[i] === listener) {
-				events.splice(i, 1);
-				i--;
-			}
-		}
-	}
-}
-class Image {
-	constructor() {
-		this.currentSrc = null
-		this.naturalHeight = 0
-		this.naturalWidth = 0
-		this.width = 0
-		this.height = 0
-		this.tagName = 'IMG'
-	}
-	set src(src) {
-		this.currentSrc = src
-		uni.getImageInfo({
-			src,
-			success: (res) => {
-				this.naturalWidth = this.width = res.width
-				this.naturalHeight = this.height = res.height
-				this.onload()
-			},
-			fail: () => {
-				this.onerror()
-			}
-		})
-	}
-	get src() {
-		return this.currentSrc
-	}
-}
-class OffscreenCanvas {
-	constructor(ctx, com, canvasId) {
-		this.tagName = 'canvas'
-		this.com = com
-		this.canvasId = canvasId
-		this.ctx = ctx
-	}
-	set width(w) {
-		this.com.offscreenWidth = w
-	}
-	set height(h) {
-		this.com.offscreenHeight = h
-	}
-	get width() {
-		return this.com.offscreenWidth || 0
-	}
-	get height() {
-		return this.com.offscreenHeight || 0
-	}
-	getContext(type) {
-		return this.ctx
-	}
-	getImageData() {
-		return new Promise((resolve, reject) => {
-			this.com.$nextTick(() => {
-				uni.canvasGetImageData({
-					x:0,
-					y:0,
-					width: this.com.offscreenWidth,
-					height: this.com.offscreenHeight,
-					canvasId: this.canvasId,
-					success: (res) => {
-						resolve(res)
-					},
-					fail: (err) => {
-						reject(err)
-					},
-				}, this.com)
-			})
-		})
-	}
-}
-export class Canvas {
-	constructor(ctx, com, isNew, canvasNode={}) {
-		cacheChart[com.canvasId] = {ctx}
-		this.canvasId = com.canvasId;
-		this.chart = null;
-		this.isNew = isNew
-		this.tagName = 'canvas'
-		this.canvasNode = canvasNode;
-		this.com = com;
-		if (!isNew) {this._initStyle(ctx)}
-		this._initEvent();
-		this._ee = new EventEmit()
-	}
-	getContext(type) {
-		if (type === '2d') {
-			return this.ctx;
-		}
-	}
-	setChart(chart) {
-		this.chart = chart;
-	}
-	createOffscreenCanvas(param){
-		if(!this.children) {
-			this.com.isOffscreenCanvas = true
-			this.com.offscreenWidth = param.width||300
-			this.com.offscreenHeight = param.height||300
-			const com = this.com
-			const canvasId = this.com.offscreenCanvasId
-			const context = uni.createCanvasContext(canvasId, this.com)
-			this._initStyle(context)
-			this.children = new OffscreenCanvas(context, com, canvasId)
-		} 
-		return this.children
-	}
-	appendChild(child) {
-		console.log('child', child)
-	}
-	dispatchEvent(type, e) {
-		if(typeof type == 'object') {
-			this._ee.emit(type.type, type);
-		} else {
-			this._ee.emit(type, e);
-		}
-		return true
-	}
-	attachEvent() {
-	}
-	detachEvent() {
-	}
-	addEventListener(type, listener) {
-		this._ee.on(type, listener)
-	}
-	removeEventListener(type, listener) {
-		this._ee.off(type, listener)
-	}
-	_initCanvas(zrender, ctx) {
-		zrender.util.getContext = function() {
-			return ctx;
-		};
-		zrender.util.$override('measureText', function(text, font) {
-			ctx.font = font || '12px sans-serif';
-			return ctx.measureText(text, font);
-		});
-	}
-	_initStyle(ctx, child) {
-		const styles = [
-			'fillStyle',
-			'strokeStyle',
-			'fontSize',
-			'globalAlpha',
-			'opacity',
-			'textAlign',
-			'textBaseline',
-			'shadow',
-			'lineWidth',
-			'lineCap',
-			'lineJoin',
-			'lineDash',
-			'miterLimit',
-			'font'
-		];
-		const colorReg = /#([0-9a-fA-F])([0-9a-fA-F])([0-9a-fA-F])\b/g;
-		styles.forEach(style => {
-			Object.defineProperty(ctx, style, {
-				set: value => {
-					if (style === 'font' && fontSizeReg.test(value)) {
-						const match = fontSizeReg.exec(value);
-						ctx.setFontSize(match[1]);
-						return;
-					}
-					if (style === 'opacity') {
-						ctx.setGlobalAlpha(value)
-						return;
-					}
-					if (style !== 'fillStyle' && style !== 'strokeStyle' || value !== 'none' && value !== null) {
-						// #ifdef H5 || APP-PLUS || MP-BAIDU
-						if(typeof value == 'object') {
-							if (value.hasOwnProperty('colorStop') || value.hasOwnProperty('colors')) {
-								ctx['set' + style.charAt(0).toUpperCase() + style.slice(1)](value);
-							}
-							return
-						} 
-						// #endif
-						// #ifdef MP-TOUTIAO
-						if(colorReg.test(value)) {
-							value = value.replace(colorReg, '#$1$1$2$2$3$3')
-						}
-						// #endif
-						ctx['set' + style.charAt(0).toUpperCase() + style.slice(1)](value);
-					}
-				}
-			});
-		});
-		if(!this.isNew && !child) {
-			ctx.uniDrawImage = ctx.drawImage
-			ctx.drawImage = (...a) => {
-				a[0] = a[0].src
-				ctx.uniDrawImage(...a)
-			}
-		}
-		if(!ctx.createRadialGradient) {
-			ctx.createRadialGradient = function() {
-				return ctx.createCircularGradient(...[...arguments].slice(-3))
-			};
-		}
-		// 字节不支持
-		if (!ctx.strokeText) {
-			ctx.strokeText = (...a) => {
-				ctx.fillText(...a)
-			}
-		}
-		// 钉钉不支持 
-		if (!ctx.measureText) {
-			const strLen = (str) => {
-				let len = 0;
-				for (let i = 0; i < str.length; i++) {
-					if (str.charCodeAt(i) > 0 && str.charCodeAt(i) < 128) {
-						len++;
-					} else {
-						len += 2;
-					}
-				}
-				return len;
-			}
-			ctx.measureText = (text, font) => {
-				let fontSize = 12;
-				if (font) {
-					fontSize = parseInt(font.match(/([\d\.]+)px/)[1])
-				}
-				fontSize /= 2;
-				return {
-					width: strLen(text) * fontSize
-				};
-			}
-		}
-	}
-
-	_initEvent(e) {
-		this.event = {};
-		const eventNames = [{
-			wxName: 'touchStart',
-			ecName: 'mousedown'
-		}, {
-			wxName: 'touchMove',
-			ecName: 'mousemove'
-		}, {
-			wxName: 'touchEnd',
-			ecName: 'mouseup'
-		}, {
-			wxName: 'touchEnd',
-			ecName: 'click'
-		}];
-
-		eventNames.forEach(name => {
-			this.event[name.wxName] = e => {
-				const touch = e.touches[0];
-				this.chart.getZr().handler.dispatch(name.ecName, {
-					zrX: name.wxName === 'tap' ? touch.clientX : touch.x,
-					zrY: name.wxName === 'tap' ? touch.clientY : touch.y
-				});
-			};
-		});
-	}
-
-	set width(w) {
-		this.canvasNode.width = w
-	}
-	set height(h) {
-		this.canvasNode.height = h
-	}
-
-	get width() {
-		return this.canvasNode.width || 0
-	}
-	get height() {
-		return this.canvasNode.height || 0
-	}
-	get ctx() {
-		return cacheChart[this.canvasId]['ctx'] || null
-	}
-	set chart(chart) {
-		cacheChart[this.canvasId]['chart'] = chart
-	}
-	get chart() {
-		return cacheChart[this.canvasId]['chart'] || null
-	}
-}
-
-export function dispatch(name, {x,y, wheelDelta}) {
-	this.dispatch(name, {
-		zrX: x,
-		zrY: y,
-		zrDelta: wheelDelta,
-		preventDefault: () => {},
-		stopPropagation: () =>{}
-	});
-}
-export function setCanvasCreator(echarts, {canvas, node}) {
-	// echarts.setCanvasCreator(() => canvas);
-	echarts.registerPreprocessor(option => {
-		if (option && option.series) {
-			if (option.series.length > 0) {
-				option.series.forEach(series => {
-					series.progressive = 0;
-				});
-			} else if (typeof option.series === 'object') {
-				option.series.progressive = 0;
-			}
-		}
-	});
-	function loadImage(src, onload, onerror) {
-		let img = null
-		if(node && node.createImage) {
-			img = node.createImage()
-			img.onload = onload.bind(img);
-			img.onerror = onerror.bind(img);
-			img.src = src;
-			return img
-		} else {
-			img = new Image()
-			img.onload = onload.bind(img)
-			img.onerror = onerror.bind(img);
-			img.src = src
-			return img
-		}
-	}
-	if(echarts.setPlatformAPI) {
-		echarts.setPlatformAPI({
-			loadImage: canvas.setChart ? loadImage : null,
-			createCanvas(){
-				return canvas
-			}
-		})
-	}
-}

+ 0 - 516
uni_modules/lime-echart/components/l-echart/l-echart.vue

@@ -1,516 +0,0 @@
-<template>
-	<view class="lime-echart" :style="customStyle" v-if="canvasId" ref="limeEchart">
-		<!-- #ifndef APP-NVUE -->
-		<canvas
-			class="lime-echart__canvas"
-			v-if="use2dCanvas"
-			type="2d"
-			:id="canvasId"
-			:style="canvasStyle"
-			:disable-scroll="isDisableScroll"
-			@touchstart="touchStart"
-			@touchmove="touchMove"
-			@touchend="touchEnd"
-		/>
-		<canvas
-			class="lime-echart__canvas"
-			v-else-if="isPc"
-			:style="canvasStyle"
-			:id="canvasId"
-			:canvas-id="canvasId"
-			:disable-scroll="isDisableScroll"
-			@mousedown="touchStart"
-			@mousemove="touchMove"
-			@mouseup="touchEnd"
-		/>
-		<canvas
-			class="lime-echart__canvas"
-			v-else
-			:width="nodeWidth"
-			:height="nodeHeight"
-			:style="canvasStyle"
-			:canvas-id="canvasId"
-			:id="canvasId"
-			:disable-scroll="isDisableScroll"
-			@touchstart="touchStart"
-			@touchmove="touchMove"
-			@touchend="touchEnd"
-		/>
-		<canvas v-if="isOffscreenCanvas" :style="offscreenStyle" :canvas-id="offscreenCanvasId"></canvas>
-		<!-- #endif -->
-		<!-- #ifdef APP-NVUE -->
-		<web-view
-			class="lime-echart__canvas"
-			:id="canvasId"
-			:style="canvasStyle"
-			:webview-styles="webviewStyles"
-			ref="webview"
-			src="/uni_modules/lime-echart/static/index.html"
-			@pagefinish="finished = true"
-			@onPostMessage="onMessage"
-		></web-view>
-		<!-- #endif -->
-	</view>
-</template>
-
-<script>
-// #ifdef VUE3
-// #ifdef APP-PLUS
-global = {}
-// #endif
-// #endif
-// #ifndef APP-NVUE
-import {Canvas, setCanvasCreator, dispatch} from './canvas';
-import { compareVersion, wrapTouch, devicePixelRatio ,sleep} from './utils';
-// #endif
-// #ifdef APP-NVUE
-import { base64ToPath, sleep } from './utils';
-// #endif
-const charts = {}
-const echartsObj = {}
-export default {
-	name: 'lime-echart',
-	props: {
-		// #ifdef MP-WEIXIN || MP-TOUTIAO
-		type: {
-			type: String,
-			default: '2d'
-		},
-		// #endif
-		// #ifdef APP-NVUE
-		webviewStyles: Object,
-		// hybrid: Boolean,
-		// #endif
-		customStyle: String,
-		isDisableScroll: Boolean,
-		isClickable: {
-			type: Boolean,
-			default: true
-		},
-		enableHover: Boolean,
-		beforeDelay: {
-			type: Number,
-			default: 30
-		}
-	},
-	data() {
-		return {
-			// #ifdef MP-WEIXIN || MP-TOUTIAO || MP-ALIPAY
-			use2dCanvas: true,
-			// #endif
-			// #ifndef MP-WEIXIN || MP-TOUTIAO || MP-ALIPAY
-			use2dCanvas: false,
-			// #endif
-			width: null,
-			height: null,
-			nodeWidth: null,
-			nodeHeight: null,
-			canvasNode: null,
-			config: {},
-			inited: false,
-			finished: false,
-			file: '',
-			platform: '',
-			isPc: false,
-			isDown: false,
-			isOffscreenCanvas: false,
-			offscreenWidth: 0,
-			offscreenHeight: 0
-		};
-	},
-	computed: {
-		canvasId() {
-			return `lime-echart${this._ && this._.uid || this._uid}`
-		},
-		offscreenCanvasId() {
-			return `${this.canvasId}_offscreen`
-		},
-		offscreenStyle() {
-			return `width:${this.offscreenWidth}px;height: ${this.offscreenHeight}px; position: fixed; left: 99999px; background: red`
-		},
-		canvasStyle() {
-			return  this.width && this.height ? ('width:' + this.width + 'px;height:' + this.height + 'px') : ''
-		}
-	},
-	beforeDestroy() {
-		this.clear()
-		this.dispose()
-		// #ifdef H5
-		if(this.isPc) {
-			document.removeEventListener('mousewheel')
-		}
-		// #endif
-	},
-	created() {
-		// #ifdef H5
-		if(!('ontouchstart' in window)) {
-			this.isPc = true
-			document.addEventListener('mousewheel', (e) => {
-				if(this.chart) {
-					const touch = this.getTouch(e)
-					const handler = this.chart.getZr().handler;
-					dispatch.call(handler, 'mousewheel', touch)
-				}
-			})
-		}
-		// #endif
-		// #ifdef MP-WEIXIN || MP-TOUTIAO || MP-ALIPAY
-		const { SDKVersion, version, platform, environment } = uni.getSystemInfoSync();
-		// #endif
-		// #ifdef MP-WEIXIN
-		this.isPC = /windows/i.test(platform)
-		this.use2dCanvas = this.type === '2d' && compareVersion(SDKVersion, '2.9.2') >= 0 && !((/ios/i.test(platform) && /7.0.20/.test(version)) || /wxwork/i.test(environment)) && !this.isPC;
-		// #endif
-		// #ifdef MP-TOUTIAO
-		this.isPC = /devtools/i.test(platform)
-		this.use2dCanvas = this.type === '2d' && compareVersion(SDKVersion, '1.78.0') >= 0;
-		// #endif
-		// #ifdef MP-ALIPAY
-		this.use2dCanvas = this.type === '2d' && compareVersion(my.SDKVersion, '2.7.0') >= 0;
-		// #endif
-	},
-	mounted() {
-		this.$nextTick(() => {
-			this.$emit('finished')
-		})
-	},
-	methods: {
-		// #ifdef APP-NVUE
-		onMessage(e) {
-			const res = e?.detail?.data[0] || null;
-			if (res?.event) {
-				if(res.event === 'inited') {
-					this.inited = true
-				}
-				this.$emit(res.event, JSON.parse(res.data));
-			} else if(res?.file){
-				this.file = res.data
-			} else if(!res[0] && JSON.stringify(res[0]) != '{}'){
-				console.error(res);
-			} else {
-				console.log(...res)
-			}
-		},
-		// #endif
-		setChart(callback) {
-			if(!this.chart) {
-				console.warn(`组件还未初始化,请先使用 init`)
-				return
-			}
-			if(typeof callback === 'function' && this.chart) {
-				callback(this.chart);
-			}
-			// #ifdef APP-NVUE
-			if(typeof callback === 'function') {
-				this.$refs.webview.evalJs(`setChart(${JSON.stringify(callback.toString())}, ${JSON.stringify(this.roptions)})`);
-			}
-			// #endif
-		},
-		setOption() {
-			if (!this.chart || !this.chart.setOption) {
-				console.warn(`组件还未初始化,请先使用 init`)
-				return
-			}
-			// #ifndef APP-NVUE
-			this.chart.setOption(...arguments);
-			// #endif
-			// #ifdef APP-NVUE
-			this.$refs.webview.evalJs(`setOption(${JSON.stringify(arguments)})`);
-			// #endif
-		},
-		showLoading() {
-			if(this.chart) {
-				// #ifndef APP-NVUE
-				this.chart.showLoading(...arguments)
-				// #endif
-				// #ifdef APP-NVUE
-				this.$refs.webview.evalJs(`showLoading(${JSON.stringify(arguments)})`);
-				// #endif
-			}
-		},
-		hideLoading() {
-			if(this.chart) {
-				// #ifndef APP-NVUE
-				this.chart.hideLoading()
-				// #endif
-				// #ifdef APP-NVUE
-				this.$refs.webview.evalJs(`hideLoading()`);
-				// #endif
-			}
-		},
-		clear() {
-			if(this.chart) {
-				// #ifndef APP-NVUE
-				this.chart.clear()
-				// #endif
-				// #ifdef APP-NVUE
-				this.$refs.webview.evalJs(`clear()`);
-				// #endif
-			}
-		},
-		dispose() {
-			if(this.chart) {
-				// #ifndef APP-NVUE
-				this.chart.dispose()
-				// #endif
-				// #ifdef APP-NVUE
-				this.$refs.webview.evalJs(`dispose()`);
-				// #endif
-			}
-		},
-		resize(size) {
-			if(size && size.width && size.height) {
-				this.height = size.height
-				this.width = size.width
-				if(this.chart) {this.chart.resize(size)}
-				// #ifdef APP-NVUE
-				this.$refs.webview.evalJs(`resize(${size})`);
-				// #endif
-			} else {
-				this.$nextTick(() => {
-					// #ifndef APP-NVUE
-					uni.createSelectorQuery()
-						.in(this)
-						.select(`.lime-echart`)
-						.boundingClientRect()
-						.exec(res => {
-							if (res) {
-								let { width, height } = res[0];
-								this.width = width = width || 300;
-								this.height = height = height || 300;
-								this.chart.resize({width, height})
-							}
-						});
-					// #endif
-					// #ifdef APP-NVUE
-					this.$refs.webview.evalJs(`resize()`);
-					// #endif
-				})
-				
-			}
-			
-		},
-		canvasToTempFilePath(args = {}) {
-			// #ifndef APP-NVUE
-			const { use2dCanvas, canvasId, canvasNode } = this;
-			return new Promise((resolve, reject) => {
-				const copyArgs = Object.assign({
-					canvasId,
-					success: resolve,
-					fail: reject
-				}, args);
-				if (use2dCanvas) {
-					delete copyArgs.canvasId;
-					copyArgs.canvas = canvasNode;
-				}
-				uni.canvasToTempFilePath(copyArgs, this);
-			});
-			// #endif
-			// #ifdef APP-NVUE
-			this.file = ''
-			this.$refs.webview.evalJs(`canvasToTempFilePath()`);
-			return new Promise((resolve, reject) => {
-				this.$watch('file', async (file) => {
-					if(file) {
-						const tempFilePath = await base64ToPath(file)
-						resolve(args.success({tempFilePath}))
-					} else {
-						reject(args.fail({error: ``}))
-					}
-				})
-			})
-			// #endif
-		},
-		async init(echarts, ...args) {
-			// #ifdef APP-NVUE
-			if(arguments && !arguments.length) {
-				console.error('缺少参数:init(theme?:string, opts?: object, callback: function)')
-				return
-			}
-			// #endif
-			// #ifndef APP-NVUE
-			if(arguments && arguments.length < 2) {
-				console.error('缺少参数:init(echarts, theme?:string, opts?: object, callback: function)')
-				return
-			}
-			// #endif
-			let theme=null,opts={},callback;
-			
-			Array.from(arguments).forEach(item => {
-				if(typeof item === 'function') {
-					callback = item
-				}
-				if(['string'].includes(typeof item)) {
-					theme = item
-				}
-				if(typeof item === 'object') {
-					opts = item
-				}
-			})
-			
-			if(this.beforeDelay) {
-				await sleep(this.beforeDelay)
-			}
-			let config = await this.getContext();
-			// #ifndef APP-NVUE
-			if(typeof callback === 'function') {
-				setCanvasCreator(echarts, config)
-				this.chart = echarts.init(config.canvas, theme, Object.assign({}, config, opts))
-				callback(this.chart)
-			} else {
-				console.error('callback 非 function')
-			}
-			// #endif
-			// #ifdef APP-NVUE
-			if(callback) {
-				this.chart = {
-					setOption: (options) => {
-						this.roptions = options
-					}
-				}
-				callback(this.chart)
-				this.$refs.webview.evalJs(`init(${JSON.stringify(callback.toString())}, ${JSON.stringify(this.roptions)}, ${JSON.stringify(opts)}, ${theme})`)
-			} else {
-				console.error('callback 非 function')
-			}
-			// #endif
-		},
-		getContext() {
-			// #ifdef APP-NVUE
-			if(this.finished) {
-				return Promise.resolve(this.finished)
-			}
-			return new Promise(resolve => {
-				this.$watch('finished', (val) => {
-					if(val) {
-						resolve(this.finished)
-					}
-				})
-			})
-			// #endif
-			// #ifndef APP-NVUE
-			const { use2dCanvas} = this;
-			let dpr = devicePixelRatio
-			if (use2dCanvas) {
-				return new Promise(resolve => {
-					uni.createSelectorQuery()
-						.in(this)
-						.select(`#${this.canvasId}`)
-						.fields({
-							node: true,
-							size: true
-						})
-						.exec(res => {
-							let { node, width, height } = res[0];
-							this.width = width = width || 300;
-							this.height = height = height || 300;
-							const ctx = node.getContext('2d');
-							const canvas = new Canvas(ctx, this, true, node);
-							this.canvasNode = node
-							resolve({ canvas, width, height, devicePixelRatio: dpr, node });
-						});
-				});
-			}
-			return new Promise(resolve => {
-				uni.createSelectorQuery()
-					.in(this)
-					.select(`#${this.canvasId}`)
-					.boundingClientRect()
-					.exec(res => {
-						if (res) {
-							let { width, height } = res[0];
-							this.width = width = width || 300;
-							this.height = height = height || 300;
-							// #ifdef MP-TOUTIAO
-							dpr = !this.isPC ? devicePixelRatio : 1// 1.25
-							// #endif
-							// #ifndef MP-ALIPAY || MP-TOUTIAO
-							dpr = this.isPC ? devicePixelRatio : 1
-							// #endif
-							// #ifdef MP-ALIPAY || MP-LARK
-							dpr = devicePixelRatio
-							// #endif
-							this.rect = res[0]
-							this.nodeWidth = width * dpr;
-							this.nodeHeight = height * dpr;
-							const ctx = uni.createCanvasContext(this.canvasId, this);
-							const canvas =  new Canvas(ctx, this, false);
-							resolve({ canvas, width, height, devicePixelRatio: dpr });
-						}
-					});
-			});
-			// #endif
-		},
-		// #ifndef APP-NVUE
-		getRelative(e) {
-			return {x: e.pageX - this.rect.left, y: e.pageY - this.rect.top, wheelDelta: e.wheelDelta}
-		},
-		getTouch(e) {
-			return e.touches && e.touches[0] && e.touches[0].x ? e.touches[0] : this.getRelative(e);
-		},
-		touchStart(e) {
-			this.isDown = true
-			if (this.chart && ((e.touches.length > 0 || e.touches['0'])  && e.type != 'mousemove' || e.type == 'mousedown')) {
-				const touch = this.getTouch(e)
-				this.startX = touch.x
-				this.startY = touch.y
-				this.startT = new Date()
-				const handler = this.chart.getZr().handler;
-				dispatch.call(handler, 'mousedown', touch)
-				dispatch.call(handler, 'mousemove', touch)
-				handler.processGesture(wrapTouch(e), 'start');
-				clearTimeout(this.endTimer);
-			}
-		},
-		touchMove(e) {
-			if(this.isPc && this.enableHover && !this.isDown) {this.isDown = true}
-			if (this.chart && ((e.touches.length > 0 || e.touches['0']) && e.type != 'mousemove' || e.type == 'mousemove' && this.isDown)) {
-				const handler = this.chart.getZr().handler;
-				dispatch.call(handler, 'mousemove', this.getTouch(e))
-				handler.processGesture(wrapTouch(e), 'change');
-			}
-		},
-		touchEnd(e) {
-			this.isDown = false
-			if (this.chart) {
-				const {x} = e.changedTouches && e.changedTouches[0] || {}
-				const touch = (x ? e.changedTouches[0] : this.getRelative(e)) || {};
-				const handler = this.chart.getZr().handler;
-				const isClick = Math.abs(touch.x - this.startX) < 10 && new Date() - this.startT < 200;
-				dispatch.call(handler, 'mouseup', touch)
-				handler.processGesture(wrapTouch(e), 'end');
-				if(isClick) {
-					dispatch.call(handler, 'click', touch)
-				} else {
-					this.endTimer = setTimeout(() => {
-						dispatch.call(handler, 'mousemove', {x: 999999999,y: 999999999});
-						dispatch.call(handler, 'mouseup', {x: 999999999,y: 999999999});
-					},50)
-				}
-			}
-		}
-		// #endif
-	}
-};
-</script>
-<style scoped>
-.lime-echart {
-	position: relative;
-	/* #ifndef APP-NVUE */
-	width: 100%;
-	height: 100%;
-	/* #endif */
-	/* #ifdef APP-NVUE */
-	flex: 1;
-	/* #endif */
-}
-.lime-echart__canvas {
-	/* #ifndef APP-NVUE */
-	width: 100%;
-	height: 100%;
-	/* #endif */
-	/* #ifdef APP-NVUE */
-	flex: 1;
-	/* #endif */
-}
-</style>

+ 0 - 74
uni_modules/lime-echart/components/l-echart/utils.js

@@ -1,74 +0,0 @@
-// #ifndef APP-NVUE
-// 计算版本
-export function compareVersion(v1, v2) {
-	v1 = v1.split('.')
-	v2 = v2.split('.')
-	const len = Math.max(v1.length, v2.length)
-	while (v1.length < len) {
-		v1.push('0')
-	}
-	while (v2.length < len) {
-		v2.push('0')
-	}
-	for (let i = 0; i < len; i++) {
-		const num1 = parseInt(v1[i], 10)
-		const num2 = parseInt(v2[i], 10)
-
-		if (num1 > num2) {
-			return 1
-		} else if (num1 < num2) {
-			return -1
-		}
-	}
-	return 0
-}
-
-export function wrapTouch(event) {
-  for (let i = 0; i < event.touches.length; ++i) {
-    const touch = event.touches[i];
-    touch.offsetX = touch.x;
-    touch.offsetY = touch.y;
-  }
-  return event;
-}
-export const devicePixelRatio = wx.getSystemInfoSync().pixelRatio
-// #endif
-// #ifdef APP-NVUE
-export function base64ToPath(base64) {
-	return new Promise((resolve, reject) => {
-		const [, format, bodyData] = /data:image\/(\w+);base64,(.*)/.exec(base64) || [];
-		const bitmap = new plus.nativeObj.Bitmap('bitmap' + Date.now())
-		bitmap.loadBase64Data(base64, () => {
-			if (!format) {
-				reject(new Error('ERROR_BASE64SRC_PARSE'))
-			}
-			const time = new Date().getTime();
-			const filePath = `_doc/uniapp_temp/${time}.${format}`
-			
-			bitmap.save(filePath, {}, 
-				() => {
-					bitmap.clear()
-					resolve(filePath)
-				}, 
-				(error) => {
-					bitmap.clear()
-					console.error(`${JSON.stringify(error)}`)
-					reject(error)
-				})
-		}, (error) => {
-			bitmap.clear()
-			console.error(`${JSON.stringify(error)}`)
-			reject(error)
-		})
-	})
-}
-// #endif
-
-
-export function sleep(time) {
-	return new Promise((resolve) => {
-		setTimeout(() => {
-			resolve(true)
-		},time)
-	})
-}

+ 0 - 0
uni_modules/lime-echart/components/lime-echart/index.vue


+ 0 - 84
uni_modules/lime-echart/package.json

@@ -1,84 +0,0 @@
-{
-  "id": "lime-echart",
-  "displayName": "百度图表 echarts",
-  "version": "0.6.5",
-  "description": "echarts 全端兼容,一款使echarts图表能跑在uniapp各端中的插件",
-  "keywords": [
-    "echarts",
-    "canvas",
-    "图表",
-    "可视化"
-],
-  "repository": "https://gitee.com/liangei/lime-echart",
-  "engines": {
-    "HBuilderX": "^3.6.4"
-  },
-"dcloudext": {
-    "sale": {
-      "regular": {
-        "price": "0.00"
-      },
-      "sourcecode": {
-        "price": "0.00"
-      }
-    },
-    "contact": {
-      "qq": ""
-    },
-    "declaration": {
-      "ads": "无",
-      "data": "无",
-      "permissions": "无"
-    },
-    "npmurl": "",
-    "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": "u",
-          "IE": "u",
-          "Edge": "u",
-          "Firefox": "u",
-          "Safari": "u"
-        },
-        "小程序": {
-          "微信": "y",
-          "阿里": "y",
-          "百度": "y",
-          "字节跳动": "y",
-        "QQ": "y",
-        "钉钉": "u",
-        "快手": "u",
-        "飞书": "u",
-        "京东": "u"
-        },
-        "快应用": {
-          "华为": "u",
-          "联盟": "u"
-        },
-        "Vue": {
-            "vue2": "y",
-            "vue3": "y"
-        }
-      }
-    }
-  }
-}

+ 0 - 245
uni_modules/lime-echart/readme.md

@@ -1,245 +0,0 @@
-# echarts 图表 <span style="font-size:16px;">👑👑👑👑👑 <span style="background:#ff9d00;padding:2px 4px;color:#fff;font-size:10px;border-radius: 3px;">全端</span></span>
-> 一个基于 JavaScript 的开源可视化图表库   [查看更多 站点1](https://limeui.qcoon.cn/#/echart) |  [查看更多 站点2](http://liangei.gitee.io/limeui/#/echart)  <br>
-> 基于 echarts 做了兼容处理,更多示例请访问  [uni示例 站点1](https://limeui.qcoon.cn/#/echart-example) | [uni示例 站点2](http://liangei.gitee.io/limeui/#/echart-example) | [官方示例](https://echarts.apache.org/examples/zh/index.html)     <br>
-> Q群:1046793420 <br>
-
-## 平台兼容
-
-| H5  | 微信小程序 | 支付宝小程序 | 百度小程序 | 头条小程序 | QQ 小程序 | App  |
-| --- | ---------- | ------------ | ---------- | ---------- | --------- | ---- |
-| √   | √          | √         | √      | √       | √      | √ |
-
-
-## 安装
-- 第一步、在uniapp 插件市场 找到 [百度图表](https://ext.dcloud.net.cn/plugin?id=4899) 导入
-- 第二步、安装 echarts 或者直接使用插件内的echarts.min文件
-```cmd
-pnpm add echarts
- -or-
-npm install echarts
-```
-
-
-**注意** 
-* 🔔 必须使用hbuilderx 3.4.8-alpha及以上
-* 🔔 echarts 5.3.0及以上
-* 🔔 如果是 `cli` 项目需要主动 `import` 插件
-```js
-import LEchart from '@/uni_modules/lime-echart/components/l-echart/l-echart.vue';
-export default {
-	components: {LEchart}
-}
-```
-
-## 代码演示
-### 基础用法
-```html
-<view><l-echart ref="chart" @finished="init"></l-echart></view>
-```
-
-```js
-// 如果你使用插件内提供的echarts.min
-// 也可以自行去官网下载自定义覆盖
-// 这种方式仅限于vue2
-import * as echarts from '@/uni_modules/lime-echart/static/echarts.min'
-//---or----------------------------------
-
-// 如果你使用 npm 安装了 echarts --------- 使用以下方式
-// 引入全量包
-import * as echarts from 'echarts'
-//---or----------------------------------
-
-// 按需引入 开始
-import * as echarts from 'echarts/core';
-import {LineChart, BarChart} from 'echarts/charts';
-import {TitleComponent,TooltipComponent,GridComponent, DatasetComponent, TransformComponent, LegendComponent } from 'echarts/components';
-// 标签自动布局,全局过渡动画等特性
-import {LabelLayout,UniversalTransition} from 'echarts/features';
-// 引入 Canvas 渲染器,注意引入 CanvasRenderer 是必须的一步
-import {CanvasRenderer} from 'echarts/renderers';
-
-// 注册必须的组件
-echarts.use([
-	LegendComponent,
-	TitleComponent,
-	TooltipComponent,
-	GridComponent,
-	DatasetComponent,
-	TransformComponent,
-	LineChart,
-	BarChart,
-	LabelLayout,
-	UniversalTransition,
-	CanvasRenderer
-]);
-//-------------按需引入结束------------------------
-
-
-export default {
-	data() {
-		return {
-			option: {
-				tooltip: {
-					trigger: 'axis',
-					axisPointer: {
-						type: 'shadow' 
-					},
-					confine: true
-				},
-				legend: {
-					data: ['热度', '正面', '负面']
-				},
-				grid: {
-					left: 20,
-					right: 20,
-					bottom: 15,
-					top: 40,
-					containLabel: true
-				},
-				xAxis: [
-					{
-						type: 'value',
-						axisLine: {
-							lineStyle: {
-								color: '#999999'
-							}
-						},
-						axisLabel: {
-							color: '#666666'
-						}
-					}
-				],
-				yAxis: [
-					{
-						type: 'category',
-						axisTick: { show: false },
-						data: ['汽车之家', '今日头条', '百度贴吧', '一点资讯', '微信', '微博', '知乎'],
-						axisLine: {
-							lineStyle: {
-								color: '#999999'
-							}
-						},
-						axisLabel: {
-							color: '#666666'
-						}
-					}
-				],
-				series: [
-					{
-						name: '热度',
-						type: 'bar',
-						label: {
-							normal: {
-								show: true,
-								position: 'inside'
-							}
-						},
-						data: [300, 270, 340, 344, 300, 320, 310],
-					},
-					{
-						name: '正面',
-						type: 'bar',
-						stack: '总量',
-						label: {
-							normal: {
-								show: true
-							}
-						},
-						data: [120, 102, 141, 174, 190, 250, 220]
-					},
-					{
-						name: '负面',
-						type: 'bar',
-						stack: '总量',
-						label: {
-							normal: {
-								show: true,
-								position: 'left'
-							}
-						},
-						data: [-20, -32, -21, -34, -90, -130, -110]
-					}
-				]
-			},
-		};
-	},
-	// 组件能被调用必须是组件的节点已经被渲染到页面上
-	// 1、在页面mounted里调用,有时候mounted 组件也未必渲染完成
-	mounted() {
-		// init(echarts, theme?:string, opts?:{}, chart => {})
-		// echarts 必填, 非nvue必填,nvue不用填
-		// theme 可选,应用的主题,目前只支持名称,如:'dark'
-		// opts = { // 可选
-		//	locale?: string  // 从 `5.0.0` 开始支持
-		// }
-		// chart => {} , callback 必填,返回图表实例
-		this.$refs.chart.init(echarts, chart => {
-			chart.setOption(this.option);
-		});
-	},
-	// 2、或者使用组件的finished事件里调用
-	methods: {
-		init() {
-			this.$refs.chart.init(echarts, chart => {
-				chart.setOption(this.option);
-			});
-		}
-	}
-}
-```
-
-## 数据更新
-- 使用 `ref` 可获取`setOption`设置更新
-
-```js
-this.$refs.chart.setOption(data)
-```
-
-## 图表大小
-- 在有些场景下,我们希望当容器大小改变时,图表的大小也相应地改变。
-
-```js
-// 默认获取容器尺寸
-this.$refs.chart.resize()
-// 指定尺寸
-this.$refs.chart.resize({width: 375, height: 375})
-```
-
-
-## 常见问题
-- 微信小程序 `2d` 只支持 真机调试2.0
-- 微信开发工具会出现canvas不跟随页面的情况,真机不影响
-- toolbox 不支持 `saveImage`
-- echarts 5.3.0 的 lines 不支持 trailLength,故需设置为 `0`
-- dataZoom H5不要设置 `showDetail` 
-
-
-## Props
-
-| 参数             | 说明                                                            | 类型             | 默认值        | 版本 	|
-| ---------------  | --------                                                        | -------         | ------------ | ----- 	|
-| custom-style     | 自定义样式                                                      |   `string`       | -            | -     	|
-| type             | 指定 canvas 类型                                				 |    `string`      | `2d`         |   	    |
-| is-disable-scroll | 触摸图表时是否禁止页面滚动                                       |    `boolean`     | `false`     |   	    |
-| beforeDelay       |  延迟初始化 (毫秒)                       						|    `number`     | `30`     |   	    |
-| enableHover       |  PC端使用鼠标悬浮                       						|    `boolean`     | `false`     |   	    |
-
-## 事件
-
-| 参数                    | 说明                                                                                                             |
-| ---------------        | ---------------                                                                                                  |
-| init(echarts, chart => {})  | 初始化调用函数,第一个参数是传入`echarts`,第二个参数是回调函数,回调函数的参数是 `chart` 实例                                           |  
-| setChart(chart => {})        | 已经初始化后,请使用这个方法,是个回调函数,参数是 `chart` 实例                  |  
-| setOption(data)        | [图表配置项](https://echarts.apache.org/zh/option.html#title),用于更新 ,传递是数据 `option`  |  
-| clear()                | 清空当前实例,会移除实例中所有的组件和图表。  |  
-| dispose()              | 销毁实例  |  
-| showLoading()          | 显示加载  |  
-| hideLoading()          | 隐藏加载  |  
-| [canvasToTempFilePath](https://uniapp.dcloud.io/api/canvas/canvasToTempFilePath.html#canvastotempfilepath)(opt)  | 用于生成图片,与官方使用方法一致,但不需要传`canvasId`  |  
-
-
-## 打赏
-如果你觉得本插件,解决了你的问题,赠人玫瑰,手留余香。  
-
-![输入图片说明](https://static-6d65bd90-8508-4d6c-abbc-a4ef5c8e49e7.bspapp.com/image/222521_bb543f96_518581.jpeg "微信图片编辑_20201122220352.jpg")
-![输入图片说明](https://static-6d65bd90-8508-4d6c-abbc-a4ef5c8e49e7.bspapp.com/image/wxplay.jpg "wxplay.jpg")

Dosya farkı çok büyük olduğundan ihmal edildi
+ 0 - 0
uni_modules/lime-echart/static/ecStat.min.js


Dosya farkı çok büyük olduğundan ihmal edildi
+ 0 - 0
uni_modules/lime-echart/static/echarts.min.js


+ 0 - 129
uni_modules/lime-echart/static/index.html

@@ -1,129 +0,0 @@
-<!DOCTYPE html>
-<html lang="zh">
-	<head>
-		<meta charset="UTF-8">
-		<meta name="viewport"
-			content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no">
-		<meta http-equiv="X-UA-Compatible" content="ie=edge">
-		<title></title>
-		<style type="text/css">
-			html,
-			body,
-			.canvas {
-				padding: 0;
-				margin: 0;
-				overflow-y: hidden;
-				background-color: transparent;
-				width: 100%;
-				height: 100%;
-			}
-		</style>
-	</head>
-	<body>
-		<div class="canvas" id="limeChart"></div>
-		<script type="text/javascript" src="./uni.webview.1.5.3.js"></script>
-		<script type="text/javascript" src="./echarts.min.js"></script>
-		<script type="text/javascript" src="./ecStat.min.js"></script>
-		<!-- <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/echarts-liquidfill@latest/dist/echarts-liquidfill.min.js"></script> -->
-		<script>
-			let chart = null;
-			let cache = [];
-			console.log = function(...agrs) {
-				postMessage(agrs)
-			}
-			function emit(event, data) {
-				let dataStr = JSON.stringify(data, stringify)
-				postMessage({
-					event,
-					data: dataStr
-				})
-				cache = []
-			}
-			function postMessage(data) {
-				uni.postMessage({
-					data
-				});
-			}
-			function stringify(key, value) {
-				if (typeof value === 'object' && value !== null) {
-					if (cache.indexOf(value) !== -1) {
-						return;
-					}
-					cache.push(value);
-				}
-				return value;
-			}
-			function parse(name, callback, options) {
-				const optionNameReg = /[\w]+\.setOption\(([\w]+\.)?([\w]+)\)/
-				if (optionNameReg.test(callback)) {
-					const optionNames = callback.match(optionNameReg)
-					if(optionNames[1]) {
-						const _this = optionNames[1].split('.')[0]
-						window[_this] = {}
-						window[_this][optionNames[2]] = options
-						return optionNames[2]
-					} else {
-						return null
-					}
-				}
-				return null
-			}
-			function init(callback, options, opts = {}, theme = null) {
-				if(!chart) {
-					chart = echarts.init(document.getElementById('limeChart'), theme, opts)
-					if(options) {
-						chart.setOption(options)
-					}
-					// const name = parse('a', callback, options)
-					// console.log('options::', callback)
-					// if(name) this[name] = options
-					// eval(`a = ${callback};`)
-					// if(a) {a(chart)}
-				}
-			}
-			
-			function setChart(callback, options) {
-				if(!callback) return
-				if(chart && callback && options) {
-					var r = null
-					const name = parse('r', callback, options)
-					if(name) this[name] = options
-					eval(`r = ${callback};`)
-					if(r) {r(chart)}
-				}
-			}
-			function setOption(data) {
-				if (chart) chart.setOption(data[0], data[1])
-			}
-			function showLoading(data) {
-				if (chart) chart.showLoading(data[0], data[1])
-			}
-			
-			function hideLoading() {
-				if (chart) chart.hideLoading()
-			}
-			
-			function clear() {
-				if (chart) chart.clear()
-			
-			}
-			
-			function dispose() {
-				if (chart) chart.dispose()
-			}
-			function resize(size) {
-				if (chart) chart.resize(size)
-			}
-			
-			function canvasToTempFilePath(opt = {}) {
-				if (chart) {
-				  const src = chart.getDataURL(opt)
-				  postMessage({
-					  file: true,
-					  data: src
-				  })
-				}
-			}
-		</script>
-	</body>
-</html>

Dosya farkı çok büyük olduğundan ihmal edildi
+ 0 - 0
uni_modules/lime-echart/static/uni.webview.1.5.3.js


Bu fark içinde çok fazla dosya değişikliği olduğu için bazı dosyalar gösterilmiyor