2021-07-27 09:10:55    4    0    0
  1. var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9]
  2. function promiseForEach(arr, cb) {
  3. let realResult = []
  4. let result = Promise.resolve()
  5. arr.forEach((a, index) => {
  6. result = result.then(() => {
  7. if (typeof cb === "function") {
  8. return cb(a).then((res) => {
  9. realResult.push(res)
  10. })
  11. }
  12. })
  13. })
  14. return result.then(() => {
  15. return realResult
  16. })
  17. }
  18. promiseForEach(arr, (ele) => {
  19. return new Promise((resolve, reject) => {
  20. setTimeout(() => {
  21. console.log(ele)
  22. return resolve(ele)
  23. }, Math.random() * 1000)
  24. })
  25. }).then((data) => {
  26. console.log("成功")
  27. console.log(data)
  28. }).catch((err) => {
  29. console.log("失败")
  30. console.log(err)
  31. })
2021-07-14 02:24:29    20    0    0

使用一个空白页来中转

  1. // refresh.vue
  2. <template>
  3. <div></div>
  4. </template>
  5. <script>
  6. export default {
  7. name: "refresh",
  8. data() {
  9. return {}
  10. },
  11. beforeRouteEnter(to, from, next) {
  12. next(vm => {
  13. vm.$router.replace({ path: from.path, query: to.query })
  14. })
  15. }
  16. }
  17. </script>
  18. // router.vue
  19. {
  20. path: "/refresh",
  21. name: "refresh",
  22. component: () =>
  23. import(/* webpackChunkName: "page" */ "@/components/refresh"),
  24. meta: {
  25. keepAlive: false,
  26. isTab: false,
  27. isAuth: false
  28. }
  29. }
  30. // main.js (如果需要设置所有的)
  31. router.beforeEach((to, from, next) => {
  32. if (from.path === to.path) {
  33. next({ path: "/refresh", query: to.query })
  34. return
  35. }
  36. }
2021-06-21 09:36:07    4    0    0
2021-06-20 07:04:02    27    0    0

笔记本有外接鼠标时关闭触摸板

按下WIN键搜索触摸板设置关闭连接鼠标时让触摸板保持打开状态

2021-06-18 10:52:59    6    0    0

npm install vuedraggable

2021-06-09 02:10:33    8    0    0
  1. /**
  2. * 复制文本
  3. * @param text
  4. */
  5. export function copyText(text) {
  6. const input = document.createElement("input")
  7. input.value = text
  8. document.body.appendChild(input)
  9. input.select()
  10. document.execCommand("Copy")
  11. window.setTimeout(function () {
  12. document.body.removeChild(input)
  13. }, 0)
  14. }
  15. /**
  16. * esc监听全屏
  17. */
  18. export const listenfullscreen = (callback) => {
  19. function listen() {
  20. callback()
  21. }
  22. document.addEventListener("fullscreenchange", function () {
  23. listen()
  24. })
  25. document.addEventListener("mozfullscreenchange", function () {
  26. listen()
  27. })
  28. document.addEventListener("webkitfullscreenchange", function () {
  29. listen()
  30. })
  31. document.addEventListener("msfullscreenchange", function () {
  32. listen()
  33. })
  34. }
  35. /**
  36. * 浏览器判断是否全屏
  37. */
  38. export const fullscreenEnable = () => {
  39. return document.isFullScreen || document.mozIsFullScreen || document.webkitIsFullScreen
  40. }
  41. /**
  42. * 浏览器全屏
  43. */
  44. export const re
2021-05-29 06:08:30    34    0    0
  1. let timer = setTimeout(()=> {})
  2. this.$once("hook:beforeDestroy", () => {
  3. clearTimeout(timer)
  4. timer = null
  5. })
2021-05-28 16:00:51    21    0    0

组件: countDown.vue

  1. <template>
  2. <div class="countDown_container">
  3. <slot v-bind="dateData"></slot>
  4. </div>
  5. </template>
  6. <script>
  7. import dayjs from "dayjs";
  8. export default {
  9. name: "countDown",
  10. props: {
  11. computeEndTimeFlag: Boolean, // 是否计算结束时间
  12. nowTime: {
  13. type: String | Number,
  14. default: () => Date.now()
  15. },
  16. startTime: {
  17. type: String | Number,
  18. },
  19. endTime: {
  20. type: String | Number,
  21. required: true,
  22. },
  23. showDay: Boolean,
  24. },
  25. data() {
  26. return {
  27. dateData: {},
  28. realEndTime: null,
  29. }
  30. },
  31. created() {
  32. const realEndTime = this.computeEndTimeFlag ? new Date(this.endTime).getTime() : this.getRealEndTime()
  33. this.realEndTime = realEndTime
  34. this.$emit("getRealEndTime", realEndTime)
  35. this.setDateData(realEndTime - new Date().getTime())
  36. this.updateState();
2021-05-28 15:13:22    26    0    0
2021-05-24 10:41:24    12    0    0
  1. // this.$options.data()//是原始data中的数据
  2. // this.$data //是改变后的data中的数据
  3. this.$root //表示app.vue中data的数据
  4. Object.assign(this.$data, this.$options.data())
5/18