Merge branch 'feature/manage' of http://gogs.lvfunai.com:444/ai-team/lingji-work-fe into feature/manage

This commit is contained in:
lq
2025-06-21 11:39:36 +08:00
10 changed files with 208 additions and 36 deletions

View File

@ -61,8 +61,10 @@ import { fetchSubAccountPage, removeEnterpriseAccount, getEnterpriseInviteCode }
import Modal from '@/components/modal.vue';
import DeleteModal from '@/components/delete-modal.vue';
import CustomerServiceModal from '@/components/customer-service-modal.vue';
import { useClipboard } from '@vueuse/core'
import { useClipboard } from '@vueuse/core';
import { useEnterpriseStore } from '@/stores/modules/enterprise';
const store = useEnterpriseStore();
const columns = [
{
title: '手机号',
@ -93,11 +95,7 @@ const addAccountVisible = ref(false);
const deleteVisible = ref(false);
const deleteTitle = ref('');
const enterpriseInfo = reactive({
name: '123321',
sub_account_quota: 2,
used_sub_account_count: 1,
});
const enterpriseInfo = store.getEnterpriseInfo();
const okText = computed(() => {
if (!canAddAccount.value) {

View File

@ -35,16 +35,14 @@ import Modal from '@/components/modal.vue';
import { ref, reactive, computed } from 'vue';
import CustomerServiceModal from '@/components/customer-service-modal.vue';
import { updateEnterpriseName } from '@/api/all';
import { useEnterpriseStore } from '@/stores/modules/enterprise';
const store = useEnterpriseStore();
const form = reactive({
name: '',
});
const enterpriseInfo = reactive({
name: '123321',
update_name_quota: 2,
used_update_name_count: 1,
});
const enterpriseInfo = store.getEnterpriseInfo();
const columns = [
{
@ -85,6 +83,8 @@ async function handleOk() {
return;
}
await updateEnterpriseName({ name: form.name });
store.setEnterpriseName(form.name);
store.incUsedUpdateNameCount();
AMessage.success('修改成功!');
}
</script>

View File

@ -2,9 +2,11 @@
<Container title="个人信息" class="container mt-24px">
<a-table :columns="columns" :data="data" :pagination="false" class="mt-16px">
<template #info="{ record }">
<a-avatar :image-url="record.head_image" :size="32" />
{{ record.name }}
<icon-edit size="13" class="ml-8px" @click="openEditInfoModal" />
<div class="pt-3px pb-3px">
<a-avatar :image-url="record.head_image" :size="32" />
{{ record.name }}
<icon-edit size="13" class="ml-8px" @click="openEditInfoModal" />
</div>
</template>
<template #mobile="{ record }">
{{ record.mobile.replace(/(\d{3})\d{4}(\d{4})/, '$1****$2') }}
@ -12,7 +14,12 @@
</template>
</a-table>
<Modal v-model:visible="infoVisible" title="修改用户信息" @ok="handleSubmitUserInfo">
<a-form :model="userInfoForm">
<a-form
class="form"
:model="userInfoForm"
:label-col-props="{ span: 3, offset: 0 }"
:wrapper-col-props="{ span: 21, offset: 0 }"
>
<a-form-item field="head_image" label="头像">
<div class="flex item-center">
<a-avatar :image-url="userInfoForm.file_url" :size="48" />
@ -42,8 +49,8 @@
:model="form"
class="form"
:rules="formRules"
:label-col-props="{ span: 6, offset: 0 }"
:wrapper-col-props="{ span: 18, offset: 0 }"
:label-col-props="{ span: 5, offset: 0 }"
:wrapper-col-props="{ span: 19, offset: 0 }"
label-align="left"
>
<a-form-item required field="mobile" label="新手机号">
@ -75,13 +82,10 @@ import 'vue-cropper/dist/index.css';
import { VueCropper } from 'vue-cropper';
import { sendUpdateMobileCaptcha, updateMobile, fetchImageUploadFile, updateMyInfo } from '@/api/all';
import axios from 'axios';
import { useUserStore } from '@/stores';
const userInfo = reactive({
id: 1,
name: 'Jane Doe',
head_image: '',
mobile: '13600000000',
});
const store = useUserStore();
const userInfo = store.getUserInfo();
const columns = [
{
@ -165,7 +169,6 @@ async function handleFileChange(event: Event) {
const target = event.target as HTMLInputElement;
const file = target.files?.[0];
if (file) {
console.log('已选择的文件:', file);
const fileExtension = getFileExtension(file.name);
const res = await fetchImageUploadFile({
suffix: fileExtension,
@ -188,6 +191,8 @@ function openEditMobileModal() {
async function handleSubmitUserInfo() {
await updateMyInfo(userInfoForm);
store.setUserName(userInfoForm.name);
store.setUserHeadImage(userInfoForm.file_url);
AMessage.success('修改成功!');
}
@ -230,6 +235,7 @@ async function handleUpdateMobile() {
const res = await formRef.value.validate();
if (res === true || res === undefined) {
await updateMobile(form);
store.setUserMobile(form.mobile);
AMessage.success('修改成功!');
}
}
@ -241,6 +247,10 @@ function getFileExtension(filename: string): string {
</script>
<style scoped lang="less">
.form {
margin-top: 13px;
:deep(.arco-row) {
align-items: center;
}
:deep(.arco-form-item-label) {
font-family: Alibaba PuHuiTi, serif;
font-weight: 400;
@ -253,6 +263,7 @@ function getFileExtension(filename: string): string {
font-family: Alibaba PuHuiTi, serif;
font-weight: 400;
font-size: 14px;
padding: 4px 12px;
input::placeholder {
font-family: Alibaba PuHuiTi, serif;
font-weight: 400;