李程龙 %!s(int64=3) %!d(string=hai) anos
pai
achega
fdecc1c277
Modificáronse 8 ficheiros con 57 adicións e 25 borrados
  1. 2 2
      README.md
  2. 3 3
      api/fault.js
  3. 5 5
      api/pest.js
  4. 1 1
      pages.json
  5. 6 0
      pages/fault/index.vue
  6. 5 5
      pages/index/index.vue
  7. 34 9
      pages/pest/discern.vue
  8. 1 0
      utils/request/request.js

+ 2 - 2
README.md

@@ -3,7 +3,7 @@
 |-- agriculture
 	|-- api								// 数据接口,请求逻辑(数据二次处理)
 		|-- camera.js						// 可视监控模块
-		|-- fault.js						// 预警上报模块
+		|-- aftersale.js						// 预警上报模块
 		|-- pest.js							// 病害监测模块 
 		|-- weather	.js						// 气象墒情模块 
 		|-- worm.js							// 虫情监测模块 
@@ -15,7 +15,7 @@
 		|-- ui-tabs						// 全局tab选项组件
 	--|
     |-- pages  //主包
-        |-- fault    				    // 故障上报
+        |-- aftersale    				    // 故障上报
         |-- camera     					// 可视监控模块
 			|-- index.vue					// 可视监控列表
 			|-- details.vue					// 可视监控详情

+ 3 - 3
api/fault.js

@@ -4,16 +4,16 @@ import request from '@/utils/request/index.js'
  */
 
 // 预警上报数据请求父类函数
