zhangyun 5 年之前
父節點
當前提交
9a87d102dc
共有 31 個文件被更改,包括 1779 次插入9 次删除
  1. 0 1
      App.vue
  2. 1 0
      main.js
  3. 94 5
      pages.json
  4. 323 0
      pages/afterSale/addafter.vue
  5. 246 0
      pages/afterSale/index.vue
  6. 240 0
      pages/afterSale/search.vue
  7. 2 2
      pages/equipMange/index/addusers.vue
  8. 203 0
      pages/expertDiagnosis/exchangeShare.vue
  9. 161 0
      pages/expertDiagnosis/index.vue
  10. 97 0
      pages/expertDiagnosis/introduce.vue
  11. 233 0
      pages/expertDiagnosis/particulars.vue
  12. 88 0
      pages/expertDiagnosis/postmessage.vue
  13. 90 0
      pages/expertDiagnosis/wormcase.vue
  14. 二進制
      static/image/afterSale/1.png
  15. 二進制
      static/image/afterSale/2.png
  16. 二進制
      static/image/afterSale/3.png
  17. 二進制
      static/image/afterSale/4.png
  18. 二進制
      static/image/afterSale/5.png
  19. 二進制
      static/image/afterSale/5d9b8db91f11175aa5277fef40581ab.png
  20. 二進制
      static/image/afterSale/6.png
  21. 二進制
      static/image/afterSale/80314eaa07c32e9c76537a8a8224130.png
  22. 二進制
      static/image/afterSale/dcd7147f4b15d00c5c90006738b8453.png
  23. 二進制
      static/image/afterSale/eee1e84bb85f6f6ff5c5866a3a42779.png
  24. 二進制
      static/image/expertDiagnosis/05571341dbb0771b23d0b271764ac2e.png
  25. 二進制
      static/image/expertDiagnosis/6612b1293fd1f45dd7ce6269a954999.png
  26. 二進制
      static/image/expertDiagnosis/6940a11a251770f1b0d8b7b10ebdf9b.png
  27. 二進制
      static/image/expertDiagnosis/7f34f4eeba4d00819369cfa1b5ecce8.png
  28. 二進制
      static/image/expertDiagnosis/aa6a168b9fb72b62b687a2debc04a9f.png
  29. 二進制
      static/image/expertDiagnosis/d2014837228702eeceb762bc5302b3f.png
  30. 二進制
      static/image/expertDiagnosis/tianjiawenjian.png
  31. 1 1
      util/api.js

+ 0 - 1
App.vue

@@ -11,7 +11,6 @@
 		}
 	}
 </script>
-
 <style lang="scss">
 	/*每个页面公共css */
 	/*每个页面公共css */

+ 1 - 0
main.js

@@ -9,6 +9,7 @@ Vue.config.productionTip = false
 
 App.mpType = 'app'
 
