| | |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="24"> |
| | | <el-form-item label="申请部门:" prop="approveDeptName"> |
| | | <!-- 申请部门:校验使用部门ID,便于下拉选择后立即通过校验 --> |
| | | <el-form-item label="申请部门:" prop="approveDeptId"> |
| | | <!-- <el-input v-model="form.approveDeptName" placeholder="请输入" clearable/>--> |
| | | <el-select |
| | | v-model="form.approveDeptId" |
| | |
| | | <!-- 出差地点(仅当 approveType 为 3 时显示) --> |
| | | <el-row v-if="props.approveType == 3"> |
| | | <el-col :span="24"> |
| | | <el-form-item label="出差地点:" prop="location"> |
| | | <el-form-item label="备注:" prop="location"> |
| | | <el-input |
| | | v-model="form.location" |
| | | placeholder="请输入出差地点" |
| | | placeholder="请输入备注" |
| | | clearable |
| | | /> |
| | | </el-form-item> |
| | |
| | | location: "" // 出差地点 |
| | | }, |
| | | rules: { |
| | | approveTime: [{ required: false, message: "请输入", trigger: "change" },], |
| | | approveTime: [{ required: false, message: "请输入", trigger: "change" }], |
| | | approveId: [{ required: false, message: "请输入", trigger: "blur" }], |
| | | approveUser: [{ required: false, message: "请输入", trigger: "blur" }], |
| | | approveDeptName: [{ required: true, message: "请输入", trigger: "blur" }], |
| | | // 使用部门ID做必填校验,避免名称未同步导致误报 |
| | | approveDeptId: [{ required: true, message: "请选择申请部门", trigger: "change" }], |
| | | approveReason: [{ required: true, message: "请输入", trigger: "blur" }], |
| | | checkResult: [{ required: false, message: "请输入", trigger: "blur" }], |
| | | startDate: [{ required: true, message: "请选择请假开始时间", trigger: "change" }], |
| | |
| | | userListNoPageByTenantId().then((res) => { |
| | | userList.value = res.data; |
| | | }); |
| | | getProductOptions(); |
| | | form.value = {} |
| | | approverNodes.value = [ |
| | | { id: 1, userId: null } |
| | |
| | | |
| | | // 获取当前用户信息并设置部门ID |
| | | form.value.approveDeptId = userStore.currentDeptId |
| | | |
| | | // 加载部门选项,并在加载完成后设置部门名称 |
| | | getProductOptions(); |
| | | if (operationType.value === 'edit') { |
| | | fileList.value = row.commonFileList |
| | | form.value.tempFileIds = fileList.value.map(file => file.id) |
| | |
| | | } |
| | | } |
| | | const getProductOptions = () => { |
| | | return getDept().then((res) => { |
| | | getDept().then((res) => { |
| | | productOptions.value = res.data; |
| | | // 如果已有部门ID,自动设置部门名称(用于验证) |
| | | if (form.value.approveDeptId && productOptions.value.length > 0) { |
| | | const matchedDept = productOptions.value.find(dept => |
| | | dept.deptId == form.value.approveDeptId || |
| | | String(dept.deptId) === String(form.value.approveDeptId) |
| | | ); |
| | | if (matchedDept) { |
| | | form.value.approveDeptName = matchedDept.deptName; |
| | | } |
| | | } |
| | | }); |
| | | }; |
| | | function convertIdToValue(data) { |