李程龙 3 лет назад
Родитель
Сommit
eaeb480949
7 измененных файлов с 78 добавлено и 55 удалено
  1. 7 9
      api/aftersale.js
  2. 16 3
      api/pest.js
  3. 2 24
      package-lock.json
  4. 26 12
      pages/aftersale/index.vue
  5. 6 5
      pages/pest/discern-result.vue
  6. 12 1
      pages/pest/discern.vue
  7. 9 1
      styles/common.scss

+ 7 - 9
api/aftersale.js

@@ -3,17 +3,15 @@ import request from '@/utils/request/index.js'
  * 预警上报模块
  * 预警上报模块
  */
  */
 
 
-// 预警上报数据请求父类函数
-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) => baseRequest('aftersale_infos',data);
+
 
 
 // 上传图片、视频接口
 // 上传图片、视频接口
-export const uploadFile = (data) => request.post('api/v2/util/upload/img',data);
+export const uploadFile = (data) => request.post('api/v2/util/upload/img', data);
 
 
 // 预警保存
 // 预警保存
-export const saveAftersaleInfo = (data) => baseRequest('aftersale_info_save',data);
+export const saveAftersaleInfo = async (data) => {
+	const res = await request.post(`api/api_gateway?method=after_sale.after_sale_manage.aftersale_info_save`,
+		data);
+	return res?.data;
+}

+ 16 - 3
api/pest.js

@@ -10,7 +10,6 @@ import {
 
 
 // 识别基类 (uni.request 对formData数据不支持,暂时先写成独立的基类,后期遇到好的方案可改进)
 // 识别基类 (uni.request 对formData数据不支持,暂时先写成独立的基类,后期遇到好的方案可改进)
 export const baseDiscern = (url, img_file) => {
 export const baseDiscern = (url, img_file) => {
-	uni.r
 	return new Promise((resolve, reject) => {
 	return new Promise((resolve, reject) => {
 		uni.uploadFile({
 		uni.uploadFile({
 			url: config.baseUrl +
 			url: config.baseUrl +
@@ -19,8 +18,22 @@ export const baseDiscern = (url, img_file) => {
 				'img_file': img_file,
 				'img_file': img_file,
 				token: cache.get(LOGIN_TOKEN)
 				token: cache.get(LOGIN_TOKEN)
 			},
 			},
-			success: (uploadFileRes) => {
-				resolve(uploadFileRes.data);
+			success: (res) => {
+				let resule=JSON.parse(res.data ?? '{}')
+				if(resule.message){
+					uni.showToast({
+						title:resule.message,
+						duration: 1500,
+						mask: true,
+						icon: 'none'
+					});
+					return resolve(null);
+				}
+
+				resolve(resule.data);
+			},
+			fail:(e) =>{
+				resolve(null);
 			}
 			}
 		});
 		});
 	})
 	})

+ 2 - 24
package-lock.json

@@ -1,28 +1,6 @@
 {
 {
-  "name": "pingpu_H5",
-  "lockfileVersion": 2,
   "requires": true,
   "requires": true,
-  "packages": {
-    "": {
-      "dependencies": {
-        "ezuikit-js": "^0.6.3",
-        "moment": "^2.29.4"
-      }
-    },
-    "node_modules/ezuikit-js": {
-      "version": "0.6.3",
-      "resolved": "https://registry.npmjs.org/ezuikit-js/-/ezuikit-js-0.6.3.tgz",
-      "integrity": "sha512-nFaQXHALzGgXop4aZ23g96EmKT+IRfvibx4I4jLIcNAjXWI+PZk3g/365end7trMY646+5BeP0kn9CXzHH9s1g=="
-    },
-    "node_modules/moment": {
-      "version": "2.29.4",
-      "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz",
-      "integrity": "sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==",
-      "engines": {
-        "node": "*"
-      }
-    }
-  },
+  "lockfileVersion": 1,
   "dependencies": {
   "dependencies": {
     "ezuikit-js": {
     "ezuikit-js": {
       "version": "0.6.3",
       "version": "0.6.3",
@@ -31,7 +9,7 @@
     },
     },
     "moment": {
     "moment": {
       "version": "2.29.4",
       "version": "2.29.4",
-      "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz",
+      "resolved": "https://registry.npmmirror.com/moment/-/moment-2.29.4.tgz",
       "integrity": "sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w=="
       "integrity": "sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w=="
     }
     }
   }
   }

+ 26 - 12
pages/aftersale/index.vue

@@ -22,13 +22,16 @@
 			</view>
 			</view>
 			<!-- 上传图片 -->
 			<!-- 上传图片 -->
 			<view class="ui-upload" id="descripImg">
 			<view class="ui-upload" id="descripImg">
-				<view class="ui-upload_file">
-					<image src="@/static/demo/demo2.png" @click="previewImage()" class="ui-upload_img"
-						mode="aspectFill">
+
+				<view class="ui-upload_file" v-for="(item,index) in imgList" :key="index">
+					<image :src="item" @click="previewImage(index)" class="ui-upload_img" mode="aspectFill">
 					</image>
 					</image>
 				</view>
 				</view>
-				<view class="ui-upload_input" @click="uploadFile">
-					<image src="@/static/img/upload.png" class="ui-upload_img" mode="aspectFill"></image>
+				<view class="ui-upload_input" @click="uploadFile('image')">
+					<image src="@/static/img/image.png" class="ui-upload_img" mode="aspectFill"></image>
+				</view>
+				<view class="ui-upload_input" @click="uploadFile('video')">
+					<image src="@/static/img/video.png" class="ui-upload_img" mode="aspectFill"></image>
 				</view>
 				</view>
 			</view>
 			</view>
 		</view>
 		</view>
@@ -65,21 +68,29 @@
 			}
 			}
 		},
 		},
 		methods: {
 		methods: {
-			// 上传图片
-			async uploadFile(e) {
+			/**
+			 * 上传图片
+			 * @param {String} type image:图片,video 视频
+			 */
+			async uploadFile(type) {
 				let res = await this.uploadImageSync();
 				let res = await this.uploadImageSync();
-				if (res.success) {
-
+				if (res) {
+					uploadFile({
+						file: res
+					});
 				}
 				}
 			},
 			},
 			uploadImageSync() {
 			uploadImageSync() {
 				return new Promise((resolve, reject) => {
 				return new Promise((resolve, reject) => {
 					uni.chooseImage({
 					uni.chooseImage({
-						count: 5, // 默认9
+						count: 1, // 默认9
 						sizeType: ['compressed'], // 可以指定是原图还是压缩图,默认二者都有
 						sizeType: ['compressed'], // 可以指定是原图还是压缩图,默认二者都有
 						sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有
 						sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有
 						success(res) {
 						success(res) {
-							const tempFilePaths = res.tempFilePaths;
+							resolve(res.tempFiles[0]);
+						},
+						fail(e) {
+							resolve(null);
 						}
 						}
 					})
 					})
 				})
 				})
@@ -98,9 +109,12 @@
 			async submitAftersaleInfo(e) {
 			async submitAftersaleInfo(e) {
 				this.$api.loading("上报中...");
 				this.$api.loading("上报中...");
 				this.saveLoading = true;
 				this.saveLoading = true;
-				await saveAftersaleInfo(this.aftersale);
+				let res = await saveAftersaleInfo(this.aftersale);
 				this.saveLoading = false;
 				this.saveLoading = false;
 				this.$api.hide();
 				this.$api.hide();
+				if (res) {
+					this.$api.msg('上报成功', 'success');
+				}
 			}
 			}
 		}
 		}
 	}
 	}

