dedsudiyu 3 napja
szülő
commit
9b3ed7caac

+ 48 - 0
pages_hazardousWasteRecycling/api/index.js

@@ -24,6 +24,30 @@ export const hwmsAppWasteOrderWasteList = (data) => {
 		data: { ...data }
 	})
 };
+//称重登记详情
+export const hwmsAppWasteOrderWasteDetail = (data) => {
+	return apiResquest({
+		url: `/hwms/app/wasteOrder/wasteDetail`,
+		method: 'POST',
+		data: { ...data }
+	})
+};
+//危废登记添加
+export const hwmsAppRegisterOrderAdd = (data) => {
+	return apiResquest({
+		url: `/hwms/app/registerOrder/add`,
+		method: 'POST',
+		data: { ...data }
+	})
+};
+//危废登记单详情
+export const hwmsAppRegisterOrderDetail = (data) => {
+	return apiResquest({
+		url: `/hwms/app/registerOrder/detail`,
+		method: 'POST',
+		data: { ...data }
+	})
+};
 
 //获取危废回收实验室列表
 export const hwmsAppWasteOrderList = (data) => {
@@ -40,4 +64,28 @@ export const hwmsAppWasteOrderAdd = (data) => {
 		method: 'POST',
 		data: { ...data }
 	})
+};
+//查询报备人已经报备的项目
+export const hwmsAppWasteOrderWasteItems = (data) => {
+	return apiResquest({
+		url: `/hwms/app/wasteOrder/wasteItems`,
+		method: 'POST',
+		data: { ...data }
+	})
+};
+//历史记录列表
+export const hwmsAppWasteOrderHistoryList = (data) => {
+	return apiResquest({
+		url: `/hwms/app/wasteOrder/historyList`,
+		method: 'POST',
+		data: { ...data }
+	})
+};
+//历史记录详情
+export const hwmsAppWasteOrderHistoryDetail = (data) => {
+	return apiResquest({
+		url: `/hwms/app/wasteOrder/historyDetail`,
+		method: 'POST',
+		data: { ...data }
+	})
 };

+ 84 - 99
pages_hazardousWasteRecycling/views/historicalRecords/index.vue

@@ -1,149 +1,110 @@
 <!-- 历史记录 -->
 <template>
 	<view class="historicalRecords">
-		<view class="picker-box">
-			<picker @change="subChange" :value="subIndex" :range="subList" :range-key="'subName'">
-				<view class="picker-p" :class="queryParams.subId?'check-picker-p':''">{{queryParams.subId?queryParams.subName:'全部实验室'}}</view>
-			</picker>
+		<view class="picker-box-max">
+			<view class="picker-box">
+				<picker @change="subChange" :value="subIndex" :range="subList" :range-key="'subName'">
+					<view class="picker-p" :class="queryParams.subId?'check-picker-p':''">{{queryParams.subId?queryParams.subName:'全部实验室'}}</view>
+				</picker>
+			</view>
+			<view class="picker-box-2" @click="resetButton()">重置</view>
 		</view>
 		<view class="check-button-max-box">
-			<view @click="checkButton(1)" :class="typeIndex == 1?'check-p':''">已报备待回收</view>
-			<view @click="checkButton(2)" :class="typeIndex == 2?'check-p':''">已回收</view>
-			<view @click="checkButton(3)" :class="typeIndex == 3?'check-p':''">超期未回收</view>
+			<view @click="checkButton('0')" :class="typeIndex == '0'?'check-p':''">已报备待回收</view>
+			<view @click="checkButton('1')" :class="typeIndex == '1'?'check-p':''">已回收</view>
+			<view @click="checkButton('2')" :class="typeIndex == '2'?'check-p':''">超期未回收</view>
 		</view>
 		<scroll-view scroll-y @scrolltolower="scrollGet" class="for-max-box">
 			<view class="for-max-big-box" @click="goPage(item)"
 			v-for="(item,index) in dataList" :key="index">
-				<view class="for-title-p">报备单编号:{{item.listNewData1}}</view>
-				<view class="for-text-p">报备实验室:{{item.listNewData2}}</view>
-				<view class="for-text-p">上门回收日期:{{item.listNewData3}}</view>
-				<view class="for-text-p">废物种类:{{item.listNewData4}}</view>
-				<view class="for-text-p">报备人:{{item.listNewData5}}</view>
-				<view class="for-text-p">报备时间:{{item.listNewData6}}</view>
-				<view class="for-type-p" :class="item.listNewData0==1?'colorA':(item.listNewData0==2?'colorB':(item.listNewData0==3?'colorC':''))">{{item.listNewData0==1?'已报备待回收':(item.listNewData0==2?'已回收':(item.listNewData0==3?'超期未回收':''))}}</view>
+				<view class="for-title-p">报备单编号:{{item.reportNo}}</view>
+				<view class="for-text-p">报备实验室:{{item.subName}}({{item.roomNum}})</view>
+				<view class="for-text-p">上门回收日期:{{item.expectTime}}({{item.expectWeek}})</view>
+				<view class="for-text-p">废物种类:{{item.typeNum}}</view>
+				<view class="for-text-p">报备人:{{item.reportName}}</view>
+				<view class="for-text-p">报备时间:{{item.reportTime}}</view>
+				<view class="for-type-p" :class="item.status=='0'?'colorA':(item.status=='1'?'colorB':(item.status=='2'?'colorC':''))">{{item.status=='0'?'已报备待回收':(item.status=='1'?'已回收':(item.status=='2'?'超期未回收':''))}}</view>
 				<view class="for-icon-p">》</view>
 			</view>
