dedsudiyu 11 місяців тому
батько
коміт
611cdc05f7

+ 18 - 0
pages_manage/api/index.js

@@ -193,5 +193,23 @@ export const laboratoryAppletEditApp  = (data) => {
     })
 };
 
+//分级管控-列表
+export const laboratoryGradeManageList  = (data) => {
+    return apiResquest({
+        url: '/laboratory/gradeManage/list',
+        method: 'POST',
+        data: data,
+    })
+};
+
+//分级管控-执行
+export const laboratoryGradeManageExecute  = (data) => {
+    return apiResquest({
+        url: '/laboratory/gradeManage/execute',
+        method: 'POST',
+        data: data,
+    })
+};
+
 
 

+ 43 - 53
pages_manage/views/gradingControl/gradingControl.vue

@@ -5,14 +5,14 @@
 			<view class="for-box" v-for="(item,index) in dataList" :key="index" @click="tableButton(item)">
 				<view class="for-box-left">
 					<view class="for-name-box">
-						<view>{{item.data1}}</view>
-						<view :class="item.data6?'colorA':'colorB'">{{item.data6?'已执行':'未执行'}}</view>
+						<view>{{item.name}}</view>
+						<view :class="item.status == 1?'colorA':'colorB'">{{item.status == 1?'已执行':'未执行'}}</view>
 					</view>
+					<view class="for-dept-box">{{item.deptName}}</view>
 					<view class="for-type-box">
-						<view>{{item.data4}}</view>
-						<view>{{item.data5}}</view>
+						<view>{{item.typeName}}</view>
+						<view>{{item.levelName}}</view>
 					</view>
-					<view class="for-dept-box">{{item.data3}}</view>
 				</view>
 				<view class="for-box-right">
 					<img src="@/pages_manage/images/icon_04.png">
@@ -24,6 +24,9 @@
 </template>
 
 <script>
+	import {
+		laboratoryGradeManageList,
+	} from '@/pages_manage/api/index.js'
 	export default {
 		name: "gradingControl",
 		data() {
@@ -32,38 +35,22 @@
 				queryParams: {
 					page: 1,
 					pageSize: 10,
+					name: "",
+					deptId: null,
+					typeId: null,
+					levelId: null,
 				},
 				getDataType: false,
 				//列表数据
-				dataList: [{
-					data1: '管控名称管控名称管控名称管控名称管控名称管控名称管控名称管控名称管控名称管控名称管控名称管控名称',
-					data2: '管控描述管控描述管控描述管控描述管控描述管控描述管控描述管控描述管控描述管控描述管控描述管控描述管控描述管控描述管控描述管控描述管控描述管控描述管控描述管控描述管控描述管控描述管控描述管控描述管控描述管控描述管控描述管控描述',
-					data3: '二级单位',
-					data4: '安全分类',
-					data5: '安全分级',
-					data6: true,
-					data7: '执行人',
-					data8: '执行时间',
-					data9: '执行备注',
-				}, {
-					data1: '管控名称管控名称管控名称管控名称管控名称管控名称管控名称管控名称管控名称管控名称管控名称管控名称',
-					data2: '管控描述管控描述管控描述管控描述管控描述管控描述管控描述管控描述管控描述管控描述管控描述管控描述管控描述管控描述管控描述管控描述管控描述管控描述管控描述管控描述管控描述管控描述管控描述管控描述管控描述管控描述管控描述管控描述',
-					data3: '二级单位',
-					data4: '安全分类',
-					data5: '安全分级',
-					data6: false,
-					data7: '执行人',
-					data8: '执行时间',
-					data9: '执行备注',
-				}, ],
+				dataList: [],
 			}
 		},
 
 		onLoad(option) {
-			this.getList();
+			
 		},
 		onShow() {
-
+			this.getList();
 		},
 		methods: {
 			//滚动加载事件
@@ -79,29 +66,32 @@
 				}
 			},
 			//获取分级管控列表
