wangzhibo
2026-07-28 fa9b89139f34809b7bf01ca2052fbaa3d1ea64e6
src/plugins/excel/components/import-btn.vue
@@ -14,15 +14,8 @@
            </div>
            <div class="inner">
               <cl-upload
                  drag
                  :limit-size="limitSize"
                  :accept="accept"
                  :disabled="disabled"
                  :auto-upload="false"
                  :before-upload="onUpload"
                  :size="[220, '100%']"
               />
               <cl-upload drag :limit-size="limitSize" :accept="accept" :disabled="disabled" :auto-upload="false"
                  :before-upload="onUpload" :size="[220, '100%']" />
            </div>
         </div>
      </template>
@@ -31,78 +24,37 @@
         <div v-if="list.length" class="data-table">
            <div class="head">
               <el-button type="success" @click="clear">{{ $t('重新上传') }}</el-button>
               <el-button
                  type="danger"
                  :disabled="table.selection.length == 0"
                  @click="table.del()"
               >
               <el-button type="danger" :disabled="table.selection.length == 0" @click="table.del()">
                  {{ $t('批量删除') }}
               </el-button>
            </div>
            <div class="cl-table">
               <el-table
                  border
                  :data="list"
                  max-height="600px"
                  @selection-change="table.onSelectionChange"
               <el-table border :data="list" max-height="600px" @selection-change="table.onSelectionChange"
                  @row-click="
                     row => {
                        row._edit = true;
                     }
                  "
               >
                  <el-table-column
                     type="selection"
                     width="60px"
                     align="center"
                     fixed="left"
                  />
                  ">
                  <el-table-column type="selection" width="60px" align="center" fixed="left" />
                  <el-table-column
                     :label="$t('序号')"
                     type="index"
                     width="80px"
                     align="center"
                     fixed="left"
                     :index="table.onIndex"
                  />
                  <el-table-column :label="$t('序号')" type="index" width="80px" align="center" fixed="left"
                     :index="table.onIndex" />
                  <el-table-column
                     v-for="item in table.header"
                     :key="item"
                     :prop="item"
                     :label="item"
                     min-width="160px"
                     align="center"
                  >
                  <el-table-column v-for="item in table.header" :key="item" :prop="item" :label="item"
                     min-width="160px" align="center">
                     <template #default="scope">
                        <span v-if="!scope.row._edit">{{ scope.row[item] }}</span>
                        <template v-else>
                           <el-input
                              v-model="scope.row[item]"
                              type="textarea"
                              clearable
                              :placeholder="item"
                           />
                           <el-input v-model="scope.row[item]" type="textarea" clearable :placeholder="item" />
                        </template>
                     </template>
                  </el-table-column>
                  <el-table-column
                     :label="$t('操作')"
                     width="100px"
                     align="center"
                     fixed="right"
                  >
                  <el-table-column :label="$t('操作')" width="100px" align="center" fixed="right">
                     <template #default="scope">
                        <el-button
                           text
                           bg
                           type="danger"
                           @click.stop="table.del(scope.$index)"
                        >
                        <el-button text bg type="danger" @click.stop="table.del(scope.$index)">
                           {{ $t('删除') }}
                        </el-button>
                     </template>
@@ -111,14 +63,9 @@
            </div>
            <div class="pagination">
               <el-pagination
                  v-model:current-page="pagination.page"
                  background
                  layout="total, prev, pager, next"
                  :total="upload.list.length"
                  :page-size="pagination.size"
                  @current-change="pagination.onCurrentChange"
               />
               <el-pagination v-model:current-page="pagination.page" background layout="total, prev, pager, next"
                  :total="upload.list.length" :page-size="pagination.size"
                  @current-change="pagination.onCurrentChange" />
            </div>
         </div>
      </template>
@@ -276,8 +223,8 @@
            if (props.onSubmit) {
               props.onSubmit({
                  ...upload,
                  ..._
                  ..._,
                  ...upload
               }, { done, close });
            } else {
               ElMessage.error(t('[cl-import-btn] onSubmit is required'));
@@ -378,6 +325,7 @@
      width: 100%;
      :deep(.cl-upload) {
         .cl-upload__footer,
         .cl-upload__list,
         .el-upload,
@@ -394,7 +342,7 @@
   align-items: center;
   margin-bottom: 20px;
   & > span {
   &>span {
      color: var(--el-color-warning);
   }
}