+Vue.prototype.$imghost = 'http://static.yfpyx.com/projectimg' // 线上图片服务器路径常量
 
 Vue.filter('timeFormat',function(time){
 	function fun(a){

+ 94 - 5
pages.json

@@ -99,7 +99,7 @@
             "path" : "pages/equipMange/index/index",
             "style" :                                                                                    
             {
-                "navigationBarTitleText": "设备分配",
+                "navigationBarTitleText": "设备分配主页",
                 "enablePullDownRefresh": false,
 				"navigationStyle":"custom"
             }
@@ -109,7 +109,7 @@
 		    "path" : "pages/equipMange/index/addusers",
 		    "style" :                                                                                    
 		    {
-		        "navigationBarTitleText": "",
+		        "navigationBarTitleText": "增加用户",
 		        "enablePullDownRefresh": false,
 				"navigationStyle":"custom"
 		    }
@@ -119,7 +119,7 @@
             "path" : "pages/equipMange/index/useroperation",
             "style" :                                                                                    
             {
-                "navigationBarTitleText": "",
+                "navigationBarTitleText": "用户详情",
                 "enablePullDownRefresh": false,
 				"navigationStyle":"custom"
             }
@@ -129,7 +129,7 @@
             "path" : "pages/equipMange/index/changepasswold",
             "style" :                                                                                    
             {
-                "navigationBarTitleText": "",
+                "navigationBarTitleText": "更改密码",
                 "enablePullDownRefresh": false,
 				"navigationStyle":"custom"
             }
@@ -139,7 +139,7 @@
             "path" : "pages/equipMange/index/assignment",
             "style" :                                                                                    
             {
-                "navigationBarTitleText": "",
+                "navigationBarTitleText": "分配设备",
                 "enablePullDownRefresh": false,
 				"navigationStyle":"custom"
             }
@@ -172,6 +172,95 @@
             }
             
         }
+        ,{
+            "path" : "pages/expertDiagnosis/index",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "专家诊断",
+                "enablePullDownRefresh": false,
+				"navigationStyle":"custom"
+            }
+            
+        }
+        ,{
+            "path" : "pages/expertDiagnosis/wormcase",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "虫情百科",
+                "enablePullDownRefresh": false,
+				"navigationStyle":"custom"
+            }
+            
+        },{
+            "path" : "pages/expertDiagnosis/exchangeShare",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "交流圈",
+                "enablePullDownRefresh": false,
+				"navigationStyle":"custom"
+            }
+            
+        }
+        ,{
+            "path" : "pages/expertDiagnosis/particulars",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "交流圈详情",
+                "enablePullDownRefresh": false,
+				"navigationStyle":"custom"
+            }
+            
+        }
+        ,{
+            "path" : "pages/expertDiagnosis/postmessage",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "发帖",
+                "enablePullDownRefresh": false,
+				"navigationStyle":"custom"
+            }
+            
+        }
+        ,{
+            "path" : "pages/afterSale/index",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "售后服务",
+                "enablePullDownRefresh": false,
+				"navigationStyle":"custom"
+            }
+            
+        }
+        ,{
+            "path" : "pages/afterSale/search",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "售后服务搜索",
+                "enablePullDownRefresh": false,
+				"navigationStyle":"custom"
+            }
+            
+        }
+        ,{
+            "path" : "pages/expertDiagnosis/introduce",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "病虫害介绍",
+                "enablePullDownRefresh": false,
+				"navigationStyle":"custom"
+            }
+            
+        }
+        ,{
+            "path" : "pages/afterSale/addafter",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "设备报修",
+                "enablePullDownRefresh": false,
+				"navigationStyle":"custom"
+            }
+            
+        }
     ],
 	"condition": { //模式配置,仅开发期间生效
 	    "current": 3, //当前激活的模式(list 的索引项)

+ 323 - 0
pages/afterSale/addafter.vue

@@ -0,0 +1,323 @@
+<template>
+	<view>
+		<view style="position: fixed;z-index: 100;">
+			<uni-nav-bar @clickLeft="clickLeft" left-icon="back" left-text="返回" title="设备报修"></uni-nav-bar>
+		</view>
+		<view class="addafter_con">
+			<view class="addafter_con_top">
+				<p>基本信息</p>
+				<input type="number" v-model="adddata.id" placeholder="请填写设备ID" placeholder-style="color: #62BF89;font-size:24rpx"
+				 @blur="addID" />
+				<input type="select" v-model="adddata.type" placeholder="请选择设备类型" placeholder-style="color: #62BF89;font-size:24rpx"
+				 @click="show = true" disabled />
+				<input type="text" v-model="adddata.name" placeholder="请填写联系人名称" placeholder-style="color: #62BF89;font-size:24rpx" />
+				<input type="number" v-model="adddata.phone" placeholder="请填写联系人电话" placeholder-style="color: #62BF89;font-size:24rpx"
+				 @blur="iphone" />
+				<input type="text" v-model="adddata.site" placeholder="请填写联系人地址" placeholder-style="color: #62BF89;font-size:24rpx" />
+				<u-action-sheet :list="actionSheetList" v-model="show" @click="actionSheetCallback"></u-action-sheet>
+			</view>
+			<view class="addafter_con_connect">
+				<image src="../../static/image/afterSale/5d9b8db91f11175aa5277fef40581ab.png" mode=""></image>
+				<image src="../../static/image/afterSale/5d9b8db91f11175aa5277fef40581ab.png" mode=""></image>
+			</view>
+			<view class="addafter_con_bot">
+				<p class="addafter_con_bot_title">保修详情</p>
+				<textarea v-model="adddata.text" placeholder="请描述设备问题" class="textarea" placeholder-style="color: #62BF89;font-size:26rpx" />
+				<p style="color: #808080;font-size: 24rpx;">{{adddata.text.length}}/140</p>
+				<view class="imgvideo">
+					<view class="imgvideo_img" v-for="(item,index) in 3">
+						<view @click="gainimg(index)">
+							<image src="../../static/image/afterSale/eee1e84bb85f6f6ff5c5866a3a42779.png" mode="" v-if="!uploadingTF[index]"></image>
+						</view>
+						<view class="uploading" v-if="uploadingTF[index]">
+							<u-icon name="close" class="delete" @click="deletes(index)"></u-icon>
+							<image :src="imageList[index]" mode="" class="uploading"></image>
+						</view>
+					</view>
+					<view class="imgvideo_video" v-for="(item,index) in 3">
+						<view @click="gainvideo(index)">
+							<image src="../../static/image/afterSale/80314eaa07c32e9c76537a8a8224130.png" mode="" v-if="!uploadingTF[index+3]"></image>
+						</view>
+						<view class="uploading" v-if="uploadingTF[index+3]">
+							<u-icon name="close" class="delete" @click="deletes(index+3)"></u-icon>
+							<video :src="selfList[index]" controls class="uploading"></video>
+						</view>
+					</view>
+				</view>
+				<button @click="btn" :disabled="btnisTorF">提 交</button>
+			</view>
+		</view>
+	</view>
+</template>
+<script>
+	export default {
+		data() {
+			return {
+				adddata:{//设备参数
+					id:'',
+					name:'',
+					phone:'',
+					text:'',
+					site:'',
+					type:'',
+					type_id:''
+				},
+				imageList:[],//图片链接
+				// postimageList:[],
+				uploadingTF:[false,false,false,false,false,false],//图片的删除
+				selfList:[],//视频链接
+				actionSheetList: [//设备选项
+					{
+						text: '杀虫灯'
+					},
+					{
+						text: '测报灯'
+					},
+					{
+						text: '智能性诱'
+					},
+					{
+						text: '环境检测'
+					},
+					{
+						text: '监控设备'
+					},
+					{
+						text: '孢子仪'
+					},
+					{
+						text: '性诱设备'
+					},
+				],
+				show:false,//选择器的显示
+				btnisTorF:false,
+				deviceid:false//设备号判断
+			}
+		},
+		methods: {
+			clickLeft(){//返回
+				uni.navigateTo({
+					url:"./index"
+				})
+			},
+			gainimg(index){//添加图片
+				uni.chooseImage({
+				    count: 1, //默认9
+				    sizeType: ['original', 'compressed'], //可以指定是原图还是压缩图,默认二者都有
+				    sourceType: ['album','camera'], //从相册选择
+				    success: (res)=> {
+						this.imageList[index]=res.tempFilePaths[0]
+						this.$forceUpdate() //强制刷新视图
+						this.uploadingTF[index]=true
+						// this.postimageList[index]=res.tempFilePaths[0].slice(res.tempFilePaths[0].indexOf(":")+1)
+						uni.getImageInfo({
+						    src: res.tempFilePaths[0],
+						    success:(image)=>{
+								console.log(image);
+						    }
+						});
+					}
+				});
+			},
+			gainvideo(index){//添加视频
+				uni.chooseVideo({
+				    count: 1,
+					mediaType:['video'],
+				    success:(res)=> {
+						console.log(res)
+						this.selfList[index]= res.tempFilePath;
+						this.$forceUpdate() //强制刷新视图
+						this.uploadingTF[index+3]=true
+				    }
+				});
+			},
+			deletes(index){//删除
+				this.uploadingTF[index]=false
+				this.$forceUpdate() //强制刷新视图
+			},
+			async getaddafter(data) {
+				const res = await this.$myRequest({
+					url: '/api/api_gateway?method=after_sale.after_sale_manage.aftersale_apply',
+					data:{
+						    device_id:data.id,
+						    d_type:data.type,
+						    errordesc:data.text,
+						    errorimg:data.imageList,
+						    addr:data.site,
+						    user:data.name,
+						    userphone:data.phone,
+						    is_pc:0
+					}
+				})
+			},
+			async getaddvideo(data) {
+				const res = await this.$myRequest({
+					url: '/api/api_gateway?method=after_sale.after_sale_manage.video_upload',
+					data:{
+						upload:data
+					}//after_sale.after_sale_manage.device_check
+				})
+			},
+			async getID(data) {
+				const res = await this.$myRequest({
+					url: '/api/api_gateway?method=after_sale.after_sale_manage.device_check',
+					data:{
+						device_id:data
+					}
+				})
+				if(res!=''){
+					this.deviceid=true
+				}else{
+					this.deviceid=false
+				}
+			},
+			btn(){//提交按钮
+				let obj ={}
+				obj.id=this.adddata.id
+				obj.type=this.adddata.type_id
+				obj.text=this.adddata.text
+				obj.imageList=JSON.stringify(this.imageList)
+				console.log(obj.imageList)
+				obj.site=this.adddata.site
+				obj.name=this.adddata.name
+				obj.phone=this.adddata.phone
+				// if(this.deviceid==false && this.adddata.type_id==''){
+				// 	uni.showToast({
+				// 	    title: '设备ID和设备类型不能为空',
+				// 	    duration: 2000,
+				// 		icon:'none'
+				// 	});
+				// }else{
+				// 	this.getaddafter(obj)
+				// 	if(this.selfList.length!=0){
+				// 		// this.getaddvideo(this.selfList)
+				// 	}
+				// }
+			},
+			actionSheetCallback(index) {//选择器选择
+				this.adddata.type = this.actionSheetList[index].text;
+				this.adddata.type_id=index+2
+			},
+			iphone(){//检测手机
+				if(!/^1[23456789]\d{9}$/.test(this.adddata.phone)){
+					uni.showToast({
+					    title: '手机号格式不正确',
+					    duration: 2000,
+						icon:'none'
+					});
+				}
+			},
+			addID(){
+				this.getID(this.adddata.id)
+			}
+		}
+	}
+</script>
+
+<style lang="scss">
+	.addafter_con{
+		width: 100%;
+		padding: 110rpx 0;
+		background-color: #71CD9A;
+		.addafter_con_top{
+			width: 90%;
+			margin: 0 auto;
+			background-color: #FFFFFF;
+			padding: 16rpx 30rpx 36rpx;
+			border-radius: 20rpx;
+			p{
+				text-align: center;
+				font-size: 30rpx;
+				color: #62BF89;
+			}
+			input{
+				margin-top: 20rpx;
+				background-color: #F1FAF5;
+				color: #62BF89;
+				font-size:26rpx;
+				padding: 8rpx 26rpx;
+				border-radius: 20rpx;
+			}
+		}
+		.addafter_con_connect{
+			width: 90%;
+			margin: -20rpx auto;
+			display: flex;
+			justify-content: space-between;
+			padding: 0 16rpx;
+			image{
+				width: 20rpx;
+				height: 60rpx;
+			}
+		}
+		.addafter_con_bot{
+			width: 90%;
+			margin: 0 auto;
+			background-color: #FFFFFF;
+			padding: 30rpx;
+			border-radius: 20rpx;
+			.addafter_con_bot_title{
+				text-align: center;
+				font-size: 30rpx;
+				color: #62BF89;
+			}
+			.textarea{
+				width: 94%;
+				height: 240rpx;
+				padding: 20rpx;
+				background-color: #F1FAF5;
+				margin-top: 20rpx;
+				font-size: 26rpx;
+				border-radius: 20rpx;
+				color: #62BF89;  
+			}
+		}
+		.imgvideo{
+			width: 100%;
+			margin-top: 20rpx;
+			background-color: #FFFFFF;
+			display: flex;
+			justify-content: space-around;
+			flex-wrap: wrap;
+			.imgvideo_img,.imgvideo_video{
+				width: 30%;
+				height: 160rpx;
+				border: 2rpx dashed #A3DABD;
+				text-align: center;
+				line-height: 160rpx;
+				margin-bottom: 20rpx;
+				position: relative;
+				image{
+					width: 40rpx;
+					height: 32rpx;
+				}
+				.uploading{
+					width: 100%;
+					height: 160rpx;
+					position: absolute;
+					top: 0;
+					left: 0;
+					.delete{
+						position: absolute;
+						top: -12rpx;
+						right: -12rpx;
+						font-size: 12rpx;
+						background-color: #FE0000;
+						border-radius: 50%;
+						color: #ffffff;
+						z-index: 50;
+					}
+				}
+			}
+		}
+		button{
+			width: 100%;
+			height: 60rpx;
+			font-size: 30rpx;
+			line-height: 60rpx;
+			color: #FFFFFF;
+			background-color: #50CE87;
+			margin-top: 40rpx;
+		}
+	}
+</style>

+ 246 - 0
pages/afterSale/index.vue

@@ -0,0 +1,246 @@
+<template>
+	<view>
+		<view style="position: fixed;z-index: 100;">
+			<uni-nav-bar @clickLeft="clickLeft" left-icon="back" left-text="返回" title="售后系统"></uni-nav-bar>
+		</view>
+		<view class="aftersale_search">
+			<u-icon name="search" class="sp_icon" @click="search"></u-icon>
+			<u-icon name="plus" class="sp_icon" @click="addf"></u-icon>
+		</view>
+		<image src="../../static/image/afterSale/dcd7147f4b15d00c5c90006738b8453.png" class="expertimages"></image>
+		<view class="aftersale">
+			<view class="aftersale_item" v-for="(item,index) in faultdata" :key="index">
+				<view class="aftersale_item_title">
+					<u-icon name="calendar" color="#71D8AF" size="34"></u-icon>
+					<span>设备 ID:{{item.device_id}}</span>
+				</view>
+				<view class="aftersale_item_con">
+					<p>联系人:{{item.user}}</p>
+					<p>联系电话:{{item.userphone}}</p>
+					<p>位置:{{item.addr}}</p>
+					<p>故障上报时间:{{item.uptime|timeFormat()}}</p>
+				</view>
+				<view class="aftersale_item_operate">
+					<button class="fault" @click="fault(item.errordesc)">故障原因</button>
+					<button :class="item.errorimg.length!=0?'imgs':'none'" :disabled="item.errorimg.length==0" @click="faultImg(item.errorimg)">图片</button>
+					<button :class="item.errorvideo?'video':'none'" :disabled="!item.errorvideo" @click="faultVideo(item.errorvideo)">视频</button>
+				</view>
+				<view class="aftersale_item_icon">
+					<image :src="aftersale_icon[Number(item.device_type)-2].src" mode=""></image>
+				</view>
+			</view>
+		</view>
+		<u-modal v-model="show" :mask-close-able="maskcloseable" :show-confirm-button="showconfirmbutton" :title="title" class="model">
+			<view class="model_box">
+				<p v-if="faultinfo_tf">{{faultinfo}}</p>
+				<u-swiper :list="faultimg" v-if="faultimg_tf" class="uswiper" height="400" ></u-swiper>
+				<video :src="BASE_URL+faultvideo" controls v-if="faultvideo_tf" style="width: 540rpx;"></video>
+			</view>
+		</u-modal>
+	</view>
+</template>
+<script>
+	export default {
+		data() {
+			return {
+				BASE_URL: 'http://182.92.193.64:8002',
+				faultdata: [],
+				aftersale_icon: [{
+						src: '../../static/image/afterSale/6.png'
+					},
+					{
+						src: '../../static/image/afterSale/1.png'
+					},
+					{
+						src: '../../static/image/afterSale/4.png'
+					},
+					{
+						src: '../../static/image/afterSale/3.png'
+					},
+					{
+						src: '../../static/image/afterSale/5.png'
+					},
+					{
+						src: '../../static/image/afterSale/2.png'
+					}
+				],
+				title:"",//弹框标题
+				show: false,//弹框先显示
+				maskcloseable: true,
+				showconfirmbutton: false,
+				faultinfo: '',//故障信息
+				faultinfo_tf:false,//故障信息显示
+				faultvideo: '',//故障视频
+				faultvideo_tf:false,//故障视频显示
+				faultimg: [],//故障图片
+				faultimg_tf: false//故障图片显示
+			}
+		},
+		methods: {
+			async getAftersale() {
+				const res = await this.$myRequest({
+					url: '/api/api_gateway?method=after_sale.after_sale_manage.aftersale_info',
+				})
+				this.faultdata = res.data
+				for (var i = 0; i < this.faultdata.length; i++) {
+					// this.faultdata[i].errorimg = JSON.parse(this.faultdata[i].errorimg)
+					if (this.faultdata[i].errorimg == null) {
+						this.faultdata[i].errorimg = []
+					}
+				}
+				console.log(res.data)
+			},
+			fault(info) { //查看故障信息
+				this.title="故障信息"
+				this.show = true
+				this.faultinfo = info
+				this.faultimg_tf = false
+				this.faultinfo_tf=true
+				this.faultvideo_tf=false
+			},
+			faultImg(info) { //查看故障图片
+				console.log(info)
+				this.faultimg=[]
+				// for (var i = 0; i < info.length; i++) {
+				// 	let obj = {}
+				// 	obj.image = info[i]
+				// 	console.log(obj.image )
+				// 	this.faultimg.push(obj)
+				// }
+				this.title="故障图片"
+				this.show = true
+				this.faultimg_tf = true
+				this.faultinfo_tf=false
+				this.faultvideo_tf=false
+			},
+			faultVideo(info) { //查看故障视频
+			this.title="故障视频"
+				this.faultvideo=info
+				this.show = true
+				this.faultimg_tf = false
+				this.faultinfo_tf=false
+				this.faultvideo_tf=true
+			},
+			search() { //搜索
+				uni.navigateTo({
+					url:"./search"
+				})
+			},
+			addf() { //添加
+				uni.navigateTo({
+					url:"./addafter"
+				})
+			}
+		},
+		onLoad() {
+			this.getAftersale()
+		}
+	}
+</script>
+
+<style lang="scss">
+	.expertimages {
+		width: 100%;
+		height: 154rpx;
+		position: fixed;
+		top: 88rpx;
+		z-index: 100;
+	}
+
+	.aftersale_search {
+		position: fixed;
+		z-index: 100;
+		top: 24rpx;
+		right: 20rpx;
+
+		.sp_icon {
+			font-size: 36rpx;
+			margin-left: 16rpx;
+		}
+	}
+
+	.aftersale {
+		width: 100%;
+		// margin-top: 20rpx;
+		position: relative;
+		top: 264rpx;
+
+		.aftersale_item {
+			width: 90%;
+			margin: 0 auto 30rpx;
+			box-shadow: 0 0 10rpx #bcb9ca;
+			padding: 30rpx 20rpx 20rpx;
+			position: relative;
+
+			.aftersale_item_title {
+				width: 100%;
+
+				span {
+					margin-left: 16rpx;
+					font-weight: 700;
+				}
+			}
+
+			.aftersale_item_con {
+				width: 92%;
+				margin-left: 8%;
+				margin-top: 20rpx;
+
+				p {
+					height: 48rpx;
+					font-size: 24rpx;
+					color: #BEBEBE;
+				}
+			}
+
+			.aftersale_item_operate {
+				width: 70%;
+				display: flex;
+				margin: 18rpx 0 0 30%;
+
+				button {
+					width: 130rpx;
+					padding: 0;
+					font-size: 24rpx;
+					color: #FFFFFF;
+				}
+
+				.fault {
+					background-color: #F78E01;
+				}
+
+				.imgs {
+					background-color: #71CD9A;
+				}
+
+				.video {
+					background-color: #53C6E6;
+				}
+
+				.none {
+					background-color: #F3F3F3;
+					color: #B4B4B4;
+				}
+			}
+
+			.aftersale_item_icon {
+				position: absolute;
+				top: 0;
+				right: 36rpx;
+
+				image {
+					width: 68rpx;
+					height: 64rpx;
+				}
+			}
+		}
+	}
+
+	.model {
+		width: 90%;
+		.model_box {
+			width: 90%;
+			margin: 20rpx auto 48rpx;
+		}
+	}
+</style>

+ 240 - 0
pages/afterSale/search.vue

@@ -0,0 +1,240 @@
+<template>
+	<view>
+		<view style="position: fixed;z-index: 100;">
+			<uni-nav-bar @clickLeft="clickLeft" left-icon="back" left-text="返回"></uni-nav-bar>
+			<view class="search_top_input">
+				<input type="text" value="" placeholder="请输入设备ID"  v-model="imports"/>
+				<u-icon name="search" size="40" class="icon" @click="search"></u-icon>
+			</view>
+		</view>
+		<view class="aftersale">
+			<view class="aftersale_item" v-for="(item,index) in faultdata" :key="index">
+				<view class="aftersale_item_title">
+					<u-icon name="calendar" color="#71D8AF" size="34"></u-icon>
+					<span>设备 ID:{{item.device_id}}</span>
+				</view>
+				<view class="aftersale_item_con">
+					<p>联系人:{{item.user}}</p>
+					<p>联系电话:{{item.userphone}}</p>
+					<p>位置:{{item.addr}}</p>
+					<p>故障上报时间:{{item.uptime|timeFormat()}}</p>
+				</view>
+				<view class="aftersale_item_operate">
+					<button class="fault" @click="fault(item.errordesc)">故障原因</button>
+					<button :class="item.errorimg.length!=0?'imgs':'none'" :disabled="item.errorimg.length==0" @click="faultImg(item.errorimg)">图片</button>
+					<button :class="item.errorvideo?'video':'none'" :disabled="!item.errorvideo" @click="faultVideo(item.errorvideo)">视频</button>
+				</view>
+				<view class="aftersale_item_icon">
+					<image :src="aftersale_icon[Number(item.device_type)-2].src" mode=""></image>
+				</view>
+			</view>
+		</view>
+		<u-modal v-model="show" :mask-close-able="maskcloseable" :show-confirm-button="showconfirmbutton" :title="title" class="model">
+			<view class="model_box">
+				<p v-if="faultinfo_tf">{{faultinfo}}</p>
+				<u-swiper :list="faultimg" v-if="faultimg_tf" class="uswiper" height="400" ></u-swiper>
+				<video :src="BASE_URL+faultvideo" controls v-if="faultvideo_tf" style="width: 540rpx;"></video>
+			</view>
+		</u-modal>
+	</view>
+</template>
+<script>
+	export default {
+		data() {
+			return {
+				imports:'',
+				BASE_URL: 'http://182.92.193.64:8002',
+				faultdata:[],
+				aftersale_icon: [{
+						src: '../../static/image/afterSale/6.png'
+					},
+					{
+						src: '../../static/image/afterSale/1.png'
+					},
+					{
+						src: '../../static/image/afterSale/4.png'
+					},
+					{
+						src: '../../static/image/afterSale/3.png'
+					},
+					{
+						src: '../../static/image/afterSale/5.png'
+					},
+					{
+						src: '../../static/image/afterSale/2.png'
+					}
+				],
+				title:"",//弹框标题
+				show: false,//弹框先显示
+				maskcloseable: true,
+				showconfirmbutton: false,
+				faultinfo: '',//故障信息
+				faultinfo_tf:false,//故障信息显示
+				faultvideo: '',//故障视频
+				faultvideo_tf:false,//故障视频显示
+				faultimg: [],//故障图片
+				faultimg_tf: false//故障图片显示
+			}
+		},
+		methods: {
+			async getAftersale(num) {
+				const res = await this.$myRequest({
+					url: '/api/api_gateway?method=after_sale.after_sale_manage.aftersale_info',
+					data:{
+						f_id:num
+					}
+				})
+				this.faultdata = res.data
+				for (var i = 0; i < this.faultdata.length; i++) {
+					this.faultdata[i].errorimg = JSON.parse(this.faultdata[i].errorimg)
+					if (this.faultdata[i].errorimg == null) {
+						this.faultdata[i].errorimg = []
+					}
+				}
+			},
+			search(){
+				this.getAftersale(Number(this.imports))
+			},
+			fault(info) { //查看故障信息
+				this.title="故障信息"
+				this.show = true
+				this.faultinfo = info
+				this.faultimg_tf = false
+				this.faultinfo_tf=true
+				this.faultvideo_tf=false
+			},
+			faultImg(info) { //查看故障图片
+				this.faultimg=[]
+				for (var i = 0; i < info.length; i++) {
+					let obj = {}
+					obj.image = info[i]
+					this.faultimg.push(obj)
+				}
+				this.title="故障图片"
+				this.show = true
+				this.faultimg_tf = true
+				this.faultinfo_tf=false
+				this.faultvideo_tf=false
+			},
+			faultVideo(info) { //查看故障视频
+			this.title="故障视频"
+				this.faultvideo=info
+				this.show = true
+				this.faultimg_tf = false
+				this.faultinfo_tf=false
+				this.faultvideo_tf=true
+			},
+			clickLeft(){
+				uni.navigateTo({
+					url:"./index"
+				})
+			}
+		}
+	}
+</script>
+<style lang="scss">
+	.search_top_input{
+		width: 80%;
+		height: 54rpx;
+		background-color: #E4E4E4;
+		border-radius: 27rpx;
+		position: absolute;
+		top: 18rpx;
+		right: 18rpx;
+		padding-top: 8rpx;
+		input{
+			width: 85%;
+			text-indent: 1rem;
+			font-size: 26rpx;
+		}
+		.icon{
+			position: absolute;
+			top: 8rpx;
+			right: 26rpx;
+		}
+	}
+	.aftersale {
+		width: 100%;
+		// margin-top: 20rpx;
+		position: relative;
+		top: 112rpx;
+	
+		.aftersale_item {
+			width: 90%;
+			margin: 0 auto 30rpx;
+			box-shadow: 0 0 10rpx #bcb9ca;
+			padding: 30rpx 20rpx 20rpx;
+			position: relative;
+	
+			.aftersale_item_title {
+				width: 100%;
+	
+				span {
+					margin-left: 16rpx;
+					font-weight: 700;
+				}
+			}
+	
+			.aftersale_item_con {
+				width: 92%;
+				margin-left: 8%;
+				margin-top: 20rpx;
+	
+				p {
+					height: 48rpx;
+					font-size: 24rpx;
+					color: #BEBEBE;
+				}
+			}
+	
+			.aftersale_item_operate {
+				width: 70%;
+				display: flex;
+				margin: 18rpx 0 0 30%;
+	
+				button {
+					width: 130rpx;
+					padding: 0;
+					font-size: 24rpx;
+					color: #FFFFFF;
+				}
+	
+				.fault {
+					background-color: #F78E01;
+				}
+	
+				.imgs {
+					background-color: #71CD9A;
+				}
+	
+				.video {
+					background-color: #53C6E6;
+				}
+	
+				.none {
+					background-color: #F3F3F3;
+					color: #B4B4B4;
+				}
+			}
+	
+			.aftersale_item_icon {
+				position: absolute;
+				top: 0;
+				right: 36rpx;
+	
+				image {
+					width: 68rpx;
+					height: 64rpx;
+				}
+			}
+		}
+	}
+	.model {
+		width: 90%;
+		.model_box {
+			width: 90%;
+			margin: 20rpx auto 48rpx;
+		}
+	}
+</style>
+

+ 2 - 2
pages/equipMange/index/addusers.vue

@@ -36,7 +36,7 @@
 						  :select-open="theme_show"/>
 						<u-action-sheet :list="theme" v-model="theme_show" @click="themes" scroll-y="true"></u-action-sheet>
 					</u-form-item>
-				</view>
+				</view> 
 				<view class="uFormbg">
 					<u-form-item label="用户类型" left-icon="grid" :left-icon-style="lefticonstyle" label-width="160rpx" :border-bottom="borderbottom">
 						<u-input v-model="form.usersofrole" type="select" :clearable="clearable" @click="usersofrole_show = true"
@@ -48,7 +48,7 @@
 					<u-form-item label="测试用户" left-icon="eye" :left-icon-style="lefticonstyle" label-width="160rpx" :border-bottom="borderbottom">
 						<u-input v-model="form.testuser" type="select" :clearable="clearable" @click="testuser_show = true" input-align="right"
 						 :placeholder="testuser[0].text" :select-open="testuser_show" />
-						<u-action-sheet :list="testuser" v-model="testuser_show" @click="testusers"></u-action-sheet>
+						<u-action-sheet :list="testuser" v-model="testuser_show" @click="testusers"></u-action-sheet >
 					</u-form-item>
 				</view>
 			</u-form>

+ 203 - 0
pages/expertDiagnosis/exchangeShare.vue

@@ -0,0 +1,203 @@
+<template>
+	<view>
+		<view style="position: fixed;z-index: 100;">
+			<uni-nav-bar @clickLeft="clickLeft" left-icon="back" left-text="返回" title="交流圈">
+				<image src="../../static/image/expertDiagnosis/tianjiawenjian.png" mode="" class="right_icon" @click="postmessage"></image>
+			</uni-nav-bar>
+		</view>
+		<u-action-sheet :list="actionSheetList" v-model="post_show" @click="message"></u-action-sheet>
+		<view class="invitations">
+			<view class="invitations_item" v-for="(items,index) in invitation" :key="index" @click="particulars(items)">
+				<view class="invitations_item_left">
+					<image :src="items.img_urls" mode="" v-if="items.img_urls!='' && items.img_urls!=null"></image>
+					<image :src="$imghost+defaultimg" mode="" v-else></image>
+				</view>
+				<view class="invitations_item_right">
+					<view class="invitations_item_right_top">
+						<image src="../../static/image/expertDiagnosis/6940a11a251770f1b0d8b7b10ebdf9b.png" mode="" v-if="Number(items.heat) == 1"></image>
+						<span>{{items.title}}</span>
+					</view>
+					<view class="invitations_item_right_contert" v-html="items.content">
+					</view>
+					<view class="invitations_item_right_bot">
+						<image src="../../static/image/expertDiagnosis/d2014837228702eeceb762bc5302b3f.png" mode=""></image>
+						<span>{{items.username}}</span>
+						<p>查看详情</p>
+					</view>
+				</view>
+			</view>
+		</view>
+	</view>
+</template>
+<script>
+	export default {
+		data() {
+			return {
+				// pest.pests.pests_heat_rank
+				invitation: [],
+				actionSheetList:[{
+					text:"我的发帖"
+				},{
+					text:"我要发帖"
+				}],
+				post_show:false,
+				defaultimg: '/images/expertDiagnosis/img01.png'
+			}
+		},
+		methods: {
+			async getInvitation() {//获取问题
+				const res = await this.$myRequest({
+					url: '/api/api_gateway?method=pest.pests.pests_heat_rank',
+				})
+				this.invitation = res.data
+				for (var i = 0; i < this.invitation.length; i++) {
+					var index1 = this.invitation[i].content.indexOf("/>") + 2
+					var index2 = this.invitation[i].content.indexOf('<img')
+					var str = this.invitation[i].content.slice(index2, index1)
+					this.invitation[i].content = this.invitation[i].content.replace(str, '')
+				}
+				console.log(this.invitation)
+			},
+			async getInvitationMy(str) {//获取自己的发帖
+				const res = await this.$myRequest({
+					url: '/api/api_gateway?method=pest.pests.pests_answers_list',
+					data:{
+						screen:str
+					}
+				})
+				this.invitation = res.data
+				for (var i = 0; i < this.invitation.length; i++) {
+					var index1 = this.invitation[i].content.indexOf("/>") + 2
+					var index2 = this.invitation[i].content.indexOf('<img')
+					var str = this.invitation[i].content.slice(index2, index1)
+					this.invitation[i].content = this.invitation[i].content.replace(str, '')
+				}
+				console.log(this.invitation)
+			},
+			clickLeft() {
+				uni.navigateTo({
+					url: 'index'
+				})
+			},
+			particulars(items){//详情页
+				uni.navigateTo({
+					url:"particulars?items="+JSON.stringify(items)
+				})
+			},
+			postmessage(){//发帖
+				this.post_show=true
+			},
+			message(index){
+				if(this.actionSheetList[index].text.includes("我要发帖")){
+					uni.navigateTo({
+						url:"./postmessage"
+					})
+				}else if(this.actionSheetList[index].text.includes("我的发帖")){
+					this.actionSheetList[index].text="全部发帖"
+					this.getInvitationMy("my")
+				}else if(this.actionSheetList[index].text.includes("全部发帖")){
+					this.getInvitation()
+				}
+			}
+		},
+		onLoad() {
+			this.getInvitation()
+		}
+	}
+</script>
+
+<style lang="scss">
+	.right_icon {
+		width: 40rpx;
+		height: 40rpx;
+		position: absolute;
+		top: 26rpx;
+		right: 26rpx;
+	}
+
+	.invitations {
+		width: 100%;
+		position: relative;
+		top: 88rpx;
+
+		.invitations_item {
+			width: 90%;
+			margin: 0 auto;
+			display: flex;
+			justify-content: space-between;
+			padding: 30rpx 0;
+
+			.invitations_item_left {
+				width: 26%;
+
+				image {
+					width: 100%;
+					height: 180rpx;
+				}
+			}
+
+			.invitations_item_right {
+				width: 71%;
+				position: relative;
+
+				.invitations_item_right_top {
+					width: 100%;
+
+					image {
+						width: 32rpx;
+						height: 32rpx;
+						margin: 0 16rpx 0 0;
+						vertical-align: text-bottom;
+					}
+
+					span {
+						font-weight: 700;
+					}
+				}
+
+				.invitations_item_right_contert {
+					width: 100%;
+					margin: 10rpx 0;
+					overflow: hidden;
+					-webkit-line-clamp: 2;
+					text-overflow: ellipsis;
+					display: -webkit-box;
+					-webkit-box-orient: vertical;
+				}
+
+				.invitations_item_right_bot {
+					display: flex;
+					position: absolute;
+					bottom: 12rpx;
+					height: 50rpx;
+					width: 100%;
+
+					image {
+						width: 50rpx;
+						height: 50rpx;
+						position: absolute;
+					}
+
+					span {
+						color: #B9B9B9;
+						margin-left: 74rpx;
+						line-height: 50rpx;
+					}
+
+					p {
+						width: 100rpx;
+						height: 40rpx;
+						font-size: 24rpx;
+						border: 2rpx solid #5FAE50;
+						line-height: 40rpx;
+						padding: 0 10rpx;
+						position: absolute;
+						right: 0;
+						top: 6rpx;
+						color: #5FAE50;
+					}
+				}
+			}
+		}
+	}
+</style>

+ 161 - 0
pages/expertDiagnosis/index.vue

@@ -0,0 +1,161 @@
+<template>
+	<view>
+		<view style="position: fixed;z-index: 100;">
+			<uni-nav-bar @clickLeft="clickLeft" left-icon="back" left-text="返回"  title="专家诊断"></uni-nav-bar>
+		</view>
+		<image src="../../static/image/expertDiagnosis/05571341dbb0771b23d0b271764ac2e.png" class="expertimages"></image>
+		<view class="expert_details">
+			<view class="details_item" @click="worm">
+				<image src="../../static/image/expertDiagnosis/6612b1293fd1f45dd7ce6269a954999.png" ></image>
+				<p>虫情百科</p>
+			</view>
+			<view class="details_item" @click="virus">
+				<image src="../../static/image/expertDiagnosis/7f34f4eeba4d00819369cfa1b5ecce8.png" ></image>
+				<p>病毒百科</p>
+			</view>
+			<view class="details_item" @click="exchange">
+				<image src="../../static/image/expertDiagnosis/aa6a168b9fb72b62b687a2debc04a9f.png" ></image>
+				<p>交流圈</p>
+			</view>
+		</view>
+		<view class="cooperation">
+			<view class="cooperation_item">
+				<p class="cooperation_item_title">合作单位</p>
+				<view class="zooid">
+					<view class="zooid_item" v-for="(item,index) in cooperation_unit" :key="index">
+						<image :src="item.img_urls" mode=""></image>
+						<p>{{item.name}}</p>
+					</view>
+				</view>
+			</view>
+			<view class="cooperation_item">
+				<p class="cooperation_item_title">合作院校</p>
+				<view class="zooid">
+					<view class="zooid_item" v-for="(item,index) in cooperation_academy" :key="index">
+						<image :src="item.img_urls" mode=""></image>
+						<p>{{item.name}}</p>
+					</view>
+				</view>
+			</view>
+			<view class="cooperation_item">
+				<p class="cooperation_item_title">合作专家</p>
+				<view class="zooid">
+					<view class="zooid_item" v-for="(item,index) in cooperation_specialist" :key="index">
+						<image :src="item.img_urls" mode=""></image>
+						<p>{{item.name}}</p>
+					</view>
+				</view>
+			</view>
+		</view>
+	</view>
+</template>
+<script>
+	export default {
+		data() {
+			return {
+				cooperation_academy:[],//合作院校信息
+				cooperation_unit:[],//合作单位信息
+				cooperation_specialist :[],//合作专家信息
+			}
+		},
+		methods: {
+			async getCooperation(code) {
+				const res = await this.$myRequest({
+					url: '/api/api_gateway?method=pest.pests.pests_expert',
+					data:{
+						code:code
+					}
+				})
+				console.log(res)
+				if(code==1){
+					this.cooperation_unit=res.data
+				}else if(code==2){
+					this.cooperation_academy=res.data
+				}else if(code==3){
+					this.cooperation_specialist=res.data
+				}
+			},
+			clickLeft(){
+				uni.navigateBack({
+				    delta: 1
+				});
+			},
+			worm(){
+				uni.navigateTo({
+					url:"./wormcase?name="+'虫情百科',
+				});
+			},
+			virus(){
+				uni.navigateTo({
+					url:"./wormcase?name="+'病毒百科',
+				});
+			},
+			exchange(){
+				uni.navigateTo({
+					url:"./exchangeShare"
+				});
+			}
+		},
+		onLoad(){
+			this.getCooperation(1)
+			this.getCooperation(2)
+			this.getCooperation(3)
+		}
+	}
+</script>
+
+<style lang="scss">
+.expertimages{
+	width: 100%;
+	height: 154rpx;
+	margin-top: 88rpx;
+}
+.expert_details{
+	width: 100%;
+	height: 120rpx;
+	display: flex;
+	justify-content: space-around;
+	margin: 20rpx 0;
+	.details_item{
+		width: 20%;
+		padding: 10rpx 20rpx;
+		text-align: center;
+		font-size: 24rpx;
+		image{
+			width: 70%;
+			height: 64rpx;
+		}
+	}
+}
+.cooperation{
+		width: 100%;
+		margin: 20rpx 0 60rpx;
+		.cooperation_item{
+			width: 95%;
+			margin: 20rpx auto;
+			.cooperation_item_title{
+				border-left: 8rpx solid #18B566;
+				text-indent: 16rpx;
+			}
+			.zooid{
+				width: 100%;
+				display: flex;
+				flex-wrap: wrap;
+				margin-top: 20rpx;
+				.zooid_item{
+					width: 22%;
+					margin: 10rpx;
+					image{
+						width: 100%;
+						height: 154rpx;
+					}
+					p{
+						font-size: 24rpx;
+						text-align: center;
+						margin: 10rpx 0;
+					}
+				}
+			}
+		}
+	}
+</style>

+ 97 - 0
pages/expertDiagnosis/introduce.vue

@@ -0,0 +1,97 @@
+<template>
+	<view>
+		<view style="position: fixed;z-index: 100;">
+			<uni-nav-bar @clickLeft="clickLeft" left-icon="back" left-text="返回"  title="详情"></uni-nav-bar>
+		</view>
+		<image :src="wormcasedata.img_urls" mode="" style="width: 100%;height: 320rpx;margin-top: 88rpx;"></image>
+		<p class="name">{{wormcasedata.name}}</p>
+		<view v-for="(item,index) in preventionArr" :key="index" class="prevention">
+			<view class="prevention_title">
+				<u-icon name="play-right-fill" size="24" color="#55A92D"></u-icon>
+				<p>{{regexptitle[index]}}:</p>
+			</view>
+			<p class="prevention_con">{{item}}</p>
+		</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				wormcasedata:{},
+				unititle:'',
+				wormdata:{//虫子数据
+					
+				},
+				disease:{//病害数据
+					
+				},
+				preventionArr:[],
+				regexptitle:[]
+			}
+		},
+		methods: {
+			async getIntroduce(data) {
+				const res = await this.$myRequest({
+					url: '/api/api_gateway?method=pest.pests.pests_info',
+					data:{
+						pest_id:data
+					}
+				})
+				this.wormcasedata=res
+				var regex2 = /\[(.+?)\]/g; // [] 中括号
+				var str=this.wormcasedata.prevention
+				var arr=str.match(regex2)
+				var arrindex=[]
+				for(var i=0;i<arr.length;i++){
+					arrindex.push(str.indexOf(arr[i]))
+				}
+				for(var i=0;i<arr.length;i++){
+					this.preventionArr.push(str.slice(arrindex[i]+arr[i].length,arrindex[i+1]))
+				}
+				for(var i=0;i<arr.length;i++){
+					arr[i]=arr[i].slice(1,arr[i].length-1)
+				}
+				this.regexptitle=arr
+			},
+			clickLeft(){
+				uni.navigateTo({
+					url:"./wormcase?name="+this.unititle
+				})
+			}
+		},
+		onLoad(option){
+			console.log(option)
+			this.unititle=option.title
+			this.getIntroduce(option.id)
+		}
+	}
+</script>
+
+<style lang="scss">
+	.name{
+		font-size: 34rpx;
+		font-weight: 700;
+		width: 95%;
+		margin: 20rpx auto 0;
+	}
+.prevention{
+	font-size: 28rpx;
+	color: #919191;
+	width: 95%;
+	margin:  20rpx auto;
+	.prevention_title{
+		display: flex;
+		p{
+			margin-left: 20rpx;
+			color: #000000;
+			font-size: 28rpx;
+			font-weight: 700;
+		}
+	}
+	.prevention_con{
+		padding-left: 6%;
+	}
+}
+</style>

