huiyi-select-table 0.1.19 → 0.1.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Binary file
@@ -1,21 +1,21 @@
1
- import { defineComponent as F, openBlock as g, createElementBlock as L, createElementVNode as E, resolveComponent as C, createVNode as S, unref as m, isRef as Q, withCtx as D, normalizeClass as W, createBlock as I, Teleport as P, normalizeStyle as Z, Fragment as ee, renderList as ne, createCommentVNode as O } from "vue";
1
+ import { defineComponent as q, openBlock as y, createElementBlock as E, createElementVNode as V, ref as i, onMounted as O, computed as Z, onUnmounted as ee, resolveComponent as S, createVNode as T, unref as g, isRef as ne, withCtx as I, normalizeClass as te, createBlock as L, Teleport as F, normalizeStyle as le, Fragment as oe, renderList as ae, createCommentVNode as N } from "vue";
2
2
  /*! Element Plus Icons Vue v2.3.2 */
3
- var te = /* @__PURE__ */ F({
3
+ var re = /* @__PURE__ */ q({
4
4
  name: "ArrowDown",
5
5
  __name: "arrow-down",
6
6
  setup(u) {
7
- return (d, _) => (g(), L("svg", {
7
+ return (f, _) => (y(), E("svg", {
8
8
  xmlns: "http://www.w3.org/2000/svg",
9
9
  viewBox: "0 0 1024 1024"
10
10
  }, [
11
- E("path", {
11
+ V("path", {
12
12
  fill: "currentColor",
13
13
  d: "M831.872 340.864 512 652.672 192.128 340.864a30.59 30.59 0 0 0-42.752 0 29.12 29.12 0 0 0 0 41.6L489.664 714.24a32 32 0 0 0 44.672 0l340.288-331.712a29.12 29.12 0 0 0 0-41.728 30.59 30.59 0 0 0-42.752 0z"
14
14
  })
15
15
  ]));
16
16
  }
17
- }), le = te;
18
- const oe = /* @__PURE__ */ F({
17
+ }), ue = re;
18
+ const se = /* @__PURE__ */ q({
19
19
  name: "InputSelectCompont",
20
20
  __name: "SelectTable",
21
21
  props: {
@@ -30,122 +30,122 @@ const oe = /* @__PURE__ */ F({
30
30
  column: Array
31
31
  },
32
32
  emits: ["getInputRef", "handleChangeSelectValue"],
33
- setup(u, { emit: d }) {
34
- const _ = d, t = u;
35
- let i = ref(), f = ref(""), k = ref(), T = ref(), r = ref(!1), B = ref({
33
+ setup(u, { emit: f }) {
34
+ const _ = f, t = u;
35
+ let d = i(), p = i(""), x = i(), R = i(), r = i(!1), A = i({
36
36
  top: "0px",
37
37
  left: "0px"
38
38
  // width: "0px",
39
- }), l = ref(-1), y = ref(!1), R = ref(!1);
39
+ }), l = i(-1), h = i(!1), D = i(!1);
40
40
  watch(
41
41
  () => t.value,
42
42
  (e) => {
43
- f.value = e || "";
43
+ p.value = e || "";
44
44
  },
45
45
  { immediate: !0 }
46
- ), onMounted(() => {
46
+ ), O(() => {
47
47
  nextTick(() => {
48
- _("getInputRef", k.value);
48
+ _("getInputRef", x.value);
49
49
  });
50
50
  });
51
- const h = () => {
52
- if (!T.value)
51
+ const b = () => {
52
+ if (!R.value)
53
53
  return;
54
- const e = T.value.getBoundingClientRect(), n = window.pageYOffset || document.documentElement.scrollTop, a = window.pageXOffset || document.documentElement.scrollLeft;
55
- B.value = {
54
+ const e = R.value.getBoundingClientRect(), n = window.pageYOffset || document.documentElement.scrollTop, a = window.pageXOffset || document.documentElement.scrollLeft;
55
+ A.value = {
56
56
  top: `${e.bottom + n}px`,
57
57
  left: `${e.left + a}px`
58
58
  // width: `${rect.width}px`,
59
59
  };
60
- }, x = computed(() => {
60
+ }, C = Z(() => {
61
61
  const e = t.column?.map((c) => c.prop) || [
62
62
  "name",
63
63
  "engname",
64
64
  "spell",
65
65
  "zjm",
66
66
  "infoOrder"
67
- ], n = t.options || [], a = f.value || "";
67
+ ], n = t.options || [], a = p.value || "";
68
68
  return l.value = -1, nextTick(() => {
69
- const c = t.options || [], v = c.find((w) => w.name === t.value);
70
- if (i.value && i.value.setCurrentRow(v), v) {
71
- const w = z(
69
+ const c = t.options || [], w = c.find((m) => m.name === t.value);
70
+ if (d.value && d.value.setCurrentRow(w), w) {
71
+ const m = P(
72
72
  e,
73
73
  a,
74
74
  c
75
75
  );
76
- l.value = w.findIndex(
77
- (o) => o.name === v.name
76
+ l.value = m.findIndex(
77
+ (o) => o.name === w.name
78
78
  );
79
79
  }
80
- }), z(e, a, n);
81
- }), N = (e) => {
82
- e?.stopPropagation(), !t.readonly && (r.value ? s() : p());
83
- }, q = () => {
80
+ }), P(e, a, n);
81
+ }), K = (e) => {
82
+ e?.stopPropagation(), !t.readonly && (r.value ? s() : v());
83
+ }, U = () => {
84
84
  if (t.readonly) {
85
85
  s();
86
86
  return;
87
87
  }
88
- r.value || p(), l.value = -1;
89
- }, p = () => {
90
- t.readonly || R.value || (R.value = !0, r.value = !0, nextTick(() => {
91
- h(), y.value = !1, setTimeout(() => {
92
- R.value = !1;
88
+ r.value || v(), l.value = -1;
89
+ }, v = () => {
90
+ t.readonly || D.value || (D.value = !0, r.value = !0, nextTick(() => {
91
+ b(), h.value = !1, setTimeout(() => {
92
+ D.value = !1;
93
93
  }, 100);
94
94
  }));
95
95
  }, s = () => {
96
- r.value = !1, y.value = !1;
96
+ r.value = !1, h.value = !1;
97
97
  }, M = (e) => {
98
- f.value = e.name, s(), nextTick(() => {
99
- k.value?.focus();
98
+ p.value = e.name, s(), nextTick(() => {
99
+ x.value?.focus();
100
100
  }), _("handleChangeSelectValue", {
101
101
  valueCode: e.code,
102
102
  value: e.name,
103
103
  index: t.itemIndex ? t.itemIndex : ""
104
104
  });
105
- }, K = (e) => {
106
- y.value = !0, e.preventDefault();
107
- }, U = (e) => {
105
+ }, Y = (e) => {
106
+ h.value = !0, e.preventDefault();
107
+ }, $ = (e) => {
108
108
  e.stopPropagation(), s();
109
- }, Y = async () => {
109
+ }, j = async () => {
110
110
  if (console.log("handleInput"), t.readonly) {
111
111
  s();
112
112
  return;
113
113
  }
114
- p(), l.value = -1;
115
- }, $ = () => {
114
+ v(), l.value = -1;
115
+ }, H = () => {
116
116
  if (console.log("handleFocus"), t.readonly) {
117
117
  s();
118
118
  return;
119
119
  }
120
- r.value || p(), l.value = -1;
121
- }, j = () => {
122
- console.log("handleBlur", y.value), setTimeout(() => {
123
- if (y.value) {
120
+ r.value || v(), l.value = -1;
121
+ }, X = () => {
122
+ console.log("handleBlur", h.value), setTimeout(() => {
123
+ if (h.value) {
124
124
  nextTick(() => {
125
- k.value?.focus();
125
+ x.value?.focus();
126
126
  });
127
127
  return;
128
128
  }
129
129
  s();
130
130
  }, 150);
131
- }, H = (e) => {
132
- x.value.length !== 0 && (e.key === "ArrowDown" ? (e.preventDefault(), r.value || p(), A(1)) : e.key === "ArrowUp" ? (e.preventDefault(), r.value || p(), A(-1)) : e.key === "Enter" ? (e.preventDefault(), r.value ? X() : p()) : (e.key === "Escape" || e.key === "Tab") && s());
133
- }, A = (e) => {
134
- const n = x.value;
131
+ }, G = (e) => {
132
+ C.value.length !== 0 && (e.key === "ArrowDown" ? (e.preventDefault(), r.value || v(), z(1)) : e.key === "ArrowUp" ? (e.preventDefault(), r.value || v(), z(-1)) : e.key === "Enter" ? (e.preventDefault(), r.value ? J() : v()) : (e.key === "Escape" || e.key === "Tab") && s());
133
+ }, z = (e) => {
134
+ const n = C.value;
135
135
  if (n.length === 0)
136
136
  return;
137
137
  l.value === -1 ? e === 1 ? l.value = 0 : l.value = n.length - 1 : (l.value += e, l.value < 0 ? l.value = n.length - 1 : l.value >= n.length && (l.value = 0));
138
138
  const a = n[l.value];
139
- i.value && i.value.setCurrentRow(a), G();
140
- }, X = () => {
141
- const e = x.value;
139
+ d.value && d.value.setCurrentRow(a), Q();
140
+ }, J = () => {
141
+ const e = C.value;
142
142
  if (e.length === 0 || l.value === -1)
143
143
  return;
144
144
  const n = e[l.value];
145
145
  M(n);
146
- }, G = () => {
146
+ }, Q = () => {
147
147
  nextTick(() => {
148
- const e = i.value;
148
+ const e = d.value;
149
149
  if (!e)
150
150
  return;
151
151
  const n = e.$el.querySelector(".el-table__body-wrapper");
@@ -157,73 +157,73 @@ const oe = /* @__PURE__ */ F({
157
157
  block: "nearest"
158
158
  });
159
159
  });
160
- }, z = (e, n, a) => {
160
+ }, P = (e, n, a) => {
161
161
  const c = n.trim().toLowerCase();
162
162
  return c ? a.filter(
163
- (v) => e.some((w) => {
164
- const o = v[w];
163
+ (w) => e.some((m) => {
164
+ const o = w[m];
165
165
  return o == null && o !== 0 ? !1 : String(o).toLowerCase().includes(c);
166
166
  })
167
167
  ) : a;
168
168
  };
169
- return onMounted(() => {
170
- window.addEventListener("resize", h), window.addEventListener("scroll", h, !0);
171
- }), onUnmounted(() => {
172
- window.removeEventListener("resize", h), window.removeEventListener("scroll", h, !0);
169
+ return O(() => {
170
+ window.addEventListener("resize", b), window.addEventListener("scroll", b, !0);
171
+ }), ee(() => {
172
+ window.removeEventListener("resize", b), window.removeEventListener("scroll", b, !0);
173
173
  }), (e, n) => {
174
- const a = C("el-icon"), c = C("el-input"), v = C("el-table-column"), w = C("el-table");
175
- return g(), L("div", {
174
+ const a = S("el-icon"), c = S("el-input"), w = S("el-table-column"), m = S("el-table");
175
+ return y(), E("div", {
176
176
  class: "custom-dropdown",
177
177
  ref_key: "dropdownRef",
178
- ref: T
178
+ ref: R
179
179
  }, [
180
- S(c, {
181
- modelValue: m(f),
182
- "onUpdate:modelValue": n[0] || (n[0] = (o) => Q(f) ? f.value = o : f = o),
180
+ T(c, {
181
+ modelValue: g(p),
182
+ "onUpdate:modelValue": n[0] || (n[0] = (o) => ne(p) ? p.value = o : p = o),
183
183
  ref_key: "inputValueRef",
184
- ref: k,
184
+ ref: x,
185
185
  readonly: t.readonly,
186
- onInput: Y,
187
- onKeydown: H,
188
- onFocus: $,
189
- onBlur: j,
190
- onClick: q
186
+ onInput: j,
187
+ onKeydown: G,
188
+ onFocus: H,
189
+ onBlur: X,
190
+ onClick: U
191
191
  }, {
192
- suffix: D(() => [
193
- S(a, {
194
- class: W(["el-input__icon dropdown-arrow", { "dropdown-arrow--open": m(r) }]),
195
- onClick: N
192
+ suffix: I(() => [
193
+ T(a, {
194
+ class: te(["el-input__icon dropdown-arrow", { "dropdown-arrow--open": g(r) }]),
195
+ onClick: K
196
196
  }, {
197
- default: D(() => [
198
- S(m(le))
197
+ default: I(() => [
198
+ T(g(ue))
199
199
  ]),
200
200
  _: 1
201
201
  }, 8, ["class"])
202
202
  ]),
203
203
  _: 1
204
204
  }, 8, ["modelValue", "readonly"]),
205
- m(r) ? (g(), I(P, {
205
+ g(r) ? (y(), L(F, {
206
206
  key: 0,
207
207
  to: "body"
208
208
  }, [
209
- E("div", {
209
+ V("div", {
210
210
  class: "dropdown-panel",
211
- style: Z(m(B)),
212
- onMousedown: K
211
+ style: le(g(A)),
212
+ onMousedown: Y
213
213
  }, [
214
- S(w, {
214
+ T(m, {
215
215
  border: "",
216
- data: m(x),
216
+ data: C.value,
217
217
  "highlight-current-row": "",
218
218
  ref_key: "tableRef",
219
- ref: i,
219
+ ref: d,
220
220
  "max-height": "200px",
221
221
  onRowClick: M,
222
222
  style: { width: "100%" }
223
223
  }, {
224
- default: D(() => [
225
- (g(!0), L(ee, null, ne(t.column, (o, J) => (g(), I(v, {
226
- key: J,
224
+ default: I(() => [
225
+ (y(!0), E(oe, null, ae(t.column, (o, W) => (y(), L(w, {
226
+ key: W,
227
227
  prop: o.prop,
228
228
  label: o.label,
229
229
  width: o.width,
@@ -235,45 +235,45 @@ const oe = /* @__PURE__ */ F({
235
235
  _: 1
236
236
  }, 8, ["data"])
237
237
  ], 36)
238
- ])) : O("", !0),
239
- m(r) ? (g(), I(P, {
238
+ ])) : N("", !0),
239
+ g(r) ? (y(), L(F, {
240
240
  key: 1,
241
241
  to: "body"
242
242
  }, [
243
- E("div", {
243
+ V("div", {
244
244
  class: "dropdown-mask",
245
- onMousedown: U
245
+ onMousedown: $
246
246
  }, null, 32)
247
- ])) : O("", !0)
247
+ ])) : N("", !0)
248
248
  ], 512);
249
249
  };
250
250
  }
251
251
  });
252
- const ae = (u, d) => {
252
+ const ce = (u, f) => {
253
253
  const _ = u.__vccOpts || u;
254
- for (const [t, i] of d)
255
- _[t] = i;
254
+ for (const [t, d] of f)
255
+ _[t] = d;
256
256
  return _;
257
- }, b = /* @__PURE__ */ ae(oe, [["__scopeId", "data-v-fcb596cf"]]);
258
- b.install = (u) => {
259
- u.component(b.name, b);
257
+ }, k = /* @__PURE__ */ ce(se, [["__scopeId", "data-v-7fb91764"]]);
258
+ k.install = (u) => {
259
+ u.component(k.name, k);
260
260
  };
261
- const re = [
262
- b
263
- ], V = function(u) {
264
- V.installed || re.forEach((d) => {
265
- u.component(d.name, d);
261
+ const ie = [
262
+ k
263
+ ], B = function(u) {
264
+ B.installed || ie.forEach((f) => {
265
+ u.component(f.name, f);
266
266
  });
267
267
  };
268
- typeof window < "u" && window.Vue && V(window.Vue);
269
- const se = {
268
+ typeof window < "u" && window.Vue && B(window.Vue);
269
+ const fe = {
270
270
  // 导出的对象必须具有 install,才能被 Vue.use() 方法安装
271
- install: V,
271
+ install: B,
272
272
  // 以下是具体的组件列表
273
- SelectTable: b
273
+ SelectTable: k
274
274
  };
275
275
  export {
276
- b as SelectTable,
277
- se as default,
278
- V as install
276
+ k as SelectTable,
277
+ fe as default,
278
+ B as install
279
279
  };
@@ -1 +1 @@
1
- (function(s,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],e):(s=typeof globalThis<"u"?globalThis:s||self,e(s.HuiyiSelectTable={},s.Vue))})(this,function(s,e){"use strict";const $="";/*! Element Plus Icons Vue v2.3.2 */var D=e.defineComponent({name:"ArrowDown",__name:"arrow-down",setup(i){return(p,g)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("path",{fill:"currentColor",d:"M831.872 340.864 512 652.672 192.128 340.864a30.59 30.59 0 0 0-42.752 0 29.12 29.12 0 0 0 0 41.6L489.664 714.24a32 32 0 0 0 44.672 0l340.288-331.712a29.12 29.12 0 0 0 0-41.728 30.59 30.59 0 0 0-42.752 0z"})]))}}),I=D;const L=e.defineComponent({name:"InputSelectCompont",__name:"SelectTable",props:{options:Array,readonly:Boolean,required:Boolean,value:String,itemIndex:{type:[String,Number,null],default:null},column:Array},emits:["getInputRef","handleChangeSelectValue"],setup(i,{emit:p}){const g=p,o=i;let f=ref(),m=ref(""),x=ref(),T=ref(),c=ref(!1),B=ref({top:"0px",left:"0px"}),l=ref(-1),v=ref(!1),S=ref(!1);watch(()=>o.value,n=>{m.value=n||""},{immediate:!0}),onMounted(()=>{nextTick(()=>{g("getInputRef",x.value)})});const k=()=>{if(!T.value)return;const n=T.value.getBoundingClientRect(),t=window.pageYOffset||document.documentElement.scrollTop,r=window.pageXOffset||document.documentElement.scrollLeft;B.value={top:`${n.bottom+t}px`,left:`${n.left+r}px`}},C=computed(()=>{const n=o.column?.map(d=>d.prop)||["name","engname","spell","zjm","infoOrder"],t=o.options||[],r=m.value||"";return l.value=-1,nextTick(()=>{const d=o.options||[],_=d.find(y=>y.name===o.value);if(f.value&&f.value.setCurrentRow(_),_){const y=E(n,r,d);l.value=y.findIndex(a=>a.name===_.name)}}),E(n,r,t)}),A=n=>{n?.stopPropagation(),!o.readonly&&(c.value?u():w())},P=()=>{if(o.readonly){u();return}c.value||w(),l.value=-1},w=()=>{o.readonly||S.value||(S.value=!0,c.value=!0,nextTick(()=>{k(),v.value=!1,setTimeout(()=>{S.value=!1},100)}))},u=()=>{c.value=!1,v.value=!1},R=n=>{m.value=n.name,u(),nextTick(()=>{x.value?.focus()}),g("handleChangeSelectValue",{valueCode:n.code,value:n.name,index:o.itemIndex?o.itemIndex:""})},z=n=>{v.value=!0,n.preventDefault()},O=n=>{n.stopPropagation(),u()},q=async()=>{if(console.log("handleInput"),o.readonly){u();return}w(),l.value=-1},F=()=>{if(console.log("handleFocus"),o.readonly){u();return}c.value||w(),l.value=-1},j=()=>{console.log("handleBlur",v.value),setTimeout(()=>{if(v.value){nextTick(()=>{x.value?.focus()});return}u()},150)},K=n=>{C.value.length!==0&&(n.key==="ArrowDown"?(n.preventDefault(),c.value||w(),V(1)):n.key==="ArrowUp"?(n.preventDefault(),c.value||w(),V(-1)):n.key==="Enter"?(n.preventDefault(),c.value?U():w()):(n.key==="Escape"||n.key==="Tab")&&u())},V=n=>{const t=C.value;if(t.length===0)return;l.value===-1?n===1?l.value=0:l.value=t.length-1:(l.value+=n,l.value<0?l.value=t.length-1:l.value>=t.length&&(l.value=0));const r=t[l.value];f.value&&f.value.setCurrentRow(r),H()},U=()=>{const n=C.value;if(n.length===0||l.value===-1)return;const t=n[l.value];R(t)},H=()=>{nextTick(()=>{const n=f.value;if(!n)return;const t=n.$el.querySelector(".el-table__body-wrapper");if(!t)return;const r=t.querySelector(".current-row");r&&r.scrollIntoView({behavior:"smooth",block:"nearest"})})},E=(n,t,r)=>{const d=t.trim().toLowerCase();return d?r.filter(_=>n.some(y=>{const a=_[y];return a==null&&a!==0?!1:String(a).toLowerCase().includes(d)})):r};return onMounted(()=>{window.addEventListener("resize",k),window.addEventListener("scroll",k,!0)}),onUnmounted(()=>{window.removeEventListener("resize",k),window.removeEventListener("scroll",k,!0)}),(n,t)=>{const r=e.resolveComponent("el-icon"),d=e.resolveComponent("el-input"),_=e.resolveComponent("el-table-column"),y=e.resolveComponent("el-table");return e.openBlock(),e.createElementBlock("div",{class:"custom-dropdown",ref_key:"dropdownRef",ref:T},[e.createVNode(d,{modelValue:e.unref(m),"onUpdate:modelValue":t[0]||(t[0]=a=>e.isRef(m)?m.value=a:m=a),ref_key:"inputValueRef",ref:x,readonly:o.readonly,onInput:q,onKeydown:K,onFocus:F,onBlur:j,onClick:P},{suffix:e.withCtx(()=>[e.createVNode(r,{class:e.normalizeClass(["el-input__icon dropdown-arrow",{"dropdown-arrow--open":e.unref(c)}]),onClick:A},{default:e.withCtx(()=>[e.createVNode(e.unref(I))]),_:1},8,["class"])]),_:1},8,["modelValue","readonly"]),e.unref(c)?(e.openBlock(),e.createBlock(e.Teleport,{key:0,to:"body"},[e.createElementVNode("div",{class:"dropdown-panel",style:e.normalizeStyle(e.unref(B)),onMousedown:z},[e.createVNode(y,{border:"",data:e.unref(C),"highlight-current-row":"",ref_key:"tableRef",ref:f,"max-height":"200px",onRowClick:R,style:{width:"100%"}},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.column,(a,Y)=>(e.openBlock(),e.createBlock(_,{key:Y,prop:a.prop,label:a.label,width:a.width,align:a.align,type:a.type,"header-align":a.headerAlign},null,8,["prop","label","width","align","type","header-align"]))),128))]),_:1},8,["data"])],36)])):e.createCommentVNode("",!0),e.unref(c)?(e.openBlock(),e.createBlock(e.Teleport,{key:1,to:"body"},[e.createElementVNode("div",{class:"dropdown-mask",onMousedown:O},null,32)])):e.createCommentVNode("",!0)],512)}}}),X="",h=((i,p)=>{const g=i.__vccOpts||i;for(const[o,f]of p)g[o]=f;return g})(L,[["__scopeId","data-v-fcb596cf"]]);h.install=i=>{i.component(h.name,h)};const M=[h],b=function(i){b.installed||M.forEach(p=>{i.component(p.name,p)})};typeof window<"u"&&window.Vue&&b(window.Vue);const N={install:b,SelectTable:h};s.SelectTable=h,s.default=N,s.install=b,Object.defineProperties(s,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
1
+ (function(c,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],e):(c=typeof globalThis<"u"?globalThis:c||self,e(c.HuiyiSelectTable={},c.Vue))})(this,function(c,e){"use strict";const $="";/*! Element Plus Icons Vue v2.3.2 */var D=e.defineComponent({name:"ArrowDown",__name:"arrow-down",setup(i){return(p,g)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("path",{fill:"currentColor",d:"M831.872 340.864 512 652.672 192.128 340.864a30.59 30.59 0 0 0-42.752 0 29.12 29.12 0 0 0 0 41.6L489.664 714.24a32 32 0 0 0 44.672 0l340.288-331.712a29.12 29.12 0 0 0 0-41.728 30.59 30.59 0 0 0-42.752 0z"})]))}}),I=D;const L=e.defineComponent({name:"InputSelectCompont",__name:"SelectTable",props:{options:Array,readonly:Boolean,required:Boolean,value:String,itemIndex:{type:[String,Number,null],default:null},column:Array},emits:["getInputRef","handleChangeSelectValue"],setup(i,{emit:p}){const g=p,o=i;let f=e.ref(),m=e.ref(""),v=e.ref(),T=e.ref(),s=e.ref(!1),B=e.ref({top:"0px",left:"0px"}),l=e.ref(-1),k=e.ref(!1),S=e.ref(!1);watch(()=>o.value,n=>{m.value=n||""},{immediate:!0}),e.onMounted(()=>{nextTick(()=>{g("getInputRef",v.value)})});const b=()=>{if(!T.value)return;const n=T.value.getBoundingClientRect(),t=window.pageYOffset||document.documentElement.scrollTop,r=window.pageXOffset||document.documentElement.scrollLeft;B.value={top:`${n.bottom+t}px`,left:`${n.left+r}px`}},C=e.computed(()=>{const n=o.column?.map(d=>d.prop)||["name","engname","spell","zjm","infoOrder"],t=o.options||[],r=m.value||"";return l.value=-1,nextTick(()=>{const d=o.options||[],_=d.find(y=>y.name===o.value);if(f.value&&f.value.setCurrentRow(_),_){const y=E(n,r,d);l.value=y.findIndex(a=>a.name===_.name)}}),E(n,r,t)}),A=n=>{n?.stopPropagation(),!o.readonly&&(s.value?u():w())},P=()=>{if(o.readonly){u();return}s.value||w(),l.value=-1},w=()=>{o.readonly||S.value||(S.value=!0,s.value=!0,nextTick(()=>{b(),k.value=!1,setTimeout(()=>{S.value=!1},100)}))},u=()=>{s.value=!1,k.value=!1},R=n=>{m.value=n.name,u(),nextTick(()=>{v.value?.focus()}),g("handleChangeSelectValue",{valueCode:n.code,value:n.name,index:o.itemIndex?o.itemIndex:""})},z=n=>{k.value=!0,n.preventDefault()},O=n=>{n.stopPropagation(),u()},q=async()=>{if(console.log("handleInput"),o.readonly){u();return}w(),l.value=-1},F=()=>{if(console.log("handleFocus"),o.readonly){u();return}s.value||w(),l.value=-1},j=()=>{console.log("handleBlur",k.value),setTimeout(()=>{if(k.value){nextTick(()=>{v.value?.focus()});return}u()},150)},K=n=>{C.value.length!==0&&(n.key==="ArrowDown"?(n.preventDefault(),s.value||w(),V(1)):n.key==="ArrowUp"?(n.preventDefault(),s.value||w(),V(-1)):n.key==="Enter"?(n.preventDefault(),s.value?U():w()):(n.key==="Escape"||n.key==="Tab")&&u())},V=n=>{const t=C.value;if(t.length===0)return;l.value===-1?n===1?l.value=0:l.value=t.length-1:(l.value+=n,l.value<0?l.value=t.length-1:l.value>=t.length&&(l.value=0));const r=t[l.value];f.value&&f.value.setCurrentRow(r),H()},U=()=>{const n=C.value;if(n.length===0||l.value===-1)return;const t=n[l.value];R(t)},H=()=>{nextTick(()=>{const n=f.value;if(!n)return;const t=n.$el.querySelector(".el-table__body-wrapper");if(!t)return;const r=t.querySelector(".current-row");r&&r.scrollIntoView({behavior:"smooth",block:"nearest"})})},E=(n,t,r)=>{const d=t.trim().toLowerCase();return d?r.filter(_=>n.some(y=>{const a=_[y];return a==null&&a!==0?!1:String(a).toLowerCase().includes(d)})):r};return e.onMounted(()=>{window.addEventListener("resize",b),window.addEventListener("scroll",b,!0)}),e.onUnmounted(()=>{window.removeEventListener("resize",b),window.removeEventListener("scroll",b,!0)}),(n,t)=>{const r=e.resolveComponent("el-icon"),d=e.resolveComponent("el-input"),_=e.resolveComponent("el-table-column"),y=e.resolveComponent("el-table");return e.openBlock(),e.createElementBlock("div",{class:"custom-dropdown",ref_key:"dropdownRef",ref:T},[e.createVNode(d,{modelValue:e.unref(m),"onUpdate:modelValue":t[0]||(t[0]=a=>e.isRef(m)?m.value=a:m=a),ref_key:"inputValueRef",ref:v,readonly:o.readonly,onInput:q,onKeydown:K,onFocus:F,onBlur:j,onClick:P},{suffix:e.withCtx(()=>[e.createVNode(r,{class:e.normalizeClass(["el-input__icon dropdown-arrow",{"dropdown-arrow--open":e.unref(s)}]),onClick:A},{default:e.withCtx(()=>[e.createVNode(e.unref(I))]),_:1},8,["class"])]),_:1},8,["modelValue","readonly"]),e.unref(s)?(e.openBlock(),e.createBlock(e.Teleport,{key:0,to:"body"},[e.createElementVNode("div",{class:"dropdown-panel",style:e.normalizeStyle(e.unref(B)),onMousedown:z},[e.createVNode(y,{border:"",data:C.value,"highlight-current-row":"",ref_key:"tableRef",ref:f,"max-height":"200px",onRowClick:R,style:{width:"100%"}},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.column,(a,Y)=>(e.openBlock(),e.createBlock(_,{key:Y,prop:a.prop,label:a.label,width:a.width,align:a.align,type:a.type,"header-align":a.headerAlign},null,8,["prop","label","width","align","type","header-align"]))),128))]),_:1},8,["data"])],36)])):e.createCommentVNode("",!0),e.unref(s)?(e.openBlock(),e.createBlock(e.Teleport,{key:1,to:"body"},[e.createElementVNode("div",{class:"dropdown-mask",onMousedown:O},null,32)])):e.createCommentVNode("",!0)],512)}}}),X="",h=((i,p)=>{const g=i.__vccOpts||i;for(const[o,f]of p)g[o]=f;return g})(L,[["__scopeId","data-v-7fb91764"]]);h.install=i=>{i.component(h.name,h)};const M=[h],x=function(i){x.installed||M.forEach(p=>{i.component(p.name,p)})};typeof window<"u"&&window.Vue&&x(window.Vue);const N={install:x,SelectTable:h};c.SelectTable=h,c.default=N,c.install=x,Object.defineProperties(c,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "huiyi-select-table",
3
- "version": "0.1.19",
3
+ "version": "0.1.20",
4
4
  "description": "A Vue.js select table component",
5
5
  "main": "huiyi-select-table.umd.js",
6
6
  "module": "huiyi-select-table.mjs",
package/style.css CHANGED
@@ -1 +1 @@
1
- .custom-dropdown[data-v-fcb596cf]{position:relative;width:100%}.dropdown-panel[data-v-fcb596cf]{position:fixed;z-index:9999;background:white;border:1px solid #e4e7ed;border-radius:4px;box-shadow:0 2px 12px #0000001a;margin-top:4px;box-sizing:border-box;max-height:200px;overflow:hidden}.dropdown-mask[data-v-fcb596cf]{position:fixed;inset:0;z-index:9998;background:transparent}.dropdown-arrow[data-v-fcb596cf]{cursor:pointer;transition:transform .3s}.dropdown-arrow--open[data-v-fcb596cf]{transform:rotate(180deg)}
1
+ .custom-dropdown[data-v-7fb91764]{position:relative;width:100%}.dropdown-panel[data-v-7fb91764]{position:fixed;z-index:9999;background:white;border:1px solid #e4e7ed;border-radius:4px;box-shadow:0 2px 12px #0000001a;margin-top:4px;box-sizing:border-box;max-height:200px;overflow:hidden}.dropdown-mask[data-v-7fb91764]{position:fixed;inset:0;z-index:9998;background:transparent}.dropdown-arrow[data-v-7fb91764]{cursor:pointer;transition:transform .3s}.dropdown-arrow--open[data-v-7fb91764]{transform:rotate(180deg)}