+ 6 - 5
pages/pest/discern-result.vue

@@ -6,14 +6,12 @@
 		<view class="pest-title">{{result.name}}</view>
 		<view class="pest-title">{{result.name}}</view>
 		<view class="pest-paragraph">{{result.prevention}}</view>
 		<view class="pest-paragraph">{{result.prevention}}</view>
 		<view class="discern-result">
 		<view class="discern-result">
-			<view class="row-between discern-item">
+			<!-- <view class="row-between discern-item">
 				<view>害虫名称:<text>{{result.name}}</text></view>
 				<view>害虫名称:<text>{{result.name}}</text></view>
 				<view>害虫数量:<text>1只</text></view>
 				<view>害虫数量:<text>1只</text></view>
-			</view>
-			
+			</view> -->
 		</view>
 		</view>
-		
-		<button class="btn discern-btn">重新识别</button>
+		<button class="btn discern-btn" @click="uni.navigateBack()">重新识别</button>
 	</view>
 	</view>
 </template>
 </template>
 
 
@@ -24,6 +22,9 @@
 				//识别结果
 				//识别结果
 				result:{}
 				result:{}
 			};
 			};
+		},
+		onLoad(options) {
+			this.result=JSON.parse(options.params);
 		}
 		}
 	}
 	}
 </script>
 </script>

+ 12 - 1
pages/pest/discern.vue

@@ -59,6 +59,7 @@
 					return;
 					return;
 				}
 				}
 				let result; // 识别结果
 				let result; // 识别结果
+				this.$api.loading('识别中...');
 				// 识别虫害
 				// 识别虫害
 				if (type == 'insect') {
 				if (type == 'insect') {
 					result = await handleInsectDiscern(file)
 					result = await handleInsectDiscern(file)
@@ -67,7 +68,17 @@
 				if (type == 'plant') {
 				if (type == 'plant') {
 					result = await handlePlantDiscern(file)
 					result = await handlePlantDiscern(file)
 				}
 				}
-
+				this.$api.hide();
+				if (!result) {
+					return;
+				}
+				this.openDiscernResult(result);
+			},
+			// 打开识别结果
+			openDiscernResult(item){
+				uni.navigateTo({
+					url:`discern-result?params=${JSON.stringify(item)}`
+				})
 			},
 			},
 			uploadImageSync() {
 			uploadImageSync() {
 				return new Promise((resolve, reject) => {
 				return new Promise((resolve, reject) => {

+ 9 - 1
styles/common.scss

@@ -357,10 +357,18 @@ image {
 .ui-upload_file,
 .ui-upload_file,
 .ui-upload_input {
 .ui-upload_input {
 	position: relative;
 	position: relative;
-	display: inline-block;
+	display: inline-flex;
+	align-items: center;
+	justify-content: center;
 	width: 128rpx;
 	width: 128rpx;
+	height: 128rpx;
 	margin:0 16rpx 16rpx;
 	margin:0 16rpx 16rpx;
+	background-color: #f3f4f5;
 	border-radius: 8rpx;
 	border-radius: 8rpx;
+	image{
+		width: 60rpx;
+		height: 60rpx;
+	}
 }
 }