+ 233 - 0
pages/expertDiagnosis/particulars.vue

@@ -0,0 +1,233 @@
+<template>
+	<view>
+		<uni-nav-bar @clickLeft="clickLeft" left-icon="back" left-text="返回" title="详情"></uni-nav-bar>
+		<u-swiper :list="list" height="428"></u-swiper>
+		<view class="quiz">
+			<view class="quiz_username">
+				<image src="../../static/image/expertDiagnosis/6940a11a251770f1b0d8b7b10ebdf9b.png" mode="" v-if="Number(quizdata.heat)==1"></image>
+				<span>{{quizdata.title}}</span>
+			</view>
+			<view class="quiz_usertime">
+				<view style="display: flex;align-items: center;">
+					<image src="../../static/image/fourMoodBase/touxiang.png" mode=""></image>
+					<span>{{quizdata.username}}</span>
+				</view>
+				<view>
+					<span>{{quizdata.adtime|timeFormat()}}</span>
+				</view>
+			</view>
+			<view class="quiz_usercontert" v-html="quizdata.content"></view>
+		</view>
+		<view class="comment">
+			<p class="comment_title">评论</p>
+			<view class="comment_unit" v-for="(item,index) in commentdata" :key="index">
+				<view class="comment_unit_user">
+					<view class="username">
+						<image :src="item.image" mode=""></image>
+						<span style="font-size: 26rpx;color:#C1C1C1;">{{item.username}}</span>
+						<p v-if="Number(item.user_type) == 1">专家</p>
+					</view>
+					<view>
+						<span style="font-size: 26rpx;color:#C1C1C1;">{{item.uptime|timeFormat()}}</span>
+					</view>
+				</view>
+				<view class="comment_unit_con">
+					<p v-html="item.content"></p>
+				</view>
+			</view>
+		</view>
+		<view class="issue">
+			<input type="text" v-model="issuedata"/>
+			<p @click="issue">发布</p>
+		</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				list: [{}],
+				quizdata: {},
+				commentdata: [],
+				issuedata:'',
+				defaultimg: '/images/expertDiagnosis/img01.png',
+			}
+		},
+		methods: {//
+			async getParticulars(data) {
+				const res = await this.$myRequest({
+					url: '/api/api_gateway?method=pest.pests.pests_answers_list',
+					data: {
+						lower: data.lower
+					}
+				})
+				this.commentdata = res.data
+				console.log(this.commentdata)
+			},
+			async getDiscuss(data) {
+				const res = await this.$myRequest({
+					url: '/api/api_gateway?method=pest.pests.pests_new_idea',
+					data: {
+						lower: data.lower,
+						content:data.content
+					}
+				})
+				console.log(res)
+			},
+			clickLeft() {
+				uni.navigateTo({
+					url: "exchangeShare"
+				})
+			},
+			issue(){//发布评论
+				let obj = {}
+				obj.lower = this.quizdata.lower
+				obj.content=this.issuedata
+				if(this.issuedata!=''){
+					this.getDiscuss(obj)
+				}
+				uni.navigateTo({
+					url:"particulars?items="+JSON.stringify(this.quizdata)
+				})
+			}
+		},
+		onLoad(option) {
+			this.quizdata = JSON.parse(option.items)
+			console.log(this.quizdata.img_urls)
+			if(this.quizdata.img_urls =='' || this.quizdata.img_urls ==null){
+				this.list[0].image = 'http://static.yfpyx.com/projectimg'+this.defaultimg
+			}else{
+				this.list[0].image = this.quizdata.img_urls
+			}
+			let data = {}
+			data.lower = this.quizdata.lower
+			this.getParticulars(data)
+		}
+	}
+</script>
+<style lang="scss">
+	.u-swiper-wrap {
+		width: 95%;
+		margin: 20rpx auto;
+	}
+
+	.quiz {
+		width: 95%;
+		margin: 20rpx auto;
+		border-bottom: 4rpx dashed #E8E8E8;
+
+		.quiz_username {
+			width: 100%;
+
+			image {
+				width: 40rpx;
+				height: 40rpx;
+				vertical-align: middle;
+				margin-right: 20rpx;
+			}
+			span{
+				font-weight: 700;
+				font-size: 32rpx;
+			}
+		}
+
+		.quiz_usertime {
+			width: 100%;
+			margin-top: 15rpx;
+			display: flex;
+			justify-content: space-between;
+
+			image {
+				width: 50rpx;
+				height: 50rpx;
+				margin-right: 20rpx;
+			}
+
+			span {
+				font-size: 12rpx;
+				color: #C1C1C1;
+			}
+		}
+
+		.quiz_usercontert {
+			padding: 20rpx;
+			margin-bottom: 20rpx;
+		}
+	}
+
+	.comment {
+		width: 95%;
+		margin: 20rpx auto 0;
+
+		.comment_title {
+			font-weight: 700;
+			font-size: 32rpx;
+		}
+
+		.comment_unit {
+			.comment_unit_user {
+				display: flex;
+				justify-content: space-between;
+				margin-top: 20rpx;
+				.username {
+					display: flex;
+					align-items: center;
+
+					image {
+						width: 50rpx;
+						height: 50rpx;
+						margin-right: 20rpx;
+						border-radius: 50%;
+					}
+					p{
+						width: 60rpx;
+						height: 30rpx;
+						color: white;
+						background-color: #5CA348;
+						font-size: 24rpx;
+						text-align: center;
+						line-height: 30rpx;
+						padding: 0 10rpx;
+						margin-left: 20rpx;
+						border-radius: 8rpx;
+					}
+				}
+			}
+
+			.comment_unit_con {
+				padding-left: 60rpx;
+				/deep/p {
+					margin-top: 20rpx;
+					img {
+						margin-top: 20rpx;
+						display: block;
+						width: 180rpx !important;
+						height: 180rpx !important;
+					}
+				}
+
+			}
+		}
+	}
+	.issue{
+		width: 95%;
+		position: fixed;
+		bottom: 0;
+		left: 2.5%;
+		display: flex;
+		padding-bottom: 20rpx;
+		input{
+			width: 90%;
+			background-color: #F3F3F3;
+			height: 60rpx;
+			text-indent: 1em;
+		}
+		p{
+			width: 10%;
+			text-align: right;
+			line-height: 60rpx;
+			color: #7a7a7a;
+		}
+	}
+</style>

