知慧公用方法整理

目录

  • 公用方法
    • tool里面的方法
    • 信息提示的弹框
    • 打开iframe弹层的
    • 从父页面关闭本身的iframe弹层
    • 信息提示框的弹层
    • 阿拉伯数字变中文
    • 阻止冒泡
    • 倒计时(支持出现多个)
    • 选人插件(不用单独引入文件)
    • 图片的居中显示的处理
    • 附件的预览(不用单独引入文件)
    • 基于laypage的翻页
    • 信息复制到粘贴板
    • 元素绑定回车事件
    • 切换日期
    • input的change事件 控制输入为正整数
    • 屏蔽input的回车事件
    • 网盘图标
    • 获取学年、学期、周信息
    • 获取日期是星期几
    • 获取农历
    • 基于layui的table的静态表格展示
    • 基于layui的table的数据表格展示(数据动态接口获取)
    • 公共导出,通过form不跳转页面下载
    • app 和网页的交互
    • 调用客户端地理定位信息
    • 初次验证, 记录用户登录信息

公用方法

主要整理了前端公用的方法

tool里面的方法

获取页面url的参数:tool.getUrlParams
检查email格式:tool.checkEmail(email);
获取文字的长度:tool.getLength(str);
将类似于2:02:30的字符串转化成有多少秒:tool.formatTimeToSeconds(str);
将秒转化为类似于2:30的字符串:tool.formatTimeToString(seconds);
设置cookie信息:tool.cookie(name, value, options);
获取cookie信息:var value = tool.cookie(name);

信息提示的弹框

参数:

  • msg, 消息
  • callback, 点击确定的回调函数
  • params, 回调函数的参数
  • params, 弹框注销后的回调函数
  • title 标题信息
  • cancelcallback, 弹框点击取消的回调函数
    方法:common_layer_message(msg,callback,params,endcallback,title,cancelcallback);

打开iframe弹层的

参数:

  • title_text --标题
  • data_url --地址
  • close_remind --是否有关闭提示(true、false)
  • maxopen 初始化弹框全屏打开
    方法:tool_open_layer_iframe(title_text,data_url,close_remind,maxopen);

从父页面关闭本身的iframe弹层

参数:无
方法:tool_close_layer_iframe();

信息提示框的弹层

参数:

  • msg, 提示信息
  • callback, 点击确定的回调函数
  • params, 回调函数的参数
    方法:common_layer_message(msg,callback,params) ;

阿拉伯数字变中文

参数:

  • num 阿拉伯数字
    方法:numberToChinese(num);

阻止冒泡

cancelBubble ();

倒计时(支持出现多个)

参数:

  • id --显示位置的id
  • mod --显示模式,默认为 年|月|周|天|时|分|秒(xx年xx月xx周xx天xx时xx分xx秒)
  • callback --倒计时完后执行的函数
    方法:tool_countdown(id, seconds, mod, callback);
    注意事项:数据刷新的时候,需要调用clearIntervals(tool_countdown_interval);需要关闭正在进行的定时器

选人插件(不用单独引入文件)

参数:下面是初始化list的params包含参数(Y/N–默认值,Y表示必传,N表示不必传)

  • title 选择框的标题 Y
  • kw_status 是否搜索,N–false true–显示,false–不显示
  • selected_status 选择的状态,N–checkbox radio–单选,checkbox–多选
  • get_user 是否显示人员,N–true true–显示,false–不显示
  • get_department: ‘true’ 是否显示通讯录,true–显示,false–不显示
  • get_group N–true 是否显示群组,N-ture true–显示,false–不显示
  • get_class N–true 是否显示班级,true–显示,false–不显示
  • get_school N–true 是否显示学校,true–显示,false–不显示
  • get_friend N–true 是否显示好友,N–true true–显示,false–不显示
  • get_parent N–true 是否显示家长,N–true true–显示,false–不显示
  • use_type 用户的类型(后台区分) N
  • u_type 用户的类型(前端区分) 0–全部 1–老师 2–学生
  • user_type_box: N–true 是否显示的用户类型的选框, true–显示,false–不显示
  • selected_items 打开插件时已经选择了的items信息 Y
  • show_global_cur_user 是否需要显示登录用户,N – true true–显示,false–不显示
  • callback 回调函数 N (不包含在params里面)
    方法:show_department_and_user_list.init_list(params,callback);
    注意事项:
    回调函数的参数是已经选择的人员的数据,格式如下:

