From b9bd29a1a81f6f7de479e3cc3fdfe3d85fc660bf Mon Sep 17 00:00:00 2001
From: he wei <858544502@qq.com>
Date: 星期三, 23 四月 2025 13:35:06 +0800
Subject: [PATCH] UA 整理提交

---
 src/views/device/locks/addTask.vue |  363 +++++++++++++++++++++++++++++++++------------------
 1 files changed, 232 insertions(+), 131 deletions(-)

diff --git a/src/views/device/locks/addTask.vue b/src/views/device/locks/addTask.vue
index a392df8..638f535 100644
--- a/src/views/device/locks/addTask.vue
+++ b/src/views/device/locks/addTask.vue
@@ -1,163 +1,264 @@
 <script setup>
-	import { ref, reactive, computed, onMounted } from "vue";
-	import { setLockBl } from "@/api/lockManager.js";
-	import useElement from "@/hooks/useElement.js";
-	import { getAreaUserLock } from '@/api/lockManager.js';
-  import { checkSnId } from '@/api/user.js';
-  import {ElMessageBox} from 'element-plus'
+import { ref, reactive, computed, onMounted } from "vue";
+import { setLockBl } from "@/api/lockManager.js";
+import useElement from "@/hooks/useElement.js";
+import { getAreaUserLock } from '@/api/lockManager.js';
+ import { checkSnId } from '@/api/user.js';
+ import {ElMessageBox} from 'element-plus'
+ import useStation from "@/hooks/useStationList.js";
+ const {
+   stationName1,
+   stationName2,
+   stationName3,
+   stationName4,
+   stationList1,
+   stationList2,
+   stationList3,
+   stationList4,
+   lockList,
+ } = useStation();
 
 
-	const { $loading, $message, $confirm } = useElement();
+const { $loading, $message, $confirm } = useElement();
 
-	const formRef = ref();
-	const userList = ref([]);
-	const keyList = ref([]);
-	const lockList = ref([]);
-	const form1 = reactive({
-		startTime: "",
-		stopTime: "",
-		lockNames: [],
-	});
+const formRef = ref();
+const form1 = reactive({
+	startTime: "",
+	stopTime: "",
+	lockIds: [],
+});
 