+ 88 - 0
pages/expertDiagnosis/postmessage.vue

@@ -0,0 +1,88 @@
+<template>
+	<view>
+		<uni-nav-bar @clickLeft="clickLeft" left-icon="back" left-text="返回" title="发帖"></uni-nav-bar>
+		<view class="post">
+			<view class="post_title">
+				<input type="text" placeholder="请输入标题" v-model="title" />
+			</view>
+			<view class="post_contert">
+				<textarea v-model="mainbody" placeholder="请输入正文" />
+				</view>
+			<button class="post_btn" @click="post">发布</button>
+		</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				title:'',  
+				mainbody:''
+			}
+		},
+		methods: {
+			async getPostmessage(data) { //发帖
+				const res = await this.$myRequest({
+					url: '/api/api_gateway?method=pest.pests.pests_new_idea',
+					data:{
+						title:data.title,
+						content:data.content
+					}
+				})
+				console.log(res)
+			},
+			post(){
+				if(this.title!=''&&this.mainbody!=''){
+					let obj ={}
+					obj.title=this.title
+					obj.content=this.mainbody
+					this.getPostmessage(obj)
+				}
+			},
+			clickLeft(){
+				uni.navigateTo({
+					url: './exchangeShare'
+				})
+			},
+		}
+	}
+</script>
+
+<style lang="scss">
+	.post {
+		background-color: #F5F5F5;
+		width: 100%;
+		height: 93vh;
+		padding-top: 16rpx;
+
+		.post_title {
+			padding: 40rpx 20rpx;
+			background-color: white;
+			width: 100%;
+			input {
+				width: 90%;
+				margin: 0 auto;
+			}
+		}
+
+		.post_contert {
+			margin-top: 16rpx;
+			padding: 40rpx 20rpx;
+			background-color: white;
+			width: 100%;
+			height: 660rpx;
+			textarea{
+				width: 90%;
+				margin: 0 auto;
+			}
+		}
+		.post_btn{
+			width: 90%;
+			margin: 40rpx auto;
+			background-color: #57C878;
+			color: white;
+			font-size: 32rpx;
+		}
+	}
+</style>

