mirror of https://gitee.com/karson/fastadmin.git
新增前台会员选择图片附件功能
parent
8ddbd81d6d
commit
b44add7ad8
|
|
@ -11,18 +11,18 @@ SET FOREIGN_KEY_CHECKS = 0;
|
|||
DROP TABLE IF EXISTS `fa_admin`;
|
||||
CREATE TABLE `fa_admin` (
|
||||
`id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'ID',
|
||||
`username` varchar(20) NOT NULL DEFAULT '' COMMENT '用户名',
|
||||
`nickname` varchar(50) NOT NULL DEFAULT '' COMMENT '昵称',
|
||||
`password` varchar(32) NOT NULL DEFAULT '' COMMENT '密码',
|
||||
`salt` varchar(30) NOT NULL DEFAULT '' COMMENT '密码盐',
|
||||
`avatar` varchar(255) NOT NULL DEFAULT '' COMMENT '头像',
|
||||
`email` varchar(100) NOT NULL DEFAULT '' COMMENT '电子邮箱',
|
||||
`username` varchar(20) DEFAULT '' COMMENT '用户名',
|
||||
`nickname` varchar(50) DEFAULT '' COMMENT '昵称',
|
||||
`password` varchar(32) DEFAULT '' COMMENT '密码',
|
||||
`salt` varchar(30) DEFAULT '' COMMENT '密码盐',
|
||||
`avatar` varchar(255) DEFAULT '' COMMENT '头像',
|
||||
`email` varchar(100) DEFAULT '' COMMENT '电子邮箱',
|
||||
`loginfailure` tinyint(1) unsigned NOT NULL DEFAULT '0' COMMENT '失败次数',
|
||||
`logintime` int(10) DEFAULT NULL COMMENT '登录时间',
|
||||
`loginip` varchar(50) DEFAULT NULL COMMENT '登录IP',
|
||||
`createtime` int(10) DEFAULT NULL COMMENT '创建时间',
|
||||
`updatetime` int(10) DEFAULT NULL COMMENT '更新时间',
|
||||
`token` varchar(59) NOT NULL DEFAULT '' COMMENT 'Session标识',
|
||||
`token` varchar(59) DEFAULT '' COMMENT 'Session标识',
|
||||
`status` varchar(30) NOT NULL DEFAULT 'normal' COMMENT '状态',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `username` (`username`) USING BTREE
|
||||
|
|
@ -42,12 +42,12 @@ DROP TABLE IF EXISTS `fa_admin_log`;
|
|||
CREATE TABLE `fa_admin_log` (
|
||||
`id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'ID',
|
||||
`admin_id` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '管理员ID',
|
||||
`username` varchar(30) NOT NULL DEFAULT '' COMMENT '管理员名字',
|
||||
`url` varchar(1500) NOT NULL DEFAULT '' COMMENT '操作页面',
|
||||
`title` varchar(100) NOT NULL DEFAULT '' COMMENT '日志标题',
|
||||
`username` varchar(30) DEFAULT '' COMMENT '管理员名字',
|
||||
`url` varchar(1500) DEFAULT '' COMMENT '操作页面',
|
||||
`title` varchar(100) DEFAULT '' COMMENT '日志标题',
|
||||
`content` text NOT NULL COMMENT '内容',
|
||||
`ip` varchar(50) NOT NULL DEFAULT '' COMMENT 'IP',
|
||||
`useragent` varchar(255) NOT NULL DEFAULT '' COMMENT 'User-Agent',
|
||||
`ip` varchar(50) DEFAULT '' COMMENT 'IP',
|
||||
`useragent` varchar(255) DEFAULT '' COMMENT 'User-Agent',
|
||||
`createtime` int(10) DEFAULT NULL COMMENT '操作时间',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `name` (`username`)
|
||||
|
|
@ -82,20 +82,20 @@ CREATE TABLE `fa_attachment` (
|
|||
`id` int(20) unsigned NOT NULL AUTO_INCREMENT COMMENT 'ID',
|
||||
`admin_id` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '管理员ID',
|
||||
`user_id` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '会员ID',
|
||||
`url` varchar(255) NOT NULL DEFAULT '' COMMENT '物理路径',
|
||||
`imagewidth` varchar(30) NOT NULL DEFAULT '' COMMENT '宽度',
|
||||
`imageheight` varchar(30) NOT NULL DEFAULT '' COMMENT '高度',
|
||||
`imagetype` varchar(30) NOT NULL DEFAULT '' COMMENT '图片类型',
|
||||
`url` varchar(255) DEFAULT '' COMMENT '物理路径',
|
||||
`imagewidth` varchar(30) DEFAULT '' COMMENT '宽度',
|
||||
`imageheight` varchar(30) DEFAULT '' COMMENT '高度',
|
||||
`imagetype` varchar(30) DEFAULT '' COMMENT '图片类型',
|
||||
`imageframes` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '图片帧数',
|
||||
`filename` varchar(100) NOT NULL DEFAULT '' COMMENT '文件名称',
|
||||
`filename` varchar(100) DEFAULT '' COMMENT '文件名称',
|
||||
`filesize` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '文件大小',
|
||||
`mimetype` varchar(100) NOT NULL DEFAULT '' COMMENT 'mime类型',
|
||||
`extparam` varchar(255) NOT NULL DEFAULT '' COMMENT '透传数据',
|
||||
`mimetype` varchar(100) DEFAULT '' COMMENT 'mime类型',
|
||||
`extparam` varchar(255) DEFAULT '' COMMENT '透传数据',
|
||||
`createtime` int(10) DEFAULT NULL COMMENT '创建日期',
|
||||
`updatetime` int(10) DEFAULT NULL COMMENT '更新时间',
|
||||
`uploadtime` int(10) DEFAULT NULL COMMENT '上传时间',
|
||||
`storage` varchar(100) NOT NULL DEFAULT 'local' COMMENT '存储位置',
|
||||
`sha1` varchar(40) NOT NULL DEFAULT '' COMMENT '文件 sha1编码',
|
||||
`sha1` varchar(40) DEFAULT '' COMMENT '文件 sha1编码',
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT='附件表';
|
||||
|
||||
|
|
@ -113,11 +113,11 @@ DROP TABLE IF EXISTS `fa_auth_group`;
|
|||
CREATE TABLE `fa_auth_group` (
|
||||
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`pid` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '父组别',
|
||||
`name` varchar(100) NOT NULL DEFAULT '' COMMENT '组名',
|
||||
`name` varchar(100) DEFAULT '' COMMENT '组名',
|
||||
`rules` text NOT NULL COMMENT '规则ID',
|
||||
`createtime` int(10) DEFAULT NULL COMMENT '创建时间',
|
||||
`updatetime` int(10) DEFAULT NULL COMMENT '更新时间',
|
||||
`status` varchar(30) NOT NULL DEFAULT '' COMMENT '状态',
|
||||
`status` varchar(30) DEFAULT '' COMMENT '状态',
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT='分组表';
|
||||
|
||||
|
|
@ -159,16 +159,16 @@ CREATE TABLE `fa_auth_rule` (
|
|||
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`type` enum('menu','file') NOT NULL DEFAULT 'file' COMMENT 'menu为菜单,file为权限节点',
|
||||
`pid` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '父ID',
|
||||
`name` varchar(100) NOT NULL DEFAULT '' COMMENT '规则名称',
|
||||
`title` varchar(50) NOT NULL DEFAULT '' COMMENT '规则名称',
|
||||
`icon` varchar(50) NOT NULL DEFAULT '' COMMENT '图标',
|
||||
`condition` varchar(255) NOT NULL DEFAULT '' COMMENT '条件',
|
||||
`remark` varchar(255) NOT NULL DEFAULT '' COMMENT '备注',
|
||||
`name` varchar(100) DEFAULT '' COMMENT '规则名称',
|
||||
`title` varchar(50) DEFAULT '' COMMENT '规则名称',
|
||||
`icon` varchar(50) DEFAULT '' COMMENT '图标',
|
||||
`condition` varchar(255) DEFAULT '' COMMENT '条件',
|
||||
`remark` varchar(255) DEFAULT '' COMMENT '备注',
|
||||
`ismenu` tinyint(1) unsigned NOT NULL DEFAULT '0' COMMENT '是否为菜单',
|
||||
`createtime` int(10) DEFAULT NULL COMMENT '创建时间',
|
||||
`updatetime` int(10) DEFAULT NULL COMMENT '更新时间',
|
||||
`weigh` int(10) NOT NULL DEFAULT '0' COMMENT '权重',
|
||||
`status` varchar(30) NOT NULL DEFAULT '' COMMENT '状态',
|
||||
`status` varchar(30) DEFAULT '' COMMENT '状态',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `name` (`name`) USING BTREE,
|
||||
KEY `pid` (`pid`),
|
||||
|
|
@ -270,18 +270,18 @@ DROP TABLE IF EXISTS `fa_category`;
|
|||
CREATE TABLE `fa_category` (
|
||||
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`pid` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '父ID',
|
||||
`type` varchar(30) NOT NULL DEFAULT '' COMMENT '栏目类型',
|
||||
`name` varchar(30) NOT NULL DEFAULT '',
|
||||
`nickname` varchar(50) NOT NULL DEFAULT '',
|
||||
`flag` set('hot','index','recommend') NOT NULL DEFAULT '',
|
||||
`image` varchar(100) NOT NULL DEFAULT '' COMMENT '图片',
|
||||
`keywords` varchar(255) NOT NULL DEFAULT '' COMMENT '关键字',
|
||||
`description` varchar(255) NOT NULL DEFAULT '' COMMENT '描述',
|
||||
`diyname` varchar(30) NOT NULL DEFAULT '' COMMENT '自定义名称',
|
||||
`type` varchar(30) DEFAULT '' COMMENT '栏目类型',
|
||||
`name` varchar(30) DEFAULT '',
|
||||
`nickname` varchar(50) DEFAULT '',
|
||||
`flag` set('hot','index','recommend') DEFAULT '',
|
||||
`image` varchar(100) DEFAULT '' COMMENT '图片',
|
||||
`keywords` varchar(255) DEFAULT '' COMMENT '关键字',
|
||||
`description` varchar(255) DEFAULT '' COMMENT '描述',
|
||||
`diyname` varchar(30) DEFAULT '' COMMENT '自定义名称',
|
||||
`createtime` int(10) DEFAULT NULL COMMENT '创建时间',
|
||||
`updatetime` int(10) DEFAULT NULL COMMENT '更新时间',
|
||||
`weigh` int(10) NOT NULL DEFAULT '0' COMMENT '权重',
|
||||
`status` varchar(30) NOT NULL DEFAULT '' COMMENT '状态',
|
||||
`status` varchar(30) DEFAULT '' COMMENT '状态',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `weigh` (`weigh`,`id`),
|
||||
KEY `pid` (`pid`)
|
||||
|
|
@ -312,16 +312,16 @@ COMMIT;
|
|||
DROP TABLE IF EXISTS `fa_config`;
|
||||
CREATE TABLE `fa_config` (
|
||||
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`name` varchar(30) NOT NULL DEFAULT '' COMMENT '变量名',
|
||||
`group` varchar(30) NOT NULL DEFAULT '' COMMENT '分组',
|
||||
`title` varchar(100) NOT NULL DEFAULT '' COMMENT '变量标题',
|
||||
`tip` varchar(100) NOT NULL DEFAULT '' COMMENT '变量描述',
|
||||
`type` varchar(30) NOT NULL DEFAULT '' COMMENT '类型:string,text,int,bool,array,datetime,date,file',
|
||||
`value` text NOT NULL COMMENT '变量值',
|
||||
`content` text NOT NULL COMMENT '变量字典数据',
|
||||
`rule` varchar(100) NOT NULL DEFAULT '' COMMENT '验证规则',
|
||||
`extend` varchar(255) NOT NULL DEFAULT '' COMMENT '扩展属性',
|
||||
`setting` varchar(255) NOT NULL DEFAULT '' COMMENT '配置',
|
||||
`name` varchar(30) DEFAULT '' COMMENT '变量名',
|
||||
`group` varchar(30) DEFAULT '' COMMENT '分组',
|
||||
`title` varchar(100) DEFAULT '' COMMENT '变量标题',
|
||||
`tip` varchar(100) DEFAULT '' COMMENT '变量描述',
|
||||
`type` varchar(30) DEFAULT '' COMMENT '类型:string,text,int,bool,array,datetime,date,file',
|
||||
`value` text COMMENT '变量值',
|
||||
`content` text COMMENT '变量字典数据',
|
||||
`rule` varchar(100) DEFAULT '' COMMENT '验证规则',
|
||||
`extend` varchar(255) DEFAULT '' COMMENT '扩展属性',
|
||||
`setting` varchar(255) DEFAULT '' COMMENT '配置',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `name` (`name`)
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=18 DEFAULT CHARSET=utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT='系统配置';
|
||||
|
|
@ -355,11 +355,11 @@ COMMIT;
|
|||
DROP TABLE IF EXISTS `fa_ems`;
|
||||
CREATE TABLE `fa_ems` (
|
||||
`id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 'ID',
|
||||
`event` varchar(30) NOT NULL DEFAULT '' COMMENT '事件',
|
||||
`email` varchar(100) NOT NULL DEFAULT '' COMMENT '邮箱',
|
||||
`code` varchar(10) NOT NULL DEFAULT '' COMMENT '验证码',
|
||||
`event` varchar(30) DEFAULT '' COMMENT '事件',
|
||||
`email` varchar(100) DEFAULT '' COMMENT '邮箱',
|
||||
`code` varchar(10) DEFAULT '' COMMENT '验证码',
|
||||
`times` int(10) UNSIGNED NOT NULL DEFAULT 0 COMMENT '验证次数',
|
||||
`ip` varchar(30) NOT NULL DEFAULT '' COMMENT 'IP',
|
||||
`ip` varchar(30) DEFAULT '' COMMENT 'IP',
|
||||
`createtime` int(10) DEFAULT NULL COMMENT '创建时间',
|
||||
PRIMARY KEY (`id`) USING BTREE
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT='邮箱验证码表';
|
||||
|
|
@ -370,11 +370,11 @@ CREATE TABLE `fa_ems` (
|
|||
DROP TABLE IF EXISTS `fa_sms`;
|
||||
CREATE TABLE `fa_sms` (
|
||||
`id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'ID',
|
||||
`event` varchar(30) NOT NULL DEFAULT '' COMMENT '事件',
|
||||
`mobile` varchar(20) NOT NULL DEFAULT '' COMMENT '手机号',
|
||||
`code` varchar(10) NOT NULL DEFAULT '' COMMENT '验证码',
|
||||
`event` varchar(30) DEFAULT '' COMMENT '事件',
|
||||
`mobile` varchar(20) DEFAULT '' COMMENT '手机号',
|
||||
`code` varchar(10) DEFAULT '' COMMENT '验证码',
|
||||
`times` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '验证次数',
|
||||
`ip` varchar(30) NOT NULL DEFAULT '' COMMENT 'IP',
|
||||
`ip` varchar(30) DEFAULT '' COMMENT 'IP',
|
||||
`createtime` int(10) unsigned DEFAULT '0' COMMENT '创建时间',
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT='短信验证码表';
|
||||
|
|
@ -389,17 +389,17 @@ CREATE TABLE `fa_test` (
|
|||
`category_id` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '分类ID(单选)',
|
||||
`category_ids` varchar(100) NOT NULL COMMENT '分类ID(多选)',
|
||||
`week` enum('monday','tuesday','wednesday') NOT NULL COMMENT '星期(单选):monday=星期一,tuesday=星期二,wednesday=星期三',
|
||||
`flag` set('hot','index','recommend') NOT NULL DEFAULT '' COMMENT '标志(多选):hot=热门,index=首页,recommend=推荐',
|
||||
`flag` set('hot','index','recommend') DEFAULT '' COMMENT '标志(多选):hot=热门,index=首页,recommend=推荐',
|
||||
`genderdata` enum('male','female') NOT NULL DEFAULT 'male' COMMENT '性别(单选):male=男,female=女',
|
||||
`hobbydata` set('music','reading','swimming') NOT NULL COMMENT '爱好(多选):music=音乐,reading=读书,swimming=游泳',
|
||||
`title` varchar(50) NOT NULL DEFAULT '' COMMENT '标题',
|
||||
`title` varchar(50) DEFAULT '' COMMENT '标题',
|
||||
`content` text NOT NULL COMMENT '内容',
|
||||
`image` varchar(100) NOT NULL DEFAULT '' COMMENT '图片',
|
||||
`images` varchar(1500) NOT NULL DEFAULT '' COMMENT '图片组',
|
||||
`attachfile` varchar(100) NOT NULL DEFAULT '' COMMENT '附件',
|
||||
`keywords` varchar(100) NOT NULL DEFAULT '' COMMENT '关键字',
|
||||
`description` varchar(255) NOT NULL DEFAULT '' COMMENT '描述',
|
||||
`city` varchar(100) NOT NULL DEFAULT '' COMMENT '省市',
|
||||
`image` varchar(100) DEFAULT '' COMMENT '图片',
|
||||
`images` varchar(1500) DEFAULT '' COMMENT '图片组',
|
||||
`attachfile` varchar(100) DEFAULT '' COMMENT '附件',
|
||||
`keywords` varchar(100) DEFAULT '' COMMENT '关键字',
|
||||
`description` varchar(255) DEFAULT '' COMMENT '描述',
|
||||
`city` varchar(100) DEFAULT '' COMMENT '省市',
|
||||
`json` varchar(255) DEFAULT NULL COMMENT '配置:key=名称,value=值',
|
||||
`price` float(10,2) unsigned NOT NULL DEFAULT '0.00' COMMENT '价格',
|
||||
`views` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '点击',
|
||||
|
|
@ -432,32 +432,32 @@ DROP TABLE IF EXISTS `fa_user`;
|
|||
CREATE TABLE `fa_user` (
|
||||
`id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'ID',
|
||||
`group_id` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '组别ID',
|
||||
`username` varchar(32) NOT NULL DEFAULT '' COMMENT '用户名',
|
||||
`nickname` varchar(50) NOT NULL DEFAULT '' COMMENT '昵称',
|
||||
`password` varchar(32) NOT NULL DEFAULT '' COMMENT '密码',
|
||||
`salt` varchar(30) NOT NULL DEFAULT '' COMMENT '密码盐',
|
||||
`email` varchar(100) NOT NULL DEFAULT '' COMMENT '电子邮箱',
|
||||
`mobile` varchar(11) NOT NULL DEFAULT '' COMMENT '手机号',
|
||||
`avatar` varchar(255) NOT NULL DEFAULT '' COMMENT '头像',
|
||||
`username` varchar(32) DEFAULT '' COMMENT '用户名',
|
||||
`nickname` varchar(50) DEFAULT '' COMMENT '昵称',
|
||||
`password` varchar(32) DEFAULT '' COMMENT '密码',
|
||||
`salt` varchar(30) DEFAULT '' COMMENT '密码盐',
|
||||
`email` varchar(100) DEFAULT '' COMMENT '电子邮箱',
|
||||
`mobile` varchar(11) DEFAULT '' COMMENT '手机号',
|
||||
`avatar` varchar(255) DEFAULT '' COMMENT '头像',
|
||||
`level` tinyint(1) unsigned NOT NULL DEFAULT '0' COMMENT '等级',
|
||||
`gender` tinyint(1) unsigned NOT NULL DEFAULT '0' COMMENT '性别',
|
||||
`birthday` date DEFAULT NULL COMMENT '生日',
|
||||
`bio` varchar(100) NOT NULL DEFAULT '' COMMENT '格言',
|
||||
`bio` varchar(100) DEFAULT '' COMMENT '格言',
|
||||
`money` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '余额',
|
||||
`score` int(10) NOT NULL DEFAULT '0' COMMENT '积分',
|
||||
`successions` int(10) unsigned NOT NULL DEFAULT '1' COMMENT '连续登录天数',
|
||||
`maxsuccessions` int(10) unsigned NOT NULL DEFAULT '1' COMMENT '最大连续登录天数',
|
||||
`prevtime` int(10) DEFAULT NULL COMMENT '上次登录时间',
|
||||
`logintime` int(10) DEFAULT NULL COMMENT '登录时间',
|
||||
`loginip` varchar(50) NOT NULL DEFAULT '' COMMENT '登录IP',
|
||||
`loginip` varchar(50) DEFAULT '' COMMENT '登录IP',
|
||||
`loginfailure` tinyint(1) unsigned NOT NULL DEFAULT '0' COMMENT '失败次数',
|
||||
`joinip` varchar(50) NOT NULL DEFAULT '' COMMENT '加入IP',
|
||||
`joinip` varchar(50) DEFAULT '' COMMENT '加入IP',
|
||||
`jointime` int(10) DEFAULT NULL COMMENT '加入时间',
|
||||
`createtime` int(10) DEFAULT NULL COMMENT '创建时间',
|
||||
`updatetime` int(10) DEFAULT NULL COMMENT '更新时间',
|
||||
`token` varchar(50) NOT NULL DEFAULT '' COMMENT 'Token',
|
||||
`status` varchar(30) NOT NULL DEFAULT '' COMMENT '状态',
|
||||
`verification` varchar(255) NOT NULL DEFAULT '' COMMENT '验证',
|
||||
`token` varchar(50) DEFAULT '' COMMENT 'Token',
|
||||
`status` varchar(30) DEFAULT '' COMMENT '状态',
|
||||
`verification` varchar(255) DEFAULT '' COMMENT '验证',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `username` (`username`),
|
||||
KEY `email` (`email`),
|
||||
|
|
@ -502,7 +502,7 @@ CREATE TABLE `fa_user_money_log` (
|
|||
`money` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '变更余额',
|
||||
`before` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '变更前余额',
|
||||
`after` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '变更后余额',
|
||||
`memo` varchar(255) NOT NULL DEFAULT '' COMMENT '备注',
|
||||
`memo` varchar(255) DEFAULT '' COMMENT '备注',
|
||||
`createtime` int(10) DEFAULT NULL COMMENT '创建时间',
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT='会员余额变动表';
|
||||
|
|
@ -553,7 +553,7 @@ CREATE TABLE `fa_user_score_log` (
|
|||
`score` int(10) NOT NULL DEFAULT '0' COMMENT '变更积分',
|
||||
`before` int(10) NOT NULL DEFAULT '0' COMMENT '变更前积分',
|
||||
`after` int(10) NOT NULL DEFAULT '0' COMMENT '变更后积分',
|
||||
`memo` varchar(255) NOT NULL DEFAULT '' COMMENT '备注',
|
||||
`memo` varchar(255) DEFAULT '' COMMENT '备注',
|
||||
`createtime` int(10) DEFAULT NULL COMMENT '创建时间',
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT='会员积分变动表';
|
||||
|
|
@ -576,16 +576,16 @@ CREATE TABLE `fa_user_token` (
|
|||
DROP TABLE IF EXISTS `fa_version`;
|
||||
CREATE TABLE `fa_version` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'ID',
|
||||
`oldversion` varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT '旧版本号',
|
||||
`newversion` varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT '新版本号',
|
||||
`packagesize` varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT '包大小',
|
||||
`content` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT '升级内容',
|
||||
`downloadurl` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT '下载地址',
|
||||
`oldversion` varchar(30) DEFAULT '' COMMENT '旧版本号',
|
||||
`newversion` varchar(30) DEFAULT '' COMMENT '新版本号',
|
||||
`packagesize` varchar(30) DEFAULT '' COMMENT '包大小',
|
||||
`content` varchar(500) DEFAULT '' COMMENT '升级内容',
|
||||
`downloadurl` varchar(255) DEFAULT '' COMMENT '下载地址',
|
||||
`enforce` tinyint(1) UNSIGNED NOT NULL DEFAULT 0 COMMENT '强制更新',
|
||||
`createtime` int(10) DEFAULT NULL COMMENT '创建时间',
|
||||
`updatetime` int(10) DEFAULT NULL COMMENT '更新时间',
|
||||
`weigh` int(10) NOT NULL DEFAULT 0 COMMENT '权重',
|
||||
`status` varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT '状态',
|
||||
`status` varchar(30) DEFAULT '' COMMENT '状态',
|
||||
PRIMARY KEY (`id`) USING BTREE
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT='版本表';
|
||||
|
||||
|
|
|
|||
|
|
@ -21,6 +21,7 @@ return [
|
|||
'Date' => '日期',
|
||||
'Time' => '时间',
|
||||
'Datetime' => '日期时间',
|
||||
'Datetimerange' => '日期时间区间',
|
||||
'Image' => '图片',
|
||||
'Images' => '图片(多)',
|
||||
'File' => '文件',
|
||||
|
|
|
|||
|
|
@ -78,16 +78,19 @@
|
|||
</dl>
|
||||
{/case}
|
||||
{case date}
|
||||
<input {$item.extend_html} type="text" name="row[{$item.name}]" value="{$item.value}" class="form-control datetimepicker" data-date-format="YYYY-MM-DD" data-tip="{$item.tip}" data-rule="{$item.rule}"/>
|
||||
<input {$item.extend_html} type="text" name="row[{$item.name}]" value="{$item.value|htmlentities}" class="form-control datetimepicker" data-date-format="YYYY-MM-DD" data-tip="{$item.tip}" data-rule="{$item.rule}"/>
|
||||
{/case}
|
||||
{case time}
|
||||
<input {$item.extend_html} type="text" name="row[{$item.name}]" value="{$item.value}" class="form-control datetimepicker" data-date-format="HH:mm:ss" data-tip="{$item.tip}" data-rule="{$item.rule}"/>
|
||||
<input {$item.extend_html} type="text" name="row[{$item.name}]" value="{$item.value|htmlentities}" class="form-control datetimepicker" data-date-format="HH:mm:ss" data-tip="{$item.tip}" data-rule="{$item.rule}"/>
|
||||
{/case}
|
||||
{case datetime}
|
||||
<input {$item.extend_html} type="text" name="row[{$item.name}]" value="{$item.value}" class="form-control datetimepicker" data-date-format="YYYY-MM-DD HH:mm:ss" data-tip="{$item.tip}" data-rule="{$item.rule}"/>
|
||||
<input {$item.extend_html} type="text" name="row[{$item.name}]" value="{$item.value|htmlentities}" class="form-control datetimepicker" data-date-format="YYYY-MM-DD HH:mm:ss" data-tip="{$item.tip}" data-rule="{$item.rule}"/>
|
||||
{/case}
|
||||
{case datetimerange}
|
||||
<input {$item.extend_html} type="text" name="row[{$item.name}]" value="{$item.value|htmlentities}" class="form-control datetimerange" data-tip="{$item.tip}" data-rule="{$item.rule}"/>
|
||||
{/case}
|
||||
{case number}
|
||||
<input {$item.extend_html} type="number" name="row[{$item.name}]" value="{$item.value}" class="form-control" data-tip="{$item.tip}" data-rule="{$item.rule}"/>
|
||||
<input {$item.extend_html} type="number" name="row[{$item.name}]" value="{$item.value|htmlentities}" class="form-control" data-tip="{$item.tip}" data-rule="{$item.rule}"/>
|
||||
{/case}
|
||||
{case checkbox}
|
||||
{foreach name="item.content" item="vo"}
|
||||
|
|
|
|||
|
|
@ -32,27 +32,28 @@ class Config extends Model
|
|||
public static function getTypeList()
|
||||
{
|
||||
$typeList = [
|
||||
'string' => __('String'),
|
||||
'text' => __('Text'),
|
||||
'editor' => __('Editor'),
|
||||
'number' => __('Number'),
|
||||
'date' => __('Date'),
|
||||
'time' => __('Time'),
|
||||
'datetime' => __('Datetime'),
|
||||
'select' => __('Select'),
|
||||
'selects' => __('Selects'),
|
||||
'image' => __('Image'),
|
||||
'images' => __('Images'),
|
||||
'file' => __('File'),
|
||||
'files' => __('Files'),
|
||||
'switch' => __('Switch'),
|
||||
'checkbox' => __('Checkbox'),
|
||||
'radio' => __('Radio'),
|
||||
'city' => __('City'),
|
||||
'selectpage' => __('Selectpage'),
|
||||
'selectpages' => __('Selectpages'),
|
||||
'array' => __('Array'),
|
||||
'custom' => __('Custom'),
|
||||
'string' => __('String'),
|
||||
'text' => __('Text'),
|
||||
'editor' => __('Editor'),
|
||||
'number' => __('Number'),
|
||||
'date' => __('Date'),
|
||||
'time' => __('Time'),
|
||||
'datetime' => __('Datetime'),
|
||||
'datetimerange' => __('Datetimerange'),
|
||||
'select' => __('Select'),
|
||||
'selects' => __('Selects'),
|
||||
'image' => __('Image'),
|
||||
'images' => __('Images'),
|
||||
'file' => __('File'),
|
||||
'files' => __('Files'),
|
||||
'switch' => __('Switch'),
|
||||
'checkbox' => __('Checkbox'),
|
||||
'radio' => __('Radio'),
|
||||
'city' => __('City'),
|
||||
'selectpage' => __('Selectpage'),
|
||||
'selectpages' => __('Selectpages'),
|
||||
'array' => __('Array'),
|
||||
'custom' => __('Custom'),
|
||||
];
|
||||
return $typeList;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@ use addons\wechat\model\WechatCaptcha;
|
|||
use app\common\controller\Frontend;
|
||||
use app\common\library\Ems;
|
||||
use app\common\library\Sms;
|
||||
use app\common\model\Attachment;
|
||||
use think\Config;
|
||||
use think\Cookie;
|
||||
use think\Hook;
|
||||
|
|
@ -272,4 +273,53 @@ class User extends Frontend
|
|||
$this->view->assign('title', __('Change password'));
|
||||
return $this->view->fetch();
|
||||
}
|
||||
|
||||
public function attachment()
|
||||
{
|
||||
//设置过滤方法
|
||||
$this->request->filter(['strip_tags']);
|
||||
if ($this->request->isAjax()) {
|
||||
$mimetypeQuery = [];
|
||||
$filter = $this->request->request('filter');
|
||||
$filterArr = (array)json_decode($filter, true);
|
||||
if (isset($filterArr['mimetype']) && preg_match("/[]\,|\*]/", $filterArr['mimetype'])) {
|
||||
$this->request->get(['filter' => json_encode(array_diff_key($filterArr, ['mimetype' => '']))]);
|
||||
$mimetypeQuery = function ($query) use ($filterArr) {
|
||||
$mimetypeArr = explode(',', $filterArr['mimetype']);
|
||||
foreach ($mimetypeArr as $index => $item) {
|
||||
if (stripos($item, "/*") !== false) {
|
||||
$query->whereOr('mimetype', 'like', str_replace("/*", "/", $item) . '%');
|
||||
} else {
|
||||
$query->whereOr('mimetype', 'like', '%' . $item . '%');
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
$model = new Attachment();
|
||||
$offset = $this->request->get("offset", 0);
|
||||
$limit = $this->request->get("limit", 0);
|
||||
$total = $model
|
||||
->where($mimetypeQuery)
|
||||
->where('user_id', $this->auth->id)
|
||||
->order("id", "DESC")
|
||||
->count();
|
||||
|
||||
$list = $model
|
||||
->where($mimetypeQuery)
|
||||
->where('user_id', $this->auth->id)
|
||||
->order("id", "DESC")
|
||||
->limit($offset, $limit)
|
||||
->select();
|
||||
$cdnurl = preg_replace("/\/(\w+)\.php$/i", '', $this->request->root());
|
||||
foreach ($list as $k => &$v) {
|
||||
$v['fullurl'] = ($v['storage'] == 'local' ? $cdnurl : $this->view->config['upload']['cdnurl']) . $v['url'];
|
||||
}
|
||||
unset($v);
|
||||
$result = array("total" => $total, "rows" => $list);
|
||||
|
||||
return json($result);
|
||||
}
|
||||
$this->view->assign("mimetypeList", \app\common\model\Attachment::getMimetypeList());
|
||||
return $this->view->fetch();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -61,4 +61,24 @@ return [
|
|||
'Operation failed' => '操作失败',
|
||||
'Invalid parameters' => '参数不正确',
|
||||
'Change password failure' => '修改密码失败',
|
||||
'All' => '全部',
|
||||
'Url' => '物理路径',
|
||||
'Imagewidth' => '宽度',
|
||||
'Imageheight' => '高度',
|
||||
'Imagetype' => '图片类型',
|
||||
'Imageframes' => '图片帧数',
|
||||
'Preview' => '预览',
|
||||
'Filename' => '文件名',
|
||||
'Filesize' => '文件大小',
|
||||
'Mimetype' => 'Mime类型',
|
||||
'Image' => '图片',
|
||||
'Audio' => '音频',
|
||||
'Video' => '视频',
|
||||
'Text' => '文档',
|
||||
'Application' => '应用',
|
||||
'Zip' => '压缩包',
|
||||
'Extparam' => '透传数据',
|
||||
'Createtime' => '创建日期',
|
||||
'Uploadtime' => '上传时间',
|
||||
'Storage' => '存储引擎',
|
||||
];
|
||||
|
|
|
|||
|
|
@ -0,0 +1,61 @@
|
|||
<link rel="stylesheet" href="__CDN__/assets/libs/bootstrap-table/dist/bootstrap-table.min.css">
|
||||
{if $Think.get.dialog}
|
||||
<style>
|
||||
body {
|
||||
padding-top: 0;
|
||||
background: #fff;
|
||||
}
|
||||
|
||||
nav.navbar-fixed-top, footer.footer {
|
||||
display: none;
|
||||
}
|
||||
|
||||
main.content {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.fixed-table-container {
|
||||
border: none;
|
||||
}
|
||||
|
||||
.panel-heading .nav-tabs {
|
||||
padding: 0 15px;
|
||||
}
|
||||
|
||||
.panel-heading .nav-tabs li {
|
||||
font-size: 14px;
|
||||
}
|
||||
</style>
|
||||
{/if}
|
||||
<div class="panel panel-default panel-intro" style="padding:0;">
|
||||
{if !$Think.get.mimetype||$Think.get.mimetype=='*'}
|
||||
<div class="panel-heading">
|
||||
<ul class="nav nav-tabs" data-field="mimetype">
|
||||
<li class="active"><a href="#t-all" data-value="" data-toggle="tab">{:__('All')}</a></li>
|
||||
{foreach name="mimetypeList" item="vo"}
|
||||
<li><a href="#t-{$key}" data-value="{$key}" data-toggle="tab">{$vo}</a></li>
|
||||
{/foreach}
|
||||
</ul>
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
<div class="panel-body">
|
||||
<div id="myTabContent" class="tab-content">
|
||||
<div class="tab-pane fade active in" id="one">
|
||||
<div class="widget-body no-padding">
|
||||
<div id="toolbar" class="toolbar">
|
||||
<a href="javascript:;" class="btn btn-primary btn-refresh" title="刷新"><i class="fa fa-refresh"></i> </a>
|
||||
<span><button type="button" id="faupload-image" class="btn btn-success faupload" data-mimetype="{$Think.get.mimetype|default=''}" data-multiple="true"><i class="fa fa-upload"></i> {:__('Upload')}</button></span>
|
||||
{if request()->get('multiple') == 'true'}
|
||||
<a class="btn btn-danger btn-choose-multi"><i class="fa fa-check"></i> {:__('Choose')}</a>
|
||||
{/if}
|
||||
</div>
|
||||
<table id="table" class="table table-bordered table-hover" width="100%">
|
||||
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -103,7 +103,7 @@ define(['jquery', 'bootstrap', 'backend', 'form', 'table'], function ($, undefin
|
|||
showExport: false,
|
||||
columns: [
|
||||
[
|
||||
{field: 'state', checkbox: multiple, visible: multiple},
|
||||
{field: 'state', checkbox: multiple, visible: multiple, operate:false},
|
||||
{field: 'id', title: __('Id')},
|
||||
{field: 'admin_id', title: __('Admin_id'), formatter: Table.api.formatter.search, visible: false},
|
||||
{field: 'user_id', title: __('User_id'), formatter: Table.api.formatter.search, visible: false},
|
||||
|
|
|
|||
|
|
@ -98,6 +98,95 @@ define(['jquery', 'bootstrap', 'frontend', 'form', 'template'], function ($, und
|
|||
}
|
||||
});
|
||||
});
|
||||
},
|
||||
attachment: function () {
|
||||
require(['table'], function (Table) {
|
||||
|
||||
// 初始化表格参数配置
|
||||
Table.api.init({
|
||||
extend: {
|
||||
index_url: 'user/attachment',
|
||||
}
|
||||
});
|
||||
var urlArr = [];
|
||||
var multiple = Fast.api.query('multiple');
|
||||
multiple = multiple == 'true' ? true : false;
|
||||
|
||||
var table = $("#table");
|
||||
|
||||
table.on('check.bs.table uncheck.bs.table check-all.bs.table uncheck-all.bs.table', function (e, row) {
|
||||
if (e.type == 'check' || e.type == 'uncheck') {
|
||||
row = [row];
|
||||
} else {
|
||||
urlArr = [];
|
||||
}
|
||||
$.each(row, function (i, j) {
|
||||
if (e.type.indexOf("uncheck") > -1) {
|
||||
var index = urlArr.indexOf(j.url);
|
||||
if (index > -1) {
|
||||
urlArr.splice(index, 1);
|
||||
}
|
||||
} else {
|
||||
urlArr.indexOf(j.url) == -1 && urlArr.push(j.url);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
// 初始化表格
|
||||
table.bootstrapTable({
|
||||
url: $.fn.bootstrapTable.defaults.extend.index_url,
|
||||
sortName: 'id',
|
||||
showToggle: false,
|
||||
showExport: false,
|
||||
columns: [
|
||||
[
|
||||
{field: 'state', checkbox: multiple, visible: multiple, operate:false},
|
||||
{field: 'id', title: __('Id')},
|
||||
{field: 'url', title: __('Preview'), formatter: function (value, row, index) {
|
||||
if (row.mimetype.indexOf("image") > -1) {
|
||||
var style = row.storage === 'upyun' ? '!/fwfh/120x90' : '';
|
||||
return '<a href="' + row.fullurl + '" target="_blank"><img src="' + row.fullurl + style + '" alt="" style="max-height:90px;max-width:120px"></a>';
|
||||
} else {
|
||||
return '<a href="' + row.fullurl + '" target="_blank"><img src="' + Fast.api.fixurl("ajax/icon") + "?suffix=" + row.imagetype + '" alt="" style="max-height:90px;max-width:120px"></a>';
|
||||
}
|
||||
}, operate: false},
|
||||
{field: 'filename', title: __('Filename'), formatter: Table.api.formatter.search, operate: 'like'},
|
||||
{field: 'imagewidth', title: __('Imagewidth'), operate: false},
|
||||
{field: 'imageheight', title: __('Imageheight'), operate: false},
|
||||
{
|
||||
field: 'mimetype', title: __('Mimetype'), operate: 'LIKE %...%',
|
||||
process: function (value, arg) {
|
||||
return value.replace(/\*/g, '%');
|
||||
}
|
||||
},
|
||||
{field: 'createtime', title: __('Createtime'), formatter: Table.api.formatter.datetime, operate: 'RANGE', addclass: 'datetimerange', sortable: true},
|
||||
{
|
||||
field: 'operate', title: __('Operate'), events: {
|
||||
'click .btn-chooseone': function (e, value, row, index) {
|
||||
Fast.api.close({url: row.url, multiple: multiple});
|
||||
},
|
||||
}, formatter: function () {
|
||||
return '<a href="javascript:;" class="btn btn-danger btn-chooseone btn-xs"><i class="fa fa-check"></i> ' + __('Choose') + '</a>';
|
||||
}
|
||||
}
|
||||
]
|
||||
]
|
||||
});
|
||||
|
||||
// 选中多个
|
||||
$(document).on("click", ".btn-choose-multi", function () {
|
||||
Fast.api.close({url: urlArr.join(","), multiple: multiple});
|
||||
});
|
||||
|
||||
// 为表格绑定事件
|
||||
Table.api.bindevent(table);
|
||||
require(['upload'], function (Upload) {
|
||||
Upload.api.upload($("#toolbar .faupload"), function () {
|
||||
$(".btn-refresh").trigger("click");
|
||||
});
|
||||
});
|
||||
|
||||
});
|
||||
}
|
||||
};
|
||||
return Controller;
|
||||
|
|
|
|||
|
|
@ -10244,7 +10244,8 @@ define('form',['jquery', 'bootstrap', 'upload', 'validator'], function ($, undef
|
|||
var mimetype = $(this).data("mimetype") ? $(this).data("mimetype") : '';
|
||||
var admin_id = $(this).data("admin-id") ? $(this).data("admin-id") : '';
|
||||
var user_id = $(this).data("user-id") ? $(this).data("user-id") : '';
|
||||
parent.Fast.api.open("general/attachment/select?element_id=" + $(this).attr("id") + "&multiple=" + multiple + "&mimetype=" + mimetype + "&admin_id=" + admin_id + "&user_id=" + user_id, __('Choose'), {
|
||||
var url = $(this).data("url") ? $(this).data("url") : (typeof Backend !== 'undefined' ? "general/attachment/select" : "user/attachment");
|
||||
parent.Fast.api.open(url + "?element_id=" + $(this).attr("id") + "&multiple=" + multiple + "&mimetype=" + mimetype + "&admin_id=" + admin_id + "&user_id=" + user_id, __('Choose'), {
|
||||
callback: function (data) {
|
||||
var button = $("#" + $(that).attr("id"));
|
||||
var maxcount = $(button).data("maxcount");
|
||||
|
|
@ -11065,12 +11066,6 @@ define("bootstrap-table-jumpto", ["bootstrap-table"], (function (global) {
|
|||
|
||||
|
||||
|
||||
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) {
|
||||
return typeof obj;
|
||||
} : function (obj) {
|
||||
return obj && typeof Symbol === "function" && obj.constructor === Symbol ? "symbol" : typeof obj;
|
||||
};
|
||||
|
||||
(function ($) {
|
||||
'use strict';
|
||||
// Reasonable defaults
|
||||
|
|
@ -11263,8 +11258,6 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|||
};
|
||||
|
||||
BootstrapTable.prototype.updateSelected = function () {
|
||||
var _this = this;
|
||||
|
||||
var that = this;
|
||||
|
||||
_updateSelected.apply(this, Array.prototype.slice.apply(arguments));
|
||||
|
|
@ -11275,9 +11268,9 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|||
var $el = $(el);
|
||||
var index = $el.data('index');
|
||||
var classes = $el.attr('class');
|
||||
var inputSelector = '[name="' + _this.options.selectItemName + '"]';
|
||||
var inputSelector = '[name="' + that.options.selectItemName + '"]';
|
||||
var $input = $el.find(inputSelector);
|
||||
if ((typeof index === 'undefined' ? 'undefined' : _typeof(index)) === undefined) {
|
||||
if (typeof index === 'undefined') {
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
@ -11288,16 +11281,16 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|||
if ($input.length) {
|
||||
$tr.find(inputSelector).prop('checked', $input.prop('checked'));
|
||||
}
|
||||
if (_this.$selectAll.length) {
|
||||
$fixedHeader.add($fixedBody).find('[name="btSelectAll"]').prop('checked', _this.$selectAll.prop('checked'));
|
||||
if (that.$selectAll.length) {
|
||||
$fixedHeader.add($fixedBody).find('[name="btSelectAll"]').prop('checked', that.$selectAll.prop('checked'));
|
||||
}
|
||||
};
|
||||
if (_this.$fixedBody && _this.options.fixedNumber) {
|
||||
updateFixedBody(_this.$fixedHeader, _this.$fixedBody);
|
||||
if (that.$fixedBody && that.options.fixedNumber) {
|
||||
updateFixedBody(that.$fixedHeader, that.$fixedBody);
|
||||
}
|
||||
|
||||
if (_this.$fixedBodyRight && _this.options.fixedRightNumber) {
|
||||
updateFixedBody(_this.$fixedHeaderRight, _this.$fixedBodyRight);
|
||||
if (that.$fixedBodyRight && that.options.fixedRightNumber) {
|
||||
updateFixedBody(that.$fixedHeaderRight, that.$fixedBodyRight);
|
||||
}
|
||||
});
|
||||
};
|
||||
|
|
@ -11314,7 +11307,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|||
};
|
||||
|
||||
BootstrapTable.prototype.initFixedColumnsHeader = function () {
|
||||
var _this2 = this;
|
||||
var that = this;
|
||||
|
||||
if (this.options.height) {
|
||||
this.needFixedColumns = this.$tableHeader.outerWidth(true) < this.$tableHeader.find('table').outerWidth(true);
|
||||
|
|
@ -11324,10 +11317,10 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|||
|
||||
var initFixedHeader = function initFixedHeader($fixedColumns, isRight) {
|
||||
$fixedColumns.find('.fixed-table-header').remove();
|
||||
$fixedColumns.append(_this2.$tableHeader.clone(true));
|
||||
$fixedColumns.append(that.$tableHeader.clone(true));
|
||||
$fixedColumns.find('.fixed-table-header').css('margin-right', "");
|
||||
$fixedColumns.css({
|
||||
width: _this2.getFixedColumnsWidth(isRight)
|
||||
width: that.getFixedColumnsWidth(isRight)
|
||||
});
|
||||
return $fixedColumns.find('.fixed-table-header');
|
||||
};
|
||||
|
|
@ -11351,19 +11344,19 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|||
};
|
||||
|
||||
BootstrapTable.prototype.initFixedColumnsBody = function () {
|
||||
var _this3 = this;
|
||||
var that = this;
|
||||
|
||||
var initFixedBody = function initFixedBody($fixedColumns, $fixedHeader) {
|
||||
$fixedColumns.find('.fixed-table-body').remove();
|
||||
$fixedColumns.append(_this3.$tableBody.clone(true));
|
||||
$fixedColumns.append(that.$tableBody.clone(true));
|
||||
|
||||
var $fixedBody = $fixedColumns.find('.fixed-table-body');
|
||||
|
||||
var tableBody = _this3.$tableBody.get(0);
|
||||
var tableBody = that.$tableBody.get(0);
|
||||
var scrollHeight = tableBody.scrollWidth > tableBody.clientWidth ? getScrollBarWidth() : 0;
|
||||
var paginationHeight = $(".fixed-table-pagination").height();
|
||||
if (typeof _this3.options.height !== 'undefined') paginationHeight = 0;
|
||||
var height = _this3.$tableContainer.outerHeight(true) - scrollHeight - paginationHeight + 1;
|
||||
if (typeof that.options.height !== 'undefined') paginationHeight = 0;
|
||||
var height = that.$tableContainer.outerHeight(true) - scrollHeight - paginationHeight + 1;
|
||||
$fixedColumns.css({
|
||||
height: height
|
||||
});
|
||||
|
|
@ -11407,17 +11400,17 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|||
};
|
||||
|
||||
BootstrapTable.prototype.initFixedColumnsEvents = function () {
|
||||
var _this4 = this;
|
||||
var that = this;
|
||||
|
||||
var toggleHover = function toggleHover(e, toggle) {
|
||||
var tr = 'tr[data-index="' + $(e.currentTarget).data('index') + '"]';
|
||||
var $trs = _this4.$tableBody.find(tr);
|
||||
var $trs = that.$tableBody.find(tr);
|
||||
|
||||
if (_this4.$fixedBody) {
|
||||
$trs = $trs.add(_this4.$fixedBody.find(tr));
|
||||
if (that.$fixedBody) {
|
||||
$trs = $trs.add(that.$fixedBody.find(tr));
|
||||
}
|
||||
if (_this4.$fixedBodyRight) {
|
||||
$trs = $trs.add(_this4.$fixedBodyRight.find(tr));
|
||||
if (that.$fixedBodyRight) {
|
||||
$trs = $trs.add(that.$fixedBodyRight.find(tr));
|
||||
}
|
||||
|
||||
$trs.css('background-color', toggle ? $(e.currentTarget).css('background-color') : '');
|
||||
|
|
@ -11432,17 +11425,17 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|||
var updateScroll = function updateScroll(e, fixedBody) {
|
||||
var normalized = normalizeWheel(e);
|
||||
var deltaY = Math.ceil(normalized.pixelY);
|
||||
var top = _this4.$tableBody.scrollTop() + deltaY;
|
||||
var top = that.$tableBody.scrollTop() + deltaY;
|
||||
if (deltaY < 0 && top > 0 || deltaY > 0 && top < fixedBody.scrollHeight - fixedBody.clientHeight) {
|
||||
e.preventDefault();
|
||||
}
|
||||
|
||||
_this4.$tableBody.scrollTop(top);
|
||||
if (_this4.$fixedBody) {
|
||||
_this4.$fixedBody.scrollTop(top);
|
||||
that.$tableBody.scrollTop(top);
|
||||
if (that.$fixedBody) {
|
||||
that.$fixedBody.scrollTop(top);
|
||||
}
|
||||
if (_this4.$fixedBodyRight) {
|
||||
_this4.$fixedBodyRight.scrollTop(top);
|
||||
if (that.$fixedBodyRight) {
|
||||
that.$fixedBodyRight.scrollTop(top);
|
||||
}
|
||||
};
|
||||
if (this.needFixedColumns && this.options.fixedNumber) {
|
||||
|
|
@ -11453,25 +11446,25 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|||
});
|
||||
this.$fixedBody[0].addEventListener(mousewheel, function (e) {
|
||||
//给鼠标滑轮绑定事件
|
||||
updateScroll(e, _this4.$fixedBody[0]);
|
||||
updateScroll(e, that.$fixedBody[0]);
|
||||
});
|
||||
}
|
||||
//给原本表格绑定scroll事件
|
||||
$('div.fixed-table-body').off('scroll'); //给所有的body解绑 scroll
|
||||
this.$tableBody.off('scroll').on('scroll', function (e) {
|
||||
_this4.$tableHeader.scrollLeft(0);
|
||||
if (_this4.$tableBody.scrollLeft() > 0) {
|
||||
_this4.$tableHeader.scrollLeft(_this4.$tableBody.scrollLeft());
|
||||
if (_this4.options.showFooter && !_this4.options.cardView) {
|
||||
_this4.$tableFooter.scrollLeft(_this4.$tableBody.scrollLeft());
|
||||
that.$tableHeader.scrollLeft(0);
|
||||
if (that.$tableBody.scrollLeft() > 0) {
|
||||
that.$tableHeader.scrollLeft(that.$tableBody.scrollLeft());
|
||||
if (that.options.showFooter && !that.options.cardView) {
|
||||
that.$tableFooter.scrollLeft(that.$tableBody.scrollLeft());
|
||||
}
|
||||
}
|
||||
var top = _this4.$tableBody.scrollTop();
|
||||
if (_this4.$fixedBody) {
|
||||
_this4.$fixedBody.scrollTop(top);
|
||||
var top = that.$tableBody.scrollTop();
|
||||
if (that.$fixedBody) {
|
||||
that.$fixedBody.scrollTop(top);
|
||||
}
|
||||
if (_this4.$fixedBodyRight) {
|
||||
_this4.$fixedBodyRight.scrollTop(top);
|
||||
if (that.$fixedBodyRight) {
|
||||
that.$fixedBodyRight.scrollTop(top);
|
||||
}
|
||||
});
|
||||
|
||||
|
|
@ -11483,13 +11476,13 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|||
});
|
||||
this.$fixedBodyRight[0].addEventListener(mousewheel, function (e) {
|
||||
//给鼠标滑轮绑定事件
|
||||
updateScroll(e, _this4.$fixedBodyRight[0]);
|
||||
updateScroll(e, that.$fixedBodyRight[0]);
|
||||
});
|
||||
//给固定表格的checkbox绑定事件
|
||||
this.$fixedBody && this.$fixedBody.find('input[name="' + this.options.selectItemName + '"]').off("click").on('click', function (e) {
|
||||
e.stopImmediatePropagation();
|
||||
var index = $(e.target).data("index");
|
||||
$(_this4.$selectItem[index]).trigger("click");
|
||||
$(that.$selectItem[index]).trigger("click");
|
||||
});
|
||||
}
|
||||
|
||||
|
|
@ -11498,7 +11491,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|||
var $target = $(e.target);
|
||||
var value = $target.val();
|
||||
var field = $target.parents('th').data('field');
|
||||
var $coreTh = _this4.$header.find('th[data-field="' + field + '"]');
|
||||
var $coreTh = that.$header.find('th[data-field="' + field + '"]');
|
||||
|
||||
if ($target.is('input')) {
|
||||
$coreTh.find('input').val(value);
|
||||
|
|
@ -11508,7 +11501,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
|
|||
$select.find('option[value="' + value + '"]').attr('selected', true);
|
||||
}
|
||||
|
||||
_this4.triggerSearch();
|
||||
that.triggerSearch();
|
||||
});
|
||||
}
|
||||
};
|
||||
|
|
|
|||
|
|
@ -248,7 +248,8 @@ define(['jquery', 'bootstrap', 'upload', 'validator'], function ($, undefined, U
|
|||
var mimetype = $(this).data("mimetype") ? $(this).data("mimetype") : '';
|
||||
var admin_id = $(this).data("admin-id") ? $(this).data("admin-id") : '';
|
||||
var user_id = $(this).data("user-id") ? $(this).data("user-id") : '';
|
||||
parent.Fast.api.open("general/attachment/select?element_id=" + $(this).attr("id") + "&multiple=" + multiple + "&mimetype=" + mimetype + "&admin_id=" + admin_id + "&user_id=" + user_id, __('Choose'), {
|
||||
var url = $(this).data("url") ? $(this).data("url") : (typeof Backend !== 'undefined' ? "general/attachment/select" : "user/attachment");
|
||||
parent.Fast.api.open(url + "?element_id=" + $(this).attr("id") + "&multiple=" + multiple + "&mimetype=" + mimetype + "&admin_id=" + admin_id + "&user_id=" + user_id, __('Choose'), {
|
||||
callback: function (data) {
|
||||
var button = $("#" + $(that).attr("id"));
|
||||
var maxcount = $(button).data("maxcount");
|
||||
|
|
|
|||
Loading…
Reference in New Issue