+			<view class="get-null-box" v-if="getDataType">暂无更多数据</view>
 		</scroll-view>
 	</view>
 </template>
 
 <script>
 	import {
-		demo1,
-		demo2
+		parseTime
+	} from '@/component/public.js'
+	import {
+		hwmsAppWasteOrderList,
+		hwmsAppWasteOrderHistoryList,
 	} from '@/pages_hazardousWasteRecycling/api/index.js'
 	export default {
 		data() {
 			return {
 				subIndex:'',
 				subList:[],
-				subIndex:'',
 				// 查询参数
 				getDataType: false,
 				queryParams: {
 					page: 1,
 					pageSize: 10,
-					subId:"",
+					subId:null,
+					subName:null,
 				},
 				total: 0,
 				dataList: [],
-				typeIndex:1,
+				typeIndex:"0",
 			}
 		},
 		onLoad(option) {
 			
 		},
 		onShow() {
-
+			this.hwmsAppWasteOrderList();
+			this.getList();
 		},
 		mounted() {
-			this.$set(this,'dataList',[
-					{
-						listNewData0:'1',
-						listNewData1:'HW202510400001',
-						listNewData2:'植物营养实验室(A201)',
-						listNewData3:'2025-11-05(星期四)',
-						listNewData4:'4',
-						listNewData5:'王二小(2020110010)',
-						listNewData6:'2025-11-04 10:10:09',
-					},
-					{
-						listNewData0:'1',
-						listNewData1:'HW202510400001',
-						listNewData2:'植物营养实验室(A201)',
-						listNewData3:'2025-11-05(星期四)',
-						listNewData4:'4',
-						listNewData5:'王二小(2020110010)',
-						listNewData6:'2025-11-04 10:10:09',
-					},
-					{
-						listNewData0:'2',
-						listNewData1:'HW202510400001',
-						listNewData2:'植物营养实验室(A201)',
-						listNewData3:'2025-11-05(星期四)',
-						listNewData4:'4',
-						listNewData5:'王二小(2020110010)',
-						listNewData6:'2025-11-04 10:10:09',
-					},
-					{
-						listNewData0:'2',
-						listNewData1:'HW202510400001',
-						listNewData2:'植物营养实验室(A201)',
-						listNewData3:'2025-11-05(星期四)',
-						listNewData4:'4',
-						listNewData5:'王二小(2020110010)',
-						listNewData6:'2025-11-04 10:10:09',
-					},
-					{
-						listNewData0:'3',
-						listNewData1:'HW202510400001',
-						listNewData2:'植物营养实验室(A201)',
-						listNewData3:'2025-11-05(星期四)',
-						listNewData4:'4',
-						listNewData5:'王二小(2020110010)',
-						listNewData6:'2025-11-04 10:10:09',
-					},
-					{
-						listNewData0:'3',
-						listNewData1:'HW202510400001',
-						listNewData2:'植物营养实验室(A201)',
-						listNewData3:'2025-11-05(星期四)',
-						listNewData4:'4',
-						listNewData5:'王二小(2020110010)',
-						listNewData6:'2025-11-04 10:10:09',
-					},
-					{
-						listNewData0:'1',
-						listNewData1:'HW202510400001',
-						listNewData2:'植物营养实验室(A201)',
-						listNewData3:'2025-11-05(星期四)',
-						listNewData4:'4',
-						listNewData5:'王二小(2020110010)',
-						listNewData6:'2025-11-04 10:10:09',
-					},
-					{
-						listNewData0:'2',
-						listNewData1:'HW202510400001',
-						listNewData2:'植物营养实验室(A201)',
-						listNewData3:'2025-11-05(星期四)',
-						listNewData4:'4',
-						listNewData5:'王二小(2020110010)',
-						listNewData6:'2025-11-04 10:10:09',
-					},
-				]);
 			
 		},
 		methods: {
+			resetButton(){
+				this.$set(this.queryParams,'page', 1);
+				this.$set(this.queryParams,'subId',null);
+				this.$set(this.queryParams,'subName',null);
+				this.$set(this, 'subIndex', '');
+				this.$set(this, 'getDataType', false);
+				this.getList();
+			},
+			subChange(e){
+				this.$set(this,'subIndex',e.detail.value);
+				this.$set(this.queryParams,'subId',this.subList[e.detail.value].subId);
+				this.$set(this.queryParams,'subName',this.subList[e.detail.value].subName);
+				this.$set(this, 'getDataType', false);
+				this.$set(this.queryParams, 'page', 1);
+				this.getList();
+			},
+			async hwmsAppWasteOrderList(){
+				const {
+					data
+				} = await hwmsAppWasteOrderList();
+				if (data.code == 200) {
+					this.$set(this,'subList',data.data.subjectVos);
+				}
+			},
 			//详情跳转
 			goPage(item){
 				uni.navigateTo({
-					url: "/pages_hazardousWasteRecycling/views/historicalRecords/infoPage",
+					url: "/pages_hazardousWasteRecycling/views/historicalRecords/infoPage?id="+item.id,
 				});
 			},
 			//选项切换
 			checkButton(type){
 				if(this.typeIndex != type){
 					this.$set(this,'typeIndex',type);
+					this.$set(this, 'getDataType', false);
+					this.$set(this.queryParams, 'page', 1);
+					this.getList();
 				}
 			},
 			//滚动加载事件
@@ -158,14 +119,18 @@
 					})
 				}
 			},