-const faultRequest = async (url, data) => {
+const baseRequest = async (url, data) => {
 	const res = await request.post(`api/api_gateway?method=after_sale.after_sale_manage.${url}`, data);
 	return res?.data;
 }
 
 // 设备详情
-export const getAftersaleInfo = (data) => faultRequest('aftersale_infos',data);
+export const getAftersaleInfo = (data) => baseRequest('aftersale_infos',data);
 
 // 上传图片、视频接口
 export const uploadFile = (data) => request.post('api/v2/util/upload/img',data);
 
 // 预警保存
-export const saveAftersaleInfo = (data) => faultRequest('aftersale_info_save',data);
+export const saveAftersaleInfo = (data) => baseRequest('aftersale_info_save',data);

+ 5 - 5
api/pest.js

@@ -4,16 +4,16 @@ import request from '@/utils/request/index.js'
  */
 
 // 病害监测数据请求父类函数
-const pestRequest = async (url, data) => {
-	const res = await request.post(`api/api_gateway?method=pest.pests.${url}`, data);
+const pestRequest = async (url, data, ...args) => {
+	const res = await request.post(`api/api_gateway?method=pest.pests.${url}`, data, ...args);
 	return res?.data;
 }
 
 // 病虫害库
-export const loadPestList = (data) => pestRequest('pests_info',data);
+export const loadPestList = (data) => pestRequest('pests_info', data);
 
 // 虫害识别
-export const handlePestDiscern = (data) => pestRequest('insect_discern',data);
+export const handleInsectDiscern = (data) => pestRequest('insect_discern', data);
 
 // 病害识别
-export const  handlePlantDiscern = (data) => pestRequest('plant_discern',data);
+export const handlePlantDiscern = (data) => pestRequest('plant_discern', data);

+ 1 - 1
pages.json

@@ -98,7 +98,7 @@
 
 		}
 	    ,{
-            "path" : "pages/fault/index",
+            "path" : "pages/aftersale/index",
             "style" :                                                                                    
             {
                 "navigationBarTitleText": "故障上报",

+ 6 - 0
pages/fault/index.vue

@@ -42,11 +42,17 @@
 </template>
 
 <script>
+import {uploadFile,saveAftersaleInfo} from '@/api/aftersale.js'
 	export default {
 		data() {
 			return {
+				
 				// 图片列表
 				imgList: [],
+				// 上报信息
+				aftersale:{
+					
+				}
 			}
 		},
 		methods: {

+ 5 - 5
pages/index/index.vue

@@ -32,13 +32,13 @@
 						text:'病虫害百科'
 					},
 					{
-						url:'/pages/fault/index',
-						text:'故障上报'
+						url:'/pages/pest/discern',
+						text:'病虫害识别'
 					},
 					{
-						url:'/pages/warn/index',
-						text:'预警消息'
-					},
+						url:'/pages/aftersale/index',
+						text:'故障上报'
+					}
 					
 				]
 			}

+ 34 - 9
pages/pest/discern.vue

@@ -12,7 +12,7 @@
 					<view class=" flex-1 text">
 						介绍文字介绍文字介绍文字介绍文字介绍文字介绍文字介绍文字介绍文字介绍文字介绍文字介绍文字介绍文字介绍文字介绍文字介绍文字介绍文字介绍文字介绍文字介绍文字介绍文字介绍文字介绍文字介绍文字介绍文字介绍文字介绍文字介绍文字介绍文字介绍文字介绍文字
 					</view>
-					<button class="btn" @click="uploadFile()">我要识别</button>
+					<button class="btn" @click="startDiscern('insect')">我要识别</button>
 				</view>
 			</view>
 			<view class="media-item">
@@ -20,11 +20,11 @@
 					<image src="@/static/demo/demo1.png" mode="aspectFill"></image>
 				</view>
 				<view class="media-bd">
-					<view class="title">害识别技术</view>
+					<view class="title">害识别技术</view>
 					<view class=" flex-1 text">
 						介绍文字介绍文字介绍文字介绍文字介绍文字介绍文字介绍文字介绍文字介绍文字介绍文字介绍文字介绍文字介绍文字介绍文字介绍文字介绍文字介绍文字介绍文字介绍文字介绍文字介绍文字介绍文字介绍文字介绍文字介绍文字介绍文字介绍文字介绍文字介绍文字介绍文字
 					</view>
-					<button class="btn" @click="uploadFile()">我要识别</button>
+					<button class="btn" @click="startDiscern('plant')">我要识别</button>
 				</view>
 			</view>
 		</view>
@@ -36,6 +36,10 @@
 </template>
 
 <script>
+	import {
+		handlePlantDiscern,
+		handleInsectDiscern
+	} from '@/api/pest.js'
 	export default {
 		data() {
 			return {
@@ -43,12 +47,31 @@
 			};
 		},
 		methods: {
-			// 上传图片
-			async uploadFile(e) {
-				let res = await this.uploadImageSync();
-				if (res.success) {
+			
 
+			/**
+			 * 开始识别
+			 * @param {String} type 识别类型  insect:虫害,plant:病害
+			 */
+			async startDiscern(type) {
+				let file = await this.uploadImageSync();
+				if (!file) {
+					return;
+				}
+				let result;// 识别结果
+				// 识别虫害
+				if(type=='insect'){
+					result = await handleInsectDiscern({
+						img_file: file
+					})
 				}
+				// 识别病害
+				if(type=='plant'){
+					result = await handlePlantDiscern({
+						img_file: file
+					})
+				}
+				
 			},
 			uploadImageSync() {
 				return new Promise((resolve, reject) => {
@@ -57,8 +80,10 @@
 						sizeType: ['compressed'], // 可以指定是原图还是压缩图,默认二者都有
 						sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有
 						success(res) {
-							const tempFilePaths = res.tempFilePaths;
-
+							resolve(res.tempFiles[0]);
+						},
+						fail(e) {
+							resolve(null);
 						}
 					})
 				})

+ 1 - 0
utils/request/request.js

@@ -137,6 +137,7 @@ export default function({
 			}) // 如果调用 cancel 方法,返回 _watcher.cancel 方法
 		},
 		request(method, url, data, header, reqIntercept=true, resIntercept=true) {
+			console.log(header);
 			let timer, // timer 检测超时定时器
 				requestTask, // requestTask 网络请求 task 对象
 				aborted = false, // aborted 请求是否已被取消