每条信息包括用户id、名称、logo、所在部门的id、所在部门的类型

图片的居中显示的处理

参数:

  • url --图片的地址
    • ele --需要显示图片的选择器
      方法:tool_deal_img_size(url,ele);
      注意事项:使用的时候图片的外层元素需要有position属性,有大小来控制图片显示的大小

附件的预览(不用单独引入文件)

参数:无
方法:
a、图片和视频:
页面的控制:需要点击预览的元素加上file_preview的类,在其父元素上面加上以下属性 resource_id(资源的id)、resource_type(资源的类型)、resource_url(资源的播放地址)、face(资源的封面图,主要用于视频)
方法:在加载完文件的数据后执行file_preview();方法
b、音频:
页面展示:
调用这个方法preview_audio.deal_audio(params);返回统一的页面结构
params包括:

  • url, 音频地址、
  • time, 音频时长、
  • name, 音频的名称、
  • size,音频的大小
  • download_url,音频下载地址
  • download_style_type, 音频下载的样式,默认为下载的图标的样式,1为文字样式
    有了页面结构后调用:$(’.weixinAudio’).Audio({
    autoplay:false
    });
    c、文档和压缩包的预览,是通过iframe页面预览的
    页面控制:需要点击预览的元素加上AeroWindow_fileview的类,在这个元素上加上data-title(文件的名称)这个属性,在其父元素上加上resource_view(预览的地址)这个属性
    方法:在加载完文件的数据后执行AeroWindow_fileview();方法

基于laypage的翻页

参数:

  • page_id int 存放翻页的区域元素的id eg: ‘class_news_list_page’
  • url 请求接口的地址
  • method 请求接口的方法名 eg : ‘global_class_rpc.get_news_list’
  • page_params 请求接口的参数 需要带上page 和 num
    方法:tool_laypage_page(id,count,params,url,callback);

信息复制到粘贴板

参数:

  • elem:元素 eg:document.getElementById(“share_suspension_link”)
    方法:copyToClipboard(elem);

元素绑定回车事件

参数:

  • ele:绑定元素id eg:‘#apply_list_kw’
  • callback:回车后的回调函数
    方法:tool_enter(elem,callback);

切换日期

params参数:

  • type 切换的类型 0 --天 1 --月 2 --年
  • prev_ele 向前切换的元素 eg: ‘#prev’
  • next_ele 向后切换的元素 eg: ‘#next’
  • date_ele 显示日期的元素 eg: ‘#date’ date属性为为 2018-9-12
  • date_sep 时间的分隔符 eg: - ,和上面的时间格式相对应
  • max_date 能选择的最大时间
  • min_date 能选择的最小时间
  • callback 回调函数 参数为切换后的日期 eg: 2018-9-12 和上面的时间格式相对应
  • 函数返回切换后的日期
    方法:
    tool_change_date(params);

input的change事件 控制输入为正整数

params参数:

  • othis 元素本身
    方法:input_positive_integer(params);

屏蔽input的回车事件

tool_clear_submit(e);

网盘图标

params参数:

  • resource_type,0–文件夹,1–图片,2–视频,3–音频,4–文档,5–压缩包
  • suffix,文件后缀名
  • icon_type,网盘图标类型,1–小图标即网盘列表的图标,2–大图标即网盘缩略图的图标
    方法:tool_pan_icon(resource_type, suffix, icon_type);

