精华内容
下载资源
问答
  • 表格模板-工作任务分配图.ett
  • 项目管理中任务及责任人的工作分解和分配,每周的工作计划,负责人的权重等计录
  • 责任分配矩阵 人员1 人员2 人员3 人员4 其他 工作包1 执行 咨询 负责 工作包2 工作包3 工作包4 工作包5 ...

    责任分配矩阵
     人员1人员2人员3人员4其他
    工作包1执行咨询负责  
    工作包2     
    工作包3     
    工作包4     
    工作包5     
    工作包6     
    其他     

     

    角色和职责
    项目名称 准备日期 
    资源角色描述 
    职权 
    职责 
    资格 
    能力 
    展开全文
  • layui数据表格自动分配列宽效果图:适用场景:主要是解决窗口大小改变后表格尾列出现空白和滚动条的问题-窗口由小变大,出现表格尾列出现空白窗口由大变小,出现横向滚动条重新加载框架后恢复正常使用前提:-每一列...

    bfc1a94e0fea3c60b858479d8c8e44b6.png

    layui数据表格自动分配列宽效果图:

    b35cc096a51024f109968a088c76d854.gif适用场景:

    主要是解决窗口大小改变后表格尾列出现空白和滚动条的问题

    -窗口由小变大,出现表格尾列出现空白

    230391f67a13593f2e16e62dab91ca23.png窗口由大变小,出现横向滚动条

    bc3df082ab42bdef5755ac4dcbf8f267.png重新加载框架后恢复正常

    ecf98aa400a5107f1b256cf98688d124.png使用前提:

    -每一列的表头必须全部设置minWidth(依靠minWidth属性进行的判断)

    -自己中间使用的,其他方式效果未知

    -页面只能有一个数据表格,多个数据表格的话需要自己修改代码(表格的判断,列数的获取等)

    具体步骤:

    -监听窗口大小改变事件var resizeTimer;

    $(window).resize(function () {

    if (resizeTimer) {

    clearTimeout(resizeTimer);

    }

    resizeTimer = setTimeout(function () {

    resizeTimer = null;

    dstributionColumnWidth();

    }, 200);

    });

    /*

    经过测试发现,当窗口大小改变之后,这个方法会调用多次

    所以需要使用clearTimeout方法取消由 setTimeout() 方法设置的 timeout

    也就是说每一次调用后200毫秒内的下一次调用都会取消上一次的调用

    这样可以大概率保证最终只执行一次

    如果还是不行就把200调大点比如500

    当然值越小,给人的感觉越流畅

    */

    获取表格的宽度、列数、求出平均列宽// 表格宽度

    var tabWidth = $(".layui-table-header").width();

    // 列数

    var colNum = $("tr").eq(0).find("th").length;

    // 平均列宽

    var avgWidth = tabWidth / colNum;

    /*

    求宽度和列宽的方式比较简单,也不知道有没有通用性(水平所限),

    自己使用没有问题,如果大家拿不到值的话就根据自己的情况写代码拿到相应的值就行了,

    当然要是有更好更优雅的方法也一定要留言告诉我

    */

    获取每一列的data-field和data-minwidth属性的值并封装为对象,并按照data-minwidth的值由大到小排序/**

    * 列对象

    * @param index 所在列在当前行中的索引位置(没用上可以不要)

    * @param name 对应表头中设置的field

    * @param minWidth 对象表头中的minWidth

    * @param width 最终的宽度

    * @constructor

    */

    function Column(index, name, minWidth, width) {

    this.index = index;

    this.name = name;

    this.minWidth = minWidth;

    this.width = width;

    }

    // 获取参数封装对象

    if (cols === undefined) {

    cols = $("tr").eq(0).find("th").map(function (index, item) {

    var col = new Column(index, $(this).attr("data-field"), $(this).attr("data-minwidth"));

    return col;

    });

    // 排序

    cols.sort(function (a, b) {

    return b["minWidth"] - a["minWidth"];

    });

    }

    /**

    * 计算列宽

    * @param columns column对象数组

    * @param colNum 列数

    * @param tabWidth 表格宽度

    * @param avgWidth 平均宽度

    */

    function calculateColumnWidth(columns, colNum, tabWidth, avgWidth) {

    // 是否显示表格横向滚动条

    showOverflowX = false;

    // 是否完成比较

    var isComplete = false;

    for (var i = 0; i < columns.length; i++) {

    var column = columns[i];

    // 如果计算出的平均列宽比最大的minWidth还要大,那么剩下的就不用比较了,直接赋值即可

    if (column["minWidth"] <= avgWidth || isComplete) {

    column["width"] = parseInt(avgWidth);

    isComplete = true;

    } else {

    /*

    如果minWidth > 平均列宽,那么就用表格宽度减去minWidth

    然后除以列数-1,重新求平均列宽

    */

    column["width"] = column["minWidth"];

    tabWidth -= column["minWidth"];

    colNum -= 1;

    avgWidth = tabWidth / colNum;

    // 如果最后一列时,平均列宽大于最小列宽,说明当前页面的宽度足够显示表格,就可以隐藏横向滚动条,反之则需要显示滚动条

    if (i == columns.length - 1) {

    showOverflowX = true;

    }

    }

    }

    }

    设置单元格宽度、设置滚动条// 这里是根据名称查找相应的th、td标签,可能有更好的方法,欢迎留言

    for (var i = 0; i < cols.length; i++) {

    var col = cols[i];

    var width = cols[i].width;

    $("[data-field='" + cols[i]["name"] + "']").each(function () {

    // 实际修改的是th、td下的div标签

    // 我使用的是动画的方式,也可以选择直接赋值

    $(this).children().eq(0).animate({width: width}, 200);

    })

    }

    // 根据showOverflowX的值判断是否需要显示滚动条

    if (showOverflowX) {

    $('.layui-table-body').css({"overflow-x": "auto"});

    } else {

    $('.layui-table-body').css({"overflow-x": "hidden"});

    }

    完成!

    完整代码var cols, showOverflowX;

    /**

    * 列对象

    * @param index 所在列在当前行中的索引位置(没用上可以不要)

    * @param name 对应表头中设置的field

    * @param minWidth 对象表头中的minWidth

    * @param width 最终的宽度

    * @constructor

    */

    function Column(index, name, minWidth, width) {

    this.index = index;

    this.name = name;

    this.minWidth = minWidth;

    this.width = width;

    }

    /**

    * 计算列宽

    * @param columns column对象数组

    * @param colNum 列数

    * @param tabWidth 表格宽度

    * @param avgWidth 平均宽度

    */

    function calculateColumnWidth(columns, colNum, tabWidth, avgWidth) {

    showOverflowX = false;

    var isComplete = false;

    for (var i = 0; i < columns.length; i++) {

    var column = columns[i];

    if (column["minWidth"] <= avgWidth || isComplete) {

    column["width"] = parseInt(avgWidth);

    isComplete = true;

    } else {

    column["width"] = column["minWidth"];

    tabWidth -= column["minWidth"];

    colNum -= 1;

    avgWidth = tabWidth / colNum;

    if (i == columns.length - 1) {

    showOverflowX = true;

    }

    }

    }

    }

    /**

    * 分配列宽

    */

    function dstributionColumnWidth() {

    // 表格宽度

    var tabWidth = $(".layui-table-header").width();

    // 列数

    var colNum = $("tr").eq(0).find("th").length;

    // 平均列宽

    var avgWidth = tabWidth / colNum;

    if (cols === undefined) {

    cols = $("tr").eq(0).find("th").map(function (index, item) {

    var col = new Column(index, $(this).attr("data-field"), $(this).attr("data-minwidth"));

    return col;

    });

    cols.sort(function (a, b) {

    return b["minWidth"] - a["minWidth"];

    });

    }

    calculateColumnWidth(cols, colNum, tabWidth, avgWidth);

    for (var i = 0; i < cols.length; i++) {

    var col = cols[i];

    var width = cols[i].width;

    $("[data-field='" + cols[i]["name"] + "']").each(function () {

    $(this).children().eq(0).animate({width: width}, 200);

    })

    }

    if (showOverflowX) {

    $('.layui-table-body').css({"overflow-x": "auto"});

    } else {

    $('.layui-table-body').css({"overflow-x": "hidden"});

    }

    }

    var resizeTimer;

    $(window).resize(function () {

    if (resizeTimer) {

    clearTimeout(resizeTimer);

    }

    resizeTimer = setTimeout(function () {

    resizeTimer = null;

    dstributionColumnWidth();

    }, 200);

    });

    使用方法layui.config({

    // 放到这个目录里

    base: '/static/js/extend/'

    }).extend({formSelects: 'formSelects-v4.min'});

    // 这里

    layui.use(['table', 'element', 'layer', 'jquery', 'form', 'formSelects', 'tools', 'autoColumnWidth'], function () {

    var table = layui.table,

    element = layui.element,

    layer = layui.layer,

    $ = layui.$,

    form = layui.form,

    formSelects = layui.formSelects,

    tools = layui.tools,

    // 这里

    autoColumnWidth = layui.autoColumnWidth;

    然后在需要的地方直接调用autoColumnWidth.resize();

    ps:窗口大小监听代码还是要自己写的

    想要数据表格加载之后就分配列宽可以写在done的回调里done: function () {

    autoColumnWidth.resize();

    }

    展开全文
  • 刷新网站后,将向用户显示建筑物第一层和第二层的最新地图以及一张表格,通知用户当前哪个教授不在,以及在哪里可以找到他们 怎么运行的 为了获得智能地图,我们使用了Raspberry Pi,Adafruit IO和IFTTT。 IFTTT将...
  • it项目管理表格:147个表格,包所有链接: 导言.IT项目的生命期 第一章.IT项目的启动阶段 1.1 可行性研究报告框架 1.2 项目章程 1.3 项目整体风险水平定性分析表 1.4 多项目风险情况一览表 1.5 质量保证说明书 ...
  • js表格初学

    2019-04-26 10:23:17
    《JavaScript权威指南第六版》书中只提及表单,但未提及表格,尽管实际开发中表格可能已经很少使用到,但在学习过程中见到相关的东西,还是记录下来备忘。 1.表格和表单 表格用于布局,一般用于存放数据; 表单...

    《JavaScript权威指南第六版》书中只提及表单,但未提及表格,尽管实际开发中表格可能已经很少使用到,但在学习过程中见到相关的东西,还是记录下来备忘。

    1.表格和表单

    表格用于布局,一般用于存放数据;
    表单用于传输数据;、
    一般而言,表格中可以包含表单,表单中也可以包含表格。

    2. 表格的使用

    2.1 表格的创建

    <table border = "1" >
     	<thead>
     		<td>ID</td>
     		<td>Name</td>
     		 <td>Age</td>
    	 </thead>
    	 <tbody>
    	 	<tr>
    	 		<td>1</td>
    	 		<td>Sam</td>
    	 		<td>22</td>
    	 	</tr>
    	 	<tr>
    	 		<td>2</td>
    	 		<td>Tom</td>
    	 		<td>25</td>
    	 	</tr>
    	 </tbody>
    </table>
    

    thead为表头,tbody为表格内容,一般开发中tbody可省略,但如果编程过程中省略时,通过开发人员工具发现,解释器会自动补上,所以最好还是写上。

    tr表示一列,td表示单元格,td包含在tr中。

    2.1 表格的使用

    表格定义了一些属性,可以简化获取参数的操作。

    一般使用方法等价于
    getElementsByTagName(‘tbody’)tBodies
    getElementsByTagName(‘tr’)rows
    getElementsByTagName(‘td’)cells
    getElementsByTagName(‘thead’)tHead
    getElementsByTagName(‘tfoot’)tFoot

    一些思路:

    • 在插入新内容时,应该做好排序列(如ID)的相关操作,避免增删查改中出现错误。一般情况下,当插入时,选择让ID自增,分配过的ID即使删除了也不再使用。
    • 对表格进行排序的步骤:
    1. 获取元素集,getElementsBy…
    2. 元素集装到数组 arr[i] = elts[i]
    3. 数组用sort排序,传入比较函数 sort(function{})
    4. 遍历数组,将数组中的项用appendChild依次插入 appendChild(arr[i])

    之所以将元素集装到数组,是因为元素集是一个类数组,没有sort方法,将元素集装到数组后,可以使用sort方法和比较函数进行排序,会比较方便。

    关于排序,或许还有千百种方法,这里只列举学习到的一种,后续可适当更新。

    展开全文
  • //部门人员管理点击事件 $('#btnManage').click(function () { Dept.manages(); }); //点击部门人员管理向右事件---》新增 $('#addPer').click(function () { Dept.addPer(); }); //点击部门人员管理向左...
    //部门人员管理点击事件
        $('#btnManage').click(function () {
            Dept.manages();
        });
        //点击部门人员管理向右事件---》新增
        $('#addPer').click(function () {
            Dept.addPer();
        });
        //点击部门人员管理向左事件---》删除
        $('#delectPer').on('click', function () {
            Dept.delectPer();
        });
        Dept.manages = function(){
            var checkRows = table.checkStatus(Dept.tableId);
            if (checkRows.data.length === 0) {
                layer.msg("请选择要进行配置人员的作业点", {icon: 2});
                return;
            }
            if (checkRows.data.length > 1) {
                layer.msg("当前仅支持单条作业点修改人员管理", {icon: 2});
                return;
            }
            var deptid =  checkRows.data[0].id;
            layer.open({
                type: 1,
                title:['部门人员管理'],
                skin:'my-class2',
                resize:false,
                area: ['600px', '440px'],
                shade: 0.6,  //遮罩透明度
                anim: 1,  //0-6的动画形式,-1不开启
                content: $('#perWarehouse'),
                success: function () {
                    // 渲染表格
                    var resultPerManagement = Dept.initPerManagementTable("employeeTable", Dept.condition,"/ipmconfig/dept/getAllUnitPerByunit?id="+ deptid);
                    var resultPerManagement1 = Dept.initPerManagementTable("perWarehouseTable", Dept.condition,"/ipmconfig/dept/getAllDeptPer?id="+ deptid);
                }
            })
    
        }
        /**
         * 初始化部门所有人员表格和单位所有人的表格
         */
        Dept.initPerManagementTable = function (tableId, data, url) {
            return table.render({
                elem: '#' + tableId,
                url: url,
                where: data,
                page: false,
                cols: Dept.initPerManagement(),
            });
        };
        /**
         * 初始化部门所有人员表格的列
         */
        Dept.initPerManagement = function () {
            return [[
                { checkbox: true, fixed: true },
                { field: 'name', title: '姓 名',},
            ]];
        }
        //点击作业点人员管理向左事件---》删除
        Dept.delectPer = function(){
            var checkRows = table.checkStatus("perWarehouseTable");
            if (checkRows.data.length === 0) {
                layer.msg("请选择要向左移的人员", {icon: 2});
                return;
            }
            var ids = "";
            for (var i = 0; i < checkRows.data.length; i++) {
                ids += checkRows.data[i].id + ",";
            }
            var checkRows1 = table.checkStatus(Dept.tableId);
            var deptId =  checkRows1.data[0].id;//获取作业点ID
            $.ajax({
                type: 'POST',
                url: "/ipmconfig/dept/delectDeptPer",
                data: {
                    ids: ids,
                    deptId: deptId
                },
                dataType: "json",
                success: function (data) {
                    if(data.code == 0){
                        layer.msg(data.data, {icon: 1});
                        table.reload("perWarehouseTable");
                    } else {
                        layer.msg(data.data, {icon: 2});
                    }
                }
            });
    
        }
        //点击作业点人员管理向右事件---》新增
        Dept.addPer = function(){
            var checkRows = table.checkStatus("employeeTable");
            if (checkRows.data.length === 0) {
                layer.msg("请选择要向右移的人员", {icon: 2});
                return;
            }
            var ids = "";
            for (var i = 0; i < checkRows.data.length; i++) {
                ids += checkRows.data[i].id + ",";
            }
            var checkRows1 = table.checkStatus(Dept.tableId);
            var deptId =  checkRows1.data[0].id;//获取作业点ID
            $.ajax({
                type: 'POST',
                url: "/ipmconfig/dept/addDeptPer",
                data: {
                    ids: ids,
                    deptId:deptId
                },
                dataType: "json",
                success: function (data) {
                    if(data.code == 0){
                        layer.msg(data.data, {icon: 1});
                        table.reload("perWarehouseTable");
                    } else {
                        layer.msg(data.data, {icon: 2});
                    }
                }
            });
        }
    

     

    展开全文
  • 更符合国人需求的多维表格 在国外,「多维表格」的概念已经发展成熟,如Airtable、Clickup等团队协作工具,相继占领独角兽市场。 自vika维格表在国内首次提出「多维智能表格」 的理念后,国内也掀起了一阵「多维表格...
  • 在日常办公中,经常会遇到这种...在这种情况下,如果团队人员很多,有几十到上百人,表格数据收集人挨个汇总这么多 Excel 表格,那可是效率十分低下和让人头疼的事儿。那么,在 SeaTable 在线协同表格中,是如何方...
  • 表格制作和数据绑定

    2019-04-25 07:49:08
    将需要的数据呈现在网页,并绑定在table表格里面应该是web开发人员都少不了的操作 ,那么制作表格和将数据库的数据绑定在页面上显示出来需要哪些操作? 这里我就在MVC框架里面来显示着一操作 ,用到了layui(前端...
  • 表格控件GridPanel

    2012-12-25 22:20:11
    表格控件GridPanel 表格由类Ext.grid.GridPanel定义,继承自Panel,xtype为grid。在Ext中,表格控件Grid必须包含列定义信息,并制定表格的数据存储器Store。表格的列信息由类Ext.grid.ColumnModel定义,而表格的...
  • 简述本计划的目的。如本文档旨在说明各种测试阶段任务、人员分配和时间安排、工作规范等。
  • IT项目管理表格

    2011-11-23 11:18:23
    2.22 项目人员需求申请表 2.23 面试记录表 2.24 项目成员审核表 2.25 项目组工作说明书 2.26 项目成员岗位工作说明书 2.27 岗位说明书一览表 2.28 IT项目团队知识地图 2.29 项目成员责任分配矩阵 2.30 项目...
  • web-在线表格处理系统

    2009-03-03 17:21:04
    了一些必要的啥人员管理、系统设置等等功能,这个系统最强大的地方是超级管理员可以给任意一张台帐处理表格分配员工填写权限和后台管理员管理权限。在后台的查看员工提交的数据中,可以自由选择数据项目进行画图,...
  • IT项目管理表格下载

    2010-04-19 17:27:53
    ├─IT项目启动阶段(IT项目管理表格) │ 1.1 可行性研究报告框架.doc │ 1.10会议通知表.doc │ 1.10附表一: 通知回执表.doc │ 1.10附表二:回执统计表.doc │ 1.11会议签到表.doc │ 1.11附表一:参会人员统计表....
  • 大量数据分配给多人

    2016-05-10 13:07:06
    大量数据分配给多人:可以按单位给各单位人员分配固定个数的数据记录。
  • 专业人员服务成绩考核表.doc 业务人员出差报告书.doc 业务人员考核表.doc 业务员工作日报.doc 个人外部培训申请表.doc 个人外部训练申请表.doc 个人训练.doc 个人训练教学记录表.doc 中层领导年度工作考核.doc 主管...
  • 2.22 项目人员需求申请表 2.23 面试记录表 2.24 项目成员审核表 2.25 项目组工作说明书 2.26 项目成员岗位工作说明书 2.27 岗位说明书一览表 2.28 IT项目团队知识地图 2.29 项目成员责任分配矩阵 2.30 项目...
  • IT软件项目管理表格

    热门讨论 2010-07-28 10:16:47
    2.22 项目人员需求申请表 2.23 面试记录表 2.24 项目成员审核表 2.25 项目组工作说明书 2.26 项目成员岗位工作说明书 2.27 岗位说明书一览表 2.28 IT项目团队知识地图 2.29 项目成员责任分配矩阵 2.30 项目...
  • 过去,我经常被非技术人员要求做一些数据库脚本工作,以将其电子表格数据映射到生产数据库。 而且,当他们的数据更改时,需要再次执行相同的工作。 由于这些数据的更改频率不是很高(与其他在线数据相比),因此也不...
  • 比如说下方表格中,右侧的信息对应表,需要在左侧的人员信息表查找并录入对应的数据,要怎么做呢?肯定会有人觉得:就这么点数据,随便看几眼,然后复制粘贴过去不就完了吗~但万一数据很多时,岂不是要看到眼酸?...
  • 分配问题与匈牙利算法原文地址:https://blog.csdn.net/kevinjqy/article/details/54584114例1假如你是个玩具工厂的销售经理,你现在有三个销售人员要去不同城市见买家。你的销售人员分别在在奥斯丁,得克萨斯州;...
  • 动态资源分配算法

    2013-07-11 17:44:37
    利用银行家算法进行资源分配的报告,包括程序和其他的一套说明都在我这里可以找到匹配的。
  • 表格文件碎片是这样形成的:EXCEL文件一般是经常编辑修改的一个表格文件,因为文件长度经常动态变化,文件系统会动态分配磁盘空间来存放文件内容,久而久之这个文件就被分成多个小部分分开存放在磁盘中各个不连续的...
  • 布局Layouts之TableLayout表格布局

    千次阅读 2017-06-22 23:49:06
    TableLayout表格布局  TableLayout是指将子元素的位置分配到行或列中。Android的一个TableLayout有许多TableRow组成,每一个TableRow都会定义一个Row。TableLayout容器不会显示Row,Column,及Cell的边框线,每...
  • 固定表格布局下的各浏览器对与表格宽度计算算法不同。 造成的影响 1. 内容溢出 列的宽度不够容纳其内容时,IE6 IE7 IE8(Q) 会将溢出的内容隐藏,而其他浏览器则会根据单元格的 'overflow' 属性决定是否隐藏溢出...
  • it项目管理表格.zip

    2019-09-19 11:17:47
    2.22 项目人员需求申请表 2.23 面试记录表 2.24 项目成员审核表 2.25 项目组工作说明书 2.26 项目成员岗位工作说明书 2.27 岗位说明书一览表 2.28 IT项目团队知识地图 2.29 项目成员责任分配矩阵 2.30 项目...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 32,840
精华内容 13,136
关键字:

人员分配表格