|
@@ -19,14 +19,16 @@
|
|
<span class="info-label">负责人名称:</span>
|
|
<span class="info-label">负责人名称:</span>
|
|
<span class="pull-right">{{ userInfo.user?.map(user => user.nickname).join(', ') }}</span>
|
|
<span class="pull-right">{{ userInfo.user?.map(user => user.nickname).join(', ') }}</span>
|
|
</li>
|
|
</li>
|
|
|
|
+
|
|
|
|
+
|
|
<li class="info-item">
|
|
<li class="info-item">
|
|
<Icon class="mr-5px" icon="fontisto:email" />
|
|
<Icon class="mr-5px" icon="fontisto:email" />
|
|
- <span class="info-label">负责人邮箱:</span>
|
|
|
|
|
|
+ <span class="info-label">工作室邮箱:</span>
|
|
<span class="pull-right">{{ userInfo.email }}</span>
|
|
<span class="pull-right">{{ userInfo.email }}</span>
|
|
</li>
|
|
</li>
|
|
<li class="info-item">
|
|
<li class="info-item">
|
|
<Icon class="mr-5px" icon="ep:phone" />
|
|
<Icon class="mr-5px" icon="ep:phone" />
|
|
- <span class="info-label">手机号码:</span>
|
|
|
|
|
|
+ <span class="info-label">工作室号码:</span>
|
|
<span class="pull-right">{{ userInfo.phone }}</span>
|
|
<span class="pull-right">{{ userInfo.phone }}</span>
|
|
</li>
|
|
</li>
|
|
<li class="info-item">
|
|
<li class="info-item">
|
|
@@ -39,7 +41,7 @@
|
|
<span class="info-label">学生人数:</span>
|
|
<span class="info-label">学生人数:</span>
|
|
<span class="pull-right">{{ userInfo.studentNum }}</span>
|
|
<span class="pull-right">{{ userInfo.studentNum }}</span>
|
|
</li>
|
|
</li>
|
|
- <!-- <li class="info-item" v-for="(url, index) in userAchievements" :key="index">
|
|
|
|
|
|
+ <!-- <li class="info-item" v-for="(url, index) in userAchievements.value.datil" :key="index">
|
|
<Icon class="mr-5px" icon="fontisto:email" />
|
|
<Icon class="mr-5px" icon="fontisto:email" />
|
|
<span class="info-label">成果展示:</span>
|
|
<span class="info-label">成果展示:</span>
|
|
<span class="pull-right">{{ userInfo.achievement }}</span>
|
|
<span class="pull-right">{{ userInfo.achievement }}</span>
|
|
@@ -60,28 +62,23 @@
|
|
</template>
|
|
</template>
|
|
<span style="font-weight: bold;">------</span>
|
|
<span style="font-weight: bold;">------</span>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
- <el-form-item label="负责人名称" prop="supervisor">
|
|
|
|
- <el-select
|
|
|
|
- v-model="form.supervisor"
|
|
|
|
- @change="handleSupervisorChange"
|
|
|
|
- placeholder="请选择导师名称"
|
|
|
|
- multiple
|
|
|
|
- clearable
|
|
|
|
- filterable
|
|
|
|
- >
|
|
|
|
- <el-option
|
|
|
|
- v-for="supervisor in supervisors"
|
|
|
|
- :key="supervisor.id"
|
|
|
|
- :label="supervisor.nickname"
|
|
|
|
- :value="supervisor.id"
|
|
|
|
- />
|
|
|
|
- </el-select>
|
|
|
|
- </el-form-item>
|
|
|
|
- <el-form-item label="负责人电话" prop="phone">
|
|
|
|
- <el-input v-model="form.phone"/>
|
|
|
|
- </el-form-item>
|
|
|
|
- <el-form-item label="负责人邮箱" prop="email">
|
|
|
|
- <el-input v-model="form.email"/>
|
|
|
|
|
|
+ <el-form-item label="负责人名称" prop="leaderUserId">
|
|
|
|
+ <el-select
|
|
|
|
+ v-model="form.leaderUserId"
|
|
|
|
+ @change="handleSupervisorChange"
|
|
|
|
+ placeholder="请选择负责人"
|
|
|
|
+ clearable
|
|
|
|
+ filterable
|
|
|
|
+ multiple
|
|
|
|
+ :disabled="!isEditMode"
|
|
|
|
+ >
|
|
|
|
+ <el-option
|
|
|
|
+ v-for="user in users"
|
|
|
|
+ :key="user.id"
|
|
|
|
+ :label="user.nickname"
|
|
|
|
+ :value="user.id"
|
|
|
|
+ />
|
|
|
|
+ </el-select>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
<el-form-item>
|
|
<el-form-item>
|
|
<template #label>
|
|
<template #label>
|
|
@@ -89,25 +86,24 @@
|
|
</template>
|
|
</template>
|
|
<span style="font-weight: bold;">------</span>
|
|
<span style="font-weight: bold;">------</span>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
|
+ <el-form-item label="工作室号码" prop="phone">
|
|
|
|
+ <el-input v-model="form.phone" :disabled="!isEditMode"/>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item label="工作室邮箱" prop="email">
|
|
|
|
+ <el-input v-model="form.email" :disabled="!isEditMode"/>
|
|
|
|
+ </el-form-item>
|
|
|
|
+
|
|
<el-form-item label="工作间地址" prop="address">
|
|
<el-form-item label="工作间地址" prop="address">
|
|
- <el-input v-model="form.address"/>
|
|
|
|
|
|
+ <el-input v-model="form.address" :disabled="!isEditMode"/>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
<el-form-item label="工作间名称" prop="name">
|
|
<el-form-item label="工作间名称" prop="name">
|
|
- <el-input v-model="form.name"/>
|
|
|
|
- </el-form-item>
|
|
|
|
- <!-- <el-form-item label="导师人数" prop="supervisorNum">
|
|
|
|
- <el-input v-model.number="form.supervisorNum"/>
|
|
|
|
|
|
+ <el-input v-model="form.name" :disabled="!isEditMode"/>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
- <el-form-item label="学生人数" prop="studentNum">
|
|
|
|
- <el-input v-model.number="form.studentNum"/>
|
|
|
|
- </el-form-item> -->
|
|
|
|
<el-form-item label="工作间简介" prop="description">
|
|
<el-form-item label="工作间简介" prop="description">
|
|
- <el-input type="textarea" v-model="form.description"/>
|
|
|
|
|
|
+ <el-input type="textarea" v-model="form.description" :disabled="!isEditMode"/>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
- <!-- <el-form-item label="成果展示" prop="achievement">
|
|
|
|
- <el-input type="textarea" v-model="form.achievement"/>
|
|
|
|
- </el-form-item> -->
|
|
|
|
<el-form-item>
|
|
<el-form-item>
|
|
|
|
+ <el-button type="warning" @click="toggleEditMode">{{ isEditMode ? '保存' : '修改' }}</el-button>
|
|
<el-button type="primary" @click="submit">保存</el-button>
|
|
<el-button type="primary" @click="submit">保存</el-button>
|
|
<!-- <el-button type="danger" @click="init">重置</el-button> -->
|
|
<!-- <el-button type="danger" @click="init">重置</el-button> -->
|
|
</el-form-item>
|
|
</el-form-item>
|
|
@@ -133,24 +129,19 @@ export default defineComponent({
|
|
|
|
|
|
const form = reactive({
|
|
const form = reactive({
|
|
id: '',
|
|
id: '',
|
|
- supervisor: [],
|
|
|
|
|
|
+ supervisor: '',
|
|
phone: '',
|
|
phone: '',
|
|
email: '',
|
|
email: '',
|
|
address: '',
|
|
address: '',
|
|
name: '',
|
|
name: '',
|
|
- leaderUserId: '',
|
|
|
|
|
|
+ leaderUserId: [],
|
|
nickname: '',
|
|
nickname: '',
|
|
- // supervisor: '',
|
|
|
|
-
|
|
|
|
- // supervisorNum: '',
|
|
|
|
- // studentNum: '',
|
|
|
|
description: '',
|
|
description: '',
|
|
- // achievement: '',
|
|
|
|
});
|
|
});
|
|
|
|
|
|
// 表单校验规则
|
|
// 表单校验规则
|
|
const rules = reactive<FormRules>({
|
|
const rules = reactive<FormRules>({
|
|
- supervisor: [
|
|
|
|
|
|
+ leaderUserId: [
|
|
{ required: true, message: '请选择导师名称', trigger: 'blur' }
|
|
{ required: true, message: '请选择导师名称', trigger: 'blur' }
|
|
],
|
|
],
|
|
phone: [
|
|
phone: [
|
|
@@ -178,52 +169,44 @@ export default defineComponent({
|
|
description: [
|
|
description: [
|
|
{ required: false, message: '请输入工作间简介', trigger: 'blur' }
|
|
{ required: false, message: '请输入工作间简介', trigger: 'blur' }
|
|
],
|
|
],
|
|
- // supervisorNum: [
|
|
|
|
- // { required: true, message: '请输入导师人数', trigger: 'blur' },
|
|
|
|
- // ],
|
|
|
|
- // studentNum: [
|
|
|
|
- // { required: true, message: '请输入学生人数', trigger: 'blur' }
|
|
|
|
- // ]
|
|
|
|
});
|
|
});
|
|
|
|
|
|
-
|
|
|
|
-
|
|
|
|
// 将 userInfo 定义放入 setup 中
|
|
// 将 userInfo 定义放入 setup 中
|
|
const userInfo = ref({} as DeptVO);
|
|
const userInfo = ref({} as DeptVO);
|
|
const fetchUserInfo = async () => {
|
|
const fetchUserInfo = async () => {
|
|
const users = await getUserDept();
|
|
const users = await getUserDept();
|
|
- console.log(users,'09');
|
|
|
|
|
|
+ console.log(users,'userInfo');
|
|
userInfo.value = {...users,
|
|
userInfo.value = {...users,
|
|
// name: users.user[0].nickname // 提取 nickname
|
|
// name: users.user[0].nickname // 提取 nickname
|
|
};
|
|
};
|
|
};
|
|
};
|
|
|
|
|
|
- // 获取导师列表
|
|
|
|
- const supervisors = ref();
|
|
|
|
- const getSupervisor= async () => {
|
|
|
|
- try {
|
|
|
|
- const response = await UserApi.getSupervisor()
|
|
|
|
- supervisors.value = response
|
|
|
|
- console.log('导师列表:', supervisors.value);
|
|
|
|
-
|
|
|
|
- } catch (error) {
|
|
|
|
- console.error('Error fetching user data:', error)
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
|
|
+ //获取所有导师
|
|
|
|
+const users = ref()
|
|
|
|
+const getSupervisor= async () => {
|
|
|
|
+ try {
|
|
|
|
+ const response = await UserApi.getSupervisor()
|
|
|
|
+ users.value = response
|
|
|
|
+ } catch (error) {
|
|
|
|
+ console.error('Error fetching user data:', error)
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
|
|
- // const formData = unref(formRef)?.formModel as DeptVO
|
|
|
|
- // console.log('提交的数据:', formData);
|
|
|
|
|
|
+//传supervisorId给form.leaderUserId
|
|
|
|
+const handleSupervisorChange = (values) => {
|
|
|
|
+ form.leaderUserId = values; // values 是选择的用户ID数组
|
|
|
|
+}
|
|
|
|
|
|
- //传supervisorId给formData.supervisorId
|
|
|
|
- const handleSupervisorChange = (value: number) => {
|
|
|
|
- // const formData = unref(formRef)?.formModel as DeptVO
|
|
|
|
- console.log(form);
|
|
|
|
- const selectedSupervisors = supervisors.value.find(supervisor => supervisor.id === value);
|
|
|
|
- if (selectedSupervisors) {
|
|
|
|
- form.supervisor = selectedSupervisors;
|
|
|
|
- // form.supervisorId = selectedUser.nickname;
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
|
|
+const isEditMode = ref(false);
|
|
|
|
+
|
|
|
|
+// 切换编辑模式
|
|
|
|
+const toggleEditMode = () => {
|
|
|
|
+ if (isEditMode.value) {
|
|
|
|
+ // 在“保存”状态下执行保存操作
|
|
|
|
+ submit();
|
|
|
|
+ }
|
|
|
|
+ isEditMode.value = !isEditMode.value;
|
|
|
|
+};
|
|
|
|
|
|
// 表单提交
|
|
// 表单提交
|
|
const submit = async () => {
|
|
const submit = async () => {
|
|
@@ -266,11 +249,13 @@ export default defineComponent({
|
|
t,
|
|
t,
|
|
form,
|
|
form,
|
|
userInfo,
|
|
userInfo,
|
|
|
|
+ isEditMode,
|
|
|
|
+ toggleEditMode,
|
|
submit,
|
|
submit,
|
|
init,
|
|
init,
|
|
rules,
|
|
rules,
|
|
formRef,
|
|
formRef,
|
|
- supervisors,
|
|
|
|
|
|
+ users,
|
|
handleSupervisorChange,
|
|
handleSupervisorChange,
|
|
getSupervisor,
|
|
getSupervisor,
|
|
};
|
|
};
|