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