瀏覽代碼

fix(upload): fix file upload key loss #120

vben 4 年之前
父節點
當前提交
fb5395b540
共有 1 個文件被更改,包括 17 次插入20 次删除
  1. 17 20
      src/components/Upload/src/FileList.tsx

+ 17 - 20
src/components/Upload/src/FileList.tsx

@@ -1,4 +1,4 @@
-import { defineComponent } from 'vue';
+import { defineComponent, CSSProperties } from 'vue';
 import { fileListProps } from './props';
 import { isFunction } from '/@/utils/is';
 import './FileList.less';
@@ -16,11 +16,13 @@ export default defineComponent({
           <colgroup>
             {columnList.map((item) => {
               const { width = 0, dataIndex } = item;
-              return width ? (
-                <col style={'width:' + width + 'px;min-width:' + width + 'px;'} key={dataIndex} />
-              ) : (
-                <col />
-              );
+
+              const style: CSSProperties = {
+                width: `${width}px`,
+                minWidth: `${width}px`,
+              };
+
+              return <col style={width ? style : {}} key={dataIndex} />;
             })}
           </colgroup>
           <thead>
@@ -38,22 +40,17 @@ export default defineComponent({
           <tbody>
             {dataSource.map((record = {}) => {
               return (
-                <tr class="file-table-tr">
+                <tr class="file-table-tr" key={record.uuid}>
                   {columnList.map((item) => {
                     const { dataIndex = '', customRender, align = 'center' } = item;
-                    if (customRender && isFunction(customRender)) {
-                      return (
-                        <td class={['file-table-td', align]} key={dataIndex}>
-                          {customRender({ text: record[dataIndex], record })}
-                        </td>
-                      );
-                    } else {
-                      return (
-                        <td class={['file-table-td', align]} key={dataIndex}>
-                          {record[dataIndex]}
-                        </td>
-                      );
-                    }
+                    const render = customRender && isFunction(customRender);
+                    return (
+                      <td class={['file-table-td', align]} key={dataIndex}>
+                        {render
+                          ? customRender?.({ text: record[dataIndex], record })
+                          : record[dataIndex]}
+                      </td>
+                    );
                   })}
                 </tr>
               );