瀏覽代碼

no message

kllay 4 小時之前
父節點
當前提交
26104b05e7

+ 10 - 1
src/views/system/borrow/crud.tsx

@@ -1,5 +1,5 @@
 import * as api from './api';
-import { UserPageQuery, AddReq, DelReq, EditReq, CreateCrudOptionsProps, CreateCrudOptionsRet ,useCompute} from '@fast-crud/fast-crud';
+import { UserPageQuery, AddReq, DelReq, EditReq, CreateCrudOptionsProps, CreateCrudOptionsRet,dict ,useCompute} from '@fast-crud/fast-crud';
 import dayjs from 'dayjs';
 
 const { compute } = useCompute();
@@ -235,9 +235,18 @@ export const createCrudOptions = function ({ crudExpose }: CreateCrudOptionsProp
 				},
 				abnormal_status: {
 					title: '异常记录',
+					type: 'dict-select',
 					search:{
 						show:true,		
 					},
+					dict: dict({
+						data: [
+							{ label: '无异常', value: '无异常' },
+							{ label: '有损坏', value: '有损坏' },
+							{ label: '有逾期', value: '有逾期' },
+							{ label: '有损坏和逾期', value: '有损坏和逾期' },
+						],
+					}),
 					column: {
 						show:true,
 						minWidth: 100,

+ 7 - 1
src/views/system/borrow/workflow/WorkflowDialog/api.ts

@@ -58,7 +58,13 @@ export function GetDeviceClassList() {
 	});
 }
 
-
+//获取学院领导信息
+export function GetCollegeLeadershipList() {
+	return request({
+		url: "/api/system/app_user/?user_type=3",
+		method: 'get',
+	});
+}
 
 /* 获取详情 */
 

+ 39 - 1
src/views/system/borrow/workflow/WorkflowDialog/index.vue

@@ -61,6 +61,7 @@
 							<el-checkbox label="非本院师生" value="external"  />
 						</el-checkbox-group>
 					</el-form-item>
+					
 				</el-col>
 				<el-col :span="8">
 					<el-form-item label="设备标签" prop="condition.equipment">
@@ -126,6 +127,27 @@
 										<el-option label="学院领导" value="学院领导" />
 									</el-select>
 								</el-form-item>
+								<el-form-item
+									v-if="role.name === '学院领导'"
+									:label="'领导姓名'"
+									:label-position="'left'"
+									label-width="100px"
+									:prop="`steps.${idx}.roles.${ridx}.leaderId`"
+									:rules="[{ required: true, message: '请选择领导姓名', trigger: 'change' }]"
+									>
+										<el-select
+											v-model="role.leaderId"
+											placeholder="请选择领导姓名"
+											style="width: 300px"
+										>
+											<el-option
+											v-for="user in leaderOptions"
+											:key="user.id"
+											:label="user.name"
+											:value="user.id"
+											/>
+										</el-select>
+									</el-form-item>
 								<el-form-item
 									:label="'通过条件'"
 									:label-position="'left'"
@@ -190,6 +212,7 @@ import * as api from '../api';
 import * as firstapi from './api';
 
 
+
 const props = defineProps<{
 	visible: boolean;
 	editData?: any;
@@ -207,6 +230,18 @@ watch(visible, (v) => emit('update:visible', v));
 
 
 
+const leaderOptions =reactive([]);
+firstapi.GetCollegeLeadershipList()
+.then(res=>{
+	const deviceLeaderData = res.data; 
+	leaderOptions.splice(0, leaderOptions.length, ...deviceLeaderData);
+})
+.catch(error => {
+		// eslint-disable-next-line no-console
+		console.error("请求失败:", error);
+});
+
+
 
 const resdevicelist=reactive([]);
 firstapi.GetDeviceClassList()
@@ -225,6 +260,7 @@ firstapi.GetDeviceClassList()
 const defaultRole = () => ({
 	name: '',
 	passType: '',
+	leaderId: null,
 });
 const defaultStep = () => ({
 	roles: [defaultRole()],
@@ -309,6 +345,7 @@ watch(
 					roles: [{
 						name: step.step_name || '',
 						passType: String(step.step_type ?? '1'),
+						leaderId:step.leaderId||null,
 					}],
 				}));
 			} else {
@@ -420,6 +457,7 @@ async function onSave() {
 
 		const roleNames = step.roles.map(role => role.name).filter(Boolean);
 		const passTypes = step.roles.map(role => role.passType).filter(Boolean);
+		const leaderIds = step.roles.map(role => role.leaderId).filter(Boolean);
 
 		const stepType = passTypes[0] || '1';
 
@@ -431,7 +469,7 @@ async function onSave() {
 			step_order: stepOrder,
 			step_type: stepType,
 			description: `由${roleNames.join(',')}进行审批`,
-			approvers: [1],  // 可选:你可以根据需要填入具体 ID
+			approvers: leaderIds.length > 0 ? leaderIds : [1],  // 可选:你可以根据需要填入具体 ID
 			approver_roles: approverRoles,
 			approver_depts: [],
 			approval_conditions: {