-			//获取实验室列表
+			//获取列表
 			async getList() {
 				let self = this;
 				let obj = JSON.parse(JSON.stringify(this.queryParams));
+				obj.status = this.typeIndex;
 				const {
 					data
-				} = await laboratoryAppletSubList(obj);
+				} = await hwmsAppWasteOrderHistoryList(obj);
 				if (data.code == 200) {
+					for(let i=0;i<data.data.records.length;i++){
+						data.data.records[i].reportTime = parseTime(data.data.records[i].reportTime, "{y}-{m}-{d} {h}:{i}:{s}");
+					}
 					if(self.queryParams.page == 1){
 						this.$set(this, 'dataList', data.data.records);
 						this.$set(this, 'total', data.data.total);
@@ -190,9 +155,29 @@
 		height: 100%;
 		display flex;
 		flex-direction column;
+		.get-null-box {
+			height: 100rpx;
+			line-height: 100rpx;
+			color: #999;
+			text-align center;
+		}
+		.picker-box-max{
+			display: flex;
+		}
+		.picker-box-2{
+			width:100rpx;
+			border:1rpx solid #dedede;
+			color:#999;
+			text-align: center;
+			line-height:60rpx;
+			height:60rpx;
+			margin-top: 20rpx;
+			border-radius:10rpx;
+			background-color: #fff;
+		}
 		.picker-box{
 			height:60rpx;
-			width:700rpx;
+			width:572rpx;
 			margin:20rpx 25rpx;
 			background-color: #fff
 			border:1rpx solid #dedede;
@@ -248,7 +233,7 @@
 				}
 				.for-type-p{
 					position: absolute;
-					top:24rpx;
+					bottom:76rpx;
 					right:20rpx;
 				}
 				.for-icon-p{

A különbségek nem kerülnek megjelenítésre, a fájl túl nagy
+ 39 - 34
pages_hazardousWasteRecycling/views/historicalRecords/infoPage.vue


+ 77 - 28
pages_hazardousWasteRecycling/views/recyclingReportRecord/index.vue

@@ -57,9 +57,6 @@
 			</view>
 			<view class="submit-button" @click="submitButton">填写完毕,立即报备</view>
 		</view>
-		<!-- <view class="recyclingReportRecord-bottom-box">
-			
-		</view> -->
 	</view>
 </template>
 
@@ -67,12 +64,14 @@
 	import {
 		hwmsAppWasteOrderList,
 		hwmsAppWasteOrderAdd,
+		hwmsAppWasteOrderWasteItems,
 	} from '@/pages_hazardousWasteRecycling/api/index.js'
 	export default {
 		data() {
 			return {
 				timeData:'',
 				addForm:{
+					id:null,
 					expectTime:'',
 					subId:'',
 					subName:'',
@@ -95,6 +94,7 @@
 			this.hwmsAppWasteOrderList();
 		},
 		methods: {
+			//提交
 			submitButton(){
 				let self = this;
 				if(!this.addForm.subId){
@@ -116,6 +116,15 @@
 					return
 				}
 				for(let i=0;i<self.addForm.formData4.length;i++){
+					if(!self.addForm.formData4[i].forData1){
+						uni.showToast({
+							title: '第'+(i+1)+'个类型没有选择',
+							icon: "none",
+							mask: true,
+							duration: 2000
+						});
+						return
+					}
 					if(self.addForm.formData4[i].forData4 == 0){
 						uni.showToast({
 							title: self.addForm.formData4[i].forData2+'没有填写数量',
@@ -136,6 +145,7 @@
 					return
 				}
 				let obj = {
+					id:this.addForm.id,
 					expectTime:this.addForm.expectTime,
 					remark:this.addForm.remark,
 					subId:this.addForm.subId,
@@ -147,8 +157,19 @@
 						typeId:self.addForm.formData4[i].forData1,
 					})
 				}
-				this.hwmsAppWasteOrderAdd(obj);
+				uni.showModal({
+					// title: '确认要退出吗?',
+					content: '确认提交?',
+					cancelColor: "#999",
+					confirmColor: "#0183FA",
+					success: function(res) {
+						if (res.confirm) {
+							self.hwmsAppWasteOrderAdd(obj);
+						} else if (res.cancel) {}
+					}
+				});
 			},
+			//新增
 			async hwmsAppWasteOrderAdd(obj){
 				let self = this;
 				const {
@@ -175,30 +196,6 @@
 					this.$set(this.addForm,'expectTime',data.data.expectTime);
 					this.$set(this,'subList',data.data.subjectVos);
 					this.$set(this,'dialogOptionForList',data.data.wasteOrder);
-					this.initialize(1);
-				}
-			},
-			//初始化
-			initialize(type){
-				let self = this;
-				if(type == 1){
-					//无数据-初始化
-					for(let i=0;i<self.dialogOptionForList.length;i++){
-						if(i<4){
-							let obj = {
-								forData1:self.dialogOptionForList[i].id,
-								forData2:self.dialogOptionForList[i].wasteName,
-								forData3:i,
-								forData4:0,
-								forData5:self.dialogOptionForList[i].unit,
-								forList:self.dialogOptionForList,
-							}
-							self.addForm.formData4.push(JSON.parse(JSON.stringify(obj)))
-						}
-					}
-					this.filtrateList();
-				}else if(type == 2){
-					//有数据-初始化
 				}
 			},
 			//选中实验室
@@ -206,6 +203,58 @@
 				this.$set(this.addForm,'subId',this.subList[e.detail.value].subId);
 				this.$set(this.addForm,'subName',this.subList[e.detail.value].subName);
 				this.$set(this.addForm,'subIndex',e.detail.value);
+				this.hwmsAppWasteOrderWasteItems(this.subList[e.detail.value].subId);
+			},
+			async hwmsAppWasteOrderWasteItems(subId){
+				let self = this;
+				const {
+					data
+				} = await hwmsAppWasteOrderWasteItems({subId:subId});
+				if (data.code == 200) {
+					if(data.data.id){
+						//编辑
+						let list = [];
+						for(let i=0;i<data.data.wasteTypeVos.length;i++){
+							for(let o=0;o<self.dialogOptionForList.length;o++){
+								if(data.data.wasteTypeVos[i].typeId == self.dialogOptionForList[o].id){
+									let obj = {
+										forData1:self.dialogOptionForList[o].id,
+										forData2:self.dialogOptionForList[o].wasteName,
+										forData3:o,
+										forData4:data.data.wasteTypeVos[i].quantity,
+										forData5:self.dialogOptionForList[o].unit,
+										forList:self.dialogOptionForList,
+									}
+									list.push(JSON.parse(JSON.stringify(obj)))
+								}
+							}
+						}
+						this.$set(self.addForm,'id',data.data.id);
+						this.$set(self.addForm,'remark',data.data.remark);
+						this.$set(self.addForm,'formData4',list);
+						this.filtrateList();
+					}else{
+						//无数据-初始化
+						let list = [];
+						for(let i=0;i<self.dialogOptionForList.length;i++){
+							if(i<4){
+								let obj = {
+									forData1:self.dialogOptionForList[i].id,
+									forData2:self.dialogOptionForList[i].wasteName,
+									forData3:i,
+									forData4:0,
+									forData5:self.dialogOptionForList[i].unit,
+									forList:self.dialogOptionForList,
+								}
+								list.push(JSON.parse(JSON.stringify(obj)))
+							}
+						}
+						this.$set(self.addForm,'id',null);
+						this.$set(self.addForm,'remark','');
+						this.$set(self.addForm,'formData4',list);
+						this.filtrateList();
+					}
+				}
 			},
 			//选中类型
 			forChange(index,e){

+ 122 - 59
pages_hazardousWasteRecycling/views/weighingRegistration/addPage.vue

@@ -6,27 +6,27 @@
 			<view class="content-box" style="padding-bottom:20rpx;">
 				<view class="sub-picker-box">
 					<view class="title-box-1" style="width:220rpx;">报备单编号:</view>
-					<view class="text-p-1">{{addForm.newdata1}}</view>
+					<view class="text-p-1">{{addForm.reportNo}}</view>
 				</view>
 				<view class="sub-picker-box">
 					<view class="title-box-1" style="width:220rpx;">实验室:</view>
-					<view class="text-p-1">{{addForm.newdata2}}</view>
+					<view class="text-p-1">{{addForm.subName}}({{addForm.roomNum}})</view>
 				</view>
 				<view class="sub-picker-box">
 					<view class="title-box-1" style="width:220rpx;">上门回收日期:</view>
-					<view class="text-p-1">{{addForm.newdata3}}</view>
+					<view class="text-p-1">{{addForm.expectTime}}({{addForm.expectWeek}})</view>
 				</view>
 				<view class="sub-picker-box">
 					<view class="title-box-1" style="width:220rpx;">废物种类:</view>
-					<view class="text-p-1">{{addForm.newdata4}}</view>
+					<view class="text-p-1">{{addForm.typeNum}}</view>
 				</view>
 				<view class="sub-picker-box">
 					<view class="title-box-1" style="width:220rpx;">报备人:</view>
-					<view class="text-p-1">{{addForm.newdata5}}</view>
+					<view class="text-p-1">{{addForm.reportName}}({{addForm.reportAccount}})</view>
 				</view>
 				<view class="sub-picker-box">
 					<view class="title-box-1" style="width:220rpx;">报备时间:</view>
-					<view class="text-p-1">{{addForm.newdata6}}</view>
+					<view class="text-p-1">{{addForm.reportTime}}</view>
 				</view>
 			</view>
 			<view class="text-title-p">称重登记</view>
@@ -36,7 +36,7 @@
 						<view class="mark-box">*</view>
 						<view class="title-box">类型:</view>
 						<view class="picker-box">
-							<picker @change="(val)=>forChange(index,val)" :value="item.forData3" :range="item.forList" :range-key="'label'">
+							<picker @change="(val)=>forChange(index,val)" :value="item.forData3" :range="item.forList" :range-key="'wasteName'">
 								<view class="picker-p" :class="item.forData1?'check-picker-p':''">{{item.forData1?item.forData2:'请选择危废类型'}}</view>
 							</picker>
 						</view>
@@ -72,91 +72,154 @@
 				<view class="sub-picker-box" style="padding-bottom:50rpx;">
 				</view>
 			</view>
-			<view class="submit-button">登记完成,提交</view>
+			<view class="submit-button" @click="submitButton">登记完成,提交</view>
 		</view>
 	</view>
 </template>
 
 <script>
+	import {
+		parseTime
+	} from '@/component/public.js'
 	import { config } from '@/api/request/config.js'
 	import {
-		demo1,
-		demo2
+		hwmsAppWasteOrderList,
+		hwmsAppWasteOrderWasteDetail,
 	} from '@/pages_hazardousWasteRecycling/api/index.js'
 	export default {
 		data() {
 			return {
 				baseUrl:config.base_url,
 				addForm:{
-					newdata1:'HW202510400001',
-					newdata2:'植物营养实验室(A201)',
-					newdata3:'2025-11-05(星期四)',
-					newdata4:'4',
-					newdata5:'王二小(2020110010)',
-					newdata6:'2025-11-04 10:10:09',
+					expectTime: "",
+					expectWeek: "",
+					id: 0,
+					subId: 0,
+					reportAccount: "",
+					reportName: "",
+					reportNo: "",
+					reportTime: "",
+					roomNum: "",
+					subName: "",
+					typeNum: 0,
 					formData4:[],
 					imgList:[],
 				},
-				subList: [
-					{ subId: 1, subName: "实验室1" },
-					{ subId: 2, subName: "实验室2" },
-					{ subId: 3, subName: "实验室3" },
-				],
 				dialogOptionList:[],
-				dialogOptionForList:[
-					{value:'1',label:'数据1',dict:'斤'},
-					{value:'2',label:'数据2',dict:'公斤'},
-					{value:'3',label:'数据3',dict:'升'},
-					{value:'4',label:'数据4',dict:'毫升'},
-					{value:'5',label:'数据5',dict:'公升'},
-					{value:'6',label:'数据6',dict:'克'},
-				],
+				dialogOptionForList:[],
 			}
 		},
 		onLoad(option) {
-			
+			this.hwmsAppWasteOrderList(option.id);
 		},
 		onShow() {
 
 		},
 		mounted() {
-			this.initialize(1);
 		},
 		methods: {
-			//初始化
-			initialize(type){
+			//提交按钮
+			submitButton(){
 				let self = this;
-				if(type == 1){
-					//无数据-初始化
-					for(let i=0;i<self.dialogOptionForList.length;i++){
-						if(i<4){
-							let obj = {
-								forData1:self.dialogOptionForList[i].value,
-								forData2:self.dialogOptionForList[i].label,
-								forData3:i,
-								forData4:0,
-								forData5:self.dialogOptionForList[i].dict,
-								forList:self.dialogOptionForList,
-							}
-							self.addForm.formData4.push(JSON.parse(JSON.stringify(obj)))
-						}
+				if(!this.addForm.formData4[0]){
+					uni.showToast({
+						title: '请添加危废类型',
+						icon: "none",
+						mask: true,
+						duration: 2000
+					});
+					return
+				}
+				for(let i=0;i<self.addForm.formData4.length;i++){
+					if(!self.addForm.formData4[i].forData1){
+						uni.showToast({
+							title: '第'+(i+1)+'个类型没有选择',
+							icon: "none",
+							mask: true,
+							duration: 2000
+						});
+						return
 					}
-					this.filtrateList();
-				}else if(type == 2){
-					//有数据-初始化
+					if(self.addForm.formData4[i].forData4 == 0){
+						uni.showToast({
+							title: self.addForm.formData4[i].forData2+'没有填写数量',
+							icon: "none",
+							mask: true,
+							duration: 2000
+						});
+						return
+					}
+				}
+				let obj = {
+					id:this.addForm.id,
+					recycleTime:this.addForm.expectTime,
+					subId:this.addForm.subId,
+					registerOrderAddItemBos:[],
+					images:self.addForm.imgList,
+				};
+				for(let i=0;i<self.addForm.formData4.length;i++){
+					obj.registerOrderAddItemBos.push({
+						typeId:self.addForm.formData4[i].forData1,
+						weight:self.addForm.formData4[i].forData4,
+					})
+				}
+				uni.navigateTo({
+					url: "/pages_hazardousWasteRecycling/views/weighingRegistration/signatureComponent?data=" + encodeURIComponent(JSON.stringify(obj))
+				});
+			},
+			async hwmsAppWasteOrderList(id){
+				const {
+					data
+				} = await hwmsAppWasteOrderList();
+				if (data.code == 200) {
+					this.$set(this,'dialogOptionForList',data.data.wasteOrder);
+					this.hwmsAppWasteOrderWasteDetail(id);
 				}
 			},
-			//选中实验室
-			subChange(e) {
-				this.$set(this.addForm,'subId',this.subList[e.detail.value].subId);
-				this.$set(this.addForm,'subName',this.subList[e.detail.value].subName);
-				this.$set(this.addForm,'subIndex',e.detail.value);
+			//详情
+			async hwmsAppWasteOrderWasteDetail(id) {
+				let self = this;
+				const {
+					data
+				} = await hwmsAppWasteOrderWasteDetail({id:id});
+				if (data.code == 200) {
+						let list = [];
+						for(let i=0;i<data.data.wasteOrderDetailItemVos.length;i++){
+							for(let o=0;o<self.dialogOptionForList.length;o++){
+								if(data.data.wasteOrderDetailItemVos[i].typeId == self.dialogOptionForList[o].id){
+									let obj = {
+										forData1:self.dialogOptionForList[o].id,
+										forData2:self.dialogOptionForList[o].wasteName,
+										forData3:o,
+										forData4:data.data.wasteOrderDetailItemVos[i].quantity,
+										forData5:self.dialogOptionForList[o].unit,
+										forList:self.dialogOptionForList,
+									}
+									list.push(JSON.parse(JSON.stringify(obj)))
+								}
+							}
+						}
+							// item2.endDate = parseTime(item2.endDate, "{y}-{m}-{d}");
+						this.$set(self.addForm,'expectTime',data.data.expectTime);
+						this.$set(self.addForm,'expectWeek',data.data.expectWeek);
+						this.$set(self.addForm,'id',data.data.id);
+						this.$set(self.addForm,'subId',data.data.subId);
+						this.$set(self.addForm,'reportAccount',data.data.reportAccount);
+						this.$set(self.addForm,'reportName',data.data.reportName);
+						this.$set(self.addForm,'reportNo',data.data.reportNo);
+						this.$set(self.addForm,'reportTime',parseTime(data.data.reportTime, "{y}-{m}-{d} {h}:{i}:{s}"));
+						this.$set(self.addForm,'roomNum',data.data.roomNum);
+						this.$set(self.addForm,'subName',data.data.subName);
+						this.$set(self.addForm,'typeNum',data.data.typeNum);
+						this.$set(self.addForm,'formData4',list);
+						this.filtrateList();
+				}
 			},
 			//选中类型
 			forChange(index,e){
-				this.$set(this.addForm.formData4[index],'forData1',this.addForm.formData4[index].forList[e.detail.value].value);
-				this.$set(this.addForm.formData4[index],'forData2',this.addForm.formData4[index].forList[e.detail.value].label);
-				this.$set(this.addForm.formData4[index],'forData5',this.addForm.formData4[index].forList[e.detail.value].dict);
+				this.$set(this.addForm.formData4[index],'forData1',this.addForm.formData4[index].forList[e.detail.value].id);
+				this.$set(this.addForm.formData4[index],'forData2',this.addForm.formData4[index].forList[e.detail.value].wasteName);
+				this.$set(this.addForm.formData4[index],'forData5',this.addForm.formData4[index].forList[e.detail.value].unit);
 				this.$set(this.addForm.formData4[index],'forData3',e.detail.value);
 				this.filtrateList();
 			},
@@ -299,7 +362,7 @@
         for(let i=0;i<forList.length;i++){
           let num = 0;
           for(let o=0;o<self.addForm.formData4.length;o++){
-            if(forList[i].value == self.addForm.formData4[o].forData1){
+            if(forList[i].id == self.addForm.formData4[o].forData1){
               num++
               break
             }

+ 34 - 70
pages_hazardousWasteRecycling/views/weighingRegistration/index.vue

@@ -4,42 +4,46 @@
 		<scroll-view scroll-y @scrolltolower="scrollGet" class="for-max-box">
 			<view class="for-max-big-box" v-for="(item,index) in dataList" :key="index">
 				<view class="for-top-title-box">
-					<view>{{item.data1}}{{item.data2?'('+item.data2+')':''}}</view>
-					<view>{{item.data3}}{{item.data3&&item.data4?'/':''}}{{item.data4}}{{item.data4&&item.data5?'/':''}}{{item.data5}}</view>
+					<view>{{item.subName}}{{item.roomNum?'('+item.roomNum+')':''}}</view>
+					<view>{{item.deptName}}{{item.deptName&&item.buildName?'/':''}}{{item.buildName}}{{item.buildName&&item.floorName?'/':''}}{{item.floorName}}</view>
 				</view>
 				<view class="for-big-box" @click="goPage(minItem)"
-				v-for="(minItem,minIndex) in item.listData" :key="minIndex">
+				v-for="(minItem,minIndex) in item.wasteOrderSubItemVos" :key="minIndex">
 					<view class="for-title-box">
 						<view>报备单编号:</view>
-						<view>{{minItem.listNewData2}}</view>
-						<view :class="minItem.listNewData1==1?'colorA':'colorB'">{{minItem.listNewData1==1?'已回收':'待回收'}}</view>
+						<view>{{minItem.reportNo}}</view>
+						<view :class="minItem.status==1?'colorA':'colorB'">{{minItem.status==1?'已回收':'已报备待回收'}}</view>
 					</view>
 					<view class="for-content-box">
 						<view>上门回收日期:</view>
-						<view>{{minItem.listNewData3}}</view>
+						<view>{{minItem.expectTime}}({{minItem.expectWeek}})</view>
 					</view>
 					<view class="for-content-box">
 						<view style="width:160rpx;">废物种类:</view>
-						<view>{{minItem.listNewData4}}</view>
+						<view>{{minItem.typeNum}}</view>
 					</view>
 					<view class="for-content-box">
 						<view style="width:160rpx;">报备人:</view>
-						<view>{{minItem.listNewData5}}</view>
+						<view>{{minItem.reportName}}({{minItem.reportAccount}})</view>
 					</view>
 					<view class="for-content-box">
 						<view style="width:160rpx;">报备时间:</view>
-						<view>{{minItem.listNewData6}}</view>
+						<view>{{minItem.reportTime}}</view>
 					</view>
-					<view class="fop-position-p" v-if="minItem.listNewData1!=1">》</view>
+					<view class="fop-position-p" v-if="minItem.status!=1">》</view>
 				</view>
 			</view>
 			<view class="for-null-p"></view>
+			<view class="get-null-box" v-if="getDataType">暂无更多数据</view>
 		</scroll-view>
 	</view>
 </template>
 
 <script>
 	import {
+		parseTime
+	} from '@/component/public.js'
+	import {
 		hwmsAppWasteOrderWasteList,
 	} from '@/pages_hazardousWasteRecycling/api/index.js'
 	export default {
@@ -59,66 +63,16 @@
 			
 		},
 		onShow() {
+			this.getList();
 		},
 		mounted() {
-			this.getList();
-			this.$set(this,'dataList',[{
-				data1:'植物营养实验室',
-				data2:'A201',
-				data3:'资源环境学院',
-				data4:'理科楼',
-				data5:'3楼',
-				listData:[
-					{
-						listNewData1:'1',
-						listNewData2:'HW202510400001',
-						listNewData3:'2025-11-05(星期四)',
-						listNewData4:'4',
-						listNewData5:'王二小(2020110010)',
-						listNewData6:'2025-11-04 10:10:09',
-					},
-					{
-						listNewData1:'1',
-						listNewData2:'HW202510400001',
-						listNewData3:'2025-11-05(星期四)',
-						listNewData4:'4',
-						listNewData5:'王二小(2020110010)',
-						listNewData6:'2025-11-04 10:10:09',
-					},
-					{
-						listNewData1:'1',
-						listNewData2:'HW202510400001',
-						listNewData3:'2025-11-05(星期四)',
-						listNewData4:'4',
-						listNewData5:'王二小(2020110010)',
-						listNewData6:'2025-11-04 10:10:09',
-					},
-					{
-						listNewData1:'2',
-						listNewData2:'HW202510400001',
-						listNewData3:'2025-11-05(星期四)',
-						listNewData4:'4',
-						listNewData5:'王二小(2020110010)',
-						listNewData6:'2025-11-04 10:10:09',
-					},
-					{
-						listNewData1:'2',
-						listNewData2:'HW202510400001',
-						listNewData3:'2025-11-05(星期四)',
-						listNewData4:'4',
-						listNewData5:'王二小(2020110010)',
-						listNewData6:'2025-11-04 10:10:09',
-					},
-				],
-			}]);
 		},
 		methods: {
 			//点击跳转
 			goPage(minItem){
-				console.log(minItem)
 				if(minItem.listNewData1 != 1){
 					uni.navigateTo({
-						url: "/pages_hazardousWasteRecycling/views/weighingRegistration/addPage",
+						url: "/pages_hazardousWasteRecycling/views/weighingRegistration/addPage?id="+minItem.id,
 					});
 				}
 			},
@@ -142,6 +96,11 @@
 					data
 				} = await hwmsAppWasteOrderWasteList(obj);
 				if (data.code == 200) {
+					for(let i=0;i<data.data.records.length;i++){
+						for(let o=0;o<data.data.records[i].wasteOrderSubItemVos.length;o++){
+							data.data.records[i].wasteOrderSubItemVos[o].reportTime = parseTime(data.data.records[i].wasteOrderSubItemVos[o].reportTime, "{y}-{m}-{d} {h}:{i}:{s}")
+						}
+					}
 					if(self.queryParams.page == 1){
 						this.$set(this, 'dataList', data.data.records);
 						this.$set(this, 'total', data.data.total);
@@ -167,6 +126,12 @@
 		display flex;
 		flex-direction column;
 		background-color: #fff;
+		.get-null-box {
+			height: 100rpx;
+			line-height: 100rpx;
+			color: #999;
+			text-align center;
+		}
 		.for-max-box{
 			flex: 1;
 			overflow-y scroll;
@@ -175,28 +140,27 @@
 			}
 			.for-max-big-box{
 				.for-top-title-box{
-					height:100rpx;
-					padding:0 20rpx;
-					line-height:rpx;
-					display: flex
+					// height:100rpx;
+					padding:30rpx 20rpx 0;
+					// display: flex
 					view{
 						flex:1;
 					}
 					view:nth-child(1){
 						color:#0183FA;
 						font-size:34rpx;
-						line-height:100rpx;
+						line-height:40rpx;
 					}
 					view:nth-child(2){
+						margin-top:20rpx;
 						color:#666;
-						text-align: right;
-						line-height:104rpx;
+						line-height:30rpx;
 						font-size:28rpx;
 					}
 				}
 				.for-big-box{
 					width:670rpx;
-					margin:0 40rpx 40rpx;
+					margin:40rpx 40rpx 0;
 					box-shadow: 0 0 8rpx 6rpx rgba(0, 0, 0, 0.1);
 					border-radius: 10rpx;
 					position: relative;

+ 31 - 43
pages_hazardousWasteRecycling/views/weighingRegistration/infoPage.vue

@@ -2,31 +2,31 @@
 <template>
 	<view class="weighingRegistrationInfoPage">
 		<view class="title-p" style="margin-top:20rpx;">基础信息</view>
-		<view class="title-weight-p">称重登记单编号:{{newData.listNewData1}}</view>
-		<view class="text-p">实验室:{{newData.listNewData2}}</view>
-		<view class="text-p">上门回收日期:{{newData.listNewData3}}</view>
-		<view class="text-p">报备人:{{newData.listNewData4}}</view>
-		<view class="text-p">报备时间:{{newData.listNewData5}}</view>
-		<view class="text-p">称重登记人:{{newData.listNewData6}}</view>
-		<view class="text-p">称重登记时间:{{newData.listNewData7}}</view>
-		<view class="text-p">回收人员确认时间:{{newData.listNewData8}}</view>
+		<view class="title-weight-p">称重登记单编号:{{newData.registerNo}}</view>
+		<view class="text-p">实验室:{{newData.subName}}({{newData.roomNum}})</view>
+		<view class="text-p">上门回收日期:{{newData.recycleTime}}({{newData.recycleWeek}})</view>
+		<view class="text-p">报备人:{{newData.reportName}}({{newData.reportAccount}})</view>
+		<view class="text-p">报备时间:{{newData.reportTime}}</view>
+		<view class="text-p">称重登记人:{{newData.register}}({{newData.registerNum}})</view>
+		<view class="text-p">称重登记时间:{{newData.registerTime}}</view>
+		<view class="text-p">回收人员确认时间:{{newData.confirmTime}}</view>
 		<view class="signature-box">
 			<view>回收人员签名:</view>
-			<img :src="newData.listNewData9">
+			<img :src="baseUrl+newData.collectorSign">
 		</view>
 		<view class="title-p">称重登记内容</view>
 		<view class="text-weight-box">
 			<view>危险废物种类</view>
-			<view>共{{dataList.length}}种</view>
+			<view>共{{newData.details.length}}种</view>
 		</view>
-		<view class="text-box" v-for="(item,index) in dataList" :key="index">
-			<view>{{item.name}}</view>
-			<view>{{item.value}}{{item.unit}}</view>
+		<view class="text-box" v-for="(item,index) in newData.details" :key="index">
+			<view>{{item.typeName}}</view>
+			<view>{{item.weight}}kg</view>
 		</view>
 		<view class="img-box">
 			<view>图片</view>
 			<view>
-				<img :src="img" v-for="(img,imgIndex) in imgList" :key="imgIndex">
+				<img :src="baseUrl+img" v-for="(img,imgIndex) in newData.images" :key="imgIndex">
 			</view>
 		</view>
 		<view class="flex-null-p"></view>
@@ -35,41 +35,21 @@
 
 <script>
 	import {
-		demo1,
-		demo2
+		parseTime
+	} from '@/component/public.js'
+	import { config } from '@/api/request/config.js'
+	import {
+		hwmsAppRegisterOrderDetail,
 	} from '@/pages_hazardousWasteRecycling/api/index.js'
 	export default {
 		data() {
 			return {
-				newData:{
-					listNewData0:'1',
-					listNewData1:'HW202510400001',
-					listNewData2:'植物营养实验室(A201)',
-					listNewData3:'2025-11-05(星期四)',
-					listNewData4:'王二小(2020110010)',
-					listNewData5:'2025-11-04 10:10:09',
-					listNewData6:'2025-11-04 10:10:09',
-					listNewData7:'2025-11-04 10:10:09',
-					listNewData8:'2025-11-04 10:10:09',
-					listNewData9:'https://img0.baidu.com/it/u=966104283,4150027431&fm=253&fmt=auto&app=120&f=JPEG?w=667&h=500',
-				},
-				dataList:[
-					{name:'实验室废液',value:'1',unit:'桶'},
-					{name:'实验室废固',value:'2',unit:'袋'},
-					{name:'动物解剖废弃物',value:'3',unit:'袋'},
-					{name:'废旧试剂',value:'4',unit:'支'},
-					{name:'剧毒废弃化学品',value:'5',unit:'瓶'},
-					{name:'电池',value:'6',unit:'枚'},
-				],
-				imgList:[
-					'https://img0.baidu.com/it/u=966104283,4150027431&fm=253&fmt=auto&app=120&f=JPEG?w=667&h=500',
-					'https://img0.baidu.com/it/u=966104283,4150027431&fm=253&fmt=auto&app=120&f=JPEG?w=667&h=500',
-					'https://img0.baidu.com/it/u=966104283,4150027431&fm=253&fmt=auto&app=120&f=JPEG?w=667&h=500',
-				],
+				baseUrl:config.base_url,
+				newData:{},
 			}
 		},
 		onLoad(option) {
-			
+			this.hwmsAppRegisterOrderDetail(option.id);
 		},
 		onShow() {
 
@@ -78,7 +58,15 @@
 			
 		},
 		methods: {
-			
+			async hwmsAppRegisterOrderDetail(id){
+				const {
+					data
+				} = await hwmsAppRegisterOrderDetail({id:id});
+				if (data.code == 200) {
+					data.data.reportTime = parseTime(data.data.reportTime, "{y}-{m}-{d} {h}:{i}:{s}")
+					this.$set(this,'newData',data.data);
+				}
+			},
 		},
 	}
 </script>

+ 64 - 18
pages_hazardousWasteRecycling/views/weighingRegistration/signatureComponent.vue

@@ -20,20 +20,28 @@
 </template>
 <script>
 	import {
+		hwmsAppRegisterOrderAdd,
+	} from '@/pages_hazardousWasteRecycling/api/index.js'
+	import {
 		config
 	} from '@/api/request/config.js'
 	export default {
 		data() {
 			return {
+				newData:null,
 				baseUrl: config.base_url,
 				//签名确认状态
 				agreementType:false,
 				ctx: null, // Canvas上下文
 				points: [], // 存储笔画点
 				isDrawing: false, // 是否正在绘制
-				lastPoint: null // 上一个点(用于笔锋计算)
+				lastPoint: null, // 上一个点(用于笔锋计算)
+				signatureType:false,
 			};
 		},
+		onLoad(option) {
+			this.$set(this,'newData',JSON.parse(decodeURIComponent(option.data)));
+		},
 		mounted() {
 			// 获取Canvas上下文
 			this.ctx = uni.createCanvasContext('signCanvas', this);
@@ -45,6 +53,7 @@
 			},
 			// 1. 触摸开始
 			handleTouchStart(e) {
+				this.$set(this,'signatureType',true);
 				const touch = e.touches[0];
 				this.startDrawing(touch.x, touch.y);
 			},
@@ -111,11 +120,11 @@
 
 			// 4. 清空画布
 			clearCanvas() {
+				this.$set(this,'signatureType',false);
 				this.ctx.clearRect(0, 0, 750, 400); // 尺寸需与canvas实际宽高匹配
 				this.ctx.draw(true);
 				this.points = [];
 			},
-
 			// 5. 保存为图片
 			saveSignature() {
 				let self = this;
@@ -128,22 +137,40 @@
 					});
 					return
 				}
-				uni.canvasToTempFilePath({
-					canvasId: 'signCanvas',
-					success: (res) => {
-						const tempFilePath = res.tempFilePath; // 小程序/APP端为临时路径
-						// H5端可能需要特殊处理,部分平台返回base64[citation:1]
-						uni.showToast({
-							title: '保存成功'
-						});
-						console.log('tempFilePath',tempFilePath);
-						self.uploadImg(tempFilePath);
-						// 这里可以将 tempFilePath 上传至服务器或展示预览
-					},
-					fail: (err) => {
-						console.error('保存失败', err);
+				if(!this.signatureType){
+					uni.showToast({
+						title: "请签名",
+						icon: "none",
+						mask: true,
+						duration: 2000
+					});
+					return
+				}
+				uni.showModal({
+					// title: '确认要退出吗?',
+					content: '确认提交?',
+					cancelColor: "#999",
+					confirmColor: "#0183FA",
+					success: function(res) {
+						if (res.confirm) {
+							uni.canvasToTempFilePath({
+								canvasId: 'signCanvas',
+								success: (res) => {
+									const tempFilePath = res.tempFilePath; // 小程序/APP端为临时路径
+									// H5端可能需要特殊处理,部分平台返回base64[citation:1]
+									uni.showToast({
+										title: '保存成功'
+									});
+									self.uploadImg(tempFilePath);
+									// 这里可以将 tempFilePath 上传至服务器或展示预览
+								},
+								fail: (err) => {
+									console.error('保存失败', err);
+								}
+							}, self);
+						} else if (res.cancel) {}
 					}
-				}, this);
+				});
 			},
 			
 			async uploadImg(tempFilePaths) {
@@ -165,7 +192,8 @@
 					success: (uploadFileRes) => {
 						let res = JSON.parse(uploadFileRes.data);
 						if (res.code == 200) {
-							
+							self.$set(self.newData,'collectorSign',res.data.url);
+							self.hwmsAppRegisterOrderAdd();
 						} else {
 							uni.showToast({
 								title: res.msg,
@@ -181,6 +209,24 @@
 					}
 				});
 			},
+			async hwmsAppRegisterOrderAdd(){
+				const {
+					data
+				} = await hwmsAppRegisterOrderAdd(this.newData);
+				if (data.code == 200) {
+					uni.showToast({
+						title: '提交成功',
+						icon: "none",
+						mask: true,
+						duration: 2000
+					});
+					setTimeout(function() {
+						uni.navigateBack({
+							delta: 2
+						});
+					}, 2000);
+				}
+			},
 		}
 	}
 </script>