From e7d93ffbf1afeaf167af36ea4835935be967f900 Mon Sep 17 00:00:00 2001
From: heyujie <516346543@qq.com>
Date: 星期一, 07 六月 2021 17:03:09 +0800
Subject: [PATCH] create gitignore

---
 components/IPInput.vue |  452 +++++++++++++++++++++++++++----------------------------
 1 files changed, 223 insertions(+), 229 deletions(-)

diff --git a/components/IPInput.vue b/components/IPInput.vue
index 7769b3b..230a682 100644
--- a/components/IPInput.vue
+++ b/components/IPInput.vue
@@ -1,229 +1,223 @@
-<template>
-  <div class="ip-input-container">
-    <div class="ip-segment" v-for="(segment, index) in segments" :key="index">
-      <input
-        type="text"
-        maxlength="3"
-        class="ip-segment-input"
-        :value="segment"
-        :placeholder="placeholder"
-        :disabled="disabled"
-        v-on:keydown="onInputKeydown($event, index)"
-        v-on:input="onInput($event, index)"
-        v-on:blur="onInputBlur()"
-        v-on:paste="onPaste($event, index)"
-      />
-      <i v-show="index != segments.length - 1">.</i>
-    </div>
-  </div>
-</template>
-
-<script>
-function getRange(el) {
-  var cuRange;
-  var tbRange;
-  var headRange;
-  var range;
-  var dupRange;
-  var ret = {};
-  if (el.setSelectionRange) {
-    // standard
-    ret.begin = el.selectionStart;
-    ret.end = el.selectionEnd;
-    ret.result = el.value.substring(ret.begin, ret.end);
-  } else if (document.selection) {
-    // ie
-    if (el.tagName.toLowerCase() === "input") {
-      cuRange = document.selection.createRange();
-      tbRange = el.createTextRange();
-      tbRange.collapse(true);
-      tbRange.select();
-      headRange = document.selection.createRange();
-      headRange.setEndPoint("EndToEnd", cuRange);
-      ret.begin = headRange.text.length - cuRange.text.length;
-      ret.end = headRange.text.length;
-      ret.result = cuRange.text;
-      cuRange.select();
-    } else if (el.tagName.toLowerCase() === "textarea") {
-      range = document.selection.createRange();
-      dupRange = range.duplicate();
-      dupRange.moveToElementText(el);
-      dupRange.setEndPoint("EndToEnd", range);
-      ret.begin = dupRange.text.length - range.text.length;
-      ret.end = dupRange.text.length;
-      ret.result = range.text;
-    }
-  }
-  el.focus();
-  return ret;
-}
-export default {
-  props: {
-    ip: {
-      type: String,
-      defalut: ""
-    },
-    item: {},
-    placeholder: String,
-    onChange: Function,
-    onBlur: Function,
-    onItemChange: Function,
-    disabled: {
-      type: Boolean,
-      default: false
-    }
-  },
-  data() {
-    return {
-      segments: ["", "", "", ""]
-    };
-  },
-  watch: {
-    ip(ip) {
-      this.syncIp(ip);
-    }
-  },
-  methods: {
-    onInputKeydown(event, index) {
-      var keyCode = event.keyCode || event.which;
-      var value = event.target.value;
-      if (keyCode === 8 || keyCode === 37) {
-        // move the cursor to previous input if backspace and left arrow is pressed at the begin of one input
-        if (
-          (value.length === 0 || getRange(event.target).end === 0) &&
-          index > 0
-        ) {
-          this.$el.getElementsByTagName("input")[index - 1].focus();
-          // When jump to pre input(enter "backspace"), thr cursor should in the end.
-          // before fix: 127.|0.0.0  =>   12|7.0.0.1
-          // after fix: 127.|0.0.0 = >   127|.0.0.0
-          // notes: "|" mean the cursor position.
-          event.preventDefault();
-        }
-      } else if (keyCode === 39 && keyCode === 110) {
-        if (getRange(event.target).end === value.length && index < 3) {
-          // move to cursor to the next input if right arrow is pressed at the end of one input
-          this.$el.getElementsByTagName("input")[index + 1].focus();
-        }
-      }
-    },
-    onInput(event, index) {
-      var value = event.target.value;
-      event.target.value = this.segments[index];
-      var segment = Number(value);
-      if (isNaN(segment)) {
-        return;
-      } else if (value === "") {
-        this.segments.splice(index, 1, "");
-      } else if (segment > 255 || segment < 0) {
-        // set the segment to 255 if out of ip range
-        this.segments.splice(index, 1, 255);
-      } else {
-        this.segments.splice(index, 1, segment);
-      }
-      // jump to next input
-      if (
-        (value.length === 3 && index < 3) ||
-        value[value.length - 1] === "."
-      ) {
-        this.$el.getElementsByTagName("input")[index + 1].focus();
-      }
-    },
-    onInputBlur() {
-      setTimeout(() => {
-        this.$emit("on-blur", this.segments.join("."));
-        if (this.onBlur) {
-          this.onBlur(this.segments.join("."));
-        }
-        if (this.onItemChange) {
-          this.onItemChange(this.segments.join("."), this.item)
-        }
-      }, 50);
-    },
-    onPaste(e, index) {
-      var pasteText = e.clipboardData.getData("text/plain");
-      var segments = pasteText.split(".");
-      segments.forEach((segment, i) => {
-        if (
-          index + i < 4 &&
-          !isNaN(segment) &&
-          segment >= 0 &&
-          segment <= 255
-        ) {
-          this.segments.splice(index + i, 1, segment);
-        }
-      });
-      e.preventDefault();
-    },
-    syncIp(ip) {
-      if (ip && ip.indexOf(".") !== -1) {
-        ip.split(".").map((segment, index) => {
-          if (isNaN(segment) || segment < 0 || segment > 255) {
-            segment = 255;
-          }
-          this.segments.splice(index, 1, segment);
-          return segment;
-        });
-      }
-    }
-  },
-  mounted() {
-    this.syncIp(this.ip);
-    this.$watch(
-      () => {
-        return this.segments.join(".");
-      },
-      (val, oldValue) => {
-        if (val !== oldValue) {
-          if (val === "...") {
-            val = "";
-          }
-          if (this.onChange) {
-            this.onChange(val);
-          }
-        }
-      }
-    );
-  }
-};
-</script>
-
-<style lang="scss" scoped>
-.ip-input-container {
-     display: inline-block;
-     width: 300px;
-     height: 32px;
-     line-height: normal;
-     border: 1px solid #dcdfe6;
-     box-sizing: border-box;
-     background-color: #fff;
-     text-align: left;
-     /* max-width: 360px; */
-     display: flex;
-}
-.ip-segment {
-     width: 25%;
-     height: 32px;
-     line-height: normal;
-     display: flex;
-     justify-content: left;
-  input {
-  width: auto;
-      height: 32px;
-      line-height: normal;
-      border: none;
-      outline: none;
-      text-align: center;
-      text-indent: 0px;
-      margin: 0px;
-      padding: 0px;
-      background-color: aliceblue;
-    background-color: transparent;
-  }
-  i {
-       display: inline-block;
-       font-size: 20px;
-       line-height: 35px;
-  }
-}
-</style>
\ No newline at end of file
+<template>
+	<div class="ip-input-container">
+		<div class="ip-segment" v-for="(segment, index) in segments" :key="index">
+			<input type="text" maxlength="3" class="ip-segment-input" :value="segment" :placeholder="placeholder"
+				:disabled="disabled" v-on:keydown="onInputKeydown($event, index)" v-on:input="onInput($event, index)"
+				v-on:blur="onInputBlur()" v-on:paste="onPaste($event, index)" />
+			<i v-show="index != segments.length - 1">.</i>
+		</div>
+	</div>
+</template>
+
+<script>
+	function getRange(el) {
+		var cuRange;
+		var tbRange;
+		var headRange;
+		var range;
+		var dupRange;
+		var ret = {};
+		if (el.setSelectionRange) {
+			// standard
+			ret.begin = el.selectionStart;
+			ret.end = el.selectionEnd;
+			ret.result = el.value.substring(ret.begin, ret.end);
+		} else if (document.selection) {
+			// ie
+			if (el.tagName.toLowerCase() === "input") {
+				cuRange = document.selection.createRange();
+				tbRange = el.createTextRange();
+				tbRange.collapse(true);
+				tbRange.select();
+				headRange = document.selection.createRange();
+				headRange.setEndPoint("EndToEnd", cuRange);
+				ret.begin = headRange.text.length - cuRange.text.length;
+				ret.end = headRange.text.length;
+				ret.result = cuRange.text;
+				cuRange.select();
+			} else if (el.tagName.toLowerCase() === "textarea") {
+				range = document.selection.createRange();
+				dupRange = range.duplicate();
+				dupRange.moveToElementText(el);
+				dupRange.setEndPoint("EndToEnd", range);
+				ret.begin = dupRange.text.length - range.text.length;
+				ret.end = dupRange.text.length;
+				ret.result = range.text;
+			}
+		}
+		el.focus();
+		return ret;
+	}
+	export default {
+		props: {
+			ip: {
+				type: String,
+				defalut: ""
+			},
+			item: {},
+			placeholder: String,
+			onChange: Function,
+			onBlur: Function,
+			onItemChange: Function,
+			disabled: {
+				type: Boolean,
+				default: false
+			}
+		},
+		data() {
+			return {
+				segments: ["", "", "", ""]
+			};
+		},
+		watch: {
+			ip(ip) {
+				this.syncIp(ip);
+			}
+		},
+		methods: {
+			onInputKeydown(event, index) {
+				var keyCode = event.keyCode || event.which;
+				var value = event.target.value;
+				if (keyCode === 8 || keyCode === 37) {
+					// move the cursor to previous input if backspace and left arrow is pressed at the begin of one input
+					if (
+						(value.length === 0 || getRange(event.target).end === 0) &&
+						index > 0
+					) {
+						this.$el.getElementsByTagName("input")[index - 1].focus();
+						// When jump to pre input(enter "backspace"), thr cursor should in the end.
+						// before fix: 127.|0.0.0  =>   12|7.0.0.1
+						// after fix: 127.|0.0.0 = >   127|.0.0.0
+						// notes: "|" mean the cursor position.
+						event.preventDefault();
+					}
+				} else if (keyCode === 39 && keyCode === 110) {
+					if (getRange(event.target).end === value.length && index < 3) {
+						// move to cursor to the next input if right arrow is pressed at the end of one input
+						this.$el.getElementsByTagName("input")[index + 1].focus();
+					}
+				}
+			},
+			onInput(event, index) {
+				var value = event.target.value;
+				event.target.value = this.segments[index];
+				var segment = Number(value);
+				if (isNaN(segment)) {
+					return;
+				} else if (value === "") {
+					this.segments.splice(index, 1, "");
+				} else if (segment > 255 || segment < 0) {
+					// set the segment to 255 if out of ip range
+					this.segments.splice(index, 1, 255);
+				} else {
+					this.segments.splice(index, 1, segment);
+				}
+				// jump to next input
+				if (
+					(value.length === 3 && index < 3) ||
+					value[value.length - 1] === "."
+				) {
+					this.$el.getElementsByTagName("input")[index + 1].focus();
+				}
+			},
+			onInputBlur() {
+				setTimeout(() => {
+					this.$emit("on-blur", this.segments.join("."));
+					if (this.onBlur) {
+						this.onBlur(this.segments.join("."));
+					}
+					if (this.onItemChange) {
+						this.onItemChange(this.segments.join("."), this.item)
+					}
+				}, 50);
+			},
+			onPaste(e, index) {
+				var pasteText = e.clipboardData.getData("text/plain");
+				var segments = pasteText.split(".");
+				segments.forEach((segment, i) => {
+					if (
+						index + i < 4 &&
+						!isNaN(segment) &&
+						segment >= 0 &&
+						segment <= 255
+					) {
+						this.segments.splice(index + i, 1, segment);
+					}
+				});
+				e.preventDefault();
+			},
+			syncIp(ip) {
+				if (ip && ip.indexOf(".") !== -1) {
+					ip.split(".").map((segment, index) => {
+						if (isNaN(segment) || segment < 0 || segment > 255) {
+							segment = 255;
+						}
+						this.segments.splice(index, 1, segment);
+						return segment;
+					});
+				}
+			}
+		},
+		mounted() {
+			this.syncIp(this.ip);
+			this.$watch(
+				() => {
+					return this.segments.join(".");
+				},
+				(val, oldValue) => {
+					if (val !== oldValue) {
+						if (val === "...") {
+							val = "";
+						}
+						if (this.onChange) {
+							this.onChange(val);
+						}
+					}
+				}
+			);
+		}
+	};
+</script>
+
+<style lang="scss" scoped>
+	.ip-input-container {
+		display: inline-block;
+		width: 300px;
+		height: 32px;
+		line-height: normal;
+		border: 1px solid #dcdfe6;
+		box-sizing: border-box;
+		background-color: #fff;
+		text-align: left;
+		/* max-width: 360px; */
+		display: flex;
+	}
+
+	.ip-segment {
+		width: 25%;
+		height: 32px;
+		line-height: normal;
+		display: flex;
+		justify-content: left;
+
+		input {
+			width: auto;
+			height: 32px;
+			line-height: normal;
+			border: none;
+			outline: none;
+			text-align: center;
+			text-indent: 0px;
+			margin: 0px;
+			padding: 0px;
+			background-color: aliceblue;
+			background-color: transparent;
+		}
+
+		i {
+			display: inline-block;
+			font-size: 20px;
+			line-height: 35px;
+		}
+	}
+</style>

--
Gitblit v1.8.0