Compare commits

...

11 Commits

Author SHA1 Message Date
“zouyf” eab46ec7f4 Merge branch 'main' into zouyf_dev 2024-09-27 16:17:08 +08:00
lyc 7c36255508 Merge pull request '教学大模型' (#287) from lyc-dev into main 2024-09-27 15:55:45 +08:00
lyc 310d1aee59 教学大模型 2024-09-27 15:55:50 +08:00
zhengdegang 3caa561610 Merge pull request 'zdg' (#286) from zdg into main
Reviewed-on: #286
2024-09-27 15:54:54 +08:00
zdg ada2e63060 Merge branch 'main' of http://27.128.240.72:3000/zhuhao/AIx_Smarttalk into zdg
# Conflicts:
#	src/main/index.js
2024-09-27 15:53:42 +08:00
zdg eaf9d508d4 apt上课-无需登录 2024-09-27 15:52:07 +08:00
朱浩 716c1dd0a9 Merge pull request 'zhuhao_dev' (#285) from zhuhao_dev into main
Reviewed-on: #285
2024-09-27 15:15:28 +08:00
朱浩 76f053d8c8 Merge branch 'main' into zhuhao_dev 2024-09-27 15:11:45 +08:00
朱浩 0511256094 Merge branch 'main' into zhuhao_dev 2024-09-27 11:01:16 +08:00
朱浩 e2e8cae690 背景色 2024-09-27 11:00:03 +08:00
zdg 68cf2bae1f 屏蔽注释打印 2024-09-27 09:27:51 +08:00
5 changed files with 52 additions and 13 deletions

View File

@ -26,3 +26,13 @@ export class imChat {
// 获取腾讯im-chat appid 签名
static getTxCloudSign = data => ApiService.publicHttp('/system/user/txCloudSign', data)
}
// zdg: url跳转-后端存储
export class toLink {
// 设置链接-返回key(默认15分钟有效时间)
static setLink = url => ApiService.publicHttp(`/smarttalk/toLink`, {url}, 'post', null, 'form')
// 获取链接
static getLink = key => ApiService.publicHttp(`/smarttalk/toLink/${key}`)
// 删除链接-缓存
static delLink = key => ApiService.publicHttp(`/smarttalk/toLink/${key}`, null, 'delete')
}

View File

@ -122,7 +122,8 @@ const outerAi = [
title: '教学大模型',
secondTit: '中小学基础教学大模型',
img: new URL('../../../src/assets/images/ai-02.png', import.meta.url).href,
disabled: true,
path: '/ais/aimoss'
},
{
id: 3,

View File

@ -57,7 +57,7 @@ function stateSyncWatch(storeName, newState) {
const diffData = findDifferences(oldState, newState)
if(!_.keys(diffData).length) return // 没有变化就终止执行
// 数据处理: 找出差异
console.log('state-change-diffData', diffData)
// console.log('state-change-diffData', diffData)
try {
let pinaValue = {} // store pina状态管理需要的数据格式
// 数据转换处理
@ -116,7 +116,7 @@ function stateSyncInit(wid, store) {
function sessionWatch(store) {
const unsubscribe = sessionStore.onDidAnyChange((newV, oldV) => {
if (newV !== oldV) {
console.log('session-change', newV, oldV)
// console.log('session-change', newV, oldV)
// 通知主线程更新
// ipcRenderer?.invoke('pinia-state-change', storeName, jsonStr)
}
@ -129,7 +129,7 @@ function stateChange(store) {
const storeName = store.$id
ipcRenderer?.on('pinia-state-set', (e, sName, jsonStr) => {
if (sName == storeName) { // 更新对应数据
console.log('state-set', jsonStr, sName)
// console.log('state-set', jsonStr, sName)
const curJson = circularSafeStringify(store.$state) // 当前数据
const isUp = curJson != jsonStr // 不同的时候才写入,不然会导致触发数据变化监听,导致死循环
if (!isUp) return

View File

@ -85,12 +85,14 @@ import vueQr from 'vue-qr/src/packages/vue-qr.vue' // 插件: 二维码
import imChat from '@/views/tool/components/imChat.vue' // im-chat-
import MsgEnum from '@/plugins/imChat/msgEnum' // -(nuem)
import * as commUtil from '@/utils/comm' // -
import { toLinkWeb, getStaticUrl } from '@/utils/tool'
import { toLinkWeb, getStaticUrl } from '@/utils/tool' // -
import * as Http_ClassManage from '@/api/classManage' // api
import * as Http_Classcourse from '@/api/teaching/classcourse' // api
import * as Http_Entpcoursefile from '@/api/education/entpcoursefile' // api
import * as Http_api from '@/api/apiService' // api
import useUserStore from "@/store/modules/user" // user
import CryptoJS from 'crypto-js'
const baseUrl = import.meta.env.VITE_APP_BUILD_BASE_PATH
const userStore = useUserStore()
@ -189,9 +191,9 @@ const getClassList = async () => {
})
if (res.code == 200) {
listData.classList = (res.rows || []).map(o => {
if(!!o.classstudentlist) { //
o.classstudentlist = JSON.parse('[' + o.classstudentlist + ']')
}
// if(!!o.classstudentlist) { //
// o.classstudentlist = JSON.parse('[' + o.classstudentlist + ']')
// }
return o
});
//
@ -277,11 +279,34 @@ const classTeachingStart = async () => {
}
}
//
const getQrUrl = () => {
const getQrUrl = async() => {
const { classcourseid:id } = teacherForm.form
const { userName } = userStore.user
const { userName, userId } = userStore.user
if (!id||!userName) return
const qrCodeUrl = `wxlogin?username=${userName}&nextaction=classteaching&id=${id}`
// (wx)
// const qrCodeUrl = `wxlogin?username=${userName}&nextaction=classteaching&id=${id}`
// teacherForm.form.qrUrl = baseUrl + qrCodeUrl
// const baseUrl = 'https://localhost:7860'
// token
const url = `/teaching/classteachingonmobile?classcourseid=${id}` // -
let qrCodeUrl = '' // -
try {
// url
const res = await Http_api.toLink.setLink(url) // -
if (res.code == 200) {
const redisKey = res.data
const base64Key = CryptoJS.enc.Utf8.parse(redisKey).toString(CryptoJS.enc.Base64) // base64
const enStrUrl = encodeURIComponent(base64Key) // url
qrCodeUrl = `?_server=${enStrUrl}`
teacherForm.form.qrUrl = baseUrl + qrCodeUrl
}
} catch (error) { // , token
const jsonStr = JSON.stringify({ url, token: userStore.token }) // json{url, token}
const key = `Ax19i14Ga6qEDOkGTo` // AES-key
const enStr = CryptoJS.AES.encrypt(jsonStr, key).toString() // AES-
const enStrUrl = encodeURIComponent(enStr) // url
qrCodeUrl = `?_web=${enStrUrl}`
}
teacherForm.form.qrUrl = baseUrl + qrCodeUrl
}

View File

@ -711,7 +711,10 @@ export default {
.page-center-wrap{
flex: 1;
height: 100%;
padding: 0 10px;
padding: 0 5px;
margin: 0 5px;
border-radius: 10px;
background-color: white;
.prepare-center-jxkj{
height: 100%;
display: flex;