|
@@ -14,14 +14,10 @@
|
|
|
ref="formRef"
|
|
|
:model="formModel"
|
|
|
:rules="rules"
|
|
|
- label-width="100px"
|
|
|
+ label-width="120px"
|
|
|
>
|
|
|
<el-form-item label="登录名" prop="loginName">
|
|
|
- <el-input
|
|
|
- v-model="formModel.loginName"
|
|
|
- placeholder="请输入登录名"
|
|
|
- :disabled="isEdit"
|
|
|
- />
|
|
|
+ <el-input v-model="formModel.loginName" placeholder="请输入登录名" />
|
|
|
</el-form-item>
|
|
|
<el-form-item label="名称" prop="name">
|
|
|
<el-input v-model="formModel.name" placeholder="请输入名称" />
|
|
@@ -57,7 +53,11 @@
|
|
|
/>
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
- <el-form-item v-if="showSubjectCode" label="绑定科目代码">
|
|
|
+ <el-form-item
|
|
|
+ v-if="showSubjectCode"
|
|
|
+ label="绑定科目代码"
|
|
|
+ prop="subjectCodeString"
|
|
|
+ >
|
|
|
<el-input
|
|
|
v-model="formModel.subjectCodeString"
|
|
|
placeholder="请输入"
|
|
@@ -151,7 +151,7 @@
|
|
|
|
|
|
function getInitialFormState(): UserUpdateParam {
|
|
|
return {
|
|
|
- id: 0,
|
|
|
+ id: undefined,
|
|
|
loginName: '',
|
|
|
name: '',
|
|
|
empno: '',
|
|
@@ -192,22 +192,27 @@
|
|
|
}
|
|
|
};
|
|
|
|
|
|
- const rules: FormRules<keyof UserUpdateParam> = {
|
|
|
- loginName: [
|
|
|
- { required: true, message: '请输入登录名', trigger: 'change' },
|
|
|
- { max: 50, message: '登录名最多50字符', trigger: 'change' },
|
|
|
- ],
|
|
|
- name: [
|
|
|
- { required: true, message: '请输入名称', trigger: 'change' },
|
|
|
- { max: 50, message: '名称最多50字符', trigger: 'change' },
|
|
|
- ],
|
|
|
- employeeId: [{ max: 50, message: '工号最多50字符', trigger: 'change' }],
|
|
|
- password: [
|
|
|
- { required: !isEdit.value, validator: validatePass, trigger: 'change' },
|
|
|
- ],
|
|
|
- enable: [{ required: true, message: '请选择状态', trigger: 'change' }],
|
|
|
- role: [{ required: true, message: '请选择角色', trigger: 'change' }],
|
|
|
- };
|
|
|
+ const rules = computed<FormRules<keyof UserUpdateParam>>(() => {
|
|
|
+ return {
|
|
|
+ loginName: [
|
|
|
+ { required: true, message: '请输入登录名', trigger: 'change' },
|
|
|
+ { max: 50, message: '登录名最多50字符', trigger: 'change' },
|
|
|
+ ],
|
|
|
+ name: [
|
|
|
+ { required: true, message: '请输入名称', trigger: 'change' },
|
|
|
+ { max: 50, message: '名称最多50字符', trigger: 'change' },
|
|
|
+ ],
|
|
|
+ employeeId: [{ max: 50, message: '工号最多50字符', trigger: 'change' }],
|
|
|
+ password: [
|
|
|
+ { required: !isEdit.value, validator: validatePass, trigger: 'change' },
|
|
|
+ ],
|
|
|
+ subjectCodeString: [
|
|
|
+ { required: true, message: '请输入科目代码', trigger: 'change' },
|
|
|
+ ],
|
|
|
+ enable: [{ required: true, message: '请选择状态', trigger: 'change' }],
|
|
|
+ role: [{ required: true, message: '请选择角色', trigger: 'change' }],
|
|
|
+ };
|
|
|
+ });
|
|
|
|
|
|
function handleFileReady(result: {
|
|
|
file: File;
|
|
@@ -234,6 +239,12 @@
|
|
|
const valid = await formRef.value?.validate().catch(() => false);
|
|
|
if (!valid) return;
|
|
|
|
|
|
+ if (formModel.role === 'SCHOOL_VIEWER') {
|
|
|
+ if (!formModel.examIdString && !formModel.colleges) {
|
|
|
+ ElMessage.error('请输入绑定考试ID或绑定学院');
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ }
|
|
|
setLoading(true);
|
|
|
const datas = objAssign(formModel, {});
|
|
|
let res = true;
|
|
@@ -256,6 +267,7 @@
|
|
|
if (props.rowData?.id) {
|
|
|
// 编辑时,填充表单
|
|
|
objModifyAssign(formModel, props.rowData);
|
|
|
+ formModel.password = '';
|
|
|
} else {
|
|
|
// 新增时,重置为初始状态(确保密码字段为空)
|
|
|
objModifyAssign(formModel, getInitialFormState());
|