主要改动: - SQL: biz_support_unit → biz_org, 加 org_type, 加 business_nature; 删 biz_execution_unit, biz_service_org - SQL: biz_project.support_unit_id/name + service_org_id/name → org_id/name/type - SQL: biz_meeting.support_unit_name → org_name - SQL: biz_person.work_unit → org_id (FK) - 后端: 新 BizOrg entity/mapper/service/controller - 后端: BizProject/BizMeeting 字段重命名 - 后端: 删 12 个 BizSupportUnit/BizExecutionUnit/BizServiceOrg Java 文件 - 后端: BizPersonImportVO.workUnit → orgName (导入时查 biz_org 取 org_id) - 后端: BizAuthController.registerExecutor 完整实现 (原 registerSupplier stub) - 前端: 新 admin/Orgs.vue + manager/Orgs.vue (原 SupportUnits) - 前端: RegisterExecutor.vue (原 RegisterSupplier, 单页 2 步) - 前端: sponsor/executor/manager 多个文件 workUnit → orgId/orgName 重命名 - 前端: 统一 supplier → executor, 业务命名 sponsor(赞助方) / executor(执行方=供应商) - 前端: 全工程 execution → executor (company type / role / person unit_type)
80 lines
2.7 KiB
Vue
80 lines
2.7 KiB
Vue
<template>
|
|
<!--
|
|
原型: 账号信息.html
|
|
SIDEBAR: ['项目列表', '人员管理', '会议管理']
|
|
列头 (top 285-335, 按 left): 姓名
|
|
说明: 项目主管的个人账号信息页, 含手机号/修改密码
|
|
-->
|
|
<div class="leader-account">
|
|
<p class="page-sub">查看与维护您的账号信息</p>
|
|
|
|
<div class="page-card">
|
|
<el-form :model="form" label-width="120px" style="max-width:560px">
|
|
<el-form-item label="账号">
|
|
<el-input :model-value="store.user?.userName" disabled />
|
|
</el-form-item>
|
|
<el-form-item label="姓名">
|
|
<el-input :model-value="store.user?.nickName || store.user?.userName" disabled />
|
|
</el-form-item>
|
|
<el-form-item label="角色">
|
|
<el-input :model-value="roleLabel" disabled />
|
|
</el-form-item>
|
|
<el-form-item label="手机号">
|
|
<el-input v-model="form.phone" placeholder="请输入手机号" />
|
|
</el-form-item>
|
|
|
|
<el-divider>修改密码</el-divider>
|
|
|
|
<el-form-item label="原密码">
|
|
<el-input v-model="form.oldPwd" type="password" show-password placeholder="请输入原密码" />
|
|
</el-form-item>
|
|
<el-form-item label="新密码">
|
|
<el-input v-model="form.newPwd" type="password" show-password placeholder="请输入新密码" />
|
|
</el-form-item>
|
|
<el-form-item label="确认密码">
|
|
<el-input v-model="form.confirmPwd" type="password" show-password placeholder="请再次输入新密码" />
|
|
</el-form-item>
|
|
|
|
<el-form-item>
|
|
<el-button type="primary" @click="onSave">保存</el-button>
|
|
<el-button @click="onCancel">取消</el-button>
|
|
</el-form-item>
|
|
</el-form>
|
|
</div>
|
|
</div>
|
|
</template>
|
|
|
|
<script setup>
|
|
import { reactive, computed } from 'vue'
|
|
import { useUserStore } from '@/store/user'
|
|
import { ElMessage } from 'element-plus'
|
|
|
|
const store = useUserStore()
|
|
const roleLabel = computed(() => {
|
|
const r = store.user?.role
|
|
if (r === 'leader') return '项目主管'
|
|
if (r === 'sponsor') return '支持方'
|
|
if (r === 'expert') return '专家'
|
|
if (r === 'executor') return '执行方'
|
|
return r || '-'
|
|
})
|
|
|
|
const form = reactive({
|
|
phone: store.user?.phonenumber || '',
|
|
oldPwd: '', newPwd: '', confirmPwd: ''
|
|
})
|
|
|
|
function onSave() {
|
|
if (form.newPwd && form.newPwd !== form.confirmPwd) {
|
|
ElMessage.error('两次输入密码不一致'); return
|
|
}
|
|
ElMessage.success('已保存')
|
|
}
|
|
function onCancel() { form.oldPwd = ''; form.newPwd = ''; form.confirmPwd = '' }
|
|
</script>
|
|
|
|
<style scoped>
|
|
.leader-account { padding: 16px; }
|
|
.page-sub { font-size: 13px; color: #909399; margin-bottom: 16px; }
|
|
.page-card { background: #fff; border-radius: 4px; padding: 24px; border: 1px solid #ebeef5; }
|
|
</style> |