hypers / pagurian Goto Github PK
View Code? Open in Web Editor NEW:shell: 一个管理系统的前端框架。该库停止维护,推荐使用: https://github.com/rsuite/rsuite
License: Other
:shell: 一个管理系统的前端框架。该库停止维护,推荐使用: https://github.com/rsuite/rsuite
License: Other
{{>fixtures/doctype}}
<head>
<title>{{data.page.dialog}}</title>
{{>fixtures/head}}
</head>
<body>
{{>fixtures/header}}
<!-- BEGIN CONTAINER -->
<div class="page-container">
{{>fixtures/sidebar}}
<!-- BEGIN CONTENT -->
是否能简化这种模块化方式呢?比如提供个template.hbs,每个子页面只需定制content内容;类似jekyII搭建github静态博客那种思路,提供个template.html
动态向btn-dropdown添加选项后,点击选项无法在btn中展示选项中的文字
form表单下的组件lable如果有默认提示文字,在blur后,则错误提示为灰色
如何在动态加载时覆盖掉原来的值只显示现在的
这个 Issue 用于收集一些零碎的代码改进问题。这些问题的优先级较低,可以推迟讨论。
alert可以考虑不同的message type分成不同的方法,就像console.error
、console.info
一样,我觉得这样更好一些:
https://github.com/hypers/pagurian/blob/dev/src/lib/com/alert.js#L3
alert(msg,"info");
// 换成
alert.info(msg) // 之类的
alert(msg,"sucess"); // 这样type拼写错了并没有检查机制,换成 alert.success(msg) 拼错方法名可以触发显式报错,节省debug时间
可以保留原来的接口,只增加:
const MSG_TYPES = ["success","info","error","warning"];
MSG_TYPES.forEach((t) => {
alert[t]= (msg) => alert(msg,t);
});
当然可能名称要变一下,alert
即是警告的意思,感觉$p.warn(msg)
比alert.warning(msg)
更顺口一点
可以省略一些不必要的或不恰当的new Class
:
https://github.com/hypers/pagurian/blob/dev/src/lib/tool/str.js
https://github.com/hypers/pagurian/blob/dev/src/lib/tool/tool.js
https://github.com/hypers/pagurian/blob/dev/src/lib/tool/url.js
作为模块对象不需要有多个实例的,直接这样更好:
var tool = {
log: function () {/*....*/},
getQueryString: function () {/*....*/}
};
尤其是 new URL
那个会造成误解( window.URL )。
另外在未来是否应该考虑利用模块加载器提供的 exports 机制?
define(function(require, exports, module) {
exports.log = function () {/*....*/};
});
利用 CoC 原则/约定胜于配置 ,约定一个模块命名空间为 /lib/tool/str
,就自动注册到$PagurianAlias.tool.str
上,当然这个点要推迟讨论,现在的不好改。
https://github.com/hypers/pagurian/blob/dev/src/widgets/sizer/module.js
widgets/sizer 的 options 中 callbackXXX 之类的选项考虑是否适合定义成事件。
另外 core/tpl 不知功能是否足够,sea.js好像支持import html模板文件,可以考虑将像Sizer这样的widgets中的大段HTML放到外部文件,然后用 tpl 填充数据得到 _sizerSelectPanel。
发现hanbars可以使用tag="value"
为{{tag}}
赋值,详见handlebars4.0.0的partials语法,想到可以在base.hbs中添加
window.CONFIG = {
appId: "{{hoverMenu}}"
};
再在每个页面中
{{#>base hoverMenu="menuName"}}
{{/base}}
即可实现更加优雅的菜单高亮页面
此方案优于之前的在app.js
顶部配置window.CONGIG
Datatable里面的三角点击没效果,是只是装饰还是怎么
1.echatrs update的时候如果数据多次为空则会多次创建
<div class="chart-message">
<h3><i class="icon icon-info icon-big"></i> 查询结果为空</h3>
</div>
2.查询数据为空时调用showLoading方法不能显示loading动画
Sizer显示器是不是只能双列显示
\d{3}-\d{8}|\d{4}-\{7,8}
[1-9][0-9]{4,}
^[1][3578][0-9]{9}
你们的form表单验证是不没有身份证号码验证
Echarts升级3.x版本后 有城市详情的文案没有国际化
利用 标签自动解析 url
开发当中一个很常见的场景是,需要从 URL 中提取一些需要的元素,譬如 host 、 请求参数等等。
通常的做法是写正则去匹配相应的字段,当然,这里要安利下述这种方法,来自 James 的 blog,原理是动态创建一个 a 标签,利用浏览器的一些原生方法及一些正则(为了健壮性正则还是要的),完美解析 URL ,获取我们想要的任意一个部分。
// This function creates a new anchor element and uses location
// properties (inherent) to get the desired URL data. Some String
// operations are used (to normalize results across browsers).
function parseURL(url) {
var a = document.createElement('a');
a.href = url;
return {
source: url,
protocol: a.protocol.replace(':',''),
host: a.hostname,
port: a.port,
query: a.search,
params: (function(){
var ret = {},
seg = a.search.replace(/^\?/,'').split('&'),
len = seg.length, i = 0, s;
for (;i<len;i++) {
if (!seg[i]) { continue; }
s = seg[i].split('=');
ret[s[0]] = s[1];
}
return ret;
})(),
file: (a.pathname.match(/([^/?#]+)$/i) || [,''])[1],
hash: a.hash.replace('#',''),
path: a.pathname.replace(/^([^/])/,'/$1'),
relative: (a.href.match(/tps?:\/[^/]+(.+)/) || [,''])[1],
segments: a.pathname.replace(/^\//,'').split('/')
};
}
var myURL = parseURL('http://abc.com:8080/dir/index.html?id=255&m=hello#top');
myURL.file; // = 'index.html'
myURL.hash; // = 'top'
myURL.host; // = 'abc.com'
myURL.query; // = '?id=255&m=hello'
myURL.params; // = Object = { id: 255, m: hello }
myURL.path; // = '/dir/index.html'
myURL.segments; // = Array = ['dir', 'index.html']
myURL.port; // = '8080'
myURL.protocol; // = 'http'
myURL.source; // = 'http://abc.com:8080/dir/index.html?id=255&m=hello#top'
url: pagurian.path.api + url + ".json",
ps: 项目很好用,支持你们
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.