From feaf0a9778879ef211c5587a513ba4cbdabb52d0 Mon Sep 17 00:00:00 2001 From: ZZJ <10913410+zzj2100@user.noreply.gitee.com> Date: 星期四, 23 六月 2022 17:42:58 +0800 Subject: [PATCH] bug修复 --- src/pages/cameraAccess/components/TimeSlider.vue | 144 +++++++++++++++++++++++------------------------ 1 files changed, 70 insertions(+), 74 deletions(-) diff --git a/src/pages/cameraAccess/components/TimeSlider.vue b/src/pages/cameraAccess/components/TimeSlider.vue index 14cc70b..f84883f 100644 --- a/src/pages/cameraAccess/components/TimeSlider.vue +++ b/src/pages/cameraAccess/components/TimeSlider.vue @@ -2,11 +2,7 @@ <div class="sub-time-box"> <div class="btn-control"> <div class="el-tabs-edit"> - <span - v-if="!editSlider" - class="add-btn" - @click="handleTabsEdit('', 'edit')" - > + <span v-if="!editSlider" class="add-btn" @click="handleTabsEdit('', 'edit')"> <i class="el-icon-edit"></i> 缂栬緫 </span> @@ -22,20 +18,9 @@ </span> </div> </div> - <el-tabs - v-model="activeTab" - type="border-card" - editable - @edit="handleTabsEdit" - > - <el-tab-pane - v-for="item in VideoManageData.TimeRules" - :key="item.id" - :name="item.id" - > - <span slot="label" @click="tabClick(item)" style="width: 100px">{{ - item.name - }}</span> + <el-tabs v-model="activeTab" type="border-card" editable @edit="handleTabsEdit"> + <el-tab-pane v-for="item in VideoManageData.TimeRules" :key="item.id" :name="item.id"> + <span slot="label" @click="tabClick(item)" style="width: 100px">{{ item.name }}</span> <multi-range-slider :timeData="JSON.parse(item.time_rule)" :mainId="`${item.id}_${type}`" @@ -50,19 +35,19 @@ </template> <script> -import MultiRangeSlider from "@/components/subComponents/MultiRangeSlider"; -import { saveTimeRule, deleteTimeRule } from "@/api/timeRule"; +import MultiRangeSlider from "@/components/subComponents/MultiRangeSlider" +import { saveTimeRule, deleteTimeRule } from "@/api/timeRule" export default { name: "TimeSlider", components: { - MultiRangeSlider, + MultiRangeSlider }, props: { type: { default: "", - type: String, - }, + type: String + } }, data() { return { @@ -77,79 +62,90 @@ { day: 4, time_range: [{ start: "00:00", end: "24:00" }] }, { day: 5, time_range: [{ start: "00:00", end: "24:00" }] }, { day: 6, time_range: [{ start: "00:00", end: "24:00" }] }, - { day: 7, time_range: [{ start: "00:00", end: "24:00" }] }, + { day: 7, time_range: [{ start: "00:00", end: "24:00" }] } ], - }; + isAdding: false + } }, mounted() { // window.addEventListener('resize', this.windowSizeChange) }, methods: { handleTabsEdit(tabId, action) { - let tabs = this.VideoManageData.TimeRules; + let tabs = this.VideoManageData.TimeRules if (action === "add") { - let newRule = { - id: "", - name: "鏃堕棿娈�" + this.VideoManageData.TimeRules.length, - time_rule: this.allDay, - }; - this.updateTimeRule(newRule); + if (this.isAdding) { + return + } else { + this.isAdding = true + let newRule = { + id: "", + name: "鏃堕棿娈�" + this.VideoManageData.TimeRules.length, + time_rule: this.allDay + } + + this.updateTimeRule(newRule) + } } if (action === "remove") { - console.log(); - if (this.VideoManageData.TimeRules.length == 1) { this.$notify({ title: "璀﹀憡", message: "姝ゆ椂闂存姝e湪浣跨敤涓紝鏃犳硶鍒犻櫎锛�", - type: "warning", - }); + type: "warning" + }) - return; + return } - this.$confirm( - "姝ゆ搷浣滃皢姘镐箙鍒犻櫎璇ヨ鍒�, 鎵�鍏宠仈鐨勪换鍔″皢浼氬け鏁堬紝鏄惁缁х画?", - { - center: true, - confirmButtonText: "纭畾", - cancelButtonText: "鍙栨秷", - } - ) + this.$confirm("姝ゆ搷浣滃皢姘镐箙鍒犻櫎璇ヨ鍒�, 鎵�鍏宠仈鐨勪换鍔″皢浼氬け鏁堬紝鏄惁缁х画?", { + center: true, + confirmButtonText: "纭畾", + cancelButtonText: "鍙栨秷" + }) .then(() => { deleteTimeRule({ id: tabId }).then((rsp) => { if (rsp && rsp.success) { - this.VideoManageData.getTimeRule(); + this.VideoManageData.getTimeRule() // this.VideoManageData.TimeRules.splice(2, 1) - this.activeTab = this.VideoManageData.TimeRules[0].id; + this.activeTab = this.VideoManageData.TimeRules[0].id this.$notify({ type: "success", - message: "鍒犻櫎鎴愬姛!", - }); + message: "鍒犻櫎鎴愬姛!" + }) } - }); + }) }) - .catch(() => {}); + .catch(() => {}) } if (action == "edit") { - this.editSlider = true; + this.editSlider = true } if (action == "lock") { - this.editSlider = false; + this.editSlider = false } }, windowSizeChange() { - let timeSlideWidth = document.querySelector(".sub-time-box").clientWidth; - this.cavasLength = timeSlideWidth; - console.log("鏃堕棿缁勪欢瀹藉害锛�", timeSlideWidth); + let timeSlideWidth = document.querySelector(".sub-time-box").clientWidth + this.cavasLength = timeSlideWidth + console.log("鏃堕棿缁勪欢瀹藉害锛�", timeSlideWidth) }, updateTimeRule(rule) { - saveTimeRule(rule).then((rsp) => { - if (rsp && rsp.success) { - this.VideoManageData.getTimeRule(); - this.activeTab = rsp.data.id; - } - }); + saveTimeRule(rule) + .then(async (rsp) => { + if (rsp && rsp.success) { + await this.VideoManageData.getTimeRule() + this.isAdding = false + this.$nextTick(() => { + this.activeTab = this.VideoManageData.TimeRules[this.VideoManageData.TimeRuleSum - 1].id + }) + } else { + this.isAdding = false + } + }) + .catch(() => { + this.isAdding = false + }) }, tabClick(item) { if (this.activeTab === item.id) { @@ -158,26 +154,26 @@ cancelButtonText: "鍙栨秷", inputValue: item.name, inputPattern: /^[\S]{1,16}$/, - inputErrorMessage: "鍚嶇О涓嶈兘鍖呭惈绌烘牸", + inputErrorMessage: "鍚嶇О涓嶈兘鍖呭惈绌烘牸" }) .then(({ value }) => { this.updateTimeRule({ id: item.id, name: value, - time_rule: JSON.parse(item.time_rule), - }); + time_rule: JSON.parse(item.time_rule) + }) this.$notify({ type: "success", - message: "鏃堕棿瑙勫垯鍚嶇О淇敼鎴愬姛", - }); + message: "鏃堕棿瑙勫垯鍚嶇О淇敼鎴愬姛" + }) }) - .catch(() => {}); + .catch(() => {}) } - }, - }, -}; + } + } +} </script> -<style lang='scss'> +<style lang="scss"> .sub-time-box { padding-right: 30px; position: relative; @@ -254,4 +250,4 @@ // z-index: 1; // } } -</style> \ No newline at end of file +</style> -- Gitblit v1.8.0