获取学年、学期、周信息

tool_select_time_type();

获取日期是星期几

params参数:

  • date 日期 格式:2018/11/27
  • show_type 1 --星期一、星期二的模式显示 2 --周一、周二的模式显示 3 --自定义显示的模式
  • show_week 星期显示的文字,当show_type为3的时候,定义 eg:[“星期天”, “星期一”, “星期二”, “星期三”, “星期四”, “星期五”, “星期六”],星期天开头,不设置默认第一种显示形式
    方法:get_date_week(params);

获取农历

params参数:

  • year 年份
  • month 月份
  • day 日
  • whole_flag 是否返回完整农历 1完整的 eg:戊戌(狗)年 十月廿三 2:日期 eg:十月廿三
    方法:get_lunar(year, month, day, whole_flag);

基于layui的table的静态表格展示

params参数:

  • ele Y 显示表格的元素 eg:’#examination_statistic_form’
  • height N 表格需要控制的高度 默认不限制
  • num N 每一页的数量 默认20
  • cellMinWidth N 每一个格子的宽度 默认50px
  • cols Y 表头
  • data Y 表格信息
  • callback N 表格形成后的回调函数
  • callback_params N 表格形成后的回调函数的参数
    方法:tool_show_static_table(params);

基于layui的table的数据表格展示(数据动态接口获取)

params参数:

  • ele Y 显示表格的元素 eg:’#examination_statistic_form’
  • height N 表格需要控制的高度 默认不限制
  • num N 每一页的数量 默认20
  • cols Y 表头
  • table 表格的id
  • url Y 数据请求的地址
  • data_params N 数据请求的参数
  • callback N 表格形成后的回调函数
  • callback_params N 表格形成后的回调函数的参数
    方法:tool_show_dynamic_table(params);

公共导出,通过form不跳转页面下载

参数:

  • url:格式 /interface/Task/getTeacherTaskStatistic?time=2019- 01&time_type=2&grade=2&stage_id=1&class_id=10&is_export=1
    方法:common_export(url);

app 和网页的交互

https://note.youdao.com/share/?id=cce701c2a5062327362c6edc557ef70d&type=note#/
1、网页通知app
app支持一种叫做schema唤起的方式,schema类似于我们平时用的网页url,只不过不是http的,而是app自己定义的一个。在这里我们用了sciensly,

这个schema后面会加一些参数,就像url里面的参数一样。
在js点击的时候,我们把works_id拼到这个schema后面,用打开url的方式打开这个schema
app会捕获到这个schema,然后根据参数做相应的处理
apps/activity/_static/js/Common/app_interactive.js
我们所有的参数定义都会放到这里
2、app通知网页
相对简单,app可以执行网页js定义的全局函数。

,我们在这个js里面,会统一定义需要app调用的方法
这些方法要在我们特定页面的js里面去实现
你了解一下这个交互机制,有时间的话,可以看看app_interactive的实现

调用客户端地理定位信息

1、通过调用schema打开具有地理位置的网页 (调用schema打开具有定位功能的网页的原因:因为客户端的方法是有专属页面的,打开的不一定是同一个页面,所以需要通过schema告诉客户端这个页面需要地理位置信息)

2、说在通过schema打开的具有地理位置的网页的js里面,需要加上调用客户端的方法:appJs.getLocationFromApp();
示例:apps/activity/_static/js/Registration/

在签到的页面是需要地理位置信息,在这个签到页面就有调用客户端给的定位js方法
ps:
app内部扫码签到例外:签到页面 ,增加两个参数
把scene定义成2 type你先随意定 最好用签到的type target_id 签到id 增加一个title参数 我解析到scene=2 就拿着当前url和title 打开那个支持定位的h5
scene = 2 扫码支持定位

初次验证, 记录用户登录信息

apps/pan/_static/js/Webapp/upload_by_password.js(第168行)

你可能感兴趣的:(代码管理)