From 50fc1e106d9455735d39cd9742cf5078361fe6cf Mon Sep 17 00:00:00 2001 From: zhuhao <979263092@qq.com> Date: Thu, 18 Jul 2024 09:13:57 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E5=9F=BA=E7=A1=80=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E6=A0=B8=E5=BF=83=E5=BC=80=E5=8F=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/renderer/src/utils/talkFile/index.js | 10 ++++++++++ src/renderer/src/views/prepare/index.vue | 15 +++------------ 2 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/renderer/src/utils/talkFile/index.js b/src/renderer/src/utils/talkFile/index.js index 61fe003..23495ce 100644 --- a/src/renderer/src/utils/talkFile/index.js +++ b/src/renderer/src/utils/talkFile/index.js @@ -8,3 +8,13 @@ export const isHaveLocalFile = async (fileNewName)=>{ }) }) } + +export const parseCataByNode = (node) => { + if (node.parentNode) { + let arr = parseCataByNode(node.parentNode) + arr.push(node.id) + return arr + } else { + return [node.id] + } +} diff --git a/src/renderer/src/views/prepare/index.vue b/src/renderer/src/views/prepare/index.vue index e03962e..8429c16 100644 --- a/src/renderer/src/views/prepare/index.vue +++ b/src/renderer/src/views/prepare/index.vue @@ -77,7 +77,7 @@ import FileListItem from '@/views/prepare/container/file-list-item.vue' import { getSmarttalkPage, moveSmarttalk } from '@/api/file' import { toTimeText } from '@/utils/date' import { ElMessage } from 'element-plus' -import { isHaveLocalFile } from '@/utils/talkFile' +import { isHaveLocalFile, parseCataByNode } from '@/utils/talkFile' import FileOperBatch from '@/views/prepare/container/file-oper-batch.vue' const { ipcRenderer } = window.electron || {} export default { @@ -192,7 +192,7 @@ export default { id: ids.join(), textbookId: cataData.textBook.curBookId } - let cata = this.parseCataByNode(cataData.node) + let cata = parseCataByNode(cataData.node) if ( this.uploadData.levelFirstId == cata[0] && this.uploadData.levelSecondId == cata[1] && @@ -250,7 +250,7 @@ export default { nodeClick(data) { if (this.currentNode.id === data.node.id) return this.checkFileList = [] - let cata = this.parseCataByNode(data.node) + let cata = parseCataByNode(data.node) this.currentNode = data.node this.uploadData.levelFirstId = cata[0] this.uploadData.levelSecondId = cata[1] @@ -276,15 +276,6 @@ export default { console.log(res) this.isLoading = false }) - }, - parseCataByNode(node) { - if (node.parentNode) { - let arr = this.parseCataByNode(node.parentNode) - arr.push(node.id) - return arr - } else { - return [node.id] - } } } } From 6c6b931740aa323fa089b3e7ed49dd67778703c7 Mon Sep 17 00:00:00 2001 From: cys <372127021@qq.com> Date: Thu, 18 Jul 2024 09:34:15 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E5=A4=B4=E5=83=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 2 +- src/renderer/index.html | 2 +- src/renderer/src/views/profile/resetPwd.vue | 4 +- src/renderer/src/views/profile/userAvatar.vue | 343 +++++++++--------- src/renderer/src/views/profile/userInfo.vue | 185 +++++----- 5 files changed, 279 insertions(+), 257 deletions(-) diff --git a/package.json b/package.json index aff64c5..e1d11d9 100644 --- a/package.json +++ b/package.json @@ -29,7 +29,7 @@ "jsencrypt": "^3.3.2", "pinia": "^2.1.7", "pinia-plugin-persistedstate": "^3.2.1", - "vue-cropper": "^1.1.3", + "vue-cropper": "^1.0.3", "vue-router": "^4.4.0" }, "devDependencies": { diff --git a/src/renderer/index.html b/src/renderer/index.html index aa01b18..bec0a9f 100644 --- a/src/renderer/index.html +++ b/src/renderer/index.html @@ -8,7 +8,7 @@ http-equiv="Content-Security-Policy" content="default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' data:" /> --> - + diff --git a/src/renderer/src/views/profile/resetPwd.vue b/src/renderer/src/views/profile/resetPwd.vue index 4754ee3..b4d2ccb 100644 --- a/src/renderer/src/views/profile/resetPwd.vue +++ b/src/renderer/src/views/profile/resetPwd.vue @@ -31,10 +31,10 @@ +} +/** 上传图片 */ +function uploadImg() { + proxy.$refs.cropper.getCropBlob((data) => { + let formData = new FormData() + formData.append('avatarfile', data) + uploadAvatar(formData).then((response) => { + open.value = false + options.img = import.meta.env.VITE_APP_BASE_API + response.imgUrl + userStore.avatar = options.img + proxy.$modal.msgSuccess('修改成功') + visible.value = false + }) + }) +} +/** 实时预览 */ +function realTime(data) { + options.previews = data +} +/** 关闭窗口 */ +function closeDialog() { + options.img = userStore.avatar + options.visible = false +} + \ No newline at end of file +.user-info-head { + position: relative; + display: inline-block; + height: 120px; +} + +.user-info-head:hover:after { + content: '+'; + position: absolute; + left: 0; + right: 0; + top: 0; + bottom: 0; + color: #eee; + background: rgba(0, 0, 0, 0.5); + font-size: 24px; + font-style: normal; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + cursor: pointer; + line-height: 110px; + border-radius: 50%; +} +.img-circle { + height: 120px; + width: auto; +} + \ No newline at end of file diff --git a/src/renderer/src/views/profile/userInfo.vue b/src/renderer/src/views/profile/userInfo.vue index 6846cfa..c560d39 100644 --- a/src/renderer/src/views/profile/userInfo.vue +++ b/src/renderer/src/views/profile/userInfo.vue @@ -1,89 +1,104 @@ + + + + + + + + + + + + + + + + + + + + + + + 保存 + + + \ No newline at end of file +const props = defineProps({ + user: { + type: Object + } +}) + +const { proxy } = getCurrentInstance() + +const rules = ref({ + nickName: [{ required: true, message: '用户昵称不能为空', trigger: 'blur' }], + email: [ + { required: true, message: '邮箱地址不能为空', trigger: 'blur' }, + { type: 'email', message: '请输入正确的邮箱地址', trigger: ['blur', 'change'] } + ], + phonenumber: [ + { required: true, message: '手机号码不能为空', trigger: 'blur' }, + { pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/, message: '请输入正确的手机号码', trigger: 'blur' } + ] +}) + +const subjectList = ref([]) + +// 获取基础的学科 +listEvaluation({ itemkey: 'subject', pageSize: 500 }).then((res) => { + subjectList.value = res.rows +}) + +setTimeout(() => { + if (props.user.edudegree != '') { + var upcaseName = [ + '一年级', + '二年级', + '三年级', + '四年级', + '五年级', + '六年级', + '初一', + '初二', + '初三', + '高一', + '高二', + '高三' + ] + var d = parseInt(props.user.edudegree.replace('年级', '')) + if (d <= 6) { + props.user.edustage = '小学' + } else if (d >= 7 && d <= 9) { + props.user.edustage = '初中' + } else if (d >= 9 && d <= 12) { + props.user.edustage = '高中' + } + props.user.stagelabel = upcaseName[d - 1] + } +}, 1000) + +/** 提交按钮 */ +function submit() { + proxy.$refs.userRef.validate((valid) => { + if (valid) { + console.log(props.user) + updateUserProfile(props.user).then((response) => { + proxy.$modal.msgSuccess('修改成功') + }) + } + }) +} + \ No newline at end of file From 412e0a01ac00fb0797bb8327b7b203b5b9d10001 Mon Sep 17 00:00:00 2001 From: yangws <1607839436@qq.com> Date: Thu, 18 Jul 2024 10:45:33 +0800 Subject: [PATCH 3/3] =?UTF-8?q?fix:=20=E4=BF=AE=E6=94=B9=E5=A4=B4=E5=83=8F?= =?UTF-8?q?=E9=A2=84=E8=A7=88=EF=BC=8C=E5=A4=B4=E5=83=8F=E4=B8=8A=E4=BC=A0?= =?UTF-8?q?bug=EF=BC=8C=E4=BB=A5=E5=8F=8A=E9=BB=84=E8=89=B2=E6=8A=A5?= =?UTF-8?q?=E9=94=99=E9=97=AE=E9=A2=98=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/renderer/src/api/system/user.js | 11 +++++++---- src/renderer/src/views/profile/userAvatar.vue | 19 +++++++++++++------ src/renderer/src/views/profile/userInfo.vue | 16 ++++++++-------- 3 files changed, 28 insertions(+), 18 deletions(-) diff --git a/src/renderer/src/api/system/user.js b/src/renderer/src/api/system/user.js index c83e0f6..b7e9e23 100644 --- a/src/renderer/src/api/system/user.js +++ b/src/renderer/src/api/system/user.js @@ -7,7 +7,7 @@ export function getUserProfile() { method: 'get' }) } - + // 修改用户个人信息 export function updateUserProfile(data) { return request({ @@ -16,7 +16,7 @@ export function getUserProfile() { data: data }) } - + // 用户密码重置 export function updateUserPwd(oldPassword, newPassword) { const data = { @@ -29,11 +29,14 @@ export function getUserProfile() { params: data }) } - + // 用户头像上传 export function uploadAvatar(data) { return request({ url: '/system/user/profile/avatar', + headers: { + 'Content-Type': 'multipart/form-data' + }, method: 'post', data: data }) @@ -46,4 +49,4 @@ export function updateUserInfo(data) { method: 'put', data: data }) -} \ No newline at end of file +} diff --git a/src/renderer/src/views/profile/userAvatar.vue b/src/renderer/src/views/profile/userAvatar.vue index b301307..1c289a4 100644 --- a/src/renderer/src/views/profile/userAvatar.vue +++ b/src/renderer/src/views/profile/userAvatar.vue @@ -26,7 +26,7 @@
- +
@@ -64,7 +64,7 @@ - + - + \ No newline at end of file + diff --git a/src/renderer/src/views/profile/userInfo.vue b/src/renderer/src/views/profile/userInfo.vue index c560d39..808e344 100644 --- a/src/renderer/src/views/profile/userInfo.vue +++ b/src/renderer/src/views/profile/userInfo.vue @@ -11,16 +11,16 @@ - - + + - - + \ No newline at end of file +