doc.9d29b2a2.js 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132
  1. import{e as a,o as n,G as t}from"./vendor.bd251973.js";const l={class:"markdown-body"},e=t(`<h1>TimeSelect \u914D\u9001\u65F6\u95F4</h1><h3>\u4ECB\u7ECD</h3><p>\u7528\u4E8E\u914D\u9001\u65F6\u95F4\u9009\u62E9</p><h3>\u5B89\u88C5</h3><pre><code class="language-javascript"><span class="hljs-keyword">import</span> { createApp } <span class="hljs-keyword">from</span> <span class="hljs-string">&#39;vue&#39;</span>;
  2. <span class="hljs-comment">// vue</span>
  3. <span class="hljs-keyword">import</span> { TimeSelect, TimePannel, TimeDetail, Popup } <span class="hljs-keyword">from</span> <span class="hljs-string">&#39;@nutui/nutui&#39;</span>;
  4. <span class="hljs-comment">// taro</span>
  5. <span class="hljs-keyword">import</span> { TimeSelect, TimePannel, TimeDetail, Popup } <span class="hljs-keyword">from</span> <span class="hljs-string">&#39;@nutui/nutui-taro&#39;</span>;
  6. <span class="hljs-keyword">const</span> app = createApp();
  7. app.use(TimeSelect).use(TimePannel).use(TimeDetail).use(Popup);
  8. </code></pre><h3>\u57FA\u672C\u7528\u6CD5</h3><pre><code class="language-html"><span class="hljs-tag">&lt;<span class="hljs-name">nut-timeselect</span> <span class="hljs-attr">v-model:visible</span>=<span class="hljs-string">&quot;visible1&quot;</span> <span class="hljs-attr">height</span>=<span class="hljs-string">&quot;50%&quot;</span> <span class="hljs-attr">:current-key</span>=<span class="hljs-string">&quot;currentKey1&quot;</span> <span class="hljs-attr">:current-time</span>=<span class="hljs-string">&quot;currentTime1&quot;</span> @<span class="hljs-attr">select</span>=<span class="hljs-string">&quot;handleSelected1&quot;</span>&gt;</span>
  9. <span class="hljs-tag">&lt;<span class="hljs-name">template</span> #<span class="hljs-attr">pannel</span>&gt;</span>
  10. <span class="hljs-tag">&lt;<span class="hljs-name">nut-timepannel</span> <span class="hljs-attr">name</span>=<span class="hljs-string">&quot;2\u670823\u65E5(\u4ECA\u5929)&quot;</span> <span class="hljs-attr">pannel-key</span>=<span class="hljs-string">&quot;0&quot;</span> @<span class="hljs-attr">change</span>=<span class="hljs-string">&quot;handleChange1&quot;</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">nut-timepannel</span>&gt;</span>
  11. <span class="hljs-tag">&lt;<span class="hljs-name">nut-timepannel</span> <span class="hljs-attr">name</span>=<span class="hljs-string">&quot;2\u670824\u65E5(\u661F\u671F\u4E09)&quot;</span> <span class="hljs-attr">pannel-key</span>=<span class="hljs-string">&quot;1&quot;</span> @<span class="hljs-attr">change</span>=<span class="hljs-string">&quot;handleChange1&quot;</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">nut-timepannel</span>&gt;</span>
  12. <span class="hljs-tag">&lt;/<span class="hljs-name">template</span>&gt;</span>
  13. <span class="hljs-tag">&lt;<span class="hljs-name">template</span> #<span class="hljs-attr">detail</span>&gt;</span>
  14. <span class="hljs-tag">&lt;<span class="hljs-name">nut-timedetail</span> <span class="hljs-attr">:times</span>=<span class="hljs-string">&quot;times1&quot;</span> @<span class="hljs-attr">select</span>=<span class="hljs-string">&quot;selectTime1&quot;</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">nut-timedetail</span>&gt;</span>
  15. <span class="hljs-tag">&lt;/<span class="hljs-name">template</span>&gt;</span>
  16. <span class="hljs-tag">&lt;/<span class="hljs-name">nut-timeselect</span>&gt;</span>
  17. </code></pre><pre><code class="language-javascript"><span class="hljs-function"><span class="hljs-title">setup</span>(<span class="hljs-params"></span>)</span> {
  18. <span class="hljs-keyword">const</span> state = reactive({
  19. <span class="hljs-attr">visible1</span>: <span class="hljs-literal">false</span>,
  20. <span class="hljs-attr">currentKey1</span>: <span class="hljs-number">0</span>,
  21. <span class="hljs-attr">currentTime1</span>: [] <span class="hljs-keyword">as</span> any[],
  22. <span class="hljs-attr">times1</span>: [
  23. {
  24. <span class="hljs-attr">key</span>: <span class="hljs-number">0</span>,
  25. <span class="hljs-attr">list</span>: [<span class="hljs-string">&#39;9:00-10:00&#39;</span>, <span class="hljs-string">&#39;10:00-11:00&#39;</span>, <span class="hljs-string">&#39;11:00-12:00&#39;</span>]
  26. },
  27. {
  28. <span class="hljs-attr">key</span>: <span class="hljs-number">1</span>,
  29. <span class="hljs-attr">list</span>: [<span class="hljs-string">&#39;9:00-10:00&#39;</span>, <span class="hljs-string">&#39;10:00-11:00&#39;</span>]
  30. },
  31. ],
  32. });
  33. <span class="hljs-keyword">const</span> handleChange1 = <span class="hljs-function">(<span class="hljs-params">pannelKey: number</span>) =&gt;</span> {
  34. state.currentKey1 = pannelKey;
  35. state.currentTime1 = [];
  36. state.currentTime1.push({
  37. <span class="hljs-attr">key</span>: state.currentKey1,
  38. <span class="hljs-attr">list</span>: []
  39. });
  40. };
  41. <span class="hljs-keyword">const</span> handleClick1 = <span class="hljs-function">() =&gt;</span> {
  42. state.visible1 = <span class="hljs-literal">true</span>;
  43. };
  44. <span class="hljs-keyword">const</span> selectTime1 = <span class="hljs-function">(<span class="hljs-params">item: string</span>) =&gt;</span> {
  45. <span class="hljs-keyword">let</span> curTimeIndex = state.currentTime1[<span class="hljs-number">0</span>][<span class="hljs-string">&#39;list&#39;</span>].findIndex(<span class="hljs-function">(<span class="hljs-params">time: string</span>) =&gt;</span> time === item);
  46. <span class="hljs-keyword">if</span>(curTimeIndex === -<span class="hljs-number">1</span>) {
  47. state.currentTime1[<span class="hljs-number">0</span>][<span class="hljs-string">&#39;list&#39;</span>].push(item);
  48. } <span class="hljs-keyword">else</span> {
  49. state.currentTime1[<span class="hljs-number">0</span>][<span class="hljs-string">&#39;list&#39;</span>].splice(curTimeIndex, <span class="hljs-number">1</span>);
  50. }
  51. };
  52. <span class="hljs-keyword">const</span> handleSelected1 = <span class="hljs-function">(<span class="hljs-params">obj: any</span>) =&gt;</span> {
  53. proxy.$toast.text(<span class="hljs-string">\`\u60A8\u9009\u62E9\u4E86\uFF1A<span class="hljs-subst">\${<span class="hljs-built_in">JSON</span>.stringify(obj)}</span>\`</span>);
  54. };
  55. <span class="hljs-keyword">return</span> {
  56. ...toRefs(state),
  57. handleChange1,
  58. handleSelected1,
  59. selectTime1,
  60. handleClick1,
  61. };
  62. }
  63. </code></pre><h3>\u53EF\u9009\u62E9\u591A\u4E2A\u65E5\u671F\u65F6\u95F4</h3><pre><code class="language-html"><span class="hljs-tag">&lt;<span class="hljs-name">nut-timeselect</span> <span class="hljs-attr">v-model:visible</span>=<span class="hljs-string">&quot;visible2&quot;</span> <span class="hljs-attr">height</span>=<span class="hljs-string">&quot;50%&quot;</span> <span class="hljs-attr">:current-key</span>=<span class="hljs-string">&quot;currentKey2&quot;</span> <span class="hljs-attr">:current-time</span>=<span class="hljs-string">&quot;currentTime2&quot;</span> @<span class="hljs-attr">select</span>=<span class="hljs-string">&quot;handleSelected2&quot;</span>&gt;</span>
  64. <span class="hljs-tag">&lt;<span class="hljs-name">template</span> #<span class="hljs-attr">pannel</span>&gt;</span>
  65. <span class="hljs-tag">&lt;<span class="hljs-name">nut-timepannel</span> <span class="hljs-attr">name</span>=<span class="hljs-string">&quot;2\u670823\u65E5(\u4ECA\u5929)&quot;</span> <span class="hljs-attr">pannel-key</span>=<span class="hljs-string">&quot;0&quot;</span> @<span class="hljs-attr">change</span>=<span class="hljs-string">&quot;handleChange2&quot;</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">nut-timepannel</span>&gt;</span>
  66. <span class="hljs-tag">&lt;<span class="hljs-name">nut-timepannel</span> <span class="hljs-attr">name</span>=<span class="hljs-string">&quot;2\u670824\u65E5(\u661F\u671F\u4E09)&quot;</span> <span class="hljs-attr">pannel-key</span>=<span class="hljs-string">&quot;1&quot;</span> @<span class="hljs-attr">change</span>=<span class="hljs-string">&quot;handleChange2&quot;</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">nut-timepannel</span>&gt;</span>
  67. <span class="hljs-tag">&lt;/<span class="hljs-name">template</span>&gt;</span>
  68. <span class="hljs-tag">&lt;<span class="hljs-name">template</span> #<span class="hljs-attr">detail</span>&gt;</span>
  69. <span class="hljs-tag">&lt;<span class="hljs-name">nut-timedetail</span> <span class="hljs-attr">:times</span>=<span class="hljs-string">&quot;times2&quot;</span> @<span class="hljs-attr">select</span>=<span class="hljs-string">&quot;selectTime2&quot;</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">nut-timedetail</span>&gt;</span>
  70. <span class="hljs-tag">&lt;/<span class="hljs-name">template</span>&gt;</span>
  71. <span class="hljs-tag">&lt;/<span class="hljs-name">nut-timeselect</span>&gt;</span>
  72. </code></pre><pre><code class="language-javascript"><span class="hljs-function"><span class="hljs-title">setup</span>(<span class="hljs-params"></span>)</span> {
  73. <span class="hljs-keyword">const</span> state = reactive({
  74. <span class="hljs-attr">visible2</span>: <span class="hljs-literal">false</span>,
  75. <span class="hljs-attr">currentKey2</span>: <span class="hljs-number">0</span>,
  76. <span class="hljs-attr">currentTime2</span>: [] <span class="hljs-keyword">as</span> any[],
  77. <span class="hljs-attr">times2</span>: [
  78. {
  79. <span class="hljs-attr">key</span>: <span class="hljs-number">0</span>,
  80. <span class="hljs-attr">list</span>: [<span class="hljs-string">&#39;9:00-10:00&#39;</span>, <span class="hljs-string">&#39;10:00-11:00&#39;</span>, <span class="hljs-string">&#39;11:00-12:00&#39;</span>]
  81. },
  82. {
  83. <span class="hljs-attr">key</span>: <span class="hljs-number">1</span>,
  84. <span class="hljs-attr">list</span>: [<span class="hljs-string">&#39;9:00-10:00&#39;</span>, <span class="hljs-string">&#39;10:00-11:00&#39;</span>]
  85. },
  86. ]
  87. });
  88. <span class="hljs-keyword">const</span> handleChange2 = <span class="hljs-function">(<span class="hljs-params">pannelKey: number</span>) =&gt;</span> {
  89. state.currentKey2 = pannelKey;
  90. <span class="hljs-keyword">let</span> curTime = state.currentTime2.find(<span class="hljs-function">(<span class="hljs-params">item: any</span>) =&gt;</span> item.key == pannelKey);
  91. <span class="hljs-keyword">if</span>(!curTime) {
  92. state.currentTime2.push({
  93. <span class="hljs-attr">key</span>: pannelKey,
  94. <span class="hljs-attr">list</span>: []
  95. });
  96. }
  97. };
  98. <span class="hljs-keyword">const</span> handleClick2 = <span class="hljs-function">() =&gt;</span> {
  99. state.visible2 = <span class="hljs-literal">true</span>;
  100. };
  101. <span class="hljs-keyword">const</span> selectTime2 = <span class="hljs-function">(<span class="hljs-params">item: string</span>) =&gt;</span> {
  102. <span class="hljs-keyword">let</span> findIndex = state.currentTime2.findIndex(<span class="hljs-function">(<span class="hljs-params">item: any</span>) =&gt;</span> item.key == state.currentKey2);
  103. <span class="hljs-keyword">let</span> curTimeIndex = state.currentTime2[findIndex][<span class="hljs-string">&#39;list&#39;</span>].findIndex(<span class="hljs-function">(<span class="hljs-params">time: string</span>) =&gt;</span> time === item);
  104. <span class="hljs-keyword">if</span>(curTimeIndex === -<span class="hljs-number">1</span>) {
  105. state.currentTime2[findIndex][<span class="hljs-string">&#39;list&#39;</span>].push(item);
  106. } <span class="hljs-keyword">else</span> {
  107. state.currentTime2[findIndex][<span class="hljs-string">&#39;list&#39;</span>].splice(curTimeIndex, <span class="hljs-number">1</span>);
  108. }
  109. };
  110. <span class="hljs-keyword">const</span> handleSelected2 = <span class="hljs-function">(<span class="hljs-params">obj: any</span>) =&gt;</span> {
  111. proxy.$toast.text(<span class="hljs-string">\`\u60A8\u9009\u62E9\u4E86\uFF1A<span class="hljs-subst">\${<span class="hljs-built_in">JSON</span>.stringify(obj)}</span>\`</span>);
  112. };
  113. <span class="hljs-keyword">return</span> {
  114. ...toRefs(state),
  115. handleChange2,
  116. handleSelected2,
  117. selectTime2,
  118. handleClick2,
  119. };
  120. }
  121. </code></pre><h2>API</h2><h3>TimeSelect Prop</h3><table><thead><tr><th>\u5B57\u6BB5</th><th>\u8BF4\u660E</th><th>\u7C7B\u578B</th><th>\u9ED8\u8BA4\u503C</th></tr></thead><tbody><tr><td>visible</td><td>\u662F\u5426\u663E\u793A\u5F39\u5C42</td><td>Boolean</td><td><code>false</code></td></tr><tr><td>height</td><td>\u5F39\u5C42\u7684\u9AD8\u5EA6</td><td>String</td><td><code>20%</code></td></tr><tr><td>title</td><td>\u5F39\u5C42\u6807\u9898</td><td>String</td><td><code>\u53D6\u4EF6\u65F6\u95F4</code></td></tr><tr><td>current-key</td><td>\u552F\u4E00\u6807\u8BC6</td><td>String\u3001Number</td><td><code>0</code></td></tr><tr><td>current-time</td><td>\u5F53\u524D\u9009\u62E9\u7684\u65F6\u95F4\uFF0C\u6570\u7EC4\u5143\u7D20\u5305\u542B:key: string; list: string[]</td><td>Array</td><td><code>[]</code></td></tr></tbody></table><h3>TimePannel Prop</h3><table><thead><tr><th>\u5B57\u6BB5</th><th>\u8BF4\u660E</th><th>\u7C7B\u578B</th><th>\u9ED8\u8BA4\u503C</th></tr></thead><tbody><tr><td>name</td><td>\u663E\u793A\u7684\u540D\u79F0</td><td>String</td><td>\`\`</td></tr><tr><td>pannel-key</td><td>\u552F\u4E00\u6807\u8BC6\uFF0C\u548C current-key\u4E00\u8D77\u6807\u8BC6\u5F53\u524D\u9009\u62E9\u7684\u5929</td><td>Number\u3001String</td><td><code>0</code></td></tr></tbody></table><h3>TimeDetail Prop</h3><table><thead><tr><th>\u5B57\u6BB5</th><th>\u8BF4\u660E</th><th>\u7C7B\u578B</th><th>\u9ED8\u8BA4\u503C</th></tr></thead><tbody><tr><td>times</td><td>\u53EF\u9009\u62E9\u7684\u65F6\u95F4\uFF0C\u6570\u7EC4\u5143\u7D20\u540C <code>current-time</code></td><td>Array</td><td><code>[]</code></td></tr></tbody></table><h3>TimeSelect Event</h3><table><thead><tr><th>\u540D\u79F0</th><th>\u8BF4\u660E</th><th>\u56DE\u8C03\u53C2\u6570</th></tr></thead><tbody><tr><td>select</td><td>\u5173\u95ED\u906E\u7F69\u4E4B\u540E\u7684\u56DE\u8C03</td><td>key: string</td></tr></tbody></table><h3>TimePannel Event</h3><table><thead><tr><th>\u540D\u79F0</th><th>\u8BF4\u660E</th><th>\u56DE\u8C03\u53C2\u6570</th></tr></thead><tbody><tr><td>change</td><td>\u70B9\u51FB\u5185\u5BB9\u7684\u56DE\u8C03</td><td>pannelKey: string \uFF5C number</td></tr></tbody></table><h3>TimeDetail Event</h3><table><thead><tr><th>\u540D\u79F0</th><th>\u8BF4\u660E</th><th>\u56DE\u8C03\u53C2\u6570</th></tr></thead><tbody><tr><td>select</td><td>\u70B9\u51FB\u65F6\u95F4\u7684\u56DE\u8C03</td><td>time: string</td></tr></tbody></table>`,24),p=[e],d={setup(c,{expose:s}){return s({frontmatter:{}}),(r,i)=>(n(),a("div",l,p))}};export{d as default};