Explorar el Código

fix: 修改参数信息

xiaweibo hace 1 mes
padre
commit
1f0fd69f73

+ 84 - 4
src/views/production-safety/safety-culture/safetyCultureActivityManagement/components/safetyCultureActivityManagementDetail.vue

@@ -53,7 +53,50 @@
           />
         </el-select>
       </template>
+      <template #specificDeptName>
+        <el-input v-model="ruleFormData.specificDeptName" placeholder="暂无内容" :disabled="isViewMode" />
+      </template>
+      <template #specificPersonName>
+        <el-input v-model="ruleFormData.specificPersonName" placeholder="暂无内容" :disabled="isViewMode" />
+      </template>
+      <template #startTime>
+        <el-date-picker
+          v-model="ruleFormData.startTime"
+          type="date"
+          value-format="yyyy-MM-dd"
+          placeholder="暂无内容"
+          :disabled="isViewMode"
+        />
+      </template>
+      <template #endTime>
+        <el-date-picker
+          v-model="ruleFormData.endTime"
+          type="date"
+          value-format="yyyy-MM-dd"
+          placeholder="暂无内容"
+          :disabled="isViewMode"
+        />
+      </template>
+      <template #attachmentUrl>
+        <div class="file-list" v-if="ruleFormData.attachmentUrl && ruleFormData.attachmentUrl.length != 0">
+          <div class="file-item" v-for="file in ruleFormData.attachmentUrl" :key="file.fileId">
+            <span class="file-item--name">{{ file.fileName }}</span>
+            <div class="file-item--footer">
+              <el-button link type="primary" @click="previewOnline(file.fileUrl, file.fileType)"
+                >预览</el-button
+              >
+              <el-button link type="primary" @click.stop="downloadFile(file.fileUrl, file.fileName)"
+                >下载</el-button
+              >
+            </div>
+          </div>
+        </div>
+        <div v-else>
+          暂无附件
+        </div>
+      </template>
     </BasicForm>
+    <PreviewOnline ref="previewOnlineRef" />
   </main>
   <footer class="safety-platform-container__footer">
     <el-button @click="router.back()">返回</el-button>
@@ -82,9 +125,12 @@
   import { queryAvailableUserList } from '@/api/system/person-group';
   import type { addSafetyCultureFilePageQuery } from '@/api/safety-culture';
   import type { DeptTree } from '@/types/dept/type';
+  import PreviewOnline from '@/views/disaster/components/PreviewOnline.vue';
+  import { downloadFile } from '@/views/disaster/utils';
 
   const router = useRouter();
   const route = useRoute();
+  const previewOnlineRef = ref<InstanceType<typeof PreviewOnline>>();
 
   const operate = computed(() => (route.query.operate as string) || 'safety-culture-material-create');
   const currentId = computed(() => Number(route.query.id));
@@ -99,15 +145,38 @@
     ACADEMY_FILE_FORM_RULES,
   );
 
-  const viewFormConfig = ref(
-    ACADEMY_FILE_FORM_CONFIG.map((item) => ({
+  const viewFormConfig = ref([
+    // 原有的表单配置
+    ...ACADEMY_FILE_FORM_CONFIG.map((item) => ({
       ...item,
       componentProps: {
         ...item.componentProps,
         disabled: true,
       },
     })),
-  );
+    {
+      prop: 'specificDeptName',
+      label: '具体负责部门:',
+      slot: 'specificDeptName'
+    },
+    {
+      prop: 'specificPersonName',
+      label: '具体负责人:',
+      slot: 'specificPersonName'
+    },{
+      prop: 'startTime',
+      label: '计划开始日期:',
+      slot: 'startTime'
+    },{
+      prop: 'endTime',
+      label: '计划结束时间:',
+      slot: 'endTime'
+    },{
+      prop: 'attachmentUrl',
+      label: '附件:',
+      slot: 'attachmentUrl'
+    }
+  ]);
 
   const computedFormConfig = computed(() => {
     if (isViewMode.value) {
@@ -215,8 +284,13 @@
         ruleFormData.categoryName = res.categoryName != null ? String(res.categoryName) : '';
         ruleFormData.responsibleDeptId = res.responsibleDeptId != null ? Number(res.responsibleDeptId) : undefined;
         ruleFormData.responsiblePersonId =
-          res.responsiblePersonId != null ? Number(res.responsiblePersonId) : undefined;
+        res.responsiblePersonId != null ? Number(res.responsiblePersonId) : undefined;
         ruleFormData.cooperateDeptIds = normalizeToNumberArray(res.cooperateDeptIds);
+        ruleFormData.specificDeptName = res.specificDeptName || '';
+        ruleFormData.specificPersonName = res.specificPersonName || '';
+        ruleFormData.startTime = res.startTime || undefined;
+        ruleFormData.endTime = res.endTime || undefined;
+        ruleFormData.attachmentUrl = JSON.parse(res.attachmentUrl || '[]');
       }
       cloneRuleFormData();
     } catch (e) {
@@ -250,6 +324,12 @@
     }
   };
 
+  const previewOnline = (url: string | undefined, type) => {
+    if (url) {
+      previewOnlineRef.value?.open(url, type);
+    }
+  };
+
   onMounted(() => {
     cloneRuleFormData();
     loadDeptTreeData();

+ 6 - 0
src/views/production-safety/safety-culture/safetyCultureActivityManagement/configs/form.ts

@@ -1,4 +1,5 @@
 import { FormConfig } from '@/types/basic-form';
+import { any } from 'vue-types';
 
 export const ACADEMY_FILE_FORM_CONFIG: FormConfig[] = [
   {
@@ -46,6 +47,11 @@ export const ACADEMY_FILE_FORM_DATA = {
   responsibleDeptId: undefined as number | undefined,
   responsiblePersonId: undefined as number | undefined,
   cooperateDeptIds: [] as number[],
+  specificDeptName: '',
+  specificPersonName: '',
+  startTime: undefined as string | undefined,
+  endTime: undefined as string | undefined,
+  attachmentUrl: any,
 };
 
 export const ACADEMY_FILE_FORM_RULES = {

+ 1 - 1
src/views/production-safety/safety-culture/safetyCultureActivityManagementExecutor/components/safetyCultureActivityManagementDetail.vue

@@ -57,7 +57,7 @@
         <UploadFiles
           v-if="isFeedbackMode"
           label="上传文件"
-          :maxCount="1"
+          :maxCount="10"
           :file-list="ruleFormData.fileUrlList"
           :allow-all-file-types="true"
           @uploadSuccess="(list: FileItem[]) => handleUploadSuccess(list)"