-			getList() {
-				// const {
-				// 	data
-				// } = await laboratoryAppletSubList(this.queryParams);
-				// if (data.code == 200) {
-				// 	if(this.queryParams.page == 1){
-				// 		this.dataList = data.data.records;
-				// 		this.total = data.data.total;
-				// 		if (data.data.total / this.queryParams.pageSize <= this.queryParams.page) {
-				// 			this.$set(this, 'getDataType', true);
-				// 		}
-				// 	}else{
-				// 		this.dataList = [...this.dataList, ...data.data.records]
-				// 		this.total = data.data.total;
-				// 		if (data.data.total / this.queryParams.pageSize <= this.queryParams.page) {
-				// 			this.$set(this, 'getDataType', true);
-				// 		}
-				// 	}
-				// }
+			async getList() {
+				let self = this;
+				let obj = JSON.parse(JSON.stringify(this.queryParams));
+				obj.executionUserId = uni.getStorageSync('userId')
+				const {
+					data
+				} = await laboratoryGradeManageList(obj);
+				if (data.code == 200) {
+					if (self.queryParams.page == 1) {
+						this.dataList = data.data.records;
+						this.total = data.data.total;
+						if (data.data.total / self.queryParams.pageSize <= self.queryParams.page) {
+							this.$set(this, 'getDataType', true);
+						}
+					} else {
+						this.dataList = [...this.dataList, ...data.data.records]
+						this.total = data.data.total;
+						if (data.data.total / self.queryParams.pageSize <= self.queryParams.page) {
+							this.$set(this, 'getDataType', true);
+						}
+					}
+				}
 			},
-			tableButton() {
+			tableButton(item) {
 				uni.navigateTo({
-					url: '/pages_manage/views/gradingControl/infoPage'
+					url: '/pages_manage/views/gradingControl/infoPage?infoData=' + encodeURIComponent(JSON.stringify(item))
 				});
 			},
 		}
@@ -144,7 +134,7 @@
 					white-space: nowrap;
 					font-size: 32rpx;
 					color: #333;
-					line-height: 46rpx;
+					line-height: 60rpx;
 				}
 
 				.for-box-left {
@@ -152,9 +142,9 @@
 
 					.for-name-box {
 						display: flex;
-
 						view:nth-child(1) {
 							flex: 1;
+							font-size: 36rpx;
 						}
 
 						view:nth-child(2) {
@@ -185,7 +175,7 @@
 
 				.for-box-right {
 					img {
-						margin-top: 60rpx;
+						margin-top: 80rpx;
 						width: 12rpx;
 						height: 24rpx;
 					}
@@ -195,7 +185,7 @@
 
 			.get-data-null-p {
 				text-align: center;
-				line-height: 40rpx;
+				line-height: 80rpx;
 				padding-bottom: 40px;
 				color: #999;
 			}

+ 93 - 49
pages_manage/views/gradingControl/infoPage.vue

@@ -2,79 +2,119 @@
 	<view class="gradingControl-infoPage">
 		<view class="text-box">
 			<view>管控名称:</view>
-			<view>{{newData.data1}}</view>
+			<view>{{newData.name}}</view>
 		</view>
 		<view class="text-box">
 			<view>二级单位:</view>
-			<view>{{newData.data3}}</view>
+			<view>{{newData.deptName}}</view>
 		</view>
 		<view class="text-box">
 			<view>安全分类:</view>
-			<view>{{newData.data4}}</view>
+			<view>{{newData.typeName}}</view>
 		</view>
 		<view class="text-box">
 			<view>安全分级:</view>
-			<view>{{newData.data5}}</view>
+			<view>{{newData.levelName}}</view>
 		</view>
 		<view class="text-box">
 			<view>管控描述:</view>
-			<view>{{newData.data2}}</view>
+			<view>{{newData.manageDes}}</view>
 		</view>
 		<view class="text-box">
 			<view>执行状态:</view>
-			<view :class="newData.data6?'colorA':'colorB'">{{newData.data6?'已执行':'未执行'}}</view>
+			<view :class="newData.status == 1?'colorA':'colorB'">{{newData.status == 1?'已执行':'未执行'}}</view>
 		</view>
-		<view class="text-box" v-if="newData.data6">
+		<view class="text-box" v-if="newData.status == 1">
 			<view>执行人:</view>
-			<view>{{newData.data7}}</view>
+			<view>{{newData.executionUser}}</view>
 		</view>
-		<view class="text-box" v-if="newData.data6">
+		<view class="text-box" v-if="newData.status == 1">
 			<view>执行时间:</view>
-			<view>{{newData.data8}}</view>
+			<view>{{newData.executionTime}}</view>
 		</view>
-		<view class="text-box" v-if="newData.data6">
+		<view class="text-box" v-if="newData.status == 1">
 			<view>执行备注:</view>
-			<view>{{newData.data9}}</view>
+			<view>{{newData.remark}}</view>
 		</view>
-		<view class="text-box" v-if="!newData.data6">
+		<view class="text-box" v-if="newData.status == 0">
 			<view>执行备注:</view>
-			<textarea v-model="newData.inputData" class="input-box"
-			placeholder="请输入执行备注" maxlength="50"></textarea>
+			<textarea v-model="inputData" class="input-box" placeholder="请输入执行备注" maxlength="50"></textarea>
 		</view>
 		<view class="null-p"></view>
-		<view class="button-p" v-if="!newData.data6">完成</view>
+		<view class="button-p" v-if="newData.status == 0" @click="buttonClick">执行</view>
 	</view>
 </template>
 
 <script>
+	import {
+		parseTime
+	} from '@/component/public.js'
+	import {
+		laboratoryGradeManageExecute,
+	} from '@/pages_manage/api/index.js'
 	export default {
 		name: "gradingControl-infoPage",
 		data() {
 			return {
 				//列表数据
-				newData: {
-					data1: '管控名称管控名称管控名称管控名称管控名称管控名称管控名称管控名称管控名称管控名称管控名称管控名称',
-					data2: '管控描述管控描述管控描述管控描述管控描述管控描述管控描述管控描述管控描述管控描述管控描述管控描述管控描述管控描述管控描述管控描述管控描述管控描述管控描述管控描述管控描述管控描述管控描述管控描述管控描述管控描述管控描述管控描述',
-					data3: '二级单位',
-					data4: '安全分类',
-					data5: '安全分级',
-					data6: false,
-					data7: '执行人',
-					data8: '执行时间',
-					data9: '执行备注',
-				},
-				inputData:"",
+				newData: {},
+				inputData: "",
 			}
 		},
 
 		onLoad(option) {
-
+			this.$set(this, 'newData', JSON.parse(decodeURIComponent(option.infoData)));
 		},
 		onShow() {
-
+			this.$nextTick(() => {
+				this.newData.executionTime = parseTime(this.newData.executionTime, "{y}-{m}-{d} {h}:{i}")
+			})
 		},
 		methods: {
-
+			buttonClick() {
+				let self = this;
+				if (!this.inputData) {
+					uni.showToast({
+						title: '请输入执行备注',
+						icon: "none",
+						mask: true,
+						duration: 2000
+					});
+					return
+				}
+				uni.showModal({
+					// title: '确认要退出吗?',
+					content: '确认提交?',
+					cancelColor: "#999",
+					confirmColor: "#0183FA",
+					success: function(res) {
+						if (res.confirm) {
+							self.laboratoryGradeManageExecute();
+						} else if (res.cancel) {}
+					}
+				});
+			},
+			async laboratoryGradeManageExecute() {
+				let obj = {
+					id: this.newData.id,
+					remark: this.inputData,
+					status: 1,
+				}
+				const {
+					data
+				} = await laboratoryGradeManageExecute(obj);
+				if (data.code == 200) {
+					uni.showToast({
+						title: data.message,
+						icon: "none",
+						mask: true,
+						duration: 2000
+					});
+					setTimeout(function() {
+						uni.navigateBack();
+					}, 2000);
+				}
+			}
 		}
 	}
 </script>
@@ -86,10 +126,11 @@
 		flex-direction: column;
 		background: #fff;
 		padding: 0 20rpx;
-		
-		.text-box:nth-child(1){
-			margin-top:30rpx;
+
+		.text-box:nth-child(1) {
+			margin-top: 30rpx;
 		}
+
 		.text-box {
 			display: flex;
 			font-size: 32rpx;
@@ -113,27 +154,30 @@
 			.colorB {
 				color: #666;
 			}
-			.input-box{
-				margin-top:20rpx;
-				height:200rpx;
-				width:500rpx;
-				padding:10rpx;
-				border:1px solid #dedede;
-				border-radius:12rpx;
+
+			.input-box {
+				margin-top: 20rpx;
+				height: 200rpx;
+				width: 500rpx;
+				padding: 10rpx;
+				border: 1px solid #dedede;
+				border-radius: 12rpx;
 			}
 		}
-		.null-p{
-			flex:1;
+
+		.null-p {
+			flex: 1;
 		}
-		.button-p{
+
+		.button-p {
 			font-size: 32rpx;
 			text-align: center;
-			line-height:60rpx;
-			width:200rpx;
-			border-radius:8rpx;
-			margin:40rpx auto;
+			line-height: 60rpx;
+			width: 200rpx;
+			border-radius: 8rpx;
+			margin: 40rpx auto;
 			background-color: #0183FA;
-			color:#fff;
+			color: #fff;
 		}
 	}
 </style>