diff --git a/language/original-web.txt b/language/original-web.txt index 3c00a85c2..843886bd0 100644 --- a/language/original-web.txt +++ b/language/original-web.txt @@ -1349,3 +1349,13 @@ AI机器人 汇报人 提交时间 + +去聊天 +我是一个人工智能助手,为用户提供问题解答和指导。我没有具体的身份,只是一个程序。您有什么问题可以问我哦? +我是Claude,一个由Anthropic公司创造出来的AI助手机器人。我的工作是帮助人类,与人对话并给出解答。 +我是文心一言,英文名是ERNIE Bot。我能够与人对话互动,回答问题,协助创作,高效便捷地帮助人们获取信息、知识和灵感。 +我是达摩院自主研发的超大规模语言模型,能够回答问题、创作文字,还能表达观点、撰写代码。 +机器人暂未开启 +创建一个全新的会议视频会议,与会者可以在实时中进行面对面的视听交流。通过视频会议平台,参与者可以分享屏幕、共享文档,并与其他与会人员进行讨论和协。 +加入视频会议,参与已经创建的会议,在会议过程中与其他参会人员进行远程实时视听交流和协作。 +新会议 \ No newline at end of file diff --git a/public/images/apply/joinMeeting.svg b/public/images/apply/joinMeeting.svg new file mode 100644 index 000000000..28b8a98ff --- /dev/null +++ b/public/images/apply/joinMeeting.svg @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + diff --git a/resources/assets/js/components/Mobile/Tabbar.vue b/resources/assets/js/components/Mobile/Tabbar.vue index 6fc8fc20e..796924dad 100644 --- a/resources/assets/js/components/Mobile/Tabbar.vue +++ b/resources/assets/js/components/Mobile/Tabbar.vue @@ -68,7 +68,8 @@ export default { {icon: '', name: 'project', label: '项目'}, {icon: '', name: 'dialog', label: '消息'}, {icon: '', name: 'contacts', label: '通讯录'}, - {icon: '', name: 'more', label: '更多'}, + {icon: '', name: 'apply', label: '应用'}, + // {icon: '', name: 'more', label: '更多'}, ], navMore: [ [ @@ -200,8 +201,9 @@ export default { }, activeName() { - if (this.isMore || ['manage-calendar', 'manage-file', 'manage-setting'].includes(this.routeName)) { - return 'more'; + if (this.isMore || ['manage-calendar', 'manage-file', 'manage-setting', 'manage-apply', 'manage-approve'].includes(this.routeName)) { + // return 'more'; + return 'apply'; } if (this.routeName === 'manage-dashboard') { diff --git a/resources/assets/js/pages/manage.vue b/resources/assets/js/pages/manage.vue index 93f2765c6..f8c5749a7 100644 --- a/resources/assets/js/pages/manage.vue +++ b/resources/assets/js/pages/manage.vue @@ -11,8 +11,7 @@ {{userInfo.nickname}} - - +
@@ -57,18 +56,11 @@
{{$L(item.name)}} - - +
{{$L('团队管理')}} - -
- {{$L('工作报告')}} - -
-
{{$L('导出任务统计')}} {{$L('导出超期任务')}} {{$L('导出审批数据')}} @@ -205,7 +197,7 @@
- +
@@ -569,12 +561,10 @@ export default { {path: 'archivedProject', name: '已归档的项目'}, {path: 'team', name: '团队管理', divided: true}, - {path: 'approve', name: '审批中心'}, ]) } else { array.push(...[ {path: 'personal', name: '个人设置', divided: true}, - {path: 'approve', name: '审批中心'}, {path: 'version', name: '更新版本', divided: true, visible: !!this.clientNewVersion}, {path: 'workReport', name: '工作报告', divided: true}, @@ -630,7 +620,7 @@ export default { if (this.routeName === 'manage-project' && !/^\d+$/.test(this.$route.params.projectId)) { return true; } - return ['manage-dashboard', 'manage-calendar', 'manage-messenger', 'manage-file', 'manage-setting'].includes(this.routeName) + return ['manage-dashboard', 'manage-calendar', 'manage-messenger', 'manage-file', 'manage-setting', 'manage-approve', 'manage-apply'].includes(this.routeName) }, }, diff --git a/resources/assets/js/pages/manage/apply.vue b/resources/assets/js/pages/manage/apply.vue index 31f187534..33a87fecf 100644 --- a/resources/assets/js/pages/manage/apply.vue +++ b/resources/assets/js/pages/manage/apply.vue @@ -1,6 +1,6 @@ @@ -178,40 +176,55 @@ import SystemAibot from "./setting/components/SystemAibot"; import SystemCheckin from "./setting/components/SystemCheckin"; import Checkin from "./setting/checkin"; import SystemMeeting from "./setting/components/SystemMeeting"; -import {Store} from "le5le-store"; +import SystemThirdAccess from "./setting/components/SystemThirdAccess"; +import SystemEmailSetting from "./setting/components/SystemEmailSetting"; +import SystemAppPush from "./setting/components/SystemAppPush"; +import { Store } from "le5le-store"; export default { - components: { UserSelect, DrawerOverlay, Report, SystemAibot, SystemCheckin, Checkin, SystemMeeting }, + components: { + UserSelect, + DrawerOverlay, + Report, + SystemAibot, + SystemCheckin, + Checkin, + SystemMeeting, + SystemThirdAccess, + SystemEmailSetting, + SystemAppPush + }, data() { return { - applyList: [ - { value: "approve", label: "审批中心", src: "/images/apply/approve.svg" }, - { value: "report", label: "工作报告", src: "/images/apply/report.svg"}, - { value: "ai", label: "AI机器人", src: "/images/apply/robot.svg" }, - { value: "signIn", label: "签到", src: "/images/apply/signin.svg" }, - { value: "meeting", label: "会议", src: "/images/apply/meeting.svg" }, - { value: "ldap", label: "LDAP", src: "/images/apply/ldap.svg" }, - { value: "mail", label: "邮件", src: "/images/apply/mail.svg" }, - { value: "appPush", label: "APP推送", src: "/images/apply/apppush.svg" }, - ], - + applyList: [], + // workReportShow: false, workReportTabs: "my", - + // + aibotList: [ + { value: "openai", label: "ChatGPT", src: $A.apiUrl('../images/avatar/default_openai.png'), desc: this.$L('我是一个人工智能助手,为用户提供问题解答和指导。我没有具体的身份,只是一个程序。您有什么问题可以问我哦?') }, + { value: "claude", label: "Claude", src: $A.apiUrl('../images/avatar/default_claude.png'), desc: this.$L('我是Claude,一个由Anthropic公司创造出来的AI助手机器人。我的工作是帮助人类,与人对话并给出解答。') }, + { value: "wenxin", label: "Wenxin", src: $A.apiUrl('../avatar/Wenxin.png'), desc: this.$L('我是文心一言,英文名是ERNIE Bot。我能够与人对话互动,回答问题,协助创作,高效便捷地帮助人们获取信息、知识和灵感。') }, + { value: "qianwen", label: "Qianwen", src: $A.apiUrl('../avatar/%E9%80%9A%E4%B9%89%E5%8D%83%E9%97%AE.png'), desc: this.$L('我是达摩院自主研发的超大规模语言模型,能够回答问题、创作文字,还能表达观点、撰写代码。') }, + ], aibotTabAction: "opanai", aibotShow: false, aibotType: 1, - + aibotDialogSearchLoad: "", + // signInShow: false, signType: 1, - + // meetingShow: false, meetingType: 1, - meetingAddData: { - userids: [], - tracks: ['audio'] - }, - meetingLoadIng: 0 + // + ldapShow: false, + // + mailType: 1, + mailShow: false, + // + appPushType: 1, + appPushShow: false, } }, @@ -219,18 +232,46 @@ export default { }, mounted() { + }, activated() { + this.applyList = [ + { value: "approve", label: "审批中心", src: $A.apiUrl('../images/apply/approve.svg') }, + { value: "report", label: "工作报告", src: $A.apiUrl('../images/apply/report.svg') }, + { value: "ai", label: "AI机器人", src: $A.apiUrl('../images/apply/robot.svg') }, + { value: "signIn", label: "签到", src: $A.apiUrl('../images/apply/signin.svg') }, + { value: "meeting", label: "会议", src: $A.apiUrl('../images/apply/meeting.svg') }, + { value: "ldap", label: "LDAP", src: $A.apiUrl('../images/apply/ldap.svg'), isAdmin: true }, + { value: "mail", label: "邮件", src: $A.apiUrl('../images/apply/mail.svg'), isAdmin: true }, + { value: "appPush", label: "APP推送", src: $A.apiUrl('../images/apply/apppush.svg'), isAdmin: true } + ]; + if (this.windowOrientation == 'portrait') { + this.applyList.push({ value: "calendar", label: "日历", src: $A.apiUrl('../images/apply/apppush.svg') }) + this.applyList.push({ value: "file", label: "文件", src: $A.apiUrl('../images/apply/apppush.svg') }) + this.applyList.push({ value: "addProject", label: "创建项目", src: $A.apiUrl('../images/apply/apppush.svg') }) + this.applyList.push({ value: "addTask", label: "添加任务", src: $A.apiUrl('../images/apply/apppush.svg') }) + if ($A.isEEUiApp) { + this.applyList.push({ value: "scan", label: "扫一扫", src: $A.apiUrl('../images/apply/apppush.svg') }) + } + if (this.userIsAdmin) { + this.applyList.push({ value: "allUser", label: "团队管理", src: $A.apiUrl('../images/apply/apppush.svg') }) + } + this.applyList.push({ value: "setting", label: "设置", src: $A.apiUrl('../images/apply/apppush.svg') }) + } }, computed: { ...mapState([ 'userInfo', 'userIsAdmin', - + 'reportUnreadNumber', 'approveUnreadNumber', + + 'cacheDialogs', + + 'windowOrientation', ]), }, @@ -241,9 +282,13 @@ export default { methods: { applyClick(item) { + this.$emit("on-click", item.value) switch (item.value) { case 'approve': - this.goForward({name: 'manage-approve'}); + case 'calendar': + case 'file': + case 'setting': + this.goForward({ name: 'manage-' + item.value }); break; case 'report': this.workReportShow = true; @@ -254,14 +299,70 @@ export default { this.aibotShow = true; break; case 'signIn': + this.signInType = 1; this.signInShow = true; break; case 'meeting': + this.meetingType = 1; this.meetingShow = true; break; + case 'ldap': + this.ldapShow = true; + break; + case 'mail': + this.mailType = 1; + this.mailShow = true; + break; + case 'appPush': + this.appPushType = 1; + this.appPushShow = true; + break; } }, - onAddMenu(name) { + // 去聊天 + onGoToChat(type) { + let dialogId = 0; + let email = `ai-${type}@bot.system`; + this.cacheDialogs.map(h => { + if (h.email == email) { + dialogId = h.id; + } + }) + if (dialogId) { + if (this.windowOrientation == 'portrait') { + this.$store.dispatch("openDialog", dialogId) + } else { + this.goForward({ name: 'manage-messenger', params: { dialog_id: dialogId } }); + } + this.aibotShow = false; + } else { + this.aibotDialogSearchLoad = type; + this.$store.dispatch("call", { + url: 'dialog/search', + data: { key: email }, + }).then(({ data }) => { + if (data?.length < 1) { + $A.messageError('机器人暂未开启'); + this.aibotDialogSearchLoad = ''; + return; + } + this.$store.dispatch("openDialogUserid", data[0]?.dialog_user.userid).then(_ => { + if (this.windowOrientation != 'portrait') { + this.goForward({ name: 'manage-messenger' }) + } + this.aibotShow = false; + }).catch(({ msg }) => { + $A.modalError(msg) + }).finally(_ => { + this.aibotDialogSearchLoad = ''; + }); + }).catch(_ => { + this.aibotDialogSearchLoad = ''; + }); + } + }, + // 会议 + onMeeting(name) { switch (name) { case 'createMeeting': Store.set('addMeeting', { @@ -276,9 +377,6 @@ export default { break; } this.meetingShow = false; - }, - onMeetingSubmit(){ - } } } diff --git a/resources/assets/js/pages/manage/approve/index.vue b/resources/assets/js/pages/manage/approve/index.vue index 517cb3e71..c21d40b8b 100644 --- a/resources/assets/js/pages/manage/approve/index.vue +++ b/resources/assets/js/pages/manage/approve/index.vue @@ -7,10 +7,13 @@

{{$L('审批中心')}}

- + +
- - + +