知识库分享-页面联调

main
ysn 15 hours ago
parent 174a714286
commit c032de56eb
  1. 6
      src/api/knowledge.js
  2. 10
      src/store/modules/user.js
  3. 71
      src/views/knowledge/index.vue
  4. 1296
      src/views/message/components/CreateGroupDialog.vue

@ -44,7 +44,11 @@ export function postKnowledgeEdit(data) {
export function postKnowledgeDelete(data) {
return request({ url: '/knowledge/delete', method: 'post', data })
}
// 知识库文件-分享文件s
export function postMessagePushToUser(data) {
return request({ url: '/messages/push/to/user', method: 'post', data })
}
// {"client_id":"utalk-client-688","message":{"at_users":[],"message_id":0,"payload":{"content":"{\"file_name\":\"1633500241136.mp4\",\"file_path\":\"personal-test/video/688/1780036088/1633500241136.mp4\",\"file_size\":\"17.92M\",\"file_time\":\"2026-05-29 14:28:11\",\"knowledge_id\":833,\"thumbnail_path\":\"personal-test/video/688/1780036088/1633500241136.png\"}","file_duration":0,"file_ico":"","file_name":"","file_path":"","file_size":0,"file_type":""},"scene":1,"source_id":688,"target_id":687,"timestamp":0,"type":"knowledge_share"},"target_id":687,"topic":"/user/¯"}
// // 知识库-上传文件
// export function knowledgeUpload(data) {
// return request({

@ -59,7 +59,6 @@ const user = {
Login({ commit }, userInfo) {
return new Promise((resolve, reject) => {
login(userInfo).then(res => {
setToken(res.data.token)
commit('SET_TOKEN', res.data.token)
store.dispatch('lock/unlockScreen')
@ -129,15 +128,6 @@ const user = {
secretKey: netConfig.MINIO_SECRET_KEY,
useSSL: netConfig.MINIO_SECURE === '1' || netConfig.MINIO_SECURE === true,
})
// 补充存储桶配置映射(与 C++ 端一致)
store.commit('SET_MINIO_BUCKETS', {
AVATAR: netConfig.MINIO_BUCKET_AVATAR || 'remote-avatar-test',
FILE: netConfig.MINIO_BUCKET_FILE || 'remote-file-test',
KNOWLEDGE_PERSONAL: netConfig.MINIO_BUCKET_KNOWLEDGE_PERSONAL || 'personal-test',
KNOWLEDGE_PUBLIC: netConfig.MINIO_BUCKET_KNOWLEDGE_PUBLIC || 'public-test',
DOWNLOAD: netConfig.MINIO_BUCKET_DOWNLOAD || 'utalk-test',
KERNEL: netConfig.MINIO_BUCKET_KERNEL || 'remote-kernel-test'
})
}
resolve(res)
}).catch(error => {

@ -277,12 +277,9 @@
<!-- 分享弹窗 - 选择联系人 -->
<CreateGroupDialog
:visible.sync="shareDialogVisible"
title="分享给"
:recent-contacts="recentContacts"
:recent-groups="recentGroups"
title="选择人员"
:min-select-count="1"
confirm-text="分享"
@create-success="handleShareToContacts"
@confirm="handleShareToContacts"
/>
</div>
</template>
@ -299,9 +296,8 @@ import {
postKnowledgePlay,
postKnowledgeEdit,
postKnowledgeDelete,
postMessagePushToUser,
} from "@/api/knowledge";
import { listUser } from "@/api/system/user";
import { mapGetters } from "vuex";
import CreateGroupDialog from "@/views/message/components/CreateGroupDialog";
import {
@ -309,6 +305,7 @@ import {
parseMinioFilePath,
uploadFile,
} from "@/utils/requestMinio";
import { MessageType } from "@/utils/constants";
export default {
name: "Knowledge",
@ -370,8 +367,6 @@ export default {
// ================== ==================
shareDialogVisible: false, //
shareItem: null, //
recentContacts: [], //
recentGroups: [], //
};
},
created() {
@ -604,28 +599,56 @@ export default {
.catch(() => {});
},
getContactList() {
listUser({ page: 1, pageSize: 100 }).then((res) => {
this.recentContacts = res.rows.map((user) => ({
id: user.userId,
name: user.nickName || user.title,
avatar: user.avatar || "",
}));
});
},
handleShare(row) {
this.shareItem = row;
this.shareDialogVisible = true;
},
handleShareToContacts(selectedMembers) {
if (selectedMembers && selectedMembers.length > 0) {
const shareTarget = selectedMembers[0];
this.$modal.msgSuccess(`已分享给 ${shareTarget.name}`);
console.log("分享文件:", this.shareItem, "给:", shareTarget);
const { id, netConfig } = this.$store.state.user;
const currentUserId = id;
const minioEndpoint =
netConfig?.MINIO_ENDPOINT_HTTPS?.trim() || "http://47.92.6.51:9100/";
selectedMembers.forEach((shareTarget) => {
const payloadContent = {
file_name: this.shareItem?.title || "",
file_path: this.shareItem?.file_path || "",
file_size: this.shareItem?.file_size || "",
file_time: this.shareItem?.create_time || "",
knowledge_id: this.shareItem?.id || 0,
thumbnail_path: this.shareItem?.thumbnail_path || "",
};
const messageData = {
client_id: `utalk-client-${currentUserId}`,
message: {
at_users: [],
message_id: 0,
payload: {
content: JSON.stringify(payloadContent),
file_duration: 0,
file_ico: "",
file_name: this.shareItem?.title || "",
file_path: this.shareItem?.file_path || "",
file_size: this.shareItem?.file_size || "",
file_type: this.shareItem?.file_type || "",
},
scene: 1,
source_id: currentUserId,
target_id: shareTarget.id,
timestamp: 0,
type: MessageType.KNOWLEDGE_SHAREs,
},
target_id: shareTarget.id,
topic: "/user/",
};
postMessagePushToUser(messageData).then((res) => {
this.$modal.msgSuccess(`已分享给 ${shareTarget.name}`);
});
});
this.shareDialogVisible = false;
this.shareItem = null;
}
this.shareDialogVisible = false;
this.shareItem = null;
},
// ====================== ======================
//

File diff suppressed because it is too large Load Diff
Loading…
Cancel
Save