zhangwencui
10 分钟以前 e260fd0a8474fe4fe4550baaec2a643121ed778a
src/views/safeProduction/safetyTrainingAssessment/index.vue
@@ -56,7 +56,8 @@
      <el-form ref="formRef"
               :model="form"
               :rules="rules"
               label-width="120px">
               label-position="top"
               label-width="150px">
        <el-row :gutter="20">
          <el-col :span="12">
            <el-form-item label="培训日期"
@@ -85,6 +86,7 @@
                          prop="openingTime">
              <el-time-picker v-model="form.openingTime"
                              placeholder="请选择"
                              style="width: 100%"
                              value-format="HH:mm:ss"
                              format="HH:mm:ss"
                              clearable />
@@ -95,6 +97,7 @@
                          prop="endTime">
              <el-time-picker v-model="form.endTime"
                              placeholder="请选择"
                              style="width: 100%"
                              value-format="HH:mm:ss"
                              format="HH:mm:ss"
                              clearable />
@@ -178,9 +181,9 @@
      </el-form>
      <template #footer>
        <span class="dialog-footer">
          <el-button @click="dialogVisible = false">取消</el-button>
          <el-button type="primary"
                     @click="submitForm">确定</el-button>
          <el-button @click="dialogVisible = false">取消</el-button>
        </span>
      </template>
    </el-dialog>
@@ -190,8 +193,9 @@
               width="900px"
               :close-on-click-modal="false">
      <div class="knowledge-detail">
        <div class="classtitle">课程详情</div>
        <el-descriptions size="mini"
                         style="margin-left: 60px;"
                         border
                         :column="3">
          <el-descriptions-item label="课程编号:">{{ currentKnowledge.courseCode }}</el-descriptions-item>
          <el-descriptions-item label="培训内容:">{{ currentKnowledge.trainingContent }}</el-descriptions-item>
@@ -238,11 +242,14 @@
                       @click="downLoadFile(endform)">附件列表</el-button>
          </el-descriptions-item>
        </el-descriptions>
        <el-divider style="margin: 20px 0;" />
        <!-- <el-divider style="margin: 20px 0;" /> -->
        <div class="classtitle"
             style="margin-top: 40px;margin-bottom: 30px;">课程评价</div>
        <el-form ref="formRef"
                 :model="form"
                 :rules="rules"
                 label-width="130px">
                 label-position="top"
                 label-width="150px">
          <el-row :gutter="20">
            <el-col :span="12">
              <el-form-item label="评价人:"
@@ -317,10 +324,13 @@
            </el-col>
          </el-row> -->
        </el-form>
        <div class="classtitle"
             style="margin-top: 40px;">考核列表</div>
        <el-table style="margin-top: 20px;"
                  :data="endform.safeTrainingDetailsDtoList"
                  border
                  fit
                  stripe
                  highlight-current-row>
          <el-table-column prop="nickName"
                           label="姓名" />
@@ -353,8 +363,11 @@
                    v-model="fileListDialogVisible"
                    :show-upload-button="true"
                    :show-delete-button="true"
                    :is-show-pagination="true"
                    :page="filePagination"
                    :upload-method="handleUpload"
                    :delete-method="handleFileDelete"
                    @pagination="paginationSearch"
                    title="附件列表" />
  </div>
</template>
@@ -616,7 +629,7 @@
        {
          name: "结果明细",
          type: "text",
          // disabled: row => row.state !== 2,
          disabled: row => row.state == 0,
          clickFun: row => {
            viewResultDetail(row);
          },
@@ -780,9 +793,14 @@
  const currentFileRow = ref(null);
  const downLoadFile = row => {
    currentFileRow.value = row;
    safeTrainingFileListPage({ safeTrainingId: row.id }).then(res => {
    safeTrainingFileListPage({
      safeTrainingId: row.id,
      current: filePagination.value.current,
      size: filePagination.value.size,
    }).then(res => {
      if (fileListRef.value) {
        fileListRef.value.open(res.data.records);
        filePagination.value.total = res.data?.total || 0;
      }
    });
  };
@@ -834,6 +852,8 @@
              // 重新加载文件列表
              const listRes = await safeTrainingFileListPage({
                safeTrainingId: currentFileRow.value.id,
                current: filePagination.value.current,
                size: filePagination.value.size,
              });
              if (listRes.code === 200 && fileListRef.value) {
                const fileList = (listRes.data?.records || []).map(item => ({
@@ -843,6 +863,7 @@
                  ...item,
                }));
                fileListRef.value.setList(fileList);
                filePagination.value.total = listRes.data?.total || 0;
              }
              // 返回新文件信息
              resolve({
@@ -870,6 +891,31 @@
      input.click();
    });
  };
  const filePagination = ref({
    current: 1,
    size: 10,
    total: 0,
  });
  const paginationSearch = async (page, size) => {
    filePagination.value.current = page;
    filePagination.value.size = size;
    const listRes = await safeTrainingFileListPage({
      safeTrainingId: currentFileRow.value.id,
      current: filePagination.value.current,
      size: filePagination.value.size,
    });
    if (listRes.code === 200) {
      const fileList = (listRes.data?.records || []).map(item => ({
        name: item.name,
        url: item.url,
        id: item.id,
        ...item,
      }));
      fileListRef.value.setList(fileList);
      filePagination.value.total = listRes.data?.total || 0;
    }
  };
  // 删除附件
  const handleFileDelete = async row => {
    try {
@@ -880,6 +926,8 @@
        if (currentFileRow.value && fileListRef.value) {
          const listRes = await safeTrainingFileListPage({
            safeTrainingId: currentFileRow.value.id,
            current: filePagination.value.current,
            size: filePagination.value.size,
          });
          if (listRes.code === 200) {
            const fileList = (listRes.data?.records || []).map(item => ({
@@ -889,6 +937,7 @@
              ...item,
            }));
            fileListRef.value.setList(fileList);
            filePagination.value.total = listRes.data?.total || 0;
          }
        }
        return true; // 返回 true 表示删除成功,组件会更新列表
@@ -961,7 +1010,7 @@
  const pagination = obj => {
    page.value.current = obj.page;
    page.value.size = obj.limit;
    handleQuery();
    getList();
  };
  // 选择变化处理
@@ -1235,4 +1284,12 @@
  :deep(.danger-row td) {
    color: #e95a66 !important;
  }
  .classtitle {
    font-size: 16px;
    font-weight: 600;
    color: #303133;
    border-left: 4px solid #409eff;
    padding-left: 12px;
    margin-bottom: 12px;
  }
</style>