From 3438297d98a80b8876cf43efdfee4a0216d81396 Mon Sep 17 00:00:00 2001
From: zhangxiao <898441624@qq.com>
Date: 星期四, 08 八月 2024 20:10:21 +0800
Subject: [PATCH] feat: 修改bug

---
 src/views/authority/users/index.vue               |  168 +++++++++-
 src/views/list/search-table/locale/zh-CN.ts       |    2 
 config/vite.config.dev.ts                         |   11 
 src/views/session/sessionRecordsManager/index.vue |  139 ++++++--
 src/views/authority/organization/index.vue        |  302 ++++++++++--------
 src/views/authority/resource/index.vue            |  309 +++++++++---------
 6 files changed, 578 insertions(+), 353 deletions(-)

diff --git a/config/vite.config.dev.ts b/config/vite.config.dev.ts
index 58d7a75..a719586 100644
--- a/config/vite.config.dev.ts
+++ b/config/vite.config.dev.ts
@@ -13,7 +13,8 @@
       },
       proxy: {
         '/base': {
-          target: 'http://aiotlink.com:8189',
+          // target: 'http://aiotlink.com:8189',
+          target: 'http://192.168.20.116:8089',
           changeOrigin: true,
           ws: true,
           // rewrite: (path) => path.replace(new RegExp(`^/basic-api`), ''),
@@ -21,17 +22,17 @@
           // secure: false
         },
         '/api': {
-          // target: 'http://192.168.20.116:1080',
+          target: 'http://192.168.20.116:8089',
           // target: 'http://192.168.20.158:8089',
-          target: 'http://aiotlink.com:8189',
+          // target: 'http://aiotlink.com:8189',
           changeOrigin: true,
           ws: true,
           // rewrite: (path) => path.replace(new RegExp(`^/basic-api`), ''),
         },
         '/api/v1': {
-          // target: 'http://192.168.20.116:1080',
+          target: 'http://192.168.20.116:8089',
           // target: 'http://192.168.20.158:8089',
-          target: 'http://aiotlink.com:8189',
+          // target: 'http://aiotlink.com:8189',
           changeOrigin: true,
           ws: true,
           // rewrite: (path) => path.replace(new RegExp(`^/basic-api`), ''),
diff --git a/src/views/authority/organization/index.vue b/src/views/authority/organization/index.vue
index 5088a73..03c4f6d 100644
--- a/src/views/authority/organization/index.vue
+++ b/src/views/authority/organization/index.vue
@@ -4,7 +4,11 @@
 
     <a-row :gutter="20">
       <a-col :span="8">
-        <a-card :title="$t('menu.organization.title')" :bordered="false" :style="{ width: '100%',height: '900px', 'overflow-y': 'auto' }">
+        <a-card
+          :title="$t('menu.organization.title')"
+          :bordered="false"
+          style=" 'width': '100%';   height: calc(100vh - 250px);; 'overflow-y': 'auto' "
+        >
           <a-tree
             class="tree-demo"
             draggable
@@ -12,33 +16,54 @@
             :data="treeData"
             :show-line="showLine"
             :fieldNames="{
-              key:'deptId',
-              title:'deptName',
-              children:'children',
+              key: 'deptId',
+              title: 'deptName',
+              children: 'children',
             }"
             @drop="onDrop"
             @select="showDetail"
           >
             <template #extra="nodeData">
               <IconPlus
-                style="position: absolute; right: 60px; font-size: 12px; top: 10px; color: #3370ff;"
+                style="
+                  position: absolute;
+                  right: 60px;
+                  font-size: 12px;
+                  top: 10px;
+                  color: #3370ff;
+                "
                 @click="() => onIconClick(nodeData)"
               />
-              <IconDelete style="position: absolute; right: 40px; font-size: 12px; top: 10px; color: #3370ff;"
-                          @click="() => onIconClickDelete(nodeData)" />
+              <IconDelete
+                style="
+                  position: absolute;
+                  right: 40px;
+                  font-size: 12px;
+                  top: 10px;
+                  color: #3370ff;
+                "
+                @click="() => onIconClickDelete(nodeData)"
+              />
             </template>
           </a-tree>
-
         </a-card>
       </a-col>
       <a-col :span="16">
-        <a-card :title="$t('menu.organization.detail')" :bordered="false" :style="{ width: '100%' }">
+        <a-card
+          :title="$t('menu.organization.detail')"
+          :bordered="false"
+          :style="{ width: '100%' }"
+        >
           <a-form :model="deptform" layout="horizontal">
             <a-form-item field="parentName" label="涓婄骇鏈烘瀯">
               <a-input v-model="deptform.parentId" />
             </a-form-item>
             <a-form-item field="status" label="鏈烘瀯鐘舵��">
-              <a-switch checked-value="0" unchecked-value="1" v-model="deptform.status"></a-switch>
+              <a-switch
+                checked-value="0"
+                unchecked-value="1"
+                v-model="deptform.status"
+              ></a-switch>
             </a-form-item>
             <a-form-item field="deptName" label="鏈烘瀯鍚嶇О">
               <a-input v-model="deptform.deptName" />
@@ -54,7 +79,7 @@
             </a-form-item>
             <a-form-item>
               <a-space>
-                <a-button  @click="editdept">淇濆瓨</a-button>
+                <a-button @click="editdept">淇濆瓨</a-button>
                 <a-button @click="reset(deptform.deptId)">閲嶇疆</a-button>
               </a-space>
             </a-form-item>
@@ -62,13 +87,23 @@
         </a-card>
       </a-col>
     </a-row>
-    <a-modal width="50%" v-model:visible="visible" title="鏂板" @cancel="handleCancel" @ok="addDept">
+    <a-modal
+      width="50%"
+      v-model:visible="visible"
+      title="鏂板"
+      @cancel="handleCancel"
+      @ok="addDept"
+    >
       <a-form :model="deptform" layout="horizontal">
         <a-form-item field="parentName" label="涓婄骇鏈烘瀯">
           <a-input v-model="deptform.parentName" />
         </a-form-item>
         <a-form-item field="status" label="鏈烘瀯鐘舵��">
-          <a-switch checked-value="0" unchecked-value="1" v-model="deptform.status"></a-switch>
+          <a-switch
+            checked-value="0"
+            unchecked-value="1"
+            v-model="deptform.status"
+          ></a-switch>
         </a-form-item>
         <a-form-item field="deptName" label="鏈烘瀯鍚嶇О">
           <a-input v-model="deptform.deptName" />
@@ -88,141 +123,142 @@
 </template>
 
 <script lang="ts" setup>
-import { ref } from "vue";
-import { IconPlus } from "@arco-design/web-vue/es/icon";
-import {
-  Organization,
-  OrganizationAdd,
-  OrganizationById,
-  OrganizationDelete,
-  OrganizationList,
-  OrganizationUpdate
-} from "@/api/authority";
-import Authheader from "@/views/authority/components/authheader.vue";
-import { Modal } from "@arco-design/web-vue";
+  import { ref } from 'vue';
+  import { IconPlus } from '@arco-design/web-vue/es/icon';
+  import {
+    Organization,
+    OrganizationAdd,
+    OrganizationById,
+    OrganizationDelete,
+    OrganizationList,
+    OrganizationUpdate,
+  } from '@/api/authority';
+  import Authheader from '@/views/authority/components/authheader.vue';
+  import { Modal } from '@arco-design/web-vue';
 
-let visible = ref(false);
-let treeData = ref([]);
-let showLine = ref(true);
-let menuTips = ref(["鏉冮檺绠$悊", "鏈烘瀯"]);
-let deptform = ref<Organization>({
-  deptName: "",
-  email: "",
-  leader: "",
-  orderNum: "0",
-  parentId: "",
-  parentName: "",
-  phone: "",
-  status: "",
-  address: "",
-  deptId: ""
-});
+  let visible = ref(false);
+  let treeData = ref([]);
+  let showLine = ref(true);
+  let menuTips = ref(['鏉冮檺绠$悊', '鏈烘瀯']);
+  let deptform = ref<Organization>({
+    deptName: '',
+    email: '',
+    leader: '',
+    orderNum: '0',
+    parentId: '',
+    parentName: '',
+    phone: '',
+    status: '',
+    address: '',
+    deptId: '',
+  });
 
-const onIconClick = (nodeData) => {
-  deptform.value.parentName = nodeData.deptName;
-  deptform.value.parentId = nodeData.deptId;
-  visible.value = true;
-};
+  const onIconClick = (nodeData) => {
+    deptform.value.parentName = nodeData.deptName;
+    deptform.value.parentId = nodeData.deptId;
+    visible.value = true;
+  };
 
-const addDept = async () => {
-  await OrganizationAdd({
-    ...deptform.value
-  } as unknown as Organization).then((res) => {
-    OrganizationData("");
-  });
-};
-
-const onIconClickDelete = (nodeData) => {
-  OrganizationDelete(nodeData.deptId).then(() => {
-    OrganizationData("");
-  });
-};
-
-const showDetail = (id) => {
-  OrganizationById(id).then((res) => {
-    deptform.value = {...res.data};
-  });
-};
-const editdept=()=>{
-   OrganizationUpdate({
-    ...deptform.value
-  } as unknown as Organization).then((res) => {
-    OrganizationData("");
-     Modal.success({
-       title: "淇濆瓨鎴愬姛",
-       content: "淇濆瓨鎴愬姛"
-     });
-  });
-}
-const reset=(id)=>{
-  OrganizationById(id).then((res) => {
-    deptform.value = {...res.data};
-  });
-}
-
-const onDrop = ({ dragNode, dropNode, dropPosition }) => {
-  const data = treeData.value;
-  OrganizationUpdate({
-    orderNum: "0", parentId: dropNode.deptId, deptId: dragNode.deptId
-  });
-  const loop = (data, key, callback) => {
-    data.some((item, index, arr) => {
-      if (item.deptId === key) {
-        callback(item, index, arr);
-        return true;
-      }
-      if (item.children) {
-        return loop(item.children, key, callback);
-      }
-      return false;
+  const addDept = async () => {
+    await OrganizationAdd({
+      ...deptform.value,
+    } as unknown as Organization).then((res) => {
+      OrganizationData('');
     });
   };
 
-  loop(data, dragNode.deptId, (_, index, arr) => {
-    arr.splice(index, 1);
-  });
-
-  if (dropPosition === 0) {
-    loop(data, dropNode.deptId, (item) => {
-      item.children = item.children || [];
-      item.children.push(dragNode);
+  const onIconClickDelete = (nodeData) => {
+    OrganizationDelete(nodeData.deptId).then(() => {
+      OrganizationData('');
     });
-  } else {
-    loop(data, dropNode.deptId, (_, index, arr) => {
-      arr.splice(dropPosition < 0 ? index : index + 1, 0, dragNode);
+  };
+
+  const showDetail = (id) => {
+    OrganizationById(id).then((res) => {
+      deptform.value = { ...res.data };
     });
-  }
-};
+  };
+  const editdept = () => {
+    OrganizationUpdate({
+      ...deptform.value,
+    } as unknown as Organization).then((res) => {
+      OrganizationData('');
+      Modal.success({
+        title: '淇濆瓨鎴愬姛',
+        content: '淇濆瓨鎴愬姛',
+      });
+    });
+  };
+  const reset = (id) => {
+    OrganizationById(id).then((res) => {
+      deptform.value = { ...res.data };
+    });
+  };
 
-const handleCancel = (type) => {
-  if (type == 1) {
-    visible.value = false;
-  }
-};
+  const onDrop = ({ dragNode, dropNode, dropPosition }) => {
+    const data = treeData.value;
+    OrganizationUpdate({
+      orderNum: '0',
+      parentId: dropNode.deptId,
+      deptId: dragNode.deptId,
+    });
+    const loop = (data, key, callback) => {
+      data.some((item, index, arr) => {
+        if (item.deptId === key) {
+          callback(item, index, arr);
+          return true;
+        }
+        if (item.children) {
+          return loop(item.children, key, callback);
+        }
+        return false;
+      });
+    };
 
-const OrganizationData = async (key) => {
-  await OrganizationList(key).then((res) => {
-    treeData.value = [...res.rows];
-  });
-};
+    loop(data, dragNode.deptId, (_, index, arr) => {
+      arr.splice(index, 1);
+    });
 
-OrganizationData("");
+    if (dropPosition === 0) {
+      loop(data, dropNode.deptId, (item) => {
+        item.children = item.children || [];
+        item.children.push(dragNode);
+      });
+    } else {
+      loop(data, dropNode.deptId, (_, index, arr) => {
+        arr.splice(dropPosition < 0 ? index : index + 1, 0, dragNode);
+      });
+    }
+  };
+
+  const handleCancel = (type) => {
+    if (type == 1) {
+      visible.value = false;
+    }
+  };
+
+  const OrganizationData = async (key) => {
+    await OrganizationList(key).then((res) => {
+      treeData.value = [...res.rows];
+    });
+  };
+
+  OrganizationData('');
 </script>
 
-
 <style scoped>
-.tree-demo :deep(.tree-node-dropover) > :deep(.arco-tree-node-title),
-.tree-demo :deep(.tree-node-dropover) > :deep(.arco-tree-node-title):hover {
-  animation: blinkBg 0.4s 2;
-}
-
-@keyframes blinkBg {
-  0% {
-    background-color: transparent;
+  .tree-demo :deep(.tree-node-dropover) > :deep(.arco-tree-node-title),
+  .tree-demo :deep(.tree-node-dropover) > :deep(.arco-tree-node-title):hover {
+    animation: blinkBg 0.4s 2;
   }
 
-  100% {
-    background-color: var(--color-primary-light-1);
+  @keyframes blinkBg {
+    0% {
+      background-color: transparent;
+    }
+
+    100% {
+      background-color: var(--color-primary-light-1);
+    }
   }
-}
 </style>
diff --git a/src/views/authority/resource/index.vue b/src/views/authority/resource/index.vue
index 1ea12c6..9c7a161 100644
--- a/src/views/authority/resource/index.vue
+++ b/src/views/authority/resource/index.vue
@@ -6,7 +6,7 @@
         <a-card
           :title="$t('menu.resource.title')"
           :bordered="false"
-          :style="{ 'width': '100%', 'height': '900px', 'overflow-y': 'auto' }"
+          style=" 'width': '100%';   height: calc(100vh - 250px); 'overflow-y': 'auto' "
         >
           <a-button @click="() => onIconClick(null)">鏂板鐖剁骇鑿滃崟</a-button>
           <a-tree
@@ -139,173 +139,180 @@
 </template>
 
 <script lang="ts" setup>
-import { ref } from "vue";
-import { IconPlus } from "@arco-design/web-vue/es/icon";
-import { Resource, ResourceAdd, ResourceById, ResourceDelete, ResourceList, ResourceUpdate } from "@/api/authority";
-import Authheader from "@/views/authority/components/authheader.vue";
-import { Modal } from "@arco-design/web-vue";
+  import { ref } from 'vue';
+  import { IconPlus } from '@arco-design/web-vue/es/icon';
+  import {
+    Resource,
+    ResourceAdd,
+    ResourceById,
+    ResourceDelete,
+    ResourceList,
+    ResourceUpdate,
+  } from '@/api/authority';
+  import Authheader from '@/views/authority/components/authheader.vue';
+  import { Modal } from '@arco-design/web-vue';
 
-let visible = ref(false);
-let treeData = ref([]);
-let showLine = ref(true);
-let menuTips = ref(["鏉冮檺绠$悊", "璧勬簮"]);
-const fieldNames = { value: "key", label: "value" };
-// 0鐩綍 1鑿滃崟 2鎸夐挳
-let options = ref([
-  {
-    key: "3",
-    value: "鐩綍"
-  },
-  {
-    key: "0",
-    value: "鑿滃崟"
-  },
-  {
-    key: "1",
-    value: "鎸夐挳"
-  }
-]);
-let resourceform = ref<Resource>({
-  component: "",
-  createTime: "",
-  description: "",
-  icon: "",
-  menuId: "",
-  menuName: "",
-  menuType: "",
-  orderNum: "",
-  parentId: "",
-  parentName: "",
-  children: [],
-  path: "",
-  perms: "",
-  status: "",
-  syesourcetype: "",
-  target: "",
-  updateTime: ""
-});
-
-const onIconClick = (nodeData) => {
-  if (nodeData) {
-    resourceform.value.parentId = nodeData.menuId;
-    resourceform.value.parentName = nodeData.menuName;
-  }
-  resourceform.value.component = "";
-  resourceform.value.createTime = "";
-  resourceform.value.description = "";
-  resourceform.value.icon = "";
-  resourceform.value.menuId = "";
-  resourceform.value.menuName = "";
-  resourceform.value.menuType = "";
-  resourceform.value.orderNum = "0";
-  resourceform.value.path = "";
-  resourceform.value.perms = "";
-  resourceform.value.status = "";
-  resourceform.value.syesourcetype = "";
-
-  visible.value = true;
-};
-
-const addresource = async () => {
-  await ResourceAdd({
-    ...resourceform.value
-  } as unknown as Resource).then((res) => {
-    ResourceData("");
+  let visible = ref(false);
+  let treeData = ref([]);
+  let showLine = ref(true);
+  let menuTips = ref(['鏉冮檺绠$悊', '璧勬簮']);
+  const fieldNames = { value: 'key', label: 'value' };
+  // 0鐩綍 1鑿滃崟 2鎸夐挳
+  let options = ref([
+    {
+      key: '3',
+      value: '鐩綍',
+    },
+    {
+      key: '0',
+      value: '鑿滃崟',
+    },
+    {
+      key: '1',
+      value: '鎸夐挳',
+    },
+  ]);
+  let resourceform = ref<Resource>({
+    component: '',
+    createTime: '',
+    description: '',
+    icon: '',
+    menuId: '',
+    menuName: '',
+    menuType: '',
+    orderNum: '',
+    parentId: '',
+    parentName: '',
+    children: [],
+    path: '',
+    perms: '',
+    status: '',
+    syesourcetype: '',
+    target: '',
+    updateTime: '',
   });
-};
 
-const onIconClickDelete = (nodeData) => {
-  ResourceDelete(nodeData.menuId).then(() => {
-    ResourceData("");
-  });
-};
+  const onIconClick = (nodeData) => {
+    if (nodeData) {
+      resourceform.value.parentId = nodeData.menuId;
+      resourceform.value.parentName = nodeData.menuName;
+    }
+    resourceform.value.component = '';
+    resourceform.value.createTime = '';
+    resourceform.value.description = '';
+    resourceform.value.icon = '';
+    resourceform.value.menuId = '';
+    resourceform.value.menuName = '';
+    resourceform.value.menuType = '';
+    resourceform.value.orderNum = '0';
+    resourceform.value.path = '';
+    resourceform.value.perms = '';
+    resourceform.value.status = '';
+    resourceform.value.syesourcetype = '';
 
-const showDetail = (id) => {
-  ResourceById(id).then((res) => {
-    resourceform.value = { ...res.data };
-  });
-};
-const editresource = () => {
-  ResourceUpdate({
-    ...resourceform.value
-  } as unknown as Resource).then((res) => {
-    ResourceData("");
-    Modal.success({
-      title: "淇濆瓨鎴愬姛",
-      content: "淇濆瓨鎴愬姛"
-    });
-  });
-};
-const reset = (id) => {
-  ResourceById(id).then((res) => {
-    resourceform.value = { ...res.data };
-  });
-};
+    visible.value = true;
+  };
 
-const onDrop = ({ dragNode, dropNode, dropPosition }) => {
-  const data = treeData.value;
-  ResourceUpdate({
-    orderNum: "0",
-    parentId: dropNode.menuId,
-    menuId: dragNode.menuId
-  });
-  const loop = (data, key, callback) => {
-    data.some((item, index, arr) => {
-      if (item.menuId === key) {
-        callback(item, index, arr);
-        return true;
-      }
-      if (item.children) {
-        return loop(item.children, key, callback);
-      }
-      return false;
+  const addresource = async () => {
+    await ResourceAdd({
+      ...resourceform.value,
+    } as unknown as Resource).then((res) => {
+      ResourceData('');
     });
   };
 
-  loop(data, dragNode.menuId, (_, index, arr) => {
-    arr.splice(index, 1);
-  });
-
-  if (dropPosition === 0) {
-    loop(data, dropNode.menuId, (item) => {
-      item.children = item.children || [];
-      item.children.push(dragNode);
+  const onIconClickDelete = (nodeData) => {
+    ResourceDelete(nodeData.menuId).then(() => {
+      ResourceData('');
     });
-  } else {
-    loop(data, dropNode.menuId, (_, index, arr) => {
-      arr.splice(dropPosition < 0 ? index : index + 1, 0, dragNode);
+  };
+
+  const showDetail = (id) => {
+    ResourceById(id).then((res) => {
+      resourceform.value = { ...res.data };
     });
-  }
-};
+  };
+  const editresource = () => {
+    ResourceUpdate({
+      ...resourceform.value,
+    } as unknown as Resource).then((res) => {
+      ResourceData('');
+      Modal.success({
+        title: '淇濆瓨鎴愬姛',
+        content: '淇濆瓨鎴愬姛',
+      });
+    });
+  };
+  const reset = (id) => {
+    ResourceById(id).then((res) => {
+      resourceform.value = { ...res.data };
+    });
+  };
 
-const handleCancel = (type) => {
-  if (type == 1) {
-    visible.value = false;
-  }
-};
+  const onDrop = ({ dragNode, dropNode, dropPosition }) => {
+    const data = treeData.value;
+    ResourceUpdate({
+      orderNum: '0',
+      parentId: dropNode.menuId,
+      menuId: dragNode.menuId,
+    });
+    const loop = (data, key, callback) => {
+      data.some((item, index, arr) => {
+        if (item.menuId === key) {
+          callback(item, index, arr);
+          return true;
+        }
+        if (item.children) {
+          return loop(item.children, key, callback);
+        }
+        return false;
+      });
+    };
 
-const ResourceData = async (key) => {
-  await ResourceList(key).then((res) => {
-    treeData.value = [...res.rows];
-  });
-};
+    loop(data, dragNode.menuId, (_, index, arr) => {
+      arr.splice(index, 1);
+    });
 
-ResourceData("");
+    if (dropPosition === 0) {
+      loop(data, dropNode.menuId, (item) => {
+        item.children = item.children || [];
+        item.children.push(dragNode);
+      });
+    } else {
+      loop(data, dropNode.menuId, (_, index, arr) => {
+        arr.splice(dropPosition < 0 ? index : index + 1, 0, dragNode);
+      });
+    }
+  };
+
+  const handleCancel = (type) => {
+    if (type == 1) {
+      visible.value = false;
+    }
+  };
+
+  const ResourceData = async (key) => {
+    await ResourceList(key).then((res) => {
+      treeData.value = [...res.rows];
+    });
+  };
+
+  ResourceData('');
 </script>
 
 <style scoped>
-.tree-demo :deep(.tree-node-dropover) > :deep(.arco-tree-node-title),
-.tree-demo :deep(.tree-node-dropover) > :deep(.arco-tree-node-title):hover {
-  animation: blinkBg 0.4s 2;
-}
-
-@keyframes blinkBg {
-  0% {
-    background-color: transparent;
+  .tree-demo :deep(.tree-node-dropover) > :deep(.arco-tree-node-title),
+  .tree-demo :deep(.tree-node-dropover) > :deep(.arco-tree-node-title):hover {
+    animation: blinkBg 0.4s 2;
   }
 
-  100% {
-    background-color: var(--color-primary-light-1);
+  @keyframes blinkBg {
+    0% {
+      background-color: transparent;
+    }
+
+    100% {
+      background-color: var(--color-primary-light-1);
+    }
   }
-}
 </style>
diff --git a/src/views/authority/users/index.vue b/src/views/authority/users/index.vue
index 1509a15..634b0e1 100644
--- a/src/views/authority/users/index.vue
+++ b/src/views/authority/users/index.vue
@@ -2,7 +2,69 @@
   <div class="container">
     <authheader :items="menuTips"></authheader>
     <a-card ref="account" class="general-card">
-      <a-row>
+      <div class="table-page-search-wrapper">
+        <div class="search-wrapper">
+          <div>
+            <a-input
+              v-model="formModel.name"
+              :style="{ width: '320px' }"
+              :placeholder="$t('璇疯緭鍏�')"
+            />
+          </div>
+          <div>
+            <a-button
+              type="primary"
+              @click="search"
+              style="margin-right: 20px; margin-left: 10px"
+            >
+              <template #icon>
+                <icon-search />
+              </template>
+              {{ $t('searchTable.form.search') }}
+            </a-button>
+            <a-button @click="reset">
+              <template #icon>
+                <icon-refresh />
+              </template>
+              {{ $t('searchTable.form.reset') }}
+            </a-button>
+          </div>
+        </div>
+        <div class="search-wrapper">
+          <div>
+            <a-space>
+              <a-button type="primary" :align="'right'" @click="operation(0)"
+                >+ 鏂板缓璐︽埛</a-button
+              >
+            </a-space></div
+          >
+          <div class="wrapper-icon">
+            <a-tooltip :content="$t('searchTable.actions.refresh')">
+              <div class="action-icon" @click="search">
+                <icon-refresh size="18" />
+              </div>
+            </a-tooltip>
+            <a-dropdown @select="handleSelectDensity">
+              <a-tooltip :content="$t('searchTable.actions.density')">
+                <div class="action-icon">
+                  <icon-line-height size="18" />
+                </div>
+              </a-tooltip>
+              <template #content>
+                <a-doption
+                  v-for="item in densityList"
+                  :key="item.value"
+                  :value="item.value"
+                  :class="{ active: item.value === size }"
+                >
+                  <span>{{ item.name }}</span>
+                </a-doption>
+              </template>
+            </a-dropdown>
+          </div>
+        </div>
+      </div>
+      <!-- <a-row>
         <a-col :flex="2"></a-col>
         <a-col :flex="1">
           <a-form :model="formModel" style="margin-top: 30px">
@@ -16,21 +78,21 @@
           </a-form>
         </a-col>
         <a-col :flex="'200px'" style="text-align: right; margin-top: 30px">
-          <a-button @click="reset" style="margin-right: 20px">
-            <template #icon>
-              <icon-refresh />
-            </template>
-            {{ $t('searchTable.form.reset') }}
-          </a-button>
-          <a-button type="primary" @click="search">
+          <a-button type="primary" @click="search" style="margin-right: 20px">
             <template #icon>
               <icon-search />
             </template>
             {{ $t('searchTable.form.search') }}
           </a-button>
+          <a-button @click="reset">
+            <template #icon>
+              <icon-refresh />
+            </template>
+            {{ $t('searchTable.form.reset') }}
+          </a-button>
         </a-col>
-      </a-row>
-      <a-divider style="margin-top: 0" />
+      </a-row> -->
+      <!-- <a-divider style="margin-top: 0" />
       <a-row style="margin-bottom: 16px">
         <a-col :span="12">
           <a-space>
@@ -66,7 +128,7 @@
             </template>
           </a-dropdown>
         </a-col>
-      </a-row>
+      </a-row> -->
       <a-table
         row-key="id"
         :loading="loading"
@@ -369,7 +431,7 @@
   let editform = ref<User>({
     createTime: '',
     dept: undefined,
-    deptName:"",
+    deptName: '',
     email: '',
     nickName: '',
     phoneNumber: '',
@@ -651,7 +713,7 @@
         record.resources.forEach((val) => {
           checkStrictlyMenu.value.push({
             menuId: val.menuId,
-            menuName: val.menuName
+            menuName: val.menuName,
           });
           checkedKeysMenu.value.push(val.menuId);
           expandKdysMenu.value.push(val.menuId);
@@ -661,7 +723,7 @@
         record.knowledges.forEach((val) => {
           checkStrictlyKnowledge.value.push({
             knowledgeId: val.id,
-            knowledgeName: val.name
+            knowledgeName: val.name,
           });
           checkedKeysKnowledge.value.push(val.id);
         });
@@ -670,12 +732,11 @@
         record.dialogs.forEach((val) => {
           checkStrictlyDialog.value.push({
             dialogId: val.id,
-            dialogName: val.name
+            dialogName: val.name,
           });
           checkedKeysDialog.value.push(val.id);
         });
       }
-
     }
     //鏈烘瀯
     if (t == 5) {
@@ -689,7 +750,7 @@
         record.dept.forEach((val) => {
           checkStrictly.value.push({
             deptId: val.deptId,
-            deptName: val.deptName
+            deptName: val.deptName,
           });
           checkedKeys.value.push(val.deptId);
           expandKdys.value.push(val.deptId);
@@ -708,9 +769,9 @@
           if (user.dept) {
             for (const d of user.dept) {
               if (user.deptName) {
-                user.deptName += d.deptName + ",";
+                user.deptName += d.deptName + ',';
               } else {
-                user.deptName = d.deptName + ",";
+                user.deptName = d.deptName + ',';
               }
             }
           }
@@ -772,7 +833,7 @@
   };
 </script>
 
-<style scoped>
+<style scoped lang="less">
   .card-demo {
     width: 460px;
     margin-left: 24px;
@@ -782,4 +843,71 @@
   .card-demo:hover {
     transform: translateY(-4px);
   }
+  .table-page-search-wrapper {
+    padding-top: 20px;
+    display: flex;
+    justify-content: space-between;
+    align-items: center;
+    margin-bottom: 20px;
+    padding-bottom: 20px;
+    border-bottom: 1px solid #e8e8e8;
+    .search-wrapper {
+      display: flex;
+      .wrapper-icon {
+        display: flex;
+        align-items: center;
+        margin-left: 40px;
+        // margin-right: 40px;
+      }
+    }
+  }
+</style>
+<style lang="less">
+  .ant-table-wrapper {
+    .ant-table-tbody {
+      tr {
+        td {
+          .ant-table-row-cell-break-word {
+            .ant-table-column-sorter {
+              display: none;
+            }
+          }
+        }
+      }
+    }
+
+    .search-wrapper {
+      display: flex;
+      .wrapper-icon {
+        display: flex;
+        align-items: center;
+        margin-left: 40px;
+        // margin-right: 40px;
+      }
+    }
+  }
+</style>
+<style lang="less">
+  .ant-table-wrapper {
+    .ant-table-tbody {
+      tr {
+        td {
+          .ant-table-row-cell-break-word {
+            .ant-table-column-sorter {
+              display: none;
+            }
+          }
+        }
+      }
+    }
+  }
+</style>
+<style lang="less" scoped>
+  .table-page-search-wrapper {
+    .ant-form-inline {
+      :deep(.ant-form-item) {
+        display: flex;
+      }
+    }
+  }
 </style>
diff --git a/src/views/list/search-table/locale/zh-CN.ts b/src/views/list/search-table/locale/zh-CN.ts
index ca4cd44..63326fb 100644
--- a/src/views/list/search-table/locale/zh-CN.ts
+++ b/src/views/list/search-table/locale/zh-CN.ts
@@ -40,6 +40,6 @@
   'searchTable.size.large': '鍋忓ぇ',
   // actions
   'searchTable.actions.refresh': '鍒锋柊',
-  'searchTable.actions.density': '瀵嗗害',
+  'searchTable.actions.density': '琛岄珮',
   'searchTable.actions.columnSetting': '鍒楄缃�',
 };
diff --git a/src/views/session/sessionRecordsManager/index.vue b/src/views/session/sessionRecordsManager/index.vue
index 4b22809..15079e2 100644
--- a/src/views/session/sessionRecordsManager/index.vue
+++ b/src/views/session/sessionRecordsManager/index.vue
@@ -34,13 +34,13 @@
           <a-scrollbar
             class="left-list"
             style="
-              height: calc(100vh - 160px);
+              height: calc(100vh - 250px);
               overflow-y: auto;
               overflow-x: hidden;
             "
           >
             <div
-              class="item"
+              class="item left-list-item"
               v-for="session in sessionList"
               @click="querySessionDetail(session)"
               :class="{ isLeftActive: activeSessionId === session.id }"
@@ -214,16 +214,18 @@
                   maxRows: 5,
                 }"
               />
-            </div>
-            <div style="margin-left: 10px">
-              <!-- <icon-send size="32" /> -->
-              <a-button
-                :disabled="chatDis"
-                @click="sentClick"
-                type="primary"
-                size="large"
-                >鍙戦��</a-button
-              >
+              <div class="btn-send">
+                <!-- <icon-send size="32" /> -->
+                <a-button
+                  :disabled="chatDis"
+                  @click="sentClick"
+                  type="primary"
+                  style="border-radius: 24px"
+                  :loading="loading"
+                  size="large"
+                  >鍙戦��</a-button
+                >
+              </div>
             </div>
           </div>
         </a-card>
@@ -246,7 +248,19 @@
             </div>
           </div>
           <div class="right-tag">
-            <a-space>
+            <a-button type="primary" shape="round" size="mini" class="btn"
+              >鍏ㄩ儴
+            </a-button>
+            <a-button type="outline" shape="round" size="mini" class="btn"
+              >鏂囨。鍒涗綔
+            </a-button>
+            <a-button type="outline" shape="round" size="mini" class="btn"
+              >鐭ヨ瘑瀛︿範
+            </a-button>
+            <a-button type="outline" shape="round" size="mini" class="btn"
+              >鏁堢巼鎻愬崌
+            </a-button>
+            <!-- <a-space>
               <a-button type="primary" shape="round" size="mini" class="btn"
                 >鍏ㄩ儴
               </a-button>
@@ -256,12 +270,13 @@
               <a-button type="outline" shape="round" size="mini" class="btn"
                 >鐭ヨ瘑瀛︿範
               </a-button>
-            </a-space>
-            <a-space style="margin-top: 10px">
               <a-button type="outline" shape="round" size="mini" class="btn"
                 >鏁堢巼鎻愬崌
               </a-button>
-            </a-space>
+            </a-space> -->
+            <!-- <a-space style="margin-top: 10px">
+             
+            </a-space> -->
           </div>
           <div class="right-list">
             <div class="right-item">
@@ -315,13 +330,13 @@
     getSessionDetailsApi,
     sessionListApi,
   } from '@/api/session';
-  import { getAuthorization } from "@/utils/auth";
-
+  import { getAuthorization } from '@/utils/auth';
 
   const sessionDetailList = ref([]); //鏍规嵁浼氳瘽id鍑烘潵鐨勪細璇濊鎯�
   const sessionList = ref([]); //浼氳瘽鍒楄〃
   const modalObj = reactive({ add: false });
   const chatDis = ref(false);
+  const loading = ref(false);
 
   const currIndex = ref(0);
   const displayedText = ref(''); // 姝e湪鏄剧ず鐨勬枃瀛�
@@ -351,25 +366,36 @@
   const sendMessage = async (event) => {
     event.preventDefault();
     chatDis.value = true;
+    loading.value = true;
     if (!activeSessionId.value) {
       Message.warning('璇烽�夋嫨浼氳瘽');
+      chatDis.value = false;
+      loading.value = false;
       return;
     }
+
+    // if (displayedText.value) {
+    //   querySessionList();
+    // }
+
     if (inputMsg.value) {
-      sessionDetailList.value.push({ "content": inputMsg.value, "role": "user" });
-      sessionDetailList.value.push({  "role": "last" });
+      sessionDetailList.value.push({ content: inputMsg.value, role: 'user' });
+      sessionDetailList.value.push({ role: 'last' });
       refreshScroll();
-      const response = await fetch("/api/tech/cloudminds/query?modeltype=localragflow", {
-        method: 'POST',
-        headers: {
-          'Authorization': getAuthorization(),
-          'Content-Type': 'application/json',
-        },
-        body: JSON.stringify({
-          conversation_id: activeSessionId.value,
-          messages: inputMsg.value,
-        }),
-      });
+      const response = await fetch(
+        '/api/tech/cloudminds/query?modeltype=localragflow',
+        {
+          method: 'POST',
+          headers: {
+            'Authorization': getAuthorization(),
+            'Content-Type': 'application/json',
+          },
+          body: JSON.stringify({
+            conversation_id: activeSessionId.value,
+            messages: inputMsg.value,
+          }),
+        }
+      );
 
       const reader = response?.body
         ?.pipeThrough(new TextDecoderStream())
@@ -380,12 +406,12 @@
         const x = await reader?.read();
         if (x) {
           const { done, value } = x;
+          console.log(x, 999);
           try {
             const val = JSON.parse(value?.data || '');
             const d = val?.data;
-            if (typeof d !== "boolean") {
-
-              console.info("data:", d);
+            if (typeof d !== 'boolean') {
+              console.info('data:', d);
               streamStr.value = d.content;
               startDisplayStr();
             }
@@ -394,11 +420,14 @@
           }
           if (done) {
             console.info('done');
+            displayedText.value = '';
+            querySessionList();
             break;
           }
         }
       }
-      chatDis.value=false;
+      chatDis.value = false;
+      loading.value = false;
       inputMsg.value = '';
     } else {
       Message.warning('娑堟伅涓嶈兘涓虹┖');
@@ -424,6 +453,8 @@
     const { code, data } = await sessionListApi(selectValue.value);
     if (code === 200) {
       sessionList.value = data;
+      activeSessionId.value = data[0].id;
+      querySessionDetail(data[0]);
     } else {
       Message.warning('鏌ヨ澶辫触');
     }
@@ -459,7 +490,13 @@
 </script>
 <style scoped lang="scss">
   .isLeftActive {
-    background-color: lightgrey;
+    background-color: #ededf5;
+  }
+  .left-list-item {
+    margin-bottom: 2px;
+  }
+  .left-list-item:hover {
+    background-color: #ededf5;
   }
 
   .light {
@@ -556,15 +593,17 @@
           border-radius: 10px;
           margin-top: 10px;
           padding: 10px;
-          height: 120px;
-          background-color: lightcyan;
-
+          min-height: 120px;
+          background-color: #e9f3ff;
+          .item-content {
+            color: #666;
+          }
           .item-title {
             text-align: center;
             line-height: 40px;
             font-size: 20px;
             font-family: 榛戜綋;
-            color: black;
+            color: #333;
           }
         }
       }
@@ -583,8 +622,16 @@
           flex: 1 1;
           flex-direction: column;
           overflow: hidden;
+          position: relative;
           :deep(.arco-textarea-wrapper) {
             border-radius: 24px;
+          }
+
+          .btn-send {
+            position: absolute !important;
+            right: 5px;
+            bottom: 5px;
+            z-index: 10;
           }
         }
       }
@@ -608,6 +655,12 @@
       }
       .right-tag {
         margin-top: 20px;
+        display: flex;
+        justify-content: space-between;
+        flex-wrap: wrap;
+        :deep(.arco-btn-size-mini.arco-btn-shape-round) {
+          margin-bottom: 10px !important;
+        }
       }
 
       .right-list {
@@ -615,15 +668,15 @@
           border-radius: 10px;
           margin-top: 10px;
           padding: 10px;
-          height: 120px;
-          background-color: lightcyan;
+          min-height: 120px;
+          background-color: #e9f3ff;
 
           .item-title {
             text-align: center;
             line-height: 40px;
             font-size: 20px;
             font-family: 榛戜綋;
-            color: black;
+            color: #333;
           }
         }
       }

--
Gitblit v1.8.0