+ 90 - 0
pages/expertDiagnosis/wormcase.vue

@@ -0,0 +1,90 @@
+<template>
+	<view>
+		<view style="position: fixed;z-index: 100;">
+			<uni-nav-bar @clickLeft="clickLeft" left-icon="back" left-text="返回"  :title="title"></uni-nav-bar>
+		</view>
+		<view class="particulars">
+			<view class="particulars_item" v-for="(item,index) in content" :key="index" @click="introduce(item.id)">
+				<image :src="item.img_urls" mode="" class="imgs"></image>
+				<p>{{item.name}}</p>
+			</view>
+		</view>
+	</view>
+</template>
+<style lang="scss">
+	.particulars{
+		width: 100%;
+		position: relative;
+		top: 88rpx;
+		display: flex;
+		flex-wrap: wrap;
+		.particulars_item{
+			width: 50%;
+			padding: 20rpx;
+			.imgs{
+				width: 100%;
+				height: 220rpx;
+			}
+			p{
+				font-size: 24rpx;
+			}
+		}
+	}
+</style>
+<script>
+	export default {
+		data() {
+			return {
+				title:'',
+				content:[],
+				data:{
+					code:null,
+					page:null
+				}
+			}
+		},
+		methods: {
+			async getCooperation(data) {
+				const res = await this.$myRequest({
+					url: '/api/api_gateway?method=pest.pests.pests_search',
+					data:{
+						code:data.code,
+						page:data.page
+					}
+				})
+				this.content=this.content.concat(res.data)
+				console.log(res)
+			},
+			clickLeft(){
+				uni.navigateTo({
+					url:"./index"
+				})
+			},
+			introduce(id){
+				uni.navigateTo({
+					url:"./introduce?id="+id+"&title="+this.title
+				})
+			}
+		},
+		onLoad(option){
+			this.title=option.name
+			if(option.name=="虫情百科"){
+				this.data.code=2
+				this.data.page=1
+				this.getCooperation(this.data)
+			}else{
+				this.data.code=1
+				this.data.page=1
+				this.getCooperation(this.data)
+			}
+		},
+		onReachBottom() {
+			this.data.page++
+			this.getCooperation(this.data)
+		}
+	}
+</script>
+
+<style>
+
+</style>

