Browse Source

fix: 工单,知识库模块添加附件上传状态控制

master
AaronWu 5 months ago
parent
commit
dfff3c667a
  1. 2
      src/api/issue/model.d.ts
  2. 11
      src/views/client/issue/index.vue
  3. 26
      src/views/question/issue/formSchemas.tsx
  4. 18
      src/views/question/issue/index.vue
  5. 17
      src/views/question/knowledge/formSchemas.tsx
  6. 19
      src/views/question/knowledge/index.vue

2
src/api/issue/model.d.ts

@ -29,6 +29,7 @@ declare namespace API {
zentaoNos?: string; // 关联的禅道工单号
resolutionTime?: string; // 解决时间
solutionType?: string; // 解决方式
fileUploading?: boolean; // 附件上传状态
};
type CreateIssueParams = {
@ -57,6 +58,7 @@ declare namespace API {
zentaoNos?: string; // 关联的禅道工单号
resolutionTime?: string; // 解决时间
solutionType?: string; // 解决方式
fileUploading?: boolean; // 附件上传状态
};
type DeleteIssueParams = {

11
src/views/client/issue/index.vue

@ -256,8 +256,12 @@
const values = await formRef?.validate();
if (values) {
console.log('values: ', values);
//
if (values.fileUploading) {
message.warning('请等待附件上传完成');
return;
}
values.id = curRow.value.id;
if (values.files && Array.isArray(values.files) && values.files.length) {
values.files = values.files.map((e) => {
if (e.response) {
@ -271,7 +275,10 @@
...e,
};
});
values.fileIds = values.files.map((e) => e.id).join(',');
values.fileIds = values.files.filter((e) => e.id).map((e) => e.id).join(',');
}
if (values?.fileIds === ',') {
values.fileIds = '';
}
if (values?.tags && Array.isArray(values.tags) && values.tags.length) {

26
src/views/question/issue/formSchemas.tsx

@ -1,3 +1,11 @@
/*
* @Author: AaronWu 2463371514@qq.com
* @Date: 2025-04-02 13:45:06
* @LastEditors: AaronWu 2463371514@qq.com
* @LastEditTime: 2025-07-28 14:09:09
* @FilePath: /IssueSupportManage/src/views/question/issue/formSchemas.tsx
* @Description: ,`customMade`, koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/
import type { FormSchema } from '@/components/core/schema-form/';
import { TableListItem } from './columns';
import { commonUpload } from '@/api/upload';
@ -278,19 +286,34 @@ export const getEditFormSchema: (
},
rules: [{ required: true }],
},
{
field: 'fileUploading',
component: 'Input',
defaultValue: false,
label: '附件上传状态',
vShow: false,
},
{
label: '描述附件',
field: 'files',
component: 'Upload',
componentProps: {
componentProps: ({ formModel, formInstance }) => {
return {
disabled: isDetail,
customRequest: async (data) => {
// 添加附件上传状态
formInstance.setFieldsValue({
fileUploading: true,
});
console.log('data: ', data);
const formData = new FormData();
formData.append('file', data.file);
const res = await commonUpload(formData);
console.log('res: ', res);
data?.onSuccess && data?.onSuccess(res, data.file as any);
formInstance.setFieldsValue({
fileUploading: false,
});
},
beforeUpload: (file) => {
console.log('file: ', file);
@ -343,6 +366,7 @@ export const getEditFormSchema: (
// 允许上传
return true;
},
};
},
componentSlots: {
default: () => (

18
src/views/question/issue/index.vue

@ -209,6 +209,11 @@
const values = await formRef?.validate();
if (values) {
console.log('values: ', values);
//
if (values.fileUploading) {
message.warning('请等待附件上传完成');
return;
}
values.id = curRecord.value.id;
if (values.files && Array.isArray(values.files) && values.files.length) {
@ -224,10 +229,16 @@
...e,
};
});
values.fileIds = values.files.filter((e) => e.id).map((e) => e.id).join(',');
values.fileIds = values.files
.filter((e) => e.id)
.map((e) => e.id)
.join(',');
} else {
values.fileIds = '';
}
if (values?.fileIds === ',') {
values.fileIds = '';
}
if (values?.tags && Array.isArray(values.tags) && values.tags.length) {
values.tags = values.tags.join(',');
@ -436,7 +447,10 @@
...e,
};
});
values.fileIds = values.files.filter((e) => e.id).map((e) => e.id).join(',');
values.fileIds = values.files
.filter((e) => e.id)
.map((e) => e.id)
.join(',');
} else {
values.fileIds = '';
}

17
src/views/question/knowledge/formSchemas.tsx

@ -83,19 +83,33 @@ export const getEditFormSchema: (
},
rules: [{ required: true, type: 'number' }],
},
{
field: 'fileUploading',
component: 'Input',
defaultValue: false,
label: '附件上传状态',
vShow: false,
},
{
label: '附件',
field: 'files',
component: 'Upload',
componentProps: {
componentProps: ({ formModel, formInstance }) => {
return {
disabled: isDetail,
customRequest: async (data) => {
formInstance.setFieldsValue({
fileUploading: true,
});
console.log('data: ', data);
const formData = new FormData();
formData.append('file', data.file);
const res = await commonUpload(formData);
console.log('res: ', res);
data?.onSuccess && data?.onSuccess(res, data.file as any);
formInstance.setFieldsValue({
fileUploading: false,
});
},
beforeUpload: (file) => {
console.log('file: ', file);
@ -147,6 +161,7 @@ export const getEditFormSchema: (
// 允许上传
return true;
},
}
},
componentSlots: {
default: () => (

19
src/views/question/knowledge/index.vue

@ -174,6 +174,11 @@
const values = await formRef?.validate();
if (values) {
console.log('values: ', values);
//
if (values.fileUploading) {
message.warning('请等待附件上传完成');
return;
}
values.id = curRecord.value.id;
if (values.files && Array.isArray(values.files) && values.files.length) {
@ -189,11 +194,18 @@
...e,
};
});
values.fileIds = values.files.map((e) => e.id).join(',');
values.fileIds = values.files
.filter((e) => e.id)
.map((e) => e.id)
.join(',');
} else {
values.fileIds = '';
}
if (values?.fileIds === ',') {
values.fileIds = '';
}
if (values?.tags && Array.isArray(values.tags) && values.tags.length) {
const allTags = (await getDictionaryByTypeName(DictEnum.TAG_TYPE)) || [];
// values.tagsallTags
@ -292,7 +304,10 @@
...e,
};
});
values.fileIds = values.files.map((e) => e.id).join(',');
values.fileIds = values.files
.filter((e) => e.id)
.map((e) => e.id)
.join(',');
} else {
values.fileIds = '';
}

Loading…
Cancel
Save