Git Product home page Git Product logo

one-day-project's People

Contributors

x03570227 avatar zouminghang123 avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

one-day-project's Issues

产品系列功能

产品需要能够归入系列,系列指同一类产品,只是存在极小差异的产品

更改类别选择功能

  1. 类别需要多级
  2. 类别选择功能使用弹出框架,结合多级类目展示(类似树型,但一次性展示)

类目以下按照规则编码:

Main.sub1.sub2.sub3

大类关系到product.define的定义,用require引入

增加订单功能

  1. 订单可以来源于第三方网站,需要有标记
  2. 可以查看和搜索订单(仅限订单基本信息)
  3. 第三方订单的详细信息以JSON形式存储在单独表中

以基本信息+define的形式保存数据

sessionkey需要变更

net.caiban.pc.erp.config.AppConst.SESSION_KEY="pceventsession";

变更为:

net.caiban.pc.erp.config.AppConst.SESSION_KEY="sessionuserkey";

改进分类规则

各级符号用.区分
main.sub1.sub2

整理行业类目,或按照需求整理

改进常量位置

net.caiban.pc.erp.service.sys.SysUserService

    public final static String CLASSIFY_A="A";
    public final static String CLASSIFY_M="M";
    public final static String CLASSIFY_E="E";
    public final static int ACCEPT_TRUE=1;
    public final static int DEFAULT_UID=0;

常量应放到 SysUser 中去

第三方应用对接功能

能够实现与第三方应用对应,一家C可以对接多个第三方应用,目前做口袋通的对接

JS 处理日期格式问题的解决方案

全局

        Date.prototype.format = function(format){

            var o = { 
            "M+" : this.getMonth()+1, //month 
            "d+" : this.getDate(), //day 
            "h+" : this.getHours(), //hour 
            "m+" : this.getMinutes(), //minute 
            "s+" : this.getSeconds(), //second 
            "q+" : Math.floor((this.getMonth()+3)/3), //quarter 
            "S" : this.getMilliseconds() //millisecond 
            } 

            if(/(y+)/.test(format)) { 
                format = format.replace(RegExp.$1, (this.getFullYear()+"").substr(4 - RegExp.$1.length)); 
            } 

            for(var k in o) { 
                if(new RegExp("("+ k +")").test(format)) { 
                    format = format.replace(RegExp.$1, RegExp.$1.length==1 ? o[k] : ("00"+ o[k]).substr((""+ o[k]).length));
                } 
            }

            return format; 
            }

    }

使用方法

console.log(new Date().format('yyyy-MM-dd hh:mm:ss'));

近期功能实现

帐号暂不开放注册,只实现登录及相关核心业务功能,页面暂不做特别处理,优先满足手机浏览器

增加清除搜索功能

增加 clear filter 搜索(按钮或图标或连接)

  1. 重置搜索条件
  2. 清除搜索条件,相当于重新打开页面的效果

账号系统设计

规则:

  1. 注册账号认为都是主账号,因此注册时,必须同时创建公司信息,账号中不允许含有冒号
  2. 以 主账号:子账号 的方式,允许在系统内创建子账号,但必须满足规则
  3. 登录系统时,统一使用完整账号+密码的方式
  4. 注册时必须使用账号方式(禁用邮箱和手机注册)
  5. 注册成功后,可绑定手机和邮箱,并使用邮箱和手机登录(子账号不具备此功能)

允许在列表页面展示和更新 define 信息

方案1:

  1. 分页时同时获取define信息
  2. 可同进展开和关闭详细信息

方案2:

  1. 按照需求展开和关闭
  2. 在展开时获取 define 信息

更新方案1:

  1. 点击按钮触发弹出框更新 define 信息
  2. 成功后同时更新展开的 define 信息

优化 table 功能,提取基础 table

