From c462126d2eaf08e95c7bbb7f5db0a1a826356a75 Mon Sep 17 00:00:00 2001
From: liukangdong <898885815@qq.com>
Date: 星期四, 28 十一月 2024 15:08:13 +0800
Subject: [PATCH] Merge branch 'master' of http://139.186.142.91:10010/r/productDev/funingyunwei

---
 h5/pages/operation/device.vue |  376 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 376 insertions(+), 0 deletions(-)

diff --git a/h5/pages/operation/device.vue b/h5/pages/operation/device.vue
new file mode 100644
index 0000000..125001a
--- /dev/null
+++ b/h5/pages/operation/device.vue
@@ -0,0 +1,376 @@
+<template>
+	<view class="main_app">
+		<view class="list">
+			<view class="item">
+				<view class="la"><text class="red">*</text>閫夋嫨璁惧</view>
+				<view class="line">
+					<view class="sel_wrap" @click="showModal = true">
+						<view class="left" :class="param.name ? '' : 'placeholder9'">{{ param.name ? param.name : '璇烽�夋嫨璁惧' }}</view>
+						<u-icon name="arrow-right" color="#999999" size="17"></u-icon>
+					</view>
+					<image class="icon" src="@/static/side/scan.png" mode=""></image>
+				</view>
+			</view>
+			<view class="item">
+				<view class="la">璁惧鐘舵��</view>
+				<view class="line">
+					<view class="radio_wrap">
+						<view class="ite" :class="{active: param.status == 0}" @click="statusChange(0)">姝e父</view>
+						<view class="ite" :class="{active: param.status == 1}" @click="statusChange(1)">鎹熷潖</view>
+						<view class="ite" :class="{active: param.status == 2}" @click="statusChange(2)">鎶ュ簾</view>
+					</view>
+				</view>
+			</view>
+			<view class="item">
+				<view class="la">涓婁紶瑙嗛/鍥剧墖</view>
+				<view class="upload_wrap">
+					<view class="upload_file" @click="showUpload = true">
+						<u-icon name="plus" color="rgb(153, 153, 153)" size="28"></u-icon>
+						<view class="mt6">鍥剧墖/瑙嗛</view>
+					</view>
+					<view class="upload_file" v-for="(item, i) in dealFileList" :key="i">
+						<u-icon class="close" size="20" name="close-circle-fill" color="red"
+							@click="fileDel('dealBeforeFileList', i)"></u-icon>
+						<image v-if="item.type == 0" :src="item.fileurlFull" mode="widthFix"></image>
+						<video v-if="item.type == 1" :src="item.fileurlFull" :controls="false"></video>
+					</view>
+				</view>
+			</view>
+			<view class="item">
+				<view class="la">杩愮淮澶囨敞</view>
+				<view class="line">
+					<textarea v-model="param.checkInfo" placeholder="璇疯緭鍏�" placeholder-class="placeholder9" />
+				</view>
+			</view>
+		</view>
+		<view class="sub_btn">
+			鎻愪氦
+		</view>
+		<!--  -->
+		<u-popup :show="showUpload" @close="showUpload = false" closeOnClickOverlay>
+			<view class="sel_upload_wrap">
+				<view class="btn" @click="uploadImage">閫夋嫨鍥剧墖</view>
+				<view class="btn" @click="uploadVideo">閫夋嫨瑙嗛</view>
+			</view>
+		</u-popup>
+		<!--  -->
+		<u-popup :show="showModal" @close="showModal = false" :safeAreaInsetBottom="true" :round="10" closeable closeOnClickOverlay>
+			<view class="appr_modal">
+				<view class="title">璇烽�夋嫨璁惧</view>
+				<view class="search_wrap">
+					<image class="mr12 search" src="@/static/home/ic_search@2x.png" mode="widthFix"></image>
+					<input v-model="searchValue" @confirm="getDevice()" type="text" placeholder="鎼滅储璁惧鍚嶇О/缂栧彿" placeholder-class="placeholder9" />
+				</view>
+				<view class="modal_list">
+					<view class="item">
+						<view class="name">璁惧name</view>
+						<image src="@/static/radioed.png" mode=""></image>
+					</view>
+				</view>
+				<view class="sub_btn">
+					纭畾閫夋嫨
+				</view>
+			</view>
+		</u-popup>
+	</view>
+</template>
+
+<script>
+	import {
+		uploadUrl
+	} from '@/api'
+	import dayjs from 'dayjs';
+	export default {
+		data() {
+			return {
+				param: {status: 0},
+				showUpload: false,
+				showModal: false,
+				dealFileList: [],
+				
+				searchValue: '',
+				deviceList: [],
+				activeDevice: {}
+			};
+		},
+		methods: {
+			getDevice(){
+				
+			},
+			statusChange(val){
+				this.param.status = val
+			},
+			fileDel(str, i) {
+				this[str].splice(i, 1);
+			},
+			uploadImage() {
+				this.showUpload = false;
+				let token = uni.getStorageSync('token') || '';
+				uni.chooseImage({
+					count: 4,
+					success: chooseImageRes => {
+						uni.showLoading({
+							title: '涓婁紶涓�',
+							mask: true
+						});
+						const tempFilePaths = chooseImageRes.tempFilePaths;
+						let imgs = tempFilePaths.map((value, index) => {
+							return {
+								name: 'file',
+								uri: value
+							};
+						});
+						uni.uploadFile({
+							url: `${uploadUrl}`,
+							files: imgs,
+							name: 'file',
+							formData: {
+								folder: 'HIDDEN_DANGER_FILE'
+							},
+							header: {
+								Dm_user_token: token
+							},
+							success: uploadFileRes => {
+								let res = JSON.parse(uploadFileRes.data);
+								if (res.data && res.data.length > 0) {
+									res.data.forEach(i => {
+										i.type = 0;
+										i.fileurl = i.imgaddr;
+										i.fileurlFull = i.url;
+										this.submitFileList.push(i);
+									});
+								}
+							},
+							fail(err) {
+								console.log('err', err);
+							},
+							complete() {
+								uni.hideLoading();
+								// if (i === chooseImageRes.tempFilePaths.length - 1) {
+								//   uni.hideLoading()
+								// }
+							}
+						});
+					}
+				});
+			},
+			uploadVideo() {
+				this.showUpload = false;
+				let token = uni.getStorageSync('token') || '';
+				uni.chooseVideo({
+					success: chooseImageRes => {
+						uni.showLoading({
+							title: '涓婁紶涓�',
+							mask: true
+						});
+						uni.uploadFile({
+							url: `${uploadUrl}`,
+							filePath: chooseImageRes.tempFilePath,
+							header: {
+								Dm_user_token: token
+							},
+							name: 'file',
+							formData: {
+								folder: 'HIDDEN_DANGER_FILE'
+							},
+							success: uploadFileRes => {
+								let res = JSON.parse(uploadFileRes.data);
+								if (res.data && res.data.length > 0) {
+									res.data.forEach(i => {
+										i.type = 1;
+										i.fileurl = i.imgaddr;
+										i.fileurlFull = i.url;
+										this.submitFileList.push(i);
+									});
+								}
+							},
+							complete() {
+								uni.hideLoading();
+							}
+						});
+					}
+				});
+			}
+		}
+	}
+</script>
+
+<style lang="scss">
+	.list {
+
+		.item {
+			.la {
+				margin-top: 30rpx;
+			}
+
+			.line {
+				display: flex;
+				align-items: center;
+				.icon{
+					width: 52rpx;
+					height: 52rpx;
+					margin-left: 40rpx;
+				}
+				textarea {
+					box-sizing: border-box;
+					width: 690rpx;
+					min-height: 160rpx;
+					background-color: #f7f7f7;
+					font-size: 28rpx;
+					color: #333333;
+					padding: 24rpx;
+					border-radius: 8rpx;
+					margin-bottom: 30rpx;
+					margin-top: 20rpx;
+				}
+			}
+
+			.sel_wrap {
+				flex: 1;
+				height: 90rpx;
+				display: flex;
+				justify-content: space-between;
+				align-items: center;
+				border-bottom: 1rpx solid #E5E5E5;
+			}
+			.radio_wrap{
+				margin-top: 20rpx;
+				width: 100%;
+				display: flex;
+				justify-content: space-between;
+				.ite{
+					width: 216rpx;
+					height: 68rpx;
+					background: #F7F7F7;
+					border-radius: 36rpx;
+					font-size: 30rpx;
+					display: flex;
+					align-items: center;
+					justify-content: center;
+				}
+				.active{
+					color: $primaryColor;
+					border-color: $primaryColor;
+					background: rgba(0,104,255,0.1);
+				}
+			}
+			.upload_wrap {
+				display: flex;
+				flex-wrap: wrap;
+				margin-bottom: 30rpx;
+			}
+
+			.upload_file {
+				margin-top: 24rpx;
+				width: 156rpx;
+				height: 156rpx;
+				margin-right: 20rpx;
+				border: 2rpx solid #e5e5e5;
+				background: #f7f7f7;
+				color: #666666;
+				font-size: 22rpx;
+				display: flex;
+				flex-direction: column;
+				align-items: center;
+				justify-content: center;
+				position: relative;
+
+				&:nth-of-type(4n) {
+					margin-right: 0;
+				}
+
+				.close {
+					position: absolute;
+					right: -20rpx;
+					top: -20rpx;
+					z-index: 9999;
+				}
+
+				image {
+					width: 100%;
+					height: 100%;
+				}
+
+				video {
+					width: 100%;
+					height: 100%;
+				}
+			}
+
+		}
+	}
+	.sel_upload_wrap {
+		width: 100%;
+		border-top: 1px solid #333333;
+		box-shadow: 0 1 1 #333333;
+
+		.btn {
+			height: 90rpx;
+			line-height: 90rpx;
+			text-align: center;
+		}
+	}
+	.sub_btn {
+		position: fixed;
+		bottom: 68rpx;
+		left: 40rpx;
+		width: 670rpx;
+		height: 88rpx;
+		background: $primaryColor;
+		box-shadow: 0rpx 8rpx 20rpx 0rpx rgba(0, 104, 255, 0.3);
+		border-radius: 44rpx;
+		display: flex;
+		align-items: center;
+		justify-content: center;
+		font-weight: 500;
+		font-size: 32rpx;
+		color: #FFFFFF;
+	}
+	.appr_modal {
+		padding: 36rpx 30rpx 0;
+		height: calc( 100vh - 120rpx );
+		.title {
+			font-weight: 600;
+			font-size: 32rpx;
+			color: #222222;
+			margin-bottom: 40rpx;
+			text-align: center;
+		}
+		
+		.search_wrap {
+			display: flex;
+			align-items: center;
+			width: 100%;
+			height: 76rpx;
+			background: #f2f2f2;
+			border-radius: 38rpx;
+			padding-left: 30rpx;
+			input{
+				flex: 1;
+			}
+			.search {
+				width: 28rpx;
+				height: 28rpx;
+			}
+		}
+		.modal_list{
+			height: calc( 100% - 360rpx );
+			.item{
+				display: flex;
+				align-items: center;
+				justify-content: space-between;
+				height: 100rpx;
+				font-size: 30rpx;
+				border-bottom: 1px solid #E5E5E5;
+				image{
+					width: 40rpx;
+					height: 40rpx;
+				}
+			}
+			.active{
+				color: $primaryColor;
+			}
+		}
+		
+	}
+</style>
\ No newline at end of file

--
Gitblit v1.9.3