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