fix: upload type and demo

pull/165/head
wangxueliang 2018-07-02 16:24:19 +08:00
parent a5beecb37a
commit 1f77ee65ed
3 changed files with 36 additions and 28 deletions

View File

@ -42,7 +42,7 @@ export default {
} }
}, },
methods: { methods: {
handleRemove: (file) => { handleRemove(file) {
const index = this.fileList.indexOf(file); const index = this.fileList.indexOf(file);
const newFileList = this.fileList.slice(); const newFileList = this.fileList.slice();
newFileList.splice(index, 1); newFileList.splice(index, 1);

View File

@ -6,30 +6,37 @@ export const UploadFileStatus = PropsTypes.oneOf(['error', 'success', 'done', 'u
// [key: string]: string; // [key: string]: string;
// } // }
export const UploadFile = PropsTypes.shape({ // export const UploadFile = PropsTypes.shape({
uid: PropsTypes.oneOfType([ // uid: PropsTypes.oneOfType([
PropsTypes.string, // PropsTypes.string,
PropsTypes.number, // PropsTypes.number,
]), // ]),
size: PropsTypes.number, // size: PropsTypes.number,
name: PropsTypes.string, // name: PropsTypes.string,
filename: PropsTypes.string, // filename: PropsTypes.string,
lastModified: PropsTypes.number, // lastModified: PropsTypes.number,
lastModifiedDate: PropsTypes.any, // lastModifiedDate: PropsTypes.any,
url: PropsTypes.string, // url: PropsTypes.string,
status: UploadFileStatus, // status: UploadFileStatus,
percent: PropsTypes.number, // percent: PropsTypes.number,
thumbUrl: PropsTypes.string, // thumbUrl: PropsTypes.string,
originFileObj: PropsTypes.any, // originFileObj: PropsTypes.any,
response: PropsTypes.any, // response: PropsTypes.any,
error: PropsTypes.any, // error: PropsTypes.any,
linkProps: PropsTypes.any, // linkProps: PropsTypes.any,
type: PropsTypes.string, // type: PropsTypes.string,
}).loose // }).loose
function UploadFile ({ uid, name }) {
if (!uid && uid !== 0) return false
if (!['string', 'number'].includes(typeof uid)) return false
if (!name && typeof name !== 'string') return false
return true
}
export const UploadChangeParam = { export const UploadChangeParam = {
file: UploadFile, file: PropsTypes.custom(UploadFile),
fileList: PropsTypes.arrayOf(UploadFile), fileList: PropsTypes.arrayOf(PropsTypes.custom(UploadFile)),
event: PropsTypes.object, event: PropsTypes.object,
} }
@ -47,8 +54,8 @@ export const UploadLocale = PropsTypes.shape({
export const UploadProps = { export const UploadProps = {
type: PropsTypes.oneOf(['drag', 'select']), type: PropsTypes.oneOf(['drag', 'select']),
name: PropsTypes.string, name: PropsTypes.string,
defaultFileList: PropsTypes.arrayOf(UploadFile), defaultFileList: PropsTypes.arrayOf(PropsTypes.custom(UploadFile)),
fileList: PropsTypes.arrayOf(UploadFile), fileList: PropsTypes.arrayOf(PropsTypes.custom(UploadFile)),
action: PropsTypes.string.isRequired, action: PropsTypes.string.isRequired,
data: PropsTypes.oneOfType([PropsTypes.object, PropsTypes.func]), data: PropsTypes.oneOfType([PropsTypes.object, PropsTypes.func]),
headers: PropsTypes.object, headers: PropsTypes.object,
@ -72,7 +79,7 @@ export const UploadProps = {
} }
export const UploadState = { export const UploadState = {
fileList: PropsTypes.arrayOf(UploadFile), fileList: PropsTypes.arrayOf(PropsTypes.custom(UploadFile)),
dragState: PropsTypes.string, dragState: PropsTypes.string,
} }
@ -80,7 +87,8 @@ export const UploadListProps = {
listType: PropsTypes.oneOf(['text', 'picture', 'picture-card']), listType: PropsTypes.oneOf(['text', 'picture', 'picture-card']),
// onPreview: PropsTypes.func, // onPreview: PropsTypes.func,
// onRemove: PropsTypes.func, // onRemove: PropsTypes.func,
items: PropsTypes.arrayOf(UploadFile), // items: PropsTypes.arrayOf(UploadFile),
items: PropsTypes.arrayOf(PropsTypes.custom(UploadFile)),
// items: PropsTypes.any, // items: PropsTypes.any,
progressAttr: PropsTypes.object, progressAttr: PropsTypes.object,
prefixCls: PropsTypes.string, prefixCls: PropsTypes.string,

View File

@ -10,7 +10,7 @@ import Api from './components/api'
import './components' import './components'
import demoBox from './components/demoBox' import demoBox from './components/demoBox'
import demoContainer from './components/demoContainer' import demoContainer from './components/demoContainer'
import Test from '../components/form/demo/index' import Test from '../components/upload/demo/index'
Vue.use(VueClipboard) Vue.use(VueClipboard)
Vue.use(VueRouter) Vue.use(VueRouter)