diff --git a/views/friend.html b/views/friend.html index 979b7f91..ee745061 100644 --- a/views/friend.html +++ b/views/friend.html @@ -21,87 +21,79 @@ <main class="-mt-32"> <div class="mx-auto max-w-7xl px-4 pb-12 sm:px-6 lg:px-8"> <div class="rounded-lg bg-white px-5 py-6 shadow sm:px-6 text-2xl"> - <table class="min-w-full divide-y divide-gray-300"> - <thead class="bg-gray-50"> - <tr> - <th scope="col" - class="py-3.5 pl-4 pr-3 text-left text-sm font-semibold text-gray-900 sm:pl-6"> - 微信Id - </th> - <th scope="col" class="px-3 py-3.5 text-left text-sm font-semibold text-gray-900"> - 微信号 - </th> - <th scope="col" class="px-3 py-3.5 text-left text-sm font-semibold text-gray-900">昵称 - </th> - <th scope="col" class="px-3 py-3.5 text-left text-sm font-semibold text-gray-900"> - 最后活跃时间 - </th> - <th scope="col" class="px-3 py-3.5 text-left text-sm font-semibold text-gray-900"> - 是否在通讯录 - </th> - <th scope="col" class="px-3 py-3.5 text-left text-sm font-semibold text-gray-900"> - 是否启用AI - </th> - <th scope="col" class="px-3 py-3.5 text-left text-sm font-semibold text-gray-900"> - 是否启用指令 - </th> - </tr> - </thead> - <tbody class="divide-y divide-gray-200 bg-white"> + <ul role="list" class="grid grid-cols-1 gap-x-6 gap-y-8 lg:grid-cols-3 xl:gap-x-8"> {{ range .friends }} - <tr class="even:bg-gray-50"> - <td class="whitespace-nowrap py-4 pl-4 pr-3 text-sm font-medium text-gray-900 sm:pl-6"> - {{ .Wxid }} - </td> - <td class="whitespace-nowrap px-3 py-4 text-sm text-gray-500">{{ - .CustomAccount }} - </td> - <td class="whitespace-nowrap px-3 py-4 text-sm text-gray-500">{{ - .Nickname }} - </td> - <td class="whitespace-nowrap px-3 py-4 text-sm text-gray-500"> - {{ if eq .LastActive.IsNil true }} - 无数据 - {{ else }} - {{ .LastActive }} - {{ end }} - </td> - <td class="whitespace-nowrap px-3 py-4 text-sm text-gray-500"> - {{ if eq .IsOk true }} - <span - class="inline-flex items-center rounded-md bg-green-50 px-2 py-1 text-xs font-medium text-green-700 ring-1 ring-inset ring-green-600/20">是</span> - {{ else }} - <span - class="inline-flex items-center rounded-md bg-red-50 px-2 py-1 text-xs font-medium text-red-700 ring-1 ring-inset ring-red-600/20">否</span> - {{ end }} - </td> - <td class="whitespace-nowrap px-3 py-4 text-sm text-gray-500"> - {{ template "ai" . }} - <!-- 使用的模型 --> - {{ if eq .EnableAi true }} - <select id="location" name="location" - class="mt-2 block w-full rounded-md border-0 py-1.5 pl-3 pr-10 text-gray-900 ring-1 ring-inset ring-gray-300 focus:ring-2 focus:ring-green-600 sm:text-sm sm:leading-6" - onchange="aiModelChange(event, {{.Wxid}})"> - <option value="" {{ if eq .AiModel - "" }}selected{{ end }}>默认(gpt-3.5-turbo-0613) - </option> - - {{$useModel := .AiModel}} - {{ range $.aiModels }} - <option value="{{.Model}}" {{ if eq $useModel .Model}}selected{{ end }}> - {{.Name}}({{.Model}}) - </option> + <li class="overflow-hidden rounded-xl border border-gray-200"> + <div class="flex items-center gap-x-4 border-b border-gray-900/5 bg-gray-50 p-6"> + <img src="assets/img/status-{{ if eq .IsOk true }}ok{{else}}fail{{end}}.png" alt="Tuple" class="h-12 w-12 flex-none rounded-lg bg-white object-cover ring-1 ring-gray-900/10"> + <div class="flex-1"> + <div class="text-sm font-medium leading-6 text-gray-900">{{ .Nickname }}</div> + {{ if eq .IsOk true }} + <span class="inline-flex items-center rounded-md bg-green-50 px-2 py-1 text-xs font-medium text-green-700 ring-1 ring-inset ring-green-600/20">正常</span> + {{ else }} + <span class="inline-flex items-center rounded-md bg-red-50 px-2 py-1 text-xs font-medium text-red-700 ring-1 ring-inset ring-red-600/20">已删除</span> {{ end }} - </select> + </div> + </div> + <dl class="-my-3 divide-y divide-gray-100 px-6 py-4 text-sm leading-6"> + <div class="flex justify-between gap-x-4 py-3"> + <dt class="text-gray-500">原始微信Id<br/>微信号</dt> + <dd> + <div class="text-gray-700">{{ .Wxid }}</div> + {{ if not (eq .CustomAccount "") }} + <div class="truncate text-gray-500">{{ .CustomAccount }}</div> + {{end}} + </dd> + </div> + <div class="flex justify-between gap-x-4 py-3"> + <dt class="text-gray-500">最后活跃时间</dt> + <dd class="flex items-start gap-x-2"> + <div class="font-medium text-gray-900"> + {{ if eq .LastActive.IsNil true }} + 无数据 + {{ else }} + <time datetime="{{ .LastActive }}">{{ .LastActive }}</time> + {{ end }} + </div> + </dd> + </div> + + <div class="flex justify-between gap-x-4 py-3"> + <dt class="text-gray-500">AI</dt> + <dd class="flex items-start gap-x-2"> + {{ template "ai" . }} + </dd> + </div> + {{ if eq .EnableAi true }} + <div class="flex justify-between gap-x-4 py-3"> + <dt class="text-gray-500 mt-2">AI模型</dt> + <dd class="flex items-start gap-x-2"> + <label> + <select class="block w-full rounded-md border-0 py-1.5 pl-3 pr-10 text-gray-900 ring-1 ring-inset ring-gray-300 focus:ring-2 focus:ring-green-600 sm:text-sm sm:leading-6" onchange="aiModelChange(event, {{.Wxid}})"> + {{$useModel := .AiModel}} + {{ range $.aiModels }} + <option value="{{.Model}}" {{ if eq $useModel .Model}}selected{{ end }}> + {{.Name}} + </option> + {{ end }} + </select> + </label> + </dd> + </div> {{ end }} - </td> - <td class="whitespace-nowrap px-3 py-4 text-sm text-gray-500"> - {{ template "command" . }} - </td> - </tr> + + <div class="flex justify-between gap-x-4 py-3"> + <dt class="text-gray-500">指令</dt> + <dd class="flex items-start gap-x-2"> + {{ template "command" . }} + </dd> + </div> + + </dl> + </li> {{ end }} - </tbody> - </table> + </ul> + </div> </div> </main> diff --git a/views/static/img/status-fail.png b/views/static/img/status-fail.png new file mode 100644 index 00000000..1576c010 Binary files /dev/null and b/views/static/img/status-fail.png differ diff --git a/views/static/img/status-ok.png b/views/static/img/status-ok.png new file mode 100644 index 00000000..5806d9af Binary files /dev/null and b/views/static/img/status-ok.png differ