From 6ebc87f9b97fc161e59948732bfff0c763580aa6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B4=A4=E5=BF=83?= <3277200+sentsim@users.noreply.github.com> Date: Tue, 20 Jun 2023 10:31:58 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E4=BC=98=E5=8C=96=20task=20=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=E6=8E=92=E7=89=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gulpfile.js | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/gulpfile.js b/gulpfile.js index f663678b..0db2da9e 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -17,11 +17,11 @@ const yargs = require('yargs'); const config = { // 注释 comment: [ - '/** v<%= pkg.version %> | <%= pkg.license %> Licensed */<%= js %>' - ,{pkg: pkg, js: ';'} - ] + '/** v<%= pkg.version %> | <%= pkg.license %> Licensed */<%= js %>', + {pkg: pkg, js: ';'} + ], // 模块 - ,modules: 'lay,laytpl,laypage,laydate,jquery,layer,util,dropdown,slider,colorpicker,element,upload,form,table,treeTable,tree,transfer,carousel,rate,flow,code' + modules: 'lay,laytpl,laypage,laydate,jquery,layer,util,dropdown,slider,colorpicker,element,upload,form,table,treeTable,tree,transfer,carousel,rate,flow,code' }; // 获取参数 @@ -38,8 +38,8 @@ const dir = { // 输出目录 const dest = ({ - dist: './dist' - ,rls: dir.rls + '/layui' + dist: './dist', + rls: dir.rls + '/layui' }[argv.dest || 'dist'] || argv.dest) + (argv.vs ? '/'+ pkg.version : ''); // js @@ -150,21 +150,21 @@ exports.help = () => { let usage = '\nUsage: gulp [options] tasks'; let parser = yargs.usage(usage, { dest: { - type: 'string' - ,desc: '定义输出目录,可选项:dist(默认)、rls、任意路径' - } - ,vs: { - type: 'boolean' - ,desc: '生成一个带版本号的文件夹' + type: 'string', + desc: '定义输出目录,可选项:dist(默认)、rls、任意路径' + }, + vs: { + type: 'boolean', + desc: '生成一个带版本号的文件夹' } }); parser.showHelp(console.log); console.log([ - 'Tasks:' - ,' default 默认任务' - ,' rls 发行任务' - ,' cp 将 dist 目录复制一份到参数 --dest 指向的目录' + 'Tasks:', + ' default 默认任务', + ' rls 发行任务', + ' cp 将 dist 目录复制一份到参数 --dest 指向的目录' ].join('\n'), '\n\nExamples:\n gulp cp --dest ./v --vs', '\n'); return gulp.src('./'); }; From 582f55089ecc0e3737118fb5c09e6d553cd06f98 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B4=A4=E5=BF=83?= <3277200+sentsim@users.noreply.github.com> Date: Tue, 20 Jun 2023 10:34:36 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E6=9B=B4=E6=96=B0=20dependencies=20?= =?UTF-8?q?=E4=B8=AD=E9=83=A8=E5=88=86=E4=BE=9D=E8=B5=96=E5=8C=85=E7=89=88?= =?UTF-8?q?=E6=9C=AC=E5=8F=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index eadb82d4..16865f8a 100644 --- a/package.json +++ b/package.json @@ -15,12 +15,12 @@ "gulp-uglify": "^3.0.2", "gulp-clean-css": "^4.3.0", "gulp-concat": "^2.6.1", - "gulp-replace": "^1.1.3", + "gulp-replace": "^1.1.4", "gulp-rename": "^2.0.0", "gulp-header": "^2.0.9", "gulp-footer": "^2.1.0", "del": "^2.2.2", - "minimist": "^1.2.5" + "minimist": "^1.2.8" }, "bugs": { "url": "https://gitee.com/layui/layui/issues" From fbb83b52fd7d98766ef651ab44a1bb57ca6fcb53 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B4=A4=E5=BF=83?= <3277200+sentsim@users.noreply.github.com> Date: Tue, 20 Jun 2023 10:35:12 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E6=9B=B4=E6=96=B0=20upload=20=E6=B5=8B?= =?UTF-8?q?=E8=AF=95=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- examples/upload.html | 182 +++++++++++++++++++++---------------------- 1 file changed, 91 insertions(+), 91 deletions(-) diff --git a/examples/upload.html b/examples/upload.html index 3d8fd50c..8f2fe6bf 100644 --- a/examples/upload.html +++ b/examples/upload.html @@ -97,23 +97,23 @@ layui.use(['upload', 'element'], function(){ var element = layui.element; var uploadInst = upload.render({ - elem: '#test1' - ,url: 'https://httpbin.org/post' - //,size: 2000 //限制文件大小,单位 KB - //,accept: 'file' - ,method: 'get' - ,fileAccept: 'image/*' - ,exts: 'jpg|png|gif|bmp|jpeg|pdf' - ,data: { //额外参数 - a: 1 - ,b: function(){ + elem: '#test1', + url: 'https://httpbin.org/post', + // size: 2000, //限制文件大小,单位 KB + // accept: 'file', + method: 'get', + fileAccept: 'image/*', + exts: 'jpg|png|gif|bmp|jpeg|pdf', + data: { // 额外参数 + a: 1, + b: function(){ return 2 } - } - ,choose: function(obj){ + }, + choose: function(obj){ console.log('choose', obj); - } - ,before: function(obj){ + }, + before: function(obj){ //预读本地文件示例,不支持ie8 obj.preview(function(index, file, result){ $('#demo1').attr('src', result); //图片链接(base64) @@ -122,8 +122,8 @@ layui.use(['upload', 'element'], function(){ return; layer.msg('不允许上传') return false; - } - ,done: function(res, index){ + }, + done: function(res, index){ //如果上传失败 if(res.code > 0){ @@ -131,8 +131,8 @@ layui.use(['upload', 'element'], function(){ } //上传成功 console.log(res, index); - } - ,error: function(index, upload){ + }, + error: function(index, upload){ this.item.html('重选上传'); //演示失败状态,并实现重传 @@ -143,43 +143,43 @@ layui.use(['upload', 'element'], function(){ }); element.progress('demo', '0%'); - } - ,progress: function(n, elem, res, index){ + }, + progress: function(n, elem, res, index){ console.log(n + '%', elem, res, index); //获取进度百分比 element.progress('demo', n + '%'); //可配合 layui 进度条元素使用 } }); - //重置上述 upload 实例 + // 重置上述 upload 实例 uploadInst.reload({ - name:'avatar' - ,accept: 'images' //只允许上传图片 - ,acceptMime: 'image/*' //只筛选图片 + name:'avatar', + accept: 'images', // 只允许上传图片 + acceptMime: 'image/*', // 只筛选图片 //,size: 2 }); // 演示多图片上传 upload.render({ - elem: '#test2' - ,url: 'https://httpbin.org/post' - ,multiple: true // 多文件 - ,unified: true // 一起上传 --- 2.8.8+ - ,accept: 'images' - ,number: 3 //同时上传的数量 - ,size: 1024 - ,before: function(obj){ - //预读本地文件示例,不支持ie8 + elem: '#test2', + url: 'https://httpbin.org/post', + multiple: true, // 多文件 + unified: true, // 一起上传 --- 2.8.8+ + accept: 'images', + number: 3, // 同时上传的数量 + size: 1024, + before: function(obj){ + // 预读本地文件示例,不支持ie8 obj.preview(function(index, file, result){ $('#demo2').append(''+ file.name +'') }); // this.files = obj.pushFile(); - } - ,done: function(res, index){ + }, + done: function(res, index){ // 上传完毕 console.log(res, index) - } - ,allDone: function(obj){ + }, + allDone: function(obj){ console.log(obj) } }); @@ -187,16 +187,16 @@ layui.use(['upload', 'element'], function(){ // 演示多文件列表 --- 本示例仅演示未开启 unified 属性的情况 var demoListView = $('#demoList'); var uploadListIns = upload.render({ - elem: '#testList' - ,url: 'https://httpbin.org/post' - ,accept: 'file' - ,multiple: true - ,number: 3 - ,auto: false - ,bindAction: '#testListAction' - ,size: 30 - ,choose: function(obj){ - var files = this.files = obj.pushFile(); //将每次选择的文件追加到文件队列 + elem: '#testList', + url: 'https://httpbin.org/post', + accept: 'file', + multiple: true, + number: 3, + auto: false, + bindAction: '#testListAction', + size: 30, + choose: function(obj){ + var files = this.files = obj.pushFile(); // 将每次选择的文件追加到文件队列 //读取本地文件 obj.preview(function(index, file, result){ var tr = $(['' @@ -227,8 +227,8 @@ layui.use(['upload', 'element'], function(){ element.render('progress'); }); - } - ,done: function(res, index, upload){ + }, + done: function(res, index, upload){ //if(res.code == 0){ //上传成功 var tr = demoListView.find('tr#upload-'+ index) ,tds = tr.children(); @@ -237,16 +237,16 @@ layui.use(['upload', 'element'], function(){ return; //} this.error(index, upload); - } - ,allDone: function(obj){ + }, + allDone: function(obj){ console.log(obj) - } - ,error: function(index, upload){ + }, + error: function(index, upload){ var tr = demoListView.find('tr#upload-'+ index) ,tds = tr.children(); tds.eq(3).find('.demo-reload').removeClass('layui-hide'); //显示重传 - } - ,progress: function(n, elem, e, index){ + }, + progress: function(n, elem, e, index){ console.log(n); console.log(index); element.progress('progress-'+ index, n + '%'); //进度条 @@ -255,20 +255,20 @@ layui.use(['upload', 'element'], function(){ upload.render({ - elem: '.test333' - ,url: 'a' - ,accept: 'file' - ,before: function(obj){ + elem: '.test333', + url: 'a', + accept: 'file', + before: function(obj){ console.log(this.item); - } - ,done: function(res){ + }, + done: function(res){ console.log(res) } }); upload.render({ - elem: '.testm' - ,done: function(res, index, upload){ + elem: '.testm', + done: function(res, index, upload){ //获取当前触发上传的元素,一般用于 elem 绑定 class 的情况,注意:此乃 layui 2.1.0 新增 var item = this.item; } @@ -276,28 +276,28 @@ layui.use(['upload', 'element'], function(){ /* upload.render({ - elem: '#test33' - ,url: '' - ,accept: 'file' - ,done: function(res){ + elem: '#test33', + url: '', + accept: 'file', + done: function(res){ console.log(res) } });*/ upload.render({ - elem: '#test4' - ,url: '' - ,accept: 'video' - ,done: function(res){ + elem: '#test4', + url: '', + accept: 'video', + done: function(res){ console.log(res) } }); upload.render({ - elem: '#test5' - ,url: '' - ,accept: 'audio' - ,done: function(res){ + elem: '#test5', + url: '', + accept: 'audio', + done: function(res){ console.log(res) } }); @@ -305,39 +305,39 @@ layui.use(['upload', 'element'], function(){ //手动上传 upload.render({ - elem: '#test6' - ,url: '' - ,auto: false - //,multiple: true - ,bindAction: '#test7' - ,choose: function(obj){ + elem: '#test6', + url: '', + auto: false, + // multiple: true, + bindAction: '#test7', + choose: function(obj){ var that = this; obj.preview(function(index, file){ that.elem.after(''+ file.name +''); console.log(file.name); //obj.resetFile(index, file, '123.jpg'); }); - } - ,before: function(){ + }, + before: function(){ console.log(345); - } - ,done: function(res){ + }, + done: function(res){ console.log(res); } }); upload.render({ - elem: '#test8' - ,url: 'https://httpbin.org/post' - ,done: function(res){ + elem: '#test8', + url: 'https://httpbin.org/post', + done: function(res){ console.log(res); } }); upload.render({ - elem: '#test9' - ,url: '' - ,done: function(res){ + elem: '#test9', + url: '', + done: function(res){ console.log(res); } }); From 84d38544d56924dd881903fd9ff4b18f4b45a1fe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B4=A4=E5=BF=83?= <3277200+sentsim@users.noreply.github.com> Date: Tue, 20 Jun 2023 10:37:56 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=E4=BC=98=E5=8C=96=20upload=20=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=E7=BB=86=E8=8A=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/modules/upload.js | 151 ++++++++++++++++++++++-------------------- 1 file changed, 79 insertions(+), 72 deletions(-) diff --git a/src/modules/upload.js b/src/modules/upload.js index 5ac07a7d..2f588942 100644 --- a/src/modules/upload.js +++ b/src/modules/upload.js @@ -6,76 +6,83 @@ layui.define(['lay','layer'], function(exports){ "use strict"; - var $ = layui.$ - ,layer = layui.layer - ,device = layui.device() + var $ = layui.$; + var layer = layui.layer; + var device = layui.device(); - //外部接口 - ,upload = { - config: {} //全局配置项 - - //设置全局项 - ,set: function(options){ + // 外部接口 + var upload = { + config: {}, // 全局配置项 + // 设置全局项 + set: function(options){ var that = this; that.config = $.extend({}, that.config, options); return that; - } - - //事件 - ,on: function(events, callback){ + }, + // 事件 + on: function(events, callback){ return layui.onevent.call(this, MOD_NAME, events, callback); } - } + }; - //操作当前实例 - ,thisUpload = function(){ + // 操作当前实例 + var thisUpload = function(){ var that = this; return { upload: function(files){ that.upload.call(that, files); - } - ,reload: function(options){ + }, + reload: function(options){ that.reload.call(that, options); - } - ,config: that.config + }, + config: that.config } - } + }; - //字符常量 - ,MOD_NAME = 'upload', ELEM = 'layui-upload', THIS = 'layui-this', SHOW = 'layui-show', HIDE = 'layui-hide', DISABLED = 'layui-disabled' + // 字符常量 + var MOD_NAME = 'upload'; + var ELEM = 'layui-upload'; + var THIS = 'layui-this'; + var SHOW = 'layui-show'; + var HIDE = 'layui-hide'; + var DISABLED = 'layui-disabled'; - ,ELEM_FILE = 'layui-upload-file', ELEM_FORM = 'layui-upload-form', ELEM_IFRAME = 'layui-upload-iframe', ELEM_CHOOSE = 'layui-upload-choose', ELEM_DRAG = 'layui-upload-drag' + var ELEM_FILE = 'layui-upload-file'; + var ELEM_FORM = 'layui-upload-form'; + var ELEM_IFRAME = 'layui-upload-iframe'; + var ELEM_CHOOSE = 'layui-upload-choose'; + var ELEM_DRAG = 'layui-upload-drag'; - //构造器 - ,Class = function(options){ + // 构造器 + var Class = function(options){ var that = this; that.config = $.extend({}, that.config, upload.config, options); that.render(); }; - //默认配置 + // 默认配置 Class.prototype.config = { - accept: 'images' //允许上传的文件类型:images/file/video/audio - ,exts: '' //允许上传的文件后缀名 - ,auto: true //是否选完文件后自动上传 - ,bindAction: '' //手动上传触发的元素 - ,url: '' //上传地址 - ,force: '' //强制规定返回的数据格式,目前只支持是否强制 json - ,field: 'file' //文件字段名 - ,acceptMime: '' //筛选出的文件类型,默认为所有文件 - ,method: 'post' //请求上传的 http 类型 - ,data: {} //请求上传的额外参数 - ,drag: true //是否允许拖拽上传 - ,size: 0 //文件限制大小,默认不限制 - ,number: 0 //允许同时上传的文件数,默认不限制 - ,multiple: false //是否允许多文件上传,不支持ie8-9 + accept: 'images', // 允许上传的文件类型:images/file/video/audio + exts: '', // 允许上传的文件后缀名 + auto: true, // 是否选完文件后自动上传 + bindAction: '', // 手动上传触发的元素 + url: '', // 上传地址 + force: '', // 强制规定返回的数据格式,目前只支持是否强制 json + field: 'file', // 文件字段名 + acceptMime: '', // 筛选出的文件类型,默认为所有文件 + method: 'post', // 请求上传的 http 类型 + data: {}, // 请求上传的额外参数 + drag: true, // 是否允许拖拽上传 + size: 0, // 文件限制大小,默认不限制 + number: 0, // 允许同时上传的文件数,默认不限制 + multiple: false // 是否允许多文件上传,不支持ie8-9 }; - //初始渲染 + // 初始渲染 Class.prototype.render = function(options){ - var that = this - ,options = that.config; + var that = this; + var options = that.config; options.elem = $(options.elem); options.bindAction = $(options.bindAction); @@ -86,14 +93,14 @@ layui.define(['lay','layer'], function(exports){ //追加文件域 Class.prototype.file = function(){ - var that = this - ,options = that.config - ,elemFile = that.elemFile = $([ + var that = this; + var options = that.config; + var elemFile = that.elemFile = $([ '' - ].join('')) - ,next = options.elem.next(); + ].join('')); + var next = options.elem.next(); if(next.hasClass(ELEM_FILE) || next.hasClass(ELEM_FORM)){ next.remove(); @@ -105,8 +112,8 @@ layui.define(['lay','layer'], function(exports){ } that.isFile() ? ( - that.elemFile = options.elem - ,options.field = options.elem[0].name + that.elemFile = options.elem, + options.field = options.elem[0].name ) : options.elem.after(elemFile); //初始化ie8/9的Form域 @@ -117,10 +124,10 @@ layui.define(['lay','layer'], function(exports){ //ie8-9初始化 Class.prototype.initIE = function(){ - var that = this - ,options = that.config - ,iframe = $('') - ,elemForm = $(['
' + var that = this; + var options = that.config; + var iframe = $(''); + var elemForm = $(['' ,'
'].join('')); //插入iframe @@ -480,15 +487,15 @@ layui.define(['lay','layer'], function(exports){ delete options.elem; delete options.bindAction; - var that = this - ,options = that.config = $.extend({}, that.config, upload.config, options) - ,next = options.elem.next(); + var that = this; + var options = that.config = $.extend({}, that.config, upload.config, options); + var next = options.elem.next(); //更新文件域相关属性 next.attr({ - name: options.name - ,accept: options.acceptMime - ,multiple: options.multiple + name: options.name, + accept: options.acceptMime, + multiple: options.multiple }); }; @@ -508,9 +515,9 @@ layui.define(['lay','layer'], function(exports){ // 设置选择的文本 var setChooseText = function(files, filename){ - var elemFile = that.elemFile - ,item = options.item ? options.item : options.elem - ,value = files.length > 1 + var elemFile = that.elemFile; + var item = options.item ? options.item : options.elem; + var value = files.length > 1 ? files.length + '个文件' : ((files[0] || {}).name || (elemFile[0].value.match(/[^\/\\]+\..+/g)||[]) || ''); @@ -534,7 +541,7 @@ layui.define(['lay','layer'], function(exports){ } }; - //点击上传容器 + // 点击上传容器 options.elem.off('upload.start').on('upload.start', function(){ var othis = $(this); @@ -543,7 +550,7 @@ layui.define(['lay','layer'], function(exports){ that.elemFile[0].click(); }); - //拖拽上传 + // 拖拽上传 if(!(device.ie && device.ie < 10)){ options.elem.off('upload.over').on('upload.over', function(){ var othis = $(this) @@ -561,25 +568,25 @@ layui.define(['lay','layer'], function(exports){ extendAttrs.call(this); setChooseFile(files); - options.auto ? that.upload() : setChooseText(files); //是否自动触发上传 + options.auto ? that.upload() : setChooseText(files); // 是否自动触发上传 }); } - //文件选择 + // 文件选择 that.elemFile.off('upload.change').on('upload.change', function(){ var files = this.files || []; extendAttrs.call(this); setChooseFile(files); - options.auto ? that.upload() : setChooseText(files); //是否自动触发上传 + options.auto ? that.upload() : setChooseText(files); // 是否自动触发上传 }); - //手动触发上传 + // 手动触发上传 options.bindAction.off('upload.action').on('upload.action', function(){ that.upload(); }); - //防止事件重复绑定 + // 防止事件重复绑定 if(options.elem.data('haveEvents')) return; that.elemFile.on('change', function(){ @@ -610,7 +617,7 @@ layui.define(['lay','layer'], function(exports){ options.elem.data('haveEvents', true); }; - //核心入口 + // 核心入口 upload.render = function(options){ var inst = new Class(options); return thisUpload.call(inst);