技术标签: 吉密斯 pickup gMIS吉密斯 点选 gMIS
“….总是拿着微不足道的成就来骗自己….,
总是靠一点酒精的麻醉才能够睡去….”
— 台湾歌手郑智化《水手》歌词.
超越前端Beyond Frontend — 吉密斯/gMIS 增加点击勾选(点选)概览等功能侧记。
一直以来,gMIS吉密斯定位于管理操作后台、生产支撑、运营管控系统,主要面向于生产运营、管理操作人员,鲜有面向终端用户的机会,所以,设计考虑和实现权衡时,多是可用性,少有易用性。虽然多有追求美的勇气,终是在这方面难有建树。
直到写下这些文字,完成了gMIS具有标志意义的模块:点选/点击勾选/Pick Up/Click2Select. 从这一功能时,gMIS吉密斯已经具有超越一些前端设计交互能力的模块,强大且便捷。
基于数据库的管理系统主要功能是增删改查,其中的“查”字用的是最多的,可能1:9或者2:8于其他功能模块,也即1分量的增删改,对应着8~9分量的查,所以 gMIS吉密斯在“查”字上也下足功夫,目前主要的查询功能包括:
List页面试图顶部的快捷检索输入框;
(见下图)
“深度搜索查询”模块;
gmis-deepsearch-with-quicksearch
站内搜索模块;
参考“-gMIS持续优化更新, +InSiteSearch站内搜索”,-R/52SN 。
这些模块应对的功能需求各部相同,前两个是基于单表查询,后一个是站内所有数据表“合适”字段的扫描。“点击勾选”已是“查”字上的第四个“搜索/查询”模块。
**“点击勾选概览”在打开某一数据表的主体数据的同时,快速扫描主要字段,并对每一项字段按一定的规则进行汇聚,如统计去重数,计算区间等,然后生成一个针对该数据表的概览数据,**并分别置为可供进一步筛选的“选项”,当用户点击某个“选项”时,下发列表数据自动做相应的更新,当有多个不同维度的“选项”被选择时,维度之间按“并且”求“交集”;当同一维度的多个选项被选中时,维度内选项按“或者”求“并集”——也即,当用户点击同一维度的两个选项时,我们理解为用户想要“A”或者“B”。
这里是对目前点击勾选实现的一次升级和超越——合并了多选和单选,集成到一个视图、同步完成,此其一;其二,在可供统计的维度,提供了聚类统计数据,对要浏览的数据能够一目了然,所谓“概览/概要浏览”。
gmis-pickup-full-mode
当我们被驱动要实现点击勾选时,我们对目前已经存在的实现做了一番考察。
**本质上,点击勾选/点选是为了减少用户输入的麻烦。**这种繁琐来自两个方面:1)需要使用键盘操作,需要录入相应的关键词;2)有些情况下不知道目标关键词或者拼写错误等。
这次新增的“点击勾选概览”解决了这个麻烦,用户无需再手工录入相应的文字,依据“概览”提供的相应的线索,可以实现“按图索骥”一般,逐步筛选出预期的结果集。
与此前惯常见到的点选不同,gMIS 吉密斯的点选实现,还融合了多选与单选,不再显示地要求用户进行多选还是单选,当用户在同一筛选条件上选择一个“选项”时,我们理解为是单选,当用户选择两个以上的“选项”时,我们理解为用户是多选。如此简单、直白、有力,gMIS 吉密斯这一次超越了前端繁琐的多选、单选切换,融合单选、多选模式为一种操作模式。
(gmis-pickup-multiple-select)
单独做某一个/某一类的数据的拣选条件相对容易,正如电商平台里所列勾选条件一下,gMIS吉密斯需要一定的通用性,如何面对一个未知的数据集,能够在没有配置,第一次遇到时,就能够自动获得各种相应的具有统计意义的“概览”数据?
为实现这一点,我们将“数据”抽象为两大类——数值型和字符型。对于数值型的字段数据,我们设计了取值区段,并将可能的区段列出来供点选使用;对于字符型字段数据,我们使用枚举,并将尽可能多的记录的选项列在前排。有了这样的算法,对于任何给定的数据集,我们能够快速的排列出可供勾选的筛选条件列表。
这种做法,大多时是可靠的,尤其是对于数值型字段数据,在获得最小值Min和最大值Max之后,再辅以求值一个步长,很容易能够实现列出可供勾选的区段列表。对于字符型,也能够求得各个字段值的相应记录条数,尤其是一些枚举类型的字段,比如表现在管理后台的 select/选择项,或者 enum类型。
然而,我们不得不在工程实现时考虑异常,由于gMIS吉密斯的实现是通过页面 组装通信地址,然后通过GTAjax 递交给处理程序到服务器,然后将返回数据写入到指定区域,这种依赖JavaScript的功能实现,要考虑如何规避 “+”和空格,如何规避“’”, ‘”‘ 等敏感符号等,由于不能预先获知被管理数据类型(通用性要求),这些需要预先做兼容处理并Cover这样的场景。
于是,应对计算机符号问题的专家—— -Base62x 再次被排上用场。在生成候选选项列表时,对字符型的值进行 Base62x 编码(Server端PHP版本),前端点击触发相应 JavaScript 操作时,也使用同样的 Base62x编码(Client端JavaScript版本),当数据被递交回服务器端进行查询或显现时,又需要做解码操作,这一部分在 comm/header.inc 中完成. 有了这样的闭环操作,在管理页面上显示为明文的候选项,在通信和JavaScript代码层,则是Base62x编码后的无符号字符串,很好的规避了符号问题,类似的解决方案可参考:“-gMIS 吉密斯优化更新+分组项区段AddGroupBySeg/+复制AddByCopy等(-R/G2SW )” 提到的“注册动作registerAct: 改进增加 Base62x.class.js”。
额外地,点选与现有查询等功能的交互:1)在List顶部的导航快速搜索模块,当有选项被点选时,需要将对应的选项列入相应的输入框中,当List页面的右上角的“并搜”,“或搜”时,查询能够继续下去。2)当所点选的条件组合没有查询到相应结果时,gMIS吉密斯默认会给出当前查询条件组合并在每一个筛选条件上提供进一步地操作——去掉相应的条件做再一次的搜索尝试。这里就设计到快捷搜索和点选的交互。在此前的设计中,快捷搜索,当去掉一个搜索条件时,刷新List列表即可,而如果与点选结合,则需要进一步地更新点选的相关选项——选中或者未选中。
关于“选中/Selected”与“未选中/Unselected”,我们在设计时参考了在实现 -UFQI-News 的做法——当某个选项未被选中时,我们以常规的超级链接显示,并冠以加法符号“+”, 表述为:点击当前以“+”开头的链接表示在此前的语境上进一步的加上即将选择的内容;当某个选项已经被选中时,我们以背景色、前景色互换的方式将当前已经被选中的选项标识出来,并冠以“-”减法符号,表述为:点击当前以“-”开头的链接表示在当前语境中进一步地减去即将点选的内容。
(-UFQI-News)
-UFQI-News 的点选设计正符合这样的场景,于是就借用得来。当某个待点选的条件尚未被选择时,冠以加法符号,“+”,意为点击该选项,将在当前语境增加此条件;当某个已被选中的条件呈现时,冠以减法符号,“-”,意为点击该选项,将在当前语境减去此条件。大约符号语言或者“言简意赅”即是如此。
(gmis-selected-and-unselected)
通常情况下,可供使用的筛选条件维度,往往会有多个,默认为List页面所有显示的字段均提供了点击概览,通常这会慢慢地显示为一整屏幕,从而遮盖了List内容主体。为此,我们参考电商平台页面的筛选条件折叠功能,默认提供减缩模式,只列每个List页面的关键字段,也既List页面左侧的3-5个字段作为候选项列出来。
当遇有不适合作为候选字段的,则沿着List列表头部的字段往后顺延,凑齐了3-5个为算。
(gmis-pickup-full-mode-with-more-options)
当用户在默认减缩模式下无法满足检索需求时,可以点击右上角的“+更多”来显示全部可供使用的筛选条件。对应的,当用户在full-mode下点击右上角的“-更多”这可以收起富于的候选项,进入减缩模式。
gMIS吉密斯 点选PickUp功能带来变更模块摘要:
1)comm/header.inc : + $base62xTag 及相应解码;
2)comm/ido.js : + fillPickUpReqt;
3) + act/pickup.php
4) + class/pickup.class.php
5) ido.php: + doActionEx with act=pickup
6) jdo.php: +doActionEx with act=pickup
7) class/pagenavi: +containslist, inrangelist
一些继续的思考和改进:
1)针对一些字符型数值,如果按其值进行聚类统计,字符串截取太长则可能无意义,太短则又太笼统,根据小范围测试,目前默认值被设置为截取字符型数值的 240 字节;
2)针对数值型字段,其区间的划分,默认被划分为 12个区间;
3)字符型或选择型字段,如果候选项太多时,默认只显示前 12个选项。
这些默认值都有待进一步商榷。
(-gmis-logo)
-gMIS 是一种基于 -GWA2 的通用管理信息系统(Management Information System)应用软件,具有可配置的输入和输出接口、开箱即用等特征。
可以在其上构建各种管理应用软件系统,如
内容管理系统(CMS), 客户资源管理(CRM), 企业资源计划管理(ERP),
办公自动化系统(OA)等, 以及各种行业应用管理系统软件,如
人力资源管理系统(HR),学生管理,档案管理,旅游管理,图书管理,
商品管理及业务运营支撑系统(BOSS)等等。
实现零代码开发、快速搭建各种管理信息系统(MIS).
-gMIS is a -GWA2 based Management Information System (MIS) software with characteristics like configurable input and output interfaces, open-box-to-use.
Various management application software systems can be built on it, such as
Content Management System (CMS), Customer Resource Management (CRM), Enterprise Resource Planning Management (ERP),
Office automation systems (OA), as well as different industry application management system softwares, such as
Human Resource Management System (HR), Student Management, Archive Management, Tourism Management, Book Management,
Commodity management and business operations support systems (BOSS), etc.
With zero code development, -gMIS can build a set of management information systems (MIS) software in a few minutes.
Lower Costs,
Better Productivity.
降低成本,
提高效率.
“…看看可爱的天,摸摸真实的脸,
…想想长长的路,擦擦脚下的鞋…”
——电视剧《外来妹》主题曲
2021年各大商家包括中小企业纷纷将微信客户转移到企业微信。用企业微信跟单已经成为一大高频场景,如何管理企业微信里的客户成为一门必须要掌握的新学问。以下是企业微信在没有SCRM的协助下,需要关注的几个基本问题:关于加人企业微信批量加好友,最安全的方式一是,批量导入客户电话号码,手动批量添加;二是,进入微信群,手动批量添加群好友。虽然企业微信对加好友一般情况下不会封号,但是会限制使用加好友功能。如一天内不能发送微信好友申请、不能被微信好友添加等,如果出现功能受限情况,最好先暂停账号的使...
自己非常喜欢《程序员》杂志,《程序员》杂志在一定程序上很能开阔我们的视野。因此,一直都想推荐给大家。方便大家相互学习交流,本文转自《程序员》杂志http://www.csdn.net/article/2013-08-20/2816644——————————————————————————————————————————————————————————————————————————
在使用SpringBoot测试时如果出现Failed to resolve org.junit.platform:junit-platform-launcher:1.x.x这样的问题,最主要的问题是IntelliJ IDEA版本和junit版本不适配问题,所以最根本的解决方法是将IntelliJ IDEA的版本升级到2020.x.x以上的版本,其次是直接在项目的pom.xml文件中添加如下依赖:<dependency> <groupId>org.junit.platform
1.参数正则化与参数先验的关系,模型估计中参数正则化的作用2.条件熵的定义,给出它在本课程中的一个应用,这样做有什么好处,给出你的直观理解,3.朴素贝叶斯满足什么假设,在参数估计中有什么作用,朴素贝叶斯分类器是否是出错概率下的最优分类器,给出证明4.k-means和GMM的EM算法在参数估计过程中有什么相同点和不同点,说明它们各自的优缺点。GMM算法的E步的更新公式是什么?M步优化的目标函数是什么?5.SVM在线性可分情况下的优化目标和约束条件。解的形式是什么(数学公式给出)。原问题就可以进行优化求
该题目来源于牛客网《剑指offer》专题。给一个链表,若其中包含环,请找出该链表的环的入口结点,否则,输出null。Go语言实现:/** * Definition for singly-linked list. * type ListNode struct { * Val int * Next *ListNode * } */ //哈希表func detec...
文章目录第1关:将给定的整数进行由小至大排序编程要求答案第2关:根据给定的不重复的四个正整数,组成无重复数字的三位数并输出任务描述答案第3关:通过for循环打印实心三角形任务描述答案第4关:找出1至1000以内的质数任务描述答案第1关:将给定的整数进行由小至大排序编程要求根据提示,在右侧编辑器Begin-End中代码完善,将排序完成之后的结果输出即可。测试说明平台会对你编写的代码进行测试:测试输入:int x = 9; int y = 10; int z = 8;预期输出:x:8 y:9
1、sudo apt-get install eclipse2、sudo apt-get install openjdk-7-jdk3、修改eclipse.ini vim /usr/lib/eclipse/eclipse.ini添加内容:-vm /usr/lib/jvm/java-6-sun-1.6.0.15/bin4、启动Eclipse之后,在...
什么是JSON JSON(javascript object nanotion,js对象标记)是轻量级的数据交换格式,采用独立于语言的文本格式来存储和表示数据。JSON采用键值对保存数据,数据使用逗号分隔,花括号保存对象,方括号保存数组,键名使用双引号,键值间使用冒号分隔。如:{"name":[{"cnt":"张三","country":"中国"},{"cnt":"san zhan
更多python教程请到: 菜鸟教程www.piaodoo.com人人影视www.sfkyty.com16影视www.591319.com星辰影院www.591319.com前言保留小数位是我们经常会碰到的问题,尤其是刷题过程中。那么在python中保留小数位的方法也非常多,但是笔者的原则就是什么简单用什么,因此这里介绍几种比较简单实用的保留小数位的方法:方法一:format函数>>...
此项目包含了两个平台(tensorflow和pytorch)和一个库(dlib)的人脸验证,包含实际可运行的项目代码。
距离2021年结束还有接近2个多月,PMP考试将于11月28日开考,10月因各地疫情复发,开考考点可能会延迟或者取消考试,请报考11月PMP考试的考生近期多加关注官方通知。为了方便考生提前做好准备,小编将为大家介绍PMP考试报名时间、相关费用。可供参考,如有变动,请以官网最新公告为准!2022年项目管理认证考试时间(不受疫情影响的情况下):2022年3月2022年6月2022年9月2022年12月2022年项目管理考试报名(中文)时间:1月进行PMP考纲改版3月考试报名预计为1月1日开始至1
用过Qt的相信大家都对QPushButton这个类十分熟悉,下面将介绍一种利用styl