瀏覽代碼

no message

kllay 1 天之前
父節點
當前提交
89d8aa6bb8

+ 9 - 1
src/utils/service.ts

@@ -217,7 +217,15 @@ export const downloadFile = function ({ url, params, method, filename = '文件
 		// console.log(res.headers['content-type']); // 根据content-type不同来判断是否异步下载
 		// if (res.headers && res.headers['Content-type'] === 'application/json') return successMessage('导入任务已创建,请前往‘下载中心’等待下载');
 		if (res.headers['content-type'] === 'application/json') return successMessage('导入任务已创建,请前往‘下载中心’等待下载');
-		const xlsxName = window.decodeURI(res.headers['content-disposition'].split('=')[1])
+		// const xlsxName = window.decodeURI(res.headers['Content-Disposition'].split('=')[1])
+		let xlsxName='';
+		const disposition = res.headers['content-disposition'];
+		if (disposition && disposition.includes('filename=')) {
+			const match = disposition.match(/filename="?([^"]+)"?/);
+			if (match && match[1]) {
+				xlsxName = decodeURIComponent(match[1]);
+			}
+		}
 		const fileName = xlsxName || `${filename}.xlsx`
 		if (res) {
 			const blob = new Blob([res.data], { type: 'charset=utf-8' })

+ 3 - 3
src/views/system/allusers/crud.tsx

@@ -87,15 +87,15 @@ export const createCrudOptions = function ({ crudExpose }: CreateCrudOptionsProp
 					}
 				},
 				username:{
-					title:'昵称',
+					title:'账号名',
 					type:'input',
 					column: {
 						show: false,
 						minWidth: 120,
 					},
 					form: {
-						component: { placeholder: '请填写昵称' },
-						rules: [{ required: true, message: '请填写昵称' }],
+						component: { placeholder: '请填写账号名' },
+						rules: [{ required: true, message: '请填写账号名' }],
 					},
 					viewForm:{
 						component: { placeholder: '' },

+ 6 - 6
src/views/system/borrow/component/CollectEquipment/AbnormalDialog/index.vue

@@ -17,10 +17,10 @@
       </el-form-item>
       
       <el-form-item label="异常类型">
-      <el-select v-model="form.abnormalType" placeholder="请选择异常类型">
-        <el-option label="严重损坏" value="严重损坏" />
-        <el-option label="中度损坏" value="中度损坏" />
-        <el-option label="轻度损坏" value="轻度损坏" />
+      <el-select v-model="form.damage_type" placeholder="请选择异常类型">
+        <el-option label="严重损坏" :value="0" />
+        <el-option label="中度损坏" :value="1" />
+        <el-option label="轻度损坏" :value="2" />
       </el-select>
     </el-form-item>
 
@@ -84,7 +84,7 @@ watch(() => dialogVisible.value, (newVal) => {
 const fileList = ref<any[]>([]);
 
 const form = ref({
-  abnormalType:'',
+  damage_type:0,
   condition: '',
   photos: [] as Array<{
     filename: string;
@@ -128,7 +128,7 @@ const handleRemove = (file: any) => {
 
 const onCancel = () => {
   form.value = {
-    abnormalType:'',
+    damage_type:0,
     condition: '',
     photos: []
   };

+ 9 - 0
src/views/system/borrow/component/CollectEquipment/ViewAbnormalDialog/index.vue

@@ -12,6 +12,15 @@
           {{ abnormalData?.condition || '暂无异常说明' }}
         </div>
       </el-form-item>
+
+      <el-form-item label="异常类型">
+      <el-select v-model="abnormalData.damage_type" placeholder="请选择异常类型">
+        <el-option label="严重损坏" :value="0" />
+        <el-option label="中度损坏" :value="1" />
+        <el-option label="轻度损坏" :value="2" />
+      </el-select>
+    </el-form-item>
+
       <el-form-item label="照片" v-if="abnormalData.photos.length">
         <el-image
           v-for="(photo, index) in abnormalData.photos"

+ 5 - 0
src/views/system/borrow/component/CollectEquipment/index.vue

@@ -484,6 +484,7 @@ interface FormData {
 }
 
 interface AbnormalData {
+  damage_type:number;
   condition: string;
   photos: Array<{
     filename: string;
@@ -552,6 +553,7 @@ const currentAbnormalIndex = ref(-1);
 // 添加查看异常相关的状态
 const showViewAbnormalDialog = ref(false);
 const currentAbnormalData = ref<AbnormalData>({
+  damage_type:0,
   condition: '',
   photos: []
 });
@@ -623,11 +625,13 @@ const handleViewAbnormal = (index: number) => {
   if (device) {
     if(device.problem_records?.length){
       currentAbnormalData.value = {
+        damage_type:device.problem_records?.[0].damage_type ||'',
         condition: device.problem_records?.[0].device_condition_after ||'',
         photos: device.problem_records?.[0].returned_images.map((item:any)=>item.image_url) ||[]
       };
     }else{
       currentAbnormalData.value = {
+        damage_type: device.damage_type ||'',
         condition: device.condition ||'',
         photos: device.photos ||[]
       };
@@ -1092,6 +1096,7 @@ function onCancel() {
     showViewAbnormalDialog.value = false;
     // 重置当前异常数据
     currentAbnormalData.value = {
+        damage_type: 0,
         condition: '',
         photos: []
     };

+ 2 - 2
src/views/system/borrow/crud.tsx

@@ -233,13 +233,13 @@ export const createCrudOptions = function ({ crudExpose }: CreateCrudOptionsProp
 						component: { placeholder: '' },
 					}
 				},
-				problem_records: {
+				abnormal_status: {
 					title: '异常记录',
 					search:{
 						show:true,		
 					},
 					column: {
-						show:false,
+						show:true,
 						minWidth: 100,
 					},  form:{
 						show:false,

+ 9 - 0
src/views/system/device/api.ts

@@ -74,6 +74,15 @@ export function getDeviceCategoryList() {
 }
 
 
+// export function getDownloadTemplate() {
+// 	return request({
+// 		url: '/api/system/device/download_template/',
+// 		method: 'get',
+// 		responseType: 'blob'
+// 	});
+// }
+
+
 export function uploadFile(formData: FormData) {
 	const token = Cookies.get('token');
 	return request({

+ 14 - 2
src/views/system/device/index.vue

@@ -3,7 +3,7 @@
 		<fs-crud ref="crudRef" v-bind="crudBinding"> 
 			<template #actionbar-right>
 				<el-button type="primary" @click="handleBatchImport">批量导入</el-button>
-				<el-button type="primary" @click="handleExports" >导出</el-button>
+				<el-button type="primary" @click="handleExports" >批量导出</el-button>
 				<el-button type="primary"  @click="handleDownloadTemplate">下载模板</el-button>
 				<el-button type="danger" @click="handleBatchDelete" >批量删除</el-button>
 			</template>
@@ -19,8 +19,13 @@
 import { onMounted } from 'vue';
 import { useFs} from '@fast-crud/fast-crud';
 import { createCrudOptions } from './crud';
+import * as api from './api';
 // import { GetPermission } from './api';
 // import { handleColumnPermission } from '/@/utils/columnPermission';
+import { ElMessage } from 'element-plus';
+import axios from 'axios'
+import Cookies from 'js-cookie';
+import { downloadFile } from '/@/utils/service';
 
 const { crudBinding, crudRef, crudExpose, crudOptions, resetCrudOptions } = useFs({ createCrudOptions });
 
@@ -31,10 +36,17 @@ const handleExports = () => {
 
 }
 
-const handleDownloadTemplate = () => {
+
+const handleDownloadTemplate =async () =>{
+	downloadFile({
+		url: '/api/system/device/download_template/',
+		method: 'get',
+		filename: '设备模板'
+		})
 
 }
 
+
 function handleBatchDelete(){
 
 }

+ 5 - 5
src/views/system/messageCenter/crud.tsx

@@ -77,15 +77,15 @@ export default function ({ crudExpose, context }: CreateCrudOptionsProps): Creat
 			},
 			rowHandle: {
 				fixed: 'right',
-				width: 150,
+				width: 200,
 				buttons: {
 					edit: {
 						show: false,
 					},
 					view: {
 						text: '查看',
-						type: 'text',
-						iconRight: 'View',
+						type: 'primary',
+						// iconRight: 'View',
 						show: auth('messageCenter:Search'),
 						click({ index, row }) {
 							crudExpose.openView({ index, row });
@@ -96,8 +96,8 @@ export default function ({ crudExpose, context }: CreateCrudOptionsProps): Creat
 						},
 					},
 					remove: {
-						iconRight: 'Delete',
-						type: 'text',
+						// iconRight: 'Delete',
+						type: 'danger',
 						show: auth('messageCenter:Delete'),
 					},
 				},

+ 3 - 3
src/views/system/studentInfo/crud.tsx

@@ -87,15 +87,15 @@ export const createCrudOptions = function ({ crudExpose }: CreateCrudOptionsProp
 					}
 				},
 				username:{
-					title:'昵称',
+					title:'账号名',
 					type:'input',
 					column: {
 						show: false,
 						minWidth: 120,
 					},
 					form: {
-						component: { placeholder: '请填写昵称' },
-						rules: [{ required: true, message: '请填写昵称' }],
+						component: { placeholder: '请填写账号名' },
+						rules: [{ required: true, message: '请填写账号名' }],
 					},
 					viewForm:{
 						component: { placeholder: '' },

+ 6 - 6
src/views/system/teacherInfor/crud.tsx

@@ -64,26 +64,26 @@ export const createCrudOptions = function ({ crudExpose }: CreateCrudOptionsProp
 					},
 				},
 				user_code:{
-					title:'号',
+					title:'号',
 					type:'input',
 					column: {
 						minWidth: 120,
 					},
 					form: {
-						component: { placeholder: '请填写号' },
-						rules: [{ required: true, message: '请填写号' }],
+						component: { placeholder: '请填写号' },
+						rules: [{ required: true, message: '请填写号' }],
 					},
 				},
 				username:{
-					title:'昵称',
+					title:'账号名',
 					type:'input',
 					column: {
 						show: false,
 						minWidth: 120,
 					},
 					form: {
-						component: { placeholder: '请填写昵称' },
-						rules: [{ required: true, message: '请填写昵称' }],
+						component: { placeholder: '请填写账号名' },
+						rules: [{ required: true, message: '请填写账号名' }],
 					},
 					viewForm:{
 						component: { placeholder: '' },