/**

  • Product 模块相关的操作

  • */
    define( ["jquery","template","utils/table/pager"],
    function( jQuery, template, pg){

    var table={};
    
    table["init"] = function(config){
        config = config||{};
        this.config=config;
        if(this.config.pager==null){
            this.config.pager={};
        }
    };
    
    table["search"] = function(searchCond){
    
        searchCond=searchCond||{};
    
        this.searchCond=searchCond;
    
        jQuery.post(this.config.url, this.buildSubmit(searchCond), this.buildHtml, "json");
    
    };
    
    table["buildSubmit"]=function(searchCond){
        var pager = this.config.pager;
        if(typeof searchCond == "string"){
            jQuery.each(pager,function(k, v){
                searchCond = searchCond+"&"+k+"="+encodeURIComponent(v);
            });
            return searchCond;
        }
    
        jQuery.each(pager,function(k, v){
            searchCond[k]=encodeURIComponent(v);
        });
    
        return searchCond;
    };
    
    table["buildHtml"]=function(p){
    
        p = table.preBuildTable(p);
    

    // p= table.preBuildTable(p);

        var tableHtml = template(table.config.tpl.table, p);
        var pagerBar = pg.pageBar(p);
    
        jQuery("#"+table.config.renderTo).empty();
    
        jQuery("#"+table.config.renderTo).html(tableHtml);
        jQuery("#"+table.config.renderTo).append(pagerBar);
    
        //绑定分页导航事件
        pg.doPage(table.config.renderTo, function(item){
            var start = item.attr("page-start");
            start = start||0;
            table.setStart(start);
            table.search(table.searchCond);
        });
    
        table.afterBuildTable();
    };
    
    //需要按照实情情况重新实现
    table["preBuildTable"] = function(p){
        // pre build html
        return p;
    };
    
    table["afterBuildTable"] = function(){
    

// jQuery("#"+table.config.renderTo+" .act-delete").click(function(){
// var pid= jQuery(this).attr("model-product-id");
//
// table.remove(pid, jQuery(this));
//
// });

    };

    table["setOrder"]=function(sort, desc){
        var pager = this.config.pager||{};
        pager["sort"]=sort;
        pager["desc"]=desc;
        this.config.pager = pager;
    };

    table["setStart"]=function(start){
        var pager = this.config.pager||{};
        pager["start"]=start;
        this.config.pager = pager;
    };

    table["setLimit"]=function(limit){
        var pager = this.config.pager||{};
        pager["limit"]=limit;
        this.config.pager = pager;
    };

    return table;
}

);

变更为tomcat7插件

将 Tomcat 插件变更为 tomcat7

        <plugin>
            <groupId>org.apache.tomcat.maven</groupId>
            <artifactId>tomcat7-maven-plugin</artifactId>
            <version>2.2</version>
            <configuration>
                <path>/task</path>
                <!-- <protocol>org.apache.coyote.http11.Http11NioProtocol</protocol> -->
            </configuration>
        </plugin>

门票扫描及订单处理业务

针对口袋通实现订单处理功能

  1. 扫描
  2. 自动跳转到确认页面
  3. 确认后处理订单,并弹出打印页面(包括处理结果),订单处理回到状态 1
  4. 打印(二期实现)

用enum解决排序字段问题

Condition 类

    public enum Sort{

        ID("1", "js.id"), 
        GMT_BASETIME("2", "js.gmt_basetime"), 
        GMT_TRIGGER("3", "js.gmt_trigger") ;

        private String code;
        private String column;

        private Sort(String code, String column){
            this.code = code;
            this.column = column;
        }

        @Override
        public String toString(){
            return this.column;
        }
    }

    public String getSort(String code){
        if(Strings.isNullOrEmpty(code)){
            return Sort.ID.toString();
        }

        for(Sort sort: Sort.values()){
            if(code.equalsIgnoreCase(sort.code)){
                return sort.toString();
            }
        }

        return Sort.ID.toString();
    }

xml 配置

        <if test="page.sortColumn != null and page.sortColumn != '' ">
            order by ${page.sortColumn} ${page.dir}
        </if>
        limit #{page.start}, #{page.limit}

Class Pager 修改

    private String sortColumn;
    public String getSortColumn() {
        return sortColumn;
    }
    public void setSortColumn(String sortColumn) {
        this.sortColumn = sortColumn;
    }

    private enum DIR{
        DESC("desc"), ASC("asc");

        private String dir;

        private DIR(String dir){
            this.dir = dir;
        }
        @Override
        public String toString(){
            return this.dir;
        }
    }

    public String getDir() {

        if(Strings.isNullOrEmpty(dir)){
            return DIR.DESC.toString();
        }

        for(DIR d: DIR.values()){
            if(dir.equalsIgnoreCase(d.dir)){
                return dir;
            }
        }

        return DIR.DESC.toString();
    }

分页调用

page.setSortColumn(cond.getSort(page.getSort()));

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.