-	const rules = {
-		startTime: [
-			{
-				required: true,
-				message: "涓嶈兘涓虹┖",
-				trigger: ["blur", "change"],
+const rules = {
+	startTime: [
+		{
+			required: true,
+			message: "涓嶈兘涓虹┖",
+			trigger: ["blur", "change"],
+		},
+	],
+	stopTime: [
+		{
+			required: true,
+			message: "涓嶈兘涓虹┖",
+			trigger: ["blur", "change"],
+		},
+	],
+	lockIds: [
+		{
+			required: true,
+			message: "涓嶈兘涓虹┖",
+			trigger: ["blur", "change"],
+		},
+		{
+			validator: (rule, value, callback) => {
+				if (!value.length) {
+					callback(new Error("璇烽�夋嫨閿佸叿"));
+				} else {
+					callback();
+				}
 			},
-		],
-		stopTime: [
-			{
-				required: true,
-				message: "涓嶈兘涓虹┖",
-				trigger: ["blur", "change"],
-			},
-		],
-		lockNames: [
-			{
-				required: true,
-				message: "涓嶈兘涓虹┖",
-				trigger: ["blur", "change"],
-			},
-			{
-				validator: (rule, value, callback) => {
-					if (!value.length) {
-						callback(new Error("璇烽�夋嫨閿佸叿"));
-					} else {
-						callback();
-					}
-				},
-				trigger: ["change", "blur"],
-			},
-		],
-	};
+			trigger: ["change", "blur"],
+		},
+	],
+};
 
-	const isEdit = computed(() => !!props.info?.uname);
-	const $emit = defineEmits(["close", "ok"]);
-	function close() {
-		$emit("close");
+const isEdit = computed(() => !!props.info?.uname);
+const $emit = defineEmits(["close", "ok"]);
+function close() {
+	$emit("close");
+}
+
+
+ async function checkPwd(pwd) {
+   let res = await checkSnId(pwd);
+   let { code, data, data2 } = res;
+   if (code && data) {
+     return true;
+   } else {
+     return false;
+   }
+ }
+
+async function onSubmit() {
+	let valid = await formRef.value.validate(() => { });
+	// console.log('valid', valid, '=============');
+
+	if (!valid) {
+		$message.error("琛ㄥ崟楠岃瘉澶辫触");
+		return false;
 	}
 
-	// 鏌ヨ鎵�鏈夐攣鍏�
-	async function getLockList() {
-		let res = await getAreaUserLock();
-		let { code, data, data2 } = res;
-		let _list = [];
-		if (code && data) {
-			_list = data2;
-		}
-		lockList.value = _list;
-	}
-
-  async function checkPwd(pwd) {
-    let res = await checkSnId(pwd);
-    let { code, data, data2 } = res;
-    if (code && data) {
-      return true;
-    } else {
-      return false;
+  // 濡傛灉閫変腑鐨勯攣涓湁钃濈墮鏄墦寮�鐘舵�佺殑,閭d箞灏辨彁绀哄苟閫�鍑�
+  let lockIds = form1.lockIds;
+  let openList = [];
+  lockIds.map(v => {
+    let _lock = lockList.value.find(item => item.lockId === v);
+    if (_lock?.blState) {
+      openList.push(_lock);
     }
+  });
+  if (openList.length) {
+    $message({
+      type: 'error',
+      message: `閿佸叿${openList.map(v => v.lockName).join(',')}鐨勮摑鐗欏凡缁忔墦寮�,璇峰叧闂悗鍐嶆搷浣渀
+    });
+    return false;
   }
 
-	async function onSubmit() {
-		let valid = await formRef.value.validate(() => { });
-		// console.log('valid', valid, '=============');
+  ElMessageBox.prompt('璇疯緭鍏ョ敤鎴峰瘑鐮�', '绯荤粺鎻愮ず', {
+   inputType: 'password',
+   inputPattern: /^.+$/,
+   inputErrorMessage: '瀵嗙爜涓嶈兘涓虹┖',
+ })
+   .then(async ({ value: pwd }) => {
+     console.log('pwd', pwd, '=============');
 
-		if (!valid) {
-			$message.error("琛ㄥ崟楠岃瘉澶辫触");
-			return false;
-		}
+     // 楠岃瘉瀵嗙爜
+     let res_pwd = await checkPwd(pwd);
+     if (res_pwd) {
+       $message({
+         type: 'success',
+         message: '瀵嗙爜姝g‘'
+       });
+     } else {
+       $message({
+         type: 'error',
+         message: '瀵嗙爜閿欒'
+       });
+       return false;
+     }
 
-   ElMessageBox.prompt('璇疯緭鍏ョ敤鎴峰瘑鐮�', '绯荤粺鎻愮ず', {
-    inputType: 'password',
-    inputPattern: /^.+$/,
-    inputErrorMessage: '瀵嗙爜涓嶈兘涓虹┖',
-  })
-    .then(async ({ value: pwd }) => {
-      console.log('pwd', pwd, '=============');
-      
-      // 楠岃瘉瀵嗙爜
-      let res_pwd = await checkPwd(pwd);
-      if (res_pwd) {
-        $message({
-          type: 'success',
-          message: '瀵嗙爜姝g‘'
-        });
-      } else {
-        $message({
-          type: 'error',
-          message: '瀵嗙爜閿欒'
-        });
-        return false;
-      }
+     let params = form1.lockIds.map(v => ({ lockId: v, startTime: form1.startTime, stopTime: form1.stopTime }));
+     console.log("params", params, "=============");
 
-      let params = {
-        keyName: 123,
-      };
-      console.log("params", params, "=============");
+     let loading = $loading();
+     setLockBl(params)
+       .then((res) => {
+         let { code, data } = res;
+         if (code && data) {
+           $emit("ok");
+           $message.success("鎿嶄綔鎴愬姛");
+         } else {
+           $message.error("鎿嶄綔澶辫触");
+         }
+         loading.close();
+       })
+       .catch((err) => {
+         console.log(err);
+         loading.close();
+       });
+   });
 
-      let loading = $loading();
-      setLockBl(params)
-        .then((res) => {
-          let { code, data } = res;
-          if (code && data) {
-            $emit("ok");
-            $message.success("鎿嶄綔鎴愬姛");
-          } else {
-            $message.error("鎿嶄綔澶辫触");
-          }
-          loading.close();
-        })
-        .catch((err) => {
-          console.log(err);
-          loading.close();
-        });
-    });
+}
 
-	}
+function stationChange() {
+  form1.lockIds = [];
+}
 
 
-	onMounted(() => {
-		getLockList();
-	});
+onMounted(() => {
+});
 </script>
 
 <template>
   <div class="">
     <el-form ref="formRef" :model="form1" label-width="80px" :rules="rules">
-      <el-form-item label="閿佸叿" prop="lockNames">
-        <el-select v-model="form1.lockNames" clearable multiple collapse-tags collapse-tags-tooltip>
-          <el-option v-for="item in lockList" :key="'lock_' + item.lockId" :label="`${item.lockName} (${item.blState ? '钃濈墮寮�鍚�' : '钃濈墮鍏抽棴'})`" :value="item.lockName">{{item.lockName}} <span :class="{success: !item.blState, error: item.blState}">({{item.blState ? '钃濈墮寮�鍚�' : '钃濈墮鍏抽棴'}})</span></el-option>
+      <el-form-item label="鐪�">
+        <el-select
+          v-model="stationName1"
+          clearable
+          placeholder="璇烽�夋嫨"
+          style="width: 180px"
+        >
+          <el-option
+            v-for="(item, idx) in stationList1"
+            :key="'l1_' + idx"
+            :label="item"
+            :value="item"
+          />
+        </el-select>
+      </el-form-item>
+      <el-form-item label="甯�">
+        <el-select
+          v-model="stationName2"
+          clearable
+          placeholder="璇烽�夋嫨"
+          style="width: 180px"
+        >
+          <el-option
+            v-for="(item, idx) in stationList2"
+            :key="'l2_' + idx"
+            :label="item"
+            :value="item"
+          />
+        </el-select>
+      </el-form-item>
+      <el-form-item label="鍖哄幙">
+        <el-select
+          v-model="stationName3"
+          clearable
+          placeholder="璇烽�夋嫨"
+          style="width: 180px"
+        >
+          <el-option
+            v-for="(item, idx) in stationList3"
+            :key="'l3_' + idx"
+            :label="item"
+            :value="item"
+          />
+        </el-select>
+      </el-form-item>
+      <el-form-item label="鏈烘埧">
+        <el-select
+          v-model="stationName4"
+          clearable
+          placeholder="璇烽�夋嫨"
+          style="width: 180px"
+          @change="stationChange"
+        >
+          <el-option
+            v-for="(item, idx) in stationList4"
+            :key="'l4_' + idx"
+            :label="item"
+            :value="item"
+          />
+        </el-select>
+      </el-form-item>
+      <el-form-item label="閿佸叿" prop="lockIds">
+        <el-select
+          v-model="form1.lockIds"
+          clearable
+          multiple
+          collapse-tags
+          collapse-tags-tooltip
+        >
+          <el-option
+            v-for="item in lockList"
+            :key="'lock_' + item.lockId"
+            :label="`${item.lockName} (${item.blState ? '钃濈墮寮�鍚�' : '钃濈墮鍏抽棴'})`"
+            :value="item.lockId"
+            >{{item.lockName}}
+            <span :class="{success: !item.blState, error: item.blState}"
+              >({{item.blState ? '钃濈墮寮�鍚�' : '钃濈墮鍏抽棴'}})</span
+            ></el-option
+          >
         </el-select>
       </el-form-item>
       <el-form-item label="寮�濮嬫椂闂�" prop="startTime">
-        <el-date-picker v-model="form1.startTime" value-format="YYYY-MM-DD HH:mm:ss" type="datetime"
-                     placeholder="" />
+        <el-date-picker
+          v-model="form1.startTime"
+          value-format="YYYY-MM-DD HH:mm:ss"
+          type="datetime"
+          placeholder=""
+        />
       </el-form-item>
       <el-form-item label="缁撴潫鏃堕棿" prop="stopTime">
-        <el-date-picker v-model="form1.stopTime" value-format="YYYY-MM-DD HH:mm:ss" type="datetime"
-                     placeholder="" />
+        <el-date-picker
+          v-model="form1.stopTime"
+          value-format="YYYY-MM-DD HH:mm:ss"
+          type="datetime"
+          placeholder=""
+        />
       </el-form-item>
       <el-form-item>
         <el-button type="primary" @click="onSubmit">鏂板</el-button>

--
Gitblit v1.9.1