From 6dfb5e44a7072d78ca6c04d21b7ed8ad126b874f Mon Sep 17 00:00:00 2001 From: gaoluyang <2820782392@qq.com> Date: 星期二, 01 七月 2025 14:05:44 +0800 Subject: [PATCH] 1.巡检管理频次选择逻辑修改 --- src/views/inspectionManagement/components/formDia.vue | 121 ++++++++++++++++++++++++++++++++++------ 1 files changed, 102 insertions(+), 19 deletions(-) diff --git a/src/views/inspectionManagement/components/formDia.vue b/src/views/inspectionManagement/components/formDia.vue index 8da91ef..91e9c5c 100644 --- a/src/views/inspectionManagement/components/formDia.vue +++ b/src/views/inspectionManagement/components/formDia.vue @@ -10,20 +10,79 @@ </el-form-item> </el-col> <el-col :span="12"> - <el-form-item label="鍦扮偣" prop="port"> - <el-input v-model="form.port" placeholder="璇疯緭鍏ュ湴鐐�" maxlength="30" /> + <el-form-item label="鍦扮偣" prop="inspectionLocation"> + <el-input v-model="form.inspectionLocation" placeholder="璇疯緭鍏ュ湴鐐�" maxlength="30" /> </el-form-item> </el-col> </el-row> <el-row> <el-col :span="12"> <el-form-item label="宸℃浜�" prop="inspector"> - <el-input v-model="form.inspector" placeholder="宸℃浜�" maxlength="30" /> + <el-select v-model="form.inspector" placeholder="璇烽�夋嫨" multiple clearable> + <el-option v-for="item in userList" :label="item.nickName" :value="item.userId" :key="item.userId"/> + </el-select> </el-form-item> </el-col> <el-col :span="12"> <el-form-item label="澶囨敞" prop="remarks"> <el-input v-model="form.remarks" placeholder="璇疯緭鍏ュ娉�" type="textarea" /> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="12"> + <el-form-item label="浠诲姟棰戠巼" prop="frequencyType"> + <el-select v-model="form.frequencyType" placeholder="璇烽�夋嫨" clearable> + <el-option label="姣忔棩" value="DAILY"/> + <el-option label="姣忓懆" value="WEEKLY"/> + <el-option label="姣忔湀" value="MONTHLY"/> + <el-option label="瀛e害" value="QUARTERLY"/> + </el-select> + </el-form-item> + </el-col> + <el-col :span="12" v-if="form.frequencyType === 'DAILY' && form.frequencyType"> + <el-form-item label="鏃ユ湡" prop="frequencyDetail"> + <el-time-picker v-model="form.frequencyDetail" placeholder="閫夋嫨鏃堕棿" format="HH:mm" + value-format="HH:mm" /> + </el-form-item> + </el-col> + <el-col :span="12" v-if="form.frequencyType === 'WEEKLY' && form.frequencyType"> + <el-form-item label="鏃ユ湡" prop="frequencyDetail"> + <el-select v-model="form.week" placeholder="璇烽�夋嫨" clearable style="width: 50%"> + <el-option label="鍛ㄤ竴" value="MON"/> + <el-option label="鍛ㄤ簩" value="TUE"/> + <el-option label="鍛ㄤ笁" value="WED"/> + <el-option label="鍛ㄥ洓" value="THU"/> + <el-option label="鍛ㄤ簲" value="FRI"/> + <el-option label="鍛ㄥ叚" value="SAT"/> + <el-option label="鍛ㄦ棩" value="SUN"/> + </el-select> + <el-time-picker v-model="form.frequencyDetail" placeholder="閫夋嫨鏃堕棿" format="HH:mm" + value-format="HH:mm" style="width: 50%"/> + </el-form-item> + </el-col> + <el-col :span="12" v-if="form.frequencyType === 'MONTHLY' && form.frequencyType"> + <el-form-item label="鏃ユ湡" prop="frequencyDetail"> + <el-date-picker + v-model="form.frequencyDetail" + type="datetime" + clearable + placeholder="閫夋嫨寮�濮嬫棩鏈�" + format="DD,HH:mm" + value-format="DD,HH:mm" + /> + </el-form-item> + </el-col> + <el-col :span="12" v-if="form.frequencyType === 'QUARTERLY' && form.frequencyType"> + <el-form-item label="鏃ユ湡" prop="frequencyDetail"> + <el-date-picker + v-model="form.frequencyDetail" + type="datetime" + clearable + placeholder="閫夋嫨寮�濮嬫棩鏈�" + format="MM,DD,HH:mm" + value-format="MM,DD,HH:mm" + /> </el-form-item> </el-col> </el-row> @@ -39,9 +98,10 @@ </template> <script setup> -import {reactive, ref} from "vue"; +import {reactive, ref, computed} from "vue"; import useUserStore from '@/store/modules/user' -import {addOrEditInspectionTask} from "@/api/inspectionManagement/index.js"; +import {addOrEditTimingTask} from "@/api/inspectionManagement/index.js"; +import {userListAll} from "@/api/publicApi/index.js"; const { proxy } = getCurrentInstance() const emit = defineEmits() @@ -51,43 +111,66 @@ const data = reactive({ form: { taskName: '', - port: '', + inspectionLocation: '', inspector: '', + inspectorIds: '', remarks: '', + frequencyType: '', + frequencyDetail: '', }, rules: { taskName: [{ required: true, message: "璇疯緭鍏ヤ换鍔″悕绉�", trigger: "blur" },], - port: [{ required: true, message: "璇疯緭鍏ュ湴鐐�", trigger: "blur" },], + inspectionLocation: [{ required: true, message: "璇疯緭鍏ュ湴鐐�", trigger: "blur" },], inspector: [{ required: true, message: "璇疯緭鍏ュ贰妫�浜�", trigger: "blur" },], } }) - const { form, rules } = toRefs(data) +const userList = ref([]) // 鎵撳紑寮规 const openDialog = async (type, row) => { dialogVisitable.value = true + userListAll().then(res => { + userList.value = res.data + }) if (type === 'edit') { form.value = {...row} } } -// 鎻愪氦鍚堝苟琛ㄥ崟 -const submitForm = () => { - proxy.$refs["formRef"].validate(valid => { - if (valid) { - addOrEditInspectionTask(form.value).then(() => { - cancel() - proxy.$modal.msgSuccess('鎻愪氦鎴愬姛') - }) - } - }) -} + // 鍏抽棴鍚堝苟琛ㄥ崟 const cancel = () => { proxy.resetForm("formRef") dialogVisitable.value = false emit('closeDia') } +const selectedDateTime = ref(null) + +// 璁$畻鏄熸湡鍑� +const dayOfWeek = computed(() => { + if (!selectedDateTime.value) return '' + + const date = new Date(selectedDateTime.value) + const dayIndex = date.getDay() + + const weekDays = ['鏄熸湡鏃�', '鏄熸湡涓�', '鏄熸湡浜�', '鏄熸湡涓�', '鏄熸湡鍥�', '鏄熸湡浜�', '鏄熸湡鍏�'] + return weekDays[dayIndex] +}) +// 鎻愪氦鍚堝苟琛ㄥ崟 +const submitForm = () => { + proxy.$refs["formRef"].validate(valid => { + if (valid) { + form.value.inspectorIds = form.value.inspector.join(',') + if (form.value.frequencyType === 'WEEKLY') { + form.value.frequencyDetail = form.value.week + ',' + form.value.frequencyDetail + } + addOrEditTimingTask(form.value).then(() => { + cancel() + proxy.$modal.msgSuccess('鎻愪氦鎴愬姛') + }) + } + }) +} defineExpose({ openDialog }) </script> -- Gitblit v1.9.3