Преглед изворни кода

Merge branch 'master' of http://git.zthymaoyi.com/gdc/yiliangyiyun-app

gjy пре 3 година
родитељ
комит
5431dd720b

+ 83 - 0
components/mao-scroll/mao-scroll.vue

@@ -0,0 +1,83 @@
+<template>
+	<view>
+		<view class="maoScroll-main" :style="'height:'+(lineHeight*showLine)+'rpx;'">
+			<view :style="'margin-top:-'+marginTop+'rpx;'">
+				<view v-for="(item,index) in showdata" :key="'maoScroll'+index" :style="'height:'+lineHeight+'rpx;'">
+					<slot :line="item" />
+				</view>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		name: 'maoScroll',
+		data() {
+			return {
+				showdata: [],
+				marginTop: 0,
+				showLine: 0,
+			}
+		},
+		props:{
+			data: {
+				type: Array,
+				default: []
+			},
+			showNum: {
+				type: Number,
+				default: 3,
+			},
+			lineHeight: {
+				type: Number,
+				default: 60,
+			},
+			animationScroll: {
+				type: Number,
+				default: 500,
+			},
+			animation: {
+				type: Number,
+				default: 2000,
+			}
+		},
+		methods: {
+			init: function(){
+				this.showLine = this.showNum < this.data.length ? this.showNum : this.data.length;
+				for(let i = 0; i < this.data.length; i++){
+					this.showdata.push(this.data[i]);
+				}
+				for(let i = 0; i < this.showLine; i++){
+					this.showdata.push(this.data[i]);
+				}
+				setInterval(this.animationFunc, this.animation);
+			},
+			animationFunc: function(){
+				if(this.marginTop >= this.data.length*this.lineHeight){
+					this.marginTop = 0;
+				}
+				let stepTime = this.animationScroll/this.lineHeight;
+				
+				var step = 0;
+				let self = this;
+				var index = setInterval(function(){
+					self.marginTop = self.marginTop + 1;
+					step++;
+					if (step >= self.lineHeight) {
+						clearInterval(index);
+					}
+				}, stepTime);
+			}
+		},
+		watch: {
+			data(outdata, newdata) {
+				this.init();
+			}
+		}
+	}
+</script>
+
+<style>
+	.maoScroll-main{width: 100%;overflow: hidden;}
+</style>

+ 4 - 3
manifest.json

@@ -2,8 +2,8 @@
     "name" : "易粮易运",
     "appid" : "__UNI__7297DA2",
     "description" : "易粮易运——为天下粮食人服务的App",
-    "versionName" : "1.1.44",
-    "versionCode" : 1144,
+    "versionName" : "1.1.51",
+    "versionCode" : 1151,
     "transformPx" : false,
     /* SDK配置 */
     "quickapp" : {},
@@ -188,7 +188,8 @@
             "Push" : {},
             "Maps" : {},
             "LivePusher" : {},
-            "VideoPlayer" : {}
+            "VideoPlayer" : {},
+            "Bluetooth" : {}
         },
         "splashscreen" : {
             "waiting" : false

+ 11 - 0
package.json

@@ -0,0 +1,11 @@
+{
+    "id": "mao-scroll",
+    "name": "MaoUI 文字向上滚动 多行滚动 多行滑动",
+    "version": "1.2",
+    "description": "多行文字向上滚动自动消失 适用于公告 新闻 动态 中将结果 最新订单等场景",
+    "keywords": [
+        "公告",
+        "订单",
+        "新闻"
+    ]
+}

+ 14 - 3
pages.json

@@ -354,13 +354,15 @@
 		{
 			"path": "pages/user/report",
 			"style": {
-				"navigationBarTitleText": "数据报表"
+				"navigationStyle": "custom",
+				"navigationBarTextStyle": "white"
 			}
 		},
 		{
 			"path": "pages/user/report",
 			"style": {
-				"navigationBarTitleText": "数据报表"
+				"navigationBarTitleText": "数据报表",
+				"navigationStyle": "custom"
 			}
 		},
 		{
@@ -1252,7 +1254,16 @@
 			}
 
 		}
-	],
+	    ,{
+            "path" : "pages/user/contractLook/inventoryCost",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "库存成本",
+                "enablePullDownRefresh": false
+            }
+            
+        }
+    ],
 	"subpackages": [{
 			"root": "pageA",
 			"pages": [{

+ 2 - 1
pages/erp/improvedExWaehousing/improvedExWaehousingDetail.vue

@@ -304,6 +304,7 @@
 		onLoad(options) {
 			this.detailData = JSON.parse(options.data)
 			this.netWeight = this.detailData.netWeight
+			console.log("查看",this.detailData)
 			if (this.detailData.addressUrl) {
 				this.imgUrl.push({
 					url: this.detailData.addressUrl.split(",")[0]
@@ -766,7 +767,7 @@
 					}
 				}
 				if(!this.showCar){//若自运的合同该字段置空
-				          this.deptBudgetList.selfLoading = ""
+				          this.detailData.selfLoading = ""
 				    }
 				if (this.detailData.boxNo) {
 					this.detailData.boxNo = this.detailData.boxNo.toUpperCase()

+ 6 - 0
pages/erp/index.vue

@@ -210,6 +210,12 @@
 				})
 			}
 		},
+		onBackPress() {
+				uni.switchTab({
+				    url: '/pages/user/user'
+				});
+				return true
+		},
 		// #endif
 		computed: {
 			...mapState(['hasLogin', 'userInfo']),

+ 6 - 0
pages/erpbusiness/acquisitionInspection/acquisitionInspection.vue

@@ -135,6 +135,12 @@
 		computed: {
 			...mapState(['hasLogin', 'userInfo'])
 		},
+		onBackPress() {
+			uni.switchTab({
+				url: '/pages/user/user'
+			});
+			return true
+		},
 		onPullDownRefresh() {
 			this.currentPage = 1
 			this.gridList = []

+ 11 - 2
pages/erpbusiness/add_quality_testing.vue

@@ -232,7 +232,15 @@
 					buckleMiscellaneous: '',
 					carNumber:'',
 					customerName:'',
-					customerPhone:''
+					customerPhone:'',
+					bulkDensity:"",
+					imperfectGrain:"",
+					waterContent:"",
+					jiaorenli:"",
+					impurity:"",
+					mildewGrain:"",
+					compName:"",
+					
 				},
 				typeList: ['潮粮', '干粮'],
 				managementType: '',
@@ -301,7 +309,7 @@
 			this.gridList.warehouseName = options.warehouseName
 			this.gridList.qualityNo = 'SGRK' + this.getdate() + this.commonWarehouseNo + number
 			this.cangid = options.cangid
-			this.gridList.compName = uni.getStorageSync('pcUserInfo').compName
+			this.gridList.compName = uni.getStorageSync('compName')
 			this.gridList.person= options.personCharge
 			this.gridList.personPhone= options.personPhone
 			this.gridList.qualityInspector= uni.getStorageSync("userInfo").userName
@@ -627,6 +635,7 @@
 																that.$api.msg('提交成功')
 																that.isShowPrint = true
 																that.gridList.warehouseId = that.cangid
+																that.gridList.compId = uni.getStorageSync('pcUserInfo').compId
 																uni.setStorageSync("quality_print",that.gridList)
 																console.log('that.gridList',that.gridList)
 																// uni.navigateBack({})

+ 1 - 0
pages/erpbusiness/edit_quality_testing.vue

@@ -597,6 +597,7 @@
 						return
 					}
 				}
+				this.gridList.storageNumber = this.gridList.storageTagNo
 				uni.showModal({
 					content: "确定提交质检信息?",
 					showCancel: true,

+ 7 - 1
pages/erpbusiness/exsendCommand.vue

@@ -7,9 +7,10 @@
 			<textarea class="input" @input="inputEvent" /> -->
 			<!-- <button type="primary" @tap="sendData">发送(票据可使用)</button> -->
 
-			<view style='margin-top:4%;display: flex;flex-direction: row;'>
+			<view style='margin-top:4%;display: flex;flex-direction: column;'>
 				<button type='primary' class="btn" @tap='receiptTest' :loading='isReceiptSend'
 					:disabled='isReceiptSend'>打印出库小票</button>
+					<button type='primary' class="btn" @tap='goToList'>返回列表页</button>
 				<!-- <button type='primary' @tap='labelTest' :loading='isLabelSend' :disabled='isLabelSend'>标签测试</button> -->
 			</view>
 
@@ -139,6 +140,11 @@
 			//    })	
 		},
 		methods: {
+			goToList(){
+				uni.navigateTo({
+					url: '/pages/erp/index?companyId=1'
+				})
+			},
 			//获取输入内容
 			inputEvent(e) {
 				this.sendContent = e.detail.value;

+ 7 - 1
pages/erpbusiness/jjsendCommand.vue

@@ -7,9 +7,10 @@
 			<textarea class="input" @input="inputEvent" /> -->
 			<!-- <button type="primary" @tap="sendData">发送(票据可使用)</button> -->
 
-			<view style='margin-top:4%;display: flex;flex-direction: row;'>
+			<view style='margin-top:4%;display: flex;flex-direction: column;'>
 				<button class="btn" type='primary' @tap='receiptTest' :loading='isReceiptSend'
 					:disabled='isReceiptSend'>打印检斤单小票</button>
+					<button type='primary' class="btn" @tap='goToList'>返回列表页</button>
 				<!-- <button type='primary' @tap='labelTest' :loading='isLabelSend' :disabled='isLabelSend'>标签测试</button> -->
 			</view>
 
@@ -138,6 +139,11 @@
 			//    })	
 		},
 		methods: {
+			goToList(){
+				uni.navigateTo({
+					url: '/pages/erpbusiness/acquisitionInspection/acquisitionInspection'
+				})
+			},
 			//获取输入内容
 			inputEvent(e) {
 				this.sendContent = e.detail.value;

+ 11 - 4
pages/erpbusiness/quality_testing.vue

@@ -38,7 +38,7 @@
 							<view class="left status2" v-if="item.status=='已复检'">复</view>
 							<view class="left status3" v-if="item.confirm=='1'">确</view>
 						</view>
-						
+
 						<view>
 							<view class="top-title">
 								<view v-if='managementType==1'>{{item.qualityNo}}</view>
@@ -164,7 +164,7 @@
 				warehouseCount: '',
 				commonWarehouseNo: '',
 				cangid: '',
-				warehouse:{},
+				warehouse: {},
 
 			}
 		},
@@ -187,6 +187,12 @@
 				})
 			}
 		},
