From a430284aa21e3ae1f0d5654e55b2ad2852519cc2 Mon Sep 17 00:00:00 2001
From: wwf <yearningwang@iqtogether.com>
Date: 星期三, 04 六月 2025 15:17:49 +0800
Subject: [PATCH] 初始化

---
 app/components/base/select/locale.tsx |   91 +++++++++++++++++++++++++++++++++++++--------
 1 files changed, 74 insertions(+), 17 deletions(-)

diff --git a/app/components/base/select/locale.tsx b/app/components/base/select/locale.tsx
index 8981f09..8b89c66 100644
--- a/app/components/base/select/locale.tsx
+++ b/app/components/base/select/locale.tsx
@@ -1,5 +1,5 @@
 'use client'
-import { Menu, MenuButton, MenuItem, MenuItems, Transition } from '@headlessui/react'
+import { Menu, Transition } from '@headlessui/react'
 import { Fragment } from 'react'
 import { GlobeAltIcon } from '@heroicons/react/24/outline'
 
@@ -21,10 +21,14 @@
     <div className="w-56 text-right">
       <Menu as="div" className="relative inline-block text-left">
         <div>
-          <MenuButton className="h-[44px]justify-center inline-flex w-full items-center rounded-lg border border-components-button-secondary-border px-[10px] py-[6px] text-[13px] font-medium text-text-primary hover:bg-state-base-hover">
-            <GlobeAltIcon className="mr-1 h-5 w-5" aria-hidden="true" />
+          <Menu.Button className="inline-flex w-full h-[44px]justify-center items-center
+          rounded-lg px-[10px] py-[6px]
+          text-gray-900 text-[13px] font-medium
+          border border-gray-200
+          hover:bg-gray-100">
+            <GlobeAltIcon className="w-5 h-5 mr-1" aria-hidden="true" />
             {item?.name}
-          </MenuButton>
+          </Menu.Button>
         </div>
         <Transition
           as={Fragment}
@@ -35,25 +39,78 @@
           leaveFrom="transform opacity-100 scale-100"
           leaveTo="transform opacity-0 scale-95"
         >
-          <MenuItems className="absolute right-0 z-10 mt-2 w-[200px] origin-top-right divide-y divide-divider-regular rounded-md bg-components-panel-bg shadow-lg ring-1 ring-black ring-opacity-5 focus:outline-none">
+          <Menu.Items className="absolute right-0 mt-2 w-[200px] origin-top-right divide-y divide-gray-100 rounded-md bg-white shadow-lg ring-1 ring-black ring-opacity-5 focus:outline-none z-10">
             <div className="px-1 py-1 ">
               {items.map((item) => {
-                return <MenuItem key={item.value}>
-                  <button
-                    className={'group flex w-full items-center rounded-lg px-3 py-2 text-sm text-text-secondary data-[active]:bg-state-base-hover'}
-                    onClick={(evt) => {
-                      evt.preventDefault()
-                      onChange && onChange(item.value)
-                    }}
-                  >
-                    {item.name}
-                  </button>
-                </MenuItem>
+                return <Menu.Item key={item.value}>
+                  {({ active }) => (
+                    <button
+                      className={`${active ? 'bg-gray-100' : ''
+                      } group flex w-full items-center rounded-lg px-3 py-2 text-sm text-gray-700`}
+                      onClick={(evt) => {
+                        evt.preventDefault()
+                        onChange && onChange(item.value)
+                      }}
+                    >
+                      {item.name}
+                    </button>
+                  )}
+                </Menu.Item>
               })}
 
             </div>
 
-          </MenuItems>
+          </Menu.Items>
+        </Transition>
+      </Menu>
+    </div>
+  )
+}
+
+export function InputSelect({
+  items,
+  value,
+  onChange,
+}: ISelectProps) {
+  const item = items.filter(item => item.value === value)[0]
+  return (
+    <div className="w-full">
+      <Menu as="div" className="w-full">
+        <div>
+          <Menu.Button className="appearance-none block w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm placeholder-gray-400 sm:text-sm h-[38px] text-left">
+            {item?.name}
+          </Menu.Button>
+        </div>
+        <Transition
+          as={Fragment}
+          enter="transition ease-out duration-100"
+          enterFrom="transform opacity-0 scale-95"
+          enterTo="transform opacity-100 scale-100"
+          leave="transition ease-in duration-75"
+          leaveFrom="transform opacity-100 scale-100"
+          leaveTo="transform opacity-0 scale-95"
+        >
+          <Menu.Items className="absolute right-0 mt-2 w-full origin-top-right divide-y divide-gray-100 rounded-md bg-white shadow-lg ring-1 ring-black ring-opacity-5 focus:outline-none z-10">
+            <div className="px-1 py-1 ">
+              {items.map((item) => {
+                return <Menu.Item key={item.value}>
+                  {({ active }) => (
+                    <button
+                      className={`${active ? 'bg-gray-100' : ''
+                      } group flex w-full items-center rounded-md px-2 py-2 text-sm`}
+                      onClick={() => {
+                        onChange && onChange(item.value)
+                      }}
+                    >
+                      {item.name}
+                    </button>
+                  )}
+                </Menu.Item>
+              })}
+
+            </div>
+
+          </Menu.Items>
         </Transition>
       </Menu>
     </div>

--
Gitblit v1.8.0