禅道新增字段 - 解决Bug耗时【20版本】

作者:Gakki

  • 搜索现有资料时,我发现相关内容多针对旧版本,关于最新版本的修改方法介绍较少。因此我根据自己的探索,整理了这份思路,希望能对大家有所帮助。

  • 禅道官方文档

  • zin官方文档【前端用的文档】
    module/
    └── bug/ # 模块目录
    ├── control.php # 控制层 - 页面访问入口
    ├── zen.php # 控制子层 - control的内部逻辑
    ├── model.php # 模型层 - 数据库操作
    ├── tao.php # 模型子层 - 基础数据库操作
    ├── view/ # 旧视图层 (18版本前)
    ├── ui/ # 新视图层 (20版本后)
    ├── config/ # 模块配置
    ├── lang/ # 语言文件
    ├── css/ # 前端样式
    └── js/ # JavaScript代码

  • 注:最好不要在禅道源代码上改,不然升级的时候会直接覆盖。

  • 按照禅道21版本的官方开发规范,需要:

    • 完整修改所有相关层:control → model → view、lang → config
    • 使用新的 Zin UI 组件:视图文件在 ui/目录。

1. 基础配置

  • sql 语句新增字段
ALTER TABLE zt_bug ADD COLUMN resolutionHours DECIMAL(5,2) DEFAULT NULL COMMENT '解决耗时(小时)';

2. bug/lang/zh-cn.php 新增配置

// 新增字段,以及单位
$lang->bug->resolutionHours        = '耗时';
$lang->bug->resolutionHoursTimes        = ' h';
基础配置

3. 解决 Bugs 界面字段

bug/config/form.php 解决bug界面新增字段

$config->bug->form->resolve['resolutionHours']     = array('required' => false, 'type' => 'DECIMAL', 'default' => ''); // 新增字段【耗时】
解决 Bugs 界面字段

4. resolve 界面

注:20版本view界面是在 ui 目录下修改。

resolve 界面

4.1 新增 resolutionHours 字段

复制下列代码到 ui/resolve.html.php 里。

    //    新增耗时展示字段
    formGroup
    (
        set::width('1/3'),
        set::label($lang->bug->resolutionHours),
        set::required(true),
            inputControl
            (
                input
                (
                    set::type('textarea'),
                    set::placeholder('解决Bug耗时'),
                    set::name('resolutionHours'),
                    set::value(0)
//                    set::value($effort->consumed)
                ),
                to::suffix($lang->bug->resolutionHoursTimes),
                set::suffixWidth(20)
            )
    ),

如图所示

新增字段

解决Bug界面

解决Bug界面

数据库写入

数据库写入
  • 如果改到这里能写入数据库,就可以不用改control模块了。如果不行就在control模块新增获取resolutionHours代码即可

control.php 配置

找到 resolve 方法。

// 获取解决耗时字段
$bug->resolutionHours = $this->post->resolutionHours;
image.png
  • model 模块整个过程都不需要改动任何东西

其他view、edit展示界面只需要在ui/view.html.php或者edit.html.php将resolutionHours字段展示出来即可。control、modle 都不需要改任何东西。

Bug 编辑界面

//            编辑界面新增字段展示开始
            item
                (
                    set::name($lang->bug->resolutionHours),
                    input
                    (
                        set::disabled(true),
                        set::name('resolutionHours'),
                        set::value($bug->resolutionHours. $lang->bug->resolutionHoursTimes)
                    )
                ),
//            编辑界面新增字段展示结束
  • 将代码复制到 bug/ui/edit.html.php对应位置。

    image.png

  • 新增之后,Bug编辑界面。


    Bug编辑界面

Bug 查看界面

  • 因为 Bug 查看界面是直接封装好了的,所以我们只能重新新增一个展示模块。
// 新增代码开始
// 在基本信息后添加解决耗时显示
//if(isset($bug->resolutionHours) && $bug->resolutionHours > 0)
if (in_array($bug->status, ['resolved', 'closed']))
{
    $tabs[] = setting()
        ->group('basic')
        ->title($lang->bug->AddNewField)
        ->control('html')
        ->content("
<div style='padding: 0; margin: -20px 0 0 0; line-height: 1;'>
    <span style='color: #595959;'>耗时:</span><span style='color: #262626; font-weight: 500;'>{$bug->resolutionHours} 小时</span>
</div>
        ");
}
// 新增代码结束
  • 将代码复制到bug/ui/view.html.php对应位置。

    新增代码

  • bug/lang/zh-cn.php下新增配置字段

$lang->bug->AddNewField = '自定义字段';
新增配置字段
  • 新增之后,Bug查看界面。


    Bug 查看界面
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 数据库新增字段 表明:zt_bug 语言文件 /opt/zbox/app/zentao/module/bug/la...
    企业信息化架构阅读 4,159评论 1 0
  • 用两张图告诉你,为什么你的 App 会卡顿? - Android - 掘金 Cover 有什么料? 从这篇文章中你...
    hw1212阅读 13,961评论 2 59
  • 如何清除浮动,有哪几种方法,区别是什么 1、移动端你遇到过什么兼容问题? 1、如果在input设置边框颜色在ios...
    崽崽不哭阅读 827评论 0 1
  • 1、移动端你遇到过什么兼容问题? 1、如果在input设置边框颜色在ios系统里会出现兼容性问题,需要在外面加一个...
    青青菜鸟阅读 4,506评论 0 28
  • 1、移动端你遇到过什么兼容问题?1、如果在input设置边框颜色在ios系统里会出现兼容性问题,需要在外面加一个d...
    阿帕奇哟阅读 913评论 0 8

友情链接更多精彩内容