二進制
static/image/afterSale/1.png


二進制
static/image/afterSale/2.png


二進制
static/image/afterSale/3.png


二進制
static/image/afterSale/4.png


二進制
static/image/afterSale/5.png


二進制
static/image/afterSale/5d9b8db91f11175aa5277fef40581ab.png


二進制
static/image/afterSale/6.png


二進制
static/image/afterSale/80314eaa07c32e9c76537a8a8224130.png


二進制
static/image/afterSale/dcd7147f4b15d00c5c90006738b8453.png


二進制
static/image/afterSale/eee1e84bb85f6f6ff5c5866a3a42779.png


二進制
static/image/expertDiagnosis/05571341dbb0771b23d0b271764ac2e.png


二進制
static/image/expertDiagnosis/6612b1293fd1f45dd7ce6269a954999.png


二進制
static/image/expertDiagnosis/6940a11a251770f1b0d8b7b10ebdf9b.png


二進制
static/image/expertDiagnosis/7f34f4eeba4d00819369cfa1b5ecce8.png


二進制
static/image/expertDiagnosis/aa6a168b9fb72b62b687a2debc04a9f.png


二進制
static/image/expertDiagnosis/d2014837228702eeceb762bc5302b3f.png


二進制
static/image/expertDiagnosis/tianjiawenjian.png


+ 1 - 1
util/api.js

@@ -9,7 +9,7 @@ export const myRequest=(options)=>{
 	// 	}
 	// })
 	session_key=uni.getStorageSync('session_key')
-	console.log(session_key)
+	// console.log(session_key)
 	let url=options.url
 	let data=options.data||{}
 	  if (url != 'user.login.login_user' && url != 'pest.pests.insect_discern' &&