+		onBackPress() {
+			uni.switchTab({
+				url: '/pages/user/user'
+			});
+			return true
+		},
 		// #endif
 		computed: {
 			...mapState(['hasLogin', 'userInfo']),
@@ -351,8 +357,9 @@
 				uni.navigateTo({
 					url: '/pages/erpbusiness/add_quality_testing?managementType=' + this.managementType +
 						'&cangid=' + this.cangid + '&warehouseCount=' + this.warehouseCount +
-						'&commonWarehouseNo=' + this.commonWarehouseNo + '&warehouseName=' + this.warehouseName
-						+ '&personCharge=' + this.warehouse.personCharge+ '&personPhone=' + this.warehouse.personPhone
+						'&commonWarehouseNo=' + this.commonWarehouseNo + '&warehouseName=' + this.warehouseName +
+						'&personCharge=' + this.warehouse.personCharge + '&personPhone=' + this.warehouse
+						.personPhone
 				})
 			},
 			del(item) {

+ 20 - 10
pages/erpbusiness/sendCommand.vue

@@ -7,9 +7,10 @@
 			<textarea class="input" @input="inputEvent" /> -->
 			<!-- <button type="primary" @tap="sendData">发送(票据可使用)</button> -->
 
-			<view style='margin-top:4%;display: flex;flex-direction: row;'>
+			<view style='margin-top:4%;display: flex;flex-direction: column;'>
 				<button type='primary' class="btn" @tap='receiptTest' :loading='isReceiptSend'
 					:disabled='isReceiptSend'>打印质检单小票</button>
+				<button type='primary' class="btn" @tap='goToList'>返回列表页</button>
 				<!-- <button type='primary' @tap='labelTest' :loading='isLabelSend' :disabled='isLabelSend'>标签测试</button> -->
 			</view>
 
@@ -71,15 +72,15 @@
 				deviceId: BLEInformation.deviceId,
 				serviceId: BLEInformation.notifyServiceId,
 				characteristicId: BLEInformation.notifyCharaterId,
-			 state: true,
+				state: true,
 				success(res) {
 					uni.onBLECharacteristicValueChange(function(r) {
 						console.log(`characteristic ${r.characteristicId} has changed, now is ${r}`)
 					})
 				},
-			 fail: function(e) {
+				fail: function(e) {
 					console.log(e)
-			 },
+				},
 				complete: function(e) {
 					console.log(e)
 				}
@@ -103,7 +104,10 @@
 		},
 		onShow() {
 			this.gridList = uni.getStorageSync("quality_print")
-			this.gridList.compId = uni.getStorageSync('pcUserInfo').compId
+			this.utils.nullToString(this.gridList)
+			if(!this.gridList.compId){
+				this.gridList.compId = uni.getStorageSync('pcUserInfo').compId
+			}
 			console.log(this.gridList)
 			let that = this;
 			let width;
@@ -140,6 +144,11 @@
 			//    })	
 		},
 		methods: {
+			goToList(){
+				uni.navigateTo({
+					url: '/pages/erpbusiness/quality_testing?managementType=1'
+				})
+			},
 			//获取输入内容
 			inputEvent(e) {
 				this.sendContent = e.detail.value;
@@ -187,8 +196,7 @@
 				command.rowSpace(60);
 				command.setSelectSizeOfModuleForQRCode(5);
 				command.setSelectErrorCorrectionLevelForQRCode(7)
-				command.setStoreQRCodeData(that.gridList.compId + '&' + that.gridList.qualityNo + '&' + that.gridList
-					.warehouseId);
+				command.setStoreQRCodeData(that.gridList.compId + '&' + that.gridList.qualityNo + '&' + that.gridList.warehouseId);
 				command.setPrintQRCode();
 				//客户姓名
 				command.setSelectJustification(0); //居左
@@ -510,12 +518,14 @@
 		width: 100%;
 		height: 100%;
 	}
-	.btn{
+
+	.btn {
 		margin-top: 50rpx;
 		background: #22C572;
 	}
+
 	uni-button[loading][type=primary] {
-	    color: hsla(0,0%,100%,.6);
-	    background-color: #22C572;
+		color: hsla(0, 0%, 100%, .6);
+		background-color: #22C572;
 	}
 </style>

+ 6 - 4
pages/erpbusiness/sm/sm.vue

@@ -120,8 +120,8 @@
 		},
 		onShow() {
 			// this.compId = "2710b21efc1e4393930c5dc800010dc4"
-			// this.qualityNo = "SGRK202112200080001"
-			// this.cangid = "715d87adeea548cc9a70d03f72952816"
+			// this.qualityNo = "SGRK202201170060001"
+			// this.cangid = "374a8a02ecfe40dc9abdcd902dd564f5"
 			console.log("查看",this.qualityNo,this.compId,this.cangid)
 			if (this.cangid) { //判断是在哪扫码进入的
 				if(this.compId.indexOf(",") != -1){
@@ -156,7 +156,7 @@
 				}else{
 				    this.$api.msg('当前身份不可操作!')
 				}
-			} else {//邀请客户
+			} else if(this.user.title && this.user.companyId){//邀请客户
 				this.show = true
 				this.show1 = false
 				this.getList()
@@ -188,7 +188,9 @@
 						this.status = this.detailData.qualityInspectionManagement.status
 						this.confirm = this.detailData.qualityInspectionManagement.confirm
 						this.weightStatus = this.detailData.status
-						this.payStatus = this.detailData.paymentManagement.approveStatus
+						if(this.detailData.paymentManagement){
+							this.payStatus = this.detailData.paymentManagement.approveStatus
+						}	
 					})
 					.catch(res => {
 						if (res.message) {

+ 26 - 6
pages/public/reset.vue

@@ -60,7 +60,8 @@
 				system:'',
 				platform:'',
 				userData:undefined,
-				canIUseProfile:false
+				canIUseProfile:false,
+				isPhone:""
 			}
 		},
 		onShow() {
@@ -68,7 +69,8 @@
 			this.$api.logout()
 		},
 		onLoad(options) {
-			
+			this.phone = options.phone //个人首页修改密码
+			this.isPhone = options.phone //个人首页修改密码成功后自动退出重新登录
 			if( wx.getUserProfile ){  
 			    console.log('--check getUserProfile--OK');  
 			    this.canIUseProfile = true;  
@@ -150,9 +152,27 @@
 				    console.log("重置密码",res)
 					// 获得数据
 					if(res.data.code==200){
-						setTimeout(() => {
-							uni.navigateBack()
-						}, 1000)
+						if(this.isPhone){//判断是否是在个人首页进来的(若是退出重进)
+							uni.clearStorageSync();
+							that.$api.doRequest('post', '/auth/api/logout').then(res => {})
+							this.$store.commit('logout')
+							this.$api.logout()
+								setTimeout(() => {
+							uni.showToast({
+								title: '修改成功',
+								icon: 'none',
+								duration: 2000
+							})
+							},2000)
+							uni.navigateTo({
+								url: `/pages/public/login_account_number`
+							})
+							
+						}else{
+							setTimeout(() => {
+								uni.navigateBack()
+						    }, 1000)
+						}
 						uni.showToast({
 							title: '重置成功',
 							icon: 'none',
@@ -160,7 +180,7 @@
 						})
 					}else{
 						uni.showToast({
-							title: "系统异常,请联系管理员",
+							title: "系统异常或验证码已过期,请退出重试",
 							icon:'none',
 							duration: 2000
 						})

+ 133 - 0
pages/user/contractLook/inventoryCost.vue

@@ -0,0 +1,133 @@
+<template>
+	<view class="content">
+		<view class="cost-list" v-for="(item,index) in costList">
+			<view class="title">
+				{{item.warehouseName}}
+			</view>
+			<view class="goods-table">
+				<view class="goods-table-title">
+					<view class="font">货名</view>
+					<view class="font">储量(吨)</view>
+					<view class="font">价值(元)</view>
+				</view>
+				<view class="goods-table-content" v-for="(item1,index1) in item.goodList">
+					<view class="font">{{item1.goodsName}}</view>
+					<view class="font">{{item1.storage}}</view>
+					<view class="font">{{item1.cost}}</view>
+				</view>
+			</view>
+		</view>
+		
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				costList:[]
+			}
+		},
+		onLoad: function(option) {
+			uni.showLoading({
+				title: "加载中",
+				mask: true
+			})
+			this.init()
+		},
+		methods: {
+			init() {
+				this.$api.doRequest('get', '/costManagementInfo/selectCostManagementInfo', {
+				compId: uni.getStorageSync('pcUserInfo').compId,
+				warehouseType: 1
+				}).then(res => {
+					uni.hideLoading()
+					const results = this.makeGroupData(res.data.data,function (item) {
+					return [item.warehouseName];
+					});
+					
+					console.log(this.costList)
+					let _data = []
+					for(let i=0;i<results.length;i++){
+						let _obj = {}
+						_obj.warehouseName = results[i][0].warehouseName
+						_obj.goodList = results[i]
+						_data.push(_obj)
+					}
+					console.log(_data)
+					this.costList = _data
+				})
+			},
+			makeGroupData(array,fn){
+				const groups = {};
+				array.forEach(function (item) {
+				     const group = JSON.stringify(fn(item));
+				     groups[group] = groups[group] || [];
+				     groups[group].push(item);
+				});
+				return Object.keys(groups).map(function (group) {
+					
+				     return groups[group];
+				})
+			}
+		}
+	}
+</script>
+
+<style scoped lang="scss">
+.cost-list{
+	margin: 20rpx;
+	background: white;
+	border-radius: 20rpx;
+	padding: 20rpx;
+	.title{
+		font-size: 32rpx;
+		font-weight: 500;
+		color: #333333;
+	}
+	.goods-table{
+		margin-top: 22rpx;
+	}
+	.goods-table-title{
+			display: flex;
+			border-bottom: 1px solid #EEEEEE;
+			padding-bottom:16rpx;
+			// margin-bottom: ;
+		.font{
+			
+			font-size: 27rpx;
+			font-weight: 400;
+			color: #B2B3BB;
+			
+		}
+		.font:nth-of-type(1){
+			width: 40%;
+		}
+		.font:nth-of-type(2){
+			width: 30%;
+		}
+		.font:nth-of-type(3){
+			width: 30%;
+			text-align: right;
+		}
+	}
+	.goods-table-content{
+		display: flex;
+		margin: 22rpx;
+		font-size: 28rpx;
+		font-weight: 400;
+		color: #333333;
+		.font:nth-of-type(1){
+			width: 40%;
+		}
+		.font:nth-of-type(2){
+			width: 30%;
+		}
+		.font:nth-of-type(3){
+			width: 30%;
+			text-align: right;
+		}
+		
+	}
+}
+</style>

+ 869 - 245
pages/user/report.vue

@@ -1,111 +1,421 @@
 <template>
 	<view class="content">
-		<view class="title">库点流向分布</view>
-		<iframe id="mainIframe" ref="mainIframe" name="mainIframe" :src="url" class="map"></iframe>
-		<view @click='skipContent(index)' class="charts-box" v-for="(item,index) in chartlist" :key='index'>
-			<div class="bottom-tip" v-if='index==0||index==3'>统计单位:吨</div>
-			<div class="bottom-tip" v-if='index!=0&&index!=3' :class='index==2?"title-margin":""'>统计单位:元</div>
-			<view v-if="index==0" class="title">采购合同完成进度</view>
-			<qiun-data-charts type="ring" :opts='item.ringoptions' :chartData="item.Ring" background="#24262D" />
-			<view v-if="index==2" class="title">销售合同完成进度</view>
+		<view class="content1">
+			<u-navbar back-text="" title="数据统计" :border-bottom='false' :background="background" back-icon-color='white'
+				title-color='white'>
+			</u-navbar>
+			<view class="row2">
+				<view class="left" @click="dateClick">
+					{{nowDate}}
+					<u-icon name="arrow-down-fill" size="16" class="icon"></u-icon>
+				</view>
+				<view class="right">
+					<view :class="typeSelect==index?'type-bgc':''" class="type-style" v-for="(item,index) in moneyList"
+						@click="typeClick(index)">
+						{{item.name}}
+					</view>
+				</view>
+			</view>
+			<view class="row3">
+				<view class="title">
+					总收入
+				</view>
+				<view class="number">
+					核算中
+				</view>
+			</view>
 		</view>
-		<view class="content2">
-			<view class="title">在途信息统计</view>
-			<view class="row">
-				<view class="item">
-					<view class="item-top">在途车辆</view>
-					<view class="item-bottom">
-						<view style="color: #50cad4;font-size: 50rpx;">{{carCount1}} </view>台
+		<view class="move-content">
+			<view class="content2 content-wrap">
+				<view class="row1">
+					<view class="left title">
+						合同完成进度
+					</view>
+					<view class="right">
+						<view class="item" :class="contractSelect=='0'?'item-Select':''" @click="htClick(0)">采购</view>
+						<view class="item" :class="contractSelect=='1'?'item-Select':''" @click="htClick(1)">销售</view>
 					</view>
 				</view>
-				<view class="item">
-					<view class="item-top">装车车辆</view>
-					<view class="item-bottom">
-						<view style="color: rgb(255, 165, 35);font-size: 50rpx;">{{carCount2}}</view>台
+				<u-line color="#EEEEEE" class="u-line" />
+				<view class="row2" @click="goToPage(1)">
+					<view class="top">
+						合同总量
+					</view>
+					<view class="bottom">
+						<view class="left">
+							<image src="../../static/img/report/hetongzongliang.png" mode=""></image>
+						</view>
+						<view class="right" v-if="contractSelect=='0'">
+							<view class="top">
+								<view class="left">
+									已完成量
+									<view class="number">{{dataObj3.percentage}}</view>
+								</view>
+								<view class="right-number">{{dataObj3.total}}吨</view>
+							</view>
+							<view class="bottom">
+								<u-line-progress height="12" active-color="#22C572" :show-percent="false"
+									:striped="true" :percent="dataObj3.percent" :striped-active="true">
+								</u-line-progress>
+							</view>
+						</view>
+						<view class="right" v-if="contractSelect=='1'">
+							<view class="top">
+								<view class="left">
+									已完成量
+									<view class="number">{{dataObj0.percentage}}</view>
+								</view>
+								<view class="right-number">{{dataObj0.total}}吨</view>
+							</view>
+							<view class="bottom">
+								<u-line-progress height="12" active-color="#22C572" :show-percent="false"
+									:striped="true" :percent="dataObj0.percent" :striped-active="true">
+								</u-line-progress>
+							</view>
+						</view>
+					</view>
+				</view>
+				<view class="row3" @click="goToPage(2)">
+					<view class="top">
+						合同总额
+					</view>
+					<view class="bottom">
+						<view class="left">
+							<image src="../../static/img/report/kaipiao.png" mode=""></image>
+						</view>
+						<view class="right" v-if="contractSelect=='0'">
+							<view class="top">
+								<view class="left">
+									已开票
+									<view class="number">{{dataObj4.percentage}}</view>
+								</view>
+								<view class="right-number">¥{{dataObj4.total}}</view>
+							</view>
+							<view class="bottom">
+								<u-line-progress height="12" active-color="#FD714F" :show-percent="false"
+									:striped="true" :percent="dataObj4.percent" :striped-active="true">
+								</u-line-progress>
+							</view>
+						</view>
+						<view class="right" v-if="contractSelect=='1'">
+							<view class="top">
+								<view class="left">
+									已开票
+									<view class="number">{{dataObj1.percentage}}</view>
+								</view>
+								<view class="right-number">¥{{dataObj1.total}}</view>
+							</view>
+							<view class="bottom">
+								<u-line-progress height="12" active-color="#FD714F" :show-percent="false"
+									:striped="true" :percent="dataObj1.percent" :striped-active="true">
+								</u-line-progress>
+							</view>
+						</view>
 					</view>
 				</view>
-				<view class="item">
-					<view class="item-top">卸货车辆</view>
-					<view class="item-bottom">
-						<view style="color: rgb(36, 131, 255);font-size: 50rpx;">{{carCount3}}</view>台
+				<view class="row4" @click="goToPage(3)">
+					<view class="top">
+						合同总额
+					</view>
+					<view class="bottom">
+						<view class="left">
+							<image src="../../static/img/report/hetongzongliang.png" mode=""></image>
+						</view>
+						<view class="right" v-if="contractSelect=='0'">
+							<view class="top">
+								<view class="left">
+									已结算
+									<view class="number">{{dataObj5.percentage}}</view>
+								</view>
+								<view class="right-number">¥{{dataObj5.total}}</view>
+							</view>
+							<view class="bottom">
+								<u-line-progress height="12" active-color="#5C75DF" :show-percent="false"
+									:striped="true" :percent="dataObj5.percent" :striped-active="true">
+								</u-line-progress>
+							</view>
+						</view>
+						<view class="right" v-if="contractSelect=='1'">
+							<view class="top">
+								<view class="left">
+									已结算
+									<view class="number">{{dataObj2.percentage}}</view>
+								</view>
+								<view class="right-number">¥{{dataObj5.total}}</view>
+							</view>
+							<view class="bottom">
+								<u-line-progress height="12" active-color="#5C75DF" :show-percent="false"
+									:striped="true" :percent="dataObj5.percent" :striped-active="true">
+								</u-line-progress>
+							</view>
+						</view>
 					</view>
 				</view>
 			</view>
-		</view>
-		<view class="content3">
-			<view class="title">粮食总储量</view>
-			<qiun-data-charts type="column" :chartData="chartData" :opts='ringoptions' background="none" />
-		</view>
-		<view class="content4">
-			<view class="title">库存成本</view>
-			<view class="row">
-				<view class="item">
-					<view class="item-top">总库存量</view>
-					<view class="item-bottom">
-						<view style="color: #50cad4;font-size: 50rpx;">{{inventoryCost}}</view>吨
+			<view class="content3 content-wrap">
+				<view class="title" @click="goToPage(4)">粮食品种占比</view>
+				<u-line color="#EEEEEE" class="u-line" />
+				<qiun-data-charts type="line" class='line-chart' :chartData="chartData" :opts='zringoptions'
+					background="none" :ontouch="true" />
+			</view>
+			<view class="content4 content-wrap">
+				<view class="title">在途信息统计表</view>
+				<u-line color="#EEEEEE" class="u-line" />
+				<qiun-data-charts type="column" class='line-chart' :chartData="carChartData" :opts='ringoptions'
+					background="none" />
+			</view>
+			<view class="content5 content-wrap" @click="goToPage(5)">
+				<view class="title">库存成本</view>
+				<u-line color="#EEEEEE" class="u-line" />
+				<view class="row1">
+					<view class="left">
+						<image src="../../static/img/report/kuncunliang.png" mode=""></image>
+						<view class="text">
+							总库存量(吨)
+						</view>
+					</view>
+					<view class="right">
+						{{inventoryCost}}
 					</view>
 				</view>
-				<view class="item">
-					<view class="item-top">库存价值</view>
-					<view class="item-bottom">
-						<view style="color: rgb(255, 165, 35);font-size: 50rpx;">{{inventoryValue}}</view>元
+				<view class="row2">
+					<view class="left">
+						<image src="../../static/img/report/jiazhi.png" mode=""></image>
+						<view class="text">
+							库存价值(元)
+						</view>
+					</view>
+					<view class="right">
+						{{inventoryValue}}
 					</view>
 				</view>
+			</view>
+			<view class="content6 content-wrap">
+				<view class="title">库点流向分布</view>
+				<u-line color="#EEEEEE" class="u-line" />
+				<iframe class='map' :src='url'></iframe>
+			</view>
 
+			<!-- 	<view class="content7">
+				<maoScroll :data="ztList" :showNum="showNum" :lineHeight="lineHeight" :animationScroll="animationScroll"
+					:animation="animation">
+					<template v-slot="{line}">
+						<view class="row1">
+							<view class="zt">
+								<view class="point"></view>在途
+							</view>
+							<view>{{line.startName}}</view>
+							<img src="https://taohaoliang.oss-cn-beijing.aliyuncs.com/app/tmp/jiantou.png" alt="">
+							<view class="">
+								{{line.endName}}
+							</view>
+						</view>
+					</template>
+				</maoScroll>
+			</view> -->
+			<view class="content7">
+				<view ref='scroll' class='scroll'>
+					<view class="row1" v-for="(item,index) in ztList">
+						<view class="zt">
+							<view class="point"></view>在途
+						</view>
+						<view>{{item.startName}}</view>
+						→
+						<!-- <img src="https://taohaoliang.oss-cn-beijing.aliyuncs.com/app/tmp/jiantou.png" alt=""> -->
+						<view class="">
+							{{item.endName}}
+						</view>
+					</view>
+				</view>
 			</view>
 		</view>
+
+		<u-select v-model="showDate" mode="mutil-column" confirm-color='#22C572' :list="dateList" @confirm="confirm">
+		</u-select>
 	</view>
 </template>
 
 <script>
+	import maoScroll from '@/components/mao-scroll/mao-scroll.vue';
 	export default {
+		components: {
+			maoScroll
+		},
 		data() {
 			return {
-				chartlist: [],
-				carCount1: '',
-				carCount2: '',
-				carCount3: '',
+				carInterval: '',
 				inventoryCost: '',
 				inventoryValue: '',
-				ZChart: {},
-				// url:"https://datav.aliyuncs.com/share/235518097ffd673bc1eb05011b9a02b6",
+				contractSelect: '0',
 				url: '',
-				flag: true,
+				nowDate: '2022年全年',
+				seachMoth: '2021',
+				background: {
+					backgroundColor: '#2E303A',
+				},
+				typeSelect: '0',
+				contractSelect: '0',
+				showDate: false,
 				chartData: {},
+				carChartData: {},
+				carRingoptions: {},
 				ringoptions: {},
+				zringoptions: {},
+				moneyList: [{
+					name: '收入'
+				}, {
+					name: '支出'
+				}, {
+					name: '毛利润'
+				}],
+				dataList: [],
+				dataObj0: {
+					percentage: '',
+					total: '',
+					percentage: ''
+				},
+				dataObj1: {
+					percentage: '',
+					total: '',
+					percentage: ''
+				},
+				dataObj2: {
+					percentage: '',
+					total: '',
+					percentage: ''
+				},
+				dataObj3: {
+					percentage: '',
+					total: '',
+					percentage: ''
+				},
+				dataObj4: {
+					percentage: '',
+					total: '',
+					percentage: ''
+				},
+				dataObj5: {
+					percentage: '',
+					total: '',
+					percentage: ''
+				},
+				dateList: [
+					[{
+							value: '1',
+							label: '2021年'
+						},
+						{
+							value: '2',
+							label: '2022年'
+						}
+					],
+					[{
+							value: '0',
+							label: '全年'
+						},
+						{
+							value: '01',
+							label: '1月'
+						},
+						{
+							value: '02',
+							label: '2月'
+						},
+						{
+							value: '03',
+							label: '3月'
+						},
+						{
+							value: '04',
+							label: '4月'
+						},
+						{
+							value: '05',
+							label: '5月'
+						},
+						{
+							value: '06',
+							label: '6月'
+						},
+						{
+							value: '07',
+							label: '7月'
+						},
+						{
+							value: '08',
+							label: '8月'
+						},
+						{
+							value: '09',
+							label: '9月'
+						},
+						{
+							value: '10',
+							label: '10月'
+						},
+						{
+							value: '11',
+							label: '11月'
+						},
+						{
+							value: '12',
+							label: '12月'
+						},
+					]
+				],
+				ztList: [],
+				showNum: 8,
+				lineHeight: 80,
+				animationScroll: 5000,
+				animation: 0,
 			}
 		},
 		onLoad: function(option) {
-			uni.showLoading({
-				title: "加载中",
-				mask: true
-			})
-			this.url = "https://liangxin.zthymaoyi.com/map.html?id="+uni.getStorageSync('pcUserInfo').compId
+			// uni.showLoading({
+			// 	title: "数据加载中...",
+			// 	mask: true
+			// })
+			if (this.nowDate == '2022年全年') {
+				this.seachMoth = '2022'
+			}
 			this.init()
-			uni.onWindowResize((res) => {
-			    console.log('变化后的窗口宽度=' + res.size.windowWidth)
-			    console.log('变化后的窗口高度=' + res.size.windowHeight)
-				this.init()
-			})
+		},
+		destroyed() {
+			clearInterval(this.carInterval)
 		},
 		methods: {
-			skipContent(index){
+			goToPage(index) {
 				console.log(index)
-				if(index<2){
+				if (index == 4) {
 					uni.navigateTo({
-						url:'/pages/user/contractLook/purchaseContract'
+						url: '/pages/user/contractLook/warehouseReserves'
 					})
-				}else if(index>2&&index<6){
+					return true
+				} else if (index == 5) {
 					uni.navigateTo({
-						url:'/pages/user/contractLook/salesContract'
+						url: '/pages/user/contractLook/inventoryCost'
+					})
+					return true
+				}
+				if (this.contractSelect == '0') {
+					uni.navigateTo({
+						url: '/pages/user/contractLook/purchaseContract'
+					})
+				} else {
+					uni.navigateTo({
+						url: '/pages/user/contractLook/salesContract'
 					})
 				}
 			},
 			init() {
-				this.$api.doRequest('get', '/biInfoController/selectBiInfo?compId='+uni.getStorageSync('pcUserInfo').compId).then(res => {
+				this.url = "https://liangxin.zthymaoyi.com/map_0105.html?id=" + uni.getStorageSync('pcUserInfo').compId +
+					'&seachMoth=' + this.seachMoth
+				this.$api.doRequest('get', '/biInfoController/selectBiInfo?compId=' + uni.getStorageSync('pcUserInfo')
+					.compId + '&seachMoth=' + this.seachMoth).then(res => {
 					console.log(res)
 					uni.hideLoading()
 					let _list = []
+					this.dataList = res.data.data
 					for (let i = 0; i < res.data.data.length; i++) {
 						let _obj = {}
 						let _color = []
@@ -114,141 +424,74 @@
 						let _name = ''
 						let _count = ''
 						let _data = []
-						switch (i) {
-							case 0:
-								_color = ['#75d1f4', '#3a3b40'];
-								_title = '总量合计'
-								_data = [{
-									name: '已完成量',
-									data: Number(res.data.data[i].biViewInfoList[0].count)
-								}, {
-									name: '待完成量',
-									data: Number(res.data.data[i].biViewInfoList[1].count)
-								}]
-								break;
-							case 1:
-								_color = ['#247ef4', '#3a3b40'];
-								_title = '开票合计'
-								_data = [{
-									name: '已开票',
-									data: Number(res.data.data[i].biViewInfoList[0].count)
-								}, {
-									name: '待开票',
-									data: Number(res.data.data[i].biViewInfoList[1].count)
-								}]
-								break;
-							case 2:
-								_color = ['#f49f23', '#3a3b40'];
-								_title = '付款合计'
-								_data = [{
-									name: '已付款',
-									data: Number(res.data.data[i].biViewInfoList[0].count)
-								}, {
-									name: '待付款',
-									data: Number(res.data.data[i].biViewInfoList[1].count)
-								}]
-								break;
-							case 3:
-								_color = ['#75d1f4', '#3a3b40'];
-								_title = '总量合计'
-								_data = [{
-									name: '已完成量',
-									data: Number(res.data.data[i].biViewInfoList[0].count)
-								}, {
-									name: '待完成量',
-									data: Number(res.data.data[i].biViewInfoList[1].count)
-								}]
-								break;
-							case 4:
-								_color = ['#247ef4', '#3a3b40'];
-								_title = '开票合计'
-								_data = [{
-									name: '已开票',
-									data: Number(res.data.data[i].biViewInfoList[0].count)
-								}, {
-									name: '待开票',
-									data: Number(res.data.data[i].biViewInfoList[1].count)
-								}]
-								break;
-							case 5:
-								_color = ['#f49f23', '#3a3b40'];
-								_title = '付款合计'
-								_data = [{
-									name: '待付款',
-									data: Number(res.data.data[i].biViewInfoList[0].count)
-								}, {
-									name: '待完成量',
-									data: Number(res.data.data[i].biViewInfoList[1].count)
-								}]
-								break;
-						}
-
 						if (i < 6) {
-							_subtitle = Number(Number(res.data.data[i].total).toFixed(0))
-							_obj.ringoptions = {
-									"type": "ring",
-									"animation": true,
-									"timing": "easeOut",
-									"duration": 1000,
-									"color": _color,
-									"fontSize": 13,
-									"fontColor": "#666666",
-									"legend": {
-										"show": true,
-										"position": "top",
-										"padding": 5,
-										"margin": 5,
-										"backgroundColor": "rgba(0,0,0,0)",
-										"borderColor": "rgba(0,0,0,0)",
-										"fontSize": 13,
-										"fontColor": "#CECECE",
-										"hiddenColor": "#CECECE",
-									},
-									"title": {
-										"name": _title,
-										"fontSize": 15,
-										"color": "#fff",
-									},
-									"subtitle": {
-										"name": _subtitle,
-										"fontSize": 20,
-										"color": "#fff",
-									},
-									"extra": {
-										"ring": {
-											"ringWidth": 15,
-											"centerColor": "#24262D",
-											"activeOpacity": 0.5,
-											"activeRadius": 10,
-											"borderColor": "#24262D",
-											"linearType": "none"
-										},
+							res.data.data[i].biViewInfoList[0].percent = Number(res.data.data[i].biViewInfoList[0]
+								.percentage.substring(0, res.data.data[i].biViewInfoList[0].percentage.length -
+									1)).toFixed(2)
+							res.data.data[i].biViewInfoList[0].percentage = Number(res.data.data[i].biViewInfoList[
+									0]
+								.percentage.substring(0, res.data.data[i].biViewInfoList[0].percentage.length -
+									1)).toFixed(2) + '%'
+							res.data.data[i].total = Number(res.data.data[i].total).toFixed(2)
+							switch (i) {
+								case 0:
+									this.dataObj0 = {
+										percentage: res.data.data[i].biViewInfoList[0].percentage,
+										total: res.data.data[i].total,
+										percent: Number(res.data.data[i].biViewInfoList[0].percent)
 									}
-								},
-								_obj.Ring = {
-									"series": _data
-								}
-
-							_list.push(_obj)
+									break;
+								case 1:
+									this.dataObj1 = {
+										percentage: res.data.data[i].biViewInfoList[0].percentage,
+										total: Number(res.data.data[i].total),
+										percent: Number(res.data.data[i].biViewInfoList[0].percent)
+									}
+									break;
+								case 2:
+									this.dataObj2 = {
+										percentage: res.data.data[i].biViewInfoList[0].percentage,
+										total: Number(res.data.data[i].total),
+										percent: Number(res.data.data[i].biViewInfoList[0].percent)
+									}
+									break;
+								case 3:
+									this.dataObj3 = {
+										percentage: res.data.data[i].biViewInfoList[0].percentage,
+										total: Number(res.data.data[i].total),
+										percent: Number(res.data.data[i].biViewInfoList[0].percent)
+									}
+									break;
+								case 4:
+									this.dataObj4 = {
+										percentage: res.data.data[i].biViewInfoList[0].percentage,
+										total: Number(res.data.data[i].total),
+										percent: Number(res.data.data[i].biViewInfoList[0].percent)
+									}
+									break;
+								case 5:
+									this.dataObj5 = {
+										percentage: res.data.data[i].biViewInfoList[0].percentage,
+										total: Number(res.data.data[i].total),
+										percent: Number(res.data.data[i].biViewInfoList[0].percent)
+									}
+									break;
+							}
 						} else if (i == 6) {
 							this.carCount1 = res.data.data[i].biViewInfoList[0].count
 							this.carCount2 = res.data.data[i].biViewInfoList[1].count
 							this.carCount3 = res.data.data[i].biViewInfoList[2].count
-						} else if (i == 7) {
-							this.inventoryCost =Number(res.data.data[i].biViewInfoList[0].count)  
-							this.inventoryValue =Number(res.data.data[i].biViewInfoList[1].count) 
-						} else if (i == 8) {
 
 							let _x = []
 							let _y = []
 							for (let k = 0; k < res.data.data[i].biViewInfoList.length; k++) {
 								_x.push(res.data.data[i].biViewInfoList[k].name)
-								_y.push( Number(res.data.data[i].biViewInfoList[k].count))
+								_y.push(Number(res.data.data[i].biViewInfoList[k].count))
 							}
-							this.chartData = {
+							this.carChartData = {
 								categories: _x,
 								series: [{
-									"name": '储量',
+									"name": '车辆',
 									"data": _y
 								}]
 							}
@@ -260,10 +503,13 @@
 								"animation": true,
 								"timing": "easeOut",
 								"duration": 1000,
+								"color": [
+									"#22C572"
+								],
 								"padding": [
 									15,
 									15,
-									20,
+									0,
 									5
 								],
 								"rotate": false,
@@ -276,16 +522,15 @@
 								"dataLabel": true,
 								"dataPointShape": true,
 								"dataPointShapeType": "solid",
-								"legend": {
-									"show": false,
-								},
+								"tapLegend": true,
 								"xAxis": {
 									"disabled": false,
-									"axisLine": true,
+									"axisLine": false,
 									"axisLineColor": "#CCCCCC",
 									"calibration": false,
 									"fontColor": "#666666",
 									"fontSize": 13,
+									"rotateLabel": false,
 									"itemCount": 5,
 									"boundaryGap": "center",
 									"disableGrid": true,
@@ -297,30 +542,33 @@
 									"scrollAlign": "left",
 									"scrollColor": "#A6A6A6",
 									"scrollBackgroundColor": "#EFEBEF",
-									"rotateLabel": true,
+									"format": ""
 								},
 								"yAxis": {
-									"disabled": false,
-									"disableGrid": false,
+									"disabled": true,
+									"disableGrid": true,
 									"splitNumber": 5,
 									"gridType": "solid",
 									"dashLength": 8,
 									"gridColor": "#CCCCCC",
 									"padding": 10,
 									"showTitle": false,
-									"data": [{
-										"type": "value",
-										"position": "left",
-										"disabled": false,
-										"axisLine": false,
-										"axisLineColor": "#CCCCCC",
-										"calibration": false,
-										"fontColor": "#666666",
-										"fontSize": 13,
-										"textAlign": "right",
-										"titleFontSize": 13,
-										"titleFontColor": "#666666",
-									}]
+									"data": []
+								},
+								"legend": {
+									"show": false,
+									"position": "bottom",
+									"float": "center",
+									"padding": 5,
+									"margin": 5,
+									"backgroundColor": "rgba(0,0,0,0)",
+									"borderColor": "rgba(0,0,0,0)",
+									"borderWidth": 0,
+									"fontSize": 13,
+									"fontColor": "#666666",
+									"lineHeight": 11,
+									"hiddenColor": "#CECECE",
+									"itemGap": 10
 								},
 								"extra": {
 									"column": {
@@ -328,8 +576,8 @@
 										"width": 30,
 										"seriesGap": 2,
 										"categoryGap": 3,
-										"barBorderCircle": false,
-							   "linearType": "none",
+										"barBorderCircle": true,
+										"linearType": "none",
 										"linearOpacity": 1,
 										"colorStop": 0,
 										"meterBorder": 1,
@@ -359,80 +607,456 @@
 										"labelBgColor": "#FFFFFF",
 										"labelBgOpacity": 0.7,
 										"labelFontColor": "#666666"
+									},
+									"markLine": {
+										"type": "solid",
+										"dashLength": 4,
+										"data": []
 									}
 								}
 							}
-						} else if (i == 9) {
 
+						} else if (i == 7) {
+							this.inventoryCost = Number(res.data.data[i].biViewInfoList[0].count).toFixed(2)
+							this.inventoryValue = Number(res.data.data[i].biViewInfoList[1].count).toFixed(2)
+
+						} else if (i == 8) {
+							let _x = []
+							let _y = []
+							for (let k = 0; k < res.data.data[i].biViewInfoList.length; k++) {
+								_x.push(res.data.data[i].biViewInfoList[k].name)
+								_y.push(Number(res.data.data[i].biViewInfoList[k].count).toFixed(2))
+							}
+							this.chartData = {
+								categories: _x,
+								series: [{
+									"name": '储量',
+									"data": _y
+								}]
+							}
+							this.zringoptions = {
+								"type": "line",
+								"canvasId": "",
+								"canvas2d": false,
+								"background": "none",
+								"animation": true,
+								"timing": "easeOut",
+								"duration": 1000,
+								"color": [
+									"#91CB74",
+								],
+								"padding": [
+									15,
+									10,
+									0,
+									15
+								],
+								"rotate": false,
+								"errorReload": true,
+								"fontSize": 13,
+								"fontColor": "#666666",
+								"enableScroll": true,
+								"touchMoveLimit": 60,
+								"enableMarkLine": true,
+								"dataLabel": true,
+								"dataPointShape": true,
+								"dataPointShapeType": "hollow",
+								"tapLegend": true,
+								"xAxis": {
+									"disabled": false,
+									"axisLine": false,
+									"axisLineColor": "#CCCCCC",
+									"calibration": false,
+									"fontColor": "#666666",
+									"fontSize": 13,
+									"rotateLabel": false,
+									"itemCount": 4,
+									"boundaryGap": "center",
+									"disableGrid": false,
+									"gridColor": "#CCCCCC",
+									"gridType": "dash",
+									"dashLength": 4,
+									"gridEval": 1,
+									"scrollShow": false,
+									"scrollAlign": "left",
+									"scrollColor": "#A6A6A6",
+									"scrollBackgroundColor": "#EFEBEF",
+									"format": ""
+								},
+								"yAxis": {
+									"disabled": true,
+									"disableGrid": true,
+									"splitNumber": 5,
+									"gridType": "dash",
+									"dashLength": 2,
+									"gridColor": "#CCCCCC",
+									"padding": 10,
+									"showTitle": false,
+									"data": []
+								},
+								"legend": {
+									"show": false,
+									"position": "bottom",
+									"float": "center",
+									"padding": 5,
+									"margin": 5,
+									"backgroundColor": "rgba(0,0,0,0)",
+									"borderColor": "rgba(0,0,0,0)",
+									"borderWidth": 0,
+									"fontSize": 13,
+									"fontColor": "#666666",
+									"lineHeight": 11,
+									"hiddenColor": "#CECECE",
+									"itemGap": 10
+								},
+								"extra": {
+									"line": {
+										"type": "straight",
+										"width": 2
+									},
+									"tooltip": {
+										"showBox": true,
+										"showArrow": true,
+										"showCategory": false,
+										"borderWidth": 0,
+										"borderRadius": 0,
+										"borderColor": "#000000",
+										"borderOpacity": 0.7,
+										"bgColor": "#000000",
+										"bgOpacity": 0.7,
+										"gridType": "dash",
+										"dashLength": 4,
+										"gridColor": "#22C572",
+										"fontColor": "#FFFFFF",
+										"splitLine": true,
+										"horizentalLine": false,
+										"xAxisLabel": false,
+										"yAxisLabel": false,
+										"labelBgColor": "#FFFFFF",
+										"labelBgOpacity": 0.7,
+										"labelFontColor": "#666666"
+									},
+									"markLine": {
+										"type": "solid",
+										"dashLength": 4,
+										"data": []
+									}
+								}
+							}
+
+						} else if (i == 9) {
+							for (let k = 0; k < res.data.data[i].biViewInfoList.length; k++) {
+								var obj = res.data.data[i].biViewInfoList[k]
+								// obj.startName = obj.name.split('→')[0].substring(0, 5) + '...'
+								obj.startName = obj.name.split('→')[0]
+								obj.endName = obj.name.split('→')[1]
+							}
+							this.ztList = res.data.data[i].biViewInfoList
+							// this.prizeScroll();
 						}
 					}
 					this.chartlist = _list
-
+					this.scroll()
+					uni.hideLoading()
 				})
 			},
-			getdata(e) {
+			scroll() {
+				let _scroll = 0
+				let that = this
+				let _outHeight = ''
+				let _inHeight = ''
+				let obj = uni.createSelectorQuery().select('.content7')
+				obj.boundingClientRect(function(data) { // data - 各种参数
+					console.log(data)
+					_outHeight = data.height
+				}).exec()
+				setTimeout(function() {
+					let obj1 = uni.createSelectorQuery().select('.scroll')
+					obj1.boundingClientRect(function(data) { // data - 各种参数
+						console.log(data)
+						_inHeight = data.height
+					}).exec()
+					that.carInterval = setInterval(function() {
+						_scroll++
+						console.log(_scroll)
+						if (_scroll < _inHeight - _outHeight) {
+							that.$refs.scroll.$el.style.top = '-' + _scroll + 'px'
+						} else {
+							_scroll = 0
+						}
+					}, 50)
+
+				}, 0)
+
+			},
+			confirm(e) {
 				console.log(e)
+				this.nowDate = e[0].label + e[1].label
+				let _year = e[0].label.substring(0, 4)
+
+				if (e[1].label != '全年') {
+					this.seachMoth = _year + '-' + e[1].value
+				} else {
+					this.seachMoth = _year
+				}
+				this.init()
+			},
+			dateClick() {
+				this.showDate = true
+			},
+			typeClick(index) {
+				this.typeSelect = index
+				console.log(index)
+			},
+			htClick(index) {
+				// this.itemSelect = index
+				this.contractSelect = index
 			}
 		}
 	}
 </script>
 
+<style scoped lang="scss">
+	.title {
+		font-size: 32rpx;
+		font-weight: 400;
+		color: #343434;
+	}
 
+	.content-wrap {
+		background: white;
+		margin: 0 20rpx;
+		border-radius: 20rpx;
+		padding: 20rpx;
+	}
 
-<style scoped lang="scss">
-	.map {
-		top: 90rpx;
-		height: 60vh;
-		width: 100%;
-		border: 0;
+	.u-line {
+		margin: 20rpx 0 !important;
 	}
 
-	.title {
-		background: black;
-		color: white;
-		text-align: center;
-		font-size: 1.25rem;
-		padding: 0.625rem;
+	.line-chart {
+		height: 200px;
 	}
 
-	.content {
-		background: black;
-		padding-bottom: 100rpx;
+	.content1 {
+		background: #2E303A;
+		padding: 0 20rpx 180rpx 20rpx;
+
+		.row2 {
+			display: flex;
+			justify-content: space-between;
+			color: white;
+			font-size: 32rpx;
+			align-items: center;
+			color: #FFFFFF;
+
+			.icon {
+				margin: 0 10rpx;
+			}
+
+			.right {
+				display: flex;
+				font-size: 26rpx;
+
+				.type-style {
+					margin-left: 38rpx;
+					padding: 6rpx 16rpx;
+					border-radius: 10rpx;
+					color: #A6A6A6;
+				}
+
+				.type-bgc {
+					background: rgba(255, 255, 255, 0.3);
+					color: white;
+				}
+			}
+		}
+
+		.row3 {
+			.title {
+				font-size: 26rpx;
+				font-weight: 400;
+				color: #C5C5C5;
+				margin: 35rpx 0 20rpx 0;
+			}
+
+			.number {
+				font-size: 32rpx;
+				font-weight: 400;
+				color: #E2C4A1;
+			}
+		}
 	}
 
-	.charts-box {
-		// background: black;
+	.move-content {
 		position: relative;
-		// top: 70vh;
+		top: -136rpx;
 	}
 
-	.content2 .row,
-	.content4 .row {
-		display: flex;
-		justify-content: space-around;
-		background: #24262d;
-		padding: 40rpx 20rpx;
+	.content2 {
+		.row1 {
+			display: flex;
+			justify-content: space-between;
+
+			.left {}
+
+			.right {
+				display: flex;
+
+				.item {
+					background: #F1F1F1;
+					border-radius: 30px;
+					margin-left: 20rpx;
+					font-size: 2rpx;
+					color: #333333;
+					padding: 13rpx 27rpx;
+				}
+
+				.item-Select {
+					background-color: black;
+					color: white;
+				}
+			}
+		}
+
+		.row2,
+		.row3,
+		.row4 {
+			.top {
+				font-size: 26rpx;
+				color: #929292;
+				margin: 0;
+			}
+
+			.bottom {
+				display: flex;
+				align-items: center;
+				margin: 10rpx;
+
+				.left {
+					margin-left: 20rpx;
+
+					image {
+						width: 45rpx;
+						height: 45rpx;
+					}
+				}
+
+				.right {
+					width: 100%;
+					padding-left: 20rpx;
+
+					.top {
+						display: flex;
+						justify-content: space-between;
+						width: 100%;
+						margin-top: 10px;
+
+						.left,
+						.right-number {
+							display: flex;
+							align-items: center;
+							font-size: 26rpx;
+							color: #343434;
 
-		.item-top,
-		.item-bottom {
-			color: #d5d5d5;
+							.number {
+								font-size: 26rpx;
+								font-weight: 400;
+								color: #929292;
+								margin-left: 10rpx;
+							}
+						}
+					}
+
+					.bottom {
+						margin: 30rpx 0 30rpx 20rpx;
+					}
+				}
+			}
 		}
+	}
 
-		.item-bottom {
+	.content3,
+	.content4,
+	.content5,
+	.content6 {
+		margin-top: 20rpx;
+	}
+
+	.content5 {
+
+		.row1,
+		.row2 {
 			display: flex;
+			justify-content: space-between;
 			align-items: center;
+			margin: 40rpx 0;
+
+			.left {
+				display: flex;
+				align-items: center;
+
+				.text {
+					font-size: 28rpx;
+					font-weight: 400;
+					color: #707575;
+					margin-left: 20rpx;
+				}
+			}
+
+			.right {
+				font-size: 34rpx;
+				font-weight: 500;
+				color: #333333;
+			}
+
+			image {
+				width: 54rpx;
+				height: 54rpx;
+			}
 		}
 	}
 
-	.bottom-tip {
-		position: absolute;
-		z-index: 11;
-		color: #8c8c8d;
-		right: 10px;
-		bottom: 10px;
+	.content6 {
+		.map {
+			border: 0;
+			width: 100%;
+			height: 500rpx;
+		}
 	}
 
-	.title-margin {
-		bottom: 120rpx;
+	.content7 {
+		position: relative;
+		overflow: hidden;
+		height: 400rpx;
+		margin-top: 20rpx;
+
+		.scroll {
+			position: absolute;
+			width: 100%;
+		}
+
+		.row1 {
+			background: #FAFAFA;
+			display: flex;
+			align-items: center;
+			justify-content: space-between;
+			margin: 20rpx;
+			padding: 20rpx;
+			color: #707575;
+
+			.point {
+				width: 15rpx;
+				height: 15rpx;
+				border-radius: 50%;
+				background: #22C572;
+				margin-right: 10px;
+			}
+
+			.zt {
+				display: flex;
+				align-items: center;
+			}
+		}
 	}
 </style>

+ 438 - 0
pages/user/report2.vue

@@ -0,0 +1,438 @@
+<template>
+	<view class="content">
+		<view class="title">库点流向分布</view>
+		<iframe id="mainIframe" ref="mainIframe" name="mainIframe" :src="url" class="map"></iframe>
+		<view @click='skipContent(index)' class="charts-box" v-for="(item,index) in chartlist" :key='index'>
+			<div class="bottom-tip" v-if='index==0||index==3'>统计单位:吨</div>
+			<div class="bottom-tip" v-if='index!=0&&index!=3' :class='index==2?"title-margin":""'>统计单位:元</div>
+			<view v-if="index==0" class="title">采购合同完成进度</view>
+			<qiun-data-charts type="ring" :opts='item.ringoptions' :chartData="item.Ring" background="#24262D" />
+			<view v-if="index==2" class="title">销售合同完成进度</view>
+		</view>
+		<view class="content2">
+			<view class="title">在途信息统计</view>
+			<view class="row">
+				<view class="item">
+					<view class="item-top">在途车辆</view>
+					<view class="item-bottom">
+						<view style="color: #50cad4;font-size: 50rpx;">{{carCount1}} </view>台
+					</view>
+				</view>
+				<view class="item">
+					<view class="item-top">装车车辆</view>
+					<view class="item-bottom">
+						<view style="color: rgb(255, 165, 35);font-size: 50rpx;">{{carCount2}}</view>台
+					</view>
+				</view>
+				<view class="item">
+					<view class="item-top">卸货车辆</view>
+					<view class="item-bottom">
+						<view style="color: rgb(36, 131, 255);font-size: 50rpx;">{{carCount3}}</view>台
+					</view>
+				</view>
+			</view>
+		</view>
+		<view class="content3">
+			<view class="title">粮食总储量</view>
+			<qiun-data-charts type="column" :chartData="chartData" :opts='ringoptions' background="none" />
+		</view>
+		<view class="content4">
+			<view class="title">库存成本</view>
+			<view class="row">
+				<view class="item">
+					<view class="item-top">总库存量</view>
+					<view class="item-bottom">
+						<view style="color: #50cad4;font-size: 50rpx;">{{inventoryCost}}</view>吨
+					</view>
+				</view>
+				<view class="item">
+					<view class="item-top">库存价值</view>
+					<view class="item-bottom">
+						<view style="color: rgb(255, 165, 35);font-size: 50rpx;">{{inventoryValue}}</view>元
+					</view>
+				</view>
+
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				chartlist: [],
+				carCount1: '',
+				carCount2: '',
+				carCount3: '',
+				inventoryCost: '',
+				inventoryValue: '',
+				ZChart: {},
+				// url:"https://datav.aliyuncs.com/share/235518097ffd673bc1eb05011b9a02b6",
+				url: '',
+				flag: true,
+				chartData: {},
+				ringoptions: {},
+			}
+		},
+		onLoad: function(option) {
+			uni.showLoading({
+				title: "加载中",
+				mask: true
+			})
+			this.url = "https://liangxin.zthymaoyi.com/map.html?id="+uni.getStorageSync('pcUserInfo').compId
+			this.init()
+			uni.onWindowResize((res) => {
+			    console.log('变化后的窗口宽度=' + res.size.windowWidth)
+			    console.log('变化后的窗口高度=' + res.size.windowHeight)
+				this.init()
+			})
+		},
+		methods: {
+			skipContent(index){
+				console.log(index)
+				if(index<2){
+					uni.navigateTo({
+						url:'/pages/user/contractLook/purchaseContract'
+					})
+				}else if(index>2&&index<6){
+					uni.navigateTo({
+						url:'/pages/user/contractLook/salesContract'
+					})
+				}
+			},
+			init() {
+				this.$api.doRequest('get', '/biInfoController/selectBiInfo?compId='+uni.getStorageSync('pcUserInfo').compId).then(res => {
+					console.log(res)
+					uni.hideLoading()
+					let _list = []
+					for (let i = 0; i < res.data.data.length; i++) {
+						let _obj = {}
+						let _color = []
+						let _title = ""
+						let _subtitle = ''
+						let _name = ''
+						let _count = ''
+						let _data = []
+						switch (i) {
+							case 0:
+								_color = ['#75d1f4', '#3a3b40'];
+								_title = '总量合计'
+								_data = [{
+									name: '已完成量',
+									data: Number(res.data.data[i].biViewInfoList[0].count)
+								}, {
+									name: '待完成量',
+									data: Number(res.data.data[i].biViewInfoList[1].count)
+								}]
+								break;
+							case 1:
+								_color = ['#247ef4', '#3a3b40'];
+								_title = '开票合计'
+								_data = [{
+									name: '已开票',
+									data: Number(res.data.data[i].biViewInfoList[0].count)
+								}, {
+									name: '待开票',
+									data: Number(res.data.data[i].biViewInfoList[1].count)
+								}]
+								break;
+							case 2:
+								_color = ['#f49f23', '#3a3b40'];
+								_title = '付款合计'
+								_data = [{
+									name: '已付款',
+									data: Number(res.data.data[i].biViewInfoList[0].count)
+								}, {
+									name: '待付款',
+									data: Number(res.data.data[i].biViewInfoList[1].count)
+								}]
+								break;
+							case 3:
+								_color = ['#75d1f4', '#3a3b40'];
+								_title = '总量合计'
+								_data = [{
+									name: '已完成量',
+									data: Number(res.data.data[i].biViewInfoList[0].count)
+								}, {
+									name: '待完成量',
+									data: Number(res.data.data[i].biViewInfoList[1].count)
+								}]
+								break;
+							case 4:
+								_color = ['#247ef4', '#3a3b40'];
+								_title = '开票合计'
+								_data = [{
+									name: '已开票',
+									data: Number(res.data.data[i].biViewInfoList[0].count)
+								}, {
+									name: '待开票',
+									data: Number(res.data.data[i].biViewInfoList[1].count)
+								}]
+								break;
+							case 5:
+								_color = ['#f49f23', '#3a3b40'];
+								_title = '付款合计'
+								_data = [{
+									name: '待付款',
+									data: Number(res.data.data[i].biViewInfoList[0].count)
+								}, {
+									name: '待完成量',
+									data: Number(res.data.data[i].biViewInfoList[1].count)
+								}]
+								break;
+						}
+
+						if (i < 6) {
+							_subtitle = Number(Number(res.data.data[i].total).toFixed(0))
+							_obj.ringoptions = {
+									"type": "ring",
+									"animation": true,
+									"timing": "easeOut",
+									"duration": 1000,
+									"color": _color,
+									"fontSize": 13,
+									"fontColor": "#666666",
+									"legend": {
+										"show": true,
+										"position": "top",
+										"padding": 5,
+										"margin": 5,
+										"backgroundColor": "rgba(0,0,0,0)",
+										"borderColor": "rgba(0,0,0,0)",
+										"fontSize": 13,
+										"fontColor": "#CECECE",
+										"hiddenColor": "#CECECE",
+									},
+									"title": {
+										"name": _title,
+										"fontSize": 15,
+										"color": "#fff",
+									},
+									"subtitle": {
+										"name": _subtitle,
+										"fontSize": 20,
+										"color": "#fff",
+									},
+									"extra": {
+										"ring": {
+											"ringWidth": 15,
+											"centerColor": "#24262D",
+											"activeOpacity": 0.5,
+											"activeRadius": 10,
+											"borderColor": "#24262D",
+											"linearType": "none"
+										},
+									}
+								},
+								_obj.Ring = {
+									"series": _data
+								}
+
+							_list.push(_obj)
+						} else if (i == 6) {
+							this.carCount1 = res.data.data[i].biViewInfoList[0].count
+							this.carCount2 = res.data.data[i].biViewInfoList[1].count
+							this.carCount3 = res.data.data[i].biViewInfoList[2].count
+						} else if (i == 7) {
+							this.inventoryCost =Number(res.data.data[i].biViewInfoList[0].count)  
+							this.inventoryValue =Number(res.data.data[i].biViewInfoList[1].count) 
+						} else if (i == 8) {
+
+							let _x = []
+							let _y = []
+							for (let k = 0; k < res.data.data[i].biViewInfoList.length; k++) {
+								_x.push(res.data.data[i].biViewInfoList[k].name)
+								_y.push( Number(res.data.data[i].biViewInfoList[k].count))
+							}
+							this.chartData = {
+								categories: _x,
+								series: [{
+									"name": '储量',
+									"data": _y
+								}]
+							}
+							this.ringoptions = {
+								"type": "column",
+								"canvasId": "",
+								"canvas2d": false,
+								"background": "none",
+								"animation": true,
+								"timing": "easeOut",
+								"duration": 1000,
+								"padding": [
+									15,
+									15,
+									20,
+									5
+								],
+								"rotate": false,
+								"errorReload": true,
+								"fontSize": 13,
+								"fontColor": "#666666",
+								"enableScroll": false,
+								"touchMoveLimit": 60,
+								"enableMarkLine": false,
+								"dataLabel": true,
+								"dataPointShape": true,
+								"dataPointShapeType": "solid",
+								"legend": {
+									"show": false,
+								},
+								"xAxis": {
+									"disabled": false,
+									"axisLine": true,
+									"axisLineColor": "#CCCCCC",
+									"calibration": false,
+									"fontColor": "#666666",
+									"fontSize": 13,
+									"itemCount": 5,
+									"boundaryGap": "center",
+									"disableGrid": true,
+									"gridColor": "#CCCCCC",
+									"gridType": "solid",
+									"dashLength": 4,
+									"gridEval": 1,
+									"scrollShow": false,
+									"scrollAlign": "left",
+									"scrollColor": "#A6A6A6",
+									"scrollBackgroundColor": "#EFEBEF",
+									"rotateLabel": true,
+								},
+								"yAxis": {
+									"disabled": false,
+									"disableGrid": false,
+									"splitNumber": 5,
+									"gridType": "solid",
+									"dashLength": 8,
+									"gridColor": "#CCCCCC",
+									"padding": 10,
+									"showTitle": false,
+									"data": [{
+										"type": "value",
+										"position": "left",
+										"disabled": false,
+										"axisLine": false,
+										"axisLineColor": "#CCCCCC",
+										"calibration": false,
+										"fontColor": "#666666",
+										"fontSize": 13,
+										"textAlign": "right",
+										"titleFontSize": 13,
+										"titleFontColor": "#666666",
+									}]
+								},
+								"extra": {
+									"column": {
+										"type": "group",
+										"width": 30,
+										"seriesGap": 2,
+										"categoryGap": 3,
+										"barBorderCircle": false,
+							   "linearType": "none",
+										"linearOpacity": 1,
+										"colorStop": 0,
+										"meterBorder": 1,
+										"meterFillColor": "#FFFFFF",
+										"activeBgColor": "#000000",
+										"activeBgOpacity": 0.08,
+										"meterBorde": 1
+									},
+									"tooltip": {
+										"showBox": true,
+										"showArrow": true,
+										"showCategory": false,
+										"borderWidth": 0,
+										"borderRadius": 0,
+										"borderColor": "#000000",
+										"borderOpacity": 0.7,
+										"bgColor": "#000000",
+										"bgOpacity": 0.7,
+										"gridType": "solid",
+										"dashLength": 4,
+										"gridColor": "#CCCCCC",
+										"fontColor": "#FFFFFF",
+										"splitLine": true,
+										"horizentalLine": false,
+										"xAxisLabel": false,
+										"yAxisLabel": false,
+										"labelBgColor": "#FFFFFF",
+										"labelBgOpacity": 0.7,
+										"labelFontColor": "#666666"
+									}
+								}
+							}
+						} else if (i == 9) {
+
+						}
+					}
+					this.chartlist = _list
+
+				})
+			},
+			getdata(e) {
+				console.log(e)
+			}
+		}
+	}
+</script>
+
+
+
+<style scoped lang="scss">
+	.map {
+		top: 90rpx;
+		height: 60vh;
+		width: 100%;
+		border: 0;
+	}
+
+	.title {
+		background: black;
+		color: white;
+		text-align: center;
+		font-size: 1.25rem;
+		padding: 0.625rem;
+	}
+
+	.content {
+		background: black;
+		padding-bottom: 100rpx;
+	}
+
+	.charts-box {
+		// background: black;
+		position: relative;
+		// top: 70vh;
+	}
+
+	.content2 .row,
+	.content4 .row {
+		display: flex;
+		justify-content: space-around;
+		background: #24262d;
+		padding: 40rpx 20rpx;
+
+		.item-top,
+		.item-bottom {
+			color: #d5d5d5;
+		}
+
+		.item-bottom {
+			display: flex;
+			align-items: center;
+		}
+	}
+
+	.bottom-tip {
+		position: absolute;
+		z-index: 11;
+		color: #8c8c8d;
+		right: 10px;
+		bottom: 10px;
+	}
+
+	.title-margin {
+		bottom: 120rpx;
+	}
+</style>

+ 12 - 2
pages/user/setUp.vue

@@ -29,12 +29,18 @@
 				</view>
 				<image src="../../static/img/myimg/gengduo1@3x.png" class="arrow"></image>
 			</view>
-			<view class='cu-item' @click='clearStorage'>
+			<view class='cu-item' style='margin-bottom:10px;' @click='clearStorage'>
 				<view>
 					<text>清除缓存</text>
 				</view>
 				<image src="../../static/img/myimg/gengduo1@3x.png" class="arrow"></image>
 			</view>
+			<view class='cu-item' style='margin-bottom:10px;' @click='UpdataPassword'>
+				<view>
+					<text>修改密码</text>
+				</view>
+				<image src="../../static/img/myimg/gengduo1@3x.png" class="arrow"></image>
+			</view>
 		</view>
 		<view class='exitloginwrap'>
 			<button @click='logout()' class='exitlogin'>退出登录</button>
@@ -75,6 +81,11 @@
 		},
 		onLoad() {},
 		methods: {
+			UpdataPassword(){
+				uni.navigateTo({
+					url: `/pages/public/reset?phone=${this.userInfo.phone}`
+				})
+			},
 			clearStorage(){
 			let that = this
 				uni.clearStorage({
@@ -103,7 +114,6 @@
 						uni.navigateTo({
 							url: `/pages/public/login`
 						})
-				
 			},
 			getList() {
 				this.userInfo = uni.getStorageSync('userInfo')

BIN
static/img/home.png


BIN
static/img/homeHL.png


BIN
static/img/report/dingwei.png


BIN
static/img/report/hetongzongliang.png


BIN
static/img/report/jiantou.png


BIN
static/img/report/jiazhi.png


BIN
static/img/report/jiesuan.png


BIN
static/img/report/kaipiao.png


BIN
static/img/report/kuncunliang.png


BIN
static/img/user.png


BIN
static/img/userHL.png


+ 324 - 0
static/map_0110.html

@@ -0,0 +1,324 @@
+<!DOCTYPE html>
+<html lang="en">
+
+	<head>
+		<meta charset="UTF-8">
+		<meta name="viewport" content="width=device-width, initial-scale=1.0">
+		<title>易粮易运数据分析平台</title>
+		<style>
+			html,
+			body,
+			#map {
+				width: 100%;
+				height: 100%;
+				margin: 0;
+				padding: 0;
+				position: relative;
+			}
+
+			.title {
+				background: black;
+				color: white;
+				text-align: center;
+				font-size: 1.25rem;
+				padding: 0.625rem;
+			}
+
+			.amap-marker {
+				opacity: 0;
+			}
+
+			.amap-marker-label {
+				background: rgba(125, 197, 255, 0.2);
+				/* background:red; */
+				z-index: 1158;
+				border: 0px solid rgba(125, 197, 255, 0.2);
+				color: #eee;
+				padding: 40px;
+				font-size: 12px;
+				font-weight: 500;
+				border-radius: 50%;
+			}
+
+			.progressBar {
+				width: 50%;
+				height: 25px;
+				display: block;
+				top: 0;
+				left: 0;
+				bottom: 0;
+				right: 0;
+				margin: auto;
+				padding: 10px 10px 10px 10px;
+				position: absolute;
+				z-index: 2001;
+				background: rgb(102, 102, 102);
+				color: white;
+				border-radius: 5px;
+			}
+			}
+		</style>
+	</head>
+
+	<body>
+		<div id="map"></div>
+		<div id="progressBar" class="progressBar">地图数据加载中...</div>
+		<script
+			src="https://webapi.amap.com/maps?v=2.0&key=211dd6f989e719022aaf47ddb0659c47&plugin=AMap.Scale,AMap.ToolBar,AMap.Geocoder,AMap.Geolocation,Geolocation">
+		</script>
+		<script src="https://webapi.amap.com/loca?v=2.0.0&key=211dd6f989e719022aaf47ddb0659c47"></script>
+		<script src="https://taohaoliang.oss-cn-beijing.aliyuncs.com/app/jquery.min.js"></script>
+		<script>
+			var markerList = []
+			var mapPointData = {}
+			var mapLineData = {}
+			var timer = ''
+			var compId = getUrlParam("id")
+			var seachMoth = getUrlParam("seachMoth")
+			$.ajax({
+				type: "GET",
+				contentType: "application/json;charset=UTF-8",
+				url: "http://api1.eliangeyun.com/biInfoController/selectBiInfo?compId=" + compId+ '&seachMoth=' + seachMoth,
+				success: function(result) {
+					console.log("result", result);
+					$("#progressBar").hide();
+					var listData = result.data[9];
+					console.log('收到vue的数据:', listData);
+					let _features1 = []
+					let _features2 = []
+
+					for (let i = 0; i < listData.biViewInfoList.length; i++) {
+						let _data = listData.biViewInfoList[i]
+						let _coordinates1 = []
+						let _coordinates11 = []
+						let _position1 = _data.endPlace ? _data.endPlace.split(',') : []
+						_coordinates1.push(Number(_position1[1]))
+						_coordinates1.push(Number(_position1[0]))
+						let _obj1 = {
+							"type": "Feature",
+							"properties": {
+								"type": i,
+							},
+							"geometry": {
+								"type": "Point",
+								"coordinates": _coordinates1
+							}
+						}
+						let _position11 = _data.startPlace ? _data.startPlace.split(',') : []
+						_coordinates11.push(Number(_position11[1]))
+						_coordinates11.push(Number(_position11[0]))
+						let _obj11 = {
+							"type": "Feature",
+							"properties": {
+								"type": i,
+							},
+							"geometry": {
+								"type": "Point",
+								"coordinates": _coordinates11
+							}
+						}
+						_features1.push(_obj1)
+						_features1.push(_obj11)
+						let _coordinates2 = []
+						let _start = []
+						let _end = []
+						let _marker = {}
+						let _positionStart = _data.startPlace ? _data.startPlace.split(',') : []
+						_start.push(Number(_positionStart[1]))
+
+						_start.push(Number(_positionStart[0]))
+						let _positionEnd = _data.endPlace ? _data.endPlace.split(',') : []
+						_end.push(Number(_positionEnd[1]))
+						_end.push(Number(_positionEnd[0]))
+						_coordinates2.push(_start)
+						_coordinates2.push(_end)
+						_marker.iconSrc = _start
+						_marker.name = _data.name
+						markerList.push(_marker)
+						let _obj2 = {
+							"type": "Feature",
+							"properties": {
+
+							},
+							"geometry": {
+								"type": "LineString",
+								"coordinates": _coordinates2
+							}
+						}
+						_features2.push(_obj2)
+					}
+					mapPointData = {
+						"type": "FeatureCollection",
+						"features": _features1
+					}
+					mapLineData = {
+						"type": "FeatureCollection",
+						"features": _features2
+					}
+					console.log("mapPointData", mapPointData)
+					console.log("mapPointData", mapLineData)
+					var map = new AMap.Map('map', {
+						zoom: 3,
+						showLabel: true,
+						viewMode: '3D',
+						pitch: 0, //地圖仰角
+						center: [101.991, 35.346],
+						mapStyle: 'amap://styles/c0ed286f357b7f4c7312476637a7ab04',
+						buildingAnimation: false,
+						showIndoorMap: false,
+					});
+
+					var loca = new Loca.Container({
+						map,
+					});
+					for (let i = 0; i < markerList.length; i++) {
+						// 构造点标记
+						if (markerList[i].iconSrc[0] && markerList[i].iconSrc[1]) {
+							var marker = new AMap.Marker({
+								position: markerList[i].iconSrc,
+								anchor: 'bottom-center',
+								icon: new AMap.Icon({
+									image: 'https://taohaoliang.oss-cn-beijing.aliyuncs.com/db5971c17f0930e0d5ee08966e08129.png',
+									size: new AMap.Size(20, 35), //图标所处区域大小
+									imageSize: new AMap.Size(20, 35) //图标大小
+								}),
+							})
+							map.add(marker);
+							marker.setLabel({
+								offset: new AMap.Pixel(0, 0), //设置文本标注偏移量
+								// content: "<div class = 'maker-item'>" + markerList[i].name +
+								// 	"</div>", //设置文本标注内容
+								content: "<div class = 'maker-item'></div>", //设置文本标注内容
+								direction: 'center' //设置文本标注方位
+
+							});
+						}
+					}
+					// 定时刷新动画
+					let _markerDom = document.getElementsByClassName('amap-marker')
+
+					let _index = 0
+					this.timer = setInterval(function() {
+						_markerDom[_index].style.opacity = 1
+						_markerDom[_index].style.transition = '2s'
+						var elseLi = _markerDom;
+						for (var i = 0; i < elseLi.length; i++) {
+							if (elseLi[i] !== _markerDom[_index]) { //判断是否是ele节点,是否与触发事件的节点相同
+								elseLi[i].style.opacity = 0
+								_markerDom[_index].style.transition = '2s'
+							}
+						}
+						_index++;
+						if (_index == _markerDom.length) _index = 0
+					}, 3000)
+					// 呼吸点
+					var scatter = new Loca.ScatterLayer({
+						loca,
+						zIndex: 10,
+						opacity: 0.6,
+						visible: true,
+						zooms: [2, 22],
+					});
+					var pointGeo = new Loca.GeoJSONSource({
+						// url: 'https://a.amap.com/Loca/static/loca-v2/demos/mock_data/pulselink-china-city-point.json',
+						data: mapPointData
+					});
+					scatter.setSource(pointGeo);
+					scatter.setStyle({
+						unit: 'meter',
+						size: [100000, 100000],
+						borderWidth: 0,
+						texture: 'https://taohaoliang.oss-cn-beijing.aliyuncs.com/2399138c9ca1cb72f3e28a187c8914b.png',
+						duration: 2000,
+						animate: true,
+					});
+					loca.add(scatter);
+
+					console.log(Loca)
+					// 弧线
+					var pulseLink = new Loca.PulseLinkLayer({
+						// loca,
+						zIndex: 10,
+						opacity: 1,
+						visible: true,
+						zooms: [2, 22],
+						depth: true,
+					});
+
+
+					var geo = new Loca.GeoJSONSource({
+						// url: 'https://a.amap.com/Loca/static/loca-v2/demos/mock_data/data-line-out.json',
+						data: mapLineData
+					});
+
+
+					pulseLink.setSource(geo);
+					pulseLink.setStyle({
+						unit: 'meter',
+						dash: [40000, 10000, 40000, 10000],
+						lineWidth: function() {
+							return [3000, 2000];
+						},
+						height: function(index, feat) {
+							return feat.distance / 3 + 10;
+						},
+						// altitude: 1000,
+						smoothSteps: 30,
+						speed: function(index, prop) {
+							return 1000 + Math.random() * 200000;
+						},
+						flowLength: 100000,
+						lineColors: function(index, feat) {
+							return ['rgba(1, 192, 160, 1)'];
+						},
+						maxHeightScale: 0.3, // 弧顶位置比例
+						headColor: 'rgb(36, 131, 255)',
+						trailColor: 'rgba(255, 255,0,0)',
+					});
+					loca.add(pulseLink);
+					loca.animate.start();
+
+
+					// 点击事件处理
+					var clickInfo = new AMap.Marker({
+						anchor: 'bottom-center',
+						position: [116.396923, 39.918203, 0],
+					});
+					clickInfo.setMap(map);
+					clickInfo.hide();
+					map.on("click", function(e) {
+						var feat = pulseLink.queryFeature(e.pixel.toArray());
+
+						if (feat) {
+							clickInfo.show();
+							var props = feat.properties;
+							clickInfo.setPosition(feat.coordinates[1]);
+							clickInfo.setContent(
+								'<div style="text-align: center; height: 20px; width: 150px; color:#fff; font-size: 14px;">' +
+								'速率: ' + feat.properties['ratio'] +
+								'</div>'
+							);
+						} else {
+							clickInfo.hide();
+						}
+					});
+
+				},
+				//请求失败,包含具体的错误信息
+				error: function(e) {
+					console.log(e);
+					console.log(e.status);
+					console.log(e.responseText);
+				}
+			});
+
+			function getUrlParam(name) {
+				var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); //构造一个含有目标参数的正则表达式对象
+				var r = window.location.search.substr(1).match(reg); //匹配目标参数
+				if (r != null) return unescape(r[2]);
+				return null; //返回参数值
+			}
+		</script>
+	</body>
+
+</html>